src/views/business/productOrder/components/addView.vue
@@ -2,9 +2,9 @@
  <div class="app-container">
    <div v-show="!cableConfigShow&&!auxiliaryShow">
      <div style="display: flex;justify-content: space-between;align-items:center;">
        <div>委托单信息</div>
        <div class="order-detail__title">委托单信息</div>
        <div>
          <el-cascader
          <el-cascader v-if="false"
            v-model="addObj.quarterItemId"
            :disabled="active>1"
            :options="quarterItemOptions"
@@ -38,7 +38,29 @@
    </div>
    <div v-show="!cableConfigShow&&!auxiliaryShow" style="margin-top: 10px">
      <div class="search">
        <el-form ref="addObj" :inline="true" :model="addObj" :rules="addObjRules" label-width="108px" label-position="right">
        <el-descriptions class="order-detail" :column="4" border>
          <el-descriptions-item label="检测依据">{{ addObj.sample || '-' }}</el-descriptions-item>
          <el-descriptions-item label="样品名称">{{ addObj.sampleView || '-' }}</el-descriptions-item>
          <el-descriptions-item label="生产单位">{{ addObj.production || '-' }}</el-descriptions-item>
          <el-descriptions-item label="委托单位">{{ addObj.company || '-' }}</el-descriptions-item>
          <el-descriptions-item label="检验类别">{{ orderTypeLabel }}</el-descriptions-item>
          <el-descriptions-item label="样品数量">{{ addObj.testQuantity || '-' }}</el-descriptions-item>
          <el-descriptions-item label="样品编号">{{ sampleCode || '-' }}</el-descriptions-item>
          <el-descriptions-item label="样品外观">{{ addObj.sampleStatus || '-' }}</el-descriptions-item>
          <el-descriptions-item label="送样人">{{ addObj.prepareUser || '-' }}</el-descriptions-item>
          <el-descriptions-item label="生产日期">{{ addObj.productionDate || '-' }}</el-descriptions-item>
          <el-descriptions-item label="生产批号">{{ addObj.productionBatch || '-' }}</el-descriptions-item>
          <el-descriptions-item label="送样日期">{{ addObj.sampleDate || '-' }}</el-descriptions-item>
          <el-descriptions-item label="联系方式">{{ addObj.phone || '-' }}</el-descriptions-item>
          <el-descriptions-item label="原始记录模板" :span="4">
            <div v-if="boundTemplateList.length" class="template-tag-list">
              <el-tag v-for="item in boundTemplateList" :key="item.templateId" size="small" effect="plain">{{ item.name }}</el-tag>
            </div>
            <span v-else class="order-detail__empty">暂未绑定原始记录模板</span>
          </el-descriptions-item>
          <el-descriptions-item label="备注" :span="4">{{ addObj.remark || '-' }}</el-descriptions-item>
        </el-descriptions>
        <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">
              <el-form-item label="委托编号:" prop="entrustCode">
@@ -201,7 +223,7 @@
          </el-row>
        </el-form>
      </div>
      <div>
      <div v-show="false">
        <div style="display: flex;justify-content: space-between;background-color: #F5F7FB;margin-bottom: 6px">
          <div v-if="active==1">
            <el-form :inline="true" :model="addObj1" label-width="90px">
@@ -415,7 +437,7 @@
              <el-col :span="24">
                <span><i
                    :class="`node_i ${data.children != undefined ? (data.code==='[1]'?'el-icon-folder-opened':'el-icon-folder') : 'el-icon-tickets'}`"></i>
                  {{ data.code }} {{ data.label }}</span>
                  {{ data.label }}</span>
              </el-col>
            </el-row>
          </div>
@@ -611,6 +633,13 @@
    newJuLaboratoryList() {
      return (this.dict.type.sys_sub_lab || []).filter(item => item.label === '新聚')
    },
    // 检验类别按字典名称展示
    orderTypeLabel() {
      const hit = (this.dict.type.check_type1 || []).find(
        item => String(item.value) === String(this.addObj.orderType)
      )
      return hit ? hit.label : (this.addObj.orderType || '-')
    },
  },
  dicts: ['check_type1', 'urgency_level', 'form_type', 'sample_status_list', 'sys_sub_lab'],
  data() {
@@ -618,6 +647,8 @@
      active: '',
      tabIndex: '',
      currentId: '',
      sampleCode: '',
      boundTemplateList: [],
      sampleSelectionList: [],//样品表格选中数据
      editTable:[],
      template: null,
@@ -646,7 +677,7 @@
        orderType: null,
        send: 1,
        formType: '送检', //  来样方式
        sampleStatus: 'In good condition', // 样品状态
        sampleStatus: '', // 样品状态
        testQuantity: '', // 样品状态
        production: null,
        productionEn: null,
@@ -672,7 +703,7 @@
          { required: true, message: '请选择紧急程度', trigger: 'change' }
        ],
        sample: [
          { required: true, message: '请选择样品名称', trigger: 'change' }
          { required: true, message: '请选择检测依据', trigger: 'change' }
        ],
        sampleNum: [
          { required: true, message: '请填写样品数量', trigger: 'blur' }
@@ -685,12 +716,6 @@
        ],
        testQuantity: [
          { required: true, message: '请填写抽检数量', trigger: 'blur' }
        ],
        production: [
          { required: true, message: '请填写生产单位', trigger: 'blur' }
        ],
        productionEn: [
          { required: true, message: '请填写生产单位EN', trigger: 'blur' }
        ],
      },
      sample: {
@@ -868,6 +893,8 @@
          };
          this.addObj.type = String(this.addObj.type)
          this.sampleList = this.HaveJson(res.data.sampleProduct);
          this.sampleCode = this.sampleList.length ? this.sampleList[0].sampleCode : ''
          this.boundTemplateList = (res.data.templateList || []).slice().sort((a, b) => (a.sort || 0) - (b.sort || 0))
          this.specialStandardMethod = this.sampleList[0].specialStandardMethod
          this.getProNum()
          this.addObj.sampleNum = this.sampleList.length
@@ -1455,7 +1482,6 @@
        } else {
          this.addObj.sample = trees[3]
        }
        this.addObj.sampleView = this.addObj.sample
        this.addObj.sampleViewEn = this.sampleViewEn
        this.addObj.model = (trees[4] == undefined ? null : trees[4])
        this.selectStandardTree = false
@@ -2217,4 +2243,31 @@
  color: orange;
  font-size: 18px;
}
.template-tag-list {
  min-height: 32px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
/* 委托单信息:只读详情 */
.order-detail__title {
  font-size: 16px;
  font-weight: bold;
  color: #303133;
}
.order-detail>>>.el-descriptions-item__label.is-bordered-label {
  width: 104px;
  white-space: nowrap;
}
.order-detail>>>.el-descriptions-item__content {
  color: #303133;
}
/* 描述列表内不需要额外的行高占位,标签行与其它行等高 */
.order-detail .template-tag-list {
  min-height: 0;
}
.order-detail__empty {
  color: #c0c4cc;
}
</style>