Parcourir la source

fix:970仓储管理看板首先新需求

mlchen il y a 1 semaine
Parent
commit
54090bfdec

+ 9 - 0
docs/仓储看板采购接入说明.md

@@ -0,0 +1,9 @@
+# 仓储看板采购接入说明
+
+更新日期:2026-10-16。
+
+- `purchaseNeedManage/index.vue`在`dashboard=1`且存在`requirementId`时打开原`contactDetailDialogRef.open({ id })`,沿用原采购需求详情与提交审批入口。
+- 仓储看板补货只保存真实采购需求草稿,业务人员需在本页核对并提交审批;不能以看板提示替代审批结果。
+- `router.afterEach`根据`dashboard=1`切换`wms-dashboard-theme`,`warehouse-dashboard.scss`统一深色Element弹层,离开看板业务页面后移除主题类。
+
+最终3个改动的Vue/JS/SCSS文件通过模板编译、脚本解析及看板Sass编译,`git diff --check`通过。未做完整构建、浏览器联调或真实采购写操作;发布前须核实授权菜单路径、采购权限、原详情字段及提交审批链路。

+ 26 - 0
src/assets/styles/warehouse-dashboard.scss

@@ -0,0 +1,26 @@
+/* 仅看板及携带 dashboard=1 的下钻页面生效,包含挂载到 body 的弹层。 */
+body.wms-dashboard-theme {
+  .el-card,.el-dialog,.el-message-box,.el-select-dropdown,.el-picker-panel,.el-cascader-panel,.el-popover,.el-dropdown-menu,.el-autocomplete-suggestion { background: #0A1A30; color: #EAF4FF; border-color: rgba(70,160,230,.28); }
+  .el-card__header,.el-dialog__header,.el-message-box__header { border-color: rgba(70,160,230,.28); }
+  .el-dialog__title,.el-message-box__title,.el-dialog__body,.el-message-box__content,.el-form-item__label,.el-checkbox__label,.el-radio__label { color: #EAF4FF; }
+  .el-input__inner,.el-textarea__inner,.el-range-input { background: #071528; color: #EAF4FF; border-color: rgba(70,160,230,.35); }
+  .el-input.is-disabled .el-input__inner,.el-textarea.is-disabled .el-textarea__inner { background: #10243A; color: #9FB8D4; }
+  .el-select-dropdown__item,.el-dropdown-menu__item,.el-cascader-node,.el-date-table td { color: #9FB8D4; }
+  .el-select-dropdown__item.hover,.el-select-dropdown__item:hover,.el-dropdown-menu__item:hover,.el-cascader-node:hover,.el-date-table td.available:hover { background: #173655; color: #38C8F5; }
+  .el-table,.el-table__expanded-cell,.el-table tr { background: #0A1A30; color: #EAF4FF; }
+  .el-table th.el-table__cell,.el-table th { background: #102A48; color: #6FA6D8; }
+  .el-table td,.el-table th.is-leaf,.el-table--border,.el-table--group { border-color: rgba(70,160,230,.28); }
+  .el-table--enable-row-hover .el-table__body tr:hover > td,.el-table__body tr.current-row > td { background: #173655; }
+  .el-table::before,.el-table--border::after { background: rgba(70,160,230,.28); }
+  .el-tabs--border-card,.el-tabs--border-card > .el-tabs__header,.el-tabs__nav-wrap::after { background: #0A1A30; border-color: rgba(70,160,230,.28); }
+  .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active { background: #173655; color: #38C8F5; border-color: rgba(70,160,230,.28); }
+  .el-tabs__item,.el-pagination,.el-pagination__total,.el-pagination__jump,.el-upload-list__item-name { color: #9FB8D4; }
+  .el-pagination button,.el-pager li { background: #102A48; color: #9FB8D4; }
+  .el-pager li.active { color: #38C8F5; }
+  .el-button--default { background: #102A48; color: #EAF4FF; border-color: rgba(70,160,230,.35); }
+  .el-button--primary { background: #2E8BE8; border-color: #38C8F5; }
+  .el-input-number__increase,.el-input-number__decrease { background: #102A48; color: #9FB8D4; border-color: rgba(70,160,230,.28); }
+  .el-loading-mask { background: rgba(6,15,31,.75); }
+  .dashboard-note { color: #9FB8D4; line-height: 1.8; margin: 0 0 14px; }
+  .dashboard-success { color: #3BD48A; } .dashboard-error { color: #F25E5E; }
+}

+ 2 - 0
src/router/index.js

@@ -1,3 +1,4 @@
+import '@/assets/styles/warehouse-dashboard.scss';
 /**
  * 路由配置
  */
@@ -86,6 +87,7 @@ router.beforeEach((to, from, next) => {
 });
 
 router.afterEach((to) => {
+  document.body.classList.toggle('wms-dashboard-theme', to.query.dashboard === '1');
   if (!to.path.includes(REDIRECT_PATH) && NProgress.isStarted()) {
     setTimeout(() => {
       NProgress.done(true);

+ 7 - 0
src/views/purchasingManage/purchaseNeedManage/index.vue

@@ -301,6 +301,7 @@
       };
     },
     created() {
+      this.openDashboardRequirement();
       enterprisePage({
         pageNum: 1,
         size: 200
@@ -310,7 +311,13 @@
         }
       });
     },
+    watch: { '$route.query.requirementId'() { this.openDashboardRequirement(); } },
     methods: {
+      // 看板创建后定位原需求详情,提交仍沿用原审批入口。
+      openDashboardRequirement() {
+        const id = this.$route.query.requirementId;
+        if (this.$route.query.dashboard === '1' && id) this.$nextTick(() => this.$refs.contactDetailDialogRef.open({ id }));
+      },
       /* 表格数据源 */
       datasource({ page, limit, where, order }) {
         return getTableList({