Forráskód Böngészése

广告位页面修改

小杜 4 hónapja
szülő
commit
b7ac2fbc29

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

@@ -87,7 +87,7 @@
 
         <el-row :gutter="5">
           <el-col :span="10">
-            <el-form-item label="渠道类型:"  prop="channelStatus">
+            <el-form-item label="渠道状态:"  prop="channelStatus">
               <el-select v-model="formEdit.channelStatus" :disabled="layer.enabled">
                 <el-option :value="1" label="正常"/>
                 <el-option :value="2" label="锁定"/>
@@ -217,11 +217,11 @@
               value: null,
             },
             {
-              label: "",
+              label: "正常",
               value: 0,
             },
             {
-              label: "",
+              label: "锁定",
               value: 1,
             }
           ]

+ 358 - 326
src/views/main/formworkErection/placementAdmin.vue

@@ -1,344 +1,376 @@
 <template>
+  <div class="layout-container">
+    <!-- 菜单栏 -->
+    <From :form-items="dynamicFormItems" @formSubmitted="handleFormSubmitted" @formReset="handleFormReset"
+          is_add_button="新增" @addForm="edit"/>
+
+    <!-- 表格 -->
     <div class="layout-container">
-        <!-- 菜单栏 -->
-        <From :form-items="dynamicFormItems" @formSubmitted="handleFormSubmitted" @formReset="handleFormReset"
-            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="placementId" label="广告位ID"  />
-                <el-table-column prop="placementName" label="广告位名称"  />
-                <el-table-column prop="adFormat" label="广告位样式"  >
-                  <template #default="scope">
-                    {{getDictionaryName("ad_format",scope.row.adFormat)}}
-                  </template>
-                </el-table-column>
-                <el-table-column prop="appName" label="所属平台应用"  />
-                <el-table-column prop="networkAppName" 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="status" label="广告位状态" >
-                  <template #default="scope">
-                    {{getDictionaryName("placement_status",scope.row.status)}}
-                  </template>
-                </el-table-column>
-                <el-table-column label="操作" fixed="right">
-                    <template #default="scope">
-                        <div class="button">
-                            <el-button class="button-item" type="primary" style="margin-bottom: 5px;"
-                                @click="edit(scope.row)">
-                                编辑
-                            </el-button>
-                            <el-popconfirm placement="left" title="确认删除该用户?" @confirm="removeType(scope.row)">
-                                <template #reference>
-                                    <el-button class="button-item" style="margin-bottom: 5px;"
-                                        type="warning">删除类型</el-button>
-                                </template>
-                            </el-popconfirm>
-                        </div>
-                    </template>
-                </el-table-column>
-            </Table>
-        </div>
-
-        <!-- 操作弹窗 -->
-        <Layer :layer="layer" @confirm="submit(ruleForm)" @close="layer.show = false">
-            <el-form :model="formEdit" :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="渠道类型:" required prop="formEditbannedLimit">
-                            <el-input v-model="formEdit.formEditbannedLimit" type="number" placeholder="请输入封禁期限"
-                                clearable />
-                        </el-form-item>
-                        <el-form-item label="用途:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                        <el-form-item label="所属代理:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                        <el-form-item label="视频数:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                        <el-form-item label="核减数:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                        <el-form-item label="签到前最小红包:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                        <el-form-item label="签到前最大红包:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                        <el-form-item label="首包红包:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                    </div>
-                    <div style="flex: 1;">
-                        <el-form-item label="红包封顶最小值:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                        <el-form-item label="红包封顶最大值:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                        <el-form-item label="客服QQ号:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-
-                        <el-form-item label="累计提现达到X显示QQ群弹窗:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                        <el-form-item label="提现笔数达到X显示QQ群图标:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                        <el-form-item label="apk版本:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                        <el-form-item label="apk版本code:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                        <el-form-item label="打包版本号:" required prop="bannedReason">
-                            <el-input v-model="formEdit.bannedReason" placeholder="请输入封禁原因" clearable />
-                        </el-form-item>
-                    </div>
-                </div>
-            </el-form>
-        </Layer>
+      <Table @getTableData="changeTableData" v-model:page="page" ref="table" :data="tableData"
+             @selection-change="handleSelectionChange">
+        <el-table-column prop="placementId" label="广告位ID"/>
+        <el-table-column prop="placementName" label="广告位名称"/>
+        <el-table-column prop="adFormat" label="广告位样式">
+          <template #default="scope">
+            {{ getDictionaryName("ad_format", scope.row.adFormat) }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="appName" label="所属平台应用"/>
+        <el-table-column prop="networkAppName" 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="status" label="广告位状态">
+          <template #default="scope">
+            {{ getDictionaryName("placement_status", scope.row.status) }}
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right">
+          <template #default="scope">
+            <div class="button">
+              <el-button class="button-item" type="primary" style="margin-bottom: 5px;"
+                         @click="edit(scope.row)">
+                编辑
+              </el-button>
+              <el-popconfirm placement="left" title="确认删除该用户?" @confirm="removeType(scope.row)">
+                <template #reference>
+                  <el-button class="button-item" style="margin-bottom: 5px;"
+                             type="warning">删除类型
+                  </el-button>
+                </template>
+              </el-popconfirm>
+            </div>
+          </template>
+        </el-table-column>
+      </Table>
     </div>
+
+    <!-- 操作弹窗 -->
+    <Layer :layer="layer" @confirm="submit(ruleForm)" @close="layer.show = false">
+      <el-form :model="formEdit" :rules="rules" ref="ruleForm" label-width="240px" style="margin-right:30px;">
+        <el-row :gutter="5">
+          <el-col :span="10">
+            <el-form-item label="关联app:" required prop="appId">
+              <el-select v-model="formEdit.appData" filterable placeholder="请选择">
+                <el-option
+                    v-for="item in appData"
+                    :key="item.appName"
+                    :label="item.appName"
+                    :value="item">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="2" ></el-col>
+          <el-col :span="10">
+            <el-form-item label="广告位名称:" required prop="placementName">
+              <el-input v-model="formEdit.placementName" placeholder="请输入广告位名称" clearable/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="5">
+          <el-col :span="10">
+            <el-form-item label="广告样式:" required prop="adformat">
+              <el-select v-model="formEdit.adformat" placeholder="请选择广告样式">
+                <el-option value="native" label="native"/>
+                <el-option value="banner" label="banner"/>
+                <el-option value="rewarded_video" label="rewarded_video"/>
+                <el-option value="interstitial" label="interstitial"/>
+                <el-option value="splash" label="splash"/>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="2"></el-col>
+          <el-col :span="10">
+            <el-form-item label="备注:" required prop="remark">
+              <el-input v-model="formEdit.remark" placeholder="请输入备注" clearable/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="5">
+          <el-col :span="10">
+            <el-form-item label="广告位状态:" required prop="status">
+              <el-select v-model="formEdit.status" placeholder="请选择广告位状态">
+                <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-col>
+        </el-row>
+
+      </el-form>
+    </Layer>
+  </div>
 </template>
 
 <script setup>
-    import { onBeforeMount, ref, reactive } from "vue";
-    import From from "@/components/from/index.vue";
-    import Table from "@/components/table/index.vue";
-    import Layer from '@/components/layer/index.vue'
-    import { ElMessage } from 'element-plus'
-    import { getUserList, getStaticList, riskBannedUser, riskLockUser } from '@/api/userModule.js'
-    import { riskChangeUserStatus } from '@/api/riskModule.js'
-    import { convertUTCToBeijing } from '@/utils/index.js'
-    import { useGetDictList } from '@/hooks/useGetDictList.js'
-    import { useStore } from 'vuex'
-    import {placementList} from "@/api/formworkErection";
-
-    const store = useStore()
-    const { dictData, loadDictData, getOptions, getDictionaryName } = useGetDictList();
-    const form = ref(null);
-    const tableData = ref([]);
-
-    // 分页参数, 供table使用
-    const page = reactive({
-        pageNum: 1,
-        pageSize: 20,
-        limit: 20,
-        total: 0,
-    });
-
-    const formSearch = ref({
-        channelOrigin: null,// 渠道来源
-        channelType: null,// 渠道类型
-        lastLoginTime: '',// 最新登录时间
-        limit: 20,// 当前页数量(查询量)
-        nickName: null,// 用户昵称
-        page: 1,// 当前页码
-        pageSizes: 20,// 总页数
-        registryTime: null,// 注册时间
-        total: null,// 总条数
-        userType: null,// 用户类型
-    });
-
-    const dynamicFormItems = ref([])
-
-    onBeforeMount(() => {
-        settingData()
-        getList();
-    });
-
-    // 获取缓存数据设置筛选数据
-    const settingData = () => {
-        loadDictData().then(() => {
-            dynamicFormItems.value = [
-                {
-                    label: '渠道类型',
-                    prop: 'nickName',
-                    type: 'input',
-                },
-                {
-                    label: '所属代理',
-                    prop: 'channelType',
-                    type: 'select',
-                    options: [
-                        {
-                            label: "全部",
-                            value: null,
-                        },
-                        {
-                            label: "是",
-                            value: 0,
-                        },
-                        {
-                            label: "否",
-                            value: 1,
-                        }
-                    ]
-                },
-                {
-                    label: '客服QQ号',
-                    prop: 'name',
-                    type: 'input',
-                },
-                {
-                    label: 'QQ群号',
-                    prop: 'nickName1',
-                    type: 'input',
-                },
-                // { label: '登录日期', prop: 'loginTime', type: 'daterange' },
-            ]
-        })
-    }
+import {onBeforeMount, ref, reactive} from "vue";
+import From from "@/components/from/index.vue";
+import Table from "@/components/table/index.vue";
+import Layer from '@/components/layer/index.vue'
+import {ElMessage} from 'element-plus'
+import {getUserList, getStaticList, riskBannedUser, riskLockUser} from '@/api/userModule.js'
+import {riskChangeUserStatus} from '@/api/riskModule.js'
+import {convertUTCToBeijing} from '@/utils/index.js'
+import {useGetDictList} from '@/hooks/useGetDictList.js'
+import {useStore} from 'vuex'
+import {appList, placementList} from "@/api/formworkErection";
 
-    // 分页数据
-    const getList = async () => {
-        let res = await placementList({ ...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 handleFormSubmitted = (formData) => {
-        // console.log("接收到子组件传递的数据", formData);
-        formSearch.value.page = 1;
-        formSearch.value.pageSizes = 20;
-        formSearch.value.total = page.total;
-        formSearch.value.limit = 20;
-        formSearch.value.nickName = formData.nickName;
-        formSearch.value.channelOrigin = formData.channelOrigin;
-        formSearch.value.channelType = formData.channelType;
-        formSearch.value.userType = formData.userType;
-        formSearch.value.lastLoginTime = formData.lastLoginTime || null
-        formSearch.value.registryTime = formData.registryTime || null
-
-        getList();
-    };
-
-    // 表单重置
-    const handleFormReset = () => {
-        formSearch.value = {
-            channelOrigin: null,// 渠道来源
-            channelType: null,// 渠道类型
-            lastLoginTime: null,// 最新登录时间
-            limit: 20,// 当前页数量(查询量)
-            nickName: null,// 用户昵称
-            page: 1,// 当前页码
-            pageSizes: 20,// 总页数
-            registryTime: null,// 注册时间
-            total: null,// 总条数
-            userType: null,// 用户类型
-        };
-        getList();
-    };
-
-    // 选择监听器
-    const handleSelectionChange = (val) => {
-        context.emit("selection-change", val)
-    }
+const store = useStore()
+const {dictData, loadDictData, getOptions, getDictionaryName} = useGetDictList();
+const form = ref(null);
+const tableData = ref([]);
+const appData = ref([]);
 
-    // 弹窗
-    const layer = ref({
-        show: false,
-        title: "新增广告位",
-        showButton: true,
-        width: '70vw'
-    });
-
-    const formEdit = ref({
-        bannedLimit: null, //封禁期限
-        bannedReason: '',//封禁原因
-        bannedTargetId: '',//封禁目标ID
-        bannedType: '',//封禁类型 1-渠道 2-平台
-        operator: '',//操作人
-        operatorName: '',//操作人名称
-        userId: '', //用户ID
-    })
-
-    const edit = (row) => {
-        ruleForm.value?.resetFields()
-        if (row) {
-            layer.value.title = '编辑广告位'
-        } else {
-            layer.value.title = '新增广告位'
-        }
-        layer.value.show = true
+// 分页参数, 供table使用
+const page = reactive({
+  pageNum: 1,
+  pageSize: 20,
+  limit: 20,
+  total: 0,
+});
 
-    }
+// 分页参数, 供table使用
+const appPage = reactive({
+  pageNum: 1,
+  pageSizes: 999,
+  limit: 999,
+  total: 0,
+});
 
-    const ruleForm = ref(null);
-
-    const rules = reactive({
-        formEditbannedLimit: [
-            { required: true, message: "请输入封禁期限", trigger: "blur" },
-        ],
-        bannedReason: [
-            {
-                required: true,
-                message: "请输入封禁原因",
-                trigger: "blur",
-            },
-        ],
-    });
-
-    const submit = async (formEl) => {
-        await formEl.validate(async (valid, fields) => {
-            if (valid) {
-                // 提交内容
-                
-                layer.value.show = false
-            } else {
-                console.log("error submit!", fields);
-            }
-        })
-    }
+// 分页数据
+const getAppList = async () => {
+  let res = await appList({...appFormSearch.value});
+  appData.value = res.data;
+};
+
+const changeAppTableData = () => {
+  appFormSearch.value.pageNum = appPage.pageNum;
+  appFormSearch.value.pageSizes = appPage.pageSizes;
+  appFormSearch.value.limit = appPage.limit;
+  // 分页切换
+  getAppList();
+};
+
+const formSearch = ref({
+  channelOrigin: null,// 渠道来源
+  channelType: null,// 渠道类型
+  lastLoginTime: '',// 最新登录时间
+  limit: 20,// 当前页数量(查询量)
+  nickName: null,// 用户昵称
+  page: 1,// 当前页码
+  pageSizes: 20,// 总页数
+  registryTime: null,// 注册时间
+  total: null,// 总条数
+  userType: null,// 用户类型
+});
+
+
+const appFormSearch = ref({
+  page: 1,// 当前页码
+  pageSizes: 999,// 总页数
+  limit: 999,
+  total: null,// 总条数
+});
+
+const dynamicFormItems = ref([])
+
+onBeforeMount(() => {
+  settingData()
+  getList();
+  changeAppTableData()
+});
+
+// 获取缓存数据设置筛选数据
+const settingData = () => {
+  loadDictData().then(() => {
+    dynamicFormItems.value = [
+      {
+        label: '渠道类型',
+        prop: 'nickName',
+        type: 'input',
+      },
+      {
+        label: '所属代理',
+        prop: 'channelType',
+        type: 'select',
+        options: [
+          {
+            label: "全部",
+            value: null,
+          },
+          {
+            label: "是",
+            value: 0,
+          },
+          {
+            label: "否",
+            value: 1,
+          }
+        ]
+      },
+      {
+        label: '客服QQ号',
+        prop: 'name',
+        type: 'input',
+      },
+      {
+        label: 'QQ群号',
+        prop: 'nickName1',
+        type: 'input',
+      },
+      // { label: '登录日期', prop: 'loginTime', type: 'daterange' },
+    ]
+  })
+}
+
+// 分页数据
+const getList = async () => {
+  let res = await placementList({...formSearch.value});
+  tableData.value = res.data;
+  page.total = res.pageMeta.total;
+};
 
-    // 删除用户
-    const removeType = async (row) => {
-        console.log('删除', row)
+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.total = page.total;
+  formSearch.value.limit = 20;
+  formSearch.value.nickName = formData.nickName;
+  formSearch.value.channelOrigin = formData.channelOrigin;
+  formSearch.value.channelType = formData.channelType;
+  formSearch.value.userType = formData.userType;
+  formSearch.value.lastLoginTime = formData.lastLoginTime || null
+  formSearch.value.registryTime = formData.registryTime || null
+
+  getList();
+};
+
+// 表单重置
+const handleFormReset = () => {
+  formSearch.value = {
+    channelOrigin: null,// 渠道来源
+    channelType: null,// 渠道类型
+    lastLoginTime: null,// 最新登录时间
+    limit: 20,// 当前页数量(查询量)
+    nickName: null,// 用户昵称
+    page: 1,// 当前页码
+    pageSizes: 20,// 总页数
+    registryTime: null,// 注册时间
+    total: null,// 总条数
+    userType: null,// 用户类型
+  };
+  getList();
+};
+
+// 选择监听器
+const handleSelectionChange = (val) => {
+  context.emit("selection-change", val)
+}
+
+// 弹窗
+const layer = ref({
+  show: false,
+  title: "新增广告位",
+  showButton: true,
+  width: '70vw'
+});
+
+const formEdit = ref({
+  remark: undefined, //备注
+  adformat: undefined,//广告样式
+  placementName: undefined,//广告位名称
+  appData: undefined,//广告位id
+  status:3,
+})
+
+const edit = (row) => {
+  ruleForm.value?.resetFields()
+  if (row) {
+    layer.value.title = '编辑广告位'
+  } else {
+    layer.value.title = '新增广告位'
+  }
+  layer.value.show = true
+
+}
+
+const ruleForm = ref(null);
+
+const rules = reactive({
+  formEditbannedLimit: [
+    {required: true, message: "请输入封禁期限", trigger: "blur"},
+  ],
+  bannedReason: [
+    {
+      required: true,
+      message: "请输入封禁原因",
+      trigger: "blur",
+    },
+  ],
+});
+
+const submit = async (formEl) => {
+  await formEl.validate(async (valid, fields) => {
+    if (valid) {
+      // 提交内容
+
+      layer.value.show = false
+    } else {
+      console.log("error submit!", fields);
     }
+  })
+}
+
+// 删除用户
+const removeType = async (row) => {
+  console.log('删除', row)
+}
 
 </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;
-        }
-
-        .button {
-            display: flex;
-            flex-direction: column;
-
-            .button-item {
-                margin: 4px;
-            }
-        }
+.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;
+  }
+
+  .button {
+    display: flex;
+    flex-direction: column;
+
+    .button-item {
+      margin: 4px;
     }
+  }
+}
 </style>