Browse Source

refactor:删掉各个详情页面前端的映射,权限加上了金豆的过滤,只有总部可以点击

zhangrenyuan/feature-20250728113353-金币前端三期
lihui 2 weeks ago
parent
commit
13e6d4106a
  1. 2
      src/views/audit/gold/rechargeAudit.vue
  2. 19
      src/views/audit/gold/refundAudit.vue
  3. 19
      src/views/consume/gold/coinConsumeDetail.vue
  4. 1671
      src/views/permissions/permission.vue
  5. 41
      src/views/permissions/rolePermission.vue
  6. 8
      src/views/recharge/gold/coinRechargeDetail.vue
  7. 9
      src/views/refund/gold/coinRefundDetail.vue
  8. 66
      src/views/usergold/gold/clientCountBalance.vue
  9. 13
      src/views/usergold/gold/clientCountDetail.vue

2
src/views/audit/gold/rechargeAudit.vue

@ -189,7 +189,7 @@
<script setup> <script setup>
import {onMounted, reactive, ref} from 'vue' import {onMounted, reactive, ref} from 'vue'
import {marketMapping, reverseMarketMapping} from '@/utils/marketMap.js'
import {reverseMarketMapping} from '@/utils/marketMap.js'
import {ElMessage} from 'element-plus' import {ElMessage} from 'element-plus'
import request from '@/util/http.js' import request from '@/util/http.js'
import API from '@/util/http.js' import API from '@/util/http.js'

19
src/views/audit/gold/refundAudit.vue

@ -83,11 +83,8 @@
<el-table-column type="index" label="序号" width="60"/> <el-table-column type="index" label="序号" width="60"/>
<el-table-column prop="name" label="姓名" width="120"/> <el-table-column prop="name" label="姓名" width="120"/>
<el-table-column prop="jwcode" label="精网号" width="120"/> <el-table-column prop="jwcode" label="精网号" width="120"/>
<el-table-column prop="market" label="所属地区" width="120">
<template #default="scope">
{{ marketMapping[scope.row.market] || scope.row.market }}
</template>
</el-table-column>
<el-table-column prop="market" label="所属地区" width="120"/>
<el-table-column prop="refundType" label="退款类型" width="120"/> <el-table-column prop="refundType" label="退款类型" width="120"/>
<el-table-column prop="refundModel" label="退款方式" width="120"> <el-table-column prop="refundModel" label="退款方式" width="120">
<template #default="{ row }"> <template #default="{ row }">
@ -175,7 +172,12 @@ import {onMounted, reactive, ref} from 'vue'
import {ElMessage} from 'element-plus' import {ElMessage} from 'element-plus'
import API from '@/util/http.js' import API from '@/util/http.js'
import moment from 'moment' import moment from 'moment'
import {marketMapping, reverseMarketMapping} from "@/utils/marketMap.js";
import {reverseMarketMapping} from "@/utils/marketMap.js";
import {useAdminStore} from "@/store/index.js";
import {storeToRefs} from "pinia";
import {findMenuById, permissionMapping} from "@/utils/menuTreePermission.js"
import dayjs from "dayjs";
const defaultTime = [ const defaultTime = [
new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 0, 0, 0),
new Date(2000, 2, 1,23 , 59, 59), new Date(2000, 2, 1,23 , 59, 59),
@ -336,11 +338,6 @@ const get = async function (val) {
} }
} }
import {useAdminStore} from "@/store/index.js";
import {storeToRefs} from "pinia";
import {findMenuById, permissionMapping} from "@/utils/menuTreePermission.js"
import dayjs from "dayjs";
const adminStore = useAdminStore(); const adminStore = useAdminStore();
const {menuTree} = storeToRefs(adminStore); const {menuTree} = storeToRefs(adminStore);

19
src/views/consume/gold/coinConsumeDetail.vue

