From da226892fa4c1043646a474ef89ec94456b262b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= Date: Wed, 16 Jul 2025 11:25:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=8E=92=E4=BA=A7=EF=BC=8C?= =?UTF-8?q?=E7=94=98=E7=89=B9=E5=9B=BE=E5=BE=85=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/oa/reportSchedule.js | 44 + pages.json | 16 + pages/workbench/index/index.vue | 27 +- pages/workbench/reportSchedule/gantt.vue | 249 ++++++ .../reportSchedule/reportSchedule.vue | 768 ++++++++++++++++++ static/images/paichan.png | Bin 0 -> 2976 bytes uni_modules/uni-drawer/changelog.md | 13 + .../components/uni-drawer/keypress.js | 45 + .../components/uni-drawer/uni-drawer.vue | 183 +++++ uni_modules/uni-drawer/package.json | 87 ++ uni_modules/uni-drawer/readme.md | 10 + 11 files changed, 1433 insertions(+), 9 deletions(-) create mode 100644 api/oa/reportSchedule.js create mode 100644 pages/workbench/reportSchedule/gantt.vue create mode 100644 pages/workbench/reportSchedule/reportSchedule.vue create mode 100644 static/images/paichan.png create mode 100644 uni_modules/uni-drawer/changelog.md create mode 100644 uni_modules/uni-drawer/components/uni-drawer/keypress.js create mode 100644 uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue create mode 100644 uni_modules/uni-drawer/package.json create mode 100644 uni_modules/uni-drawer/readme.md diff --git a/api/oa/reportSchedule.js b/api/oa/reportSchedule.js new file mode 100644 index 0000000..043f84f --- /dev/null +++ b/api/oa/reportSchedule.js @@ -0,0 +1,44 @@ +import request from "@/util/oaRequest" + +// 查询项目排产列表 +export function listReportSchedule(query) { + return request({ + url: '/oa/reportSchedule/list', + method: 'get', + params: query + }) +} + +// 查询项目排产详细 +export function getReportSchedule(scheduleId) { + return request({ + url: '/oa/reportSchedule/' + scheduleId, + method: 'get' + }) +} + +// 新增项目排产 +export function addReportSchedule(data) { + return request({ + url: '/oa/reportSchedule', + method: 'post', + data: data + }) +} + +// 修改项目排产 +export function updateReportSchedule(data) { + return request({ + url: '/oa/reportSchedule', + method: 'put', + data: data + }) +} + +// 删除项目排产 +export function delReportSchedule(scheduleId) { + return request({ + url: '/oa/reportSchedule/' + scheduleId, + method: 'delete' + }) +} diff --git a/pages.json b/pages.json index 41fdc87..05c1a70 100644 --- a/pages.json +++ b/pages.json @@ -293,6 +293,22 @@ "navigationBarTitleText" : "任务详情", "navigationStyle": "default" } + }, + { + "path" : "pages/workbench/reportSchedule/reportSchedule", + "style" : + { + "navigationBarTitleText" : "项目排产", + "navigationStyle": "default" + } + }, + { + "path" : "pages/workbench/reportSchedule/gantt", + "style" : + { + "navigationBarTitleText" : "项目排产", + "navigationStyle": "default" + } } ], "tabBar": { diff --git a/pages/workbench/index/index.vue b/pages/workbench/index/index.vue index dfb5ef6..eace126 100644 --- a/pages/workbench/index/index.vue +++ b/pages/workbench/index/index.vue @@ -14,10 +14,14 @@ 施工进度 - - - 任务中心 - + + + 任务中心 + + + + 项目排产 + @@ -59,11 +63,16 @@ export default { url: '/pages/workbench/construction/construction' }); }, - goTask() { - uni.navigateTo({ - url: '/pages/workbench/task/task' - }) - } + goTask() { + uni.navigateTo({ + url: '/pages/workbench/task/task' + }) + }, + goSchedule() { + uni.navigateTo({ + url: '/pages/workbench/reportSchedule/reportSchedule' + }) + } }, }; diff --git a/pages/workbench/reportSchedule/gantt.vue b/pages/workbench/reportSchedule/gantt.vue new file mode 100644 index 0000000..8cde730 --- /dev/null +++ b/pages/workbench/reportSchedule/gantt.vue @@ -0,0 +1,249 @@ + + + + + diff --git a/pages/workbench/reportSchedule/reportSchedule.vue b/pages/workbench/reportSchedule/reportSchedule.vue new file mode 100644 index 0000000..d6c20ce --- /dev/null +++ b/pages/workbench/reportSchedule/reportSchedule.vue @@ -0,0 +1,768 @@ + + + + + diff --git a/static/images/paichan.png b/static/images/paichan.png new file mode 100644 index 0000000000000000000000000000000000000000..a276b47f89f67b9a739a12ccbc58532cbedb191e GIT binary patch literal 2976 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 { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + // this.$once('hook:beforeDestroy', () => { + // document.removeEventListener('keyup', listener) + // }) + }, + render: () => {} +} +// #endif diff --git a/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue b/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue new file mode 100644 index 0000000..2471521 --- /dev/null +++ b/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue @@ -0,0 +1,183 @@ + + + + + diff --git a/uni_modules/uni-drawer/package.json b/uni_modules/uni-drawer/package.json new file mode 100644 index 0000000..dd056e4 --- /dev/null +++ b/uni_modules/uni-drawer/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-drawer", + "displayName": "uni-drawer 抽屉", + "version": "1.2.1", + "description": "抽屉式导航,用于展示侧滑菜单,侧滑导航。", + "keywords": [ + "uni-ui", + "uniui", + "drawer", + "抽屉", + "侧滑导航" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-drawer/readme.md b/uni_modules/uni-drawer/readme.md new file mode 100644 index 0000000..dcf6e6b --- /dev/null +++ b/uni_modules/uni-drawer/readme.md @@ -0,0 +1,10 @@ + + +## Drawer 抽屉 +> **组件名:uni-drawer** +> 代码块: `uDrawer` + +抽屉侧滑菜单。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-drawer) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file