Sfoglia il codice sorgente

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

yjwang 6 giorni fa
parent
commit
f711a8905d

+ 4 - 4
src/api/hisStore/storeOrder.js

@@ -4,8 +4,8 @@ import request from '@/utils/request'
 export function listStoreOrder(query) {
   return request({
     url: '/store/store/storeOrder/list',
-    method: 'get',
-    params: query
+    method: 'post',
+    data: query
   })
 }
 
@@ -37,8 +37,8 @@ export function listPromotionOrder(query) {
 export function listHealthStoreOrder(query) {
   return request({
     url: '/store/store/storeOrder/healthList',
-    method: 'get',
-    params: query
+    method: 'post',
+    data: query
   })
 }
 

+ 34 - 17
src/views/his/doctor/type2.vue

@@ -11,9 +11,9 @@
         />
       </el-form-item>
 
-      <el-form-item label="所属医院" prop="hospitalId">
-      <el-select v-model="queryParams.hospitalId" placeholder="请选择所属医院" filterable>
-             <el-option v-for="(option, index) in hospitalList" :key="index" :value="option.dictValue" :label="option.dictLabel"></el-option>
+      <el-form-item label="所属店铺" prop="hospitalId">
+      <el-select v-model="queryParams.storeId" placeholder="请选择所属店铺" filterable>
+             <el-option v-for="(option, index) in storeOptions" :key="index" :value="option.storeId" :label="option.storeName"></el-option>
        </el-select>
       </el-form-item>
 
@@ -126,8 +126,8 @@
          <div v-if="scope.row.nickName!=null"> {{scope.row.nickName}}-{{scope.row.phone}}</div>
        </template>
       </el-table-column>
-      <el-table-column label="所属医院" align="center" prop="hospitalName" width="150px"/>
-
+<!--      <el-table-column label="所属医院" align="center" prop="storeName" width="150px"/>-->
+      <el-table-column label="所属店铺" align="center" width="150px" :formatter="formatStoreName"/>
       <el-table-column label="余额" align="center" prop="balance" />
       <el-table-column label="状态" align="center" prop="status" >
         <template slot-scope="scope">
@@ -229,16 +229,26 @@
                 <el-input v-model="form.doctorName" placeholder="请输入医生姓名" />
               </el-form-item></el-col>
             <el-col :span="12">
-                <el-form-item label="所属医院" prop="hospitalId">
-                  <el-select v-model="form.hospitalId" placeholder="请选择所属医院" clearable size="small" filterable>
-                       <el-option
-                         v-for="dict in hospitalList"
-                         :key="dict.dictValue"
-                         :label="dict.dictLabel"
-                         :value="dict.dictValue"
-                       />
-                     </el-select>
-                </el-form-item>
+<!--                <el-form-item label="所属药铺" prop="hospitalId">-->
+<!--                  <el-select v-model="form.hospitalId" placeholder="请选择所属药铺" clearable size="small" filterable>-->
+<!--                       <el-option-->
+<!--                         v-for="dict in hospitalList"-->
+<!--                         :key="dict.dictValue"-->
+<!--                         :label="dict.dictLabel"-->
+<!--                         :value="dict.dictValue"-->
+<!--                       />-->
+<!--                     </el-select>-->
+<!--                </el-form-item>-->
+              <el-form-item label="所属店铺" prop="storeId">
+                <el-select style="width: 240px" v-model="form.storeId" placeholder="请选择店铺" clearable size="small" >
+                  <el-option
+                    v-for="item in storeOptions"
+                    :key="item.storeId"
+                    :label="item.storeName"
+                    :value="item.storeId"
+                  />
+                </el-select>
+              </el-form-item>
             </el-col>
       </el-row>
    <!--   <el-row>
@@ -523,6 +533,7 @@ import{listDepartment} from "@/api/his/disease";
 import{listAllHospital} from "@/api/his/hospital";
 import {getCitys} from "@/api/store/city";
 import pharmacistDetails from '../../components/his/pharmacistDetails.vue';
+import {listStore} from "@/api/hisStore/store";
 export default {
   name: "pharmacist",
   components: { pharmacistDetails },
@@ -685,7 +696,7 @@ export default {
               "dictLabel": "驳回",
               "dictValue": -1
       }],
-
+      storeOptions:[],
 
     };
   },
