|
|
@@ -551,7 +551,7 @@
|
|
|
</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"
|
|
|
@@ -564,18 +564,18 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<div v-if="form.isDrug === '1' ">
|
|
|
- <el-form-item label="药品展示图" prop="drugImage">
|
|
|
+ <el-form-item label="头图展示" prop="drugImage">
|
|
|
<Material v-model="drugImageArr" type="image" :num="1" :width="150" :height="150"/>
|
|
|
</el-form-item>
|
|
|
<div v-if="medicalMallConfig.isMedicalMall">
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="药品注册证书编号" prop="drugRegCertNo">
|
|
|
- <el-input v-model="form.drugRegCertNo" placeholder="请输入药品注册证书编号"/>
|
|
|
+ <el-form-item :label="isMedicalDeviceCategory ? '注册证号/备案凭证号' : '批准文号'" prop="drugRegCertNo">
|
|
|
+ <el-input v-model="form.drugRegCertNo" :placeholder="isMedicalDeviceCategory ?'请输入注册证号/备案凭证号' : '请输入批准文号'"/>
|
|
|
</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>
|
|
|
@@ -583,7 +583,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>
|
|
|
@@ -632,13 +632,14 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</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" v-if="!displayDemo">
|
|
|
+ <el-form-item label="成分" prop="ingredient" v-if="!isMedicalDeviceCategory">
|
|
|
<el-input
|
|
|
v-model="form.ingredient"
|
|
|
type="textarea"
|
|
|
@@ -649,19 +650,19 @@
|
|
|
<div v-if="ingredientError" class="el-form-item__error">{{ ingredientError }}</div>
|
|
|
</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>
|
|
|
@@ -1208,7 +1209,6 @@ export default {
|
|
|
Treeselect,
|
|
|
Editor,
|
|
|
Material,
|
|
|
- singleImg,
|
|
|
VerifyCode,
|
|
|
singleImg
|
|
|
},
|
|
|
@@ -1268,6 +1268,11 @@ export default {
|
|
|
this.form.cateId &&
|
|
|
this.cateIdToNameMap[this.form.cateId] &&
|
|
|
!this.cateIdToNameMap[this.form.cateId].includes('III类器械');
|
|
|
+ },
|
|
|
+ // 判断当前分类是否为医疗器械分类
|
|
|
+ isMedicalDeviceCategory() {
|
|
|
+ const cateName = this.cateIdToNameMap[this.form.cateId];
|
|
|
+ return cateName !== undefined && cateName.includes('器械');
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
|
@@ -1328,10 +1333,13 @@ export default {
|
|
|
handler(newVal, oldVal) {
|
|
|
// 分类变化时动态修改验证规则
|
|
|
const cateName = this.cateIdToNameMap[newVal];
|
|
|
-
|
|
|
// 判断是否包含"器械"
|
|
|
if(cateName !== undefined && cateName.includes('器械')){
|
|
|
this.displayDemo = true;
|
|
|
+ // 当分类包含"器械"时,默认设置为药品
|
|
|
+ if (cateName.includes('器械')) {
|
|
|
+ this.form.isDrug = "1";
|
|
|
+ }
|
|
|
} else {
|
|
|
this.displayDemo = false;
|
|
|
}
|
|
|
@@ -1408,6 +1416,20 @@ export default {
|
|
|
if (newVal && this.form.storeId && this.isFormInitialized) {
|
|
|
this.debounceCheckStoreLicense();
|
|
|
}
|
|
|
+ // 动态调整批号的验证规则
|
|
|
+ this.$nextTick(() => {
|
|
|
+ if (this.isMedicalDeviceCategory) {
|
|
|
+ // 是器械时,批号为必填
|
|
|
+ if (!this.rules.batchNumber?.some(rule => rule.required)) {
|
|
|
+ this.rules.batchNumber = [{ required: true, message: "批号不能为空", trigger: "blur" }, ...(this.rules.batchNumber || [])];
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 非器械时,移除批号必填规则
|
|
|
+ if (this.rules.batchNumber) {
|
|
|
+ this.rules.batchNumber = this.rules.batchNumber.filter(rule => !rule.required);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
immediate: true
|
|
|
},
|
|
|
@@ -1493,7 +1515,7 @@ export default {
|
|
|
{dictValue: "1", dictLabel: "是"}
|
|
|
],
|
|
|
|
|
|
- // 药品展示图
|
|
|
+ // 头图展示
|
|
|
drugImageArr: [],
|
|
|
|
|
|
//首营资质上传图
|
|
|
@@ -2270,7 +2292,7 @@ export default {
|
|
|
qualificationExpire: null,
|
|
|
// companyIds:[],
|
|
|
isDrug: "1", // 是否药品
|
|
|
- drugImage: null, // 药品展示图
|
|
|
+ drugImage: null, // 头图展示
|
|
|
drugRegCertNo: null, // 药品注册证书编号
|
|
|
commonName: null, // 通用名称
|
|
|
dosageForm: null, // 剂型
|