Crunchy
2025-03-17 0a26d58a3906b9e13946c7cb46fae51a0de98920
src/views/business/productOrder/components/add.vue
@@ -2,9 +2,7 @@
  <div class="app-container">
    <div v-show="!cableConfigShow&&!auxiliaryShow">
      <div style="display: flex;justify-content: space-between;align-items:center;">
        <div>
          委托单信息
        </div>
        <div>委托单信息</div>
        <div>
          <el-cascader
            v-model="addObj.quarterItemId"
@@ -41,96 +39,146 @@
    <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-form-item label="委托编号:">
            <el-input v-model="addObj.entrustCode" clearable disabled placeholder="系统生成" size="small"></el-input>
          </el-form-item>
          <el-form-item label="检验类别:" prop="orderType">
            <el-select v-model="addObj.orderType" :disabled="active>1&&tabIndex!=4" clearable size="small" style="width: 100%;">
              <el-option v-for="(a, ai) in dict.type.check_type1" :key="ai" :label="a.label" :value="a.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="制单人:">
            <el-input v-model="addObj.custom" disabled size="small" clearable></el-input>
          </el-form-item>
          <el-form-item label="委托单位:" prop="company">
            <el-input v-model="addObj.company" disabled placeholder="选择委托单位" size="small" style="width: 208px">
              <template slot="append">
                <el-button slot="append" :disabled="active>1&&tabIndex!=4" icon="el-icon-search"
                           @click="openCompanyList"></el-button>
              </template>
            </el-input>
          </el-form-item>
          <el-form-item label="联系方式:" prop="phone">
            <el-input v-model="addObj.phone" :disabled="active>1&&tabIndex!=4" clearable placeholder="选择委托客户" size="small"></el-input>
          </el-form-item>
          <el-form-item label="紧急程度:" prop="type">
            <el-select v-model="addObj.type" :disabled="active>1&&tabIndex!=4" clearable size="small">
              <el-option v-for="(a, ai) in dict.type.urgency_level" :key="ai" :label="a.label" :value="a.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="样品名称:" prop="sample">
            <el-input v-model="addObj.sample" disabled size="small" style="width: 208px">
              <template slot="append"><el-button slot="append" :disabled="active>1&&tabIndex!=4" icon="el-icon-search"
                                                 @click="selectStandardTree = true"></el-button></template>
            </el-input>
          </el-form-item>
          <el-form-item label="样品数量:" prop="sampleNum" style="margin-right: 0">
            <el-input-number v-model="addObj.sampleNum" :disabled="active>1" :max="100" :min="1" :precision="0"
                             size="small" @change="addStandardTree"></el-input-number>
          </el-form-item>
          <el-form-item label="样品状态:" prop="sampleStatus">
            <el-select v-model="addObj.sampleStatus" :disabled="active>1&&tabIndex!=4" size="small">
              <el-option v-for="(a,ai) in dict.type.sample_status_list" :key="ai" :label="a.label" :value="a.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="抽检数量:" prop="testQuantity">
            <el-input v-model="addObj.testQuantity" :disabled="active>1&&tabIndex!=4" clearable size="small"></el-input>
          </el-form-item>
          <el-form-item label="来样方式:" prop="formType">
            <el-select v-model="addObj.formType" :disabled="active>1&&tabIndex!=4" size="small" clearable>
              <el-option v-for="(a,ai) in dict.type.form_type" :key="ai" :label="a.label" :value="a.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="生产单位:" prop="production">
            <el-input v-model="addObj.production" :disabled="active>1&&tabIndex!=4" clearable placeholder="请输入"
                      size="small"></el-input>
          </el-form-item>
          <el-form-item label="生产单位EN:" prop="productionEn">
            <el-input v-model="addObj.productionEn" :disabled="active>1&&tabIndex!=4" clearable placeholder="请输入"
                      size="small"></el-input>
          </el-form-item>
          <el-form-item label="样品处理方式:">
            <el-radio-group v-model="addObj.processing" :disabled="active>1&&tabIndex!=4" size="mini">
              <el-radio :label="0" border style="margin-right: 0">委托单位取回</el-radio>
              <el-radio :label="1" border>实验室处理</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="是否留样:">
            <el-radio-group v-model="addObj.isLeave" border :disabled="active>1&&tabIndex!=4" size="mini">
              <el-radio :label="0" border style="margin-right: 0">不留样</el-radio>
              <el-radio :label="1" border>留样</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="报告发送方式:">
            <el-radio-group v-model="addObj.send" :disabled="active>1&&tabIndex!=4" size="mini">
              <el-radio :label="1" border style="margin-right: 0">自取</el-radio>
              <el-radio :label="0" border>其他</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="委托人:">
            <el-input v-model="addObj.prepareUser" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable size="small"></el-input>
          </el-form-item>
          <el-form-item label="委托人英文:">
            <el-input v-model="addObj.prepareUserEn" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable size="small"></el-input>
          </el-form-item>
          <el-form-item label="备注:">
            <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                      size="small" style="width: 100%" type="textarea"></el-input>
          </el-form-item>
          <el-form-item label="备注英文:">
            <el-input v-model="addObj.remarkEn" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                      size="small" type="textarea"></el-input>
          </el-form-item>
          <el-row>
            <el-col :span="6">
              <el-form-item label="委托编号:">
                <el-input v-model="addObj.entrustCode" clearable disabled placeholder="系统生成" size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="检验类别:" prop="orderType">
                <el-select v-model="addObj.orderType" :disabled="active>1&&tabIndex!=4" clearable size="small" style="width: 100%;">
                  <el-option v-for="(a, ai) in dict.type.check_type1" :key="ai" :label="a.label" :value="a.value"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="制单人:">
                <el-input v-model="addObj.custom" disabled size="small" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="委托单位:" prop="company">
                <el-input v-model="addObj.company" disabled placeholder="选择委托单位" size="small" style="width: 208px">
                  <template slot="append">
                    <el-button slot="append" :disabled="active>1&&tabIndex!=4" icon="el-icon-search"
                               @click="openCompanyList"></el-button>
                  </template>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="联系方式:" prop="phone">
                <el-input v-model="addObj.phone" :disabled="active>1&&tabIndex!=4" clearable placeholder="选择委托客户" size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="紧急程度:" prop="type">
                <el-select v-model="addObj.type" :disabled="active>1&&tabIndex!=4" clearable size="small">
                  <el-option v-for="(a, ai) in dict.type.urgency_level" :key="ai" :label="a.label" :value="a.value"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="样品名称:" prop="sample">
                <el-input v-model="addObj.sample" disabled size="small" style="width: 208px">
                  <template slot="append"><el-button slot="append" :disabled="active>1&&tabIndex!=4" icon="el-icon-search"
                                                     @click="selectStandardTree = true"></el-button></template>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="样品数量:" prop="sampleNum" style="margin-right: 0">
                <el-input-number v-model="addObj.sampleNum" :disabled="active>1" :max="100" :min="1" :precision="0"
                                 size="small" @change="addStandardTree"></el-input-number>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="样品状态:" prop="sampleStatus">
                <el-select v-model="addObj.sampleStatus" :disabled="active>1&&tabIndex!=4" size="small">
                  <el-option v-for="(a,ai) in dict.type.sample_status_list" :key="ai" :label="a.label" :value="a.value"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="抽检数量:" prop="testQuantity">
                <el-input v-model="addObj.testQuantity" :disabled="active>1&&tabIndex!=4" clearable size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="来样方式:" prop="formType">
                <el-select v-model="addObj.formType" :disabled="active>1&&tabIndex!=4" size="small" clearable>
                  <el-option v-for="(a,ai) in dict.type.form_type" :key="ai" :label="a.label" :value="a.value"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="报告发送方式:">
                <el-radio-group v-model="addObj.send" :disabled="active>1&&tabIndex!=4" size="mini">
                  <el-radio :label="1" border style="margin-right: 0">自取</el-radio>
                  <el-radio :label="0" border>其他</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="样品处理方式:">
                <el-radio-group v-model="addObj.processing" :disabled="active>1&&tabIndex!=4" size="mini" style="display: flex; flex-direction: column;">
                  <el-radio :label="0" border style="margin-right: 0">委托单位取回</el-radio>
                  <el-radio :label="1" border>实验室处理</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="生产单位:" prop="production">
                <el-input v-model="addObj.production" :disabled="active>1&&tabIndex!=4" clearable placeholder="请输入"
                          size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="生产单位EN:" prop="productionEn">
                <el-input v-model="addObj.productionEn" :disabled="active>1&&tabIndex!=4" clearable placeholder="请输入"
                          size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="是否留样:">
                <el-radio-group v-model="addObj.isLeave" border :disabled="active>1&&tabIndex!=4" size="mini">
                  <el-radio :label="0" border style="margin-right: 0">不留样</el-radio>
                  <el-radio :label="1" border>留样</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="委托人:">
                <el-input v-model="addObj.prepareUser" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="委托人英文:">
                <el-input v-model="addObj.prepareUserEn" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="备注:">
                <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                          size="small" style="width: 100%" type="textarea"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="备注英文:">
                <el-input v-model="addObj.remarkEn" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                          size="small" type="textarea"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="样品名称:">
