marxjaw 4 mesiacov pred
rodič
commit
dec24a79ea

+ 7 - 1
src/api/formworkErection.js

@@ -1,6 +1,12 @@
 import request from '@/utils/system/request'
 
-
+export function appList(data) {
+    return request({
+        url: '/agent-service/app/searchApps',
+        method: 'post',
+        data
+    })
+}
 // 获取广告渠道列表
 export function channelList(data) {
     return request({

+ 4 - 4
src/directive/copy/index.js

@@ -7,7 +7,9 @@ import { ElMessage } from 'element-plus'
 const directive = {
   mounted(el, binding) {
     el.copyData = binding.value
-    el.addEventListener('click', handleClick)
+    // 将事件处理函数挂载到元素上,以便在卸载时移除
+    el.__handleClick__ = handleClick
+    el.addEventListener('click', el.__handleClick__)
   },
   updated(el, binding) {
     el.copyData = binding.value
@@ -16,8 +18,7 @@ const directive = {
     el.removeEventListener('click', el.__handleClick__)
   }
 }
-
-function handleClick(this, ev) {
+function handleClick(ev) {
   let input = document.createElement('input')
   input.value = this.copyData.toLocaleString()
   document.body.appendChild(input)
@@ -29,5 +30,4 @@ function handleClick(this, ev) {
     message: '复制成功'
   })
 }
-
 export default directive

+ 3 - 3
src/router/modules/formworkErection.js

@@ -12,19 +12,19 @@ const route = [
                 path: 'agencyAdmin/index',
                 name: 'agencyAdmin',
                 component: createNameComponent(() => import('@/views/main/formworkErection/agencyAdmin.vue')),
-                meta: { title: '代理管理' },
+                meta: { title: '应用管理' },
             },
             {
                 path: 'channelType/index',
                 name: 'channelType',
                 component: createNameComponent(() => import('@/views/main/formworkErection/channelType.vue')),
-                meta: { title: '渠道类型' },
+                meta: { title: '广告位管理' },
             },
             {
                 path: 'channelAdmin/index',
                 name: 'channelAdmin',
                 component: createNameComponent(() => import('@/views/main/formworkErection/channelAdmin.vue')),
-                meta: { title: '渠道管理(APP出包)' },
+                meta: { title: '广告渠道管理' },
             },
         ],
     }

+ 38 - 14
src/views/main/formworkErection/agencyAdmin.vue

@@ -8,20 +8,39 @@
     <div class="layout-container">
       <Table @getTableData="changeTableData" v-model:page="page" ref="table" :data="tableData"
         @selection-change="handleSelectionChange">
-        <el-table-column prop="channelId" label="渠道ID" width="200" />
-        <el-table-column prop="channelName" label="渠道名称" />
-        <el-table-column prop="channelStatus" label="渠道状态" width="100" />
-        <el-table-column prop="channelAccount" label="渠道账号" />
-        <el-table-column prop="channelPwd" label="渠道密码" width="100" />
-        <el-table-column prop="apiKey" label="请求秘钥" />
-        <el-table-column prop="apiSecret" label="请求密令" />
-        <el-table-column prop="loginType" label="登录类型" width="100">
+        <el-table-column prop="appId" label="应用ID" width="140" />
+        <el-table-column prop="appName" label="应用名称" />
+        <el-table-column prop="appKey" label="应用秘钥" >
           <template #default="scope">
-            {{ scope.row.loginType === 1 ? "账号密码" : "微信" }}
+            <el-icon v-if="showKey" @click="changeShowKey"><View /></el-icon>
+            <el-icon v-if="!showKey"  @click="changeShowKey"><Hide /></el-icon>
+            <el-icon v-if="showKey" v-copy="" ><CopyDocument /></el-icon>
+          </template>
+        </el-table-column>
+        <el-table-column prop="channelName" label="广告渠道名称" width="150" />
+        <el-table-column prop="networkAppName" label="关联渠道应用" width="150" />
+        <el-table-column prop="nickName" label="所属用户" />
+        <el-table-column prop="appType" label="应用类型" width="100" >
+          <template #default="scope">
+            {{getDictionaryName("app_type",scope.row.appType)}}
+          </template>
+        </el-table-column>
+        <el-table-column prop="apkUrl" label="下载链接" >
+          <template #default="scope">
+            <a :href="scope.row.apkUrl" target="_blank">{{scope.row.appName}}.apk</a>
+          </template>
+        </el-table-column>
+        <el-table-column prop="qrCode" label="二维码" >
+          <template #default="scope">
+            <el-image style="width: 100px; height: 100px" :src="scope.row.qrCode" fit="fill" :preview-src-list="[scope.row.qrCode]" />
+          </template>
+        </el-table-column>
+        <el-table-column prop="updateTips" label="更新提示" />
+        <el-table-column prop="enabled" label="是否启用" >
+          <template #default="scope">
+            {{getDictionaryName("enabled",scope.row.enabled)}}
           </template>
         </el-table-column>
-        <el-table-column prop="remark" label="备注" />
-
         <el-table-column label="操作" width="150" fixed="right">
           <template #default="scope">
             <div class="button">
@@ -74,21 +93,26 @@
     </Layer>
   </div>
 </template>
-
 <script setup>
   import { onBeforeMount, ref, reactive } from "vue";
   import { ElMessage } from "element-plus";
   import { useStore } from "vuex";
   import { useGetDictList } from "@/hooks/useGetDictList.js";
-  import { channelList, channelAddOne, channelDeleteOne, channelUpdateOne, } from "@/api/formworkErection.js";
+  import { channelAddOne, channelDeleteOne, channelUpdateOne, appList,} from "@/api/formworkErection.js";
   import From from "@/components/from/index.vue";
   import Table from "@/components/table/index.vue";
   import Layer from "@/components/layer/index.vue";
+  import { CopyDocument, Hide, View} from "@element-plus/icons-vue";
+  import vCopy from '@/directive/copy'
 
   const store = useStore();
   const { dictData, loadDictData, getOptions, getDictionaryName } = useGetDictList();
   const form = ref(null);
   const tableData = ref([]);
+  const showKey = ref(false);
+  const changeShowKey = ()=>{
+    showKey.value = !showKey.value
+  }
 
   // 分页参数, 供table使用
   const page = reactive({
@@ -181,7 +205,7 @@
 
   // 分页数据
   const getList = async () => {
-    let res = await channelList({ ...formSearch.value });
+    let res = await appList({ ...formSearch.value });
     tableData.value = res.data;
     page.total = res.pageMeta.total;
   };