update
This commit is contained in:
@@ -221,14 +221,14 @@ const admin = {
|
||||
},
|
||||
getWithdrawllogStatus: async (data) => {
|
||||
return request({
|
||||
url: '/admin/withdrawallog/getStatus',
|
||||
url: '/admin/WithdrawalLog/getStatus',
|
||||
method: Method.POST,
|
||||
data: data
|
||||
});
|
||||
},
|
||||
getWithdrawllogList: async (data) => {
|
||||
return request({
|
||||
url: '/admin/withdrawallog/getList',
|
||||
url: '/admin/WithdrawalLog/getList',
|
||||
method: Method.POST,
|
||||
data: data
|
||||
});
|
||||
@@ -581,6 +581,55 @@ const admin = {
|
||||
data: {ids},
|
||||
});
|
||||
},
|
||||
businessDetail: async (id) => {
|
||||
return request({
|
||||
url: '/admin/business/detail',
|
||||
method: Method.POST,
|
||||
data: {id},
|
||||
});
|
||||
},
|
||||
businessEdit: async (data) => {
|
||||
return request({
|
||||
url: '/admin/user/edit',
|
||||
method: Method.POST,
|
||||
data: data,
|
||||
});
|
||||
},
|
||||
userDetail: async (id) => {
|
||||
return request({
|
||||
url: '/admin/user/detail',
|
||||
method: Method.POST,
|
||||
data: {id},
|
||||
});
|
||||
},
|
||||
userEdit: async (data) => {
|
||||
return request({
|
||||
url: '/admin/user/edit',
|
||||
method: Method.POST,
|
||||
data: data,
|
||||
});
|
||||
},
|
||||
userLevel: async (data) => {
|
||||
return request({
|
||||
url: '/admin/user/level',
|
||||
method: Method.POST,
|
||||
data: data,
|
||||
});
|
||||
},
|
||||
accept: async (id) => {
|
||||
return request({
|
||||
url: '/admin/account/accept',
|
||||
method: Method.POST,
|
||||
data: {id},
|
||||
});
|
||||
},
|
||||
refund: async (data) => {
|
||||
return request({
|
||||
url: '/admin/account/refund',
|
||||
method: Method.POST,
|
||||
data: data,
|
||||
});
|
||||
},
|
||||
}
|
||||
|
||||
export default admin;
|
||||
|
||||
@@ -1,13 +1,58 @@
|
||||
<script setup>
|
||||
import {ref} from "vue";
|
||||
import {reactive, ref, watch} from "vue";
|
||||
import Api from "../../../../../api/index.js";
|
||||
import {Message} from "@arco-design/web-vue";
|
||||
import XSelect from "../../../../../components/XSelect/index.vue";
|
||||
|
||||
const emits = defineEmits(['success']);
|
||||
const visible = ref(false);
|
||||
const detail = reactive({});
|
||||
const {id} = defineProps({
|
||||
id: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
});
|
||||
|
||||
watch(
|
||||
() => visible.value,
|
||||
(val) => {
|
||||
if (val) Api.admin.userDetail(id).then(({data}) => {
|
||||
Object.assign(detail, data);
|
||||
detail.one_ratio = Number(detail.one_ratio);
|
||||
detail.two_ratio = Number(detail.two_ratio);
|
||||
detail.three_ratio = Number(detail.three_ratio);
|
||||
});
|
||||
}
|
||||
)
|
||||
|
||||
const getState = async () => {
|
||||
return {
|
||||
data: [
|
||||
{
|
||||
id: 0,
|
||||
name: '禁用'
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
name: '可用'
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
const success = async () => {
|
||||
const {msg} = await Api.admin.userEdit(detail);
|
||||
Message.success(msg);
|
||||
emits('success');
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<a-link :hoverable="false" @click="visible=true">编辑</a-link>
|
||||
|
||||
<a-modal
|
||||
@ok="success"
|
||||
ok-text="确定修改"
|
||||
title="编辑"
|
||||
title-align="start"
|
||||
@@ -15,61 +60,60 @@ const visible = ref(false);
|
||||
<div class="max-h-[500px] overflow-auto">
|
||||
<a-form layout="vertical">
|
||||
<a-form-item label="ID">
|
||||
<a-input placeholder="ID"></a-input>
|
||||
<a-input :model-value="detail.uid" disabled placeholder="ID"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="昵称">
|
||||
<a-input placeholder="昵称"></a-input>
|
||||
<a-input :model-value="detail.nickname" disabled placeholder="昵称"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="头像">
|
||||
<div class="flex flex-wrap gap-[12px]">
|
||||
<a-image
|
||||
width="62px"
|
||||
height="62px"
|
||||
src="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a8c8cdb109cb051163646151a4a5083b.png~tplv-uwbnlip3yd-webp.webp">
|
||||
</a-image>
|
||||
<a-image
|
||||
width="62px"
|
||||
height="62px"
|
||||
src="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a8c8cdb109cb051163646151a4a5083b.png~tplv-uwbnlip3yd-webp.webp">
|
||||
:src="detail.avatar">
|
||||
</a-image>
|
||||
</div>
|
||||
</a-form-item>
|
||||
<a-form-item label="手机号">
|
||||
<a-input placeholder="手机号"></a-input>
|
||||
<a-input v-model:model-value="detail.mobile" placeholder="手机号"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="微信号">
|
||||
<a-input placeholder="微信号"></a-input>
|
||||
<a-input v-model:model-value="detail.wechat" placeholder="微信号"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="状态">
|
||||
<a-input placeholder="状态"></a-input>
|
||||
<x-select v-model:model-value="detail.status" :api="getState" init></x-select>
|
||||
</a-form-item>
|
||||
<a-form-item label="邀请人">
|
||||
<a-input placeholder="邀请人"></a-input>
|
||||
<a-input v-model:model-value="detail.puid" placeholder="邀请人"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="上上">
|
||||
<a-input placeholder="上上"></a-input>
|
||||
<a-input :model-value="detail.second_person" disabled placeholder="上上"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="上上上">
|
||||
<a-input placeholder="上上上"></a-input>
|
||||
<a-input :model-value="detail.three_person" disabled placeholder="上上上"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="等级">
|
||||
<a-input placeholder="等级"></a-input>
|
||||
<x-select v-model:model-value="detail.level_id" :api="Api.admin.userLevel"
|
||||
placeholder="等级" init></x-select>
|
||||
</a-form-item>
|
||||
<a-form-item label="分佣比例">
|
||||
<div class="flex gap-[12px]">
|
||||
<a-input placeholder="一级">
|
||||
<a-input-number v-model:model-value="detail.one_ratio" placeholder="一级" :precision="2">
|
||||
<template #prefix>一级</template>
|
||||
</a-input>
|
||||
<a-input placeholder="二级">
|
||||
<template #prefix>一级</template>
|
||||
</a-input>
|
||||
<a-input placeholder="三级">
|
||||
<template #prefix>一级</template>
|
||||
</a-input>
|
||||
<template #suffix>%</template>
|
||||
</a-input-number>
|
||||
<a-input-number v-model:model-value="detail.two_ratio" placeholder="二级" :precision="2">
|
||||
<template #prefix>二级</template>
|
||||
<template #suffix>%</template>
|
||||
</a-input-number>
|
||||
<a-input-number v-model:model-value="detail.three_ratio" placeholder="三级" :precision="2">
|
||||
<template #prefix>三级</template>
|
||||
<template #suffix>%</template>
|
||||
</a-input-number>
|
||||
</div>
|
||||
</a-form-item>
|
||||
<a-form-item label="入驻日期">
|
||||
<a-date-picker show-time></a-date-picker>
|
||||
<a-input :model-value="detail.createtime" disabled placeholder="入驻日期"></a-input>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
|
||||
@@ -1,52 +1,89 @@
|
||||
<script setup>
|
||||
import {ref} from "vue";
|
||||
import XSelect from "../../../../../components/XSelect/index.vue";
|
||||
import {reactive, ref, watch} from "vue";
|
||||
import Api from "../../../../../api/index.js";
|
||||
import {Message} from "@arco-design/web-vue";
|
||||
|
||||
const emits = defineEmits(['success']);
|
||||
const visible = ref(false);
|
||||
const detail = reactive({});
|
||||
const {id} = defineProps({
|
||||
id: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
});
|
||||
|
||||
watch(
|
||||
() => visible.value,
|
||||
(val) => {
|
||||
if (val) Api.admin.businessDetail(id).then(({data}) => {
|
||||
Object.assign(detail, data);
|
||||
});
|
||||
}
|
||||
)
|
||||
|
||||
const getState = async () => {
|
||||
return {
|
||||
data: [
|
||||
{
|
||||
id: 0,
|
||||
name: '禁用'
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
name: '可用'
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
const success = async () => {
|
||||
const {msg} = await Api.admin.businessEdit(detail);
|
||||
Message.success(msg);
|
||||
emits('success');
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<a-link :hoverable="false" @click="visible=true">编辑</a-link>
|
||||
|
||||
<a-modal
|
||||
@ok="success"
|
||||
ok-text="确定修改"
|
||||
title="编辑"
|
||||
title-align="start"
|
||||
v-model:visible="visible">
|
||||
<a-form layout="vertical">
|
||||
<a-form-item label="ID">
|
||||
<a-input placeholder="ID"></a-input>
|
||||
<a-input :model-value="detail.uid" disabled placeholder="ID"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="昵称">
|
||||
<a-input placeholder="昵称"></a-input>
|
||||
<a-input :model-value="detail.nickname" disabled placeholder="昵称"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="头像">
|
||||
<div class="flex flex-wrap gap-[12px]">
|
||||
<a-image
|
||||
width="62px"
|
||||
height="62px"
|
||||
src="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a8c8cdb109cb051163646151a4a5083b.png~tplv-uwbnlip3yd-webp.webp">
|
||||
</a-image>
|
||||
<a-image
|
||||
width="62px"
|
||||
height="62px"
|
||||
src="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a8c8cdb109cb051163646151a4a5083b.png~tplv-uwbnlip3yd-webp.webp">
|
||||
:src="detail.avatar">
|
||||
</a-image>
|
||||
</div>
|
||||
</a-form-item>
|
||||
<a-form-item label="手机号">
|
||||
<a-input placeholder="手机号"></a-input>
|
||||
<a-input v-model:model-value="detail.mobile" placeholder="手机号"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="微信号">
|
||||
<a-input placeholder="微信号"></a-input>
|
||||
<a-input v-model:model-value="detail.wechat" placeholder="微信号"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="状态">
|
||||
<a-input placeholder="状态"></a-input>
|
||||
<x-select v-model:model-value="detail.status" :api="getState" init></x-select>
|
||||
</a-form-item>
|
||||
<a-form-item label="邀请人">
|
||||
<a-input placeholder="邀请人"></a-input>
|
||||
<a-input v-model:model-value="detail.puid" placeholder="邀请人"></a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="入驻日期">
|
||||
<a-input placeholder="入驻日期"></a-input>
|
||||
<a-input :model-value="detail.createtime" disabled placeholder="入驻日期"></a-input>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
|
||||
@@ -1,20 +1,41 @@
|
||||
<script setup>
|
||||
import {ref} from "vue";
|
||||
import Api from "../../../../../api/index.js";
|
||||
import {Message} from "@arco-design/web-vue";
|
||||
|
||||
const {id} = defineProps({
|
||||
id: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
});
|
||||
const visible = ref(false);
|
||||
const emits = defineEmits(['success']);
|
||||
|
||||
const remark = ref(null);
|
||||
|
||||
const refund = async () => {
|
||||
const {msg} = await Api.admin.refund({
|
||||
id: id,
|
||||
remark: remark.value
|
||||
});
|
||||
Message.success(msg);
|
||||
emits('success');
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<a-link :hoverable="false" status="danger" @click="visible=true">拒绝</a-link>
|
||||
|
||||
<a-modal
|
||||
@ok="refund"
|
||||
ok-text="确定拒绝"
|
||||
title="推广账号拒绝"
|
||||
title-align="start"
|
||||
v-model:visible="visible">
|
||||
<a-form layout="vertical">
|
||||
<a-form-item label="拒绝原因">
|
||||
<a-input placeholder="请输入拒绝原因"></a-input>
|
||||
<a-input v-model:model-value="remark" placeholder="请输入拒绝原因"></a-input>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-modal>
|
||||
|
||||
@@ -8,24 +8,24 @@ import EditExpertInfoModal from "./components/EditExpertInfoModal.vue";
|
||||
const columns = [
|
||||
{
|
||||
title: '商家ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'uid',
|
||||
},
|
||||
{
|
||||
title: '昵称',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'nickname',
|
||||
},
|
||||
{
|
||||
title: '头像',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'avatar',
|
||||
slotName: 'avatar',
|
||||
},
|
||||
{
|
||||
title: '手机号',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'mobile',
|
||||
},
|
||||
{
|
||||
title: '微信号',
|
||||
dataIndex: 'image',
|
||||
slotName: 'image',
|
||||
dataIndex: 'wechat',
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
@@ -34,31 +34,31 @@ const columns = [
|
||||
},
|
||||
{
|
||||
title: '邀请人',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'puid',
|
||||
},
|
||||
{
|
||||
title: '上上',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'second_person',
|
||||
},
|
||||
{
|
||||
title: '上上上',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'three_person',
|
||||
},
|
||||
{
|
||||
title: '等级',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'level',
|
||||
},
|
||||
{
|
||||
title: '入驻日期',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'createtime',
|
||||
},
|
||||
{
|
||||
title: '分佣比例',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'ratio'
|
||||
},
|
||||
{
|
||||
title: '任务收益',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'total_money',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
@@ -127,7 +127,7 @@ const vo = reactive({
|
||||
total: 0,
|
||||
});
|
||||
|
||||
const {loading, pagination, initFetchData} = useTableQuery({
|
||||
const {loading, pagination, initFetchData, fetchData} = useTableQuery({
|
||||
parameter: po,
|
||||
api: Api.admin.getUserList,
|
||||
callback: (data) => {
|
||||
@@ -152,12 +152,17 @@ const {loading, pagination, initFetchData} = useTableQuery({
|
||||
:loading="loading"
|
||||
:columns="columns"
|
||||
class="flex-grow">
|
||||
<template v-slot:status>
|
||||
状态
|
||||
<template v-slot:avatar="{record}">
|
||||
<a-image :src="record.avatar" width="24px" height="24px"
|
||||
class="rounded-[50%] overflow-hidden"></a-image>
|
||||
</template>
|
||||
<template v-slot:action>
|
||||
<template v-slot:status="{record}">
|
||||
<div v-if="record.status===1" class="status success">{{ record.status_text }}</div>
|
||||
<div v-if="record.status===0" class="status danger">{{ record.status_text }}</div>
|
||||
</template>
|
||||
<template v-slot:action="{record}">
|
||||
<div class="flex gap-[20px]">
|
||||
<EditExpertInfoModal></EditExpertInfoModal>
|
||||
<EditExpertInfoModal :id="record.id" @success="fetchData"></EditExpertInfoModal>
|
||||
<a-link :hoverable="false">快速进入</a-link>
|
||||
</div>
|
||||
</template>
|
||||
@@ -165,6 +170,24 @@ const {loading, pagination, initFetchData} = useTableQuery({
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
<style lang="scss" scoped>
|
||||
.status {
|
||||
@apply flex whitespace-nowrap items-center gap-[6px];
|
||||
&::before {
|
||||
content: '';
|
||||
@apply block size-[6px] rounded-[50%];
|
||||
}
|
||||
}
|
||||
|
||||
.success {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--green-6))];
|
||||
}
|
||||
}
|
||||
|
||||
.danger {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--red-6))];
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -17,6 +17,7 @@ const columns = [
|
||||
{
|
||||
title: '头像',
|
||||
dataIndex: 'avatar',
|
||||
slotName: 'avatar'
|
||||
},
|
||||
{
|
||||
title: '手机号',
|
||||
@@ -107,7 +108,7 @@ const vo = reactive({
|
||||
total: 0,
|
||||
});
|
||||
|
||||
const {loading, pagination, initFetchData} = useTableQuery({
|
||||
const {loading, pagination, initFetchData, fetchData} = useTableQuery({
|
||||
parameter: po,
|
||||
api: Api.admin.getBusinessList,
|
||||
callback: (data) => {
|
||||
@@ -132,12 +133,17 @@ const {loading, pagination, initFetchData} = useTableQuery({
|
||||
:loading="loading"
|
||||
:columns="columns"
|
||||
class="flex-grow">
|
||||
<template v-slot:status_text>
|
||||
状态
|
||||
<template v-slot:avatar="{record}">
|
||||
<a-image :src="record.avatar" width="24px" height="24px"
|
||||
class="rounded-[50%] overflow-hidden"></a-image>
|
||||
</template>
|
||||
<template v-slot:action>
|
||||
<template v-slot:status_text="{record}">
|
||||
<div v-if="record.status===1" class="status success">{{ record.status_text }}</div>
|
||||
<div v-if="record.status===0" class="status danger">{{ record.status_text }}</div>
|
||||
</template>
|
||||
<template v-slot:action="{record}">
|
||||
<div class="flex gap-[20px]">
|
||||
<EditInfoModal></EditInfoModal>
|
||||
<EditInfoModal :id="record.id" @success="fetchData"></EditInfoModal>
|
||||
<a-link :hoverable="false">卡密</a-link>
|
||||
</div>
|
||||
</template>
|
||||
@@ -145,6 +151,24 @@ const {loading, pagination, initFetchData} = useTableQuery({
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
<style lang="scss" scoped>
|
||||
.status {
|
||||
@apply flex whitespace-nowrap items-center gap-[6px];
|
||||
&::before {
|
||||
content: '';
|
||||
@apply block size-[6px] rounded-[50%];
|
||||
}
|
||||
}
|
||||
|
||||
.success {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--green-6))];
|
||||
}
|
||||
}
|
||||
|
||||
.danger {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--red-6))];
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -4,37 +4,38 @@ import useTableQuery from "../../../../hooks/useTableQuery.js";
|
||||
import Api from "../../../../api/index.js";
|
||||
import Filter from "../../../../components/Filter/index.vue";
|
||||
import RefuseModal from "./components/RefuseModal.vue";
|
||||
import {Message} from "@arco-design/web-vue";
|
||||
|
||||
const columns = [
|
||||
{
|
||||
title: '账号ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'uid',
|
||||
},
|
||||
{
|
||||
title: '达人ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'uuid',
|
||||
},
|
||||
{
|
||||
title: '渠道',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'name',
|
||||
},
|
||||
{
|
||||
title: '主页截图',
|
||||
dataIndex: 'image',
|
||||
slotName: 'image',
|
||||
dataIndex: 'homepage',
|
||||
slotName: 'homepage',
|
||||
},
|
||||
{
|
||||
title: '主页二维码',
|
||||
dataIndex: 'image',
|
||||
slotName: 'image',
|
||||
dataIndex: 'qrcode',
|
||||
slotName: 'qrcode',
|
||||
},
|
||||
{
|
||||
title: '账号',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'account',
|
||||
},
|
||||
{
|
||||
title: '昵称',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'nickname',
|
||||
},
|
||||
{
|
||||
title: '推广账号状态',
|
||||
@@ -43,7 +44,7 @@ const columns = [
|
||||
},
|
||||
{
|
||||
title: '添加日期',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'createtime',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
@@ -83,13 +84,19 @@ const vo = reactive({
|
||||
total: 0,
|
||||
});
|
||||
|
||||
const {loading, pagination, initFetchData} = useTableQuery({
|
||||
const {loading, pagination, initFetchData, fetchData} = useTableQuery({
|
||||
parameter: po,
|
||||
api: Api.admin.getAccountList,
|
||||
callback: (data) => {
|
||||
Object.assign(vo, data);
|
||||
}
|
||||
});
|
||||
|
||||
const accept = async (id) => {
|
||||
const {msg} = await Api.admin.accept(id);
|
||||
Message.success(msg);
|
||||
await fetchData();
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -109,20 +116,64 @@ const {loading, pagination, initFetchData} = useTableQuery({
|
||||
:loading="loading"
|
||||
:columns="columns"
|
||||
class="flex-grow">
|
||||
<template v-slot:status>
|
||||
状态
|
||||
<template v-slot:homepage="{record}">
|
||||
<a-image width="24px" height="24px" :src="record.homepage"></a-image>
|
||||
</template>
|
||||
<template v-slot:action>
|
||||
<template v-slot:qrcode="{record}">
|
||||
<a-image width="24px" height="24px" :src="record.qrcode"></a-image>
|
||||
</template>
|
||||
<template v-slot:status="{record}">
|
||||
<div v-if="record.status===1" class="status success">{{ record.status_text }}</div>
|
||||
<div v-if="record.status===0" class="status warning">{{ record.status_text }}</div>
|
||||
<div v-if="record.status===2 || record.status === -2 || record.status === -1" class="status danger">
|
||||
{{ record.status_text }}
|
||||
</div>
|
||||
<div v-if="record.status===3 || record.status === -3" class="status primary">{{
|
||||
record.status_text
|
||||
}}
|
||||
</div>
|
||||
</template>
|
||||
<template v-slot:action="{record}">
|
||||
<div class="flex gap-[20px]">
|
||||
<a-link :hoverable="false">编辑</a-link>
|
||||
<a-link :hoverable="false" status="success">通过</a-link>
|
||||
<RefuseModal></RefuseModal>
|
||||
<a-link :hoverable="false" status="success" @click="accept(record.id)">通过</a-link>
|
||||
<RefuseModal @success="fetchData" :id="record.id"></RefuseModal>
|
||||
</div>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
<style lang="scss" scoped>
|
||||
.status {
|
||||
@apply flex whitespace-nowrap items-center gap-[6px];
|
||||
&::before {
|
||||
content: '';
|
||||
@apply block size-[6px] rounded-[50%];
|
||||
}
|
||||
}
|
||||
|
||||
.success {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--green-6))];
|
||||
}
|
||||
}
|
||||
|
||||
.danger {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--red-6))];
|
||||
}
|
||||
}
|
||||
|
||||
.warning {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--orange-6))];
|
||||
}
|
||||
}
|
||||
|
||||
.primary {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--arcoblue-6))];
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -7,68 +7,64 @@ import Api from "../../../../api/index.js";
|
||||
const columns = [
|
||||
{
|
||||
title: '动账日期',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'createtime1',
|
||||
},
|
||||
{
|
||||
title: '动账时间',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'createtime2',
|
||||
},
|
||||
{
|
||||
title: '交易流水号',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'sn',
|
||||
},
|
||||
{
|
||||
title: '动账渠道',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'platform_name',
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
dataIndex: 'image',
|
||||
slotName: 'image',
|
||||
dataIndex: 'status',
|
||||
slotName: 'status',
|
||||
},
|
||||
{
|
||||
title: '动账用途',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'purpose_name',
|
||||
},
|
||||
{
|
||||
title: '动账金额(元)',
|
||||
dataIndex: 'key',
|
||||
},
|
||||
{
|
||||
title: '类型',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'money',
|
||||
},
|
||||
{
|
||||
title: '付款人账户',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'account',
|
||||
},
|
||||
{
|
||||
title: '收款人账户',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'receive',
|
||||
},
|
||||
{
|
||||
title: '商家ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'b_uid',
|
||||
},
|
||||
{
|
||||
title: '关联任务ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'task_id',
|
||||
},
|
||||
{
|
||||
title: '子任务ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'task_children_id',
|
||||
},
|
||||
{
|
||||
title: '达人iD',
|
||||
dataIndex: 'key',
|
||||
title: '达人ID',
|
||||
dataIndex: 'u_uid',
|
||||
},
|
||||
{
|
||||
title: '推广账号iD',
|
||||
dataIndex: 'key',
|
||||
title: '推广账号ID',
|
||||
dataIndex: 'account_id',
|
||||
},
|
||||
{
|
||||
title: '推广账号',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'account_name',
|
||||
},
|
||||
];
|
||||
const FilterConfig = [
|
||||
@@ -145,10 +141,32 @@ const {loading, pagination, initFetchData} = useTableQuery({
|
||||
:loading="loading"
|
||||
:columns="columns"
|
||||
class="flex-grow">
|
||||
<template v-slot:status="{record}">
|
||||
<div v-if="record.status===1" class="status success">成功</div>
|
||||
<div v-if="record.status===0" class="status danger">失败</div>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
<style lang="scss" scoped>
|
||||
.status {
|
||||
@apply flex whitespace-nowrap items-center gap-[6px];
|
||||
&::before {
|
||||
content: '';
|
||||
@apply block size-[6px] rounded-[50%];
|
||||
}
|
||||
}
|
||||
|
||||
.success {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--green-6))];
|
||||
}
|
||||
}
|
||||
|
||||
.danger {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--red-6))];
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -7,68 +7,68 @@ import Api from "../../../../api/index.js";
|
||||
const columns = [
|
||||
{
|
||||
title: '动账日期',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'createtime1',
|
||||
},
|
||||
{
|
||||
title: '动账时间',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'createtime2',
|
||||
},
|
||||
{
|
||||
title: '交易流水号',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'sn',
|
||||
},
|
||||
{
|
||||
title: '动账渠道',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'platform_name',
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
dataIndex: 'image',
|
||||
slotName: 'image',
|
||||
dataIndex: 'status',
|
||||
slotName: 'status',
|
||||
},
|
||||
{
|
||||
title: '动账用途',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'purpose_name',
|
||||
},
|
||||
{
|
||||
title: '动账金额(元)',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'money',
|
||||
},
|
||||
{
|
||||
title: '付款人账户',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'account',
|
||||
},
|
||||
{
|
||||
title: '收款人账户',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'receive',
|
||||
},
|
||||
{
|
||||
title: '商家ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'b_uid',
|
||||
},
|
||||
{
|
||||
title: '关联任务ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'task_id',
|
||||
},
|
||||
{
|
||||
title: '子任务ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'task_children_id',
|
||||
},
|
||||
{
|
||||
title: '达人iD',
|
||||
dataIndex: 'key',
|
||||
title: '达人ID',
|
||||
dataIndex: 'u_uid',
|
||||
},
|
||||
{
|
||||
title: '推广账号iD',
|
||||
dataIndex: 'key',
|
||||
title: '推广账号ID',
|
||||
dataIndex: 'account_id',
|
||||
},
|
||||
{
|
||||
title: '推广账号',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'account_name',
|
||||
},
|
||||
{
|
||||
title: '关联活动ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'activity_id',
|
||||
},
|
||||
];
|
||||
const FilterConfig = [
|
||||
@@ -145,10 +145,32 @@ const {loading, pagination, initFetchData} = useTableQuery({
|
||||
:loading="loading"
|
||||
:columns="columns"
|
||||
class="flex-grow">
|
||||
<template v-slot:status="{record}">
|
||||
<div v-if="record.status===1" class="status success">成功</div>
|
||||
<div v-if="record.status===0" class="status danger">失败</div>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
<style lang="scss" scoped>
|
||||
.status {
|
||||
@apply flex whitespace-nowrap items-center gap-[6px];
|
||||
&::before {
|
||||
content: '';
|
||||
@apply block size-[6px] rounded-[50%];
|
||||
}
|
||||
}
|
||||
|
||||
.success {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--green-6))];
|
||||
}
|
||||
}
|
||||
|
||||
.danger {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--red-6))];
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -7,32 +7,31 @@ import Api from "../../../../api/index.js";
|
||||
const columns = [
|
||||
{
|
||||
title: 'ID',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'uid',
|
||||
},
|
||||
{
|
||||
title: '身份',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'type_text',
|
||||
},
|
||||
{
|
||||
title: '提现方式',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'ac_type_text',
|
||||
},
|
||||
{
|
||||
title: '姓名',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'realname',
|
||||
},
|
||||
{
|
||||
title: '卡号',
|
||||
dataIndex: 'image',
|
||||
slotName: 'image',
|
||||
dataIndex: 'account',
|
||||
},
|
||||
{
|
||||
title: '金额',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'money',
|
||||
},
|
||||
{
|
||||
title: '申请日期',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'createtime',
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
@@ -41,7 +40,7 @@ const columns = [
|
||||
},
|
||||
{
|
||||
title: '到账日期',
|
||||
dataIndex: 'key',
|
||||
dataIndex: 'finshtime',
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
@@ -167,20 +166,55 @@ const {loading, pagination, initFetchData} = useTableQuery({
|
||||
:loading="loading"
|
||||
:columns="columns"
|
||||
class="flex-grow">
|
||||
<template v-slot:status>
|
||||
状态
|
||||
<template v-slot:status="{record}">
|
||||
<div v-if="record.status===2" class="status success">{{ record.status_text }}</div>
|
||||
<div v-if="record.status===0" class="status warning">{{ record.status_text }}</div>
|
||||
<div v-if="record.status===-1" class="status danger">{{ record.status_text }}</div>
|
||||
<div v-if="record.status===1" class="status primary">{{ record.status_text }}</div>
|
||||
</template>
|
||||
<template v-slot:action>
|
||||
<a-link :hoverable="false">打款</a-link>
|
||||
</template>
|
||||
<template v-slot:remark>
|
||||
<a-input class="w-full" placeholder="请输入备注信息"></a-input>
|
||||
<template v-slot:remark="{record}">
|
||||
<a-input v-model:model-value="record.remark" class="w-full" placeholder="请输入备注信息"></a-input>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-card>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.status {
|
||||
@apply flex whitespace-nowrap items-center gap-[6px];
|
||||
&::before {
|
||||
content: '';
|
||||
@apply block size-[6px] rounded-[50%];
|
||||
}
|
||||
}
|
||||
|
||||
.success {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--green-6))];
|
||||
}
|
||||
}
|
||||
|
||||
.danger {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--red-6))];
|
||||
}
|
||||
}
|
||||
|
||||
.warning {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--orange-6))];
|
||||
}
|
||||
}
|
||||
|
||||
.primary {
|
||||
&::before {
|
||||
@apply bg-[rgb(var(--arcoblue-6))];
|
||||
}
|
||||
}
|
||||
|
||||
#statistic-card {
|
||||
.statistic-item {
|
||||
cursor: pointer;
|
||||
|
||||
Reference in New Issue
Block a user