Quellcode durchsuchen

1.店铺端删除了药品经营许可证/3类医疗器械经营许可证/食品经营许可证长期按钮,同时不做必填校验。2类医疗器械证上传长期有效

Guos vor 1 Woche
Ursprung
Commit
dc88e0319d
1 geänderte Dateien mit 135 neuen und 211 gelöschten Zeilen
  1. 135 211
      src/views/store/storeConfig/userInfo.vue

+ 135 - 211
src/views/store/storeConfig/userInfo.vue

@@ -110,10 +110,8 @@
               :show-file-list="false"
               class="avatar-uploader"
             >
-              <!-- 图片容器(包含图片和删除按钮,仅在有图片时显示) -->
               <div class="avatar-wrapper" v-if="form.businessLicense">
                 <img :src="form.businessLicense" class="avatar" width="200px">
-                <!-- 悬停显示的删除按钮 -->
                 <div class="delete-mask" @click.stop="handleDelete5">
                   <i class="el-icon-delete"></i>
                 </div>
@@ -129,14 +127,14 @@
         </el-col>
         <el-col :span="12">
           <el-form-item label="营业执照是否长期有效" prop="isBusinessLicensePermanent">
-              <el-switch
-                @change="switchChange()"
-                v-model="switchValue"
-                active-color="#13ce66"
-                inactive-color="#ff4949">
-              </el-switch>
-             </el-form-item>
-          <el-form-item label="营业执照失效日期" prop="businessLicenseExpire"  v-if="!switchValue">
+            <el-switch
+              @change="switchChange()"
+              v-model="switchValue"
+              active-color="#13ce66"
+              inactive-color="#ff4949">
+            </el-switch>
+          </el-form-item>
+          <el-form-item label="营业执照失效日期" prop="businessLicenseExpire" v-if="!switchValue">
             <el-date-picker
               v-model="form.businessLicenseExpire"
               end-placeholder="结束日期"
@@ -149,6 +147,7 @@
           </el-form-item>
         </el-col>
       </el-row>
+
       <div v-if="medicalMallConfig.isMedicalMall">
         <el-row>
           <el-col :span="12">
@@ -159,15 +158,12 @@
                 :show-file-list="false"
                 :on-success="(response, file) => handleFileSuccess(response, file, 'drugLicense')"
                 :before-upload="beforeAvatarUpload">
-                <!-- 图片容器(包含图片和删除按钮,仅在有图片时显示) -->
                 <div class="avatar-wrapper" v-if="form.drugLicense">
                   <img :src="form.drugLicense" class="avatar" width="200px">
-                  <!-- 悬停显示的删除按钮 -->
                   <div class="delete-mask" @click.stop="handleDelete6">
                     <i class="el-icon-delete"></i>
                   </div>
                 </div>
-
                 <i v-else class="el-icon-plus avatar-uploader-icon"></i>
               </el-upload>
             </el-form-item>
@@ -178,15 +174,7 @@
             </el-col>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="药品经营许可证是否长期有效" prop="isDrugLicensePermanent">
-              <el-switch
-                @change="switchChange()"
-                v-model="drugLicenseValue"
-                active-color="#13ce66"
-                inactive-color="#ff4949">
-              </el-switch>
-            </el-form-item>
-            <el-form-item label="药品经营许可证有效期" prop="drugLicenseExpiry" v-if="!drugLicenseValue">
+            <el-form-item label="药品经营许可证有效期" prop="drugLicenseExpiry">
               <el-date-picker
                 v-model="form.drugLicenseExpiry"
                 type="daterange"
@@ -208,10 +196,8 @@
                 :show-file-list="false"
                 :on-success="(response, file) => handleFileSuccess(response, file, 'medicalDevice2')"
                 :before-upload="beforeAvatarUpload">
-                <!-- 图片容器(包含图片和删除按钮,仅在有图片时显示) -->
                 <div class="avatar-wrapper" v-if="form.medicalDevice2">
                   <img :src="form.medicalDevice2" class="avatar" width="200px">
-                  <!-- 悬停显示的删除按钮 -->
                   <div class="delete-mask" @click.stop="handleDelete7">
                     <i class="el-icon-delete"></i>
                   </div>
@@ -224,7 +210,6 @@
                 <el-input v-model="form.medicalDevice2Code" placeholder="请输入2类器械生产备案编号" />
               </el-form-item>
             </el-col>
