马宇豪
2025-03-04 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c
src/components/equipmentDailog/Dailog.vue
@@ -1,107 +1,109 @@
<template>
   <el-dialog v-model="dialogVisible" :fullscreen="full" :before-close="resetForm" draggable :title="titles" 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" :disabled="disabled" label-width="120px" class="formType">
         <el-form-item label="装置设施名称" size="default">
      <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.positionNum" 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-form-item label="装置设施用途" size="default" prop="qUsage">
            <el-input v-model="form.qUsage" placeholder="请填写装置设施用途" />
         </el-form-item>
         <el-form-item label="装置设施型号" size="default">
         <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.equipmentTypeId" placeholder="请选择">
         <el-form-item label="类型/类别外键" size="default" prop="equipmentTypeName">
            <el-input v-model="form.equipmentTypeName" placeholder="请选择">
               <template #append>
                  <el-button :icon="Search" @click="opencategory"></el-button>
               </template>
            </el-input>
         </el-form-item>
         <!-- <el-form-item label="区域名称" size="default">
            <el-input v-model="form.name" placeholder="请选择">
               <template #append>
                  <el-button :icon="Search" @click="openRegion"></el-button>
               </template>
            </el-input>
         </el-form-item> -->
         <el-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">
         <el-form-item label="设置部位" size="default" prop="setPart">
            <el-input v-model="form.setPart" placeholder="请填写设置部位" />
         </el-form-item>
         <el-form-item label="生产日期" size="default">
            <el-date-picker v-model="form.produceTime" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
         <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">
         <el-form-item label="使用期限(天)" size="default" prop="useEndDay">
            <el-input v-model="form.useEndDay" placeholder="请填写使用期限" />
         </el-form-item>
         <el-form-item label="生命周期" size="default">
         <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-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">
            <el-date-picker v-model="form.useDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
         <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">
         <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-option label="维修中" :value="1" />
               <el-option label="已修好" :value="2" />
            </el-select>
         </el-form-item>
         <el-form-item label="停用状态" size="default">
         <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-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">
         <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">
            <el-date-picker v-model="form.previousTestDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
         <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">
         <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">
            <el-date-picker v-model="form.nextCheckDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
         <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">
            <el-date-picker v-model="form.nextTestDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
         <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">
            <el-date-picker v-model="form.nextTakecareDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
         <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">
            <el-input v-model="form.leadingPersonId" placeholder="请选择">
         <el-form-item label="负责人" size="default" prop="leadingPersonName">
            <el-input v-model="form.leadingPersonName" placeholder="请选择">
               <template #append>
                  <el-button :icon="Search" @click="openUser(0)"></el-button>
                  <el-button :icon="Search" @click="openUser(1)"></el-button>
               </template>
            </el-input>
         </el-form-item>
         <el-form-item label="负责人部门" size="default">
         <el-form-item label="负责人部门" size="default" prop="leadingPersonDepartmentId">
            <el-tree-select
               v-model="form.leadingPersonDepartmentId"
               :data="data"
