Kaynağa Gözat

Merge remote-tracking branch 'origin/yjb_storeScrm' into yjb_storeScrm

yjwang 5 gün önce
ebeveyn
işleme
903f6b3222
1 değiştirilmiş dosya ile 50 ekleme ve 27 silme
  1. 50 27
      src/views/store/storeProduct/index.vue

+ 50 - 27
src/views/store/storeProduct/index.vue

@@ -40,7 +40,7 @@
       </el-form-item>
 
       <div v-if="medicalMallConfig.isAudit">
-        <el-form-item label="药品注册证书编号" prop="drugRegCertNo">
+        <el-form-item label="注册证号/备案凭证编号" prop="drugRegCertNo">
           <el-input
             v-model="queryParams.drugRegCertNo"
             placeholder="请输入药品注册证书编号"
@@ -80,7 +80,7 @@
           />
         </el-form-item>
 
-        <el-form-item label="批号" prop="batchNumber">
+        <el-form-item label="生产号/序列号" prop="batchNumber">
           <el-input
             v-model="queryParams.batchNumber"
             placeholder="请输入批号"
@@ -130,7 +130,7 @@
           />
         </el-form-item>
 
-        <el-form-item label="功能主治" prop="indications">
+        <el-form-item label="适用范围/适应症" prop="indications">
           <el-input
             v-model="queryParams.indications"
             placeholder="请输入功能主治"
@@ -179,7 +179,7 @@
 
           />
         </el-form-item>
-        <el-form-item label="规格" prop="prescribeSpec">
+        <el-form-item label="规格/型号" prop="prescribeSpec">
           <el-input
             v-model="queryParams.prescribeSpec"
             placeholder="请输入规格"
@@ -499,10 +499,6 @@
           <el-button type="primary" @click="showExemptDeviceDialog" style="margin-left: 10px;" v-if="showExemptDeviceButton">显示器免</el-button>
         </el-form-item>
 
-
-
-
-
         <el-row>
           <el-col :span="12">
             <el-form-item label="关键字" prop="keyword">
@@ -518,7 +514,8 @@
         </el-row>
         <el-row :gutter="10">
           <el-col :span="12">
-            <el-form-item label="是否药品" prop="isDrug">
+            <!-- 当分类包含"器械"时隐藏是否药品选项 -->
+            <el-form-item label="是否药品" prop="isDrug" v-if="!isMedicalDeviceCategory">
               <el-radio-group v-model="form.isDrug">
                 <el-radio
                   v-for="item in isDrugOptions"
@@ -537,12 +534,12 @@
           <div v-if="medicalMallConfig.isMedicalMall">
             <el-row>
               <el-col :span="12">
-                <el-form-item label="药品注册证书编号" prop="drugRegCertNo">
+                <el-form-item :label="isMedicalDeviceCategory ? '注册证号/备案凭证编号' : '批准文号'" prop="drugRegCertNo">
                   <el-input v-model="form.drugRegCertNo" placeholder="请输入药品注册证书编号"/>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="通用名称" prop="commonName">
+                <el-form-item label="通用名称" prop="commonName" v-if="!isMedicalDeviceCategory">
                   <el-input v-model="form.commonName" placeholder="请输入通用名称"/>
                 </el-form-item>
               </el-col>
@@ -550,7 +547,7 @@
 
             <el-row>
               <el-col :span="12">
-                <el-form-item label="剂型" prop="dosageForm">
+                <el-form-item label="剂型" prop="dosageForm" v-if="!isMedicalDeviceCategory">
                   <el-input v-model="form.dosageForm" placeholder="请输入剂型"/>
                 </el-form-item>
               </el-col>
@@ -563,12 +560,12 @@
 
             <el-row>
               <el-col :span="12">
-                <el-form-item label="批号" prop="batchNumber">
+                <el-form-item  :label="isMedicalDeviceCategory ? '生产批号/序列号' : '批号'" prop="batchNumber">
                   <el-input v-model="form.batchNumber" placeholder="请输入批号"/>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="规格" prop="prescribeSpec">
+                <el-form-item label="规格/型号" prop="prescribeSpec">
                   <el-input v-model="form.prescribeSpec" placeholder="请输入规格"/>
                 </el-form-item>
               </el-col>
@@ -601,27 +598,27 @@
             </el-row>
             <el-collapse v-model="activeValue" accordion>
               <el-collapse-item title="" name="1">
-                <el-form-item label="功能主治" prop="indications">
+                <el-form-item label="适应范围/适用症" prop="indications" v-if="!isMedicalDeviceCategory">
                   <el-input v-model="form.indications" type="textarea" placeholder="请输入功能主治"/>
                 </el-form-item>
 
-                <el-form-item label="成分" prop="ingredient">
+                <el-form-item label="成分" prop="ingredient" v-if="!isMedicalDeviceCategory">
                   <el-input v-model="form.ingredient" type="textarea" placeholder="请输入成分"/>
                 </el-form-item>
 
-                <el-form-item label="用法用量" prop="dosage">
+                <el-form-item label="用法用量" prop="dosage" v-if="!isMedicalDeviceCategory">
                   <el-input v-model="form.dosage" type="textarea" placeholder="请输入用法用量"/>
                 </el-form-item>
 
