From 7df64634d3d7b292713eebfa008c40b3f5f9f65f Mon Sep 17 00:00:00 2001 From: shj <1790240199@qq.com> Date: 星期二, 20 九月 2022 15:57:03 +0800 Subject: [PATCH] 修改 --- src/components/equipmentDailog/Dailog.vue | 976 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 704 insertions(+), 272 deletions(-) diff --git a/src/components/equipmentDailog/Dailog.vue b/src/components/equipmentDailog/Dailog.vue index 6e2aed7..9ed675f 100644 --- a/src/components/equipmentDailog/Dailog.vue +++ b/src/components/equipmentDailog/Dailog.vue @@ -1,300 +1,351 @@ <template> - <el-dialog v-model="dialogVisible" :fullscreen="full" title="新建仪器仪表" width="60%"> + <el-dialog v-model="dialogVisible" :fullscreen="full" @close="resetForm(ruleFormRef)" draggable :title="titles" width="60%"> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" label-width="120px" class="formType"> - <el-form-item label="装置设施名称" size="default"> - <el-input v-model="form.name" placeholder="请填写装置设施名称" /> + <el-form :model="form" ref="ruleFormRef" :rules="rules" :disabled="disabled" label-width="120px" class="formType"> + <el-form-item label="装置设施名称" size="default" prop="qName"> + <el-input v-model="form.qName" placeholder="请填写装置设施名称" /> </el-form-item> - <el-form-item label="装置设施位号" size="default"> - <el-input v-model="form.name" placeholder="请填写装置设施位号" /> + <el-form-item label="装置设施位号" size="default" prop="positionNum"> + <el-input disabled v-model="form.positionNum" placeholder="请填写装置设施位号" /> </el-form-item> - <el-form-item label="装置设施用途" size="default"> - <el-input v-model="form.name" placeholder="请填写装置设施用途" /> + <el-form-item label="装置设施用途" size="default" prop="qUsage"> + <el-input v-model="form.qUsage" placeholder="请填写装置设施用途" /> </el-form-item> - <el-form-item label="装置设施型号" size="default"> - <el-input v-model="form.name" placeholder="请填写装置设施型号" /> + <el-form-item label="装置设施型号" size="default" prop="model"> + <el-input v-model="form.model" placeholder="请填写装置设施型号" /> </el-form-item> - <el-form-item label="类型/类别外键" size="default"> - <el-input v-model="form.name" 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="请选择"> + <!-- <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-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> + <el-form-item label="设置部位" size="default" prop="setPart"> + <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" 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="请填写使用期限" /> + </el-form-item> + <el-form-item label="生命周期" size="default" prop="lifeCycle"> + <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-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" 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%"> + <el-option label="维修中" :value="1" /> + <el-option label="已修好" :value="2" /> + </el-select> + </el-form-item> + <el-form-item label="停用状态" size="default" prop="stopStatus"> + <el-select v-model="form.stopStatus" placeholder="请选择" style="width: 100%"> + <el-option label="停用" :value="1" /> + <el-option label="在用" :value="2" /> + <el-option label="维修" :value="3" /> + <el-option label="报废" :value="4" /> + </el-select> + </el-form-item> + <el-form-item label="上次检查日期" size="default" prop="previousCheckDate"> + <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" 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" 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" 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" 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="请选择"> <template #append> - <el-button :icon="Search" @click="openRegion"></el-button> + <el-button :icon="Search" @click="openUser(1)"></el-button> </template> </el-input> </el-form-item> - <el-form-item label="单位部门" size="default"> - <el-select v-model="form.region" placeholder="请选择" style="width: 100%"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> + <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-form-item> + <el-form-item label="供应商" size="default" prop="supplyName"> + <el-input v-model="form.supplyName" placeholder="请填写供应商" /> + </el-form-item> + <el-form-item label="使用说明" size="default" prop="useMemo"> + <el-input v-model="form.useMemo" placeholder="请填写使用说明" /> + </el-form-item> + <el-form-item label="是否检查" size="default" prop="isNeedCheck"> + <el-select v-model="form.isNeedCheck" placeholder="请选择" style="width: 100%"> + <el-option label="是" :value="1" /> + <el-option label="否" :value="2" /> </el-select> </el-form-item> - <el-form-item label="设置部位" size="default"> - <el-input v-model="form.name" placeholder="请填写设置部位" /> + <el-form-item label="检查周期" size="default" prop="checkCycle"> + <el-input v-model="form.checkCycle" placeholder="请填写检查周期" /> </el-form-item> - <el-form-item label="生产日期" size="default"> - <el-date-picker v-model="form.date1" :size="large" type="date" placeholder="选择日期时间" style="width: 100%" /> + <el-form-item label="检查提前提醒" size="default" prop="checkWarn"> + <el-input v-model="form.checkWarn" placeholder="请填写检查提前提醒" /> </el-form-item> - <el-form-item label="使用期限(天)" size="default"> - <el-input v-model="form.name" placeholder="请填写使用期限" /> - </el-form-item> - <el-form-item label="生命周期" size="default"> - <el-select v-model="form.region" placeholder="请选择" style="width: 100%"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> + <el-form-item label="是否检测" size="default" prop="isNeedTest"> + <el-select v-model="form.isNeedTest" placeholder="请选择" style="width: 100%"> + <el-option label="是" :value="1" /> + <el-option label="否" :value="2" /> </el-select> </el-form-item> - <el-form-item label="投用日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> + <el-form-item label="检测周期" size="default" prop="testCycle"> + <el-input v-model="form.testCycle" placeholder="请填写检测周期" /> </el-form-item> - <el-form-item label="维修状态" size="default"> - <el-select v-model="form.region" placeholder="请选择" style="width: 100%"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> + <el-form-item label="检测提前提醒" size="default" prop="testWarn"> + <el-input v-model="form.testWarn" placeholder="请填写检测提前提醒" /> + </el-form-item> + <el-form-item label="是否保养" size="default" prop="isNeedTakecare"> + <el-select v-model="form.isNeedTakecare" placeholder="请选择" style="width: 100%"> + <el-option label="是" :value="1" /> + <el-option label="否" :value="2" /> </el-select> </el-form-item> - <el-form-item label="停用状态" size="default"> - <el-select v-model="form.region" placeholder="请选择" style="width: 100%"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> - </el-select> + <el-form-item label="检查内容" size="default" prop="checkContent"> + <el-input v-model="form.checkContent" placeholder="请填写检查内容" /> </el-form-item> - <el-form-item label="上次检查日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> + <el-form-item label="负责部门" size="default" prop="leadingDepartmentId"> + <el-tree-select v-model="form.leadingDepartmentId" :data="data" check-strictly="true" class="w100" :props="propse" placeholder="请选择" /> </el-form-item> - <el-form-item label="上次检测日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> + <el-form-item label="检查指标" size="default" prop="checkPoint"> + <el-input v-model="form.checkPoint" placeholder="请填写检查指标" /> </el-form-item> - <el-form-item label="上次保养日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> + <el-form-item label="预警值" size="default" prop="alertNum"> + <el-input v-model="form.alertNum" placeholder="请填写预警值" /> </el-form-item> - <el-form-item label="下次检查日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> + <el-form-item label="联锁值" size="default" prop="lockNum"> + <el-input v-model="form.lockNum" placeholder="请填写联锁值" /> </el-form-item> - <el-form-item label="下次检测日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> + <el-form-item label="停用理由" size="default" prop="stopReason"> + <el-input v-model="form.stopReason" placeholder="请填写停用理由" /> </el-form-item> - <el-form-item label="下次保养日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> + <el-form-item label="停用后措施" size="default" prop="afterStopStep"> + <el-input v-model="form.afterStopStep" placeholder="请填写停用后措施" /> </el-form-item> - <el-form-item label="负责人" size="default"> - <el-input v-model="form.name" placeholder="请选择"> + <el-form-item label="实际停用日期" size="default" prop="actualStopDate"> + <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="请选择"> <template #append> - <el-button :icon="Search" @click="openUser"></el-button> + <el-button :icon="Search" @click="openUser(2)"></el-button> </template> </el-input> </el-form-item> - <el-form-item label="负责人部门" size="default"> - <el-select v-model="form.region" placeholder="请选择" style="width: 100%"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> - </el-select> + <el-form-item label="停用提交日期" size="default" prop="stopSubmitDate"> + <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"> - <el-input v-model="form.name" placeholder="请填写供应商" /> + <el-form-item label="恢复理由" size="default" prop="recoveryReason"> + <el-input v-model="form.recoveryReason" placeholder="请填写恢复理由" /> </el-form-item> - <el-form-item label="使用说明" size="default"> - <el-input v-model="form.name" placeholder="请填写使用说明" /> + <el-form-item label="恢复填报日期" size="default" prop="recoverySubmitDate"> + <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%" + /> </el-form-item> - <el-form-item label="是否检查" size="default"> - <el-select v-model="form.region" placeholder="请选择" style="width: 100%"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> - </el-select> + <el-form-item label="实际恢复日期" size="default" prop="actualRecoveryDate"> + <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%" + /> </el-form-item> - <el-form-item label="检查周期" size="default"> - <el-input v-model="form.name" placeholder="请填写检查周期" /> + <el-form-item label="报废理由" size="default" prop="destoryReason"> + <el-input v-model="form.destoryReason" placeholder="请填写报废理由" /> </el-form-item> - <el-form-item label="检查提前提醒" size="default"> - <el-input v-model="form.name" placeholder="请填写检查提前提醒" /> + <el-form-item label="报废填报日期" size="default" prop="destorySubmitDate"> + <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%" + /> </el-form-item> - <el-form-item label="是否检测" size="default"> - <el-select v-model="form.region" placeholder="请选择" style="width: 100%"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> - </el-select> + <el-form-item label="实际报废日期" size="default" prop="actualDestoryDate"> + <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%" + /> </el-form-item> - <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.name" placeholder="请填写检测提前提醒" /> - </el-form-item> - <el-form-item label="是否保养" size="default"> - <el-select v-model="form.region" placeholder="请选择" style="width: 100%"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> - </el-select> - </el-form-item> - <el-form-item label="检查内容" size="default"> - <el-input v-model="form.name" placeholder="请填写检查内容" /> - </el-form-item> - <el-form-item label="负责部门" size="default"> - <el-select v-model="form.region" placeholder="请选择" style="width: 100%"> - <el-option label="Zone one" value="shanghai" /> - <el-option label="Zone two" value="beijing" /> - </el-select> - </el-form-item> - <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.name" placeholder="请填写预警值" /> - </el-form-item> - <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.name" placeholder="请填写停用理由" /> - </el-form-item> - <el-form-item label="停用后措施" size="default"> - <el-input v-model="form.name" placeholder="请填写停用后措施" /> - </el-form-item> - <el-form-item label="实际停用日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - <el-form-item label="停用提交人" size="default"> - <el-input v-model="form.name" placeholder="请选择"> - <template #append> - <el-button :icon="Search" @click="openUser"></el-button> - </template> - </el-input> - </el-form-item> - <el-form-item label="停用提交日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - <el-form-item label="恢复理由" size="default"> - <el-input v-model="form.name" placeholder="请填写恢复理由" /> - </el-form-item> - <el-form-item label="恢复填报日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - <el-form-item label="实际恢复日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - <el-form-item label="报废理由" size="default"> - <el-input v-model="form.name" placeholder="请填写报废理由" /> - </el-form-item> - <el-form-item label="报废填报日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> - </el-form-item> - <el-form-item label="实际报废日期" size="default"> - <el-date-picker v-model="form.date1" type="date" placeholder="选择日期时间" style="width: 100%" /> + <el-form-item label="保养周期" size="default" prop="takecareCycle "> + <el-input v-model="form.takecareCycle" placeholder="请填写保养周期" /> </el-form-item> </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-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" prop="address" label="保养负责人单位" /> - <el-table-column align="center" prop="address" label="操作"> - <template #default> - <el-button link type="primary" size="small">查看</el-button> + <el-button type="primary" size="default" :disabled="disabled" @click="openMaintenance('新增', '')">新增</el-button> + <el-table :data="form.takecareDetailList" style="width: 100%"> + <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="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> </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="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" prop="address" label="检测内容" /> - <el-table-column align="center" prop="address" label="检测结果" /> - <el-table-column align="center" prop="address" label="检测状态" /> - <el-table-column align="center" prop="address" label="操作"> - <template #default> - <el-button link type="primary" size="small">查看</el-button> + <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="testPersonName" label="检测人" /> + <el-table-column align="center" prop="testDate" :formatter="timeDate" label="检测日期" /> + <el-table-column align="center" prop="testPersonDepartmentName" label="检测人单位" /> + <el-table-column align="center" prop="testMemo" 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"> + <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> </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-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" prop="address" label="维修负责人" /> - <el-table-column align="center" prop="address" label="维修负责人单位" /> - <el-table-column align="center" prop="address" label="维修开始日期" /> - <el-table-column align="center" prop="address" label="维修结束日期" /> - <el-table-column align="center" prop="address" label="操作"> - <template #default> - <el-button link type="primary" size="small">查看</el-button> + <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" 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="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> </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-table :data="tableData" style="width: 100%"> - <el-table-column align="center" type="index" label="序号" width="75" /> - <el-table-column align="center" prop="name" label="检查内容" /> - <el-table-column align="center" prop="address" label="检查指标" /> - <el-table-column align="center" prop="address" label="单位" /> - <el-table-column align="center" prop="address" label="巡检部位" /> - <el-table-column align="center" prop="address" label="频次" /> - <el-table-column align="center" prop="address" label="操作"> - <template #default> - <el-button link type="primary" size="small">查看</el-button> + <el-button type="primary" size="default" :disabled="disabled" @click="openStandard('新增', '')">新增</el-button> + <el-table :data="form.checkStandardeDetailList" style="width: 100%"> + <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="单位" /> + <el-table-column align="center" prop="checkPart" label="巡检部位" /> + <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> </template> </el-table-column> </el-table> </el-tab-pane> <el-tab-pane label="巡检记录" size="default" name="five"> - <el-table :data="tableData" style="width: 100%"> + <el-table :data="name" style="width: 100%"> <el-table-column align="center" type="selection" width="75" /> <el-table-column align="center" sortable prop="name" label="任务编号" /> <el-table-column align="center" sortable prop="address" label="任务名称" /> <el-table-column align="center" sortable prop="address" label="点位类型" /> <el-table-column align="center" sortable prop="address" label="检查频次" /> - <el-table-column align="center" sortable prop="address" label="巡检时间" /> + <el-table-column align="center" sortable prop="address" :formatter="timeDate" label="巡检时间" /> <el-table-column align="center" sortable prop="address" label="巡检人" /> </el-table> </el-tab-pane> <el-tab-pane label="保养维修标准" name="six" v-if="Dailogtype"> - <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"></div> - </template> - </el-upload> + <uploaderFile :fileList="fileList" :systemName="'EQUIPMENT'" :disabled="disabled" + @successUploader="successUploader"></uploaderFile> </el-tab-pane> </el-tabs> <template #footer> <span class="dialog-footer"> - <el-button @click="dialogVisible = false">关闭</el-button> - <el-button type="primary" @click="dialogVisible = false">确定</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> <regionDailog ref="regionShow"></regionDailog> - <DailogSearchUser ref="UserShow"></DailogSearchUser> - <maintenanceDailog ref="maintenanceShow"></maintenanceDailog> - <detectDailog ref="detectShow"></detectDailog> - <repairDailog ref="repairShow"></repairDailog> - <standardDailog ref="standardShow"></standardDailog> + <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, reactive } from 'vue'; @@ -304,52 +355,323 @@ import maintenanceDailog from './maintenanceDailog.vue'; import detectDailog from './detectDailog.vue'; import repairDailog from './repairDailog.vue'; +import { timeDate } from '/@/assets/index.ts'; 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'; +import uploaderFile from '/@/components/uploaderFile/index.vue'; export default defineComponent({ - components: { categoryDailog, regionDailog, DailogSearchUser, maintenanceDailog, detectDailog, repairDailog, standardDailog }, - setup() { + components: { categoryDailog, regionDailog, DailogSearchUser, maintenanceDailog, + detectDailog, repairDailog, standardDailog,uploaderFile }, + setup(props, { emit }) { const dialogVisible = ref(false); - const form = reactive({ - name: '', - region: '', - date1: '', - date2: '', - delivery: false, - type: [], - resource: '', - desc: '', + const ruleFormRef = ref<FormInstance>(); + const form = ref({ + supplyName: '', + + nextTestDate: '', + + qUsage: '', + + departmentId: '', + + produceTime: '', + + actualStopDate: '', + + takecareDetailList: [], + + infoType: '', + + leadingDepartmentId: '', + + useEndDay: '', + + previousTakecareDate: '', + + previousCheckDate: '', + + model: '', + + stopStatus: '', + + testWarn: '', + + stopSubmitDate: '', + + repairStatus: '', + + takecareStardardeDetailList: [ + ], + + nextCheckDate: '', + + checkCycle: '', + + checkPoint: '', + + leadingPersonId: '', + leadingPersonName: '', + + qName: '', + + nextTakecareDate: '', + + setPart: '', + + checkStandardeDetailList: [], + + actualDestoryDate: '', + + isNeedTest: '', + + alertNum: '', + + checkContent: '', + + useMemo: '', + + previousTestDate: '', + + isNeedTakecare: '', + + destoryReason: '', + + checkDetailList: [], + + positionNum: '', + + testCycle: '', + + recoveryReason: '', + + isNeedCheck: '', + + actualRecoveryDate: '', + + leadingPersonDepartmentId: '', + + stopReason: '', + + destorySubmitDate: '', + + testDetailList: [], + + checkWarn: '', + + repaireDetailList: [], + + equipmentTypeId: '', + + useDate: '', + + recoverySubmitDate: '', + takecareCycle:"", + + lockNum: '', + + stopSubmitPersonId: '', + stopSubmitPersonName: '', + afterStopStep: '', + + lifeCycle: '', + + delCheckStandardeDetails: '', + + delTakecareStardardeDetails: '', + + delTakecareDetails: '', + + delRepaireDetails: '', + + delTestDetails: '', }); + const titles = ref(); + const titleT = ref(); + const disabled = ref(false); const Dailogtype = ref(false); - const openDailog = (type: boolean) => { + const openDailog = (title: string, type: boolean, id: number, num: any) => { dialogVisible.value = true; + titleT.value = title; + department(); Dailogtype.value = type; + if (num == 0) { + titles.value = `${title}仪表信息`; + form.value.infoType = num; + } else if (num == 1) { + titles.value = `${title}设备设施`; + form.value.infoType = num; + } else if (num == 2) { + titles.value = `${title}设备设施`; + form.value.infoType = num; + } + + disabled.value = title == '查看' ? true : false; + if (title == '查看' || title == '修改') + facilityManagementApi() + .getequipmentInfoDetail(id) + .then((res) => { + if (res.data.code == 200) { + form.value = res.data.data; + + //初始化日期格式 + form.value.actualDestoryDate = timeC(form.value.actualDestoryDate); + form.value.actualRecoveryDate = timeC(form.value.actualRecoveryDate); + form.value.actualStopDate = timeC(form.value.actualStopDate); + form.value.destorySubmitDate = timeC(form.value.destorySubmitDate); + form.value.nextCheckDate = timeC(form.value.nextCheckDate); + form.value.nextTakecareDate = timeC(form.value.nextTakecareDate); + form.value.nextTestDate = timeC(form.value.nextTestDate); + form.value.previousCheckDate = timeC(form.value.previousCheckDate); + form.value.previousTakecareDate = timeC(form.value.previousTakecareDate); + form.value.previousTestDate = timeC(form.value.previousTestDate); + form.value.produceTime = timeC(form.value.produceTime); + form.value.recoverySubmitDate = timeC(form.value.recoverySubmitDate); + form.value.stopSubmitDate = timeC(form.value.stopSubmitDate); + form.value.useDate = timeC(form.value.useDate); + + fileList.value = (res.data.data.takecareStardardeDetailList?res.data.data.takecareStardardeDetailList:[]) + initFileListData() + } else { + ElMessage.error(res.data.msg); + } + }); + }; + const timeC = (timestamp: any) => { + let a = new Date(timestamp).getTime(); + const date = new Date(a); + const Y = date.getFullYear() + '-'; + const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; + const D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '; + const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; + const m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes(); + const s = date.getSeconds(); // 秒 + const dateString = Y + M + D + h + m +`:${s}`; + // console.log('dateString', dateString); // > dateString 2021-07-06 14:23 + return dateString; + }; + const initFileListData = async () => { + for(var a = 0;a<fileList.value.length;a++){ + fileList.value[a].name = fileList.value[a].filePath + } + } + // 上传成功组装数据 + const successUploader = (list) =>{ + fileList.value = list + const formFileList = [] + for(var a = 0;a<fileList.value.length;a++){ + formFileList.push( + { + filePath:fileList.value[a].fileName + } + ) + } + form.value.takecareStardardeDetailList = formFileList + } + const rules = reactive<FormRules>({ + qName: [], + positionNum: [], + qUsage: [], + model: [], + equipmentTypeId: [], + equipmentTypeName: [{ required: true, message: '类型/类别外键不能为空', trigger: 'change' }], + departmentId: [], + setPart: [], + produceTime: [], + useEndDay: [], + lifeCycle: [], + useDate: [], + repairStatus: [], + stopStatus: [], + previousCheckDate: [], + previousTestDate: [], + previousTakecareDate: [], + nextCheckDate: [], + nextTestDate: [], + nextTakecareDate: [], + leadingPersonName: [], + leadingPersonDepartmentId: [], + supplyName: [], + useMemo: [], + isNeedCheck: [], + checkCycle: [], + checkWarn: [], + isNeedTest: [], + testCycle: [], + testWarn: [], + isNeedTakecare: [], + checkContent: [], + leadingDepartmentId: [], + checkPoint: [], + alertNum: [], + lockNum: [], + stopReason: [], + afterStopStep: [], + actualStopDate: [], + stopSubmitPersonName: [], + stopSubmitDate: [], + recoveryReason: [], + recoverySubmitDate: [], + actualRecoveryDate: [], + destoryReason: [], + destorySubmitDate: [], + actualDestoryDate: [], + takecareCycle :[] + }); + // 提交 + const submitForm = async (formEl: FormInstance | undefined) => { + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + form.value.delTakecareDetails = deleteAId.value.toString(); + form.value.delTestDetails = deleteBId.value.toString(); + 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) => { + if (res.data.code == 200) { + ElMessage({ + message: res.data.msg, + type: 'success', + }); + emit('navAddorUpdata'); + } else { + ElMessage.error(res.data.msg); + } + }); + } + }); + form.value.takecareDetailList = []; + form.value.testDetailList = []; + form.value.repaireDetailList = []; + form.value.checkStandardeDetailList = []; + }; + // 取消 + const resetForm = (formEl: FormInstance | undefined) => { + if (!formEl) return; + formEl.resetFields(); + form.value.takecareDetailList = []; + form.value.testDetailList = []; + form.value.repaireDetailList = []; + form.value.checkStandardeDetailList = []; + fileList.value = [] + dialogVisible.value = false; }; const activeName = ref('first'); - 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 index = ref<any>(); const categoryShow = ref(); const opencategory = () => { categoryShow.value.openDailog(); @@ -359,36 +681,31 @@ regionShow.value.openDailog(); }; const UserShow = ref(); - const openUser = () => { - UserShow.value.openDailog(); + const openUser = (type: any) => { + UserShow.value.openDailog(type); }; const maintenanceShow = ref(); - const openMaintenance = () => { - maintenanceShow.value.openDailog(); + const openMaintenance = (title: string, data: any) => { + index.value = form.value.takecareDetailList.indexOf(data); + maintenanceShow.value.openDailog(title, data); }; const detectShow = ref(); - const openDetect = () => { - detectShow.value.openDailog(); + const openDetect = (title: string, data: any) => { + index.value = form.value.testDetailList.indexOf(data); + detectShow.value.openDailog(title, data); }; const repairShow = ref(); - const openRepair = () => { - repairShow.value.openDailog(); + const openRepair = (title: string, data: any) => { + index.value = form.value.repaireDetailList.indexOf(data); + repairShow.value.openDailog(title, data); }; const standardShow = ref(); - const openStandard = () => { - standardShow.value.openDailog(); + const openStandard = (title: string, data: any) => { + index.value = form.value.checkStandardeDetailList.indexOf(data); + standardShow.value.openDailog(title, data); }; // 上传 - const fileList = ref<UploadUserFile[]>([ - { - name: 'element-plus-logo.svg', - url: 'https://element-plus.org/images/element-plus-logo.svg', - }, - { - name: 'element-plus-logo2.svg', - url: 'https://element-plus.org/images/element-plus-logo.svg', - }, - ]); + const fileList = ref([]); const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => { console.log(file, uploadFiles); @@ -408,6 +725,75 @@ () => false ); }; + const deleteAId = ref([]); + const deleteBId = ref([]); + const deleteCId = ref([]); + const deleteDId = ref([]); + // 删除 + const deleteA = (tag: any) => { + form.value.takecareDetailList.splice(form.value.takecareDetailList.indexOf(tag), 1); + deleteAId.value.push(tag.id); + }; + const deleteB = (tag: any) => { + form.value.testDetailList.splice(form.value.testDetailList.indexOf(tag), 1); + deleteBId.value.push(tag.id); + }; + const deleteC = (tag: any) => { + form.value.repaireDetailList.splice(form.value.repaireDetailList.indexOf(tag), 1); + deleteCId.value.push(tag.id); + }; + const deleteD = (tag: any) => { + form.value.checkStandardeDetailList.splice(form.value.checkStandardeDetailList.indexOf(tag), 1); + deleteDId.value.push(tag.id); + }; + // 回传 + 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 = (data: any) => { + const val = deepClone(data); + if (index.value == -1) { + form.value.testDetailList.push(val); + } else { + form.value.testDetailList[index.value] = val; + } + }; + 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 = (data: any) => { + const val = deepClone(data); + if (index.value == -1) { + form.value.checkStandardeDetailList.push(val); + } else { + form.value.checkStandardeDetailList[index.value] = val; + } + }; + const userId = (val: any, type: number) => { + console.log(val, type); + if (type == 1) { + form.value.leadingPersonId = val.uid; + form.value.leadingPersonName = val.realName; + } else if (type == 2) { + 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); const toggleFullscreen = () => { @@ -417,14 +803,55 @@ full.value = false; } }; + //部门树 + 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', + }; + const data = ref(); return { + Tid, + deepClone, + rules, + userId, + department, + propse, + data, + deleteAId, + deleteBId, + deleteCId, + deleteDId, + deleteA, + deleteB, + deleteC, + deleteD, + main, + index, + delect, + Repair, + Stand, + resetForm, + submitForm, + titles, dialogVisible, + disabled, Dailogtype, form, openDailog, Search, activeName, - tableData, categoryShow, opencategory, regionShow, @@ -447,13 +874,18 @@ full, toggleFullscreen, FullScreen, + timeDate, + ruleFormRef, + successUploader, + initFileListData, + timeC }; }, }); </script> <style scoped> .el-form-item { - width: 400px; + width: 25vw; } .formType:after { content: ''; @@ -466,6 +898,6 @@ flex-wrap: wrap; } .el-form .el-form-item:last-of-type { - margin-bottom: 22px!important; + margin-bottom: 22px !important; } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.2