fix(approval): 修复审批列表和详情页的显示问题及错误提示
- 在审批列表中添加申领人信息显示 - 统一使用showDialog替换showToast和showFailToast进行错误提示 - 修复审批数量初始化逻辑,根据状态设置默认值 - 优化审批详情页的样式和布局 - 修正操作成功后的跳转路径
This commit is contained in:
parent
50715f07b8
commit
1914dacfe5
|
@ -1,6 +1,6 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, onMounted, computed } from 'vue'
|
import { ref, onMounted, computed } from 'vue'
|
||||||
import { showConfirmDialog, showSuccessToast, showFailToast, showToast, UploaderFileListItem, Popup, Picker, Field, Stepper } from 'vant'
|
import { showConfirmDialog, showDialog, UploaderFileListItem, Popup, Picker, Field, Stepper } from 'vant'
|
||||||
import axios from "axios"
|
import axios from "axios"
|
||||||
import { getApprovalGoodsCellApi, handleApprovalApi, handleApprovalAssetApi, openCabinetApi } from '@/common/apis/approval'
|
import { getApprovalGoodsCellApi, handleApprovalApi, handleApprovalAssetApi, openCabinetApi } from '@/common/apis/approval'
|
||||||
import type { ApprovalGoodsCellEntity, ApprovalGoodsEntity, HandleApprovalAssetRequestData, HandleApprovalRequestData } from '@/common/apis/approval/type'
|
import type { ApprovalGoodsCellEntity, ApprovalGoodsEntity, HandleApprovalAssetRequestData, HandleApprovalRequestData } from '@/common/apis/approval/type'
|
||||||
|
@ -122,7 +122,7 @@ onMounted(async () => {
|
||||||
// 初始化订单商品数据,添加approvalQuantity字段
|
// 初始化订单商品数据,添加approvalQuantity字段
|
||||||
orderGoods.value = (approvalStore.currentApproval.goodsList || []).map(item => ({
|
orderGoods.value = (approvalStore.currentApproval.goodsList || []).map(item => ({
|
||||||
...item,
|
...item,
|
||||||
approvalQuantity: item.approvalQuantity || item.applyQuantity
|
approvalQuantity: approvalStore.currentApproval?.status === 1 ? item.applyQuantity : item.approvalQuantity
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if (approvalStore.currentApproval.status !== 1) {
|
if (approvalStore.currentApproval.status !== 1) {
|
||||||
|
@ -142,18 +142,18 @@ onMounted(async () => {
|
||||||
if (result.code === 0) {
|
if (result.code === 0) {
|
||||||
approvalGoodsCells.value = result.data;
|
approvalGoodsCells.value = result.data;
|
||||||
} else {
|
} else {
|
||||||
showFailToast(result.msg || '获取审批商品格口信息失败');
|
showDialog({ title: '错误', message: result.msg || '获取审批商品格口信息失败' });
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('获取审批商品格口信息失败:', error);
|
console.error('获取审批商品格口信息失败:', error);
|
||||||
showFailToast('获取审批商品格口信息失败');
|
showDialog({ title: '错误', message: '获取审批商品格口信息失败' });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const handleOpenCell = async (approvalGoodsCellId: number) => {
|
const handleOpenCell = async (approvalGoodsCellId: number) => {
|
||||||
if (!approvalGoodsCellId) {
|
if (!approvalGoodsCellId) {
|
||||||
showFailToast('缺少格口信息');
|
showDialog({ title: '错误', message: '缺少格口信息' });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,12 +170,12 @@ const handleOpenCell = async (approvalGoodsCellId: number) => {
|
||||||
|
|
||||||
const result = await openCabinetApi(approvalGoodsCellId, data);
|
const result = await openCabinetApi(approvalGoodsCellId, data);
|
||||||
if (result.code !== 0) {
|
if (result.code !== 0) {
|
||||||
showFailToast(result.msg || '开启格口失败');
|
showDialog({ title: '错误', message: result.msg || '开启格口失败' });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
showSuccessToast('格口已开启');
|
showDialog({ message: '格口已开启' });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
showFailToast('请求失败');
|
showDialog({ title: '错误', message: '请求失败' });
|
||||||
} finally {
|
} finally {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
isButtonDisabled.value = false;
|
isButtonDisabled.value = false;
|
||||||
|
@ -210,12 +210,12 @@ const handleSubmit = async () => {
|
||||||
const { code, msg } = await handleApprovalAssetApi(formData.value)
|
const { code, msg } = await handleApprovalAssetApi(formData.value)
|
||||||
|
|
||||||
if (code === 0) {
|
if (code === 0) {
|
||||||
showSuccessToast('操作成功')
|
showDialog({ message: '操作成功' })
|
||||||
await showConfirmDialog({
|
await showConfirmDialog({
|
||||||
title: "操作成功",
|
title: "操作成功",
|
||||||
message: `审批处理已完成`
|
message: `审批处理已完成`
|
||||||
})
|
})
|
||||||
router.push('/approval/list')
|
router.push('/approvalAsset/list')
|
||||||
} else {
|
} else {
|
||||||
console.error('操作失败code:', code, 'msg:', msg)
|
console.error('操作失败code:', code, 'msg:', msg)
|
||||||
showConfirmDialog({
|
showConfirmDialog({
|
||||||
|
@ -288,7 +288,7 @@ const handleReject = () => {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<!-- 查看审批数量 -->
|
<!-- 查看审批数量 -->
|
||||||
<div v-else class="approval-quantity-view">
|
<div v-if="approvalStore.currentApproval?.status === 2" class="approval-quantity-view">
|
||||||
<span class="label">审批数量:</span>
|
<span class="label">审批数量:</span>
|
||||||
<span class="value">{{ item.approvalQuantity }}</span>
|
<span class="value">{{ item.approvalQuantity }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -305,13 +305,13 @@ const handleReject = () => {
|
||||||
<div class="product-name van-ellipsis">
|
<div class="product-name van-ellipsis">
|
||||||
{{ item.goodsName }}
|
{{ item.goodsName }}
|
||||||
</div>
|
</div>
|
||||||
<div class="product-name van-ellipsis">
|
<div class="van-ellipsis">
|
||||||
{{ item.shopName }}
|
{{ item.shopName }}
|
||||||
</div>
|
</div>
|
||||||
<div class="product-name van-ellipsis">
|
<div class="van-ellipsis">
|
||||||
{{ item.cabinetName }} - 格口{{ item.cellNo }}
|
{{ item.cabinetName }} - 格口{{ item.cellNo }}
|
||||||
</div>
|
</div>
|
||||||
<div class="product-name van-ellipsis">
|
<div class="van-ellipsis">
|
||||||
分配数量:{{ item.allocateQuantity }}
|
分配数量:{{ item.allocateQuantity }}
|
||||||
</div>
|
</div>
|
||||||
<div class="open-cell-btn">
|
<div class="open-cell-btn">
|
||||||
|
@ -384,6 +384,12 @@ const handleReject = () => {
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
height: auto;
|
height: auto;
|
||||||
padding: 5px 0;
|
padding: 5px 0;
|
||||||
|
|
||||||
|
.product-name {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #333;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.approval-quantity,
|
.approval-quantity,
|
||||||
|
@ -399,7 +405,11 @@ const handleReject = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.approval-quantity-view .value {
|
.approval-quantity-view .value {
|
||||||
font-weight: bold;
|
/* font-weight: bold; */
|
||||||
|
}
|
||||||
|
|
||||||
|
.approval-quantity-view {
|
||||||
|
justify-content: flex-end;
|
||||||
}
|
}
|
||||||
.price-row {
|
.price-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -415,8 +425,8 @@ const handleReject = () => {
|
||||||
|
|
||||||
.quantity {
|
.quantity {
|
||||||
color: #666;
|
color: #666;
|
||||||
margin-right: 20px;
|
/* margin-right: 20px;
|
||||||
font-size: 13px;
|
font-size: 13px; */
|
||||||
}
|
}
|
||||||
|
|
||||||
.upload-section {
|
.upload-section {
|
||||||
|
@ -460,7 +470,7 @@ const handleReject = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.audit-remark-field::v-deep .van-field__control {
|
.audit-remark-field::v-deep .van-field__control {
|
||||||
background-color: #fffbe6;
|
background-color: #ecf3fc;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
<div v-for="goods in item.goodsList" :key="goods.approvalGoodsId">
|
<div v-for="goods in item.goodsList" :key="goods.approvalGoodsId">
|
||||||
商品名称:{{ goods.goodsName }}
|
商品名称:{{ goods.goodsName }}
|
||||||
</div>
|
</div>
|
||||||
|
<div>申领人:{{ item.applyUserName }}</div>
|
||||||
<div>核销码:{{ item.code }}</div>
|
<div>核销码:{{ item.code }}</div>
|
||||||
<div>申请时间:{{ item.createTime }}</div>
|
<div>申请时间:{{ item.createTime }}</div>
|
||||||
<van-tag :type="statusTagType(item.status)">
|
<van-tag :type="statusTagType(item.status)">
|
||||||
|
@ -57,7 +58,7 @@
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, reactive } from 'vue'
|
import { ref, reactive } from 'vue'
|
||||||
import { showToast } from 'vant'
|
import { showDialog, showToast } from 'vant'
|
||||||
import { checkApprovalCodeApi, getApprovalAssetListApi } from '@/common/apis/approval'
|
import { checkApprovalCodeApi, getApprovalAssetListApi } from '@/common/apis/approval'
|
||||||
import type { SearchReturnApprovalAssetQuery, ReturnApprovalAssetDTO } from '@/common/apis/approval/type'
|
import type { SearchReturnApprovalAssetQuery, ReturnApprovalAssetDTO } from '@/common/apis/approval/type'
|
||||||
import type { PickerConfirmEventParams } from 'vant/es';
|
import type { PickerConfirmEventParams } from 'vant/es';
|
||||||
|
@ -119,7 +120,7 @@ const handleCellClick = (approvalId: number) => {
|
||||||
// 处理核销码提交
|
// 处理核销码提交
|
||||||
const handleVerification = async () => {
|
const handleVerification = async () => {
|
||||||
if (!verificationCode.value) {
|
if (!verificationCode.value) {
|
||||||
showToast('请输入核销码')
|
showDialog({ message: '请输入核销码' })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
@ -129,14 +130,14 @@ const handleVerification = async () => {
|
||||||
code: verificationCode.value
|
code: verificationCode.value
|
||||||
}
|
}
|
||||||
await checkApprovalCodeApi(params)
|
await checkApprovalCodeApi(params)
|
||||||
showToast('核销成功')
|
showDialog({ message: '核销成功' })
|
||||||
showVerificationDialog.value = false
|
showVerificationDialog.value = false
|
||||||
verificationCode.value = ''
|
verificationCode.value = ''
|
||||||
// 刷新列表
|
// 刷新列表
|
||||||
handleSearch()
|
handleSearch()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('核销失败', error)
|
console.error('核销失败', error)
|
||||||
showToast('核销失败,请重试')
|
showDialog({ message: '核销失败' })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue