From 988558aaa309068fd393cc654be537434b0a15ea Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期四, 11 八月 2022 19:11:18 +0800 Subject: [PATCH] 修改 --- src/views/doublePrevent/riskLevel/event/components/safetyRiskEventDialog.vue | 4 src/views/accidentManagementSystem/workInjuryDeclaration/index.vue | 763 ++-- src/views/contingencyManagement/panManagement/component/approval.vue | 169 src/views/contingencyManagement/contingency/component/openAdd.vue | 70 src/views/intellectInspect/inspectBasic/discriminate/index.vue | 29 src/views/goalManagement/Goalsummary/index.vue | 20 src/views/loginPage/loginPage.vue | 282 src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/components/workDialog.vue | 22 src/views/specialWorkSystem/workApplyManage/workTicket/components/tempElectForm.vue | 153 src/layout/navBars/breadcrumb/user.vue | 173 src/views/specialWorkSystem/workApplyManage/workTicket/components/highWorkForm.vue | 153 src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/components/reportDialog.vue | 32 src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue | 22 src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue | 15 .env.development | 13 src/views/specialWorkSystem/workApplyManage/workTicket/components/cutLineForm.vue | 220 + src/views/accidentManagementSystem/accidentReport/component/openAdd.vue | 80 src/views/facilityManagement/ProductionEquipment/index.vue | 36 src/components/equipmentDailog/repairDailog.vue | 114 src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue | 6 src/views/specialWorkSystem/approveProcessManage/examineTemplate/index.vue | 367 ++ src/components/equipmentDailog/Dailog.vue | 105 src/views/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/openAdd.vue | 4 src/views/goalManagement/targetDecompositionMonth/index.vue | 2 src/views/accidentManagementSystem/accidentReport/index.vue | 17 src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue | 14 src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/components/rectifyDialog.vue | 10 src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue | 77 src/components/checkTemplate/index.vue | 434 +- src/views/goalManagement/safetyAssessment/component/Dailog.vue | 45 src/views/contingencyManagement/emergencyResources/emergencySupplies/component/maintain.vue | 1 src/views/facilityManagement/InstrumentationInformation/index.vue | 42 src/components/equipmentDailog/maintenanceDailog.vue | 87 src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/components/checkDialog.vue | 23 src/views/specialWorkSystem/workApplyManage/workTicket/components/limitedSpaceForm.vue | 175 + src/views/intellectInspect/inspectRecordManage/inspectRecord/components/inspectRecordDialog.vue | 12 src/views/specialWorkSystem/workApplyManage/workTicket/components/hangLoadForm.vue | 169 + src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue | 16 src/views/facilityManagement/deviceType/component/Dailog.vue | 20 src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue | 10 src/views/contingencyManagement/panManagement/component/abolishLibrary.vue | 11 src/views/intellectInspect/inspectBasic/inspectPoint/index.vue | 16 src/views/specialWorkSystem/workApplyManage/workTicket/components/dirtWorkForm.vue | 221 + src/views/contingencyManagement/panManagement/component/approvalProcess.vue | 316 - src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/index.vue | 37 src/views/contingencyManagement/emergencyResources/emergencySupplies/component/inspect.vue | 1 src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue | 14 src/views/doublePrevent/riskLevel/riskCheckUnit/index.vue | 17 src/views/intellectInspect/inspectBasic/facility/index.vue | 16 src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue | 27 src/views/safeKnowledge/index.vue | 0 src/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue | 10 src/views/contingencyManagement/contingency/index.vue | 31 src/views/doublePrevent/riskLevel/device/components/productionDeviceDialog.vue | 8 src/views/intellectInspect/inspectBasic/inspectTarget/index.vue | 14 src/components/equipmentDailog/detectDailog.vue | 94 src/views/facilityManagement/safetyEquipment/index.vue | 65 src/views/goalManagement/performanceAppraisal/component/DailogAq.vue | 8 src/components/equipmentDailog/standardDailog.vue | 72 src/components/DailogSearchUser/index.vue | 21 src/components/iconSelector/index.vue | 461 +- src/views/doublePrevent/riskLevel/event/index.vue | 13 src/views/goalManagement/Incentivestandard/component/DailogAdd.vue | 6 src/views/doublePrevent/riskLevel/action/components/riskControlMeasureDialog.vue | 20 src/views/specialWorkSystem/workApplyManage/workTicket/components/fireWorkForm.vue | 164 + src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/index.vue | 13 src/views/contingencyManagement/panManagement/index.vue | 22 src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/components/recordDialog.vue | 2 src/views/goalManagement/safetyAssessment/component/DailogAdd.vue | 249 + src/views/specialWorkSystem/workApplyManage/workTicket/components/blindPanelForm.vue | 354 ++ src/components/equipmentDailog/categoryDailog.vue | 122 src/views/goalManagement/IncentiveRecording/index.vue | 13 src/components/equipmentDailog/DailogS.vue | 215 src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/component/openAdd.vue | 4 src/views/goalManagement/targetDecompositionYear/index.vue | 2 .env.production | 4 src/api/goalManagement/index.ts | 2 src/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue | 7 src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue | 15 src/views/facilityManagement/keyEquipment/index.vue | 811 ++-- src/views/contingencyManagement/panManagement/component/openAdd.vue | 163 src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue | 74 src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue | 118 src/views/goalManagement/performanceAppraisal/index.vue | 10 src/views/goalManagement/targetDecompositionYear/component/Dailog.vue | 52 src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/index.vue | 30 src/views/specialWorkSystem/approveProcessManage/templateSetting/index.vue | 293 + src/views/specialWorkSystem/workApplyManage/workTicket/index.vue | 671 ++++ src/views/doublePrevent/riskLevel/unit/index.vue | 13 src/views/specialWorkSystem/workApplyManage/myJobApply/index.vue | 362 ++ src/views/doublePrevent/riskLevel/action/index.vue | 15 src/views/contingencyManagement/emergencyPlanStartRecord/index.vue | 3 .env | 2 src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue | 8 src/views/contingencyManagement/emergencyPlanStartRecord/component/selectEmergencyPlan.vue | 6 src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/component/openAdd.vue | 4 src/views/goalManagement/performanceAppraisal/component/DailogKhS.vue | 2 src/views/doublePrevent/riskLevel/unit/components/safetyRiskAnalyseUnitDialog.vue | 10 /dev/null | 39 src/views/doublePrevent/riskLevel/device/index.vue | 13 src/views/accidentManagementSystem/accidentExpress/component/openAdd.vue | 17 src/views/goalManagement/targetSettings/component/dailogAdd.vue | 2 src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue | 20 src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue | 74 104 files changed, 6,788 insertions(+), 2,717 deletions(-) diff --git a/.env b/.env index e0dead4..5cf9abf 100644 --- a/.env +++ b/.env @@ -5,6 +5,6 @@ VITE_OPEN = false # public path 配置线上环境路径(打包)、本地通过 http-server 访问时,请置空即可 -#VITE_PUBLIC_PATH = 'http://121.239.169.27:6006' VITE_PUBLIC_PATH = 'http://121.239.169.27:6006' #VITE_PUBLIC_PATH = 'http://192.168.0.179:6006' +#VITE_PUBLIC_PATH = 'http://192.168.0.52:6006' diff --git a/.env.development b/.env.development index 23bf9f2..de61f1c 100644 --- a/.env.development +++ b/.env.development @@ -1,12 +1,17 @@ # 本地环境 ENV = 'development' -# 本地环境接口地址 #VITE_API_URL = 'http://192.168.0.35:8008' +#李宇飞接口地址 #VITE_API_URL = 'http://192.168.0.29:8008' -VITE_API_URL = 'http://192.168.0.29:8008' -#VITE_API_URL = 'http://192.168.0.69:8008' +#黄振接口地址 +VITE_API_URL = 'http://192.168.0.69:8008' +#戚会山接口地址 #VITE_API_URL = 'http://192.168.0.52:8011/safeplatform' -#VITE_API_URL = 'http://121.239.169.27:16006/safeplatform' +#本地测试接口地址 #VITE_API_URL_OUT = 'http://192.168.0.52:8011/safeplatform-out' +#本地外包测试接口地址 +#VITE_API_URL = 'http://121.239.169.27:16006/safeplatform' +#线上正式环境接口地址 VITE_API_URL_OUT = 'http://121.239.169.27:16006/safeplatform-out' +#线上正式环境外包接口地址 diff --git a/.env.production b/.env.production index ead0942..73165f4 100644 --- a/.env.production +++ b/.env.production @@ -2,7 +2,7 @@ ENV = 'production' # 线上环境接口地址 -#VITE_API_URL = 'http://121.239.169.27:16008/safeplatform' -#VITE_API_URL_OUT = 'http://121.239.169.27:16008/safeplatform-out' VITE_API_URL = 'http://121.239.169.27:16006/safeplatform' VITE_API_URL_OUT = 'http://121.239.169.27:16006/safeplatform-out' +#VITE_API_URL = 'http://192.168.0.52:8011/safeplatform' +#VITE_API_URL_OUT = 'http://192.168.0.52:8011/safeplatform-out' diff --git a/src/api/goalManagement/index.ts b/src/api/goalManagement/index.ts index 412f1a7..45e866b 100644 --- a/src/api/goalManagement/index.ts +++ b/src/api/goalManagement/index.ts @@ -265,7 +265,7 @@ // 人员 getManName: (params: any) => { return request({ - url: `/account/dep/list?depId=${params}`, + url: import.meta.env.VITE_API_URL_OUT + `/account/dep/list?depId=${params}`, method: 'get' }); } diff --git a/src/components/DailogSearchUser/index.vue b/src/components/DailogSearchUser/index.vue index e7f8eb1..7345d2e 100644 --- a/src/components/DailogSearchUser/index.vue +++ b/src/components/DailogSearchUser/index.vue @@ -13,20 +13,20 @@ <el-col :span="14" style="padding: 20px"> <el-form ref="ruleFormRef" :model="ruleForm" status-icon> <el-row> - <el-col :span="10" :offset="1"> + <!-- <el-col :span="10" :offset="1"> <el-form-item size="default"> <el-input v-model="ruleForm.pass" placeholder="登录名" /> </el-form-item> - </el-col> + </el-col> --> <el-col :span="8" :offset="1"> <el-form-item> - <el-button size="default" type="primary" >查询</el-button> - <el-button size="default">重置</el-button> + <!-- <el-button size="default" type="primary" >查询</el-button> --> + <el-button size="default" @click="clear">清除选择</el-button> </el-form-item> </el-col> </el-row> </el-form> - <el-table :data="tableData" style="width: 100%; margin-top: 20px" @selection-change="handleSelectionChange"> + <el-table :data="tableData" style="width: 100%; margin-top: 20px" ref="clearAll" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" v-if="types==0"/> <el-table-column align="center" v-if="types!=0"> <template #default="scope"> @@ -164,7 +164,7 @@ }; const handleSelectionChange = (val:any) => { dynamicTags.value=val -} + } const types=ref() // 开启弹窗 const dialogVisible = ref(false); @@ -189,8 +189,17 @@ } dialogVisible.value = false; + clear() }; + const clearAll=ref() + const clear=()=>{ + dynamicTags.value=[] + radio1.value="" + clearAll.value.clearSelection() + } return { + clear, + clearAll, total, types, filterText, diff --git a/src/components/checkTemplate/index.vue b/src/components/checkTemplate/index.vue index 24f6c25..7dcd7eb 100644 --- a/src/components/checkTemplate/index.vue +++ b/src/components/checkTemplate/index.vue @@ -1,250 +1,230 @@ <template> - <el-dialog v-model="dialogVisible" title="选择检查模板" width="900px" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row> - <el-col :span="18"> - <el-row> - <el-col :span="24"> - <el-form ref="ruleFormRef" :inline="true" status-icon> - <el-form-item> - <el-input size="default" v-model="listQuery.searchParams.id" placeholder="id" style="max-width: 215px;"/> - </el-form-item> - <el-form-item> - <el-input size="default" v-model="listQuery.searchParams.teamName" placeholder="队伍名称" style="max-width: 215px;padding: 0 12px;"/> - </el-form-item> - <el-form-item> - <el-button size="default" type="primary" @click="onSubmit">查询</el-button> - <el-button size="default" @click="submitReset">重置</el-button> - </el-form-item> - </el-form> - </el-col> - <el-col :span="24"> - <el-button size="default" :icon="Delete" style="margin-top: 15px;" @click="submitReset">清除选择</el-button> - </el-col> - </el-row> - <el-table - :data="tableData" - ref="multipleTableRef" - style="width: 100%;margin-top:20px" - @selection-change="handleSelectionChange" - > - <el-table-column type="selection" width="55" v-if="types==0"> - <template #default="scope" v-if="types!=0"> - <el-radio-group v-model="radio1"> - <el-radio :label="scope.row.id" @click="radio(scope.row)" size="large">{{ null }}</el-radio> - </el-radio-group> - </template> - </el-table-column> - <el-table-column align="center" prop="id" label="id" /> - <el-table-column align="center" prop="teamName" label="队伍名称"/> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-col> - <el-col :span="6" style="padding-left: 15px"> - <div v-if="dynamicTags[0] == '' ? false : true"> - <el-tag - v-for="tag in dynamicTags" - :key="tag" - class="mx-1" - style="margin: 5px" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag.teamName }} - </el-tag> - </div> - </el-col> - </el-row> - <template #footer> + <el-dialog v-model="dialogVisible" title="选择应急队伍" width="900px" draggable :fullscreen="full"> + <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> + <el-row> + <el-col :span="18"> + <el-row> + <el-col :span="24"> + <el-form ref="ruleFormRef" :inline="true" status-icon> + <el-form-item> + <el-input size="default" v-model="listQuery.searchParams.teamName" placeholder="队伍名称" style="max-width: 215px; padding: 0 12px" /> + </el-form-item> + <el-form-item> + <el-button size="default" type="primary" @click="onSubmit">查询</el-button> + <el-button size="default" @click="submitReset">重置</el-button> + </el-form-item> + </el-form> + </el-col> + <el-col :span="24"> + <el-button size="default" :icon="Delete" style="margin-top: 15px" @click="submitReset">清除选择</el-button> + </el-col> + </el-row> + <el-table :data="tableData" ref="multipleTableRef" style="width: 100%; margin-top: 20px" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" v-if="types == 0"> + <template #default="scope" v-if="types != 0"> + <el-radio-group v-model="radio1"> + <el-radio :label="scope.row.id" @click="radio(scope.row)" size="large">{{ null }}</el-radio> + </el-radio-group> + </template> + </el-table-column> + <el-table-column align="center" prop="id" label="id" /> + <el-table-column align="center" prop="teamName" label="队伍名称" /> + </el-table> + <div class="pages"> + <el-pagination + v-model:currentPage="pageIndex" + v-model:page-size="pageSize" + :page-sizes="[10, 20, 30, 40]" + layout="total, sizes, prev, pager, next, jumper" + :total="total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> + </el-col> + <el-col :span="6" style="padding-left: 15px"> + <div v-if="dynamicTags[0] == '' ? false : true"> + <el-tag + v-for="tag in dynamicTags" + :key="tag" + class="mx-1" + style="margin: 5px" + closable + :disable-transitions="false" + @close="handleClose(tag)" + > + {{ tag.teamName }} + </el-tag> + </div> + </el-col> + </el-row> + <template #footer> <span class="dialog-footer"> <el-button @click="dialogVisible = false" size="default">关闭</el-button> <el-button type="primary" @click="submitForm" size="default">确定</el-button> </span> - </template> - </el-dialog> + </template> + </el-dialog> </template> <script lang="ts"> -import { - defineComponent, - reactive, - ref, - onMounted, -} from 'vue'; -import { - Delete, - FullScreen -} from '@element-plus/icons-vue'; -import { - ElMessage, -} from 'element-plus'; -import {contingencyApi} from "/@/api/contingencyManagement/contingency"; +import { defineComponent, reactive, ref, onMounted } from 'vue'; +import { Delete, FullScreen } from '@element-plus/icons-vue'; +import { ElMessage } from 'element-plus'; +import { contingencyApi } from '/@/api/contingencyManagement/contingency'; export default defineComponent({ - setup(props, { emit }) { - const types=ref() - const dialogVisible = ref<boolean>(false); - const openDailog = (type:any) => { - types.value=type - dialogVisible.value = true; - // onSubmit(); - }; - // 搜索条件 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - teamName: "", - id: "", - } - }); - // 列表数据请求 - const onSubmit = async () => { - let res = await contingencyApi().getTeamManagementList(listQuery) - if(res.data.code === '200'){ - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - }else{ - ElMessage({ - showClose: true, - type:'error', - message:res.data.msg - }) - } - } - const submitForm = () => { - if(types.value==0){ - emit('SearchUser',dynamicTags.value,types.value); - } - else { - emit('SearchUser',dynamicTags.value[0],types.value); - } - dialogVisible.value = false; - }; - const handleSelectionChange = (val:any) => { - dynamicTags.value=val - } - // 重置 - const submitReset = () => { - listQuery.searchParams.teamName = ''; - listQuery.searchParams.id = ''; - radio1.value="" - dynamicTags.value[0]="" - onSubmit(); - }; - // 表格 - const tableData = ref(); - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - onSubmit(); - }; - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - onSubmit(); - } - // 右方点击添加后显示标签 - const dynamicTags = ref(['']); - const handleClose = (tag: string) => { - dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); - radio1.value = ''; - }; - const radio1 = ref(''); - const radio = (event: any) => { - console.log(event) - dynamicTags.value[0] = event; - }; - onMounted(() => { - onSubmit(); - }); - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - dialogVisible, - openDailog, - tableData, - pageSize, - pageIndex, - handleSizeChange, - handleCurrentChange, - dynamicTags, - handleClose, - Delete, - toggleFullscreen, - FullScreen, - full, - onSubmit, - listQuery, - submitReset, - total, - radio, - radio1, - submitForm, - types, - handleSelectionChange, - }; - }, + setup(props, { emit }) { + const types = ref(); + const dialogVisible = ref<boolean>(false); + const openDailog = (type: any) => { + types.value = type; + dialogVisible.value = true; + // onSubmit(); + }; + // 搜索条件 + const listQuery = reactive({ + pageIndex: 1, + pageSize: 10, + searchParams: { + teamName: '', + }, + }); + // 列表数据请求 + const onSubmit = async () => { + let res = await contingencyApi().getTeamManagementList(listQuery); + if (res.data.code === '200') { + tableData.value = res.data.data; + pageIndex.value = res.data.pageIndex; + pageSize.value = res.data.pageSize; + total.value = res.data.total; + } else { + ElMessage({ + showClose: true, + type: 'error', + message: res.data.msg, + }); + } + }; + const submitForm = () => { + if (types.value == 0) { + emit('SearchUser', dynamicTags.value, types.value); + } else { + emit('SearchUser', dynamicTags.value[0], types.value); + } + dialogVisible.value = false; + }; + const handleSelectionChange = (val: any) => { + dynamicTags.value = val; + }; + // 重置 + const submitReset = () => { + listQuery.searchParams.teamName = ''; + listQuery.searchParams.id = ''; + radio1.value = ''; + dynamicTags.value[0] = ''; + onSubmit(); + }; + // 表格 + const tableData = ref(); + // 分页 + const pageIndex = ref(); + const pageSize = ref(); + const total = ref(); + const handleSizeChange = (val: number) => { + listQuery.pageSize = val; + onSubmit(); + }; + const handleCurrentChange = (val: number) => { + listQuery.pageIndex = val; + onSubmit(); + }; + // 右方点击添加后显示标签 + const dynamicTags = ref(['']); + const handleClose = (tag: string) => { + dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); + radio1.value = ''; + }; + const radio1 = ref(''); + const radio = (event: any) => { + console.log(event); + dynamicTags.value[0] = event; + }; + onMounted(() => { + onSubmit(); + }); + //全屏 + const full = ref(false); + const toggleFullscreen = () => { + if (full.value == false) { + full.value = true; + } else { + full.value = false; + } + }; + return { + dialogVisible, + openDailog, + tableData, + pageSize, + pageIndex, + handleSizeChange, + handleCurrentChange, + dynamicTags, + handleClose, + Delete, + toggleFullscreen, + FullScreen, + full, + onSubmit, + listQuery, + submitReset, + total, + radio, + radio1, + submitForm, + types, + handleSelectionChange, + }; + }, }); </script> <style scoped> -.el-form--inline .el-form-item{ - margin-bottom: 0; - margin-right: 0; +.el-form--inline .el-form-item { + margin-bottom: 0; + margin-right: 0; } /*分页*/ - .pages{ - /*display: flex;*/ - /*justify-content: flex-end;*/ - margin-top: 15px; - } +.pages { + /*display: flex;*/ + /*justify-content: flex-end;*/ + margin-top: 15px; +} ::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px; } ::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; + background-color: #409eff; + color: #fff; } ::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px; } -::v-deep .el-pagination button:disabled{ - color: #c0c4cc; +::v-deep .el-pagination button:disabled { + color: #c0c4cc; } -::v-deep .el-pagination .btn-next{ - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; +::v-deep .el-pagination .btn-next { + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px; } </style> diff --git a/src/components/equipmentDailog/Dailog.vue b/src/components/equipmentDailog/Dailog.vue index f56333f..c75400c 100644 --- a/src/components/equipmentDailog/Dailog.vue +++ b/src/components/equipmentDailog/Dailog.vue @@ -6,7 +6,7 @@ <el-input v-model="form.qName" placeholder="请填写装置设施名称" /> </el-form-item> <el-form-item label="装置设施位号" size="default" prop="positionNum"> - <el-input v-model="form.positionNum" placeholder="请填写装置设施位号" /> + <el-input disabled v-model="form.positionNum" placeholder="请填写装置设施位号" /> </el-form-item> <el-form-item label="装置设施用途" size="default" prop="qUsage"> <el-input v-model="form.qUsage" placeholder="请填写装置设施用途" /> @@ -14,20 +14,20 @@ <el-form-item label="装置设施型号" size="default" prop="model"> <el-input v-model="form.model" placeholder="请填写装置设施型号" /> </el-form-item> - <el-form-item label="类型/类别外键" size="default" prop="equipmentTypeId"> - <el-input v-model="form.equipmentTypeId" placeholder="请选择"> + <el-form-item label="类型/类别外键" size="default" prop="equipmentTypeName"> + <el-input v-model="form.equipmentTypeName" placeholder="请选择"> <template #append> <el-button :icon="Search" @click="opencategory"></el-button> </template> </el-input> </el-form-item> <!-- <el-form-item label="区域名称" size="default"> - <el-input v-model="form.name" placeholder="请选择"> - <template #append> - <el-button :icon="Search" @click="openRegion"></el-button> - </template> - </el-input> - </el-form-item> --> + <el-input v-model="form.name" placeholder="请选择"> + <template #append> + <el-button :icon="Search" @click="openRegion"></el-button> + </template> + </el-input> + </el-form-item> --> <el-form-item label="单位部门" size="default" prop="departmentId"> <el-tree-select v-model="form.departmentId" :data="data" check-strictly="true" class="w100" :props="propse" placeholder="请选择" /> </el-form-item> @@ -35,7 +35,7 @@ <el-input v-model="form.setPart" placeholder="请填写设置部位" /> </el-form-item> <el-form-item label="生产日期" size="default" prop="produceTime"> - <el-date-picker v-model="form.produceTime" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> + <el-date-picker v-model="form.produceTime" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> <el-form-item label="使用期限(天)" size="default" prop="useEndDay"> <el-input v-model="form.useEndDay" placeholder="请填写使用期限" /> @@ -44,11 +44,11 @@ <el-select v-model="form.lifeCycle" placeholder="请选择" style="width: 100%"> <el-option label="已投用" :value="1" /> <el-option label="库存中" :value="2" /> - <el-option label="报废" :value="3" /> + <el-option label="报废" :value="3" /> </el-select> </el-form-item> <el-form-item label="投用日期" size="default" prop="useDate"> - <el-date-picker v-model="form.useDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> + <el-date-picker v-model="form.useDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> <el-form-item label="维修状态" size="default" prop="repairStatus"> <el-select v-model="form.repairStatus" placeholder="请选择" style="width: 100%"> @@ -68,31 +68,33 @@ <el-date-picker v-model="form.previousCheckDate" format="YYYY-MM-DD HH:mm:ss" + value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> <el-form-item label="上次检测日期" size="default" prop="previousTestDate"> - <el-date-picker v-model="form.previousTestDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> + <el-date-picker v-model="form.previousTestDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> <el-form-item label="上次保养日期" size="default" prop="previousTakecareDate"> <el-date-picker v-model="form.previousTakecareDate" format="YYYY-MM-DD HH:mm:ss" + value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> <el-form-item label="下次检查日期" size="default" prop="nextCheckDate"> - <el-date-picker v-model="form.nextCheckDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> + <el-date-picker v-model="form.nextCheckDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> <el-form-item label="下次检测日期" size="default" prop="nextTestDate"> - <el-date-picker v-model="form.nextTestDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> + <el-date-picker v-model="form.nextTestDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> <el-form-item label="下次保养日期" size="default" prop="nextTakecareDate"> - <el-date-picker v-model="form.nextTakecareDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> + <el-date-picker v-model="form.nextTakecareDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> <el-form-item label="负责人" size="default" prop="leadingPersonName"> <el-input v-model="form.leadingPersonName" placeholder="请选择"> @@ -169,7 +171,7 @@ <el-input v-model="form.afterStopStep" placeholder="请填写停用后措施" /> </el-form-item> <el-form-item label="实际停用日期" size="default" prop="actualStopDate"> - <el-date-picker v-model="form.actualStopDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> + <el-date-picker v-model="form.actualStopDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> <el-form-item label="停用提交人" size="default" prop="stopSubmitPersonName"> <el-input v-model="form.stopSubmitPersonName" placeholder="请选择"> @@ -179,7 +181,7 @@ </el-input> </el-form-item> <el-form-item label="停用提交日期" size="default" prop="stopSubmitDate"> - <el-date-picker v-model="form.stopSubmitDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> + <el-date-picker v-model="form.stopSubmitDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> <el-form-item label="恢复理由" size="default" prop="recoveryReason"> <el-input v-model="form.recoveryReason" placeholder="请填写恢复理由" /> @@ -188,6 +190,7 @@ <el-date-picker v-model="form.recoverySubmitDate" format="YYYY-MM-DD HH:mm:ss" + value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" @@ -197,6 +200,7 @@ <el-date-picker v-model="form.actualRecoveryDate" format="YYYY-MM-DD HH:mm:ss" + value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" @@ -209,6 +213,7 @@ <el-date-picker v-model="form.destorySubmitDate" format="YYYY-MM-DD HH:mm:ss" + value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" @@ -218,6 +223,7 @@ <el-date-picker v-model="form.actualDestoryDate" format="YYYY-MM-DD HH:mm:ss" + value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" @@ -231,7 +237,7 @@ <el-table-column align="center" prop="takecareMemo" label="保养情况" /> <el-table-column align="center" prop="leadingPersonName" label="保养负责人" /> <el-table-column align="center" prop="takecareDate" :formatter="timeDate" label="保养日期" /> - <el-table-column align="center" prop="leadingPersonDepartmentId" label="保养负责人单位" /> + <el-table-column align="center" prop="leadingPersonDepartmentName" label="保养负责人单位" /> <el-table-column align="center" label="操作"> <template #default="scope"> <el-button link type="primary" @click="openMaintenance('查看', scope.row)" size="small">查看</el-button> @@ -244,11 +250,16 @@ <el-tab-pane label="设备检测" name="second"> <el-button type="primary" size="default" :disabled="disabled" @click="openDetect('新增', '')">新增</el-button> <el-table :data="form.testDetailList" style="width: 100%"> - <el-table-column align="center" prop="testPersonId" label="检测人" /> + <el-table-column align="center" prop="testPersonName" label="检测人" /> <el-table-column align="center" prop="testDate" :formatter="timeDate" label="检测日期" /> - <el-table-column align="center" prop="testPersonDepartmentId" label="检测人单位" /> + <el-table-column align="center" prop="testPersonDepartmentName" label="检测人单位" /> <el-table-column align="center" prop="testMemo" label="检测内容" /> - <el-table-column align="center" prop="testResult" label="检测结果" /> + <el-table-column align="center" label="检测结果" > + <template #default="scope"> + <span v-if="scope.row.testResult==1">成功</span> + <span v-if="scope.row.testResult==2">失败</span> + </template> + </el-table-column> <el-table-column align="center" prop="testStatus" label="检测状态" /> <el-table-column align="center" label="操作"> <template #default="scope"> @@ -263,10 +274,15 @@ <el-button type="primary" size="default" :disabled="disabled" @click="openRepair('新增', '')">新增</el-button> <el-table :data="form.repaireDetailList" style="width: 100%"> <el-table-column align="center" prop="exceptionInfo" label="设施异常项" /> - <el-table-column align="center" prop="repairStatus" label="维修状态" /> + <el-table-column align="center" label="维修状态"> + <template #default="scope"> + <span v-if="scope.row.repairStatus==1">维修中</span> + <span v-if="scope.row.repairStatus==2">已修好</span> + </template> + </el-table-column> <el-table-column align="center" prop="repairMemo" label="维修情况" /> - <el-table-column align="center" prop="repairPersonId" label="维修负责人" /> - <el-table-column align="center" prop="repairPersonDepartmentId" label="维修负责人单位" /> + <el-table-column align="center" prop="repairPersonName" label="维修负责人" /> + <el-table-column align="center" prop="repairPersonDepartmentName" label="维修负责人单位" /> <el-table-column align="center" prop="repairStartDate" :formatter="timeDate" label="维修开始日期" /> <el-table-column align="center" prop="repairEndDate" :formatter="timeDate" label="维修结束日期" /> <el-table-column align="center" label="操作"> @@ -334,6 +350,7 @@ </template> </el-dialog> <categoryDailog ref="categoryShow"></categoryDailog> + <categoryDailog ref="categoryShow" @typeId="Tid"></categoryDailog> <regionDailog ref="regionShow"></regionDailog> <DailogSearchUser ref="UserShow" @SearchUser="userId"></DailogSearchUser> <maintenanceDailog ref="maintenanceShow" @onMain="main"></maintenanceDailog> @@ -356,6 +373,7 @@ import type { UploadProps, UploadUserFile } from 'element-plus'; import { facilityManagementApi } from '/@/api/facilityManagement'; import { goalManagementApi } from '/@/api/goalManagement'; +import { deepClone } from '/@/utils/other'; export default defineComponent({ components: { categoryDailog, regionDailog, DailogSearchUser, maintenanceDailog, detectDailog, repairDailog, standardDailog }, setup(props, { emit }) { @@ -459,7 +477,7 @@ repaireDetailList: [], - equipmentTypeId: 1, + equipmentTypeId: '', useDate: '', @@ -484,10 +502,12 @@ delTestDetails: '', }); const titles = ref(); + const titleT = ref(); const disabled = ref(false); const Dailogtype = ref(false); const openDailog = (title: string, type: boolean, id: number, num: any) => { dialogVisible.value = true; + titleT.value = title; department(); Dailogtype.value = type; if (num == 0) { @@ -519,6 +539,7 @@ qUsage: [], model: [], equipmentTypeId: [], + equipmentTypeName: [{ required: true, message: '类型/类别外键不能为空', trigger: 'change' }], departmentId: [], setPart: [], produceTime: [], @@ -571,6 +592,13 @@ form.value.delRepaireDetails = deleteCId.value.toString(); form.value.delCheckStandardeDetails = deleteDId.value.toString(); dialogVisible.value = false; + delete form.value.equipmentTypeName; + delete form.value.departmentName; + delete form.value.leadingPersonDepartmentName; + delete form.value.leadingDepartmentName; + if (titleT.value == '新建') { + delete form.value.id; + } facilityManagementApi() .getequipmentInfoAddOrUpdate(form.value) .then((res) => { @@ -618,7 +646,7 @@ }; const maintenanceShow = ref(); const openMaintenance = (title: string, data: any) => { - index.value = form.value.takecareDetailList.indexOf(data); + index.value = form.value.takecareDetailList.indexOf(data); maintenanceShow.value.openDailog(title, data); }; const detectShow = ref(); @@ -688,28 +716,32 @@ deleteDId.value.push(tag.id); }; // 回传 - const main = (val: any) => { + const main = (data: any) => { + const val = deepClone(data); if (index.value == -1) { form.value.takecareDetailList.push(val); } else { form.value.takecareDetailList[index.value] = val; } }; - const delect = (val: any) => { + const delect = (data: any) => { + const val = deepClone(data); if (index.value == -1) { form.value.testDetailList.push(val); - } else { + } else { form.value.testDetailList[index.value] = val; } }; - const Repair = (val: any) => { + const Repair = (data: any) => { + const val = deepClone(data); if (index.value == -1) { form.value.repaireDetailList.push(val); } else { form.value.repaireDetailList[index.value] = val; } }; - const Stand = (val: any) => { + const Stand = (data: any) => { + const val = deepClone(data); if (index.value == -1) { form.value.checkStandardeDetailList.push(val); } else { @@ -725,6 +757,11 @@ form.value.stopSubmitPersonId = val.uid; form.value.stopSubmitPersonName = val.realName; } + }; + const Tid = (data: any) => { + form.value.equipmentTypeId = data.id; + form.value.equipmentTypeName = data.typeName; + form.value.positionNum = data.sortNum; }; //全屏 const full = ref(false); @@ -754,6 +791,8 @@ }; const data = ref(); return { + Tid, + deepClone, rules, userId, department, @@ -827,4 +866,4 @@ .el-form .el-form-item:last-of-type { margin-bottom: 22px !important; } -</style> \ No newline at end of file +</style> diff --git a/src/components/equipmentDailog/DailogS.vue b/src/components/equipmentDailog/DailogS.vue index 749925a..01fcf6e 100644 --- a/src/components/equipmentDailog/DailogS.vue +++ b/src/components/equipmentDailog/DailogS.vue @@ -1,11 +1,11 @@ <template> - <el-dialog :fullscreen="full" v-model="dialogVisible" draggable :title="titles" width="60%"> + <el-dialog :fullscreen="full" v-model="dialogVisible" draggable :title="titles" width="60%" @close="resetForm(ruleFormRef)" > <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" label-width="130px" :disabled="disabled"> + <el-form :model="form" ref="ruleFormRef" label-width="130px" :rules="rules" :disabled="disabled"> <el-row> <el-col :span="11"> - <el-form-item label="类型/类别外键" size="default"> - <el-input v-model="form.equipmentTypeId" placeholder="请选择"> + <el-form-item label="类型/类别外键" size="default" prop="equipmentTypeId"> + <el-input v-model="form.equipmentTypeName" placeholder="请选择"> <template #append> <el-button :icon="Search" @click="opencategory"></el-button> </template> @@ -14,7 +14,7 @@ </el-col> <el-col :span="11" :offset="2"> <el-form-item label="装置/部位名称" size="default"> - <el-input v-model="form.name" placeholder="请选择" /> + <el-input v-model="form.name" placeholder="请填写装置/部位名称" /> </el-form-item> </el-col> </el-row> @@ -39,10 +39,10 @@ </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="联系人" size="default"> + <el-form-item label="联系人" size="default" prop="connectPersonName"> <el-input v-model="form.connectPersonName" placeholder="请选择"> <template #append> - <el-button :icon="Search" @click="openUser(0)"></el-button> + <el-button :icon="Search" @click="openUser(1)"></el-button> </template> </el-input> </el-form-item> @@ -50,19 +50,19 @@ </el-row> <el-row> <el-col :span="11"> - <el-form-item label="录入人" size="default"> + <el-form-item label="录入人" size="default" prop="inputPersonName"> <el-input v-model="form.inputPersonName" placeholder="请选择"> <template #append> - <el-button :icon="Search" @click="openUser(1)"></el-button> + <el-button :icon="Search" @click="openUser(2)"></el-button> </template> </el-input> </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="责任人" size="default"> + <el-form-item label="责任人" size="default" prop="responsibilityPersonName"> <el-input v-model="form.responsibilityPersonName" placeholder="请选择"> <template #append> - <el-button :icon="Search" @click="openUser(2)"></el-button> + <el-button :icon="Search" @click="openUser(3)"></el-button> </template> </el-input> </el-form-item> @@ -72,21 +72,21 @@ <el-col :span="11"> <el-form-item label="装置部位分类" size="default"> <el-select v-model="form.partType" placeholder="请选择" style="width: 100%"> - <el-option label="关键装置" value="关键装置" /> - <el-option label="重点部位" value="重点部位" /> + <el-option label="关键装置" value="1" /> + <el-option label="重点部位" value="2" /> </el-select> </el-form-item> </el-col> <el-col :span="11" :offset="2"> <el-form-item label="检查周期" size="default"> - <el-input v-model="form.checkCycle" placeholder="请选择检查周期" /> + <el-input v-model="form.checkCycle" placeholder="请填写检查周期" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="11"> <el-form-item label="相关应急预案" size="default"> - <el-input v-model="form.emergencePlanId" placeholder="请选择"> + <el-input v-model="form.emergencePlanName" placeholder="请选择"> <template #append> <el-button :icon="Search" @click="openPlan"></el-button> </template> @@ -95,21 +95,20 @@ </el-col> <el-col :span="11" :offset="2"> <el-form-item label="主要危险有害因素" size="default"> - <el-input v-model="form.dangerousElement" placeholder="请选择" /> + <el-input v-model="form.dangerousElement" placeholder="请填写主要危险有害因素" /> </el-form-item> </el-col> </el-row> - <el-row> <el-col :span="11"> <el-form-item label="易导致风险" size="default"> - <el-input v-model="form.toDangerous" placeholder="请选择易导致风险" /> + <el-input v-model="form.toDangerous" placeholder="请填写易导致风险" /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> <el-form-item label="应急处置措施" size="default"> - <el-input v-model="form.treatment" placeholder="请选择应急处置措施" /> + <el-input v-model="form.treatment" placeholder="请填写应急处置措施" /> </el-form-item> </el-col> </el-row> @@ -133,68 +132,78 @@ </el-row> <el-row> <el-col :span="11"> - <el-form-item label="备注信息" size="default"> <el-input v-model="form.name" placeholder="请选择应急处置措施" /> </el-form-item> + <el-form-item label="备注信息" size="default"> <el-input v-model="form.memo" placeholder="请填写备注信息" /> </el-form-item> </el-col> </el-row> </el-form> <el-tabs v-model="activeName" class="demo-tabs"> <el-tab-pane label="设备保养" name="first"> - <el-button type="primary" size="default" @click="openMaintenance('新增', '')">新增</el-button> + <el-button type="primary" size="default" @click="openMaintenance('新增', '')" :disabled="disabled">新增</el-button> <el-table :data="form.takecareDetailList" style="width: 100%"> <el-table-column align="center" prop="takecareMemo" label="保养情况" /> - <el-table-column align="center" prop="leadingPersonId" label="保养负责人" /> + <el-table-column align="center" prop="leadingPersonName" label="保养负责人" /> <el-table-column align="center" prop="takecareDate" :formatter="timeDate" label="保养日期" /> - <el-table-column align="center" prop="leadingPersonDepartmentId" label="保养负责人单位" /> + <el-table-column align="center" prop="leadingPersonDepartmentName" label="保养负责人单位" /> <el-table-column align="center" label="操作"> <template #default="scope"> - <el-button link type="primary" @click="openMaintenance('查看', scope.row)" size="small">查看</el-button> - <el-button link type="primary" @click="openMaintenance('修改', scope.row)" size="small">修改</el-button> - <el-button link type="primary" @click="deleteA(scope.row)" size="small">删除</el-button> + <el-button link type="primary" @click="openMaintenance('查看', scope.row)" size="small" :disabled="disabled">查看</el-button> + <el-button link type="primary" @click="openMaintenance('修改', scope.row)" size="small" :disabled="disabled">修改</el-button> + <el-button link type="primary" @click="deleteA(scope.row)" size="small" :disabled="disabled">删除</el-button> </template> </el-table-column> </el-table> </el-tab-pane> <el-tab-pane label="设备检测" name="second"> - <el-button type="primary" size="default" @click="openDetect('新增', '')">新增</el-button> - <el-table :data="form.testDetailList" style="width: 100%"> - <el-table-column align="center" prop="testPersonId" label="检测人" /> + <el-button type="primary" size="default" @click="openDetect('新增', '')" :disabled="disabled">新增</el-button> + <el-table :data="form.checkDetailList" style="width: 100%"> + <el-table-column align="center" prop="testPersonName" label="检测人" /> <el-table-column align="center" prop="testDate" :formatter="timeDate" label="检测日期" /> - <el-table-column align="center" prop="testPersonDepartmentId" label="检测人单位" /> + <el-table-column align="center" prop="testPersonDepartmentName" label="检测人单位" /> <el-table-column align="center" prop="testMemo" label="检测内容" /> - <el-table-column align="center" prop="testResult" label="检测结果" /> + <el-table-column align="center" prop="testResult" label="检测结果" > + <template #default="scope"> + <span v-if="scope.row.testResult == 1">成功</span> + <span v-if="scope.row.testResult == 2">失败</span> + </template> + </el-table-column> <el-table-column align="center" prop="testStatus" label="检测状态" /> <el-table-column align="center" label="操作"> <template #default="scope"> - <el-button link type="primary" @click="openDetect('查看', scope.row)" size="small">查看</el-button> - <el-button link type="primary" @click="openDetect('修改', scope.row)" size="small">修改</el-button> - <el-button link type="primary" @click="deleteB(scope.row)" size="small">删除</el-button> + <el-button link type="primary" @click="openDetect('查看', scope.row)" size="small" :disabled="disabled">查看</el-button> + <el-button link type="primary" @click="openDetect('修改', scope.row)" size="small" :disabled="disabled">修改</el-button> + <el-button link type="primary" @click="deleteB(scope.row)" size="small" :disabled="disabled">删除</el-button> </template> </el-table-column> </el-table> </el-tab-pane> <el-tab-pane label="设备维修" name="third"> - <el-button type="primary" size="default" @click="openRepair('新增', '')">新增</el-button> + <el-button type="primary" size="default" @click="openRepair('新增', '')" :disabled="disabled">新增</el-button> <el-table :data="form.repaireDetailList" style="width: 100%"> <el-table-column align="center" prop="exceptionInfo" label="设施异常项" /> - <el-table-column align="center" prop="repairStatus" label="维修状态" /> + <el-table-column align="center" prop="repairStatus" label="维修状态" > + <template #default="scope"> + <span v-if="scope.row.repairStatus == 1">维修中</span> + <span v-if="scope.row.repairStatus == 2">已维修</span> + </template> + </el-table-column> <el-table-column align="center" prop="repairMemo" label="维修情况" /> - <el-table-column align="center" prop="repairPersonId" label="维修负责人" /> - <el-table-column align="center" prop="repairPersonDepartmentId" label="维修负责人单位" /> + <el-table-column align="center" prop="repairPersonName" label="维修负责人" /> + <el-table-column align="center" prop="repairPersonDepartmentName" label="维修负责人单位" /> <el-table-column align="center" prop="repairStartDate" :formatter="timeDate" label="维修开始日期" /> <el-table-column align="center" prop="repairEndDate" :formatter="timeDate" label="维修结束日期" /> <el-table-column align="center" label="操作"> <template #default="scope"> - <el-button link type="primary" @click="openRepair('查看', scope.row)" size="small">查看</el-button> - <el-button link type="primary" @click="openRepair('修改', scope.row)" size="small">修改</el-button> - <el-button link type="primary" @click="deleteC(scope.row)" size="small">删除</el-button> + <el-button link type="primary" @click="openRepair('查看', scope.row)" size="small" :disabled="disabled">查看</el-button> + <el-button link type="primary" @click="openRepair('修改', scope.row)" size="small" :disabled="disabled">修改</el-button> + <el-button link type="primary" @click="deleteC(scope.row)" size="small" :disabled="disabled">删除</el-button> </template> </el-table-column> </el-table> </el-tab-pane> <el-tab-pane label="检查标准设置" name="fourth"> - <el-button type="primary" size="default" @click="openStandard('新增', '')">新增</el-button> + <el-button type="primary" size="default" @click="openStandard('新增', '')" :disabled="disabled">新增</el-button> <el-table :data="form.checkStandardeDetailList" style="width: 100%"> - <el-table-column align="center" type="indexNum" label="序号" width="75" /> + <el-table-column align="center" prop="indexNum" label="序号" width="75" /> <el-table-column align="center" prop="checkContent" label="检查内容" /> <el-table-column align="center" prop="checkTarget" label="检查指标" /> <el-table-column align="center" prop="unit" label="单位" /> @@ -202,9 +211,9 @@ <el-table-column align="center" prop="rate" label="频次" /> <el-table-column align="center" label="操作"> <template #default="scope"> - <el-button link type="primary" @click="openStandard('查看', scope.row)" size="small">查看</el-button> - <el-button link type="primary" @click="openStandard('修改', scope.row)" size="small">修改</el-button> - <el-button link type="primary" @click="deleteD(scope.row)" size="small">删除</el-button> + <el-button link type="primary" @click="openStandard('查看', scope.row)" size="small" :disabled="disabled">查看</el-button> + <el-button link type="primary" @click="openStandard('修改', scope.row)" size="small" :disabled="disabled">修改</el-button> + <el-button link type="primary" @click="deleteD(scope.row)" size="small" :disabled="disabled">删除</el-button> </template> </el-table-column> </el-table> @@ -241,23 +250,21 @@ </el-tabs> <template #footer> <span class="dialog-footer"> - <el-button @click="resetForm">关闭</el-button> - <el-button type="primary" @click="submitForm">确定</el-button> + <el-button @click="resetForm(ruleFormRef)">关闭</el-button> + <el-button type="primary" @click="submitForm(ruleFormRef)">确定</el-button> </span> </template> </el-dialog> - <categoryDailog ref="categoryShow"></categoryDailog> + <categoryDailog ref="categoryShow" @typeId="Tid"></categoryDailog> <RegionsDialog ref="planShow" @SearchUser="onUser"></RegionsDialog> - <DailogSearchUser ref="UserOneShow" @SearchUser="userId"></DailogSearchUser> -<!-- <DailogSearchUser ref="UserTwoShow" @SearchUser="userId"></DailogSearchUser>--> -<!-- <DailogSearchUser ref="UserThreeShow" @SearchUser="userId"></DailogSearchUser>--> + <DailogSearchUser ref="UserShow" @SearchUser="userId"></DailogSearchUser> <maintenanceDailog ref="maintenanceShow" @onMain="main"></maintenanceDailog> <detectDailog ref="detectShow" @onDelect="delect"></detectDailog> <repairDailog ref="repairShow" @onRepair="Repair"></repairDailog> <standardDailog ref="standardShow" @onStand="Stand"></standardDailog> </template> <script lang="ts"> -import { defineComponent, ref } from 'vue'; +import { defineComponent, ref ,reactive} from 'vue'; import { Search, Plus, FullScreen } from '@element-plus/icons-vue'; import { timeDate } from '/@/assets/index.ts'; import categoryDailog from './categoryDailog.vue'; @@ -267,36 +274,37 @@ import repairDailog from './repairDailog.vue'; import standardDailog from './standardDailog.vue'; import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; -import { ElMessage, ElMessageBox } from 'element-plus'; +import { ElMessage, ElMessageBox ,FormInstance ,FormRules,} from 'element-plus'; import type { UploadProps, UploadUserFile } from 'element-plus'; import { facilityManagementApi } from '/@/api/facilityManagement'; import { goalManagementApi } from '/@/api/goalManagement'; +import {deepClone} from '/@/utils/other' export default defineComponent({ components: { categoryDailog, RegionsDialog, DailogSearchUser, maintenanceDailog, detectDailog, repairDailog, standardDailog }, setup(props, { emit }) { const dialogVisible = ref(false); const form = ref({ - equipmentTypeId: '', - + equipmentTypeId: 1, + equipmentTypeName:"", treatment: '', inputPersonId: '', - inputPersonName:'', + inputPersonName: '', departmentId: '', - delRepaireDetailList: [], + // delRepaireDetailList: [], - delTestDetailList: [], + // delTestDetailList: [], takecareDetailList: [], checkDetailList: [], responsibilityPersonId: '', - responsibilityPersonName:'', - delTakecareStardardeDetailList: [], + responsibilityPersonName: '', + // delTakecareStardardeDetailList: [], connectPersonId: '', - connectPersonName:'', + connectPersonName: '', scenePic: '', @@ -305,6 +313,7 @@ toDangerous: '', dangerousElement: '', + memo:'', takecareStardardeDetailList: [ { @@ -314,17 +323,18 @@ testDetailList: [], checkCycle: '', repaireDetailList: [], - delCheckStandardeDetailList: [], + // delCheckStandardeDetailList: [], leadingPersonName: '', name: '', - delTakecareDetailList: [], + // delTakecareDetailList: [], position: '', - emergencePlanId: '', + emergencePlanId: '', + emergencePlanName:'', checkStandardeDetailList: [], infoTpe: '', @@ -338,11 +348,14 @@ delTestDetails: '', }); + const ruleFormRef = ref<FormInstance>(); const titles = ref(); + const titleT = ref(); const disabled = ref(false); const Dailogtype = ref(false); const openDailog = (title: string, type: boolean, id: number, num: any) => { dialogVisible.value = true; + titleT.value = title; department(); Dailogtype.value = type; if (num == 0) { @@ -375,6 +388,10 @@ form.value.delRepaireDetails = deleteCId.value.toString(); form.value.delCheckStandardeDetails = deleteDId.value.toString(); dialogVisible.value = false; + if (titleT.value == '新建') { + delete form.value.id; + delete form.value.infoTpe + } facilityManagementApi() .getkeypointEquipmentInfoAddOrUpdate(form.value) .then((res) => { @@ -391,8 +408,11 @@ // form.value = null; }; // 取消 - const resetForm = () => { + const resetForm = (formEl: FormInstance | undefined) => { + if (!formEl) return; + formEl.resetFields(); dialogVisible.value = false; + form.value={} }; const activeName = ref('first'); const index = ref<any>(); @@ -408,33 +428,29 @@ }; const onUser = (e: any) => { form.value.emergencePlanId = e.id; + form.value.emergencePlanName=e.name }; - const UserOneShow = ref(); - // const UserTwoShow = ref(); - // const UserThreeShow = ref(); - const openUser = (type: number) => { - // if (type == 0) { - // UserOneShow.value.openDailog(); - // } else if (type == 1) { - // UserTwoShow.value.openDailog(); - // } else if (type == 2) { - // UserThreeShow.value.openDailog(); - // } - UserOneShow.value.openDailog(); + const UserShow = ref(); + const openUser = (type: any) => { + UserShow.value.openDailog(type); }; - const userId = ( type: number,val: any) => { - if (type == 0) { - form.value.connectPersonId = val.uid; - form.value.connectPersonName = val.realName; - } else if (type == 1) { - form.value.inputPersonId = val.uid; - form.value.inputPersonName = val.username; + const userId = (val: any, type: number) => { + if (type == 1) { + form.value.connectPersonId = val.uid; + form.value.connectPersonName = val.realName; } else if (type == 2) { - form.value.responsibilityPersonId = val.id; - form.value.responsibilityPersonName = val.username; + form.value.inputPersonId = val.uid; + form.value.inputPersonName = val.realName; + } else if (type == 3) { + form.value.responsibilityPersonId = val.id; + form.value.responsibilityPersonName = val.realName; } }; + const Tid=(data:any)=>{ + form.value.equipmentTypeId=data.id + form.value.equipmentTypeName=data.typeName + } const maintenanceShow = ref(); const openMaintenance = (title: string, data: any) => { index.value = form.value.takecareDetailList.indexOf(data); @@ -507,35 +523,42 @@ deleteDId.value.push(tag.id); }; // 回传 - const main = (val: any) => { + const main = (data: any) => { + let val=deepClone(data) if (index.value == -1) { form.value.takecareDetailList.push(val); } else { form.value.takecareDetailList[index.value] = val; } }; - const delect = (val: any) => { + const delect = (data: any) => { + let val=deepClone(data) if (index.value == -1) { form.value.testDetailList.push(val); } else { form.value.testDetailList[index.value] = val; } }; - const Repair = (val: any) => { + const Repair = (data: any) => { + let val=deepClone(data) if (index.value == -1) { form.value.repaireDetailList.push(val); } else { form.value.repaireDetailList[index.value] = val; } }; - const Stand = (val: any) => { + const Stand = (data: any) => { + let val=deepClone(data) if (index.value == -1) { form.value.checkStandardeDetailList.push(val); } else { form.value.checkStandardeDetailList[index.value] = val; } }; - + const rules = reactive<FormRules>({ + equipmentTypeId: [], + equipmentTypeName:[], + }) //图片提交 const imageUrl = ref(''); @@ -594,6 +617,7 @@ delect, Repair, Stand, + ruleFormRef, index, activeName, categoryShow, @@ -601,10 +625,9 @@ planShow, onUser, openPlan, - UserOneShow, - // UserTwoShow, - // UserThreeShow, + UserShow, openUser, + rules, maintenanceShow, openMaintenance, detectShow, @@ -628,6 +651,7 @@ full, toggleFullscreen, FullScreen, + Tid, resetForm, deleteAId, deleteBId, @@ -638,6 +662,7 @@ deleteC, deleteD, timeDate, + titleT, }; }, }); diff --git a/src/components/equipmentDailog/categoryDailog.vue b/src/components/equipmentDailog/categoryDailog.vue index 4338c2d..4a8bf12 100644 --- a/src/components/equipmentDailog/categoryDailog.vue +++ b/src/components/equipmentDailog/categoryDailog.vue @@ -3,18 +3,18 @@ <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-row> <el-col :span="17"> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon> + <!-- <el-form ref="ruleFormRef" :model="ruleForm" status-icon> <el-row> <el-col :span="12"> <el-form-item size="default"> <el-input v-model="ruleForm.pass" placeholder="类别名称" /> </el-form-item> </el-col> - <!-- <el-col :span="6" :offset="1"> + <el-col :span="6" :offset="1"> <el-form-item> <el-input v-model="ruleForm.checkPass" placeholder="目标指标编号" /> </el-form-item> - </el-col> --> + </el-col> <el-col :span="11" :offset="1"> <el-form-item> <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">查询</el-button> @@ -22,34 +22,22 @@ </el-form-item> </el-col> </el-row> - </el-form> - <el-button size="default" :icon="Delete">清除选择</el-button> - <el-table :data="tableData" style="width: 100%; margin-top: 20px"> - <el-table-column align="center"> + </el-form> --> + <el-button size="default" :icon="Delete" @click="clear">清除选择</el-button> + <el-table :data="tableData" style="width: 100%; margin-top: 20px" row-key="id" :tree-props="propse"> + <el-table-column align="center" width="100px"> <template #default="scope"> - <el-radio-group v-model="radio1" @change="radio"> - <el-radio :label="scope.row.date" size="large">{{ null }}</el-radio> + <el-radio-group v-model="radio1"> + <el-radio :label="scope.row.id" @click="radio(scope.row)" size="large">{{ null }}</el-radio> </el-radio-group> </template> </el-table-column> - <el-table-column align="center" prop="date" label="id" /> - <el-table-column align="center" prop="name" label="类别名称" /> + <el-table-column align="center" prop="id" label="id" /> + <el-table-column align="center" prop="typeName" label="类别名称" /> </el-table> - <el-pagination - style="padding: 20px 0; border-bottom: 1px solid #dedede" - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[100, 200, 300, 400]" - :small="small" - :disabled="disabled" - :background="background" - layout="total, sizes, prev, pager, next, jumper" - :total="400" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> </el-col> <el-col :span="7"> + <div v-if="dynamicTags[0]==''?false:true"> <el-tag v-for="tag in dynamicTags" :key="tag" @@ -59,14 +47,15 @@ :disable-transitions="false" @close="handleClose(tag)" > - {{ tag }} + {{ tag.typeName }} </el-tag> + </div> </el-col> </el-row> <template #footer> <span class="dialog-footer"> <el-button @click="dialogVisible = false" size="default">关闭</el-button> - <el-button type="primary" @click="dialogVisible = false" size="default">确定</el-button> + <el-button type="primary" @click="submitForm" size="default">确定</el-button> </span> </template> </el-dialog> @@ -74,57 +63,54 @@ <script lang="ts"> import { defineComponent, reactive, ref } from 'vue'; import { Delete, FullScreen } from '@element-plus/icons-vue'; +import { facilityManagementApi } from '/@/api/facilityManagement'; +import { ElMessage,ElMessageBox } from 'element-plus'; export default defineComponent({ - setup() { + setup(props,{emit}) { const dialogVisible = ref<boolean>(false); const openDailog = () => { dialogVisible.value = true; + listApi() }; - // 搜索条件 - const ruleForm = reactive({ - pass: '', - checkPass: '', - }); + // 列表 + const listApi = () => { + facilityManagementApi() + .getequipmentTypeMngTreeData() + .then((res) => { + if (res.data.code == 200) { + tableData.value = res.data.data; + } else { + ElMessage({ + showClose: true, + message: res.data.msg, + type: 'error', + }); + } + }); + }; // 表格 - const tableData = [ - { - date: '2016-05-03', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - date: '2016-05-02', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - date: '2016-05-04', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - { - date: '2016-05-01', - name: 'Tom', - address: 'No. 189, Grove St, Los Angeles', - }, - ]; - const pageSize4 = ref(100); - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`); - }; - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`); + const tableData = ref([]) + const propse = { + children: 'childList', }; // 右方点击添加后显示标签 - const dynamicTags = ref(['2016-05-03']); + const dynamicTags = ref(['']); const handleClose = (tag: string) => { dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); radio1.value = ''; }; - const radio1 = ref('2016-05-03'); - const radio = (event: any) => { - dynamicTags.value[0] = event; + const radio1 = ref(''); + const radio = (data: any) => { + dynamicTags.value[0] = data }; + const clear=()=>{ + radio1.value="" + dynamicTags.value=[''] + } + const submitForm=()=>{ + emit('typeId',dynamicTags.value[0]) + dialogVisible.value=false + } //全屏 const full = ref(false); const toggleFullscreen = () => { @@ -135,13 +121,13 @@ } }; return { + submitForm, + clear, dialogVisible, openDailog, - ruleForm, + listApi, + propse, tableData, - pageSize4, - handleSizeChange, - handleCurrentChange, dynamicTags, handleClose, radio1, diff --git a/src/components/equipmentDailog/detectDailog.vue b/src/components/equipmentDailog/detectDailog.vue index 71279e3..654f54c 100644 --- a/src/components/equipmentDailog/detectDailog.vue +++ b/src/components/equipmentDailog/detectDailog.vue @@ -1,36 +1,43 @@ <template> - <el-dialog v-model="dialogVisible" @close="resetForm" :fullscreen="full" :title="titles" width="50%" draggable> + <el-dialog v-model="dialogVisible" @close="resetForm(ruleFormRef)" :fullscreen="full" :title="titles" width="50%" draggable> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" :disabled="disabled" label-width="120px"> + <el-form :model="form" ref="ruleFormRef" :rules="rules" :disabled="disabled" label-width="120px"> <el-row> <el-col :span="11"> - <el-form-item label="检测人" size="default"> - <el-input v-model="form.testPersonName"> + <el-form-item label="检测人" size="default" prop="testPersonName"> + <el-input v-model="form.testPersonName"> <template #append> <el-button :icon="Search" @click="openUser" /> </template ></el-input> </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="检测日期" size="default"> - <el-date-picker v-model="form.testDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> + <el-form-item label="检测日期" size="default" prop="testDate"> + <el-date-picker v-model="form.testDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="11"> - <el-form-item label="检测人单位" size="default"> - <el-tree-select v-model="form.testPersonDepartmentId" :data="data" check-strictly="true" class="w100" :props="propse" placeholder="请选择" /> + <el-form-item label="检测人单位" size="default" prop="testPersonDepartmentId"> + <el-tree-select + v-model="form.testPersonDepartmentId" + :data="data" + check-strictly="true" + class="w100" + :props="propse" + placeholder="请选择" + /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="检测内容" size="default"> + <el-form-item label="检测内容" size="default" prop="testMemo"> <el-input v-model="form.testMemo" placeholder="请填写检测内容" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="11"> - <el-form-item label="检测结果" size="default"> + <el-form-item label="检测结果" size="default" prop="testResult"> <el-select v-model="form.testResult" placeholder="请选择" style="width: 100%"> <el-option label="成功" value="1" /> <el-option label="失败" value="2" /> @@ -38,7 +45,7 @@ </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="检测状态" size="default"> + <el-form-item label="检测状态" size="default" prop="testStatus"> <el-input v-model="form.testStatus" placeholder="请填写检测状态" /> </el-form-item> </el-col> @@ -47,8 +54,8 @@ <template #footer> <span class="dialog-footer"> <!-- <el-button type="primary" @click="dialogVisible = false" size="default">继续添加</el-button> --> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> + <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> + <el-button type="primary" @click="submitForm(ruleFormRef)" :disabled="disabled" size="default">确定</el-button> </span> </template> </el-dialog> @@ -56,16 +63,18 @@ </template> <script lang="ts"> import { defineComponent, ref, reactive } from 'vue'; -import { ElMessage, ElMessageBox} from 'element-plus'; +import { ElMessage, ElMessageBox } from 'element-plus'; +import type { FormInstance, FormRules } from 'element-plus'; import { Search, FullScreen } from '@element-plus/icons-vue'; import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; import { goalManagementApi } from '/@/api/goalManagement'; export default defineComponent({ components: { DailogSearchUser }, setup(props, { emit }) { + const ruleFormRef = ref<FormInstance>(); const form = ref({ testPersonId: '', - testPersonName:'', + testPersonName: '', testDate: '', testPersonDepartmentId: '', testMemo: '', @@ -77,13 +86,13 @@ const disabled = ref(false); const dialogVisible = ref(false); const openDailog = (title: string, data: any) => { - department() + department(); dialogVisible.value = true; titles.value = `${title}设备检测`; if (title == '查看') { disabled.value = true; form.value = data; - } else if(title == '修改'){ + } else if (title == '修改') { disabled.value = false; form.value = data; } @@ -95,36 +104,37 @@ }; const User = (val: any) => { form.value.testPersonId = val.uid; - form.value.testPersonName=val.realName; + form.value.testPersonName = val.realName; }; + const rules = reactive<FormRules>({ + testPersonName: [{ required: true, message: '检测人不能为空', trigger: 'blur' }], + testDate:[{ required: true, message: '检测日期不能为空', trigger: 'blur' }], + testPersonDepartmentId:[], + testMemo:[{ required: true, message: '检测内容不能为空', trigger: 'blur' }], + testResult:[{ required: true, message: '检测结果不能为空', trigger: 'blur' }], + testStatus:[{ required: true, message: '检测状态不能为空', trigger: 'blur' }], + }); // 提交 - const submitForm = () => { - dialogVisible.value = false; - emit('onDelect', form.value); - form.value = { - testPersonId: '', - testPersonName:'', - testDate: '', - testPersonDepartmentId: '', - testMemo: '', - testResult: '', - testStatus: '', - }; + const submitForm = async (formEl: FormInstance | undefined) => { + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + emit('onDelect', form.value); + dialogVisible.value = false; + } else { + console.log('error submit!', fields); + } + }); + disabled.value = false; }; // 取消 - const resetForm = () => { + const resetForm = (formEl: FormInstance | undefined) => { + if (!formEl) return; + formEl.clearValidate(); dialogVisible.value = false; - form.value = { - testPersonId: '', - testPersonName:'', - testDate: '', - testPersonDepartmentId: '', - testMemo: '', - testResult: '', - testStatus: '', - }; disabled.value = false; + form.value={} }; //全屏 const full = ref(false); @@ -135,7 +145,7 @@ full.value = false; } }; - //部门树 + //部门树 const department = () => { goalManagementApi() .getTreedepartment() @@ -154,6 +164,8 @@ }; const data = ref(); return { + ruleFormRef, + rules, department, propse, data, diff --git a/src/components/equipmentDailog/maintenanceDailog.vue b/src/components/equipmentDailog/maintenanceDailog.vue index e742cd7..3a22bc9 100644 --- a/src/components/equipmentDailog/maintenanceDailog.vue +++ b/src/components/equipmentDailog/maintenanceDailog.vue @@ -19,12 +19,25 @@ <el-row> <el-col :span="11"> <el-form-item label="保养日期" size="default" prop="takecareDate"> - <el-date-picker v-model="form.takecareDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" style="width: 100%" /> + <el-date-picker + v-model="form.takecareDate" + format="YYYY-MM-DD HH:mm:ss" + value-format="YYYY-MM-DD HH:mm:ss" + type="datetime" + style="width: 100%" + /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> <el-form-item label="保养负责人单位" size="default" prop="leadingPersonDepartmentId"> - <el-tree-select v-model="form.leadingPersonDepartmentId" :data="data" check-strictly="true" class="w100" :props="propse" placeholder="请选择" /> + <el-tree-select + v-model="form.leadingPersonDepartmentId" + :data="data" + check-strictly="true" + class="w100" + :props="propse" + placeholder="请选择" + /> </el-form-item> </el-col> </el-row> @@ -33,7 +46,7 @@ <span class="dialog-footer"> <!-- <el-button type="primary" @click="dialogVisible = false" size="default">继续添加</el-button> --> <el-button @click="resetForms(ruleFormRefs)" size="default">关闭</el-button> - <el-button type="primary" @click="submitForms(ruleFormRefs)" size="default">确定</el-button> + <el-button type="primary" @click="submitForms(ruleFormRefs)" :disabled="disabled" size="default">确定</el-button> </span> </template> </el-dialog> @@ -41,7 +54,7 @@ </template> <script lang="ts"> import { defineComponent, ref, reactive } from 'vue'; -import { ElMessage, ElMessageBox} from 'element-plus'; +import { ElMessage, ElMessageBox } from 'element-plus'; import { Search, FullScreen } from '@element-plus/icons-vue'; import type { FormInstance, FormRules } from 'element-plus'; import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; @@ -62,7 +75,7 @@ const disabled = ref(false); const dialogVisible = ref(false); const openDailog = (title: string, data: any) => { - department() + department(); dialogVisible.value = true; titles.value = `${title}仪器仪表`; if (title == '查看') { @@ -75,32 +88,32 @@ }; const rules = reactive<FormRules>({ takecareMemo: [ - // { - // required: true, - // message: '保养情况不能为空', - // trigger: 'change', - // }, + { + required: true, + message: '保养情况不能为空', + trigger: 'blur', + }, ], leadingPersonName: [ - // { - // required: true, - // message: '保养负责人不能为空', - // trigger: 'change', - // }, + { + required: true, + message: '保养负责人不能为空', + trigger: 'blur', + }, ], takecareDate: [ - // { - // required: true, - // message: '保养日期不能为空', - // trigger: 'change', - // }, + { + required: true, + message: '保养日期不能为空', + trigger: 'blur', + }, ], leadingPersonDepartmentId: [ - // { - // required: true, - // message: '保养负责人单位不能为空', - // trigger: 'change', - // }, + { + required: true, + message: '保养负责人单位不能为空', + trigger: 'blur', + }, ], }); // 开启用户弹窗 @@ -123,29 +136,17 @@ console.log('error submit!', fields); } }); - form.value = { - takecareMemo: '', - leadingPersonId: '', - leadingPersonName: '', - takecareDate: '', - leadingPersonDepartmentId: '', - }; disabled.value = false; - // formEl.resetFields(); }; // 取消 const resetForms = (formEl: FormInstance | undefined) => { if (!formEl) return; - form.value = { - takecareMemo: '', - leadingPersonId: '', - leadingPersonName: '', - takecareDate: '', - leadingPersonDepartmentId: '', - }; - // formEl.resetFields(); - dialogVisible.value = false; + formEl.clearValidate(); + disabled.value = false; + form.value = {}; + + dialogVisible.value = false; }; //全屏 const full = ref(false); @@ -156,7 +157,7 @@ full.value = false; } }; - //部门树 + //部门树 const department = () => { goalManagementApi() .getTreedepartment() diff --git a/src/components/equipmentDailog/repairDailog.vue b/src/components/equipmentDailog/repairDailog.vue index 0c3baff..54a2238 100644 --- a/src/components/equipmentDailog/repairDailog.vue +++ b/src/components/equipmentDailog/repairDailog.vue @@ -1,15 +1,15 @@ <template> - <el-dialog v-model="dialogVisible" :fullscreen="full" :before-close="resetForm" :title="titles" width="50%" draggable> + <el-dialog v-model="dialogVisible" :fullscreen="full" @close="resetForm(ruleFormRef)" :title="titles" width="50%" draggable> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" :disabled="disabled" label-width="120px"> + <el-form :model="form" ref="ruleFormRef" :rules="rules" :disabled="disabled" label-width="120px"> <el-row> <el-col :span="11"> - <el-form-item label="设施异常项" size="default"> + <el-form-item label="设施异常项" size="default" prop="exceptionInfo"> <el-input v-model="form.exceptionInfo" placeholder="请填写设施异常项" /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="维修状态" size="default"> + <el-form-item label="维修状态" size="default" prop="repairStatus"> <el-select v-model="form.repairStatus" placeholder="请选择" style="width: 100%"> <el-option label="维修中" value="1" /> <el-option label="已修好" value="2" /> @@ -19,12 +19,12 @@ </el-row> <el-row> <el-col :span="11"> - <el-form-item label="维修情况" size="default"> + <el-form-item label="维修情况" size="default" prop="repairMemo"> <el-input v-model="form.repairMemo" placeholder="请填写维修情况" /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="维修负责人" size="default"> + <el-form-item label="维修负责人" size="default" prop="repairPersonName"> <el-input v-model="form.repairPersonName" placeholder="请选择"> <template #append> <el-button :icon="Search" @click="openUser" /> </template ></el-input> @@ -33,20 +33,41 @@ </el-row> <el-row> <el-col :span="11"> - <el-form-item label="维修负责人单位" size="default"> - <el-tree-select v-model="form.repairPersonDepartmentId" :data="data" check-strictly="true" class="w100" :props="propse" placeholder="请选择" /> + <el-form-item label="维修负责人单位" size="default" prop="repairPersonDepartmentId"> + <el-tree-select + v-model="form.repairPersonDepartmentId" + :data="data" + check-strictly="true" + class="w100" + :props="propse" + placeholder="请选择" + /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="维修开始日期" size="default"> - <el-date-picker v-model="form.repairStartDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> + <el-form-item label="维修开始日期" size="default" prop="repairStartDate"> + <el-date-picker + v-model="form.repairStartDate" + format="YYYY-MM-DD HH:mm:ss" + value-format="YYYY-MM-DD HH:mm:ss" + type="datetime" + placeholder="选择日期时间" + style="width: 100%" + /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="11"> - <el-form-item label="维修结束日期" size="default"> - <el-date-picker v-model="form.repairEndDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> + <el-form-item label="维修结束日期" size="default" prop="repairEndDate"> + <el-date-picker + v-model="form.repairEndDate" + format="YYYY-MM-DD HH:mm:ss" + value-format="YYYY-MM-DD HH:mm:ss" + type="datetime" + placeholder="选择日期时间" + style="width: 100%" + /> </el-form-item> </el-col> </el-row> @@ -54,8 +75,8 @@ <template #footer> <span class="dialog-footer"> <!-- <el-button type="primary" @click="dialogVisible = false" size="default">继续添加</el-button> --> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> + <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> + <el-button type="primary" @click="submitForm(ruleFormRef)" :disabled="disabled" size="default">确定</el-button> </span> </template> </el-dialog> @@ -63,20 +84,22 @@ </template> <script lang="ts"> import { defineComponent, ref, reactive } from 'vue'; -import { ElMessage, ElMessageBox} from 'element-plus'; +import { ElMessage, ElMessageBox } from 'element-plus'; +import type { FormInstance, FormRules } from 'element-plus'; import { Search, FullScreen } from '@element-plus/icons-vue'; import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; import { goalManagementApi } from '/@/api/goalManagement'; export default defineComponent({ components: { DailogSearchUser }, setup(props, { emit }) { + const ruleFormRef = ref<FormInstance>(); const form = ref({ exceptionInfo: '', repairStatus: '', repairMemo: '', repairPersonId: '', - repairPersonName:'', - repairPersonDepartmentId: "", + repairPersonName: '', + repairPersonDepartmentId: '', repairStartDate: '', repairEndDate: '', }); @@ -85,13 +108,13 @@ const disabled = ref(false); const dialogVisible = ref(false); const openDailog = (title: string, data: any) => { - department() + department(); dialogVisible.value = true; titles.value = `${title}设备维修`; if (title == '查看') { disabled.value = true; form.value = data; - } else if(title == '修改') { + } else if (title == '修改') { disabled.value = false; form.value = data; } @@ -105,36 +128,35 @@ form.value.repairPersonId = val.uid; form.value.repairPersonName = val.realName; }; + const rules = reactive<FormRules>({ + exceptionInfo: [{ required: true, message: '设施异常项不能为空', trigger: 'blur' }], + repairStatus: [{ required: true, message: '维修状态不能为空', trigger: 'blur' }], + repairMemo: [{ required: true, message: '维修情况不能为空', trigger: 'blur' }], + // repairPersonName: [{ required: true, message: '维修负责人不能为空', trigger: 'blur' }], + repairPersonDepartmentId: [{ required: true, message: '维修负责人单位不能为空', trigger: 'blur' }], + repairStartDate: [{ required: true, message: '维修开始日期不能为空', trigger: 'blur' }], + repairEndDate: [{ required: true, message: '维修结束日期不能为空', trigger: 'blur' }], + }); // 提交 - const submitForm = () => { - dialogVisible.value = false; - emit('onRepair', form.value); - form.value = { - exceptionInfo: '', - repairStatus: '', - repairMemo: '', - repairPersonId: '', - repairPersonName:'', - repairPersonDepartmentId: "", - repairStartDate: '', - repairEndDate: '', - }; + const submitForm = async (formEl: FormInstance | undefined) => { + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + emit('onRepair', form.value); + dialogVisible.value = false; + } else { + console.log('error submit!', fields); + } + }); disabled.value = false; }; // 取消 - const resetForm = () => { - dialogVisible.value = false; - form.value = { - exceptionInfo: '', - repairStatus: '', - repairMemo: '', - repairPersonId: '', - repairPersonName:"", - repairPersonDepartmentId: "", - repairStartDate: '', - repairEndDate: '', - }; + const resetForm = (formEl: FormInstance | undefined) => { + if (!formEl) return; + formEl.clearValidate(); disabled.value = false; + dialogVisible.value = false; + form.value = {}; }; //全屏 const full = ref(false); @@ -145,7 +167,7 @@ full.value = false; } }; - //部门树 + //部门树 const department = () => { goalManagementApi() .getTreedepartment() @@ -164,6 +186,8 @@ }; const data = ref(); return { + rules, + ruleFormRef, department, propse, data, diff --git a/src/components/equipmentDailog/standardDailog.vue b/src/components/equipmentDailog/standardDailog.vue index a1f901e..7964ba0 100644 --- a/src/components/equipmentDailog/standardDailog.vue +++ b/src/components/equipmentDailog/standardDailog.vue @@ -1,14 +1,14 @@ <template> - <el-dialog v-model="dialogVisible" :fullscreen="full" :before-close="resetForm" :title="titles" width="50%" draggable> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" label-width="120px" :disabled="disabled"> + <el-dialog v-model="dialogVisible" :fullscreen="full" @close="resetForm(ruleFormRef)" :title="titles" width="50%" draggable> + <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> + <el-form :model="form" ref="ruleFormRef" :rules="rules" label-width="120px" :disabled="disabled"> <el-row> <el-col :span="11"> - <el-form-item label="序号" size="default"> + <el-form-item label="序号" size="default" prop="indexNum"> <el-input v-model="form.indexNum" placeholder="请填写序号" /> </el-form-item> </el-col> - <el-col :span="11" :offset="2" size="default"> + <el-col :span="11" :offset="2" size="default" prop="checkContent"> <el-form-item label="检查内容"> <el-input v-model="form.checkContent" placeholder="请填写检查内容" /> </el-form-item> @@ -16,24 +16,24 @@ </el-row> <el-row> <el-col :span="11"> - <el-form-item label="检查指标" size="default"> + <el-form-item label="检查指标" size="default" prop="checkTarget"> <el-input v-model="form.checkTarget" placeholder="请填写检查指标" /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="单位" size="default"> + <el-form-item label="单位" size="default" prop="unit"> <el-input v-model="form.unit" placeholder="请填写单位" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="11"> - <el-form-item label="巡检部位" size="default"> + <el-form-item label="巡检部位" size="default" prop="checkPart"> <el-input v-model="form.checkPart" placeholder="请填写巡检部位" /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="频次" size="default"> + <el-form-item label="频次" size="default" prop="rate"> <el-input v-model="form.rate" placeholder="请填写频次" /> </el-form-item> </el-col> @@ -42,8 +42,8 @@ <template #footer> <span class="dialog-footer"> <!-- <el-button type="primary" @click="dialogVisible = false" size="default">继续添加</el-button> --> - <el-button @click="resetForm" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> + <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> + <el-button type="primary" @click="submitForm(ruleFormRef)" size="default">确定</el-button> </span> </template> </el-dialog> @@ -51,17 +51,19 @@ </template> <script lang="ts"> import { defineComponent, ref, reactive } from 'vue'; +import type { FormInstance, FormRules } from 'element-plus'; import { Search, FullScreen } from '@element-plus/icons-vue'; import DailogSearchUser from '/@/components/DailogSearchUser/index.vue'; export default defineComponent({ components: { DailogSearchUser }, setup(props, { emit }) { + const ruleFormRef = ref<FormInstance>(); const form = ref({ indexNum: '', checkContent: '', checkTarget: '', unit: '', - checkPart: "", + checkPart: '', rate: '', }); // 开启弹窗 @@ -74,7 +76,7 @@ if (title == '查看') { disabled.value = true; form.value = data; - } else if(title=='修改'){ + } else if (title == '修改') { disabled.value = false; form.value = data; } @@ -84,32 +86,34 @@ const openUser = () => { Show.value.openDailog(); }; + const rules = reactive<FormRules>({ + indexNum: [{ required: true, message: '序号不能为空', trigger: 'blur' }], + checkContent: [{ required: true, message: '检查内容不能为空', trigger: 'blur' }], + checkTarget: [{ required: true, message: '检查指标不能为空', trigger: 'blur' }], + unit: [{ required: true, message: '单位不能为空', trigger: 'blur' }], + checkPart: [{ required: true, message: '巡检部位不能为空', trigger: 'blur' }], + rate: [{ required: true, message: '频次不能为空', trigger: 'blur' }], + }); // 提交 - const submitForm = () => { - dialogVisible.value = false; - emit('onStand', form.value); - form.value = { - indexNum: '', - checkContent: '', - checkTarget: '', - unit: '', - checkPart: "", - rate: '', - }; + const submitForm = async (formEl: FormInstance | undefined) => { + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + emit('onStand', form.value); + dialogVisible.value = false; + } else { + console.log('error submit!', fields); + } + }); disabled.value = false; }; // 取消 - const resetForm = () => { + const resetForm = (formEl: FormInstance | undefined) => { + if (!formEl) return; + formEl.clearValidate(); dialogVisible.value = false; - form.value = { - indexNum: '', - checkContent: '', - checkTarget: '', - unit: '', - checkPart: "", - rate: '', - }; disabled.value = false; + form.value = {}; }; //全屏 const full = ref(false); @@ -121,6 +125,8 @@ } }; return { + rules, + ruleFormRef, form, titles, disabled, diff --git a/src/components/iconSelector/index.vue b/src/components/iconSelector/index.vue index db142ba..07de786 100644 --- a/src/components/iconSelector/index.vue +++ b/src/components/iconSelector/index.vue @@ -1,44 +1,65 @@ <template> - <div class="icon-selector w100 h100"> - <el-popover placement="bottom" :width="fontIconWidth" trigger="click" transition="el-zoom-in-top" popper-class="icon-selector-popper" @show="onPopoverShow"> - <template #reference> - <el-input v-model="fontIconSearch" :placeholder="fontIconPlaceholder" :clearable="clearable" :disabled="disabled" :size="size" ref="inputWidthRef" @clear="onClearFontIcon" @focus="onIconFocus" @blur="onIconBlur"> - <template #prepend> - <SvgIcon :name="fontIconPrefix === '' ? prepend : fontIconPrefix" class="font14" v-if="fontIconPrefix === '' ? prepend?.indexOf('ele-') > -1 : fontIconPrefix?.indexOf('ele-') > -1" /> - <i v-else :class="fontIconPrefix === '' ? prepend : fontIconPrefix" class="font14"></i> - </template> - </el-input> - </template> - <template #default> - <div class="icon-selector-warp"> - <div class="icon-selector-warp-title flex"> - <div class="flex-auto">{{ title }}</div> - <div class="icon-selector-warp-title-tab" v-if="type === 'all'"> - <span :class="{ 'span-active': fontIconType === 'ali' }" @click="onIconChange('ali')" class="ml10" title="iconfont 图标">ali</span> - <span :class="{ 'span-active': fontIconType === 'ele' }" @click="onIconChange('ele')" class="ml10" title="elementPlus 图标">ele</span> - <span :class="{ 'span-active': fontIconType === 'awe' }" @click="onIconChange('awe')" class="ml10" title="fontawesome 图标">awe</span> - </div> - </div> - <div class="icon-selector-warp-row"> - <el-scrollbar ref="selectorScrollbarRef"> - <el-row :gutter="10" v-if="fontIconSheetsFilterList.length > 0"> - <el-col :xs="6" :sm="4" :md="4" :lg="4" :xl="4" @click="onColClick(v)" v-for="(v, k) in fontIconSheetsFilterList" :key="k"> - <div class="icon-selector-warp-item" :class="{ 'icon-selector-active': fontIconPrefix === v }"> - <div class="flex-margin"> - <div class="icon-selector-warp-item-value"> - <SvgIcon :name="v" /> - </div> - </div> - </div> - </el-col> - </el-row> - <el-empty :image-size="100" v-if="fontIconSheetsFilterList.length <= 0" :description="emptyDescription"></el-empty> - </el-scrollbar> - </div> - </div> - </template> - </el-popover> - </div> + <div class="icon-selector w100 h100"> + <el-popover + placement="bottom" + :width="fontIconWidth" + trigger="click" + transition="el-zoom-in-top" + popper-class="icon-selector-popper" + @show="onPopoverShow" + > + <template #reference> + <el-input + v-model="fontIconSearch" + :placeholder="fontIconPlaceholder" + :clearable="clearable" + :disabled="disabled" + :size="size" + ref="inputWidthRef" + @clear="onClearFontIcon" + @focus="onIconFocus" + @blur="onIconBlur" + > + <template #prepend> + <SvgIcon + :name="fontIconPrefix === '' ? prepend : fontIconPrefix" + class="font14" + v-if="fontIconPrefix === '' ? prepend?.indexOf('ele-') > -1 : fontIconPrefix?.indexOf('ele-') > -1" + /> + <i v-else :class="fontIconPrefix === '' ? prepend : fontIconPrefix" class="font14"></i> + </template> + </el-input> + </template> + <template #default> + <div class="icon-selector-warp"> + <div class="icon-selector-warp-title flex"> + <div class="flex-auto">{{ title }}</div> + <div class="icon-selector-warp-title-tab" v-if="type === 'all'"> + <span :class="{ 'span-active': fontIconType === 'ali' }" @click="onIconChange('ali')" class="ml10" title="iconfont 图标">ali</span> + <span :class="{ 'span-active': fontIconType === 'ele' }" @click="onIconChange('ele')" class="ml10" title="elementPlus 图标">ele</span> + <span :class="{ 'span-active': fontIconType === 'awe' }" @click="onIconChange('awe')" class="ml10" title="fontawesome 图标">awe</span> + </div> + </div> + <div class="icon-selector-warp-row"> + <el-scrollbar ref="selectorScrollbarRef"> + <el-row :gutter="10" v-if="fontIconSheetsFilterList.length > 0"> + <el-col :xs="6" :sm="4" :md="4" :lg="4" :xl="4" @click="onColClick(v)" v-for="(v, k) in fontIconSheetsFilterList" :key="k"> + <div class="icon-selector-warp-item" :class="{ 'icon-selector-active': fontIconPrefix === v }"> + <div class="flex-margin"> + <div class="icon-selector-warp-item-value"> + <SvgIcon :name="v" /> + </div> + </div> + </div> + </el-col> + </el-row> + <el-empty :image-size="100" v-if="fontIconSheetsFilterList.length <= 0" :description="emptyDescription"></el-empty> + </el-scrollbar> + </div> + </div> + </template> + </el-popover> + </div> </template> <script lang="ts"> @@ -46,186 +67,186 @@ import initIconfont from '/@/utils/getStyleSheets'; export default defineComponent({ - name: 'iconSelector', - emits: ['update:modelValue', 'get', 'clear'], - props: { - // 输入框前置内容 - prepend: { - type: String, - default: () => 'ele-Pointer' - }, - // 输入框占位文本 - placeholder: { - type: String, - default: () => '请输入内容搜索图标或者选择图标' - }, - // 输入框占位文本 - size: { - type: String, - default: () => 'default' - }, - // 弹窗标题 - title: { - type: String, - default: () => '请选择图标' - }, - // icon 图标类型 - type: { - type: String, - default: () => 'ele' - }, - // 禁用 - disabled: { - type: Boolean, - default: () => false - }, - // 是否可清空 - clearable: { - type: Boolean, - default: () => true - }, - // 自定义空状态描述文字 - emptyDescription: { - type: String, - default: () => '无相关图标' - }, - // 双向绑定值,默认为 modelValue, - // 参考:https://v3.cn.vuejs.org/guide/migration/v-model.html#%E8%BF%81%E7%A7%BB%E7%AD%96%E7%95%A5 - // 参考:https://v3.cn.vuejs.org/guide/component-custom-events.html#%E5%A4%9A%E4%B8%AA-v-model-%E7%BB%91%E5%AE%9A - modelValue: String - }, - setup(props, { emit }) { - const inputWidthRef = ref(); - const selectorScrollbarRef = ref(); - const state = reactive({ - fontIconPrefix: '', - fontIconWidth: 0, - fontIconSearch: '', - fontIconTabsIndex: 0, - fontIconSheetsList: [], - fontIconPlaceholder: '', - fontIconType: 'ali', - fontIconShow: true - }); - // 处理 input 获取焦点时,modelValue 有值时,改变 input 的 placeholder 值 - const onIconFocus = () => { - if (!props.modelValue) return false; - state.fontIconSearch = ''; - state.fontIconPlaceholder = props.modelValue; - }; - // 处理 input 失去焦点时,为空将清空 input 值,为点击选中图标时,将取原先值 - const onIconBlur = () => { - setTimeout(() => { - const icon = state.fontIconSheetsList.filter((icon: string) => icon === state.fontIconSearch); - if (icon.length <= 0) state.fontIconSearch = ''; - }, 300); - }; - // 处理 icon 双向绑定数值回显 - const initModeValueEcho = () => { - if (props.modelValue === '') return ((<string | undefined>state.fontIconPlaceholder) = props.placeholder); - (<string | undefined>state.fontIconPlaceholder) = props.modelValue; - (<string | undefined>state.fontIconPrefix) = props.modelValue; - }; - // 处理 icon type 类型为 all 时,类型 ali、ele、awe 回显问题 - const initFontIconTypeEcho = () => { - if ((<any>props.modelValue)?.indexOf('iconfont') > -1) onIconChange('ali'); - else if ((<any>props.modelValue)?.indexOf('ele-') > -1) onIconChange('ele'); - else if ((<any>props.modelValue)?.indexOf('fa') > -1) onIconChange('awe'); - else onIconChange('ali'); - }; - // 图标搜索及图标数据显示 - const fontIconSheetsFilterList = computed(() => { - if (!state.fontIconSearch) return state.fontIconSheetsList; - let search = state.fontIconSearch.trim().toLowerCase(); - return state.fontIconSheetsList.filter((item: any) => { - if (item.toLowerCase().indexOf(search) !== -1) return item; - }); - }); - // 获取 input 的宽度 - const getInputWidth = () => { - nextTick(() => { - state.fontIconWidth = inputWidthRef.value.$el.offsetWidth; - }); - }; - // 监听页面宽度改变 - const initResize = () => { - window.addEventListener('resize', () => { - getInputWidth(); - }); - }; - // 初始化数据 - const initFontIconData = async (type: string) => { - state.fontIconSheetsList = []; - if (type === 'ali') { - await initIconfont.ali().then((res: any) => { - // 阿里字体图标使用 `iconfont xxx` - state.fontIconSheetsList = res.map((i: string) => `iconfont ${i}`); - }); - } else if (type === 'ele') { - await initIconfont.ele().then((res: any) => { - state.fontIconSheetsList = res; - }); - } else if (type === 'awe') { - await initIconfont.awe().then((res: any) => { - // fontawesome字体图标使用 `fa xxx` - state.fontIconSheetsList = res.map((i: string) => `fa ${i}`); - }); - } - // 初始化 input 的 placeholder - // 参考(单项数据流):https://cn.vuejs.org/v2/guide/components-props.html?#%E5%8D%95%E5%90%91%E6%95%B0%E6%8D%AE%E6%B5%81 - state.fontIconPlaceholder = props.placeholder; - // 初始化双向绑定回显 - initModeValueEcho(); - }; - // 图标点击切换 - const onIconChange = (type: string) => { - state.fontIconType = type; - initFontIconData(type); - }; - // 获取当前点击的 icon 图标 - const onColClick = (v: any) => { - state.fontIconPlaceholder = v; - state.fontIconPrefix = v; - emit('get', state.fontIconPrefix); - emit('update:modelValue', state.fontIconPrefix); - }; - // 清空当前点击的 icon 图标 - const onClearFontIcon = () => { - state.fontIconPrefix = ''; - emit('clear', state.fontIconPrefix); - emit('update:modelValue', state.fontIconPrefix); - }; - // 监听 Popover 打开,用于双向绑定值回显 - const onPopoverShow = () => { - initModeValueEcho(); - initFontIconTypeEcho(); - }; - // 页面加载时 - onMounted(() => { - initModeValueEcho(); - initResize(); - getInputWidth(); - }); + name: 'iconSelector', + emits: ['update:modelValue', 'get', 'clear'], + props: { + // 输入框前置内容 + prepend: { + type: String, + default: () => 'ele-Pointer', + }, + // 输入框占位文本 + placeholder: { + type: String, + default: () => '请输入内容搜索图标或者选择图标', + }, + // 输入框占位文本 + size: { + type: String, + default: () => 'default', + }, + // 弹窗标题 + title: { + type: String, + default: () => '请选择图标', + }, + // icon 图标类型 + type: { + type: String, + default: () => 'ele', + }, + // 禁用 + disabled: { + type: Boolean, + default: () => false, + }, + // 是否可清空 + clearable: { + type: Boolean, + default: () => true, + }, + // 自定义空状态描述文字 + emptyDescription: { + type: String, + default: () => '无相关图标', + }, + // 双向绑定值,默认为 modelValue, + // 参考:https://v3.cn.vuejs.org/guide/migration/v-model.html#%E8%BF%81%E7%A7%BB%E7%AD%96%E7%95%A5 + // 参考:https://v3.cn.vuejs.org/guide/component-custom-events.html#%E5%A4%9A%E4%B8%AA-v-model-%E7%BB%91%E5%AE%9A + modelValue: String, + }, + setup(props, { emit }) { + const inputWidthRef = ref(); + const selectorScrollbarRef = ref(); + const state = reactive({ + fontIconPrefix: '', + fontIconWidth: 0, + fontIconSearch: '', + fontIconTabsIndex: 0, + fontIconSheetsList: [], + fontIconPlaceholder: '', + fontIconType: 'ali', + fontIconShow: true, + }); + // 处理 input 获取焦点时,modelValue 有值时,改变 input 的 placeholder 值 + const onIconFocus = () => { + if (!props.modelValue) return false; + state.fontIconSearch = ''; + state.fontIconPlaceholder = props.modelValue; + }; + // 处理 input 失去焦点时,为空将清空 input 值,为点击选中图标时,将取原先值 + const onIconBlur = () => { + setTimeout(() => { + const icon = state.fontIconSheetsList.filter((icon: string) => icon === state.fontIconSearch); + if (icon.length <= 0) state.fontIconSearch = ''; + }, 300); + }; + // 处理 icon 双向绑定数值回显 + const initModeValueEcho = () => { + if (props.modelValue === '') return ((<string | undefined>state.fontIconPlaceholder) = props.placeholder); + (<string | undefined>state.fontIconPlaceholder) = props.modelValue; + (<string | undefined>state.fontIconPrefix) = props.modelValue; + }; + // 处理 icon type 类型为 all 时,类型 ali、ele、awe 回显问题 + const initFontIconTypeEcho = () => { + if ((<any>props.modelValue)?.indexOf('iconfont') > -1) onIconChange('ali'); + else if ((<any>props.modelValue)?.indexOf('ele-') > -1) onIconChange('ele'); + else if ((<any>props.modelValue)?.indexOf('fa') > -1) onIconChange('awe'); + else onIconChange('ali'); + }; + // 图标搜索及图标数据显示 + const fontIconSheetsFilterList = computed(() => { + if (!state.fontIconSearch) return state.fontIconSheetsList; + let search = state.fontIconSearch.trim().toLowerCase(); + return state.fontIconSheetsList.filter((item: any) => { + if (item.toLowerCase().indexOf(search) !== -1) return item; + }); + }); + // 获取 input 的宽度 + const getInputWidth = () => { + nextTick(() => { + state.fontIconWidth = inputWidthRef.value.$el.offsetWidth; + }); + }; + // 监听页面宽度改变 + const initResize = () => { + window.addEventListener('resize', () => { + getInputWidth(); + }); + }; + // 初始化数据 + const initFontIconData = async (type: string) => { + state.fontIconSheetsList = []; + if (type === 'ali') { + await initIconfont.ali().then((res: any) => { + // 阿里字体图标使用 `iconfont xxx` + state.fontIconSheetsList = res.map((i: string) => `iconfont ${i}`); + }); + } else if (type === 'ele') { + await initIconfont.ele().then((res: any) => { + state.fontIconSheetsList = res; + }); + } else if (type === 'awe') { + await initIconfont.awe().then((res: any) => { + // fontawesome字体图标使用 `fa xxx` + state.fontIconSheetsList = res.map((i: string) => `fa ${i}`); + }); + } + // 初始化 input 的 placeholder + // 参考(单项数据流):https://cn.vuejs.org/v2/guide/components-props.html?#%E5%8D%95%E5%90%91%E6%95%B0%E6%8D%AE%E6%B5%81 + state.fontIconPlaceholder = props.placeholder; + // 初始化双向绑定回显 + initModeValueEcho(); + }; + // 图标点击切换 + const onIconChange = (type: string) => { + state.fontIconType = type; + initFontIconData(type); + }; + // 获取当前点击的 icon 图标 + const onColClick = (v: any) => { + state.fontIconPlaceholder = v; + state.fontIconPrefix = v; + emit('get', state.fontIconPrefix); + emit('update:modelValue', state.fontIconPrefix); + }; + // 清空当前点击的 icon 图标 + const onClearFontIcon = () => { + state.fontIconPrefix = ''; + emit('clear', state.fontIconPrefix); + emit('update:modelValue', state.fontIconPrefix); + }; + // 监听 Popover 打开,用于双向绑定值回显 + const onPopoverShow = () => { + initModeValueEcho(); + initFontIconTypeEcho(); + }; + // 页面加载时 + onMounted(() => { + initModeValueEcho(); + initResize(); + getInputWidth(); + }); - // 监听双向绑定 modelValue 的变化 - watch( - () => props.modelValue, - () => { - initModeValueEcho(); - } - ); - return { - inputWidthRef, - selectorScrollbarRef, - fontIconSheetsFilterList, - onColClick, - onIconChange, - onClearFontIcon, - onIconFocus, - onIconBlur, - onPopoverShow, - ...toRefs(state) - }; - } + // 监听双向绑定 modelValue 的变化 + watch( + () => props.modelValue, + () => { + initModeValueEcho(); + } + ); + return { + inputWidthRef, + selectorScrollbarRef, + fontIconSheetsFilterList, + onColClick, + onIconChange, + onClearFontIcon, + onIconFocus, + onIconBlur, + onPopoverShow, + ...toRefs(state), + }; + }, }); </script> diff --git a/src/layout/navBars/breadcrumb/user.vue b/src/layout/navBars/breadcrumb/user.vue index bad2b59..7601048 100644 --- a/src/layout/navBars/breadcrumb/user.vue +++ b/src/layout/navBars/breadcrumb/user.vue @@ -1,79 +1,79 @@ <template> <div class="layout-navbars-breadcrumb-user pr15" :style="{ flex: layoutUserFlexNum }"> <div class="logo"> - <img src="src/assets/menu/companyLogo.jpg"> - <span style="font-size: 16px;color: #333;font-weight: bolder"> | {{systemName}}</span> + <img src="../../../assets/menu/companyLogo.jpg" /> + <span style="font-size: 16px; color: #333; font-weight: bolder"> | {{ systemName }}</span> </div> - <div style="display: flex;padding-right: 5px"> - <el-dropdown :show-timeout="70" :hide-timeout="50" trigger="click" @command="onComponentSizeChange"> - <div class="layout-navbars-breadcrumb-user-icon"> - <i class="iconfont icon-ziti" :title="$t('message.user.title0')"></i> + <div style="display: flex; padding-right: 5px"> + <el-dropdown :show-timeout="70" :hide-timeout="50" trigger="click" @command="onComponentSizeChange"> + <div class="layout-navbars-breadcrumb-user-icon"> + <i class="iconfont icon-ziti" :title="$t('message.user.title0')"></i> + </div> + <template #dropdown> + <el-dropdown-menu> + <el-dropdown-item command="large" :disabled="disabledSize === 'large'">{{ $t('message.user.dropdownLarge') }}</el-dropdown-item> + <el-dropdown-item command="default" :disabled="disabledSize === 'default'">{{ $t('message.user.dropdownDefault') }}</el-dropdown-item> + <el-dropdown-item command="small" :disabled="disabledSize === 'small'">{{ $t('message.user.dropdownSmall') }}</el-dropdown-item> + </el-dropdown-menu> + </template> + </el-dropdown> + <!-- <el-dropdown :show-timeout="70" :hide-timeout="50" trigger="click" @command="onLanguageChange">--> + <!-- <div class="layout-navbars-breadcrumb-user-icon">--> + <!-- <i class="iconfont" :class="disabledI18n === 'en' ? 'icon-fuhao-yingwen' : 'icon-fuhao-zhongwen'" :title="$t('message.user.title1')"></i>--> + <!-- </div>--> + <!-- <template #dropdown>--> + <!-- <el-dropdown-menu>--> + <!-- <el-dropdown-item command="zh-cn" :disabled="disabledI18n === 'zh-cn'">简体中文</el-dropdown-item>--> + <!-- <el-dropdown-item command="en" :disabled="disabledI18n === 'en'">English</el-dropdown-item>--> + <!-- <el-dropdown-item command="zh-tw" :disabled="disabledI18n === 'zh-tw'">繁體中文</el-dropdown-item>--> + <!-- </el-dropdown-menu>--> + <!-- </template>--> + <!-- </el-dropdown>--> + <!-- <div class="layout-navbars-breadcrumb-user-icon" @click="onSearchClick">--> + <!-- <el-icon :title="$t('message.user.title2')">--> + <!-- <ele-Search />--> + <!-- </el-icon>--> + <!-- </div>--> + <!-- <div class="layout-navbars-breadcrumb-user-icon" @click="onLayoutSetingClick">--> + <!-- <i class="icon-skin iconfont" :title="$t('message.user.title3')"></i>--> + <!-- </div>--> + <!-- <div class="layout-navbars-breadcrumb-user-icon">--> + <!-- <el-popover placement="bottom" trigger="click" transition="el-zoom-in-top" :width="300" :persistent="false">--> + <!-- <template #reference>--> + <!-- <el-badge :is-dot="true">--> + <!-- <el-icon :title="$t('message.user.title4')">--> + <!-- <ele-Bell />--> + <!-- </el-icon>--> + <!-- </el-badge>--> + <!-- </template>--> + <!-- <template #default>--> + <!-- <UserNews />--> + <!-- </template>--> + <!-- </el-popover>--> + <!-- </div>--> + <div class="layout-navbars-breadcrumb-user-icon mr10" @click="onScreenfullClick"> + <i class="iconfont" :title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i> </div> - <template #dropdown> - <el-dropdown-menu> - <el-dropdown-item command="large" :disabled="disabledSize === 'large'">{{ $t('message.user.dropdownLarge') }}</el-dropdown-item> - <el-dropdown-item command="default" :disabled="disabledSize === 'default'">{{ $t('message.user.dropdownDefault') }}</el-dropdown-item> - <el-dropdown-item command="small" :disabled="disabledSize === 'small'">{{ $t('message.user.dropdownSmall') }}</el-dropdown-item> - </el-dropdown-menu> - </template> - </el-dropdown> -<!-- <el-dropdown :show-timeout="70" :hide-timeout="50" trigger="click" @command="onLanguageChange">--> -<!-- <div class="layout-navbars-breadcrumb-user-icon">--> -<!-- <i class="iconfont" :class="disabledI18n === 'en' ? 'icon-fuhao-yingwen' : 'icon-fuhao-zhongwen'" :title="$t('message.user.title1')"></i>--> -<!-- </div>--> -<!-- <template #dropdown>--> -<!-- <el-dropdown-menu>--> -<!-- <el-dropdown-item command="zh-cn" :disabled="disabledI18n === 'zh-cn'">简体中文</el-dropdown-item>--> -<!-- <el-dropdown-item command="en" :disabled="disabledI18n === 'en'">English</el-dropdown-item>--> -<!-- <el-dropdown-item command="zh-tw" :disabled="disabledI18n === 'zh-tw'">繁體中文</el-dropdown-item>--> -<!-- </el-dropdown-menu>--> -<!-- </template>--> -<!-- </el-dropdown>--> -<!-- <div class="layout-navbars-breadcrumb-user-icon" @click="onSearchClick">--> -<!-- <el-icon :title="$t('message.user.title2')">--> -<!-- <ele-Search />--> -<!-- </el-icon>--> -<!-- </div>--> - <!-- <div class="layout-navbars-breadcrumb-user-icon" @click="onLayoutSetingClick">--> - <!-- <i class="icon-skin iconfont" :title="$t('message.user.title3')"></i>--> - <!-- </div>--> - <!-- <div class="layout-navbars-breadcrumb-user-icon">--> - <!-- <el-popover placement="bottom" trigger="click" transition="el-zoom-in-top" :width="300" :persistent="false">--> - <!-- <template #reference>--> - <!-- <el-badge :is-dot="true">--> - <!-- <el-icon :title="$t('message.user.title4')">--> - <!-- <ele-Bell />--> - <!-- </el-icon>--> - <!-- </el-badge>--> - <!-- </template>--> - <!-- <template #default>--> - <!-- <UserNews />--> - <!-- </template>--> - <!-- </el-popover>--> - <!-- </div>--> - <div class="layout-navbars-breadcrumb-user-icon mr10" @click="onScreenfullClick"> - <i class="iconfont" :title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i> - </div> - <el-dropdown :show-timeout="70" :hide-timeout="50" @command="onHandleCommandClick"> - <span class="layout-navbars-breadcrumb-user-link"> - <img :src="userInfos.photo" class="layout-navbars-breadcrumb-user-link-photo mr5" /> - {{ userInfos.userName }} - <el-icon class="el-icon--right"> - <ele-ArrowDown /> - </el-icon> - </span> - <template #dropdown> - <el-dropdown-menu> - <el-dropdown-item command="/homeMenu">{{ $t('message.user.dropdown1') }}</el-dropdown-item> - <!-- <el-dropdown-item command="wareHouse">{{ $t('message.user.dropdown6') }}</el-dropdown-item>--> -<!-- <el-dropdown-item command="/personal">{{ $t('message.user.dropdown2') }}</el-dropdown-item>--> - <!-- <el-dropdown-item command="/404">{{ $t('message.user.dropdown3') }}</el-dropdown-item>--> - <!-- <el-dropdown-item command="/401">{{ $t('message.user.dropdown4') }}</el-dropdown-item>--> - <el-dropdown-item divided command="logOut">{{ $t('message.user.dropdown5') }}</el-dropdown-item> - </el-dropdown-menu> - </template> - </el-dropdown> - <Search ref="searchRef" /> + <el-dropdown :show-timeout="70" :hide-timeout="50" @command="onHandleCommandClick"> + <span class="layout-navbars-breadcrumb-user-link"> + <img :src="userInfos.photo" class="layout-navbars-breadcrumb-user-link-photo mr5" /> + {{ userInfos.userName }} + <el-icon class="el-icon--right"> + <ele-ArrowDown /> + </el-icon> + </span> + <template #dropdown> + <el-dropdown-menu> + <el-dropdown-item command="/homeMenu">{{ $t('message.user.dropdown1') }}</el-dropdown-item> + <!-- <el-dropdown-item command="wareHouse">{{ $t('message.user.dropdown6') }}</el-dropdown-item>--> + <!-- <el-dropdown-item command="/personal">{{ $t('message.user.dropdown2') }}</el-dropdown-item>--> + <!-- <el-dropdown-item command="/404">{{ $t('message.user.dropdown3') }}</el-dropdown-item>--> + <!-- <el-dropdown-item command="/401">{{ $t('message.user.dropdown4') }}</el-dropdown-item>--> + <el-dropdown-item divided command="logOut">{{ $t('message.user.dropdown5') }}</el-dropdown-item> + </el-dropdown-menu> + </template> + </el-dropdown> + <Search ref="searchRef" /> </div> </div> </template> @@ -97,15 +97,10 @@ import { ElMessage } from 'element-plus'; const menuApi = useMenuApi(); -import { - backEndComponent, - getBackEndControlRoutes, - initBackEndControlRoutes, - setAddRoute, setFilterMenuAndCacheTagsViewRoutes -} from '../../../router/backEnd'; -import {NextLoading} from "/@/utils/loading"; -import {useRequestOldRoutes} from "/@/stores/requestOldRoutes"; -import {dynamicRoutes} from "/@/router/route"; +import { backEndComponent, getBackEndControlRoutes, initBackEndControlRoutes, setAddRoute, setFilterMenuAndCacheTagsViewRoutes } from '../../../router/backEnd'; +import { NextLoading } from '/@/utils/loading'; +import { useRequestOldRoutes } from '/@/stores/requestOldRoutes'; +import { dynamicRoutes } from '/@/router/route'; export default defineComponent({ name: 'layoutBreadcrumbUser', @@ -254,24 +249,24 @@ } }; - const getSysName = async()=>{ + const getSysName = async () => { if (window.nextLoading === undefined) NextLoading.start(); if (!Session.get('token')) return false; const res = await menuApi.getMenuAdmin(Session.get('projectId') === null ? '' : Session.get('projectId')); - if(res.data.code === '200'){ + if (res.data.code === '200') { state.systemName = res.data.data[1].project.projectName; - console.log(state.systemName) - }else{ - console.log('有问题') + console.log(state.systemName); + } else { + console.log('有问题'); } - } + }; // 页面加载时 onMounted(() => { if (Local.get('themeConfig')) { initI18n(); initComponentSize(); } - getSysName() + getSysName(); }); return { userInfos, @@ -295,14 +290,14 @@ align-items: center; justify-content: space-between; - .logo{ + .logo { height: 50px; padding: 5px 10px; display: flex; align-items: center; overflow: hidden; box-sizing: border-box; - img{ + img { height: 100%; } } diff --git a/src/views/accidentManagementSystem/accidentExpress/component/openAdd.vue b/src/views/accidentManagementSystem/accidentExpress/component/openAdd.vue index 50a59d7..430d136 100644 --- a/src/views/accidentManagementSystem/accidentExpress/component/openAdd.vue +++ b/src/views/accidentManagementSystem/accidentExpress/component/openAdd.vue @@ -53,7 +53,8 @@ <el-radio :label="true">是</el-radio> <el-radio :label="false">否</el-radio> </el-radio-group> - <el-button v-if="ruleForm.casualties" type="primary" style="margin-left: 20px" :icon="Edit" @click="openDai" round plain /> + <el-button v-if="ruleForm.casualties" type="primary" style="margin-left: 20px" + :icon="Edit" @click="openDai" round plain /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> @@ -101,7 +102,8 @@ <template #footer> <span class="dialog-footer"> <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" v-if="disabled == true ? false : true" type="primary" @click="submitForm(titles, ruleFormRef)">确定</el-button> + <el-button size="default" v-if="disabled == true ? false : true" type="primary" + @click="submitForm(titles, ruleFormRef)">确定</el-button> </span> </template> </el-dialog> @@ -387,7 +389,16 @@ }; const ShowUser = ref(); const openDai = () => { - ShowUser.value.openDialog(ruleForm.value.id, disabled.value); + if(ruleForm.value.id==null||ruleForm.value.id==''){ + ElMessage({ + showClose: true, + message: '请先添加事故快报', + type: 'info', + }); + }else { + ShowUser.value.openDialog(ruleForm.value.id, disabled.value); + } + }; // 应急队伍弹窗 const Shows = ref(); diff --git a/src/views/accidentManagementSystem/accidentReport/component/openAdd.vue b/src/views/accidentManagementSystem/accidentReport/component/openAdd.vue index de8cecb..a17ed5e 100644 --- a/src/views/accidentManagementSystem/accidentReport/component/openAdd.vue +++ b/src/views/accidentManagementSystem/accidentReport/component/openAdd.vue @@ -1,12 +1,12 @@ <template> <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" width="800px" draggable :fullscreen="full" @close="closeDialog(ruleFormRef)"> + <el-dialog :title="titles" v-model="isShowDialog" width="800px" draggable :fullscreen="full" @close="resetForm(ruleFormRef)"> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-form ref="ruleFormRef" :model="ruleForm" size="default" :rules="rules" label-width="140px"> <el-row :gutter="35"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="事故快报" prop="accidentName"> - <el-input v-model="ruleForm.accidentName" :disabled="true" placeholder="请选择" class="input-with-select"> + <el-form-item label="事故快报" prop="accidentExpressId"> + <el-input v-model="accidentName" :disabled="true" placeholder="请选择" class="input-with-select"> <template #append> <el-button :icon="Search" @click="daiInpt" /> </template> @@ -16,19 +16,19 @@ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="事故部门" placeholder="请选择" prop="accidentDepartmentId"> <!--<el-input v-model="ruleForm.accidentDepartmentName" class="input-with-select" />--> - <el-tree-select v-model="ruleForm.accidentDepartmentId" :disabled="true" :data="newTreeList" + <el-tree-select v-model="accidentDepartmentId" :disabled="true" :data="newTreeList" :props="propse" class="w100" placeholder="请选择" /> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="事故发生地点" prop="occurrencePlace"> - <el-input v-model="ruleForm.occurrencePlace" :disabled="true" placeholder="请填写发生地点"></el-input> + <el-input v-model="occurrencePlace" :disabled="true" placeholder="请填写发生地点"></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="发生时间" prop="occurrenceTime"> <el-date-picker - v-model="ruleForm.occurrenceTime" + v-model="occurrenceTime" :disabled="true" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" @@ -240,13 +240,6 @@ //定义表单 const ruleForm = ref({ accidentExpressId:'', - accidentExpressName:'', - accidentDepartmentId:'', - accidentDepartmentName:'', - occurrencePlace:'', - occurrenceTime:'', - - accidentType: '', accidentGrade: '', @@ -294,19 +287,17 @@ .then((res) => { if (res.data.code == 200) { ruleForm.value = res.data.data; + accidentName.value = res.data.data.accidentName + accidentDepartmentId.value = res.data.data.accidentDepartmentId + occurrencePlace.value = res.data.data.occurrencePlace + occurrenceTime.value = res.data.data.occurrenceTime } }); } }; - // 关闭弹窗 - const closeDialog = (formEl: FormInstance | undefined) => { - formEl.resetFields(); - console.log(ruleForm) - isShowDialog.value = false; - }; // 取消 const onCancel = (formEl: FormInstance | undefined) => { - closeDialog(formEl); + resetForm(formEl); }; //日期选择器 const value1 = ref(''); @@ -320,18 +311,11 @@ ]; // 必填项提示 const rules = reactive<FormRules>({ - accidentDepartmentId: [ + accidentExpressId: [ { required: true, - message: '事故部门不能为空', + message: '快报不能为空', trigger: 'change', - }, - ], - occurrenceTime: [ - { - required: true, - message: '发生时间不能为空', - trigger: 'blur', }, ], accidentType: [ @@ -420,18 +404,26 @@ }, ], }); + const accidentDepartmentId = ref() + const occurrencePlace = ref() + const occurrenceTime = ref() + const accidentName = ref() //事故快报回填 const onSelectItem = (item: any) => { console.log('item', item[0]); ruleForm.value.accidentExpressId = item[0].id - ruleForm.value.accidentName = item[0].accidentName - ruleForm.value.accidentDepartmentId = item[0].accidentDepartmentId - ruleForm.value.accidentDepartmentName = item[0].deptName - ruleForm.value.occurrencePlace = item[0].occurrencePlace - ruleForm.value.occurrenceTime = item[0].occurrenceTime + accidentName.value = item[0].accidentName + accidentDepartmentId.value = item[0].accidentDepartmentId + occurrencePlace.value = item[0].occurrencePlace + occurrenceTime.value = item[0].occurrenceTime }; // 表单提交验证必填项 const submitForm = async (title: string, formEl: FormInstance | undefined) => { + delete ruleForm.value.accidentName + delete ruleForm.value.accidentDepartmentId + delete ruleForm.value.occurrencePlace + delete ruleForm.value.occurrenceTime + if (title == '新建事故报告') { if (!formEl) return; await formEl.validate((valid, fields) => { @@ -495,13 +487,6 @@ formEl.resetFields(); ruleForm.value = { accidentExpressId:'', - accidentExpressName:'', - accidentDepartmentId:'', - accidentDepartmentName:'', - occurrencePlace:'', - occurrenceTime:'', - - accidentType: '', accidentGrade: '', @@ -531,6 +516,12 @@ isShowDialog.value = false; if (!formEl) return; formEl.resetFields(); + // ruleForm.value.accidentExpressId = item[0].id + ruleForm.value = {} + accidentName.value = '' + accidentDepartmentId.value = '' + occurrencePlace.value = '' + occurrenceTime.value = '' }; const handleChange = (val: number) => { console.log(val); @@ -602,7 +593,6 @@ }; return { openDialog, - closeDialog, isShowDialog, onCancel, fileList, @@ -635,7 +625,11 @@ department, getTreeList, propse, - statusDisabled + statusDisabled, + accidentDepartmentId, + occurrencePlace, + occurrenceTime, + accidentName }; }, }); diff --git a/src/views/accidentManagementSystem/accidentReport/index.vue b/src/views/accidentManagementSystem/accidentReport/index.vue index 6694d4b..b007a48 100644 --- a/src/views/accidentManagementSystem/accidentReport/index.vue +++ b/src/views/accidentManagementSystem/accidentReport/index.vue @@ -74,14 +74,15 @@ </el-table> <div class="pages"> <el-pagination - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="40" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" + v-if="tableData.length == 0 ? false : true" + v-model:currentPage="pageIndex" + v-model:page-size="pageSize" + :page-sizes="[10, 20, 30]" + :pager-count="5" + layout="total, sizes, prev, pager, next, jumper" + :total="total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" /> </div> </el-tab-pane> diff --git a/src/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue b/src/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue index d349645..86cd9a6 100644 --- a/src/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue +++ b/src/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue @@ -1,6 +1,6 @@ <template> <div> - <el-dialog v-model="dialogVisible" title="选择事故名称" width="900px" draggable :fullscreen="full"> + <el-dialog v-model="dialogVisible" title="选择事故名称" width="900px" draggable :fullscreen="full" @close="handleClose"> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-row> <el-col :span="18"> @@ -85,7 +85,7 @@ </el-row> <template #footer> <span class="dialog-footer"> - <el-button @click="dialogVisible = false" size="default">关闭</el-button> + <el-button @click="closeDialog()" size="default">关闭</el-button> <el-button type="primary" @click="submitForm" size="default">确定</el-button> </span> </template> @@ -146,6 +146,7 @@ const submitForm = () => { emit('selectItem', dynamicTags.value); dialogVisible.value = false; + radio1.value='' }; //查询list数据 const listApi = async () => { @@ -161,6 +162,10 @@ }; // 右方点击添加后显示标签 const dynamicTags = ref([]); + const closeDialog=()=>{ + dialogVisible.value = false + handleClose() + }; const handleClose = () => { dynamicTags.value = []; radio1.value = ''; @@ -196,6 +201,7 @@ checkedItem, submitReset, submitForm, + closeDialog }; }, }); diff --git a/src/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue b/src/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue index 581cd61..9cad19d 100644 --- a/src/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue +++ b/src/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue @@ -351,6 +351,10 @@ await formEl.validate((valid, fields) => { if (valid) { isShowDialog.value = false; + ruleForm.value.fileList=[] + delete ruleForm.value.accidentName + delete ruleForm.value.occurrenceTime + delete ruleForm.value.id accidentManagementSystemApi() .workAdd(ruleForm.value) .then((res) => { @@ -380,6 +384,9 @@ await formEl.validate((valid, fields) => { if (valid) { isShowDialog.value = false; + ruleForm.value.fileList=[] + delete ruleForm.value.accidentName + delete ruleForm.value.occurrenceTime accidentManagementSystemApi() .workView(ruleForm.value) .then((res) => { diff --git a/src/views/accidentManagementSystem/workInjuryDeclaration/index.vue b/src/views/accidentManagementSystem/workInjuryDeclaration/index.vue index 503246d..2f59a97 100644 --- a/src/views/accidentManagementSystem/workInjuryDeclaration/index.vue +++ b/src/views/accidentManagementSystem/workInjuryDeclaration/index.vue @@ -1,406 +1,391 @@ <template> - <div class="system-user-container"> - <el-card shadow="hover"> - <div class="system-user-search mb15"> - <el-form ref="ruleFormRef" size="default" label-width="80px" :inline="true"> - <el-form-item prop="telephone"> - <el-input v-model="listQuery.searchParams.accidentName" placeholder="请选择事故快报" :disabled="true" - class="input-with-select"> - <template #append> - <el-button :icon="Search" @click="daiInpt"/> - </template> - </el-input> - </el-form-item> - <el-button size="default" type="primary" class="ml10" @click="listApi"> 查询</el-button> - <el-button size="default" class="ml10" @click="submitReset"> 重置</el-button> - </el-form> - </div> - <div class="button_Line"> - <div class="button_Left"> - <el-button size="default" type="primary" @click="onOpenAdd"> - <el-icon> - <Plus/> - </el-icon> - 新建 - </el-button> - <el-button size="default" type="warning" plain :disabled="warning"> - <el-icon> - <Edit/> - </el-icon> - 修改 - </el-button> - <el-button size="default" type="danger" plain @click="onDeleteAll" :disabled="danger"> - <el-icon> - <Delete/> - </el-icon> - 删除 - </el-button> - </div> - <div class="button_Right"> - <el-button @click="upButton"> - <el-icon> - <Upload/> - </el-icon> - </el-button> - <el-button> - <el-icon> - <Download/> - </el-icon> - </el-button> - <el-button> - <el-icon> - <Refresh/> - </el-icon> - </el-button> - </div> - </div> - <el-table :data="tableData" style="width: 100%" ref="multipleTableRef" - @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55"/> - <el-table-column prop="declareUserName" label="申报人名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="deptName" label="申报人部门" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="accidentName" label="事故名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="workInjuryType" label="工商类型" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="declareDate" label="申报日期" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="visitHospital" label="就诊医院" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="260" align="center" fixed="right"> - <template #default="scope"> - <!--<el-button size="small" text disabled>--> - <!--<el-icon style="margin-right: 5px"> <Upload /> </el-icon>上报--> - <!--</el-button>--> - <el-button size="small" text type="primary" @click="onEdit('详情',scope.row.id)"> - <el-icon style="margin-right: 5px"> - <View/> - </el-icon> - 查看 - </el-button> - <el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)"> - <el-icon style="margin-right: 5px"> - <EditPen/> - </el-icon> - 修改 - </el-button> - <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> 删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </el-card> - <AccidentName ref="showRef" @selectItem="onSelectItem"/> - <OpenAdd ref="addRef" @myAdd="onMyAdd"/> - <!-- <OpenEdit ref="editRef" />--> - <upData ref="upShow"></upData> - </div> + <div class="system-user-container"> + <el-card shadow="hover"> + <div class="system-user-search mb15"> + <el-form ref="ruleFormRef" size="default" label-width="80px" :inline="true"> + <el-form-item prop="telephone"> + <el-input v-model="accidentName" placeholder="请选择事故快报" :disabled="true" class="input-with-select"> + <template #append> + <el-button :icon="Search" @click="daiInpt" /> + </template> + </el-input> + </el-form-item> + <el-button size="default" type="primary" class="ml10" @click="listApi"> 查询</el-button> + <el-button size="default" class="ml10" @click="submitReset"> 重置</el-button> + </el-form> + </div> + <div class="button_Line"> + <div class="button_Left"> + <el-button size="default" type="primary" @click="onOpenAdd"> + <el-icon> + <Plus /> + </el-icon> + 新建 + </el-button> + <el-button size="default" type="warning" plain :disabled="warning"> + <el-icon> + <Edit /> + </el-icon> + 修改 + </el-button> + <el-button size="default" type="danger" plain @click="onDeleteAll" :disabled="danger"> + <el-icon> + <Delete /> + </el-icon> + 删除 + </el-button> + </div> + <div class="button_Right"> + <el-button @click="upButton"> + <el-icon> + <Upload /> + </el-icon> + </el-button> + <el-button> + <el-icon> + <Download /> + </el-icon> + </el-button> + <el-button> + <el-icon> + <Refresh /> + </el-icon> + </el-button> + </div> + </div> + <el-table :data="tableData" style="width: 100%" ref="multipleTableRef" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" /> + <el-table-column prop="declareUserName" label="申报人名称" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="deptName" label="申报人部门" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="accidentName" label="事故名称" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="workInjuryType" label="工商类型" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="declareDate" label="申报日期" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="visitHospital" label="就诊医院" show-overflow-tooltip sortable></el-table-column> + <el-table-column label="操作" width="260" align="center" fixed="right"> + <template #default="scope"> + <!--<el-button size="small" text disabled>--> + <!--<el-icon style="margin-right: 5px"> <Upload /> </el-icon>上报--> + <!--</el-button>--> + <el-button size="small" text type="primary" @click="onEdit('详情', scope.row.id)"> + <el-icon style="margin-right: 5px"> + <View /> + </el-icon> + 查看 + </el-button> + <el-button size="small" text type="primary" @click="onEdit('修改', scope.row.id)"> + <el-icon style="margin-right: 5px"> + <EditPen /> + </el-icon> + 修改 + </el-button> + <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)"> 删除</el-button> + </template> + </el-table-column> + </el-table> + <div class="pages"> + <el-pagination + v-if="tableData.length == 0 ? false : true" + v-model:currentPage="pageIndex" + v-model:page-size="pageSize" + :page-sizes="[10, 20, 30]" + :pager-count="5" + layout="total, sizes, prev, pager, next, jumper" + :total="total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> + </el-card> + <AccidentName ref="showRef" @selectItem="onSelectItem" /> + <OpenAdd ref="addRef" @myAdd="onMyAdd" /> + <!-- <OpenEdit ref="editRef" />--> + <upData ref="upShow"></upData> + </div> </template> <script lang="ts"> - import { - // toRefs, - reactive, - // onMounted, - ref, - defineComponent, - onMounted, - } from 'vue'; - import { - ElMessageBox, - ElMessage - } from 'element-plus'; - import { - Plus, - Download, - Refresh, - View, - EditPen, - Edit, - Delete, - Search, - Upload - } from '@element-plus/icons-vue'; - import AccidentName from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue'; - import OpenAdd from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue'; - import OpenEdit from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue'; - import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; - import {accidentManagementSystemApi} from '/@/api/accidentManagementSystem'; +import { + // toRefs, + reactive, + // onMounted, + ref, + defineComponent, + onMounted, +} from 'vue'; +import { ElMessageBox, ElMessage } from 'element-plus'; +import { Plus, Download, Refresh, View, EditPen, Edit, Delete, Search, Upload } from '@element-plus/icons-vue'; +import AccidentName from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue'; +import OpenAdd from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/openAdd.vue'; +import OpenEdit from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/openEdit.vue'; +import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; +import { accidentManagementSystemApi } from '/@/api/accidentManagementSystem'; - export default defineComponent({ - name: 'index', - components: { - OpenEdit, - EditPen, - Plus, - Upload, - Download, - Refresh, - Edit, - View, - Delete, - UpData, - OpenAdd, - AccidentName, - }, - setup() { - //列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - accidentExpressId: "", - }, - }); - //搜索条件回填 - const onSelectItem = (item: any) => { - console.log('item', item[0].accidentName); - listQuery.searchParams.accidentExpressId = item[0].id - listQuery.searchParams.accidentName = item[0].accidentName - }; - // 定义表格数据 - const tableData = ref([]); - // 请求列表数据 - const listApi = async () => { - let res = await accidentManagementSystemApi().workList(listQuery); - if (res.data.code == 200) { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }; - onMounted(() => { - listApi(); - }); - // 重置 - const submitReset = () => { - listQuery.searchParams.accidentExpressId = '' - listQuery.searchParams.accidentName = '' - listApi(); - } - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - // 事故名称弹窗 - const showRef = ref(); - const daiInpt = () => { - showRef.value.openDailog(); - }; - // 打开新增弹窗 - const addRef = ref(); - const onOpenAdd = () => { - addRef.value.openDialog('新建工伤申报', false); - }; - // 新增后刷新 - const onMyAdd = (e: boolean) => { - if (e) { - listApi(); - } else { - listApi(); - } - }; - // 上传 - const upShow = ref(); - const upButton = () => { - upShow.value.openDialog(); - }; +export default defineComponent({ + name: 'index', + components: { + OpenEdit, + EditPen, + Plus, + Upload, + Download, + Refresh, + Edit, + View, + Delete, + UpData, + OpenAdd, + AccidentName, + }, + setup() { + //列表参数 + const listQuery = reactive({ + pageIndex: 1, + pageSize: 10, + searchParams: { + accidentExpressId: '', + }, + }); + //搜索条件回填 + const onSelectItem = (item: any) => { + console.log('item', item[0].accidentName); + listQuery.searchParams.accidentExpressId = item[0].id; + accidentName.value = item[0].accidentName; + }; + // 定义表格数据 + const tableData = ref([]); + // 请求列表数据 + const listApi = async () => { + let res = await accidentManagementSystemApi().workList(listQuery); + if (res.data.code == 200) { + tableData.value = res.data.data; + pageIndex.value = res.data.pageIndex; + pageSize.value = res.data.pageSize; + total.value = res.data.total; + } else { + ElMessage.error(res.data.msg); + } + }; + onMounted(() => { + listApi(); + }); + const accidentName = ref(); + // 重置 + const submitReset = () => { + listQuery.searchParams.accidentExpressId = ''; + accidentName.value = ''; + listApi(); + }; + const warning = ref(true); + const danger = ref(true); + const deletAll = ref(); + const handleSelectionChange = (val: any) => { + let valId = JSON.parse(JSON.stringify(val)); + let arr = []; + for (let i = 0; i < valId.length; i++) { + arr.push(valId[i].id); + } + deletAll.value = arr; + if (val.length == 1) { + warning.value = false; + danger.value = false; + } else if (val.length == 0) { + warning.value = true; + danger.value = true; + } else { + warning.value = true; + danger.value = false; + } + }; + // 事故名称弹窗 + const showRef = ref(); + const daiInpt = () => { + showRef.value.openDailog(); + }; + // 打开新增弹窗 + const addRef = ref(); + const onOpenAdd = () => { + addRef.value.openDialog('新建工伤申报', false); + }; + // 新增后刷新 + const onMyAdd = (e: boolean) => { + if (e) { + listApi(); + } else { + listApi(); + } + }; + // 上传 + const upShow = ref(); + const upButton = () => { + upShow.value.openDialog(); + }; - // 打开修改用户弹窗 - // const editRef = ref(); - const onEdit = (val: string, row: object) => { - if (val == '详情') { - addRef.value.openDialog('查看工伤申报', row, true); - } else { - addRef.value.openDialog('修改工伤申报', row, false); - } - }; - // 删除用户 - const onRowDel = (data: any) => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - accidentManagementSystemApi() - .workDelete([data]) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => { - }); - }; - // 多选删除 - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - accidentManagementSystemApi() - .workDelete(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - listApi(); - } - }); - }) - .catch(() => { - }); - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - return { - daiInpt, - showRef, - upButton, - upShow, - tableData, - pageIndex, - pageSize, - handleSizeChange, - handleCurrentChange, - onEdit, - onOpenAdd, - addRef, - // editRef, - listApi, - Search, - submitReset, - onDeleteAll, - handleSelectionChange, - warning, - danger, - listQuery, - onRowDel, - total, - onMyAdd, - onSelectItem - }; - }, - }); + // 打开修改用户弹窗 + // const editRef = ref(); + const onEdit = (val: string, row: object) => { + if (val == '详情') { + addRef.value.openDialog('查看工伤申报', row, true); + } else { + addRef.value.openDialog('修改工伤申报', row, false); + } + }; + // 删除用户 + const onRowDel = (data: any) => { + ElMessageBox.confirm('确定删除所选项吗?', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning', + }) + .then(() => { + accidentManagementSystemApi() + .workDelete([data]) + .then((res) => { + if (res.data.code == 200) { + ElMessage({ + showClose: true, + message: res.data.msg, + type: 'success', + }); + listApi(); + } else { + ElMessage({ + showClose: true, + message: res.data.msg, + type: 'error', + }); + listApi(); + } + }); + }) + .catch(() => {}); + }; + // 多选删除 + const onDeleteAll = () => { + ElMessageBox.confirm('确定删除所选项吗?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) + .then(() => { + accidentManagementSystemApi() + .workDelete(deletAll.value) + .then((res) => { + if (res.data.code == 200) { + ElMessage({ + showClose: true, + message: res.data.msg, + type: 'success', + }); + listApi(); + } else { + ElMessage({ + showClose: true, + message: res.data.msg, + type: 'error', + }); + listApi(); + } + }); + }) + .catch(() => {}); + }; + // 分页 + const pageIndex = ref(); + const pageSize = ref(); + const total = ref(); + // 分页改变 + const handleSizeChange = (val: number) => { + listQuery.pageSize = val; + }; + // 分页未改变 + const handleCurrentChange = (val: number) => { + listQuery.pageIndex = val; + }; + return { + accidentName, + daiInpt, + showRef, + upButton, + upShow, + tableData, + pageIndex, + pageSize, + handleSizeChange, + handleCurrentChange, + onEdit, + onOpenAdd, + addRef, + // editRef, + listApi, + Search, + submitReset, + onDeleteAll, + handleSelectionChange, + warning, + danger, + listQuery, + onRowDel, + total, + onMyAdd, + onSelectItem, + }; + }, +}); </script> <style scoped lang="scss"> - .table_Box { - padding: 20px; - background-color: #fff; - } +.table_Box { + padding: 20px; + background-color: #fff; +} - .tableForm { - margin-top: 10px; - } +.tableForm { + margin-top: 10px; +} - /*按钮行*/ - .button_Line { - display: flex; - flex-direction: row; - justify-content: space-between; - } +/*按钮行*/ +.button_Line { + display: flex; + flex-direction: row; + justify-content: space-between; +} - //分页 - .pages { - display: flex; - justify-content: flex-end; - margin-top: 15px; - } +//分页 +.pages { + display: flex; + justify-content: flex-end; + margin-top: 15px; +} - ::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; - } +::v-deep .el-pagination .el-pager li { + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px; +} - ::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; - } +::v-deep .el-pagination .el-pager li.is-active { + background-color: #409eff; + color: #fff; +} - ::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; - } +::v-deep .el-pagination .btn-prev { + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px; +} - ::v-deep .el-pagination button:disabled { - color: #c0c4cc; - } +::v-deep .el-pagination button:disabled { + color: #c0c4cc; +} - ::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; - } +::v-deep .el-pagination .btn-next { + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px; +} </style> \ No newline at end of file diff --git a/src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue b/src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue index de19c3f..cafe13e 100644 --- a/src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue +++ b/src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue @@ -20,7 +20,7 @@ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="选择人员" prop="name"> <el-input - v-model="ruleForm.userName" + v-model="ruleForm.name" placeholder="请选择" class="input-with-select" > @@ -62,7 +62,7 @@ </el-form> <template #footer> <span class="dialog-footer"> - <el-button size="default" type="primary" @click="addForm(ruleFormRef)">继续添加</el-button> +<!-- <el-button size="default" type="primary" @click="addForm(ruleFormRef)">继续添加</el-button>--> <el-button size="default" @click="resetForm(ruleFormRef)">关闭</el-button> <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)" >确定</el-button> </span> @@ -103,7 +103,6 @@ const ruleForm = ref ({ teamId: '', userUid: '', - userName:'', gender: '', jobNumber: '', // 人员工号 name: '', // 人员名称 @@ -149,11 +148,6 @@ }) const titles = ref(); const disabled = ref(); - //继续添加 - const addForm = (formEl: FormInstance | undefined) => { - emit('myAdd', ruleForm.value); - formEl.resetFields(); - } const submitForm = async (title: string, formEl: FormInstance | undefined) => { if (title == '新建应急队伍人员') { if (!formEl) return; @@ -220,7 +214,6 @@ ruleForm.value = { teamId: '', userUid: '', - userName:'', gender: '', jobNumber: '', // 人员工号 name: '', // 人员名称 @@ -259,9 +252,8 @@ }; const onUser = (e:any) => { ruleForm.value.userUid=e[0].uid - ruleForm.value.userName=e[0].realName ruleForm.value.gender=e[0].sex - ruleForm.value.name=e[0].username + ruleForm.value.name=e[0].realName ruleForm.value.jobNumber=e[0].jobNumber ruleForm.value.phone=e[0].phone ruleForm.value.position=e[0].position @@ -295,7 +287,6 @@ openUser, userRef, onUser, - addForm, submitForm, }; }, diff --git a/src/views/contingencyManagement/contingency/component/openAdd.vue b/src/views/contingencyManagement/contingency/component/openAdd.vue index e853358..d5495f2 100644 --- a/src/views/contingencyManagement/contingency/component/openAdd.vue +++ b/src/views/contingencyManagement/contingency/component/openAdd.vue @@ -30,7 +30,7 @@ </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="负责人部门" prop="principalDepartmentId"> - <el-tree-select v-model="ruleForm.principalDepartmentId" :data="data" class="w100" + <el-tree-select v-model="ruleForm.principalDepartmentId" :data="newTreeList" class="w100" :props="propse" clearable placeholder="请选择"/> </el-form-item> </el-col> @@ -163,12 +163,7 @@ principalPhone: '', // 负责人手机 telephoneNumber: '', // 固定电话 teamDesc: '', //队伍描述 - fileList: [ - { - fileUrl: 'url', - fileName: 'name', - } - ], + fileList: [], memberList: [] }); const titles = ref(); @@ -201,29 +196,53 @@ // 上传附件 const fileList = ref<UploadUserFile[]>([]) - //部门树 - const department = () => { - goalManagementApi() + //定义树形下拉框 + const principalDepartmentId = ref() + const data = ref() + + + + //el-tree-select回显 + const propse = { + label: 'depName', + children: 'children', + }; + const newTreeList = []; + //得到部门树 + const department = async () => { + await goalManagementApi() .getTreedepartment() .then((res) => { if (res.data.code == 200) { data.value = res.data.data; + getTreeList(res.data.data, newTreeList); } else { ElMessage.error(res.data.msg); } }); }; - //定义树形下拉框 - const principalDepartmentId = ref() - const propse = { - label: 'depName', - children: 'children', - value: 'depId', + // 递归树状数据且修改字段名 + const getTreeList = (treeList, newTreeList) => { + treeList.map((c) => { + let tempData = { + depName: c.depName, + value: c.depId, + children: [], + }; + if (c.children && c.children.length > 0) { + tempData.children = []; + getTreeList(c.children, tempData.children); + } + newTreeList.push(tempData); + }); }; - const data = ref() onMounted(() => { department(); }); + + + + // 打开用户选择弹窗 const userRef = ref(); const openUser = () => { @@ -327,6 +346,7 @@ if (!formEl) return; await formEl.validate((valid, fields) => { if (valid) { + ruleForm.value.fileList=[] isShowDialog.value = false; contingencyApi() .editEmergencyTeam(ruleForm.value) @@ -361,12 +381,7 @@ principalPhone: '', // 负责人手机 telephoneNumber: '', // 固定电话 teamDesc: '', //队伍描述 - fileList: [ - { - fileUrl: 'url', - fileName: 'name', - } - ], + fileList: [], memberList: [] }; } @@ -376,6 +391,7 @@ if (!formEl) return; formEl.resetFields(); tableData.value=[] + ruleForm.value = {} }; // 定义表格数据 const tableData = ref([]); @@ -392,7 +408,6 @@ }else { addRef.value.openDialog('新建应急队伍人员','',teamId.value); } - }; // 请求列表数据 const listApi = async () => { @@ -406,10 +421,6 @@ // 新增后刷新 const onMyAdd = (e: object) => { listApi(); - // console.log(e) - // item.value = e - // tableData.value.push(item.value) - // console.log(tableData) }; // 打开修改弹窗 const onEdit = (val: string, row: object) => { @@ -482,7 +493,8 @@ onRowDel, department, peopleInsertBtn, - teamId + teamId, + newTreeList }; }, }); diff --git a/src/views/contingencyManagement/contingency/index.vue b/src/views/contingencyManagement/contingency/index.vue index 2196936..69ae1a4 100644 --- a/src/views/contingencyManagement/contingency/index.vue +++ b/src/views/contingencyManagement/contingency/index.vue @@ -7,7 +7,7 @@ <el-input size="default" v-model="listQuery.searchParams.teamName" placeholder="队伍名称"> </el-input> </el-form-item> <el-form-item> - <el-select size="default" v-model="listQuery.searchParams.teamType" placeholder="请选择队伍级别"> + <el-select size="default" v-model="listQuery.searchParams.teamLevel" placeholder="请选择队伍级别"> <el-option label="公司" value="1"></el-option> <el-option label="分厂-车间" value="2"></el-option> <el-option label="工序-班组等" value="3"></el-option> @@ -30,11 +30,11 @@ <Plus /> </el-icon>新建 </el-button> - <el-button size="default" type="warning" plain :disabled="warning"> - <el-icon> - <Edit /> - </el-icon>修改 - </el-button> +<!-- <el-button size="default" type="warning" plain :disabled="warning">--> +<!-- <el-icon>--> +<!-- <Edit />--> +<!-- </el-icon>修改--> +<!-- </el-button>--> <el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll"> <el-icon> <Delete /> @@ -134,8 +134,8 @@ ElMessageBox, ElMessage, } from 'element-plus'; -import { Plus, - Edit, +import { + Plus, Delete, // Upload, // Download, @@ -155,7 +155,6 @@ View, EditPen, Plus, - Edit, Delete, // Upload, // Download, @@ -170,7 +169,7 @@ pageSize: 10, searchParams: { teamName: "", - teamType: "", + teamLevel: "", } }) // 定义表格数据 @@ -194,10 +193,10 @@ // 重置 const submitReset = () => { listQuery.searchParams.teamName = ''; - listQuery.searchParams.teamType = ''; + listQuery.searchParams.teamLevel = ''; onSubmit(); }; - const warning = ref(true); + // const warning = ref(true); const danger = ref(true); const deleteAll = ref(); const handleSelectionChange = (val: any) => { @@ -208,13 +207,13 @@ } deleteAll.value = arr; if (val.length == 1) { - warning.value = false; + // warning.value = false; danger.value = false; } else if (val.length == 0) { - warning.value = true; + // warning.value = true; danger.value = true; } else { - warning.value = true; + // warning.value = true; danger.value = false; } }; @@ -340,7 +339,7 @@ onHandleSizeChange, onHandleCurrentChange, deleteAll, - warning, + // warning, danger, }; }, diff --git a/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue b/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue index 07f4e5f..81b4674 100644 --- a/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue +++ b/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue @@ -6,6 +6,7 @@ width="900px" draggable :fullscreen="full" + @close="resetForm(ruleFormRef)" > <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-form @@ -433,7 +434,7 @@ const ruleFormRef = ref<FormInstance>() //定义表单 const ruleForm = ref ({ - drillPlanId: '', + drillExecuteId: '', suitable: '', sufficient: '', arrival: '', @@ -450,10 +451,29 @@ questionAndImprove: '', modifyContent: '', fileList: [ - { - fileName: 'name', - fileUrl: 'url', - } + ], + userList: [ + ] + }); + //定义表单 + const realRuleForm = ref ({ + drillExecuteId: '', + suitable: '', + sufficient: '', + arrival: '', + supplies: '', + protection: '', + whole: '', + division: '', + effect: '', + report: '', + safety: '', + rescue: '', + evacuate: '', + needModify: '', + questionAndImprove: '', + modifyContent: '', + fileList: [ ], userList: [ ] @@ -504,18 +524,28 @@ ruleForm.value.chargeUserListString='' ruleForm.value.executeUserListString='' ruleForm.value.evaluationUserListString='' - for(var a = 0;a<res.data.data.planUserList.length;a++){ - ruleForm.value.planUserListString += res.data.data.planUserList[a].userName+';' + if(res.data.data.planUserList){ + for(var a = 0;a<res.data.data.planUserList.length;a++){ + ruleForm.value.planUserListString += res.data.data.planUserList[a].userName+';' + } } - for(var a = 0;a<res.data.data.planChargeUserList.length;a++){ - ruleForm.value.chargeUserListString += res.data.data.planChargeUserList[a].userName+';' + + if(res.data.data.planChargeUserList){ + for(var a = 0;a<res.data.data.planChargeUserList.length;a++){ + ruleForm.value.chargeUserListString += res.data.data.planChargeUserList[a].userName+';' + } } - for(var a = 0;a<res.data.data.executeUserList.length;a++){ - ruleForm.value.executeUserListString += res.data.data.executeUserList[a].userName+';' + + if(res.data.data.executeUserList){ + for(var a = 0;a<res.data.data.executeUserList.length;a++){ + ruleForm.value.executeUserListString += res.data.data.executeUserList[a].userName+';' + } } //演练负责人(评价) - for(var a = 0;a<res.data.data.evaluationUserList.length;a++){ - ruleForm.value.evaluationUserListString += res.data.data.evaluationUserList[a].userName+';' + if(res.data.data.evaluationUserList){ + for(var a = 0;a<res.data.data.evaluationUserList.length;a++){ + ruleForm.value.evaluationUserListString += res.data.data.evaluationUserList[a].userName+';' + } } } }); @@ -530,19 +560,31 @@ ruleForm.value.chargeUserListString='' ruleForm.value.executeUserListString='' ruleForm.value.evaluationUserListString='' - for(var a = 0;a<res.data.data.planUserList.length;a++){ - ruleForm.value.planUserListString += res.data.data.planUserList[a].userName+';' + + if(res.data.data.planUserList){ + for(var a = 0;a<res.data.data.planUserList.length;a++){ + ruleForm.value.planUserListString += res.data.data.planUserList[a].userName+';' + } } - for(var a = 0;a<res.data.data.planChargeUserList.length;a++){ - ruleForm.value.chargeUserListString += res.data.data.planChargeUserList[a].userName+';' + + if(res.data.data.planChargeUserList){ + for(var a = 0;a<res.data.data.planChargeUserList.length;a++){ + ruleForm.value.chargeUserListString += res.data.data.planChargeUserList[a].userName+';' + } } - for(var a = 0;a<res.data.data.executeUserList.length;a++){ - ruleForm.value.executeUserListString += res.data.data.executeUserList[a].userName+';' + + if(res.data.data.executeUserList){ + for(var a = 0;a<res.data.data.executeUserList.length;a++){ + ruleForm.value.executeUserListString += res.data.data.executeUserList[a].userName+';' + } } //演练负责人(评价) - for(var a = 0;a<res.data.data.evaluationUserList.length;a++){ - ruleForm.value.evaluationUserListString += res.data.data.evaluationUserList[a].userName+';' + if(res.data.data.evaluationUserList){ + for(var a = 0;a<res.data.data.evaluationUserList.length;a++){ + ruleForm.value.evaluationUserListString += res.data.data.evaluationUserList[a].userName+';' + } } + } }); } @@ -623,6 +665,34 @@ const submitForm = async (title: string, formEl: FormInstance | undefined) => { //演练负责人(评价) ruleForm.value.userList = ruleForm.value.evaluationUserList + + + + realRuleForm.value.drillExecuteId=ruleForm.value.drillExecuteId + realRuleForm.value.suitable=ruleForm.value.suitable + realRuleForm.value.sufficient=ruleForm.value.sufficient + realRuleForm.value.arrival=ruleForm.value.arrival + realRuleForm.value.supplies=ruleForm.value.supplies + realRuleForm.value.protection=ruleForm.value.protection + realRuleForm.value.whole=ruleForm.value.whole + realRuleForm.value.division=ruleForm.value.division + realRuleForm.value.effect=ruleForm.value.effect + realRuleForm.value.report=ruleForm.value.report + realRuleForm.value.safety=ruleForm.value.safety + realRuleForm.value.rescue=ruleForm.value.rescue + realRuleForm.value.evacuate=ruleForm.value.evacuate + realRuleForm.value.needModify=ruleForm.value.needModify + realRuleForm.value.questionAndImprove=ruleForm.value.questionAndImprove + realRuleForm.value.modifyContent=ruleForm.value.modifyContent + realRuleForm.value.fileList=ruleForm.value.fileList + if(ruleForm.value.userList){ + for(var a = 0;a<ruleForm.value.userList.length;a++){ + realRuleForm.value.userList.push({ + userUid:ruleForm.value.userList[a].userUid, + userName:ruleForm.value.userList[a].userName + }) + } + } // console.log(ruleForm.value.evaluationUserList) // ruleForm.value.userList=[] // for(var a = 0;a<ruleForm.value.evaluationUserList.length;a++){ @@ -634,7 +704,7 @@ if (valid) { // console.log(ruleForm.value) emergencyDrillEvaluationApi() - .editEmergencyDrillEvaluation(ruleForm.value) + .editEmergencyDrillEvaluation(realRuleForm.value) // emergencyDrillExecuteApi() // .editEmergencyDrillExecute(ruleForm.value) .then((res) => { @@ -709,6 +779,7 @@ ) ruleForm.value.evaluationUserListString+=e[a].realName+';' } + console.log(ruleForm.value.evaluationUserList) } //el-tree-select回显 const propse = { @@ -789,7 +860,8 @@ department, newTreeList, selectUser, - submitForm + submitForm, + realRuleForm }; }, }); diff --git a/src/views/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/openAdd.vue b/src/views/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/openAdd.vue index 15f3892..3b85b4a 100644 --- a/src/views/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/openAdd.vue +++ b/src/views/contingencyManagement/emergencyDrill/implementationOfEmergencyDrill/component/openAdd.vue @@ -205,7 +205,7 @@ <el-form-item label="演练过程描述" prop="processDesc"> <el-input v-model="ruleForm.processDesc" - placeholder="请填写演练目的" + placeholder="请填写演练过程描述" class="textarea" type="textarea" /> @@ -412,6 +412,8 @@ const drillRecordDate = ref('') // 表单提交验证必填项 const submitForm = async (title: string, formEl: FormInstance | undefined) => { + delete ruleForm.value.drillName + delete ruleForm.value.autualUserListString if (title == '新建应急演练实施') { if (!formEl) return; await formEl.validate((valid, fields) => { diff --git a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue index a1a8412..8325c4b 100644 --- a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue +++ b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue @@ -80,11 +80,11 @@ <el-date-picker v-model="ruleForm.drillPlanDate" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> </el-form-item> </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="修改时间" prop="gmtModitify"> - <el-date-picker v-model="ruleForm.gmtModitify" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - </el-col> + <!--<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> + <!--<el-form-item label="修改时间" prop="gmtModitify">--> + <!--<el-date-picker v-model="ruleForm.gmtModitify" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />--> + <!--</el-form-item>--> + <!--</el-col>--> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="计划定制人" prop="makingUserName"> <el-input v-model="ruleForm.makingUserName" placeholder="请填写计划定制人" disabled></el-input> @@ -319,6 +319,11 @@ // 表单提交验证必填项 const submitForm = async (title: string, formEl: FormInstance | undefined) => { ruleForm.value.userList = ruleForm.value.userList.concat(ruleForm.value.chargeUserList) + delete ruleForm.value.planName + delete ruleForm.value.chargeUserListString + delete ruleForm.value.userListString + delete ruleForm.value.chargeUserList + delete ruleForm.value.gmtModitify if (title == '新建应急演练计划发布') { if (!formEl) return; await formEl.validate((valid, fields) => { diff --git a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue index ba15f44..07a7b7b 100644 --- a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue +++ b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue @@ -1,5 +1,5 @@ <template> - <el-dialog v-model="dialogVisible" title="选择应急预案" width="900px" draggable :fullscreen="full"> + <el-dialog v-model="dialogVisible" title="选择应急预案" width="900px" draggable :fullscreen="full" @close="closeDialog"> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-row> <el-col :span="18"> @@ -132,6 +132,9 @@ dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); radio1.value = ''; }; + const closeDialog = () =>{ + handleClose('') + } const radio1 = ref(''); const radio = (event: any) => { dynamicTags.value[0] = event; @@ -175,6 +178,7 @@ listQuery, onSubmit, submitForm, + closeDialog }; }, }); diff --git a/src/views/contingencyManagement/emergencyPlanStartRecord/component/selectEmergencyPlan.vue b/src/views/contingencyManagement/emergencyPlanStartRecord/component/selectEmergencyPlan.vue index da6b207..9fe5f86 100644 --- a/src/views/contingencyManagement/emergencyPlanStartRecord/component/selectEmergencyPlan.vue +++ b/src/views/contingencyManagement/emergencyPlanStartRecord/component/selectEmergencyPlan.vue @@ -1,5 +1,5 @@ <template> - <el-dialog v-model="dialogVisible" title="选择应急预案" width="900px" draggable :fullscreen="full"> + <el-dialog v-model="dialogVisible" title="选择应急预案" width="900px" draggable :fullscreen="full" @close="closeDialog"> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-row> <el-col :span="18"> @@ -154,6 +154,9 @@ dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); radio1.value = ''; }; + const closeDialog = () => { + handleClose('') + } const radio1 = ref(''); const radio = (event: any) => { dynamicTags.value[0] = event; @@ -198,6 +201,7 @@ onSubmit, submitForm, total, + closeDialog }; }, }); diff --git a/src/views/contingencyManagement/emergencyPlanStartRecord/index.vue b/src/views/contingencyManagement/emergencyPlanStartRecord/index.vue index 29f589c..7c1587d 100644 --- a/src/views/contingencyManagement/emergencyPlanStartRecord/index.vue +++ b/src/views/contingencyManagement/emergencyPlanStartRecord/index.vue @@ -157,12 +157,15 @@ // 请求列表数据 const onSubmit = async () => { + var planName = listQuery.searchParams.planName + delete listQuery.searchParams.planName let res = await emergencyPlanLogApi().getEmergencyPlanLogList(listQuery); if (res.data.code == 200) { tableData.value = res.data.data; pageIndex.value = res.data.pageIndex; pageSize.value = res.data.pageSize; total.value = res.data.total; + listQuery.searchParams.planName = planName } else { ElMessage.error(res.data.msg); } diff --git a/src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/component/openAdd.vue b/src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/component/openAdd.vue index 3137291..a241308 100644 --- a/src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/component/openAdd.vue +++ b/src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/component/openAdd.vue @@ -138,6 +138,8 @@ await formEl.validate((valid, fields) => { if (valid) { isShowDialog.value = false; + delete ruleForm.value.suppliesName + delete ruleForm.value.userName emergencyMaterialsInspectionApi() .addEmergencyMaterialsInspection(ruleForm.value) .then((res) => { @@ -167,6 +169,8 @@ await formEl.validate((valid, fields) => { if (valid) { isShowDialog.value = false; + delete ruleForm.value.suppliesName + delete ruleForm.value.userName emergencyMaterialsInspectionApi() .editEmergencyMaterialsInspection(ruleForm.value) .then((res) => { diff --git a/src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue b/src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue index 5e14343..2e31c2e 100644 --- a/src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue +++ b/src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue @@ -4,7 +4,7 @@ <div class="system-user-search mb15"> <el-form size="default" label-width="80px" :inline="true"> <el-form-item prop="telephone"> - <el-input v-model="listQuery.searchParams.suppliesName" placeholder="请选择应急物资" class="input-with-select"> + <el-input v-model="suppliesName" placeholder="请选择应急物资" class="input-with-select"> <template #append> <el-button :icon="Search" @click="daiInpt" /> </template> @@ -143,10 +143,11 @@ }); } }; + const suppliesName=ref() // 重置 const submitReset = () => { listQuery.searchParams.suppliesId = ''; - listQuery.searchParams.suppliesName="" + suppliesName.value="" onSubmit(); }; const warning = ref(true); @@ -266,7 +267,7 @@ }; const onUser = (e: any) => { listQuery.searchParams.suppliesId = e.id; - listQuery.searchParams.suppliesName=e.name + suppliesName.value=e.name }; // 分页 const pageIndex = ref(); @@ -287,6 +288,7 @@ onSubmit(); }); return { + suppliesName, upButton, upShow, Edit, diff --git a/src/views/contingencyManagement/emergencyResources/emergencySupplies/component/inspect.vue b/src/views/contingencyManagement/emergencyResources/emergencySupplies/component/inspect.vue index 0953d51..d67642c 100644 --- a/src/views/contingencyManagement/emergencyResources/emergencySupplies/component/inspect.vue +++ b/src/views/contingencyManagement/emergencyResources/emergencySupplies/component/inspect.vue @@ -121,6 +121,7 @@ await formEl.validate((valid, fields) => { if (valid) { isShowDialog.value = false; + delete ruleForm.value.userName emergencyMaterialsInspectionApi() .addEmergencyMaterialsInspection(ruleForm.value) .then((res) => { diff --git a/src/views/contingencyManagement/emergencyResources/emergencySupplies/component/maintain.vue b/src/views/contingencyManagement/emergencyResources/emergencySupplies/component/maintain.vue index b30bcc2..fb8b0a1 100644 --- a/src/views/contingencyManagement/emergencyResources/emergencySupplies/component/maintain.vue +++ b/src/views/contingencyManagement/emergencyResources/emergencySupplies/component/maintain.vue @@ -120,6 +120,7 @@ await formEl.validate((valid, fields) => { if (valid) { isShowDialog.value = false; + delete ruleForm.value.userName maintenanceEmergencyMaterialsApi() .addMaintenanceEmergencyMaterials(ruleForm.value) .then((res) => { diff --git a/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/component/openAdd.vue b/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/component/openAdd.vue index 7bcfdce..fd30fbe 100644 --- a/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/component/openAdd.vue +++ b/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/component/openAdd.vue @@ -113,6 +113,8 @@ if (valid) { if (titles.value == '新建应急物资保养') { isShowDialog.value = false; + delete ruleForm.value.suppliesName + delete ruleForm.value.userName maintenanceEmergencyMaterialsApi() .addMaintenanceEmergencyMaterials(ruleForm.value) .then((res) => { @@ -134,6 +136,8 @@ }); } else if (titles.value == '修改应急物资保养') { isShowDialog.value = false; + delete ruleForm.value.suppliesName + delete ruleForm.value.userName maintenanceEmergencyMaterialsApi() .editMaintenanceEmergencyMaterials(ruleForm.value) .then((res) => { diff --git a/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue b/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue index 3544d06..f45019b 100644 --- a/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue +++ b/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue @@ -4,7 +4,7 @@ <div class="system-user-search mb15"> <el-form size="default" label-width="80px" :inline="true"> <el-form-item prop="telephone"> - <el-input v-model="listQuery.searchParams.suppliesName" placeholder="请选择应急物资" class="input-with-select"> + <el-input v-model="suppliesName" placeholder="请选择应急物资" class="input-with-select"> <template #append> <el-button :icon="Search" @click="daiInpt" /> </template> @@ -148,10 +148,11 @@ }); } }; + const suppliesName = ref(''); // 重置 const submitReset = () => { listQuery.searchParams.suppliesId = ''; - listQuery.searchParams.suppliesName=""; + suppliesName.value = ''; onSubmit(); }; const warning = ref(true); @@ -163,7 +164,7 @@ for (let i = 0; i < valId.length; i++) { arr.push(valId[i].id); } - deletAll.value = arr + deletAll.value = arr; if (val.length == 1) { warning.value = false; danger.value = false; @@ -178,7 +179,7 @@ // 打开新建用户弹窗 const addRef = ref(); - const onOpenAdd = (data:any) => { + const onOpenAdd = (data: any) => { addRef.value.openDialog(data); }; // 新增后刷新 @@ -199,8 +200,8 @@ }; // 删除 const onRowDel = (data: any) => { - let arr=[] - arr.push(data) + let arr = []; + arr.push(data); ElMessageBox.confirm('确定删除所选项吗?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', @@ -271,7 +272,7 @@ }; const onUser = (e: any) => { listQuery.searchParams.suppliesId = e.id; - listQuery.searchParams.suppliesName=e.name + suppliesName.value = e.name; }; // 分页 const pageIndex = ref(); @@ -292,6 +293,7 @@ onSubmit(); }); return { + suppliesName, upButton, upShow, Edit, diff --git a/src/views/contingencyManagement/panManagement/component/abolishLibrary.vue b/src/views/contingencyManagement/panManagement/component/abolishLibrary.vue index f13523f..c36b1e3 100644 --- a/src/views/contingencyManagement/panManagement/component/abolishLibrary.vue +++ b/src/views/contingencyManagement/panManagement/component/abolishLibrary.vue @@ -12,8 +12,15 @@ :header-cell-style="{ background: '#f6f7fa', color: '#909399' }" > <el-table-column prop="name" label="预案名称" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="type" label="预案类型" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="authorUid" label="编写人" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="type" label="预案类型" show-overflow-tooltip sortable> + <template #default="scope"> + <div v-if="scope.row.type==1">综合应急预案</div> + <div v-if="scope.row.type==2">现场处置方案</div> + <div v-if="scope.row.type==3">专项应急预案</div> + <div v-if="scope.row.type==4">其他预案</div> + </template> + </el-table-column> + <el-table-column prop="authorName" label="编写人" show-overflow-tooltip sortable></el-table-column> <el-table-column prop="releaseDate" label="发布实施日期" show-overflow-tooltip sortable></el-table-column> <el-table-column label="操作" width="200" align="center"> <template #default="scope"> diff --git a/src/views/contingencyManagement/panManagement/component/approval.vue b/src/views/contingencyManagement/panManagement/component/approval.vue index b6db937..aed57e8 100644 --- a/src/views/contingencyManagement/panManagement/component/approval.vue +++ b/src/views/contingencyManagement/panManagement/component/approval.vue @@ -6,19 +6,19 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="审批名称" prop="workName"> - <el-input v-model="ruleForm.workName" placeholder="请填写队伍名称"></el-input> + <el-input v-model="ruleForm.workName" placeholder="请填写队伍名称" disabled></el-input> </el-form-item> </el-col> - <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批标题" prop="title"> - <el-input v-model="ruleForm.title" placeholder="请填写审批名称"></el-input> - </el-form-item> - </el-col> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="审批标题" prop="title"> + <el-input v-model="ruleForm.title" placeholder="请填写审批名称" disabled></el-input> + </el-form-item> + </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="审批人" prop="approvePersonId"> - <el-input v-model="ruleForm.approvePersonName" placeholder="请选择" class="input-with-select"> + <el-input v-model="ruleForm.approvePersonName" placeholder="请选择" class="input-with-select" disabled> <template #append> - <el-button :icon="Search" @click="openUser" /> + <el-button :icon="Search" @click="openUser" :disabled="disabled"/> </template> </el-input> </el-form-item> @@ -26,8 +26,8 @@ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="审批结果" prop="authorUid"> <el-radio-group v-model="ruleForm.approveResult"> - <el-radio :label="false">不通过</el-radio> - <el-radio :label="true">通过</el-radio> + <el-radio :label="false">不通过</el-radio> + <el-radio :label="true">通过</el-radio> </el-radio-group> </el-form-item> </el-col> @@ -37,25 +37,25 @@ </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="是否完成" prop="authorUid" @change="typeChang"> + <el-form-item label="是否完成" prop="complete" @change="typeChang"> <el-radio-group v-model="ruleForm.complete"> <el-radio :label="false">是</el-radio> <el-radio :label="true">否</el-radio> </el-radio-group> </el-form-item> </el-col> - <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批名称" prop="workName"> - <el-input v-model="ruleForm.twoWorkName" placeholder="请填写队伍名称"></el-input> - </el-form-item> - </el-col> - <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批标题" prop="title"> - <el-input v-model="ruleForm.twoTitle" placeholder="请填写审批名称"></el-input> - </el-form-item> - </el-col> <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="审批人" prop="authorUid"> + <el-form-item label="审批名称" prop="twoWorkName"> + <el-input v-model="ruleForm.twoWorkName" placeholder="请填写队伍名称"></el-input> + </el-form-item> + </el-col> + <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="审批标题" prop="twoTitle"> + <el-input v-model="ruleForm.twoTitle" placeholder="请填写审批名称"></el-input> + </el-form-item> + </el-col> + <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="审批人" prop="twoApprovePersonName"> <el-input v-model="ruleForm.twoApprovePersonName" placeholder="请选择" class="input-with-select"> <template #append> <el-button :icon="Search" @click="openUser" /> @@ -88,72 +88,87 @@ export default defineComponent({ name: 'openAdd', components: { - DailogSearchUserManger, + DailogSearchUserManger, }, setup(prop, { emit }) { const isShowDialog = ref(false); const ruleFormRef = ref<FormInstance>(); const ruleForm = ref({ - approveId: '', - workName: '', // 审批名称 - title: '', //审批标题 - approvePersonId: '', // - approvePersonName: '', // 审批人 - approveStatus: 2, //审批状态 - relateType: 1, //业务类型 - approveResult: false, //审批结果 - approveMemo: '', //审批意见 - relateId: '', - twoWorkName:'', - twoTitle:'', - twoApprovePersonId:'', - twoApprovePersonName:'' + approveId: '', + workName: '', // 审批名称 + title: '', //审批标题 + approvePersonId: '', // + approvePersonName: '', // 审批人 + approveStatus: 2, //审批状态 + relateType: 1, //业务类型 + approveResult: false, //审批结果 + approveMemo: '', //审批意见 + relateId: '', + twoWorkName: '', + twoTitle: '', + twoApprovePersonId: '', + twoApprovePersonName: '', }); const titles = ref(); const disabled = ref(); - const uid = ref(); + const uid = ref(); // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { + const openDialog = (title: string, approveId: number, type: boolean, id: number) => { isShowDialog.value = true; titles.value = title; disabled.value = type; - ruleForm.value.relateId = id; - uid.value = id; - if(title == '查看审批' || title == '修改审批') { - emergencyPlanApi() - .approvalProcessEmergencyPlan(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - } - }); - } + + uid.value = approveId; + if (title == '查看审批' || title == '审批') { + emergencyPlanApi() + .approvalProcessEmergencyPlan(approveId) + .then((res) => { + if (res.data.code == 200) { + ruleForm.value = res.data.data; + ruleForm.value.relateId = id; + } + }); + } }; const submitForm = async () => { - ruleForm.value.workName = ruleForm.value.twoWorkName - ruleForm.value.title = ruleForm.value.twoTitle - ruleForm.value.approvePersonId = ruleForm.value.twoApprovePersonId - ruleForm.value.approvePersonName = ruleForm.value.twoApprovePersonName - isShowDialog.value = false; - emergencyPlanApi() - .editApprovalEmergencyPlan(ruleForm.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - showClose: true, - message: '修改成功', - type: 'success', - }); - emit('myAdd', true); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - emit('myAdd', true); - } - }); + console.log(ruleForm.value); + + ruleForm.value.workName = ruleForm.value.twoWorkName; + ruleForm.value.title = ruleForm.value.twoTitle; + ruleForm.value.approvePersonId = ruleForm.value.twoApprovePersonId; + ruleForm.value.approvePersonName = ruleForm.value.twoApprovePersonName; + ruleForm.value.relateType = 1; + isShowDialog.value = false; + if(ruleForm.value.complete == false) { + ruleForm.value.approveStatus=3 + } + delete ruleForm.value.gmtCreate + delete ruleForm.value.complete + delete ruleForm.value.submitPersonName + + delete ruleForm.value.twoApprovePersonId + delete ruleForm.value.twoApprovePersonName + delete ruleForm.value.twoTitle + delete ruleForm.value.twoWorkName + emergencyPlanApi() + .editApprovalEmergencyPlan(ruleForm.value) + .then((res) => { + if (res.data.code == 200) { + ElMessage({ + showClose: true, + message: '修改成功', + type: 'success', + }); + emit('myAdd', true); + } else { + ElMessage({ + showClose: true, + message: res.data.msg, + type: 'error', + }); + emit('myAdd', true); + } + }); }; const resetForm = () => { isShowDialog.value = false; @@ -165,8 +180,8 @@ }; //回显 const onUser = (e: any) => { - ruleForm.value.twoApprovePersonId = e[0].uid; - ruleForm.value.twoApprovePersonName = e[0].realName; + ruleForm.value.twoApprovePersonId = e[0].uid; + ruleForm.value.twoApprovePersonName = e[0].realName; }; const typeChang = () => { console.log('tag', ruleForm); @@ -198,7 +213,7 @@ resetForm, onUser, typeChang, - uid, + uid, }; }, }); diff --git a/src/views/contingencyManagement/panManagement/component/approvalProcess.vue b/src/views/contingencyManagement/panManagement/component/approvalProcess.vue index 2356a0b..209c51a 100644 --- a/src/views/contingencyManagement/panManagement/component/approvalProcess.vue +++ b/src/views/contingencyManagement/panManagement/component/approvalProcess.vue @@ -1,50 +1,45 @@ <template> - <div class="system-edit-user-container"> - <el-dialog title="查看审批流程" v-model="isShowDialog" width="60%" draggable :fullscreen="full"> - <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-row :gutter="35"> - <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-table - :data="tableData" - style="width: 100%; margin-top: 15px" - ref="multipleTableRef" - :model="formInline" - :header-cell-style="{ background: '#f6f7fa', color: '#909399' }" - > - <el-table-column prop="workName" label="审批人" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="title" label="审批标题" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="approvePersonName" label="编写人" show-overflow-tooltip sortable></el-table-column> - <el-table-column prop="approveMemo" label="审批意见" show-overflow-tooltip sortable></el-table-column> - <el-table-column label="操作" width="200" align="center"> - <template #default="scope"> - <el-button size="small" text type="primary" @click="onReduction(scope.row.id)">还原</el-button> - </template> - </el-table-column> - </el-table> - </el-col> - </el-row> - <div class="pages"> - <el-pagination - v-if="tableData.length == 0 ? false : true" - v-model:currentPage="pageIndex" - v-model:page-size="pageSize" - :page-sizes="[10, 20, 30]" - :pager-count="5" - class="mt15" - background - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - /> - </div> - <template #footer> + <div class="system-edit-user-container"> + <el-dialog title="查看审批流程" v-model="isShowDialog" width="60%" draggable :fullscreen="full"> + <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> + <el-row :gutter="35"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-table + :data="tableData" + style="width: 100%; margin-top: 15px" + ref="multipleTableRef" + :model="formInline" + :header-cell-style="{ background: '#f6f7fa', color: '#909399' }" + > + <el-table-column prop="workName" label="审批人" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="title" label="审批标题" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="approvePersonName" label="编写人" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="approveMemo" label="审批意见" show-overflow-tooltip sortable></el-table-column> + </el-table> + </el-col> + </el-row> + <div class="pages"> + <el-pagination + v-if="tableData.length == 0 ? false : true" + v-model:currentPage="pageIndex" + v-model:page-size="pageSize" + :page-sizes="[10, 20, 30]" + :pager-count="5" + class="mt15" + background + layout="total, sizes, prev, pager, next, jumper" + :total="total" + @size-change="onHandleSizeChange" + @current-change="onHandleCurrentChange" + /> + </div> + <template #footer> <span class="dialog-footer"> <el-button @click="onCancel">取消</el-button> </span> - </template> - </el-dialog> - </div> + </template> + </el-dialog> + </div> </template> <script lang="ts"> @@ -52,151 +47,150 @@ import type { FormInstance } from 'element-plus'; import { - // ElMessageBox, - ElMessage, + // ElMessageBox, + ElMessage, } from 'element-plus'; import { Search, FullScreen } from '@element-plus/icons-vue'; import { emergencyPlanApi } from '../../../../api/contingencyManagement/emergencyPlan'; export default defineComponent({ - name: 'abolishLibrary', - components: {}, - setup(prop, { emit }) { - // 列表参数 - const listQuery = reactive({ - pageIndex: 1, - pageSize: 10, - searchParams: { - relateType: 1, - relateId: '', - startTime: '', - endTime: '', - }, - }); - // 定义表格数据 - const tableData = ref([]); + name: 'abolishLibrary', + components: {}, + setup(prop, { emit }) { + // 列表参数 + const listQuery = reactive({ + pageIndex: 1, + pageSize: 10, + searchParams: { + relateType: 1, + relateId: '', + startTime: '', + endTime: '', + }, + }); + // 定义表格数据 + const tableData = ref([]); - // 列表数据请求 - const openDialog = async () => { - isShowDialog.value = true; - let res = await emergencyPlanApi().processEmergencyPlan(listQuery); - if (res.data.code === '200') { - tableData.value = res.data.data; - pageIndex.value = res.data.pageIndex; - pageSize.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage({ - showClose: true, - type: 'error', - message: res.data.msg, - }); - } - }; + // 列表数据请求 + const uid = ref(); + const openDialog = async (id: number) => { + isShowDialog.value = true; + listQuery.searchParams.relateId=id + uid.value = id; + let res = await emergencyPlanApi().processEmergencyPlan(listQuery); + if (res.data.code === '200') { + tableData.value = res.data.data; + pageIndex.value = res.data.pageIndex; + pageSize.value = res.data.pageSize; + total.value = res.data.total; + } else { + ElMessage({ + showClose: true, + type: 'error', + message: res.data.msg, + }); + } + }; - const isShowDialog = ref(false); + const isShowDialog = ref(false); - const ruleFormRef = ref<FormInstance>(); - // 打开弹窗 - // const openDialog = () => { - // isShowDialog.value = true; - // }; - // 关闭弹窗 - const closeDialog = () => { - isShowDialog.value = false; - }; - // 取消 - const onCancel = () => { - closeDialog(); - }; - const onReduction = async () => { - isShowDialog.value = false; - }; - // 分页 - const pageIndex = ref(); - const pageSize = ref(); - const total = ref(); - // 分页改变 - const handleSizeChange = (val: number) => { - listQuery.pageSize = val; - }; - // 分页未改变 - const handleCurrentChange = (val: number) => { - listQuery.pageIndex = val; - }; - //全屏 - const full = ref(false); - const toggleFullscreen = () => { - if (full.value == false) { - full.value = true; - } else { - full.value = false; - } - }; - return { - openDialog, - closeDialog, - isShowDialog, - onCancel, - tableData, - Search, - ruleFormRef, - pageIndex, - pageSize, - handleSizeChange, - handleCurrentChange, - toggleFullscreen, - FullScreen, - full, - listQuery, - // onSubmit, - total, - emit, - onReduction, - }; - }, + const ruleFormRef = ref<FormInstance>(); + // 打开弹窗 + // const openDialog = () => { + // isShowDialog.value = true; + // }; + // 关闭弹窗 + const closeDialog = () => { + isShowDialog.value = false; + }; + // 取消 + const onCancel = () => { + closeDialog(); + }; + // 分页 + const pageIndex = ref(); + const pageSize = ref(); + const total = ref(); + // 分页改变 + const handleSizeChange = (val: number) => { + listQuery.pageSize = val; + }; + // 分页未改变 + const handleCurrentChange = (val: number) => { + listQuery.pageIndex = val; + }; + //全屏 + const full = ref(false); + const toggleFullscreen = () => { + if (full.value == false) { + full.value = true; + } else { + full.value = false; + } + }; + return { + openDialog, + closeDialog, + isShowDialog, + onCancel, + tableData, + Search, + ruleFormRef, + pageIndex, + pageSize, + handleSizeChange, + handleCurrentChange, + toggleFullscreen, + FullScreen, + full, + listQuery, + total, + emit, + uid, + }; + }, }); </script> <style scoped lang="scss"> .textarea { - height: 168px !important; + height: 168px !important; } .textarea ::v-deep .el-textarea__inner { - height: 168px !important; + height: 168px !important; } ::v-deep .el-table__cell { - font-weight: 400; + font-weight: 400; } //分页 .pages { - display: flex; - justify-content: flex-end; + display: flex; + justify-content: flex-end; } ::v-deep .el-pagination .el-pager li { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px; } ::v-deep .el-pagination .el-pager li.is-active { - background-color: #409eff; - color: #fff; + background-color: #409eff; + color: #fff; } ::v-deep .el-pagination .btn-prev { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px; } ::v-deep .el-pagination button:disabled { - color: #c0c4cc; + color: #c0c4cc; } ::v-deep .el-pagination .btn-next { - margin: 0 5px; - background-color: #f4f4f5; - color: #606266; - min-width: 30px; - border-radius: 2px; + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px; } </style> \ No newline at end of file diff --git a/src/views/contingencyManagement/panManagement/component/openAdd.vue b/src/views/contingencyManagement/panManagement/component/openAdd.vue index 02c44c0..6a6bd50 100644 --- a/src/views/contingencyManagement/panManagement/component/openAdd.vue +++ b/src/views/contingencyManagement/panManagement/component/openAdd.vue @@ -1,6 +1,14 @@ <template> <div class="system-edit-user-container"> - <el-dialog :title="titles" v-model="isShowDialog" width="50%" draggable :fullscreen="full" :close-on-click-modal="false"> + <el-dialog + :title="titles" + v-model="isShowDialog" + width="50%" + draggable + :fullscreen="full" + :close-on-click-modal="false" + @close="resetForm(ruleFormRef)" + > <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-form ref="ruleFormRef" :model="ruleForm" size="default" label-width="120px" :disabled="disabled"> <el-row :gutter="35"> @@ -12,16 +20,17 @@ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="适用部门" prop="responsibleDepartment"> <el-tree-select - v-model="ruleForm.responsibleDepartment" - :data="data" + v-model="responsibleDepartment" + :data="newTreeList" + class="w100" + clearable + :props="propse" multiple :render-after-expand="false" - :props="propse" - clearable - show-checkbox - check-strictly - check-on-click-node - placeholder="请选择" + check-strictly + check-on-click-node + placeholder="请选择" + @change="changeDepartment" /> <el-divider /> </el-form-item> @@ -66,8 +75,7 @@ <el-form-item label="编写部门" prop="authorDeptId"> <el-tree-select v-model="ruleForm.authorDeptId" - check-strictly - :data="data" + :data="newTreeList" class="w100" :props="propse" clearable @@ -89,7 +97,7 @@ </el-col> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="应急队伍" prop="emergencyTeam"> - <el-input v-model="ruleForm.emergencyTeam" placeholder="请选择" class="input-with-select"> + <el-input v-model="ruleForm.teamName" placeholder="请选择" class="input-with-select"> <template #append> <el-button :icon="Search" @click="daiInpt(0)" /> </template> @@ -133,7 +141,7 @@ </span> </template> </el-dialog> - <CheckTemplate ref="Shows" @SearchUser="SearchUser" /> + <CheckTemplate ref="Shows" @SearchUser="SearchUser" /> <DailogSearchUserManger ref="userRef" @SearchUser="onUser" /> <RegionsDialog ref="openRef" /> </div> @@ -170,17 +178,11 @@ authorName: '', authorDeptId: '', // 编写部门 releaseDate: '', // 发布实施日期 - fileList: [ - // { - // fileUrl: 'url', - // fileName: 'name', - // }, - ], - emergencyTeam: '', //应急队伍 + fileList: [], areaList: [], //区域列表 teamList: [], + // teamId: '', //应急队伍 deptList: [], - abolishStatus: false, }); const titles = ref(); const disabled = ref(); @@ -195,12 +197,21 @@ .seeEmergencyTeam(id) .then((res) => { if (res.data.code == 200) { - ruleForm.value = res.data.data; - let arr = []; - for (let i = 0; i < ruleForm.value.teamList.length; i++) { - arr.push(ruleForm.value.teamList[i].emergencyTeam); - } - ruleForm.value.emergencyTeam = arr.toString(); + ruleForm.value = res.data.data; + ruleForm.value.teamName = '' + responsibleDepartment.value = [] + if(res.data.data.teamList){ + for(var a = 0;a<res.data.data.teamList.length;a++){ + ruleForm.value.teamName+=res.data.data.teamList[a].teamName+';' + } + } + if(res.data.data.deptList){ + for(var a = 0;a<res.data.data.deptList.length;a++){ + + responsibleDepartment.value.push(res.data.data.deptList[a].departmentId) + } + } + } }); } @@ -209,30 +220,55 @@ const releaseDate = ref(''); // 上传附件 const fileList = ref<UploadUserFile[]>([]); - //部门树 - const department = () => { - goalManagementApi() + //el-tree-select回显 + const propse = { + label: 'depName', + children: 'children', + }; + const newTreeList = []; + //得到部门树 + const department = async () => { + await goalManagementApi() .getTreedepartment() .then((res) => { if (res.data.code == 200) { - data.value = res.data.data; + data.value = res.data.data; + getTreeList(res.data.data, newTreeList); } else { ElMessage.error(res.data.msg); } }); }; - const treeSelect = ref(); - // const trees = ref(); - const propse = { - label: 'depName', - children: 'children', - value: 'depId', + // 递归树状数据且修改字段名 + const getTreeList = (treeList, newTreeList) => { + treeList.map((c) => { + let tempData = { + depName: c.depName, + value: c.depId, + children: [], + }; + if (c.children && c.children.length > 0) { + tempData.children = []; + getTreeList(c.children, tempData.children); + } + newTreeList.push(tempData); + }); }; onMounted(() => { department(); }); + const changeDepartment = (e) => { + var temList = []; + for (var a = 0; a < e.length; a++) { + temList.push({ + departmentId: e[a], + }); + } + ruleForm.value.deptList = temList; + console.log(ruleForm); + }; //定义树形下拉框 - const responsibleDepartment = ref(); + const responsibleDepartment = ref([]); const data = ref(); const submitForm = async (title: string, formEl: FormInstance | undefined) => { @@ -241,6 +277,7 @@ await formEl.validate((valid, fields) => { if (valid) { isShowDialog.value = false; + delete ruleForm.value.teamName emergencyPlanApi() .addEmergencyPlan(ruleForm.value) .then((res) => { @@ -269,8 +306,10 @@ if (!formEl) return; await formEl.validate((valid, fields) => { if (valid) { - isShowDialog.value = false; - emergencyPlanApi() + ruleForm.value.fileList=[] + isShowDialog.value = false; + delete ruleForm.value.teamName + emergencyPlanApi() .editEmergencyTeam(ruleForm.value) .then((res) => { if (res.data.code == 200) { @@ -304,18 +343,11 @@ authorName: '', authorDeptId: '', // 编写部门 releaseDate: '', // 发布实施日期 - fileList: [ - // { - // fileUrl: 'url', - // fileName: 'name', - // }, - ], - emergencyTeam: '', //应急队伍 + fileList: [], + // teamId: '', //应急队伍ID areaList: [], //区域列表 - teamList: [ - ], + teamList: [], deptList: [], - abolishStatus: false, }; } }; @@ -323,23 +355,24 @@ isShowDialog.value = false; if (!formEl) return; formEl.resetFields(); + ruleForm.value = {}; }; // 应急队伍弹窗 const Shows = ref(); const daiInpt = (data: any) => { - Shows.value.openDailog(data); + Shows.value.openDailog(data); }; - const SearchUser = (val: any) => { - let arr = []; - for (let i = 0; i < val.length; i++) { - arr.push(val[i].teamName); - ruleForm.value.teamList.push({ - userUid: val[i].uid, - emergencyTeam: val[i].teamName, - }); - } - ruleForm.value.emergencyTeam = arr.toString(); - }; + const SearchUser = (val: any) => { + let arr = []; + ruleForm.value.teamList = []; + for (let i = 0; i < val.length; i++) { + arr.push(val[i].teamName); + ruleForm.value.teamList.push({ + teamId: val[i].id, + }); + } + ruleForm.value.teamName = arr.toString(); + }; // 选择区域弹窗 const openRef = ref(); const regionsDialog = () => { @@ -371,13 +404,13 @@ data, Search, releaseDate, - treeSelect, + // treeSelect, // trees, propse, department, daiInpt, Shows, - SearchUser, + SearchUser, submitForm, openUser, userRef, @@ -394,6 +427,8 @@ ruleForm, resetForm, onUser, + newTreeList, + changeDepartment, }; }, }); diff --git a/src/views/contingencyManagement/panManagement/index.vue b/src/views/contingencyManagement/panManagement/index.vue index cc2ec1b..58f1164 100644 --- a/src/views/contingencyManagement/panManagement/index.vue +++ b/src/views/contingencyManagement/panManagement/index.vue @@ -8,10 +8,10 @@ </el-form-item> <el-form-item> <el-select size="default" v-model="listQuery.searchParams.type" placeholder="请选择预案类型" class="ml10" style="max-width: 215px"> - <el-option label="综合应急预案" value="admin"></el-option> - <el-option label="现场处置方案" value="common"></el-option> - <el-option label="专项应急预案" value="common"></el-option> - <el-option label="其他预案" value="common"></el-option> + <el-option label="综合应急预案" value="1"></el-option> + <el-option label="现场处置方案" value="2"></el-option> + <el-option label="专项应急预案" value="3"></el-option> + <el-option label="其他预案" value="4"></el-option> </el-select> </el-form-item> <el-form-item> @@ -107,7 +107,7 @@ text type="primary" v-if="scope.row.approveStatus === 2 && scope.row.checkApprove === true" - @click="onApproval('修改',scope.row.approveId)" + @click="onApproval('修改',scope.row.approveId,scope.row.id)" > 审批 </el-button> @@ -116,7 +116,7 @@ text type="primary" v-if="scope.row.approveStatus === 2 && scope.row.checkApprove === false" - @click="onApproval('详情',scope.row.id)" + @click="onApproval('详情',scope.row.approveId,scope.row.id)" > 查看审批 </el-button> @@ -439,10 +439,12 @@ // 分页改变 const onHandleSizeChange = (val: number) => { listQuery.pageSize = val; + onSubmit(); }; // 分页未改变 const onHandleCurrentChange = (val: number) => { listQuery.pageIndex = val; + onSubmit(); }; // const router=useRouter() @@ -471,17 +473,17 @@ }; // 审批 const approvalRef = ref(); - const onApproval = (val: string,row: object) => { + const onApproval = (val: string,row: object,id) => { if(val=='详情'){ approvalRef.value.openDialog('查看审批', row, true); } else { - approvalRef.value.openDialog('修改审批', row, false); + approvalRef.value.openDialog('审批', row, false,id); } }; // 审批流程 const processRef = ref(); - const onApprovalProcess = () => { - processRef.value.openDialog(); + const onApprovalProcess = (row:object,id) => { + processRef.value.openDialog(row,id); }; //全屏 diff --git a/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/components/recordDialog.vue b/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/components/recordDialog.vue index 90cfdaa..769959b 100644 --- a/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/components/recordDialog.vue +++ b/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkTask/components/recordDialog.vue @@ -6,7 +6,7 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="检查内容" prop="checkContent"> - <el-input class="input-length" type="textarea" :rows="3" v-model.trim="recordForm.checkContent" placeholder="检查内容"> </el-input> + <el-input class="input-length" :disabled="true" type="textarea" :rows="3" v-model.trim="recordForm.checkContent" placeholder="检查内容"> </el-input> </el-form-item> </el-col> </el-row> diff --git a/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/components/workDialog.vue b/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/components/workDialog.vue index e187100..ca71159 100644 --- a/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/components/workDialog.vue +++ b/src/views/doublePrevent/riskCheckManage/checkTaskManage/checkWork/components/workDialog.vue @@ -6,66 +6,66 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="排查类型" prop="checkWorkType"> - <el-select class="input-add" v-model="workForm.checkWorkType" placeholder="请输入排查类型" clearable> <el-option v-for="item in checkWorkTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option></el-select> + <el-select class="input-add" :disabled="!disabled" v-model="workForm.checkWorkType" placeholder="请输入排查类型" clearable> <el-option v-for="item in checkWorkTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option></el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="排查名称" prop="checkWorkName"> - <el-input class="input-add" v-model.trim="workForm.checkWorkName" placeholder="请输入排查名称" clearable></el-input> + <el-input class="input-add" :disabled="!disabled" v-model.trim="workForm.checkWorkName" placeholder="请输入排查名称" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="排查周期" prop="checkCycle"> - <el-input class="input-add" type="number" v-model.trim="workForm.checkCycle" placeholder="请输入排查周期" clearable></el-input> + <el-input class="input-add" :disabled="!disabled" type="number" v-model.trim="workForm.checkCycle" placeholder="请输入排查周期" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="时间单位" prop="checkCycleUnit"> - <el-select class="input-add" v-model="workForm.checkCycleUnit" placeholder="请输入时间单位" clearable> + <el-select class="input-add" :disabled="!disabled" v-model="workForm.checkCycleUnit" placeholder="请输入时间单位" clearable> <el-option v-for="item in timeType" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="有效时间" prop="validTime"> - <el-input class="input-add" type="number" v-model.trim="workForm.validTime" placeholder="请输入有效时间" clearable></el-input> + <el-input class="input-add" :disabled="!disabled" type="number" v-model.trim="workForm.validTime" placeholder="请输入有效时间" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="时间单位" prop="validTimeUnit"> - <el-select class="input-add" v-model="workForm.validTimeUnit" placeholder="请输入时间单位" clearable> + <el-select class="input-add" :disabled="!disabled" v-model="workForm.validTimeUnit" placeholder="请输入时间单位" clearable> <el-option v-for="item in timeType" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="提醒时间" prop="noticeTime"> - <el-input class="input-add" type="number" v-model.trim="workForm.noticeTime" placeholder="请输入提醒时间" clearable></el-input> + <el-input class="input-add" :disabled="!disabled" type="number" v-model.trim="workForm.noticeTime" placeholder="请输入提醒时间" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="时间单位" prop="noticeTimeUnit"> - <el-select class="input-add" v-model="workForm.noticeTimeUnit" placeholder="请输入时间单位" clearable> + <el-select class="input-add" :disabled="!disabled" v-model="workForm.noticeTimeUnit" placeholder="请输入时间单位" clearable> <el-option v-for="item in timeType" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="执行部门" prop="execDepId"> - <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="workForm.execDepId"> </el-cascader> + <el-cascader :disabled="!disabled" @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="workForm.execDepId"> </el-cascader> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="任务单元" prop="taskUnitId"> - <el-select class="input-add" v-model="workForm.taskUnitId" placeholder="请输入任务单元" clearable filterable> + <el-select class="input-add" :disabled="!disabled" v-model="workForm.taskUnitId" placeholder="请输入任务单元" clearable filterable> <el-option v-for="item in taskUnitList" :key="item.id" :label="item.taskUnitName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="首次任务开始时间" prop="firstStartTime"> - <el-date-picker class="input-add" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" v-model="workForm.firstStartTime" placeholder="请选择首次任务开始时间" clearable></el-date-picker> + <el-date-picker :disabled="!disabled" class="input-add" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" v-model="workForm.firstStartTime" placeholder="请选择首次任务开始时间" clearable></el-date-picker> </el-form-item> </el-col> </el-row> diff --git a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/components/checkDialog.vue b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/components/checkDialog.vue index fd981ae..cae63b9 100644 --- a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/components/checkDialog.vue +++ b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/components/checkDialog.vue @@ -22,24 +22,24 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="验收意见" prop="rectifyDesc"> - <el-input class="input-add" type="textarea" :rows="2" v-model.trim="checkInfoForm.rectifyDesc" readonly></el-input> + <el-input class="input-add" :disabled="true" type="textarea" :rows="2" v-model.trim="checkInfoForm.rectifyDesc" readonly></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="整改类型" prop="rectifyType"> - <el-select class="input-add" v-model="checkInfoForm.rectifyType" readonly> + <el-select class="input-add" :disabled="true" v-model="checkInfoForm.rectifyType" readonly> <el-option v-for="item in rectifyTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="整改部门" prop="rectifyDepId"> - <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="checkInfoForm.rectifyDepId" readonly> </el-cascader> + <el-cascader :disabled="true" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="checkInfoForm.rectifyDepId" readonly> </el-cascader> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="整改责任人" prop="liablePersonId"> - <el-select class="input-add" v-model="checkInfoForm.liablePersonId" clearable filterable readonly> + <el-select class="input-add" :disabled="true" v-model="checkInfoForm.liablePersonId" clearable filterable readonly> <el-option v-for="item in userList" :key="item.uid" :label="item.username" :value="item.uid"></el-option> </el-select> </el-form-item> @@ -47,7 +47,7 @@ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="整改资金" prop="dangerResult"> - <el-input class="input-add" type="number" v-model="checkInfoForm.cost" readonly> </el-input> + <el-input class="input-add" :disabled="true" type="number" v-model="checkInfoForm.cost" readonly> </el-input> </el-form-item> </el-col> </el-row> @@ -182,4 +182,15 @@ }; </script> -<style scoped></style> +<style scoped> +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} +</style> diff --git a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/index.vue b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/index.vue index 9e2e195..a471d01 100644 --- a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/index.vue +++ b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenCheck/index.vue @@ -204,4 +204,15 @@ }); </script> -<style scoped></style> +<style scoped> +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} +</style> diff --git a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/components/rectifyDialog.vue b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/components/rectifyDialog.vue index afb11d9..9403e25 100644 --- a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/components/rectifyDialog.vue +++ b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/components/rectifyDialog.vue @@ -49,25 +49,25 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="整改内容说明" prop="rectifyDesc"> - <el-input class="input-add" type="textarea" :rows="2" v-model.trim="checkInfoForm.rectifyDesc" readonly></el-input> + <el-input class="input-add" :disabled="!disabled" type="textarea" :rows="2" v-model.trim="checkInfoForm.rectifyDesc" readonly></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="整改类型" prop="rectifyType"> - <el-select class="input-add" v-model="checkInfoForm.rectifyType" readonly> + <el-select class="input-add" :disabled="!disabled" v-model="checkInfoForm.rectifyType" readonly> <el-option v-for="item in rectifyTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="整改部门" prop="rectifyDepId"> - <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="checkInfoForm.rectifyDepId" readonly> </el-cascader> + <el-cascader @change="achieveUserList" :disabled="!disabled" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="checkInfoForm.rectifyDepId" readonly> </el-cascader> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="整改责任人" prop="liablePersonId"> - <el-select class="input-add" v-model="checkInfoForm.liablePersonId" clearable filterable readonly> + <el-select class="input-add" :disabled="!disabled" v-model="checkInfoForm.liablePersonId" clearable filterable readonly> <el-option v-for="item in userList" :key="item.uid" :label="item.username" :value="item.uid"></el-option> </el-select> </el-form-item> @@ -75,7 +75,7 @@ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="整改资金" prop="dangerResult"> - <el-input class="input-add" type="number" v-model="checkInfoForm.cost" readonly> </el-input> + <el-input class="input-add" :disabled="!disabled" type="number" v-model="checkInfoForm.cost" readonly> </el-input> </el-form-item> </el-col> </el-row> diff --git a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/index.vue b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/index.vue index 093ec04..abb1fef 100644 --- a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/index.vue +++ b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenRectify/index.vue @@ -22,32 +22,32 @@ </div> <el-table :data="rectifyData.data" style="width: 100%" fit highlight-current-row> <el-table-column type="index" label="序号" width="60" /> - <el-table-column prop="rectifyDesc" label="整改内容说明" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="rectifyTime" label="整改期限" show-overflow-tooltip min-width="200px"> + <el-table-column prop="rectifyDesc" label="整改内容说明" show-overflow-tooltip></el-table-column> + <el-table-column prop="rectifyTime" label="整改期限" min-width="130px" show-overflow-tooltip> <template #default="scope"> <span>{{ scope.row.rectifyTime }}</span> <span v-if="scope.row.dangerStatus === 2" class="overdue-img">逾期</span> <span v-if="scope.row.dangerStatus === 9" class="overdue-img">逾期</span> </template> </el-table-column> - <el-table-column prop="rectifyType" label=" 整改类型" show-overflow-tooltip min-width="150px"> + <el-table-column prop="rectifyType" label=" 整改类型" show-overflow-tooltip> <template #default="scope"> {{ parseNumber(scope.row.rectifyType, '整改类型') }} </template> </el-table-column> - <el-table-column prop="liablePerson" label="整改责任人" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="cost" label="整改资金" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="dangerStatus" label="隐患整改状态" show-overflow-tooltip min-width="150px" align="center"> + <el-table-column prop="liablePerson" label="整改责任人" show-overflow-tooltip></el-table-column> + <el-table-column prop="cost" label="整改资金" show-overflow-tooltip></el-table-column> + <el-table-column prop="dangerStatus" label="隐患整改状态" show-overflow-tooltip align="center"> <template #default="scope"> <el-tag :type="scope.row.dangerStatus === 0 ? 'info' : scope.row.dangerStatus === 1 ? 'primary' : scope.row.dangerStatus === 2 ? 'warning' : scope.row.dangerStatus === 4 ? 'danger' : 'success'"> {{ parseNumber(scope.row.dangerStatus, '隐患整改状态') }} </el-tag> </template> </el-table-column> - <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip min-width="200px"></el-table-column> - <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip min-width="200px"></el-table-column> + <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column> + <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></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="250" fixed="right" align="center"> <template #default="scope"> <el-button size="small" text type="primary" :icon="View" @click="onOpenDialogRef('查看', scope.row)">查看</el-button> @@ -259,4 +259,14 @@ transform: scale(0.8); padding: 1px 3px 0 3px; } +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} </style> diff --git a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/components/reportDialog.vue b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/components/reportDialog.vue index f822e15..40b0a60 100644 --- a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/components/reportDialog.vue +++ b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/components/reportDialog.vue @@ -7,36 +7,36 @@ <el-row :gutter="25"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="隐患描述" prop="dangerDesc"> - <el-input class="input-add" v-model.trim="reportForm.dangerDesc" placeholder="请输入隐患情况描述" clearable></el-input> + <el-input class="input-add" :disabled="!disabled" v-model.trim="reportForm.dangerDesc" placeholder="请输入隐患情况描述" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="隐患名称" prop="dangerCode"> - <el-input class="input-add" v-model.trim="reportForm.dangerCode" placeholder="请输入隐患名称" clearable></el-input> + <el-input class="input-add" :disabled="!disabled" v-model.trim="reportForm.dangerCode" placeholder="请输入隐患名称" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="隐患所属部门" prop="depId"> - <el-cascader :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="reportForm.depId"> </el-cascader> + <el-cascader :disabled="!disabled" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="reportForm.depId"> </el-cascader> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="生产装置" prop="produceDeviceId"> - <el-select class="input-add" v-model="reportForm.produceDeviceId" placeholder="请输入生产装置" clearable filterable @change="changeUnit"> + <el-select class="input-add" :disabled="!disabled" v-model="reportForm.produceDeviceId" placeholder="请输入生产装置" clearable filterable @change="changeUnit"> <el-option v-for="item in allProduceDeviceData" :key="item.id" :label="item.produceDeviceName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="风险分析单元" prop="riskUnitId"> - <el-select class="input-add" v-model.trim="reportForm.riskUnitId" placeholder="请输入风险分析单元" clearable filterable> + <el-select class="input-add" :disabled="!disabled" v-model.trim="reportForm.riskUnitId" placeholder="请输入风险分析单元" clearable filterable> <el-option v-for="item in safetyRiskUnitData" :key="item.id" :label="item.riskUnitName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="隐患来源" prop="dangerSource"> - <el-select class="input-add" v-model="reportForm.dangerSource" placeholder="请选择隐患来源" clearable filterable> + <el-select class="input-add" :disabled="!disabled" v-model="reportForm.dangerSource" placeholder="请选择隐患来源" clearable filterable> <el-option v-for="item in dangerSourceList" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> @@ -44,28 +44,28 @@ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="隐患等级" prop="dangerLevel"> - <el-select class="input-add" v-model="reportForm.dangerLevel" placeholder="请选择隐患等级" clearable filterable> + <el-select class="input-add" :disabled="!disabled" v-model="reportForm.dangerLevel" placeholder="请选择隐患等级" clearable filterable> <el-option v-for="item in dangerLevelList" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="隐患类型" prop="dangerType"> - <el-select class="input-add" v-model="reportForm.dangerType" placeholder="请选择隐患类型" clearable filterable> + <el-select class="input-add" :disabled="!disabled" v-model="reportForm.dangerType" placeholder="请选择隐患类型" clearable filterable> <el-option v-for="item in dangerTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="隐患可能后果" prop="dangerResult"> - <el-select class="input-add" v-model="reportForm.dangerResult" placeholder="请选择隐患可能后果" clearable filterable> + <el-select class="input-add" :disabled="!disabled" v-model="reportForm.dangerResult" placeholder="请选择隐患可能后果" clearable filterable> <el-option v-for="item in dangerResultList" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12"> <el-form-item label="隐患产生原因" prop="dangerReason"> - <el-input class="input-add" type="textarea" :rows="2" style="padding-bottom: 10px" v-model.trim="reportForm.dangerReason" placeholder="请输入隐患产生原因"></el-input> + <el-input class="input-add" :disabled="!disabled" type="textarea" :rows="2" style="padding-bottom: 10px" v-model.trim="reportForm.dangerReason" placeholder="请输入隐患产生原因"></el-input> </el-form-item> </el-col> </el-row> @@ -79,24 +79,24 @@ <el-row> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="整改类型" prop="rectifyType"> - <el-select class="input-add" v-model="reportForm.rectifyType" placeholder="请选择整改类型" clearable filterable> + <el-select class="input-add" :disabled="!disabled" v-model="reportForm.rectifyType" placeholder="请选择整改类型" clearable filterable> <el-option v-for="item in rectifyTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="整改期限" prop="rectifyTime"> - <el-date-picker type="datetime" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" v-model="reportForm.rectifyTime" placeholder="请选择整改期限" clearable> </el-date-picker> + <el-date-picker type="datetime" :disabled="!disabled" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" v-model="reportForm.rectifyTime" placeholder="请选择整改期限" clearable> </el-date-picker> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="整改部门" prop="rectifyDepId"> - <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="reportForm.rectifyDepId"> </el-cascader> + <el-cascader :disabled="!disabled" @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable class="input-add" v-model="reportForm.rectifyDepId"> </el-cascader> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="整改责任人" prop="liablePersonId"> - <el-select class="input-add" v-model="reportForm.liablePersonId" placeholder="请选择整改责任人" clearable filterable> + <el-select class="input-add" :disabled="!disabled" v-model="reportForm.liablePersonId" placeholder="请选择整改责任人" clearable filterable> <el-option v-for="item in userList" :key="item.uid" :label="item.username" :value="item.uid"></el-option> </el-select> </el-form-item> @@ -104,12 +104,12 @@ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="整改资金" prop="dangerResult"> - <el-input class="input-add" type="number" v-model="reportForm.cost" placeholder="请选择整改资金"> </el-input> + <el-input class="input-add" :disabled="!disabled" type="number" v-model="reportForm.cost" placeholder="请选择整改资金"> </el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12"> <el-form-item label="整改措施" prop="rectifyDesc"> - <el-input class="input-add" type="textarea" :rows="2" style="padding-bottom: 10px" v-model.trim="reportForm.rectifyDesc" placeholder="请输入整改措施"></el-input> + <el-input class="input-add" :disabled="!disabled" type="textarea" :rows="2" style="padding-bottom: 10px" v-model.trim="reportForm.rectifyDesc" placeholder="请输入整改措施"></el-input> </el-form-item> </el-col> </el-row> diff --git a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/index.vue b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/index.vue index 6dba9f5..37cb2c1 100644 --- a/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/index.vue +++ b/src/views/doublePrevent/riskCheckManage/hiddenManagement/hiddenReport/index.vue @@ -42,36 +42,36 @@ </div> <el-table :data="reportData.data" style="width: 100%"> <el-table-column type="index" label="序号" width="60" /> - <el-table-column prop="dangerDesc" label="隐患情况描述" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="produceDeviceName" label="生产装置名称" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="riskUnitName" label="风险分析单元名称" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="dangerSource" label="隐患来源" show-overflow-tooltip min-width="150px"> + <el-table-column prop="dangerDesc" label="隐患情况描述" show-overflow-tooltip></el-table-column> + <el-table-column prop="produceDeviceName" label="生产装置名称" show-overflow-tooltip></el-table-column> + <el-table-column prop="riskUnitName" label="风险分析单元名称" show-overflow-tooltip></el-table-column> + <el-table-column prop="dangerSource" label="隐患来源" show-overflow-tooltip> <template #default="scope"> {{ parseNumber(scope.row.dangerSource, '隐患来源') }} </template> </el-table-column> - <el-table-column prop="dangerLevel" label="隐患等级" show-overflow-tooltip min-width="150px" align="center"> + <el-table-column prop="dangerLevel" label="隐患等级" show-overflow-tooltip align="center"> <template #default="scope"> <el-tag :type="scope.row.dangerLevel === 1 ? 'warning' : 'danger'"> {{ parseNumber(scope.row.dangerLevel, '隐患等级') }} </el-tag> </template> </el-table-column> - <el-table-column prop="dangerType" label="隐患类型" show-overflow-tooltip min-width="150px"> + <el-table-column prop="dangerType" label="隐患类型" show-overflow-tooltip> <template #default="scope"> {{ parseNumber(scope.row.dangerType, '隐患类型') }} </template> </el-table-column> - <el-table-column prop="dangerReason" label="隐患产生原因分析" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="dangerResult" label="隐患可能导致后果" show-overflow-tooltip min-width="150px" align="center"> + <el-table-column prop="dangerReason" label="隐患产生原因分析" show-overflow-tooltip></el-table-column> + <el-table-column prop="dangerResult" label="隐患可能导致后果" show-overflow-tooltip align="center"> <template #default="scope"> <el-tag :type="scope.row.dangerResult === 1 ? 'success' : scope.row.dangerResult === 2 ? 'info' : scope.row.dangerResult === 3 ? 'warning' : 'danger'"> {{ parseNumber(scope.row.dangerResult, '隐患可能导致后果') }}</el-tag> </template> </el-table-column> - <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip min-width="200px"></el-table-column> - <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip min-width="150px"></el-table-column> - <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip min-width="200px"></el-table-column> + <el-table-column prop="createByUserName" label="创建人" show-overflow-tooltip></el-table-column> + <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></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="250" fixed="right" align="center"> <template #default="scope"> <el-button size="small" text type="primary" :icon="View" @click="onOpenDialogRef('查看', scope.row)">查看</el-button> @@ -336,4 +336,15 @@ }); </script> -<style scoped></style> +<style scoped> +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} +</style> diff --git a/src/views/doublePrevent/riskLevel/action/components/riskControlMeasureDialog.vue b/src/views/doublePrevent/riskLevel/action/components/riskControlMeasureDialog.vue index 77ca4ba..ac7d844 100644 --- a/src/views/doublePrevent/riskLevel/action/components/riskControlMeasureDialog.vue +++ b/src/views/doublePrevent/riskLevel/action/components/riskControlMeasureDialog.vue @@ -5,50 +5,50 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="风险事件名称" prop="riskEventId"> - <el-select class="input-length" v-model="riskControlMeasureForm.riskEventId" placeholder="请选择风险事件" clearable> + <el-select class="input-length" :disabled="!disabled" v-model="riskControlMeasureForm.riskEventId" placeholder="请选择风险事件" clearable> <el-option v-for="item in allSafetyRiskEventData" :key="item.id" :label="item.riskEventName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="风险措施编码" prop="controlMeasureCode"> - <el-input class="input-length" v-model.trim="riskControlMeasureForm.controlMeasureCode" placeholder="请输入风险措施编码"></el-input> + <el-input class="input-length" :disabled="!disabled" v-model.trim="riskControlMeasureForm.controlMeasureCode" placeholder="请输入风险措施编码"></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="管控方式" prop="controlType"> - <el-select class="input-length" v-model="riskControlMeasureForm.controlType" placeholder="请选择管控方式" clearable> + <el-select class="input-length" :disabled="!disabled" v-model="riskControlMeasureForm.controlType" placeholder="请选择管控方式" clearable> <el-option v-for="item in controlTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="管控内容" prop="checkContent"> - <el-input class="input-length" type="textarea" :rows="3" v-model.trim="riskControlMeasureForm.checkContent" placeholder="请输入管控内容" clearable> </el-input> + <el-input class="input-length" :disabled="!disabled" type="textarea" :rows="3" v-model.trim="riskControlMeasureForm.checkContent" placeholder="请输入管控内容" clearable> </el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="管控措施分类1" prop="classify1"> - <el-select class="input-length" v-model="riskControlMeasureForm.classify1" @change="changeClassifyTwoList" placeholder="请选择管控方式" clearable> + <el-select class="input-length" :disabled="!disabled" v-model="riskControlMeasureForm.classify1" @change="changeClassifyTwoList" placeholder="请选择管控方式" clearable> <el-option v-for="item in classifyOneList" :key="item.id" :label="item.riskMeasureName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="管控措施分类2" prop="classify2"> - <el-select class="input-length" v-model="riskControlMeasureForm.classify2" placeholder="请选择管控方式" clearable> + <el-select class="input-length" :disabled="!disabled" v-model="riskControlMeasureForm.classify2" placeholder="请选择管控方式" clearable> <el-option v-for="item in classifyTwoList" :key="item.id" :label="item.riskMeasureName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="管控措施分类3" prop="classify3"> - <el-input class="input-length" v-model.trim="riskControlMeasureForm.classify3" placeholder="请选择管控方式" clearable> </el-input> + <el-input class="input-length" :disabled="!disabled" v-model.trim="riskControlMeasureForm.classify3" placeholder="请选择管控方式" clearable> </el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="措施说明" prop="measureDesc"> - <el-input class="input-length" type="textarea" :rows="3" v-model.trim="riskControlMeasureForm.measureDesc" placeholder="请输入措施说明" clearable> </el-input> + <el-input class="input-length" :disabled="!disabled" type="textarea" :rows="3" v-model.trim="riskControlMeasureForm.measureDesc" placeholder="请输入措施说明" clearable> </el-input> </el-form-item> </el-col> </el-row> @@ -158,10 +158,14 @@ } else if (type === '查看') { state.disabled = false; state.title = '修改风险管控措施'; + state.riskControlMeasureForm.classify1 = JSON.parse(JSON.stringify(value)).classify1; + state.classifyTwoList = state.classifyTwoListAll.filter((item: any) => item.parentId === state.riskControlMeasureForm.classify1); state.riskControlMeasureForm = JSON.parse(JSON.stringify(value)); } else { state.disabled = true; state.title = '修改风险管控措施'; + state.riskControlMeasureForm.classify1 = JSON.parse(JSON.stringify(value)).classify1; + state.classifyTwoList = state.classifyTwoListAll.filter((item: any) => item.parentId === state.riskControlMeasureForm.classify1); state.riskControlMeasureForm = JSON.parse(JSON.stringify(value)); } }; diff --git a/src/views/doublePrevent/riskLevel/action/index.vue b/src/views/doublePrevent/riskLevel/action/index.vue index b5827cb..0629615 100644 --- a/src/views/doublePrevent/riskLevel/action/index.vue +++ b/src/views/doublePrevent/riskLevel/action/index.vue @@ -232,7 +232,7 @@ // 删除角色 const onDelRiskControlMeasure = (row: any) => { - ElMessageBox.confirm(`此操作将永久删除该条风险管控措施:“${row.produceDeviceName}”,是否继续?`, '提示', { + ElMessageBox.confirm(`此操作将永久删除该条风险管控措施:“${row.checkContent}”,是否继续?`, '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning' @@ -309,4 +309,15 @@ }; </script> -<style scoped></style> +<style scoped> +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} +</style> diff --git a/src/views/doublePrevent/riskLevel/device/components/productionDeviceDialog.vue b/src/views/doublePrevent/riskLevel/device/components/productionDeviceDialog.vue index 5ad24bd..cb1c0a9 100644 --- a/src/views/doublePrevent/riskLevel/device/components/productionDeviceDialog.vue +++ b/src/views/doublePrevent/riskLevel/device/components/productionDeviceDialog.vue @@ -5,25 +5,25 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="生产装置名称" prop="produceDeviceName"> - <el-input class="input-length" v-model.trim="productionDeviceForm.produceDeviceName" placeholder="请输入生产装置名称" clearable></el-input> + <el-input class="input-length" :disabled="!disabled" v-model.trim="productionDeviceForm.produceDeviceName" placeholder="请输入生产装置名称" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="所属部门" prop="depId"> - <el-cascader :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable style="width: 85%" v-model="productionDeviceForm.depId"> </el-cascader> + <el-cascader :options="departmentList" :disabled="!disabled" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable style="width: 85%" v-model="productionDeviceForm.depId"> </el-cascader> <!-- <el-select class="input-length" v-model="productionDeviceForm.depName" placeholder="请选择所属部门" clearable filterable></el-select>--> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="风险等级" prop="riskLevel"> - <el-select class="input-length" v-model="productionDeviceForm.riskLevel" placeholder="请选择风险等级" clearable filterable> + <el-select class="input-length" :disabled="!disabled" v-model="productionDeviceForm.riskLevel" placeholder="请选择风险等级" clearable filterable> <el-option v-for="item in levelList" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="区域位置" prop="location"> - <el-input class="input-length" v-model.trim="productionDeviceForm.location" type="textarea" placeholder="请输入区域位置" maxlength="150"></el-input> + <el-input class="input-length" :disabled="!disabled" v-model.trim="productionDeviceForm.location" type="textarea" placeholder="请输入区域位置" maxlength="150"></el-input> </el-form-item> </el-col> </el-row> diff --git a/src/views/doublePrevent/riskLevel/device/index.vue b/src/views/doublePrevent/riskLevel/device/index.vue index a8208fe..00ef584 100644 --- a/src/views/doublePrevent/riskLevel/device/index.vue +++ b/src/views/doublePrevent/riskLevel/device/index.vue @@ -247,4 +247,15 @@ }; </script> -<style scoped></style> +<style scoped> +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} +</style> diff --git a/src/views/doublePrevent/riskLevel/event/components/safetyRiskEventDialog.vue b/src/views/doublePrevent/riskLevel/event/components/safetyRiskEventDialog.vue index 88b9e1b..2eea0e1 100644 --- a/src/views/doublePrevent/riskLevel/event/components/safetyRiskEventDialog.vue +++ b/src/views/doublePrevent/riskLevel/event/components/safetyRiskEventDialog.vue @@ -5,14 +5,14 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="安全风险分析单元名称" prop="riskUnitId"> - <el-select class="input-length" v-model="safetyRiskEventForm.riskUnitId" placeholder="请输入安全风险分析单元名称"> + <el-select class="input-length" :disabled="!disabled" v-model="safetyRiskEventForm.riskUnitId" placeholder="请输入安全风险分析单元名称"> <el-option v-for="item in allSafetyRiskEventData" :key="item.id" :label="item.riskUnitName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="安全风险事件名称" prop="riskEventName"> - <el-input class="input-length" v-model.trim="safetyRiskEventForm.riskEventName" placeholder="请输入请输入安全风险事件名称" clearable></el-input> + <el-input class="input-length" :disabled="!disabled" v-model.trim="safetyRiskEventForm.riskEventName" placeholder="请输入请输入安全风险事件名称" clearable></el-input> </el-form-item> </el-col> </el-row> diff --git a/src/views/doublePrevent/riskLevel/event/index.vue b/src/views/doublePrevent/riskLevel/event/index.vue index c3210a3..cf18a4f 100644 --- a/src/views/doublePrevent/riskLevel/event/index.vue +++ b/src/views/doublePrevent/riskLevel/event/index.vue @@ -197,4 +197,15 @@ }; </script> -<style scoped></style> +<style scoped> +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} +</style> diff --git a/src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue b/src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue index 903bfc2..b1e6ca0 100644 --- a/src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue +++ b/src/views/doublePrevent/riskLevel/riskCheckUnit/components/checkUnitDialog.vue @@ -7,12 +7,12 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="任务单元名称" prop="taskUnitName"> - <el-input class="input-length" v-model.trim="checkUnitForm.taskUnitName" placeholder="请输入任务单元名称" clearable></el-input> + <el-input class="input-length" :disabled="!disabled" v-model.trim="checkUnitForm.taskUnitName" placeholder="请输入任务单元名称" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12" class="mb20"> <el-form-item label="任务单元说明" prop="note"> - <el-input class="input-length" v-model.trim="checkUnitForm.note" placeholder="请输入任务单元说明" clearable></el-input> + <el-input class="input-length" :disabled="!disabled" v-model.trim="checkUnitForm.note" placeholder="请输入任务单元说明" clearable></el-input> </el-form-item> </el-col> </el-row> @@ -23,7 +23,7 @@ <el-tabs class="active" v-model="activeName"> <el-tab-pane label="检查项信息" name="checkUnit"> <div class="filter-container"> - <el-button size="default" type="success" @click="onOpenDialogRef('新增', '')"> + <el-button size="default" :disabled="!disabled" type="success" @click="onOpenDialogRef('新增', '')"> <el-icon> <ele-FolderAdd /> </el-icon> @@ -36,7 +36,7 @@ <el-table-column prop="checkContent" label="管控内容" show-overflow-tooltip align="center"></el-table-column> <el-table-column label="操作" width="150" align="center"> <template #default="scope"> - <el-button size="small" text type="danger" @click="onDelCheckUnit(scope.$index, scope.row)">删除</el-button> + <el-button size="small" text :disabled="!disabled" type="danger" @click="onDelCheckUnit(scope.$index, scope.row)">删除</el-button> </template> </el-table-column> </el-table> @@ -104,7 +104,7 @@ }); //打开模态框 - const openCheckUnitDialog = (type: string, value: object, department: []) => { + const openCheckUnitDialog = (type: string, value: object) => { state.isShowCheckUnitDialog = true; setTimeout(() => { checkUnitFormRef.value.clearValidate(); @@ -222,4 +222,14 @@ .filter-container { padding: 10px 0px; } +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} </style> diff --git a/src/views/doublePrevent/riskLevel/riskCheckUnit/index.vue b/src/views/doublePrevent/riskLevel/riskCheckUnit/index.vue index 5957cd3..385a1da 100644 --- a/src/views/doublePrevent/riskLevel/riskCheckUnit/index.vue +++ b/src/views/doublePrevent/riskLevel/riskCheckUnit/index.vue @@ -22,7 +22,7 @@ <el-icon> <ele-FolderAdd /> </el-icon> - 新增排查任务 + 新增排查单元 </el-button> </div> <el-table :data="checkUnitData.data" style="width: 100%"> @@ -112,7 +112,7 @@ // 打开生产装置弹窗 const onOpenDialogRef = (type: string, value: any) => { - checkUnitDialogRef.value.openCheckUnitDialog(type, value, state.departmentList); + checkUnitDialogRef.value.openCheckUnitDialog(type, value); }; // 删除角色 const onDelCheckUnit = (row: any) => { @@ -176,4 +176,15 @@ }); </script> -<style scoped></style> +<style scoped> +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} +</style> diff --git a/src/views/doublePrevent/riskLevel/unit/components/safetyRiskAnalyseUnitDialog.vue b/src/views/doublePrevent/riskLevel/unit/components/safetyRiskAnalyseUnitDialog.vue index d1e6f10..28bf661 100644 --- a/src/views/doublePrevent/riskLevel/unit/components/safetyRiskAnalyseUnitDialog.vue +++ b/src/views/doublePrevent/riskLevel/unit/components/safetyRiskAnalyseUnitDialog.vue @@ -5,29 +5,29 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="安全风险分析对象编码" prop="riskCode"> - <el-input class="input-length" v-model.trim="safetyRiskAnalyseUnitForm.riskCode" placeholder="请输入安全风险分析对象编码"></el-input> + <el-input class="input-length" :disabled="!disabled" v-model.trim="safetyRiskAnalyseUnitForm.riskCode" placeholder="请输入安全风险分析对象编码"></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="安全风险分析单元名称" prop="riskUnitName"> - <el-input class="input-length" v-model.trim="safetyRiskAnalyseUnitForm.riskUnitName" placeholder="请输入安全风险分析单元名称"></el-input> + <el-input class="input-length" :disabled="!disabled" v-model.trim="safetyRiskAnalyseUnitForm.riskUnitName" placeholder="请输入安全风险分析单元名称"></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="生产装置名称" prop="produceDeviceId"> - <el-select class="input-length" v-model="safetyRiskAnalyseUnitForm.produceDeviceId" placeholder="请输入生产装置名称" clearable> + <el-select class="input-length" :disabled="!disabled" v-model="safetyRiskAnalyseUnitForm.produceDeviceId" placeholder="请输入生产装置名称" clearable> <el-option v-for="item in allProduceDeviceData" :key="item.id" :label="item.produceDeviceName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="责任部门" prop="liableDepId"> - <el-cascader @change="achieveUserList" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable style="width: 85%" v-model="safetyRiskAnalyseUnitForm.liableDepId"> </el-cascader> + <el-cascader @change="achieveUserList" :disabled="!disabled" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" placeholder="请选择部门" clearable filterable style="width: 85%" v-model="safetyRiskAnalyseUnitForm.liableDepId"> </el-cascader> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="责任人" prop="liablePersonId"> - <el-select class="input-length" v-model="safetyRiskAnalyseUnitForm.liablePersonId" placeholder="请选择责任人" clearable filterable> + <el-select class="input-length" :disabled="!disabled" v-model="safetyRiskAnalyseUnitForm.liablePersonId" placeholder="请选择责任人" clearable filterable> <el-option v-for="item in userList" :key="item.uid" :label="item.realName" :value="item.uid"></el-option> </el-select> </el-form-item> diff --git a/src/views/doublePrevent/riskLevel/unit/index.vue b/src/views/doublePrevent/riskLevel/unit/index.vue index 93c4751..ec369c6 100644 --- a/src/views/doublePrevent/riskLevel/unit/index.vue +++ b/src/views/doublePrevent/riskLevel/unit/index.vue @@ -251,4 +251,15 @@ }; </script> -<style scoped></style> +<style scoped> +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} +</style> diff --git a/src/views/facilityManagement/InstrumentationInformation/index.vue b/src/views/facilityManagement/InstrumentationInformation/index.vue index d4e4308..ee2b75e 100644 --- a/src/views/facilityManagement/InstrumentationInformation/index.vue +++ b/src/views/facilityManagement/InstrumentationInformation/index.vue @@ -27,7 +27,7 @@ <div class="btns"> <div> <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> + <!-- <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> --> <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" plain>删除</el-button> </div> <div> @@ -37,7 +37,7 @@ </div> </div> <div style="padding-left: 10px"> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> + <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange"> <el-table-column type="selection" align="center" width="55" /> <el-table-column type="expand"> <template #default="scope"> @@ -45,14 +45,14 @@ <el-tab-pane label="设备保养" name="first"> <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" style="width: 100%"> <el-table-column property="takecareMemo" align="center" label="保养情况" sortable /> - <el-table-column property="leadingPersonId" align="center" label="保养负责人" sortable /> + <el-table-column property="leadingPersonName" align="center" label="保养负责人" sortable /> <el-table-column property="takecareDate" align="center" :formatter="timeDate" label="保养日期" sortable /> - <el-table-column property="leadingPersonDepartmentId" align="center" label="保养负责人单位" sortable /> + <el-table-column property="leadingPersonDepartmentName" align="center" label="保养负责人单位" sortable /> </el-table> </el-tab-pane> <el-tab-pane label="设备检查" name="second" ><el-table ref="multipleTableRef" :data="scope.row.checkDetailList" style="width: 100%"> - <el-table-column property="leadingPersonId" align="center" label="检查人" sortable /> + <el-table-column property="leadingPersonName" align="center" label="检查人" sortable /> <el-table-column property="createTime" align="center" :formatter="timeDate" label="检查日期" sortable /> <el-table-column property="name" align="center" label="检查人部门" sortable /> <el-table-column property="takecareMemo" align="center" label="检查结果" sortable /> @@ -60,21 +60,31 @@ ></el-tab-pane> <el-tab-pane label="设备检测" name="third"> <el-table ref="multipleTableRef" :data="scope.row.testDetailList" style="width: 100%"> - <el-table-column property="testPersonId" align="center" label="检测人" sortable /> + <el-table-column property="testPersonName" align="center" label="检测人" sortable /> <el-table-column property="testDate" align="center" :formatter="timeDate" label="检测日期" sortable /> - <el-table-column property="testPersonDepartmentId" align="center" label="检测人单位" sortable /> + <el-table-column property="testPersonDepartmentName" align="center" label="检测人单位" sortable /> <el-table-column property="testMemo" align="center" label="检测内容" sortable /> - <el-table-column property="testResult" align="center" label="检测结果" sortable /> + <el-table-column align="center" label="检测结果"> + <template #default="scope"> + <span v-if="scope.row.testResult == 1">成功</span> + <span v-if="scope.row.testResult == 2">失败</span> + </template> + </el-table-column> <el-table-column property="testStatus" align="center" label="检测状态" sortable /> </el-table> </el-tab-pane> <el-tab-pane label="设备维修" name="fourth"> <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" style="width: 100%"> <el-table-column property="exceptionInfo" align="center" label="设施异常项" sortable /> - <el-table-column property="repairStatus" align="center" label="维修状态" sortable /> + <el-table-column align="center" label="维修状态"> + <template #default="scope"> + <span v-if="scope.row.repairStatus == 1">维修中</span> + <span v-if="scope.row.repairStatus == 2">已修好</span> + </template> + </el-table-column> <el-table-column property="repairMemo" align="center" label="维修情况" sortable /> - <el-table-column property="repairPersonId" align="center" label="维修负责人" sortable /> - <el-table-column property="repairPersonDepartmentId" align="center" label="维修负责人单位" sortable /> + <el-table-column property="repairPersonName" align="center" label="维修负责人" sortable /> + <el-table-column property="repairPersonDepartmentName" align="center" label="维修负责人单位" sortable /> <el-table-column property="repairStartDate" align="center" :formatter="timeDate" label="维修开始日期" sortable /> <el-table-column property="repairEndDate" align="center" :formatter="timeDate" label="维修结束日期" sortable /> </el-table> @@ -136,6 +146,7 @@ searchParams: { qName: '', ////名称 positionNum: '', ////位号 + equipmentTypeId: '', infoType: 0, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 }, }); @@ -188,8 +199,8 @@ }; // 删除 const onDelete = (id: number) => { - let arr=[] - arr.push(id) + let arr = []; + arr.push(id); ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { confirmButtonText: '确定', cancelButtonText: '取消', @@ -227,7 +238,7 @@ for (let i = 0; i < valId.length; i++) { arr.push(valId[i].id); } - deletAll.value = arr + deletAll.value = arr; if (val.length == 1) { warning.value = false; danger.value = false; @@ -299,7 +310,8 @@ return data.typeName.includes(value); }; const handleNodeClick = (data: Tree) => { - ruleForm.searchParams.positionNum = data.id; + ruleForm.searchParams.positionNum = data.sortNum; + ruleForm.searchParams.equipmentTypeId = data.id; listApi(); }; const data = ref([]); diff --git a/src/views/facilityManagement/ProductionEquipment/index.vue b/src/views/facilityManagement/ProductionEquipment/index.vue index ab8551e..bb4f4f9 100644 --- a/src/views/facilityManagement/ProductionEquipment/index.vue +++ b/src/views/facilityManagement/ProductionEquipment/index.vue @@ -28,7 +28,7 @@ <div class="btns"> <div> <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> + <!-- <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> --> <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" plain>删除</el-button> </div> <div> @@ -46,14 +46,14 @@ <el-tab-pane label="设备保养" name="first"> <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" style="width: 100%"> <el-table-column property="takecareMemo" align="center" label="保养情况" sortable /> - <el-table-column property="leadingPersonId" align="center" label="保养负责人" sortable /> + <el-table-column property="leadingPersonName" align="center" label="保养负责人" sortable /> <el-table-column property="takecareDate" align="center" label="保养日期" sortable /> - <el-table-column property="leadingPersonDepartmentId" align="center" label="保养负责人单位" sortable /> + <el-table-column property="leadingPersonDepartmentName" align="center" label="保养负责人单位" sortable /> </el-table> </el-tab-pane> <el-tab-pane label="设备检查" name="second" ><el-table ref="multipleTableRef" :data="scope.row.checkDetailList" style="width: 100%"> - <el-table-column property="leadingPersonId" align="center" label="检查人" sortable /> + <el-table-column property="leadingPersonName" align="center" label="检查人" sortable /> <el-table-column property="createTime" align="center" label="检查日期" sortable /> <el-table-column property="name" align="center" label="检查人部门" sortable /> <el-table-column property="takecareMemo" align="center" label="检查结果" sortable /> @@ -61,21 +61,31 @@ ></el-tab-pane> <el-tab-pane label="设备检测" name="third"> <el-table ref="multipleTableRef" :data="scope.row.testDetailList" style="width: 100%"> - <el-table-column property="testPersonId" align="center" label="检测人" sortable /> + <el-table-column property="testPersonName" align="center" label="检测人" sortable /> <el-table-column property="testDate" align="center" label="检测日期" sortable /> - <el-table-column property="testPersonDepartmentId" align="center" label="检测人单位" sortable /> + <el-table-column property="testPersonDepartmentName" align="center" label="检测人单位" sortable /> <el-table-column property="testMemo" align="center" label="检测内容" sortable /> - <el-table-column property="testResult" align="center" label="检测结果" sortable /> + <el-table-column align="center" label="检测结果"> + <template #default="scope"> + <span v-if="scope.row.testResult == 1">成功</span> + <span v-if="scope.row.testResult == 2">失败</span> + </template> + </el-table-column> <el-table-column property="testStatus" align="center" label="检测状态" sortable /> </el-table> </el-tab-pane> <el-tab-pane label="设备维修" name="fourth"> <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" style="width: 100%"> <el-table-column property="exceptionInfo" align="center" label="设施异常项" sortable /> - <el-table-column property="repairStatus" align="center" label="维修状态" sortable /> + <el-table-column align="center" label="维修状态"> + <template #default="scope"> + <span v-if="scope.row.repairStatus == 1">维修中</span> + <span v-if="scope.row.repairStatus == 2">已修好</span> + </template> + </el-table-column> <el-table-column property="repairMemo" align="center" label="维修情况" sortable /> - <el-table-column property="repairPersonId" align="center" label="维修负责人" sortable /> - <el-table-column property="repairPersonDepartmentId" align="center" label="维修负责人单位" sortable /> + <el-table-column property="repairPersonName" align="center" label="维修负责人" sortable /> + <el-table-column property="repairPersonDepartmentName" align="center" label="维修负责人单位" sortable /> <el-table-column property="repairStartDate" align="center" label="维修开始日期" sortable /> <el-table-column property="repairEndDate" align="center" label="维修结束日期" sortable /> </el-table> @@ -136,7 +146,8 @@ searchParams: { qName: '', ////名称 positionNum: '', ////位号 - infoType: 0, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 + equipmentTypeId:"", + infoType: 1, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 }, }); // 重置 @@ -299,7 +310,8 @@ return data.typeName.includes(value); }; const handleNodeClick=(data: Tree)=>{ - ruleForm.searchParams.positionNum=data.id + ruleForm.searchParams.equipmentTypeId=data.id + ruleForm.searchParams.equipmentTypeId = data.id; listApi(); } const data=ref([]) diff --git a/src/views/facilityManagement/deviceType/component/Dailog.vue b/src/views/facilityManagement/deviceType/component/Dailog.vue index 576135f..ce4d7af 100644 --- a/src/views/facilityManagement/deviceType/component/Dailog.vue +++ b/src/views/facilityManagement/deviceType/component/Dailog.vue @@ -6,14 +6,14 @@ <el-col :span="11"> <el-form-item label="是否为设备内容" size="default" prop="isContent"> <el-select v-model="form.isContent" placeholder="请选择" style="width: 100%"> - <el-option label="是" value="1" /> - <el-option label="否" value="2" /> + <el-option label="是" :value="1" /> + <el-option label="否" :value="2" /> </el-select> </el-form-item> </el-col> <el-col :span="11" :offset="2"> <el-form-item label="父级编号" size="default" prop="parentId"> - <el-tree-select clearable check-strictly="true" v-model="form.parentId" :data="data" :props="propst" class="w100" placeholder="请选择" /> + <el-tree-select clearable check-strictly="true" v-model="form.parentId" :data="data" :props="propst" class="w100" placeholder="请选择" /> </el-form-item> </el-col> </el-row> @@ -51,16 +51,18 @@ const form = ref({ isContent: '', ////是否为设备内容 1:是 2:否 typeName: '', ////类别名称 - parentId: "", ////父级ID,如果没有父级,为0 + parentId: '', ////父级ID,如果没有父级,为0 isCheck: 0, ////是否检测 1:是 2:否 isVisit: 0, ////是否巡检 1:是 2:否 sortNum: '', //排列序列 - id: '', //设备类型ID ,更新时必填 + // id: '', //设备类型ID ,更新时必填 }); const titles = ref(); + const titleT = ref(); const disabled = ref(false); const openDailog = (title: string, id: number) => { listApi(); + titleT.value = title; dialogVisible.value = true; titles.value = `${title}设备设施类型管理`; if (title == '查看') { @@ -69,7 +71,7 @@ } else if (title == '修改') { detail(id); } else if (title == '添加') { - form.value.parentId=id + form.value.parentId = id; } }; const detail = (id: number) => { @@ -123,6 +125,9 @@ if (!formEl) return; await formEl.validate((valid, fields) => { if (valid) { + if (titleT.value == '新建') { + delete form.value.id; + } facilityManagementApi() .getequipmentTypeMngAddOrUpdate(form.value) .then((res) => { @@ -147,11 +152,13 @@ console.log('error submit!', fields); } }); + disabled.value=false }; const resetForm = (formEl: FormInstance | undefined) => { if (!formEl) return; formEl.resetFields(); dialogVisible.value = false; + disabled.value=false }; //全屏 const full = ref(false); @@ -163,6 +170,7 @@ } }; return { + titleT, detail, rules, ruleFormRef, diff --git a/src/views/facilityManagement/keyEquipment/index.vue b/src/views/facilityManagement/keyEquipment/index.vue index 7e987d6..78b54f1 100644 --- a/src/views/facilityManagement/keyEquipment/index.vue +++ b/src/views/facilityManagement/keyEquipment/index.vue @@ -1,384 +1,447 @@ <template> - <div> - <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> - <el-row> - <el-col :span="4"> - <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.qName" placeholder="装置/部位名称" /> - </el-form-item> - </el-col> - <el-col :span="4"> - <el-form-item> - <el-button size="default" type="primary" @click="listApi">查询</el-button> - <el-button size="default" @click="resetForm">重置</el-button> - </el-form-item> - </el-col> - </el-row> - </el-form> - <el-row> - <el-col :span="4"> - <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字" /> - <div class="tree"> - <!-- <el-input v-model="filterText" style="height: 30px" placeholder="Filter keyword" />--> - <el-tree ref="treeRef" :data="data" :props="props" @node-click="handleNodeClick" :filter-node-method="filterNode" /> - </div> - </el-col> - <el-col :span="20"> - <div class="btns"> - <div> - <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" plain>删除</el-button> - </div> - <div> - <!-- <el-button size="default" :icon="Upload" @click="openUp"></el-button> - <el-button size="default" :icon="Download"></el-button> - <el-button size="default" :icon="Refresh"></el-button> --> - </div> - </div> - <div style="padding-left: 10px"> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> - <el-table-column type="selection" align="center" width="55" /> - <el-table-column type="expand"> - <template #default="scope"> - <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick" style="margin: 0 5%"> - <el-tab-pane label="设备保养" name="first"> - <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" style="width: 100%"> - <el-table-column property="takecareMemo" align="center" label="保养情况" sortable /> - <el-table-column property="leadingPersonId" align="center" label="保养负责人" sortable /> - <el-table-column property="takecareDate" align="center" :formatter="timeDate" label="保养日期" sortable /> - <el-table-column property="leadingPersonDepartmentId" align="center" label="保养负责人单位" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备检查" name="second" - ><el-table ref="multipleTableRef" :data="scope.row.checkDetailList" style="width: 100%"> - <el-table-column property="leadingPersonId" align="center" label="检查人" sortable /> - <el-table-column property="createTime" align="center" :formatter="timeDate" label="检查日期" sortable /> - <el-table-column property="name" align="center" label="检查人部门" sortable /> - <el-table-column property="takecareMemo" align="center" label="检查结果" sortable /> - <el-table-column property="name" align="center" label="检查状态" sortable /> </el-table - ></el-tab-pane> - <el-tab-pane label="设备检测" name="third"> - <el-table ref="multipleTableRef" :data="scope.row.testDetailList" style="width: 100%"> - <el-table-column property="testPersonId" align="center" label="检测人" sortable /> - <el-table-column property="testDate" align="center" :formatter="timeDate" label="检测日期" sortable /> - <el-table-column property="testPersonDepartmentId" align="center" label="检测人单位" sortable /> - <el-table-column property="testMemo" align="center" label="检测内容" sortable /> - <el-table-column property="testResult" align="center" label="检测结果" sortable /> - <el-table-column property="testStatus" align="center" label="检测状态" sortable /> - </el-table> - </el-tab-pane> - <el-tab-pane label="设备维修" name="fourth"> - <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" style="width: 100%"> - <el-table-column property="exceptionInfo" align="center" label="设施异常项" sortable /> - <el-table-column property="repairStatus" align="center" label="维修状态" sortable /> - <el-table-column property="repairMemo" align="center" label="维修情况" sortable /> - <el-table-column property="repairPersonId" align="center" label="维修负责人" sortable /> - <el-table-column property="repairPersonDepartmentId" align="center" label="维修负责人单位" sortable /> - <el-table-column property="repairStartDate" align="center" :formatter="timeDate" label="维修开始日期" sortable /> - <el-table-column property="repairEndDate" align="center" :formatter="timeDate" label="维修结束日期" sortable /> - </el-table> - </el-tab-pane> - </el-tabs> - </template> - </el-table-column> - <el-table-column property="equipmentTypeId" align="center" label="类型/类别外键" sortable /> - <el-table-column property="qName" align="center" label="装置/部位名称" sortable /> - <el-table-column property="departmentId" label="所属部门" align="center" sortable show-overflow-tooltip /> - <el-table-column property="position" label="具体位置" align="center" sortable show-overflow-tooltip /> - <el-table-column property="leadingPersonName" label="负责人姓名" align="center" sortable show-overflow-tooltip /> - <el-table-column property="connectPersonId" label="装置部位分类" align="center" sortable show-overflow-tooltip /> - <el-table-column label="操作" align="center" width="250"> - <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> - <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pages"> - <el-pagination - v-model:currentPage="currentPage4" - v-model:page-size="pageSize4" - :page-sizes="[10, 20, 30, 40]" - layout="total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" - /> - </div> - </div> - </el-col> - </el-row> - <!-- <updata ref="Show"></updata>--> - <DailogS ref="ShowD" @navAddorUpdata="onAddorUpdata"></DailogS> - </div> + <div> + <el-form ref="ruleFormRef" :model="ruleForm" status-icon label-width="20px" class="topTitle"> + <el-row> + <el-col :span="4"> + <el-form-item size="default"> + <el-input v-model="ruleForm.searchParams.name" placeholder="装置/部位名称"/> + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item> + <el-button size="default" type="primary" @click="listApi">查询</el-button> + <el-button size="default" @click="resetForm">重置</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + <el-row> + <el-col :span="4"> + <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字"/> + <div class="tree"> + <!-- <el-input v-model="filterText" style="height: 30px" placeholder="Filter keyword" />--> + <el-tree ref="treeRef" :data="data" :props="props" @node-click="handleNodeClick" + :filter-node-method="filterNode"/> + </div> + </el-col> + <el-col :span="20"> + <div class="btns"> + <div> + <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> + <!-- <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button>--> + <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" + plain>删除 + </el-button> + </div> + <div> + <!-- <el-button size="default" :icon="Upload" @click="openUp"></el-button> + <el-button size="default" :icon="Download"></el-button> + <el-button size="default" :icon="Refresh"></el-button> --> + </div> + </div> + <div style="padding-left: 10px"> + <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" + style="width: 100%"> + <el-table-column type="selection" align="center" width="55"/> + <el-table-column type="expand"> + <template #default="scope"> + <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick" + style="margin: 0 5%"> + <el-tab-pane label="设备保养" name="first"> + <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" + style="width: 100%"> + <el-table-column property="takecareMemo" align="center" label="保养情况" + sortable/> + <el-table-column property="leadingPersonName" align="center" label="保养负责人" + sortable/> + <el-table-column property="takecareDate" align="center" + :formatter="timeDate" label="保养日期" sortable/> + <el-table-column property="leadingPersonDepartmentName" align="center" + label="保养负责人单位" sortable/> + </el-table> + </el-tab-pane> + <el-tab-pane label="设备检查" name="second" + > + <el-table ref="multipleTableRef" :data="scope.row.checkDetailList" + style="width: 100%"> + <el-table-column property="testPersonName" align="center" label="检查人" + sortable/> + <el-table-column property="testDate" align="center" :formatter="timeDate" + label="检查日期" sortable/> + <el-table-column property="testPersonDepartmentName" align="center" label="检查人部门" sortable/> + <el-table-column property="testResult" align="center" label="检查结果" + sortable> + <template #default="scope"> + <span v-if="scope.row.testResult == 1">成功</span> + <span v-if="scope.row.testResult == 2">失败</span> + </template> + </el-table-column> + <el-table-column property="testStatus" align="center" label="检查状态" sortable/> + </el-table + > + </el-tab-pane> + <el-tab-pane label="设备检测" name="third"> + <el-table ref="multipleTableRef" :data="scope.row.testDetailList" + style="width: 100%"> + <el-table-column property="repairPersonName" align="center" label="检测人" + sortable/> + <el-table-column property="repairStarDate" align="center" :formatter="timeDate" + label="检测日期" sortable/> + <el-table-column property="repairPersonDepartmentName" align="center" + label="检测人单位" sortable/> + <el-table-column property="testMemo" align="center" label="检测内容" sortable/> + <el-table-column property="testResult" align="center" label="检测结果" + sortable/> + <el-table-column property="testStatus" align="center" label="检测状态" + sortable/> + </el-table> + </el-tab-pane> + <el-tab-pane label="设备维修" name="fourth"> + <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" + style="width: 100%"> + <el-table-column property="exceptionInfo" align="center" label="设施异常项" + sortable/> + <el-table-column property="repairStatus" align="center" label="维修状态" + sortable> + <template #default="scope"> + <span v-if="scope.row.repairStatus == 1">维修中</span> + <span v-if="scope.row.repairStatus == 2">已维修</span> + </template> + + </el-table-column> + <el-table-column property="repairMemo" align="center" label="维修情况" + sortable/> + <el-table-column property="repairPersonName" align="center" label="维修负责人" + sortable/> + <el-table-column property="repairPersonDepartmentName" align="center" + label="维修负责人单位" sortable/> + <el-table-column property="repairStartDate" align="center" + :formatter="timeDate" label="维修开始日期" sortable/> + <el-table-column property="repairEndDate" align="center" + :formatter="timeDate" label="维修结束日期" sortable/> + </el-table> + </el-tab-pane> + </el-tabs> + </template> + </el-table-column> + <el-table-column property="equipmentTypeName" align="center" label="类型/类别外键" sortable/> + <el-table-column property="name" align="center" label="装置/部位名称" sortable/> + <el-table-column property="departmentName" label="所属部门" align="center" sortable + show-overflow-tooltip/> + <el-table-column property="position" label="具体位置" align="center" sortable + show-overflow-tooltip/> + <el-table-column property="leadingPersonName" label="负责人姓名" align="center" sortable + show-overflow-tooltip/> + <el-table-column property="partType" label="装置部位分类" align="center" sortable + show-overflow-tooltip> + <template #default="scope"> + <span v-if="scope.row.partType == 1">关键装置</span> + <span v-if="scope.row.partType == 2">重点部位</span> + </template> + </el-table-column> + <el-table-column label="操作" align="center" width="250"> + <template #default="scope"> + <el-button link type="primary" size="default" :icon="View" + @click="openD('查看', scope.row.id)">查看 + </el-button> + <el-button link type="primary" size="default" :icon="EditPen" + @click="openD('修改', scope.row.id)">修改 + </el-button> + <el-button link type="primary" size="default" :icon="Delete" + @click="onDelete(scope.row.id)">删除 + </el-button> + </template> + </el-table-column> + </el-table> + <div class="pages"> + <el-pagination + v-model:currentPage="currentPage4" + v-model:page-size="pageSize4" + :page-sizes="[10, 20, 30, 40]" + layout="total, sizes, prev, pager, next, jumper" + :total="total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> + </div> + </el-col> + </el-row> + <!-- <updata ref="Show"></updata>--> + <DailogS ref="ShowD" @navAddorUpdata="onAddorUpdata"></DailogS> + </div> </template> <script lang="ts"> -import { defineComponent, ref, reactive, watch, onMounted } from 'vue'; -// import updata from '/@/components/updata/updata.vue' -import DailogS from '/@/components/equipmentDailog/DailogS.vue'; -import { ElTree, TabsPaneContext, ElMessage, ElMessageBox } from 'element-plus'; -import { EditPen, Plus, Delete, Download, Refresh, Upload, View } from '@element-plus/icons-vue'; -import { facilityManagementApi } from '/@/api/facilityManagement'; -import {timeDate} from '/@/assets/index.ts' -interface Tree { - label: string; - children?: Tree[]; -} -export default defineComponent({ - components: { - // updata, - DailogS, - }, - setup() { - const ruleForm = reactive({ - pageSize: 10, - pageIndex: 1, - searchParams: { - equipmentTypeId: '', ////类型/类别外键 - qName: '', ////装置/部位名称 - // departmentId: '',////所属部门 - // position: '', ////具体位置 - // leadingPersonName: '', ////负责人姓名 - // connectPersonId: '',////装置部位分类 - infoTpe: 0, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 3:重点监管装置/设备 - }, - }); - // 重置 - const resetForm = () => { - ruleForm.searchParams.qName = ''; - listApi(); - }; - const listApi = () => { - facilityManagementApi() - .getkeypointEquipmentInfoAddOrList(ruleForm) - .then((res) => { - if (res.data.code == 200) { - tableData.value = res.data.data; - currentPage4.value = res.data.pageIndex; - pageSize4.value = res.data.pageSize; - total.value = res.data.total; - } else { - ElMessage.error(res.data.msg); - } - }); - }; - onMounted(() => { - listApi(); - }); - const onAddorUpdata = () => { - listApi(); - }; - const tableData = ref(); - const currentPage4 = ref(); - const pageSize4 = ref(); - const total = ref(); - const handleSizeChange = (val: number) => { - // console.log(`${val} items per page`); - ruleForm.pageSize = val; - listApi(); - }; - const handleCurrentChange = (val: number) => { - // console.log(`current page: ${val}`); - ruleForm.pageIndex = val; - listApi(); - }; - const filterText = ref(''); - const treeRef = ref<InstanceType<typeof ElTree>>(); - // 树形 - const listApiTree = () => { - facilityManagementApi() - .getequipmentTypeMngTreeData() - .then((res) => { - if (res.data.code == 200) { - console.log(res.data.data); - data.value = res.data.data; - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); - } - }); - }; - const props = { - label: 'typeName', - children: 'childList', - value: 'id', + import {defineComponent, ref, reactive, watch, onMounted} from 'vue'; + // import updata from '/@/components/updata/updata.vue' + import DailogS from '/@/components/equipmentDailog/DailogS.vue'; + import {ElTree, TabsPaneContext, ElMessage, ElMessageBox} from 'element-plus'; + import {EditPen, Plus, Delete, Download, Refresh, Upload, View} from '@element-plus/icons-vue'; + import {facilityManagementApi} from '/@/api/facilityManagement'; + import {timeDate} from '/@/assets/index.ts' + + interface Tree { + label: string; + children?: Tree[]; } - watch(filterText, (val) => { - treeRef.value!.filter(val); - }); - const filterNode = (value: string, data: Tree) => { - if (!value) return true; - return data.typeName.includes(value); - }; - const handleNodeClick = (data: Tree) => { - console.log(data) - ruleForm.searchParams.qName = data.typeName; - listApi(); - }; - const data = ref([]); - onMounted(() => { - listApiTree(); - }); - // 删除 - const onDelete = (id: number) => { - let arr=[] - arr.push(id) - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getkeypointEquipmentInfoDetele(arr) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - ElMessage({ - type: 'info', - message: 'Delete canceled', - }); - }); - }; - // 批量删除 - const warning = ref(true); - const danger = ref(true); - const deletAll = ref(); - const handleSelectionChange = (val: any) => { - let valId = JSON.parse(JSON.stringify(val)); - let arr = []; - for (let i = 0; i < valId.length; i++) { - arr.push(valId[i].id); - } - deletAll.value = arr; - if (val.length == 1) { - warning.value = false; - danger.value = false; - } else if (val.length == 0) { - warning.value = true; - danger.value = true; - } else { - warning.value = true; - danger.value = false; - } - }; - const onDeleteAll = () => { - ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then(() => { - facilityManagementApi() - .getkeypointEquipmentInfoDetele(deletAll.value) - .then((res) => { - if (res.data.code == 200) { - ElMessage({ - message: res.data.msg, - type: 'success', - }); - listApi(); - } else { - ElMessage.error(res.data.msg); - } - }); - }) - .catch(() => { - // ElMessage({ - // type: 'info', - // message: 'Delete canceled', - // }); - }); - }; + export default defineComponent({ + components: { + // updata, + DailogS, + }, + setup() { + const ruleForm = reactive({ + pageSize: 10, + pageIndex: 1, + searchParams: { + // equipmentTypeId: '', ////类型/类别外键 + name: '', ////装置/部位名称 + // departmentId: '',////所属部门 + // position: '', ////具体位置 + // leadingPersonName: '', ////负责人姓名 + // connectPersonId: '',////装置部位分类 + // infoTpe: 0, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 3:重点监管装置/设备 + equipmentTypeId: '' + }, + }); + // 重置 + const resetForm = () => { + ruleForm.searchParams.equipmentTypeId = ''; + listApi(); + }; + const listApi = () => { + // delete ruleForm.qName + facilityManagementApi() + .getkeypointEquipmentInfoAddOrList(ruleForm) + .then((res) => { + if (res.data.code == 200) { + tableData.value = res.data.data; + currentPage4.value = res.data.pageIndex; + pageSize4.value = res.data.pageSize; + total.value = res.data.total; + } else { + ElMessage.error(res.data.msg); + } + }); + }; + onMounted(() => { + listApi(); + }); + const onAddorUpdata = () => { + listApi(); + }; + const tableData = ref(); + const currentPage4 = ref(); + const pageSize4 = ref(); + const total = ref(); + const handleSizeChange = (val: number) => { + // console.log(`${val} items per page`); + ruleForm.pageSize = val; + listApi(); + }; + const handleCurrentChange = (val: number) => { + // console.log(`current page: ${val}`); + ruleForm.pageIndex = val; + listApi(); + }; + const filterText = ref(''); + const treeRef = ref<InstanceType<typeof ElTree>>(); + // 树形 + const listApiTree = () => { + facilityManagementApi() + .getequipmentTypeMngTreeData() + .then((res) => { + if (res.data.code == 200) { + console.log(res.data.data); + data.value = res.data.data; + } else { + ElMessage({ + showClose: true, + message: res.data.msg, + type: 'error', + }); + } + }); + }; + const props = { + label: 'typeName', + children: 'childList', + value: 'id', + } + watch(filterText, (val) => { + treeRef.value!.filter(val); + }); + const filterNode = (value: string, data: Tree) => { + if (!value) return true; + return data.typeName.includes(value); + }; + const handleNodeClick = (data: Tree) => { + console.log(data) + ruleForm.searchParams.equipmentTypeId = data.id; - const activeName = ref('first'); + listApi(); + }; + const data = ref([]); + onMounted(() => { + listApiTree(); + }); + // 删除 + const onDelete = (id: number) => { + let arr = [] + arr.push(id) + ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) + .then(() => { + facilityManagementApi() + .getkeypointEquipmentInfoDetele(arr) + .then((res) => { + if (res.data.code == 200) { + ElMessage({ + message: res.data.msg, + type: 'success', + }); + listApi(); + } else { + ElMessage.error(res.data.msg); + } + }); + }) + .catch(() => { + ElMessage({ + type: 'info', + message: 'Delete canceled', + }); + }); + }; + // 批量删除 + // const warning = ref(true); + const danger = ref(true); + const deletAll = ref(); + const handleSelectionChange = (val: any) => { + let valId = JSON.parse(JSON.stringify(val)); + let arr = []; + for (let i = 0; i < valId.length; i++) { + arr.push(valId[i].id); + } + deletAll.value = arr; + if (val.length == 1) { + // warning.value = false; + danger.value = false; + } else if (val.length == 0) { + // warning.value = true; + danger.value = true; + } else { + // warning.value = true; + danger.value = false; + } + }; + const onDeleteAll = () => { + ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) + .then(() => { + facilityManagementApi() + .getkeypointEquipmentInfoDetele(deletAll.value) + .then((res) => { + if (res.data.code == 200) { + ElMessage({ + message: res.data.msg, + type: 'success', + }); + listApi(); + } else { + ElMessage.error(res.data.msg); + } + }); + }) + .catch(() => { + // ElMessage({ + // type: 'info', + // message: 'Delete canceled', + // }); + }); + }; - const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); - }; - // const Show=ref() - // const openUp=()=>{ - // Show.value.openDialog() - // } - // 新增弹窗 - const ShowD = ref(); - const openD = (title: String, id: number) => { - ShowD.value.openDailog(title, false, id, 2); - }; - return { - activeName, - handleClick, - ruleForm, - filterText, - treeRef, - props, - filterNode, - data, - tableData, - // Show, - // openUp, - ShowD, - danger, - openD, - // openEdit, - Plus, - EditPen, - listApiTree, - Delete, - View, - Download, - Refresh, - Upload, - resetForm, - listApi, - handleCurrentChange, - handleSizeChange, - onAddorUpdata, - total, - currentPage4, - pageSize4, - onDelete, - warning, - handleSelectionChange, - onDeleteAll, - handleNodeClick, - timeDate, - }; - }, -}); + const activeName = ref('first'); + + const handleClick = (tab: TabsPaneContext, event: Event) => { + console.log(tab, event); + }; + // const Show=ref() + // const openUp=()=>{ + // Show.value.openDialog() + // } + // 新增弹窗 + const ShowD = ref(); + const openD = (title: String, id: number) => { + ShowD.value.openDailog(title, false, id, 2); + }; + return { + activeName, + handleClick, + ruleForm, + filterText, + treeRef, + props, + filterNode, + data, + tableData, + // Show, + // openUp, + ShowD, + danger, + openD, + // openEdit, + Plus, + EditPen, + listApiTree, + Delete, + View, + Download, + Refresh, + Upload, + resetForm, + listApi, + handleCurrentChange, + handleSizeChange, + onAddorUpdata, + total, + currentPage4, + pageSize4, + onDelete, + // warning, + handleSelectionChange, + onDeleteAll, + handleNodeClick, + timeDate, + }; + }, + }); </script> <style scoped> -.topTitle { - background-color: #fff; - padding: 20px 0px 20px 0px; - margin-bottom: 10px; -} -.tree { - height: 750px; - background-color: #fff; - overflow: hidden; - overflow-y: auto; -} -.btns { - padding: 10px 0px 10px 10px; - display: flex; - justify-content: space-between; - background-color: #fff; -} + .topTitle { + background-color: #fff; + padding: 20px 0px 20px 0px; + margin-bottom: 10px; + } + + .tree { + height: 750px; + background-color: #fff; + overflow: hidden; + overflow-y: auto; + } + + .btns { + padding: 10px 0px 10px 10px; + display: flex; + justify-content: space-between; + background-color: #fff; + } </style> diff --git a/src/views/facilityManagement/safetyEquipment/index.vue b/src/views/facilityManagement/safetyEquipment/index.vue index 576cfb7..98b78a0 100644 --- a/src/views/facilityManagement/safetyEquipment/index.vue +++ b/src/views/facilityManagement/safetyEquipment/index.vue @@ -17,9 +17,8 @@ </el-form> <el-row> <el-col :span="4"> - <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字" /> + <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字" /> <div class="tree"> - <!-- <el-tree ref="treeRef" class="filter-tree" :data="data" :props="props" :filter-node-method="filterNode" /> --> <el-tree ref="treeRef" :data="data" :props="props" @node-click="handleNodeClick" :filter-node-method="filterNode" /> </div> @@ -28,7 +27,7 @@ <div class="btns"> <div> <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> + <!-- <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> --> <el-button size="default" :disabled="danger" type="danger" :icon="Delete" @click="onDeleteAll" plain>删除</el-button> </div> <div> @@ -38,7 +37,7 @@ </div> </div> <div style="padding-left: 10px"> - <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> + <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> <el-table-column type="selection" align="center" width="55" /> <el-table-column type="expand"> <template #default="scope"> @@ -46,14 +45,14 @@ <el-tab-pane label="设备保养" name="first"> <el-table ref="multipleTableRef" :data="scope.row.takecareDetailList" style="width: 100%"> <el-table-column property="takecareMemo" align="center" label="保养情况" sortable /> - <el-table-column property="leadingPersonId" align="center" label="保养负责人" sortable /> + <el-table-column property="leadingPersonName" align="center" label="保养负责人" sortable /> <el-table-column property="takecareDate" align="center" :formatter="timeDate" label="保养日期" sortable /> - <el-table-column property="leadingPersonDepartmentId" align="center" label="保养负责人单位" sortable /> + <el-table-column property="leadingPersonDepartmentName" align="center" label="保养负责人单位" sortable /> </el-table> </el-tab-pane> <el-tab-pane label="设备检查" name="second" ><el-table ref="multipleTableRef" :data="scope.row.checkDetailList" style="width: 100%"> - <el-table-column property="leadingPersonId" align="center" label="检查人" sortable /> + <el-table-column property="leadingPersonName" align="center" label="检查人" sortable /> <el-table-column property="createTime" align="center" :formatter="timeDate" label="检查日期" sortable /> <el-table-column property="name" align="center" label="检查人部门" sortable /> <el-table-column property="takecareMemo" align="center" label="检查结果" sortable /> @@ -61,21 +60,31 @@ ></el-tab-pane> <el-tab-pane label="设备检测" name="third"> <el-table ref="multipleTableRef" :data="scope.row.testDetailList" style="width: 100%"> - <el-table-column property="testPersonId" align="center" label="检测人" sortable /> + <el-table-column property="testPersonName" align="center" label="检测人" sortable /> <el-table-column property="testDate" align="center" :formatter="timeDate" label="检测日期" sortable /> - <el-table-column property="testPersonDepartmentId" align="center" label="检测人单位" sortable /> + <el-table-column property="testPersonDepartmentName" align="center" label="检测人单位" sortable /> <el-table-column property="testMemo" align="center" label="检测内容" sortable /> - <el-table-column property="testResult" align="center" label="检测结果" sortable /> + <el-table-column align="center" label="检测结果"> + <template #default="scope"> + <span v-if="scope.row.testResult == 1">成功</span> + <span v-if="scope.row.testResult == 2">失败</span> + </template> + </el-table-column> <el-table-column property="testStatus" align="center" label="检测状态" sortable /> </el-table> </el-tab-pane> <el-tab-pane label="设备维修" name="fourth"> <el-table ref="multipleTableRef" :data="scope.row.repaireDetailList" style="width: 100%"> <el-table-column property="exceptionInfo" align="center" label="设施异常项" sortable /> - <el-table-column property="repairStatus" align="center" label="维修状态" sortable /> + <el-table-column align="center" label="维修状态"> + <template #default="scope"> + <span v-if="scope.row.repairStatus == 1">维修中</span> + <span v-if="scope.row.repairStatus == 2">已修好</span> + </template> + </el-table-column> <el-table-column property="repairMemo" align="center" label="维修情况" sortable /> - <el-table-column property="repairPersonId" align="center" label="维修负责人" sortable /> - <el-table-column property="repairPersonDepartmentId" align="center" label="维修负责人单位" sortable /> + <el-table-column property="repairPersonName" align="center" label="维修负责人" sortable /> + <el-table-column property="repairPersonDepartmentName" align="center" label="维修负责人单位" sortable /> <el-table-column property="repairStartDate" align="center" :formatter="timeDate" label="维修开始日期" sortable /> <el-table-column property="repairEndDate" align="center" :formatter="timeDate" label="维修结束日期" sortable /> </el-table> @@ -121,7 +130,7 @@ import Dailog from '/@/components/equipmentDailog/Dailog.vue'; import { ElTree, TabsPaneContext, ElMessage, ElMessageBox } from 'element-plus'; import { facilityManagementApi } from '/@/api/facilityManagement'; -import {timeDate} from '/@/assets/index.ts' +import { timeDate } from '/@/assets/index.ts'; import { EditPen, View, Plus, Delete, Download, Refresh, Upload } from '@element-plus/icons-vue'; interface Tree { label: string; @@ -137,7 +146,8 @@ searchParams: { qName: '', ////名称 positionNum: '', ////位号 - infoType: 0, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 + equipmentTypeId: '', + infoType: 2, ////具体类型(页面左侧的导航栏使用) 0:仪器仪表信息 1:生产设备设施 2:安全设备设施 }, }); // 重置 @@ -185,12 +195,12 @@ // 弹窗 const openAdd = ref(); const openD = (title: String, id: number) => { - openAdd.value.openDailog(title,false,id,2); + openAdd.value.openDailog(title, false, id, 2); }; // 删除 const onDelete = (id: number) => { - let arr=[] - arr.push(id) + let arr = []; + arr.push(id); ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { confirmButtonText: '确定', cancelButtonText: '取消', @@ -228,7 +238,7 @@ for (let i = 0; i < valId.length; i++) { arr.push(valId[i].id); } - deletAll.value = arr + deletAll.value = arr; if (val.length == 1) { warning.value = false; danger.value = false; @@ -276,7 +286,7 @@ .getequipmentTypeMngTreeData() .then((res) => { if (res.data.code == 200) { - data.value= res.data.data; + data.value = res.data.data; } else { ElMessage({ showClose: true, @@ -290,7 +300,7 @@ label: 'typeName', children: 'childList', value: 'id', - } + }; watch(filterText, (val) => { treeRef.value!.filter(val); }); @@ -299,18 +309,19 @@ if (!value) return true; return data.typeName.includes(value); }; - const handleNodeClick=(data: Tree)=>{ - ruleForm.searchParams.positionNum=data.id + const handleNodeClick = (data: Tree) => { + ruleForm.searchParams.equipmentTypeId = data.id; + ruleForm.searchParams.equipmentTypeId = data.id; listApi(); - } - const data=ref([]) + }; + const data = ref([]); onMounted(() => { listApiTree(); }); const handleClicks = (tab: TabsPaneContext, event: Event) => { console.log(tab, event); }; - + const activeName = ref('first'); // const Show=ref() // const openUp=()=>{ @@ -351,7 +362,7 @@ Refresh, View, Upload, - timeDate, + timeDate, }; }, }); diff --git a/src/views/goalManagement/Goalsummary/index.vue b/src/views/goalManagement/Goalsummary/index.vue index 4d241e4..4947ed0 100644 --- a/src/views/goalManagement/Goalsummary/index.vue +++ b/src/views/goalManagement/Goalsummary/index.vue @@ -24,10 +24,10 @@ <div class="btns"> <p>汇总日期:2022-07-04 23:00:07</p> <div> - <el-button type="primary" size="default" :icon="Download">导出</el-button> + <el-button type="primary" size="default" :icon="Download" @click="exportExcel('tab1', '会员明细.xlsx')">导出</el-button> </div> </div> - <el-table :data="tableData" style="width: 100%"> + <el-table :data="tableData" style="width: 100%" id="tab1"> <el-table-column label="责任部门" align="center"> <template #default="scope">{{ scope.row.departmentId }}</template> </el-table-column> @@ -68,6 +68,9 @@ import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; import { Plus, Delete, Upload, Download, Refresh, View } from '@element-plus/icons-vue'; import { goalManagementApi } from '/@/api/goalManagement'; + +// import * as XLSX from 'xlsx'; + export default defineComponent({ components: { ElButton, ElInput }, setup() { @@ -162,6 +165,16 @@ ], }, ]; + + const exportExcel = (id:string,name:string) => { + let workbook = XLSX.utils.table_to_book(document.getElementById(id)); //需要在table上定义一个id + try { + XLSX.writeFile(workbook, name); + console.log('导出成功!'); + } catch (e) { + console.log('导出失败!'); + } + } return { ruleForm, tableData, @@ -179,6 +192,7 @@ Download, Refresh, View, + exportExcel }; }, }); @@ -210,4 +224,4 @@ display: flex; justify-content: right; } -</style> \ No newline at end of file +</style> diff --git a/src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue b/src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue index ec8fdd2..c0a5906 100644 --- a/src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue +++ b/src/views/goalManagement/IncentiveRecording/component/DailogAdd.vue @@ -5,8 +5,8 @@ <el-row> <el-col :span="24"> <el-form-item label="员工姓名" size="default"> - <el-input v-model="form.personId" placeholder="请选择"> - <template #append> <el-button :icon="Search" @click="daiInpts" /> </template + <el-input v-model="form.personName" placeholder="请选择"> + <template #append> <el-button :icon="Search" @click="daiInpts(0)" /> </template ></el-input> </el-form-item> </el-col> @@ -14,31 +14,34 @@ <el-row> <el-col :span="11"> <el-form-item label="奖惩名称" size="default"> - <el-input v-model="form.rewardPunishmentStandardId" placeholder="请选择"> + <el-input v-model="form.rewardPunishmentStandardName" placeholder="请选择"> <template #append> <el-button :icon="Search" @click="daiInpt" /> </template ></el-input> </el-form-item> </el-col> - <!-- <el-col :span="11" :offset="2"> + <el-col :span="11" :offset="2"> <el-form-item label="奖惩类型" size="default"> - <el-input disabled v-model="form.personId" /> + <el-select v-model="form.standardType" disabled size="default" style="width: 100%" placeholder="请选择"> + <el-option label="奖励" :value="1" /> + <el-option label="惩罚" :value="2" /> + </el-select> </el-form-item> - </el-col> --> + </el-col> </el-row> - <!-- <el-row> + <el-row> <el-col :span="24"> <el-form-item label="奖惩内容" size="default"> - <el-input disabled v-model="form.personId" placeholder="请填写奖惩内容" /> + <el-input disabled v-model="form.content" placeholder="请填写奖惩内容" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24"> <el-form-item label="依据" size="default"> - <el-input disabled v-model="form.personId" placeholder="请填写奖惩依据" /> + <el-input disabled v-model="form.reason" placeholder="请填写奖惩依据" /> </el-form-item> </el-col> - </el-row> --> + </el-row> <el-row> <el-col :span="24"> <el-form-item label="备注信息"> @@ -50,7 +53,7 @@ <template #footer> <span class="dialog-footer"> <el-button @click="resetForm" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> + <el-button type="primary" @click="submitForm" size="default" :disabled="disabled">确定</el-button> </span> </template> </el-dialog> @@ -70,22 +73,27 @@ const dialogVisible = ref<boolean>(false); const form = ref({ rewardPunishmentStandardId: '', //奖惩标准/外键 + rewardPunishmentStandardName: '', memo: '', ////备注信息 - personId: "", ////员工(多个用逗号隔开) + personId: '', ////员工(多个用逗号隔开) + personName: '', }); const titles = ref(); const disabled = ref(false); // 打开弹窗 - const openDailog = (title: string, value: any, id: number) => { + const openDailog = (title: string, value: any, data: any) => { dialogVisible.value = true; titles.value = `${title}奖惩标准设定`; disabled.value = title == '查看' ? true : false; if (title == '查看' || title == '修改') goalManagementApi() - .getrewardPunishmentDetail(id) + .getrewardPunishmentDetail(data.id) .then((res) => { if (res.data.code == 200) { form.value = res.data.data; + form.value.standardType = data.standardType; + form.value.content = data.content; + form.value.reason = data.reason; } else { ElMessage.error(res.data.msg); } @@ -94,6 +102,10 @@ // 提交 const submitForm = () => { dialogVisible.value = false; + delete form.value.standardType; + delete form.value.content; + delete form.value.reason; + delete form.value.rewardPunishmentStandardName goalManagementApi() .getrewardPunishmentAddOrUpdate(form.value) .then((res) => { @@ -109,8 +121,10 @@ }); form.value = { rewardPunishmentStandardId: '', //奖惩标准/外键 + rewardPunishmentStandardName: '', memo: '', ////备注信息 - personId: "", ////员工(多个用逗号隔开) + personId: '', ////员工(多个用逗号隔开) + personName: '', }; }; // 取消 @@ -118,8 +132,10 @@ dialogVisible.value = false; form.value = { rewardPunishmentStandardId: '', //奖惩标准/外键 + rewardPunishmentStandardName: '', memo: '', ////备注信息 - personId: "", ////员工(多个用逗号隔开) + personId: '', ////员工(多个用逗号隔开) + personName: '', }; }; @@ -129,16 +145,27 @@ Shows.value.openDailog(); }; const Show = ref(); - const daiInpts = () => { - Show.value.openDailog(); + const daiInpts = (type: any) => { + Show.value.openDailog(type); }; - const numberId=(val:any)=>{ - console.log(val) - form.value.rewardPunishmentStandardId=val.id - } - const UserId=(val:any)=>{ - form.value.personId=val.id - } + const numberId = (val: any) => { + console.log(val); + form.value.rewardPunishmentStandardId = val.id; + form.value.rewardPunishmentStandardName = val.qname; + form.value.standardType = val.standardType; + form.value.content = val.content; + form.value.reason = val.reason; + }; + const UserId = (val: any) => { + let arr = []; + let arrId = []; + for (let i = 0; i < val.length; i++) { + arr.push(val[i].realName); + arrId.push(val[i].uid); + } + form.value.personName = arr.toString(); + form.value.personId = arrId.toString(); + }; //全屏 const full = ref(false); const toggleFullscreen = () => { diff --git a/src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue b/src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue index 3cdcb66..aabfa03 100644 --- a/src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue +++ b/src/views/goalManagement/IncentiveRecording/component/DailogSearch.vue @@ -24,22 +24,22 @@ </el-row> </el-form> <el-button size="default" :icon="Delete" @click="clear">清除选择</el-button> - <el-table :data="tableData" style="width: 100%; margin-top: 20px" @cell-click="radio"> - <el-table-column align="center"> + <el-table :data="tableData" style="width: 100%; margin-top: 20px"> + <el-table-column align="center"> <template #default="scope"> <el-radio-group v-model="radio1"> - <el-radio :label="scope.row.id" size="large">{{ null }}</el-radio> + <el-radio :label="scope.row.id" @click="radio(scope.row)" size="large">{{ null }}</el-radio> </el-radio-group> </template> </el-table-column> <el-table-column align="center" prop="qname" label="奖惩名称" width="180" /> <el-table-column align="center" label="奖惩类型" width="180"> <template #default="scope"> - <span v-if="scope.row.standardType==1">奖励</span> - <span v-if="scope.row.standardType==2">惩罚</span> - <span></span> + <span v-if="scope.row.standardType == 1">奖励</span> + <span v-if="scope.row.standardType == 2">惩罚</span> + <span></span> </template> - </el-table-column> + </el-table-column> <el-table-column align="center" prop="content" label="奖惩内容" /> </el-table> <el-pagination @@ -54,18 +54,18 @@ /> </el-col> <el-col :span="7"> - <div v-if="dynamicTags[0]==''?false:true"> - <el-tag - v-for="tag in dynamicTags" - :key="tag" - class="mx-1" - style="margin: 5px" - closable - :disable-transitions="false" - @close="handleClose(tag)" - > - {{ tag.qname }} - </el-tag> + <div v-if="dynamicTags[0] == '' ? false : true"> + <el-tag + v-for="tag in dynamicTags" + :key="tag" + class="mx-1" + style="margin: 5px" + closable + :disable-transitions="false" + @close="handleClose(tag)" + > + {{ tag.qname }} + </el-tag> </div> </el-col> </el-row> @@ -78,12 +78,12 @@ </el-dialog> </template> <script lang="ts"> -import { defineComponent, reactive, ref,onMounted } from 'vue'; +import { defineComponent, reactive, ref, onMounted } from 'vue'; import { Delete, FullScreen } from '@element-plus/icons-vue'; import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; import { goalManagementApi } from '/@/api/goalManagement'; export default defineComponent({ - setup(props,{emit}) { + setup(props, { emit }) { // 搜索条件 const ruleForm = reactive({ pageSize: 10, @@ -117,9 +117,7 @@ ruleForm.searchParams.standardType = targetType.paneName; listApi(); }; - onMounted(() => { - - }); + onMounted(() => {}); // const onAddorUpdata = () => { // listApi(); // }; @@ -139,12 +137,12 @@ listApi(); }; // 打开弹窗 - const dialogVisible=ref(false) - const openDailog=()=>{ - dialogVisible.value=true + const dialogVisible = ref(false); + const openDailog = () => { + dialogVisible.value = true; listApi(); - } - // 右方点击添加后显示标签 + }; + // 右方点击添加后显示标签 const dynamicTags = ref(['']); const handleClose = (tag: string) => { dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1); @@ -154,15 +152,15 @@ const radio = (event: any) => { dynamicTags.value[0] = event; }; - const clear=()=>{ - dynamicTags.value=[''] - radio1.value="" - } - const submitForm=()=>{ - let obj=JSON.parse(JSON.stringify(dynamicTags.value)) - emit("backNum",obj[0]) - dialogVisible.value = false - } + const clear = () => { + dynamicTags.value = ['']; + radio1.value = ''; + }; + const submitForm = () => { + let obj = JSON.parse(JSON.stringify(dynamicTags.value)); + emit('backNum', obj[0]); + dialogVisible.value = false; + }; //全屏 const full = ref(false); const toggleFullscreen = () => { diff --git a/src/views/goalManagement/IncentiveRecording/index.vue b/src/views/goalManagement/IncentiveRecording/index.vue index b9a9fa9..e1dd080 100644 --- a/src/views/goalManagement/IncentiveRecording/index.vue +++ b/src/views/goalManagement/IncentiveRecording/index.vue @@ -4,7 +4,7 @@ <el-row> <el-col :span="4"> <el-form-item size="default"> - <el-input v-model="ruleForm.searchParams.personId" placeholder="请选择被奖惩者"> + <el-input v-model="ruleForm.searchParams.personName" placeholder="请选择被奖惩者"> <template #append> <el-button :icon="Search" @click="openSearch" /> </template> @@ -28,8 +28,8 @@ <div class="btns"> <div> <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> - <el-button size="default" :disabled="danger" type="danger" :icon="Delete" plain @click="handleSelectionChange">删除 </el-button> + <!-- <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> --> + <el-button size="default" :disabled="danger" type="danger" :icon="Delete" plain @click="onDeleteAll">删除 </el-button> </div> <div> <!-- <el-button size="default" :icon="Download"></el-button> @@ -45,13 +45,13 @@ <span v-if="scope.row.standardType == 2">惩罚</span> </template> </el-table-column> - <el-table-column property="personId" align="center" label="被奖惩者" sortable /> + <el-table-column property="personName" align="center" label="被奖惩者" sortable /> <el-table-column property="content" label="奖惩内容" align="center" sortable show-overflow-tooltip /> <el-table-column property="reason" label="奖惩依据" align="center" sortable show-overflow-tooltip /> <el-table-column label="操作" align="center" sortable show-overflow-tooltip> <template #default="scope"> - <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row.id)">查看 </el-button> - <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row.id)">修改</el-button> + <el-button link type="primary" size="default" :icon="View" @click="openD('查看', scope.row)">查看 </el-button> + <el-button link type="primary" size="default" :icon="EditPen" @click="openD('修改', scope.row)">修改</el-button> <el-button link type="primary" size="default" :icon="Delete" @click="onDelete(scope.row.id)">删除 </el-button> </template> </el-table-column> @@ -229,6 +229,7 @@ }; const userId = (val: any) => { ruleForm.searchParams.personId = val.uid; + ruleForm.searchParams.personName = val.realName; }; return { timeDate, diff --git a/src/views/goalManagement/Incentivestandard/component/DailogAdd.vue b/src/views/goalManagement/Incentivestandard/component/DailogAdd.vue index 3d5abeb..e910cb5 100644 --- a/src/views/goalManagement/Incentivestandard/component/DailogAdd.vue +++ b/src/views/goalManagement/Incentivestandard/component/DailogAdd.vue @@ -6,8 +6,8 @@ <el-col :span="11"> <el-form-item label="奖惩类型" size="default"> <el-select v-model="form.standardType" style="width: 100%" placeholder="请选择"> - <el-option label="奖励" value="1" /> - <el-option label="惩罚" value="2" /> + <el-option label="奖励" :value="1" /> + <el-option label="惩罚" :value="2" /> </el-select> </el-form-item> </el-col> @@ -40,7 +40,7 @@ <template #footer> <span class="dialog-footer"> <el-button @click="resetForm" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm" size="default">确定</el-button> + <el-button type="primary" @click="submitForm" size="default" :disabled="disabled">确定</el-button> </span> </template> </el-dialog> diff --git a/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue b/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue index af27844..cc51dcd 100644 --- a/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue +++ b/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue @@ -115,7 +115,11 @@ <el-table :data="tableData" style="width: 100%"> <el-table-column align="center" prop="date" label="考核项目" /> <el-table-column align="center" prop="name" label="考核内容" /> - <el-table-column align="center" prop="address" label="考核分数" /> + <el-table-column align="center" label="考核分数"> + <template #default="scope"> + <el-input v-model="scope.row.address" type="textarea"> </el-input> + </template> + </el-table-column> <!-- <el-table-column align="center" prop="address" label="制定日期" /> <el-table-column align="center" prop="address" label="上报人" /> <el-table-column align="center" label="操作"> @@ -279,7 +283,7 @@ if (type == 1) { form.value.examinePersonId = val.uid; form.value.examinePersonName = val.realName; - } else if (type == 2) { + } else if (type == 0) { let uid=[] let realName=[] for(let i=0;i<val.length;i++){ diff --git a/src/views/goalManagement/performanceAppraisal/component/DailogKhS.vue b/src/views/goalManagement/performanceAppraisal/component/DailogKhS.vue index 98b6f83..f186ab3 100644 --- a/src/views/goalManagement/performanceAppraisal/component/DailogKhS.vue +++ b/src/views/goalManagement/performanceAppraisal/component/DailogKhS.vue @@ -40,7 +40,7 @@ </el-form> <template #footer> <span class="dialog-footer"> - <el-button type="primary" @click="dialogVisible = false" size="default">继续添加</el-button> +<!-- <el-button type="primary" @click="dialogVisible = false" size="default">继续添加</el-button>--> <el-button @click="resetForm" size="default">关闭</el-button> <el-button type="primary" @click="submitForm" size="default">确定</el-button> </span> diff --git a/src/views/goalManagement/performanceAppraisal/index.vue b/src/views/goalManagement/performanceAppraisal/index.vue index a1c9637..0f3e9de 100644 --- a/src/views/goalManagement/performanceAppraisal/index.vue +++ b/src/views/goalManagement/performanceAppraisal/index.vue @@ -21,7 +21,7 @@ <div class="btns"> <div> <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> + <!-- <el-button size="default" :disabled="warning" type="warning" plain :icon="EditPen">修改</el-button> --> <el-button size="default" :disabled="danger" type="danger" plain :icon="Delete" @click="onDeleteAll">删除</el-button> </div> </div> @@ -40,7 +40,7 @@ </el-table-column> <el-table-column property="examineDate" align="center" :formatter="timeDate" label="考核日期" sortable /> <el-table-column property="examineDepartmentName" align="center" label="考核部门" sortable /> - <el-table-column property="examinePersonId" label="考核人" align="center" sortable show-overflow-tooltip /> + <el-table-column property="examinePersonName" label="考核人" align="center" sortable show-overflow-tooltip /> <el-table-column property="beExaminedDepartmentName" label="被考核部门" align="center" sortable show-overflow-tooltip /> <el-table-column property="examineTotalNumber" label="总分" align="center" sortable show-overflow-tooltip /> <el-table-column property="numberDetailJson.number" label="考核结果" align="center" sortable show-overflow-tooltip /> @@ -84,7 +84,7 @@ <div class="btns"> <div> <el-button size="default" type="primary" :icon="Plus" @click="openDs('新建')">新建</el-button> - <el-button size="default" :disabled="warnings" type="warning" plain :icon="EditPen">修改</el-button> + <!-- <el-button size="default" :disabled="warnings" type="warning" plain :icon="EditPen">修改</el-button> --> <el-button size="default" :disabled="dangers" type="danger" plain :icon="Delete" @click="onDeleteAlls">删除</el-button> </div> </div> @@ -105,8 +105,8 @@ </el-table-column> <el-table-column label="标准标题" property="title" align="center" sortable /> <el-table-column property="applyRange" align="center" label="适用范围" sortable /> - <el-table-column property="setPersonId" label="设定人" align="center" sortable show-overflow-tooltip /> - <el-table-column property="setPersonDepartmentId" label="设定人部门" align="center" sortable show-overflow-tooltip /> + <el-table-column property="setPersonName" label="设定人" align="center" sortable show-overflow-tooltip /> + <el-table-column property="setPersonDepartmentName" label="设定人部门" align="center" sortable show-overflow-tooltip /> <el-table-column property="setTimem" label="设定日期" align="center" :formatter="timeDate" sortable show-overflow-tooltip /> <el-table-column property="templateCode" label="模板分类编码" align="center" sortable show-overflow-tooltip /> <el-table-column property="acceptanceNumber" label="合格分数" align="center" sortable show-overflow-tooltip /> diff --git a/src/views/goalManagement/safetyAssessment/component/Dailog.vue b/src/views/goalManagement/safetyAssessment/component/Dailog.vue index 7639890..3032820 100644 --- a/src/views/goalManagement/safetyAssessment/component/Dailog.vue +++ b/src/views/goalManagement/safetyAssessment/component/Dailog.vue @@ -1,5 +1,5 @@ <template> - <el-dialog v-model="dialogVisible" :fullscreen="full" title="目标分解" width="70%" draggable> + <el-dialog v-model="dialogVisible" :fullscreen="full" title="目标考核" width="70%" draggable> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-form :model="form" label-width="120px"> <el-row> @@ -30,7 +30,9 @@ </el-row> </el-form> <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> - <el-tab-pane label="目标指标分解" name="1"> </el-tab-pane> + <el-tab-pane label="目标指标分解" name="1"> + <el-button type="primary" size="default" @click="daiAdd('新增')" :disabled="disabled">新增</el-button> + </el-tab-pane> </el-tabs> <el-table :data="tableData" style="width: 100%"> <el-table-column align="center" type="index" label="序号" width="70" /> @@ -44,8 +46,8 @@ <el-table-column align="center" prop="address" label="考核人" /> <el-table-column align="center" prop="address" label="考核时间" /> <el-table-column align="center" label="操作"> - <template #default> - <el-button link type="primary">查看</el-button> + <template #default="scope"> + <el-button link type="primary" @click="daiAdd('修改', scope.row)">查看</el-button> </template> </el-table-column> </el-table> @@ -57,15 +59,18 @@ </template> </el-dialog> <DailogSearch ref="Shows" @backNum="onNumber"></DailogSearch> + <DailogAdd ref="Show" @onAdd="add"></DailogAdd> </template> <script lang="ts"> import { defineComponent, ref, reactive } from 'vue'; import { Search, FullScreen } from '@element-plus/icons-vue'; import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus'; import DailogSearch from '../../../../components/DailogSearch/DailogSearch.vue'; +import DailogAdd from './DailogAdd.vue'; import { goalManagementApi } from '/@/api/goalManagement'; +import {deepClone} from "/@/utils/other"; export default defineComponent({ - components: { DailogSearch }, + components: { DailogSearch ,DailogAdd}, setup() { const dialogVisible = ref<boolean>(false); const form = ref({}); @@ -101,6 +106,31 @@ const daiInpt = () => { Shows.value.openDailog(targetType.value); }; + + // 新增弹窗 + const index=ref<any>() + const Show = ref(); + const daiAdd = (title: string, data: any) => { + // index.value = formUp.targetDivideDetailList.indexOf(data); + Show.value.openDailog(title, data); + }; + const formUp = reactive({ + targetId: '', //关联的目标指标/外键 + delTargetDivideDetails: '', //要删除的目标指标分解ID,多个用逗号隔开 + // targetDivideDetailList: [], //目标指标分解列表 + }); + + const add = (val: any) => { + const item = deepClone(val) + if(index.value==-1){ + formUp.targetDivideDetailList.push(item); + }else{ + formUp.targetDivideDetailList[index.value] = item; + } + + // let obj=JSON.parse(JSON.stringify(form.value)) + }; + //全屏 const full = ref(false); const toggleFullscreen = () => { @@ -126,6 +156,11 @@ full, toggleFullscreen, FullScreen, + daiAdd, + index, + Show, + formUp, + add, }; }, }); diff --git a/src/views/goalManagement/safetyAssessment/component/DailogAdd.vue b/src/views/goalManagement/safetyAssessment/component/DailogAdd.vue new file mode 100644 index 0000000..0eddb52 --- /dev/null +++ b/src/views/goalManagement/safetyAssessment/component/DailogAdd.vue @@ -0,0 +1,249 @@ +<template> + <el-dialog v-model="dialogVisible" :fullscreen="full" :title="titles" width="50%" draggable @close="resetForm(ruleFormRef)"> + <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> + <el-form :model="form" :disabled="disabled" label-width="120px" ref="ruleFormRef" :rules="rules"> + <el-row> + <el-col :span="11"> + <el-form-item label="责任部门" prop="dutyDepartmentId" size="default"> + <el-tree-select v-model="form.dutyDepartmentId" check-strictly="true" :data="data" class="w100" :props="propse" placeholder="请选择" /> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2"> + <el-form-item label="考核指标" prop="value" size="default"> + <el-input v-model.number="form.value" /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="11"> + <el-form-item label="制定人部门" prop="makerDepartmentId" size="default"> + <el-tree-select v-model="form.makerDepartmentId" :data="data" check-strictly="true" class="w100" :props="propse" placeholder="请选择" /> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2"> + <el-form-item label="制定日期" prop="makeDate" size="default"> + <el-date-picker v-model="form.makeDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="11"> + <el-form-item label="上报值" prop="commitPersonName" size="default"> + <el-input v-model="form.commitPersonName"> +<!-- <template #append> <el-button :icon="Search" @click="openUser" /> </template>--> + </el-input> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2"> + <el-form-item label="上报时间" prop="makeDate" size="default"> + <el-date-picker v-model="form.makeDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="11"> + <el-form-item label="考核结果" prop="commitPersonName" size="default"> + <el-input v-model="form.commitPersonName"> + <!-- <template #append> <el-button :icon="Search" @click="openUser" /> </template>--> + </el-input> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2"> + <el-form-item label="考核人" prop="commitPersonName" size="default"> + <el-input v-model="form.commitPersonName"> + <template #append> <el-button :icon="Search" @click="openUser" /> </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="11"> + <el-form-item label="考核时间" prop="commitPersonName" size="default"> + <el-date-picker v-model="form.makeDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2"></el-col> + </el-row> + </el-form> + <template #footer> + <span class="dialog-footer"> + + <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> + <el-button type="primary" @click="submitForm(ruleFormRef)" size="default">确定</el-button> + </span> + </template> + </el-dialog> + <DailogSearchUser ref="Show" @SearchUser="onUser"></DailogSearchUser> +</template> +<script lang="ts"> +import { defineComponent, ref, reactive, onMounted } from 'vue'; +import { Search, FullScreen } from '@element-plus/icons-vue'; +import type { FormInstance, FormRules } from 'element-plus'; +import DailogSearchUser from '../../../../components/DailogSearchUser/index.vue'; +import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus'; +import { goalManagementApi } from '/@/api/goalManagement'; +export default defineComponent({ + components: { DailogSearchUser }, + setup(props, { emit }) { + const ruleFormRef = ref<FormInstance>() + const form = ref({ + dutyDepartmentId: '', ////责任部门/外键 + makerDepartmentId: '', ////制定人部门/外键 + commitPersonId: '', ////上报人/外键 + commitPersonName: '', + value: '', ////考核指标值 + makeDate: '', ////制定日期 + }); + //部门 + const department = () => { + goalManagementApi() + .getTreedepartment() + .then((res) => { + if (res.data.code == 200) { + data.value = res.data.data; + } else { + ElMessage.error(res.data.msg); + } + }); + }; + const propse = { + label: 'depName', + children: 'children', + value: 'depId', + }; + onMounted(() => { + department(); + }); + const disabled = ref(false); + // 开启弹窗 + const titles = ref(); + const dialogVisible = ref(false); + const openDailog = (title: string, data: any) => { + titles.value = `${title}目标考核`; + if (title == '查看') { + disabled.value = true; + form.value = data; + } else if (title == '修改') { + disabled.value = false; + form.value = data; + } else { + disabled.value = false; + } + dialogVisible.value = true; + }; + // 开启用户弹窗 + const Show = ref(); + const openUser = () => { + Show.value.openDailog(); + }; + const rules = reactive<FormRules>({ + dutyDepartmentId: [ + { + required: true, + message: '责任部门不能为空', + trigger: 'blur', + }, + ], + makerDepartmentId: [ + { + required: true, + message: '制定人部门不能为空', + trigger: 'blur', + }, + ], + commitPersonId: [ + { + required: true, + message: '上报人不能为空', + trigger: 'blur', + }, + ], + value: [ + { + required: true, + message: '考核指标值不能为空', + trigger: 'blur', + }, + { + type: 'number', + message: '考核指标值只能为数字类型', + trigger: 'blur', + }, + ], + makeDate: [ + { + required: true, + message: '制定日期不能为空', + trigger: 'blur', + }, + ], + commitPersonName: [], + }); + const submitForm = async (formEl: FormInstance | undefined) => { + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + emit('onAdd', form.value); + dialogVisible.value = false; + // handleClose(formEl) + } else { + console.log('error submit!', fields); + } + }); + }; + + const resetForm = (formEl: FormInstance | undefined) => { + // console.log(formEl); + if (!formEl) return + formEl.resetFields(); + dialogVisible.value = false; + form.value={} + }; + // const handleClose = (formEl: any) => { + // formEl.resetFields(); + // }; + //全屏 + const full = ref(false); + const toggleFullscreen = () => { + if (full.value == false) { + full.value = true; + } else { + full.value = false; + } + }; + const data = ref(); + const onUser = (e: any) => { + console.log(e) + form.value.commitPersonId = e.uid; + form.value.commitPersonName = e.realName; + }; + return { + disabled, + titles, + // handleClose, + form, + propse, + department, + dialogVisible, + openDailog, + Show, + openUser, + Search, + full, + toggleFullscreen, + FullScreen, + data, + onUser, + ruleFormRef, + rules, + submitForm, + resetForm, + }; + }, +}); +</script> +<style scoped> +.el-row { + padding: 0 0 20px 0; +} +</style> diff --git a/src/views/goalManagement/targetDecompositionMonth/index.vue b/src/views/goalManagement/targetDecompositionMonth/index.vue index 09e743f..ea96184 100644 --- a/src/views/goalManagement/targetDecompositionMonth/index.vue +++ b/src/views/goalManagement/targetDecompositionMonth/index.vue @@ -24,7 +24,7 @@ <div class="btns"> <div> <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain>修改</el-button> + <!-- <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain>修改</el-button> --> <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button> </div> </div> diff --git a/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue b/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue index 8960533..1157f13 100644 --- a/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue +++ b/src/views/goalManagement/targetDecompositionYear/component/Dailog.vue @@ -37,10 +37,10 @@ </el-tab-pane> </el-tabs> <el-table :data="formUp.targetDivideDetailList" style="width: 100%"> - <el-table-column align="center" property="dutyDepartmentId" label="责任部门" width="180" /> + <el-table-column align="center" property="dutyDepartmentName" label="责任部门" width="180" /> <el-table-column align="center" property="value" label="考核指标" width="180" /> - <el-table-column align="center" property="makerDepartmentId" label="制定人部门" /> - <el-table-column align="center" property="makeDate" label="制定日期" :formatter="timeDate"/> + <el-table-column align="center" property="makerDepartmentName" label="制定人部门" /> + <el-table-column align="center" property="makeDate" label="制定日期" /> <el-table-column align="center" property="commitPersonName" label="上报人" /> <el-table-column align="center" property="操作"> <template #default="scope"> @@ -62,23 +62,24 @@ </template> <script lang="ts"> import { defineComponent, ref, reactive } from 'vue'; -import {timeDate} from '/@/assets/index.ts' +import { timeDate } from '/@/assets/index.ts'; import { Search, FullScreen } from '@element-plus/icons-vue'; import DailogAdd from './DailogAdd.vue'; import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus'; import DailogSearch from '../../../../components/DailogSearch/DailogSearch.vue'; import { goalManagementApi } from '/@/api/goalManagement'; import { emit } from 'process'; +import { deepClone } from '/@/utils/other'; export default defineComponent({ - components: { DailogAdd, DailogSearch}, - setup(props,{emit}) { + components: { DailogAdd, DailogSearch }, + setup(props, { emit }) { const dialogVisible = ref<boolean>(false); const form = ref({ qName: '', indexNum: '', year: '', value: '', - targetDivideDetailList:[] + targetDivideDetailList: [], }); const targetType = ref(); const disabled = ref(false); @@ -94,7 +95,7 @@ .then((res) => { if (res.data.code == 200) { form.value = res.data.data; - formUp.targetDivideDetailList=form.value.targetDivideDetailList + formUp.targetDivideDetailList = form.value.targetDivideDetailList; } else { ElMessage.error(res.data.msg); } @@ -109,7 +110,7 @@ // 表格 const tableData = ref([]); // 新增弹窗 - const index=ref<any>() + const index = ref<any>(); const Show = ref(); const daiAdd = (title: string, data: any) => { index.value = formUp.targetDivideDetailList.indexOf(data); @@ -120,19 +121,27 @@ delTargetDivideDetails: '', //要删除的目标指标分解ID,多个用逗号隔开 targetDivideDetailList: [], //目标指标分解列表 }); + const add = (val: any) => { - if(index.value==-1){ - formUp.targetDivideDetailList.push(val); - }else{ - formUp.targetDivideDetailList[index.value] = val; + const item = deepClone(val); + console.log(item) + if (index.value == -1) { + formUp.targetDivideDetailList.push(item); + } else { + formUp.targetDivideDetailList[index.value] = item; } - + // let obj=JSON.parse(JSON.stringify(form.value)) }; // 新增 const submitForm = () => { - formUp.delTargetDivideDetails=arr.value.toString() + formUp.delTargetDivideDetails = arr.value.toString(); formUp.targetId = form.value.id; + dialogVisible.value = false; + for(let i=0;i<formUp.targetDivideDetailList.length;i++){ + delete formUp.targetDivideDetailList[i].dutyDepartmentName + delete formUp.targetDivideDetailList[i].makerDepartmentName + } goalManagementApi() .gettargetDivideDetail(formUp) .then((res) => { @@ -141,30 +150,29 @@ message: res.data.msg, type: 'success', }); - dialogVisible.value = false; - emit("addList") + emit('addList'); } else { ElMessage.error(res.data.msg); } }); - form.value = { + form.value = { qName: '', indexNum: '', year: '', value: '', - targetDivideDetailList:[] + targetDivideDetailList: [], }; tableData.value = []; formUp.targetId = ''; formUp.delTargetDivideDetails = ''; formUp.targetDivideDetailList = []; }; - const arr=ref([]) + const arr = ref([]); // 删除 const Delete = (data: any) => { formUp.targetDivideDetailList.splice(form.value.targetDivideDetailList.indexOf(data), 1); formUp.targetId = data.targetId; - arr.value.push(data.id) + arr.value.push(data.id); }; // 安全目标指标弹窗 const Shows = ref(); @@ -179,7 +187,7 @@ indexNum: '', year: '', value: '', - targetDivideDetailList:[] + targetDivideDetailList: [], }; tableData.value = []; formUp.targetId = ''; diff --git a/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue b/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue index 9786b4e..a06417d 100644 --- a/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue +++ b/src/views/goalManagement/targetDecompositionYear/component/DailogAdd.vue @@ -1,11 +1,11 @@ <template> - <el-dialog v-model="dialogVisible" :fullscreen="full" :title="titles" width="50%" draggable> + <el-dialog v-model="dialogVisible" :fullscreen="full" :title="titles" width="50%" draggable @close="resetForm(ruleFormRef)"> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> <el-form :model="form" :disabled="disabled" label-width="120px" ref="ruleFormRef" :rules="rules"> <el-row> <el-col :span="11"> <el-form-item label="责任部门" prop="dutyDepartmentId" size="default"> - <el-tree-select v-model="form.dutyDepartmentId" check-strictly="true" :data="data" class="w100" :props="propse" placeholder="请选择" /> + <el-tree-select v-model="form.dutyDepartmentId" check-strictly="true" @current-change="dutyName" :data="data" class="w100" :props="propse" placeholder="请选择" /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> @@ -17,12 +17,12 @@ <el-row> <el-col :span="11"> <el-form-item label="制定人部门" prop="makerDepartmentId" size="default"> - <el-tree-select v-model="form.makerDepartmentId" :data="data" check-strictly="true" class="w100" :props="propse" placeholder="请选择" /> + <el-tree-select v-model="form.makerDepartmentId" :data="data" @current-change="makerName" check-strictly="true" class="w100" :props="propse" placeholder="请选择" /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> <el-form-item label="制定日期" prop="makeDate" size="default"> - <el-date-picker v-model="form.makeDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> + <el-date-picker v-model="form.makeDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> </el-form-item> </el-col> </el-row> @@ -41,7 +41,7 @@ <span class="dialog-footer"> <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button type="primary" @click="submitForm(ruleFormRef)" size="default">确定</el-button> + <el-button type="primary" @click="submitForm(ruleFormRef)" :disabled="disabled" size="default">确定</el-button> </span> </template> </el-dialog> @@ -113,14 +113,14 @@ { required: true, message: '责任部门不能为空', - trigger: 'change', + trigger: 'blur', }, ], makerDepartmentId: [ { required: true, message: '制定人部门不能为空', - trigger: 'change', + trigger: 'blur', }, ], commitPersonId: [ @@ -167,8 +167,9 @@ const resetForm = (formEl: FormInstance | undefined) => { // console.log(formEl); if (!formEl) return - formEl.resetFields(); - // dialogVisible.value = false; + formEl.clearValidate(); + dialogVisible.value = false; + form.value={} }; // const handleClose = (formEl: any) => { // formEl.resetFields(); @@ -188,8 +189,16 @@ form.value.commitPersonId = e.uid; form.value.commitPersonName = e.realName; }; + const makerName=(data:any)=>{ + form.value.makerDepartmentName=data.depName + } + const dutyName=(data:any)=>{ + form.value.dutyDepartmentName=data.depName + } return { disabled, + makerName, + dutyName, titles, // handleClose, form, diff --git a/src/views/goalManagement/targetDecompositionYear/index.vue b/src/views/goalManagement/targetDecompositionYear/index.vue index b4d29b8..8782bc2 100644 --- a/src/views/goalManagement/targetDecompositionYear/index.vue +++ b/src/views/goalManagement/targetDecompositionYear/index.vue @@ -24,7 +24,7 @@ <div class="btns"> <div> <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> - <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain>修改</el-button> + <!-- <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain>修改</el-button> --> <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button> </div> </div> diff --git a/src/views/goalManagement/targetSettings/component/dailogAdd.vue b/src/views/goalManagement/targetSettings/component/dailogAdd.vue index f0fdef8..721fe7e 100644 --- a/src/views/goalManagement/targetSettings/component/dailogAdd.vue +++ b/src/views/goalManagement/targetSettings/component/dailogAdd.vue @@ -38,7 +38,7 @@ </el-col> <el-col :span="11" :offset="2"> <el-form-item label="完成期限" size="default" prop="completeDate"> - <el-date-picker v-model="form.completeDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> + <el-date-picker v-model="form.completeDate" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="请选择" style="width: 100%" /> </el-form-item> </el-col> </el-row> diff --git a/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue b/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue index 1d2e3d8..6316678 100644 --- a/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue +++ b/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue @@ -5,12 +5,12 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="RFID名称" prop="rfidName"> - <el-input class="input-length" v-model.trim="RFIDForm.rfidName" placeholder="请输入RFID名称" clearable></el-input> + <el-input class="input-add" v-model.trim="RFIDForm.rfidName" placeholder="请输入RFID名称" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="RFID编码" prop="rfid"> - <el-input class="input-length" v-model.trim="RFIDForm.rfid" placeholder="请输入RFID编码" clearable></el-input> + <el-input class="input-add" v-model.trim="RFIDForm.rfid" placeholder="请输入RFID编码" clearable></el-input> </el-form-item> </el-col> </el-row> @@ -65,13 +65,13 @@ RFIDFormRef.value.clearValidate(); }); if (type === '新增') { - state.title = '新增巡检指标'; + state.title = '新增RFID'; state.RFIDForm = { rfid: '', rfidName: '' }; } else { - state.title = '修改巡检指标'; + state.title = '修改RFID'; state.RFIDForm = JSON.parse(JSON.stringify(value)); } }; @@ -132,8 +132,4 @@ }; </script> -<style scoped> -.input-length { - width: 85%; -} -</style> +<style scoped></style> diff --git a/src/views/intellectInspect/inspectBasic/discriminate/index.vue b/src/views/intellectInspect/inspectBasic/discriminate/index.vue index 1ddaf5b..79a7053 100644 --- a/src/views/intellectInspect/inspectBasic/discriminate/index.vue +++ b/src/views/intellectInspect/inspectBasic/discriminate/index.vue @@ -20,7 +20,7 @@ <el-icon> <ele-FolderAdd /> </el-icon> - 新增巡检指标 + 新增RFID </el-button> </div> <el-table :data="RFIDData.data" style="width: 100%"> @@ -39,19 +39,7 @@ </el-table-column> </el-table> <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="RFIDData.params.pageIndex" - background - v-model:page-size="RFIDData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="RFIDData.total" - class="page-position" - > - </el-pagination> + <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="RFIDData.params.pageIndex" background v-model:page-size="RFIDData.params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="RFIDData.total" class="page-position"> </el-pagination> <br /> <br /> </el-card> @@ -187,4 +175,15 @@ }); </script> -<style scoped></style> +<style scoped> +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} +</style> diff --git a/src/views/intellectInspect/inspectBasic/facility/index.vue b/src/views/intellectInspect/inspectBasic/facility/index.vue index d4502f3..76c6efc 100644 --- a/src/views/intellectInspect/inspectBasic/facility/index.vue +++ b/src/views/intellectInspect/inspectBasic/facility/index.vue @@ -22,7 +22,7 @@ <el-icon> <ele-FolderAdd /> </el-icon> - 新增巡检指标 + 新增设备区域 </el-button> </div> <el-table :data="facilityAreaData.data" style="width: 100%"> @@ -41,19 +41,7 @@ </el-table-column> </el-table> <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="facilityAreaData.params.pageIndex" - background - v-model:page-size="facilityAreaData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="facilityAreaData.total" - class="page-position" - > - </el-pagination> + <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="facilityAreaData.params.pageIndex" background v-model:page-size="facilityAreaData.params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="facilityAreaData.total" class="page-position"> </el-pagination> <br /> <br /> </el-card> diff --git a/src/views/intellectInspect/inspectBasic/inspectPoint/index.vue b/src/views/intellectInspect/inspectBasic/inspectPoint/index.vue index 635b1be..62064e6 100644 --- a/src/views/intellectInspect/inspectBasic/inspectPoint/index.vue +++ b/src/views/intellectInspect/inspectBasic/inspectPoint/index.vue @@ -22,7 +22,7 @@ <el-icon> <ele-FolderAdd /> </el-icon> - 新增巡检指标 + 新增巡检点 </el-button> </div> <el-table :data="inspectPointData.data" style="width: 100%"> @@ -42,19 +42,7 @@ </el-table-column> </el-table> <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="inspectPointData.params.pageIndex" - background - v-model:page-size="inspectPointData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="inspectPointData.total" - class="page-position" - > - </el-pagination> + <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="inspectPointData.params.pageIndex" background v-model:page-size="inspectPointData.params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="inspectPointData.total" class="page-position"> </el-pagination> <br /> <br /> </el-card> diff --git a/src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue b/src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue index b7a96b1..a15475d 100644 --- a/src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue +++ b/src/views/intellectInspect/inspectBasic/inspectTarget/components/inspectTargetDialog.vue @@ -5,19 +5,19 @@ <el-row :gutter="35"> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="指标名称" prop="quota"> - <el-input class="input-length" v-model.trim="inspectTargetForm.quota" placeholder="请输入指标名称" clearable></el-input> + <el-input class="input-add" v-model.trim="inspectTargetForm.quota" placeholder="请输入指标名称" clearable></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="指标类型" prop="quotaTypeId"> - <el-select class="input-length" v-model="inspectTargetForm.quotaTypeId" @change="changeQuotaUnit" placeholder="请选择指标类型" clearable filterable> + <el-select class="input-add" v-model="inspectTargetForm.quotaTypeId" @change="changeQuotaUnit" placeholder="请选择指标类型" clearable filterable> <el-option v-for="item in quotaTypeList" :key="item.id" :label="item.type" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> <el-form-item label="指标单位" prop="quotaUnit"> - <el-input class="input-length" v-model.trim="inspectTargetForm.quotaUnit" type="textarea" placeholder="请输入指标单位" maxlength="150"></el-input> + <el-input class="input-add" v-model.trim="inspectTargetForm.quotaUnit" type="textarea" placeholder="请输入指标单位" maxlength="150"></el-input> </el-form-item> </el-col> </el-row> @@ -33,8 +33,6 @@ </template> <script lang="ts"> -import { inspectPointApi } from '/@/api/intellectInspectSystem/inspectPointManage'; - interface stateType { isShowInspectTargetDialog: Boolean; inspectTargetForm: { @@ -163,8 +161,4 @@ }; </script> -<style scoped> -.input-length { - width: 85%; -} -</style> +<style scoped></style> diff --git a/src/views/intellectInspect/inspectBasic/inspectTarget/index.vue b/src/views/intellectInspect/inspectBasic/inspectTarget/index.vue index cae2d06..4308c50 100644 --- a/src/views/intellectInspect/inspectBasic/inspectTarget/index.vue +++ b/src/views/intellectInspect/inspectBasic/inspectTarget/index.vue @@ -36,19 +36,7 @@ </el-table-column> </el-table> <br /> - <el-pagination - @size-change="onHandleSizeChange" - @current-change="onHandleCurrentChange" - :pager-count="5" - :page-sizes="[10, 20, 30]" - v-model:current-page="inspectTargetData.params.pageIndex" - background - v-model:page-size="inspectTargetData.params.pageSize" - layout="total, sizes, prev, pager, next, jumper" - :total="inspectTargetData.total" - class="page-position" - > - </el-pagination> + <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" :pager-count="5" :page-sizes="[10, 20, 30]" v-model:current-page="inspectTargetData.params.pageIndex" background v-model:page-size="inspectTargetData.params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="inspectTargetData.total" class="page-position"> </el-pagination> <br /> <br /> </el-card> diff --git a/src/views/intellectInspect/inspectRecordManage/inspectRecord/components/inspectRecordDialog.vue b/src/views/intellectInspect/inspectRecordManage/inspectRecord/components/inspectRecordDialog.vue index f07d72e..e61d78d 100644 --- a/src/views/intellectInspect/inspectRecordManage/inspectRecord/components/inspectRecordDialog.vue +++ b/src/views/intellectInspect/inspectRecordManage/inspectRecord/components/inspectRecordDialog.vue @@ -5,31 +5,31 @@ <el-row> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="任务名称" prop="unitName"> - <el-input v-model="inspectTaskForm.taskName" class="input-add" placeholder="请填写任务名称"> </el-input> + <el-input v-model="inspectTaskForm.taskName" :disabled="!inspectPointConfirm" class="input-add" placeholder="请填写任务名称"> </el-input> </el-form-item> </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="任务类型" prop="taskType"> - <el-select v-model="inspectTaskForm.taskType" class="input-add" placeholder="请选择任务类型"> + <el-select v-model="inspectTaskForm.taskType" :disabled="!inspectPointConfirm" class="input-add" placeholder="请选择任务类型"> <el-option v-for="item in workTypeList" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="巡检部门" prop="execDepId"> - <el-cascader @change="giveClassGroup" placeholder="请选择巡检部门" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" clearable filterable class="input-add" v-model="inspectTaskForm.execDepId"> </el-cascader> + <el-cascader @change="giveClassGroup" :disabled="!inspectPointConfirm" placeholder="请选择巡检部门" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" clearable filterable class="input-add" v-model="inspectTaskForm.execDepId"> </el-cascader> </el-form-item> </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="巡检班组" prop="execClassgroupId"> - <el-select v-model="inspectTaskForm.execClassgroupId" placeholder="请选择巡检班组" class="input-add"> + <el-select v-model="inspectTaskForm.execClassgroupId" :disabled="!inspectPointConfirm" placeholder="请选择巡检班组" class="input-add"> <el-option v-for="item in classGroup" :key="item.id" :value="item.id" :label="item.groupName"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="任务开始时间" prop="startTime"> - <el-date-picker v-model="inspectTaskForm.startTime" placeholder="请选择任务开始时间" type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" /> + <el-date-picker v-model="inspectTaskForm.startTime" :disabled="!inspectPointConfirm" placeholder="请选择任务开始时间" type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" /> </el-form-item> </el-col> </el-row> @@ -243,7 +243,6 @@ .getInspectRecordById({ id: value.id, uuid: value.uuid }) .then((res) => { if (res.data.code === '200') { - debugger; data.inspectTaskForm.execDepId = res.data.data.execDepId; giveClassGroup(); data.inspectTaskForm = JSON.parse(JSON.stringify(res.data.data)); @@ -334,7 +333,6 @@ }; const giveClassGroup = () => { - debugger; data.inspectTaskForm.execClassgroupId = null; data.classGroup = data.classGroupList.filter((item) => item.depId === data.inspectTaskForm.execDepId); }; diff --git a/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue b/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue index 10bf5c8..008e90c 100644 --- a/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue +++ b/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue @@ -4,7 +4,7 @@ <el-row class="homeCard"> <div class="basic-line"> <span>任务类型:</span> - <el-select v-model="tableData.params.workType" clearable filterable class="input-box" placeholder="任务类型"> + <el-select v-model="tableData.params.taskType" clearable filterable class="input-box" placeholder="任务类型"> <el-option v-for="item in workTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </div> @@ -12,6 +12,12 @@ <span>执行班组:</span> <el-select v-model="tableData.params.execClassgroupId" clearable filterable class="input-box" placeholder="执行班组"> <el-option v-for="item in classGroupList" :key="item.id" :label="item.groupName" :value="item.id"></el-option> + </el-select> + </div> + <div class="basic-line"> + <span>任务状态:</span> + <el-select v-model="tableData.params.taskStatus" clearable filterable class="input-box" placeholder="执行班组"> + <el-option v-for="item in taskStatusList" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </div> <div style="padding-bottom: 10px"> @@ -50,29 +56,18 @@ </span> </template> </el-table-column> - <!-- <el-table-column prop="validTime" label="有效时间" show-overflow-tooltip>--> - <!-- <template #default="scope">--> - <!-- <span>--> - <!-- {{ scope.row.validTime }}--> - <!-- </span>--> - <!-- <span>--> - <!-- {{ parseNumber(scope.row.validTimeUnit, '检查频次') }}--> - <!-- </span>--> - <!-- </template>--> - <!-- </el-table-column>--> - <!-- <el-table-column prop="validTime" label="提醒时间" show-overflow-tooltip>--> - <!-- <template #default="scope">--> - <!-- <span>--> - <!-- {{ scope.row.noticeTime }}--> - <!-- </span>--> - <!-- <span>--> - <!-- {{ parseNumber(scope.row.noticeTimeUnit, '检查频次') }}--> - <!-- </span>--> - <!-- </template>--> - <!-- </el-table-column>--> <el-table-column property="startTime" label="任务开始时间" /> <el-table-column prop="execUserName" label="执行人" show-overflow-tooltip></el-table-column> - <el-table-column property="resultStatus" label="状态"> + <el-table-column property="taskStatus" label="任务状态"> + <template #default="scope"> + <el-tag :type="scope.row.taskStatus === 1 ? 'info' : scope.row.taskStatus === 2 ? 'primary' : scope.row.taskStatus === 3 ? 'success' : 'danger'"> + <span> + {{ parseNumber(scope.row.taskStatus, '任务状态') }} + </span> + </el-tag> + </template> + </el-table-column> + <el-table-column property="resultStatus" label="巡检结果"> <template #default="scope"> <span> {{ parseNumber(scope.row.resultStatus, '巡检状态') }} @@ -133,6 +128,7 @@ }; }; workTypeList: Array<type>; + taskStatusList: Array<type>; quotaList: []; departmentList: []; classGroupList: Array<classGroup>; @@ -163,7 +159,7 @@ pageSize: 10, taskName: null, taskType: null, - taskStatus: null, + taskStatus: 2, execUserId: null, execClassgroupId: null, execDepId: null, @@ -180,6 +176,12 @@ resultStatusList: [ { id: 0, name: '正常' }, { id: 1, name: '异常' } + ], + taskStatusList: [ + { id: 1, name: '待巡检' }, + { id: 2, name: '巡检中' }, + { id: 3, name: '已巡检' }, + { id: 4, name: '超时未巡检' } ], quotaList: [], departmentList: [], @@ -271,6 +273,8 @@ return state.timeType.find((item) => item.id == value)?.name; } else if (type === '巡检状态') { return state.resultStatusList.find((item) => item.id == value)?.name; + } else if (type === '任务状态') { + return state.taskStatusList.find((item) => item.id == value)?.name; } else { return state.classGroupList.find((item) => item.id == value)?.groupName; } @@ -291,12 +295,16 @@ state.tableData.params = { pageIndex: 1, pageSize: 10, - unitName: null, - workType: null, - createUserId: null, + taskName: null, + taskType: null, + taskStatus: null, + execUserId: null, execClassgroupId: null, - checkCycle: null, - checkCycleUnit: null + execDepId: null, + startTime: null, + validTime: null, + createUserId: null, + reportTime: null }; }; @@ -463,4 +471,14 @@ .el-select { width: 100%; } +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} </style> diff --git a/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue b/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue index 79a10c7..fcbddcf 100644 --- a/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue +++ b/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue @@ -5,33 +5,33 @@ <el-row> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="任务名称" prop="unitName"> - <el-input v-model="inspectTaskForm.unitName" class="input-add" placeholder="请填写任务名称"> </el-input> + <el-input v-model="inspectTaskForm.unitName" :disabled="!inspectPointConfirm" class="input-add" placeholder="请填写任务名称"> </el-input> </el-form-item> </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="任务类型" prop="workType"> - <el-select v-model="inspectTaskForm.workType" class="input-add" placeholder="请选择任务类型"> + <el-select v-model="inspectTaskForm.workType" :disabled="!inspectPointConfirm" class="input-add" placeholder="请选择任务类型"> <el-option v-for="item in workTypeList" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="巡检部门" prop="execDepId"> - <el-cascader @change="giveClassGroup" placeholder="请选择巡检部门" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" clearable filterable class="input-add" v-model="inspectTaskForm.execDepId"> </el-cascader> + <el-cascader @change="giveClassGroup" :disabled="!inspectPointConfirm" v placeholder="请选择巡检部门" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" clearable filterable class="input-add" v-model="inspectTaskForm.execDepId"> </el-cascader> </el-form-item> </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="巡检班组" prop="execClassgroupId"> - <el-select v-model="inspectTaskForm.execClassgroupId" placeholder="请选择巡检班组" class="input-add"> + <el-select v-model="inspectTaskForm.execClassgroupId" :disabled="!inspectPointConfirm" placeholder="请选择巡检班组" class="input-add"> <el-option v-for="item in classGroup" :key="item.id" :value="item.id" :label="item.groupName"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="巡检周期" prop="checkCycle"> - <el-input v-model="inspectTaskForm.checkCycle" placeholder="请输入巡检周期" class="input-add"> + <el-input v-model="inspectTaskForm.checkCycle" :disabled="!inspectPointConfirm" placeholder="请输入巡检周期" class="input-add"> <template #append> - <el-select v-model="inspectTaskForm.checkCycleUnit" placeholder="选择单位"> + <el-select v-model="inspectTaskForm.checkCycleUnit" :disabled="!inspectPointConfirm" placeholder="选择单位"> <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </template> @@ -40,9 +40,9 @@ </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="提前通知时间" prop="noticeTime"> - <el-input v-model="inspectTaskForm.noticeTime" placeholder="请输入提前通知时间" class="input-add"> + <el-input v-model="inspectTaskForm.noticeTime" :disabled="!inspectPointConfirm" placeholder="请输入提前通知时间" class="input-add"> <template #append> - <el-select v-model="inspectTaskForm.noticeTimeUnit" placeholder="选择单位"> + <el-select v-model="inspectTaskForm.noticeTimeUnit" :disabled="!inspectPointConfirm" placeholder="选择单位"> <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </template> @@ -51,9 +51,9 @@ </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="有效时间" prop="validTime"> - <el-input v-model="inspectTaskForm.validTime" placeholder="请输入有效时间" class="input-add"> + <el-input v-model="inspectTaskForm.validTime" :disabled="!inspectPointConfirm" placeholder="请输入有效时间" class="input-add"> <template #append> - <el-select v-model="inspectTaskForm.validTimeUnit" placeholder="选择单位"> + <el-select v-model="inspectTaskForm.validTimeUnit" :disabled="!inspectPointConfirm" placeholder="选择单位"> <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </template> @@ -62,7 +62,7 @@ </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="周期开始时间" prop="firstStartTime"> - <el-date-picker v-model="inspectTaskForm.firstStartTime" placeholder="请选择周期开始时间" type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" /> + <el-date-picker v-model="inspectTaskForm.firstStartTime" :disabled="!inspectPointConfirm" placeholder="请选择周期开始时间" type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" class="input-add" /> </el-form-item> </el-col> diff --git a/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue b/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue index b2ab549..2158c0c 100644 --- a/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue +++ b/src/views/intellectInspect/inspectTaskManage/inspectTask/index.vue @@ -452,4 +452,14 @@ .el-select { width: 100%; } +:deep(.el-textarea.is-disabled .el-textarea__inner) { + background-color: var(--el-card-bg-color); + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__inner) { + color: var(--el-input-text-color, var(--el-text-color-regular)); +} +:deep(.el-input.is-disabled .el-input__wrapper) { + background-color: var(--el-card-bg-color); +} </style> diff --git a/src/views/loginPage/loginPage.vue b/src/views/loginPage/loginPage.vue index 9b976a0..b285c23 100644 --- a/src/views/loginPage/loginPage.vue +++ b/src/views/loginPage/loginPage.vue @@ -1,33 +1,33 @@ <template> - <div class="login-container"> - <div id="particles-js" style="display: flex;align-items: center;justify-content: center"> - <canvas class="particles-js-canvas-el" style="width: 100%; height: 100%;" width="472" height="625"></canvas> - </div> - <el-row class="loginContent"> - <el-col :md="12"> - <div class="loginContL"> - <div class="apTitleT">新疆国泰新华</div> - <div class="apTitleB">安全风险预警监测系统</div> - <span></span> - </div> - </el-col> - <el-col :md="12" style="display: flex;justify-content: flex-end"> - <div class="loginPanel"> - <div class="welc">WELCOME!</div> - <div class="welcc">欢迎登录</div> -<!-- <div class="loginInfo">--> -<!-- <el-input v-model="input" placeholder="Please input" />--> -<!-- </div>--> - <div> - <el-tabs v-model="tabsActiveName"> - <AccountLogin /> - </el-tabs> - </div> - </div> - </el-col> - </el-row> - <div class="rights">技术支持:苏州国科鸿宇智能科技有限公司</div> - </div> + <div class="login-container"> + <div id="particles-js" style="display: flex; align-items: center; justify-content: center"> + <canvas class="particles-js-canvas-el" style="width: 100%; height: 100%" width="472" height="625"></canvas> + </div> + <el-row class="loginContent"> + <el-col :md="12"> + <div class="loginContL"> + <div class="apTitleT">新疆国泰新华</div> + <div class="apTitleB">安全风险预警监测系统</div> + <span></span> + </div> + </el-col> + <el-col :md="12" style="display: flex; justify-content: flex-end"> + <div class="loginPanel"> + <div class="welc">WELCOME!</div> + <div class="welcc">欢迎登录</div> + <!-- <div class="loginInfo">--> + <!-- <el-input v-model="input" placeholder="Please input" />--> + <!-- </div>--> + <div> + <el-tabs v-model="tabsActiveName"> + <AccountLogin /> + </el-tabs> + </div> + </div> + </el-col> + </el-row> + <div class="rights">技术支持:苏州国科鸿宇智能科技有限公司</div> + </div> </template> <script lang="ts"> @@ -38,133 +38,133 @@ import loginIconTwo from '/@/assets/login-icon-two.svg'; import { NextLoading } from '/@/utils/loading'; import AccountLogin from '/@/views/loginPage/component/accountLogin.vue'; -import { loginBg } from '../../../static/loginPage.js/login.js' -import { loginApp } from '../../../static/loginPage.js/loginApp.js' +import { loginBg } from '../../../static/loginPage.js/login.js'; +import { loginApp } from '../../../static/loginPage.js/loginApp.js'; // 定义接口来定义对象的类型 interface LoginState { - tabsActiveName: string; - isScan: boolean; + tabsActiveName: string; + isScan: boolean; } export default defineComponent({ - name: 'loginIndex', - components: { AccountLogin }, - setup() { - const storesThemeConfig = useThemeConfig(); - const { themeConfig } = storeToRefs(storesThemeConfig); - const state = reactive<LoginState>({ - tabsActiveName: 'account', - isScan: false, - }); - // 获取布局配置信息 - const getThemeConfig = computed(() => { - return themeConfig.value; - }); - // 页面加载时 - onMounted(() => { - NextLoading.done(); - loginBg(); - loginApp() - }); - return { - logoMini, - loginIconTwo, - getThemeConfig, - ...toRefs(state), - }; - }, + name: 'loginIndex', + components: { AccountLogin }, + setup() { + const storesThemeConfig = useThemeConfig(); + const { themeConfig } = storeToRefs(storesThemeConfig); + const state = reactive<LoginState>({ + tabsActiveName: 'account', + isScan: false + }); + // 获取布局配置信息 + const getThemeConfig = computed(() => { + return themeConfig.value; + }); + // 页面加载时 + onMounted(() => { + NextLoading.done(); + loginBg(); + loginApp(); + }); + return { + logoMini, + loginIconTwo, + getThemeConfig, + ...toRefs(state) + }; + } }); </script> <style scoped lang="scss"> .login-container { - width: 100%; - height: 100%; - position: relative; - z-index: 999; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - background: url("../../assets/loginPage/login-bg.jpg") no-repeat center; - /*background-image: radial-gradient(at center, #0075c3, #000b61);*/ + width: 100%; + height: 100%; + position: relative; + z-index: 999; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background: url('../../assets/loginPage/login-bg.jpg') no-repeat center; + /*background-image: radial-gradient(at center, #0075c3, #000b61);*/ - canvas { - display: block; - vertical-align: bottom; - } + canvas { + display: block; + vertical-align: bottom; + } - #particles-js { - width: 100%; - height: 100%; - background-size: cover; - background-position: 50% 50%; - background-repeat: no-repeat; - position: absolute; - top: 0; - left: 0; - } - .rights{ - font-size: 14px; - color: #fff; - } - .loginContent{ - width: 100%; - padding: 0 200px; - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-around; - margin-bottom: 40px; + #particles-js { + width: 100%; + height: 100%; + background-size: cover; + background-position: 50% 50%; + background-repeat: no-repeat; + position: absolute; + top: 0; + left: 0; + } + .rights { + font-size: 16px; + color: #fff; + } + .loginContent { + width: 100%; + padding: 0 200px; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-around; + margin-bottom: 60px; - .loginContL{ - width: 100%; - font-size: 60px; - font-weight: bold; - margin-bottom: 100px; + .loginContL { + width: 100%; + font-size: 60px; + font-weight: bold; + margin-bottom: 100px; - .apTitleT{ - color: #fff; - margin-bottom: 20px; - letter-spacing: 4px; - } - .apTitleB{ - color: #01d0ff; - margin-bottom: 40px; - letter-spacing: 4px; - } - &>span{ - display: block; - width: 120px; - height: 8px; - background: #01d0ff; - } - } - .loginPanel{ - width: 65%; - padding: 85px 70px; - background: #fff; - min-width: 450px; - border-radius: 15px; - box-shadow: 0 8px 40px rgba(0,0,0,.15); + .apTitleT { + color: #fff; + margin-bottom: 20px; + letter-spacing: 4px; + } + .apTitleB { + color: #01d0ff; + margin-bottom: 40px; + letter-spacing: 4px; + } + & > span { + display: block; + width: 120px; + height: 8px; + background: #01d0ff; + } + } + .loginPanel { + width: 65%; + padding: 85px 70px; + background: #fff; + min-width: 450px; + border-radius: 15px; + box-shadow: 0 8px 40px rgba(0, 0, 0, 0.15); - .welc{ - font-size: 36px; - font-family: "PingFang SC"; - font-weight: normal; - color: #999999; - letter-spacing: 2px; - margin-bottom: 15px; - } - .welcc{ - font-size: 32px; - font-family: "PingFang SC"; - font-weight: lighter; - color: #333; - letter-spacing: 2px; - } - } - } + .welc { + font-size: 36px; + font-family: 'PingFang SC'; + font-weight: normal; + color: #999999; + letter-spacing: 2px; + margin-bottom: 15px; + } + .welcc { + font-size: 32px; + font-family: 'PingFang SC'; + font-weight: lighter; + color: #333; + letter-spacing: 2px; + } + } + } } </style> diff --git a/src/views/safeKnowledgeSys/index.vue b/src/views/safeKnowledge/index.vue similarity index 100% rename from src/views/safeKnowledgeSys/index.vue rename to src/views/safeKnowledge/index.vue diff --git a/src/views/safeKnowledgeSys/bmgz/index.vue b/src/views/safeKnowledgeSys/bmgz/index.vue deleted file mode 100644 index f74c241..0000000 --- a/src/views/safeKnowledgeSys/bmgz/index.vue +++ /dev/null @@ -1,40 +0,0 @@ -<template> - <div class="home-container"> - <iframe src="http://39.104.85.193/bmgz"></iframe> - </div> -</template> - -<script> -export default { - name: 'safeKnowledgeSys', - props: { - - }, - data(){ - return{ - - } - }, - created() { - - }, - methods:{ - - } -} -</script> - -<!-- Add "scoped" attribute to limit CSS to this component only --> -<style scoped lang="scss"> - .home-container{ - height: calc(100vh - 114px); - box-sizing: border-box; - overflow: hidden; - - iframe{ - width: 100%; - height: 100%; - border: none; - } - } -</style> diff --git a/src/views/safeKnowledgeSys/df/index.vue b/src/views/safeKnowledgeSys/df/index.vue deleted file mode 100644 index 38e4824..0000000 --- a/src/views/safeKnowledgeSys/df/index.vue +++ /dev/null @@ -1,40 +0,0 @@ -<template> - <div class="home-container"> - <iframe src="http://39.104.85.193/df"></iframe> - </div> -</template> - -<script> -export default { - name: 'safeKnowledgeSys', - props: { - - }, - data(){ - return{ - - } - }, - created() { - - }, - methods:{ - - } -} -</script> - -<!-- Add "scoped" attribute to limit CSS to this component only --> -<style scoped lang="scss"> - .home-container{ - height: calc(100vh - 114px); - box-sizing: border-box; - overflow: hidden; - - iframe{ - width: 100%; - height: 100%; - border: none; - } - } -</style> diff --git a/src/views/safeKnowledgeSys/inner/index.vue b/src/views/safeKnowledgeSys/inner/index.vue deleted file mode 100644 index 97b9588..0000000 --- a/src/views/safeKnowledgeSys/inner/index.vue +++ /dev/null @@ -1,40 +0,0 @@ -<template> - <div class="home-container"> - <iframe src="http://39.104.85.193/inner"></iframe> - </div> -</template> - -<script> -export default { - name: 'safeKnowledgeSys', - props: { - - }, - data(){ - return{ - - } - }, - created() { - - }, - methods:{ - - } -} -</script> - -<!-- Add "scoped" attribute to limit CSS to this component only --> -<style scoped lang="scss"> - .home-container{ - height: calc(100vh - 114px); - box-sizing: border-box; - overflow: hidden; - - iframe{ - width: 100%; - height: 100%; - border: none; - } - } -</style> diff --git a/src/views/safeKnowledgeSys/internationalRules/index.vue b/src/views/safeKnowledgeSys/internationalRules/index.vue deleted file mode 100644 index 2c88f1e..0000000 --- a/src/views/safeKnowledgeSys/internationalRules/index.vue +++ /dev/null @@ -1,40 +0,0 @@ -<template> - <div class="home-container"> - <iframe src="http://39.104.85.193/law"></iframe> - </div> -</template> - -<script> -export default { - name: 'safeKnowledgeSys', - props: { - - }, - data(){ - return{ - - } - }, - created() { - - }, - methods:{ - - } -} -</script> - -<!-- Add "scoped" attribute to limit CSS to this component only --> -<style scoped lang="scss"> - .home-container{ - height: calc(100vh - 114px); - box-sizing: border-box; - overflow: hidden; - - iframe{ - width: 100%; - height: 100%; - border: none; - } - } -</style> diff --git a/src/views/safeKnowledgeSys/law/index.vue b/src/views/safeKnowledgeSys/law/index.vue deleted file mode 100644 index 8f4fa8f..0000000 --- a/src/views/safeKnowledgeSys/law/index.vue +++ /dev/null @@ -1,40 +0,0 @@ -<template> - <div class="home-container"> - <iframe src="http://39.104.85.193/gong"></iframe> - </div> -</template> - -<script> -export default { - name: 'safeKnowledgeSys', - props: { - - }, - data(){ - return{ - - } - }, - created() { - - }, - methods:{ - - } -} -</script> - -<!-- Add "scoped" attribute to limit CSS to this component only --> -<style scoped lang="scss"> - .home-container{ - height: calc(100vh - 114px); - box-sizing: border-box; - overflow: hidden; - - iframe{ - width: 100%; - height: 100%; - border: none; - } - } -</style> diff --git a/src/views/safeKnowledgeSys/sfjs/index.vue b/src/views/safeKnowledgeSys/sfjs/index.vue deleted file mode 100644 index 3682dcc..0000000 --- a/src/views/safeKnowledgeSys/sfjs/index.vue +++ /dev/null @@ -1,40 +0,0 @@ -<template> - <div class="home-container"> - <iframe src="http://39.104.85.193/laws"></iframe> - </div> -</template> - -<script> -export default { - name: 'safeKnowledgeSys', - props: { - - }, - data(){ - return{ - - } - }, - created() { - - }, - methods:{ - - } -} -</script> - -<!-- Add "scoped" attribute to limit CSS to this component only --> -<style scoped lang="scss"> - .home-container{ - height: calc(100vh - 114px); - box-sizing: border-box; - overflow: hidden; - - iframe{ - width: 100%; - height: 100%; - border: none; - } - } -</style> diff --git a/src/views/safeKnowledgeSys/xzfg/index.vue b/src/views/safeKnowledgeSys/xzfg/index.vue deleted file mode 100644 index a50d44c..0000000 --- a/src/views/safeKnowledgeSys/xzfg/index.vue +++ /dev/null @@ -1,39 +0,0 @@ -<template> - <div class="home-container"> - <iframe src="http://39.104.85.193/xzfg"></iframe> - </div> -</template> - -<script> -export default { - name: 'safeKnowledgeSys', - props: { - - }, - data(){ - return{ - - } - }, - created() { - - }, - methods:{ - - } -} -</script> - -<!-- Add "scoped" attribute to limit CSS to this component only --> -<style scoped lang="scss"> - .home-container{ - height: calc(100vh - 114px); - box-sizing: border-box; - overflow: hidden; - - iframe{ - width: 100%; - height: 100%; - } - } -</style> diff --git a/src/views/specialWorkSystem/approveProcessManage/examineTemplate/index.vue b/src/views/specialWorkSystem/approveProcessManage/examineTemplate/index.vue new file mode 100644 index 0000000..1591de7 --- /dev/null +++ b/src/views/specialWorkSystem/approveProcessManage/examineTemplate/index.vue @@ -0,0 +1,367 @@ +<template> + <div class="home-container"> + <div style="height: 100%"> + <el-row class="homeCard"> + <el-col :span="8"> + <div class="grid-content topInfo"> + <el-input v-model="searchWord" placeholder="流程名称"></el-input> + <el-button type="primary">查询</el-button> + <el-button plain>重置</el-button> + </div> + </el-col> + </el-row> + <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" v-throttle>新建</el-button> + <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> + <el-button type="success" 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%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" /> + <el-table-column property="name" label="流程名称" width="200" /> + <el-table-column property="flowKey" label="流程key" width="180" /> + <el-table-column property="sort" label="分类" /> + <el-table-column label="版本" width="180"> + <template #default="scope"> + <el-tag>{{ scope.row.version }}</el-tag> + </template> + </el-table-column> + <el-table-column label="流程状态" width="180"> + <template #default="scope"> + <el-tag type="success">{{ scope.row.status }}</el-tag> + </template> + </el-table-column> + <el-table-column property="updateTime" label="更新时间" /> + <el-table-column fixed="right" label="操作" align="center" width="250"> + <template #default="scope"> + <el-button link type="primary" :icon="Edit" size="small" @click="editRecord(scope.$index, scope.row)" v-throttle>修改</el-button> + <el-button link type="success" size="small">发布</el-button> + <el-button link type="danger" :icon="Delete" size="small" @click="deleteRecord(scope.$index)">删除</el-button> + </template> + </el-table-column> + </el-table> + <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> + </div> + </div> + <el-dialog v-model="dialogAddRecord" title="审批流程编辑" @close="closeAdd"> + <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> + <el-form-item label="流程名称" prop="name"> + <el-input v-model="addRecord.name" placeholder="流程名称" /> + </el-form-item> + <el-form-item label="流程key" prop="flowKey"> + <el-input v-model="addRecord.flowKey" placeholder="流程key"> </el-input> + </el-form-item> + <el-form-item label="分类" prop="sort"> + <el-select v-model="addRecord.sort" placeholder="请选择"> + <el-option label="临时用电" value="临时用电" /> + <el-option label="设备检修" value="设备检修" /> + </el-select> + </el-form-item> + <el-form-item label="版本" prop="version"> + <el-input v-model="addRecord.version" placeholder="请选择工种"> </el-input> + </el-form-item> + <el-form-item label="状态" prop="status"> + <el-select v-model="addRecord.status" placeholder="请选择"> + <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" v-throttle>确认</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" v-throttle>确认</el-button> + </span> + </template> + </el-dialog> + </div> +</template> + +<script lang="ts" setup> +import { toRefs, reactive, defineComponent, ref } from 'vue'; +import { storeToRefs } from 'pinia'; +import { initBackEndControlRoutes } from '/@/router/backEnd'; +import { useUserInfo } from '/@/stores/userInfo'; +import { Session } from '/@/utils/storage'; +import { Plus, Delete, Refresh, Edit } from '@element-plus/icons-vue'; +import { ElTable, FormInstance, FormRules } from 'element-plus'; +let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined] +}; + +interface stateType { + homeOne: Array<type>; +} +interface type {} +interface User { + date: string; + name: string; + address: string; +} +const userInfo = useUserInfo(); +const { userInfos } = storeToRefs(userInfo); +const state = reactive<stateType>({}); +const multipleTableRef = ref<InstanceType<typeof ElTable>>(); +const multipleSelection = ref<User[]>([]); +const handleSelectionChange = (val: User[]) => { + multipleSelection.value = val; +}; +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 tableData = reactive([ + { + name: '风险点复评预警', + flowKey: 'process111', + sort: '未设置', + version: 'V:4', + status: '已发布', + updateTime: '2021-04-22 15:21:31' + }, + { + name: '风险点复评预警', + flowKey: 'process111', + sort: '未设置', + version: 'V:4', + status: '已发布', + updateTime: '2021-04-22 15:21:31' + }, + { + name: '风险点复评预警', + flowKey: 'process111', + sort: '未设置', + version: 'V:4', + status: '已发布', + updateTime: '2021-04-22 15:21:31' + }, + { + name: '风险点复评预警', + flowKey: 'process111', + sort: '未设置', + version: 'V:4', + status: '已发布', + updateTime: '2021-04-22 15:21:31' + }, + { + name: '风险点复评预警', + flowKey: 'process111', + sort: '未设置', + version: 'V:4', + status: '已发布', + updateTime: '2021-04-22 15:21:31' + }, + { + name: '风险点复评预警', + flowKey: 'process111', + sort: '未设置', + version: 'V:4', + status: '已发布', + updateTime: '2021-04-22 15:21:31' + }, + { + name: '风险点复评预警', + flowKey: 'process111', + sort: '未设置', + version: 'V:4', + status: '已发布', + updateTime: '2021-04-22 15:21:31' + }, + { + name: '风险点复评预警', + flowKey: 'process111', + sort: '未设置', + version: 'V:4', + status: '已发布', + updateTime: '2021-04-22 15:21:31' + }, + { + name: '风险点复评预警', + flowKey: 'process111', + sort: '未设置', + version: 'V:4', + status: '已发布', + updateTime: '2021-04-22 15:21:31' + }, + { + name: '风险点复评预警', + flowKey: 'process111', + sort: '未设置', + version: 'V:4', + status: '已发布', + updateTime: '2021-04-22 15:21:31' + } +]); + +// 时间格式化 +const timeForm = { + hour12: false, + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit' +}; +const addRef = ref<FormInstance>(); +const addRules = reactive<FormRules>({ + name: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + flowKey: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + sort: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + version: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + status: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + updateTime: [{ 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 editRecord = (index, row) => { + dialogAddRecord.value = true; + chosenIndex.value = index; + addRecord.value = JSON.parse(JSON.stringify(row)); +}; + +// 新增修改记录确认 +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 renderMenu = async (value: string) => { + Session.set('projectId', value); + userInfos.value.projectId = value; + await initBackEndControlRoutes(); +}; +</script> + +<style scoped lang="scss"> +$homeNavLengh: 8; +.home-container { + height: calc(100vh - 114px); + box-sizing: border-box; + overflow: hidden; + .homeCard { + width: 100%; + padding: 20px; + box-sizing: border-box; + background: #fff; + border-radius: 4px; + + .main-card { + width: 100%; + height: 100%; + .cardTop { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 20px; + .mainCardBtn { + margin: 0; + } + } + .pageBtn { + height: 60px; + display: flex; + align-items: center; + justify-content: right; + + .demo-pagination-block + .demo-pagination-block { + margin-top: 10px; + } + .demo-pagination-block .demonstration { + margin-bottom: 16px; + } + } + } + &:last-of-type { + height: calc(100% - 100px); + } + } + .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; + } + } + } +} +</style> diff --git a/src/views/specialWorkSystem/approveProcessManage/templateSetting/index.vue b/src/views/specialWorkSystem/approveProcessManage/templateSetting/index.vue new file mode 100644 index 0000000..a8b85a8 --- /dev/null +++ b/src/views/specialWorkSystem/approveProcessManage/templateSetting/index.vue @@ -0,0 +1,293 @@ +<template> + <div class="home-container"> + <el-scrollbar height="100%"> + <div class="homeCard"> + <div> + <div v-for="(item, index) in approveSteps" class="stepItem"> + <div class="stepNum">{{ index + 1 }}</div> + <div class="stepCard"> + <el-card class="box-card" shadow="hover"> + <template #header> + <div class="card-header"> + <div> + 步骤<span>{{ index + 1 }}</span> + </div> + <div> + <el-button type="primary" size="default" @click="addFlow(index)">新增</el-button> + <el-button type="danger" size="default" @click="deleteFlow(index)">删除</el-button> + </div> + </div> + </template> + <div class="text item"> + 审批部门:<span>{{ item.department }}</span> + </div> + <div class="text item"> + 审批人员:<span>{{ item.manager }}</span> + </div> + <div class="text item"> + 其他参数:<span>{{ item.others }}</span> + </div> + </el-card> + </div> + </div> + </div> + <el-row> + <el-button type="primary" @click="confirmEdit" size="large">确认</el-button> + <el-button @click="cancelEdit" size="large">取消</el-button> + </el-row> + </div> + <el-drawer v-model="showAdd" direction="rtl" @close="colseDrawer"> + <template #title> + <h4>新增审批流</h4> + </template> + <template #default> + <el-form :model="addProgress" label-width="120px" ref="ruleFormRef" :rules="ProgressRules"> + <el-form-item label="审批部门" prop="department"> + <el-select v-model="addProgress.department" placeholder="请选择审批部门"> + <el-option label="动土" value="动土" /> + <el-option label="动火" value="动火" /> + </el-select> + </el-form-item> + <el-form-item label="审批人员" prop="manager"> + <el-select v-model="addProgress.manager" placeholder="请选择审批人员"> + <el-option label="人员1" value="人员1" /> + <el-option label="人员2" value="人员2" /> + </el-select> + </el-form-item> + <el-form-item label="其他参数" prop="others"> + <el-input v-model="addProgress.others" /> + </el-form-item> + </el-form> + </template> + <template #footer> + <div style="flex: auto"> + <el-button type="primary" @click="confirmClick(ruleFormRef)" size="default">确认</el-button> + <el-button @click="cancelClick" size="default">取消</el-button> + </div> + </template> + </el-drawer> + <el-dialog v-model="deleteDialog" title="提示" width="30%" center> + <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> + </el-scrollbar> + </div> +</template> + +<script lang="ts"> +import { toRefs, reactive, defineComponent, ref } from 'vue'; +import { storeToRefs } from 'pinia'; +import { initBackEndControlRoutes } from '/@/router/backEnd'; +import { useUserInfo } from '/@/stores/userInfo'; +import { Session } from '/@/utils/storage'; +import { ElMessage } from 'element-plus'; +import type { FormInstance, FormRules } from 'element-plus'; +let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined] +}; + +interface stateType { + homeOne: Array<type>; +} +interface type {} +export default defineComponent({ + name: 'approveProcessSetting', + setup() { + const userInfo = useUserInfo(); + const { userInfos } = storeToRefs(userInfo); + const approveSteps = [ + { + department: '动土', + manager: '', + others: '' + }, + { + department: '动土', + manager: '', + others: '' + }, + { + department: '动土', + manager: '', + others: '' + } + ]; + const showAdd = ref(false); + const deleteDialog = ref(false); + const chosenIndex = ref(''); + const addProgress = ref({ + department: '', + manager: '', + others: '' + }); + const ruleFormRef = ref<FormInstance>(); + const ProgressRules = reactive<FormRules>({ + department: [{ required: true, message: '该选项不能为空', trigger: 'blur' }], + manager: [{ required: true, message: '该选项不能为空', trigger: 'blur' }] + }); + + // 确认新增 + const confirmClick = async (formEl: FormInstance | undefined) => { + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + approveSteps.splice(chosenIndex.value + 1, 0, addProgress.value); + showAdd.value = false; + } else { + console.log('error submit!', fields); + } + }); + }; + const cancelClick = () => { + showAdd.value = false; + }; + + // 新增 + const addFlow = (index) => { + showAdd.value = true; + chosenIndex.value = index; + }; + + // 删除记录 + const deleteFlow = (index) => { + if (approveSteps.length > 1) { + deleteDialog.value = true; + chosenIndex.value = index; + } else { + ElMessage({ + message: '抱歉最后一条无法删除', + type: 'warning' + }); + } + }; + const conFirmDelete = () => { + const i = chosenIndex.value; + approveSteps.splice(i, 1); + deleteDialog.value = false; + }; + const colseDrawer = () => { + addProgress.value = { + department: '', + manager: '', + others: '' + }; + }; + const cancelEdit = () => {}; + const confirmEdit = () => {}; + const state = reactive<stateType>({}); + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId', value); + userInfos.value.projectId = value; + await initBackEndControlRoutes(); + }; + return { + renderMenu, + showAdd, + approveSteps, + addProgress, + ruleFormRef, + ProgressRules, + chosenIndex, + deleteDialog, + colseDrawer, + conFirmDelete, + cancelClick, + deleteFlow, + addFlow, + confirmClick, + cancelEdit, + confirmEdit, + ...toRefs(state) + }; + } +}); +</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; + } + .stepItem { + display: flex; + align-items: flex-start; + margin-bottom: 30px; + margin-left: 30px; + padding-bottom: 30px; + border-left: 2px solid #ccc; + &:first-of-type { + margin-top: 30px; + } + &:last-of-type { + margin-bottom: 0; + border-left: none; + } + .stepNum { + width: 30px; + height: 30px; + border-radius: 15px; + box-sizing: border-box; + color: #333; + border: 2px solid #999; + line-height: 26px; + text-align: center; + margin-right: 40px; + margin-left: -16px; + margin-top: -30px; + } + .stepCard { + margin-top: -30px; + + .box-card { + width: 480px; + + .card-header { + display: flex; + justify-content: space-between; + align-items: center; + + span { + font-weight: bold; + margin-left: 10px; + } + } + + .text { + font-size: 14px; + } + + .item { + margin-bottom: 18px; + } + } + } + &:hover .card-header { + color: #0098f5; + } + &:hover .stepNum { + border: 2px solid #0098f5; + color: #0098f5; + } + } + + .el-form { + padding: 40px 20px; + } +} +</style> diff --git a/src/views/specialWorkSystem/workApplyManage/myJobApply/index.vue b/src/views/specialWorkSystem/workApplyManage/myJobApply/index.vue new file mode 100644 index 0000000..44f571a --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManage/myJobApply/index.vue @@ -0,0 +1,362 @@ +<template> + <div class="home-container"> + <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> + <el-tab-pane label="申请中" name="Applying"> + <div style="height: 100%"> + <el-row class="homeCard"> + <el-col :span="8"> + <div class="grid-content topInfo"> + <el-input v-model="searchWord" placeholder="作业证名称"></el-input> + <el-button type="primary">查询</el-button> + <el-button plain>重置</el-button> + </div> + </el-col> + </el-row> + <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">申请</el-button> +<!-- <el-button type="danger" :icon="Delete" size="default">删除</el-button>--> +<!-- <el-button type="success" size="default">设置分类</el-button>--> + </el-col> + <el-button type="primary" :icon="Refresh" size="default"/> + </el-row> + <el-table + ref="multipleTableRef" + :data="applyData" + style="width: 100%" + height="calc(100% - 100px)" + :header-cell-style="{background: '#fafafa'}" + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="55" /> + <el-table-column type="index" label="作业证编号" width="200"/> + <el-table-column property="level" label="作业证等级" width="180" sortable /> + <el-table-column property="applyDate" label="申请日期" sortable /> + <el-table-column property="name" label="申请人" width="180"/> + <el-table-column property="department" label="申请部门" width="180" /> + <el-table-column label="申请状态" width="180"> + <template #default="scope"> + <el-tag type="success">{{ scope.row.status }}</el-tag> + </template> + </el-table-column> + <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="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> + </template> + </el-table-column> + </el-table> + <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> + </div> + </div> + <el-dialog v-model="dialogDetails" title="作业票查看"> + <el-form :model="details" label-width="120px"> + <el-form-item label="作业证等级"> + <el-input + v-model="details.level" + readonly + /> + </el-form-item> + <el-form-item label="申请日期"> + <el-input + v-model="details.applyDate" + readonly + /> + </el-form-item> + <el-form-item label="申请人"> + <el-input + v-model="details.name" + readonly + /> + </el-form-item> + <el-form-item label="申请部门"> + <el-input + v-model="details.department" + readonly + /> + </el-form-item> + <el-form-item label="状态"> + <el-input + v-model="details.status" + 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="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" v-throttle>确认</el-button> + </span> + </template> + </el-dialog> + </el-tab-pane> + <el-tab-pane label="已通过" name="passed"> + <div style="height: 100%"> + <el-row class="homeCard"> + <el-col :span="8"> + <div class="grid-content topInfo"> + <el-input v-model="searchWord" placeholder="作业证名称"></el-input> + <el-button type="primary">查询</el-button> + <el-button plain>重置</el-button> + </div> + </el-col> + </el-row> + <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">申请</el-button>--> +<!-- <el-button type="danger" :icon="Delete" size="default">删除</el-button>--> +<!-- <el-button type="success" size="default">设置分类</el-button>--> +<!-- </el-col>--> +<!-- <el-button type="primary" size="default" :icon="Refresh" />--> +<!-- </el-row>--> + <el-table + ref="multipleTableRef" + :data="passedData" + style="width: 100%" + height="calc(100% - 48px)" + :header-cell-style="{background: '#fafafa'}" + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="55" /> + <el-table-column type="index" label="编号" width="200"/> + <el-table-column property="level" label="作业证等级" width="180" sortable /> + <el-table-column property="applyDate" label="申请日期" sortable /> + <el-table-column property="name" label="申请人" width="180"/> + <el-table-column property="department" label="申请部门" width="180" /> + <el-table-column label="申请状态" width="180"> + <template #default="scope"> + <el-tag type="success">{{ scope.row.status }}</el-tag> + </template> + </el-table-column> + </el-table> + <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> + </div> + </div> + </el-tab-pane> + </el-tabs> + </div> +</template> + +<script lang="ts" setup> + import { toRefs, reactive, defineComponent, ref } from 'vue'; + import { storeToRefs } from 'pinia'; + import { initBackEndControlRoutes } from '/@/router/backEnd'; + import {useUserInfo} from "/@/stores/userInfo"; + import { Session } from '/@/utils/storage'; + import { Plus, Delete, Refresh } from '@element-plus/icons-vue' + import { ElTable } from 'element-plus' + import type { TabsPaneContext } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + interface User { + num: string + level: string + applyDate: string + name: string + department: string + status: string + } + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const activeName = ref('Applying') + const handleClick = (tab: TabsPaneContext, event: Event) => { + console.log(tab, event) + } + const multipleTableRef = ref<InstanceType<typeof ElTable>>() + const multipleSelection = ref<User[]>([]) + const handleSelectionChange = (val: User[]) => { + multipleSelection.value = val + } + const currentPage = ref(1) + const pageSize = ref(10) + const handleSizeChange = (val: number) => { + console.log(`${val} items per page`) + } + const handleCurrentChange = (val: number) => { + console.log(`current page: ${val}`) + } + const applyData = reactive([ + { + level: '等级一', + applyDate: '2022-07-27 14:19:33', + name: '张三', + department: '部门一', + status: '审核中' + + }, + { + level: '等级一', + applyDate: '2022-07-27 14:19:33', + name: '张三', + department: '部门一', + status: '审核中' + + }, + { + level: '等级一', + applyDate: '2022-07-27 14:19:33', + name: '张三', + department: '部门一', + status: '审核中' + + } + ]) + const chosenIndex = ref(-1) + const passedData: User[] = [] + const dialogDetails = ref(false) + const details = ref({}) + const deleteDialog = ref(false) + + // 查看记录 + const viewRecord = (row) =>{ + details.value = JSON.parse(JSON.stringify(row)) + dialogDetails.value = true + } + + // 删除记录 + const deleteRecord = (index) =>{ + chosenIndex.value = index + deleteDialog.value = true + } + + // 弹窗确认删除记录 + const conFirmDelete = ()=> { + applyData.splice(chosenIndex.value,1) + deleteDialog.value = false + } + // 折线图 + 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: calc(100vh - 114px); + box-sizing: border-box; + overflow: hidden; + .demo-tabs{ + width: 100%; + height: 100%; + + &::v-deep(.el-tabs__content){ + height: calc(100% - 60px); + } + + .el-tab-pane{ + height: 100%; + } + } + .homeCard{ + width: 100%; + padding: 20px; + box-sizing: border-box; + background: #fff; + border-radius: 4px; + + .main-card{ + width: 100%; + height: 100%; + .cardTop{ + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 20px; + .mainCardBtn{ + margin: 0; + } + } + .pageBtn{ + height: 60px; + display: flex; + align-items: center; + justify-content: right; + + .demo-pagination-block + .demo-pagination-block { + margin-top: 10px; + } + .demo-pagination-block .demonstration { + margin-bottom: 16px; + } + } + } + &:last-of-type{ + height: calc(100% - 100px); + } + } + .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; + } + } + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/blindPanelForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/blindPanelForm.vue new file mode 100644 index 0000000..bf26c37 --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManage/workTicket/components/blindPanelForm.vue @@ -0,0 +1,354 @@ +<template> + <div class="comp-container"> + <el-form :model="bpForm" label-width="180px" :rules="bpFormRules" ref="bpRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="bpDepartment"> + <el-select v-model="bpForm.bpDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="bpApplyName"> + <el-input + v-model="bpForm.bpApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="设备管道名称" prop="bpTubeName"> + <el-input + v-model="bpForm.bpTubeName" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="主要介质" prop="bpMainMatter"> + <el-input + v-model="bpForm.bpMainMatter" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="温度" prop="bpTemperature"> + <el-input + v-model="bpForm.bpTemperature" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="压力" prop="bpPressure"> + <el-input + v-model="bpForm.bpPressure" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="盲板材质" prop="bpMaterial"> + <el-input + v-model="bpForm.bpMaterial" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="盲板规格" prop="bpFormat"> + <el-input + v-model="bpForm.bpFormat" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="盲板编号" prop="bpNum"> + <el-input + v-model="bpForm.bpNum" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="盲板位置" prop="bpLocation"> + <el-input + v-model="bpForm.bpLocation" + placeholder="请输入" + class="input-with-select" + type="textarea" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="盲板位置图"> + <el-upload + v-model:file-list="bpForm.picList" + class="upload-demo" + action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" + multiple + :on-preview="handlePreview" + :on-remove="handleRemove" + :before-remove="beforeRemove" + :limit="3" + :on-exceed="handleExceed" + > + <el-button type="primary">上传附件</el-button> + <template #tip> + <div class="el-upload__tip"> + jpg/png 文件大小须在500k以内. + </div> + </template> + </el-upload> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="装盲板负责人" prop="bpPrincipals"> + <el-select v-model="bpForm.bpPrincipals" placeholder="请选择" multiple> + <el-option label="负责人一" value="负责人一" /> + <el-option label="负责人二" value="负责人二" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="装盲板时间" prop="bpInstallTime"> + <el-date-picker + v-model="bpForm.bpInstallTime" + type="datetime" + placeholder="请选择" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="拆盲板负责人" prop="bpDePrincipals"> + <el-select v-model="bpForm.bpDePrincipals" placeholder="请选择" multiple> + <el-option label="负责人一" value="负责人一" /> + <el-option label="负责人二" value="负责人二" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="拆盲板时间" prop="bpUninstallTime"> + <el-date-picker + v-model="bpForm.bpUninstallTime" + type="datetime" + placeholder="请选择" + /> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } from 'vue'; + import { storeToRefs } from 'pinia'; + import { initBackEndControlRoutes } from '/@/router/backEnd'; + import {useUserInfo} from "/@/stores/userInfo"; + import { Session } from '/@/utils/storage'; + import { Search } from '@element-plus/icons-vue' + import { ElMessage, ElMessageBox } from 'element-plus' + import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'blindPanelForm', + props: { + bpForm: Object, + }, + setup(props) { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const bpForm1 = reactive(props.bpForm) + // const bpForm = reactive({ + // bpDepartment: '', + // bpApplyName: '', + // bpTubeName: '', + // bpMainMatter: '', + // bpTemperature: '', + // bpPressure: '', + // bpMaterial: '', + // bpFormat: '', + // bpNum: '', + // bpLocation: '', + // fileList: [], + // bpPrincipals: [], + // bpInstallTime: '', + // bpDePrincipals: [], + // bpUninstallTime: '' + // }) + const bpRef = ref<FormInstance>() + const bpFormRules = reactive<FormRules>({ + bpDepartment:[{required: true,message: '此处不可为空'}], + bpApplyName:[{required: true,message: '此处不可为空'}], + bpTubeName: [{required: true,message: '此处不可为空'}], + bpMainMatter: [{required: true,message: '此处不可为空'}], + bpTemperature: [{required: true,message: '此处不可为空'}], + bpPressure: [{required: true,message: '此处不可为空'}], + bpMaterial: [{required: true,message: '此处不可为空'}], + bpFormat: [{required: true,message: '此处不可为空'}], + bpNum: [{required: true,message: '此处不可为空'}], + bpLocation: [{required: true,message: '此处不可为空'}], + bpPrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger:'blur'}], + bpInstallTime: [{required: true,message: '此处不可为空'}], + bpDePrincipals: [{type: 'array',required: true,message: '此处不可为空',trigger:'blur'}], + bpUninstallTime: [{required: true,message: '此处不可为空'}] + }) + const fileList = ref<UploadUserFile[]>([ + { + name: 'element-plus-logo.svg', + url: 'https://element-plus.org/images/element-plus-logo.svg', + } + ]) + + const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => { + console.log(file, uploadFiles) + } + + const handlePreview: UploadProps['onPreview'] = (uploadFile) => { + console.log(uploadFile) + } + + const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => { + ElMessage.warning( + // `The limit is 3, you selected ${files.length} files this time, add up to ${ + // files.length + uploadFiles.length + // } totally` + '文件总数超出限制' + ) + } + + const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => { + return ElMessageBox.confirm( + `取消上传 ${uploadFile.name} ?` + ).then( + () => true, + () => false + ) + } + + const validateForm = async () => { + let flag = null + await bpRef.value.validate(valid=>{ + if(valid){ + flag = true + }else{ + flag = false + } + }) + return flag + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + bpForm1, + bpFormRules, + bpRef, + fileList, + Search, + validateForm, + handleRemove, + handlePreview, + handleExceed, + beforeRemove, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .home-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .el-row{ + margin-bottom: 20px; + } + .el-row:last-child { + margin-bottom: 0; + } + .el-input{ + width: 100% !important; + } + .el-date-editor::v-deep{ + width: 100%; + } + .el-select{ + width: 100%; + } + .el-cascader{ + width: 100% !important; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/cutLineForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/cutLineForm.vue new file mode 100644 index 0000000..4a0a5be --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManage/workTicket/components/cutLineForm.vue @@ -0,0 +1,220 @@ +<template> + <div class="comp-container"> + <el-form :model="clForm" label-width="180px" :rules="clFormRules" ref="clRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="clDepartment"> + <el-select v-model="clForm.clDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="clApplyName"> + <el-input + v-model="clForm.clApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="断路原因" prop="clReason"> + <el-input + v-model="clForm.clReason" + placeholder="请输入" + class="input-with-select" + type="textarea" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="涉及相关单位(部门)" prop="clUnits"> + <el-select v-model="clForm.clUnits" placeholder="请选择" multiple> + <el-option label="单位一" value="单位一" /> + <el-option label="单位二" value="单位二" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="断路地段示意图" prop="fileList"> + <el-upload + v-model:file-list="fileList" + class="upload-demo" + action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" + multiple + :on-preview="handlePreview" + :on-remove="handleRemove" + :before-remove="beforeRemove" + :limit="3" + :on-exceed="handleExceed" + > + <el-button type="primary">上传附件</el-button> + <template #tip> + <div class="el-upload__tip"> + jpg/png 文件大小须在500k以内. + </div> + </template> + </el-upload> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } from 'vue'; + import { storeToRefs } from 'pinia'; + import { initBackEndControlRoutes } from '/@/router/backEnd'; + import {useUserInfo} from "/@/stores/userInfo"; + import { Session } from '/@/utils/storage'; + import { Search } from '@element-plus/icons-vue' + import { ElMessage, ElMessageBox } from 'element-plus' + import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'cutLineForm', + props: { + clForm: Object + }, + setup(props) { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const clForm1 = reactive(props.clForm) + const clRef = ref<FormInstance>() + const clFormRules = reactive<FormRules>({ + clDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + clApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + clReason: [{required: true,message: '此处不可为空',trigger: 'blur'}], + clUnits: [{required: true,message: '此处不可为空',trigger: 'blur'}], + fileList: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}] + }) + const fileList = ref<UploadUserFile[]>([ + { + name: 'element-plus-logo.svg', + url: 'https://element-plus.org/images/element-plus-logo.svg', + } + ]) + + const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => { + console.log(file, uploadFiles) + } + + const handlePreview: UploadProps['onPreview'] = (uploadFile) => { + console.log(uploadFile) + } + + const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => { + ElMessage.warning( + // `The limit is 3, you selected ${files.length} files this time, add up to ${ + // files.length + uploadFiles.length + // } totally` + '文件总数超出限制' + ) + } + + const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => { + return ElMessageBox.confirm( + `取消上传 ${uploadFile.name} ?` + ).then( + () => true, + () => false + ) + } + const validateForm = async () => { + let flag = null + await clRef.value.validate(valid=>{ + if(valid){ + flag = true + }else{ + flag = false + } + }) + return flag + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + clForm1, + Search, + clFormRules, + clRef, + fileList, + validateForm, + handleRemove, + handlePreview, + handleExceed, + beforeRemove, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .home-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .el-row{ + margin-bottom: 20px; + } + .el-row:last-child { + margin-bottom: 0; + } + .el-input{ + width: 100% !important; + } + .el-date-editor::v-deep{ + width: 100%; + } + .el-select{ + width: 100%; + } + .el-cascader{ + width: 100% !important; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/dirtWorkForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/dirtWorkForm.vue new file mode 100644 index 0000000..4bb6e52 --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManage/workTicket/components/dirtWorkForm.vue @@ -0,0 +1,221 @@ +<template> + <div class="comp-container"> + <el-form :model="dwForm" label-width="180px" :rules="dwFormRules" ref="dwRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="dwDepartment"> + <el-select v-model="dwForm.dwDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="dwApplyName"> + <el-input + v-model="dwForm.dwApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="动土范围" prop="dwRange"> + <el-input + v-model="dwForm.dwRange" + placeholder="请输入" + class="input-with-select" + type="textarea" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="动土方式" prop="dwWay"> + <el-input + v-model="dwForm.dwWay" + placeholder="请输入" + class="input-with-select" + type="textarea" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="动土简图" prop="fileList"> + <el-upload + v-model:file-list="fileList" + class="upload-demo" + action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" + multiple + :on-preview="handlePreview" + :on-remove="handleRemove" + :before-remove="beforeRemove" + :limit="3" + :on-exceed="handleExceed" + > + <el-button type="primary">上传附件</el-button> + <template #tip> + <div class="el-upload__tip"> + jpg/png 文件大小须在500k以内. + </div> + </template> + </el-upload> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } from 'vue'; + import { storeToRefs } from 'pinia'; + import { initBackEndControlRoutes } from '/@/router/backEnd'; + import {useUserInfo} from "/@/stores/userInfo"; + import { Session } from '/@/utils/storage'; + import { Search } from '@element-plus/icons-vue' + import { ElMessage, ElMessageBox } from 'element-plus' + import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'dirtWorkForm', + props:{ + dwForm: Object + }, + setup(props) { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const dwForm1 = reactive(props.dwForm) + const dwRef = ref<FormInstance>() + const dwFormRules = reactive<FormRules>({ + dwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + dwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + dwRange: [{required: true,message: '此处不可为空',trigger: 'blur'}], + dwWay: [{required: true,message: '此处不可为空',trigger: 'blur'}], + fileList: [{type: 'array',required: true,message: '此处不可为空',trigger: 'change'}] + }) + const fileList = ref<UploadUserFile[]>([ + { + name: 'element-plus-logo.svg', + url: 'https://element-plus.org/images/element-plus-logo.svg', + } + ]) + + const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => { + console.log(file, uploadFiles) + } + + const handlePreview: UploadProps['onPreview'] = (uploadFile) => { + console.log(uploadFile) + } + + const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => { + ElMessage.warning( + // `The limit is 3, you selected ${files.length} files this time, add up to ${ + // files.length + uploadFiles.length + // } totally` + '文件总数超出限制' + ) + } + + const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => { + return ElMessageBox.confirm( + `取消上传 ${uploadFile.name} ?` + ).then( + () => true, + () => false + ) + } + const validateForm = async () => { + let flag = null + await dwRef.value.validate(valid=>{ + if(valid){ + flag = true + }else{ + flag = false + } + }) + return flag + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + dwForm1, + dwFormRules, + dwRef, + fileList, + validateForm, + handleRemove, + handlePreview, + handleExceed, + beforeRemove, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .home-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .el-row{ + margin-bottom: 20px; + } + .el-row:last-child { + margin-bottom: 0; + } + .el-input{ + width: 100% !important; + } + .el-date-editor::v-deep{ + width: 100%; + } + .el-select{ + width: 100%; + } + .el-cascader{ + width: 100% !important; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/fireWorkForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/fireWorkForm.vue new file mode 100644 index 0000000..084f86c --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManage/workTicket/components/fireWorkForm.vue @@ -0,0 +1,164 @@ +<template> + <div class="comp-container"> + <el-form :model="fwForm" label-width="150px" :rules="fwRules" ref="fwRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="fwDepartment"> + <el-select v-model="fwForm.fwDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="fwApplyName"> + <el-input + v-model="fwForm.fwApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="作业等级" prop="fwLevel"> + <el-select v-model="fwForm.fwLevel" placeholder="请选择"> + <el-option label="一" value="一" /> + <el-option label="二" value="二" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="危害辨识" prop="fwRiskIdentify"> + <el-select v-model="fwForm.fwRiskIdentify" placeholder="请选择"> + <el-option label="辨识一" value="辨识一" /> + <el-option label="辨识二" value="辨识二" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="动火方式" prop="fwWorkWay"> + <el-select v-model="fwForm.fwWorkWay" placeholder="请选择"> + <el-option label="方式一" value="方式一" /> + <el-option label="方式二" value="方式二" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } from 'vue'; + import { storeToRefs } from 'pinia'; + import { initBackEndControlRoutes } from '/@/router/backEnd'; + import {useUserInfo} from "/@/stores/userInfo"; + import { Session } from '/@/utils/storage'; + import { Search } from '@element-plus/icons-vue' + import type { FormInstance, FormRules } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'fireWorkForm', + props: { + fwForm: Object + }, + setup(props) { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const fwForm1 = reactive(props.fwForm) + const fwRef = ref<FormInstance>() + const fwRules = reactive<FormRules>({ + fwDepartment:[{required: true,message: '此处不可为空'}], + fwApplyName:[{required: true,message: '此处不可为空'}], + fwLevel: [{required: true,message: '此处不可为空'}], + fwRiskIdentify: [{required: true,message: '此处不可为空'}], + fwWorkWay: [{required: true,message: '此处不可为空'}] + }) + const validateForm = async () => { + let flag = null + await fwRef.value.validate(valid=>{ + if(valid){ + flag = true + }else{ + flag = false + } + }) + return flag + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + Search, + fwForm1, + fwRules, + fwRef, + validateForm, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .comp-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .el-row{ + margin-bottom: 20px; + } + .el-row:last-child { + margin-bottom: 0; + } + .el-input{ + width: 100% !important; + } + .el-date-editor::v-deep{ + width: 100%; + } + .el-select{ + width: 100%; + } + .el-cascader{ + width: 100% !important; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/hangLoadForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/hangLoadForm.vue new file mode 100644 index 0000000..6b36361 --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManage/workTicket/components/hangLoadForm.vue @@ -0,0 +1,169 @@ +<template> + <div class="comp-container"> + <el-form :model="hlForm" label-width="180px" :rules="hlFormRules" ref="hlRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="hlDepartment"> + <el-select v-model="hlForm.hlDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="hlApplyName"> + <el-input + v-model="hlForm.hlApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="作业等级" prop="hlLevel"> + <el-select v-model="hlForm.hlLevel" placeholder="请选择等级"> + <el-option label="等级一" value="等级一" /> + <el-option label="等级二" value="等级二" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="起吊重物质量" prop="hlWeight"> + <el-input + v-model="hlForm.hlWeight" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="吊装工具名称" prop="hlToolsName"> + <el-input + v-model="hlForm.hlToolsName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } from 'vue'; + import { storeToRefs } from 'pinia'; + import { initBackEndControlRoutes } from '/@/router/backEnd'; + import {useUserInfo} from "/@/stores/userInfo"; + import { Session } from '/@/utils/storage'; + import { Search } from '@element-plus/icons-vue' + import type { FormInstance, FormRules } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'hangLoadForm', + props: { + hlForm: Object + }, + setup(props) { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const hlForm1 = reactive(props.hlForm) + const hlRef = ref<FormInstance>() + const hlFormRules = reactive<FormRules>({ + hlDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + hlApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + hlLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], + hlWeight: [{required: true,message: '此处不可为空',trigger: 'blur'}], + hlToolsName: [{required: true,message: '此处不可为空',trigger: 'blur'}] + }) + const validateForm = async () => { + let flag = null + await hlRef.value.validate(valid=>{ + if(valid){ + flag = true + }else{ + flag = false + } + }) + return flag + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + hlForm1, + hlFormRules, + hlRef, + validateForm, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .home-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .el-row{ + margin-bottom: 20px; + } + .el-row:last-child { + margin-bottom: 0; + } + .el-input{ + width: 100% !important; + } + .el-date-editor::v-deep{ + width: 100%; + } + .el-select{ + width: 100%; + } + .el-cascader{ + width: 100% !important; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/highWorkForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/highWorkForm.vue new file mode 100644 index 0000000..1ae364a --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManage/workTicket/components/highWorkForm.vue @@ -0,0 +1,153 @@ +<template> + <div class="comp-container"> + <el-form :model="hwForm" label-width="150px" :rules="hwRules" ref="hwRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="hwDepartment"> + <el-select v-model="hwForm.hwDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="hwApplyName"> + <el-input + v-model="hwForm.hwApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="作业等级" prop="hwLevel"> + <el-select v-model="hwForm.hwLevel" placeholder="请选择"> + <el-option label="一" value="一" /> + <el-option label="二" value="二" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="作业高度" prop="hwHeight"> + <el-input + v-model="hwForm.hwHeight" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } from 'vue'; + import { storeToRefs } from 'pinia'; + import { initBackEndControlRoutes } from '/@/router/backEnd'; + import {useUserInfo} from "/@/stores/userInfo"; + import { Session } from '/@/utils/storage'; + import { Search } from '@element-plus/icons-vue' + import type { FormInstance, FormRules } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'highWorkForm', + props:{ + hwForm: Object + }, + setup(props) { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const hwForm1 = reactive(props.hwForm) + const hwRef = ref<FormInstance>() + const hwRules = reactive<FormRules>({ + hwDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + hwApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + hwLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], + hwHeight: [{required: true,message: '此处不可为空',trigger: 'blur'}] + }) + const validateForm = async () => { + let flag = null + await hwRef.value.validate(valid=>{ + if(valid){ + flag = true + }else{ + flag = false + } + }) + return flag + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + hwForm1, + hwRef, + hwRules, + validateForm, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .comp-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .el-row{ + margin-bottom: 20px; + } + .el-row:last-child { + margin-bottom: 0; + } + .el-input{ + width: 100% !important; + } + .el-date-editor::v-deep{ + width: 100%; + } + .el-select{ + width: 100%; + } + .el-cascader{ + width: 100% !important; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/limitedSpaceForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/limitedSpaceForm.vue new file mode 100644 index 0000000..bd92649 --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManage/workTicket/components/limitedSpaceForm.vue @@ -0,0 +1,175 @@ +<template> + <div class="comp-container"> + <el-form :model="lsForm" label-width="180px" :rules="lsFormRules" ref="lsRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="lsDepartment"> + <el-select v-model="lsForm.lsDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="lsApplyName"> + <el-input + v-model="lsForm.lsApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="受限空间名称" prop="lsUnitName"> + <el-input + v-model="lsForm.lsUnitName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="受限空间所属单位" prop="lsUnit"> + <el-select v-model="lsForm.lsUnit" placeholder="请选择"> + <el-option label="一" value="一" /> + <el-option label="二" value="二" /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="24"> + <el-form-item label="受限空间内原有介质名称" prop="lsUnitName"> + <el-input + v-model="lsForm.lsUnitMatterName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } from 'vue'; + import { storeToRefs } from 'pinia'; + import { initBackEndControlRoutes } from '/@/router/backEnd'; + import {useUserInfo} from "/@/stores/userInfo"; + import { Session } from '/@/utils/storage'; + import { Search } from '@element-plus/icons-vue' + import type { FormInstance, FormRules } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'limitedSpaceForm', + props: { + lsForm: Object + }, + setup(props) { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const lsForm1 = reactive(props.lsForm) + const lsRef = ref<FormInstance>() + const lsFormRules = reactive<FormRules>({ + lsDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + lsApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + lsUnitName: [{required: true,message: '此处不可为空',trigger: 'blur'}], + lsUnit: [{required: true,message: '此处不可为空',trigger: 'blur'}], + lsUnitMatterName: [{required: true,message: '此处不可为空',trigger: 'blur'}] + }) + const validateForm = async () => { + let flag = null + await lsRef.value.validate(valid=>{ + if(valid){ + flag = true + }else{ + flag = false + } + }) + return flag + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + lsForm1, + lsFormRules, + lsRef, + validateForm, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .home-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .el-row{ + margin-bottom: 20px; + } + .el-row:last-child { + margin-bottom: 0; + } + .el-input{ + width: 100% !important; + } + .el-date-editor::v-deep{ + width: 100%; + } + .el-select{ + width: 100%; + } + .el-cascader{ + width: 100% !important; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/components/tempElectForm.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/components/tempElectForm.vue new file mode 100644 index 0000000..cc21d11 --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManage/workTicket/components/tempElectForm.vue @@ -0,0 +1,153 @@ +<template> + <div class="comp-container"> + <el-form :model="teForm" label-width="150px" :rules="teRules" ref="teRef"> + <div class="homeCard"> + <el-row> + <el-col :span="8"> + <el-form-item label="申请部门" prop="teDepartment"> + <el-select v-model="teForm.teDepartment" placeholder="请选择部门"> + <el-option label="机修班" value="机修班" /> + <el-option label="火工班" value="火工班" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="申请人" prop="teApplyName"> + <el-input + v-model="teForm.teApplyName" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="作业等级" prop="teLevel"> + <el-select v-model="teForm.teLevel" placeholder="请选择等级"> + <el-option label="等级一" value="等级一" /> + <el-option label="等级二" value="等级二" /> + </el-select> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="作业高度" prop="teHeight"> + <el-input + v-model="teForm.teHeight" + placeholder="请输入" + class="input-with-select" + /> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref } from 'vue'; + import { storeToRefs } from 'pinia'; + import { initBackEndControlRoutes } from '/@/router/backEnd'; + import {useUserInfo} from "/@/stores/userInfo"; + import { Session } from '/@/utils/storage'; + import { Search } from '@element-plus/icons-vue' + import type { FormInstance, FormRules } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'tempElectForm', + props: { + teForm: Object + }, + setup(props) { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({}); + const teForm1 = reactive(props.teForm) + const teRef = ref<FormInstance>() + const teRules = reactive<FormRules>({ + teDepartment:[{required: true,message: '此处不可为空',trigger: 'blur'}], + teApplyName:[{required: true,message: '此处不可为空',trigger: 'blur'}], + teLevel: [{required: true,message: '此处不可为空',trigger: 'blur'}], + teHeight: [{required: true,message: '此处不可为空',trigger: 'blur'}] + }) + const validateForm = async () => { + let flag = null + await teRef.value.validate(valid=>{ + if(valid){ + flag = true + }else{ + flag = false + } + }) + return flag + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + teForm1, + teRef, + teRules, + validateForm, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .comp-container { + height: 100%; + overflow: hidden; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + } + .el-row{ + margin-bottom: 20px; + } + .el-row:last-child { + margin-bottom: 0; + } + .el-input{ + width: 100% !important; + } + .el-date-editor::v-deep{ + width: 100%; + } + .el-select{ + width: 100%; + } + .el-cascader{ + width: 100% !important; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> diff --git a/src/views/specialWorkSystem/workApplyManage/workTicket/index.vue b/src/views/specialWorkSystem/workApplyManage/workTicket/index.vue new file mode 100644 index 0000000..466fa00 --- /dev/null +++ b/src/views/specialWorkSystem/workApplyManage/workTicket/index.vue @@ -0,0 +1,671 @@ +<template> + <div class="home-container"> + <div style="height: 100%"> + <el-form :model="form" label-width="150px" :rules="applyRules" ref="ruleFormRef2"> +<!-- <blind-panel-form :bpForm="form.addForm" ref="additionalForm"></blind-panel-form>--> +<!-- <cut-line-form :clForm="form.addForm" ref="additionalForm"></cut-line-form>--> +<!-- <dirt-work-form :dwForm="form.addForm" ref="additionalForm"></dirt-work-form>--> + <fire-work-form :fwForm="form.addForm" ref="additionalForm"></fire-work-form> +<!-- <hang-load-form :hlForm="form.addForm" ref="additionalForm"></hang-load-form>--> +<!-- <high-work-form :hwForm="form.addForm" ref="additionalForm"></high-work-form>--> +<!-- <limited-space-form :lsForm="form.addForm" ref="additionalForm"></limited-space-form>--> +<!-- <temp-elect-form :teForm="form.addForm" ref="additionalForm"></temp-elect-form>--> + <div> + <div class="homeCard"> + <el-row> + <el-col :span="3"><el-button type="primary" size="default" @click="dialogAddWorker = true">添加作业人</el-button></el-col> + <el-col :span="21"> + <el-table :data="form.workerList" style="width: 100%"> + <el-table-column type="index" label="序号" width="100"/> + <el-table-column prop="worker" label="作业人"/> + <el-table-column prop="role" label="作业人角色" width="180"/> + <el-table-column prop="unit" label="所属单位" width="180" /> + <el-table-column prop="certificate" label="证书名称" width="180" /> + <el-table-column prop="certificateId" label="证书号" /> + <el-table-column fixed="right" label="操作" align="center" width="180"> + <template #default="scope"> + <el-button link type="danger" size="small" @click="deleteRow(scope.$index)">删除</el-button> + </template> + </el-table-column> + </el-table> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="作业地点" prop="workLocation"> + <el-input + v-model="form.workLocation" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="作业期限" prop="workTimeLine"> + <el-date-picker + v-model="form.workTimeLine" + type="daterange" + unlink-panels + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期" + :shortcuts="shortcuts" + /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="作业内容" prop="workContent"> + <el-input + v-model="form.workContent" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="作业单位" prop="workUnit"> + <el-input + v-model="form.workUnit" + placeholder="请输入" + class="input-with-select" + > + <template #append>选择作业单位</template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="8"> + <el-form-item label="作业负责人" prop="responsor"> + <el-input + v-model="form.responsor" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="监护人" prop="monitor"> + <el-input + v-model="form.monitor" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="监护人岗位" prop="monitorStation"> + <el-input + v-model="form.monitorStation" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="生产车间负责人" prop="workhouseLeader"> + <el-input + v-model="form.workhouseLeader" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="申请日期" prop="applyDate"> + <el-date-picker + size="large" + v-model="form.applyDate" + type="date" + placeholder="请选择" + style="width: 100%" + ></el-date-picker> + </el-form-item> + </el-col> + </el-row> + </div> + <div class="homeCard"> + <el-row> + <el-col :span="24"> + <el-form-item label="涉及的其他特殊作业" prop="otherSpecialWorks"> + <el-checkbox-group v-model="form.otherSpecialWorks"> + <el-checkbox label="动火作业" /> + <el-checkbox label="受限空间" /> + <el-checkbox label="高处作业" /> + <el-checkbox label="吊装作业" /> + <el-checkbox label="临时用电" /> + <el-checkbox label="设备检修" /> + <el-checkbox label="盲板抽堵" /> + <el-checkbox label="断路作业" /> + <el-checkbox label="动土作业" /> + </el-checkbox-group> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col> + <el-form-item label="防护用品" prop="protections"> + <el-cascader + v-model="form.protections" + :options="protectOption" + :props="{expandTrigger: 'hover'}" + @change="protectionsChange" + placeholder="请选择" + style="width: 100%" + /> + </el-form-item> + </el-col> + </el-row> + <el-row style="justify-content: center"> + <el-button type="primary" size="default" @click="dialogAddFile = true">点击添加安全交底和风险告知书</el-button> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="实施安全教育人" prop="safetyMan"> + <el-input + v-model="form.safetyMan" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search"/> + </template> + </el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="被教育人" prop="educated"> + <el-input + v-model="form.educated" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + </el-col> + </el-row> + </div> + </div> + </el-form> + <div class="applyBtn"> + <el-col :span="24" class="submitBtn"> + <el-button type="primary" size="large" plain @click="handleApply(ruleFormRef2)">发起申请</el-button> + </el-col> + </div> + <el-dialog v-model="dialogAddWorker" title="添加作业人"> + <el-form :model="addWorkerForm" label-width="120px" :rules="addWorkerRules" ref='ruleFormRef3'> + <el-form-item label="作业人" prop="worker"> + <el-input + v-model="addWorkerForm.worker" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + <el-form-item label="作业人角色" prop="role"> + <el-input + v-model="addWorkerForm.role" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + <el-form-item label="作业人角色" prop="unit"> + <el-input + v-model="addWorkerForm.unit" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + <el-form-item label="证书名称" prop="certificate"> + <el-input + v-model="addWorkerForm.certificate" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + <el-form-item label="证书号" prop="certificateId"> + <el-input + v-model="addWorkerForm.certificateId" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> + </template> + </el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="onSubmitAddForm(ruleFormRef3)" size="default">确认</el-button> + <el-button size="default" @click="cancleAdd">取消</el-button> + </el-form-item> + </el-form> + </el-dialog> + <el-dialog v-model="dialogAddFile" title="安全交底和风险告知"> + <el-form :model="saftyFileForm" label-width="0" ref="ruleFormRef" :rules="saftyFileRules"> + <el-form-item label="" prop="surrounding"> + <div>1.作业许可范围及作业环境:</div> + <el-input + v-model="saftyFileForm.surrounding" + :rows="2" + type="textarea" + placeholder="请输入" + /> + </el-form-item> + <el-form-item label="" prop="risk"> + <div>2.作业风险:</div> + <el-input + v-model="saftyFileForm.risk" + :rows="2" + type="textarea" + placeholder="请输入" + /> + </el-form-item> + <el-form-item label="" prop="protection"> + <div>3.防范措施(工艺、设备、个体防护等):</div> + <el-input + v-model="saftyFileForm.protection" + :rows="2" + type="textarea" + placeholder="请输入" + /> + </el-form-item> + <el-form-item label="" prop="emergency"> + <div>4.应急措施:</div> + <el-input + v-model="saftyFileForm.emergency" + :rows="2" + type="textarea" + placeholder="请输入" + /> + </el-form-item> + <el-form-item label="" prop="otherStuff"> + <div>5.其他注意事项:</div> + <el-input + v-model="saftyFileForm.otherStuff" + :rows="2" + type="textarea" + placeholder="请输入" + /> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="onSubmitAddFile(ruleFormRef)" size="default">确认</el-button> + <el-button size="default" @click="cancleAddFile">取消</el-button> + </el-form-item> + </el-form> + </el-dialog> + </div> + </div> +</template> + +<script lang="ts"> + import { toRefs, reactive, defineComponent, ref, defineAsyncComponent } from 'vue'; + import { storeToRefs } from 'pinia'; + import { initBackEndControlRoutes } from '/@/router/backEnd'; + import {useUserInfo} from "/@/stores/userInfo"; + import { Session } from '/@/utils/storage'; + import { Search } from '@element-plus/icons-vue' + import { ElMessage } from 'element-plus' + import type { FormInstance, FormRules } from 'element-plus' + let global: any = { + homeChartOne: null, + homeChartTwo: null, + homeCharThree: null, + dispose: [null, '', undefined], + }; + + interface stateType { + homeOne: Array <type> + } + interface type { + + } + export default defineComponent({ + name: 'workApplyForm', + components: { + fireWorkForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/fireWorkForm.vue')), + limitedSpaceForm: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/limitedSpaceForm.vue')), + hangLoadForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/hangLoadForm.vue')), + dirtWorkForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/dirtWorkForm.vue')), + cutLineForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/cutLineForm.vue')), + highWorkForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/highWorkForm.vue')), + tempElectForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/tempElectForm.vue')), + blindPanelForm: defineAsyncComponent(()=> import('/@/views/specialWorkSystem/workApplyManage/workApplyForm/components/blindPanelForm.vue')) + }, + setup() { + const userInfo = useUserInfo() + const { userInfos } = storeToRefs(userInfo); + const state = reactive<stateType>({ + homeOne:[{id:1,name:'安全基础信息系统'},{id:2,name:'双重预防系统'},{id:3,name:'系统2'},{id:4,name:'系统3'},{id:5,name:'系统4'}], + }); + const form = reactive({ + addForm: {}, + workerList: [], + workLocation: '', + workTimeLine: '', + workContent: '', + workUnit: '', + responsor: '', + monitor: '', + workMonitor: '', + monitorStation: '', + workhouseLeader: '', + applyDate: '', + otherSpecialWorks: [], + protections: '', + saftyFile: {}, + safetyMan: '', + educated: '' + }) + const dialogAddWorker = ref(false) + const dialogAddFile = ref(false) + const addWorkerForm = ref({ + worker: '', + role: '', + unit: '', + certificate: '', + certificateId: '' + }) + const saftyFileForm = reactive({ + surrounding: '', + risk: '', + protection: '', + emergency: '', + otherStuff: '' + }) + const shortcuts = [ + { + text: 'Last week', + value: () => { + const end = new Date() + const start = new Date() + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7) + return [start, end] + }, + }, + { + text: 'Last month', + value: () => { + const end = new Date() + const start = new Date() + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30) + return [start, end] + }, + }, + { + text: 'Last 3 months', + value: () => { + const end = new Date() + const start = new Date() + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90) + return [start, end] + }, + }, + ] + const protectOption = [ + { + value: 'guide', + label: 'Guide', + children: [ + { + value: 'disciplines', + label: 'Disciplines', + children: [ + { + value: 'consistency', + label: 'Consistency', + }, + { + value: 'feedback', + label: 'Feedback', + } + ], + }, + { + value: 'navigation', + label: 'Navigation', + children: [ + { + value: 'side nav', + label: 'Side Navigation', + } + ], + }, + ], + } + ] + const ruleFormRef = ref<FormInstance>() + const ruleFormRef2 = ref<FormInstance>() + const ruleFormRef3 = ref<FormInstance>() + const applyRules = reactive<FormRules>({ + extraForm: [{type: 'object', required: true,message: '此处不能为空'}], + workLocation: [{required: true,message: '此处不能为空'}], + workTimeLine: [{required: true,message: '此处不能为空'}], + workContent: [{required: true,message: '此处不能为空'}], + workUnit: [{required: true,message: '此处不能为空'}], + responsor: [{required: true,message: '此处不能为空'}], + monitor: [{required: true,message: '此处不能为空'}], + workMonitor: [{required: true,message: '此处不能为空'}], + monitorStation: [{required: true,message: '此处不能为空'}], + workhouseLeader: [{required: true,message: '此处不能为空'}], + applyDate: [{required: true,message: '此处不能为空'}], + otherSpecialWorks: [{type: 'array', required: true,message: '此处不能为空'}], + protections: [{required: true,message: '此处不能为空'}], + safetyMan: [{required: true,message: '此处不能为空'}], + educated: [{required: true,message: '此处不能为空'}] + }) + const addWorkerRules = reactive<FormRules>({ + worker: [{required: true,message: '此处不能为空'}], + role: [{required: true,message: '此处不能为空'}], + unit: [{required: true,message: '此处不能为空'}], + certificate: [{required: true,message: '此处不能为空'}], + certificateId: [{required: true,message: '此处不能为空'}] + }) + const saftyFileRules = reactive<FormRules>({ + surrounding: [{required: true,message: '该选项不能为空'}], + risk: [{required: true,message: '该选项不能为空'}], + protection: [{required: true,message: '该选项不能为空'} ], + emergency: [{required: true,message: '该选项不能为空'} ] + }) + const protectionsChange = (value) => { + console.log(value) + } + + const onSubmitAddForm = async (formEl: FormInstance | undefined) => { + if (!formEl) return + await formEl.validate((valid, fields) => { + if (valid) { + form.workerList.unshift(addWorkerForm.value) + addWorkerForm.value = { + worker: '', + role: '', + unit: '', + certificate: '', + certificateId: '' + } + dialogAddWorker.value = false + } else { + console.log('error submit!', fields) + } + }) + } + const onSubmitAddFile = () =>{ + + } + const cancleAdd = ()=> { + addWorkerForm.value = { + worker: '', + role: '', + unit: '', + certificate: '', + certificateId: '' + } + dialogAddWorker.value = false + } + const cancleAddFile = ()=>{ + + } + const deleteRow = (index) =>{ + form.workerList.splice( index,1) + } + const isValid = ref(false) + const additionalForm = ref(null) + const handleApply = async (formEl: FormInstance | undefined) =>{ + if (!formEl) return + const flag = additionalForm.value.validateForm() + await flag.then((res)=>{ + isValid.value = res + }) + await formEl.validate((valid, fields) => { + console.log(valid,'and',isValid.value) + if (valid && isValid.value) { + console.log('submit',form,fields) + ElMessage({ + message: '提交成功!', + type: 'success', + }) + } else { + // console.log('error submit!',form,fields) + ElMessage({ + message: '表单未填写完整', + type: 'error', + }) + } + }) + + } + // 折线图 + const renderMenu = async (value: string) => { + Session.set('projectId',value) + userInfos.value.projectId = value + await initBackEndControlRoutes(); + }; + return { + renderMenu, + form, + Search, + shortcuts, + protectOption, + dialogAddWorker, + dialogAddFile, + addWorkerForm, + saftyFileForm, + ruleFormRef, + ruleFormRef2, + ruleFormRef3, + additionalForm, + addWorkerRules, + saftyFileRules, + applyRules, + isValid, + handleApply, + cancleAddFile, + deleteRow, + cancleAdd, + onSubmitAddForm, + onSubmitAddFile, + protectionsChange, + ...toRefs(state), + }; + }, + }); +</script> + +<style scoped lang="scss"> + .home-container { + height: 100%; + overflow: hidden; + position: relative; + .homeCard{ + width: 100%; + padding: 20px; + background: #fff; + border-radius: 4px; + margin-bottom: 20px; + + &:last-of-type{ + margin-bottom: 100px; + } + } + .applyBtn{ + position: absolute; + width: 100%; + padding: 20px; + background: #fff; + bottom: 0; + left: 0; + height: 80px; + z-index: 999; + margin-bottom: 0; + border-radius: 0; + box-shadow: 0 -3px 8px rgba(150,150,150,.1); + } + .el-row{ + margin-bottom: 20px; + } + .el-row:last-child { + margin-bottom: 0; + } + .el-input{ + width: 100% !important; + } + .el-date-editor::v-deep{ + width: 100%; + } + .el-select{ + width: 100%; + } + .el-cascader{ + width: 100% !important; + } + .submitBtn{ + display: flex; + justify-content: center; + } + } +</style> -- Gitblit v1.9.2