Эх сурвалжийг харах

Merge branch 'dev' into 'purchaseDev'

Dev

See merge request new-business/drp-web!187
黄梓星 1 жил өмнө
parent
commit
12c6cff988

+ 40 - 23
src/views/material/basicFile/details.vue

@@ -160,11 +160,13 @@
                         <el-form-item v-else-if="f.attribute == 'select'"
                           :id="(updateButtonGroup && f.apiUrl) ? 'selected' : ''"
                           :prop="f.apiUrl ? `${f.prop}Name` : f.prop"
+                          :rules="[{ required: f.required ,message: `请选择${f.name}`, trigger: 'change' }]"
                         >
                           <template slot="label">
                             <el-tooltip class="item" effect="dark" placement="top-start" :disabled="f.name.length < 10">
                               
-                              <span :class="(f.apiUrl && f.required) ? 'redSpan': ''">{{ f.name }}</span>
+                              <!-- <span :class="(f.apiUrl && f.required) ? 'redSpan': ''">{{ f.name }}</span> -->
+                              <span>{{ f.name }}</span>
 
                               <div slot="content">
                                 <p> {{ f.name }}</p>
@@ -257,8 +259,13 @@
 
                   <template #tabContent>
 
-                    <el-form v-if="activeViceTab == 'material_medcine'" :inline="true" label-position="right"
-                             :hide-required-asterisk="true" :model="medcineData.value" class="md-vice-content">
+                    <el-form v-if="activeViceTab == 'material_medcine'" 
+                      :inline="true" 
+                      label-position="right"
+                      :model="medcineData.value" 
+                      class="md-vice-content"
+                      :rules="medcineRules"
+                    >
 
                       <el-row :gutter="10">
                         <el-col :span="8" v-for="m in medcineData.form" style="text-align: right;">
@@ -267,32 +274,39 @@
                           <template v-if="m.show">
 
                             <!-- 多选框 -->
-                            <el-form-item v-if="m.attribute == 'checkbox'">
-                              <el-checkbox :label="m.name" name="type" v-model="medcineData.value[m.prop]" size="mini"
-                                           :disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
-                                           true-label="0" false-label="2">
+                            <el-form-item v-if="m.attribute == 'checkbox'" :prop="m.prop">
+                              <el-checkbox 
+                                :label="m.name" name="type" v-model="medcineData.value[m.prop]" size="mini"
+                                :disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
+                                true-label="0" false-label="2">
                               </el-checkbox>
                             </el-form-item>
 
                             <!-- 下拉框 -->
-                            <el-form-item v-else-if="m.attribute == 'select'" :label="m.name">
+                            <el-form-item v-else-if="m.attribute == 'select'" 
+                              :label="m.name" 
+                              :prop="m.apiUrl ?`${m.prop}Name`: m.prop"
+                              :rules="[{ required: m.required ,message: `请选择${m.name}`, trigger: 'change' }]"
+                            >
 
                               <!-- 参照弹窗 -->
-                              <el-select v-if="m.apiUrl" v-model="medcineData.value[`${m.prop}Name`]" placeholder="请选择"
-                                         :key="medcineData.value[m.prop]" size="mini"
-                                         :disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
-                                         @focus="m.apiUrl && handleQueryMore(m, '', { name: 'medcineData', prop: m.prop })">
-
-                                <!-- <el-option v-if="m.dictId" v-for="d in m.dictValue" :key="d.dictValue":label="d.dictLabel" :value="d.dictValue"></el-option> -->
-
+                              <el-select v-if="m.apiUrl" 
+                                v-model="medcineData.value[`${m.prop}Name`]" 
+                                placeholder="请选择"
+                                :key="medcineData.value[m.prop]" size="mini"
+                                :disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
+                                @focus="m.apiUrl && handleQueryMore(m, '', { name: 'medcineData', prop: m.prop })">
                                 <div slot="empty"></div>
                               </el-select>
 
                               <!-- 下拉选择 -->
-                              <el-select v-else v-model="medcineData.value[m.prop]" placeholder="请选择"
-                                         :key="medcineData.value[m.prop]" size="mini"
-                                         :disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
-                                         @focus="m.apiUrl && handleQueryMore(m, '', { name: 'medcineData', prop: m.prop })">
+                              <el-select v-if="m.dictId" 
+                                v-model="medcineData.value[m.prop]" 
+                                placeholder="请选择"
+                                :key="medcineData.value[m.prop]" 
+                                size="mini"
+                                :disabled="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')"
+                                @focus="m.apiUrl && handleQueryMore(m, '', { name: 'medcineData', prop: m.prop })">
 
                                 <el-option v-if="m.dictId" v-for="d in m.dictValue" :key="d.dictValue"
                                            :label="d.dictLabel" :value="d.dictValue">
@@ -309,8 +323,10 @@
 
                             <!-- 文本、数字、textarae -->
                             <el-form-item v-else :label="m.name">
-                              <el-input size="mini" v-model="medcineData.value[m.prop]" :type="m.attribute || 'text'"
-                                        :readonly="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')">
+                              <el-input size="mini" 
+                                v-model="medcineData.value[m.prop]" 
+                                :type="m.attribute || 'text'"
+                                :readonly="!(updateButtonGroup && m.edit && basicData.value.isMedicine == '0')">
                               </el-input>
                             </el-form-item>
                           </template>
@@ -648,6 +664,7 @@
         refer: 1,
         loading: false,
         rules:{},
+        medcineRules:{},
         // 维护新版本
         maintainNewVersion: false,
         // 详情固定标签页
@@ -2089,8 +2106,7 @@
         // 基本信息
         await this.getTagList('material', (form) => {
           this.basicData.form = form;
-          this.rules = initRules(this.basicData.form);
-          console.log(this.rules,'this.rules--------------');
+          this.rules = initRules(form);
           this.getMaterialDetails(this.materialId, 'material');
         })
         // 医疗行业
@@ -2099,6 +2115,7 @@
             this.medcineData.value[item.prop] = ''
           })
           this.medcineData.form = form;
+          this.medcineRules = initRules(form);
           this.getMedcineDetails(this.materialId, 'material_medcine');
         })