瀏覽代碼

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

yjwang 5 天之前
父節點
當前提交
beb78aac2b
共有 3 個文件被更改,包括 127 次插入49 次删除
  1. 10 0
      src/api/system/user.js
  2. 56 2
      src/views/hisStore/store/index.vue
  3. 61 47
      src/views/hisStore/storeOrder/healthStoreList.vue

+ 10 - 0
src/api/system/user.js

@@ -160,3 +160,13 @@ export function noticeInfo() {
     method: 'get'
   })
 }
+/**
+ * 资质信息提示
+ * @returns {*}
+ */
+export function qualifications() {
+  return request({
+    url: '/system/user/storeRecommendNotice',
+    method: 'get'
+  })
+}

+ 56 - 2
src/views/hisStore/store/index.vue

@@ -381,7 +381,15 @@
               </el-col>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="1类生产备案有效期" prop="medicalDevice1Expiry">
+              <el-form-item label="1类医疗器械是否长期有效" prop="isMedicalDevice1ExpiryPermanent">
+                <el-switch
+                  @change="switchChange()"
+                  v-model="switchMedicalValue"
+                  active-color="#13ce66"
+                  inactive-color="#ff4949">
+                </el-switch>
+              </el-form-item>
+              <el-form-item label="1类生产备案有效期" prop="medicalDevice1Expiry" v-if="!switchMedicalValue">
                 <el-date-picker
                   v-model="form.medicalDevice1Expiry"
                   type="daterange"
@@ -699,6 +707,17 @@
     </el-drawer>
 
 
+    <el-dialog
+      title="店铺资质消息提示"
+      :visible.sync="dialogVisible"
+      width="40%"
+      center>
+      <div v-for="(item,index) in promptList">({{index+1}})、{{item}}</div>
+      <span slot="footer" class="dialog-footer">
+       <el-button type="primary" @click="dialogVisible = false">已 知 晓</el-button>
+      </span>
+    </el-dialog>
+
   </div>
 </template>
 
