From fd285d6245ddd54c2eef8237eb878f573d665f94 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期四, 07 七月 2022 18:27:39 +0800
Subject: [PATCH] lct

---
 src/views/doublePreventSystem/riskLevelManage/riskControlMeasure/index.vue |  417 ++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 226 insertions(+), 191 deletions(-)

diff --git a/src/views/doublePreventSystem/riskLevelManage/riskControlMeasure/index.vue b/src/views/doublePreventSystem/riskLevelManage/riskControlMeasure/index.vue
index 080b81c..6d79aa1 100644
--- a/src/views/doublePreventSystem/riskLevelManage/riskControlMeasure/index.vue
+++ b/src/views/doublePreventSystem/riskLevelManage/riskControlMeasure/index.vue
@@ -2,235 +2,270 @@
     <div class="system-role-container">
         <el-card shadow="hover">
             <div class="system-user-search mb15">
-                <div class="basic-search">
-                    <span>风险等级:</span>
-                    <el-select v-model="riskControlMeasureData.params.riskLevel" clearable filterable class="ml10" placeholder="请选择风险等级">
-                        <el-option
-                        v-for="item in levelList"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.id"
-                        ></el-option>
+                <div class="basic-line">
+                    <span>管控方式:</span>
+                    <el-select class="input-box" v-model="riskControlMeasureData.params.controlType" placeholder="管控方式" clearable>
+                        <el-option v-for="item in controlTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                     </el-select>
                 </div>
-                <div class="basic-search">
-                    <span>部门:</span>
-                    <el-cascader
-                            :options="departmentList"
-                            :props="{ emitPath: false, checkStrictly: true, value: 'id', label: 'name' }"
-                            placeholder="请选择部门"
-                            clearable
-                            filterable
-                            v-model="riskControlMeasureData.params.depId"
-                    >
-                    </el-cascader>
+                <div class="basic-line">
+                    <span>安全风险事件:</span>
+                    <el-select class="input-box" v-model="riskControlMeasureData.params.riskEventId" placeholder="安全风险事件" clearable>
+                        <el-option v-for="item in allSafetyRiskEventData" :key="item.id" :label="item.riskEventName" :value="item.id"></el-option>
+                    </el-select>
                 </div>
-                <el-button size="default" type="primary" class="ml10" @click="handleSearch">
+                <el-button size="default" type="primary" class="ml10" v-throttle @click="handleSearch">
                     <el-icon>
                         <ele-Search />
                     </el-icon>
                     查询
                 </el-button>
-                <el-button size="default" type="success" class="ml10" @click="onOpenDialogRef('新增','')">
+                <el-button size="default" type="success" class="ml10" @click="onOpenDialogRef('新增', '')">
                     <el-icon>
                         <ele-FolderAdd />
                     </el-icon>
-                    新增单元
+                    新增措施
                 </el-button>
             </div>
             <el-table :data="riskControlMeasureData.data" style="width: 100%">
                 <el-table-column type="index" label="序号" width="60" />
-                <el-table-column prop="produceDeviceName" label="生产装置名称" show-overflow-tooltip></el-table-column>
-                <el-table-column prop="riskUnitName" label="安全风险分析单元名称" width="180" show-overflow-tooltip></el-table-column>
-                <el-table-column prop="riskCode" label="安全风险分析对象编码" width="180" show-overflow-tooltip></el-table-column>
-                <el-table-column prop="location" label="责任部门" show-overflow-tooltip></el-table-column>
-                <el-table-column prop="status" label="责任人" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="riskEventName" label="安全风险事件名称" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="controlMeasureCode" label="风控措施编码" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="controlType" label="管控方式" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="checkContent" label="管控内容" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="classify1" label="管控措施分类1" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="classify2" label="管控措施分类2" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="classify3" label="管控措施分类3" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="measureDesc" label="措施说明" show-overflow-tooltip></el-table-column>
                 <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column>
