Admin
2022-07-26 f93a3a605d6d949515bedbcdc633c5f454014f02
添加修改页面
已修改23个文件
已添加4个文件
1518 ■■■■■ 文件已修改
src/router/route.ts 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/IntelligentXjSys/basicDataManagement/facilityArea/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/IntelligentXjSys/basicDataManagement/indicator/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/IntelligentXjSys/basicDataManagement/inspection/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/IntelligentXjSys/inspectionTaskManagement/index.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicRightsManagement/personnelShiftManagement/holidayManagement/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicRightsManagement/personnelShiftManagement/personnelManagement/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicRightsManagement/personnelShiftManagement/shiftManagement/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicRightsManagement/personnelShiftManagement/teamManagement/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicRightsManagement/personnelShiftManagement/workingHours/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/riskWarningSys/accidentLevel/index.vue 407 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/riskWarningSys/educationAndTraining/index.vue 343 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/riskWarningSys/emergencyDrills/index.vue 342 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/riskWarningSys/riskLevel/index.vue 322 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/afterWorkManagement/workTicketCheck/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/afterWorkManagement/workTicketRecord/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/approveProcessManagement/approveLinkSettings/approveLinkSetting/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/approveProcessManagement/approveLinkSettings/approveTypeSetting/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/approveProcessManagement/approveLinkSettings/reportTypeSetting/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/approveProcessManagement/approveProcessList/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workBasicManagementSetting/certificateFilterSetting/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workBasicManagementSetting/personalProtectDevices/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workBasicManagementSetting/securityMeasuresManagement/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workBasicManagementSetting/workTypeSetting/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workPlan/workReservation/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/route.ts
@@ -329,5 +329,37 @@
        meta: {
            title: '巡检记录管理'
        },
    },
    {
        path: '/educationAndTraining',
        name: 'educationAndTraining',
        component: () => import('/@/views/riskWarningSys/educationAndTraining/index.vue'),
        meta: {
            title: '教育培训'
        },
    },
    {
        path: '/emergencyDrills',
        name: 'emergencyDrills',
        component: () => import('/@/views/riskWarningSys/emergencyDrills/index.vue'),
        meta: {
            title: '应急演练'
        },
    },
    {
        path: '/accidentLevel',
        name: 'accidentLevel',
        component: () => import('/@/views/riskWarningSys/accidentLevel/index.vue'),
        meta: {
            title: '事故等级'
        },
    },
    {
        path: '/riskLevel',
        name: 'riskLevel',
        component: () => import('/@/views/riskWarningSys/riskLevel/index.vue'),
        meta: {
            title: '风险等级'
        },
    }
];
src/views/IntelligentXjSys/basicDataManagement/facilityArea/index.vue
@@ -238,7 +238,7 @@
                        if(chosenIndex.value == -1){
                            addRecord.value.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            tableData[chosenIndex.value] = addRecord.value
src/views/IntelligentXjSys/basicDataManagement/indicator/index.vue
@@ -245,7 +245,7 @@
                        if(chosenIndex.value == -1){
                            addRecord.value.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            tableData[chosenIndex.value] = addRecord.value
src/views/IntelligentXjSys/basicDataManagement/inspection/index.vue
@@ -238,7 +238,7 @@
                        if(chosenIndex.value == -1){
                            addRecord.value.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            tableData[chosenIndex.value] = addRecord.value
src/views/IntelligentXjSys/inspectionTaskManagement/index.vue
@@ -583,6 +583,8 @@
            const addRef = ref<FormInstance>()
            const addShiftRef = ref<FormInstance>()
            const addInspectionRef = ref<FormInstance>()
    // 表单校验
            const addRules = reactive<FormRules>({
                name:[{required: true, message: '该内容不能为空',trigger:'blur'}],
                type:[{required: true, message: '该内容不能为空',trigger:'blur'}],
@@ -611,10 +613,14 @@
            const addShift = ref({})
            const addInspection = ref({})
            const details = ref({})
    // 查看记录
            const viewRecord = (row) =>{
                details.value = JSON.parse(JSON.stringify(row))
                dialogDetails.value = true
            }
            // 删除记录
            const deleteRecord = (index) =>{
                chosenIndex.value = index
                deleteDialog.value = true
@@ -622,6 +628,13 @@
            const conFirmDelete = ()=> {
                tableData.splice(chosenIndex.value,1)
                deleteDialog.value = false
            }
            // 修改添加记录
            const editRecord =(index, row)=>{
                chosenIndex.value = index
                dialogAddRecord.value = true
                addRecord.value = JSON.parse(JSON.stringify(row))
            }
            const confirmAddRecord = async (formEl: FormInstance | undefined) =>{
                if (!formEl) return
@@ -649,7 +662,7 @@
                                addRecord.value.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                                addRecord.value.chainLength = addRecord.value.shiftSteps.length
                                addRecord.value.status = '开启'
                                tableData.push(addRecord.value)
                                tableData.unshift(addRecord.value)
                            }
                        }else{
                            if(addRecord.value.shiftSteps.length == 0){
@@ -680,9 +693,13 @@
                })
            }
            // 添加弹窗打开前预操作
            const openAdd =()=>{
                addRecord.value.unit = '小时'
            }
            // 弹窗关闭后判断数据初始化
            const closeAdd =()=>{
                addRecord.value={}
                chosenIndex.value = -1
@@ -699,11 +716,6 @@
                chosenInspectionIndex.value = -1
                chosenShiftIndex.value = -1
            }
            const editRecord =(index, row)=>{
                chosenIndex.value = index
                dialogAddRecord.value = true
                addRecord.value = JSON.parse(JSON.stringify(row))
            }
            // 排序
            function compare(key){
@@ -719,6 +731,8 @@
                dialogAddShift.value = true
                chosenShiftIndex.value = index
            }
            // 删除巡检区域
            const deleteFlow = (index) => {
                deleteShiftDialog.value = true
                chosenShiftIndex.value = index
@@ -727,6 +741,7 @@
                addRecord.value.shiftSteps.splice( chosenShiftIndex.value,1)
                deleteShiftDialog.value = false
            }
            const confirmAddShift = async (formEl: FormInstance | undefined) => {
                if (!formEl) return
                await formEl.validate((valid, fields) => {
@@ -742,8 +757,9 @@
                        console.log('error submit!', fields)
                    }
                })
            }
            const addSysInspection =(index)=>{
                dialogAddInspection.value = true
                chosenShiftIndex.value = index
src/views/basicRightsManagement/personnelShiftManagement/holidayManagement/index.vue
@@ -244,7 +244,7 @@
                await formEl.validate((valid, fields) => {
                    if (valid) {
                        if(chosenIndex.value == -1){
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            tableData[chosenIndex.value] = addRecord.value
                        }
src/views/basicRightsManagement/personnelShiftManagement/personnelManagement/index.vue
@@ -237,7 +237,7 @@
                        if(chosenIndex.value == -1){
                            addRecord.value.startTime = JSON.parse(JSON.stringify(addRecord.value.timeRange))[0]
                            addRecord.value.endTime = JSON.parse(JSON.stringify(addRecord.value.timeRange))[1]
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            addRecord.value.startTime =  JSON.parse(JSON.stringify(addRecord.value.timeRange))[0]
                            addRecord.value.endTimeTime =  JSON.parse(JSON.stringify(addRecord.value.timeRange))[1]
src/views/basicRightsManagement/personnelShiftManagement/shiftManagement/index.vue
@@ -330,7 +330,7 @@
                                })
                                return
                            }else{
                                tableData.push(addRecord.value)
                                tableData.unshift(addRecord.value)
                            }
                        }else{
                            if(addRecord.value.type == '循环班' && addRecord.value.shiftSteps.length == 0){
src/views/basicRightsManagement/personnelShiftManagement/teamManagement/index.vue
@@ -249,7 +249,7 @@
                await formEl.validate((valid, fields) => {
                    if (valid) {
                        if(chosenIndex.value == -1){
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            tableData[chosenIndex.value] = addRecord.value
                        }
src/views/basicRightsManagement/personnelShiftManagement/workingHours/index.vue
@@ -208,7 +208,7 @@
                                addRecord.value.endTime = '次日' + addRecord.value.endTime
                            }
                            addRecord.value.range = addRecord.value.startTime + '\xa0-\xa0' + addRecord.value.endTime
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            if(addRecord.value.startTime >=  addRecord.value.endTime){
                                addRecord.value.endTime = '次日' + addRecord.value.endTime
src/views/riskWarningSys/accidentLevel/index.vue
对比新文件
@@ -0,0 +1,407 @@
<template>
    <div class="home-container">
        <el-scrollbar height="100%">
        <div class="homeCard">
            <div class="main-card">
                <el-row class="cardTop">
                    <el-col :span="12" class="mainCardBtn">
                        <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新建</el-button>
<!--                        <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>-->
                        <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button>
                    </el-col>
                    <el-button type="primary" :icon="Refresh" size="default"/>
                </el-row>
                <el-table
                        ref="multipleTableRef"
                        :data="tableData"
                        style="width: 100%"
                        :header-cell-style="{background: '#fafafa'}"
                        @selection-change="handleSelectionChange"
                >
                    <el-table-column type="selection" width="55" />
                    <el-table-column type="index" label="编号" width="80"/>
                    <el-table-column property="month" label="所属月份"/>
                    <el-table-column property="level" label="事故类型"/>
                    <el-table-column property="amount" label="事故起数(起)"/>
                    <el-table-column property="death" label="死亡人数(人)"/>
                    <el-table-column property="injury" label="重伤人数(人)"/>
                    <el-table-column property="wound" label="轻伤人数(人)"/>
                    <el-table-column property="cost" label="直接经济损失(万)"/>
                    <el-table-column property="updateTime" label="提交时间"/>
                    <el-table-column fixed="right" label="操作" align="center" width="250">
                        <template #default="scope">
                            <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
                            <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button>
                            <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </div>
            <div class="pageBtn">
                <el-pagination
                        v-model:currentPage="currentPage"
                        v-model:page-size="pageSize"
                        :page-sizes="[10, 15]"
                        small=false
                        background
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="100"
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                />
            </div>
        </div>
        </el-scrollbar>
        <el-dialog v-model="dialogDetails" title="查看详情">
            <el-form :model="details" label-width="120px">
                <el-form-item label="所属月份">
                    <el-input
                            v-model="details.month"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="事故类型">
                    <el-input
                            v-model="details.level"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="事故起数(起)">
                    <el-input
                            v-model="details.amount"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="死亡人数(人)">
                    <el-input
                            v-model="details.death"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="重伤人数(人)">
                    <el-input
                            v-model="details.injury"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="轻伤人数(人)">
                    <el-input
                            v-model="details.wound"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="直接经济损失(万)">
                    <el-input
                            v-model="details.cost"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="提交时间">
                    <el-input
                            v-model="details.updateTime"
                            readonly
                    />
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        <el-dialog v-model="dialogAddRecord" title="事故等级编辑" @close="closeAdd">
            <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
                <el-form-item label="所属时间" prop="month">
                    <el-date-picker
                            v-model="addRecord.month"
                            type="month"
                            placeholder="请选择日期"
                            format="YYYY-MM" value-format="YYYY-MM"
                    />
                </el-form-item>
                <el-form-item label="事故类型" prop="level">
                    <el-select v-model="addRecord.level" placeholder="请选择">
                        <el-option label="特别重大事故" value="特别重大事故" />
                        <el-option label="重大事故" value="重大事故" />
                        <el-option label="较大事故" value="较大事故" />
                        <el-option label="一般事故" value="一般事故" />
                        <el-option label="未遂事故" value="未遂事故" />
                    </el-select>
                </el-form-item>
                <el-form-item label="事故起数" prop="amount">
                    <el-input
                            v-model="addRecord.amount"
                            placeholder="请填写事故次数"
                            type="number"
                    >
                    </el-input>
                </el-form-item>
                <el-form-item label="死亡人数" prop="death">
                    <el-input
                            v-model="addRecord.death"
                            placeholder="请填写死亡人数"
                            type="number"
                    >
                    </el-input>
                </el-form-item>
                <el-form-item label="重伤人数" prop="injury">
                    <el-input
                            v-model="addRecord.injury"
                            placeholder="请填写重伤人数"
                            type="number"
                    >
                    </el-input>
                </el-form-item>
                <el-form-item label="轻伤人数" prop="wound">
                    <el-input
                            v-model="addRecord.wound"
                            placeholder="请填写轻伤人数"
                            type="number"
                    >
                    </el-input>
                </el-form-item>
                <el-form-item label="直接经济损失" prop="cost">
                    <el-input
                            v-model="addRecord.cost"
                            placeholder="请填写直接经济损失"
                            type="number"
                    >
                    </el-input>
                </el-form-item>
                <el-form-item>
                    <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
                    <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear">
            <span>您确定要删除该条记录吗?</span>
            <template #footer>
          <span class="dialog-footer">
              <el-button @click="deleteDialog = false" size="default">取消</el-button>
            <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
          </span>
            </template>
        </el-dialog>
    </div>
</template>
<script lang="ts" setup>
    import { toRefs, reactive, ref } from 'vue';
    import { storeToRefs } from 'pinia';
    import { initBackEndControlRoutes } from '/@/router/backEnd';
    import {useUserInfo} from "/@/stores/userInfo";
    import { Session } from '/@/utils/storage';
    import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue'
    import { ElTable } from 'element-plus'
    import { FormInstance, FormRules } from 'element-plus'
    let global: any = {
        homeChartOne: null,
        homeChartTwo: null,
        homeCharThree: null,
        dispose: [null, '', undefined],
    };
    interface stateType {
        homeOne: Array <type>
    }
    interface type {
    }
    const userInfo = useUserInfo()
    const { userInfos } = storeToRefs(userInfo);
    const state  = reactive<stateType>({});
    const currentPage = ref(1)
    const pageSize = ref(10)
    const chosenIndex = ref(-1)
    const handleSizeChange = (val: number) => {
        console.log(`${val} items per page`)
    }
    const handleCurrentChange = (val: number) => {
        console.log(`current page: ${val}`)
    }
    // 时间格式化
    const timeForm = {
        hour12: false,
        year: 'numeric',
        month: '2-digit',
        day: '2-digit',
        hour: '2-digit',
        minute: '2-digit',
        second: '2-digit'
    }
    const tableData = reactive(
            [
            {
                month: '2022-07',
                level: '未遂事故',
                amount: 1,
                death: 0,
                injury: 0,
                wound: 0,
                cost: 1,
                updateTime: '2022-07-26 15:55:00'
            },
            {
                month: '2022-06',
                level: '未遂事故',
                amount: 2,
                death: 0,
                injury: 0,
                wound: 0,
                cost: 15,
                updateTime: '2022-07-26 15:55:00'
            },
            {
                month: '2022-05',
                level: '一般事故',
                amount: 1,
                death: 0,
                injury: 0,
                wound: 1,
                cost: 100,
                updateTime: '2022-07-26 15:55:00'
            }
        ]
    )
    const addRef = ref<FormInstance>()
    const addRules = reactive<FormRules>({
        month:[{required: true, message: '该内容不能为空'}],
        level:[{required: true, message: '该内容不能为空',trigger:'blur'}],
        amount:[{required: true, message: '该内容不能为空',trigger:'blur'}],
        death:[{required: true, message: '该内容不能为空',trigger:'blur'}],
        injury:[{required: true, message: '该内容不能为空',trigger:'blur'}],
        wound:[{required: true, message: '该内容不能为空',trigger:'blur'}],
        cost:[{required: true, message: '该内容不能为空',trigger:'blur'}]
    })
    const dialogDetails = ref(false)
    const dialogAddRecord = ref(false)
    const deleteDialog = ref(false)
    const addRecord = ref({})
    const details = ref({})
    const viewRecord = (row) =>{
        details.value = JSON.parse(JSON.stringify(row))
        dialogDetails.value = true
    }
    const deleteRecord = (index) =>{
        chosenIndex.value = index
        deleteDialog.value = true
    }
    const conFirmDelete = ()=> {
        tableData.splice(chosenIndex.value,1)
        deleteDialog.value = false
    }
    const confirmAddRecord = async (formEl: FormInstance | undefined) =>{
        if (!formEl) return
        await formEl.validate((valid, fields) => {
            if (valid) {
                if(chosenIndex.value == -1){
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData.unshift(addRecord.value)
                }else{
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData[chosenIndex.value] = addRecord.value
                }
                dialogAddRecord.value =false
            } else {
                console.log('error submit!', fields)
            }
        })
    }
    const closeAdd =()=>{
        addRecord.value={}
        chosenIndex.value = -1
    }
    const indexClear = ()=>{
        chosenIndex.value = -1
    }
    const editRecord =(index, row)=>{
        dialogAddRecord.value = true
        chosenIndex.value = index
        addRecord.value = JSON.parse(JSON.stringify(row))
    }
    // 折线图
    const renderMenu = async (value: string) => {
        Session.set('projectId',value)
        userInfos.value.projectId = value
        await initBackEndControlRoutes();
    };
</script>
<style scoped lang="scss">
    $homeNavLengh: 8;
    .home-container {
        height: 100%;
        overflow: hidden;
        padding: 20px;
        .homeCard{
            width: 100%;
            padding: 20px;
            background: #fff;
            border-radius: 4px;
        }
        .el-row{
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            &:last-child {
                margin-bottom: 0;
            }
            .grid-content{
                align-items: center;
                min-height: 36px;
            }
            .topInfo {
                display: flex;
                align-items: center;
                font-size: 16px;
                font-weight: bold;
                &>div{
                    white-space: nowrap;
                    margin-right: 20px;
                }
            }
        }
        .mainPages{
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
        .main-card{
            width: 100%;
            .cardTop{
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 20px;
                .mainCardBtn{
                    margin: 0;
                }
            }
        }
        .pageBtn{
            display: flex;
            align-items: center;
            justify-content: right;
            margin-top: 20px;
            .demo-pagination-block + .demo-pagination-block {
                margin-top: 10px;
            }
            .demo-pagination-block .demonstration {
                margin-bottom: 16px;
            }
        }
    }
    .el-input{
        width: 100% !important;
    }
    .el-date-editor::v-deep{
        width: 100%;
    }
    .el-select{
        width: 100%;
    }
</style>
src/views/riskWarningSys/educationAndTraining/index.vue
对比新文件
@@ -0,0 +1,343 @@
<template>
    <div class="home-container">
        <el-scrollbar height="100%">
        <div class="homeCard">
            <div class="main-card">
                <el-row class="cardTop">
                    <el-col :span="12" class="mainCardBtn">
                        <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新建</el-button>
<!--                        <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>-->
                        <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button>
                    </el-col>
                    <el-button type="primary" :icon="Refresh" size="default"/>
                </el-row>
                <el-table
                        ref="multipleTableRef"
                        :data="tableData"
                        style="width: 100%"
                        :header-cell-style="{background: '#fafafa'}"
                        @selection-change="handleSelectionChange"
                >
                    <el-table-column type="selection" width="55" />
                    <el-table-column type="index" label="编号" width="80"/>
                    <el-table-column property="month" label="所属月份"/>
                    <el-table-column property="level" label="级别"/>
                    <el-table-column property="amount" label="培训次数(次)"/>
                    <el-table-column property="eduTime" label="教育时间比" />
                    <el-table-column property="updateTime" label="提交时间"/>
                    <el-table-column fixed="right" label="操作" align="center" width="250">
                        <template #default="scope">
                            <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
                            <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button>
                            <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </div>
            <div class="pageBtn">
                <el-pagination
                        v-model:currentPage="currentPage"
                        v-model:page-size="pageSize"
                        :page-sizes="[10, 15]"
                        small=false
                        background
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="100"
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                />
            </div>
        </div>
        </el-scrollbar>
        <el-dialog v-model="dialogDetails" title="查看详情">
            <el-form :model="details" label-width="120px">
                <el-form-item label="所属月份">
                    <el-input
                            v-model="details.month"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="级别">
                    <el-input
                            v-model="details.level"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="培训次数(次)">
                    <el-input
                            v-model="details.amount"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="教育时间比">
                    <el-input
                            v-model="details.eduTime"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="提交时间">
                    <el-input
                            v-model="details.updateTime"
                            readonly
                    />
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        <el-dialog v-model="dialogAddRecord" title="教育培训记录编辑" @close="closeAdd">
            <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
                <el-form-item label="所属时间" prop="month">
                    <el-date-picker
                            v-model="addRecord.month"
                            type="month"
                            placeholder="请选择日期"
                            format="YYYY-MM" value-format="YYYY-MM"
                    />
                </el-form-item>
                <el-form-item label="选择级别" prop="level">
                    <el-select v-model="addRecord.level" placeholder="请选择">
                        <el-option label="公司级" value="公司级" />
                        <el-option label="事业部级" value="事业部级" />
                        <el-option label="车间级" value="车间级" />
                        <el-option label="班组级" value="班组级" />
                    </el-select>
                </el-form-item>
                <el-form-item label="培训次数" prop="amount">
                    <el-input
                            v-model="addRecord.amount"
                            placeholder="请填写培训次数"
                            type="number"
                    >
                    </el-input>
                </el-form-item>
                <el-form-item label="教育时间比" prop="eduTime">
                    <el-select v-model="addRecord.eduTime" placeholder="请选择">
                        <el-option label="大于或等于100%" value="大于或等于100%" />
                        <el-option label="大于或等于80%,小于100%" value="大于或等于80%,小于100%" />
                        <el-option label="大于或等于50%,小于80%" value="大于或等于50%,小于80%" />
                        <el-option label="大于或等于30%,小于50%" value="大于或等于30%,小于50%" />
                        <el-option label="小于30%" value="小于30%" />
                    </el-select>
                </el-form-item>
                <el-form-item>
                    <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
                    <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear">
            <span>您确定要删除该条记录吗?</span>
            <template #footer>
          <span class="dialog-footer">
              <el-button @click="deleteDialog = false" size="default">取消</el-button>
            <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
          </span>
            </template>
        </el-dialog>
    </div>
</template>
<script lang="ts" setup>
    import { toRefs, reactive, ref } from 'vue';
    import { storeToRefs } from 'pinia';
    import { initBackEndControlRoutes } from '/@/router/backEnd';
    import {useUserInfo} from "/@/stores/userInfo";
    import { Session } from '/@/utils/storage';
    import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue'
    import { ElTable } from 'element-plus'
    import { FormInstance, FormRules } from 'element-plus'
    let global: any = {
        homeChartOne: null,
        homeChartTwo: null,
        homeCharThree: null,
        dispose: [null, '', undefined],
    };
    interface stateType {
        homeOne: Array <type>
    }
    interface type {
    }
    const userInfo = useUserInfo()
    const { userInfos } = storeToRefs(userInfo);
    const state  = reactive<stateType>({});
    const currentPage = ref(1)
    const pageSize = ref(10)
    const chosenIndex = ref(-1)
    const handleSizeChange = (val: number) => {
        console.log(`${val} items per page`)
    }
    const handleCurrentChange = (val: number) => {
        console.log(`current page: ${val}`)
    }
    // 时间格式化
    const timeForm = {
        hour12: false,
        year: 'numeric',
        month: '2-digit',
        day: '2-digit',
        hour: '2-digit',
        minute: '2-digit',
        second: '2-digit'
    }
    const tableData = reactive(
            [
            {
                month: '2022-07',
                level: '公司级',
                amount: 10,
                eduTime: '大于或等于100%',
                updateTime: '2022-07-26 15:55:00'
            },
            {
                month: '2022-06',
                level: '班组级',
                amount: 10,
                eduTime: '大于或等于100%',
                updateTime: '2022-06-26 15:55:00'
            }
        ]
    )
    const addRef = ref<FormInstance>()
    const addRules = reactive<FormRules>({
        month:[{required: true, message: '该内容不能为空'}],
        level:[{required: true, message: '该内容不能为空',trigger:'blur'}],
        amount:[{required: true, message: '该内容不能为空',trigger:'blur'}],
        eduTime:[{required: true, message: '该内容不能为空',trigger:'blur'}]
    })
    const dialogDetails = ref(false)
    const dialogAddRecord = ref(false)
    const deleteDialog = ref(false)
    const addRecord = ref({})
    const details = ref({})
    const viewRecord = (row) =>{
        details.value = JSON.parse(JSON.stringify(row))
        dialogDetails.value = true
    }
    const deleteRecord = (index) =>{
        chosenIndex.value = index
        deleteDialog.value = true
    }
    const conFirmDelete = ()=> {
        tableData.splice(chosenIndex.value,1)
        deleteDialog.value = false
    }
    const confirmAddRecord = async (formEl: FormInstance | undefined) =>{
        if (!formEl) return
        await formEl.validate((valid, fields) => {
            if (valid) {
                if(chosenIndex.value == -1){
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData.unshift(addRecord.value)
                }else{
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData[chosenIndex.value] = addRecord.value
                }
                dialogAddRecord.value =false
            } else {
                console.log('error submit!', fields)
            }
        })
    }
    const closeAdd =()=>{
        addRecord.value={}
        chosenIndex.value = -1
    }
    const indexClear = ()=>{
        chosenIndex.value = -1
    }
    const editRecord =(index, row)=>{
        dialogAddRecord.value = true
        chosenIndex.value = index
        addRecord.value = JSON.parse(JSON.stringify(row))
    }
    // 折线图
    const renderMenu = async (value: string) => {
        Session.set('projectId',value)
        userInfos.value.projectId = value
        await initBackEndControlRoutes();
    };
</script>
<style scoped lang="scss">
    $homeNavLengh: 8;
    .home-container {
        height: 100%;
        overflow: hidden;
        padding: 20px;
        .homeCard{
            width: 100%;
            padding: 20px;
            background: #fff;
            border-radius: 4px;
        }
        .el-row{
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            &:last-child {
                margin-bottom: 0;
            }
            .grid-content{
                align-items: center;
                min-height: 36px;
            }
            .topInfo {
                display: flex;
                align-items: center;
                font-size: 16px;
                font-weight: bold;
                &>div{
                    white-space: nowrap;
                    margin-right: 20px;
                }
            }
        }
        .mainPages{
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
        .main-card{
            width: 100%;
            .cardTop{
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 20px;
                .mainCardBtn{
                    margin: 0;
                }
            }
        }
        .pageBtn{
            display: flex;
            align-items: center;
            justify-content: right;
            margin-top: 20px;
            .demo-pagination-block + .demo-pagination-block {
                margin-top: 10px;
            }
            .demo-pagination-block .demonstration {
                margin-bottom: 16px;
            }
        }
    }
    .el-input{
        width: 100% !important;
    }
    .el-date-editor::v-deep{
        width: 100%;
    }
    .el-select{
        width: 100%;
    }
</style>
src/views/riskWarningSys/emergencyDrills/index.vue
对比新文件
@@ -0,0 +1,342 @@
<template>
    <div class="home-container">
        <el-scrollbar height="100%">
        <div class="homeCard">
            <div class="main-card">
                <el-row class="cardTop">
                    <el-col :span="12" class="mainCardBtn">
                        <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新建</el-button>
<!--                        <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>-->
                        <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button>
                    </el-col>
                    <el-button type="primary" :icon="Refresh" size="default"/>
                </el-row>
                <el-table
                        ref="multipleTableRef"
                        :data="tableData"
                        style="width: 100%"
                        :header-cell-style="{background: '#fafafa'}"
                        @selection-change="handleSelectionChange"
                >
                    <el-table-column type="selection" width="55" />
                    <el-table-column type="index" label="编号" width="80"/>
                    <el-table-column property="month" label="所属月份"/>
                    <el-table-column property="level" label="级别"/>
                    <el-table-column property="amount" label="演练次数(次)"/>
                    <el-table-column property="aftTime" label="应急演练后时间" />
                    <el-table-column property="updateTime" label="提交时间"/>
                    <el-table-column fixed="right" label="操作" align="center" width="250">
                        <template #default="scope">
                            <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
                            <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button>
                            <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </div>
            <div class="pageBtn">
                <el-pagination
                        v-model:currentPage="currentPage"
                        v-model:page-size="pageSize"
                        :page-sizes="[10, 15]"
                        small=false
                        background
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="100"
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                />
            </div>
        </div>
        </el-scrollbar>
        <el-dialog v-model="dialogDetails" title="查看详情">
            <el-form :model="details" label-width="120px">
                <el-form-item label="所属月份">
                    <el-input
                            v-model="details.month"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="级别">
                    <el-input
                            v-model="details.level"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="演练次数(次)">
                    <el-input
                            v-model="details.amount"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="应急演练后时间">
                    <el-input
                            v-model="details.aftTime"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="提交时间">
                    <el-input
                            v-model="details.updateTime"
                            readonly
                    />
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        <el-dialog v-model="dialogAddRecord" title="应急演练编辑" @close="closeAdd">
            <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
                <el-form-item label="所属时间" prop="month">
                    <el-date-picker
                            v-model="addRecord.month"
                            type="month"
                            placeholder="请选择日期"
                            format="YYYY-MM" value-format="YYYY-MM"
                    />
                </el-form-item>
                <el-form-item label="选择级别" prop="level">
                    <el-select v-model="addRecord.level" placeholder="请选择">
                        <el-option label="公司级" value="公司级" />
                        <el-option label="事业部级" value="事业部级" />
                        <el-option label="车间级" value="车间级" />
                        <el-option label="班组级" value="班组级" />
                    </el-select>
                </el-form-item>
                <el-form-item label="培训次数" prop="amount">
                    <el-input
                            v-model="addRecord.amount"
                            placeholder="请填写培训次数"
                            type="number"
                    >
                    </el-input>
                </el-form-item>
                <el-form-item label="应急演练后时间" prop="aftTime">
                    <el-select v-model="addRecord.aftTime" placeholder="请选择">
                        <el-option label="小于或等于一周" value="小于或等于一周" />
                        <el-option label="大于一周,小于或等于二周" value="大于一周,小于或等于二周" />
                        <el-option label="大于二周,小于或等于三周" value="大于二周,小于或等于三周" />
                        <el-option label="大于三周" value="大于三周" />
                    </el-select>
                </el-form-item>
                <el-form-item>
                    <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
                    <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear">
            <span>您确定要删除该条记录吗?</span>
            <template #footer>
          <span class="dialog-footer">
              <el-button @click="deleteDialog = false" size="default">取消</el-button>
            <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
          </span>
            </template>
        </el-dialog>
    </div>
</template>
<script lang="ts" setup>
    import { toRefs, reactive, ref } from 'vue';
    import { storeToRefs } from 'pinia';
    import { initBackEndControlRoutes } from '/@/router/backEnd';
    import {useUserInfo} from "/@/stores/userInfo";
    import { Session } from '/@/utils/storage';
    import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue'
    import { ElTable } from 'element-plus'
    import { FormInstance, FormRules } from 'element-plus'
    let global: any = {
        homeChartOne: null,
        homeChartTwo: null,
        homeCharThree: null,
        dispose: [null, '', undefined],
    };
    interface stateType {
        homeOne: Array <type>
    }
    interface type {
    }
    const userInfo = useUserInfo()
    const { userInfos } = storeToRefs(userInfo);
    const state  = reactive<stateType>({});
    const currentPage = ref(1)
    const pageSize = ref(10)
    const chosenIndex = ref(-1)
    const handleSizeChange = (val: number) => {
        console.log(`${val} items per page`)
    }
    const handleCurrentChange = (val: number) => {
        console.log(`current page: ${val}`)
    }
    // 时间格式化
    const timeForm = {
        hour12: false,
        year: 'numeric',
        month: '2-digit',
        day: '2-digit',
        hour: '2-digit',
        minute: '2-digit',
        second: '2-digit'
    }
    const tableData = reactive(
            [
            {
                month: '2022-07',
                level: '公司级',
                amount: 10,
                aftTime: '小于或等于一周',
                updateTime: '2022-07-26 15:55:00'
            },
            {
                month: '2022-06',
                level: '班组级',
                amount: 10,
                aftTime: '大于一周,小于或等于二周',
                updateTime: '2022-06-26 15:55:00'
            }
        ]
    )
    const addRef = ref<FormInstance>()
    const addRules = reactive<FormRules>({
        month:[{required: true, message: '该内容不能为空'}],
        level:[{required: true, message: '该内容不能为空',trigger:'blur'}],
        amount:[{required: true, message: '该内容不能为空',trigger:'blur'}],
        aftTime:[{required: true, message: '该内容不能为空',trigger:'blur'}]
    })
    const dialogDetails = ref(false)
    const dialogAddRecord = ref(false)
    const deleteDialog = ref(false)
    const addRecord = ref({})
    const details = ref({})
    const viewRecord = (row) =>{
        details.value = JSON.parse(JSON.stringify(row))
        dialogDetails.value = true
    }
    const deleteRecord = (index) =>{
        chosenIndex.value = index
        deleteDialog.value = true
    }
    const conFirmDelete = ()=> {
        tableData.splice(chosenIndex.value,1)
        deleteDialog.value = false
    }
    const confirmAddRecord = async (formEl: FormInstance | undefined) =>{
        if (!formEl) return
        await formEl.validate((valid, fields) => {
            if (valid) {
                if(chosenIndex.value == -1){
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData.unshift(addRecord.value)
                }else{
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData[chosenIndex.value] = addRecord.value
                }
                dialogAddRecord.value =false
            } else {
                console.log('error submit!', fields)
            }
        })
    }
    const closeAdd =()=>{
        addRecord.value={}
        chosenIndex.value = -1
    }
    const indexClear = ()=>{
        chosenIndex.value = -1
    }
    const editRecord =(index, row)=>{
        dialogAddRecord.value = true
        chosenIndex.value = index
        addRecord.value = JSON.parse(JSON.stringify(row))
    }
    // 折线图
    const renderMenu = async (value: string) => {
        Session.set('projectId',value)
        userInfos.value.projectId = value
        await initBackEndControlRoutes();
    };
</script>
<style scoped lang="scss">
    $homeNavLengh: 8;
    .home-container {
        height: 100%;
        overflow: hidden;
        padding: 20px;
        .homeCard{
            width: 100%;
            padding: 20px;
            background: #fff;
            border-radius: 4px;
        }
        .el-row{
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            &:last-child {
                margin-bottom: 0;
            }
            .grid-content{
                align-items: center;
                min-height: 36px;
            }
            .topInfo {
                display: flex;
                align-items: center;
                font-size: 16px;
                font-weight: bold;
                &>div{
                    white-space: nowrap;
                    margin-right: 20px;
                }
            }
        }
        .mainPages{
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
        .main-card{
            width: 100%;
            .cardTop{
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 20px;
                .mainCardBtn{
                    margin: 0;
                }
            }
        }
        .pageBtn{
            display: flex;
            align-items: center;
            justify-content: right;
            margin-top: 20px;
            .demo-pagination-block + .demo-pagination-block {
                margin-top: 10px;
            }
            .demo-pagination-block .demonstration {
                margin-bottom: 16px;
            }
        }
    }
    .el-input{
        width: 100% !important;
    }
    .el-date-editor::v-deep{
        width: 100%;
    }
    .el-select{
        width: 100%;
    }
</style>
src/views/riskWarningSys/riskLevel/index.vue
对比新文件
@@ -0,0 +1,322 @@
<template>
    <div class="home-container">
        <el-scrollbar height="100%">
        <div class="homeCard">
            <div class="main-card">
                <el-row class="cardTop">
                    <el-col :span="12" class="mainCardBtn">
                        <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新建</el-button>
<!--                        <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>-->
                        <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button>
                    </el-col>
                    <el-button type="primary" :icon="Refresh" size="default"/>
                </el-row>
                <el-table
                        ref="multipleTableRef"
                        :data="tableData"
                        style="width: 100%"
                        :header-cell-style="{background: '#fafafa'}"
                        @selection-change="handleSelectionChange"
                >
                    <el-table-column type="selection" width="55" />
                    <el-table-column type="index" label="编号" width="80"/>
                    <el-table-column property="month" label="所属月份"/>
                    <el-table-column property="level" label="风险类型"/>
                    <el-table-column property="amount" label="风险个数(个)"/>
                    <el-table-column property="updateTime" label="提交时间"/>
                    <el-table-column fixed="right" label="操作" align="center" width="250">
                        <template #default="scope">
                            <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
                            <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button>
                            <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </div>
            <div class="pageBtn">
                <el-pagination
                        v-model:currentPage="currentPage"
                        v-model:page-size="pageSize"
                        :page-sizes="[10, 15]"
                        small=false
                        background
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="100"
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                />
            </div>
        </div>
        </el-scrollbar>
        <el-dialog v-model="dialogDetails" title="查看详情">
            <el-form :model="details" label-width="120px">
                <el-form-item label="所属月份">
                    <el-input
                            v-model="details.month"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="风险类型">
                    <el-input
                            v-model="details.level"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="风险个数(个)">
                    <el-input
                            v-model="details.amount"
                            readonly
                    />
                </el-form-item>
                <el-form-item label="提交时间">
                    <el-input
                            v-model="details.updateTime"
                            readonly
                    />
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        <el-dialog v-model="dialogAddRecord" title="风险等级编辑" @close="closeAdd">
            <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
                <el-form-item label="所属时间" prop="month">
                    <el-date-picker
                            v-model="addRecord.month"
                            type="month"
                            placeholder="请选择日期"
                            format="YYYY-MM" value-format="YYYY-MM"
                    />
                </el-form-item>
                <el-form-item label="风险类型" prop="level">
                    <el-select v-model="addRecord.level" placeholder="请选择">
                        <el-option label="高风险" value="高风险" />
                        <el-option label="低风险" value="低风险" />
                    </el-select>
                </el-form-item>
                <el-form-item label="风险个数" prop="amount">
                    <el-input
                            v-model="addRecord.amount"
                            placeholder="请填写风险个数"
                            type="number"
                    >
                    </el-input>
                </el-form-item>
                <el-form-item>
                    <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
                    <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
                </el-form-item>
            </el-form>
        </el-dialog>
        <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear">
            <span>您确定要删除该条记录吗?</span>
            <template #footer>
          <span class="dialog-footer">
              <el-button @click="deleteDialog = false" size="default">取消</el-button>
            <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
          </span>
            </template>
        </el-dialog>
    </div>
</template>
<script lang="ts" setup>
    import { toRefs, reactive, ref } from 'vue';
    import { storeToRefs } from 'pinia';
    import { initBackEndControlRoutes } from '/@/router/backEnd';
    import {useUserInfo} from "/@/stores/userInfo";
    import { Session } from '/@/utils/storage';
    import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue'
    import { ElTable } from 'element-plus'
    import { FormInstance, FormRules } from 'element-plus'
    let global: any = {
        homeChartOne: null,
        homeChartTwo: null,
        homeCharThree: null,
        dispose: [null, '', undefined],
    };
    interface stateType {
        homeOne: Array <type>
    }
    interface type {
    }
    const userInfo = useUserInfo()
    const { userInfos } = storeToRefs(userInfo);
    const state  = reactive<stateType>({});
    const currentPage = ref(1)
    const pageSize = ref(10)
    const chosenIndex = ref(-1)
    const handleSizeChange = (val: number) => {
        console.log(`${val} items per page`)
    }
    const handleCurrentChange = (val: number) => {
        console.log(`current page: ${val}`)
    }
    // 时间格式化
    const timeForm = {
        hour12: false,
        year: 'numeric',
        month: '2-digit',
        day: '2-digit',
        hour: '2-digit',
        minute: '2-digit',
        second: '2-digit'
    }
    const tableData = reactive(
            [
            {
                month: '2022-07',
                level: '低风险',
                amount: 1,
                updateTime: '2022-07-26 15:55:00'
            },
            {
                month: '2022-06',
                level: '高风险',
                amount: 2,
                updateTime: '2022-07-26 15:55:00'
            }
        ]
    )
    const addRef = ref<FormInstance>()
    const addRules = reactive<FormRules>({
        month:[{required: true, message: '该内容不能为空'}],
        level:[{required: true, message: '该内容不能为空',trigger:'blur'}],
        amount:[{required: true, message: '该内容不能为空',trigger:'blur'}]
    })
    const dialogDetails = ref(false)
    const dialogAddRecord = ref(false)
    const deleteDialog = ref(false)
    const addRecord = ref({})
    const details = ref({})
    const viewRecord = (row) =>{
        details.value = JSON.parse(JSON.stringify(row))
        dialogDetails.value = true
    }
    const deleteRecord = (index) =>{
        chosenIndex.value = index
        deleteDialog.value = true
    }
    const conFirmDelete = ()=> {
        tableData.splice(chosenIndex.value,1)
        deleteDialog.value = false
    }
    const confirmAddRecord = async (formEl: FormInstance | undefined) =>{
        if (!formEl) return
        await formEl.validate((valid, fields) => {
            if (valid) {
                if(chosenIndex.value == -1){
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData.unshift(addRecord.value)
                }else{
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData[chosenIndex.value] = addRecord.value
                }
                dialogAddRecord.value =false
            } else {
                console.log('error submit!', fields)
            }
        })
    }
    const closeAdd =()=>{
        addRecord.value={}
        chosenIndex.value = -1
    }
    const indexClear = ()=>{
        chosenIndex.value = -1
    }
    const editRecord =(index, row)=>{
        dialogAddRecord.value = true
        chosenIndex.value = index
        addRecord.value = JSON.parse(JSON.stringify(row))
    }
    // 折线图
    const renderMenu = async (value: string) => {
        Session.set('projectId',value)
        userInfos.value.projectId = value
        await initBackEndControlRoutes();
    };
</script>
<style scoped lang="scss">
    $homeNavLengh: 8;
    .home-container {
        height: 100%;
        overflow: hidden;
        padding: 20px;
        .homeCard{
            width: 100%;
            padding: 20px;
            background: #fff;
            border-radius: 4px;
        }
        .el-row{
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            &:last-child {
                margin-bottom: 0;
            }
            .grid-content{
                align-items: center;
                min-height: 36px;
            }
            .topInfo {
                display: flex;
                align-items: center;
                font-size: 16px;
                font-weight: bold;
                &>div{
                    white-space: nowrap;
                    margin-right: 20px;
                }
            }
        }
        .mainPages{
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
        .main-card{
            width: 100%;
            .cardTop{
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 20px;
                .mainCardBtn{
                    margin: 0;
                }
            }
        }
        .pageBtn{
            display: flex;
            align-items: center;
            justify-content: right;
            margin-top: 20px;
            .demo-pagination-block + .demo-pagination-block {
                margin-top: 10px;
            }
            .demo-pagination-block .demonstration {
                margin-bottom: 16px;
            }
        }
    }
    .el-input{
        width: 100% !important;
    }
    .el-date-editor::v-deep{
        width: 100%;
    }
    .el-select{
        width: 100%;
    }
</style>
src/views/specialWorkSystem/afterWorkManagement/workTicketCheck/index.vue
@@ -256,7 +256,7 @@
        await formEl.validate((valid, fields) => {
            if (valid) {
                if(chosenIndex.value == -1){
                    tableData.push(addRecord.value)
                    tableData.unshift(addRecord.value)
                }else{
                    tableData[chosenIndex.value] = addRecord.value
                }
src/views/specialWorkSystem/afterWorkManagement/workTicketRecord/index.vue
@@ -210,7 +210,7 @@
        await formEl.validate((valid, fields) => {
            if (valid) {
                if(chosenIndex.value == -1){
                    tableData.push(addRecord.value)
                    tableData.unshift(addRecord.value)
                }else{
                    tableData[chosenIndex.value] = addRecord.value
                }
src/views/specialWorkSystem/approveProcessManagement/approveLinkSettings/approveLinkSetting/index.vue
@@ -225,7 +225,7 @@
                if(chosenIndex.value == -1){
                    addRecord.value.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData.push(addRecord.value)
                    tableData.unshift(addRecord.value)
                }else{
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData[chosenIndex.value] = addRecord.value
src/views/specialWorkSystem/approveProcessManagement/approveLinkSettings/approveTypeSetting/index.vue
@@ -227,7 +227,7 @@
                if(chosenIndex.value == -1){
                    addRecord.value.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData.push(addRecord.value)
                    tableData.unshift(addRecord.value)
                }else{
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData[chosenIndex.value] = addRecord.value
src/views/specialWorkSystem/approveProcessManagement/approveLinkSettings/reportTypeSetting/index.vue
@@ -149,7 +149,7 @@
                        if(rowIndex.value == -1){
                            reportForm.value.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            reportForm.value.editeTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            tableData.push(reportForm.value)
                            tableData.unshift(reportForm.value)
                        }else{
                            reportForm.value.editeTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            tableData[rowIndex.value] = reportForm.value
src/views/specialWorkSystem/approveProcessManagement/approveProcessList/index.vue
@@ -301,7 +301,7 @@
            if (valid) {
                if(chosenIndex.value == -1){
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData.push(addRecord.value)
                    tableData.unshift(addRecord.value)
                }else{
                    addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                    tableData[chosenIndex.value] = addRecord.value
src/views/specialWorkSystem/workApplyManagement/workApplyForm/index.vue
@@ -522,7 +522,7 @@
                if (!formEl) return
                await formEl.validate((valid, fields) => {
                    if (valid) {
                        form.workerList.push(addWorkerForm.value)
                        form.workerList.unshift(addWorkerForm.value)
                        addWorkerForm.value = {
                            worker: '',
                            role: '',
src/views/specialWorkSystem/workBasicManagementSetting/certificateFilterSetting/index.vue
@@ -197,7 +197,7 @@
                await formEl.validate((valid, fields) => {
                    if (valid) {
                        if(chosenIndex.value == -1){
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            tableData[chosenIndex.value] = addRecord.value
                        }
src/views/specialWorkSystem/workBasicManagementSetting/personalProtectDevices/index.vue
@@ -174,7 +174,7 @@
                await formEl.validate((valid, fields) => {
                    if (valid) {
                        if(chosenIndex.value == -1){
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            tableData[chosenIndex.value] = addRecord.value
                        }
src/views/specialWorkSystem/workBasicManagementSetting/securityMeasuresManagement/index.vue
@@ -278,7 +278,7 @@
                    if (valid) {
                        if(chosenIndex.value == -1){
                            addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            addRecord.value.updateTime = new Date().toLocaleString('zh', timeForm).replace(/\//g,'-')
                            tableData[chosenIndex.value] = addRecord.value
src/views/specialWorkSystem/workBasicManagementSetting/workTypeSetting/index.vue
@@ -220,7 +220,7 @@
                await formEl.validate((valid, fields) => {
                    if (valid) {
                        if(chosenIndex.value == -1){
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            tableData[chosenIndex.value] = addRecord.value
                        }
src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
@@ -427,7 +427,7 @@
                await formEl.validate((valid, fields) => {
                    if (valid) {
                        if(chosenIndex.value == -1){
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            tableData[chosenIndex.value] = addRecord.value
                        }
src/views/specialWorkSystem/workPlan/workReservation/index.vue
@@ -318,7 +318,7 @@
                await formEl.validate((valid, fields) => {
                    if (valid) {
                        if(chosenIndex.value == -1){
                            tableData.push(addRecord.value)
                            tableData.unshift(addRecord.value)
                        }else{
                            tableData[chosenIndex.value] = addRecord.value
                        }