浏览代码

应用新增以及删除接口对接

小杜 4 月之前
父节点
当前提交
8248754b48
共有 3 个文件被更改,包括 327 次插入284 次删除
  1. 16 0
      src/api/formworkErection.js
  2. 306 281
      src/views/main/formworkErection/appAdmin.vue
  3. 5 3
      src/views/main/formworkErection/channelAdmin.vue

+ 16 - 0
src/api/formworkErection.js

@@ -7,6 +7,22 @@ export function appList(data) {
         data
     })
 }
+//应用新增或修改
+export function saveOrUpdate(data) {
+    return request({
+        url: '/agent-service/app/saveApp',
+        method: 'post',
+        data
+    })
+}
+
+//应用删除
+export function delApp(data) {
+    return request({
+        url: '/agent-service/app/delApp?appId='+data.appId,
+        method: 'get'
+    })
+}
 // 获取广告渠道列表
 export function channelList(data) {
     return request({

+ 306 - 281
src/views/main/formworkErection/appAdmin.vue

@@ -2,48 +2,49 @@
   <div class="layout-container">
     <!-- 菜单栏 -->
     <From :form-items="dynamicFormItems" @formSubmitted="handleFormSubmitted" @formReset="handleFormReset"
-      is_add_button="新增" @addForm="edit" />
+          is_add_button="新增" @addForm="edit"/>
 
     <!-- 表格 -->
     <div class="layout-container">
       <Table @getTableData="changeTableData" v-model:page="page" ref="table" :data="tableData"
-        @selection-change="handleSelectionChange">
-        <el-table-column prop="appId" label="应用ID" width="140" />
-        <el-table-column prop="appName" label="应用名称" />
-        <el-table-column prop="appKey" label="应用秘钥" >
+             @selection-change="handleSelectionChange">
+        <el-table-column prop="appId" label="应用ID" width="140"/>
+        <el-table-column prop="appName" label="应用名称"/>
+        <el-table-column prop="appKey" label="应用秘钥">
           <template #default="scope">
-            <label>{{scope.row.showKey?scope.row.appKey: "******"}}</label>
+            <label>{{ scope.row.showKey ? scope.row.appKey : "******" }}</label>
             <span style="margin-left: 15px">
-              <el-icon v-if="scope.row.showKey" @click="()=>{scope.row.showKey = !scope.row.showKey}"><View /></el-icon>
-              <el-icon v-if="!scope.row.showKey"  @click="()=>{scope.row.showKey = !scope.row.showKey}"><Hide /></el-icon>
+              <el-icon v-if="scope.row.showKey" @click="()=>{scope.row.showKey = !scope.row.showKey}"><View/></el-icon>
+              <el-icon v-if="!scope.row.showKey" @click="()=>{scope.row.showKey = !scope.row.showKey}"><Hide/></el-icon>
             </span>
             <span style="margin-left: 5px">
-              <el-icon v-copy="scope.row.appKey" ><CopyDocument /></el-icon>
+              <el-icon v-copy="scope.row.appKey"><CopyDocument/></el-icon>
             </span>
           </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" >
+        <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)}}
+            {{ getDictionaryName("app_type", scope.row.appType) }}
           </template>
         </el-table-column>
-        <el-table-column prop="apkUrl" label="下载链接" >
+        <el-table-column prop="apkUrl" label="下载链接">
           <template #default="scope">
-            <a :href="scope.row.apkUrl" target="_blank">{{scope.row.appName}}.apk</a>
+            <a :href="scope.row.apkUrl" target="_blank">{{ scope.row.appName }}.apk</a>
           </template>
         </el-table-column>
-        <el-table-column prop="qrCode" label="二维码" >
+        <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]" />
+            <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="是否启用" >
+        <el-table-column prop="updateTips" label="更新提示"/>
+        <el-table-column prop="enabled" label="是否启用">
           <template #default="scope">
-            {{getDictionaryName("enabled",scope.row.enabled)}}
+            {{ getDictionaryName("enabled", scope.row.enabled) }}
           </template>
         </el-table-column>
         <el-table-column label="操作" width="150" fixed="right">