@@ -714,7 +725,9 @@ export default {
     this.getDicts("sys_product_type").then(response => {
       this.auditTypeOptions = response.data;
     });
-
+    listStore().then(response => {
+      this.storeOptions = response.rows;
+    });
 
     this.getdeplist();
     this.getHospitaldeplist();
@@ -1097,6 +1110,10 @@ export default {
           this.download(response.msg);
           this.exportLoading = false;
         }).catch(() => {});
+    },
+    formatStoreName(row) {
+      const store = this.storeOptions.find(option => option.storeId === row.storeId);
+      return store ? store.storeName : '';
     }
   }
 };

+ 75 - 0
src/views/hisStore/components/productAfterSalesOrder.vue

@@ -185,6 +185,79 @@
             </template>
           </el-table-column>
         </el-table>
+        <div style="margin-top: 20px">
+          <svg-icon icon-class="marker" style="color: #606266"></svg-icon>
+          <span class="font-small">店铺信息</span>
+        </div>
+        <el-descriptions title="" :column="3" border>
+          <el-descriptions-item label="店铺名称" >
+            <span>{{store.storeName}}</span>
+          </el-descriptions-item>
+          <el-descriptions-item label="店铺介绍" >
+            <span>{{store.descs}}</span>
+          </el-descriptions-item>
+          <el-descriptions-item label="店铺LOGO" >
+            <el-image
+              style="width: 100px"
+              :src="store.logoUrl"
+              :preview-src-list="[store.logoUrl]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="店铺电话" >
+            <span v-if="store!=null">{{store.phone}}</span>
+          </el-descriptions-item>
+          <el-descriptions-item label="营业执照" >
+            <el-image v-if="store.businessLicense!=null && store.businessLicense !== ''"
+                      style="width: 100px"
+                      :src="store.businessLicense"
+                      :preview-src-list="[store.businessLicense]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="药品经营许可证">
+            <el-image v-if="store.drugLicense!=null && store.drugLicense !== ''"
+                      style="width: 100px"
+                      :src="store.drugLicense"
+                      :preview-src-list="[store.drugLicense]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="1类器械生产">
+            <el-image v-if="store.medicalDevice1!=null && store.medicalDevice1 !== ''"
+                      style="width: 100px"
+                      :src="store.medicalDevice1"
+                      :preview-src-list="[store.medicalDevice1]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="2类器械备案">
+            <el-image v-if="store.medicalDevice2!=null && store.medicalDevice2 !== ''"
+                      style="width: 100px"
+                      :src="store.medicalDevice2"
+                      :preview-src-list="[store.medicalDevice2]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="3类器械营业许可证">
+            <el-image v-if="store.medicalDevice3!=null && store.medicalDevice3 !== ''"
+                      style="width: 100px"
+                      :src="store.medicalDevice3"
+                      :preview-src-list="[store.medicalDevice3]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="食品许可证">
+            <el-image v-if="store.foodLicense!=null && store.foodLicense !== ''"
+                      style="width: 100px"
+                      :src="store.foodLicense"
+                      :preview-src-list="[store.foodLicense]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="药品许可证">
+            <el-image v-if="store.medicalLicense!=null && store.medicalLicense !== ''"
+                      style="width: 100px"
+                      :src="store.medicalLicense"
+                      :preview-src-list="[store.medicalLicense]">
+            </el-image>
+          </el-descriptions-item>
+
+        </el-descriptions>
+
         <div style="margin-top: 20px">
           <svg-icon icon-class="marker" style="color: #606266"></svg-icon>
           <span class="font-small">操作信息</span>
@@ -290,6 +363,7 @@ export default {
       statusOptions:[],
       afterSales:null,
       items:[],
+      store: null,
       logs:[],
       form:{
         refundAmount:0,
@@ -413,6 +487,7 @@ export default {
             this.items = response.items;
             this.user=response.user;
             this.order=response.order;
+            this.store=response.store;
         });
      }
   }