@@ -707,12 +726,16 @@ import { listStore, getStore, delStore, addStore, updateStore, exportStore, refr
 import storeDetails from '../components/storeDetails.vue';
 import {getCitys} from "@/api/store/city";
 import { getConfigByKey } from '@/api/system/config'
+import { qualifications } from '@/api/system/user';
 export default {
   name: "Store",
   components: { storeDetails },
   data() {
     return {
+      promptList:[],
+      dialogVisible: false,
       switchValue:false,
+      switchMedicalValue:false,
       show: {
         title: "店铺详情",
         open: false,
@@ -902,9 +925,31 @@ export default {
     this.getDicts("sys_store_delivery_type").then(response => {
       this.deliveryTypeOptions = response.data;
     });
+    this.$nextTick(()=>{
+      console.log("是否执行资质提示方法")
+      this.handleNoticeInfo();
+    })
   },
   methods: {
-
+    handleNoticeInfo() {
+      qualifications()
+        .then(response => {
+          console.log("noticeInfo接口完整响应:", response);
+          if (response.code === 200) {
+            this.promptList = response.data;
+            if (this.promptList && this.promptList.length > 0) {
+              this.dialogVisible = true;
+            }
+            console.log("通知信息请求完成!", this.promptList);
+          } else {
+            console.warn("接口返回非成功状态:", response.code);
+          }
+        })
+        .catch(err => {
+          console.error("获取通知信息失败:", err);
+          this.$message.error("加载通知信息失败,请稍后重试");
+        });
+    },
     handledetails(row) {
       this.show.open = true;
       setTimeout(() => {
@@ -990,6 +1035,7 @@ export default {
     // 表单重置
     reset() {
       this.switchValue = false;
+      this.switchMedicalValue=false;
       this.form = {
         storeId: null,
         cityIds: null,
@@ -1091,6 +1137,9 @@ export default {
         if(this.form.isBusinessLicensePermanent == 1){
           this.switchValue = true;
         }
+        if(this.form.isMedicalDevice1ExpiryPermanent == 1){
+          this.switchMedicalValue = true;
+        }
         this.open = true;
         this.title = "修改店铺";
 
@@ -1223,6 +1272,11 @@ export default {
           }else{
               formData.isBusinessLicensePermanent = 0;
           }
+          if(!!this.switchMedicalValue){
+            formData.isMedicalDevice1ExpiryPermanent=1;
+          }else {
+            formData.isMedicalDevice1ExpiryPermanent=0;
+          }
           if (formData.storeId != null) {
             updateStore(formData).then(response => {
               this.msgSuccess("修改成功");

+ 61 - 47
src/views/hisStore/storeOrder/healthStoreList.vue

@@ -177,6 +177,18 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="订单状态" prop="status">
+        <el-select v-model="queryParams.status" clearable placeholder="请选择订单状态"
+                   size="small" style="width: 200px"
+        >
+          <el-option
+            v-for="item in statusOptions"
+            :key="item.dictValue"
+            :label="item.dictLabel"
+            :value="item.dictValue"
+          />
+        </el-select>
+      </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>
@@ -539,7 +551,8 @@
     </el-dialog>
 
     <el-dialog :title="upload.title" :visible.sync="upload.open" append-to-body width="400px">
-      <el-upload ref="upload" :action="upload.url + '?updateSupport=' + upload.updateSupport" :auto-upload="false" :disabled="upload.isUploading"
+      <el-upload ref="upload" :action="upload.url + '?updateSupport=' + upload.updateSupport" :auto-upload="false"
+                 :disabled="upload.isUploading"
                  :headers="upload.headers" :limit="1"
                  :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" accept=".xlsx, .xls" drag
       >
@@ -562,7 +575,7 @@
     <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="importMsgOpen"
                append-to-body title="导入结果" width="500px"
     >
-      <h1>{{importMsg}}</h1>
+      <h1>{{ importMsg }}</h1>
     </el-dialog>
 
     <!-- 批量发货 -->
@@ -575,25 +588,26 @@
     >
       <span slot="footer" class="dialog-footer">
         <!-- 小程序Appid选择 -->
-<!--        <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">-->
-<!--          <el-form-item label="小程序:" prop="miniAppId">-->
-<!--        <el-select-->
-<!--          v-model="ruleForm.miniAppId"-->
-<!--          clearable-->
-<!--          placeholder="请选择发货小程序"-->
-<!--          style="width: 100%"-->
-<!--        >-->
-<!--          <el-option-->
-<!--            v-for="item in miniAppList"-->
-<!--            :key="item.appId"-->
-<!--            :label="item.appName"-->
-<!--            :value="item.appId"-->
-<!--          />-->
-<!--        </el-select>-->
-<!--      </el-form-item>-->
-<!--        </el-form>-->
+        <!--        <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">-->
+        <!--          <el-form-item label="小程序:" prop="miniAppId">-->
+        <!--        <el-select-->
+        <!--          v-model="ruleForm.miniAppId"-->
+        <!--          clearable-->
+        <!--          placeholder="请选择发货小程序"-->
+        <!--          style="width: 100%"-->
+        <!--        >-->
+        <!--          <el-option-->
+        <!--            v-for="item in miniAppList"-->
+        <!--            :key="item.appId"-->
+        <!--            :label="item.appName"-->
+        <!--            :value="item.appId"-->
+        <!--          />-->
+        <!--        </el-select>-->
+        <!--      </el-form-item>-->
+        <!--        </el-form>-->
 
-        <el-upload ref="upload" :action="orderUpload.url" :auto-upload="false" :disabled="orderUpload.isUploading" :headers="orderUpload.headers"
+        <el-upload ref="upload" :action="orderUpload.url" :auto-upload="false" :disabled="orderUpload.isUploading"
+                   :headers="orderUpload.headers"
                    :limit="1" :on-progress="handleFileUploadProgress"
                    :on-success="handleFileSuccess" accept=".xlsx, .xls" drag
         >
@@ -628,23 +642,23 @@ import {
   updateStoreOrder,
   exportHealthStoreOrder, exportHealthStoreOrderDetails, exportHealthStoreOrderItemsDetails
 } from '@/api/hisStore/storeOrder'
-import { getUserList } from '@/api/hisStore/user'
-import { getAddressList } from '@/api/hisStore/userAddress'
+import {getUserList} from '@/api/hisStore/user'
+import {getAddressList} from '@/api/hisStore/userAddress'
 import productOrder from '../components/productOrder'
 import productSelect from '../components/productSelect'
 import addUser from '../components/addUser'
 import addUserAddress from '../components/addUserAddress'
-import { getToken } from '@/utils/auth'
+import {getToken} from '@/utils/auth'
 import QRCode from 'qrcodejs2'
-import { getCompanyList } from '@/api/company/company'
+import {getCompanyList} from '@/api/company/company'
 
-import { treeselect } from '@/api/company/companyDept'
+import {treeselect} from '@/api/company/companyDept'
 import Treeselect from '@riophae/vue-treeselect'
 import '@riophae/vue-treeselect/dist/vue-treeselect.css'
-import { getConfigByKey } from '@/api/system/config'
+import {getConfigByKey} from '@/api/system/config'
 
 export default {
-  components: { productOrder, productSelect, addUser, addUserAddress, Treeselect },
+  components: {productOrder, productSelect, addUser, addUserAddress, Treeselect},
   name: 'HisHealthStoreOrderList',
   watch: {
     // 监听deptId
@@ -774,13 +788,13 @@ export default {
       // 表单校验
       rules: {
         userId: [
-          { required: true, message: '会员信息不能为空' }
+          {required: true, message: '会员信息不能为空'}
         ],
         addressId: [
-          { required: true, message: '收货信息不能为空' }
+          {required: true, message: '收货信息不能为空'}
         ],
         miniAppId: [
-          { required: true, message: '发货小程序不能为空' }
+          {required: true, message: '发货小程序不能为空'}
         ],
       },
       upload: {
@@ -793,7 +807,7 @@ export default {
         // 是否更新已经存在的用户数据
         updateSupport: 0,
         // 设置上传的请求头部
-        headers: { Authorization: 'Bearer ' + getToken() },
+        headers: {Authorization: 'Bearer ' + getToken()},
         // 上传的地址
         url: process.env.VUE_APP_BASE_API + '/store/storeOrder/importExpress'
       },
@@ -807,13 +821,13 @@ export default {
         // 是否更新已经存在的用户数据
         updateSupport: 0,
         // 设置上传的请求头部
-        headers: { Authorization: 'Bearer ' + getToken() },
+        headers: {Authorization: 'Bearer ' + getToken()},
         // 上传的地址
         url: process.env.VUE_APP_BASE_API + '/store/store/storeOrder/importDeliveryNoteExpress',
       },
       deliveryNoteOpen: false,
       miniAppList: [],
-      ruleForm:{
+      ruleForm: {
         miniAppId: null,
       },
     }
@@ -885,7 +899,7 @@ export default {
     compute() {
       this.totalMoney = 0
       var that = this
-      this.products.forEach(function(value) {
+      this.products.forEach(function (value) {
         that.totalMoney += value.money
       })
       console.log(that.totalMoney)
@@ -916,7 +930,7 @@ export default {
       if (this.phone == null || this.phone == '') {
         return
       }
-      var data = { phone: this.phone }
+      var data = {phone: this.phone}
       this.userloading = true
       this.users = []
       this.address = []
@@ -930,7 +944,7 @@ export default {
       })
     },
     getAddressList(userId) {
-      var data = { userId: userId }
+      var data = {userId: userId}
       this.addressloading = true
       this.address = []
       getAddressList(data).then(response => {
@@ -1100,11 +1114,11 @@ export default {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
-      }).then(function() {
+      }).then(function () {
         return exportHealthStoreOrder(queryParams)
       }).then(response => {
         this.download(response.msg)
-      }).catch(function() {
+      }).catch(function () {
       })
     },
     handleExportItems() {
@@ -1136,11 +1150,11 @@ export default {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
-      }).then(function() {
+      }).then(function () {
         return exportHealthStoreOrderItems(queryParams)
       }).then(response => {
         this.download(response.msg)
-      }).catch(function() {
+      }).catch(function () {
       })
     },
     /** 导出按钮操作 */
@@ -1173,11 +1187,11 @@ export default {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
-      }).then(function() {
+      }).then(function () {
         return exportHealthStoreOrderDetails(queryParams)
       }).then(response => {
         this.download(response.msg)
-      }).catch(function() {
+      }).catch(function () {
       })
     },
     handleExportItemsDetails() {
@@ -1209,11 +1223,11 @@ export default {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
-      }).then(function() {
+      }).then(function () {
         return exportHealthStoreOrderItemsDetails(queryParams)
       }).then(response => {
         this.download(response.msg)
-      }).catch(function() {
+      }).catch(function () {
       })
     },
     handleImport() {
@@ -1248,7 +1262,7 @@ export default {
     /** 查询部门下拉树结构 */
     getTreeselect() {
       var that = this
-      var param = { companyId: this.companyId }
+      var param = {companyId: this.companyId}
       treeselect(param).then((response) => {
         this.deptOptions = response.data
         console.log(this.deptOptions)
@@ -1290,13 +1304,13 @@ export default {
       this.miniAppList = []
       const key = 'courseMa.config'
       getConfigByKey(key).then(response => {
-        const { code, data } = response
+        const {code, data} = response
         if (code === 200) {
           let value = data?.configValue
           if (value) {
             const appList = JSON.parse(value)
             this.miniAppList = appList.filter(v => v.type === '1').map(v => {
-              return { appId: v.appid, appName: v.name }
+              return {appId: v.appid, appName: v.name}
             })
           }
         }