feat: 新增账期价格复审 · 账期终审

This commit is contained in:
lonewolfyx 2026-03-16 10:19:29 +08:00
parent 1391726a36
commit 12ebcbed2f
4 changed files with 306 additions and 3 deletions

View File

@ -9,3 +9,22 @@ export const getPriceFinallReviewList = (data, query) => {
params: query, params: query,
}) })
} }
//账期额度复审列表(两个列表一个接口)
//账期列表type是0额度列表type是零1
export const getLastPaymentAndQuotaList = (data, query) => {
return request({
method: 'post',
url: '/bussiness/baseusercredithistory/goods-credit-period-repeatedly-review-list',
params: query,
data: data
})
}
export const directorLastReviewPayment = (query) => {
return request({
method: 'put',
url: '/bussiness/baseusercredithistory/goods-credit-period-repeatedly-review',
params: query,
})
}

View File

@ -0,0 +1,101 @@
<template>
<uni-drawer ref="drawerContainerRef" :width="width" mode="right">
<uni-nav-bar
:border="false"
:fixed="true"
left-icon="left"
status-bar
title="账期终审"
@clickLeft="hideDrawer"
/>
<uni-collapse ref="collapse">
<uni-collapse-item
v-for="row in tableData"
:key="row.creditHistId"
:title="row.shortName"
open
>
<view class="padding">
<view class="context">
<view class="label">
<text>货主:</text>
<text>{{ row.companyName }}</text>
</view>
<view class="label">
<text>状态:</text>
<text>{{ row.state }}</text>
</view>
<view class="label">
<text>老账期:</text>
<text>{{ row.oldCreditPeriod }}</text>
</view>
<view class="label">
<text>新账期:</text>
<text>{{ row.creditPeriod }}</text>
</view>
<view class="label">
<text>申请日期:</text>
<text>{{ row.addDate }}</text>
</view>
<view class="label">
<text></text>
<button class="mini-btn" size="mini" type="primary" @click="handleFinalReview(row)">查看</button>
</view>
</view>
</view>
</uni-collapse-item>
</uni-collapse>
</uni-drawer>
<AccountPeriodFinalReview ref="AccountPeriodFinalReviewRef" @refresh="handleQuery"/>
</template>
<script setup>
import {defineExpose, defineOptions, ref} from 'vue'
import {getLastPaymentAndQuotaList} from "../../../../api/AccountPriceFinallReview";
import AccountPeriodFinalReview from "./components/AccountPeriodReview.vue";
defineOptions({
name: "AccountPeriodFinal"
})
const width = ref(document.documentElement.clientWidth || document.body.clientWidth)
const drawerContainerRef = ref()
const queryParams = ref()
const tableData = ref([])
const total = ref(0)
const paging = ref({
pageNum: 1,
pageSize: 100,
})
const AccountPeriodFinalReviewRef = ref()
const handleQuery = async () => {
uni.showLoading({
title: '加载中'
});
const {rows, total: count} = await getLastPaymentAndQuotaList(queryParams.value, paging.value)
tableData.value = rows
total.value = count
uni.hideLoading()
}
const openDrawer = async (item) => {
drawerContainerRef.value.open()
queryParams.value = {
userId: item.userId,
type: 0
}
await handleQuery()
}
defineExpose({openDrawer})
const hideDrawer = () => {
drawerContainerRef.value.close()
}
const handleFinalReview = (item) => {
AccountPeriodFinalReviewRef.value.openDrawer(item)
}
</script>

View File

