From 325bf29617634fb0951e73889eec3fb2faa50037 Mon Sep 17 00:00:00 2001 From: wuxw <928255095@qq.com> Date: Wed, 16 Jul 2025 14:08:00 +0800 Subject: [PATCH] 测试完成采购流程 --- src/api/resource/returnStorehouseApplyManageApi.js | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/resource/scrapGoodsStepApi.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/api/resource/transferGoodsManageApi.js | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/resource/chooseResourceStaff.vue | 272 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/resource/orgTreeShow.vue | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/resource/selectStaff.vue | 228 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------- src/components/resource/viewResourceMyGoodsInfo.vue | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/i18n/resourceI18n.js | 9 +++++++++ src/router/resourceRouter.js | 15 +++++++++++++++ src/views/resource/returnStorehouseApplyManageLang.js | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/resource/returnStorehouseApplyManageList.vue | 317 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/resource/scrapGoodsStepLang.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/resource/scrapGoodsStepList.vue | 219 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/resource/transferGoodsManageLang.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/resource/transferGoodsManageList.vue | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 15 files changed, 1955 insertions(+), 107 deletions(-) create mode 100644 src/api/resource/returnStorehouseApplyManageApi.js create mode 100644 src/api/resource/scrapGoodsStepApi.js create mode 100644 src/api/resource/transferGoodsManageApi.js create mode 100644 src/components/resource/chooseResourceStaff.vue create mode 100644 src/components/resource/orgTreeShow.vue create mode 100644 src/components/resource/viewResourceMyGoodsInfo.vue create mode 100644 src/views/resource/returnStorehouseApplyManageLang.js create mode 100644 src/views/resource/returnStorehouseApplyManageList.vue create mode 100644 src/views/resource/scrapGoodsStepLang.js create mode 100644 src/views/resource/scrapGoodsStepList.vue create mode 100644 src/views/resource/transferGoodsManageLang.js create mode 100644 src/views/resource/transferGoodsManageList.vue diff --git a/src/api/resource/returnStorehouseApplyManageApi.js b/src/api/resource/returnStorehouseApplyManageApi.js new file mode 100644 index 0000000..5b92a6c --- /dev/null +++ b/src/api/resource/returnStorehouseApplyManageApi.js @@ -0,0 +1,84 @@ +import request from '@/utils/request' + +// 获取仓库列表 +export function listStorehouses(params) { + return new Promise((resolve, reject) => { + request({ + url: '/resourceStore.listStorehouses', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取物品类型列表 +export function listResourceStoreTypes(params) { + return new Promise((resolve, reject) => { + request({ + url: '/resourceStoreType.listResourceStoreTypes', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取用户可操作的物品列表 +export function listUserStorehouses(params) { + return new Promise((resolve, reject) => { + request({ + url: '/resourceStore.listUserStorehouses', + method: 'get', + params + }).then(response => { + const res = response.data + resolve({ + data: res.data, + total: res.total, + records: res.records + }) + }).catch(error => { + reject(error) + }) + }) +} + +// 提交退还申请 +export function saveAllocationStorehouse(data) { + return new Promise((resolve, reject) => { + request({ + url: '/resourceStore.saveAllocationStorehouse', + method: 'post', + data + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取当前社区ID +export function getCommunityId() { + return new Promise((resolve, reject) => { + request({ + url: '/community.getCommunityId', + method: 'get' + }).then(response => { + const res = response.data + resolve(res.data || '') + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/resource/scrapGoodsStepApi.js b/src/api/resource/scrapGoodsStepApi.js new file mode 100644 index 0000000..63a3598 --- /dev/null +++ b/src/api/resource/scrapGoodsStepApi.js @@ -0,0 +1,56 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取用户仓库物品列表 +export function listUserStorehouses(params) { + return new Promise((resolve, reject) => { + request({ + url: '/resourceStore.listUserStorehouses', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + resolve(response.data) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取物品类型列表 +export function listResourceStoreTypes(params) { + return new Promise((resolve, reject) => { + request({ + url: '/resourceStoreType.listResourceStoreTypes', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + resolve(response.data) + }).catch(error => { + reject(error) + }) + }) +} + +// 保存物品分配 +export function saveAllocationUserStorehouse(data) { + return new Promise((resolve, reject) => { + request({ + url: '/resourceStore.saveAllocationUserStorehouse', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + resolve(response.data) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/resource/transferGoodsManageApi.js b/src/api/resource/transferGoodsManageApi.js new file mode 100644 index 0000000..10ca43b --- /dev/null +++ b/src/api/resource/transferGoodsManageApi.js @@ -0,0 +1,105 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取用户可转赠的物品列表 +export function listUserStorehouses(params) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/resourceStore.listUserStorehouses', + method: 'get', + params: { + ...params, + communityId + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取物品类型列表 +export function listResourceStoreTypes(params) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/resourceStoreType.listResourceStoreTypes', + method: 'get', + params: { + ...params, + communityId + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取组织树 +export function listOrgTree() { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/org.listOrgTree', + method: 'get', + params: { + communityId + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 查询员工信息 +export function queryStaffInfos(params) { + return new Promise((resolve, reject) => { + request({ + url: '/query.staff.infos', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 保存转赠信息 +export function saveAllocationUserStorehouse(data) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/resourceStore.saveAllocationUserStorehouse', + method: 'post', + data: { + ...data, + communityId + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +export default { + listUserStorehouses, + listResourceStoreTypes, + listOrgTree, + queryStaffInfos, + saveAllocationUserStorehouse +} \ No newline at end of file diff --git a/src/components/resource/chooseResourceStaff.vue b/src/components/resource/chooseResourceStaff.vue new file mode 100644 index 0000000..2985ab5 --- /dev/null +++ b/src/components/resource/chooseResourceStaff.vue @@ -0,0 +1,272 @@ + + + + + \ No newline at end of file diff --git a/src/components/resource/orgTreeShow.vue b/src/components/resource/orgTreeShow.vue new file mode 100644 index 0000000..789bb56 --- /dev/null +++ b/src/components/resource/orgTreeShow.vue @@ -0,0 +1,71 @@ + + + + + \ No newline at end of file diff --git a/src/components/resource/selectStaff.vue b/src/components/resource/selectStaff.vue index e03a69f..c9259e0 100644 --- a/src/components/resource/selectStaff.vue +++ b/src/components/resource/selectStaff.vue @@ -1,135 +1,132 @@ + + \ No newline at end of file diff --git a/src/i18n/resourceI18n.js b/src/i18n/resourceI18n.js index 19dbe81..0f2d5b5 100644 --- a/src/i18n/resourceI18n.js +++ b/src/i18n/resourceI18n.js @@ -27,6 +27,9 @@ import { messages as assetInventoryInStockMessages } from '../views/resource/ass import { messages as assetInventoryEditMessages } from '../views/resource/assetInventoryEditLang' import { messages as assetInventoryAuditMessages } from '../views/resource/assetInventoryAuditLang' import { messages as printAssetInventoryInStockMessages } from '../views/resource/printAssetInventoryInStockLang' +import { messages as returnStorehouseApplyManageMessages } from '../views/resource/returnStorehouseApplyManageLang' +import { messages as transferGoodsManageMessages } from '../views/resource/transferGoodsManageLang' +import { messages as scrapGoodsStepMessages } from '../views/resource/scrapGoodsStepLang' export const messages = { en: { @@ -58,6 +61,9 @@ export const messages = { ...assetInventoryEditMessages.en, ...assetInventoryAuditMessages.en, ...printAssetInventoryInStockMessages.en, + ...returnStorehouseApplyManageMessages.en, + ...transferGoodsManageMessages.en, + ...scrapGoodsStepMessages.en, }, zh: { ...resourceAuditFlowMessages.zh, @@ -88,5 +94,8 @@ export const messages = { ...assetInventoryEditMessages.zh, ...assetInventoryAuditMessages.zh, ...printAssetInventoryInStockMessages.zh, + ...returnStorehouseApplyManageMessages.zh, + ...transferGoodsManageMessages.zh, + ...scrapGoodsStepMessages.zh, } } \ No newline at end of file diff --git a/src/router/resourceRouter.js b/src/router/resourceRouter.js index 976f640..2ec9af3 100644 --- a/src/router/resourceRouter.js +++ b/src/router/resourceRouter.js @@ -130,5 +130,20 @@ export default [ name: '/pages/property/assetInventoryAudit', component: () => import('@/views/resource/assetInventoryAuditList.vue') }, + { + path: '/pages/common/returnStorehouseApplyManage', + name: '/pages/common/returnStorehouseApplyManage', + component: () => import('@/views/resource/returnStorehouseApplyManageList.vue') + }, + { + path: '/pages/common/transferGoodsManage', + name: '/pages/common/transferGoodsManage', + component: () => import('@/views/resource/transferGoodsManageList.vue') + }, + { + path: '/pages/common/scrapGoodsStep', + name: '/pages/common/scrapGoodsStep', + component: () => import('@/views/resource/scrapGoodsStepList.vue') + }, ] \ No newline at end of file diff --git a/src/views/resource/returnStorehouseApplyManageLang.js b/src/views/resource/returnStorehouseApplyManageLang.js new file mode 100644 index 0000000..bc19a9a --- /dev/null +++ b/src/views/resource/returnStorehouseApplyManageLang.js @@ -0,0 +1,86 @@ +export const messages = { + en: { + returnStorehouseApplyManage: { + title: 'Return Items', + back: 'Back', + selectItems: 'Select Items', + itemId: 'Item ID', + itemType: 'Item Type', + itemName: 'Item Name', + itemSpec: 'Item Specification', + stock: 'Stock', + miniStock: 'Minimum Stock', + targetWarehouse: 'Target Warehouse', + returnQuantity: 'Return Quantity', + operation: 'Operation', + cancelReturn: 'Cancel Return', + returnAll: 'Return All', + returnDescription: 'Return Description', + requiredDescription: 'Required, please fill in the return description', + submit: 'Submit', + descriptionRequired: 'Return description is required', + selectItemsRequired: 'Please select items', + quantityRequired: 'Please fill in the quantity', + targetWarehouseRequired: 'Please select target warehouse', + stockNotEnough: ' stock is not enough', + returnSuccess: 'Return successfully', + returnFailed: 'Return failed', + requiredSelect: 'Required, please select target warehouse' + }, + chooseResourceStaff: { + title: 'Select Items', + selectItemType: 'Please select item type', + selectSubType: 'Please select sub type', + inputItemName: 'Input item name', + itemType: 'Item Type', + itemName: 'Item Name', + itemCode: 'Item Code', + isFixed: 'Is Fixed', + stock: 'Stock', + miniStock: 'Minimum Stock', + selectItemsRequired: 'Please select items' + } + }, + zh: { + returnStorehouseApplyManage: { + title: '退还物品', + back: '返回', + selectItems: '选择物品', + itemId: '物品ID', + itemType: '物品类型', + itemName: '物品名称', + itemSpec: '物品规格', + stock: '库存', + miniStock: '最小计量总数', + targetWarehouse: '目标仓库', + returnQuantity: '退还数量', + operation: '操作', + cancelReturn: '取消退还', + returnAll: '全部退还', + returnDescription: '退还说明', + requiredDescription: '必填,请填写退还说明', + submit: '提交', + descriptionRequired: '退还说明不能为空', + selectItemsRequired: '请选择物品', + quantityRequired: '请填写数量', + targetWarehouseRequired: '请选择目标仓库', + stockNotEnough: '库存不足', + returnSuccess: '退还成功', + returnFailed: '退还失败', + requiredSelect: '必填,请选择目标仓库' + }, + chooseResourceStaff: { + title: '选择物品管理', + selectItemType: '请选择物品类型', + selectSubType: '请选择二级分类', + inputItemName: '输入物品管理名称', + itemType: '物品类型', + itemName: '物品名称', + itemCode: '物品编码', + isFixed: '是否是固定物品', + stock: '物品库存', + miniStock: '最小计量总数', + selectItemsRequired: '请选择需要转赠的物品' + } + } +} \ No newline at end of file diff --git a/src/views/resource/returnStorehouseApplyManageList.vue b/src/views/resource/returnStorehouseApplyManageList.vue new file mode 100644 index 0000000..1bad88c --- /dev/null +++ b/src/views/resource/returnStorehouseApplyManageList.vue @@ -0,0 +1,317 @@ + + + + + \ No newline at end of file diff --git a/src/views/resource/scrapGoodsStepLang.js b/src/views/resource/scrapGoodsStepLang.js new file mode 100644 index 0000000..6b1bec6 --- /dev/null +++ b/src/views/resource/scrapGoodsStepLang.js @@ -0,0 +1,70 @@ +export const messages = { + en: { + scrapGoodsStep: { + lossDescription: 'Loss Description', + requiredRemark: 'Required, please fill in the loss description', + submit: 'Submit', + selectGoodsFirst: 'Please select goods first', + requiredQuantity: 'Please fill in the quantity', + stockNotEnough: ', stock is not enough', + requiredUsageType: 'Please select goods usage type', + requiredNote: 'Please fill in the note', + submitSuccess: 'Submit successfully', + submitFailed: 'Submit failed' + }, + viewResourceMyGoodsInfo: { + goodsInfo: 'Goods Information', + back: 'Back', + selectGoods: 'Select Goods', + goodsName: 'Goods Name', + goodsCode: 'Goods Code', + goodsType: 'Goods Type', + isFixedGoods: 'Is Fixed Goods', + goodsStock: 'Goods Stock', + miniStock: 'Mini Stock', + lossQuantity: 'Loss Quantity', + usageType: 'Usage Type', + selectUsageType: 'Please select usage type', + scrapRecycle: 'Scrap Recycle', + publicLoss: 'Public Loss', + remark: 'Remark', + requiredRemark: 'Required, please fill in the remark', + operation: 'Operation', + remove: 'Remove' + }, + }, + zh: { + scrapGoodsStep: { + lossDescription: '损耗说明', + requiredRemark: '必填,请填写损耗说明', + submit: '提交', + selectGoodsFirst: '请先选择物品', + requiredQuantity: '请填写数量', + stockNotEnough: ',库存不足', + requiredUsageType: '请选择物品使用类型', + requiredNote: '请填写备注', + submitSuccess: '提交成功', + submitFailed: '提交失败' + }, + viewResourceMyGoodsInfo: { + goodsInfo: '物品信息', + back: '返回', + selectGoods: '选择物品', + goodsName: '物品名称', + goodsCode: '物品编码', + goodsType: '物品类型', + isFixedGoods: '是否是固定物品', + goodsStock: '物品库存', + miniStock: '物品最小计量总数', + lossQuantity: '损耗数量', + usageType: '物品使用类型', + selectUsageType: '请选择物品使用类型', + scrapRecycle: '报废回收', + publicLoss: '公用损耗', + remark: '备注', + requiredRemark: '必填,请填写备注', + operation: '操作', + remove: '移除' + }, + } +} \ No newline at end of file diff --git a/src/views/resource/scrapGoodsStepList.vue b/src/views/resource/scrapGoodsStepList.vue new file mode 100644 index 0000000..515c52e --- /dev/null +++ b/src/views/resource/scrapGoodsStepList.vue @@ -0,0 +1,219 @@ + + + + + \ No newline at end of file diff --git a/src/views/resource/transferGoodsManageLang.js b/src/views/resource/transferGoodsManageLang.js new file mode 100644 index 0000000..44367bd --- /dev/null +++ b/src/views/resource/transferGoodsManageLang.js @@ -0,0 +1,70 @@ +export const messages = { + en: { + transferGoodsManage: { + recipient: 'Recipient', + requiredContact: 'Required, please fill in the contact', + selectRecipient: 'Select Recipient', + transferDescription: 'Transfer Description', + requiredDescription: 'Required, please fill in the transfer description', + goodsInfo: 'Goods Information', + selectGoods: 'Select Goods', + goodsName: 'Goods Name', + goodsCode: 'Goods Code', + goodsType: 'Goods Type', + isFixedGoods: 'Is Fixed Goods', + goodsStock: 'Goods Stock', + miniStock: 'Minimum Stock', + transferQuantity: 'Transfer Quantity', + remark: 'Remark', + operation: 'Operation', + remove: 'Remove', + submit: 'Submit', + selectGoodsType: 'Select Goods Type', + selectSubCategory: 'Select Sub Category', + inputGoodsName: 'Input Goods Name', + cannotTransferToSelf: 'Cannot transfer to yourself', + selectRecipientFirst: 'Please select recipient first', + fillDescriptionFirst: 'Please fill in description first', + selectGoodsFirst: 'Please select goods first', + fillQuantityFirst: 'Please fill in quantity first', + insufficientStock: 'Insufficient stock', + orgInfo: 'Organization Information', + staffInfo: 'Staff Information', + selectStaffFirst: 'Please select staff first' + } + }, + zh: { + transferGoodsManage: { + recipient: '受赠人', + requiredContact: '必填,请填写联系人', + selectRecipient: '选择受赠人', + transferDescription: '转赠说明', + requiredDescription: '必填,请填写转赠说明', + goodsInfo: '物品信息', + selectGoods: '选择物品', + goodsName: '物品名称', + goodsCode: '物品编码', + goodsType: '物品类型', + isFixedGoods: '是否是固定物品', + goodsStock: '物品库存', + miniStock: '最小计量总数', + transferQuantity: '转赠数量', + remark: '备注', + operation: '操作', + remove: '移除', + submit: '提交', + selectGoodsType: '请选择物品类型', + selectSubCategory: '请选择二级分类', + inputGoodsName: '输入物品名称', + cannotTransferToSelf: '不能转赠给自己', + selectRecipientFirst: '请先选择受赠人', + fillDescriptionFirst: '请先填写转赠说明', + selectGoodsFirst: '请先选择物品', + fillQuantityFirst: '请先填写数量', + insufficientStock: '库存不足', + orgInfo: '组织信息', + staffInfo: '员工信息', + selectStaffFirst: '请先选择员工' + } + } +} \ No newline at end of file diff --git a/src/views/resource/transferGoodsManageList.vue b/src/views/resource/transferGoodsManageList.vue new file mode 100644 index 0000000..3f3f084 --- /dev/null +++ b/src/views/resource/transferGoodsManageList.vue @@ -0,0 +1,279 @@ + + + + + \ No newline at end of file -- libgit2 0.21.4