Commit 5f1a210e by Sweet Zhang

完成出账对接

parent 8f8977d8
......@@ -87,4 +87,14 @@ export function deletePolicyCommission(data) {
})
}
// 更新出账状态
// /csf/api/fortune/update/status
export function updatePolicyFortuneStatus(data) {
return request({
url: '/csf/api/fortune/update/status',
method: 'post',
data: data
})
}
......@@ -82,7 +82,7 @@
<el-table-column prop="status" label="出账状态" width="100">
<template #default="{ row }">
<el-tag :type="getStatusType(row.status)">
{{ row.status }}
{{convertStatusToDict(row.status) }}
</el-tag>
</template>
</el-table-column>
......@@ -165,7 +165,6 @@
<SuccessFilled />
</el-icon>
<p style="margin-top: 16px; font-size: 16px;">出账操作已完成!</p>
<p style="margin-top: 8px; color: #666;">已成功处理 {{ selectedRows.length }} 条记录</p>
</div>
<template #footer>
<el-button type="primary" @click="generateSalarySlips">生成薪资单</el-button>
......@@ -179,7 +178,7 @@
import { ref, reactive, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { SuccessFilled } from '@element-plus/icons-vue'
import { getReferrerFortuneList } from '@/api/financial/commission'
import { getReferrerFortuneList,updatePolicyFortuneStatus } from '@/api/financial/commission'
// 查询参数
const queryParams = reactive({
......@@ -237,6 +236,15 @@ const getList = async () => {
}
}
const getStatusType = (status) => {
const types = {
0: 'warning',
1: 'success',
2: 'info'
}
return types[status] || 'info'
}
// 查询
const handleQuery = () => {
queryParams.pageNo = 1
......@@ -313,12 +321,12 @@ const completeBilling = async () => {
'提示',
{ type: 'warning' }
)
console.log(selectedRows.value)
const arr = selectedRows.value.map(item => item.fortuneAccountBizId)
// 调用出账API
// await api.completeBilling(selectedRows.value.map(item => item.id))
await updateStatus(arr)
// 显示完成弹窗
billingCompleteDialogVisible.value = true
} catch (error) {
if (error !== 'cancel') {
......@@ -371,18 +379,58 @@ const formatCurrency = (amount) => {
}).format(amount)
}
// 获取状态标签类型
const getStatusType = (status) => {
const types = {
pending: 'warning',
completed: 'success',
cancelled: 'danger'
import { listType } from '@/api/system/dict/type'
const dictLists = ref([])
// 获取出账状态字典值
const getDictLists = () => {
return new Promise((resolve, reject) => {
listType({typeList: ['csf_fortune_status']}).then(res => {
if (res.code === 200 && res.data) {
const dictData = res.data.find(item => item.dictType === 'csf_fortune_status');
dictLists.value = dictData?.dictItemList || [];
console.log('获取到的字典数据:', dictLists.value);
resolve(dictLists.value);
} else {
dictLists.value = [];
resolve([]);
}
}).catch(error => {
console.error('获取状态列表失败:', error);
dictLists.value = [];
reject(error);
});
});
}
// 返回数据中状态需要转换为字典值
const convertStatusToDict = (status) => {
const dictItem = dictLists.value.find(item => item.itemValue == status);
return dictItem?.itemLabel ?? status;
}
// 更新出账状态
const updateStatus = async (row) => {
try {
const res = await updatePolicyFortuneStatus({
fortuneBizIdList: row,
status: 2
});
console.log(res)
if (res.code === 200) {
// 显示完成弹窗
billingCompleteDialogVisible.value = true
getList()
} else {
ElMessage.error(res.msg)
}
} catch (error) {
}
return types[status] || 'info'
}
// 初始化
onMounted(() => {
getDictLists()
getList()
})
</script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment