wjx il y a 9 mois
Parent
commit
12aa8c1fdc

+ 1 - 0
package.json

@@ -55,6 +55,7 @@
     "normalize.css": "7.0.0",
     "nprogress": "0.2.0",
     "path-to-regexp": "2.4.0",
+    "qrcode": "^1.5.4",
     "qs": "^6.9.4",
     "screenfull": "4.2.0",
     "sortablejs": "1.8.4",

+ 26 - 0
src/api/accounts/corpWeChat.js

@@ -213,4 +213,30 @@ export function editCorpApi(data) {
         method: 'POST',
         data
     })
+}
+
+
+/**
+ * 服务商列表
+ * @returns 
+ */
+export function getProviderList() {
+    return request({
+        url: '/corp/admin/corp/provider/list',
+        method: 'GET'
+    })
+}
+
+
+/**
+ * 服务商应用授权二维码
+ * @param {*} params 
+ * @returns 
+ */
+export function getProviderAuth(params) {
+    return request({
+        url: '/corp/admin/corp/getProviderAuth',
+        method: 'GET',
+        params
+    })
 }

+ 1 - 0
src/assets/icons/svg/manage_iaa.svg

@@ -0,0 +1 @@
+<svg t="1724296975685" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9559" width="256" height="256"><path d="M263.1 844.8h497.7c22.9 0 41.5 18.6 41.5 41.5s-18.6 41.5-41.5 41.5H263.1c-22.9 0-41.5-18.6-41.5-41.5s18.6-41.5 41.5-41.5zM138.7 98.2h746.6c22.9 0 41.5 18.6 41.5 41.5v580.7c0 11-4.4 21.6-12.1 29.3-7.8 7.8-18.3 12.1-29.3 12.1H138.7c-11 0-21.6-4.4-29.3-12.1-7.8-7.8-12.1-18.3-12.1-29.3V139.7c-0.1-22.9 18.5-41.5 41.4-41.5z m331.8 478.9v60.4h83v-60.3c8.5-5.8 17.4-12.8 26.5-20.5l49.4 49.4 58.7-58.7-49.5-49.4c7.7-9 14.6-18 20.5-26.5h60.3v-83h-60.3c-6.4-9.1-13.3-18-20.5-26.5l49.4-49.4-58.7-58.6-49.4 49.4c-8.5-7.3-17.3-14.1-26.5-20.5v-60.3h-83V283c-8.5 5.8-17.4 12.8-26.5 20.5l-49.4-49.4-58.5 58.6 49.4 49.4c-7.2 8.5-14.1 17.3-20.5 26.5h-60.3v83h60.3c5.8 8.5 12.8 17.4 20.5 26.5L336 547.3l58.7 58.7 49.4-49.4c9.1 7.7 18 14.6 26.4 20.5z m0 0" p-id="9560"></path></svg>

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
src/assets/icons/svg/system_iaa.svg


+ 19 - 3
src/views/accounts/adWarrant/index.vue

@@ -49,8 +49,21 @@
             </el-col>
             <el-col :span="1.5">
                 <div class="grid-content">
-                    <el-button type="success" icon="el-icon-plus" size="mini"
+                    <el-button type="success" v-if="queryParams.adAppId === 1 || queryParams.adAppId === 4" icon="el-icon-plus" size="mini"
                         @click="handleWarrantOld(2)">广告业务单元授权</el-button>
+                    <el-dropdown @command="handleCommand" v-else>
+                        <span class="el-dropdown-link">
+                            <el-button type="success" icon="el-icon-plus" size="mini">广告业务单元授权<i
+                                    class="el-icon-arrow-down el-icon--right"></i></el-button>
+                        </span>
+                        <el-dropdown-menu slot="dropdown">
+                            <el-dropdown-item command="NOVEL" v-if="queryParams.adAppId === 2">小说</el-dropdown-item>
+                            <el-dropdown-item command="NOVEL_IAA" v-if="queryParams.adAppId === 2">小说IAA</el-dropdown-item>
+                            <el-dropdown-item command="GAME" v-if="queryParams.adAppId === 3">游戏</el-dropdown-item>
+                            <el-dropdown-item command="GAME_IAA" v-if="queryParams.adAppId === 3">游戏IAA</el-dropdown-item>
+                            <el-dropdown-item command="SHOP" v-if="queryParams.adAppId === 2">电商</el-dropdown-item>
+                        </el-dropdown-menu>
+                    </el-dropdown>
                 </div>
             </el-col>
             <el-col :span="1.5">
