feat(用户列表-->分页组件): 新增页码,调整获取用户列表的返回数据结构

This commit is contained in:
hzj 2026-03-13 16:23:16 +08:00
parent 6b3c7c39d9
commit 2ce28332c8
2 changed files with 419 additions and 379 deletions

View File

@ -25,9 +25,7 @@
:value="item.value"
>
<span style="float: left;">
<sys-origin-icon
:icon="item.value"
:desc="item.value"
<sys-origin-icon :icon="item.value" :desc="item.value"
/></span>
<span style="float: left;margin-left:10px">{{ item.label }}</span>
</el-option>
@ -99,7 +97,9 @@
class="el-icon-edit el-input__icon"
/>
<template slot-scope="{ item }">
<div class="name">{{ item.phonePrefix + ' ' + item.countryName }}</div>
<div class="name">
{{ item.phonePrefix + " " + item.countryName }}
</div>
</template>
</el-autocomplete>
<el-select
@ -157,10 +157,9 @@
>
搜索
</el-button>
<el-checkbox
v-model="showAllCondition"
class="filter-item"
>显示所有条件</el-checkbox>
<el-checkbox v-model="showAllCondition" class="filter-item"
>显示所有条件</el-checkbox
>
<el-button
v-if="buttonPermissions.includes('props:config:sales:total')"
class="filter-item"
@ -219,7 +218,11 @@
</div>
</template>
</el-table-column>
<el-table-column prop="salaryDiamondBalance" label="工资钻石余额" align="center">
<el-table-column
prop="salaryDiamondBalance"
label="工资钻石余额"
align="center"
>
<template slot-scope="scope">
<el-link
v-if="buttonPermissions.includes('user:table:query:gold')"
@ -331,22 +334,26 @@
<el-dropdown-item
v-if="buttonPermissions.includes('user:table:query:details')"
@click.native="queryUserDetails(scope.row)"
>资料详情</el-dropdown-item>
>资料详情</el-dropdown-item
>
<el-dropdown-item
v-if="buttonPermissions.includes('user:table:edit')"
@click.native="editUserForm(scope.row)"
>编辑用户</el-dropdown-item>
>编辑用户</el-dropdown-item
>
<el-dropdown-item
v-if="buttonPermissions.includes('user:table:query:gold')"
@click.native="handleRunningWater(scope.row)"
>金币收支</el-dropdown-item>
>金币收支</el-dropdown-item
>
<el-dropdown-item
v-if="
buttonPermissions.includes('user:table:query:violation')
"
@click.native="clickViolationTableVisible(scope.row)"
>违规记录</el-dropdown-item>
>违规记录</el-dropdown-item
>
<el-dropdown-item
v-if="
@ -355,7 +362,8 @@
)
"
@click.native="accountHanle(scope.row)"
>账号处理</el-dropdown-item>
>账号处理</el-dropdown-item
>
<el-dropdown-item
v-if="
buttonPermissions.includes(
@ -363,32 +371,37 @@
)
"
@click.native="accountStatus(scope.row)"
>账号处理记录</el-dropdown-item>
>账号处理记录</el-dropdown-item
>
<el-dropdown-item
v-if="
buttonPermissions.includes('user:table:edit:reward:gold')
"
@click.native="editUserGoldCoinRewardForm(scope.row)"
>金币奖励</el-dropdown-item>
>金币奖励</el-dropdown-item
>
<el-dropdown-item
v-if="
buttonPermissions.includes('user:table:edit:deduction:gold')
"
@click.native="editUserGoldCoinDeductionForm(scope.row)"
>金币扣除</el-dropdown-item>
>金币扣除</el-dropdown-item
>
<el-dropdown-item
v-if="
buttonPermissions.includes('user:table:edit:reward:gold')
"
@click.native="editUserDiamondRewardForm(scope.row)"
>钻石奖励</el-dropdown-item>
>钻石奖励</el-dropdown-item
>
<el-dropdown-item
v-if="
buttonPermissions.includes('user:table:edit:deduction:gold')
"
@click.native="editUserDiamondDeductionForm(scope.row)"
>钻石扣除</el-dropdown-item>
>钻石扣除</el-dropdown-item
>
<!-- <el-dropdown-item
v-if="
buttonPermissions.includes(
@ -412,21 +425,25 @@
buttonPermissions.includes('user:table:add:otherRecharge')
"
@click.native="addOtherRecharge(scope.row)"
>添加充值记录</el-dropdown-item>
>添加充值记录</el-dropdown-item
>
<el-dropdown-item
v-if="
buttonPermissions.includes('user:table:query:otherRecharge')
"
@click.native="addOtherRechargeDialog(scope.row)"
>线下充值记录</el-dropdown-item>
>线下充值记录</el-dropdown-item
>
<el-dropdown-item
v-if="buttonPermissions.includes('user:table:auth:info')"
@click.native="handleUserAuthForm(scope.row)"
>认证信息</el-dropdown-item>
>认证信息</el-dropdown-item
>
<el-dropdown-item
v-if="buttonPermissions.includes('user:table:edit:bankCard')"
@click.native="handleBankCard(scope.row)"
>银行卡</el-dropdown-item>
>银行卡</el-dropdown-item
>
</el-dropdown-menu>
</el-dropdown>
</template>
@ -434,10 +451,10 @@
</el-table>
<pagination
:total="9999999999999999999"
:total="total"
:page.sync="listQuery.pageIndex"
:limit.sync="listQuery.pageSize"
layout="prev,next,sizes"
layout="prev,pager,next,sizes"
@pagination="renderData"
/>
@ -569,7 +586,7 @@
</div>
<user-registration-overview-charts-dialog
v-if="UserRegistrationOverviewChartsDialogVisible"
@close="UserRegistrationOverviewChartsDialogVisible=false"
@close="UserRegistrationOverviewChartsDialogVisible = false"
/>
<div
v-else
@ -585,36 +602,36 @@
</template>
<script>
import { getUserTable } from '@/api/app-user'
import { registerOrigins, originPlatforms } from '@/constant/origin'
import { genders, userTypes } from '@/constant/user'
import Pagination from '@/components/Pagination'
import PlatformSvgIcon from '@/components/PlatformSvgIcon'
import GoldRunningWaterDialog from '@/components/data/GoldRunningWaterDialog'
import DiamondRunningWaterDialog from '@/components/data/DiamondRunningWaterDialog'
import DiamondSalaryRunningWaterDialog from '@/components/data/DiamondSalaryRunningWaterDialog'
import AccountHanle from '@/components/data/AccountHanle'
import UserVideoViolationTableDialog from '@/components/data/UserVideoViolationTableDialog'
import EditUserForm from '@/components/data/EditUserForm'
import EditUserGoldCoinDeductionForm from '@/components/data/EditUserGoldCoinDeductionForm'
import EditUserGoldCoinRewardForm from '@/components/data/EditUserGoldCoinRewardForm'
import EditUserDiamondDeductionForm from '@/components/data/EditDiamondCoinDeductionForm'
import EditUserDiamondRewardForm from '@/components/data/EditUserDiamondRewardForm'
import EditUserGameCouponRewardForm from '@/components/data/EditUserGameCouponRewardForm'
import EditUserGameCouponDeductionForm from '@/components/data/EditUserGameCouponDeductionForm'
import UserAccountStatusLogDrawer from '@/components/data/UserAccountStatusLogDrawer'
import AddOtherRecharge from '@/components/data/AddOtherRecharge'
import AddOtherRechargeDialog from '@/components/data/AddOtherRechargeDialog'
import UserAuthForm from '@/components/data/UserAuthForm'
import BankCardDrawer from '@/components/data/UserInfo/BankCardDrawer'
import UserRegistrationOverviewChartsDialog from '@/components/data/UserRegistrationOverviewCharts/dialog'
import { copyText } from '@/utils'
import { pickerOptions } from '@/constant/el-const'
import { mapGetters } from 'vuex'
import { getCountryAlls } from '@/api/sys'
import { getUserTable } from "@/api/app-user";
import { registerOrigins, originPlatforms } from "@/constant/origin";
import { genders, userTypes } from "@/constant/user";
import Pagination from "@/components/Pagination";
import PlatformSvgIcon from "@/components/PlatformSvgIcon";
import GoldRunningWaterDialog from "@/components/data/GoldRunningWaterDialog";
import DiamondRunningWaterDialog from "@/components/data/DiamondRunningWaterDialog";
import DiamondSalaryRunningWaterDialog from "@/components/data/DiamondSalaryRunningWaterDialog";
import AccountHanle from "@/components/data/AccountHanle";
import UserVideoViolationTableDialog from "@/components/data/UserVideoViolationTableDialog";
import EditUserForm from "@/components/data/EditUserForm";
import EditUserGoldCoinDeductionForm from "@/components/data/EditUserGoldCoinDeductionForm";
import EditUserGoldCoinRewardForm from "@/components/data/EditUserGoldCoinRewardForm";
import EditUserDiamondDeductionForm from "@/components/data/EditDiamondCoinDeductionForm";
import EditUserDiamondRewardForm from "@/components/data/EditUserDiamondRewardForm";
import EditUserGameCouponRewardForm from "@/components/data/EditUserGameCouponRewardForm";
import EditUserGameCouponDeductionForm from "@/components/data/EditUserGameCouponDeductionForm";
import UserAccountStatusLogDrawer from "@/components/data/UserAccountStatusLogDrawer";
import AddOtherRecharge from "@/components/data/AddOtherRecharge";
import AddOtherRechargeDialog from "@/components/data/AddOtherRechargeDialog";
import UserAuthForm from "@/components/data/UserAuthForm";
import BankCardDrawer from "@/components/data/UserInfo/BankCardDrawer";
import UserRegistrationOverviewChartsDialog from "@/components/data/UserRegistrationOverviewCharts/dialog";
import { copyText } from "@/utils";
import { pickerOptions } from "@/constant/el-const";
import { mapGetters } from "vuex";
import { getCountryAlls } from "@/api/sys";
export default {
name: 'AppUserTable',
name: "AppUserTable",
components: {
Pagination,
GoldRunningWaterDialog,
@ -648,25 +665,25 @@ export default {
userAuthFormVisible: false,
pickerOptions,
thisRow: {},
countryCodeStr: '',
countryCodeStr: "",
level: 0,
marks: {
0: 'L0',
1: 'L1',
2: 'L2',
0: "L0",
1: "L1",
2: "L2",
3: {
style: {
color: '#1989FA',
width: '20px'
color: "#1989FA",
width: "20px"
},
label: this.$createElement('strong', 'L3')
label: this.$createElement("strong", "L3")
}
},
levelSubmitLoading: false,
accountHandleVisible: false,
accountStatusLogTable: false,
userDeatilsDrawer: false,
thatSelectedUserId: '',
thatSelectedUserId: "",
candyDialogVisible: false,
diamondDialogVisible: false,
diamondSalaryDialogVisible: false,
@ -688,33 +705,33 @@ export default {
pageIndex: 1,
pageSize: 20,
userIds: [],
countryCode: '',
authType: '',
originPlatform: '',
originPhoneModel: '',
userSex: '',
userType: '',
startTime: '',
endTime: '',
startCreateDate: '',
endCreateDate: '',
del: '0',
account: '',
countryCode: "",
authType: "",
originPlatform: "",
originPhoneModel: "",
userSex: "",
userType: "",
startTime: "",
endTime: "",
startCreateDate: "",
endCreateDate: "",
del: "0",
account: "",
sysOrigins: [],
deviceId: ''
deviceId: ""
},
allCountryList: [],
rangeDate: '',
rangeDate: "",
listLoading: true,
searchLoading: false,
clickUserId: ''
}
clickUserId: ""
};
},
computed: {
...mapGetters([
'buttonPermissions',
'permissionsSysOriginPlatforms',
'permissionsSysOriginPlatformAlls'
"buttonPermissions",
"permissionsSysOriginPlatforms",
"permissionsSysOriginPlatformAlls"
])
},
watch: {
@ -723,273 +740,295 @@ export default {
deep: true,
handler(newVal) {
if (newVal && newVal.length > 0) {
this.listQuery.startCreateDate = newVal[0]
this.listQuery.endCreateDate = newVal[1]
return
this.listQuery.startCreateDate = newVal[0];
this.listQuery.endCreateDate = newVal[1];
return;
}
this.listQuery.startCreateDate = ''
this.listQuery.endCreateDate = ''
this.listQuery.startCreateDate = "";
this.listQuery.endCreateDate = "";
}
}
},
created() {
const that = this
const querySystem = this.permissionsSysOriginPlatforms[0]
const that = this;
const querySystem = this.permissionsSysOriginPlatforms[0];
if (!querySystem) {
return
return;
}
that.listQuery.sysOrigins = [querySystem.value]
that.listQuery.account = 'aaaaa'
that.renderData(true)
that.listQuery.sysOrigins = [querySystem.value];
that.listQuery.account = "aaaaa";
that.renderData(true);
// that.loadCountryAlls()
setTimeout(() => {
that.permissionValidationLoading = false
}, 3 * 1000)
that.permissionValidationLoading = false;
}, 3 * 1000);
},
methods: {
renderData(isReset) {
const that = this
const that = this;
if (isReset === true) {
that.listQuery.pageIndex = 1
that.list = []
that.listQuery.pageIndex = 1;
that.list = [];
}
that.listLoading = true
that.listQuery.userIds = that.listQuery.userIds.filter(item => item)
that.listLoading = true;
that.listQuery.userIds = that.listQuery.userIds.filter(item => item);
that.listQuery.sysOrigins =
that.listQuery.sysOrigins && that.listQuery.sysOrigins.length > 0
? that.listQuery.sysOrigins
: that.permissionsSysOriginPlatformAlls.map(item => item.value)
: that.permissionsSysOriginPlatformAlls.map(item => item.value);
that.listQuery.account = that.listQuery.account.length > 0
? that.listQuery.account
: 'aaaaa'
that.listQuery.account =
that.listQuery.account.length > 0 ? that.listQuery.account : "aaaaa";
getUserTable(that.listQuery)
.then(res => {
const { body } = res
that.list = body || []
that.searchLoading = that.listLoading = false
const { body } = res;
that.total = body.total || 0;
that.list = body.records || [];
that.searchLoading = that.listLoading = false;
})
.catch(er => {
that.searchLoading = that.listLoading = false
})
that.searchLoading = that.listLoading = false;
});
},
handleSearch() {
this.searchLoading = true
this.renderData(true)
this.searchLoading = true;
this.renderData(true);
},
querySearch(queryString, cb) {
var restaurants = this.allCountryList
var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants
var restaurants = this.allCountryList;
var results = queryString
? restaurants.filter(this.createFilter(queryString))
: restaurants;
// callback
cb(results)
cb(results);
},
createFilter(queryString) {
return (restaurant) => {
if (restaurant.alphaTwo.toLowerCase().indexOf(queryString.toLowerCase()) === 0) {
return true
return restaurant => {
if (
restaurant.alphaTwo
.toLowerCase()
.indexOf(queryString.toLowerCase()) === 0
) {
return true;
}
if (restaurant.alphaThree.toLowerCase().indexOf(queryString.toLowerCase()) === 0) {
return true
if (
restaurant.alphaThree
.toLowerCase()
.indexOf(queryString.toLowerCase()) === 0
) {
return true;
}
if (restaurant.countryName.toLowerCase().indexOf(queryString.toLowerCase()) === 0) {
return true
if (
restaurant.countryName
.toLowerCase()
.indexOf(queryString.toLowerCase()) === 0
) {
return true;
}
if (restaurant.aliasName.toLowerCase().indexOf(queryString.toLowerCase()) === 0) {
return true
}
return (String(restaurant.phonePrefix).indexOf(queryString.toLowerCase()) === 0)
if (
restaurant.aliasName
.toLowerCase()
.indexOf(queryString.toLowerCase()) === 0
) {
return true;
}
return (
String(restaurant.phonePrefix).indexOf(queryString.toLowerCase()) ===
0
);
};
},
handleDelCountryCodeClick() {
this.listQuery.countryCode = ''
this.countryCodeStr = ''
this.handleSearch()
this.listQuery.countryCode = "";
this.countryCodeStr = "";
this.handleSearch();
},
handleCountryCodeClick(item) {
this.listQuery.countryCode = item.alphaTwo
this.countryCodeStr = item.phonePrefix + ' ' + item.countryName
this.handleSearch()
this.listQuery.countryCode = item.alphaTwo;
this.countryCodeStr = item.phonePrefix + " " + item.countryName;
this.handleSearch();
},
loadCountryAlls() {
const that = this
getCountryAlls().then(res => {
that.allCountryList = res.result || {}
}).catch(er => {
const that = this;
getCountryAlls()
.then(res => {
that.allCountryList = res.result || {};
})
.catch(er => {});
},
getAccountText(userInfo) {
if (!userInfo) {
return ''
return "";
}
const account = userInfo.account
const account = userInfo.account;
if (userInfo.ownSpecialId && userInfo.ownSpecialId.account) {
return `${account} / ${userInfo.ownSpecialId.account}`
return `${account} / ${userInfo.ownSpecialId.account}`;
}
return account
return account;
},
queryUserDetails(row) {
this.thatSelectedUserId = row.id
this.userDeatilsDrawer = true
this.thatSelectedUserId = row.id;
this.userDeatilsDrawer = true;
},
handleEidt(row) {},
editUserForm(item) {
this.thatSelectedUserId = item.id
this.editUserFormVisible = true
this.thatSelectedUserId = item.id;
this.editUserFormVisible = true;
},
editUserGoldCoinDeductionForm(item) {
this.thatSelectedUserId = item.id
this.editUserGoldCoinDeductionFormVisible = true
this.thatSelectedUserId = item.id;
this.editUserGoldCoinDeductionFormVisible = true;
},
editUserGoldCoinRewardForm(item) {
this.thatSelectedUserId = item.id
this.editUserGoldCoinRewardFormVisible = true
this.thatSelectedUserId = item.id;
this.editUserGoldCoinRewardFormVisible = true;
},
editUserDiamondDeductionForm(item) {
this.thatSelectedUserId = item.id
this.editUserDiamondDeductionFormVisible = true
this.thatSelectedUserId = item.id;
this.editUserDiamondDeductionFormVisible = true;
},
editUserDiamondRewardForm(item) {
this.thatSelectedUserId = item.id
this.editUserDiamondRewardFormVisible = true
this.thatSelectedUserId = item.id;
this.editUserDiamondRewardFormVisible = true;
},
editUserGameCouponRewardForm(item) {
this.thatSelectedUserId = item.id
this.editUserGameCouponRewardFormVisible = true
this.thatSelectedUserId = item.id;
this.editUserGameCouponRewardFormVisible = true;
},
editUserGameCouponDeductionForm(item) {
this.thatSelectedUserId = item.id
this.editUserGameCouponDeductionFormVisible = true
this.thatSelectedUserId = item.id;
this.editUserGameCouponDeductionFormVisible = true;
},
handleBankCard(item) {
this.thisRow = item
this.bankCardVisible = true
this.thisRow = item;
this.bankCardVisible = true;
},
addOtherRecharge(item) {
this.thisRow = item
this.thatSelectedUserId = item.id
this.otherRechargeVisible = true
this.thisRow = item;
this.thatSelectedUserId = item.id;
this.otherRechargeVisible = true;
},
addOtherRechargeDialog(item) {
this.thisRow = item
this.thatSelectedUserId = item.id
this.otherRechargeDialogVisible = true
this.thisRow = item;
this.thatSelectedUserId = item.id;
this.otherRechargeDialogVisible = true;
},
otherRechargeSuccess() {
this.otherRechargeVisible = false
this.$opsMessage.success()
this.otherRechargeVisible = false;
this.$opsMessage.success();
},
accountHandleSuccess(data) {
this.$opsMessage.success()
this.$opsMessage.success();
// this.renderData()
},
accountHanle(row) {
this.thatSelectedUserId = row.id
this.accountHandleVisible = true
this.thatSelectedUserId = row.id;
this.accountHandleVisible = true;
},
accountStatus(item) {
this.thisRow = item
this.accountStatusLogTable = true
this.thisRow = item;
this.accountStatusLogTable = true;
},
handleRunningWater(row) {
this.clickUserId = row.id
this.candyDialogVisible = true
this.clickUserId = row.id;
this.candyDialogVisible = true;
},
handleDiamondRunningWater(row) {
this.clickUserId = row.id
this.diamondDialogVisible = true
this.clickUserId = row.id;
this.diamondDialogVisible = true;
},
handleDiamondSalaryRunningWater(row) {
this.clickUserId = row.id
this.diamondSalaryDialogVisible = true
this.clickUserId = row.id;
this.diamondSalaryDialogVisible = true;
},
handleUserAuthForm(row) {
this.thatSelectedUserId = row.id
this.userAuthFormVisible = true
this.thatSelectedUserId = row.id;
this.userAuthFormVisible = true;
},
clickViolationTableVisible(row) {
this.thisRow = row
this.violationTableVisible = true
this.thisRow = row;
this.violationTableVisible = true;
},
copyTextContent(text) {
const that = this
const that = this;
copyText(text)
.then(() => {
that.$message({
message: '复制成功',
type: 'success'
})
message: "复制成功",
type: "success"
});
})
.catch(() => {
that.$message({
message: '复制失败',
type: 'error'
})
})
message: "复制失败",
type: "error"
});
});
},
originText(row) {
const texts = []
const texts = [];
if (!row.userRegisterInfo) {
return ''
return "";
}
const userRegisterInfo = row.userRegisterInfo
const userRegisterInfo = row.userRegisterInfo;
if (userRegisterInfo.originPlatform) {
texts.push(userRegisterInfo.originPlatform)
texts.push(userRegisterInfo.originPlatform);
}
if (userRegisterInfo.originPhoneModel) {
texts.push(userRegisterInfo.originPhoneModel)
texts.push(userRegisterInfo.originPhoneModel);
}
return texts.join('')
return texts.join("");
},
renderDataSuccess() {
this.$message({
message: 'Successful',
type: 'success'
})
this.renderData()
message: "Successful",
type: "success"
});
this.renderData();
},
handleMouseEnter(row) {
this.thisRow = row
this.thatSelectedUserId = row.id
this.thisRow = row;
this.thatSelectedUserId = row.id;
},
getLevelName(gender, level) {
if (gender !== 0) {
return '-'
return "-";
}
if (level === -1) {
return 'L-1'
return "L-1";
}
return `L${level}`
return `L${level}`;
},
handleUserSexChange(value) {
if (value === 0) {
this.listQuery.maleLevel = ''
return
this.listQuery.maleLevel = "";
return;
}
if (value === 1) {
this.listQuery.level = ''
return
this.listQuery.level = "";
return;
}
this.listQuery.maleLevel = ''
this.listQuery.level = ''
this.listQuery.maleLevel = "";
this.listQuery.level = "";
},
getAccountStatusFontColor(user) {
if (!user || !user.actualAccountStatus) {
return 'info'
return "info";
}
if (user.actualAccountStatus === 'NORMAL') {
return 'font-success'
if (user.actualAccountStatus === "NORMAL") {
return "font-success";
}
if (user.actualAccountStatus === 'FREEZE') {
return 'font-warning'
if (user.actualAccountStatus === "FREEZE") {
return "font-warning";
}
return 'font-danger'
return "font-danger";
},
clickUserRegistrationOverview() {
this.UserRegistrationOverviewChartsDialogVisible = true
this.UserRegistrationOverviewChartsDialogVisible = true;
}
}
}
};
</script>
<style scoped lang="scss">
.this-level {

View File

@ -540,10 +540,10 @@
<!-- 分页 -->
<pagination
:total="9999999999999999999"
:total="total"
:page.sync="listQuery.pageIndex"
:limit.sync="listQuery.pageSize"
layout="prev,next,sizes"
layout="prev,pager,next,sizes"
@pagination="renderData"
/>
@ -926,7 +926,8 @@ export default {
getUserTable(that.listQuery)
.then(res => {
const { body } = res;
that.list = body || [];
that.total = body.total || 0;
that.list = body.records || [];
that.searchLoading = that.listLoading = false;
})
.catch(er => {