fix:1,修改
parent
f962d2af4a
commit
609cc7b1b8
|
|
@ -32,5 +32,12 @@ export function superAgentCommissionSum(query) {
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
//审计
|
||||||
|
export function superAgentQuotaAudit(data) {
|
||||||
|
return request({
|
||||||
|
url: '/super/agent/quota/flow/audit/audit',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -189,3 +189,46 @@ export function getSuperTenantWhiteList(query) {
|
||||||
method: 'delete',
|
method: 'delete',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 审计
|
||||||
|
export function superTenantQuotaAudit(data) {
|
||||||
|
return request({
|
||||||
|
url: '/super/tenant/quota/audit',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//流水列表
|
||||||
|
export function getSuperTenantQuotaFlowAuditList(query) {
|
||||||
|
return request({
|
||||||
|
url: '/super/tenant/quota/flow/audit/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//流水操作类型
|
||||||
|
export function getSuperCommonOperationType(query) {
|
||||||
|
return request({
|
||||||
|
url: '/super/common/operation/type',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//代理审计流水列表
|
||||||
|
export function getSuperAgentQuotaFlowAuditList(query) {
|
||||||
|
return request({
|
||||||
|
url: '/super/agent/quota/flow/audit/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//佣金类型
|
||||||
|
export function getSuperCommonAgentCommissionType(query) {
|
||||||
|
return request({
|
||||||
|
url: '/super/common/agent/commission/type',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,102 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<template v-for="(item, index) in options">
|
||||||
|
<template v-if="values.includes(item.value)">
|
||||||
|
<span :key="item.value" :index="index"
|
||||||
|
:class="!item.elTagClass && colorValues.length ? colorValues[item.value - 1] : item.elTagClass">{{ item.label.toString()
|
||||||
|
}}</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-if="unmatch && showValue &&isShow"> <!-- 显示未匹配的项 -->
|
||||||
|
{{ unmatchArray | handleArray }}
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<slot></slot>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
// 调用翻译函数
|
||||||
|
|
||||||
|
// 记录未匹配的项
|
||||||
|
const unmatchArray = ref([]);
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
// 当前的值
|
||||||
|
value: [Number, String, Array],
|
||||||
|
// 当未找到匹配的数据时,显示value
|
||||||
|
showValue: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true,
|
||||||
|
},
|
||||||
|
isShow:{ // 是否显示
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
separator: {
|
||||||
|
type: String,
|
||||||
|
default: ",",
|
||||||
|
},
|
||||||
|
optionsArr: { // 传数组不传dictKey
|
||||||
|
type: Array,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
dictKey: {
|
||||||
|
type: String,
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
colorValues: {
|
||||||
|
type: Array,
|
||||||
|
default: [],
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const values = computed(() => {
|
||||||
|
if (props.value === null || typeof props.value === 'undefined' || props.value === '') return [];
|
||||||
|
return Array.isArray(props.value) ? props.value.map(item => '' + item) : String(props.value).split(props.separator);
|
||||||
|
});
|
||||||
|
const unmatch = computed(() => {
|
||||||
|
unmatchArray.value = [];
|
||||||
|
// 没有value不显示
|
||||||
|
if (props.value === null || typeof props.value === 'undefined' || props.value === '' || options.value.length === 0) return false
|
||||||
|
// 传入值为数组
|
||||||
|
let unmatch = false // 添加一个标志来判断是否有未匹配项
|
||||||
|
values.value.forEach(item => {
|
||||||
|
if (!options.value.some(v => v.value === item)) {
|
||||||
|
unmatchArray.value.push(item)
|
||||||
|
unmatch = true // 如果有未匹配项,将标志设置为true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return unmatch // 返回标志的值
|
||||||
|
});
|
||||||
|
|
||||||
|
function handleArray(array) {
|
||||||
|
if (array.length === 0) return "";
|
||||||
|
return array.reduce((pre, cur) => {
|
||||||
|
return pre + " " + cur;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const options = ref([])
|
||||||
|
const initOptions = async () => {
|
||||||
|
if (props.optionsArr.length) {
|
||||||
|
options.value = props.optionsArr
|
||||||
|
return
|
||||||
|
}else if (props.dictKey) {
|
||||||
|
options.value = await proxy.useDict(props.dictKey)[props.dictKey]
|
||||||
|
// options.value.map(async (item) => {
|
||||||
|
// item.label = await getTranslations({label:item.label})?.label || item.label;
|
||||||
|
// })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onMounted( async() => {
|
||||||
|
initOptions();
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.el-tag+.el-tag {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,189 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<table-search-card :model="queryParams" @getList="getList" @handleQuery="handleQuery" @resetQuery="resetQuery">
|
||||||
|
<template #left>
|
||||||
|
<table-search-date ref="searchDateRef" @dateChange="handleQuery" v-model:dateRange="dateRange" v-model:operateTimeType="operateTimeType"></table-search-date>
|
||||||
|
<select-input-form ref="selectInputFormRef" :queryParamsList="queryParamsList" :queryParams="queryParams"></select-input-form>
|
||||||
|
<el-form-item :label="t('佣金类型')" prop="commissionType">
|
||||||
|
<el-select v-if="commissionTypeOption.length > 0" v-model="queryParams.commissionType" clearable style="width:220px;" :placeholder="t('请选择')">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in commissionTypeOption"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</template>
|
||||||
|
<template #right>
|
||||||
|
</template>
|
||||||
|
</table-search-card>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="commissionList" stripe border class="c-table-main" height="672px">
|
||||||
|
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
||||||
|
<el-table-column :label="t('代理账号')" align="center" prop="agentAccount" min-width="120px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.agentAccount }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('流水ID')" align="center" prop="agentQuotaFlowId" min-width="120px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.agentQuotaFlowId }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('操作类型')" align="center" min-width="90px">
|
||||||
|
<template #default="{row}">
|
||||||
|
<dict-text :value="row.commissionType" :optionsArr="commissionTypeOption"></dict-text>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column :label="t('审计时间')" align="center" prop="createTime" min-width="130px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ parseTime(row.createTime) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('游戏额度之前')" align="center" prop="balanceBefore" min-width="130px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.balanceBefore == null ? '--' : row.balanceBefore }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('游戏额度')" align="center" prop="balance" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.balance == null ? '--' : row.balance }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('游戏额度之后')" align="center" prop="balanceAfter" min-width="130px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.balanceAfter == null ? '--' : row.balanceAfter }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('租户支付金额')" align="center" prop="payAmount" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.payAmount }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('审计订单ID')" align="center" prop="auditOrderId" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.auditOrderId }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('系统订单ID')" align="center" prop="orderId" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.orderId }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('佣金比例(%)')" align="center" prop="profitRatio" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.profitRatio }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<pagination
|
||||||
|
v-show="total > 0"
|
||||||
|
:total="total"
|
||||||
|
v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
<!-- 添加或修改定时任务对话框 -->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup name="Commission">
|
||||||
|
import { getSuperAgentQuotaFlowAuditList,getSuperCommonAgentCommissionType } from "@/api/super/tenant";
|
||||||
|
import TableSearchDate from '@/components/TableSearchDate'
|
||||||
|
import DictText from '@/components/DictText'
|
||||||
|
import SelectInputForm from '@/components/SelectInputForm';
|
||||||
|
import Crontab from '@/components/Crontab'
|
||||||
|
import { parseTime } from '@/utils/ruoyi'; // 时间格式化
|
||||||
|
const router = useRouter();
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const commissionList = ref([]);
|
||||||
|
const loading = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
const data = reactive({
|
||||||
|
form: {},
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
tenantKey: "",
|
||||||
|
searchType:'agentAccount'
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const queryParamsList = reactive([{
|
||||||
|
label: proxy.t('代理账户'),
|
||||||
|
value: 'agentAccount',
|
||||||
|
},{ //查询条件选择
|
||||||
|
label: proxy.t('流水ID'),
|
||||||
|
value: 'agentQuotaFlowId',
|
||||||
|
},{ //查询条件选择
|
||||||
|
label: proxy.t('审计订单ID'),
|
||||||
|
value: 'auditAndOrderId',
|
||||||
|
}])
|
||||||
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
const dateRange = ref([]),operateTimeType = ref("day");
|
||||||
|
/** 查询列表 */
|
||||||
|
function getList() {
|
||||||
|
loading.value = true;
|
||||||
|
getSuperAgentQuotaFlowAuditList(proxy.addDateRange(queryParams.value, dateRange.value)).then(response => {
|
||||||
|
commissionList.value = response.rows
|
||||||
|
total.value = response.total;
|
||||||
|
loading.value = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
function handleQuery() {
|
||||||
|
queryParams.value.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
const searchDateRef = ref(null);
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
function resetQuery() {
|
||||||
|
dateRange.value = [];
|
||||||
|
operateTimeType.value = "day";
|
||||||
|
searchDateRef.value.timeTypeChange(operateTimeType.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
const commissionTypeOption = ref([]);
|
||||||
|
const getSuperCommonAgentCommissionTypes = () => {
|
||||||
|
getSuperCommonAgentCommissionType({}).then(response => {
|
||||||
|
commissionTypeOption.value = response.data.map(item => {
|
||||||
|
return { label: item.name, value: `${item.code}` }
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 初始化
|
||||||
|
onMounted(() => {
|
||||||
|
getList();
|
||||||
|
getSuperCommonAgentCommissionTypes();
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.label-scoreRatio{
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
span{
|
||||||
|
width: 120px;
|
||||||
|
text-align: right;
|
||||||
|
font-weight: 700;
|
||||||
|
padding-right: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scoreRatioTable{
|
||||||
|
width: calc(100% - 120px);
|
||||||
|
margin-left: 120px;
|
||||||
|
}
|
||||||
|
.flooter {
|
||||||
|
.el-tag{
|
||||||
|
margin: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,204 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<table-search-card :model="queryParams" @getList="getList" @handleQuery="handleQuery" @resetQuery="resetQuery">
|
||||||
|
<template #left>
|
||||||
|
<table-search-date ref="searchDateRef" v-model:dateRange="dateRange" @dateChange="handleQuery" v-model:operateTimeType="operateTimeType"></table-search-date>
|
||||||
|
<select-input-form ref="selectInputFormRef" :queryParamsList="queryParamsList" :queryParams="queryParams"></select-input-form>
|
||||||
|
<!-- <el-form-item :label="t('操作类型')" prop="operationType">
|
||||||
|
<el-select v-if="operationTypeOption.length > 0" v-model="queryParams.operationType" clearable style="width:220px;" :placeholder="t('请选择')">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in operationTypeOption"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item> -->
|
||||||
|
</template>
|
||||||
|
<template #right>
|
||||||
|
</template>
|
||||||
|
</table-search-card>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="commissionList" stripe border class="c-table-main" height="672px">
|
||||||
|
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
||||||
|
<el-table-column :label="t('商户账号')" align="center" prop="tenantKey" min-width="120px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.tenantKey }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('流水ID')" align="center" prop="gameQuotaFlowId" min-width="120px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.gameQuotaFlowId }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('操作类型')" align="center" min-width="120px">
|
||||||
|
<template #default="{row}">
|
||||||
|
<dict-text :value="row.operationType" :optionsArr="operationTypeOption"></dict-text>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('审计时间')" align="center" prop="createTime" min-width="130px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ parseTime(row.createTime) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('游戏额度之前')" align="center" prop="gameQuotaFlowId" min-width="130px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.balanceBefore }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('游戏额度')" align="center" prop="balance" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.balance }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('游戏额度之后')" align="center" prop="balanceAfter" min-width="130px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.balanceAfter }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('支付金额')" align="center" prop="payAmount" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.payAmount }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('审计订单ID')" align="center" prop="auditOrderId" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.auditOrderId }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('系统订单ID')" align="center" prop="orderId" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.orderId }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('买分比例(%)')" align="center" prop="scoreRatio" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.scoreRatio }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('汇率')" align="center" prop="exchangeRate" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.exchangeRate }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('代理商利润')" align="center" prop="agentProfit" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.agentProfit }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('平台利润')" align="center" prop="platformProfit" min-width="100px">
|
||||||
|
<template #default="{row}">
|
||||||
|
{{ row.platformProfit }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<pagination
|
||||||
|
v-show="total > 0"
|
||||||
|
:total="total"
|
||||||
|
v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
<!-- 添加或修改定时任务对话框 -->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup name="Commission">
|
||||||
|
import { getSuperTenantQuotaFlowAuditList,getSuperCommonOperationType } from "@/api/super/tenant";
|
||||||
|
import TableSearchDate from '@/components/TableSearchDate'
|
||||||
|
import DictText from '@/components/DictText'
|
||||||
|
import SelectInputForm from '@/components/SelectInputForm';
|
||||||
|
import Crontab from '@/components/Crontab'
|
||||||
|
import { parseTime } from '@/utils/ruoyi'; // 时间格式化
|
||||||
|
const router = useRouter();
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const commissionList = ref([]);
|
||||||
|
const loading = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
const data = reactive({
|
||||||
|
form: {},
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
tenantKey: "",
|
||||||
|
searchType:'tenantKey'
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const queryParamsList = reactive([{
|
||||||
|
label: proxy.t('商户账号'),
|
||||||
|
value: 'tenantKey',
|
||||||
|
},{ //查询条件选择
|
||||||
|
label: proxy.t('流水ID'),
|
||||||
|
value: 'gameQuotaFlowId',
|
||||||
|
},{ //查询条件选择
|
||||||
|
label: proxy.t('审计订单ID'),
|
||||||
|
value: 'auditAndOrderId',
|
||||||
|
}])
|
||||||
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
const dateRange = ref([]),operateTimeType = ref("day");
|
||||||
|
/** 查询列表 */
|
||||||
|
function getList() {
|
||||||
|
loading.value = true;
|
||||||
|
getSuperTenantQuotaFlowAuditList(proxy.addDateRange(queryParams.value, dateRange.value)).then(response => {
|
||||||
|
commissionList.value = response.rows
|
||||||
|
total.value = response.total;
|
||||||
|
loading.value = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
function handleQuery() {
|
||||||
|
queryParams.value.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
const searchDateRef = ref(null);
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
function resetQuery() {
|
||||||
|
dateRange.value = [];
|
||||||
|
operateTimeType.value = "day";
|
||||||
|
searchDateRef.value.timeTypeChange(operateTimeType.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
const operationTypeOption = ref([]);
|
||||||
|
const getSuperCommonOperationTypes = () => {
|
||||||
|
getSuperCommonOperationType({}).then(response => {
|
||||||
|
operationTypeOption.value = response.data.map(item => {
|
||||||
|
return { label: item.name, value: `${item.code}` }
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 初始化
|
||||||
|
onMounted(() => {
|
||||||
|
getList();
|
||||||
|
getSuperCommonOperationTypes();
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.label-scoreRatio{
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
span{
|
||||||
|
width: 120px;
|
||||||
|
text-align: right;
|
||||||
|
font-weight: 700;
|
||||||
|
padding-right: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scoreRatioTable{
|
||||||
|
width: calc(100% - 120px);
|
||||||
|
margin-left: 120px;
|
||||||
|
}
|
||||||
|
.flooter {
|
||||||
|
.el-tag{
|
||||||
|
margin: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
@ -61,6 +61,17 @@
|
||||||
<el-table-column :label="t('时间')" align="center" prop="createTime" :show-overflow-tooltip="true">
|
<el-table-column :label="t('时间')" align="center" prop="createTime" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">{{ parseTime(scope.row.createTime) }}</template>
|
<template #default="scope">{{ parseTime(scope.row.createTime) }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('操作')" align="center" min-width="110px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
v-if="row.auditStatus == 0"
|
||||||
|
v-hasPermi="['super:agent:flow:audit']"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleAudit(row)"
|
||||||
|
>{{ t('审计') }}</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total > 0"
|
v-show="total > 0"
|
||||||
|
|
@ -131,7 +142,7 @@
|
||||||
|
|
||||||
<script setup name="Commission">
|
<script setup name="Commission">
|
||||||
import { listCommission,getCommissionInfo,updateAgentCommission } from "@/api/commission";
|
import { listCommission,getCommissionInfo,updateAgentCommission } from "@/api/commission";
|
||||||
import { superAgentCommissionList,superAgentCommissionSum } from "@/api/super/commissionList";
|
import { superAgentCommissionList,superAgentCommissionSum,superAgentQuotaAudit } from "@/api/super/commissionList";
|
||||||
import TableSearchDate from '@/components/TableSearchDate'
|
import TableSearchDate from '@/components/TableSearchDate'
|
||||||
import Crontab from '@/components/Crontab'
|
import Crontab from '@/components/Crontab'
|
||||||
import { parseTime } from '@/utils/ruoyi'; // 时间格式化
|
import { parseTime } from '@/utils/ruoyi'; // 时间格式化
|
||||||
|
|
@ -263,6 +274,20 @@ function queryCode(type) {
|
||||||
return item
|
return item
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
//审计
|
||||||
|
const handleAudit = (row) => {
|
||||||
|
proxy.$modal.confirm(proxy.t('是否审计?')).then(() => {
|
||||||
|
|
||||||
|
loading.value = true;
|
||||||
|
superAgentQuotaAudit({id:row.id}).then(res => {
|
||||||
|
loading.value = false;
|
||||||
|
proxy.$modal.msgSuccess(proxy.t('审计成功!'));
|
||||||
|
handleQuery();
|
||||||
|
}).catch(() => {
|
||||||
|
loading.value = false;
|
||||||
|
});
|
||||||
|
}).catch(() => { });
|
||||||
|
}
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
function submitForm() {
|
function submitForm() {
|
||||||
proxy.$refs["agentRef"].validate(valid => {
|
proxy.$refs["agentRef"].validate(valid => {
|
||||||
|
|
|
||||||
|
|
@ -66,35 +66,35 @@
|
||||||
title: proxy.t('总商户统计'),
|
title: proxy.t('总商户统计'),
|
||||||
value: props?.cardData?.totalTenants||0,
|
value: props?.cardData?.totalTenants||0,
|
||||||
percentage: '',
|
percentage: '',
|
||||||
subtitle: proxy.t('会员总数')+`<a href="#" class="link" data-type="totalCharge" >${(props?.cardData?.totalMembers||0)}</a>`+proxy.t('人')
|
subtitle: proxy.t('会员总数')+`<a class="link" data-type="totalCharge" >${(props?.cardData?.totalMembers||0)}</a>`+proxy.t('人')
|
||||||
+' '+proxy.t('商户总数')+`<a href="#" class="link" data-type="totalAgent" >${(props?.cardData?.totalTenants||0)}</a>`
|
+' '+proxy.t('商户总数')+`<a class="link" data-type="totalAgent" >${(props?.cardData?.totalTenants||0)}</a>`
|
||||||
+' '+proxy.t('代理总数')+`<a href="#" class="link" data-type="totalBigR">${props?.cardData?.totalAgents||0}</a>`,
|
+' '+proxy.t('代理总数')+`<a class="link" data-type="totalBigR">${props?.cardData?.totalAgents||0}</a>`,
|
||||||
cardClass: 'blue',
|
cardClass: 'blue',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: proxy.t('商户充值总额'),
|
title: proxy.t('商户充值总额'),
|
||||||
value: `${props?.cardData?.totalRecharge ||0}(U)`,
|
value: `${props?.cardData?.totalRecharge ||0}(U)`,
|
||||||
percentage: '',
|
percentage: '',
|
||||||
subtitle: proxy.t('今日充值总额')+`<a href="#" class="link" data-type="differenceRecharge" >${(props?.cardData?.totalRecharge||0)}</a>`
|
subtitle: proxy.t('今日充值总额')+`<a class="link" data-type="differenceRecharge" >${(props?.cardData?.totalRecharge||0)}</a>`
|
||||||
+' '+proxy.t('今日充值人数')+`<a href="#" class="link" data-type="differenceWithdrawal" >${(props?.cardData?.totalRechargeUsers||0)}</a>`+proxy.t('人')
|
+' '+proxy.t('今日充值人数')+`<a class="link" data-type="differenceWithdrawal1" >${(props?.cardData?.totalRechargeUsers||0)}</a>`+proxy.t('人')
|
||||||
+' '+proxy.t('今日提现总额')+`<a href="#" class="link" data-type="differenceWithdrawal" >${(props?.cardData?.totalWithdrawal||0)}</a>`
|
+' '+proxy.t('今日提现总额')+`<a class="link" data-type="differenceWithdrawal2" >${(props?.cardData?.totalWithdrawal||0)}</a>`
|
||||||
+' '+proxy.t('今日提现人数')+`<a href="#" class="link" data-type="differenceWithdrawal" >${(props?.cardData?.totalWithdrawalUsers||0)}</a>`+proxy.t('人'),
|
+' '+proxy.t('今日提现人数')+`<a class="link" data-type="differenceWithdrawal3" >${(props?.cardData?.totalWithdrawalUsers||0)}</a>`+proxy.t('人'),
|
||||||
cardClass: 'pink',
|
cardClass: 'pink',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: proxy.t('投注金额/输赢金额'),
|
title: proxy.t('投注金额/输赢金额'),
|
||||||
value: `${props?.cardData?.totalBetAmount ||0}(U)/${props?.cardData?.totalProfitLoss ||0}(U)`,
|
value: `${props?.cardData?.totalBetAmount ||0}(U)/${props?.cardData?.totalProfitLoss ||0}(U)`,
|
||||||
percentage:'',
|
percentage:'',
|
||||||
subtitle: proxy.t('今日注单总数')+`<a href="#" class="link" data-type="betOnNoteOrder" >${(props?.cardData?.totalBets||0)}</a>`
|
subtitle: proxy.t('今日注单总数')+`<a class="link" data-type="betOnNoteOrder" >${(props?.cardData?.totalBets||0)}</a>`
|
||||||
+' '+proxy.t('今日杀率')+`<a href="#" class="link" data-type="betOnKillRate" >${(props?.cardData?.killRate||0)}%</a>`,
|
+' '+proxy.t('今日杀率')+`<a class="link" data-type="betOnKillRate" >${(props?.cardData?.killRate||0)}%</a>`,
|
||||||
cardClass: 'yellow',
|
cardClass: 'yellow',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: proxy.t('商户可用余额'),
|
title: proxy.t('商户可用余额'),
|
||||||
value: `${Number(props?.cardData?.currentBalance+props?.cardData?.platformBalance).toFixed(4) ||0}(U)`,
|
value: `${Number(props?.cardData?.currentBalance+props?.cardData?.platformBalance).toFixed(4) ||0}(U)`,
|
||||||
percentage: '',
|
percentage: '',
|
||||||
subtitle: proxy.t('当前商户可用余额')+`<a href="#" class="link" data-type="profitStock" >${(props?.cardData?.currentBalance||0)}</a>`+'(U)'
|
subtitle: proxy.t('当前商户可用余额')+`<a class="link" data-type="profitStock" >${(props?.cardData?.currentBalance||0)}</a>`+'(U)'
|
||||||
+' '+ proxy.t('当前商户平台余额')+`<a href="#" class="link" data-type="profitStock" >${(props?.cardData?.platformBalance||0)}</a>`+'(U)',
|
+' '+ proxy.t('当前商户平台余额')+`<a class="link" data-type="profitStock" >${(props?.cardData?.platformBalance||0)}</a>`+'(U)',
|
||||||
cardClass: 'green',
|
cardClass: 'green',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -117,7 +117,28 @@
|
||||||
path = '/Merchant/businessInformation';
|
path = '/Merchant/businessInformation';
|
||||||
}else if (type == 'bigR') {
|
}else if (type == 'bigR') {
|
||||||
path = '/Agents/agentInformation';
|
path = '/Agents/agentInformation';
|
||||||
|
}else if (type == 'totalCharge') {
|
||||||
|
path = '/member';
|
||||||
|
}else if (type == 'totalAgent'){
|
||||||
|
path = '/Merchant/businessInformation';
|
||||||
|
}else if (type == 'totalBigR'){
|
||||||
|
path = '/Agents/agentInformation';
|
||||||
|
}else if (type == 'differenceRecharge'){
|
||||||
|
path = '/Finance/prepaymentRecord';
|
||||||
|
}else if (type == 'differenceWithdrawal1'){
|
||||||
|
path = '/Finance/prepaymentRecord';
|
||||||
|
}else if (type == 'differenceWithdrawal2'){
|
||||||
|
path = '/CommissionList/agentCommissionReport';
|
||||||
|
}else if (type == 'differenceWithdrawal3') {
|
||||||
|
path = '/CommissionList/agentCommissionReport';
|
||||||
|
}else if (type == 'betOnNoteOrder'){
|
||||||
|
path = '/gameRecords';
|
||||||
|
}else if (type == 'betOnKillRate'){
|
||||||
|
path = '/gameRecords';
|
||||||
|
}else if (type == 'profitStock'){
|
||||||
|
path = '/Merchant/businessInformation';
|
||||||
}
|
}
|
||||||
|
|
||||||
proxy.$router.push({
|
proxy.$router.push({
|
||||||
path: path,
|
path: path,
|
||||||
query: {
|
query: {
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
<el-form-item prop="dateRange">
|
<el-form-item prop="dateRange">
|
||||||
<el-date-picker v-model="dateRange" :shortcuts="shortcuts" :style="`width: ${dateType == 'datetimerange' ? '380px' : '250px'}`"
|
<el-date-picker v-model="dateRange" :shortcuts="shortcuts" :style="`width: ${dateType == 'datetimerange' ? '380px' : '250px'}`"
|
||||||
:editable="false" :disabledDate="disabledDate" :type="dateType" :start-placeholder="t('开始时间')"
|
:editable="false" :disabledDate="disabledDate" :type="dateType" :start-placeholder="t('开始时间')"
|
||||||
:end-placeholder="t('结束时间')" :format="formatType" value-format="YYYY-MM-DD HH:mm:ss" @change="dateRangeChange"
|
:end-placeholder="t('结束时间')" :format="formatType" value-format="YYYY-MM-DD" @change="dateRangeChange"
|
||||||
:clearable="clearable" />
|
:clearable="clearable" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -31,7 +31,7 @@ const props = defineProps({
|
||||||
});
|
});
|
||||||
|
|
||||||
const operateTimeType = defineModel('operateTimeType'), dateRange = defineModel('dateRange');
|
const operateTimeType = defineModel('operateTimeType'), dateRange = defineModel('dateRange');
|
||||||
const formatType = 'YYYY-MM-DD HH:mm:ss'; // 时间格式
|
const formatType = 'YYYY-MM-DD'; // 时间格式
|
||||||
const emits = defineEmits(['dateChange']);
|
const emits = defineEmits(['dateChange']);
|
||||||
const isFirst = ref(true); // 是否第一次加载
|
const isFirst = ref(true); // 是否第一次加载
|
||||||
|
|
||||||
|
|
@ -54,8 +54,8 @@ const timeTypeChange = (val) => {
|
||||||
break
|
break
|
||||||
case 'week':
|
case 'week':
|
||||||
dateRange.value = [
|
dateRange.value = [
|
||||||
dayjs().subtract(6, 'day').startOf('day').format('YYYY-MM-DD HH:mm:ss'),
|
dayjs().subtract(6, 'day').startOf('day').format('YYYY-MM-DD'),
|
||||||
dayjs().endOf('day').format('YYYY-MM-DD HH:mm:ss.SSS')
|
dayjs().endOf('day').format('YYYY-MM-DD')
|
||||||
]
|
]
|
||||||
break
|
break
|
||||||
case 'month':
|
case 'month':
|
||||||
|
|
@ -151,8 +151,8 @@ const dateRangeChange = (dataValue) => {
|
||||||
|
|
||||||
start.setHours(0, 0, 0); // 设置开始时间为当天的00:00:00点
|
start.setHours(0, 0, 0); // 设置开始时间为当天的00:00:00点
|
||||||
end.setHours(23, 59, 59,999); // 设置结束时间为当天的23:59:59
|
end.setHours(23, 59, 59,999); // 设置结束时间为当天的23:59:59
|
||||||
dateRange.value[0] = dayjs(start).format('YYYY-MM-DD HH:mm:ss');
|
dateRange.value[0] = dayjs(start).format('YYYY-MM-DD');
|
||||||
dateRange.value[1] = dayjs(end).format('YYYY-MM-DD HH:mm:ss.SSS');
|
dateRange.value[1] = dayjs(end).format('YYYY-MM-DD');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 初始化时不触发父组件的查询
|
// 初始化时不触发父组件的查询
|
||||||
|
|
@ -163,7 +163,7 @@ const dateRangeChange = (dataValue) => {
|
||||||
|
|
||||||
// 生成日期区间
|
// 生成日期区间
|
||||||
const getTimeFn = (startTime) => {
|
const getTimeFn = (startTime) => {
|
||||||
return [startTime.format('YYYY-MM-DD HH:mm:ss'), dayjs().endOf('day').format('YYYY-MM-DD HH:mm:ss.SSS')];
|
return [startTime.format('YYYY-MM-DD'), dayjs().endOf('day').format('YYYY-MM-DD')];
|
||||||
}
|
}
|
||||||
|
|
||||||
// 父组件重置
|
// 父组件重置
|
||||||
|
|
|
||||||
|
|
@ -236,10 +236,10 @@ import { el } from 'element-plus/es/locales.mjs';
|
||||||
loadings.value = false;
|
loadings.value = false;
|
||||||
let obj = {
|
let obj = {
|
||||||
operationType:tabPosition.value,
|
operationType:tabPosition.value,
|
||||||
timeZone:timeZones,
|
// timeZone:timeZones,
|
||||||
currencyCodes:props.currencyType,
|
// currencyCodes:props.currencyType,
|
||||||
startTime:finalTimestamp(dateRange.value[0]),
|
startTime:dateRange.value[0],
|
||||||
endTime:finalTimestamp(dateRange.value[1]),
|
endTime:dateRange.value[1],
|
||||||
}
|
}
|
||||||
homeOperationList(obj).then(res => {
|
homeOperationList(obj).then(res => {
|
||||||
loadings.value = true;
|
loadings.value = true;
|
||||||
|
|
|
||||||
|
|
@ -26,10 +26,10 @@
|
||||||
|
|
||||||
<el-table v-loading="loading" class="c-table-main" :data="agentList" border>
|
<el-table v-loading="loading" class="c-table-main" :data="agentList" border>
|
||||||
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
||||||
<el-table-column :label="t('订单号')" width="160" align="center" prop="orderId" :show-overflow-tooltip="true" />
|
<el-table-column :label="t('订单号')" min-width="160" align="center" prop="orderId" />
|
||||||
<el-table-column :label="t('商户账号')" align="center" prop="tenantKey" min-width="150" />
|
<el-table-column :label="t('商户账号')" align="center" prop="tenantKey" min-width="150" />
|
||||||
<!-- <el-table-column :label="t('前缀')" width="100" align="center" prop="tenantSn" /> -->
|
<!-- <el-table-column :label="t('前缀')" width="100" align="center" prop="tenantSn" /> -->
|
||||||
<el-table-column :label="t('平台币种')" align="center" prop="currencyCode" :show-overflow-tooltip="true" />
|
<el-table-column :label="t('平台币种')" align="center" prop="currencyCode" />
|
||||||
<el-table-column :label="t('汇率')" width="100" align="center" prop="exchangeRate" >
|
<el-table-column :label="t('汇率')" width="100" align="center" prop="exchangeRate" >
|
||||||
<template #default="{row}">
|
<template #default="{row}">
|
||||||
<span v-if="row.exchangeRate">{{ row.exchangeRate }}</span>
|
<span v-if="row.exchangeRate">{{ row.exchangeRate }}</span>
|
||||||
|
|
@ -85,7 +85,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<pagination
|
<pagination
|
||||||
v-show="total > 0"
|
v-show="total > 0"
|
||||||
:total="total"
|
:total="total"
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,7 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="activeName == 'second'">
|
<div v-if="activeName == 'second'">
|
||||||
|
<el-form ref="agentRef" :model="formAll" :rules="rules" label-width="120px">
|
||||||
<div style="display: flex;width: 100%;margin-bottom: 25px;">
|
<div style="display: flex;width: 100%;margin-bottom: 25px;">
|
||||||
<div style="width: 120px;text-align: right;">商户ID:</div>
|
<div style="width: 120px;text-align: right;">商户ID:</div>
|
||||||
<div>{{ formAll.id }} <CopyIcon :colors="'#409EFF'" v-if="formAll.id" :text="String(formAll.id)"></CopyIcon></div>
|
<div>{{ formAll.id }} <CopyIcon :colors="'#409EFF'" v-if="formAll.id" :text="String(formAll.id)"></CopyIcon></div>
|
||||||
|
|
@ -106,6 +107,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
|
|
@ -336,7 +338,7 @@ const getsuperCommonPlatformTypeSelect = async () => {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
getSelectPlatform();
|
getSelectPlatform();
|
||||||
getSuperCommonCurrencySelect();
|
getSuperCommonCurrencySelect();
|
||||||
getsuperCommonPlatformTypeSelect();
|
// getsuperCommonPlatformTypeSelect();
|
||||||
})
|
})
|
||||||
|
|
||||||
// DEMO加载完成后
|
// DEMO加载完成后
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,11 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('币种')" align="center" prop="createTime" min-width="120">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.currencyCode || '--' }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column :label="t('余额')" min-width="160" align="center" >
|
<el-table-column :label="t('余额')" min-width="160" align="center" >
|
||||||
<template #default="{row}">
|
<template #default="{row}">
|
||||||
<div style="display: flex;justify-content: space-between;">
|
<div style="display: flex;justify-content: space-between;">
|
||||||
|
|
@ -457,7 +461,6 @@ const beforeSwitchChange = async (row, undateKeys) => {
|
||||||
}
|
}
|
||||||
updateSuperTenantResetPwd(objItem).then(res => {
|
updateSuperTenantResetPwd(objItem).then(res => {
|
||||||
handleCopy(res.data);
|
handleCopy(res.data);
|
||||||
getList();
|
|
||||||
openResetTiele.value = "账号信息";
|
openResetTiele.value = "账号信息";
|
||||||
openReset.value = true;
|
openReset.value = true;
|
||||||
ConnectionArr.value ={
|
ConnectionArr.value ={
|
||||||
|
|
@ -552,8 +555,8 @@ const handleAdjustment = (row) => {
|
||||||
const renewShow = ref(false);
|
const renewShow = ref(false);
|
||||||
const edit = (row) => {
|
const edit = (row) => {
|
||||||
reset();
|
reset();
|
||||||
getSelectPlatform();
|
// getSelectPlatform();
|
||||||
getSuperCommonCurrencySelect();
|
// getSuperCommonCurrencySelect();
|
||||||
getSuperTenant(row.id).then(response => {
|
getSuperTenant(row.id).then(response => {
|
||||||
renewShow.value = true;
|
renewShow.value = true;
|
||||||
title.value = proxy.t('修改商户');
|
title.value = proxy.t('修改商户');
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,16 @@
|
||||||
<el-form-item :label="t('游戏平台')" prop="platformCode">
|
<el-form-item :label="t('游戏平台')" prop="platformCode">
|
||||||
<CustomSelect v-if="showLoding3" v-model="queryParams.platformCode" :options="quotaplatformCodeArr" filterable placeholder="请选择平台" style="width: 200px" />
|
<CustomSelect v-if="showLoding3" v-model="queryParams.platformCode" :options="quotaplatformCodeArr" filterable placeholder="请选择平台" style="width: 200px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item :label="t('操作类型')" prop="operationType">
|
||||||
|
<el-select v-if="operationTypeOption.length > 0" v-model="queryParams.operationType" clearable style="width:220px;" :placeholder="t('请选择')">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in operationTypeOption"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<!-- <el-form-item :label="t('开始时间')" prop="params.beginTime">
|
<!-- <el-form-item :label="t('开始时间')" prop="params.beginTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="queryParams.params.beginTime"
|
v-model="queryParams.params.beginTime"
|
||||||
|
|
@ -198,6 +207,17 @@
|
||||||
<el-table-column :label="t('创建时间')" align="center" prop="createTime" width="200" :show-overflow-tooltip="true">
|
<el-table-column :label="t('创建时间')" align="center" prop="createTime" width="200" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">{{ parseTime(scope.row.createTime) }}</template>
|
<template #default="scope">{{ parseTime(scope.row.createTime) }}</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column :label="t('操作')" align="center" min-width="110px">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
v-if="row.auditStatus == 0"
|
||||||
|
v-hasPermi="['super:agent:flow:audit']"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleAudit(row)"
|
||||||
|
>{{ t('审计') }}</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- <el-table-column :label="t('操作')" align="center" width="200" class-name="small-padding fixed-width">
|
<!-- <el-table-column :label="t('操作')" align="center" width="200" class-name="small-padding fixed-width">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="primary" @click="handleView(scope.row)" v-hasPermi="['agent:tenant:view']">{{ t('详情') }}</el-button>
|
<el-button link type="primary" @click="handleView(scope.row)" v-hasPermi="['agent:tenant:view']">{{ t('详情') }}</el-button>
|
||||||
|
|
@ -216,7 +236,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="Agent">
|
<script setup name="Agent">
|
||||||
import { superTenantQuotaflow,superCommonPlatSelect } from "@/api/super/tenant";
|
import { superTenantQuotaflow,superCommonPlatSelect,superTenantQuotaAudit,getSuperCommonOperationType } from "@/api/super/tenant";
|
||||||
import Crontab from '@/components/Crontab'
|
import Crontab from '@/components/Crontab'
|
||||||
import { getLocalStorage } from "@/utils/auth";
|
import { getLocalStorage } from "@/utils/auth";
|
||||||
import CopyIcon from '@/components/CopyIcon'
|
import CopyIcon from '@/components/CopyIcon'
|
||||||
|
|
@ -374,7 +394,19 @@ const getsuperCommonPlatformTypeSelect = async () => {
|
||||||
// proxy.resetForm("queryRef");
|
// proxy.resetForm("queryRef");
|
||||||
handleQuery();
|
handleQuery();
|
||||||
}
|
}
|
||||||
|
//审计
|
||||||
|
const handleAudit = (row) => {
|
||||||
|
proxy.$modal.confirm(proxy.t('是否审计?')).then(() => {
|
||||||
|
loading.value = true;
|
||||||
|
superTenantQuotaAudit({id:row.id}).then(res => {
|
||||||
|
loading.value = false;
|
||||||
|
proxy.$modal.msgSuccess(proxy.t('审计成功!'));
|
||||||
|
handleQuery();
|
||||||
|
}).catch(() => {
|
||||||
|
loading.value = false;
|
||||||
|
});
|
||||||
|
}).catch(() => { });
|
||||||
|
}
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
function handleSelectionChange(selection) {
|
function handleSelectionChange(selection) {
|
||||||
ids.value = selection.map(item => item.jobId);
|
ids.value = selection.map(item => item.jobId);
|
||||||
|
|
@ -421,23 +453,19 @@ const getsuperCommonPlatformTypeSelect = async () => {
|
||||||
return item
|
return item
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
/** 提交按钮 */
|
const operationTypeOption = ref([]);
|
||||||
function submitForm() {
|
const getSuperCommonOperationTypes = () => {
|
||||||
proxy.$refs["agentRef"].validate(valid => {
|
getSuperCommonOperationType({}).then(response => {
|
||||||
if (valid) {
|
operationTypeOption.value = response.data.map(item => {
|
||||||
createAgent(form.value).then(response => {
|
return { label: item.name, value: `${item.code}` }
|
||||||
proxy.$modal.msgSuccess(proxy.t('新增成功'));
|
});
|
||||||
open.value = false;
|
|
||||||
getList();
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
//初始化
|
//初始化
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
getsuperCommonCurrencySelect();
|
getsuperCommonCurrencySelect();
|
||||||
|
getSuperCommonOperationTypes();
|
||||||
getsuperCommonPlatformTypeSelect();
|
getsuperCommonPlatformTypeSelect();
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -534,6 +534,7 @@ const switchBeforeChange = () => {
|
||||||
Object.assign(rowOpenRevise, row);
|
Object.assign(rowOpenRevise, row);
|
||||||
openRevise.value = true;
|
openRevise.value = true;
|
||||||
currencyCodes.value = 'VND';
|
currencyCodes.value = 'VND';
|
||||||
|
oldForm.value = JSON.stringify(rowOpenRevise);
|
||||||
|
|
||||||
}
|
}
|
||||||
const gameCurrencies = ref([]);
|
const gameCurrencies = ref([]);
|
||||||
|
|
|
||||||
|
|
@ -650,9 +650,9 @@ const sys_job_status = ref([]);
|
||||||
const showLoding2 = ref(true);
|
const showLoding2 = ref(true);
|
||||||
const getsuperCommonPlatformTypeSelect = async () => {
|
const getsuperCommonPlatformTypeSelect = async () => {
|
||||||
showLoding2.value = false;
|
showLoding2.value = false;
|
||||||
getSuperPlatformSelectList({}).then(response => {
|
getSuperPlatformSelectList({group:1}).then(response => {
|
||||||
sys_job_status.value = response.data.map(item => {
|
sys_job_status.value = response.data.map(item => {
|
||||||
return { label: item.platformName, value: item.platformCode }
|
return { label: item.platformShowCode, value: item.platformShowCode }
|
||||||
});
|
});
|
||||||
showLoding2.value = true;
|
showLoding2.value = true;
|
||||||
});
|
});
|
||||||
|
|
@ -784,42 +784,40 @@ const platformCodeDeff = ref('');
|
||||||
const searchTenantKey = ref('');
|
const searchTenantKey = ref('');
|
||||||
// 搜索平台
|
// 搜索平台
|
||||||
const searchSystemPlatforms = (currencyCode) => {
|
const searchSystemPlatforms = (currencyCode) => {
|
||||||
const keyword = currencyCode?.trim();
|
const keyword = currencyCode?.trim().toLowerCase(); // 输入转小写
|
||||||
if (!keyword) {
|
if (!keyword) {
|
||||||
tenantSystemPlatformDTOSRow.value = PlatformRatioAll.value;
|
tenantSystemPlatformDTOSRow.value = PlatformRatioAll.value;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// 找出所有 currencyCode 中包含关键字的项(忽略大小写)
|
||||||
// 找出所有 platformCode 中包含关键字的项
|
|
||||||
const matchedCodes = PlatformRatioAll.value
|
const matchedCodes = PlatformRatioAll.value
|
||||||
.filter(item => item.currencyCode?.includes(keyword))
|
.filter(item => item.currencyCode?.toLowerCase().includes(keyword))
|
||||||
.map(item => item.currencyCode);
|
.map(item => item.currencyCode);
|
||||||
|
// 如果有匹配,就取出所有属于这些 currencyCode 的数据
|
||||||
// 如果有匹配,就取出所有属于这些 platformCode 的数据
|
|
||||||
const result = PlatformRatioAll.value.filter(item =>
|
const result = PlatformRatioAll.value.filter(item =>
|
||||||
matchedCodes.includes(item.currencyCode)
|
matchedCodes.includes(item.currencyCode)
|
||||||
);
|
);
|
||||||
|
|
||||||
tenantSystemPlatformDTOSRow.value = result; // 不再回退到 PlatformRatioAll
|
tenantSystemPlatformDTOSRow.value = result;
|
||||||
};
|
};
|
||||||
const searchSystemPlatforms1 = (tenantKey) => {
|
const searchSystemPlatforms1 = (tenantKey) => {
|
||||||
const keyword = tenantKey?.trim();
|
const keyword = tenantKey?.trim().toLowerCase(); // 输入转小写
|
||||||
if (!keyword) {
|
if (!keyword) {
|
||||||
defaultCostSelect.value = defaultCostSelectAll.value;
|
defaultCostSelect.value = defaultCostSelectAll.value;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 找出所有 platformCode 中包含关键字的项
|
// 找出所有 tenantKey 中包含关键字的项(忽略大小写)
|
||||||
const matchedCodes = defaultCostSelectAll.value
|
const matchedCodes = defaultCostSelectAll.value
|
||||||
.filter(item => item.tenantKey?.includes(keyword))
|
.filter(item => item.tenantKey?.toLowerCase().includes(keyword))
|
||||||
.map(item => item.tenantKey);
|
.map(item => item.tenantKey);
|
||||||
|
|
||||||
// 如果有匹配,就取出所有属于这些 platformCode 的数据
|
// 如果有匹配,就取出所有属于这些 tenantKey 的数据
|
||||||
const result = defaultCostSelectAll.value.filter(item =>
|
const result = defaultCostSelectAll.value.filter(item =>
|
||||||
matchedCodes.includes(item.tenantKey)
|
matchedCodes.includes(item.tenantKey)
|
||||||
);
|
);
|
||||||
|
|
||||||
defaultCostSelect.value = result; // 不再回退到 PlatformRatioAll
|
defaultCostSelect.value = result; // 不再回退到全部
|
||||||
};
|
};
|
||||||
|
|
||||||
//接口信息
|
//接口信息
|
||||||
|
|
|
||||||
|
|
@ -154,6 +154,7 @@ const title = ref("");
|
||||||
const deptOptions = ref([]);
|
const deptOptions = ref([]);
|
||||||
const isExpandAll = ref(true);
|
const isExpandAll = ref(true);
|
||||||
const refreshTable = ref(true);
|
const refreshTable = ref(true);
|
||||||
|
const oldForm = shallowRef({ });
|
||||||
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: {},
|
form: {},
|
||||||
|
|
@ -245,6 +246,9 @@ function handleUpdate(row) {
|
||||||
form.value = response.data;
|
form.value = response.data;
|
||||||
open.value = true;
|
open.value = true;
|
||||||
title.value = "修改部门";
|
title.value = "修改部门";
|
||||||
|
setTimeout(() => {
|
||||||
|
oldForm.value = JSON.stringify(form.value);
|
||||||
|
}, 500);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -253,11 +257,15 @@ function submitForm() {
|
||||||
proxy.$refs["deptRef"].validate(valid => {
|
proxy.$refs["deptRef"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (form.value.deptId != undefined) {
|
if (form.value.deptId != undefined) {
|
||||||
updateDept(form.value).then(response => {
|
if (JSON.stringify(form.value) != oldForm.value) {
|
||||||
proxy.$modal.msgSuccess("修改成功");
|
updateDept(form.value).then(response => {
|
||||||
open.value = false;
|
proxy.$modal.msgSuccess("修改成功");
|
||||||
getList();
|
open.value = false;
|
||||||
});
|
getList();
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
open.value = false;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
addDept(form.value).then(response => {
|
addDept(form.value).then(response => {
|
||||||
proxy.$modal.msgSuccess("新增成功");
|
proxy.$modal.msgSuccess("新增成功");
|
||||||
|
|
|
||||||
|
|
@ -305,6 +305,7 @@ const menuOptions = ref([]);
|
||||||
const isExpandAll = ref(false);
|
const isExpandAll = ref(false);
|
||||||
const refreshTable = ref(true);
|
const refreshTable = ref(true);
|
||||||
const iconSelectRef = ref(null);
|
const iconSelectRef = ref(null);
|
||||||
|
const oldForm = shallowRef({ });
|
||||||
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: {},
|
form: {},
|
||||||
|
|
@ -414,6 +415,9 @@ async function handleUpdate(row) {
|
||||||
form.value = response.data;
|
form.value = response.data;
|
||||||
open.value = true;
|
open.value = true;
|
||||||
title.value = "修改菜单";
|
title.value = "修改菜单";
|
||||||
|
setTimeout(() => {
|
||||||
|
oldForm.value = JSON.stringify(form.value);
|
||||||
|
}, 500);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -422,11 +426,15 @@ function submitForm() {
|
||||||
proxy.$refs["menuRef"].validate(valid => {
|
proxy.$refs["menuRef"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (form.value.menuId != undefined) {
|
if (form.value.menuId != undefined) {
|
||||||
updateMenu(form.value).then(response => {
|
if (JSON.stringify(form.value) != oldForm.value) {
|
||||||
proxy.$modal.msgSuccess("修改成功");
|
updateMenu(form.value).then(response => {
|
||||||
open.value = false;
|
proxy.$modal.msgSuccess("修改成功");
|
||||||
getList();
|
open.value = false;
|
||||||
});
|
getList();
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
open.value = false;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
addMenu(form.value).then(response => {
|
addMenu(form.value).then(response => {
|
||||||
proxy.$modal.msgSuccess("新增成功");
|
proxy.$modal.msgSuccess("新增成功");
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ const single = ref(true);
|
||||||
const multiple = ref(true);
|
const multiple = ref(true);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
const title = ref("");
|
const title = ref("");
|
||||||
|
const oldForm = shallowRef({ });
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: {},
|
form: {},
|
||||||
queryParams: {
|
queryParams: {
|
||||||
|
|
@ -241,6 +241,9 @@ function handleUpdate(row) {
|
||||||
form.value = response.data;
|
form.value = response.data;
|
||||||
open.value = true;
|
open.value = true;
|
||||||
title.value = "修改岗位";
|
title.value = "修改岗位";
|
||||||
|
setTimeout(() => {
|
||||||
|
oldForm.value = JSON.stringify(form.value);
|
||||||
|
}, 500);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -249,11 +252,15 @@ function submitForm() {
|
||||||
proxy.$refs["postRef"].validate(valid => {
|
proxy.$refs["postRef"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (form.value.postId != undefined) {
|
if (form.value.postId != undefined) {
|
||||||
updatePost(form.value).then(response => {
|
if (JSON.stringify(form.value) != oldForm.value) {
|
||||||
proxy.$modal.msgSuccess("修改成功");
|
updatePost(form.value).then(response => {
|
||||||
open.value = false;
|
proxy.$modal.msgSuccess("修改成功");
|
||||||
getList();
|
open.value = false;
|
||||||
});
|
getList();
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
open.value = false;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
addPost(form.value).then(response => {
|
addPost(form.value).then(response => {
|
||||||
proxy.$modal.msgSuccess("新增成功");
|
proxy.$modal.msgSuccess("新增成功");
|
||||||
|
|
|
||||||
|
|
@ -159,6 +159,9 @@
|
||||||
<el-form-item label="角色顺序" prop="roleSort">
|
<el-form-item label="角色顺序" prop="roleSort">
|
||||||
<el-input-number v-model="form.roleSort" controls-position="right" :min="0" />
|
<el-input-number v-model="form.roleSort" controls-position="right" :min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="角色等级" prop="roleLevel">
|
||||||
|
<NumberInput v-model="form.roleLevel" :placeholder="t('数字越高级别越高')" style="width: 200px;"></NumberInput>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="状态">
|
<el-form-item label="状态">
|
||||||
<el-radio-group v-model="form.status">
|
<el-radio-group v-model="form.status">
|
||||||
<el-radio
|
<el-radio
|
||||||
|
|
@ -252,6 +255,7 @@
|
||||||
<script setup name="User">
|
<script setup name="User">
|
||||||
import { addRole, changeRoleStatus, dataScope, delRole, getRole, listRole, updateRole, deptTreeSelect } from "@/api/system/role";
|
import { addRole, changeRoleStatus, dataScope, delRole, getRole, listRole, updateRole, deptTreeSelect } from "@/api/system/role";
|
||||||
import { roleMenuTreeselect, treeselect as menuTreeselect } from "@/api/system/menu";
|
import { roleMenuTreeselect, treeselect as menuTreeselect } from "@/api/system/menu";
|
||||||
|
import NumberInput from "@/components/NumberInput";
|
||||||
import Render from "./render.vue";
|
import Render from "./render.vue";
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
@ -297,7 +301,8 @@ const data = reactive({
|
||||||
rules: {
|
rules: {
|
||||||
roleName: [{ required: true, message: "角色名称不能为空", trigger: "blur" }],
|
roleName: [{ required: true, message: "角色名称不能为空", trigger: "blur" }],
|
||||||
roleKey: [{ required: true, message: "权限字符不能为空", trigger: "blur" }],
|
roleKey: [{ required: true, message: "权限字符不能为空", trigger: "blur" }],
|
||||||
roleSort: [{ required: true, message: "角色顺序不能为空", trigger: "blur" }]
|
roleSort: [{ required: true, message: "角色顺序不能为空", trigger: "blur" }],
|
||||||
|
roleLevel: [{ required: true, message: "角色级别不能为空", trigger: "blur" }],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ export default defineConfig(({ mode, command }) => {
|
||||||
open: true,
|
open: true,
|
||||||
proxy: {
|
proxy: {
|
||||||
'/dev-api': {
|
'/dev-api': {
|
||||||
target: 'http://192.168.50.139:9080',
|
target: 'http://192.168.50.233:9080',
|
||||||
// target: 'http://192.168.50.11:9080',
|
// target: 'http://192.168.50.11:9080',
|
||||||
// target: 'http://192.168.50.178:8080',
|
// target: 'http://192.168.50.178:8080',
|
||||||
// target: 'http://192.168.50.99:8080',
|
// target: 'http://192.168.50.99:8080',
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue