Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

xiaoqiang 4 anni fa
parent
commit
bef7953610
2 ha cambiato i file con 207 aggiunte e 0 eliminazioni
  1. 16 0
      src/api/yeepay/wechat-config.js
  2. 191 0
      src/views/sing_desk/wechat-config.vue

+ 16 - 0
src/api/yeepay/wechat-config.js

@@ -0,0 +1,16 @@
+import request from '@/router/axios';
+
+export const getWechatConfigQuery = () => {
+  return request({
+    url: '/api/app/yeepay/getWechatConfigQuery',
+    method: 'get',
+  })
+}
+
+export const wechatConfigAdd = (params) => {
+  return request({
+    url: '/api/app/yeepay/wechatConfigAdd',
+    method: 'post',
+    data: params
+  })
+}

+ 191 - 0
src/views/sing_desk/wechat-config.vue

@@ -0,0 +1,191 @@
+<template>
+  <div>
+    <el-row>
+      <basic-container>
+        <el-dialog @close="dialogShow=false" append-to-body :close-on-click-modal="false" :visible.sync="dialogShow"
+                   :destroy-on-close="true" title="公众号配置" width="70%">
+          <avue-form v-model="configForm" :option="configOption" @reset-change="refreshChange" @submit="(data,done)=>{submit(data,done)}">
+            <template slot="appIdList">
+              <el-button type="primary" round icon="el-icon-plus" @click="addAppIdList"></el-button>
+              <el-divider/>
+              <div class="el-card box-card" v-for="(appIdListOption,index) in configOptionByAppIdList" :key="index" style="margin-bottom: 10px">
+                <div slot="header" class="clearfix" style="padding: 5px">
+                  <el-tag>支付appId配置</el-tag>
+                  <el-button type="danger" style="float: right;" round icon="el-icon-minus" @click="removeAppIdList(index)"></el-button>
+                </div>
+                <el-divider/>
+                <avue-form ref="form" v-model="configForm.appIdList[index]" :option="appIdListOption"></avue-form>
+              </div>
+            </template>
+          </avue-form>
+        </el-dialog>
+        <el-col style="padding: 10px 0 10px 0;">
+          <el-button type="primary" size="small" plain icon="el-icon-setting" @click="openDialog()">配置
+          </el-button>
+        </el-col>
+        <template>
+          <el-table :data="parentData" style="width: 100%">
+            <el-table-column type="expand">
+              <template slot-scope="props">
+                <el-col span="12">
+                  <el-table :data="props.row.appIdList" style="width: 100%" stripe size="small">
+                    <el-table-column label="appId列表" header-align="center">
+                      <el-table-column label="支付appId" prop="appId"></el-table-column>
+                      <el-table-column label="appId类型" prop="appIdType"></el-table-column>
+                      <el-table-column label="推荐关注appId" prop="subscribeAppId"></el-table-column>
+                      <el-table-column label="配置状态" prop="status"></el-table-column>
+                      <el-table-column label="失败原因" prop="failReason"></el-table-column>
+                    </el-table-column>
+                  </el-table>
+                </el-col>
+                <el-col span="12">
+                  <el-table :data="props.row.tradeAuthDirList" style="width: 100%" stripe size="small">
+                    <el-table-column label="支付授权目录列表" header-align="center">
+                      <el-table-column label="支付授权目录" prop="tradeAuthDir"></el-table-column>
+                      <el-table-column label="配置状态" prop="status"></el-table-column>
+                      <el-table-column label="失败原因" prop="failReason"></el-table-column>
+                    </el-table-column>
+                  </el-table>
+                </el-col>
+              </template>
+            </el-table-column>
+            <el-table-column label="报备商户号" prop="reportMerchantNo"></el-table-column>
+          </el-table>
+        </template>
+      </basic-container>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from "vuex";
+import {getWechatConfigQuery,wechatConfigAdd} from "@/api/yeepay/wechat-config";
+
+export default {
+  data() {
+    return {
+      dialogShow: false,
+      parentData: [],
+      configForm: {
+        tradeAuthDirList :[],
+        appIdList:[]
+      },
+      configOption: {
+        submitText: '完成',
+        emptyBtn: false,
+        labelWidth: 150,
+        size: "mini",
+        column: [
+          {
+            label: "支付授权目录",
+            span: 24,
+            prop: "tradeAuthDirList",
+            type: "array",
+          },
+          {
+            label: "支付appId目录列表",
+            span: 24,
+            prop: "appIdList",
+            type: "array",
+            shot: true,
+          },
+        ]
+      },
+      configOptionByAppIdList:[]
+    }
+  },
+  mounted() {
+    this.init();
+  },
+  computed: {
+    ...mapGetters(["userInfo"]),
+  },
+  methods: {
+    init() {
+      getWechatConfigQuery().then(res => {
+        this.parentData = res.data.data;
+      });
+    },
+    openDialog() {
+      this.dialogShow = true
+      if (this.canReset) {
+        this.refreshChange()
+      }
+      this.canReset = true
+    },
+    submit(data,done){
+      wechatConfigAdd(data).then(res=>{
+        this.configForm = {
+          tradeAuthDirList:[],
+          appIdList:[]
+        };
+        this.$message.success("提交成功");
+        done();
+      },error => done());
+    },
+    refreshChange() {
+      this.init();
+    },
+    addAppIdList(){
+      const column = {
+        labelWidth: 120,
+        size:"mini",
+        menuBtn:false,
+        column: [
+          {
+            label: "appId",
+            span: 24,
+            prop: "appId",
+          },
+          {
+            label: "appSecret",
+            span: 24,
+            prop: "appSecret",
+          },
+          {
+            label: "appIdType",
+            span: 24,
+            prop: "appIdType",
+            type: "select",
+            dicData:[
+              {
+                label:"公众号",
+                value:"OFFICIAL_ACCOUNT"
+              },
+              {
+                label:"小程序",
+                value:"MINI_PROGRAM"
+              },
+            ]
+          },
+          {
+            label: "subscribeAppId",
+            span: 24,
+            prop: "subscribeAppId",
+          },
+        ]
+      }
+      this.configOptionByAppIdList.push(column);
+    },
+    removeAppIdList(index){
+      this.configOptionByAppIdList.splice(index,1);
+      this.configForm.appIdList.splice(index,1);
+    }
+  }
+}
+;
+</script>
+
+<style>
+.name {
+  font-family: inherit;
+  font-size: inherit;
+  border-color: #E4E7ED;
+  color: #606266;
+  margin-left: 15px;
+  text-align: center;
+}
+.el-card .el-divider--horizontal{
+  margin: 0 0 5px 0 !important;
+}
+</style>