字段隐藏、用户名称改为实名

This commit is contained in:
墨大叔 2024-08-31 17:13:47 +08:00
parent 237caa698a
commit a3e4b45c43
18 changed files with 165 additions and 74 deletions

View File

@ -62,7 +62,7 @@ export default {
//
showProp: {
type: String,
default: 'userName'
default: 'realOrUserName'
},
//
prop: {

View File

@ -4,7 +4,7 @@
:append-to-body="true">
<el-form size="small" :inline="true" label-width="68px">
<el-form-item label="用户名">
<el-input v-model="searchForm.userName" clearable @keyup.enter.native="onSearch" placeholder="请输入用户名"/>
<el-input v-model="searchForm.realOrUserName" clearable @keyup.enter.native="onSearch" placeholder="请输入用户名"/>
</el-form-item>
<el-form-item label="手机号">
<el-input v-model="searchForm.phonenumber" type="number" :maxlength="11" show-word-limit clearable @keyup.enter.native="onSearch" placeholder="请输入手机号"/>
@ -27,7 +27,7 @@
<el-table-column align="center" type="selection" v-if="multiple"></el-table-column>
<el-table-column label="#" type="index" align="center"></el-table-column>
<el-table-column label="手机号" align="center" prop="phonenumber"></el-table-column>
<el-table-column label="用户名" align="center" prop="userName"></el-table-column>
<el-table-column label="用户名" align="center" prop="realOrUserName"></el-table-column>
<el-table-column label="用户类型" align="center" prop="type" width="120">
<dict-tag slot-scope="d" :options="dict.type.user_type" :value="d.row.type"/>
</el-table-column>

View File

@ -1,4 +1,8 @@
// 根部门ID
export const ROOT_DEPT = "100";
// 字段名称
export const FieldName = {
AGENT: "合作伙伴",

View File

@ -65,13 +65,22 @@ export const $showColumns = {
},
methods: {
hideColumn(columns) {
console.log('hide', columns)
if (this.columns != null) {
this.columns.filter(item => columns.includes(item.key))
.forEach(item => {
item.visible = false;
})
}
},
removeColumn(columns) {
if (columns != null) {
columns.forEach(column => {
let index = this.columns.findIndex(item => column === item.key);
if (index != null && index > -1) {
this.columns.splice(index, 1);
}
})
}
}
}
}

View File

@ -189,7 +189,7 @@
/>
</el-select>
</form-col>
<form-col :span="span * 2" label="服务费收取方式" label-width="9em" prop="serviceType">
<form-col :span="showChannelCost ? span * 2 : span" label="服务费收取方式" label-width="9em" prop="serviceType">
<el-radio-group v-model="form.serviceType">
<el-radio v-for="dict in dict.type.withdraw_service_type" :key="dict.value" :label="dict.value">{{dict.label}}</el-radio>
</el-radio-group>
@ -201,7 +201,7 @@
</template>
</el-input>
</form-col>
<form-col :span="span" label="渠道成本" prop="costRate">
<form-col :span="span" label="渠道成本" prop="costRate" v-if="showChannelCost">
<el-input v-model.number="form.costRate" placeholder="请输入充值成本率" :min="0" type="number">
<template #suffix>%</template>
</el-input>
@ -236,9 +236,10 @@
<script>
import { listChannelWithdraw, getChannelWithdraw, delChannelWithdraw, addChannelWithdraw, updateChannelWithdraw } from "@/api/ss/channelWithdraw";
import { $showColumns, $withdrawServiceType } from '@/utils/mixins'
import { updateBill } from '@/api/system/withdraw'
import ConfigForm from '@/components/Business/Config/ConfigForm.vue'
import ConfigDialog from '@/components/Business/Config/ConfigDialog.vue'
import { mapGetters } from 'vuex'
import { ROOT_DEPT } from '@/utils/constants'
//
const defaultSort = {
@ -251,6 +252,13 @@ export default {
components: { ConfigDialog, ConfigForm },
mixins: [$showColumns, $withdrawServiceType],
dicts: ['account_type', 'withdraw_service_type'],
computed: {
...mapGetters(['deptId']),
//
showChannelCost() {
return this.deptId === ROOT_DEPT;
}
},
data() {
return {
showConfig: false,
@ -327,6 +335,9 @@ export default {
};
},
created() {
if (!this.showChannelCost) {
this.removeColumn(['costRate']);
}
this.getList();
},
methods: {

View File

@ -154,7 +154,8 @@
<script>
import { listPayBill, getPayBill, delPayBill, addPayBill, updatePayBill, refundPayBill } from '@/api/ss/payBill'
import { $showColumns, $view } from '@/utils/mixins'
import { PayBillStatus, views } from '@/utils/constants'
import { PayBillStatus, ROOT_DEPT, views } from '@/utils/constants'
import { mapGetters } from 'vuex'
//
const defaultSort = {
@ -175,6 +176,7 @@ export default {
}
},
computed: {
...mapGetters(['deptId']),
canRefund() {
return (row) => {
return row != null && row.status === PayBillStatus.PAY_SUCCESS;
@ -285,6 +287,11 @@ export default {
if (this.hasView(views.recharge)) {
this.showSearch = false;
}
//
if (this.deptId !== ROOT_DEPT) {
this.removeColumn(['channelCost'])
}
this.queryParams = {
...this.queryParams,
...this.query

View File

@ -1,14 +1,19 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户名称" prop="userName" v-if="notHasView(views.user)">
<el-form-item label="主体名称" prop="userName" v-if="notHasView(views.user)">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
placeholder="请输入主体名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="主体类型" prop="subjectType" v-if="notHasView(views.user)">
<el-select v-model="queryParams.subjectType" placeholder="请选择主体类型" clearable @change="handleQuery">
<el-option v-for="dict in dict.type.record_balance_subject_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="变动原因" prop="reason">
<el-input
v-model="queryParams.reason"
@ -77,6 +82,7 @@
<el-table v-loading="loading" :data="recordBalanceList" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="onSortChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="记录ID" align="center" prop="id" sortable="custom" :sort-orders="orderSorts" v-if="isShow('id')" width="100"/>
<el-table-column label="变动时间" align="center" prop="createTime" sortable="custom" :sort-orders="orderSorts" v-if="isShow('createTime')"/>
<el-table-column label="主体名称" align="center" prop="userName" sortable="custom" :sort-orders="orderSorts" v-if="isShow('userName')">
<template slot-scope="d">
<user-link v-if="d.row.subjectType === RecordBalanceSubjectType.USER" :id="d.row.userId" :name="d.row.userName"/>
@ -91,7 +97,6 @@
<dict-tag :value="d.row.bstType" :options="dict.type.record_balance_bst_type"/>
</template>
</el-table-column>
<el-table-column label="变动时间" align="center" prop="createTime" sortable="custom" :sort-orders="orderSorts" v-if="isShow('createTime')"/>
<el-table-column label="变动金额" align="center" prop="beforeBalance" sortable="custom" :sort-orders="orderSorts" v-if="isShow('amount')">
<template slot-scope="d">
<span v-if="d.row.amount >= 0" style="color: red;font-weight: bold;">
@ -167,7 +172,7 @@
import { listRecordBalance, getRecordBalance, delRecordBalance, addRecordBalance, updateRecordBalance } from "@/api/ss/recordBalance";
import { $showColumns, $view } from '@/utils/mixins'
import UserLink from '@/components/Business/SmUser/UserLink.vue'
import { RecordBalanceSubjectType } from '@/utils/constants'
import { RecordBalanceSubjectType, views } from '@/utils/constants'
//
const defaultSort = {
@ -197,7 +202,7 @@ export default {
return {
//
columns: [
{key: 'id', visible: true, label: 'ID'},
{key: 'id', visible: false, label: 'ID'},
{key: 'userName', visible: true, label: '主体名称'},
{key: 'subjectType', visible: true, label: '主体类型'},
{key: 'bstType', visible: true, label: '业务类型'},
@ -260,6 +265,9 @@ export default {
};
},
created() {
if (this.hasView(views.user)) {
this.hideColumn(['userName', 'subjectType'])
}
this.queryParams = {
...this.queryParams,
...this.query

View File

@ -9,6 +9,40 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="FieldName.AGENT" prop="agentName">
<el-input
v-model="queryParams.agentName"
:placeholder="`请输入${FieldName.AGENT}名称`"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="收费模式" prop="feeMode">-->
<!-- <el-select v-model="queryParams.feeMode" @change="handleQuery" clearable placeholder="请选择收费模式">-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.suit_fee_mode"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="收费类型" prop="feeType">-->
<!-- <el-select v-model="queryParams.feeType" @change="handleQuery" clearable placeholder="请选择收费类型">-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.suit_fee_type"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
</el-form-item>
<el-form-item label="是否启用" prop="enabled">
<el-select v-model="queryParams.enabled" @change="handleQuery" clearable placeholder="请选择是否启用">
<el-option :value="true" label="已启用"/>
<el-option :value="false" label="未启用"/>
</el-select>
</el-form-item>
<el-form-item label="详细说明" prop="description">
<el-input
v-model="queryParams.description"
@ -17,32 +51,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="收费模式" prop="feeMode">
<el-select v-model="queryParams.feeMode" @change="handleQuery" clearable placeholder="请选择收费模式">
<el-option
v-for="dict in dict.type.suit_fee_mode"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="收费类型" prop="feeType">
<el-select v-model="queryParams.feeType" @change="handleQuery" clearable placeholder="请选择收费类型">
<el-option
v-for="dict in dict.type.suit_fee_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="是否启用" prop="enabled">
<el-select v-model="queryParams.enabled" @change="handleQuery" clearable placeholder="请选择是否启用">
<el-option :value="true" label="已启用"/>
<el-option :value="false" label="未启用"/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>

View File

@ -81,7 +81,7 @@
<!-- {{d.row.serviceRate | money}} {{serviceUnit(d.row.serviceType)}}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="渠道成本" align="center" prop="costRate">
<el-table-column label="渠道成本" align="center" prop="costRate" v-if="showChannelCost">
<template slot-scope="d">{{d.row.costRate | money}} %</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@ -136,7 +136,7 @@
<!-- </template>-->
<!-- </el-input>-->
<!-- </form-col>-->
<form-col :span="span" label="渠道成本" prop="costRate">
<form-col :span="span" label="渠道成本" prop="costRate" v-if="showChannelCost">
<el-input v-model.number="form.costRate" placeholder="请输入充值成本率" :min="0">
<template #suffix>%</template>
</el-input>
@ -153,13 +153,23 @@
<script>
import { listChannel, getChannel, delChannel, addChannel, updateChannel } from "@/api/system/channel";
import { $serviceType, $withdrawServiceType } from '@/utils/mixins'
import { ROOT_DEPT } from '@/utils/constants'
import { mapGetters } from 'vuex'
export default {
name: "Channel",
mixins: [$serviceType, $withdrawServiceType],
dicts: ['withdraw_service_type', 'service_type'],
computed: {
...mapGetters(['deptId']),
//
showChannelCost() {
return this.deptId === ROOT_DEPT;
}
},
data() {
return {
ROOT_DEPT,
span: 24,
//
loading: true,

View File

@ -103,8 +103,8 @@
</el-table>
<!-- 添加或修改运营商对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="7em">
<el-row>
<el-col :span="24" v-if="form.parentId !== 0">
<el-form-item label="上级运营商" prop="parentId">
@ -121,7 +121,7 @@
</form-col>
<el-col :span="12">
<el-form-item label="显示排序" prop="orderNum">
<el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
<el-input-number v-model="form.orderNum" controls-position="right" :min="0" style="width: 100%"/>
</el-form-item>
</el-col>
<el-col :span="12">

View File

@ -113,7 +113,10 @@
<template #label>
<div style="display: flex">
<dict-tag :options="dict.type.bonus_arrival_type" :value="item.arrivalType" size="mini"/>
<div style="margin-left: 0.5em">{{item.arrivalName}}</div>
<div style="margin-left: 0.5em">
<user-link v-if="BonusArrivalType.userList().includes(item.arrivalType)" :id="item.arrivalId" :name="item.arrivalName" />
<template v-else>{{item.arrivalName}}</template>
</div>
</div>
</template>
{{item.point | money | defaultValue}} %
@ -176,7 +179,7 @@ import Recharge from '@/views/system/recharge/index.vue'
import { isEmpty } from '@/utils'
import hasPermi from '@/directive/permission/hasPermi'
import { checkPermi } from '@/utils/permission'
import { FieldName } from '@/utils/constants'
import { BonusArrivalType, FieldName } from '@/utils/constants'
export default {
name: 'Device/:deviceId',
@ -212,6 +215,9 @@ export default {
}
},
computed: {
BonusArrivalType() {
return BonusArrivalType
},
FieldName() {
return FieldName
},

View File

@ -33,10 +33,26 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户名称" prop="userName">
<el-form-item :label="FieldName.AGENT" prop="agentName">
<el-input
v-model="queryParams.agentName"
:placeholder="`请输入${FieldName.AGENT}名称`"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="FieldName.BIZ" prop="bizManName">
<el-input
v-model="queryParams.bizManName"
:placeholder="`请输入${FieldName.BIZ}名称`"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="FieldName.INVESTOR" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入所属用户名称"
:placeholder="`请输入${FieldName.INVESTOR}名称`"
clearable
@keyup.enter.native="handleQuery"
/>
@ -113,17 +129,17 @@
v-hasPermi="['system:device:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-edit"
size="mini"
@click="handleBatchModel"
:disabled="multiple"
v-hasPermi="['system:device:edit']"
>批量修改型号</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- @click="handleBatchModel"-->
<!-- :disabled="multiple"-->
<!-- v-hasPermi="['system:device:edit']"-->
<!-- >批量修改型号</el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -173,7 +189,7 @@
<dict-tag :options="dict.type.sm_device_status" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column :label="FieldName.INVESTOR" align="center" prop="agentName" >
<el-table-column :label="FieldName.AGENT" align="center" prop="agentName" >
<user-link slot-scope="d" :id="d.row.agentId" :name="d.row.agentName"/>
</el-table-column>
<el-table-column :label="FieldName.BIZ" align="center" prop="bizManName" >

View File

@ -79,7 +79,10 @@
<line-field v-for="item of bonusList" :key="item.id">
<template #label>
<dict-tag :value="item.arrivalType" :options="dict.type.bonus_arrival_type" size="mini" style="margin-right: 0.5em"/>
{{item.arrivalName}}
<user-link v-if="BonusArrivalType.userList().includes(item.arrivalType)" :id="item.arrivalId" :name="item.arrivalName" />
<template v-else>{{item.arrivalName}}</template>
({{item.point | money | defaultValue}}%)
</template>
<div>
@ -99,7 +102,7 @@ import Refund from '@/views/ss/refund/index.vue'
import { findLabel } from '@/utils'
import DeviceLink from '@/components/Business/Device/DeviceLink.vue'
import UserLink from '@/components/Business/SmUser/UserLink.vue'
import { FieldName, SuitFeeType, views } from '@/utils/constants'
import { BonusArrivalType, FieldName, SuitFeeType, views } from '@/utils/constants'
import PayBill from '@/views/ss/payBill/index.vue'
import StoreLink from '@/components/Business/Store/StoreLink.vue'
import Bonus from '@/views/ss/bonus/index.vue'
@ -112,6 +115,9 @@ export default {
components: { LineField, Bonus, StoreLink, PayBill, UserLink, DeviceLink, Refund },
dicts: ['channel_type','sm_transaction_bill_status', 'sm_transaction_bill_device_recharge_status', 'time_unit', 'suit_fee_mode', 'suit_fee_type', 'bonus_status', 'bonus_arrival_type'],
computed: {
BonusArrivalType() {
return BonusArrivalType
},
FieldName() {
return FieldName
},

View File

@ -113,7 +113,7 @@
<!-- {{d.row.serviceCharge | money | defaultValue}} -->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="渠道成本" align="center">
<el-table-column label="渠道成本" align="center" v-if="deptId === ROOT_DEPT">
<template slot-scope="d">
{{d.row.channelCost | money}}
</template>
@ -222,9 +222,10 @@ import {
import UserLink from '@/components/Business/SmUser/UserLink.vue'
import DeviceLink from '@/components/Business/Device/DeviceLink.vue'
import RechargeLink from '@/components/Business/Transaction/RechargeLink.vue'
import { FieldName, SuitFeeType } from '@/utils/constants'
import { FieldName, ROOT_DEPT, SuitFeeType } from '@/utils/constants'
import { $view } from '@/utils/mixins'
import StoreLink from '@/components/Business/Store/StoreLink.vue'
import { mapGetters } from 'vuex'
export default {
name: "Recharge",
@ -241,6 +242,7 @@ export default {
},
data() {
return {
ROOT_DEPT,
//
loading: true,
//
@ -284,6 +286,7 @@ export default {
};
},
computed: {
...mapGetters(['deptId']),
FieldName() {
return FieldName
},

View File

@ -8,7 +8,7 @@
<div class="user-header">
<el-avatar :size="64" :src="userData.avatar"></el-avatar>
<el-row type="flex" class="name-box">
<span class="user-name">{{userData.userName}}</span>
<span class="user-name">{{userData.realOrUserName}}</span>
</el-row>
<div class="phone-number">{{userData.phonenumber}}</div>
</div>

View File

@ -1,9 +1,9 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户名" prop="name">
<el-form-item label="用户名" prop="realOrUserName">
<el-input
v-model="queryParams.name"
v-model="queryParams.realOrUserName"
placeholder="请输入用户名"
clearable
@keyup.enter.native="handleQuery"
@ -101,16 +101,13 @@
<user-link :id="d.row.userId" :name="d.row.phonenumber"/>
</template>
<template v-else-if="column.key === 'userName'">
<user-link :id="d.row.userId" :name="d.row.userName"/>
<template v-if="d.row.isReal">({{d.row.realName}})</template>
<user-link :id="d.row.userId" :name="d.row.realOrUserName"/>
</template>
<template v-else-if="column.key === 'referenceId'">
<user-link :id="d.row.referenceId" :name="d.row.referenceName"/>
<template v-if="d.row.referenceIsReal">({{d.row.referenceRealName}})</template>
</template>
<template v-else-if="column.key === 'agentId'">
<user-link :id="d.row.agentId" :name="d.row.agentName"/>
<template v-if="d.row.agentIsReal">({{d.row.agentRealName}})</template>
</template>
<template v-else-if="column.key === 'point'">
{{d.row.point | money | defaultValue}} %

View File

@ -10,7 +10,6 @@
<el-descriptions-item label="申请用户">
<dict-tag :value="detail.userType" :options="dict.type.user_type" size="mini"/>
<user-link :id="detail.userId" :name="detail.userName"/>
<template v-if="detail.userIsReal">{{detail.userRealName | defaultValue}}</template>
</el-descriptions-item>
<el-descriptions-item label="申请时间">{{detail.createTime | defaultValue}}</el-descriptions-item>
<el-descriptions-item label="提现方式">

View File

@ -79,7 +79,6 @@
<el-table-column label="申请用户" align="center" prop="userName" width="160">
<template slot-scope="d">
<user-link :id="d.row.userId" :name="d.row.userName"/>
<div v-if="d.row.userIsReal">{{d.row.userRealName | defaultValue}}</div>
</template>
</el-table-column>
<el-table-column label="用户角色" align="center">
@ -104,7 +103,7 @@
{{d.row.serviceCharge | money}}
</template>
</el-table-column>
<el-table-column label="渠道成本" align="center" min-width="100">
<el-table-column label="渠道成本" align="center" min-width="100" v-if="deptId === ROOT_DEPT">
<template slot-scope="d">
{{d.row.channelCost | money}}
</template>
@ -175,13 +174,21 @@ import {
} from "@/api/system/withdraw";
import UserLink from '@/components/Business/SmUser/UserLink.vue'
import WithdrawDetail from '@/views/system/withdraw/detail.vue'
import { mapGetters } from 'vuex'
import { ROOT_DEPT } from '@/utils/constants'
import { $showColumns } from '@/utils/mixins'
export default {
name: "Bill",
mixins: [$showColumns],
components: { WithdrawDetail, UserLink },
dicts: ['withdraw_status', 'withdraw_type', 'user_type'],
computed: {
...mapGetters(['deptId']),
},
data() {
return {
ROOT_DEPT,
showDetail: false,
row: {},
//