+ 76 - 1
src/views/hisStore/components/productOrder.vue

@@ -292,6 +292,79 @@
       <div style="float: right;margin: 20px" v-if="order!=null">
         合计:<span class="color-danger">¥{{order.totalPrice.toFixed(2)}}</span>
       </div>
+        <div style="margin: 60px 0px 20px 0px">
+          <span class="font-small">店铺信息</span>
+        </div>
+        <el-descriptions title="" :column="3" border>
+          <el-descriptions-item label="店铺名称" >
+            <span>{{storeScrm.storeName}}</span>
+          </el-descriptions-item>
+          <el-descriptions-item label="店铺介绍" >
+            <span>{{storeScrm.descs}}</span>
+          </el-descriptions-item>
+          <el-descriptions-item label="店铺LOGO" >
+            <el-image
+              style="width: 100px"
+              :src="storeScrm.logoUrl"
+              :preview-src-list="[storeScrm.logoUrl]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="店铺电话" >
+            <span v-if="storeScrm!=null">{{storeScrm.phone}}</span>
+          </el-descriptions-item>
+          <el-descriptions-item label="营业执照" >
+            <el-image v-if="storeScrm.businessLicense!=null && storeScrm.businessLicense !== ''"
+              style="width: 100px"
+              :src="storeScrm.businessLicense"
+              :preview-src-list="[storeScrm.businessLicense]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="药品经营许可证">
+            <el-image v-if="storeScrm.drugLicense!=null && storeScrm.drugLicense !== ''"
+                      style="width: 100px"
+              :src="storeScrm.drugLicense"
+              :preview-src-list="[storeScrm.drugLicense]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="1类器械生产">
+            <el-image v-if="storeScrm.medicalDevice1!=null && storeScrm.medicalDevice1 !== ''"
+              style="width: 100px"
+              :src="storeScrm.medicalDevice1"
+              :preview-src-list="[storeScrm.medicalDevice1]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="2类器械备案">
+            <el-image v-if="storeScrm.medicalDevice2!=null && storeScrm.medicalDevice2 !== ''"
+              style="width: 100px"
+              :src="storeScrm.medicalDevice2"
+              :preview-src-list="[storeScrm.medicalDevice2]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="3类器械营业许可证">
+            <el-image v-if="storeScrm.medicalDevice3!=null && storeScrm.medicalDevice3 !== ''"
+              style="width: 100px"
+              :src="storeScrm.medicalDevice3"
+              :preview-src-list="[storeScrm.medicalDevice3]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="食品许可证">
+            <el-image v-if="storeScrm.foodLicense!=null && storeScrm.foodLicense !== ''"
+              style="width: 100px"
+              :src="storeScrm.foodLicense"
+              :preview-src-list="[storeScrm.foodLicense]">
+            </el-image>
+          </el-descriptions-item>
+          <el-descriptions-item label="药品许可证">
+            <el-image v-if="storeScrm.medicalLicense!=null && storeScrm.medicalLicense !== ''"
+              style="width: 100px"
+              :src="storeScrm.medicalLicense"
+              :preview-src-list="[storeScrm.medicalLicense]">
+            </el-image>
+          </el-descriptions-item>
+
+        </el-descriptions>
+
+
       <div style="margin: 60px 0px 20px 0px">
         <span class="font-small">费用信息</span>
       </div>