@ -4,7 +4,7 @@ import {dayjs, ElMessage} from 'element-plus'
import request from '@/util/http.js' import request from '@/util/http.js'
import API from '@/util/http.js' import API from '@/util/http.js'
import moment from 'moment' import moment from 'moment'
import {marketMapping, reverseMarketMapping} from "@/utils/marketMap.js";
import {reverseMarketMapping} from "@/utils/marketMap.js";
// //
/* /*
@ -15,7 +15,7 @@ import {marketMapping, reverseMarketMapping} from "@/utils/marketMap.js";
const formatTime = (val) => val ? dayjs(val).format('YYYY-MM-DD HH:mm:ss') : '' const formatTime = (val) => val ? dayjs(val).format('YYYY-MM-DD HH:mm:ss') : ''
const defaultTime = [ const defaultTime = [
new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 0, 0, 0),
new Date(2000, 2, 1,23 , 59, 59),
new Date(2000, 2, 1, 23, 59, 59),
] ]
/* /*
====================数据================================= ====================数据=================================
@ -115,7 +115,7 @@ const goods = ref([])
const totalGoldSearch = ref({ const totalGoldSearch = ref({
jwcode: null, jwcode: null,
payPlatform: "", payPlatform: "",
market:"" ,
market: "",
startTime: "", startTime: "",
endTime: "", endTime: "",
goodsName: "" goodsName: ""
@ -292,7 +292,7 @@ const reset = function () {
const getToday = function () { const getToday = function () {
const today = dayjs() const today = dayjs()
const startTime = today.startOf('day').format('YYYY-MM-DD HH:mm:ss') const startTime = today.startOf('day').format('YYYY-MM-DD HH:mm:ss')
const endTime =today.endOf('day').format('YYYY-MM-DD HH:mm:ss')
const endTime = today.endOf('day').format('YYYY-MM-DD HH:mm:ss')
getTime.value = [startTime, endTime] getTime.value = [startTime, endTime]
console.log('getTime', getTime.value) console.log('getTime', getTime.value)
activeTimeRange.value = 'today' // activeTimeRange.value = 'today' //
@ -579,7 +579,8 @@ const getMarket = async function () {
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">消耗时间</el-text> <el-text class="mx-1" size="large">消耗时间</el-text>
<el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间" <el-date-picker v-model="getTime" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange" :default-time="defaultTime"/>
end-placeholder="结束时间" style="width: 400px" @change="handleDatePickerChange"
:default-time="defaultTime"/>
<el-button @click="getToday()" style="margin-left: 10px" <el-button @click="getToday()" style="margin-left: 10px"
:type="activeTimeRange === 'today' ? 'primary' : ''"> :type="activeTimeRange === 'today' ? 'primary' : ''">
</el-button> </el-button>
@ -625,11 +626,7 @@ const getMarket = async function () {
<el-table-column prop="name" label="姓名" width="150px" fixed="left"/> <el-table-column prop="name" label="姓名" width="150px" fixed="left"/>
<!-- 固定精网号列 --> <!-- 固定精网号列 -->
<el-table-column prop="jwcode" label="精网号" width="110px" fixed="left"/> <el-table-column prop="jwcode" label="精网号" width="110px" fixed="left"/>
<el-table-column prop="market" label="所属地区" width="110px">
<template #default="scope">
{{ marketMapping[scope.row.market] || scope.row.market }}
</template>
</el-table-column>
<el-table-column prop="market" label="所属地区" width="110px"/>
<el-table-column prop="goodsName" label="商品" width="160px" show-overflow-tooltip/> <el-table-column prop="goodsName" label="商品" width="160px" show-overflow-tooltip/>
<el-table-column prop="payPlatform" label="消耗平台" width="120px"> <el-table-column prop="payPlatform" label="消耗平台" width="120px">
<template #default="scope"> <template #default="scope">
@ -689,7 +686,7 @@ const getMarket = async function () {
<!-- 导出弹窗 --> <!-- 导出弹窗 -->
<el-dialog v-model="exportListVisible" title="导出列表" width="80%"> <el-dialog v-model="exportListVisible" title="导出列表" width="80%">
<el-table :data="exportList" style="width: 100% ;height: 60vh;" :loading="exportListLoading">
<el-table :data="exportList" style="width: 100% ;height: 60vh;" :loading="exportListLoading">
<el-table-column prop="fileName" label="文件名"/> <el-table-column prop="fileName" label="文件名"/>
<el-table-column prop="state" label="状态"> <el-table-column prop="state" label="状态">
<template #default="scope"> <template #default="scope">

1671
src/views/permissions/permission.vue
File diff suppressed because it is too large
View File

41
src/views/permissions/rolePermission.vue

@ -317,10 +317,20 @@ const getLists = async function () {
data: {id: roleId} data: {id: roleId}
}) })
data.value = res.data data.value = res.data
data.value = data.value.filter(item => item.id !== 9);
let originalData = res.data.filter(item => item.id !== 9); //
// data.value = data.value.filter(item => item.id !== 9);
console.log('看看data', data.value) console.log('看看data', data.value)
console.log('parentID:', addRole.value.parentId, 'roleId:', roleId) console.log('parentID:', addRole.value.parentId, 'roleId:', roleId)
//
if (addRole.value.market !== '总部') {
//
originalData = filterGoldenBeanMenus(originalData);
}
data.value = originalData; //
if (addRole.value.parentId && addRole.value.parentId !== 2) { if (addRole.value.parentId && addRole.value.parentId !== 2) {
const result = await API({ const result = await API({
url: '/general/roleMarket', url: '/general/roleMarket',
@ -353,6 +363,33 @@ const getLists = async function () {
console.log('请求失败', error) console.log('请求失败', error)
} }
} }
//
const goldenBeanMenuIds = new Set([
43, 55, 54, // ->
41, 47, 46, 48, // ->
42, 50, 49, 52, 51, // ->
45, 53 // ->
]);
const filterGoldenBeanMenus = (tree) => {
return tree
.filter(item => {
//
if (goldenBeanMenuIds.has(item.id)) {
return false;
}
//
if (item.children && item.children.length > 0) {
item.children = filterGoldenBeanMenus(item.children);
}
return true;
});
};
const handleMarketChange = () => {
getLists(); //
};
const treeRef = ref(null) const treeRef = ref(null)
// //
const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => { const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => {
@ -734,7 +771,7 @@ onMounted(async function () {
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="market" label="所属地区:" required> <el-form-item prop="market" label="所属地区:" required>
<el-select v-model="addRole.market" placeholder="请选择所属地区" style="width: 240px" clearable>
<el-select v-model="addRole.market" placeholder="请选择所属地区" style="width: 240px" clearable @change="handleMarketChange" >
<el-option v-for="item in addRoleMarket" :key="item" :label="item" :value="item"/> <el-option v-for="item in addRoleMarket" :key="item" :label="item" :value="item"/>
</el-select> </el-select>
</el-form-item> </el-form-item>

8
src/views/recharge/gold/coinRechargeDetail.vue

@ -3,7 +3,7 @@ import {onMounted, ref} from 'vue'
import {ElMessage} from 'element-plus' import {ElMessage} from 'element-plus'
import moment from 'moment' import moment from 'moment'
import API from '@/util/http.js' import API from '@/util/http.js'
import {marketMapping, reverseMarketMapping} from '@/utils/marketMap.js';
import {reverseMarketMapping} from '@/utils/marketMap.js';
import dayjs from "dayjs"; import dayjs from "dayjs";
// //
const adminData = ref({}) const adminData = ref({})
@ -648,11 +648,7 @@ const getTagText = (state) => {
</el-table-column> </el-table-column>
<el-table-column fixed="left" prop="name" label="姓名" width="150px"/> <el-table-column fixed="left" prop="name" label="姓名" width="150px"/>
<el-table-column fixed="left" prop="jwcode" label="精网号" width="110px"/> <el-table-column fixed="left" prop="jwcode" label="精网号" width="110px"/>
<el-table-column prop="market" label="所属地区" width="100px">
<template #default="scope">
<span>{{ marketMapping[scope.row.market] || scope.row.market }}</span>
</template>
</el-table-column>
<el-table-column prop="market" label="所属地区" width="100px"/>
<el-table-column prop="activity" label="活动名称" width="110px" show-overflow-tooltip/> <el-table-column prop="activity" label="活动名称" width="110px" show-overflow-tooltip/>
<el-table-column prop="rateName" label="货币名称" width="110px"/> <el-table-column prop="rateName" label="货币名称" width="110px"/>
<el-table-column prop="money" sortable="custom" label="充值金额" width="110px"/> <el-table-column prop="money" sortable="custom" label="充值金额" width="110px"/>

9
src/views/refund/gold/coinRefundDetail.vue

@ -5,7 +5,8 @@ import {ElMessage} from 'element-plus'
import moment from 'moment' import moment from 'moment'
import API from '@/util/http.js' import API from '@/util/http.js'
import request from '@/util/http.js' import request from '@/util/http.js'
import {marketMapping, reverseMarketMapping} from "@/utils/marketMap.js";
import {reverseMarketMapping} from "@/utils/marketMap.js";
const defaultTime = [ const defaultTime = [
new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 0, 0, 0),
new Date(2000, 2, 1,23 , 59, 59), new Date(2000, 2, 1,23 , 59, 59),
@ -647,11 +648,7 @@ const getMarket = async function () {
fixed="left" fixed="left"
width="110px" width="110px"
/> />
<el-table-column prop="market" label="所属地区" width="110px">
<template #default="scope">
{{ marketMapping[scope.row.market] || scope.row.market }}
</template>
</el-table-column>
<el-table-column prop="market" label="所属地区" width="110px"/>
<el-table-column prop="goodsName" label="商品名称" width="110px" show-overflow-tooltip/> <el-table-column prop="goodsName" label="商品名称" width="110px" show-overflow-tooltip/>
<el-table-column prop="refundType" label="退款类型" width="100px"/> <el-table-column prop="refundType" label="退款类型" width="100px"/>

66
src/views/usergold/gold/clientCountBalance.vue

@ -1,13 +1,10 @@
<script setup> <script setup>
// //
import { ref, onMounted, reactive, computed, watch } from 'vue'
import ElementPlus from 'element-plus'
import { ElMessage, ElMessageBox } from 'element-plus'
import axios from 'axios'
import {onMounted, ref} from 'vue'
import {ElMessage} from 'element-plus'
import moment from 'moment' import moment from 'moment'
import { ta } from 'element-plus/es/locales.mjs'
import API from '@/util/http.js' import API from '@/util/http.js'
import { marketMapping, reverseMarketMapping } from "@/utils/marketMap.js";
import {reverseMarketMapping} from "@/utils/marketMap.js";
// //
// //
@ -15,7 +12,7 @@ const adminData = ref({})
const dialogVisible = ref(false) const dialogVisible = ref(false)
const getAdminData = async function () { const getAdminData = async function () {
try { try {
const result = await API({ url: '/admin/userinfo', data: {} })
const result = await API({url: '/admin/userinfo', data: {}})
adminData.value = result adminData.value = result
// console.log('', result) // console.log('', result)
console.log('管理员用户信息', adminData.value) console.log('管理员用户信息', adminData.value)
@ -85,7 +82,7 @@ const get = async function (val) {
// POST // POST
const requestData = { ...getObj.value, user: { ...user.value } };//
const requestData = {...getObj.value, user: {...user.value}};//
console.log('最终请求参数', JSON.stringify(requestData, null, 2)); // console.log('最终请求参数', JSON.stringify(requestData, null, 2)); //
//console.log('', requestData); //console.log('', requestData);
@ -93,7 +90,7 @@ const get = async function (val) {
const result = await API({ const result = await API({
url: '/goldDetail/getGold', url: '/goldDetail/getGold',
method: 'post', method: 'post',
data: { ...getObj.value, user: { ...user.value } }
data: {...getObj.value, user: {...user.value}}
}) })
console.log('响应数据', result) console.log('响应数据', result)
tableData.value = result.data.list tableData.value = result.data.list
@ -167,7 +164,7 @@ const search = function () {
} }
// //
const reset = function () { const reset = function () {
user.value = { market: "" }
user.value = {market: ""}
sortField.value = '' sortField.value = ''
sortOrder.value = '' sortOrder.value = ''
get() get()
@ -220,7 +217,7 @@ const exportExcel = async function () {
market: user.value.market || "" market: user.value.market || ""
} }
} }
const res = await API({ url: '/goldDetail/exportGold', data: params })
const res = await API({url: '/goldDetail/exportGold', data: params})
if (res.code === 200) { if (res.code === 200) {
ElMessage.success('导出成功') ElMessage.success('导出成功')
} }
@ -242,7 +239,7 @@ const exportListLoading = ref(false)
const getExportList = async () => { const getExportList = async () => {
exportListLoading.value = true exportListLoading.value = true
try { try {
const result = await API({ url: '/export/export' })
const result = await API({url: '/export/export'})
if (result.code === 200) { if (result.code === 200) {
const filteredData = result.data.filter(item => { const filteredData = result.data.filter(item => {
return item.type === 1; //type0 return item.type === 1; //type0
@ -327,8 +324,8 @@ const getMarket = async function () {
return allChildren.map(child => { return allChildren.map(child => {
const grandchildren = child.children && child.children.length const grandchildren = child.children && child.children.length
? transformTree([child]) //
: null;
? transformTree([child]) //
: null;
return { return {
value: child.name, value: child.name,
@ -354,7 +351,7 @@ const getMarket = async function () {
<div class="head-card"> <div class="head-card">
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">精网号</el-text> <el-text class="mx-1" size="large">精网号</el-text>
<el-input v-model="user.jwcode" style="width: 160px" placeholder="请输入精网号" clearable />
<el-input v-model="user.jwcode" style="width: 160px" placeholder="请输入精网号" clearable/>
</div> </div>
<div class="head-card-element"> <div class="head-card-element">
<el-text class="mx-1" size="large">所属地区</el-text> <el-text class="mx-1" size="large">所属地区</el-text>
@ -389,29 +386,25 @@ const getMarket = async function () {
<!-- 设置表格容器的高度和滚动样式 --> <!-- 设置表格容器的高度和滚动样式 -->
<div style="height: 626px; overflow-y: auto"> <div style="height: 626px; overflow-y: auto">
<el-table :data="tableData" @cellClick="cellClick" style="width: 100%" height="626px" <el-table :data="tableData" @cellClick="cellClick" style="width: 100%" height="626px"
@sort-change="handleSortChange">
@sort-change="handleSortChange">
<el-table-column type="index" label="序号" width="100px" fixed="left"> <el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope"> <template #default="scope">
<span>{{ <span>{{
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
</template>
</el-table-column>
<el-table-column prop="name" label="姓名" width="120" />
<el-table-column prop="jwcode" label="精网号" width="120" />
<el-table-column prop="market" label="所属地区" width="120">
<template #default="scope">
{{ marketMapping[scope.row.market] || scope.row.market }}
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="name" label="姓名" width="120"/>
<el-table-column prop="jwcode" label="精网号" width="120"/>
<el-table-column prop="market" label="所属地区" width="120"/>
<el-table-column prop="allJb" label="金币总数" width="120" aligh="center"> <el-table-column prop="allJb" label="金币总数" width="120" aligh="center">
<template #default="scope"> <template #default="scope">
<span>{{ <span>{{
((scope.row.currentPermanentGold || 0) +
(scope.row.currentFreeJune || 0) +
(scope.row.currentFreeDecember || 0) +
(scope.row.currentTaskGold || 0)) / 100
}}</span>
((scope.row.currentPermanentGold || 0) +
(scope.row.currentFreeJune || 0) +
(scope.row.currentFreeDecember || 0) +
(scope.row.currentTaskGold || 0)) / 100
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="currentPermanentGold" label="永久金币" sortable="custom" width="110"> <el-table-column prop="currentPermanentGold" label="永久金币" sortable="custom" width="110">
@ -464,8 +457,8 @@ const getMarket = async function () {
<div> <div>
<div>永久金币{{ (scope.row.sumConsumeGold || 0) / 100 }}</div> <div>永久金币{{ (scope.row.sumConsumeGold || 0) / 100 }}</div>
<div>免费金币{{ <div>免费金币{{
((scope.row.sumConsumeJune || 0) + (scope.row.sumConsumeDecember || 0)) / 100
}}
((scope.row.sumConsumeJune || 0) + (scope.row.sumConsumeDecember || 0)) / 100
}}
</div> </div>
<div>任务金币{{ (scope.row.sumConsumeJune || 0) / 100 }}</div> <div>任务金币{{ (scope.row.sumConsumeJune || 0) / 100 }}</div>
</div> </div>
@ -489,8 +482,9 @@ const getMarket = async function () {
<!-- 分页 --> <!-- 分页 -->
<div class="pagination" style="margin-top: 20px"> <div class="pagination" style="margin-top: 20px">
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]" <el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
layout="total, sizes, prev, pager, next, jumper" :total="total"
@size-change="handlePageSizeChange"
@current-change="handleCurrentChange"></el-pagination>
</div> </div>
</el-card> </el-card>
</el-col> </el-col>
@ -498,7 +492,7 @@ const getMarket = async function () {
<el-dialog v-model="exportListVisible" title="导出列表" width="80%"> <el-dialog v-model="exportListVisible" title="导出列表" width="80%">
<el-table :data="exportList" style="width: 100% ;height: 60vh;" :loading="exportListLoading"> <el-table :data="exportList" style="width: 100% ;height: 60vh;" :loading="exportListLoading">
<el-table-column prop="fileName" label="文件名" />
<el-table-column prop="fileName" label="文件名"/>
<el-table-column prop="state" label="状态"> <el-table-column prop="state" label="状态">
<template #default="scope"> <template #default="scope">
<el-tag :type="getTagType(scope.row.state)" :effect="scope.row.state === 3 ? 'light' : 'plain'"> <el-tag :type="getTagType(scope.row.state)" :effect="scope.row.state === 3 ? 'light' : 'plain'">
@ -514,7 +508,7 @@ const getMarket = async function () {
<el-table-column label="操作"> <el-table-column label="操作">
<template #default="scope"> <template #default="scope">
<el-button type="primary" size="small" @click="downloadExportFile(scope.row)" <el-button type="primary" size="small" @click="downloadExportFile(scope.row)"
:disabled="scope.row.state !== 2">
:disabled="scope.row.state !== 2">
下载 下载
</el-button> </el-button>
</template> </template>

13
src/views/usergold/gold/clientCountDetail.vue

@ -1,13 +1,10 @@
<script setup> <script setup>
import {ref, onMounted, computed, nextTick, watch} from 'vue'
import {onMounted, ref} from 'vue'
import {ElMessage} from 'element-plus' import {ElMessage} from 'element-plus'
import axios from 'axios'
import moment from 'moment' import moment from 'moment'
import API from '@/util/http.js' import API from '@/util/http.js'
import {writeFile, utils} from 'xlsx'
import request from "@/util/request.js";
import {marketMapping, reverseMarketMapping} from "../../../utils/marketMap.js";
import {reverseMarketMapping} from "../../../utils/marketMap.js";
import dayjs from "dayjs"; import dayjs from "dayjs";
// //
@ -552,11 +549,7 @@ const getMarket = async function () {
</el-table-column> </el-table-column>
<el-table-column fixed="left" prop="name" label="姓名" width="150"/> <el-table-column fixed="left" prop="name" label="姓名" width="150"/>
<el-table-column fixed="left" prop="jwcode" label="精网号" width="120"/> <el-table-column fixed="left" prop="jwcode" label="精网号" width="120"/>
<el-table-column prop="market" label="所属地区" width="120">
<template #default="scope">
{{ marketMapping[scope.row.market] || scope.row.market }}
</template>
</el-table-column>
<el-table-column prop="market" label="所属地区" width="120"/>
<el-table-column prop="payPlatform" label="平台信息" width="140"> <el-table-column prop="payPlatform" label="平台信息" width="140">
</el-table-column> </el-table-column>

Loading…
Cancel
Save