feat(approval): 添加打开格口功能并优化审批商品展示
- 将打开储物柜接口从shop模块移动到approval模块 - 重构打开格口逻辑,改为接收approvalGoodsCellId参数 - 在审批商品列表中添加打开格口按钮 - 优化审批商品列表标题显示
This commit is contained in:
parent
c433debb84
commit
50715f07b8
|
@ -1,6 +1,6 @@
|
||||||
import { request } from '@/http/axios'
|
import { request } from '@/http/axios'
|
||||||
import { SubmitApprovalRequestData, SubmitApprovalResponseData, SearchApiReturnApprovalQuery, ApiResponsePageData, ReturnApprovalEntity, HandleApprovalRequestData, SearchReturnApprovalAssetQuery, ReturnApprovalAssetDTO, HandleApprovalAssetRequestData, ApprovalGoodsCellEntity } from './type'
|
import { SubmitApprovalRequestData, SubmitApprovalResponseData, SearchApiReturnApprovalQuery, ApiResponsePageData, ReturnApprovalEntity, HandleApprovalRequestData, SearchReturnApprovalAssetQuery, ReturnApprovalAssetDTO, HandleApprovalAssetRequestData, ApprovalGoodsCellEntity } from './type'
|
||||||
import { ShopOrderGoodsEntity } from '../shop/type'
|
import { OpenCabinetApiData, ShopOrderGoodsEntity } from '../shop/type'
|
||||||
|
|
||||||
export const getApprovalListApi = (params: SearchApiReturnApprovalQuery) => {
|
export const getApprovalListApi = (params: SearchApiReturnApprovalQuery) => {
|
||||||
return request<ApiResponsePageData<ReturnApprovalEntity>>({
|
return request<ApiResponsePageData<ReturnApprovalEntity>>({
|
||||||
|
@ -73,3 +73,12 @@ export const getApprovalGoodsCellApi = (approvalId: number) => {
|
||||||
params: { approvalId }
|
params: { approvalId }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 打开储物柜接口 */
|
||||||
|
export function openCabinetApi(approvalGoodsCellId: number, data: OpenCabinetApiData) {
|
||||||
|
return request<ApiResponseData<void>>({
|
||||||
|
url: `approval/openCabinet/${approvalGoodsCellId}`,
|
||||||
|
method: "post",
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
|
@ -2,8 +2,7 @@
|
||||||
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, showSuccessToast, showFailToast, showToast, UploaderFileListItem, Popup, Picker, Field, Stepper } from 'vant'
|
||||||
import axios from "axios"
|
import axios from "axios"
|
||||||
import { getApprovalGoodsCellApi, handleApprovalApi, handleApprovalAssetApi } from '@/common/apis/approval'
|
import { getApprovalGoodsCellApi, handleApprovalApi, handleApprovalAssetApi, openCabinetApi } from '@/common/apis/approval'
|
||||||
import { openCabinetApi } from '@/common/apis/shop'
|
|
||||||
import type { ApprovalGoodsCellEntity, ApprovalGoodsEntity, HandleApprovalAssetRequestData, HandleApprovalRequestData } from '@/common/apis/approval/type'
|
import type { ApprovalGoodsCellEntity, ApprovalGoodsEntity, HandleApprovalAssetRequestData, HandleApprovalRequestData } from '@/common/apis/approval/type'
|
||||||
import { useRoute, useRouter } from 'vue-router'
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
import { useApprovalStore } from '@/pinia/stores/approval'
|
import { useApprovalStore } from '@/pinia/stores/approval'
|
||||||
|
@ -152,38 +151,37 @@ onMounted(async () => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const handleOpenCabinet = async () => {
|
const handleOpenCell = async (approvalGoodsCellId: number) => {
|
||||||
if (!approvalStore.currentApproval?.orderId || !approvalStore.currentApproval?.orderGoodsId) {
|
if (!approvalGoodsCellId) {
|
||||||
showFailToast('缺少订单信息')
|
showFailToast('缺少格口信息');
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
isButtonDisabled.value = true
|
isButtonDisabled.value = true;
|
||||||
try {
|
try {
|
||||||
const isInternal = corpidLogin.value ? 2 : ab98Userid.value ? 1 : 0;
|
const isInternal = corpidLogin.value ? 2 : ab98Userid.value ? 1 : 0;
|
||||||
const result = await openCabinetApi(
|
const data = {
|
||||||
approvalStore.currentApproval.orderId,
|
userid: qyUserid.value,
|
||||||
approvalStore.currentApproval.orderGoodsId, {
|
|
||||||
userid: isInternal === 2 ? qyUserid.value : ab98Userid.value,
|
|
||||||
isInternal: isInternal,
|
isInternal: isInternal,
|
||||||
name: isInternal === 2 ? qyName.value : name.value,
|
name: isInternal === 2 ? qyName.value : name.value,
|
||||||
mobile: tel.value,
|
mobile: tel.value,
|
||||||
operationType: 2
|
operationType: 2
|
||||||
}
|
};
|
||||||
)
|
|
||||||
|
const result = await openCabinetApi(approvalGoodsCellId, data);
|
||||||
if (result.code !== 0) {
|
if (result.code !== 0) {
|
||||||
showFailToast(result.msg || '开启失败')
|
showFailToast(result.msg || '开启格口失败');
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
showSuccessToast('柜口已开启')
|
showSuccessToast('格口已开启');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
showFailToast('请求失败')
|
showFailToast('请求失败');
|
||||||
} finally {
|
} finally {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
isButtonDisabled.value = false
|
isButtonDisabled.value = false;
|
||||||
}, 5000)
|
}, 5000);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
if (!validateForm()) return
|
if (!validateForm()) return
|
||||||
|
@ -300,7 +298,7 @@ const handleReject = () => {
|
||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
|
|
||||||
<van-cell-group class="approval-goods-list" v-if="approvalGoodsCells.length > 0">
|
<van-cell-group class="approval-goods-list" v-if="approvalGoodsCells.length > 0">
|
||||||
<van-cell title="已审批商品格口信息" class="section-title" />
|
<van-cell title="审批通过商品:" class="section-title" />
|
||||||
<template v-for="item in approvalGoodsCellsWithNames" :key="item.approvalGoodsCellId">
|
<template v-for="item in approvalGoodsCellsWithNames" :key="item.approvalGoodsCellId">
|
||||||
<van-cell class="product-item">
|
<van-cell class="product-item">
|
||||||
<div class="product-info">
|
<div class="product-info">
|
||||||
|
@ -316,6 +314,11 @@ const handleReject = () => {
|
||||||
<div class="product-name van-ellipsis">
|
<div class="product-name van-ellipsis">
|
||||||
分配数量:{{ item.allocateQuantity }}
|
分配数量:{{ item.allocateQuantity }}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="open-cell-btn">
|
||||||
|
<van-button type="primary" size="small" @click="handleOpenCell(item.approvalGoodsCellId)" :disabled="isButtonDisabled">
|
||||||
|
打开格口
|
||||||
|
</van-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</van-cell>
|
</van-cell>
|
||||||
</template>
|
</template>
|
||||||
|
|
Loading…
Reference in New Issue