@ -0,0 +1,156 @@
<template>
<uni-drawer ref="drawerContainerRef" :width="width" mode="right">
<uni-nav-bar
:border="false"
:fixed="true"
left-icon="left"
status-bar
title="账期终审"
@clickLeft="hideDrawer"
/>
<view class="padding">
<uni-section :subTitle="queryParams.userName" title="商业公司名称:" type="line"/>
<uni-section :subTitle="queryParams.companyName" title="货主:" type="line"/>
<uni-section
:subTitle="`${queryParams.creditPeriod} - 现有信用账期:${queryParams.oldCreditPeriod}`"
:title="`${onCompanySelect(queryParams.companyId)}:`"
type="line"
/>
<uni-section :subTitle="queryParams.remark" title="备注:" type="line"/>
<uni-section class="margin-bottom" title="回退原因:" type="line">
<uni-easyinput v-model="queryParams.backReasonCredit" placeholder="请输入回退内容"/>
</uni-section>
<view class="flex">
<button class="mini-btn" size="mini" type="primary" @click="handleBack">回退</button>
<button class="mini-btn" size="mini" type="default" @click="handleSubmit">初审通过</button>
</view>
</view>
</uni-drawer>
</template>
<script setup>
import {defineEmits, defineExpose, ref} from 'vue'
import {putBackDataLastPaymentOrQuota} from "../../../../../api/AccountPricePreliminaryRreview";
import {directorLastReviewPayment} from "../../../../../api/AccountPriceFinallReview";
//
defineOptions({
name: 'AccountPeriodFinalReview'
})
const emit = defineEmits(['refresh'])
const width = ref(document.documentElement.clientWidth || document.body.clientWidth)
const queryParams = ref({})
const drawerContainerRef = ref()
const tableData = ref([])
const total = ref(0)
const paging = ref({
pageNum: 1,
pageSize: 100,
})
//
const onCompanySelect = (type) => {
switch (type) {
case '1':
return 'ZOP信用期限(天)'
case '2':
return 'GOP信用期限(天)'
case '3':
return 'LOP信用期限(天)'
case '4':
return 'HOP信用期限(天)'
default:
return '';
}
}
const openDrawer = async (data) => {
drawerContainerRef.value.open()
queryParams.value = data
}
defineExpose({openDrawer})
const hideDrawer = () => {
drawerContainerRef.value.close()
}
const handleBack = () => {
if (!queryParams.value.backReasonCredit) {
return uni.showToast({
title: '请填写回退内容',
icon: 'none',
})
}
uni.showModal({
title: '提示',
content: '您确定是否要回退记录?',
success: async function (res) {
if (res.confirm) {
uni.showLoading({
title: '加载中'
});
await putBackDataLastPaymentOrQuota({
backReasonCredit: queryParams.value.backReasonCredit,
creditHistId: queryParams.value.creditHistId,
});
uni.showToast({
title: '操作成功',
icon: 'none',
duration: 2000
});
uni.hideLoading()
hideDrawer()
emit('refresh')
}
}
})
}
const handleSubmit = () => {
uni.showModal({
title: '提示',
content: '您确认要进行审核通过吗?',
success: async function (res) {
if (res.confirm) {
uni.showLoading({
title: '加载中'
});
await directorLastReviewPayment({
creditHistId: queryParams.value.creditHistId
})
uni.showToast({
title: '操作成功',
icon: 'none',
duration: 2000
});
uni.hideLoading()
hideDrawer()
emit('refresh')
}
}
})
}
</script>

View File

@ -32,22 +32,30 @@
<uni-td>{{ item.areaName }}</uni-td> <uni-td>{{ item.areaName }}</uni-td>
<uni-td> <uni-td>
<view v-if="item.creditPeriod > 0"> <view v-if="item.creditPeriod > 0">
<button class="uni-button" size="mini" type="submit">编辑</button> <button class="uni-button" size="mini" type="submit" @click="handleAccountPeriodFinal(item)">
编辑
</button>
</view> </view>
</uni-td> </uni-td>
<uni-td> <uni-td>
<view v-if="item.creditLimit > 0"> <view v-if="item.creditLimit > 0">
<button class="uni-button" size="mini" type="submit">编辑</button> <button class="uni-button" size="mini" type="submit" @click="handleCreditLimitFinal(item)">
编辑
</button>
</view> </view>
</uni-td> </uni-td>
<uni-td> <uni-td>
<view v-if="item.price > 0"> <view v-if="item.price > 0">
<button class="uni-button" size="mini" type="submit">编辑</button> <button class="uni-button" size="mini" type="submit" @click="handlePriceFinal(item)">编辑
</button>
</view> </view>
</uni-td> </uni-td>
</uni-tr> </uni-tr>
</uni-table> </uni-table>
<AccountPeriodFinal ref="AccountPeriodFinalRef"/>
<CreditLimitFinal ref="CreditLimitFinalRef"/>
<PriceFinal ref="PriceFinalRef"/>
</view> </view>
</template> </template>
@ -60,6 +68,9 @@ import BusinessCompany from "../../../components/BusinessCompany.vue";
import UniForms from "../../../uni_modules/uni-forms/components/uni-forms/uni-forms.vue"; import UniForms from "../../../uni_modules/uni-forms/components/uni-forms/uni-forms.vue";
import LargeArea from "../../../components/LargeArea/LargeArea.vue"; import LargeArea from "../../../components/LargeArea/LargeArea.vue";
import {getPriceFinallReviewList} from "../../../api/AccountPriceFinallReview"; import {getPriceFinallReviewList} from "../../../api/AccountPriceFinallReview";
import AccountPeriodFinal from "./children/AccountPeriodFinal.vue";
import CreditLimitFinal from "./children/CreditLimitFinal.vue";
import PriceFinal from "./children/PriceFinal.vue";
defineOptions({ defineOptions({
name: "AccountPriceFinallReview" name: "AccountPriceFinallReview"
@ -75,6 +86,10 @@ const paging = ref({
pageSize: 100, pageSize: 100,
}) })
const AccountPeriodFinalRef = ref()
const CreditLimitFinalRef = ref()
const PriceFinalRef = ref()
const handleQuery = async () => { const handleQuery = async () => {
const data = await getPriceFinallReviewList(queryParams.value, paging.value) const data = await getPriceFinallReviewList(queryParams.value, paging.value)
tableData.value = data.rows tableData.value = data.rows
@ -85,4 +100,16 @@ const handleQuery = async () => {
onMounted(async () => { onMounted(async () => {
await handleQuery() await handleQuery()
}) })
const handleAccountPeriodFinal = (item) => {
AccountPeriodFinalRef.value.openDrawer(item)
}
const handleCreditLimitFinal = () => {
CreditLimitFinalRef.value.openDrawer(item)
}
const handlePriceFinal = () => {
PriceFinalRef.value.openDrawer(item)
}
</script> </script>