@@ -111,127 +113,134 @@
               placeholder="请选择"
            />
         </el-form-item>
         <el-form-item label="供应商" size="default">
         <el-form-item label="供应商" size="default" prop="supplyName">
            <el-input v-model="form.supplyName" placeholder="请填写供应商" />
         </el-form-item>
         <el-form-item label="使用说明" size="default">
         <el-form-item label="使用说明" size="default" prop="useMemo">
            <el-input v-model="form.useMemo" placeholder="请填写使用说明" />
         </el-form-item>
         <el-form-item label="是否检查" size="default">
         <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-option label="是" :value="1" />
               <el-option label="否" :value="2" />
            </el-select>
         </el-form-item>
         <el-form-item label="检查周期" size="default">
         <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-form-item label="检查提前提醒" size="default" prop="checkWarn">
            <el-input v-model="form.checkWarn" placeholder="请填写检查提前提醒" />
         </el-form-item>
         <el-form-item label="是否检测" size="default">
         <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-option label="是" :value="1" />
               <el-option label="否" :value="2" />
            </el-select>
         </el-form-item>
         <el-form-item label="检测周期" size="default">
         <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-form-item label="检测提前提醒" size="default" prop="testWarn">
            <el-input v-model="form.testWarn" placeholder="请填写检测提前提醒" />
         </el-form-item>
         <el-form-item label="是否保养" size="default">
         <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-option label="是" :value="1" />
               <el-option label="否" :value="2" />
            </el-select>
         </el-form-item>
         <el-form-item label="检查内容" size="default">
         <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-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-form-item label="检查指标" size="default" prop="checkPoint">
            <el-input v-model="form.checkPoint" placeholder="请填写检查指标" />
         </el-form-item>
         <el-form-item label="预警值" size="default">
         <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-form-item label="联锁值" size="default" prop="lockNum">
            <el-input v-model="form.lockNum" placeholder="请填写联锁值" />
         </el-form-item>
         <el-form-item label="停用理由" size="default">
         <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-form-item label="停用后措施" size="default" prop="afterStopStep">
            <el-input v-model="form.afterStopStep" placeholder="请填写停用后措施" />
         </el-form-item>
         <el-form-item label="实际停用日期" size="default">
            <el-date-picker v-model="form.actualStopDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
         <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">
            <el-input v-model="form.stopSubmitPersonId" placeholder="请选择">
         <el-form-item label="停用提交人" size="default" prop="stopSubmitPersonName">
            <el-input v-model="form.stopSubmitPersonName" placeholder="请选择">
               <template #append>
                  <el-button :icon="Search" @click="openUser(1)"></el-button>
                  <el-button :icon="Search" @click="openUser(2)"></el-button>
               </template>
            </el-input>
         </el-form-item>
         <el-form-item label="停用提交日期" size="default">
            <el-date-picker v-model="form.stopSubmitDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
         <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-form-item label="恢复理由" size="default" prop="recoveryReason">
            <el-input v-model="form.recoveryReason" placeholder="请填写恢复理由" />
         </el-form-item>
         <el-form-item label="恢复填报日期" size="default">
         <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-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-form-item label="报废理由" size="default" prop="destoryReason">
            <el-input v-model="form.destoryReason" placeholder="请填写报废理由" />
         </el-form-item>
         <el-form-item label="报废填报日期" size="default">
         <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-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" @click="openMaintenance('新增', '')">新增</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="leadingPersonId" label="保养负责人" />
               <el-table-column align="center" prop="leadingPersonName" label="保养负责人" />
               <el-table-column align="center" prop="takecareDate" :formatter="timeDate" label="保养日期" />
               <el-table-column align="center" prop="leadingPersonDepartmentId" label="保养负责人单位" />
               <el-table-column align="center" prop="leadingPersonDepartmentName" label="保养负责人单位" />
               <el-table-column align="center" label="操作">
                  <template #default="scope">
                     <el-button link type="primary" @click="openMaintenance('查看', scope.row)" size="small">查看</el-button>
@@ -242,13 +251,18 @@
            </el-table>
         </el-tab-pane>
         <el-tab-pane label="设备检测" name="second">
            <el-button type="primary" size="default" @click="openDetect('新增', '')">新增</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="testPersonId" label="检测人" />
               <el-table-column align="center" prop="testPersonName" label="检测人" />
               <el-table-column align="center" prop="testDate" :formatter="timeDate" label="检测日期" />
               <el-table-column align="center" prop="testPersonDepartmentId" label="检测人单位" />
               <el-table-column align="center" prop="testPersonDepartmentName" label="检测人单位" />
               <el-table-column align="center" prop="testMemo" label="检测内容" />
               <el-table-column align="center" prop="testResult" label="检测结果" />
               <el-table-column align="center" label="检测结果" >
                  <template #default="scope">
                     <span v-if="scope.row.testResult==1">成功</span>
                     <span v-if="scope.row.testResult==2">失败</span>
                  </template>
               </el-table-column>
               <el-table-column align="center" prop="testStatus" label="检测状态" />
               <el-table-column align="center" label="操作">
                  <template #default="scope">
@@ -260,13 +274,18 @@
            </el-table>
         </el-tab-pane>
         <el-tab-pane label="设备维修" name="third">
            <el-button type="primary" size="default" @click="openRepair('新增', '')">新增</el-button>
            <el-button type="primary" size="default" :disabled="disabled" @click="openRepair('新增', '')">新增</el-button>
            <el-table :data="form.repaireDetailList" style="width: 100%">
               <el-table-column align="center" prop="exceptionInfo" label="设施异常项" />
               <el-table-column align="center" prop="repairStatus" label="维修状态" />
               <el-table-column align="center"  label="维修状态">
               <template #default="scope">
                     <span v-if="scope.row.repairStatus==1">维修中</span>
                     <span v-if="scope.row.repairStatus==2">已修好</span>
                  </template>
               </el-table-column>
               <el-table-column align="center" prop="repairMemo" label="维修情况" />
               <el-table-column align="center" prop="repairPersonId" label="维修负责人" />
               <el-table-column align="center" prop="repairPersonDepartmentId" label="维修负责人单位" />
               <el-table-column align="center" prop="repairPersonName" label="维修负责人" />
               <el-table-column align="center" prop="repairPersonDepartmentName" label="维修负责人单位" />
               <el-table-column align="center" prop="repairStartDate" :formatter="timeDate" label="维修开始日期" />
               <el-table-column align="center" prop="repairEndDate" :formatter="timeDate" label="维修结束日期" />
               <el-table-column align="center" label="操作">
@@ -279,7 +298,7 @@
            </el-table>
         </el-tab-pane>
         <el-tab-pane label="检查标准设置" name="fourth">
            <el-button type="primary" size="default" @click="openStandard('新增', '')">新增</el-button>
            <el-button type="primary" size="default" :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="检查内容" />
@@ -308,32 +327,19 @@
            </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="resetForm">关闭</el-button>
            <el-button type="primary" @click="submitForm">确定</el-button>
            <el-button @click="resetForm(ruleFormRef)">关闭</el-button>
            <el-button type="primary" @click="submitForm(ruleFormRef)">确定</el-button>
         </span>
      </template>
   </el-dialog>
   <categoryDailog ref="categoryShow"></categoryDailog>
   <categoryDailog ref="categoryShow" @typeId="Tid"></categoryDailog>
   <regionDailog ref="regionShow"></regionDailog>
   <DailogSearchUser ref="UserShow" @SearchUser="userId"></DailogSearchUser>
   <maintenanceDailog ref="maintenanceShow" @onMain="main"></maintenanceDailog>
