Kaynağa Gözat

物料变更单jira相关问题处理

shiy 2 yıl önce
ebeveyn
işleme
901b63cc2a
1 değiştirilmiş dosya ile 76 ekleme ve 26 silme
  1. 76 26
      src/views/material/changeApply/add.vue

+ 76 - 26
src/views/material/changeApply/add.vue

@@ -31,8 +31,8 @@
             <el-col :span="8">
               <el-form-item label="医药物料" prop="medicineMaterial">
                 <el-select v-model="basicForm.medicineMaterial" placeholder="医药物料" clearable :disabled="disable"
-                  @change="controlMedic">
-                  <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
+                           @change="controlMedic">
+                  <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"/>
                 </el-select>
               </el-form-item>
             </el-col>
@@ -59,8 +59,8 @@
             <el-col :span="8">
               <el-form-item label="生产厂家/代理人" prop="factory">
                 <el-select ref="factoryOrman" v-model="basicForm.factory" placeholder="生产厂家/代理人" clearable
-                  :disabled="disable" @focus="chooseFactory">
-                  <el-option v-for="item in factoryOptions" :key="item.id" :label="item.name" :value="item.id" />
+                           :disabled="disable" @focus="chooseFactory">
+                  <el-option v-for="item in factoryOptions" :key="item.id" :label="item.name" :value="item.id"/>
                 </el-select>
                 <!-- <el-input :disabled="disable" v-model="basicForm.factory">
                   <el-button :disabled="disable" slot="append" icon="el-icon-more" @click="test02"></el-button>
@@ -78,7 +78,7 @@
               <el-form-item label="存储条件" prop="storageConditions">
                 <el-select v-model="basicForm.storageConditions" placeholder="存储条件" clearable :disabled="disable">
                   <el-option v-for="dict in dict.type.sys_storage_condition" :key="dict.value" :label="dict.label"
-                    :value="dict.value" />
+                             :value="dict.value"/>
                 </el-select>
               </el-form-item>
             </el-col>
@@ -86,7 +86,7 @@
               <el-form-item label="运输条件" prop="transportCondition">
                 <el-select v-model="basicForm.transportCondition" placeholder="运输条件" clearable :disabled="disable">
                   <el-option v-for="dict in dict.type.sys_conditions_carriage" :key="dict.value" :label="dict.label"
-                    :value="dict.value" />
+                             :value="dict.value"/>
                 </el-select>
               </el-form-item>
             </el-col>
@@ -98,8 +98,12 @@
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="业务线" prop="remark">
-                <el-input :disabled="disable" v-model="basicForm.businessLine"></el-input>
+              <el-form-item label="业务线" prop="businessLine"
+                            :rules="{ required: isOneClass, message: '骨科、介入、检验、普耗、设备类物料产线必须输入对应的业务线', trigger: 'blur' }">
+                <el-select ref="lines" v-model="basicForm.businessLine" placeholder="请选择" clearable :disabled="disable"
+                           @focus="chooseLine">
+                  <el-option v-for="item in lineOptions" :key="item.id" :label="item.name" :value="item.id"/>
+                </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -148,7 +152,8 @@
         <el-form :model="basicForm2" ref="basic2" label-width="160px">
           <el-row :gutter="20">
             <el-col :span="8">
-              <el-form-item label="药品" prop="drug">
+              <el-form-item label="药品" prop="drug"
+                            :rules="{ required: !isControl, message: '请选择是否药品', trigger: 'change' }">
                 <el-select v-model="basicForm2.drug" placeholder="请选择" clearable :disabled="disable || isControl">
                   <el-option v-for="dict in dict.type.sys_medicine" :key="dict.value" :label="dict.label"
                              :value="dict.value"/>
@@ -317,6 +322,7 @@
     <fourClass ref="fourClass" @doSubmit="acceptFourClass" :selectData="selectData3" :single="true"/>
 
     <dose ref="dose" @doSubmit="acceptDose" :selectData="selectData9" :single="true"/>
+    <serviceline ref="line" @doSubmit="acceptLine" :selectData="selectData8" :single="true" />
   </div>
 </template>
 
