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