hsy
13 小时以前 2d3530a7c11557a40807ad7c0b9e302ce6ce3a9f
src/views/equipmentManagement/measurementEquipment/components/calibrationDia.vue
@@ -47,6 +47,7 @@
                        type="date"
                        placeholder="请选择"
                        clearable
                        @change="calculateValidUntil"
                     />
                  </el-form-item>
               </el-col>
@@ -67,6 +68,85 @@
            </el-row>
            <el-row :gutter="30">
               <el-col :span="12">
                  <el-form-item label="有效期至:" prop="validUntil">
                     <el-input
                        v-model="form.validUntil"
                        placeholder="自动计算"
                        disabled
                     />
                  </el-form-item>
               </el-col>
               <el-col :span="12">
                  <el-form-item label="溯源/核查类型:" prop="traceabilityType">
                     <el-input
                        v-model="form.traceabilityType"
                        placeholder="请输入"
                        clearable
                     />
                  </el-form-item>
               </el-col>
            </el-row>
            <el-row :gutter="30">
               <el-col :span="12">
                  <el-form-item label="实施机构:" prop="implementingAgency">
                     <el-input
                        v-model="form.implementingAgency"
                        placeholder="请输入"
                        clearable
                     />
                  </el-form-item>
               </el-col>
               <el-col :span="12">
                  <el-form-item label="证书编号:" prop="certificateNumber">
                     <el-input
                        v-model="form.certificateNumber"
                        placeholder="请输入"
                        clearable
                     />
                  </el-form-item>
               </el-col>
            </el-row>
            <el-row :gutter="30">
               <el-col :span="12">
                  <el-form-item label="核心结果:" prop="coreResult">
                     <el-input
                        v-model="form.coreResult"
                        placeholder="请输入"
                        clearable
                     />
                  </el-form-item>
               </el-col>
               <el-col :span="12">
                  <el-form-item label="结果确认:" prop="resultConfirmation">
                     <el-input
                        v-model="form.resultConfirmation"
                        placeholder="请输入"
                        clearable
                     />
                  </el-form-item>
               </el-col>
            </el-row>
            <el-row :gutter="30">
               <el-col :span="12">
                  <el-form-item label="确认人:" prop="confirmerId">
                     <el-select
                        v-model="form.confirmerId"
                        placeholder="请选择"
                        filterable
                        default-first-option
                        :reserve-keyword="false"
                        clearable
                     >
                        <el-option
                           v-for="item in userList"
                           :key="item.userId"
                           :label="item.nickName"
                           :value="item.userId"
                        ></el-option>
                     </el-select>
                  </el-form-item>
               </el-col>
               <el-col :span="12">
                  <el-form-item label="录入人:" prop="userId">
                     <el-select
                        v-model="form.userId"
@@ -85,6 +165,8 @@
                     </el-select>
                  </el-form-item>
               </el-col>
            </el-row>
            <el-row :gutter="30">
               <el-col :span="12">
                  <el-form-item label="录入日期:" prop="entryDate">
                     <el-date-picker
@@ -128,6 +210,7 @@
</template>
<script setup>
import dayjs from "dayjs";
import {ref, reactive, toRefs, getCurrentInstance} from "vue";
import useUserStore from "@/store/modules/user.js";
import {userListNoPageByTenantId} from "@/api/system/user.js";
@@ -150,7 +233,14 @@
      recordDate: "",
      userId: "",
      entryDate: "",
    tempFileIds: []
    tempFileIds: [],
      traceabilityType: "",
      implementingAgency: "",
      certificateNumber: "",
      coreResult: "",
      resultConfirmation: "",
      validUntil: "",
      confirmerId: ""
   },
   rules: {
      code: [{required: true, message: "请输入", trigger: "blur"}],
@@ -211,6 +301,13 @@
   if (type === "edit") {
      form.value.valid = row.valid;
      form.value.recordDate = row.recordDate;
      form.value.traceabilityType = row.traceabilityType;
      form.value.implementingAgency = row.implementingAgency;
      form.value.certificateNumber = row.certificateNumber;
      form.value.coreResult = row.coreResult;
      form.value.resultConfirmation = row.resultConfirmation;
      form.value.validUntil = row.validUntil;
      form.value.confirmerId = row.confirmerId;
    fileList.value = row.commonFiles;
   }
   if(type === "add"){
@@ -219,6 +316,14 @@
   if(type === "verifying"){
      form.value.valid = row.valid;
      form.value.recordDate = row.mostDate;
      // Initialize empty for new verifying record
      form.value.traceabilityType = "";
      form.value.implementingAgency = "";
      form.value.certificateNumber = "";
      form.value.coreResult = "";
      form.value.resultConfirmation = "";
      form.value.confirmerId = "";
      calculateValidUntil();
   }
   form.value.id = row.id;
@@ -232,12 +337,14 @@
const handleValidInput = (value) => {
   if (value === '' || value === null || value === undefined) {
      form.value.valid = '';
      calculateValidUntil();
      return;
   }
   // 转换为字符串并移除所有非数字字符(包括负号、小数点等)
   const numStr = String(value).replace(/[^0-9]/g, '');
   if (numStr === '') {
      form.value.valid = '';
      calculateValidUntil();
      return;
   }
   const numValue = parseInt(numStr, 10);
@@ -247,6 +354,16 @@
   } else {
      form.value.valid = '';
   }
   calculateValidUntil();
}
// 自动计算有效期至
const calculateValidUntil = () => {
   if (form.value.recordDate && form.value.valid) {
      form.value.validUntil = dayjs(form.value.recordDate).add(form.value.valid, 'day').format('YYYY-MM-DD');
   } else {
      form.value.validUntil = '';
   }
}
const submitForm = () => {