diff --git a/src/api/resource/assetInventoryAuditApi.js b/src/api/resource/assetInventoryAuditApi.js new file mode 100644 index 0000000..4ac770f --- /dev/null +++ b/src/api/resource/assetInventoryAuditApi.js @@ -0,0 +1,49 @@ +import request from '@/utils/request' + +// 获取盘点详情 +export function getAssetInventoryDetail(params) { + return new Promise((resolve, reject) => { + request({ + url: '/assetInventory.listAssetInventory', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取盘点商品详情 +export function getAssetInventoryProduct(params) { + return new Promise((resolve, reject) => { + request({ + url: '/assetInventoryDetail.listAssetInventoryWholeDetail', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 更新盘点状态 +export function updateAssetInventory(data) { + return new Promise((resolve, reject) => { + request({ + url: '/assetInventory.updateAssetInventory', + method: 'post', + data + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/resource/assetInventoryEditApi.js b/src/api/resource/assetInventoryEditApi.js new file mode 100644 index 0000000..147c3db --- /dev/null +++ b/src/api/resource/assetInventoryEditApi.js @@ -0,0 +1,110 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取盘点详情 +export function getAssetInventoryDetail(params) { + return new Promise((resolve, reject) => { + request({ + url: '/assetInventory.listAssetInventory', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + resolve(response.data) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取盘点商品列表 +export function listAssetInventoryWholeDetail(params) { + return new Promise((resolve, reject) => { + request({ + url: '/assetInventoryDetail.listAssetInventoryWholeDetail', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + resolve(response.data) + }).catch(error => { + reject(error) + }) + }) +} + +// 更新盘点信息 +export function updateAssetInventory(data) { + return new Promise((resolve, reject) => { + request({ + url: '/assetInventory.updateAssetInventory', + method: 'post', + data: { + ...data, + communityId: getCommunityId() + } + }).then(response => { + resolve(response.data) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取物品列表 +export function listResourceStores(params) { + return new Promise((resolve, reject) => { + request({ + url: '/resourceStore.listResourceStores', + method: 'get', + params: { + ...params, + communityId: getCommunityId() + } + }).then(response => { + resolve(response.data) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取仓库列表 +export function listStorehouses(params) { + return new Promise((resolve, reject) => { + request({ + url: '/resourceStore.listStorehouses', + 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) + }) + }) +} \ No newline at end of file diff --git a/src/api/resource/assetInventoryInApi.js b/src/api/resource/assetInventoryInApi.js new file mode 100644 index 0000000..c4b5106 --- /dev/null +++ b/src/api/resource/assetInventoryInApi.js @@ -0,0 +1,65 @@ +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 listResourceStores(params) { + return new Promise((resolve, reject) => { + request({ + url: '/resourceStore.listResourceStores', + 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 saveAssetInventory(data) { + return new Promise((resolve, reject) => { + request({ + url: '/assetInventory.saveAssetInventory', + method: 'post', + data + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/resource/assetInventoryInStockApi.js b/src/api/resource/assetInventoryInStockApi.js new file mode 100644 index 0000000..30d1d17 --- /dev/null +++ b/src/api/resource/assetInventoryInStockApi.js @@ -0,0 +1,33 @@ +import request from '@/utils/request' + +// 获取盘点信息列表 +export function getAssetInventoryList(params) { + return new Promise((resolve, reject) => { + request({ + url: '/assetInventory.listAssetInventory', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取盘点商品详情列表 +export function listAssetInventoryWholeDetail(params) { + return new Promise((resolve, reject) => { + request({ + url: '/assetInventoryDetail.listAssetInventoryWholeDetail', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/resource/printAssetInventoryInStockApi.js b/src/api/resource/printAssetInventoryInStockApi.js new file mode 100644 index 0000000..e60e2e6 --- /dev/null +++ b/src/api/resource/printAssetInventoryInStockApi.js @@ -0,0 +1,33 @@ +import request from '@/utils/request' + +// 获取盘点单列表 +export function getAssetInventoryList(params) { + return new Promise((resolve, reject) => { + request({ + url: '/assetInventory.listAssetInventory', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取盘点单详情列表 +export function getAssetInventoryDetailList(params) { + return new Promise((resolve, reject) => { + request({ + url: '/assetInventoryDetail.listAssetInventoryWholeDetail', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/i18n/resourceI18n.js b/src/i18n/resourceI18n.js index 2f009df..19dbe81 100644 --- a/src/i18n/resourceI18n.js +++ b/src/i18n/resourceI18n.js @@ -22,7 +22,11 @@ import { messages as printEquipmentAccountLabelMessages } from '../views/resourc import { messages as resourceDetailMessages } from '../views/resource/resourceDetailLang' import { messages as allocationStorehouseDetailMessages } from '../views/resource/allocationStorehouseDetailLang' import { messages as printAllocationStorehouseMessages } from '../views/resource/printAllocationStorehouseLang' - +import { messages as assetInventoryInMessages } from '../views/resource/assetInventoryInLang' +import { messages as assetInventoryInStockMessages } from '../views/resource/assetInventoryInStockLang' +import { messages as assetInventoryEditMessages } from '../views/resource/assetInventoryEditLang' +import { messages as assetInventoryAuditMessages } from '../views/resource/assetInventoryAuditLang' +import { messages as printAssetInventoryInStockMessages } from '../views/resource/printAssetInventoryInStockLang' export const messages = { en: { @@ -49,6 +53,11 @@ export const messages = { ...resourceDetailMessages.en, ...allocationStorehouseDetailMessages.en, ...printAllocationStorehouseMessages.en, + ...assetInventoryInMessages.en, + ...assetInventoryInStockMessages.en, + ...assetInventoryEditMessages.en, + ...assetInventoryAuditMessages.en, + ...printAssetInventoryInStockMessages.en, }, zh: { ...resourceAuditFlowMessages.zh, @@ -74,5 +83,10 @@ export const messages = { ...resourceDetailMessages.zh, ...allocationStorehouseDetailMessages.zh, ...printAllocationStorehouseMessages.zh, + ...assetInventoryInMessages.zh, + ...assetInventoryInStockMessages.zh, + ...assetInventoryEditMessages.zh, + ...assetInventoryAuditMessages.zh, + ...printAssetInventoryInStockMessages.zh, } } \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index 699b55e..46f2884 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -719,6 +719,11 @@ const routes = [ name:'/pages/property/printAllocationStorehouse', component: () => import('@/views/resource/printAllocationStorehouseList.vue') }, + { + path:'/pages/property/printAssetInventoryInStock', + name:'/pages/property/printAssetInventoryInStock', + component: () => import('@/views/resource/printAssetInventoryInStockList.vue') + }, ] const router = new VueRouter({ diff --git a/src/router/resourceRouter.js b/src/router/resourceRouter.js index 0501528..976f640 100644 --- a/src/router/resourceRouter.js +++ b/src/router/resourceRouter.js @@ -110,5 +110,25 @@ export default [ name: '/pages/common/allocationStorehouseDetail', component: () => import('@/views/resource/allocationStorehouseDetailList.vue') }, + { + path: '/pages/property/assetInventoryIn', + name: '/pages/property/assetInventoryIn', + component: () => import('@/views/resource/assetInventoryInList.vue') + }, + { + path: '/pages/property/assetInventoryInStock', + name: '/pages/property/assetInventoryInStock', + component: () => import('@/views/resource/assetInventoryInStockList.vue') + }, + { + path: '/pages/property/assetInventoryEdit', + name: '/pages/property/assetInventoryEdit', + component: () => import('@/views/resource/assetInventoryEditList.vue') + }, + { + path: '/pages/property/assetInventoryAudit', + name: '/pages/property/assetInventoryAudit', + component: () => import('@/views/resource/assetInventoryAuditList.vue') + }, ] \ No newline at end of file diff --git a/src/views/resource/assetInventoryAuditLang.js b/src/views/resource/assetInventoryAuditLang.js new file mode 100644 index 0000000..8fe084a --- /dev/null +++ b/src/views/resource/assetInventoryAuditLang.js @@ -0,0 +1,50 @@ +export const messages = { + en: { + assetInventoryAudit: { + inventoryInfo: 'Inventory Information', + inventoryProducts: 'Inventory Products', + auditOpinion: 'Audit Opinion', + inventoryName: 'Inventory Name', + inventoryPerson: 'Inventory Person', + warehouse: 'Warehouse', + inventoryDate: 'Inventory Date', + remark: 'Remark', + productType: 'Product Type', + productName: 'Product Name', + specification: 'Specification', + productCode: 'Product Code', + isFixed: 'Is Fixed', + referencePrice: 'Reference Price', + originalStock: 'Original Stock', + afterInventory: 'After Inventory', + opinionPlaceholder: 'Required, please enter audit opinion', + opinionRequired: 'Audit opinion cannot be empty', + approve: 'Approve', + reject: 'Reject' + } + }, + zh: { + assetInventoryAudit: { + inventoryInfo: '盘点信息', + inventoryProducts: '盘点商品', + auditOpinion: '审核意见', + inventoryName: '盘点名称', + inventoryPerson: '盘点人', + warehouse: '选择仓库', + inventoryDate: '盘点日期', + remark: '盘点说明', + productType: '物品类型', + productName: '物品名称', + specification: '物品规格', + productCode: '物品编码', + isFixed: '是否是固定物品', + referencePrice: '参考价格', + originalStock: '原有库存', + afterInventory: '盘点后数量', + opinionPlaceholder: '必填,请输入审核意见', + opinionRequired: '审核意见不能为空', + approve: '审核通过', + reject: '审核不通过' + } + } +} \ No newline at end of file diff --git a/src/views/resource/assetInventoryAuditList.vue b/src/views/resource/assetInventoryAuditList.vue new file mode 100644 index 0000000..af629b3 --- /dev/null +++ b/src/views/resource/assetInventoryAuditList.vue @@ -0,0 +1,233 @@ + + + + + \ No newline at end of file diff --git a/src/views/resource/assetInventoryEditLang.js b/src/views/resource/assetInventoryEditLang.js new file mode 100644 index 0000000..1b188df --- /dev/null +++ b/src/views/resource/assetInventoryEditLang.js @@ -0,0 +1,62 @@ +export const messages = { + en: { + assetInventoryEdit: { + title: 'Inventory Edit', + inventoryInfo: 'Inventory Information', + inventoryName: 'Inventory Name', + inventoryPerson: 'Inventory Person', + warehouse: 'Warehouse', + inventoryDate: 'Inventory Date', + remark: 'Remark', + inventoryProducts: 'Inventory Products', + products: 'Products', + productType: 'Product Type', + productName: 'Product Name', + specification: 'Specification', + productCode: 'Product Code', + isFixed: 'Is Fixed', + referencePrice: 'Reference Price', + stock: 'Stock', + afterInventoryQty: 'After Inventory Qty', + requiredQty: 'Required Qty', + optionalRemark: 'Optional Remark', + selectPrice: 'Select Price', + selectWarehouseFirst: 'Please select warehouse first', + selectProductsFirst: 'Please select products first', + fillQty: 'Please fill quantity', + submitError: 'Submit failed', + fetchError: 'Failed to get inventory info', + fetchProductError: 'Failed to get product list' + } + }, + zh: { + assetInventoryEdit: { + title: '盘点编辑', + inventoryInfo: '盘点信息', + inventoryName: '盘点名称', + inventoryPerson: '盘点人', + warehouse: '选择仓库', + inventoryDate: '盘点日期', + remark: '盘点说明', + inventoryProducts: '盘点商品', + products: '商品', + productType: '物品类型', + productName: '物品名称', + specification: '物品规格', + productCode: '物品编码', + isFixed: '是否是固定物品', + referencePrice: '参考价格', + stock: '物品库存', + afterInventoryQty: '盘点后数量', + requiredQty: '必填,请填盘点后数量', + optionalRemark: '选填,请填写备注', + selectPrice: '请选择价格', + selectWarehouseFirst: '请先选择仓库', + selectProductsFirst: '请选择商品', + fillQty: '请填写数量', + submitError: '提交失败', + fetchError: '获取盘点信息失败', + fetchProductError: '获取商品列表失败' + } + } +} \ No newline at end of file diff --git a/src/views/resource/assetInventoryEditList.vue b/src/views/resource/assetInventoryEditList.vue new file mode 100644 index 0000000..7da0174 --- /dev/null +++ b/src/views/resource/assetInventoryEditList.vue @@ -0,0 +1,322 @@ + + + + + \ No newline at end of file diff --git a/src/views/resource/assetInventoryInLang.js b/src/views/resource/assetInventoryInLang.js new file mode 100644 index 0000000..45cf6af --- /dev/null +++ b/src/views/resource/assetInventoryInLang.js @@ -0,0 +1,88 @@ +export const messages = { + en: { + assetInventory: { + title: 'Asset Inventory', + name: 'Inventory Name', + namePlaceholder: 'Required, please enter inventory name', + staffName: 'Inventory Staff', + staffNamePlaceholder: 'Required, please enter inventory staff name', + storehouse: 'Storehouse', + storehousePlaceholder: 'Please select storehouse', + invTime: 'Inventory Time', + invTimePlaceholder: 'Required, please select inventory time', + remark: 'Remark', + remarkPlaceholder: 'Required, please enter remark', + itemInfo: 'Item Information', + selectItem: 'Select Items', + itemType: 'Item Type', + itemName: 'Item Name', + itemSpec: 'Item Specification', + itemCode: 'Item Code', + isFixed: 'Is Fixed', + referencePrice: 'Reference Price', + selectPrice: 'Please select price', + stock: 'Stock', + afterQuantity: 'After Quantity', + afterQuantityPlaceholder: 'Required, please enter quantity after inventory', + operation: 'Operation', + remove: 'Remove', + cancel: 'Cancel', + submit: 'Submit', + validateError: 'Please complete all required fields', + selectItemError: 'Please select at least one item', + selectPriceError: 'Please select price for all items', + quantityError: 'Please enter valid quantity for all items', + nameRequired: 'Inventory name is required', + staffNameRequired: 'Inventory staff is required', + storehouseRequired: 'Storehouse is required', + invTimeRequired: 'Inventory time is required', + remarkRequired: 'Remark is required', + selectStorehouseFirst: 'Please select storehouse first', + saveError: 'Failed to save inventory' + }, + + }, + zh: { + assetInventory: { + title: '资产盘点', + name: '盘点名称', + namePlaceholder: '必填,请填写盘点名称', + staffName: '盘点人', + staffNamePlaceholder: '必填,请填写盘点人', + storehouse: '选择仓库', + storehousePlaceholder: '请选择仓库', + invTime: '盘点日期', + invTimePlaceholder: '必填,请填写盘点日期', + remark: '盘点说明', + remarkPlaceholder: '必填,请填写盘点说明', + itemInfo: '物品信息', + selectItem: '选择物品', + itemType: '物品类型', + itemName: '物品名称', + itemSpec: '物品规格', + itemCode: '物品编码', + isFixed: '是否是固定物品', + referencePrice: '参考价格', + selectPrice: '请选择价格', + stock: '物品库存', + afterQuantity: '盘点后数量', + afterQuantityPlaceholder: '必填,请填盘点后数量', + operation: '操作', + remove: '移除', + cancel: '取消', + submit: '提交', + validateError: '请完成所有必填项', + selectItemError: '请至少选择一件物品', + selectPriceError: '请为所有物品选择价格', + quantityError: '请为所有物品输入有效数量', + nameRequired: '盘点名称不能为空', + staffNameRequired: '盘点人不能为空', + storehouseRequired: '请选择仓库', + invTimeRequired: '盘点日期不能为空', + remarkRequired: '盘点说明不能为空', + selectStorehouseFirst: '请先选择仓库', + saveError: '保存盘点失败' + }, + + } +} \ No newline at end of file diff --git a/src/views/resource/assetInventoryInList.vue b/src/views/resource/assetInventoryInList.vue new file mode 100644 index 0000000..89f7c57 --- /dev/null +++ b/src/views/resource/assetInventoryInList.vue @@ -0,0 +1,310 @@ + + + + + \ No newline at end of file diff --git a/src/views/resource/assetInventoryInStockLang.js b/src/views/resource/assetInventoryInStockLang.js new file mode 100644 index 0000000..cc9798d --- /dev/null +++ b/src/views/resource/assetInventoryInStockLang.js @@ -0,0 +1,58 @@ +export const messages = { + en: { + assetInventoryInStock: { + title: 'Inventory Information', + print: 'Print', + back: 'Back', + inventoryName: 'Inventory Name', + inventoryPerson: 'Inventory Person', + warehouse: 'Warehouse', + inventoryDate: 'Inventory Date', + remark: 'Remark', + status: 'Status', + inventoryItems: 'Inventory Items', + warehouseName: 'Warehouse Name', + itemType: 'Item Type', + itemName: 'Item Name', + specification: 'Specification', + itemCode: 'Item Code', + isFixedItem: 'Is Fixed Item', + batchPrice: 'Batch Price', + originalStock: 'Original Stock', + inventoryQuantity: 'Inventory Quantity', + auditInfo: 'Audit Information', + auditor: 'Auditor', + contactNumber: 'Contact Number', + auditTime: 'Audit Time', + auditOpinion: 'Audit Opinion' + } + }, + zh: { + assetInventoryInStock: { + title: '盘点信息', + print: '打印', + back: '返回', + inventoryName: '盘点名称', + inventoryPerson: '盘点人', + warehouse: '选择仓库', + inventoryDate: '盘点日期', + remark: '盘点说明', + status: '审核状态', + inventoryItems: '盘点商品', + warehouseName: '仓库名称', + itemType: '物品类型', + itemName: '物品名称', + specification: '物品规格', + itemCode: '物品编码', + isFixedItem: '是否是固定物品', + batchPrice: '批次价格', + originalStock: '原有库存', + inventoryQuantity: '盘点后数量', + auditInfo: '审核信息', + auditor: '审核人', + contactNumber: '联系电话', + auditTime: '审核时间', + auditOpinion: '审核意见' + } + } +} \ No newline at end of file diff --git a/src/views/resource/assetInventoryInStockList.vue b/src/views/resource/assetInventoryInStockList.vue new file mode 100644 index 0000000..50a0400 --- /dev/null +++ b/src/views/resource/assetInventoryInStockList.vue @@ -0,0 +1,250 @@ + + + + + \ No newline at end of file diff --git a/src/views/resource/printAssetInventoryInStockLang.js b/src/views/resource/printAssetInventoryInStockLang.js new file mode 100644 index 0000000..69fe4f9 --- /dev/null +++ b/src/views/resource/printAssetInventoryInStockLang.js @@ -0,0 +1,44 @@ +export const messages = { + en: { + printAssetInventoryInStock: { + inventoryName: 'Inventory Name', + inventoryPerson: 'Inventory Person', + warehouse: 'Warehouse', + inventoryDate: 'Inventory Date', + warehouseName: 'Warehouse Name', + itemType: 'Item Type', + itemName: 'Item Name', + specification: 'Specification', + itemCode: 'Item Code', + isFixed: 'Is Fixed', + batchPrice: 'Batch Price', + originalStock: 'Original Stock', + afterInventory: 'After Inventory', + remark: 'Remark', + warehouseManagerSign: 'Warehouse Manager Sign', + transferPersonSign: 'Transfer Person Sign', + time: 'Time' + } + }, + zh: { + printAssetInventoryInStock: { + inventoryName: '盘点名称', + inventoryPerson: '盘点人', + warehouse: '选择仓库', + inventoryDate: '盘点日期', + warehouseName: '仓库名称', + itemType: '物品类型', + itemName: '物品名称', + specification: '物品规格', + itemCode: '物品编码', + isFixed: '是否是固定物品', + batchPrice: '批次价格', + originalStock: '原有库存', + afterInventory: '盘点后数量', + remark: '备注', + warehouseManagerSign: '仓库管理员签字', + transferPersonSign: '调拨人员签字', + time: '时间' + } + } +} \ No newline at end of file diff --git a/src/views/resource/printAssetInventoryInStockList.vue b/src/views/resource/printAssetInventoryInStockList.vue new file mode 100644 index 0000000..8345a0b --- /dev/null +++ b/src/views/resource/printAssetInventoryInStockList.vue @@ -0,0 +1,224 @@ + + + + + \ No newline at end of file