@@ -55,7 +56,7 @@
               <el-button class="button-item" type="primary" style="margin-bottom: 5px" @click="edit(scope.row)">
                 编辑
               </el-button>
-              <el-popconfirm placement="left" title="确认删除该数据?" @confirm="removeAgency(scope.row)">
+              <el-popconfirm placement="left" title="确认删除该数据?" @confirm="removeApp(scope.row)">
                 <template #reference>
                   <el-button class="button-item" style="margin-bottom: 5px" type="warning">删除</el-button>
                 </template>
@@ -71,14 +72,14 @@
       <el-form :model="formEdit" :rules="rules" ref="ruleForm" label-width="120px" style="margin-right: 30px">
         <el-row :gutter="5">
           <el-col :span="10" v-if="formEdit.appId">
-            <el-form-item label="应用ID" required prop="apiKey">
-              <el-input v-model="formEdit.appId" disabled type="number" placeholder="请输入" clearable />
+            <el-form-item label="应用ID" required prop="appId">
+              <el-input v-model="formEdit.appId" disabled placeholder="请输入" clearable/>
             </el-form-item>
           </el-col>
           <el-col :span="2" v-if="formEdit.appId"></el-col>
           <el-col :span="10">
             <el-form-item label="应用名称:" required prop="appName">
-              <el-input v-model="formEdit.appName" placeholder="请输入" clearable />
+              <el-input v-model="formEdit.appName" placeholder="请输入" clearable/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -86,8 +87,8 @@
           <el-col :span="10">
             <el-form-item label="应用类型" required prop="appType">
               <el-select v-model="formEdit.appType">
-                <el-option  value="1" label="Android" />
-                <el-option value="2" label="IOS" />
+                <el-option :value="1" label="Android"/>
+                <el-option :value="2" label="IOS"/>
               </el-select>
             </el-form-item>
           </el-col>
@@ -95,8 +96,8 @@
           <el-col :span="10">
             <el-form-item label="是否上架" required prop="store_on_sale">
               <el-select v-model="formEdit.store_on_sale">
-                <el-option  value="1" label="是" />
-                <el-option value="2" label="否" />
+                <el-option :value="1" label="否"/>
+                <el-option :value="2" label="是"/>
               </el-select>
             </el-form-item>
           </el-col>
@@ -105,54 +106,54 @@
           <el-col :span="10">
             <el-form-item label="上架商店" required prop="store_type">
               <el-select v-model="formEdit.store_type" placeholder="请选择上架应用商店">
-                <el-option  value="1" label="App Store" />
-                <el-option value="2" label="Google Play" />
-                <el-option value="3" label="华为商店" />
-                <el-option value="4" label="小米应用商店" />
-                <el-option value="5" label="OPPO商店" />
-                <el-option value="6" label="vivo商店" />
-                <el-option value="7" label="应用宝" />
-                <el-option value="8" label="TapTap" />
-                <el-option value="9" label="Amazon应用商店" />
-                <el-option value="10" label="三星应用商店" />
-                <el-option value="11" label="小米海外应用商店" />
-                <el-option value="12" label="华为海外应用市场" />
-                <el-option value="13" label="Roku" />
-                <el-option value="14" label="Samsung Smart TV" />
-                <el-option value="15" label="Microsoft" />
-                <el-option value="16" label="LG Smart TV" />
-                <el-option value="17" label="Vizio" />
-                <el-option value="99" label="其他" />
+                <el-option :value="1" label="App Store"/>
+                <el-option :value="2" label="Google Play"/>
+                <el-option :value="3" label="华为商店"/>
+                <el-option :value="4" label="小米应用商店"/>
+                <el-option :value="5" label="OPPO商店"/>
+                <el-option :value="6" label="vivo商店"/>
+                <el-option :value="7" label="应用宝"/>
+                <el-option :value="8" label="TapTap"/>
+                <el-option :value="9" label="Amazon应用商店"/>
+                <el-option :value="10" label="三星应用商店"/>
+                <el-option :value="11" label="小米海外应用商店"/>
+                <el-option :value="12" label="华为海外应用市场"/>
+                <el-option :value="13" label="Roku"/>
+                <el-option :value="14" label="Samsung Smart TV"/>
+                <el-option :value="15" label="Microsoft"/>
+                <el-option :value="16" label="LG Smart TV"/>
+                <el-option :value="17" label="Vizio"/>
+                <el-option :value="99" label="其他"/>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="2"></el-col>
           <el-col :span="10">
             <el-form-item label="商店链接" required prop="store_url">
