Browse Source

拉代码

zhangyong/milestone-20250913-现金管理
ZhangYong 1 month ago
parent
commit
6258a36216
  1. BIN
      src/assets/images/已驳回.png
  2. 18
      src/components/MoneyManage/ProductSelect.vue
  3. 52
      src/views/moneyManage/executor/executor.vue
  4. 14
      src/views/moneyManage/receiveDetail/receiveDetail.vue
  5. 151
      src/views/moneyManage/refundDetail/refundCharge.vue
  6. 145
      src/views/moneyManage/refundDetail/refundFinance.vue
  7. 148
      src/views/moneyManage/refundDetail/refundHeader.vue
  8. 41
      src/views/moneyManage/refundDetail/refundService.vue

BIN
src/assets/images/已驳回.png

After

Width: 46  |  Height: 46  |  Size: 2.8 KiB

18
src/components/MoneyManage/ProductSelect.vue

@ -244,17 +244,30 @@ const clickmenu = (index) => {
activeIndex.value = activeIndex.value === index ? -1 : index;
}
const resetSelect = () => {
selectedValue.value = ''; //
selectedItem.value = ''; //
isOpen.value = false; //
coinisOpen.value = false; //
productisOpen.value = false; //
activeIndex.value = -1; //
};
watch(() => props.modelValue, (newVal) => {
selectedItem.value = newVal;
selectedValue.value = newVal;
}, { immediate: true });
onMounted(async () => {
console.log('打开组件', props.modelValue);
selectedValue.value = props.modelValue;
selectedItem.value = selectedValue.value || '';
document.addEventListener('click', handleGlobalClick); //
});
onUnmounted(() => {
selectedValue.value = '';
document.removeEventListener('click', handleGlobalClick); //
});
defineExpose({ resetSelect });
</script>
<style scoped lang="scss">
.productContent {
@ -298,7 +311,7 @@ onUnmounted(() => {
top: 100%;
left: 0;
width: 160%;
max-height: 600px;
max-height: 700px;
min-height: 200px;
display: flex;
padding: 10px;
@ -426,7 +439,8 @@ onUnmounted(() => {
}
}
}
.fistlevel.selected .label {
.fistlevel.selected .label {
color: #175BE5;
}
}

52
src/views/moneyManage/executor/executor.vue

@ -11,16 +11,15 @@
</div>
<div class="search">
<el-text size="large" style="width:4vw;">所属地区</el-text>
<el-cascader style="width: 9vw;" v-model="searchForm.marketName" :options="market" placeholder="请选择所属地区"
clearable />
<el-cascader style="width: 9vw;" v-model="searchForm.markets" :options="market" placeholder="请选择所属地区" clearable />
</div>
<div class="search">
<el-text size="large" style="width:4vw;">产品名称</el-text>
<el-cascader v-model="searchForm.goodsName" :options="productList" style="width: 10vw;" />
<el-cascader v-model="searchForm.goodsName" :options="productList" style="width: 10vw;" clearable />
</div>
<div class="search">
<el-text size="large" style="width:4vw;">退款币种</el-text>
<el-select v-model="searchForm.payType" style="width:9vw;">
<el-select v-model="searchForm.payType" style="width:9vw;" clearable>
<el-option v-for="item in currencies" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
@ -28,26 +27,26 @@
<div class="condition1">
<div class="search2">
<el-text size="large" style="width:4vw;">退款途径</el-text>
<el-select v-model="searchForm.refundChannels" style="width:9vw;">
<el-select v-model="searchForm.refundChannels" style="width:9vw;" clearable>
<el-option v-for="item in channelOptions" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</div>
<div class="search2">
<el-text size="large" style="width:4vw;">订单状态</el-text>
<el-select v-model="searchForm.statuses" style="width:9vw;">
<el-select v-model="searchForm.statuses" style="width:9vw;" clearable>
<el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
<div class="search2" style="width: 28vw;">
<el-text size="large" style="width:4vw;">退款时间</el-text>
<el-date-picker v-model="dateRange" type="datetimerange" range-separator="" start-placeholder="起始时间"
end-placeholder="结束时间" style="width:22vw;" @change="handleDatePickerChange"
:disabled-date="disabledDate" :default-time="defaultTime" />
end-placeholder="结束时间" style="width:22vw;" @change="handleDatePickerChange" clearable
:disabled-date="disabledDate" :default-time="defaultTime" />
</div>
<div>
<el-button type="primary" @click="getRefund">查询</el-button>
<el-button type="editRow" @click="reset">重置</el-button>
<el-button type="success" @click="reset">重置</el-button>
<!-- <el-button type="warning">导出excel</el-button>
<el-button type="primary">查看导出列表</el-button> -->
</div>
@ -59,7 +58,7 @@
<el-table-column type="index" label="序号" width="60" fixed="left" />
<el-table-column prop="name" label="Homily ID" width="120" fixed="left" />
<el-table-column prop="jwcode" label="姓名" width="120" fixed="left" show-overflow-tooltip />
<el-table-column prop="market" label="所属地区" width="120" />
<el-table-column prop="marketName" label="所属地区" width="120" />
<el-table-column prop="goodsName" label="产品名称" width="120" />
<el-table-column prop="goodNum" label="产品数量" width="120" />
<el-table-column prop="refundType" label="退款方式" width="120">
@ -123,8 +122,7 @@
</el-table-column>
</el-table>
<el-pagination v-model:current-page="pagination.pageNum" v-model:page-size="pagination.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="pagination.total" style="margin-top: 1vh;"
@size-change="handlePageSizeChange" @current-change="handleCurrentChange" />
layout="total, sizes, prev, pager, next, jumper" :total="pagination.total" style="margin-top: 1vh;" />
</el-card>
<el-dialog v-model="showEdit" class="edit" overflow draggable style="width: 40vw;">
@ -140,7 +138,7 @@
</div>
<div class="dialog-item">
<el-text style="width:4vw;">所属地区</el-text>
<el-input v-model="editRow.market" style="width:10vw;" disabled />
<el-input v-model="editRow.marketName" style="width:10vw;" disabled />
</div>
<div class="dialog-item">
<el-text style="width:4vw;">产品名称</el-text>
@ -149,9 +147,9 @@
<div class="dialog-item">
<el-text style="width:4vw;">退款类型</el-text>
<el-select v-model="editRow.refundModel" style="width:10vw;" disabled>
<el-option label="全部退款" :value="0"></el-option>
<el-option label="部分退款" :value="1"></el-option>
</el-select>
<el-option label="全部退款" :value="0"></el-option>
<el-option label="部分退款" :value="1"></el-option>
</el-select>
</div>
<div class="dialog-item">
<el-text style="width:4vw;">付款币种</el-text>
@ -262,7 +260,8 @@ const pagination = ref({
const market = ref([])
const uploadRef = ref(null)
const searchForm = ref({
jwcode: ''
jwcode: '',
markets:[]
})
const showEdit = ref(false)
const editForm = ref({
@ -301,6 +300,7 @@ const getRefund = async function () {
})
tableData.value = result.data.list || []
pagination.value.total = result.data.total || 0
} catch (error) {
ElMessage.error(error.message || '查询失败')
}
@ -308,6 +308,10 @@ const getRefund = async function () {
//
const submitRefund = async function () {
try {
if(typeof editForm.value.refundAmount !== 'number'){
ElMessage.error('请输入数字')
return
}
const params = {
refundVoucher: editForm.value.imageUrl,
refundTime: editForm.value.refundTime ? dayjs(editForm.value.refundTime).format('YYYY-MM-DD HH:mm:ss') : "",
@ -352,7 +356,7 @@ const getMarket = async function () {
: null;
return {
value: child.name,
value: child.id,
label: child.name,
children: grandchildren
};
@ -643,18 +647,18 @@ const productList = [
]
const defaultTime = [
new Date(2000, 1, 1, 0, 0, 0),
new Date(2000, 2, 1, 23, 59, 59),
new Date(2000, 1, 1, 0, 0, 0),
new Date(2000, 2, 1, 23, 59, 59),
]
const disabledDate = (time) => {
const limitDate = new Date(2025, 0, 1);
return time.getTime() < limitDate.getTime();
const limitDate = new Date(2025, 0, 1);
return time.getTime() < limitDate.getTime();
}
const reset = function () {
searchForm.value = {
jwcode: '',
market: searchForm.value.market,
statuses: searchForm.value.statuses
market: [],
statuses: []
}
dateRange.value = []
getRefund()

14
src/views/moneyManage/receiveDetail/receiveDetail.vue

@ -297,12 +297,12 @@
<el-input v-model="addFormData.activity" placeholder="请输入活动名称" />
</el-form-item>
<el-form-item label="产品名称" required @change="ifGold">
<ProductSelect v-model="addFormData.goodsName"></ProductSelect>
<ProductSelect ref="productSelectRef" v-model="addFormData.goodsName"></ProductSelect>
</el-form-item>
<el-form-item v-show="!isGold" label="产品数量" required>
<div style="padding-right: 50px; display: flex;">
<el-input style="padding-right: 10px;" v-model="addFormData.goodNum" placeholder="请输入产品数量" />
<span style="color: #999999;"></span>
<span style="color: #999999;"></span>
</div>
</el-form-item>
<div v-show="isGold" style="margin-bottom: 15px; display: flex;">
@ -826,6 +826,7 @@ const addFormData = ref({
market: '',
permanentGold: 0,
freeGold: 0,
goodsName: ''
})
const isGold = ref(false)
const ifGold = () => {
@ -885,7 +886,10 @@ const openRejectReason = (reason) => {
}
const uploadRef = ref()
const addOrEdit = ref(0) // 1 2
const productSelectRef = ref(null);
const openAddForm = (row) => {
productSelectRef.value?.resetSelect();
if (row.jwcode) {
console.log('编辑回显数据', row);
addOrEdit.value = 2
@ -896,7 +900,9 @@ const openAddForm = (row) => {
} else {
addOrEdit.value = 1
addFormData.value = {}
addFormData.value = {
goodsName: ''
}
addFormisible.value = true
}
}
@ -1001,7 +1007,7 @@ const beforeUpload = (rawFile) => {
if (rawFile.type !== 'image/jpeg' && rawFile.type !== 'image/png') {
ElMessage.error('图片必须是jpg或png类型!')
return false
} else if (rawFile.size / 1024 / 1024 > 1) {
} else if (rawFile.size / 1024 / 1024 > 2) {
ElMessage.error('图片大小不能超过 2MB!')
return false
}

151
src/views/moneyManage/refundDetail/refundCharge.vue

@ -61,7 +61,7 @@
<el-table-column type="index" label="序号" width="60" fixed="left" />
<el-table-column prop="name" label="Homily ID" width="120" fixed="left" />
<el-table-column prop="jwcode" label="姓名" width="120" fixed="left" show-overflow-tooltip />
<el-table-column prop="market" label="所属地区" width="120" />
<el-table-column prop="marketName" label="所属地区" width="120" />
<el-table-column prop="goodsName" label="产品名称" width="130" show-overflow-tooltip />
<el-table-column prop="goodNum" label="产品数量" width="120" />
<el-table-column prop="refundModel" label="退款方式" width="120">
@ -125,7 +125,7 @@
</div>
<div class="center-item">
<el-text style="width:4vw;" size="small">所属地区</el-text>
<el-input v-model="auditRow.market" size="small" style="width:10vw;" disabled />
<el-input v-model="auditRow.marketName" size="small" style="width:10vw;" disabled />
</div>
<div class="center-item">
<el-text style="width:4vw;" size="small">产品名称</el-text>
@ -210,7 +210,7 @@
</div>
</el-dialog>
<el-dialog v-model="showSteps" title="唉!!!" overflow draggable width="1206px" height="506px" :style="{
<el-dialog v-model="showSteps" title="退款进度" overflow draggable width="1206px" height="506px" :style="{
backgroundImage: 'url(/src/assets/images/背景图.png)',
backgroundSize: 'cover',
backgroundPosition: 'center'
@ -218,72 +218,69 @@
<div class="steps">
<div class="steps-content">
<el-steps :active="currentStep" align-center>
<el-step title="提交人">
<el-step>
<template #title>
<div>提交人<br>{{ submitterName }}</div>
<div>
提交人<br>{{ submitterName || '未知提交人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep === 1" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 1" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img src="@/assets/images/已审核.png" alt="已完成">
</template>
</el-step>
<el-step>
<template #title>
<div>地区财务<br>{{ areaFinance }}</div>
<div>
地区财务<br>{{ areaFinance || '未记录审核人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep < 2" src="@/assets/images/还没传到.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 2" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 2" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 12" src="@/assets/images/已驳回.png" alt="已驳回">
<img v-else-if="currentStep === 2" src="@/assets/images/待审核.png" alt="待审核">
<img v-else-if="currentStep > 2 && currentStep < 7" src="@/assets/images/已审核.png" alt="已审核">
<img v-else src="@/assets/images/还没传到.png" alt="未开始">
</template>
</el-step>
<el-step>
<template #title>
<div>地区负责人<br>{{ areaCharge }}</div>
<div>
地区负责人<br>{{ areaCharge || '未记录审核人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep < 3" src="@/assets/images/还没传到.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 3" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 3" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 22" src="@/assets/images/已驳回.png" alt="已驳回">
<img v-else-if="currentStep === 3" src="@/assets/images/待审核.png" alt="待审核">
<img v-else-if="currentStep > 3 && currentStep < 7" src="@/assets/images/已审核.png" alt="已审核">
<img v-else src="@/assets/images/还没传到.png" alt="未开始">
</template>
</el-step>
<el-step>
<template #title>
<div>总部财务<br>{{ headFinance }}</div>
<div>
总部财务<br>{{ headFinance || '未记录审核人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep < 4" src="@/assets/images/还没传到.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 4" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 4" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 32" src="@/assets/images/已驳回.png" alt="已驳回">
<img v-else-if="currentStep === 4" src="@/assets/images/待审核.png" alt="待审核">
<img v-else-if="currentStep > 4 && currentStep < 7" src="@/assets/images/已审核.png" alt="已审核">
<img v-else src="@/assets/images/还没传到.png" alt="未开始">
</template>
</el-step>
<el-step>
<template #title>
<div>指定执行人<br>{{ executor }}</div>
<div>
指定执行人<br>{{ executor || '未记录执行人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep < 5" src="@/assets/images/还没传到.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 5" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 5" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 5" src="@/assets/images/待审核.png" alt="待处理">
<img v-else-if="currentStep === 6" src="@/assets/images/已审核.png" alt="已完成">
<img v-else src="@/assets/images/还没传到.png" alt="未开始">
</template>
</el-step>
</el-steps>
@ -311,6 +308,7 @@ const searchForm = ref({
jwcode: '',
markets: []
})
const isReject = ref(false)//
const addForm = ref({
remark: ''
})
@ -332,6 +330,16 @@ const areaCharge = ref('')// 地区负责人
const headFinance = ref('')//
const executor = ref('')//
const uploadRef = ref(null)
const statusStepMap = {
10: [2, false],
12: [12, true],
20: [3, false],
22: [22, true],
30: [4, false],
32: [32, true],
40: [5, false],
41: [6, false]
}
const currencies = ref([
{
value: '新币',
@ -521,7 +529,8 @@ const handleReject = async function () {
status: 22,
rejectReason: addForm.value.remark,
areaCharge: adminData.value.adminName,
auditId: auditRow.value.auditId
auditId: auditRow.value.auditId,
orderCode:auditRow.value.orderCode
}
const result = await API({
url: '/Money/review',
@ -531,45 +540,36 @@ const handleReject = async function () {
ElMessage.success('审核驳回')
showAudit.value = false
getRefund()
addForm.value.remark = ''
showReject.value = false
}
} catch (error) {
ElMessage.error(error.message || '审核失败')
}
}
const showStep = function (row) {
if (!hasMenuPermission(menuTree.value, permissionMapping.refundChargeProgShow)) {
ElMessage.error('无此权限');
return;
if (!hasMenuPermission(menuTree.value, permissionMapping.refundFinanceProgShow)) {
ElMessage.error('无此权限')
return
}
console.log("row", row)
currentStep.value = 1;
if (row.status === 41) {
executor.value = row.executorName
currentStep.value = 6;
} else {
if (row.areaServise !== null && row.areaServise !== '') {
submitterName.value = row.areaServise
console.log(submitterName.value)
currentStep.value = 2;
}
if (row.areaFinance !== null && row.areaFinance !== '') {
areaFinance.value = row.areaFinance
console.log(areaFinance.value)
currentStep.value = 3;
}
if (row.areaCharge !== null && row.areaCharge !== '') {
areaCharge.value = row.areaCharge
console.log(areaCharge.value)
currentStep.value = 4;
}
if (row.headFinance !== null && row.headFinance !== '') {
headFinance.value = row.headFinance
console.log(headFinance.value)
currentStep.value = 5;
}
isReject.value = false
submitterName.value = row.areaServise || ''
areaFinance.value = row.areaFinance || ''
areaCharge.value = row.areaCharge || ''
headFinance.value = row.headFinance || ''
executor.value = row.executorName || ''
currentStep.value = 1
const status = row.status
if (statusStepMap[status]) {
const [step, reject] = statusStepMap[status]
currentStep.value = step
isReject.value = reject
}
console.log("当前步骤:", currentStep.value);
showSteps.value = true;
console.log('步骤条状态',currentStep.value)
showSteps.value = true
}
const productList = [
{
@ -717,7 +717,7 @@ const getMarket = async function () {
: null;
return {
value: child.name,
value: child.id,
label: child.name,
children: grandchildren
};
@ -736,8 +736,8 @@ const hideReject = function () {
const reset = function () {
searchForm.value = {
jwcode: '',
market: searchForm.value.market,
statuses: searchForm.value.statuses
market: [],
statuses: []
}
dateRange.value = []
getRefund()
@ -755,7 +755,6 @@ const disabledDate = (time) => {
return time.getTime() < limitDate.getTime();
}
onMounted(() => {
console.log('???????????????????', adminData.value)
getRefund()
getMarket()
})
@ -807,6 +806,8 @@ onMounted(() => {
.audit2 {
display: flex;
justify-content: center;
height:auto;
min-height:40vh;
.top {
@ -873,7 +874,7 @@ onMounted(() => {
.bottom {
width: 30vw;
height: 5vh;
height: 12vh;
.bottom-item {
display: flex;

145
src/views/moneyManage/refundDetail/refundFinance.vue

@ -60,7 +60,7 @@
<el-table-column type="index" label="序号" width="60" fixed="left" />
<el-table-column prop="jwcode" label="Homily ID" width="120" fixed="left" />
<el-table-column prop="name" label="姓名" width="120" fixed="left" show-overflow-tooltip />
<el-table-column prop="market" label="所属地区" width="120" />
<el-table-column prop="marketName" label="所属地区" width="120" />
<el-table-column prop="activity" label="活动名称" width="120px" show-overflow-tooltip />
<el-table-column prop="goodsName" label="产品名称" width="130" show-overflow-tooltip />
<el-table-column prop="goodNum" label="产品数量" width="120" />
@ -125,7 +125,7 @@
</div>
<div class="center-item">
<el-text style="width:4vw;" size="small">所属地区</el-text>
<el-input v-model="auditRow.market" size="small" style="width:10vw;" disabled />
<el-input v-model="auditRow.marketName" size="small" style="width:10vw;" disabled />
</div>
<div class="center-item">
<el-text style="width:4vw;" size="small">产品名称</el-text>
@ -210,7 +210,7 @@
</div>
</el-dialog>
<el-dialog v-model="showSteps" title="唉!!!" overflow draggable width="1206px" height="506px" :style="{
<el-dialog v-model="showSteps" title="退款进度" overflow draggable width="1206px" height="506px" :style="{
backgroundImage: 'url(/src/assets/images/背景图.png)',
backgroundSize: 'cover',
backgroundPosition: 'center'
@ -218,72 +218,69 @@
<div class="steps">
<div class="steps-content">
<el-steps :active="currentStep" align-center>
<el-step title="提交人">
<el-step>
<template #title>
<div>提交人<br>{{ submitterName }}</div>
<div>
提交人<br>{{ submitterName || '未知提交人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep === 1" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 1" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img src="@/assets/images/已审核.png" alt="已完成">
</template>
</el-step>
<el-step>
<template #title>
<div>地区财务<br>{{ areaFinance }}</div>
<div>
地区财务<br>{{ areaFinance || '未记录审核人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep < 2" src="@/assets/images/还没传到.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 2" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 2" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 12" src="@/assets/images/已驳回.png" alt="已驳回">
<img v-else-if="currentStep === 2" src="@/assets/images/待审核.png" alt="待审核">
<img v-else-if="currentStep > 2 && currentStep < 7" src="@/assets/images/已审核.png" alt="已审核">
<img v-else src="@/assets/images/还没传到.png" alt="未开始">
</template>
</el-step>
<el-step>
<template #title>
<div>地区负责人<br>{{ areaCharge }}</div>
<div>
地区负责人<br>{{ areaCharge || '未记录审核人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep < 3" src="@/assets/images/还没传到.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 3" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 3" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 22" src="@/assets/images/已驳回.png" alt="已驳回">
<img v-else-if="currentStep === 3" src="@/assets/images/待审核.png" alt="待审核">
<img v-else-if="currentStep > 3 && currentStep < 7" src="@/assets/images/已审核.png" alt="已审核">
<img v-else src="@/assets/images/还没传到.png" alt="未开始">
</template>
</el-step>
<el-step>
<template #title>
<div>总部财务<br>{{ headFinance }}</div>
<div>
总部财务<br>{{ headFinance || '未记录审核人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep < 4" src="@/assets/images/还没传到.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 4" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 4" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 32" src="@/assets/images/已驳回.png" alt="已驳回">
<img v-else-if="currentStep === 4" src="@/assets/images/待审核.png" alt="待审核">
<img v-else-if="currentStep > 4 && currentStep < 7" src="@/assets/images/已审核.png" alt="已审核">
<img v-else src="@/assets/images/还没传到.png" alt="未开始">
</template>
</el-step>
<el-step>
<template #title>
<div>指定执行人<br>{{ executor }}</div>
<div>
指定执行人<br>{{ executor || '未记录执行人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep < 5" src="@/assets/images/还没传到.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 5" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 5" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 5" src="@/assets/images/待审核.png" alt="待处理">
<img v-else-if="currentStep === 6" src="@/assets/images/已审核.png" alt="已完成">
<img v-else src="@/assets/images/还没传到.png" alt="未开始">
</template>
</el-step>
</el-steps>
@ -319,6 +316,7 @@ const addForm = ref({
const auditForm = ref({
refundType: ''
})
const isReject = ref(false)//
const showReject = ref(false)
const pagination = ref({
pageNum: 1,
@ -397,6 +395,16 @@ const payments = ref([{
label: 'Ipay88-Link平台'
}
])
const statusStepMap = {
10: [2, false],
12: [12, true],
20: [3, false],
22: [22, true],
30: [4, false],
32: [32, true],
40: [5, false],
41: [6, false]
}
const statusList = ref([
{
value: 20,
@ -497,7 +505,8 @@ const handleReject = async function () {
status: 12,
rejectReason: addForm.value.remark,
areaFinance: adminData.value.adminName,
auditId: auditRow.value.auditId
auditId: auditRow.value.auditId,
orderCode: auditRow.value.orderCode
}
const result = await API({
url: '/Money/finalReview',
@ -507,6 +516,8 @@ const handleReject = async function () {
ElMessage.success('审核驳回')
showAudit.value = false
getRefund()
addForm.value.remark = ''
showReject.value = false
}
} catch (error) {
ElMessage.error(error.message || '审核失败')
@ -745,7 +756,7 @@ const getMarket = async function () {
: null;
return {
value: child.name,
value: child.id,
label: child.name,
children: grandchildren
};
@ -759,39 +770,27 @@ const getMarket = async function () {
}
const showStep = function (row) {
if (!hasMenuPermission(menuTree.value, permissionMapping.refundFinanceProgShow)) {
ElMessage.error('无此权限');
return;
ElMessage.error('无此权限')
return
}
console.log("row", row)
currentStep.value = 1;
if (row.status === 41) {
executor.value = row.executorName
console.log('执行人', executor.value)
currentStep.value = 6;
} else {
if (row.areaServise !== null && row.areaServise !== '') {
submitterName.value = row.areaServise
console.log('提交人', submitterName.value)
currentStep.value = 2;
}
if (row.areaFinance !== null && row.areaFinance !== '') {
areaFinance.value = row.areaFinance
console.log('地区财务', areaFinance.value)
currentStep.value = 3;
}
if (row.areaCharge !== null && row.areaCharge !== '') {
areaCharge.value = row.areaCharge
console.log('地区负责人', areaCharge.value)
currentStep.value = 4;
}
if (row.headFinance !== null && row.headFinance !== '') {
headFinance.value = row.headFinance
console.log('总部财务', headFinance.value)
currentStep.value = 5;
}
isReject.value = false
submitterName.value = row.areaServise || ''
areaFinance.value = row.areaFinance || ''
areaCharge.value = row.areaCharge || ''
headFinance.value = row.headFinance || ''
executor.value = row.executorName || ''
currentStep.value = 1
const status = row.status
if (statusStepMap[status]) {
const [step, reject] = statusStepMap[status]
currentStep.value = step
isReject.value = reject
}
console.log("当前步骤:", currentStep.value);
showSteps.value = true;
console.log('步骤条状态',currentStep.value)
showSteps.value = true
}
const showAudit2 = function (row) {
auditRow.value = row
@ -800,8 +799,8 @@ const showAudit2 = function (row) {
const reset = function () {
searchForm.value = {
jwcode: '',
market: searchForm.value.market,
statuses: searchForm.value.statuses
market: [],
statuses: []
}
dateRange.value = []
getRefund()

148
src/views/moneyManage/refundDetail/refundHeader.vue

@ -60,7 +60,7 @@
<el-table-column type="index" label="序号" width="60" fixed="left" />
<el-table-column prop="name" label="Homily ID" width="120" fixed="left" />
<el-table-column prop="jwcode" label="姓名" width="120" fixed="left" show-overflow-tooltip />
<el-table-column prop="market" label="所属地区" width="120" />
<el-table-column prop="marketName" label="所属地区" width="120" />
<el-table-column prop="goodsName" label="产品名称" width="130" show-overflow-tooltip />
<el-table-column prop="goodNum" label="产品数量" width="120" />
<el-table-column prop="refundModel" label="退款方式" width="120">
@ -86,7 +86,7 @@
<el-button v-if="scope.row.status === 30" type="primary" text @click="showAudit(scope.row)">
审核
</el-button>
<el-button v-else type="primary" text @click="showStep">
<el-button v-else type="primary" text @click="showStep(scope.row)">
查看进度
</el-button>
</div>
@ -219,7 +219,7 @@
</div>
</el-dialog>
<el-dialog v-model="showSteps" title="唉!!!" overflow draggable width="1206px" height="506px" :style="{
<el-dialog v-model="showSteps" title="退款进度" overflow draggable width="1206px" height="506px" :style="{
backgroundImage: 'url(/src/assets/images/背景图.png)',
backgroundSize: 'cover',
backgroundPosition: 'center'
@ -227,72 +227,69 @@
<div class="steps">
<div class="steps-content">
<el-steps :active="currentStep" align-center>
<el-step title="提交人">
<el-step>
<template #title>
<div>提交人<br>{{ submitterName }}</div>
<div>
提交人<br>{{ submitterName || '未知提交人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep === 1" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 1" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img src="@/assets/images/已审核.png" alt="已完成">
</template>
</el-step>
<el-step>
<template #title>
<div>地区财务<br>{{ areaFinance }}</div>
<div>
地区财务<br>{{ areaFinance || '未记录审核人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep < 2" src="@/assets/images/还没传到.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 2" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 2" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 12" src="@/assets/images/已驳回.png" alt="已驳回">
<img v-else-if="currentStep === 2" src="@/assets/images/待审核.png" alt="待审核">
<img v-else-if="currentStep > 2 && currentStep < 7" src="@/assets/images/已审核.png" alt="已审核">
<img v-else src="@/assets/images/还没传到.png" alt="未开始">
</template>
</el-step>
<el-step>
<template #title>
<div>地区负责人<br>{{ areaCharge }}</div>
<div>
地区负责人<br>{{ areaCharge || '未记录审核人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep < 3" src="@/assets/images/还没传到.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 3" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 3" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 22" src="@/assets/images/已驳回.png" alt="已驳回">
<img v-else-if="currentStep === 3" src="@/assets/images/待审核.png" alt="待审核">
<img v-else-if="currentStep > 3 && currentStep < 7" src="@/assets/images/已审核.png" alt="已审核">
<img v-else src="@/assets/images/还没传到.png" alt="未开始">
</template>
</el-step>
<el-step>
<template #title>
<div>总部财务<br>{{ headFinance }}</div>
<div>
总部财务<br>{{ headFinance || '未记录审核人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep < 4" src="@/assets/images/还没传到.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 4" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 4" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 32" src="@/assets/images/已驳回.png" alt="已驳回">
<img v-else-if="currentStep === 4" src="@/assets/images/待审核.png" alt="待审核">
<img v-else-if="currentStep > 4 && currentStep < 7" src="@/assets/images/已审核.png" alt="已审核">
<img v-else src="@/assets/images/还没传到.png" alt="未开始">
</template>
</el-step>
<el-step>
<template #title>
<div>指定执行人<br>{{ executor }}</div>
<div>
指定执行人<br>{{ executor || '未记录执行人' }}
</div>
</template>
<template #icon>
<img v-if="currentStep < 5" src="@/assets/images/还没传到.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 5" src="@/assets/images/待审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep > 5" src="@/assets/images/已审核.png" alt="步骤图标"
style="width: 30px; height: 30px;">
<img v-if="currentStep === 5" src="@/assets/images/待审核.png" alt="待处理">
<img v-else-if="currentStep === 6" src="@/assets/images/已审核.png" alt="已完成">
<img v-else src="@/assets/images/还没传到.png" alt="未开始">
</template>
</el-step>
</el-steps>
@ -321,6 +318,7 @@ const searchForm = ref({
markets: [],
statuses: []
})
const isReject = ref(false)//
const addForm = ref({
remark: ''
})
@ -343,6 +341,16 @@ const areaFinance = ref('')// 地区财务
const areaCharge = ref('')//
const headFinance = ref('')//
const executor = ref('')//
const statusStepMap = {
10: [2, false],
12: [12, true],
20: [3, false],
22: [22, true],
30: [4, false],
32: [32, true],
40: [5, false],
41: [6, false]
}
const currencies = ref([
{
value: '新币',
@ -550,7 +558,8 @@ const handleReject = async function () {
status: 32,
rejectReason: addForm.value.remark,
headFinance: adminData.value.adminName,
auditId: auditRow.value.auditId
auditId: auditRow.value.auditId,
orderCode:auditRow.value.orderCode
}
const result = await API({
url: '/Money/finalReview',
@ -560,6 +569,8 @@ const handleReject = async function () {
ElMessage.success('审核驳回')
showAudit2.value = false
getRefund()
addForm.value.remark = ''
showReject.value = false
}
} catch (error) {
ElMessage.error(error.message || '审核失败')
@ -582,7 +593,7 @@ const getMarket = async function () {
: null;
return {
value: child.name,
value: child.id,
label: child.name,
children: grandchildren
};
@ -601,46 +612,35 @@ const hideReject = function () {
const reset = function () {
searchForm.value = {
jwcode: '',
market: searchForm.value.markets,
statuses: searchForm.value.statuses
market: [],
statuses: []
}
dateRange.value = []
getRefund()
}
const showStep = function (row) {
if (!hasMenuPermission(menuTree.value, permissionMapping.refundHeaderProgShow)) {
ElMessage.error('无此权限');
return;
if (!hasMenuPermission(menuTree.value, permissionMapping.refundFinanceProgShow)) {
ElMessage.error('无此权限')
return
}
console.log("row", row)
currentStep.value = 1;
if (row.status === 41) {
executor.value = row.executorName
currentStep.value = 6;
} else {
if (row.areaServise !== null && row.areaServise !== '') {
submitterName.value = row.areaServise
console.log(submitterName.value)
currentStep.value = 2;
}
if (row.areaFinance !== null && row.areaFinance !== '') {
areaFinance.value = row.areaFinance
console.log(areaFinance.value)
currentStep.value = 3;
}
if (row.areaCharge !== null && row.areaCharge !== '') {
areaCharge.value = row.areaCharge
console.log(areaCharge.value)
currentStep.value = 4;
}
if (row.headFinance !== null && row.headFinance !== '') {
headFinance.value = row.headFinance
console.log(headFinance.value)
currentStep.value = 5;
}
isReject.value = false
submitterName.value = row.areaServise || ''
areaFinance.value = row.areaFinance || ''
areaCharge.value = row.areaCharge || ''
headFinance.value = row.headFinance || ''
executor.value = row.executorName || ''
currentStep.value = 1
const status = row.status
if (statusStepMap[status]) {
const [step, reject] = statusStepMap[status]
currentStep.value = step
isReject.value = reject
}
console.log("当前步骤:", currentStep.value);
showSteps.value = true;
console.log('步骤条状态',currentStep.value)
showSteps.value = true
}
const productList = [
{
@ -897,7 +897,7 @@ onMounted(() => {
.bottom {
width: 30vw;
height: 7vh;
height: 12vh;
.bottom-item {
display: flex;

41
src/views/moneyManage/refundDetail/refundService.vue

@ -59,7 +59,7 @@
<el-table-column type="index" label="序号" width="60" fixed="left" />
<el-table-column prop="jwcode" label="Homily ID" width="120" fixed="left" />
<el-table-column prop="name" label="姓名" width="120" fixed="left" show-overflow-tooltip />
<el-table-column prop="market" label="所属地区" width="120" />
<el-table-column prop="marketName" label="所属地区" width="120" />
<el-table-column prop="activity" label="活动名称" width="120px" show-overflow-tooltip />
<el-table-column prop="goodsName" label="产品名称" width="130" show-overflow-tooltip />
<el-table-column prop="goodNum" label="产品数量" width="120" />
@ -81,10 +81,11 @@
<el-table-column prop="status" label="订单状态" width="120">
<template #default="scope">
{{
[10, 20, 30, 40].includes(scope.row.status) ? '审核中' :
[10].includes(scope.row.status) ? '已提交' :
[20, 30, 40].includes(scope.row.status) ? '进行中' :
[12, 22, 32].includes(scope.row.status) ? '已驳回' :
[11].includes(scope.row.status) ? '已撤回' :
scope.row.status === 41 ? '退款完成' : scope.row.status
scope.row.status === 41 ? '退款' : scope.row.status
}}
</template>
</el-table-column>
@ -247,8 +248,12 @@ const showError = ref(false)
const isKF = adminData.value.adminName.includes('客服')
const statusList = ref([
{
value: 'waiting',
label: '待审核',
value:'submitted',
label:'已提交',
},
{
value: 'back',
label: '已撤回',
},
{
value: 'pending',
@ -256,7 +261,11 @@ const statusList = ref([
},
{
value: 'completed',
label: '退款完成'
label: '已退款'
},
{
value:'rejected',
label:'已驳回'
}
])
//
@ -266,12 +275,16 @@ const getRefund = async function () {
return
}
try {
if (searchForm.value.statuses === 'completed') {
searchForm.value.statuses = [41]
} else if (searchForm.value.statuses === 'pending') {
searchForm.value.statuses = [20, 30, 40]
} else if (searchForm.value.statuses === 'waiting') {
if (searchForm.value.statuses === 'submitted') {
searchForm.value.statuses = [10]
} else if (searchForm.value.statuses === 'back') {
searchForm.value.statuses = [11]
} else if (searchForm.value.statuses === 'pending') {
searchForm.value.statuses = [20,30,40]
} else if(searchForm.value.statuses === 'completed') {
searchForm.value.statuses = [41]
} else if(searchForm.value.statuses === 'rejected') {
searchForm.value.statuses = [12,22,32]
}
const params = {
pageNum: pagination.value.pageNum,
@ -382,7 +395,7 @@ const getMarket = async function () {
: null;
return {
value: child.name,
value: child.id,
label: child.name,
children: grandchildren
};
@ -645,8 +658,8 @@ const productList = [
const reset = function () {
searchForm.value = {
jwcode: '',
market: searchForm.value.market,
statuses: searchForm.value.statuses
market: [],
statuses: []
}
dateRange.value = []
getRefund()

Loading…
Cancel
Save