gaoluyang
2 天以前 d6723c2a0b2d5262ae156d71eadde66a884084eb
新疆——新聚lims
1.检验单详情展示修改
2.委托单详情展示优化
已修改4个文件
136 ■■■■ 文件已修改
src/views/business/inspectionTask/components/InspectionWord.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/inspection.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionView/index.vue 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productOrder/components/addView.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/components/InspectionWord.vue
@@ -48,7 +48,7 @@
                placeholder="请输入检测地点" size="small" style="width: 200px"
                @change="m => subOtherForm(m, 'detectionPlace')"></el-input>
            </el-form-item>
            <el-form-item v-if="isDirectTemplateOrder()" label="设备:">
            <el-form-item label="设备:">
              <el-select v-model="currentOtherForm.deviceIds" :disabled="state != 1" multiple filterable clearable
                size="small" placeholder="请选择设备" style="width: 360px"
                @change="m => subOtherForm(m, 'deviceIds')">
@@ -523,9 +523,7 @@
          this.retestTag = '1'
        }
        this.getEquipOptions(1)
        if (this.sonLaboratory === '新聚') {
          this.loadDeviceOptions()
        }
        // 获取当前样品的检验项
        let list = await this.getCurrentProduct(this.currentSample.id, 0)
        if (list === undefined) {
@@ -1357,12 +1355,6 @@
        })
      }
    },
    // 新聚直接绑定模板的单据,设备按模板选择
    isDirectTemplateOrder() {
      return this.sonLaboratory === '新聚' &&
        Array.isArray(this.insOrder.templateConditions) &&
        this.insOrder.templateConditions.length > 0
    },
    loadDeviceOptions() {
      search({ status: 0 }).then(res => {
        this.deviceOptions = (res.data || []).map(device => ({
@@ -1382,11 +1374,12 @@
    upInsReview(e) {
      if (e == 1) {
        // 通过
        // 每个模板都要有结论;全部合格才算整单合格
        const insResults = this.tableLists.map(
          item => (this.otherForm[item.templateId] || {}).insResult
        )
        const missingIndex = insResults.findIndex(result => result !== 0 && result !== 1)
        if (this.isDirectTemplateOrder() && missingIndex > -1) {
        if (missingIndex > -1) {
          this.$message.error(`请选择「${this.tableLists[missingIndex].templateName}」的检验结论`)
          return
        }
@@ -1397,9 +1390,7 @@
          laboratory: this.sonLaboratory,
          tell: null,
          userId: this.checkUser,
          insResult: this.isDirectTemplateOrder()
            ? (insResults.every(result => result === 1) ? 1 : 0)
            : this.insOrder.insResult
          insResult: insResults.every(result => result === 1) ? 1 : 0
        }).then(res => {
          if (res.code === 200) {
            this.$message.success("操作成功")
@@ -1481,7 +1472,7 @@
        if (!form.humidity) missing.push(`请填写「${m.templateName}」的湿度`)
        if (!form.detectionTime) missing.push(`请选择「${m.templateName}」的检测时间`)
        if (!form.detectionPlace) missing.push(`请填写「${m.templateName}」的检测地点`)
        if (this.isDirectTemplateOrder() && (!form.deviceIds || form.deviceIds.length === 0)) {
        if (!form.deviceIds || form.deviceIds.length === 0) {
          missing.push(`请选择「${m.templateName}」的设备`)
        }
      })
src/views/business/inspectionTask/inspection.vue
@@ -177,7 +177,7 @@
      </div>
      <!-- 当前检验模板的检测条件与检验结论 -->
      <div class="template-panel">
        <el-form v-if="showTemplateConditions" :inline="true" :model="currentOtherForm" class="form-inline"
        <el-form :inline="true" :model="currentOtherForm" class="form-inline"
          size="small" label-width="84px">
          <el-form-item v-if="insOrder.ifsOrderType!=='02wg'" label="温度:">
            <el-input v-model="currentOtherForm.temperature" :disabled="state > 1" placeholder="" size="small"
@@ -189,16 +189,16 @@
              style="width: 90px" @change="(m) => subOtherForm(m, 'humidity')"></el-input>
            <span class="template-panel__unit">%RH</span>
          </el-form-item>
          <el-form-item v-if="insOrder.ifsOrderType!=='02wg'" label="检测时间:">
          <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-form-item>
          <el-form-item v-if="insOrder.ifsOrderType!=='02wg'" label="检测地点:">
          <el-form-item label="检测地点:">
            <el-input v-model="currentOtherForm.detectionPlace" :disabled="state > 1" clearable placeholder="请输入检测地点"
              size="small" style="width: 200px" @change="(m) => subOtherForm(m, 'detectionPlace')"></el-input>
          </el-form-item>
          <el-form-item v-if="isDirectTemplateOrder()" label="设备:">
          <el-form-item label="设备:">
            <el-select v-model="currentOtherForm.deviceIds" :disabled="state != 1" multiple filterable clearable
              size="small" placeholder="请选择设备" style="width: 360px"
              @change="(m) => subOtherForm(m, 'deviceIds')">
@@ -207,8 +207,7 @@
          </el-form-item>
        </el-form>
        <!-- 复核时才能选 -->
        <el-form :inline="true" :model="currentOtherForm"
          :class="['form-inline', { 'template-panel__conclusion--divided': showTemplateConditions }]"
        <el-form :inline="true" :model="currentOtherForm" class="form-inline template-panel__conclusion--divided"
          size="small" label-width="84px">
          <el-form-item label="检验结论:">
            <el-radio-group v-model="currentOtherForm.insResult" :disabled="state != 2"
@@ -870,10 +869,6 @@
        }
      );
    },
    // 02wg 单没有温湿度;新聚直接绑定模板的单只有设备
    showTemplateConditions() {
      return this.insOrder.ifsOrderType !== "02wg" || this.isDirectTemplateOrder();
    },
  },
  created() {
    this.saveQueue = Promise.resolve();
@@ -1159,9 +1154,7 @@
          this.rawMaterialTag = "1";
        }
        this.getEquipOptions(1);
        if (this.sonLaboratory === "新聚") {
          this.loadDeviceOptions();
        }
        // 获取当前样品的检验项
        let list = await this.getCurrentProduct(this.currentSample.id, 0);
        this.currentSample.insProduct = this.HaveJson(list);
@@ -2364,10 +2357,10 @@
        if (this.insOrder.ifsOrderType !== "02wg") {
          if (!form.temperature) missing.push(`请填写「${m.templateName}」的温度`);
          if (!form.humidity) missing.push(`请填写「${m.templateName}」的湿度`);
        }
          if (!form.detectionTime) missing.push(`请选择「${m.templateName}」的检测时间`);
          if (!form.detectionPlace) missing.push(`请填写「${m.templateName}」的检测地点`);
        }
        if (this.isDirectTemplateOrder() && (!form.deviceIds || form.deviceIds.length === 0)) {
        if (!form.deviceIds || form.deviceIds.length === 0) {
          missing.push(`请选择「${m.templateName}」的设备`);
        }
      });
src/views/business/inspectionView/index.vue
@@ -21,13 +21,18 @@
        <el-form-item label="委托编号:">
          <el-input v-model="insOrder.entrustCode" clearable disabled placeholder="请输入" size="small"></el-input>
        </el-form-item>
        <el-form-item label="检测依据:">
          <el-tooltip :content="standardDisplayName(insOrder.sample)" :disabled="!insOrder.sample">
            <el-input :value="standardDisplayName(insOrder.sample)" clearable disabled size="small"></el-input>
          </el-tooltip>
        </el-form-item>
        <el-form-item label="样品名称:">
          <el-input :value="insOrder.sampleView || '-'" clearable disabled size="small"></el-input>
        </el-form-item>
        <el-form-item label="样品编号:">
          <el-tooltip :content="currentSample.sampleCode" :disabled="!currentSample.sampleCode">
            <el-input v-model="currentSample.sampleCode" clearable disabled placeholder="请输入" size="small"></el-input>
          </el-tooltip>
        </el-form-item>
        <el-form-item label="样品名称:">
          <el-input v-model="currentSample.sample" clearable disabled placeholder="请输入" size="small"></el-input>
        </el-form-item>
        <el-form-item label="样品数量:">
          <el-input v-model="insOrder.testQuantity" clearable disabled placeholder="请输入" size="small"></el-input>
@@ -132,7 +137,7 @@
      </div>
      <!-- 当前检验模板的检测条件与检验结论 -->
      <div class="template-panel">
        <el-form v-if="showTemplateConditions" :inline="true" :model="currentOtherForm" class="form-inline"
        <el-form :inline="true" :model="currentOtherForm" class="form-inline"
                 size="small" label-width="84px">
          <el-form-item v-if="insOrder.ifsOrderType !== '02wg'" label="温度:">
            <el-input v-model="currentOtherForm.temperature" :disabled="state > 1" size="small"
@@ -144,17 +149,17 @@
                      style="width: 90px" @change="m => subOtherForm(m, 'humidity')" />
            <span class="template-panel__unit">%RH</span>
          </el-form-item>
          <el-form-item v-if="insOrder.ifsOrderType !== '02wg'" label="检测时间:">
          <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-form-item>
          <el-form-item v-if="insOrder.ifsOrderType !== '02wg'" label="检测地点:">
          <el-form-item label="检测地点:">
            <el-input v-model="currentOtherForm.detectionPlace" :disabled="state > 1" clearable
                      placeholder="请输入检测地点" size="small" style="width: 200px"
                      @change="m => subOtherForm(m, 'detectionPlace')" />
          </el-form-item>
          <el-form-item v-if="isDirectTemplateOrder()" label="设备:">
          <el-form-item label="设备:">
            <el-select v-model="currentOtherForm.deviceIds" :disabled="state != 1" multiple filterable clearable
                       placeholder="请选择设备" size="small" style="width: 360px"
                       @change="m => subOtherForm(m, 'deviceIds')">
@@ -163,8 +168,7 @@
            </el-select>
          </el-form-item>
        </el-form>
        <el-form :inline="true" :model="currentOtherForm"
                 :class="['form-inline', { 'template-panel__conclusion--divided': showTemplateConditions }]"
        <el-form :inline="true" :model="currentOtherForm" class="form-inline template-panel__conclusion--divided"
                 size="small" label-width="84px">
          <el-form-item label="检验结论:">
            <el-radio-group v-model="currentOtherForm.insResult" :disabled="state != 2"
@@ -579,7 +583,6 @@
      reviewLoading: false,
      reviewDia: false,
      noReason: "",
      reviewInsResult: null,
      tableWidth: 1000,
      currentTable: null,
      tableLists: [],
@@ -757,9 +760,6 @@
        insResult: null,
      };
    },
    showTemplateConditions() {
      return this.insOrder.ifsOrderType !== "02wg" || this.isDirectTemplateOrder();
    },
  },
  created() {
    this.saveQueue = Promise.resolve();
@@ -918,7 +918,6 @@
        laboratory: this.sonLaboratory,
      }).then(async (res) => {
        this.insOrder = res.data.insOrder;
        this.reviewInsResult = this.insOrder.insResult;
        this.supplierDensity = res.data.supplierDensity;
        this.getList()
        this.urgentList.forEach((m) => {
@@ -952,9 +951,7 @@
          this.rawMaterialTag = "1";
        }
        this.getEquipOptions(1);
        if (this.sonLaboratory === "新聚") {
          this.loadDeviceOptions();
        }
        // 获取当前样品的检验项
        let list = await this.getCurrentProduct(this.currentSample.id, 0);
        this.currentSample.insProduct = this.HaveJson(list);
@@ -2042,8 +2039,7 @@
    upInsReview(e) {
      if (e == 1) {
        // 通过
        let finalInsResult = this.reviewInsResult;
        if (this.isDirectTemplateOrder()) {
        // 每个模板都要有结论;全部合格才算整单合格
          const insResults = this.tableLists.map(
            item => (this.otherForm[item.templateId] || {}).insResult
          );
@@ -2052,11 +2048,7 @@
            this.$message.error(`请选择「${this.tableLists[missingIndex].templateName}」的检验结论`);
            return;
          }
          finalInsResult = insResults.every(result => result === 1) ? 1 : 0;
        } else if (finalInsResult !== 0 && finalInsResult !== 1) {
          this.$message.error("请选择检验结论");
          return;
        }
        const finalInsResult = insResults.every(result => result === 1) ? 1 : 0;
        this.reviewLoading = true;
        verifyPlan({
          orderId: this.orderId,
@@ -2123,10 +2115,10 @@
        if (this.insOrder.ifsOrderType !== "02wg") {
          if (!form.temperature) missing.push(`请填写「${item.templateName}」的温度`);
          if (!form.humidity) missing.push(`请填写「${item.templateName}」的湿度`);
        }
          if (!form.detectionTime) missing.push(`请选择「${item.templateName}」的检测时间`);
          if (!form.detectionPlace) missing.push(`请填写「${item.templateName}」的检测地点`);
        }
        if (this.isDirectTemplateOrder() && (!form.deviceIds || form.deviceIds.length === 0)) {
        if (!form.deviceIds || form.deviceIds.length === 0) {
          missing.push(`请选择「${item.templateName}」的设备`);
        }
      });
@@ -2348,6 +2340,11 @@
      // 选择、移除、清空均由 change 事件触发,立即保存。
      this.saveInsContext();
    },
    standardDisplayName(value) {
      if (!value) return "-";
      const separatorIndex = value.indexOf(" - ");
      return separatorIndex > -1 ? value.slice(0, separatorIndex) : value;
    },
    isDirectTemplateOrder() {
      return this.sonLaboratory === "新聚" &&
        Array.isArray(this.insOrder.templateConditions) &&
src/views/business/productOrder/components/addView.vue
@@ -60,38 +60,6 @@
          </el-descriptions-item>
          <el-descriptions-item label="备注" :span="4">{{ addObj.remark || '-' }}</el-descriptions-item>
        </el-descriptions>
        <el-form class="newju-order-form" :model="addObj" label-width="108px" label-position="right">
          <el-row>
            <el-col :span="6"><el-form-item label="产品名称"><el-input v-model="addObj.sample" disabled size="small" /></el-form-item></el-col>
            <el-col :span="6"><el-form-item label="生产单位"><el-input v-model="addObj.production" disabled size="small" /></el-form-item></el-col>
            <el-col :span="6"><el-form-item label="委托单位"><el-input v-model="addObj.company" disabled size="small" /></el-form-item></el-col>
            <el-col :span="6"><el-form-item label="检验类别"><el-select v-model="addObj.orderType" disabled size="small"><el-option v-for="item in dict.type.check_type1" :key="item.value" :label="item.label" :value="item.value" /></el-select></el-form-item></el-col>
          </el-row>
          <el-row v-if="boundTemplateList.length">
            <el-col :span="24">
              <el-form-item label="原始记录模板">
                <div class="template-tag-list">
                  <el-tag v-for="item in boundTemplateList" :key="item.templateId" size="small" effect="plain">{{ item.name }}</el-tag>
                </div>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6"><el-form-item label="样品数量"><el-input v-model="addObj.testQuantity" disabled size="small" /></el-form-item></el-col>
            <el-col :span="6"><el-form-item label="样品编号"><el-input v-model="sampleCode" disabled size="small" /></el-form-item></el-col>
            <el-col :span="6"><el-form-item label="样品外观"><el-input v-model="addObj.sampleStatus" disabled size="small" /></el-form-item></el-col>
            <el-col :span="6"><el-form-item label="送样人"><el-input v-model="addObj.prepareUser" disabled size="small" /></el-form-item></el-col>
          </el-row>
          <el-row>
            <el-col :span="6"><el-form-item label="生产日期"><el-date-picker v-model="addObj.productionDate" type="date" value-format="yyyy-MM-dd" disabled size="small" /></el-form-item></el-col>
            <el-col :span="6"><el-form-item label="生产批号"><el-input v-model="addObj.productionBatch" disabled size="small" /></el-form-item></el-col>
            <el-col :span="6"><el-form-item label="送样日期"><el-date-picker v-model="addObj.sampleDate" type="date" value-format="yyyy-MM-dd" disabled size="small" /></el-form-item></el-col>
            <el-col :span="6"><el-form-item label="联系方式"><el-input v-model="addObj.phone" disabled size="small" /></el-form-item></el-col>
          </el-row>
          <el-row>
            <el-col :span="12"><el-form-item label="备注"><el-input v-model="addObj.remark" disabled size="small" style="width: 520px" /></el-form-item></el-col>
          </el-row>
        </el-form>
        <el-form v-show="false" ref="addObj" :inline="true" :model="addObj" :rules="addObjRules" label-width="108px" label-position="right">
          <el-row>
            <el-col :span="6">
@@ -2306,22 +2274,5 @@
}
.order-detail__empty {
  color: #c0c4cc;
}
.newju-order-form >>> .el-form-item {
  display: flex;
  margin-right: 0;
}
.newju-order-form >>> .el-form-item__label {
  flex: 0 0 108px;
}
.newju-order-form >>> .el-form-item__content {
  flex: 1;
  min-width: 0;
  margin-left: 0 !important;
}
.newju-order-form >>> .el-input,
.newju-order-form >>> .el-select,
.newju-order-form >>> .el-date-editor {
  width: 100%;
}
</style>