-                <el-form-item label="不良反应" prop="adverseReactions">
+                <el-form-item label="不良反应" prop="adverseReactions" v-if="!isMedicalDeviceCategory" >
                   <el-input v-model="form.adverseReactions" type="textarea" placeholder="请输入不良反应"/>
                 </el-form-item>
 
-                <el-form-item label="禁忌" prop="contraindications">
+                <el-form-item label="禁忌" prop="contraindications" v-if="!isMedicalDeviceCategory">
                   <el-input v-model="form.contraindications" type="textarea" placeholder="请输入禁忌"/>
                 </el-form-item>
 
-                <el-form-item label="注意事项" prop="precautions">
+                <el-form-item label="注意事项" prop="precautions" v-if="!isMedicalDeviceCategory">
                   <el-input v-model="form.precautions" type="textarea" placeholder="请输入注意事项"/>
                 </el-form-item>
               </el-collapse-item>
@@ -698,7 +695,7 @@
             </el-col>
             <el-col :span="24" v-if="showIput">
               <el-col :xl="6" :lg="9" :md="10" :sm="24" :xs="24">
-                <el-form-item label="规格:">
+                <el-form-item label="规格/型号:">
                   <el-input placeholder="请输入规格" v-model="formDynamic.attrsName"/>
                 </el-form-item>
               </el-col>
@@ -1006,7 +1003,7 @@
         <el-form-item label="国药准字" v-if="form.productType==2" prop="prescribeCode">
           <el-input v-model="form.prescribeCode" placeholder="请输入国药准字"/>
         </el-form-item>
-        <el-form-item label="规格" v-if="form.productType==2" prop="prescribeSpec">
+        <el-form-item label="规格/型号" v-if="form.productType==2" prop="prescribeSpec">
           <el-input v-model="form.prescribeSpec" placeholder="请输入规格"/>
         </el-form-item>
         <el-form-item label="生产厂家" v-if="form.productType==2" prop="prescribeFactory">
@@ -1296,13 +1293,34 @@ export default {
           this.rules.adverseReactions = [];
           this.rules.contraindications = [];
           this.rules.precautions = [];
+          // 当分类包含"器械"时,默认设置为药品
+          if (cateName.includes('器械')) {
+            this.form.isDrug = "1";
+          }
+          // 医疗器械情况下相关字段必填
+          this.rules.drugRegCertNo = [
+            { required: true, message: "注册证号/备案凭证编号不能为空", trigger: "blur" }
+          ];
+          this.rules.batchNumber = [
+            { required: true, message: "生产批号/序列号不能为空", trigger: "blur" }
+          ];
+
         } else {
-          this.rules.indications = [{ required: true, message: "功能主治不能为空", trigger: "blur" }];
+          this.rules.indications = [{ required: true, message: "适应范围/适应症不能为空", trigger: "blur" }];
           this.rules.ingredient = [{ required: true, message: "成分不能为空", trigger: "blur" }];
           this.rules.dosage = [{ required: true, message: "用法用量不能为空", trigger: "blur" }];
           this.rules.adverseReactions = [{ required: true, message: "不良反应不能为空", trigger: "blur" }];
           this.rules.contraindications = [{ required: true, message: "禁忌不能为空", trigger: "blur" }];
           this.rules.precautions = [{ required: true, message: "注意事项不能为空", trigger: "blur" }];
+
+          // 非医疗器械情况下相关字段必填规则
+          this.rules.drugRegCertNo = [
+            { required: true, message: "批准文号不能为空", trigger: "blur" }
+          ];
+
+          // 非医疗器械情况下批号非必填
+          this.rules.batchNumber = [];
+
         }
         if(cateName !== undefined && cateName.includes('器械')){
           this.displayDemo=true;
@@ -1345,6 +1363,11 @@ export default {
       const cateName = this.cateIdToNameMap[this.form.cateId];
       // 确保只在II类器械时显示,不包括III类器械
       return cateName !== undefined && cateName.includes('II类器械') && !cateName.includes('III类器械');
+    },
+    // 判断当前分类是否为医疗器械分类
+    isMedicalDeviceCategory() {
+      const cateName = this.cateIdToNameMap[this.form.cateId];
+      return cateName !== undefined && cateName.includes('器械');
     }
   },
   data() {
@@ -2044,16 +2067,16 @@ export default {
         // companyIds:[],
         isDrug: "1", // 是否药品
         drugImage: null, // 药品展示图
-        drugRegCertNo: null, // 药品注册证书编号
+        drugRegCertNo: null, // 注册证号/备案凭证编号
         commonName: null, // 通用名称
         dosageForm: null, // 剂型
         unitPrice: null, // 单价
-        batchNumber: null, // 批号
+        batchNumber: null, // 生产批号/序列号
         mah: null, // 上市许可持有人
         mahAddress: null, // 上市许可持有人地址
         manufacturer: null, // 生产企业
         manufacturerAddress: null, // 生产企业地址
-        indications: null, // 功能主治
+        indications: null, // 适用范围/适应症
         dosage: null, // 用法用量
         adverseReactions: null, // 不良反应
         contraindications: null, // 禁忌
@@ -2332,7 +2355,7 @@ export default {
             }
           })
           if (checkBoolean) {
-            return this.$message.warning("规格,商品条码不能为空!");
+            return this.$message.warning("规格/型号,商品条码不能为空!");
           }
 
           if (this.form.specType === 1 && this.manyFormValidate.length === 0) {