From cfa8a00451d70915cbf3d9b48969856fc09f76b1 Mon Sep 17 00:00:00 2001 From: Admin <978517621@qq.com> Date: 星期四, 18 八月 2022 13:50:32 +0800 Subject: [PATCH] Default Changelist --- src/assets/warningScreen/riskprocast.jpg | 0 src/router/route.ts | 8 src/views/doublePrevent/dpIndex/index.vue | 28 +- src/views/intellectInspect/intelligentLine/index.vue | 38 +- src/views/riskWarningSys/warningBigScreen/index.vue | 407 +++++++++++++++++++++++++++++++++++++ src/views/specialWorkSystem/workApplyManage/workTicket/index.vue | 113 ++------- src/views/specialWorkSystem/workApplyManage/workApplyForm/index.vue | 24 - src/api/specialWorkSystem/workApply/fire/index.ts | 14 + src/assets/warningScreen/logo_dark.png | 0 9 files changed, 500 insertions(+), 132 deletions(-) diff --git a/src/api/specialWorkSystem/workApply/fire/index.ts b/src/api/specialWorkSystem/workApply/fire/index.ts new file mode 100644 index 0000000..ddf2bd3 --- /dev/null +++ b/src/api/specialWorkSystem/workApply/fire/index.ts @@ -0,0 +1,14 @@ +import request from '/@/utils/request'; + +export function fireApplyApi() { + return { + // 动火申请 + postFireApply: (data: object) => { + return request({ + url: import.meta.env.VITE_API_URL + `/work/apply/hot`, + method: 'post', + data: data + }); + } + }; +} diff --git a/src/assets/warningScreen/logo_dark.png b/src/assets/warningScreen/logo_dark.png new file mode 100644 index 0000000..8d9d810 --- /dev/null +++ b/src/assets/warningScreen/logo_dark.png Binary files differ diff --git a/src/assets/warningScreen/riskprocast.jpg b/src/assets/warningScreen/riskprocast.jpg new file mode 100644 index 0000000..e2cc4b9 --- /dev/null +++ b/src/assets/warningScreen/riskprocast.jpg Binary files differ diff --git a/src/router/route.ts b/src/router/route.ts index cbfd47e..5ee3c9e 100644 --- a/src/router/route.ts +++ b/src/router/route.ts @@ -103,5 +103,13 @@ meta: { title: '双重预防首页' } + }, + { + path: '/warningScreen', + name: 'warningScreen', + component: () => import('/@/views/riskWarningSys/warningBigScreen/index.vue'), + meta: { + title: '预警预报' + } } ]; diff --git a/src/views/doublePrevent/dpIndex/index.vue b/src/views/doublePrevent/dpIndex/index.vue index 562af77..14d3936 100644 --- a/src/views/doublePrevent/dpIndex/index.vue +++ b/src/views/doublePrevent/dpIndex/index.vue @@ -44,7 +44,7 @@ <div class="item-head"> <span>隐患整改情况</span> </div> - <div id="riskFix"></div> + <div class="riskFix" :id="riskFixId"></div> </div> <div class="table-item"> <div class="item-head"> @@ -84,7 +84,7 @@ <div class="item-head"> <span>隐患等级分布</span> </div> - <div id="riskLevel"></div> + <div class="riskLevel" :id="riskLevelId"></div> </div> </div> </el-scrollbar> @@ -146,6 +146,8 @@ classGroupList: [], inspectPointAllList: [] }); + const riskFixId = ref("eChartFix" + Date.now() + Math.random()) + const riskLevelId = ref("eChartLe" + Date.now() + Math.random()) // 页面载入时执行方法 onMounted(() => { @@ -200,14 +202,14 @@ // 隐患整改情况 const initRiskFix =()=>{ - var dom = document.getElementById('riskFix'); - var myChart = echarts.init(dom, null, { + const dom = document.getElementById(riskFixId.value); + let myChart = echarts.init(dom, null, { renderer: 'canvas', useDirtyRect: false }); - var app = {}; + let app = {}; - var option; + let option; option = { tooltip: { @@ -273,14 +275,14 @@ // 隐患整改情况 const initRiskLevel =()=>{ - var dom = document.getElementById('riskLevel'); - var myChart = echarts.init(dom, null, { + const dom = document.getElementById(riskLevelId.value); + let myChart = echarts.init(dom, null, { renderer: 'canvas', useDirtyRect: false }); - var app = {}; + let app = {}; - var option; + let option; option = { tooltip: { @@ -369,6 +371,8 @@ Refresh, Plus, router, + riskFixId, + riskLevelId, toRiskEve, toRiskStatus, toRevice, @@ -515,10 +519,10 @@ } } } - #riskFix{ + .riskFix{ height: 300px; } - #riskLevel{ + .riskLevel{ height: 300px } .deviceTable{ diff --git a/src/views/intellectInspect/intelligentLine/index.vue b/src/views/intellectInspect/intelligentLine/index.vue index 6fee9ce..bfb9b95 100644 --- a/src/views/intellectInspect/intelligentLine/index.vue +++ b/src/views/intellectInspect/intelligentLine/index.vue @@ -317,7 +317,7 @@ height: 24px; border-radius: 50%; position: absolute; - border: 1px solid rgba(0, 225, 255, 0.6); + border: 1px solid rgba(0, 114, 255, 0.6); top: -12px; left: 10px; @@ -331,7 +331,7 @@ -moz-border-radius: 50%; border: 1px solid #0072ff; border-radius: 50%; - background-color: #00e1ff; + background-color: #0072ff; z-index: 2; } .pulse { @@ -340,7 +340,7 @@ height: 48px; left: -13px; top: -13px; - border: 1px solid #00e1ff; + border: 1px solid #0072ff; -webkit-border-radius: 50%; -moz-border-radius: 50%; border-radius: 50%; @@ -352,7 +352,7 @@ -webkit-animation-iteration-count: infinite; -moz-animation-iteration-count: infinite; animation-iteration-count: infinite; - box-shadow: 1px 1px 30px #00e1ff; + box-shadow: 1px 1px 30px #0072ff; } .pulse1 { position: absolute; @@ -360,7 +360,7 @@ height: 48px; left: -13px; top: -13px; - border: 1px solid #00e1ff; + border: 1px solid #0072ff; -webkit-border-radius: 50%; -moz-border-radius: 50%; border-radius: 50%; @@ -372,7 +372,7 @@ -webkit-animation-iteration-count: infinite; -moz-animation-iteration-count: infinite; animation-iteration-count: infinite; - box-shadow: 1px 1px 30px #00e1ff; + box-shadow: 1px 1px 30px #0072ff; } } & > div { @@ -525,7 +525,7 @@ height: 24px; border-radius: 50%; position: absolute; - border: 1px solid rgba(0, 225, 255, 0.6); + border: 1px solid rgba(0, 114, 255, 0.6); top: -12px; left: 10px; @@ -537,9 +537,9 @@ top: 5px; -webkit-border-radius: 50%; -moz-border-radius: 50%; - border: 1px solid #0072ff; + border: 1px solid #0072FF; border-radius: 50%; - background-color: #00e1ff; + background-color: #0072FF; z-index: 2; } .pulse { @@ -548,7 +548,7 @@ height: 48px; left: -13px; top: -13px; - border: 1px solid #00e1ff; + border: 1px solid #0072FF; -webkit-border-radius: 50%; -moz-border-radius: 50%; border-radius: 50%; @@ -560,7 +560,7 @@ -webkit-animation-iteration-count: infinite; -moz-animation-iteration-count: infinite; animation-iteration-count: infinite; - box-shadow: 1px 1px 30px #00e1ff; + box-shadow: 1px 1px 30px #0072FF; } .pulse1 { position: absolute; @@ -568,7 +568,7 @@ height: 48px; left: -13px; top: -13px; - border: 1px solid #00e1ff; + border: 1px solid #0072FF; -webkit-border-radius: 50%; -moz-border-radius: 50%; border-radius: 50%; @@ -580,7 +580,7 @@ -webkit-animation-iteration-count: infinite; -moz-animation-iteration-count: infinite; animation-iteration-count: infinite; - box-shadow: 1px 1px 30px #00e1ff; + box-shadow: 1px 1px 30px #0072FF; } } & > div { @@ -734,7 +734,7 @@ height: 24px; border-radius: 50%; position: absolute; - border: 1px solid rgba(0, 225, 255, 0.6); + border: 1px solid rgba(0, 114, 255, 0.6); top: -12px; left: 2px; @@ -748,7 +748,7 @@ -moz-border-radius: 50%; border: 1px solid #0072ff; border-radius: 50%; - background-color: #00e1ff; + background-color: #0072ff; z-index: 2; } .pulse { @@ -757,7 +757,7 @@ height: 48px; left: -13px; top: -13px; - border: 1px solid #00e1ff; + border: 1px solid #0072ff; -webkit-border-radius: 50%; -moz-border-radius: 50%; border-radius: 50%; @@ -769,7 +769,7 @@ -webkit-animation-iteration-count: infinite; -moz-animation-iteration-count: infinite; animation-iteration-count: infinite; - box-shadow: 1px 1px 30px #00e1ff; + box-shadow: 1px 1px 30px #0072ff; } .pulse1 { position: absolute; @@ -777,7 +777,7 @@ height: 48px; left: -13px; top: -13px; - border: 1px solid #00e1ff; + border: 1px solid #0072ff; -webkit-border-radius: 50%; -moz-border-radius: 50%; border-radius: 50%; @@ -789,7 +789,7 @@ -webkit-animation-iteration-count: infinite; -moz-animation-iteration-count: infinite; animation-iteration-count: infinite; - box-shadow: 1px 1px 30px #00e1ff; + box-shadow: 1px 1px 30px #0072ff; } } & > div { diff --git a/src/views/riskWarningSys/warningBigScreen/index.vue b/src/views/riskWarningSys/warningBigScreen/index.vue new file mode 100644 index 0000000..14a11d4 --- /dev/null +++ b/src/views/riskWarningSys/warningBigScreen/index.vue @@ -0,0 +1,407 @@ +<template> + <div class="container"> + <div class="header-content"> + <div class="logo"> + <img src="../../../assets/warningScreen/logo_dark.png" alt="" /> + </div> + <div class="title">风险预警预报平台</div> + <div class="title-right"> +<!-- <img src="themeStyle.skinIcon" class="qiehuan" @click="changeTheme" />--> + <span class="datetime">{{currentTime}}</span> + <div class="btns"> + <div class="fullbtn" @click="onScreenfullClick"> + <div class="toFull"> + <i class="iconfont" :title="isScreenfull ? $t('message.user.title6') : $t('message.user.title5')" :class="!isScreenfull ? 'icon-fullscreen' : 'icon-tuichuquanping'"></i> + </div> + <div>全屏</div> + </div> + <div class="backBtn" @click="goBack()"> + <img src="../../../assets/loginPage/back-icon.png"/> + <div>退出</div> + </div> + </div> + </div> + </div> + <div class="main-content"> + <div class="main-left"> + <div class="left-top"> + + </div> + <div class="left-mid"> + + </div> + <div class="left-bottom"> + + </div> + </div> + <div class="main-middle"> + <div class="mid-top"> + + </div> + <div class="mid-bottom"> + <div class="mid-bot-l"> + + </div> + <div class="mid-bot-m"> + + </div> + <div class="mid-bot-r"> + + </div> + </div> + </div> + <div class="main-right"> + <div class="right-top"> + + </div> + <div class="right-mid"> + + </div> + <div class="right-bottom"> + + </div> + </div> + </div> + </div> +</template> + +<script lang="ts"> + import screenfull from 'screenfull'; + import { toRefs, reactive, ref, onMounted } from 'vue'; + import { ElTable } from 'element-plus'; + import { FormInstance, FormRules, ElMessage } from 'element-plus'; + import { safetyRiskEventApi } from '/@/api/doublePreventSystem/safetyRiskEvent/index.ts'; + import { useRouter } from 'vue-router'; + import {hiddenReportApi} from "/@/api/doublePreventSystem/report"; + import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice/index.ts'; + import * as echarts from 'echarts/core'; + import {TooltipComponent, TooltipComponentOption, LegendComponent, LegendComponentOption} from 'echarts/components'; + import {PieChart, PieSeriesOption} from 'echarts/charts'; + import {LabelLayout} from 'echarts/features'; + import {CanvasRenderer} from 'echarts/renderers'; + echarts.use([TooltipComponent, LegendComponent, PieChart, CanvasRenderer, LabelLayout]); + // 定义接口来定义对象的类型 + interface stateType { + isScreenfull: boolean; + currentTime: string + } + export default { + name: 'warningScreen', + components: {}, + setup() { + const router = useRouter(); + const state = reactive<stateType>({ + isScreenfull: false, + currentTime: '' + }); + + // 页面载入时执行方法 + onMounted(() => { + setInterval(() => { + state.currentTime = new Date().toLocaleString(); + console.log(state.currentTime) + }, 1000); + }); + + // 全屏 + const onScreenfullClick = () => { + if (!screenfull.isEnabled) { + ElMessage.warning('暂不不支持全屏'); + return false; + } + screenfull.toggle(); + screenfull.on('change', () => { + if (screenfull.isFullscreen) { + state.isScreenfull = true; + } else { + state.isScreenfull = false; + } + }); + }; + + // 返回上一页 + const goBack = () => { + window.history.go(-1); + }; + + // 隐患状态列表 + // const getDeviceRecord = async () => { + // const data = { pageSize: state.pageSize, pageIndex: state.pageIndex}; + // let res = await productionDeviceApi().getProductionDeviceList(data) + // if (res.data.code === '200'){ + // state.deviceData = res.data.data + // } else { + // ElMessage({ + // type: 'warning', + // message: res.data.msg + // }); + // } + // }; + + // 隐患整改情况 + // const initRiskFix =()=>{ + // var dom = document.getElementById('riskFix'); + // var myChart = echarts.init(dom, null, { + // renderer: 'canvas', + // useDirtyRect: false + // }); + // var app = {}; + // + // var option; + // + // option = { + // tooltip: { + // trigger: 'item' + // }, + // legend: { + // bottom: '5%', + // left: 'center' + // }, + // series: [ + // { + // name: 'Access From', + // type: 'pie', + // radius: ['35%', '60%'], + // avoidLabelOverlap: false, + // itemStyle: { + // borderRadius: 6, + // borderColor: '#fff', + // borderWidth: 2 + // }, + // label: { + // alignTo: 'labelLine', + // formatter: '{name|{b}}\n{value|{c}}', + // minMargin: 5, + // edgeDistance: 5, + // lineHeight: 15, + // rich: { + // name: { + // fontSize: 14, + // color: '#666' + // } + // } + // }, + // labelLine: { + // length: 15, + // maxSurfaceAngle: 80 + // }, + // emphasis: { + // label: { + // show: true, + // fontSize: '40', + // fontWeight: 'bold' + // } + // }, + // data: [ + // { value: 1048, name: '整改中' }, + // { value: 735, name: '待验收' }, + // { value: 580, name: '延期整改' }, + // { value: 484, name: '超期未整改' }, + // { value: 300, name: '已验收' } + // ], + // center: ['50%','40%'] + // } + // ] + // }; + // + // if (option && typeof option === 'object') { + // myChart.setOption(option); + // } + // + // window.addEventListener('resize', myChart.resize); + // } + + return { + router, + onScreenfullClick, + goBack, + ...toRefs(state) + }; + } + }; +</script> + +<style scoped lang="scss"> + $homeNavLengh: 8; + + @media screen and (min-width: 1366px) { + + } + + @media screen and (min-width: 1024px) and (max-width: 1366px){ + + } + + @media screen and (max-width: 1024px) { + + } + .container { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + background: url('../../../assets/warningScreen/riskprocast.jpg') no-repeat center; + background-size: 100% 100%; + color: #11FEEE; + + .header-content { + width: 100%; + height: 80px; + padding: 0 20px; + font-size: 20px; + display: flex; + align-items: center; + justify-content: space-around; + z-index: 9; + + .logo { + width: 27%; + display: flex; + align-items: center; + justify-content: center; + img { + height: 35px; + width: 128px; + } + } + .title { + width: 46%; + font-size: 26px; + font-weight: bolder; + line-height: 80px; + text-align: center; + letter-spacing: 2px; + } + + .title-right { + width: 27%; + height: 90px; + display: flex; + align-items: center; + justify-content: space-around; + font-size: 15px; + padding-left: 30px; + + .datetime { + color: #11FEEE; + } + .btns{ + display: flex; + align-items: center; + + &>div{ + display: flex; + align-items: center; + align-items: center; + font-size: 15px; + margin-right: 20px; + + img{ + width: 16px; + height: auto; + } + div{ + margin-left: 6px; + } + } + } + } + } + .main-content{ + width: 100%; + height: 100%; + padding: 20px; + display: flex; + align-items: center; + justify-content: space-between; + + .main-left{ + width: calc(25% - 10px); + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + + .left-top{ + width: 100%; + height: calc((100%/3) - (40px/3)); + } + .left-mid{ + width: 100%; + height: calc((100%/3) - (40px/3)); + } + .left-bottom{ + width: 100%; + height: calc((100%/3) - (40px/3)); + } + } + .main-middle{ + width: calc(50% - 20px); + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + + .mid-top{ + width: 100%; + height: calc((200%/3) - (80px/3) + 20px); + } + + .mid-bottom{ + display: flex; + width: 100%; + height: calc(100% - (200%/3) + (80px/3) - 40px); + justify-content: space-between; + + &>div { + position: relative; + width: calc((100% - 40px)/3); + border-radius: 8px; + overflow: hidden; + + .chart-tit { + position: absolute; + left: 20px; + top: 20px; + font-weight: 700; + z-index: 3; + } + } + } + } + .main-right{ + width: calc(25% - 10px); + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + + .right-top{ + width: 100%; + height: calc((100%/3) - (40px/3)); + } + .right-mid{ + width: 100%; + height: calc((100%/3) - (40px/3)); + } + .right-bottom{ + width: 100%; + height: calc((100%/3) - (40px/3)); + } + } + } + } + .el-input { + width: 100% !important; + } + .el-date-editor::v-deep { + width: 100%; + } + .el-select { + width: 100%; + } +</style> \ No newline at end of file diff --git a/src/views/specialWorkSystem/workApplyManage/workApplyForm/index.vue b/src/views/specialWorkSystem/workApplyManage/workApplyForm/index.vue index 466fa00..f73f27d 100644 --- a/src/views/specialWorkSystem/workApplyManage/workApplyForm/index.vue +++ b/src/views/specialWorkSystem/workApplyManage/workApplyForm/index.vue @@ -219,9 +219,7 @@ </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> + <el-button type="primary" size="large" plain @click="handleApply(ruleFormRef2)">发起申请</el-button> </div> <el-dialog v-model="dialogAddWorker" title="添加作业人"> <el-form :model="addWorkerForm" label-width="120px" :rules="addWorkerRules" ref='ruleFormRef3'> @@ -624,26 +622,20 @@ .homeCard{ width: 100%; padding: 20px; + box-sizing: border-box; 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; + z-index: 5; box-shadow: 0 -3px 8px rgba(150,150,150,.1); + display: flex; + align-items: center; + justify-content: center; } .el-row{ margin-bottom: 20px; @@ -662,10 +654,6 @@ } .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 index f73f27d..6310e43 100644 --- a/src/views/specialWorkSystem/workApplyManage/workTicket/index.vue +++ b/src/views/specialWorkSystem/workApplyManage/workTicket/index.vue @@ -2,32 +2,20 @@ <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> + <el-col :span="12"> + <el-form-item label="作业人" prop="operatorUid"> + <el-input + v-model="form.operatorUid" + placeholder="请输入" + class="input-with-select" + > + <template #append> + <el-button :icon="Search" /> </template> - </el-table-column> - </el-table> + </el-input> + </el-form-item> </el-col> </el-row> <el-row> @@ -216,7 +204,6 @@ </el-col> </el-row> </div> - </div> </el-form> <div class="applyBtn"> <el-button type="primary" size="large" plain @click="handleApply(ruleFormRef2)">发起申请</el-button> @@ -350,56 +337,34 @@ 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], - }; + import { fireApplyApi } from '/@/api/specialWorkSystem/workApply/fire'; + interface stateType { - homeOne: Array <type> - } - interface type { - + form: Object } 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')) - }, + name: 'workTicket', + components: {}, 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'}], + form: { + operatorUid: [], + workType: null, + workLevel: null, + workContent: '', + workLocation: '', + workDetail:{ + hotMethod: '', + otherSpecialWork: [] + }, + expStartTime: '', + expEndTime: '' + }, + }); - 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({ @@ -480,23 +445,6 @@ 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: '此处不能为空'}], @@ -599,7 +547,6 @@ additionalForm, addWorkerRules, saftyFileRules, - applyRules, isValid, handleApply, cancleAddFile, -- Gitblit v1.9.2