src/views/business/inspectionTask/components/InspectionWord.vue
@@ -34,9 +34,9 @@
              <span class="template-panel__unit">℃</span>
            </el-form-item>
            <el-form-item label="检测时间:">
              <el-date-picker v-model="currentOtherForm.detectionTime" :disabled="state > 1" type="date"
                value-format="YYYY-MM-DD" placeholder="请选择日期" size="small" style="width: 160px"
                @change="m => subOtherForm(m, 'detectionTime')"></el-date-picker>
              <el-date-picker v-model="currentOtherForm.detectionTimeRange" :disabled="state > 1" type="daterange"
                value-format="YYYY-MM-DD" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" size="small" style="width: 260px"
                @change="m => subOtherForm(m, 'detectionTimeRange')"></el-date-picker>
            </el-form-item>
            <el-form-item label="检测地点:">
              <el-input v-model="currentOtherForm.detectionPlace" :disabled="state > 1" clearable
@@ -45,7 +45,8 @@
            </el-form-item>
            <el-form-item label="设备:">
              <el-select v-model="currentOtherForm.deviceIds" :disabled="state != 1" multiple filterable clearable
                size="small" placeholder="请选择设备" style="width: 360px"
                class="device-select" size="small" placeholder="请选择设备"
                style="width: 360px !important; min-width: 360px; flex: 0 0 360px"
                @change="m => subOtherForm(m, 'deviceIds')">
                <el-option v-for="device in deviceOptions" :key="device.id" :label="device.label"
                  :value="device.id" />
@@ -252,6 +253,7 @@
<script>
// Vue3 没有 this.$createElement(下面用 h 造 VNode 当 $msgbox 的 message)
import { h } from 'vue'
import { readDetectionTimeRange, isCompleteDetectionTimeRange, toDetectionTimePayload } from '@/utils/detectionTimeRange'
import excelFunction from '@/utils/excelFountion'
import UnPassDialog from "@/views/business/unpass/components/unPassDialog.vue";
import AddUnPass from "@/views/business/unpass/components/addUnPass.vue";
@@ -385,7 +387,7 @@
      numOptions: [],
      temperatureOptions: [],
      wareTableData: [],
      // 检测条件按模板 id 分组:{ [templateId]: { temperature, detectionTime, detectionPlace, deviceIds } }
      // 检测条件按模板 id 分组:{ [templateId]: { temperature, detectionTimeRange, detectionPlace, deviceIds } }
      otherForm: {},
      deviceOptions: [],
      equipForm: {
@@ -467,7 +469,7 @@
    currentOtherForm() {
      return this.otherForm[this.currentTable] || {
        temperature: null,
        detectionTime: null,
        detectionTimeRange: null,
        detectionPlace: null,
        deviceIds: [],
        insResult: null
@@ -513,7 +515,7 @@
        conditionList.forEach(item => {
          this.otherForm[item.templateId] = {
            temperature: item.temperature != null ? item.temperature : null,
            detectionTime: item.detectionTime != null ? item.detectionTime : null,
            detectionTimeRange: readDetectionTimeRange(item),
            detectionPlace: item.detectionPlace != null ? item.detectionPlace : null,
            deviceIds: Array.isArray(item.deviceIds) ? [...item.deviceIds] : [],
            insResult: item.insResult != null ? item.insResult : null
@@ -1428,7 +1430,7 @@
      if (!this.otherForm[templateId]) {
        this.otherForm[templateId] = {
          temperature: null,
          detectionTime: null,
          detectionTimeRange: null,
          detectionPlace: null,
          deviceIds: [],
          insResult: null
@@ -1443,7 +1445,9 @@
      }
      if (type === 'deviceIds') {
        payload.deviceIds = Array.isArray(m) ? [...m] : []
      } else if (type === 'detectionTime' || type === 'detectionPlace') {
      } else if (type === 'detectionTimeRange') {
        Object.assign(payload, toDetectionTimePayload(m))
      } else if (type === 'detectionPlace') {
        payload[type] = m === '' || m == null ? null : m
      } else {
        payload[type] = Number(m)
@@ -1461,7 +1465,7 @@
      this.tableLists.forEach(m => {
        const form = this.otherForm[m.templateId] || {}
        if (!form.temperature) missing.push(`请填写「${m.templateName}」的温度`)
        if (!form.detectionTime) missing.push(`请选择「${m.templateName}」的检测时间`)
        if (!isCompleteDetectionTimeRange(form.detectionTimeRange)) missing.push(`请选择「${m.templateName}」的检测时间`)
        if (!form.detectionPlace) missing.push(`请填写「${m.templateName}」的检测地点`)
        if (!form.deviceIds || form.deviceIds.length === 0) {
          missing.push(`请选择「${m.templateName}」的设备`)
@@ -1780,7 +1784,7 @@
/* 当前检验模板的检测条件 */
.template-panel {
  background-color: #f8f9fb;
  border: 1px solid #ebeef5;
  border: 1px solid var(--el-border-color-light);
  border-radius: 3px;
  padding: 16px 16px 4px;
  margin-top: 12px;
@@ -1798,13 +1802,21 @@
  flex: none;
}
/* 设备下拉固定宽度,禁止被行内布局压缩,否则选中内容不可见 */
.template-panel:deep(.device-select) {
  display: inline-block !important;
  width: 360px !important;
  min-width: 360px;
  flex: 0 0 360px;
}
.template-panel__unit {
  margin-left: 4px;
  color: #606266;
  color: var(--lims-text-2);
}
.template-panel__conclusion--divided {
  border-top: 1px dashed #e4e7ed;
  border-top: 1px dashed var(--el-border-color);
  padding-top: 12px;
}
@@ -1982,7 +1994,7 @@
}
.inspection .el-drawer__header {
  color: #303133;
  color: var(--lims-text);
  text-align: left;
}