-                <el-input v-model="formEdit.store_url" placeholder="请输入上架商店链接" clearable />
+              <el-input v-model="formEdit.store_url" placeholder="请输入上架商店链接" clearable/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="5">
           <el-col :span="10">
-            <el-form-item label="应用域名" prop="required">
-              <el-input v-model="formEdit.domain" placeholder="请输入应用域名" clearable />
+            <el-form-item label="应用域名" prop="domain" required>
+              <el-input v-model="formEdit.domain" placeholder="请输入应用域名" clearable/>
             </el-form-item>
           </el-col>
           <el-col :span="2"></el-col>
           <el-col :span="10">
             <el-form-item label="应用包名" required prop="package_name">
-              <el-input v-model="formEdit.package_name" placeholder="请输入应用包名" clearable />
+              <el-input v-model="formEdit.package_name" placeholder="请输入应用包名" clearable/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="5">
           <el-col :span="10">
-            <el-form-item label="一级分类" prop="sub_category">
+            <el-form-item label="一级分类" prop="category">
               <el-select v-model="formEdit.category" placeholder="请选择上架应用商店">
-                <el-option  value="1" label="App" />
-                <el-option value="2" label="Game" />
-                <el-option value="3" label="Family" />
+                <el-option value="App" label="App"/>
+                <el-option value="Game" label="Game"/>
+                <el-option value="Family" label="Family"/>
               </el-select>
             </el-form-item>
           </el-col>
@@ -160,24 +161,24 @@
           <el-col :span="10">
             <el-form-item label="二级分类" required prop="sub_category">
               <el-select v-model="formEdit.sub_category" placeholder="请选择上架应用商店">
-                <el-option  value="Daydream" label="Daydream" />
-                <el-option value="Wear" label="Android Wear" />
-                <el-option value="Design" label="Art & Design" />
-                <el-option value="Vehicles" label="Auto & Vehicles" />
-                <el-option value="Beauty" label="Beauty" />
-                <el-option value="Books" label="Books & Reference" />
-                <el-option value="Business" label="Business" />
-                <el-option value="Comics" label="Comics" />
-                <el-option value="Communication" label="Communication" />
-                <el-option value="Dating" label="Dating" />
-                <el-option value="Education" label="Education" />
-                <el-option value="Entertainment" label="Entertainment" />
-                <el-option value="Events" label="Events" />
-                <el-option value="Finance" label="Finance" />
-                <el-option value="Drink" label="Food & Drink" />
-                <el-option value="Fitness" label="Health & Fitness" />
-                <el-option value="House" label="House & Home" />
-                <el-option value="Libraries" label="Libraries & Demo" />
+                <el-option value="Daydream" label="Daydream"/>
+                <el-option value="Wear" label="Android Wear"/>
+                <el-option value="Design" label="Art & Design"/>
+                <el-option value="Vehicles" label="Auto & Vehicles"/>
+                <el-option value="Beauty" label="Beauty"/>
+                <el-option value="Books" label="Books & Reference"/>
+                <el-option value="Business" label="Business"/>
+                <el-option value="Comics" label="Comics"/>
+                <el-option value="Communication" label="Communication"/>
+                <el-option value="Dating" label="Dating"/>
+                <el-option value="Education" label="Education"/>
+                <el-option value="Entertainment" label="Entertainment"/>
+                <el-option value="Events" label="Events"/>
+                <el-option value="Finance" label="Finance"/>
+                <el-option value="Drink" label="Food & Drink"/>
+                <el-option value="Fitness" label="Health & Fitness"/>
+                <el-option value="House" label="House & Home"/>
+                <el-option value="Libraries" label="Libraries & Demo"/>
               </el-select>
             </el-form-item>
           </el-col>
