From 50a376b14b41a7421140874dff5f32fb9a779946 Mon Sep 17 00:00:00 2001 From: zengqiyang <492393100@qq.com> Date: Wed, 9 Apr 2025 18:33:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E4=BA=A7=E6=B8=85=E5=8D=95=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=EF=BC=8C=E8=B4=B9=E7=94=A8=E7=B1=BB=E5=9E=8B=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 5 + pc/.env.development | 2 +- pc/src/api/asset/inventory.js | 115 ++- pc/src/api/finance.js | 93 +++ pc/src/api/inventory.js | 29 + pc/src/layout/index.vue | 6 +- pc/src/router/index.js | 2 + pc/src/router/modules/finance.js | 17 + pc/src/utils/request.js | 4 +- .../inventory/components/AssetDetail.vue | 172 ++++- .../asset/inventory/components/AssetForm.vue | 217 ++++-- .../inventory/components/AssetLabelPrint.vue | 715 +++++++++++------- pc/src/views/asset/inventory/index.vue | 563 +++++++++----- pc/src/views/finance/feeType/index.vue | 654 ++++++++++++++++ pc/src/views/project/building/index.vue | 59 +- 15 files changed, 2023 insertions(+), 630 deletions(-) create mode 100644 package.json create mode 100644 pc/src/api/finance.js create mode 100644 pc/src/api/inventory.js create mode 100644 pc/src/router/modules/finance.js create mode 100644 pc/src/views/finance/feeType/index.vue diff --git a/package.json b/package.json new file mode 100644 index 0000000..fe3c2b5 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "qrcode.vue": "^3.6.0" + } +} diff --git a/pc/.env.development b/pc/.env.development index 3edea7c..6a0355f 100644 --- a/pc/.env.development +++ b/pc/.env.development @@ -1,4 +1,4 @@ NODE_ENV = 'development' # 开发环境API地址 -VUE_APP_BASE_API = http://192.168.137.3:8080/api \ No newline at end of file +VUE_APP_BASE_API = http://192.168.137.3:8080/api \ No newline at end of file diff --git a/pc/src/api/asset/inventory.js b/pc/src/api/asset/inventory.js index 8968ed8..11d5315 100644 --- a/pc/src/api/asset/inventory.js +++ b/pc/src/api/asset/inventory.js @@ -1,26 +1,26 @@ import request from '@/utils/request' -// 查询资产清单列表 -export function listAsset(query) { +// 获取资产列表 +export function listAssets(query) { return request({ - url: '/asset/inventory/list', + url: '/asset/list', method: 'get', params: query }) } -// 查询资产详细 -export function getAsset(id) { +// 获取资产详情 +export function getAsset(assetCode) { return request({ - url: '/asset/inventory/' + id, - method: 'get' + url: `/asset/${assetCode}`, + method: 'get', }) } // 新增资产 export function addAsset(data) { return request({ - url: '/asset/inventory', + url: '/asset/create', method: 'post', data: data }) @@ -29,71 +29,50 @@ export function addAsset(data) { // 修改资产 export function updateAsset(data) { return request({ - url: '/asset/inventory', + url: `/asset/${data.assetCode}`, method: 'put', data: data }) } // 删除资产 -export function delAsset(id) { +export function deleteAsset(assetCode) { return request({ - url: '/asset/inventory/' + id, - method: 'delete' + url: '/asset/delete', + method: 'delete', + params: { assetCode } }) } // 批量删除资产 -export function delAssetBatch(ids) { +export function deleteAssets(assetCodes) { return request({ - url: '/asset/inventory/batch', + url: '/asset/batch/delete', method: 'delete', - data: { ids } + data: { assetCodes } }) } -// 导出资产清单 +// 导出资产 export function exportAsset(query) { return request({ - url: '/asset/inventory/export', + url: '/asset/export', method: 'get', params: query, responseType: 'blob' }) } -// 下载导入模板 +// 下载资产导入模板 export function downloadTemplate() { return request({ - url: '/asset/inventory/template', + url: '/asset/template/download', method: 'get', responseType: 'blob' }) } -// 导入资产数据 -export function importAsset(file) { - const formData = new FormData() - formData.append('file', file) - return request({ - url: '/asset/inventory/import', - method: 'post', - data: formData, - headers: { - 'Content-Type': 'multipart/form-data' - } - }) -} - -// 获取资产分类树形列表 -export function listAssetClassTree() { - return request({ - url: '/asset/class/tree', - method: 'get' - }) -} - -// 获取资产位置树形列表 +// 获取资产位置树 export function listAssetLocationTree() { return request({ url: '/asset/location/tree', @@ -109,7 +88,7 @@ export function listCompanies() { }) } -// 获取用户列表(用于选择管理员) +// 获取用户列表 export function listUsers(query) { return request({ url: '/system/user/list', @@ -118,33 +97,41 @@ export function listUsers(query) { }) } -// 打印资产标签 -export function printAssetLabel(ids) { +// 上传资产图片 +export function uploadAssetImage(data) { return request({ - url: '/asset/inventory/print', + url: '/asset/upload/image', method: 'post', - data: { ids } + data: data }) } -// 获取资产状态列表 -export function getAssetStatusOptions() { +/** + * 批量打印资产标签 + * @param {Array} assetCodes 资产编码数组 + * @returns {Object} 请求结果 + */ +export function printAssetLabels(assetCodes) { return request({ - url: '/asset/inventory/status/options', + url: '/asset/print', + method: 'post', + data: assetCodes + }) +} + +// 检查资产编码是否存在 +export function checkAssetCode(code) { + return request({ + url: '/asset/check/code', + method: 'get', + params: { code } + }) +} + +// 获取标签配置 +export function getLabelConfig() { + return request({ + url: '/asset/label', method: 'get' }) -} - -// 上传资产照片 -export function uploadAssetImage(file) { - const formData = new FormData() - formData.append('file', file) - return request({ - url: '/common/upload', - method: 'post', - data: formData, - headers: { - 'Content-Type': 'multipart/form-data' - } - }) } \ No newline at end of file diff --git a/pc/src/api/finance.js b/pc/src/api/finance.js new file mode 100644 index 0000000..3c9eccf --- /dev/null +++ b/pc/src/api/finance.js @@ -0,0 +1,93 @@ +import request from '@/utils/request' + +// 费用分类管理接口 +export function getFeeCategories(query) { + return request({ + url: '/finance/category/page', + method: 'get', + params: query + }) +} + +export function getAllFeeCategories() { + return request({ + url: '/finance/category/list', + method: 'get' + }) +} + +export function getFeeCategory(id) { + return request({ + url: `/finance/category/${id}`, + method: 'get' + }) +} + +export function addFeeCategory(data) { + return request({ + url: '/finance/category', + method: 'post', + data + }) +} + +export function updateFeeCategory(id, data) { + return request({ + url: `/finance/category/${id}`, + method: 'put', + data + }) +} + +export function deleteFeeCategory(id) { + return request({ + url: `/finance/category/${id}`, + method: 'delete' + }) +} + +// 费用类型管理接口 +export function getFeeTypes(query) { + return request({ + url: '/finance/type/page', + method: 'get', + params: query + }) +} + +export function getFeeTypesByCategory(categoryId) { + return request({ + url: `/finance/type/list/${categoryId}`, + method: 'get' + }) +} + +export function getFeeType(id) { + return request({ + url: `/finance/type/${id}`, + method: 'get' + }) +} + +export function addFeeType(data) { + return request({ + url: '/finance/type', + method: 'post', + data + }) +} + +export function updateFeeType(id, data) { + return request({ + url: `/finance/type/${id}`, + method: 'put', + data + }) +} + +export function deleteFeeType(id) { + return request({ + url: `/finance/type/${id}`, + method: 'delete' + }) +} \ No newline at end of file diff --git a/pc/src/api/inventory.js b/pc/src/api/inventory.js new file mode 100644 index 0000000..98b1e47 --- /dev/null +++ b/pc/src/api/inventory.js @@ -0,0 +1,29 @@ +import request from '@/utils/request' + +/** + * 导入库存 + * @param {Object} data 文件数据 + * @returns {Object} 请求结果 + */ +export function importInventory(data) { + return request({ + url: '/inventory/import', + method: 'post', + data: data, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} + +/** + * 下载库存导入模板 + * @returns {Object} 请求结果 + */ +export function downloadInventoryTemplate() { + return request({ + url: '/inventory/template/download', + method: 'get', + responseType: 'blob' + }) +} \ No newline at end of file diff --git a/pc/src/layout/index.vue b/pc/src/layout/index.vue index 6768b29..18de30d 100644 --- a/pc/src/layout/index.vue +++ b/pc/src/layout/index.vue @@ -11,8 +11,8 @@ >