-
           </el-col>
           <el-col :span="12">
             <el-form-item label="2类医疗器械备案是否长期有效" prop="isMedicalDevice2ExpiryPermanent">
@@ -247,6 +232,7 @@
             </el-form-item>
           </el-col>
         </el-row>
+
         <el-row>
           <el-col :span="12">
             <el-form-item label="3类器械经营许可证上传" prop="medicalDevice3">
@@ -256,10 +242,8 @@
                 :show-file-list="false"
                 :on-success="(response, file) => handleFileSuccess(response, file, 'medicalDevice3')"
                 :before-upload="beforeAvatarUpload">
-                <!-- 图片容器(包含图片和删除按钮,仅在有图片时显示) -->
                 <div class="avatar-wrapper" v-if="form.medicalDevice3">
                   <img :src="form.medicalDevice3" class="avatar" width="200px">
-                  <!-- 悬停显示的删除按钮 -->
                   <div class="delete-mask" @click.stop="handleDelete2">
                     <i class="el-icon-delete"></i>
                   </div>
@@ -272,15 +256,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="3类器械经营许可证是否长期有效" prop="isMedicalDevice3ExpiryPermanent">
-              <el-switch
-                @change="switchChange()"
-                v-model="medicalDevice3ExpiryValue"
-                active-color="#13ce66"
-                inactive-color="#ff4949">
-              </el-switch>
-            </el-form-item>
-            <el-form-item label="3类器械经营许可证有效期" prop="medicalDevice3Expiry" v-if="!medicalDevice3ExpiryValue">
+            <el-form-item label="3类器械经营许可证有效期" prop="medicalDevice3Expiry">
               <el-date-picker
                 v-model="form.medicalDevice3Expiry"
                 type="daterange"
@@ -292,51 +268,42 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="食品经营许可证上传" prop="foodLicense">
-              <el-upload
-                class="avatar-uploader"
-                :action="uploadUrl"
-                :show-file-list="false"
-                :on-success="(response, file) => handleFileSuccess(response, file, 'foodLicense')"
-                :before-upload="beforeAvatarUpload">
-                <!-- 图片容器(包含图片和删除按钮,仅在有图片时显示) -->
-                <div class="avatar-wrapper" v-if="form.foodLicense">
-                  <img :src="form.foodLicense" class="avatar" width="200px">
-                  <!-- 悬停显示的删除按钮 -->
-                  <div class="delete-mask" @click.stop="handleDelete3">
-                    <i class="el-icon-delete"></i>
+
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="食品经营许可证上传" prop="foodLicense">
+                <el-upload
+                  class="avatar-uploader"
+                  :action="uploadUrl"
+                  :show-file-list="false"
+                  :on-success="(response, file) => handleFileSuccess(response, file, 'foodLicense')"
+                  :before-upload="beforeAvatarUpload">
+                  <div class="avatar-wrapper" v-if="form.foodLicense">
+                    <img :src="form.foodLicense" class="avatar" width="200px">
+                    <div class="delete-mask" @click.stop="handleDelete3">
+                      <i class="el-icon-delete"></i>
+                    </div>
                   </div>
-                </div>
-                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-              </el-upload>
-            </el-form-item>
-            <el-form-item label="食品经营许可证编号" prop="foodCode" style="margin-left: 5px">
-              <el-input v-model="form.foodCode" placeholder="请输入食品经营许可证编号" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="食品经营许可证是否长期有效" prop="isFoodLicenseExpiryPermanent">
-              <el-switch
-                @change="switchChange()"
-                v-model="foodLicenseExpiryValue"
-                active-color="#13ce66"
-                inactive-color="#ff4949">
-              </el-switch>
-            </el-form-item>
-            <el-form-item label="食品经营许可证有效期" prop="foodLicenseExpiry" v-if="!foodLicenseExpiryValue">
-              <el-date-picker
-                v-model="form.foodLicenseExpiry"
-                type="daterange"
-                value-format="yyyy-MM-dd"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-        </el-row>
+                  <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+                </el-upload>
+              </el-form-item>
+              <el-form-item label="食品经营许可证编号" prop="foodCode" style="margin-left: 5px">
+                <el-input v-model="form.foodCode" placeholder="请输入食品经营许可证编号" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="食品经营许可证有效期" prop="foodLicenseExpiry">
+                <el-date-picker
+                  v-model="form.foodLicenseExpiry"
+                  type="daterange"
+                  value-format="yyyy-MM-dd"
+                  range-separator="至"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
       </div>
       <el-divider content-position="left">店铺配置信息</el-divider>
       <el-form-item label="退货地址" prop="refundAddress">