@@ -186,271 +187,295 @@
           <el-col :span="10">
             <el-form-item label="屏幕方向" prop="screen_orientation">
               <el-select v-model="formEdit.screen_orientation" placeholder="请选择屏幕方向">
-                <el-option  value="1" label="竖屏" />
-                <el-option value="2" label="横屏" />
-                <el-option value="3" label="所有" />
+                <el-option :value="1" label="竖屏"/>
+                <el-option :value="2" label="横屏"/>
+                <el-option :value="3" label="所有"/>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="2"></el-col>
           <el-col :span="10">
             <el-form-item label="版本号" required prop="versionCode">
-              <el-input v-model="formEdit.versionCode" placeholder="请输入版本号" clearable />
+              <el-input v-model="formEdit.versionCode" placeholder="请输入版本号" clearable/>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="5">
           <el-col :span="10">
-            <el-form-item label="遵守美国COPPA" prop="screen_orientation">
-              <el-switch v-model="formEdit.coppa" />
+            <el-form-item label="遵守美国COPPA" prop="coppa">
+              <el-switch v-model="formEdit.coppa"
+                         :active-value="2"
+                         :inactive-value="1"/>
             </el-form-item>
           </el-col>
           <el-col :span="2"></el-col>
           <el-col :span="10">
-            <el-form-item label="遵守美国CCPA" required prop="versionCode">
-              <el-switch v-model="formEdit.ccpa" />
+            <el-form-item label="遵守美国CCPA" required prop="ccpa">
+              <el-switch v-model="formEdit.ccpa"
+                         :active-value="2"
+                         :inactive-value="1"/>
             </el-form-item>
           </el-col>
         </el-row>
-        <el-form-item label="渠道账号:" required prop="channelAccount">
-          <el-input v-model="formEdit.channelAccount" placeholder="请输入" clearable />
+        <el-form-item label="二维码链接:" required prop="qrCode">
+          <el-input v-model="formEdit.qrCode" placeholder="请输入" clearable/>
         </el-form-item>
-        <el-form-item label="渠道密码:" required prop="channelPwd">
-          <el-input v-model="formEdit.channelPwd" placeholder="请输入" clearable />
+        <el-form-item label="apk应用包地址:" required prop="apkUrl">
+          <el-input v-model="formEdit.apkUrl" placeholder="请输入" clearable/>
         </el-form-item>
-        <el-form-item label="渠道状态:" required prop="channelStatus">
-          <el-input v-model="formEdit.channelStatus" placeholder="请输入" clearable />
-        </el-form-item>
-        <el-form-item label="登录类型:" required prop="loginType">
-          <el-input v-model="formEdit.loginType" placeholder="请输入" clearable />
-        </el-form-item>
-        <el-form-item label="备注:" required prop="remark">
-          <el-input v-model="formEdit.remark" placeholder="请输入" clearable />
+        <el-form-item label="更新提示:" required prop="updateTips">
+          <el-input v-model="formEdit.updateTips" placeholder="请输入" clearable/>
         </el-form-item>
       </el-form>
     </Layer>
   </div>
 </template>
 <script setup>
-  import { onBeforeMount, ref, reactive } from "vue";
-  import { ElMessage } from "element-plus";
-  import { useGetDictList } from "@/hooks/useGetDictList.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'
+import {onBeforeMount, ref, reactive} from "vue";
+import {ElMessage} from "element-plus";
+import {useGetDictList} from "@/hooks/useGetDictList.js";
+import {
+  channelAddOne,
+  channelDeleteOne,
+  channelUpdateOne,
+  appList,
+  saveOrUpdate,
+  delApp,
+} 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 { loadDictData, getDictionaryName } = useGetDictList();
-  const tableData = ref([
-  ]);
+const {loadDictData, getDictionaryName} = useGetDictList();
+const tableData = ref([]);
 
