<template>
|
<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" 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" prop="positionNum">
|
<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="请填写装置设施用途" />
|
</el-form-item>
|
<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="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-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="openUser(1)"></el-button>
|
</template>
|
</el-input>
|
</el-form-item>
|
<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" prop="checkCycle">
|
<el-input v-model="form.checkCycle" placeholder="请填写检查周期" />
|
</el-form-item>
|
<el-form-item label="检查提前提醒" size="default" prop="checkWarn">
|
<el-input v-model="form.checkWarn" placeholder="请填写检查提前提醒" />
|
</el-form-item>
|
<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" prop="testCycle">
|
<el-input v-model="form.testCycle" placeholder="请填写检测周期" />
|
</el-form-item>
|
<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" prop="checkContent">
|
<el-input v-model="form.checkContent" placeholder="请填写检查内容" />
|
</el-form-item>
|
<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" prop="checkPoint">
|
<el-input v-model="form.checkPoint" placeholder="请填写检查指标" />
|
</el-form-item>
|
<el-form-item label="预警值" size="default" prop="alertNum">
|
<el-input v-model="form.alertNum" placeholder="请填写预警值" />
|
</el-form-item>
|
<el-form-item label="联锁值" size="default" prop="lockNum">
|
<el-input v-model="form.lockNum" placeholder="请填写联锁值" />
|
</el-form-item>
|
<el-form-item label="停用理由" size="default" prop="stopReason">
|
<el-input v-model="form.stopReason" placeholder="请填写停用理由" />
|
</el-form-item>
|
<el-form-item label="停用后措施" size="default" prop="afterStopStep">
|
<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" 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(2)"></el-button>
|
</template>
|
</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" 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="请填写恢复理由" />
|
</el-form-item>
|
<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" 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" prop="destoryReason">
|
<el-input v-model="form.destoryReason" placeholder="请填写报废理由" />
|
</el-form-item>
|
<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" 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" 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" :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" :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" :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" :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="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" :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">
|
<uploaderFile :fileList="fileList" :systemName="'EQUIPMENT'" :disabled="disabled"
|
@successUploader="successUploader"></uploaderFile>
|
</el-tab-pane>
|
</el-tabs>
|
<template #footer>
|
<span class="dialog-footer">
|
<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" @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';
|
import { Search, FullScreen } from '@element-plus/icons-vue';
|
import categoryDailog from './categoryDailog.vue';
|
import regionDailog from './regionDailog.vue';
|
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, 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,uploaderFile },
|
setup(props, { emit }) {
|
const dialogVisible = ref(false);
|
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 = (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 index = ref<any>();
|
const categoryShow = ref();
|
const opencategory = () => {
|
categoryShow.value.openDailog();
|
};
|
const regionShow = ref();
|
const openRegion = () => {
|
regionShow.value.openDailog();
|
};
|
const UserShow = ref();
|
const openUser = (type: any) => {
|
UserShow.value.openDailog(type);
|
};
|
const maintenanceShow = ref();
|
const openMaintenance = (title: string, data: any) => {
|
index.value = form.value.takecareDetailList.indexOf(data);
|
maintenanceShow.value.openDailog(title, data);
|
};
|
const detectShow = ref();
|
const openDetect = (title: string, data: any) => {
|
index.value = form.value.testDetailList.indexOf(data);
|
detectShow.value.openDailog(title, data);
|
};
|
const repairShow = ref();
|
const openRepair = (title: string, data: any) => {
|
index.value = form.value.repaireDetailList.indexOf(data);
|
repairShow.value.openDailog(title, data);
|
};
|
const standardShow = ref();
|
const openStandard = (title: string, data: any) => {
|
index.value = form.value.checkStandardeDetailList.indexOf(data);
|
standardShow.value.openDailog(title, data);
|
};
|
// 上传
|
const fileList = ref([]);
|
|
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(`Cancel the transfert of ${uploadFile.name} ?`).then(
|
() => true,
|
() => 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 = () => {
|
if (full.value == false) {
|
full.value = true;
|
} else {
|
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,
|
categoryShow,
|
opencategory,
|
regionShow,
|
openRegion,
|
UserShow,
|
openUser,
|
maintenanceShow,
|
openMaintenance,
|
detectShow,
|
openDetect,
|
repairShow,
|
openRepair,
|
standardShow,
|
openStandard,
|
fileList,
|
handleRemove,
|
handlePreview,
|
handleExceed,
|
beforeRemove,
|
full,
|
toggleFullscreen,
|
FullScreen,
|
timeDate,
|
ruleFormRef,
|
successUploader,
|
initFileListData,
|
timeC
|
};
|
},
|
});
|
</script>
|
<style scoped>
|
.el-form-item {
|
width: 25vw;
|
}
|
.formType:after {
|
content: '';
|
width: 400px;
|
}
|
.formType {
|
padding: 20px 20px;
|
display: flex;
|
justify-content: space-between;
|
flex-wrap: wrap;
|
}
|
.el-form .el-form-item:last-of-type {
|
margin-bottom: 22px !important;
|
}
|
</style>
|