@@ -424,20 +391,19 @@ import { getStoreInfo, businessLicenseCheck} from '@/api/hisStore/store'
 
 export default {
   data() {
-
     return {
-      switchMedicalValue:false,
+      switchMedicalValue: false,
       dialogVisible: false,
-      switchValue:false,
-      drugLicenseValue:false,
-      medicalDevice2ExpiryValue:false,
-      medicalDevice3ExpiryValue:false,
-      foodLicenseExpiryValue:false,
-      medicalLicenseExpiryValue:false,
-      title:'',
+      switchValue: false,
+      medicalDevice2ExpiryValue: false,
+      medicalLicenseExpiryValue: false,
+      title: '',
       statusOptions: [],
       citys: [],
       medicalMallConfig: {},
+      drugLicenseValue:false,
+      medicalDevice3ExpiryValue:false,
+      foodLicenseExpiryValue:false,
       shippingTypeOptions: [{
         "label": "配送",
         "value": "1"
@@ -454,15 +420,6 @@ export default {
       baseUrl: process.env.VUE_APP_BASE_API,
       // 表单校验
       rules: {
-        storeName: [
-          { required: true, message: '店铺名称不能为空', trigger: 'blur' }
-        ],
-        fullName: [
-          { required: true, message: '店铺名称不能为空', trigger: 'blur' }
-        ],
-        businessLicenseExpire: [
-          { required: true, message: '营业执照失效日期不能为空', trigger: 'blur' }
-        ],
         businessLicense: [
           { required: true, message: '营业执照不能为空', trigger: 'blur' }
         ],
@@ -472,12 +429,28 @@ export default {
         drugLicenseExpiry: [
           { required: true, message: '药品经营许可证有效期不能为空', trigger: 'blur' }
         ],
-        // medicalDevice2: [
-        //   { required: true, message: '2类医疗器械备案证不能为空', trigger: 'blur' }
-        // ],
-        // medicalDevice2Expiry: [
-        //   { required: true, message: '2类医疗器械备案证有效期不能为空', trigger: 'blur' }
-        // ],
+        medicalDevice3: [
+          { required: true, message: '3类器械经营许可证不能为空', trigger: 'blur' }
+        ],
+        medicalDevice3Expiry: [
+          { required: true, message: '3类器械经营许可证有效期不能为空', trigger: 'blur' }
+        ],
+        foodLicense: [
+          { required: true, message: '食品经营许可证不能为空', trigger: 'blur' }
+        ],
+        foodLicenseExpiry: [
+          { required: true, message: '食品经营许可证有效期不能为空', trigger: 'blur' }
+        ],
+
+        storeName: [
+          { required: true, message: '店铺名称不能为空', trigger: 'blur' }
+        ],
+        fullName: [
+          { required: true, message: '店铺名称不能为空', trigger: 'blur' }
+        ],
+        businessLicenseExpire: [
+          { required: true, message: '营业执照失效日期不能为空', trigger: 'blur' }
+        ],
         logoUrl: [
           { required: true, message: '店铺LOGO不能为空', trigger: 'blur' }
         ],
@@ -713,114 +686,74 @@ export default {
         if (valid) {
           // 处理表单数据
           const formData = Object.assign({}, this.form);
-
           // 处理城市ID
           if (formData.cityIds) {
             formData.cityIds = formData.cityIds.toString();
           }
-
           // 处理配送方式
           if (formData.shippingType) {
             formData.shippingType = formData.shippingType.toString();
           }
-
           // 处理日期范围字段
-          if (formData.drugLicenseExpiry && formData.drugLicenseExpiry.length === 2) {
-            formData.drugLicenseExpiryStart = formData.drugLicenseExpiry[0];
-            formData.drugLicenseExpiryEnd = formData.drugLicenseExpiry[1];
-          }
-
-          if (formData.medicalDevice2Expiry && formData.medicalDevice2Expiry.length === 2) {
-            formData.medicalDevice2ExpiryStart = formData.medicalDevice2Expiry[0];
-            formData.medicalDevice2ExpiryEnd = formData.medicalDevice2Expiry[1];
-          }
-
-          if (formData.medicalDevice1Expiry && formData.medicalDevice1Expiry.length === 2) {
-            formData.medicalDevice1ExpiryStart = formData.medicalDevice1Expiry[0];
-            formData.medicalDevice1ExpiryEnd = formData.medicalDevice1Expiry[1];
-          }
-
-          if (formData.medicalDevice3Expiry && formData.medicalDevice3Expiry.length === 2) {
-            formData.medicalDevice3ExpiryStart = formData.medicalDevice3Expiry[0];
-            formData.medicalDevice3ExpiryEnd = formData.medicalDevice3Expiry[1];
-          }
-
-          if (formData.foodLicenseExpiry && formData.foodLicenseExpiry.length === 2) {
-            formData.foodLicenseExpiryStart = formData.foodLicenseExpiry[0];
-            formData.foodLicenseExpiryEnd = formData.foodLicenseExpiry[1];
-          }
-
-          if (formData.medicalLicenseExpiry && formData.medicalLicenseExpiry.length === 2) {
-            formData.medicalLicenseExpiryStart = formData.medicalLicenseExpiry[0];
-            formData.medicalLicenseExpiryEnd = formData.medicalLicenseExpiry[1];
-          }
-          if (formData.businessLicenseExpire && formData.businessLicenseExpire.length === 2) {
-            formData.businessLicenseExpireStart = formData.businessLicenseExpire[0];
-            formData.businessLicenseExpireEnd = formData.businessLicenseExpire[1];
-          }
-
-          if (formData.settlementAgreementExpiry && formData.settlementAgreementExpiry.length === 2) {
-            formData.settlementAgreementStart = formData.settlementAgreementExpiry[0];
-            formData.settlementAgreementEnd = formData.settlementAgreementExpiry[1];
-          }else {
-            if(formData.settlementAgreement != null){
-              return this.$message.warning("其它资质-入驻协议,有效期开始日期或结束日期不能为空!");
+          const dateRangeFields = [
+            'drugLicenseExpiry',
+            'medicalDevice2Expiry',
+            'medicalDevice1Expiry',
+            'medicalDevice3Expiry',
+            'foodLicenseExpiry',
+            'medicalLicenseExpiry',
+            'businessLicenseExpire'
+          ];
+          dateRangeFields.forEach(field => {
+            if (formData[field] && formData[field].length === 2) {
+              formData[`${field}Start`] = formData[field][0];
+              formData[`${field}End`] = formData[field][1];
             }
-          }
-
-          if (formData.qualityAssuranceAgreementExpiry && formData.qualityAssuranceAgreementExpiry.length === 2) {
-            formData.qualityAssuranceAgreementStart = formData.qualityAssuranceAgreementExpiry[0];
-            formData.qualityAssuranceAgreementEnd = formData.qualityAssuranceAgreementExpiry[1];
-          }else {
-            if(formData.qualityAssuranceAgreement != null){
-              return this.$message.warning("质量保证协议,有效期开始日期或结束日期不能为空!");
+          });
+          //其他上传的日期检查
+          const agreementFields = [
+            {
+              expiryField: 'settlementAgreementExpiry',
+              startField: 'settlementAgreementStart',
+              endField: 'settlementAgreementEnd',
+              agreementField: 'settlementAgreement',
+              message: '其它资质-入驻协议,有效期开始日期或结束日期不能为空!'
+            },
+            {
+              expiryField: 'qualityAssuranceAgreementExpiry',
+              startField: 'qualityAssuranceAgreementStart',
+              endField: 'qualityAssuranceAgreementEnd',
+              agreementField: 'qualityAssuranceAgreement',
+              message: '质量保证协议,有效期开始日期或结束日期不能为空!'
+            },
+            {
+              expiryField: 'otherSpecialQualificationExpiry',
+              startField: 'otherSpecialQualificationStart',
+              endField: 'otherSpecialQualificationEnd',
+              agreementField: 'otherSpecialQualification',
+              message: '其它特殊资质,有效期开始日期或结束日期不能为空!'
             }
-          }
-
-          if (formData.otherSpecialQualificationExpiry && formData.otherSpecialQualificationExpiry.length === 2) {
-            formData.otherSpecialQualificationStart = formData.otherSpecialQualificationExpiry[0];
-            formData.otherSpecialQualificationEnd = formData.otherSpecialQualificationExpiry[1];
-          }else {
-            if(formData.otherSpecialQualification != null){
-              return this.$message.warning("其它特殊资质,有效期开始日期或结束日期不能为空!");
+          ];
+          for (const field of agreementFields) {
+            if (formData[field.expiryField] && formData[field.expiryField].length === 2) {
+              formData[field.startField] = formData[field.expiryField][0];
+              formData[field.endField] = formData[field.expiryField][1];
+            } else {
+              if (formData[field.agreementField] != null) {
+                return this.$message.warning(field.message);
+              }
             }
           }
-          if(!!this.switchValue){
-            formData.isBusinessLicensePermanent = 1;
-          }else{
-            formData.isBusinessLicensePermanent = 0;
-          }
-          if(!!this.switchMedicalValue){
-            formData.isMedicalDevice1ExpiryPermanent=1;
-          }else {
-            formData.isMedicalDevice1ExpiryPermanent=0;
-          }
-          if(!!this.drugLicenseValue){
-            formData.isDrugLicensePermanent=1;
-          }else {
-            formData.isDrugLicensePermanent=0;
-          }
-          if(!!this.medicalDevice2ExpiryValue){
-            formData.isMedicalDevice2ExpiryPermanent=1;
-          }else {
-            formData.isMedicalDevice2ExpiryPermanent=0;
-          }
-          if(!!this.medicalDevice3ExpiryValue){
-            formData.isMedicalDevice3ExpiryPermanent=1;
-          }else {
-            formData.isMedicalDevice3ExpiryPermanent=0;
-          }
-          if(!!this.foodLicenseExpiryValue){
-            formData.isFoodLicenseExpiryPermanent=1;
-          }else {
-            formData.isFoodLicenseExpiryPermanent=0;
-          }
-          if(!!this.medicalLicenseExpiryValue){
-            formData.isMedicalLicenseExpiryPermanent=1;
-          }else {
-            formData.isMedicalLicenseExpiryPermanent=0;
-          }
 
+          // 优化开关值转换逻辑,使用更简洁的方式设置永久有效标志位
+          formData.isBusinessLicensePermanent = this.switchValue ? 1 : 0;
+          formData.isMedicalDevice1ExpiryPermanent = this.switchMedicalValue ? 1 : 0;
+          formData.isMedicalDevice2ExpiryPermanent = this.medicalDevice2ExpiryValue ? 1 : 0;
+          formData.isMedicalLicenseExpiryPermanent = this.medicalLicenseExpiryValue ? 1 : 0;
+          // 补充缺失的永久有效标志位设置
+          formData.isDrugLicensePermanent = this.drugLicenseValue ? 1 : 0;
+          formData.isMedicalDevice3ExpiryPermanent = this.medicalDevice3ExpiryValue ? 1 : 0;
+          formData.isFoodLicenseExpiryPermanent = this.foodLicenseExpiryValue ? 1 : 0;
 
           if (formData.storeId != null) {
             updateStore(formData).then(response => {
@@ -854,25 +787,16 @@ export default {
       this.reset()
       getStoreInfo().then(response => {
         this.form = response.data;
-        if(this.form.isBusinessLicensePermanent == 1){
+        if (this.form.isBusinessLicensePermanent == 1) {
           this.switchValue = true;
         }
-        if(this.form.isMedicalDevice1ExpiryPermanent == 1){
+        if (this.form.isMedicalDevice1ExpiryPermanent == 1) {
           this.switchMedicalValue = true;
         }
-        if(this.form.isDrugLicensePermanent == 1){
-          this.drugLicenseValue = true;
-        }
-        if(this.form.isMedicalDevice2ExpiryPermanent == 1){
+        if (this.form.isMedicalDevice2ExpiryPermanent == 1) {
           this.medicalDevice2ExpiryValue = true;
         }
-        if(this.form.isMedicalDevice3ExpiryPermanent == 1){
-          this.medicalDevice3ExpiryValue = true;
-        }
-        if(this.form.isFoodLicenseExpiryPermanent == 1){
-          this.foodLicenseExpiryValue = true;
-        }
-        if(this.form.isMedicalLicenseExpiryPermanent == 1){
+        if (this.form.isMedicalLicenseExpiryPermanent == 1) {
           this.medicalLicenseExpiryValue = true;
         }
         this.open = true;