feat: 新增账期价格初审 · 价格审核

This commit is contained in:
lonewolfyx 2026-03-12 13:53:49 +08:00
parent bbf3f48e92
commit a84331c64d
4 changed files with 316 additions and 2 deletions

View File

@ -45,4 +45,32 @@ export const directorLastReviewQuota = (query) => {
url: '/bussiness/baseusercredithistory/goods-credit-limit-repeatedly-review',
params: query,
})
}
// 价格审核列表
export const getPriceChangeReviewList = (data, query) => {
return request({
method: 'post',
url: '/bussiness/baseusercredithistory/goods-credit-line-initial-review-list',
params: query,
data
})
}
// 价格审核 的回退
export const putBackDataPrice = (data) => {
return request({
method: 'put',
url: '/bussiness/businessgoods/goods-credit-line-initial-review-back',
data,
})
}
// 价格审核(副总监初审)
export const directorReviewPrice = (query) => {
return request({
method: 'put',
url: 'bussiness/businessgoods/goods-credit-line-initial-review',
params: query,
})
}

View File

@ -0,0 +1,115 @@
<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.warehouseName }}</text>
</view>
<view class="label">
<text>新考核价(,含税):</text>
<text>{{ row.checkPrice }}</text>
</view>
<view class="label">
<text>新开票价(,含税):</text>
<text>{{ row.invoicePrice }}</text>
</view>
<view class="label">
<text>原考核价(,无税):</text>
<text>{{ row.oldCheckPrice }}</text>
</view>
<view class="label">
<text>原开票价(,无税):</text>
<text>{{ row.oldInvoicePrice }}</text>
</view>
<view class="label">
<text>状态:</text>
<text>{{ row.state }}</text>
</view>
<view class="label">
<text>更新日期:</text>
<text>{{ row.updateTime }}</text>
</view>
<view class="label">
<text></text>
<button class="mini-btn" size="mini" type="primary" @click="handleReview(row)">查看</button>
</view>
</view>
</view>
</uni-collapse-item>
</uni-collapse>
</uni-drawer>
<PriceReview ref="PriceReviewRef" @refresh="handleQuery"/>
</template>
<script setup>
import {defineExpose, defineOptions, ref} from 'vue'
import {getPriceChangeReviewList} from '../../../../api/AccountPricePreliminaryRreview.js'
import PriceReview from "./components/PriceReview.vue";
//
defineOptions({
name: "Price"
})
const width = ref(document.documentElement.clientWidth || document.body.clientWidth)
const queryParams = ref({})
const tableData = ref([])
const total = ref()
const paging = ref({
pageNum: 1,
pageSize: 100,
})
const drawerContainerRef = ref()
const PriceReviewRef = ref()
const handleQuery = async () => {
uni.showLoading({
title: '加载中'
});
const {rows, total: count} = await getPriceChangeReviewList(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: 1
}
await handleQuery()
}
defineExpose({openDrawer})
const hideDrawer = () => {
drawerContainerRef.value.close()
}
const handleReview = (data) => {
PriceReviewRef.value.openDrawer(data)
}
</script>

View File

@ -0,0 +1,169 @@
<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.cbusinessname" title="商业公司名称:" type="line"/>
<uni-section :subTitle="queryParams.goodsName" title="商品:" type="line"/>
<uni-section :subTitle="queryParams.warehouseName" title="发货仓库:" type="line"/>
<uni-section :subTitle="queryParams.execDate" title="新价格执行日期:" type="line"/>
<uni-section :subTitle="`${queryParams.checkPrice} - 原考核价(元,含税)${queryParams.oldCheckPrice ?? 0}`"
title="考核价(元,含税):" type="line"/>
<uni-section :subTitle="`${queryParams.invoicePrice} - 原销售价(元,含税)${queryParams.oldInvoicePrice ?? 0}`"
title="销售价(元,含税):" type="line"/>
<uni-section :subTitle="`${queryParams.middlePrice} - 原中标价(元,含税)${queryParams.oldMiddlePrice ?? 0}`"
title="中标价(元,含税):" type="line"/>
<uni-section :subTitle="queryParams.taxRate" title="税率:" type="line"/>
<uni-section :subTitle="queryParams.taxLessPrice" title="销售价(元,无税):" 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, defineOptions, ref} from 'vue'
import {
directorLastReviewQuota,
directorReviewPrice,
putBackDataLastPaymentOrQuota,
putBackDataPrice
} from "../../../../../api/AccountPricePreliminaryRreview";
//
defineOptions({
name: 'PriceReview'
})
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 = (data) => {
drawerContainerRef.value.open()
queryParams.value = {
...data,
cbusinessname: data.userName
}
}
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 putBackDataPrice({
backReasonCredit: queryParams.value.backReasonCredit,
businessGoodsHistId: queryParams.value.businessGoodsHistId,
});
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 directorReviewPrice({
businessGoodsHistId: queryParams.value.businessGoodsHistId
})
uni.showToast({
title: '操作成功',
icon: 'none',
duration: 2000
});
uni.hideLoading()
hideDrawer()
emit('refresh')
}
}
})
}
</script>

View File

@ -70,8 +70,7 @@
<!-- 额度审核 -->
<CreditLimit ref="CreditLimitRef"/>
<!-- 价格审核 -->
<Price ref="PriceRef"/>
</view>
</template>
@ -86,6 +85,7 @@ import UniForms from "../../../uni_modules/uni-forms/components/uni-forms/uni-fo
import {getPricePreliminaryReviewList} from "../../../api/AccountPricePreliminaryRreview";
import AccountPeriod from "./children/AccountPeriod.vue";
import CreditLimit from "./children/CreditLimit.vue";
import Price from "./children/Price.vue";
defineOptions({
name: "AccountPricePreliminaryRreview"
@ -102,6 +102,7 @@ const paging = ref({
const AccountPeriodRef = ref()
const CreditLimitRef = ref()
const PriceRef = ref()
const handleQuery = async () => {
const data = await getPricePreliminaryReviewList(queryParams.value, paging.value)
@ -123,5 +124,6 @@ const handleShowCreditLimit = (item) => {
}
const handleShowPrice = (item) => {
PriceRef.value.openDrawer(item)
}
</script>