@@ -457,6 +470,9 @@ export default {
         this.getAll()
     },
     methods: {
+        handleCommand(command) {
+            this.handleWarrantOld(2, command)
+        },
         listener(e) {
             if (e.key === 'adMp') {
                 if (e.newValue === 'ok') {
@@ -701,9 +717,9 @@ export default {
             })
         },
         /** 老的授权广告平台 */
-        handleWarrantOld(type) {
+        handleWarrantOld(type, adUnitType) {
             sessionStorage.setItem('ADSQ', type)
-            toAuth({ adAppId: this.queryParams.adAppId, callbackPage: encodeURIComponent(window.location.origin + '/adCode') }).then(res => {
+            toAuth({ adAppId: this.queryParams.adAppId, adUnitType, callbackPage: encodeURIComponent(window.location.origin + '/adCode') }).then(res => {
                 if (res.data) {
                     window.open(res.data)
                 }

+ 33 - 4
src/views/accounts/corpWechat/index.vue

@@ -43,6 +43,12 @@
                     <el-button type="primary" size="mini" @click="warrantHandle">新增企业</el-button>
                 </div>
             </el-col>
+            <el-col :span="1.5">
+                <div style="padding-top: 9px;font-size: 12px;margin-left: 5px">服务商(点击授权):</div>
+            </el-col>
+            <el-col :span="1.5" v-for="item in providerList" :key="item.id">
+                <el-button size="mini" @click="getCode(item.id)">{{ item.proxyName }}</el-button>
+            </el-col>
             <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
 
@@ -68,7 +74,6 @@
                 </template>
             </el-table-column>
             <el-table-column label="配置状态" prop="configStatus" align="center" width="120">
-
                 <template slot-scope="scope">
                     <el-tag type="success" v-if="scope.row.configStatus === 'SUCCESS'">配置成功</el-tag>
                     <el-tag type="warning" v-else-if="scope.row.configStatus === 'ING'">未配置</el-tag>
@@ -76,7 +81,6 @@
                 </template>
             </el-table-column>
             <el-table-column label="回调地址" prop="externalUserCallbackUrl" width="200" :show-overflow-tooltip="true">
-
                 <template slot-scope="scope">
                     <a style="color: #1890ff;" @click="copy(scope.row.externalUserCallbackUrl)">{{
             scope.row.externalUserCallbackUrl }}</a>
@@ -151,15 +155,20 @@
 
         <modal-corp :visible="corpVisible" :modifyData="corpData" :modalTitle="corpTitle" @onClose="corpVisible = false"
             @onChange="corpVisible = false; getList()" />
+
+        <el-dialog title="扫码授权" :visible.sync="codeVisible" width="240px" :before-close="handleCodeClose">
+            <canvas ref="qrcodeCanvas"></canvas>
+        </el-dialog>
     </div>
 </template>
 
 <script>
-import { getCorpToAuth, getCorpList, putRefreshCorp, putSyncAllCorpUser } from "@/api/accounts/corpWeChat";
+import { getProviderAuth, getCorpList, getProviderList, putSyncAllCorpUser } from "@/api/accounts/corpWeChat";
 import setSecret from './setSecret.vue'
 import mailList from './mailList.vue'
 import setSession from './setSession.vue'
 import ModalCorp from './modalCorp.vue'
+import QRCode from 'qrcode';
 export default {
     name: 'corp',
     components: { setSecret, mailList, setSession, ModalCorp },
@@ -188,7 +197,9 @@ export default {
 
             corpVisible: false,
             corpData: null,
-            corpTitle: '新增企业'
+            corpTitle: '新增企业',
+            providerList: [],
+            codeVisible: false,
         }
     },
     mounted() {
@@ -200,6 +211,9 @@ export default {
         window.removeEventListener('storage', this.listener, false)
     },
     created() {
+        getProviderList().then(res => {
+            this.providerList = res.data
+        })
         this.getList()
     },
     filters: {
@@ -217,6 +231,21 @@ export default {
         }
     },
     methods: {
+        getCode(id) {
+            getProviderAuth({ sysProxyId: id }).then(res => {
+                this.codeVisible = true
+                this.$nextTick(() => {
+                    const canvas = this.$refs.qrcodeCanvas;
+                    QRCode.toCanvas(canvas, res.data.qrCodeURL, { width: 200 }, function (error) {
+                        if (error) console.error('------->', error);
+                        console.log('QR code generated successfully!');
+                    });
+                })
+            })
+        },
+        handleCodeClose() {
+            this.codeVisible = false
+        },
         copy(str) {
             let element = document.createElement("textarea");
             element.id = 'myTextarea'

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff