diff --git a/.idea/evo_vue.iml b/.idea/evo_vue.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/evo_vue.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..0548357 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d8ecba0 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/package.json b/package.json index 840ba70..d76a85d 100644 --- a/package.json +++ b/package.json @@ -36,12 +36,13 @@ }, "dependencies": { "@element-plus/icons-vue": "^2.3.1", + "@jiaminghi/data-view": "^2.10.0", "@riophae/vue-treeselect": "0.4.0", "@vue/composition-api": "^1.7.2", "axios": "^0.24.0", "clipboard": "2.0.8", "core-js": "3.25.3", - "dayjs": "^1.11.11", + "dayjs": "^1.11.13", "dhtmlx-gantt": "^8.0.11", "echarts-gl": "^2.0.9", "element-ui": "^2.15.12", diff --git a/src/api/system/assetCard.js b/src/api/system/assetCard.js new file mode 100644 index 0000000..b9326b2 --- /dev/null +++ b/src/api/system/assetCard.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询金蝶资产卡片列表 +export function listAssetCard(query) { + return request({ + url: '/system/assetCard/list', + method: 'get', + params: query + }) +} + +// 查询金蝶资产卡片详细 +export function getAssetCard(id) { + return request({ + url: '/system/assetCard/' + id, + method: 'get' + }) +} + +// 新增金蝶资产卡片 +export function addAssetCard(data) { + return request({ + url: '/system/assetCard', + method: 'post', + data: data + }) +} + +// 修改金蝶资产卡片 +export function updateAssetCard(data) { + return request({ + url: '/system/assetCard', + method: 'put', + data: data + }) +} + +// 删除金蝶资产卡片 +export function delAssetCard(id) { + return request({ + url: '/system/assetCard/' + id, + method: 'delete' + }) +} diff --git a/src/api/system/orderPro.js b/src/api/system/orderPro.js index a918881..8e7bfc6 100644 --- a/src/api/system/orderPro.js +++ b/src/api/system/orderPro.js @@ -18,12 +18,19 @@ export function getOrderPro(id) { } export function processList(params) { return request({ - url: '/system/orderPro/processlist', + url: '/system/orderPro/processlist', method: 'get', - params: params + params: params }); } - +// 调用 MRP 运算结果 +export function getMRPResults(id) { + return request({ + url: `/system/orderPro/getMRPResults/${id}`, + method: 'post', + timeout: 15 * 60 * 1000 // 设置 15 分钟超时 + }) +} // 新增项目令号 export function addOrderPro(data) { return request({ @@ -69,6 +76,14 @@ export function addProduct(data) { data }); } +// 新增:修改产品(PUT) +export function updateProduct(data) { + return request({ + url: '/system/save', + method: 'put', + data + }); +} // 查询此项目用到的产品列表 export function listSave(query) { return request({ @@ -103,4 +118,4 @@ export function uploadPDF(id) { responseType: 'blob', // 设置响应类型为blob,用于文件下载 headers: { 'Content-Type': 'application/json; application/octet-stream' } }) -} \ No newline at end of file +} diff --git a/src/main.js b/src/main.js index cb3f128..d3cfe5a 100644 --- a/src/main.js +++ b/src/main.js @@ -13,7 +13,7 @@ import router from './router' import directive from './directive' // directive import plugins from './plugins' // plugins import { download } from '@/utils/request' - +import dataV from '@jiaminghi/data-view' import './assets/icons' // icon import './permission' // permission control import { getDicts } from "@/api/system/dict/data"; @@ -80,6 +80,7 @@ Vue.use(VueComposition) Vue.use(directive) Vue.use(plugins) Vue.use(VueMeta) +Vue.use(dataV) DictData.install() /** diff --git a/src/permission.js b/src/permission.js index 3c64ff7..49eede5 100644 --- a/src/permission.js +++ b/src/permission.js @@ -8,7 +8,7 @@ import { isRelogin } from '@/utils/request' NProgress.configure({ showSpinner: false }) -const whiteList = ['/login', '/register', '/index'] +const whiteList = ['/login', '/register', '/index','/indexDaping','/mrp2'] router.beforeEach((to, from, next) => { NProgress.start() @@ -40,6 +40,7 @@ router.beforeEach((to, from, next) => { } } } else { + // 没有token if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入 diff --git a/src/router/index.js b/src/router/index.js index baabc13..44a05e2 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -120,6 +120,18 @@ export const constantRoutes = [ path: '/index', component: () => import('@/views/index'), hidden: true + }, + { + path: '/indexDaping', + component: () => import('@/views/indexDaping'), + hidden: true + }, + { + path: '/mrp2', + component: () => import('@/views/system/mrp2/index'), + name: 'Mrp2Public', + hidden: true, + meta: { title: 'MRP2运算结果' } } // { // path: '/', diff --git a/src/utils/external-api.js b/src/utils/external-api.js index 875bbaa..4788310 100644 --- a/src/utils/external-api.js +++ b/src/utils/external-api.js @@ -4,7 +4,7 @@ import axios from "axios"; export function getstate() { - + return axios.get('/all/getstate?UTF-8') .then(response => { return response.data; @@ -12,4 +12,4 @@ export function getstate() { .catch(error => { console.error('API 请求失败:', error); }); -} \ No newline at end of file +} diff --git a/src/views/demo/addgongxu/index.vue b/src/views/demo/addgongxu/index.vue index 58508d0..cbf9e10 100644 --- a/src/views/demo/addgongxu/index.vue +++ b/src/views/demo/addgongxu/index.vue @@ -1,251 +1,956 @@ - diff --git a/src/views/index.vue b/src/views/index.vue index a07b02a..93e0e77 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -78,20 +78,27 @@ {{ scope.row.materialName }} - - + + + + + + + - - - + + + @@ -131,9 +138,11 @@ diff --git a/src/views/system/orderPro/index.vue b/src/views/system/orderPro/index.vue index 8e708ef..2b51934 100644 --- a/src/views/system/orderPro/index.vue +++ b/src/views/system/orderPro/index.vue @@ -3,34 +3,34 @@ @@ -134,12 +134,12 @@ @@ -152,73 +152,49 @@ - - - - - + - - + - + + + + + - + + + + @@ -226,36 +202,36 @@ - + 选择产品 - +
新增 @@ -264,23 +240,33 @@ - + @@ -309,20 +295,184 @@ - 其他功能 + MRP运算结果复查
+ + +
+ + + MRP运算结果复查 + +
+ +
+ + {{ mrpOperationStatus || 'MRP运算进行中...' }} +
+ + + + {{ loadingMRP ? '核算中...' : '开始核算' }} + + + + + + + + + + 导出Excel + + + + 刷新 + +
+
+ +
+ + +
+
{{ mrpStats.totalMaterials }}
+
总物料数
+
+
+ +
+
{{ mrpStats.positiveStock }}
+
正库存
+
+
+ +
+
{{ mrpStats.negativeStock }}
+
负库存
+
+
+ +
+
{{ mrpStats.zeroStock }}
+
零库存
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-
+
操作说明:可以先搜索选择已有型号自动填充,或直接手动填写所有必填字段(带*号)
@@ -331,29 +481,29 @@ 可选择已有型号或手动填写所有信息
{{ item.figureNumber }}
编码: {{ item.typeName }} - 产品名: {{ item.productName }} + 产品名: {{ item.productName }} 类型: {{ item.type }} 行程: {{ item.journey }}
@@ -362,44 +512,44 @@ - + - + - + - +
- +
- +