@@ -184,6 +232,7 @@
          </div>
        </div>
        <el-table ref="sampleTable" :data="sampleList" border class="el-table sampleTable" highlight-current-row
                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"
          max-height="400px" tooltip-effect="dark" @selection-change="selectSample" @row-click="rowClick">
          <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="60"></el-table-column>
          <el-table-column align="center" label="序号" type="index" width="65"></el-table-column>
@@ -247,8 +296,9 @@
            </template>
          </el-table-column>
        </el-table>
        <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName" border class="el-table"
                  :key="upIndex"
        <el-table ref="productTable" v-loading="getProductLoad" :data="productList"
                  :row-class-name="tableRowClassName" border class="el-table"
                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"
          max-height="400px" style="margin-bottom: 10px;" tooltip-effect="dark"
          @select="selectOne" @selection-change="selectProduct" @select-all="handleAll">
          <el-table-column v-if="active==1" :selectable="selectable0" type="selection" width="65"></el-table-column>
@@ -548,7 +598,7 @@
} from "@/api/business/rawMaterialOrder";
import {
  addInsOrder, addInsOrderTemplate, delInsOrderTemplate,
  getQuarterOnOrder,
  getQuarterOnOrder, selectInsOrderTemplateById,
  selectOrderManDay,
  updateInsOrder,
  upInsOrder,
@@ -558,6 +608,7 @@
import {selectsStandardMethodByFLSSM} from "@/api/standard/standardLibrary";
import limsTable from "@/components/Table/lims-table.vue";
import {selectCustomPageList} from "@/api/system/customer";
import {mapGetters} from "vuex";
export default {
  name: 'Add',
@@ -565,6 +616,9 @@
    limsTable,
    cableConfig,
    AuxiliaryWireCore
  },
  computed:{
  ...mapGetters(["nickName"]),
  },
  dicts: ['check_type1', 'urgency_level', 'form_type', 'sample_status_list'],
  data() {
@@ -851,7 +905,6 @@
        this.isSpecial = true
        this.$nextTick(() => {
          this.$refs.productTable.doLayout();
          this.upIndex++
        });
      },
      getQuarterOnOrderList () {
@@ -932,7 +985,7 @@
      },
      // 获取用户列表
      getAuthorizedPerson() {
        selectUserCondition().then(res => {
        selectUserCondition({ type: 1 }).then(res => {
          let data = []
          res.data.forEach(a => {
            data.push({
@@ -1253,7 +1306,6 @@
            company: this.addObj.company
          }).then(res => {
            this.saveLoad = false
            if (res.code == 201) return
            this.$message.success('提交成功')
            selectOrderManDay({
              id: this.currentId
@@ -1291,10 +1343,6 @@
          userId: this.distributeData.userId,
          sonLaboratory:this.distributeData.sonLaboratory
        }).then(res => {
          if (res.code === 201) {
            this.upLoad = false
            return
          }
          this.$message.success('提交成功')
          this.upLoad = false
          this.issuedDialogVisible = false
@@ -1604,14 +1652,13 @@
        backtrack([], nums);
        return result;
      },
      tableRowClassName({
        row,
        rowIndex
      }) {
        if (row.state === 0) {
      tableRowClassName({row, rowIndex}) {
        if (row.state == 1) {
          console.log('row.state---', row.state)
          return 'warning-row';
        } else {
          return '';
        }
        return 'warning-row';
      },
      selectInsOrderTemplate() {
        selectInsOrderTemplate({company: this.addObj.company}).then(res => {
@@ -1628,9 +1675,6 @@
          delInsOrderTemplate({
            id: row.id
          }).then(res => {
            if (res.code === 201) {
              return
            }
            this.$message.success('删除成功')
            this.selectInsOrderTemplate()
          }).catch(e => {
@@ -1667,12 +1711,13 @@
        selectInsOrderTemplateById({id: e}).then(res => {
          let obj = JSON.parse(res.data)
          //制单人设置为当前登录用户
          let user = JSON.parse(localStorage.getItem('user'))
          let user = this.nickName
          obj.addObj.custom = user.name
          obj.addObj.userId = user.userId
          this.addObj = obj.addObj;
          this.sampleList = obj.sampleList;
          this.selectTree = obj.selectTree
          this.rowClick(this.sampleList[0])
        })
      },
      delSampleAndProduct() {
@@ -2173,7 +2218,7 @@
</script>
<style scoped>
.el-table .warning-row .cell {
  color: #3A7BFA;
>>>.warning-row {
  color: #1890FF;
}
</style>