@@ -349,18 +355,21 @@
import maintenanceDailog from './maintenanceDailog.vue';
import detectDailog from './detectDailog.vue';
import repairDailog from './repairDailog.vue';
import {timeDate} from '/@/assets/index.ts'
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 { number } from 'echarts';
import { deepClone } from '/@/utils/other';
import uploaderFile from '/@/components/uploaderFile/index.vue';
export default defineComponent({
   components: { categoryDailog, regionDailog, DailogSearchUser, maintenanceDailog, detectDailog, repairDailog, standardDailog },
   components: { categoryDailog, regionDailog, DailogSearchUser, maintenanceDailog,
      detectDailog, repairDailog, standardDailog,uploaderFile },
   setup(props, { emit }) {
      const dialogVisible = ref(false);
      const ruleFormRef = ref<FormInstance>();
      const form = ref({
         supplyName: '',
@@ -397,9 +406,6 @@
         repairStatus: '',
         takecareStardardeDetailList: [
            {
               filePath: '123',
            },
         ],
         nextCheckDate: '',
@@ -409,6 +415,7 @@
         checkPoint: '',
         leadingPersonId: '',
         leadingPersonName: '',
         qName: '',
@@ -458,16 +465,17 @@
         repaireDetailList: [],
         equipmentTypeId: 1,
         equipmentTypeId: '',
         useDate: '',
         recoverySubmitDate: '',
         takecareCycle:"",
         lockNum: '',
         stopSubmitPersonId: '',
         stopSubmitPersonName: '',
         afterStopStep: '',
         lifeCycle: '',
@@ -483,10 +491,12 @@
         delTestDetails: '',
      });
      const titles = ref();
      const titleT = ref();
      const disabled = ref(false);
      const Dailogtype = ref(false);
      const openDailog = (title: string, type: boolean, id: number, num: any) => {
         dialogVisible.value = true;
         titleT.value = title;
         department();
         Dailogtype.value = type;
         if (num == 0) {
@@ -507,277 +517,158 @@
               .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 = () => {
         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;
         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);
      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;
               }
            });
         form.value = {
            supplyName: '',
            nextTestDate: '',
            qUsage: '',
            departmentId: '',
            produceTime: '',
            actualStopDate: '',
            takecareDetailList: [],
            infoType: '',
            leadingDepartmentId: '',
            useEndDay: '',
            previousTakecareDate: '',
            previousCheckDate: '',
            model: '',
            stopStatus: '',
            testWarn: '',
            stopSubmitDate: '',
            repairStatus: '',
            takecareStardardeDetailList: [
               {
                  filePath: '123',
               },
            ],
            nextCheckDate: '',
            checkCycle: '',
            checkPoint: '',
            leadingPersonId: '',
            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: 1,
            useDate: '',
            recoverySubmitDate: '',
            lockNum: '',
            stopSubmitPersonId: '',
            afterStopStep: '',
            lifeCycle: '',
            delCheckStandardeDetails: '',
            delTakecareStardardeDetails: '',
            delTakecareDetails: '',
            delRepaireDetails: '',
            delTestDetails: '',
         };
               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 = () => {
      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;
         form.value = {
            supplyName: '',
            nextTestDate: '',
            qUsage: '',
            departmentId: '',
            produceTime: '',
            actualStopDate: '',
            takecareDetailList: [],
            infoType: '',
            leadingDepartmentId: '',
            useEndDay: '',
            previousTakecareDate: '',
            previousCheckDate: '',
            model: '',
            stopStatus: '',
            testWarn: '',
            stopSubmitDate: '',
            repairStatus: '',
            takecareStardardeDetailList: [
               {
                  filePath: '123',
               },
            ],
            nextCheckDate: '',
            checkCycle: '',
            checkPoint: '',
            leadingPersonId: '',
            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: 1,
            useDate: '',
            recoverySubmitDate: '',
            lockNum: '',
            stopSubmitPersonId: '',
            afterStopStep: '',
            lifeCycle: '',
            delCheckStandardeDetails: '',
            delTakecareStardardeDetails: '',
            delTakecareDetails: '',
            delRepaireDetails: '',
            delTestDetails: '',
         };
      };
      const activeName = ref('first');
      const index = ref<any>();
@@ -795,7 +686,7 @@
      };
      const maintenanceShow = ref();
      const openMaintenance = (title: string, data: any) => {
         index.value = form.value.takecareDetailList.indexOf(data);
            index.value = form.value.takecareDetailList.indexOf(data);
         maintenanceShow.value.openDailog(title, data);
      };
      const detectShow = ref();
@@ -814,16 +705,7 @@
         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);
@@ -865,28 +747,32 @@
         deleteDId.value.push(tag.id);
      };
      // 回传
      const main = (val: any) => {
      const main = (data: any) => {
         const val = deepClone(data);
         if (index.value == -1) {
            form.value.takecareDetailList.push(val);
         } else {
            form.value.takecareDetailList[index.value] = val;
         }
      };
      const delect = (val: any) => {
      const delect = (data: any) => {
         const val = deepClone(data);
         if (index.value == -1) {
            form.value.testDetailList.push(val);
         } else {
         } else  {
            form.value.testDetailList[index.value] = val;
         }
      };
      const Repair = (val: any) => {
      const Repair = (data: any) => {
         const val = deepClone(data);
         if (index.value == -1) {
            form.value.repaireDetailList.push(val);
         } else {
            form.value.repaireDetailList[index.value] = val;
         }
      };
      const Stand = (val: any) => {
      const Stand = (data: any) => {
         const val = deepClone(data);
         if (index.value == -1) {
            form.value.checkStandardeDetailList.push(val);
         } else {
@@ -895,11 +781,18 @@
      };
      const userId = (val: any, type: number) => {
         console.log(val, type);
         if (type == 0) {
         if (type == 1) {
            form.value.leadingPersonId = val.uid;
         } else if (type == 1) {
            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);
@@ -929,6 +822,9 @@
      };
      const data = ref();
      return {
         Tid,
         deepClone,
         rules,
         userId,
         department,
         propse,
@@ -978,14 +874,18 @@
         full,
         toggleFullscreen,
         FullScreen,
      timeDate,
         timeDate,
         ruleFormRef,
         successUploader,
         initFileListData,
         timeC
      };
   },
});
</script>
<style scoped>
.el-form-item {
   width: 400px;
   width: 25vw;
}
.formType:after {
   content: '';
@@ -1000,4 +900,4 @@
.el-form .el-form-item:last-of-type {
   margin-bottom: 22px !important;
}
</style>
</style>