-  // 分页参数, 供table使用
-  const page = reactive({
-    pageNum: 1,
-    pageSize: 20,
-    limit: 20,
-    total: 0,
-  });
+// 分页参数, 供table使用
+const page = reactive({
+  pageNum: 1,
+  pageSize: 20,
+  limit: 20,
+  total: 0,
+});
 
-  const formSearch = ref({
-    appName: null,
-    channelName: null,
-    appType: null,
+const formSearch = ref({
+  appName: null,
+  channelName: null,
+  appType: null,
 
-    limit: 20, // 当前页数量(查询量)
-    page: 1, // 当前页码
-    pageSizes: 20, // 总页数
-  });
+  limit: 20, // 当前页数量(查询量)
+  page: 1, // 当前页码
+  pageSizes: 20, // 总页数
+});
 
-  const dynamicFormItems = ref([]);
+const dynamicFormItems = ref([]);
 
-  onBeforeMount(() => {
-    settingData();
-    getList();
-  });
+onBeforeMount(() => {
+  settingData();
+  getList();
+});
 
-  // 获取缓存数据设置筛选数据
-  const settingData = () => {
-    loadDictData().then(() => {
-      dynamicFormItems.value = [
-        {
-          label: "应用名称",
-          prop: "appName",
-          type: "input",
-        },
-        {
-          label: "广告渠道",
-          prop: "channelName",
-          type: "input",
-        },
-        {
-          label: "应用类型",
-          prop: "appType",
-          type: "select",
-          options: [
-            {
-              label: "全部",
-              value: null,
-            },
-            {
-              label: "Android",
-              value: 1,
-            },
-            {
-              label: "IOS",
-              value: 2,
-            },
-          ],
-        },
-      ];
-    });
-  };
+// 获取缓存数据设置筛选数据
+const settingData = () => {
+  loadDictData().then(() => {
+    dynamicFormItems.value = [
+      {
+        label: "应用名称",
+        prop: "appName",
+        type: "input",
+      },
+      {
+        label: "广告渠道",
+        prop: "channelName",
+        type: "input",
+      },
+      {
+        label: "应用类型",
+        prop: "appType",
+        type: "select",
+        options: [
+          {
+            label: "全部",
+            value: null,
+          },
+          {
+            label: "Android",
+            value: 1,
+          },
+          {
+            label: "IOS",
+            value: 2,
+          },
+        ],
+      },
+    ];
+  });
+};
 
-  // 分页数据
-  const getList = async () => {
-    let res = await appList({ ...formSearch.value });
-    tableData.value = res.data;
-    page.total = res.pageMeta.total;
-  };
+// 分页数据
+const getList = async () => {
+  let res = await appList({...formSearch.value});
+  tableData.value = res.data;
+  page.total = res.pageMeta.total;
+};
 
-  const changeTableData = () => {
-    formSearch.value.pageNum = page.pageNum;
-    formSearch.value.pageSize = page.pageSize;
-    formSearch.value.limit = page.limit;
-    // 分页切换
-    getList();
-  };
+const changeTableData = () => {
+  formSearch.value.pageNum = page.pageNum;
+  formSearch.value.pageSize = page.pageSize;
+  formSearch.value.limit = page.limit;
+  // 分页切换
+  getList();
+};
 
-  // 搜索
-  const handleFormSubmitted = (formData) => {
-    // console.log("接收到子组件传递的数据", formData);
-    formSearch.value.page = 1;
-    formSearch.value.pageSizes = 20;
-    formSearch.value.limit = 20;
+// 搜索
+const handleFormSubmitted = (formData) => {
+   console.log("接收到子组件传递的数据", formData);
+  formSearch.value.page = 1;
+  formSearch.value.pageSizes = 20;
+  formSearch.value.limit = 20;
 
-    formSearch.value.channelName = formData.channelName;
-    formSearch.value.appName = formData.appName;
-    formSearch.value.appType = formData.appType;
-    formSearch
+  formSearch.value.channelName = formData?.channelName;
+  formSearch.value.appName = formData?.appName;
+  formSearch.value.appType = formData?.appType;
 
-    getList();
-  };
+  getList();
+};
 