-                <el-table-column prop="gtmCreate" label="创建时间" show-overflow-tooltip></el-table-column>
-                <el-table-column prop="lastEditByUserName" label="最后修改人" show-overflow-tooltip></el-table-column>
-                <el-table-column prop="gtmCreate" label="最后修改时间" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip>
+                    <template #default="scope">
+                        <span>{{ dateFormat('YYYY-mm-dd HH:MM:SS', '2022-07-07T08:00:00') }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column>
+                <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column>
                 <el-table-column label="操作" width="150">
                     <template #default="scope">
-                        <el-button size="small" text type="primary" @click="onOpenDialogRef('修改',scope.row)">修改</el-button>
+                        <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button>
                         <el-button size="small" text type="danger" @click="onDelRiskControlMeasure(scope.row)">删除</el-button>
                     </template>
                 </el-table-column>
             </el-table>
             <el-pagination
-				@size-change="onHandleSizeChange"
-				@current-change="onHandleCurrentChange"
-				class="mt15"
-				:pager-count="5"
-				:page-sizes="[10, 20, 30]"
-				v-model:current-page="riskControlMeasureData.params.pageIndex"
-				background
-				v-model:page-size="riskControlMeasureData.params.pageSize"
-				layout="total, sizes, prev, pager, next, jumper"
-				:total="riskControlMeasureData.total"
-			>
-			</el-pagination>
+                @size-change="onHandleSizeChange"
+                @current-change="onHandleCurrentChange"
+                class="mt15"
+                :pager-count="5"
+                :page-sizes="[10, 20, 30]"
+                v-model:current-page="riskControlMeasureData.params.pageIndex"
+                background
+                v-model:page-size="riskControlMeasureData.params.pageSize"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="riskControlMeasureData.total"
+            >
+            </el-pagination>
         </el-card>
-        <riskControlMeasureDialog ref="riskControlMeasureDialogRef" @refreshRiskControlMeasure ="initRiskControlMeasureData"/>
+        <riskControlMeasureDialog ref="riskControlMeasureDialogRef" @refreshRiskControlMeasure="initRiskControlMeasureData" />
     </div>
 </template>
 
 <script lang="ts">
-    import { toRefs, reactive, onMounted, ref } from 'vue';
-    import { ElMessageBox, ElMessage } from 'element-plus';
-    import riskControlMeasureDialog from './components/riskControlMeasureDialog.vue';
-    import { riskControlMeasureApi } from '/@/api/doublePreventSystem/riskControlMeasure/index.ts';
-    import { departmentApi } from '/@/api/department';
+import { toRefs, reactive, onMounted, ref } from 'vue';
+import { ElMessageBox, ElMessage } from 'element-plus';
+import riskControlMeasureDialog from './components/riskControlMeasureDialog.vue';
+import { riskControlMeasureApi } from '/@/api/doublePreventSystem/riskControlMeasure/index.ts';
+import { safetyRiskEventApi } from '/@/api/doublePreventSystem/safetyRiskEvent';
 
-    // 定义接口来定义对象的类型
-    interface TableData {
-        roleName: string;
-        roleSign: string;
-        describe: string;
-        sort: number;
-        status: boolean;
-        createTime: string;
-    }
-    interface TableDataState {
-        riskControlMeasureData: {
-            data: Array<TableData>;
-            total: number;
-            loading: boolean;
-            params: {
-                pageIndex: number;
-                pageSize: number;
-                riskUnitName: string | null;
-                liableDep: number | null;
-                liablePerson: number | null;
-            };
+// 定义接口来定义对象的类型
+interface TableData {
+    roleName: string;
+    roleSign: string;
+    describe: string;
+    sort: number;
+    status: boolean;
+    createTime: string;
+}
+interface TableDataState {
+    riskControlMeasureData: {
+        data: Array<TableData>;
+        total: number;
+        loading: boolean;
+        params: {
+            pageIndex: number;
+            pageSize: number;
+            controlType: number | null;
+            riskEventId: number | null;
         };
-        departmentList:Array<DepartmentState>;
-        levelList:Array<levelListState>;
-    }
-    interface levelListState {
+    };
+    controlTypeList: Array<controlTypeType>;
+    classifyOneList: Array<classifyOneType>;
+    classifyTwoList: Array<classifyTwoType>;
+    allSafetyRiskEventData: Array<SafetyRiskEventDataState>;
+}
+interface controlTypeType {}
+interface classifyOneType {}
+interface classifyTwoType {}
+interface SafetyRiskEventDataState {}
 
-    }
-    interface DepartmentState {
-
-    }
-
-    export default ({
-        name: 'riskControlMeasure',
-        components: { riskControlMeasureDialog },
-        setup() {
-            const riskControlMeasureDialogRef = ref();
-            const state = reactive<TableDataState>({
-                riskControlMeasureData: {
-                    data: [],
-                    total: 0,
-                    loading: false,
-                    params: {
-                        pageIndex: 1,
-                        pageSize: 10,
-                        riskUnitName: null,
-                        liableDep: null,
-                        liablePerson: null,
-                    },
-                },
-                departmentList:[],
-                levelList:[{id:1,name:'低风险'},{id:2,name:'一般风险'},{id:3,name:'较大风险'},{id:4,name:'重大风险'},]
-            });
-
-            // 初始化表格数据
-            const initRiskControlMeasureData = async () => {
-                let res = await riskControlMeasureApi().getRiskControlMeasureList(state.riskControlMeasureData.params)
-                if(res.data.code === '200'){
-                    state.riskControlMeasureData.data = res.data.data;
-                    state.riskControlMeasureData.total = res.data.count;
-                }else{
-                    ElMessage({
-                        type:'warning',
-                        message:res.data.msg
-                    })
+export default {
+    name: 'riskControlMeasure',
+    components: { riskControlMeasureDialog },
+    setup() {
+        const riskControlMeasureDialogRef = ref();
+        const state = reactive<TableDataState>({
+            riskControlMeasureData: {
+                data: [],
+                total: 0,
+                loading: false,
+                params: {
+                    pageIndex: 1,
+                    pageSize: 10,
+                    controlType: null,
+                    riskEventId: null
                 }
-            };
+            },
+            controlTypeList: [
+                { id: 1, name: '自动化监控' },
+                { id: 2, name: '隐患排查' }
+            ],
+            classifyOneList: [],
+            classifyTwoList: [],
+            allSafetyRiskEventData: []
+        });
 
-            //获取部门列表
-            const getDepartmentData = async () => {
-                let res = await departmentApi().getDepartmentList()
-                if(res.data.code === '200'){
-                    state.departmentList = res.data.data
-                }else{
-                    ElMessage({
-                        type:'warning',
-                        message:res.data.msg
-                    })
-                }
-            }
-
-            // 打开生产装置弹窗
-            const onOpenDialogRef = (type: string, value: any) => {
-                riskControlMeasureDialogRef.value.openSafetyRiskEventDialog(type, value, state.departmentList);
-            };
-            
-            // 删除角色
-            const onDelRiskControlMeasure = (row: any) => {
-                ElMessageBox.confirm(`此操作将永久删除角色名称:“${row.produceDeviceName}”,是否继续?`, '提示', {
-                    confirmButtonText: '确认',
-                    cancelButtonText: '取消',
+        // 初始化表格数据
+        const initRiskControlMeasureData = async () => {
+            let res = await riskControlMeasureApi().getRiskControlMeasureList(state.riskControlMeasureData.params);
+            if (res.data.code === '200') {
+                state.riskControlMeasureData.data = res.data.data;
+                state.riskControlMeasureData.total = res.data.count;
+            } else {
+                ElMessage({
                     type: 'warning',
-                }).then(async () => {
-                    let res = await riskControlMeasureApi().deleteRiskControlMeasure({id:row.id})
-					if(res.data.code ==='200'){
-						ElMessage({
-							type:'success',
-							duration:2000,
-							message:'删除成功'
-						})
-                    await initRiskControlMeasureData()
-					}else{
-						ElMessage({
-							type:'warning',
-							message:res.data.msg
-						})
-					}
-                }).catch(() => {});
-            };
-
-            const handleSearch = () => {
-                initRiskControlMeasureData()
+                    message: res.data.msg
+                });
             }
+        };
 
-            // 分页改变
-            const onHandleSizeChange = (val: number) => {
-                state.riskControlMeasureData.params.pageSize = val;
-                initRiskControlMeasureData()
-            };
+        const dateFormat = (fmt: any, date: any) => {
+            date = new Date(date);
+            fmt =
+                date.getFullYear() +
+                '-' +
+                (date.getMonth() + 1) +
+                '-' +
+                date.getDate() +
+                ' ' +
+                date.getHours().toString() +
+                ':' +
+                (date.getMinutes().toString() === '0' ? '00' : date.getMinutes().toString()) +
+                ':' +
+                (date.getSeconds().toString() === '0' ? '00' : date.getMinutes().toString());
+            return fmt;
+        };
 
-            // 分页改变
-            const onHandleCurrentChange = (val: number) => {
-                state.riskControlMeasureData.params.pageIndex = val;
-                initRiskControlMeasureData()
-            };
+        //获取安全风险事件
+        const getAllSafetyRiskEvent = async () => {
+            let res = await safetyRiskEventApi().getAllSafetyRiskEventList();
+            if (res.data.code === '200') {
+                state.allSafetyRiskEventData = JSON.parse(JSON.stringify(res.data.data));
+            } else {
+                ElMessage({
+                    type: 'warning',
+                    message: res.data.msg
+                });
+            }
+        };
 
-            // 页面加载时
-            onMounted(() => {
-                initRiskControlMeasureData();
-                getDepartmentData();
-            });
+        //获取管控措施分类
+        const getClassify = async () => {
+            let res = await riskControlMeasureApi().getClassifyData();
+            if (res.data.code === '200') {
+                state.classifyOneList = res.data.data.filter((item: any) => item.parentId === null);
+                state.classifyTwoList = res.data.data.filter((item: any) => item.parentId !== null);
+            } else {
+                ElMessage({
+                    type: 'warning',
+                    message: res.data.msg
+                });
+            }
+        };
 
-            return {
-                handleSearch,
-                onOpenDialogRef,
-                onHandleSizeChange,
-                onDelRiskControlMeasure,
-                onHandleCurrentChange,
-                riskControlMeasureDialog,
-                riskControlMeasureDialogRef,
-                initRiskControlMeasureData,
-                ...toRefs(state),
-            };
-        },
-    });
+        // 打开生产装置弹窗
+        const onOpenDialogRef = (type: string, value: any) => {
+            riskControlMeasureDialogRef.value.openSafetyRiskEventDialog(
+                type,
+                value,
+                state.allSafetyRiskEventData,
+                state.classifyOneList,
+                state.classifyTwoList
+            );
+        };
+
+        // 删除角色
+        const onDelRiskControlMeasure = (row: any) => {
+            ElMessageBox.confirm(`此操作将永久删除该条风险管控措施:“${row.produceDeviceName}”,是否继续?`, '提示', {
+                confirmButtonText: '确认',
+                cancelButtonText: '取消',
+                type: 'warning'
+            })
+                .then(async () => {
+                    let res = await riskControlMeasureApi().deleteRiskControlMeasure({ id: row.id });
+                    if (res.data.code === '200') {
+                        ElMessage({
+                            type: 'success',
+                            duration: 2000,
+                            message: '删除成功'
+                        });
+                        await initRiskControlMeasureData();
+                    } else {
+                        ElMessage({
+                            type: 'warning',
+                            message: res.data.msg
+                        });
+                    }
+                })
+                .catch(() => {});
+        };
+
+        const handleSearch = () => {
+            initRiskControlMeasureData();
+        };
+
+        // 分页改变
+        const onHandleSizeChange = (val: number) => {
+            state.riskControlMeasureData.params.pageSize = val;
+            initRiskControlMeasureData();
+        };
+
+        // 分页改变
+        const onHandleCurrentChange = (val: number) => {
+            state.riskControlMeasureData.params.pageIndex = val;
+            initRiskControlMeasureData();
+        };
+
+        // 页面加载时
+        onMounted(() => {
+            initRiskControlMeasureData();
+            getAllSafetyRiskEvent();
+            getClassify();
+        });
+
+        return {
+            dateFormat,
+            handleSearch,
+            onOpenDialogRef,
+            onHandleSizeChange,
+            onDelRiskControlMeasure,
+            onHandleCurrentChange,
+            riskControlMeasureDialog,
+            riskControlMeasureDialogRef,
+            initRiskControlMeasureData,
+            ...toRefs(state)
+        };
+    }
+};
 </script>
 
-<style scoped>
-.basic-search{
-    display:inline-block;
-    padding-left: 10px;
-}
-</style>
+<style scoped></style>

--
Gitblit v1.9.2