This commit is contained in:
2025-07-03 11:39:49 +08:00
parent d5f920072f
commit bea510e4fa
5 changed files with 44 additions and 32 deletions

View File

@@ -798,6 +798,20 @@ const admin = {
data: data, data: data,
}); });
}, },
getInterventionTaskList: async (data) => {
return request({
url: '/admin/Intervention/getTaskList',
method: Method.POST,
data: data,
});
},
interventionJsTask: async (data) => {
return request({
url: '/admin/Intervention/jsTask',
method: Method.POST,
data: data,
});
},
} }
export default admin; export default admin;

View File

@@ -48,11 +48,11 @@ const columns = [
}, },
{ {
title: '关联任务ID', title: '关联任务ID',
dataIndex: 'task_id', dataIndex: 'm_code',
}, },
{ {
title: '子任务ID', title: '子任务ID',
dataIndex: 'task_children_id', dataIndex: 't_code',
}, },
{ {
title: '达人ID', title: '达人ID',

View File

@@ -48,11 +48,11 @@ const columns = [
}, },
{ {
title: '关联任务ID', title: '关联任务ID',
dataIndex: 'task_id', dataIndex: 'mt_code',
}, },
{ {
title: '子任务ID', title: '子任务ID',
dataIndex: 'task_children_id', dataIndex: 'tc_uid',
}, },
{ {
title: '达人ID', title: '达人ID',

View File

@@ -11,10 +11,6 @@ import XTagSelect from "../../../../components/XSelect/XTagSelect.vue";
import {Message} from "@arco-design/web-vue"; import {Message} from "@arco-design/web-vue";
const columns = [ const columns = [
{
title: '沟通事件ID',
dataIndex: 'code',
},
{ {
title: '商家ID', title: '商家ID',
dataIndex: 'b_uid', dataIndex: 'b_uid',
@@ -47,15 +43,15 @@ const columns = [
}, },
{ {
title: '领取时间', title: '领取时间',
dataIndex: 'receive_time', dataIndex: 'accept_time',
}, },
{ {
title: '扣除', title: '扣除',
dataIndex: 'ratio', dataIndex: 'coin_ratio',
}, },
{ {
title: '金额', title: '金额',
dataIndex: 'money', dataIndex: 'coin',
}, },
{ {
title: '原因', title: '原因',
@@ -65,7 +61,7 @@ const columns = [
}, },
{ {
title: '达人到手', title: '达人到手',
dataIndex: 'key', dataIndex: 'real_coin',
}, },
{ {
title: '操作', title: '操作',
@@ -153,7 +149,7 @@ const vo = reactive({
}); });
const {loading, pagination, initFetchData, fetchData} = useTableQuery({ const {loading, pagination, initFetchData, fetchData} = useTableQuery({
parameter: po, parameter: po,
api: Api.admin.getInterventionList, api: Api.admin.getInterventionTaskList,
callback: (data) => { callback: (data) => {
Object.assign(vo, data); Object.assign(vo, data);
} }
@@ -177,7 +173,7 @@ const getStatus = () => Promise.resolve({
const changeStatus = async (record) => { const changeStatus = async (record) => {
const {msg} = await Api.admin.editStatus({ const {msg} = await Api.admin.editStatus({
id: record.id, id: record.id,
status: record.status, status: record.is_handle,
}); });
Message.success(msg); Message.success(msg);
await fetchData(); await fetchData();
@@ -207,7 +203,7 @@ const changeStatus = async (record) => {
<a-tabs type="rounded" v-model:active-key="po.status" @change="initFetchData"> <a-tabs type="rounded" v-model:active-key="po.status" @change="initFetchData">
<a-tab-pane title="待处理" :key="0"> <a-tab-pane title="待处理" :key="0">
</a-tab-pane> </a-tab-pane>
<a-tab-pane title="已处理" :key="2"> <a-tab-pane title="已处理" :key="1">
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
@@ -221,16 +217,16 @@ const changeStatus = async (record) => {
<template v-slot:action="{record}"> <template v-slot:action="{record}">
<div class="flex gap-[16px]"> <div class="flex gap-[16px]">
<a-link :hoverable="false" @click="async () => { <a-link :hoverable="false" @click="async () => {
const {data} = await Api.admin.getTaskChildrenInfo(record.tc_id); const {data} = await Api.admin.getTaskChildrenInfo(record.id);
state.showChat = true; state.showChat = true;
state.task = data; state.task = data;
}">沟通记录 }">沟通记录
</a-link> </a-link>
<look-backfill-modal :item="record"></look-backfill-modal> <look-backfill-modal :item="{...record, tc_id: record.id}"></look-backfill-modal>
<settlement :task="record" :disabled="!(record.is_settlement === 0 && record.children_status === 4)" <settlement :task="record" :disabled="!(record.is_settlement === 0)"
@success="fetchData"> @success="fetchData">
<a-link :hoverable="false" <a-link :hoverable="false"
:disabled="!(record.is_settlement === 0 && record.children_status === 4)" :disabled="!(record.is_settlement === 0)"
status="success"> status="success">
{{ record.settlement_text }} {{ record.settlement_text }}
</a-link> </a-link>
@@ -238,23 +234,23 @@ const changeStatus = async (record) => {
</div> </div>
</template> </template>
<template v-slot:why="{record}"> <template v-slot:why="{record}">
<settlement :yy="true" :task="record" :disabled="record.is_settlement > 0" @success="fetchData"> <settlement :yy="true" :task="record" :disabled="record.is_settlement === 0" @success="fetchData">
<a-link :hoverable="false">原因</a-link> <a-link :hoverable="false" :disabled="record.is_settlement === 0">原因</a-link>
</settlement> </settlement>
</template> </template>
<template v-slot:status="{record}"> <template v-slot:status="{record}">
<XTagSelect <XTagSelect
@change="changeStatus(record)" @change="changeStatus(record)"
v-model:model-value="record.status" v-model:model-value="record.is_handle"
:api="getStatus" :api="getStatus"
init> init>
</XTagSelect> </XTagSelect>
</template> </template>
<template v-slot:settlement="{record}"> <template v-slot:settlement="{record}">
<div v-if="record.status===2" class="status success">{{ record.settlement_text }}</div> <div v-if="record.is_settlement===2" class="status success">{{ record.settlement_text }}</div>
<div v-if="record.status===1" class="status warning">{{ record.settlement_text }}</div> <div v-if="record.is_settlement===1" class="status warning">{{ record.settlement_text }}</div>
<div v-if="record.status===-1" class="status danger">{{ record.settlement_text }}</div> <div v-if="record.is_settlement===-1" class="status danger">{{ record.settlement_text }}</div>
<div v-if="record.status===0" class="status primary">{{ record.settlement_text }}</div> <div v-if="record.is_settlement===0" class="status primary">{{ record.settlement_text }}</div>
</template> </template>
</a-table> </a-table>
</a-card> </a-card>

View File

@@ -56,9 +56,7 @@ watch(
() => visible.value, () => visible.value,
(val) => { (val) => {
if (val) { if (val) {
const api = SystemStore.isRoot ? Api.admin.checkSettlement : Api.merchant.getTaskSettltment; const api = SystemStore.isRoot ? Api.admin.checkSettlement : Api.merchant.getTaskSettltment;
api({id: task.task_id || task.id}).then(({data}) => { api({id: task.task_id || task.id}).then(({data}) => {
TaskSettltment.length = 0; TaskSettltment.length = 0;
TaskSettltment.push(...data.map((v, index) => ({ TaskSettltment.push(...data.map((v, index) => ({
@@ -71,17 +69,21 @@ watch(
selectedKeys.value = data.filter(v => v.is_check === 1).map(v => v.id); selectedKeys.value = data.filter(v => v.is_check === 1).map(v => v.id);
console.log(selectedKeys.value); console.log(selectedKeys.value);
} }
sumData();
}); });
} }
} }
) )
const sum = ref(0); const sum = ref(0);
const coin = ref(0);
const sumData = async () => { const sumData = async () => {
const api = SystemStore.isRoot ? Api.admin.settlement : Api.merchant.jsTask const api = SystemStore.isRoot ? Api.admin.interventionJsTask : Api.merchant.jsTask
const {data: {real_coin}} = await api({ const {data: {real_coin, coin: _coin}} = await api({
id: task.id, id: task.id,
ids: TaskSettltment.filter(v => selectedKeys.value.includes(v.id)).map(v => v.id) ids: TaskSettltment.filter(v => selectedKeys.value.includes(v.id)).map(v => v.id)
}); });
coin.value = _coin;
sum.value = real_coin; sum.value = real_coin;
} }
@@ -166,11 +168,11 @@ const confirmTask = async () => {
该子任务需结算 该子任务需结算
<div class="text-[#165DFF] text-[16px]">¥ <div class="text-[#165DFF] text-[16px]">¥
{{ {{
selectedKeys.length > 0 ? sum : task.coin / 100 selectedKeys.length > 0 ? sum : coin
}} }}
</div> </div>
<div class="text-[14px] text-[#4E5969]" v-if="selectedKeys.length > 0"> <div class="text-[14px] text-[#4E5969]" v-if="selectedKeys.length > 0">
{{ task.coin / 100 }} {{ coin }}
<span v-for="v in selectedKeys">- {{ TaskSettltment.find(k => k.id === v)?.discount }}</span> <span v-for="v in selectedKeys">- {{ TaskSettltment.find(k => k.id === v)?.discount }}</span>
= {{ = {{
sum sum