-  // 表单重置
-  const handleFormReset = () => {
-    formSearch.value = {
-      appName: null,
-      channelName: null,
-      appType: null,
+// 表单重置
+const handleFormReset = () => {
+  formSearch.value = {
+    appName: null,
+    channelName: null,
+    appType: null,
 
-      limit: 20, // 当前页数量(查询量)
-      page: 1, // 当前页码
-      pageSizes: 20, // 总页数
-    };
-    getList();
+    limit: 20, // 当前页数量(查询量)
+    page: 1, // 当前页码
+    pageSizes: 20, // 总页数
   };
+  getList();
+};
 
-  // 选择监听器
-  const handleSelectionChange = (val) => {
-    context.emit("selection-change", val);
-  };
+// 选择监听器
+const handleSelectionChange = (val) => {
+  context.emit("selection-change", val);
+};
 
-  // 弹窗
-  const layer = ref({
-    show: false,
-    title: "新增App",
-    showButton: true,
-    width: "50vw",
-    edit: false,
-  });
+// 弹窗
+const layer = ref({
+  show: false,
+  title: "新增App",
+  showButton: true,
+  width: "50vw",
+  edit: false,
+});
 
-  const formEdit = ref({
-    store_on_sale: "",
-    store_type: null,
-    store_url: "",
-    category: "",
-    sub_category: "",
-    screen_orientation: "",
-    versionCode: "",
-    apiKey: "", //请求秘钥
-    apiSecret: "", //请求密令
-    channelAccount: "", //渠道账号
-    channelId: "", //渠道ID
-    channelName: "", //渠道名称
-    channelPwd: "", //渠道密码
-    channelStatus: 0, //渠道状态
-    loginType: 0, //登录类型 1-账号密码 2-微信
-    remark: "", //备注
-  });
+const formEdit = ref({
+  store_on_sale: "",
+  store_type: null,
+  store_url: "",
+  category: "",
+  sub_category: "",
+  screen_orientation: "",
+  versionCode: "",
+  updateTips: "",
+  apiSecret: "", //请求密令
+  channelAccount: "", //渠道账号
+  channelId: "", //渠道ID
+  channelName: "", //渠道名称
+  channelPwd: "", //渠道密码
+  channelStatus: 0, //渠道状态
+  loginType: 0, //登录类型 1-账号密码 2-微信
+  remark: "", //备注
+  appId: "",
+  apiKey: "", //请求秘钥
+  appName: "",
+  coppa: 0,
+  ccpa: 0,
+  qrCode: "",
+  apkUrl: "",
+  package_name: "",
+});
 
-  const edit = (row) => {
-    ruleForm.value?.resetFields();
-    if (row) {
-      layer.value.title = "编辑APP";
-      layer.value.edit = true;
-      formEdit.value = row;
-    } else {
-      layer.value.title = "新增APP";
-      layer.value.edit = false;
-      formEdit.value = {};
-    }
-    layer.value.show = true;
-  };
+const edit = (row) => {
+  ruleForm.value?.resetFields();
+  if (row) {
+    layer.value.title = "编辑APP";
+    layer.value.edit = true;
+    formEdit.value = row;
+    formEdit.value.store_on_sale = row.storeOnSale;
+    formEdit.value.store_type = row.storeType;
+    formEdit.value.package_name = row.packageName;
+    formEdit.value.store_url = row.storeUrl;
+    formEdit.value.sub_category = row.subCategory;
+    formEdit.value.screen_orientation = row.screenOrientation;
+    console.log("编辑的数据",row);
+    console.log("数据",formEdit)
+  } else {
+    layer.value.title = "新增APP";
+    layer.value.edit = false;
+    formEdit.value = {};
+  }
+  layer.value.show = true;
+};
 
-  const ruleForm = ref(null);
+const ruleForm = ref(null);
 
-  const rules = reactive({
-  });
+const rules = reactive({});
 
-  const submit = async (formEl) => {
-    await formEl.validate(async (valid, fields) => {
-      if (valid) {
-        // 提交内容
-        if (layer.value.edit) {
-          await channelUpdateOne({ ...formEdit.value });
-        } else {
-          await channelAddOne({ ...formEdit.value });
-        }
+const submit = async (formEl) => {
+  await formEl.validate(async (valid, fields) => {
+    if (valid) {
+      // 提交内容
+      console.log(formEdit.value)
+      const result = await saveOrUpdate({...formEdit.value});
+      console.log(result)
+      if (result.code ===200){
         ElMessage.success("新增成功");
-        layer.value.show = false;
-      } else {
-        console.log("error submit!", fields);
+        console.log(result.message);
+        handleFormSubmitted();
       }
-    });
-  };
+      else {
+        ElMessage.error(result.msg);
+      }
+      layer.value.show = false;
+    } else {
+      console.log("error submit!", fields);
+    }
+  });
+};
 
-  // 删除
-  const removeAgency = async (row) => {
-    await channelDeleteOne({ channelId: row.channelId }).then((res) => {
-      ElMessage.success("删除成功");
-    });
-  };
+// 删除
+const removeApp = async (row) => {
+  await delApp({appId: row.appId}).then((res) => {
+    ElMessage.success("删除成功");
+    handleFormSubmitted();
+  });
+};
 </script>
 
 <style scoped lang="scss">
-  .layout-container {
-    .card {
-      .title {
-        margin-bottom: 10px;
-        font-weight: 600;
-      }
-
-      display: flex;
-      flex-direction: column;
-      align-items: start;
-      width: calc(100% - 60px);
-      margin: 30px 30px 0;
+.layout-container {
+  .card {
+    .title {
+      margin-bottom: 10px;
+      font-weight: 600;
     }
 
-    .button {
-      display: flex;
-      flex-direction: column;
+    display: flex;
+    flex-direction: column;
+    align-items: start;
+    width: calc(100% - 60px);
+    margin: 30px 30px 0;
+  }
 
-      .button-item {
-        margin: 4px;
-      }
+  .button {
+    display: flex;
+    flex-direction: column;
+
+    .button-item {
+      margin: 4px;
     }
   }
+}
 </style>

+ 5 - 3
src/views/main/formworkErection/channelAdmin.vue

@@ -47,14 +47,14 @@
 
     <!-- 操作弹窗 -->
     <el-dialog v-model="layer.show" :title="layer.title" fullscreen :before-close="close">
-      <el-form :model="formEdit" :rules="rules" ref="ruleForm" label-width="240px" style="margin-right:30px;">
+      <el-form :model="detailData" :rules="rules" ref="ruleForm" label-width="240px" style="margin-right:30px;">
         <div style="display: flex;width: 100%;">
           <div style="flex: 1;">
             <el-form-item label="渠道ID:" required prop="formEditbannedLimit">
-              <el-input v-model="formEdit.formEditbannedLimit" :disabled="layer.enabled" placeholder="请输入" clearable />
+              <el-input v-model="detailData.channelId" :disabled="layer.enabled" placeholder="请输入" clearable />
             </el-form-item>
             <el-form-item label="渠道名称:" required prop="bannedReason">
-              <el-input v-model="formEdit.bannedReason" :disabled="layer.enabled" placeholder="请输入" clearable />
+              <el-input v-model="detailData.channelName" :disabled="layer.enabled" placeholder="请输入" clearable />
             </el-form-item>
             <el-form-item label="渠道类型:" required prop="bannedReason">
               <el-input v-model="formEdit.bannedReason" :disabled="layer.enabled" placeholder="请输入" clearable />
@@ -625,7 +625,9 @@
   const detailData = ref({})
 
   const lookDetails = (row) => {
+    console.log(row);
     detailData.value = row
+
     layer.value.show = true
     layer.value.enabled = true
     layer.value.title = `查看${row.appName}渠道详情`