This commit is contained in:
2025-05-29 20:34:47 +08:00
parent 690a1d04a8
commit c0caad8a0b
11 changed files with 464 additions and 141 deletions

View File

@@ -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;

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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;

File diff suppressed because one or more lines are too long