From b569e4fef8a26595a1137d8a745300fa705575e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= Date: Fri, 7 Nov 2025 14:21:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E9=87=87=E8=B4=AD=E9=9C=80=E6=B1=82):=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=87=87=E8=B4=AD=E9=9C=80=E6=B1=82=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加采购需求管理功能,包括需求列表展示、新增、编辑、删除和完成操作 新增需求列表页面和API接口 添加剩余时间显示组件用于展示需求截止时间 更新工作台页面添加采购需求入口 --- api/oa/requirement.js | 44 ++ components/oa/oa-remind-time/index.vue | 101 ++++ pages.json | 8 + pages/workbench/article/article.vue | 3 +- pages/workbench/index/index.vue | 6 + pages/workbench/requirement/requirement.vue | 619 ++++++++++++++++++++ static/images/requirement.png | Bin 0 -> 3892 bytes 7 files changed, 779 insertions(+), 2 deletions(-) create mode 100644 api/oa/requirement.js create mode 100644 components/oa/oa-remind-time/index.vue create mode 100644 pages/workbench/requirement/requirement.vue create mode 100644 static/images/requirement.png diff --git a/api/oa/requirement.js b/api/oa/requirement.js new file mode 100644 index 0000000..823c70d --- /dev/null +++ b/api/oa/requirement.js @@ -0,0 +1,44 @@ +import request from "@/util/oaRequest" + +// 查询OA 需求列表 +export function listRequirements(query) { + return request({ + url: '/oa/requirements/list', + method: 'get', + params: query + }) +} + +// 查询OA 需求详细 +export function getRequirements(requirementId) { + return request({ + url: '/oa/requirements/' + requirementId, + method: 'get' + }) +} + +// 新增OA 需求 +export function addRequirements(data) { + return request({ + url: '/oa/requirements', + method: 'post', + data: data + }) +} + +// 修改OA 需求 +export function updateRequirements(data) { + return request({ + url: '/oa/requirements', + method: 'put', + data: data + }) +} + +// 删除OA 需求 +export function delRequirements(requirementId) { + return request({ + url: '/oa/requirements/' + requirementId, + method: 'delete' + }) +} diff --git a/components/oa/oa-remind-time/index.vue b/components/oa/oa-remind-time/index.vue new file mode 100644 index 0000000..0d76dde --- /dev/null +++ b/components/oa/oa-remind-time/index.vue @@ -0,0 +1,101 @@ + + + + + \ No newline at end of file diff --git a/pages.json b/pages.json index 6eb0bc5..ce9f362 100644 --- a/pages.json +++ b/pages.json @@ -549,6 +549,14 @@ "navigationBarTitleText" : "项目明细详情", "navigationStyle": "default" } + }, + { + "path" : "pages/workbench/requirement/requirement", + "style" : + { + "navigationBarTitleText" : "采购需求", + "navigationStyle": "default" + } } ], "tabBar": { diff --git a/pages/workbench/article/article.vue b/pages/workbench/article/article.vue index c10d594..92bdcc3 100644 --- a/pages/workbench/article/article.vue +++ b/pages/workbench/article/article.vue @@ -17,7 +17,7 @@ mode="cover"> - {{ article.author || '未知用户' }} + {{ article.createBy || '未知用户' }} @@ -81,7 +81,6 @@ .then(res => { this.article = { ...res.data, - author: res.data.createBy, title: res.data.noticeTitle, content: res.data.noticeContent, }; diff --git a/pages/workbench/index/index.vue b/pages/workbench/index/index.vue index 63b6bfc..cd72cc9 100644 --- a/pages/workbench/index/index.vue +++ b/pages/workbench/index/index.vue @@ -103,6 +103,12 @@ export default { url: '/pages/workbench/feedback/feedback', category: "信息中心" }, + { + text: '采购需求', + icon: '/static/images/requirement.png', + url: '/pages/workbench/requirement/requirement', + category: "信息中心" + }, { text: '客户管理', icon: '/static/images/customer.png', diff --git a/pages/workbench/requirement/requirement.vue b/pages/workbench/requirement/requirement.vue new file mode 100644 index 0000000..9c5bfbb --- /dev/null +++ b/pages/workbench/requirement/requirement.vue @@ -0,0 +1,619 @@ + + + + + \ No newline at end of file diff --git a/static/images/requirement.png b/static/images/requirement.png new file mode 100644 index 0000000000000000000000000000000000000000..bcfe92042af724a75371574fb1f4483b7b06960c GIT binary patch literal 3892 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