@@ -666,6 +739,7 @@ export default {
       tuiMoneyLogs:[],
       erpOrder:null,
       auditLogs: [],
+      storeScrm: null,
     };
   },
   created() {
@@ -938,6 +1012,7 @@ export default {
         this.certificates = null;
         getStoreOrder(orderId).then(response => {
             this.order = response.order;
+            this.storeScrm=response.storeScrm;
             if(response.order.certificates != null){
               this.certificates = response.order.certificates;
             }
@@ -964,7 +1039,7 @@ export default {
           console.log(res.data);
           _this.replyCommentForm = res.data;
       })
-      
+
 
      }
   }

+ 64 - 1
src/views/hisStore/store/index.vue

@@ -264,7 +264,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="地址" prop="address">
-              <el-input v-model="form.address" placeholder="请输入地址" />
+              <el-input v-model="form.address" placeholder="请输入地址"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -299,7 +299,14 @@
                 <i v-else class="el-icon-plus avatar-uploader-icon"></i>
               </el-upload>
             </el-form-item>
+            <el-col :span="12">
+              <el-form-item label="营业执照编号" prop="businessCode" style="margin-left: 5px;margin-bottom: 20px">
+                <el-input v-model="form.businessCode" placeholder="请输入营业制造编号" />
+              </el-form-item>
+            </el-col>
+
           </el-col>
+
           <el-col :span="12">
             <el-form-item label="营业执照是否长期有效" prop="isBusinessLicensePermanent">
               <el-switch
@@ -335,6 +342,11 @@
                   <i v-else class="el-icon-plus avatar-uploader-icon"></i>
                 </el-upload>
               </el-form-item>
+              <el-col :span="14">
+                <el-form-item label="药品经营许可证编号" prop="drugCode" style="margin-left: 5px">
+                  <el-input v-model="form.drugCode" placeholder="请输入药品经营许可证编号" />
+                </el-form-item>
+              </el-col>
             </el-col>
             <el-col :span="12">
               <el-form-item label="药品经营许可证有效期" prop="drugLicenseExpiry">
@@ -362,6 +374,11 @@
                   <i v-else class="el-icon-plus avatar-uploader-icon"></i>
                 </el-upload>
               </el-form-item>
+              <el-col :span="14">
+                <el-form-item label="1类器械生产备案编号" prop="medicalDevice1Code" style="margin-left: 5px">
+                  <el-input v-model="form.medicalDevice1Code" placeholder="请输入1类器械生产备案编号" />
+                </el-form-item>
+              </el-col>
             </el-col>
             <el-col :span="12">
               <el-form-item label="1类生产备案有效期" prop="medicalDevice1Expiry">
@@ -389,6 +406,12 @@
                   <i v-else class="el-icon-plus avatar-uploader-icon"></i>
                 </el-upload>
               </el-form-item>
+              <el-col :span="14">
+                <el-form-item label="2类器械生产备案编号" prop="medicalDevice2Code" style="margin-left: 5px">
+                  <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="medicalDevice2Expiry">
@@ -416,6 +439,9 @@
                   <i v-else class="el-icon-plus avatar-uploader-icon"></i>
                 </el-upload>
               </el-form-item>
+              <el-form-item label="3类器械生产备案编号" prop="medicalDevice3Code" style="margin-left: 5px">
+                <el-input v-model="form.medicalDevice3Code" placeholder="请输入3类器械生产备案编号" />
+              </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item label="3类器械经营许可证有效期" prop="medicalDevice3Expiry">
@@ -443,6 +469,9 @@
                   <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">
@@ -470,6 +499,9 @@
                   <i v-else class="el-icon-plus avatar-uploader-icon"></i>
                 </el-upload>
               </el-form-item>
+              <el-form-item label="医疗机构执业许可证编号" prop="medicalCode" style="margin-left: 5px">
+                <el-input v-model="form.medicalCode" placeholder="请输入医疗机构执业许可证编号" />
+              </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item label="医疗机构执业许可证有效期" prop="medicalLicenseExpiry">
@@ -500,6 +532,9 @@
                   <i v-else class="el-icon-plus avatar-uploader-icon"></i>
                 </el-upload>
               </el-form-item>
+              <el-form-item label="其它资质-入驻协议编号" prop="settlementAgreementCode" style="margin-left: 5px">
+                <el-input v-model="form.settlementAgreementCode" placeholder="请输入其它资质-入驻协议编号" />
+              </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item label="其它资质-入驻协议有效期">
@@ -527,6 +562,9 @@
                   <i v-else class="el-icon-plus avatar-uploader-icon"></i>
                 </el-upload>
               </el-form-item>
+              <el-form-item label="质量保证协议编号" prop="qualityAssuranceAgreementCode" style="margin-left: 5px">
+                <el-input v-model="form.qualityAssuranceAgreementCode" placeholder="请输入质量保证协议编号" />
+              </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item label="质量保证协议有效期">
@@ -554,6 +592,9 @@
                   <i v-else class="el-icon-plus avatar-uploader-icon"></i>
                 </el-upload>
               </el-form-item>
+              <el-form-item label="其它特殊资质编号" prop="otherSpecialQualificationCode" style="margin-left: 5px">
+                <el-input v-model="form.otherSpecialQualificationCode" placeholder="请输入其它特殊资质编号" />
+              </el-form-item>
             </el-col>
             <el-col :span="12">
               <el-form-item label="其它特殊资质有效期">
@@ -744,15 +785,24 @@ export default {
         businessLicense: [
           { required: true, message: "营业执照不能为空", trigger: "blur" }
         ],
+        businessCode:[
+          { required: true, message: "营业执照编号不能为空", trigger: "blur" }
+        ],
         drugLicense:[
           { required: true, message: "药品经营许可证不能为空", trigger: "blur" }
         ],
         drugLicenseExpiry:[
           { required: true, message: "药品经营许可证有效期不能为空", trigger: "blur" }
         ],
+        drugCode:[
+          { required: true, message: "药品经营许可证编号不能为空", trigger: "blur" }
+        ],
         medicalLicense:[
           { required: true, message: "医疗机构执业许可证不能为空", trigger: "blur" }
         ],
+        medicalCode:[
+          { required: true, message: "医疗机构执业许可证编号不能为空", trigger: "blur" }
+        ],
         medicalLicenseExpiry:[
           { required: true, message: "医疗机构执业许可证有效期不能为空", trigger: "blur" }
         ],
@@ -762,6 +812,9 @@ export default {
         medicalDevice2Expiry:[
           { required: true, message: "2类医疗器械备案证有效期不能为空", trigger: "blur" }
         ],
+        medicalDevice2Code:[
+          { required: true, message: "2类医疗器械备案证编号不能为空", trigger: "blur" }
+        ],
         logoUrl: [
           { required: true, message: "店铺LOGO不能为空", trigger: "blur" }
         ],
@@ -993,6 +1046,16 @@ export default {
         qualityAssuranceAgreementExpiry: null,//质量保证协议有效期
         otherSpecialQualification: null,//其它特殊资质
         otherSpecialQualificationExpiry: null,//其它特殊资质有效期
+        businessCode: null,
+        drugCode:null,
+        medicalDevice1Code:null,
+        medicalDevice2Code:null,
+        medicalDevice3Code:null,
+        foodCode:null,
+        medicalCode:null,
+        otherSpecialQualificationCode:null,
+        qualityAssuranceAgreementCode:null,
+        settlementAgreementCode: null,
       };
       this.resetForm("form");
     },

+ 33 - 0
src/views/hisStore/storeAfterSales/index.vue

@@ -121,6 +121,33 @@
           end-placeholder="结束日期">
         </el-date-picker>
       </el-form-item>
+      <el-form-item label="店铺名称" prop="storeName">
+        <el-input
+          v-model="queryParams.storeName"
+          placeholder="请输入店铺名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="店铺ID" prop="storeSeq">
+        <el-input
+          v-model="queryParams.storeSeq"
+          placeholder="请输入店铺ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商家ID" prop="merchantId">
+        <el-input
+          v-model="queryParams.merchantId"
+          placeholder="请输入商家ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -181,6 +208,12 @@
 
       <el-table-column label="提交时间" align="center" prop="createTime" />
 
+      <el-table-column label="店铺名称" align="center" prop="storeName" />
+
+      <el-table-column label="商家ID" align="center" prop="merchantId" />
+
+      <el-table-column label="店铺ID" align="center" prop="storeSeq" />
+
       <el-table-column label="操作" align="center" fixed="right" width="100px" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button

+ 42 - 0
src/views/hisStore/storeOrder/healthStoreList.vue

@@ -150,6 +150,33 @@
         >
         </el-date-picker>
       </el-form-item>
+      <el-form-item label="店铺名称" prop="storeName">
+        <el-input
+          v-model="queryParams.storeName"
+          clearable
+          placeholder="请输入店铺名称"
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商家ID" prop="merchantId">
+        <el-input
+          v-model="queryParams.merchantId"
+          clearable
+          placeholder="请输入商家ID"
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="店铺ID" prop="storeSeq">
+        <el-input
+          v-model="queryParams.storeSeq"
+          clearable
+          placeholder="请输入店铺ID"
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
       <el-form-item>
         <el-button icon="el-icon-search" size="mini" type="cyan" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -319,6 +346,21 @@
           </el-tag>
         </template>
       </el-table-column>
+      <el-table-column align="center" label="店铺名称" prop="storeName" width="150px">
+        <template slot-scope="scope">
+          <span>{{ scope.row.storeName }} </span>
+        </template>
+      </el-table-column>
+      <el-table-column align="center" label="商家ID" prop="merchantId" width="150px">
+        <template slot-scope="scope">
+          <span>{{ scope.row.merchantId }} </span>
+        </template>
+      </el-table-column>
+      <el-table-column align="center" label="店铺ID" prop="storeSeq" width="150px">
+        <template slot-scope="scope">
+          <span>{{ scope.row.storeSeq }} </span>
+        </template>
+      </el-table-column>
 
       <el-table-column align="center" fixed="right" label="操作" width="80px">
         <template slot-scope="scope">

+ 44 - 5
src/views/hisStore/storeOrder/index.vue

@@ -166,6 +166,33 @@
                     />
             </el-select>
         </el-form-item>
+      <el-form-item label="店铺名称" prop="storeName">
+        <el-input
+          v-model="queryParams.storeName"
+          placeholder="请输入店铺名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="商家ID" prop="merchantId">
+        <el-input
+          v-model="queryParams.merchantId"
+          placeholder="请输入商家ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="店铺ID" prop="storeSeq">
+        <el-input
+          v-model="queryParams.storeSeq"
+          placeholder="请输入店铺ID"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
       <el-form-item>
         <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -310,11 +337,6 @@
               <el-tag prop="orderType" v-for="(item, index) in orderTypeOptions"    v-if="scope.row.orderType==item.dictValue">{{item.dictLabel}}</el-tag>
           </template>
       </el-table-column>
-      <el-table-column label="媒体来源" align="center" prop="orderMedium" >
-          <template slot-scope="scope">
-              <el-tag prop="orderMedium" v-for="(item, index) in orderMediumOptions"    v-if="scope.row.orderMedium==item.dictValue">{{item.dictLabel}}</el-tag>
-          </template>
-      </el-table-column>
       <el-table-column label="订单产品" align="center" width="200px">
         <template slot-scope="scope">
           <div v-if="scope.row.items && scope.row.items.length > 0">
@@ -347,6 +369,21 @@
               <el-tag prop="status" v-for="(item, index) in deliveryPayStatusOptions"    v-if="scope.row.deliveryPayStatus==item.dictValue">{{item.dictLabel}}</el-tag>
           </template>
       </el-table-column>
+      <el-table-column label="店铺名称" align="center" prop="storeName" width="150px" >
+        <template slot-scope="scope">
+          <span>{{scope.row.storeName}} </span>
+        </template>
+      </el-table-column>
+      <el-table-column label="商家ID" align="center" prop="merchantId" width="150px" >
+        <template slot-scope="scope">
+          <span>{{scope.row.merchantId}} </span>
+        </template>
+      </el-table-column>
+      <el-table-column label="店铺ID" align="center" prop="storeSeq" width="150px" >
+        <template slot-scope="scope">
+          <span>{{scope.row.storeSeq}} </span>
+        </template>
+      </el-table-column>
 
       <el-table-column label="操作" fixed="right" width="80px" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
@@ -752,6 +789,8 @@ export default {
         isSysDel: null,
         deptId:null,
         isUpload:null,
+        merchantId:null,
+        storeSeq:null,
 
       },
       // 表单参数

+ 61 - 4
src/views/hisStore/storeProduct/index.vue

@@ -3,7 +3,7 @@
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
 
       <el-form-item label="商品分类" prop="cateId">
-        <treeselect  v-model="queryParams.cateId"  style="width:205.4px" :options="categoryOptions" :normalizer="normalizer" placeholder="请选择分类" />
+        <treeselect  v-model="queryParams.cateId"  style="width:205.4px" :options="categoryOptions" :normalizer="normalizer" placeholder="请选择分类"  />
       </el-form-item>
 
       <el-form-item label="商品名称" prop="productName">
@@ -478,7 +478,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="商品分类" prop="cateId">
-              <treeselect v-model="form.cateId" :options="categoryOptions" :normalizer="normalizer" placeholder="请选择上级分类" />
+              <treeselect v-model="form.cateId" :options="categoryOptions" :normalizer="normalizer" placeholder="请选择上级分类"  />
             </el-form-item>
           </el-col>
         </el-row>
@@ -1052,6 +1052,30 @@ export default {
     },
     drugImageArr: function(val) {
       this.form.drugImage = val.join(',');
+    },
+    'form.cateId': {
+      handler(newVal) {
+        // 分类变化时动态修改验证规则
+        if (newVal == 224) {
+          this.rules.indications = [];
+          this.rules.dosage = [];
+        } else {
+          this.rules.indications = [
+            { required: true, message: "功能主治不能为空", trigger: "blur" }
+          ];
+          this.rules.dosage = [
+            { required: true, message: "用法用量不能为空", trigger: "blur" }
+          ];
+        }
+
+        // 清除验证状态
+        this.$nextTick(() => {
+          if (this.$refs.form) {
+            this.$refs.form.clearValidate(['indications', 'dosage']);
+          }
+        });
+      },
+      immediate: true
     }
   },
   data() {
@@ -1178,7 +1202,11 @@ export default {
         precautions: null
       },
       // 表单参数
-      form: {},
+      form: {
+        cateId: null,
+        indications: '',
+        dosage: ''
+      },
       // 表单校验
       rules: {
         image: [
@@ -1269,9 +1297,38 @@ export default {
         // storeId :[
         //   { required: true, message: "所属店铺不能为空", trigger: "blur"}
         // ],
-      }
+      },
     };
   },
+  // computed: {
+  //   // 动态验证规则 - 返回完整的规则对象
+  //   dynamicRules() {
+  //     // 复制基础规则
+  //     const rules = { ...this.rules };
+  //
+  //     // 判断是否为处方药 (cateId = 224)
+  //     const isPrescriptionDrug = this.form.cateId == 224;
+  //     console.log("分类id"+this.form.cateId);
+  //     // 修改触发时机,只在失去焦点时验证
+  //     Object.keys(rules).forEach(key => {
+  //       if (rules[key] && rules[key].length > 0) {
+  //         rules[key].forEach(rule => {
+  //           rule.trigger = 'blur'; // 只在失去焦点时验证
+  //         });
+  //       }
+  //     });
+  //     // 如果是处方药,取消功能主治和用法用量的校验
+  //     if (isPrescriptionDrug) {
+  //       rules.indications = []; // 空数组表示取消校验
+  //       rules.dosage = []; // 空数组表示取消校验
+  //     }else {
+  //       rules.indications = this.rules.indications
+  //       rules.dosage = this.rules.dosage
+  //     }
+  //
+  //     return rules;
+  //   }
+  // },
   methods: {
     cancel1(){
       this.open1 = false;

+ 43 - 23
src/views/hisStore/storeProductPackage/index.vue

@@ -30,13 +30,13 @@
               />
         </el-select>
       </el-form-item>
-      <el-form-item label="公司" prop="companyId">
-        <el-select style="width: 220px" filterable v-model="queryParams.companyId" placeholder="请选择公司名" clearable size="small">
+      <el-form-item label="所属店铺" prop="storeId">
+        <el-select style="width: 240px" v-model="form.storeId" placeholder="请选择店铺" clearable size="small" >
           <el-option
-            v-for="item in companyOptions"
-            :key="item.companyId"
-            :label="item.companyName"
-            :value="item.companyId"
+            v-for="item in storeOptions"
+            :key="item.storeId"
+            :label="item.storeName"
+            :value="item.storeId"
           />
         </el-select>
       </el-form-item>
@@ -108,7 +108,8 @@
               <el-tag prop="cateId" v-for="(item, index) in cateOptions"    v-if="scope.row.cateId==item.dictValue">{{item.dictLabel}}</el-tag>
           </template>
       </el-table-column>
-      <el-table-column label="所属公司" align="center" prop="companyName" />
+<!--      <el-table-column label="所属公司" align="center" prop="companyName" />-->
+      <el-table-column label="所属店铺" align="center" width="150px" :formatter="formatStoreName"/>
       <el-table-column label="标题" align="center" prop="title" show-overflow-tooltip />
       <el-table-column label="描述" align="center" prop="descs" show-overflow-tooltip />
       <el-table-column label="原价" align="center"  >
@@ -175,13 +176,13 @@
                 <el-radio :label="item.dictValue" v-for="item in statusOptions" >{{item.dictLabel}}</el-radio>
               </el-radio-group>
         </el-form-item>
-         <el-form-item label="公司" prop="companyId">
-           <el-select style="width: 220px" filterable v-model="form1.companyId" placeholder="请选择公司名" clearable size="small">
+         <el-form-item label="所属店铺" prop="storeId">
+           <el-select style="width: 240px" v-model="form1.storeId" placeholder="请选择店铺" clearable size="small" >
              <el-option
-               v-for="item in companyOptions"
-               :key="item.companyId"
-               :label="item.companyName"
-               :value="item.companyId"
+               v-for="item in storeOptions"
+               :key="item.storeId"
+               :label="item.storeName"
+               :value="item.storeId"
              />
            </el-select>
          </el-form-item>
@@ -214,13 +215,23 @@
                     />
             </el-select>
         </el-form-item>
-        <el-form-item label="所属公司" prop="companyId">
-          <el-select style="width: 240px" v-model="form.companyId" placeholder="请选择企业" clearable size="small" @change="handleCompanyChange">
+<!--        <el-form-item label="所属公司" prop="companyId">-->
+<!--          <el-select style="width: 240px" v-model="form.companyId" placeholder="请选择企业" clearable size="small" @change="handleCompanyChange">-->
+<!--            <el-option-->
+<!--              v-for="item in companyOptions"-->
+<!--              :key="item.companyId"-->
+<!--              :label="item.companyName"-->
+<!--              :value="item.companyId"-->
+<!--            />-->
+<!--          </el-select>-->
+<!--        </el-form-item>-->
+        <el-form-item label="所属店铺" prop="storeId">
+          <el-select style="width: 240px" v-model="form.storeId" placeholder="请选择店铺" clearable size="small" >
             <el-option
-              v-for="item in companyOptions"
-              :key="item.companyId"
-              :label="item.companyName"
-              :value="item.companyId"
+              v-for="item in storeOptions"
+              :key="item.storeId"
+              :label="item.storeName"
+              :value="item.storeId"
             />
           </el-select>
         </el-form-item>
@@ -336,6 +347,7 @@ import productAttrValueSelect from "../components/productAttrValueSelect";
 import Material from '@/components/Material'
 import singleImg from '@/components/Material/single'
 import {getCompanyList} from "@/api/company/company";
+import {listStore} from "@/api/hisStore/store";
 export default {
   name: "HisStoreProductPackage",
   components: {
@@ -437,7 +449,8 @@ export default {
           { required: true, message: "限购次数不能为空" }
         ],
 
-      }
+      },
+      storeOptions:[]
     };
   },
   created() {
@@ -455,6 +468,10 @@ export default {
     this.getList();
 
     this.getCompanyList();
+
+    listStore().then(response => {
+      this.storeOptions = response.rows;
+    });
   },
   methods: {
     handleCompanyChange(){
@@ -500,8 +517,8 @@ export default {
       this.$message.success("商品已添加!");
     },
     handleAddProduct(){
-      if(!this.form.companyId) {
-        this.$message.error("请选择套餐所属公司!");
+      if(!this.form.storeId) {
+        this.$message.error("请选择套餐所属商铺!");
         return;
       }
       this.product.open=true;
@@ -729,7 +746,10 @@ export default {
       });
 
     },
-
+    formatStoreName(row) {
+      const store = this.storeOptions.find(option => option.storeId === row.storeId);
+      return store ? store.storeName : '';
+    },
 
   }
 };