浏览代码

多小程序配置增加微信商户号配置

cgp 2 天之前
父节点
当前提交
8d0ed3a0d4
共有 2 个文件被更改,包括 85 次插入2 次删除
  1. 48 1
      src/views/course/coursePlaySourceConfig/index.vue
  2. 37 1
      src/views/hisStore/storeProduct/index.vue

+ 48 - 1
src/views/course/coursePlaySourceConfig/index.vue

@@ -40,6 +40,23 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="mchId" prop="mchId">
+        <el-select
+          v-model="queryParams.mchId"
+          placeholder="请选择商户号"
+          clearable
+          filterable
+          size="small"
+          style="width: 220px"
+        >
+          <el-option
+            v-for="item in mchOptions"
+            :key="item"
+            :label="item"
+            :value="item"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -128,6 +145,7 @@
       </el-table-column>
       <el-table-column label="原始ID" align="center" prop="originalId" />
       <el-table-column label="appId" align="center" prop="appid" />
+      <el-table-column label="微信商户号mchId" align="center" prop="mchId" />
       <el-table-column label="secret" align="center" prop="secret" />
       <el-table-column label="token" align="center" prop="token" />
       <el-table-column label="aesKey" align="center" prop="aesKey" />
@@ -240,6 +258,22 @@
         <el-form-item label="appid" prop="appid">
           <el-input v-model="form.appid" placeholder="请输入appid" />
         </el-form-item>
+        <el-form-item label="商户号" prop="mchId">
+          <el-select
+            v-model="form.mchId"
+            placeholder="请选择所属微信商户号"
+            filterable
+            allow-create
+            style="width: 100%"
+          >
+            <el-option
+              v-for="item in mchOptions"
+              :key="item"
+              :label="item"
+              :value="item"
+            />
+          </el-select>
+        </el-form-item>
         <el-form-item label="secret" prop="secret">
           <el-input v-model="form.secret" placeholder="请输入secret" />
         </el-form-item>
@@ -275,6 +309,7 @@
 </template>
 
 <script>
+import {listMore,} from '@/api/his/redPacketConfig'
 import {list, get, update, add, del} from '@/api/course/coursePlaySourceConfig'
 import {updateIsTownOn} from "@/api/system/config";
 import { allList } from '@/api/company/company'
@@ -284,6 +319,7 @@ export default {
   name: 'CoursePlaySourceConfig',
   data() {
     return {
+      mchOptions: [],
       switchDialogVisible: false,
       // 公司搜索相关
       companySearchLoading: false,
@@ -297,7 +333,8 @@ export default {
         pageNum: 1,
         pageSize: 10,
         name: null,
-        appid: null
+        appid: null,
+        mchId: null,
       },
       showSearch: true,
       single: true,
@@ -361,6 +398,7 @@ export default {
     }
   },
   created() {
+    this.getMchOptions();
     this.getDicts("play_source_type").then(response => {
       this.typesOptions = response.data.map(item =>  {
         return {
@@ -375,6 +413,14 @@ export default {
     this.getList();
   },
   methods: {
+    getMchOptions() {
+      listMore({ pageNum: 1, pageSize: 1000 }).then(res => {
+        const mchIds = res.rows.map(item => item.mchId).filter(id => id);
+        this.mchOptions = [...new Set(mchIds)];
+      }).catch(() => {
+        this.mchOptions = [];
+      });
+    },
     resetForm,
     resetOption(){
       console.log(1)
@@ -538,6 +584,7 @@ export default {
         id: null,
         name: null,
         appid: null,
+        mchId: null,
         secret: null,
         img: null,
         originalId: null,

+ 37 - 1
src/views/hisStore/storeProduct/index.vue

@@ -63,6 +63,16 @@
           />
         </el-select>
       </el-form-item>
+      <el-form-item label="所属小程序" prop="appId" style="white-space: nowrap;">
+        <el-select style="width: 240px" v-model="queryParams.appId" placeholder="请选择所属小程序" clearable size="small" filterable>
+          <el-option
+            v-for="dict in appMallOptions"
+            :key="dict.appid"
+            :label="dict.name + '(' + dict.appid + ')'"
+            :value="dict.appid"
+          />
+        </el-select>
+      </el-form-item>
       <div v-if="this.isMedicalMall">
       <el-form-item label="审核状态">
         <el-select style="width: 240px" v-model="queryParams.isAudit" placeholder="请选择审核状态" size="small" >
@@ -874,6 +884,16 @@
             />
           </el-select>
         </el-form-item>
+        <el-form-item label="所属小程序" prop="appIds" style="white-space: nowrap;">
+          <el-select style="width: 240px" v-model="appIds" placeholder="请选择所属小程序" clearable size="small" multiple filterable>
+            <el-option
+              v-for="dict in appMallOptions"
+              :key="dict.appid"
+              :label="dict.name + '(' + dict.appid + ')'"
+              :value="dict.appid"
+            />
+          </el-select>
+        </el-form-item>
         <el-form-item label="国药准字" v-if="form.productType==2" prop="prescribeCode">
           <el-input v-model="form.prescribeCode" placeholder="请输入国药准字" />
         </el-form-item>
@@ -945,6 +965,7 @@ import Editor from '@/components/Editor/wang';
 import Material from '@/components/Material'
 import singleImg from '@/components/Material/single'
 import { getCompanyList } from "@/api/company/company";
+import {list as getAppMallOptions} from "@/api/course/coursePlaySourceConfig";
 import { listStore } from '@/api/hisStore/store'
 export default {
   name: "HisStoreProduct",
@@ -1187,6 +1208,9 @@ export default {
         // ],
       },
       erpTypeOptions:[],
+      // 小程序列表
+      appMallOptions:[],
+      appIds:[], // 选择的小程序
     };
   },
   created() {
@@ -1223,6 +1247,8 @@ export default {
     getCompanyList().then(response => {
       this.companyOptions = response.data;
     });
+    // 查询小程序
+    this.getAppMallOptions();
     listStore().then(response => {
       this.storeOptions = response.rows;
     });
@@ -1230,6 +1256,11 @@ export default {
     this.getList();
   },
   methods: {
+    getAppMallOptions() {
+      getAppMallOptions({pageNum:1,pageSize:100}).then(response => {
+        this.appMallOptions = response.rows;
+      })
+    },
     cancel1(){
       this.open1 = false;
     },
@@ -1670,7 +1701,12 @@ export default {
           if (this.form.companyIds != null && this.form.companyIds != undefined) {
             this.form.companyIds = this.form.companyIds.join(',');
           }
-          addOrEdit(this.form).then(response => {
+          // 小程序
+          const params = {
+            ...this.form,
+            appIds: this.appIds.join(',') // 数组转字符串
+          };
+          addOrEdit(params).then(response => {
             if (response.code === 200) {
               this.msgSuccess("修改成功");
               this.open = false;