@@ -324,12 +330,13 @@
   import popDialog from '@/components/PopDialog/index.vue'
   import factory from '@/components/PopDialog/productFactory.vue'
   import {addChangeList, getMaterialDetails, getChangeDetails, editChangeList} from '@/api/changeApply/basic'
-  import {getDose} from '@/api/requisition/basic'
+  import {getDose, getLine} from '@/api/requisition/basic'
   // 生产厂商/代理人调用用于回显
   import {getProductFactory} from '@/api/changeApply/basic'
   // 四级分类
   import fourClass from '@/components/PopDialog/fourClass.vue'
   import dose from '@/components/PopDialog/dose.vue'
+  import serviceline from '@/components/PopDialog/serviceline.vue'
   // 调用物料分类详情接口用于数据回显
   import {getDetail} from '@/api/classify/basic';
 
@@ -340,6 +347,7 @@
       popDialog,
       factory,
       dose,
+      serviceline,
       fourClass
     },
     props: ['pageStu', 'row', 'disable'],
@@ -353,8 +361,12 @@
         // 剂型
         doseOptions: [],
         selectData9: [],
+        selectData8: [],
         tabValue: 'first',
         isControl: true,
+        // 业务线
+        lineOptions: [],
+        isOneClass: false,
         basicForm: {
           code: '',
           orgId: '德荣集团',
@@ -427,8 +439,8 @@
           registrationNo: '',
           medicalDevices: '',
           maintenanceType: '',
-        // 剂型
-        dosageFrom: ''
+          // 剂型
+          dosageFrom: ''
           // 医药属性子表
           // medicineTypeChanges:[
           // ],
@@ -562,6 +574,10 @@
             if (res.data.medicineChange && res.data.medicineChange.dosageFrom) {
               this.getDoseDetails(res.data.medicineChange.dosageFrom)
             }
+            // 业务线回显
+            if (res.data.businessLine) {
+              this.getLineDetails(res.data.businessLine)
+            }
           }
         })
       },
@@ -572,13 +588,17 @@
         console.log('保存参数', sparams)
         this.$refs['basic'].validate((valid) => {
           if (valid) {
-            addChangeList(sparams).then(res => {
-              if (res.code === 200) {
-                this.$message({
-                  message: res.msg,
-                  type: 'success'
-                });
-                this.back()
+            this.$refs['basic2'].validate(valid => {
+              if (valid) {
+                addChangeList(sparams).then(res => {
+                  if (res.code === 200) {
+                    this.$message({
+                      message: res.msg,
+                      type: 'success'
+                    });
+                    this.back()
+                  }
+                })
               }
             })
           }
@@ -591,13 +611,17 @@
         console.log('提交参数', sparams)
         this.$refs['basic'].validate((valid) => {
           if (valid) {
-            editChangeList(sparams).then(res => {
-              if (res.code === 200) {
-                this.$message({
-                  message: res.msg,
-                  type: 'success'
-                });
-                this.back()
+            this.$refs['basic2'].validate(valid => {
+              if (valid) {
+                editChangeList(sparams).then(res => {
+                  if (res.code === 200) {
+                    this.$message({
+                      message: res.msg,
+                      type: 'success'
+                    });
+                    this.back()
+                  }
+                })
               }
             })
           }
@@ -733,6 +757,32 @@
             this.basicForm.twoClass = res.data.twoClass
             this.basicForm.threeClass = res.data.threeClass
             this.basicForm.fourClass = res.data.fourClass
+            const classjudge = res.data.oneClass
+            if (classjudge == '介入耗材5' || classjudge == '骨科耗材2' || classjudge == '普通耗材3' || classjudge == '医用设备1' || classjudge == '体外诊断4') {
+              this.isOneClass = true
+            } else {
+              this.isOneClass = false
+            }
+          }
+        })
+      },
+      // 选择业务线
+      acceptLine(selections) {
+        this.lineOptions = selections
+        this.basicForm.businessLine = selections[0].id
+        this.getLineDetails(selections[0].id)
+      },
+      // 业务线显示列表
+      chooseLine() {
+        this.$refs.lines.blur()
+        this.$refs.line.init()
+      },
+      // 业务线回显
+      getLineDetails(id) {
+        getLine({id: id}).then(res => {
+          console.log('业务线', res)
+          if (res.code === 200) {
+            this.lineOptions = res.data.tableBody
           }
         })
       },