diff --git a/.image/common/iot-feature.png b/.image/common/iot-feature.png new file mode 100644 index 000000000..357781c53 Binary files /dev/null and b/.image/common/iot-feature.png differ diff --git a/.image/common/iot-preview.png b/.image/common/iot-preview.png new file mode 100644 index 000000000..58e8940eb Binary files /dev/null and b/.image/common/iot-preview.png differ diff --git a/.image/common/mes-feature.png b/.image/common/mes-feature.png new file mode 100644 index 000000000..33196fd06 Binary files /dev/null and b/.image/common/mes-feature.png differ diff --git a/.image/common/mes-preview.png b/.image/common/mes-preview.png new file mode 100644 index 000000000..a140979e7 Binary files /dev/null and b/.image/common/mes-preview.png differ diff --git a/.image/common/ruoyi-vue-pro-biz.png b/.image/common/ruoyi-vue-pro-biz.png index 24a385abe..42dc849b5 100644 Binary files a/.image/common/ruoyi-vue-pro-biz.png and b/.image/common/ruoyi-vue-pro-biz.png differ diff --git a/README.md b/README.md index 295946d97..1018553e3 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ * 通用模块(必选):系统功能、基础设施 * 通用模块(可选):工作流程、支付系统、数据报表、会员中心 -* 业务系统(按需):ERP 系统、CRM 系统、商城系统、微信公众号、AI 大模型 +* 业务系统(按需):ERP 系统、CRM 系统、MES 系统、商城系统、微信公众号、AI 大模型、IoT 物联网 ### 系统功能 @@ -222,6 +222,16 @@ ![功能图](/.image/common/mall-preview.png) +### 会员中心 + +| | 功能 | 描述 | +|-----|------|----------------------------------| +| 🚀 | 会员管理 | 会员是 C 端的消费者,该功能用于会员的搜索与管理 | +| 🚀 | 会员标签 | 对会员的标签进行创建、查询、修改、删除等操作 | +| 🚀 | 会员等级 | 对会员的等级、成长值进行管理,可用于订单折扣等会员权益 | +| 🚀 | 会员分组 | 对会员进行分组,用于用户画像、内容推送等运营手段 | +| 🚀 | 积分签到 | 回馈给签到、消费等行为的积分,会员可订单抵现、积分兑换等途径消耗 | + ### ERP 系统 演示地址: @@ -234,6 +244,14 @@ ![功能图](/.image/common/crm-feature.png) +### MES 系统 + +演示地址: + +![功能图](/.image/common/mes-feature.png) + +![功能图](/.image/common/mes-preview.png) + ### AI 大模型 演示地址: @@ -242,6 +260,22 @@ ![功能图](/.image/common/ai-preview.gif) +### MES 系统 + +演示地址: + +![功能图](/.image/common/mes-feature.png) + +![预览图](/.image/common/mes-preview.png) + +### IoT 物联网 + +演示地址: + +![功能图](/.image/common/iot-feature.png) + +![预览图](/.image/common/iot-preview.png) + ## 🐷 演示图 ### 系统功能 diff --git a/package-lock.json b/package-lock.json index ca57a5217..6506d776b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,40 +1,43 @@ { "name": "yudao-ui-admin-vue3", - "version": "2.5.0-snapshot", + "version": "2026.03-snapshot", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "yudao-ui-admin-vue3", - "version": "2.5.0-snapshot", + "version": "2026.03-snapshot", "license": "MIT", "dependencies": { - "@element-plus/icons-vue": "^2.1.0", + "@element-plus/icons-vue": "2.3.2", "@form-create/designer": "^3.2.6", "@form-create/element-ui": "^3.2.11", "@iconify/iconify": "^3.1.1", "@microsoft/fetch-event-source": "^2.0.1", "@videojs-player/vue": "^1.0.0", "@vueuse/core": "^10.9.0", - "@wangeditor/editor": "^5.1.23", - "@wangeditor/editor-for-vue": "^5.1.10", + "@wangeditor-next/editor": "^5.6.46", + "@wangeditor-next/editor-for-vue": "^5.1.14", + "@wangeditor-next/plugin-mention": "^1.0.16", "@zxcvbn-ts/core": "^3.0.4", "animate.css": "^4.1.1", - "axios": "^1.6.8", + "axios": "1.9.0", "benz-amr-recorder": "^1.1.5", "bpmn-js-token-simulation": "^0.36.0", "camunda-bpmn-moddle": "^7.0.1", "cropperjs": "^1.6.1", "crypto-js": "^4.2.0", "dayjs": "^1.11.10", + "dayjs-plugin-lunar": "^1.4.1", "diagram-js": "^12.8.0", "driver.js": "^1.3.1", "echarts": "^5.5.0", "echarts-wordcloud": "^2.1.0", - "element-plus": "2.9.1", + "element-plus": "2.11.1", "fast-xml-parser": "^4.3.2", "highlight.js": "^11.9.0", "jsencrypt": "^3.3.2", + "jsoneditor": "^10.1.3", "lodash-es": "^4.17.21", "markdown-it": "^14.1.0", "markmap-common": "^0.16.0", @@ -48,16 +51,17 @@ "pinia-plugin-persistedstate": "^3.2.1", "qrcode": "^1.5.3", "qs": "^6.12.0", + "snabbdom": "^3.6.2", "sortablejs": "^1.15.3", "steady-xml": "^0.1.0", "url": "^0.11.3", - "v3-jsoneditor": "^0.0.6", "video.js": "^7.21.5", "vue": "3.5.12", "vue-dompurify-html": "^4.1.4", "vue-i18n": "9.10.2", "vue-router": "4.4.5", "vue-types": "^5.1.1", + "vue3-print-nb": "^0.1.4", "vue3-signature": "^0.2.4", "vuedraggable": "^4.1.0", "web-storage-cache": "^1.1.1", @@ -69,6 +73,7 @@ "@iconify/json": "^2.2.187", "@intlify/unplugin-vue-i18n": "^2.0.0", "@purge-icons/generated": "^0.9.0", + "@types/jsoneditor": "^9.9.5", "@types/lodash-es": "^4.17.12", "@types/node": "^20.11.21", "@types/nprogress": "^0.2.3", @@ -2310,10 +2315,9 @@ } }, "node_modules/@element-plus/icons-vue": { - "version": "2.3.1", - "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", - "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", - "license": "MIT", + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz", + "integrity": "sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==", "peerDependencies": { "vue": "^3.2.0" } @@ -4492,6 +4496,12 @@ "node": ">=10.13.0" } }, + "node_modules/@types/ace": { + "version": "0.0.52", + "resolved": "https://registry.npmmirror.com/@types/ace/-/ace-0.0.52.tgz", + "integrity": "sha512-YPF9S7fzpuyrxru+sG/rrTpZkC6gpHBPF14W3x70kqVOD+ks6jkYLapk4yceh36xej7K4HYxcyz9ZDQ2lTvwgQ==", + "dev": true + }, "node_modules/@types/conventional-commits-parser": { "version": "5.0.1", "resolved": "https://registry.npmmirror.com/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.1.tgz", @@ -4792,6 +4802,38 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/jsoneditor": { + "version": "9.9.6", + "resolved": "https://registry.npmmirror.com/@types/jsoneditor/-/jsoneditor-9.9.6.tgz", + "integrity": "sha512-SJ29nWBIhnhtU5n72wxhPiuUVd8cnDHd7ZYMqVkzWtdRxTUdS8+oy1pg66yhmM1kcuanX3xmAAKfcyhhBnHEjQ==", + "dev": true, + "dependencies": { + "@types/ace": "*", + "ajv": "^6.12.0" + } + }, + "node_modules/@types/jsoneditor/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@types/jsoneditor/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/@types/lodash": { "version": "4.17.16", "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.16.tgz", @@ -6991,163 +7033,256 @@ } } }, - "node_modules/@wangeditor/basic-modules": { - "version": "1.1.7", - "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz", - "integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==", - "license": "MIT", + "node_modules/@wangeditor-next/editor": { + "version": "5.6.49", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/editor/-/editor-5.6.49.tgz", + "integrity": "sha512-gDh7CLzsuPvUp1n4rO//V1NTHlpGzEibL71oRcRcxpz76oNaW12u+GWWvRde4cWivaCTLzHwz7EfEVdyDkt/Ww==", + "dependencies": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor-next/basic-modules": "~1.5.47", + "@wangeditor-next/code-highlight": "~1.3.43", + "@wangeditor-next/core": "~1.7.45", + "@wangeditor-next/list-module": "~1.1.52", + "@wangeditor-next/table-module": "~1.6.60", + "@wangeditor-next/upload-image-module": "~1.1.50", + "@wangeditor-next/video-module": "~1.3.51", + "dom7": "^4.0.0", + "is-hotkey": "^0.2.0", + "lodash.camelcase": "^4.3.0", + "lodash.clonedeep": "^4.5.0", + "lodash.debounce": "^4.0.8", + "lodash.foreach": "^4.5.0", + "lodash.throttle": "^4.1.1", + "lodash.toarray": "^4.4.0", + "nanoid": "^5.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" + } + }, + "node_modules/@wangeditor-next/editor-for-vue": { + "version": "5.1.14", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/editor-for-vue/-/editor-for-vue-5.1.14.tgz", + "integrity": "sha512-Xkrdo590AhLHvzyR+U246t6T89nIWHz1weAgMuo8jEA2HS5RiUnsA4U6+iUGaQ2E5c8mYQaeNqzHQXUp9Okbiw==", + "peerDependencies": { + "@wangeditor-next/editor": ">=5.1.0", + "vue": "^3.0.5" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/basic-modules": { + "version": "1.5.47", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/basic-modules/-/basic-modules-1.5.47.tgz", + "integrity": "sha512-FHydtBbfpsi4R4JTo5MvwWhzButwq6x36o+GoxsALdItwDW2qVgJkrlhw25aWYpg6ff1xqjivHfLBaAPWC4J+w==", "dependencies": { "is-url": "^1.2.4" }, "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", + "@wangeditor-next/core": "1.7.45", + "dom7": "^3.0.0 || ^4.0.0", "lodash.throttle": "^4.1.1", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" + "nanoid": "^5.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" } }, - "node_modules/@wangeditor/code-highlight": { - "version": "1.0.3", - "resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz", - "integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==", - "license": "MIT", + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/code-highlight": { + "version": "1.3.43", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/code-highlight/-/code-highlight-1.3.43.tgz", + "integrity": "sha512-22eHjYDmtTxZqZOma2ls9zWA6gsgSkWq3XtmLylA15kegVBKAy7YxYbRrdS7D4Y/igqOerSbc5oMsOdeYjRfnQ==", "dependencies": { "prismjs": "^1.23.0" }, "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" + "@wangeditor-next/core": "1.7.45", + "dom7": "^3.0.0 || ^4.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" } }, - "node_modules/@wangeditor/core": { - "version": "1.1.19", - "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz", - "integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==", - "license": "MIT", + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/core": { + "version": "1.7.45", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/core/-/core-1.7.45.tgz", + "integrity": "sha512-5Pt8JCmdzJWk4q18zUZse+zM+mBW6jYt3npXVkLswYysx01krC3bBQq1J9JeZe4Ci+rQAs0tQj3t1imjpsmRgg==", "dependencies": { "@types/event-emitter": "^0.3.3", "event-emitter": "^0.3.5", - "html-void-elements": "^2.0.0", - "i18next": "^20.4.0", - "scroll-into-view-if-needed": "^2.2.28", - "slate-history": "^0.66.0" + "html-void-elements": "^3.0.0", + "i18next": "^23.0.0", + "scroll-into-view-if-needed": "^3.0.0", + "slate-history": "^0.109.0" }, "peerDependencies": { "@uppy/core": "^2.1.1", "@uppy/xhr-upload": "^2.0.3", - "dom7": "^3.0.0", + "dom7": "^3.0.0 || ^4.0.0", "is-hotkey": "^0.2.0", "lodash.camelcase": "^4.3.0", "lodash.clonedeep": "^4.5.0", "lodash.debounce": "^4.0.8", "lodash.foreach": "^4.5.0", - "lodash.isequal": "^4.5.0", "lodash.throttle": "^4.1.1", "lodash.toarray": "^4.4.0", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" + "nanoid": "^5.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" } }, - "node_modules/@wangeditor/editor": { - "version": "5.1.23", - "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz", - "integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==", - "license": "MIT", - "dependencies": { - "@uppy/core": "^2.1.1", - "@uppy/xhr-upload": "^2.0.3", - "@wangeditor/basic-modules": "^1.1.7", - "@wangeditor/code-highlight": "^1.0.3", - "@wangeditor/core": "^1.1.19", - "@wangeditor/list-module": "^1.0.5", - "@wangeditor/table-module": "^1.1.4", - "@wangeditor/upload-image-module": "^1.0.2", - "@wangeditor/video-module": "^1.1.4", - "dom7": "^3.0.0", - "is-hotkey": "^0.2.0", - "lodash.camelcase": "^4.3.0", - "lodash.clonedeep": "^4.5.0", + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/list-module": { + "version": "1.1.52", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/list-module/-/list-module-1.1.52.tgz", + "integrity": "sha512-FMzvx+iXXkatFFRZZ+rbiPjZpEcPa3UtNBFs40VpZG0w7O3gQWM7B/oPec3SKvAmre/US4CC5DJEqeEY3QX4hw==", + "peerDependencies": { + "@wangeditor-next/core": "1.7.45", + "dom7": "^3.0.0 || ^4.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/table-module": { + "version": "1.6.60", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/table-module/-/table-module-1.6.60.tgz", + "integrity": "sha512-BGTG1YzPSIC4XJRafllCcynT9CkElWDSFxYBJ2svS36AvJc3ivQuj5Fhv+rCS4RqGggsN1hdeA4iP+xrtwWI4w==", + "peerDependencies": { + "@wangeditor-next/core": "1.7.45", + "dom7": "^3.0.0 || ^4.0.0", "lodash.debounce": "^4.0.8", - "lodash.foreach": "^4.5.0", - "lodash.isequal": "^4.5.0", "lodash.throttle": "^4.1.1", - "lodash.toarray": "^4.4.0", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" + "nanoid": "^5.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" } }, - "node_modules/@wangeditor/editor-for-vue": { - "version": "5.1.12", - "resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz", - "integrity": "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==", - "license": "MIT", - "peerDependencies": { - "@wangeditor/editor": ">=5.1.0", - "vue": "^3.0.5" - } - }, - "node_modules/@wangeditor/list-module": { - "version": "1.0.5", - "resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz", - "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==", - "license": "MIT", - "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/table-module": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz", - "integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==", - "license": "MIT", - "peerDependencies": { - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "lodash.isequal": "^4.5.0", - "lodash.throttle": "^4.1.1", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" - } - }, - "node_modules/@wangeditor/upload-image-module": { - "version": "1.0.2", - "resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz", - "integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==", - "license": "MIT", + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/upload-image-module": { + "version": "1.1.50", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/upload-image-module/-/upload-image-module-1.1.50.tgz", + "integrity": "sha512-KIzI1IIQA6J5Hg3/UJF/AlEsrxJ62LZZUt61tenkO8cxks2UQMvH4CEsgEU5NNfQ0PUnOeR4ErjOgyhtbZKyaQ==", "peerDependencies": { "@uppy/core": "^2.0.3", "@uppy/xhr-upload": "^2.0.3", - "@wangeditor/basic-modules": "1.x", - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", + "@wangeditor-next/basic-modules": "1.5.47", + "@wangeditor-next/core": "1.7.45", + "dom7": "^3.0.0 || ^4.0.0", "lodash.foreach": "^4.5.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" + "slate": "^0.82.0", + "snabbdom": "^3.6.0" } }, - "node_modules/@wangeditor/video-module": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz", - "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==", - "license": "MIT", + "node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/video-module": { + "version": "1.3.51", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/video-module/-/video-module-1.3.51.tgz", + "integrity": "sha512-67ecZCGIY+MUsqFtmwR9QKWlzGeIXVyXHmzPuevYwEqRwg50oR2xCSuoQLhfs5CKjXDZKsZhOnD/CGgt82TU+A==", "peerDependencies": { "@uppy/core": "^2.1.4", "@uppy/xhr-upload": "^2.0.7", - "@wangeditor/core": "1.x", - "dom7": "^3.0.0", - "nanoid": "^3.2.0", - "slate": "^0.72.0", - "snabbdom": "^3.1.0" + "@wangeditor-next/core": "1.7.45", + "dom7": "^3.0.0 || ^4.0.0", + "nanoid": "^5.0.0", + "slate": "^0.82.0", + "snabbdom": "^3.6.0" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==" + }, + "node_modules/@wangeditor-next/editor/node_modules/dom7": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/dom7/-/dom7-4.0.6.tgz", + "integrity": "sha512-emjdpPLhpNubapLFdjNL9tP06Sr+GZkrIHEXLWvOGsytACUrkbeIdjO5g77m00BrHTznnlcNqgmn7pCN192TBA==", + "dependencies": { + "ssr-window": "^4.0.0" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/i18next": { + "version": "23.16.8", + "resolved": "https://registry.npmmirror.com/i18next/-/i18next-23.16.8.tgz", + "integrity": "sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { + "@babel/runtime": "^7.23.2" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/nanoid": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-5.1.6.tgz", + "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/slate": { + "version": "0.82.1", + "resolved": "https://registry.npmmirror.com/slate/-/slate-0.82.1.tgz", + "integrity": "sha512-3mdRdq7U3jSEoyFrGvbeb28hgrvrr4NdFCtJX+IjaNvSFozY0VZd/CGHF0zf/JDx7aEov864xd5uj0HQxxEWTQ==", + "dependencies": { + "immer": "^9.0.6", + "is-plain-object": "^5.0.0", + "tiny-warning": "^1.0.3" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/slate-history": { + "version": "0.109.0", + "resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.109.0.tgz", + "integrity": "sha512-DHavPwrTTAEAV66eAocB3iQHEj65N6IVtbRK98ZuqGT0S44T3zXlhzY+5SZ7EPxRcoOYVt1dioRxXYM/+PmCiQ==", + "dependencies": { + "is-plain-object": "^5.0.0" + }, + "peerDependencies": { + "slate": ">=0.65.3" + } + }, + "node_modules/@wangeditor-next/editor/node_modules/ssr-window": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-4.0.2.tgz", + "integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==" + }, + "node_modules/@wangeditor-next/plugin-mention": { + "version": "1.0.19", + "resolved": "https://registry.npmmirror.com/@wangeditor-next/plugin-mention/-/plugin-mention-1.0.19.tgz", + "integrity": "sha512-aH81xDT4hZ+PdEFPsptJ/Gn4KDyIOhQdrNewLi2BKadmVBiYXlLneseodeFyv9MLhtNg2ekt+KNGJNK3kKzCsw==", + "peerDependencies": { + "@wangeditor-next/editor": "5.6.49", + "snabbdom": "^3.6.0" } }, "node_modules/@xmldom/xmldom": { @@ -8231,12 +8366,6 @@ "integrity": "sha512-wGA++isMqiDq1jPYeyv2as/Bt/u+3iLW0rEa+8NQ82jAv3TgqMiCM+B2SaBdn2DfLilLjjq736YcezihRYhfxw==", "license": "MIT" }, - "node_modules/compute-scroll-into-view": { - "version": "1.0.20", - "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", - "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==", - "license": "MIT" - }, "node_modules/computeds": { "version": "0.0.1", "resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz", @@ -9039,6 +9168,15 @@ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", "license": "MIT" }, + "node_modules/dayjs-plugin-lunar": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/dayjs-plugin-lunar/-/dayjs-plugin-lunar-1.4.1.tgz", + "integrity": "sha512-nHKJMKoVAGt/Wp6x3xH8GrjWhB25YBYd6iYTCfLkCm4GAS6q3jvfHpLwRnIX8bjHgl8sPlTPiLFcylcEaEnj8Q==", + "peerDependencies": { + "dayjs": "^1.0.0", + "tyme4ts": "^1.0.0" + } + }, "node_modules/de-indent": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz", @@ -9234,15 +9372,6 @@ "resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz", "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, - "node_modules/dom7": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz", - "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", - "license": "MIT", - "dependencies": { - "ssr-window": "^3.0.0-alpha.1" - } - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", @@ -9424,10 +9553,9 @@ "license": "ISC" }, "node_modules/element-plus": { - "version": "2.9.1", - "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.1.tgz", - "integrity": "sha512-9Agqf/jt4Ugk7EZ6C5LME71sgkvauPCsnvJN12Xid2XVobjufxMGpRE4L7pS4luJMOmFAH3J0NgYEGZT5r+NDg==", - "license": "MIT", + "version": "2.11.1", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.11.1.tgz", + "integrity": "sha512-weYFIniyNXTAe9vJZnmZpYzurh4TDbdKhBsJwhbzuo0SDZ8PLwHVll0qycJUxc6SLtH+7A9F7dvdDh5CnqeIVA==", "dependencies": { "@ctrl/tinycolor": "^3.4.1", "@element-plus/icons-vue": "^2.3.1", @@ -11232,16 +11360,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/html-void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz", - "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/htmlparser2": { "version": "8.0.2", "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz", @@ -11271,15 +11389,6 @@ "node": ">=16.17.0" } }, - "node_modules/i18next": { - "version": "20.6.1", - "resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz", - "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.0" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -11866,20 +11975,18 @@ } }, "node_modules/jsoneditor": { - "version": "9.10.5", - "resolved": "https://registry.npmmirror.com/jsoneditor/-/jsoneditor-9.10.5.tgz", - "integrity": "sha512-fVZ0NMt+zm4rqTKBv2x7zPdLeaRyKo1EjJkaR1QjK4gEM1rMwICILYSW1OPxSc1qqyAoDaA/eeNrluKoxOocCA==", - "license": "Apache-2.0", + "version": "10.4.2", + "resolved": "https://registry.npmmirror.com/jsoneditor/-/jsoneditor-10.4.2.tgz", + "integrity": "sha512-SQPCXlanU4PqdVsYuj2X7yfbLiiJYjklbksGfMKPsuwLhAIPxDlG43jYfXieGXvxpuq1fkw08YoRbkKXKabcLA==", "dependencies": { - "ace-builds": "^1.31.1", + "ace-builds": "^1.36.2", "ajv": "^6.12.6", "javascript-natural-sort": "^0.7.1", "jmespath": "^0.16.0", "json-source-map": "^0.6.1", - "jsonrepair": "3.1.0", - "mobius1-selectr": "^2.4.13", + "jsonrepair": "^3.8.1", "picomodal": "^3.0.0", - "vanilla-picker": "^2.12.2" + "vanilla-picker": "^2.12.3" } }, "node_modules/jsoneditor/node_modules/ajv": { @@ -11928,10 +12035,9 @@ "license": "MIT" }, "node_modules/jsonrepair": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/jsonrepair/-/jsonrepair-3.1.0.tgz", - "integrity": "sha512-idqReg23J0PVRAADmZMc5xQM3xeOX5bTB6OTyMnzq33IXJXmn9iJuWIEvGmrN80rQf4d7uLTMEDwpzujNcI0Rg==", - "license": "ISC", + "version": "3.13.2", + "resolved": "https://registry.npmmirror.com/jsonrepair/-/jsonrepair-3.13.2.tgz", + "integrity": "sha512-Leuly0nbM4R+S5SVJk3VHfw1oxnlEK9KygdZvfUtEtTawNDyzB4qa1xWTmFt1aeoA7sXZkVTRuIixJ8bAvqVUg==", "bin": { "jsonrepair": "bin/cli.js" } @@ -12342,13 +12448,6 @@ "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==", "license": "MIT" }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", - "license": "MIT" - }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -13025,12 +13124,6 @@ "dev": true, "license": "MIT" }, - "node_modules/mobius1-selectr": { - "version": "2.4.13", - "resolved": "https://registry.npmmirror.com/mobius1-selectr/-/mobius1-selectr-2.4.13.tgz", - "integrity": "sha512-Mk9qDrvU44UUL0EBhbAA1phfQZ7aMZPjwtL7wkpiBzGh8dETGqfsh50mWoX9EkjDlkONlErWXArHCKfoxVg0Bw==", - "license": "MIT" - }, "node_modules/moddle": { "version": "6.2.3", "resolved": "https://registry.npmmirror.com/moddle/-/moddle-6.2.3.tgz", @@ -14824,15 +14917,6 @@ "dev": true, "license": "MIT" }, - "node_modules/scroll-into-view-if-needed": { - "version": "2.2.31", - "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", - "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", - "license": "MIT", - "dependencies": { - "compute-scroll-into-view": "^1.0.20" - } - }, "node_modules/scule": { "version": "1.3.0", "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", @@ -14994,29 +15078,6 @@ "node": ">=8" } }, - "node_modules/slate": { - "version": "0.72.8", - "resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz", - "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==", - "license": "MIT", - "dependencies": { - "immer": "^9.0.6", - "is-plain-object": "^5.0.0", - "tiny-warning": "^1.0.3" - } - }, - "node_modules/slate-history": { - "version": "0.66.0", - "resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz", - "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==", - "license": "MIT", - "dependencies": { - "is-plain-object": "^5.0.0" - }, - "peerDependencies": { - "slate": ">=0.65.3" - } - }, "node_modules/slice-ansi": { "version": "5.0.0", "resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-5.0.0.tgz", @@ -15108,12 +15169,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "license": "BSD-3-Clause" }, - "node_modules/ssr-window": { - "version": "3.0.0", - "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz", - "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==", - "license": "MIT" - }, "node_modules/steady-xml": { "version": "0.1.0", "resolved": "https://registry.npmmirror.com/steady-xml/-/steady-xml-0.1.0.tgz", @@ -15925,6 +15980,12 @@ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "license": "0BSD" }, + "node_modules/tyme4ts": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/tyme4ts/-/tyme4ts-1.4.2.tgz", + "integrity": "sha512-3rUMpQv3Oz9V0f/GOPVHn+PC6eqR4CyMYQu02B8bUA5+BWvYALJapfwjOS7GH5NFK7mAS3LCUzSEYkQc4rkk6Q==", + "peer": true + }, "node_modules/type": { "version": "2.7.3", "resolved": "https://registry.npmmirror.com/type/-/type-2.7.3.tgz", @@ -16489,19 +16550,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v3-jsoneditor": { - "version": "0.0.6", - "resolved": "https://registry.npmmirror.com/v3-jsoneditor/-/v3-jsoneditor-0.0.6.tgz", - "integrity": "sha512-9G0sXWXUn67SBkn46ycWfwPwjuJu/lcsQaNzMtXAR2/95hMV21WfcRNsqJ+vVVrSHQehohB/9fVLwYEXz0u/KA==", - "license": "MIT", - "dependencies": { - "jsoneditor": "^9.10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/pratik227" - } - }, "node_modules/vanilla-picker": { "version": "2.12.3", "resolved": "https://registry.npmmirror.com/vanilla-picker/-/vanilla-picker-2.12.3.tgz", @@ -17064,6 +17112,14 @@ "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==", "license": "MIT" }, + "node_modules/vue3-print-nb": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz", + "integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==", + "dependencies": { + "vue": "^3.0.5" + } + }, "node_modules/vue3-signature": { "version": "0.2.4", "resolved": "https://registry.npmmirror.com/vue3-signature/-/vue3-signature-0.2.4.tgz", diff --git a/package.json b/package.json index 1c4f6930c..b29817573 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yudao-ui-admin-vue3", - "version": "2026.01-snapshot", + "version": "2026.03-snapshot", "description": "基于vue3、vite4、element-plus、typesScript", "author": "xingyu", "private": false, @@ -44,6 +44,8 @@ "cropperjs": "^1.6.1", "crypto-js": "^4.2.0", "dayjs": "^1.11.10", + "dayjs-plugin-lunar": "^1.4.1", + "dhtmlx-gantt": "^9.1.1", "diagram-js": "^12.8.0", "driver.js": "^1.3.1", "echarts": "^5.5.0", @@ -51,6 +53,7 @@ "element-plus": "2.11.1", "fast-xml-parser": "^4.3.2", "highlight.js": "^11.9.0", + "jsbarcode": "^3.12.3", "jsencrypt": "^3.3.2", "jsoneditor": "^10.1.3", "localforage": "^1.10.0", @@ -70,6 +73,7 @@ "snabbdom": "^3.6.2", "sortablejs": "^1.15.3", "steady-xml": "^0.1.0", + "tyme4ts": "^1.4.6", "url": "^0.11.3", "video.js": "^7.21.5", "vue": "3.5.12", diff --git a/src/api/mall/statistics/member.ts b/src/api/mall/statistics/member.ts index d9accf920..3a8ea99fb 100644 --- a/src/api/mall/statistics/member.ts +++ b/src/api/mall/statistics/member.ts @@ -79,7 +79,7 @@ export const getMemberSummary = () => { export const getMemberAnalyse = (params: MemberAnalyseReqVO) => { return request.get({ url: '/statistics/member/analyse', - params: { times: [formatDate(params.times[0]), formatDate(params.times[1])] } + params: { times: [formatDate(params.times[0] as any), formatDate(params.times[1] as any)] } }) } @@ -118,6 +118,6 @@ export const getMemberRegisterCountList = ( ) => { return request.get({ url: '/statistics/member/register-count-list', - params: { times: [formatDate(beginTime), formatDate(endTime)] } + params: { times: [formatDate(beginTime as any), formatDate(endTime as any)] } }) } diff --git a/src/api/mes/cal/calendar/index.ts b/src/api/mes/cal/calendar/index.ts new file mode 100644 index 000000000..1bd3cef6d --- /dev/null +++ b/src/api/mes/cal/calendar/index.ts @@ -0,0 +1,25 @@ +import request from '@/config/axios' + +// 排班日历 - 班组排班项 +export interface CalCalendarTeamShiftItem { + teamId: number + teamName: string + shiftId: number + shiftName: string + sort: number +} + +// 排班日历 - 日历天 VO +export interface CalCalendarDayVO { + day: string // yyyy-MM-dd + shiftType: number // 轮班方式 + teamShifts: CalCalendarTeamShiftItem[] +} + +// 排班日历 API +export const CalCalendarApi = { + // 查询排班日历列表 + getCalendarList: async (params: any) => { + return await request.get({ url: `/mes/cal/calendar/list`, params }) + } +} diff --git a/src/api/mes/cal/holiday/index.ts b/src/api/mes/cal/holiday/index.ts new file mode 100644 index 000000000..45c066983 --- /dev/null +++ b/src/api/mes/cal/holiday/index.ts @@ -0,0 +1,28 @@ +import request from '@/config/axios' + +// MES 假期设置 VO +export interface CalHolidayVO { + id: number // 编号 + day: number // 日期(时间戳) + type: number // 日期类型 + remark: string // 备注 + createTime: string // 创建时间 +} + +// MES 假期设置 API +export const CalHolidayApi = { + // 查询假期设置列表(支持可选日期范围过滤) + getHolidayList: async (params?: { startDay?: string; endDay?: string }) => { + return await request.get({ url: `/mes/cal/holiday/list`, params }) + }, + + // 根据日期查询假期设置 + getHolidayByDay: async (day: string) => { + return await request.get({ url: `/mes/cal/holiday/get-by-day`, params: { day } }) + }, + + // 保存假期设置(含 upsert 逻辑) + saveHoliday: async (data: CalHolidayVO) => { + return await request.post({ url: `/mes/cal/holiday/save`, data }) + } +} diff --git a/src/api/mes/cal/plan/index.ts b/src/api/mes/cal/plan/index.ts new file mode 100644 index 000000000..45ba4f8b7 --- /dev/null +++ b/src/api/mes/cal/plan/index.ts @@ -0,0 +1,54 @@ +import request from '@/config/axios' + +// MES 排班计划 VO +export interface CalPlanVO { + id: number + code: string // 计划编码 + name: string // 计划名称 + calendarType: number // 班组类型 + startDate: number // 开始日期 + endDate: number // 结束日期 + shiftType: number // 轮班方式 + shiftMethod: number // 倒班方式 + shiftCount: number // 倒班天数 + status: number // 状态 + remark: string // 备注 +} + +// MES 排班计划 API +export const CalPlanApi = { + // 查询排班计划分页 + getPlanPage: async (params: any) => { + return await request.get({ url: `/mes/cal/plan/page`, params }) + }, + + // 查询排班计划详情 + getPlan: async (id: number) => { + return await request.get({ url: `/mes/cal/plan/get?id=` + id }) + }, + + // 新增排班计划 + createPlan: async (data: CalPlanVO) => { + return await request.post({ url: `/mes/cal/plan/create`, data }) + }, + + // 修改排班计划 + updatePlan: async (data: CalPlanVO) => { + return await request.put({ url: `/mes/cal/plan/update`, data }) + }, + + // 确认排班计划 + confirmPlan: async (id: number) => { + return await request.put({ url: `/mes/cal/plan/confirm?id=` + id }) + }, + + // 删除排班计划 + deletePlan: async (id: number) => { + return await request.delete({ url: `/mes/cal/plan/delete?id=` + id }) + }, + + // 导出排班计划 Excel + exportPlan: async (params: any) => { + return await request.download({ url: `/mes/cal/plan/export-excel`, params }) + } +} diff --git a/src/api/mes/cal/plan/shift/index.ts b/src/api/mes/cal/plan/shift/index.ts new file mode 100644 index 000000000..891ecfca4 --- /dev/null +++ b/src/api/mes/cal/plan/shift/index.ts @@ -0,0 +1,35 @@ +import request from '@/config/axios' + +// MES 计划班次 VO +export interface CalPlanShiftVO { + id: number + planId: number // 排班计划编号 + sort: number // 显示顺序 + name: string // 班次名称 + startTime: string // 开始时间 + endTime: string // 结束时间 + remark: string // 备注 +} + +// MES 计划班次 API +export const CalPlanShiftApi = { + // 查询指定排班计划的班次列表 + getPlanShiftListByPlan: async (planId: number) => { + return await request.get({ url: `/mes/cal/plan-shift/list-by-plan?planId=` + planId }) + }, + + // 新增计划班次 + createPlanShift: async (data: CalPlanShiftVO) => { + return await request.post({ url: `/mes/cal/plan-shift/create`, data }) + }, + + // 修改计划班次 + updatePlanShift: async (data: CalPlanShiftVO) => { + return await request.put({ url: `/mes/cal/plan-shift/update`, data }) + }, + + // 删除计划班次 + deletePlanShift: async (id: number) => { + return await request.delete({ url: `/mes/cal/plan-shift/delete?id=` + id }) + } +} diff --git a/src/api/mes/cal/plan/team.ts.bak b/src/api/mes/cal/plan/team.ts.bak new file mode 100644 index 000000000..5465070ec --- /dev/null +++ b/src/api/mes/cal/plan/team.ts.bak @@ -0,0 +1,31 @@ +import request from '@/config/axios' + +// MES 计划班组关联 VO +export interface CalPlanTeamVO { + id: number + planId: number // 排班计划编号 + teamId: number // 班组编号 + teamCode: string // 班组编码 + teamName: string // 班组名称 + remark: string // 备注 +} + +// TODO @AI:挪到 team/index.ts 中 + +// MES 计划班组关联 API +export const CalPlanTeamApi = { + // 查询指定排班计划的班组列表 + getPlanTeamListByPlan: async (planId: number) => { + return await request.get({ url: `/mes/cal/plan-team/list-by-plan?planId=` + planId }) + }, + + // 新增计划班组关联 + createPlanTeam: async (data: CalPlanTeamVO) => { + return await request.post({ url: `/mes/cal/plan-team/create`, data }) + }, + + // 删除计划班组关联 + deletePlanTeam: async (id: number) => { + return await request.delete({ url: `/mes/cal/plan-team/delete?id=` + id }) + } +} diff --git a/src/api/mes/cal/plan/team/index.ts b/src/api/mes/cal/plan/team/index.ts new file mode 100644 index 000000000..27d238bdb --- /dev/null +++ b/src/api/mes/cal/plan/team/index.ts @@ -0,0 +1,29 @@ +import request from '@/config/axios' + +// MES 计划班组关联 VO +export interface CalPlanTeamVO { + id: number + planId: number // 排班计划编号 + teamId: number // 班组编号 + teamCode: string // 班组编码 + teamName: string // 班组名称 + remark: string // 备注 +} + +// MES 计划班组关联 API +export const CalPlanTeamApi = { + // 查询指定排班计划的班组列表 + getPlanTeamListByPlan: async (planId: number) => { + return await request.get({ url: `/mes/cal/plan-team/list-by-plan?planId=` + planId }) + }, + + // 新增计划班组关联 + createPlanTeam: async (data: CalPlanTeamVO) => { + return await request.post({ url: `/mes/cal/plan-team/create`, data }) + }, + + // 删除计划班组关联 + deletePlanTeam: async (id: number) => { + return await request.delete({ url: `/mes/cal/plan-team/delete?id=` + id }) + } +} diff --git a/src/api/mes/cal/shift/index.ts.bak b/src/api/mes/cal/shift/index.ts.bak new file mode 100644 index 000000000..bd88a9ddf --- /dev/null +++ b/src/api/mes/cal/shift/index.ts.bak @@ -0,0 +1,37 @@ +import request from '@/config/axios' + +// TODO @AI:挪到 plan/shift 目录下 + +// MES 计划班次 VO +export interface CalPlanShiftVO { + id: number + planId: number // 排班计划编号 + sort: number // 显示顺序 + name: string // 班次名称 + startTime: string // 开始时间 + endTime: string // 结束时间 + remark: string // 备注 +} + +// MES 计划班次 API +export const CalPlanShiftApi = { + // 查询指定排班计划的班次列表 + getPlanShiftListByPlan: async (planId: number) => { + return await request.get({ url: `/mes/cal/plan-shift/list-by-plan?planId=` + planId }) + }, + + // 新增计划班次 + createPlanShift: async (data: CalPlanShiftVO) => { + return await request.post({ url: `/mes/cal/plan-shift/create`, data }) + }, + + // 修改计划班次 + updatePlanShift: async (data: CalPlanShiftVO) => { + return await request.put({ url: `/mes/cal/plan-shift/update`, data }) + }, + + // 删除计划班次 + deletePlanShift: async (id: number) => { + return await request.delete({ url: `/mes/cal/plan-shift/delete?id=` + id }) + } +} diff --git a/src/api/mes/cal/team/index.ts b/src/api/mes/cal/team/index.ts new file mode 100644 index 000000000..038c1e951 --- /dev/null +++ b/src/api/mes/cal/team/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +// MES 班组 VO +export interface CalTeamVO { + id: number + code: string // 班组编码 + name: string // 班组名称 + calendarType: number // 班组类型 + remark: string // 备注 +} + +// MES 班组 API +export const CalTeamApi = { + // 查询班组分页 + getTeamPage: async (params: any) => { + return await request.get({ url: `/mes/cal/team/page`, params }) + }, + + // 查询班组详情 + getTeam: async (id: number) => { + return await request.get({ url: `/mes/cal/team/get?id=` + id }) + }, + + // 新增班组 + createTeam: async (data: CalTeamVO) => { + return await request.post({ url: `/mes/cal/team/create`, data }) + }, + + // 修改班组 + updateTeam: async (data: CalTeamVO) => { + return await request.put({ url: `/mes/cal/team/update`, data }) + }, + + // 删除班组 + deleteTeam: async (id: number) => { + return await request.delete({ url: `/mes/cal/team/delete?id=` + id }) + }, + + // 获得班组列表(全量,用于下拉选择) + getTeamList: async () => { + return await request.get({ url: `/mes/cal/team/list` }) + }, + + // 导出班组 Excel + exportTeam: async (params: any) => { + return await request.download({ url: `/mes/cal/team/export-excel`, params }) + } +} diff --git a/src/api/mes/cal/team/member/index.ts b/src/api/mes/cal/team/member/index.ts new file mode 100644 index 000000000..f6131e7b1 --- /dev/null +++ b/src/api/mes/cal/team/member/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +// MES 班组成员 VO +export interface CalTeamMemberVO { + id: number + teamId: number // 班组编号 + userId: number // 用户编号 + nickname: string // 用户昵称(关联查询) + telephone: string // 用户手机号(关联查询) + remark: string // 备注 +} + +// MES 班组成员 API +export const CalTeamMemberApi = { + // 创建班组成员 + createTeamMember: async (data: CalTeamMemberVO) => { + return await request.post({ url: `/mes/cal/team-member/create`, data }) + }, + + // 删除班组成员 + deleteTeamMember: async (id: number) => { + return await request.delete({ url: `/mes/cal/team-member/delete?id=` + id }) + }, + + // 查询班组成员分页 + getTeamMemberPage: async (params: any) => { + return await request.get({ url: `/mes/cal/team-member/page`, params }) + }, + + // 查询指定班组的成员列表 + getTeamMemberListByTeam: async (teamId: number) => { + return await request.get({ url: `/mes/cal/team-member/list-by-team`, params: { teamId } }) + }, + + // 查询多个班组的成员列表 + getTeamMemberListByTeamIds: async (teamIds: number[]) => { + return await request.get({ + url: `/mes/cal/team-member/list-by-team`, + params: { teamIds: teamIds.join(',') } + }) + } +} diff --git a/src/api/mes/cal/team/shift/index.ts b/src/api/mes/cal/team/shift/index.ts new file mode 100644 index 000000000..3c16d20c9 --- /dev/null +++ b/src/api/mes/cal/team/shift/index.ts @@ -0,0 +1,22 @@ +import request from '@/config/axios' + +// MES 班组排班 VO +export interface CalTeamShiftVO { + id: number + planId: number // 排班计划编号 + teamId: number // 班组编号 + shiftId: number // 班次编号 + day: number // 日期 + sort: number // 排序 + teamName: string // 班组名称(关联查询) + shiftName: string // 班次名称(关联查询) + remark: string // 备注 +} + +// MES 班组排班 API +export const CalTeamShiftApi = { + // 查询班组排班列表 + getTeamShiftList: async (params: any) => { + return await request.get({ url: `/mes/cal/team-shift/list`, params }) + } +} diff --git a/src/api/mes/dv/checkplan/index.ts b/src/api/mes/dv/checkplan/index.ts new file mode 100644 index 000000000..3cf385be5 --- /dev/null +++ b/src/api/mes/dv/checkplan/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +// MES 点检保养方案 VO +export interface DvCheckPlanVO { + id: number // 编号 + code: string // 方案编码 + name: string // 方案名称 + type: number // 方案类型 + startDate: Date // 开始日期 + endDate: Date // 结束日期 + cycleType: number // 周期类型 + cycleCount: number // 周期数量 + status: number // 状态 + remark: string // 备注 +} + +// MES 点检保养方案 API +export const DvCheckPlanApi = { + // 查询点检保养方案分页 + getCheckPlanPage: async (params: any) => { + return await request.get({ url: `/mes/dv/check-plan/page`, params }) + }, + + // 查询点检保养方案详情 + getCheckPlan: async (id: number) => { + return await request.get({ url: `/mes/dv/check-plan/get?id=` + id }) + }, + + // 新增点检保养方案 + createCheckPlan: async (data: DvCheckPlanVO) => { + return await request.post({ url: `/mes/dv/check-plan/create`, data }) + }, + + // 修改点检保养方案 + updateCheckPlan: async (data: DvCheckPlanVO) => { + return await request.put({ url: `/mes/dv/check-plan/update`, data }) + }, + + // 启用点检保养方案 + enableCheckPlan: async (id: number) => { + return await request.put({ url: `/mes/dv/check-plan/enable?id=` + id }) + }, + + // 停用点检保养方案 + disableCheckPlan: async (id: number) => { + return await request.put({ url: `/mes/dv/check-plan/disable?id=` + id }) + }, + + // 删除点检保养方案 + deleteCheckPlan: async (id: number) => { + return await request.delete({ url: `/mes/dv/check-plan/delete?id=` + id }) + }, + + // 导出点检保养方案 Excel + exportCheckPlan: async (params: any) => { + return await request.download({ url: `/mes/dv/check-plan/export-excel`, params }) + } +} diff --git a/src/api/mes/dv/checkplan/machinery.ts.bak b/src/api/mes/dv/checkplan/machinery.ts.bak new file mode 100644 index 000000000..7533c6404 --- /dev/null +++ b/src/api/mes/dv/checkplan/machinery.ts.bak @@ -0,0 +1,32 @@ +import request from '@/config/axios' + +// TODO @AI:放到 machinery/index.ts +// MES 点检保养方案设备 VO +export interface DvCheckPlanMachineryVO { + id: number + planId: number // 方案编号 + machineryId: number // 设备编号 + machineryCode: string // 设备编码 + machineryName: string // 设备名称 + machineryBrand: string // 品牌 + machinerySpec: string // 规格型号 + remark: string // 备注 +} + +// MES 点检保养方案设备 API +export const DvCheckPlanMachineryApi = { + // 查询指定方案的设备列表 + getListByPlan: async (planId: number) => { + return await request.get({ url: `/mes/dv/check-plan-machinery/list-by-plan?planId=` + planId }) + }, + + // 新增方案设备关联 + create: async (data: DvCheckPlanMachineryVO) => { + return await request.post({ url: `/mes/dv/check-plan-machinery/create`, data }) + }, + + // 删除方案设备关联 + delete: async (id: number) => { + return await request.delete({ url: `/mes/dv/check-plan-machinery/delete?id=` + id }) + } +} diff --git a/src/api/mes/dv/checkplan/machinery/index.ts b/src/api/mes/dv/checkplan/machinery/index.ts new file mode 100644 index 000000000..ac9766862 --- /dev/null +++ b/src/api/mes/dv/checkplan/machinery/index.ts @@ -0,0 +1,31 @@ +import request from '@/config/axios' + +// MES 点检保养方案设备 VO +export interface DvCheckPlanMachineryVO { + id: number + planId: number // 方案编号 + machineryId: number // 设备编号 + machineryCode: string // 设备编码 + machineryName: string // 设备名称 + machineryBrand: string // 品牌 + machinerySpecification: string // 规格型号 + remark: string // 备注 +} + +// MES 点检保养方案设备 API +export const DvCheckPlanMachineryApi = { + // 查询指定方案的设备列表 + getListByPlan: async (planId: number) => { + return await request.get({ url: `/mes/dv/check-plan-machinery/list-by-plan?planId=` + planId }) + }, + + // 新增方案设备关联 + create: async (data: DvCheckPlanMachineryVO) => { + return await request.post({ url: `/mes/dv/check-plan-machinery/create`, data }) + }, + + // 删除方案设备关联 + delete: async (id: number) => { + return await request.delete({ url: `/mes/dv/check-plan-machinery/delete?id=` + id }) + } +} diff --git a/src/api/mes/dv/checkplan/subject.ts.bak b/src/api/mes/dv/checkplan/subject.ts.bak new file mode 100644 index 000000000..51d2bec97 --- /dev/null +++ b/src/api/mes/dv/checkplan/subject.ts.bak @@ -0,0 +1,33 @@ +import request from '@/config/axios' + +// TODO @AI:放到 subject/index.ts +// MES 点检保养方案项目 VO +export interface DvCheckPlanSubjectVO { + id: number + planId: number // 方案编号 + subjectId: number // 项目编号 + subjectCode: string // 项目编码 + subjectName: string // 项目名称 + subjectType: number // 项目类型 + subjectContent: string // 项目内容 + subjectStandard: string // 标准 + remark: string // 备注 +} + +// MES 点检保养方案项目 API +export const DvCheckPlanSubjectApi = { + // 查询指定方案的项目列表 + getListByPlan: async (planId: number) => { + return await request.get({ url: `/mes/dv/check-plan-subject/list-by-plan?planId=` + planId }) + }, + + // 新增方案项目关联 + create: async (data: DvCheckPlanSubjectVO) => { + return await request.post({ url: `/mes/dv/check-plan-subject/create`, data }) + }, + + // 删除方案项目关联 + delete: async (id: number) => { + return await request.delete({ url: `/mes/dv/check-plan-subject/delete?id=` + id }) + } +} diff --git a/src/api/mes/dv/checkplan/subject/index.ts b/src/api/mes/dv/checkplan/subject/index.ts new file mode 100644 index 000000000..bc9876809 --- /dev/null +++ b/src/api/mes/dv/checkplan/subject/index.ts @@ -0,0 +1,32 @@ +import request from '@/config/axios' + +// MES 点检保养方案项目 VO +export interface DvCheckPlanSubjectVO { + id: number + planId: number // 方案编号 + subjectId: number // 项目编号 + subjectCode: string // 项目编码 + subjectName: string // 项目名称 + subjectType: number // 项目类型 + subjectContent: string // 项目内容 + subjectStandard: string // 标准 + remark: string // 备注 +} + +// MES 点检保养方案项目 API +export const DvCheckPlanSubjectApi = { + // 查询指定方案的项目列表 + getListByPlan: async (planId: number) => { + return await request.get({ url: `/mes/dv/check-plan-subject/list-by-plan?planId=` + planId }) + }, + + // 新增方案项目关联 + create: async (data: DvCheckPlanSubjectVO) => { + return await request.post({ url: `/mes/dv/check-plan-subject/create`, data }) + }, + + // 删除方案项目关联 + delete: async (id: number) => { + return await request.delete({ url: `/mes/dv/check-plan-subject/delete?id=` + id }) + } +} diff --git a/src/api/mes/dv/checkrecord/index.ts b/src/api/mes/dv/checkrecord/index.ts new file mode 100644 index 000000000..0df99ce71 --- /dev/null +++ b/src/api/mes/dv/checkrecord/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +// MES 设备点检记录 VO +export interface DvCheckRecordVO { + id: number // 编号 + planId: number // 点检计划编号 + planName?: string // 计划名称 + machineryId: number // 设备编号 + machineryCode?: string // 设备编码 + machineryName?: string // 设备名称 + machineryBrand?: string // 品牌 + machinerySpecification?: string // 规格型号 + checkTime: Date // 点检时间 + userId: number // 点检人编号 + nickname?: string // 点检人名称 + status: number // 状态 + remark: string // 备注 +} + +// MES 设备点检记录 API +export const DvCheckRecordApi = { + // 查询设备点检记录分页 + getCheckRecordPage: async (params: any) => { + return await request.get({ url: `/mes/dv/check-record/page`, params }) + }, + + // 查询设备点检记录详情 + getCheckRecord: async (id: number) => { + return await request.get({ url: `/mes/dv/check-record/get?id=` + id }) + }, + + // 新增设备点检记录 + createCheckRecord: async (data: DvCheckRecordVO) => { + return await request.post({ url: `/mes/dv/check-record/create`, data }) + }, + + // 修改设备点检记录 + updateCheckRecord: async (data: DvCheckRecordVO) => { + return await request.put({ url: `/mes/dv/check-record/update`, data }) + }, + + // 提交设备点检记录 + submitCheckRecord: async (id: number) => { + return await request.put({ url: `/mes/dv/check-record/submit?id=` + id }) + }, + + // 删除设备点检记录 + deleteCheckRecord: async (id: number) => { + return await request.delete({ url: `/mes/dv/check-record/delete?id=` + id }) + }, + + // 导出设备点检记录 Excel + exportCheckRecord: async (params: any) => { + return await request.download({ url: `/mes/dv/check-record/export-excel`, params }) + } +} diff --git a/src/api/mes/dv/checkrecord/line/index.ts b/src/api/mes/dv/checkrecord/line/index.ts new file mode 100644 index 000000000..e3607041d --- /dev/null +++ b/src/api/mes/dv/checkrecord/line/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +// MES 设备点检记录明细 VO +export interface DvCheckRecordLineVO { + id: number // 编号 + recordId: number // 点检记录编号 + subjectId: number // 点检项目编号 + subjectCode?: string // 项目编码 + subjectName?: string // 项目名称 + subjectContent?: string // 检查内容 + subjectStandard?: string // 检查标准 + checkStatus: number // 点检结果 + checkResult?: string // 异常描述 + remark: string // 备注 +} + +// MES 设备点检记录明细 API +export const DvCheckRecordLineApi = { + // 查询设备点检记录明细分页 + getCheckRecordLinePage: async (params: any) => { + return await request.get({ url: `/mes/dv/check-record-line/page`, params }) + }, + + // 查询设备点检记录明细详情 + getCheckRecordLine: async (id: number) => { + return await request.get({ url: `/mes/dv/check-record-line/get?id=` + id }) + }, + + // 新增设备点检记录明细 + createCheckRecordLine: async (data: DvCheckRecordLineVO) => { + return await request.post({ url: `/mes/dv/check-record-line/create`, data }) + }, + + // 修改设备点检记录明细 + updateCheckRecordLine: async (data: DvCheckRecordLineVO) => { + return await request.put({ url: `/mes/dv/check-record-line/update`, data }) + }, + + // 删除设备点检记录明细 + deleteCheckRecordLine: async (id: number) => { + return await request.delete({ url: `/mes/dv/check-record-line/delete?id=` + id }) + } +} diff --git a/src/api/mes/dv/machinery/index.ts b/src/api/mes/dv/machinery/index.ts new file mode 100644 index 000000000..0591e68df --- /dev/null +++ b/src/api/mes/dv/machinery/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +// MES 设备台账 VO +export interface DvMachineryVO { + id: number // 编号 + code: string // 设备编码 + name: string // 设备名称 + brand: string // 品牌 + specification: string // 规格型号 + machineryTypeId: number // 设备类型编号 + machineryTypeName: string // 设备类型名称 + workshopId: number // 所属车间编号 + workshopName: string // 所属车间名称 + status: number // 设备状态 + lastMaintenTime: Date // 最近保养时间 + lastCheckTime: Date // 最近点检时间 + remark: string // 备注 +} + +// MES 设备台账 API +export const DvMachineryApi = { + // 查询设备台账分页 + getMachineryPage: async (params: any) => { + return await request.get({ url: `/mes/dv/machinery/page`, params }) + }, + + // 查询设备台账详情 + getMachinery: async (id: number) => { + return await request.get({ url: `/mes/dv/machinery/get?id=` + id }) + }, + + // 新增设备台账 + createMachinery: async (data: DvMachineryVO) => { + return await request.post({ url: `/mes/dv/machinery/create`, data }) + }, + + // 修改设备台账 + updateMachinery: async (data: DvMachineryVO) => { + return await request.put({ url: `/mes/dv/machinery/update`, data }) + }, + + // 删除设备台账 + deleteMachinery: async (id: number) => { + return await request.delete({ url: `/mes/dv/machinery/delete?id=` + id }) + }, + + // 导出设备台账 Excel + exportMachinery: async (params: any) => { + return await request.download({ url: `/mes/dv/machinery/export-excel`, params }) + }, + + // 下载设备导入模板 + importTemplate: async () => { + return await request.download({ url: `/mes/dv/machinery/get-import-template` }) + } +} diff --git a/src/api/mes/dv/machinery/type/index.ts b/src/api/mes/dv/machinery/type/index.ts new file mode 100644 index 000000000..b7f11d62e --- /dev/null +++ b/src/api/mes/dv/machinery/type/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +// MES 设备类型 VO +export interface DvMachineryTypeVO { + id: number // 编号 + parentId: number // 父类型编号 + code: string // 类型编码 + name: string // 类型名称 + sort: number // 显示排序 + status: number // 状态 + remark: string // 备注 +} + +// MES 设备类型 API +export const DvMachineryTypeApi = { + // 查询设备类型列表 + getMachineryTypeList: async (params?: any) => { + return await request.get({ url: `/mes/dv/machinery-type/list`, params }) + }, + + // 查询设备类型精简列表 + getMachineryTypeSimpleList: async () => { + return await request.get({ url: `/mes/dv/machinery-type/simple-list` }) + }, + + // 查询设备类型详情 + getMachineryType: async (id: number) => { + return await request.get({ url: `/mes/dv/machinery-type/get?id=` + id }) + }, + + // 新增设备类型 + createMachineryType: async (data: DvMachineryTypeVO) => { + return await request.post({ url: `/mes/dv/machinery-type/create`, data }) + }, + + // 修改设备类型 + updateMachineryType: async (data: DvMachineryTypeVO) => { + return await request.put({ url: `/mes/dv/machinery-type/update`, data }) + }, + + // 删除设备类型 + deleteMachineryType: async (id: number) => { + return await request.delete({ url: `/mes/dv/machinery-type/delete?id=` + id }) + } +} diff --git a/src/api/mes/dv/maintenrecord/index.ts b/src/api/mes/dv/maintenrecord/index.ts new file mode 100644 index 000000000..ba039928a --- /dev/null +++ b/src/api/mes/dv/maintenrecord/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +// MES 设备保养记录 VO +export interface DvMaintenRecordVO { + id: number // 编号 + planId: number // 计划编号 + planName?: string // 计划名称 + machineryId: number // 设备编号 + machineryCode?: string // 设备编码 + machineryName?: string // 设备名称 + machineryBrand?: string // 品牌 + machinerySpecification?: string // 规格型号 + maintenTime: Date // 保养时间 + userId: number // 用户编号 + nickname?: string // 保养人名称 + status: number // 状态 + remark: string // 备注 +} + +// MES 设备保养记录 API +export const DvMaintenRecordApi = { + // 查询设备保养记录分页 + getMaintenRecordPage: async (params: any) => { + return await request.get({ url: `/mes/dv/mainten-record/page`, params }) + }, + + // 查询设备保养记录详情 + getMaintenRecord: async (id: number) => { + return await request.get({ url: `/mes/dv/mainten-record/get?id=` + id }) + }, + + // 新增设备保养记录 + createMaintenRecord: async (data: DvMaintenRecordVO) => { + return await request.post({ url: `/mes/dv/mainten-record/create`, data }) + }, + + // 修改设备保养记录 + updateMaintenRecord: async (data: DvMaintenRecordVO) => { + return await request.put({ url: `/mes/dv/mainten-record/update`, data }) + }, + + // 提交设备保养记录 + submitMaintenRecord: async (id: number) => { + return await request.put({ url: `/mes/dv/mainten-record/submit?id=` + id }) + }, + + // 删除设备保养记录 + deleteMaintenRecord: async (id: number) => { + return await request.delete({ url: `/mes/dv/mainten-record/delete?id=` + id }) + }, + + // 导出设备保养记录 Excel + exportMaintenRecord: async (params: any) => { + return await request.download({ url: `/mes/dv/mainten-record/export-excel`, params }) + } +} diff --git a/src/api/mes/dv/maintenrecord/line/index.ts b/src/api/mes/dv/maintenrecord/line/index.ts new file mode 100644 index 000000000..844c3996f --- /dev/null +++ b/src/api/mes/dv/maintenrecord/line/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +// MES 设备保养记录明细 VO +export interface DvMaintenRecordLineVO { + id: number // 编号 + recordId: number // 保养记录编号 + subjectId: number // 项目编号 + subjectName?: string // 项目名称 + subjectContent?: string // 项目内容 + subjectStandard?: string // 项目标准 + status: number // 保养结果 + result: string // 异常描述 + remark: string // 备注 +} + +// MES 设备保养记录明细 API +export const DvMaintenRecordLineApi = { + // 查询设备保养记录明细分页 + getMaintenRecordLinePage: async (params: any) => { + return await request.get({ url: `/mes/dv/mainten-record-line/page`, params }) + }, + + // 查询设备保养记录明细详情 + getMaintenRecordLine: async (id: number) => { + return await request.get({ url: `/mes/dv/mainten-record-line/get?id=` + id }) + }, + + // 新增设备保养记录明细 + createMaintenRecordLine: async (data: DvMaintenRecordLineVO) => { + return await request.post({ url: `/mes/dv/mainten-record-line/create`, data }) + }, + + // 修改设备保养记录明细 + updateMaintenRecordLine: async (data: DvMaintenRecordLineVO) => { + return await request.put({ url: `/mes/dv/mainten-record-line/update`, data }) + }, + + // 删除设备保养记录明细 + deleteMaintenRecordLine: async (id: number) => { + return await request.delete({ url: `/mes/dv/mainten-record-line/delete?id=` + id }) + } +} diff --git a/src/api/mes/dv/repair/index.ts b/src/api/mes/dv/repair/index.ts new file mode 100644 index 000000000..b520edb85 --- /dev/null +++ b/src/api/mes/dv/repair/index.ts @@ -0,0 +1,74 @@ +import request from '@/config/axios' + +// MES 维修工单 VO +export interface DvRepairVO { + id: number // 编号 + code: string // 维修工单编码 + name: string // 维修工单名称 + machineryId: number // 设备编号 + machineryCode?: string // 设备编码 + machineryName?: string // 设备名称 + machineryBrand?: string // 品牌 + machinerySpecification?: string // 规格型号 + requireDate: Date // 报修日期 + finishDate: Date // 维修完成日期 + confirmDate: Date // 验收日期 + result: number // 维修结果 + acceptedUserId: number // 维修人用户编号 + acceptedUserNickname?: string // 维修人名称 + confirmUserId: number // 验收人用户编号 + confirmUserNickname?: string // 验收人名称 + sourceDocType: number // 来源单据类型 + sourceDocId: number // 来源单据编号 + sourceDocCode: string // 来源单据编码 + status: number // 状态 + remark: string // 备注 +} + +// MES 维修工单 API +export const DvRepairApi = { + // 查询维修工单分页 + getRepairPage: async (params: any) => { + return await request.get({ url: `/mes/dv/repair/page`, params }) + }, + + // 查询维修工单详情 + getRepair: async (id: number) => { + return await request.get({ url: `/mes/dv/repair/get?id=` + id }) + }, + + // 新增维修工单 + createRepair: async (data: DvRepairVO) => { + return await request.post({ url: `/mes/dv/repair/create`, data }) + }, + + // 修改维修工单 + updateRepair: async (data: DvRepairVO) => { + return await request.put({ url: `/mes/dv/repair/update`, data }) + }, + + // 删除维修工单 + deleteRepair: async (id: number) => { + return await request.delete({ url: `/mes/dv/repair/delete?id=` + id }) + }, + + // 导出维修工单 Excel + exportRepair: async (params: any) => { + return await request.download({ url: `/mes/dv/repair/export-excel`, params }) + }, + + // 提交维修工单(草稿→维修中) + submitRepair: async (id: number) => { + return await request.put({ url: `/mes/dv/repair/submit?id=` + id }) + }, + + // 确认维修完成(维修中→待验收) + confirmRepair: async (data: any) => { + return await request.put({ url: `/mes/dv/repair/confirm`, data }) + }, + + // 完成验收(待验收→已确认) + finishRepair: async (id: number, result: number) => { + return await request.put({ url: `/mes/dv/repair/finish?id=` + id + `&result=` + result }) + } +} diff --git a/src/api/mes/dv/repair/line/index.ts b/src/api/mes/dv/repair/line/index.ts new file mode 100644 index 000000000..9c73822b4 --- /dev/null +++ b/src/api/mes/dv/repair/line/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +// MES 维修工单行 VO +export interface DvRepairLineVO { + id: number // 编号 + repairId: number // 维修工单编号 + subjectId: number // 项目编号 + subjectName?: string // 项目名称 + subjectContent?: string // 项目内容 + subjectStandard?: string // 项目标准 + malfunction: string // 故障描述 + malfunctionUrl: string // 故障图片 URL + description: string // 维修描述 + remark: string // 备注 +} + +// MES 维修工单行 API +export const DvRepairLineApi = { + // 查询维修工单行分页 + getRepairLinePage: async (params: any) => { + return await request.get({ url: `/mes/dv/repair-line/page`, params }) + }, + + // 查询维修工单行详情 + getRepairLine: async (id: number) => { + return await request.get({ url: `/mes/dv/repair-line/get?id=` + id }) + }, + + // 新增维修工单行 + createRepairLine: async (data: DvRepairLineVO) => { + return await request.post({ url: `/mes/dv/repair-line/create`, data }) + }, + + // 修改维修工单行 + updateRepairLine: async (data: DvRepairLineVO) => { + return await request.put({ url: `/mes/dv/repair-line/update`, data }) + }, + + // 删除维修工单行 + deleteRepairLine: async (id: number) => { + return await request.delete({ url: `/mes/dv/repair-line/delete?id=` + id }) + } +} diff --git a/src/api/mes/dv/subject/index.ts b/src/api/mes/dv/subject/index.ts new file mode 100644 index 000000000..a6cce69f0 --- /dev/null +++ b/src/api/mes/dv/subject/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +// MES 点检保养项目 VO +export interface DvSubjectVO { + id: number // 编号 + code: string // 项目编码 + name: string // 项目名称 + type: number // 项目类型 + content: string // 项目内容 + standard: string // 标准 + status: number // 状态 + remark: string // 备注 +} + +// MES 点检保养项目 API +export const DvSubjectApi = { + // 查询点检保养项目分页 + getSubjectPage: async (params: any) => { + return await request.get({ url: `/mes/dv/subject/page`, params }) + }, + + // 查询点检保养项目详情 + getSubject: async (id: number) => { + return await request.get({ url: `/mes/dv/subject/get?id=` + id }) + }, + + // 新增点检保养项目 + createSubject: async (data: DvSubjectVO) => { + return await request.post({ url: `/mes/dv/subject/create`, data }) + }, + + // 修改点检保养项目 + updateSubject: async (data: DvSubjectVO) => { + return await request.put({ url: `/mes/dv/subject/update`, data }) + }, + + // 删除点检保养项目 + deleteSubject: async (id: number) => { + return await request.delete({ url: `/mes/dv/subject/delete?id=` + id }) + }, + + // 导出点检保养项目 Excel + exportSubject: async (params: any) => { + return await request.download({ url: `/mes/dv/subject/export-excel`, params }) + } +} diff --git a/src/api/mes/home/index.ts b/src/api/mes/home/index.ts new file mode 100644 index 000000000..a92d19487 --- /dev/null +++ b/src/api/mes/home/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +// MES 首页汇总统计 VO +export interface MesHomeSummaryVO { + workOrderActiveCount: number + workOrderPrepareCount: number + workOrderFinishedCount: number + todayOutput: number + yesterdayOutput: number + todayQualifiedQuantity: number + todayUnqualifiedQuantity: number + machineryTotal: number + machineryProducing: number + machineryStop: number + machineryMaintenance: number + andonActiveCount: number + repairActiveCount: number +} + +// MES 工单状态分布 VO +export interface MesHomeWorkOrderStatusVO { + status: number + statusName: string + count: number +} + +// MES 生产趋势 VO +export interface MesHomeProductionTrendVO { + date: string + quantity: number + qualifiedQuantity: number + unqualifiedQuantity: number +} + +// MES 首页统计 API +export const MesHomeStatisticsApi = { + // 获得首页汇总统计 + getHomeSummary: async (): Promise => { + return await request.get({ url: `/mes/home-statistics/summary` }) + }, + + // 获得工单状态分布 + getWorkOrderStatusDistribution: async (): Promise => { + return await request.get({ url: `/mes/home-statistics/work-order-status` }) + }, + + // 获得生产趋势 + getProductionTrend: async (days?: number): Promise => { + return await request.get({ url: `/mes/home-statistics/production-trend`, params: { days } }) + } +} diff --git a/src/api/mes/md/autocode/part/index.ts b/src/api/mes/md/autocode/part/index.ts new file mode 100644 index 000000000..612410678 --- /dev/null +++ b/src/api/mes/md/autocode/part/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +// MES 编码规则分段 VO +export interface AutoCodePartVO { + id: number // 分段编号 + ruleId: number // 规则编号 + sort: number // 排序 + type: number // 分段类型 + length: number // 长度 + dateFormat: string // 日期格式 + fixCharacter: string // 固定字符 + serialStartNo: number // 流水号起始值 + serialStep: number // 流水号步长 + cycleFlag: boolean // 是否循环 + cycleMethod: number // 循环方式 + remark: string // 备注 +} + +// MES 编码规则分段 API +export const AutoCodePartApi = { + // 查询编码规则分段详情 + getAutoCodePart: async (id: number) => { + return await request.get({ url: `/mes/md/auto-code-part/get?id=` + id }) + }, + + // 查询编码规则分段列表 + getAutoCodePartListByRuleId: async (ruleId: number) => { + return await request.get({ url: `/mes/md/auto-code-part/list-by-rule-id?ruleId=` + ruleId }) + }, + + // 新增编码规则分段 + createAutoCodePart: async (data: AutoCodePartVO) => { + return await request.post({ url: `/mes/md/auto-code-part/create`, data }) + }, + + // 修改编码规则分段 + updateAutoCodePart: async (data: AutoCodePartVO) => { + return await request.put({ url: `/mes/md/auto-code-part/update`, data }) + }, + + // 删除编码规则分段 + deleteAutoCodePart: async (id: number) => { + return await request.delete({ url: `/mes/md/auto-code-part/delete?id=` + id }) + } +} diff --git a/src/api/mes/md/autocode/record/index.ts b/src/api/mes/md/autocode/record/index.ts new file mode 100644 index 000000000..74883ba5d --- /dev/null +++ b/src/api/mes/md/autocode/record/index.ts @@ -0,0 +1,12 @@ +import request from '@/config/axios' + +// MES 编码生成 API +export const AutoCodeRecordApi = { + // 生成编码 + generateAutoCode: async (ruleCode: string, inputChar?: string) => { + return await request.post({ + url: `/mes/md/auto-code-record/generate`, + data: { ruleCode, inputChar } + }) + } +} diff --git a/src/api/mes/md/autocode/rule/index.ts b/src/api/mes/md/autocode/rule/index.ts new file mode 100644 index 000000000..efd3a332c --- /dev/null +++ b/src/api/mes/md/autocode/rule/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +// MES 编码规则 VO +export interface AutoCodeRuleVO { + id: number // 规则编号 + code: string // 规则编码 + name: string // 规则名称 + description: string // 规则描述 + maxLength: number // 最大长度 + padded: boolean // 是否补齐 + paddedChar: string // 补齐字符 + paddedMethod: number // 补齐方式 + status: number // 状态 + remark: string // 备注 +} + +// MES 编码规则 API +export const AutoCodeRuleApi = { + // 查询编码规则分页 + getAutoCodeRulePage: async (params: any) => { + return await request.get({ url: `/mes/md/auto-code-rule/page`, params }) + }, + + // 查询编码规则详情 + getAutoCodeRule: async (id: number) => { + return await request.get({ url: `/mes/md/auto-code-rule/get?id=` + id }) + }, + + // 新增编码规则 + createAutoCodeRule: async (data: AutoCodeRuleVO) => { + return await request.post({ url: `/mes/md/auto-code-rule/create`, data }) + }, + + // 修改编码规则 + updateAutoCodeRule: async (data: AutoCodeRuleVO) => { + return await request.put({ url: `/mes/md/auto-code-rule/update`, data }) + }, + + // 删除编码规则 + deleteAutoCodeRule: async (id: number) => { + return await request.delete({ url: `/mes/md/auto-code-rule/delete?id=` + id }) + }, + + // 导出编码规则 Excel + exportAutoCodeRule: async (params: any) => { + return await request.download({ url: `/mes/md/auto-code-rule/export-excel`, params }) + } +} diff --git a/src/api/mes/md/client/index.ts b/src/api/mes/md/client/index.ts new file mode 100644 index 000000000..010821321 --- /dev/null +++ b/src/api/mes/md/client/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +// MES 客户 VO +export interface MdClientVO { + id: number // 客户编号 + code: string // 客户编码 + name: string // 客户名称 + nickname: string // 客户简称 + englishName: string // 客户英文名称 + description: string // 客户简介 + logo: string // 客户LOGO地址 + type: number // 客户类型 + address: string // 客户地址 + website: string // 客户官网地址 + email: string // 客户邮箱地址 + telephone: string // 客户电话 + contact1Name: string // 联系人1 + contact1Telephone: string // 联系人1-电话 + contact1Email: string // 联系人1-邮箱 + contact2Name: string // 联系人2 + contact2Telephone: string // 联系人2-电话 + contact2Email: string // 联系人2-邮箱 + creditCode: string // 统一社会信用代码 + status: number // 状态 + remark: string // 备注 +} + +// MES 客户 API +export const MdClientApi = { + // 查询客户分页 + getClientPage: async (params: any) => { + return await request.get({ url: `/mes/md-client/page`, params }) + }, + + // 查询客户详情 + getClient: async (id: number) => { + return await request.get({ url: `/mes/md-client/get?id=` + id }) + }, + + // 新增客户 + createClient: async (data: MdClientVO) => { + return await request.post({ url: `/mes/md-client/create`, data }) + }, + + // 修改客户 + updateClient: async (data: MdClientVO) => { + return await request.put({ url: `/mes/md-client/update`, data }) + }, + + // 删除客户 + deleteClient: async (id: number) => { + return await request.delete({ url: `/mes/md-client/delete?id=` + id }) + }, + + // 导出客户 Excel + exportClient: async (params: any) => { + return await request.download({ url: `/mes/md-client/export-excel`, params }) + }, + + // 下载客户导入模板 + importTemplate: async () => { + return await request.download({ url: `/mes/md-client/get-import-template` }) + } +} diff --git a/src/api/mes/md/item/batchConfig/index.ts b/src/api/mes/md/item/batchConfig/index.ts new file mode 100644 index 000000000..ddf7d3f5b --- /dev/null +++ b/src/api/mes/md/item/batchConfig/index.ts @@ -0,0 +1,34 @@ +import request from '@/config/axios' + +// MES 物料批次属性配置 VO +export interface MdItemBatchConfigVO { + id?: number // 编号 + itemId: number // 物料编号 + produceDateFlag: boolean // 批次属性-生产日期 + expireDateFlag: boolean // 批次属性-有效期 + receiptDateFlag: boolean // 批次属性-入库日期 + vendorFlag: boolean // 批次属性-供应商 + clientFlag: boolean // 批次属性-客户 + salesOrderCodeFlag: boolean // 批次属性-销售订单编号 + purchaseOrderCodeFlag: boolean // 批次属性-采购订单编号 + workorderFlag: boolean // 批次属性-生产工单 + taskFlag: boolean // 批次属性-生产任务 + workstationFlag: boolean // 批次属性-工作站 + toolFlag: boolean // 批次属性-工具 + moldFlag: boolean // 批次属性-模具 + lotNumberFlag: boolean // 批次属性-生产批号 + qualityStatusFlag: boolean // 批次属性-质量状态 +} + +// MES 物料批次属性配置 API +export const MdItemBatchConfigApi = { + // 根据物料编号获取批次属性配置 + getBatchConfigByItemId: async (itemId: number) => { + return await request.get({ url: `/mes/md/item-batch-config/get-by-item-id?itemId=` + itemId }) + }, + + // 保存批次属性配置(新增或更新) + saveBatchConfig: async (data: MdItemBatchConfigVO) => { + return await request.post({ url: `/mes/md/item-batch-config/save`, data }) + } +} diff --git a/src/api/mes/md/item/index.ts b/src/api/mes/md/item/index.ts new file mode 100644 index 000000000..e34a890a2 --- /dev/null +++ b/src/api/mes/md/item/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +// MES 物料产品 VO +export interface MdItemVO { + id: number // 物料编号 + code: string // 物料编码 + name: string // 物料名称 + specification: string // 规格型号 + unitMeasureId: number // 计量单位编号 + unitMeasureName?: string // 计量单位名称 + itemTypeId: number // 物料分类编号 + itemTypeName?: string // 物料分类名称 + itemOrProduct?: string // 物料/产品标识 + status: number // 状态 + safeStockFlag: boolean // 是否启用安全库存 + minStock: number // 最低库存量 + maxStock: number // 最高库存量 + highValue: boolean // 是否高值物料 + batchFlag: boolean // 是否启用批次管理 + remark: string // 备注 +} + +// MES 物料产品 API +export const MdItemApi = { + // 查询物料产品分页 + getItemPage: async (params: any) => { + return await request.get({ url: `/mes/md/item/page`, params }) + }, + + // 查询物料产品详情 + getItem: async (id: number) => { + return await request.get({ url: `/mes/md/item/get?id=` + id }) + }, + + // 新增物料产品 + createItem: async (data: MdItemVO) => { + return await request.post({ url: `/mes/md/item/create`, data }) + }, + + // 修改物料产品 + updateItem: async (data: MdItemVO) => { + return await request.put({ url: `/mes/md/item/update`, data }) + }, + + // 修改物料产品状态 + updateItemStatus: async (id: number, status: number) => { + return await request.put({ url: `/mes/md/item/update-status`, params: { id, status } }) + }, + + // 删除物料产品 + deleteItem: async (id: number) => { + return await request.delete({ url: `/mes/md/item/delete?id=` + id }) + }, + + // 导出物料产品 Excel + exportItem: async (params: any) => { + return await request.download({ url: `/mes/md/item/export-excel`, params }) + }, + + // 下载物料导入模板 + importTemplate: async () => { + return await request.download({ url: `/mes/md/item/get-import-template` }) + } +} diff --git a/src/api/mes/md/item/productBom/index.ts b/src/api/mes/md/item/productBom/index.ts new file mode 100644 index 000000000..dac96599e --- /dev/null +++ b/src/api/mes/md/item/productBom/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +// MES 产品BOM VO +export interface MdProductBomVO { + id?: number // BOM 编号 + itemId: number // 物料产品 ID + bomItemId: number // BOM 物料 ID + quantity: number // 物料使用比例 + status?: number // 是否启用 + remark?: string // 备注 + createTime?: Date // 创建时间 + // ========== 关联展示字段 ========== + bomItemCode?: string // BOM 物料编码 + bomItemName?: string // BOM 物料名称 + bomItemSpecification?: string // BOM 物料规格 + unitMeasureName?: string // 计量单位名称 + itemOrProduct?: string // 产品物料标识 +} + +// MES 产品BOM API +export const MdProductBomApi = { + // 创建产品BOM + createProductBom: async (data: MdProductBomVO) => { + return await request.post({ url: `/mes/md/product-bom/create`, data }) + }, + + // 更新产品BOM + updateProductBom: async (data: MdProductBomVO) => { + return await request.put({ url: `/mes/md/product-bom/update`, data }) + }, + + // 删除产品BOM + deleteProductBom: async (id: number) => { + return await request.delete({ url: `/mes/md/product-bom/delete?id=` + id }) + }, + + // 获得产品BOM + getProductBom: async (id: number) => { + return await request.get({ url: `/mes/md/product-bom/get?id=` + id }) + }, + + // 获得产品BOM分页 + getProductBomPage: async (params: any) => { + return await request.get({ url: `/mes/md/product-bom/page`, params }) + }, + + // 根据物料产品编号获得产品BOM列表 + getProductBomListByItemId: async (itemId: number) => { + return await request.get({ url: `/mes/md/product-bom/list-by-item-id?itemId=` + itemId }) + } +} diff --git a/src/api/mes/md/item/productSip/index.ts b/src/api/mes/md/item/productSip/index.ts new file mode 100644 index 000000000..f3e0999c9 --- /dev/null +++ b/src/api/mes/md/item/productSip/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +// MES 产品SIP VO +export interface MdProductSipVO { + id?: number // SIP 编号 + itemId: number // 物料产品 ID + sort: number // 排列顺序 + processId?: number // 工序 ID + title: string // 标题 + description?: string // 详细描述 + url?: string // 图片地址 + remark?: string // 备注 + createTime?: Date // 创建时间 + // ========== 关联展示字段 ========== + processCode?: string // 工序编号 + processName?: string // 工序名称 +} + +// MES 产品SIP API +export const MdProductSipApi = { + // 创建产品SIP + createProductSip: async (data: MdProductSipVO) => { + return await request.post({ url: `/mes/md/product-sip/create`, data }) + }, + + // 更新产品SIP + updateProductSip: async (data: MdProductSipVO) => { + return await request.put({ url: `/mes/md/product-sip/update`, data }) + }, + + // 删除产品SIP + deleteProductSip: async (id: number) => { + return await request.delete({ url: `/mes/md/product-sip/delete?id=` + id }) + }, + + // 获得产品SIP + getProductSip: async (id: number) => { + return await request.get({ url: `/mes/md/product-sip/get?id=` + id }) + }, + + // 获得产品SIP分页 + getProductSipPage: async (params: any) => { + return await request.get({ url: `/mes/md/product-sip/page`, params }) + }, + + // 根据物料产品编号获得产品SIP列表 + getProductSipListByItemId: async (itemId: number) => { + return await request.get({ url: `/mes/md/product-sip/list-by-item-id?itemId=` + itemId }) + } +} diff --git a/src/api/mes/md/item/productSop/index.ts b/src/api/mes/md/item/productSop/index.ts new file mode 100644 index 000000000..a1e290747 --- /dev/null +++ b/src/api/mes/md/item/productSop/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +// MES 产品SOP VO +export interface MdProductSopVO { + id?: number // SOP 编号 + itemId: number // 物料产品 ID + sort: number // 排列顺序 + processId?: number // 工序 ID + title: string // 标题 + description?: string // 详细描述 + url?: string // 图片地址 + remark?: string // 备注 + createTime?: Date // 创建时间 + // ========== 关联展示字段 ========== + processCode?: string // 工序编号 + processName?: string // 工序名称 +} + +// MES 产品SOP API +export const MdProductSopApi = { + // 创建产品SOP + createProductSop: async (data: MdProductSopVO) => { + return await request.post({ url: `/mes/md/product-sop/create`, data }) + }, + + // 更新产品SOP + updateProductSop: async (data: MdProductSopVO) => { + return await request.put({ url: `/mes/md/product-sop/update`, data }) + }, + + // 删除产品SOP + deleteProductSop: async (id: number) => { + return await request.delete({ url: `/mes/md/product-sop/delete?id=` + id }) + }, + + // 获得产品SOP + getProductSop: async (id: number) => { + return await request.get({ url: `/mes/md/product-sop/get?id=` + id }) + }, + + // 获得产品SOP分页 + getProductSopPage: async (params: any) => { + return await request.get({ url: `/mes/md/product-sop/page`, params }) + }, + + // 根据物料产品编号获得产品SOP列表 + getProductSopListByItemId: async (itemId: number) => { + return await request.get({ url: `/mes/md/product-sop/list-by-item-id?itemId=` + itemId }) + } +} diff --git a/src/api/mes/md/item/type/index.ts b/src/api/mes/md/item/type/index.ts new file mode 100644 index 000000000..edcd36e1a --- /dev/null +++ b/src/api/mes/md/item/type/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +// MES 物料产品分类 VO +export interface MdItemTypeVO { + id: number // 分类编号 + parentId: number // 父分类编号 + code: string // 分类编码 + name: string // 分类名称 + itemOrProduct: string // 物料/产品标识 + sort: number // 显示排序 + status: number // 状态 + remark: string // 备注 +} + +// MES 物料产品分类 API +export const MdItemTypeApi = { + // 查询物料产品分类列表 + getItemTypeList: async (params?: any) => { + return await request.get({ url: `/mes/md/item-type/list`, params }) + }, + + // 查询物料产品分类精简列表 + getItemTypeSimpleList: async () => { + return await request.get({ url: `/mes/md/item-type/simple-list` }) + }, + + // 查询物料产品分类详情 + getItemType: async (id: number) => { + return await request.get({ url: `/mes/md/item-type/get?id=` + id }) + }, + + // 新增物料产品分类 + createItemType: async (data: MdItemTypeVO) => { + return await request.post({ url: `/mes/md/item-type/create`, data }) + }, + + // 修改物料产品分类 + updateItemType: async (data: MdItemTypeVO) => { + return await request.put({ url: `/mes/md/item-type/update`, data }) + }, + + // 删除物料产品分类 + deleteItemType: async (id: number) => { + return await request.delete({ url: `/mes/md/item-type/delete?id=` + id }) + } +} diff --git a/src/api/mes/md/unitmeasure/index.ts b/src/api/mes/md/unitmeasure/index.ts new file mode 100644 index 000000000..a2e697d34 --- /dev/null +++ b/src/api/mes/md/unitmeasure/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +// MES 计量单位 VO +export interface MdUnitMeasureVO { + id: number // 单位编号 + code: string // 单位编码 + name: string // 单位名称 + primaryFlag: boolean // 是否主单位 + primaryId: number // 主单位编号 + changeRate: number // 与主单位换算比例 + status: number // 状态 + remark: string // 备注 +} + +// MES 计量单位 API +export const MdUnitMeasureApi = { + // 查询计量单位分页 + getUnitMeasurePage: async (params: any) => { + return await request.get({ url: `/mes/md/unit-measure/page`, params }) + }, + + // 查询计量单位精简列表 + getUnitMeasureSimpleList: async () => { + return await request.get({ url: `/mes/md/unit-measure/simple-list` }) + }, + + // 查询计量单位详情 + getUnitMeasure: async (id: number) => { + return await request.get({ url: `/mes/md/unit-measure/get?id=` + id }) + }, + + // 新增计量单位 + createUnitMeasure: async (data: MdUnitMeasureVO) => { + return await request.post({ url: `/mes/md/unit-measure/create`, data }) + }, + + // 修改计量单位 + updateUnitMeasure: async (data: MdUnitMeasureVO) => { + return await request.put({ url: `/mes/md/unit-measure/update`, data }) + }, + + // 删除计量单位 + deleteUnitMeasure: async (id: number) => { + return await request.delete({ url: `/mes/md/unit-measure/delete?id=` + id }) + }, + + // 导出计量单位 Excel + exportUnitMeasure: async (params: any) => { + return await request.download({ url: `/mes/md/unit-measure/export-excel`, params }) + } +} diff --git a/src/api/mes/md/vendor/index.ts b/src/api/mes/md/vendor/index.ts new file mode 100644 index 000000000..20df771d4 --- /dev/null +++ b/src/api/mes/md/vendor/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +// MES 供应商 VO +export interface MdVendorVO { + id: number // 供应商编号 + code: string // 供应商编码 + name: string // 供应商名称 + nickname: string // 供应商简称 + englishName: string // 供应商英文名称 + description: string // 供应商简介 + logo: string // 供应商LOGO地址 + level: string // 供应商等级 + score: number // 供应商评分 + address: string // 供应商地址 + website: string // 供应商官网地址 + email: string // 供应商邮箱地址 + telephone: string // 供应商电话 + contact1Name: string // 联系人1 + contact1Telephone: string // 联系人1-电话 + contact1Email: string // 联系人1-邮箱 + contact2Name: string // 联系人2 + contact2Telephone: string // 联系人2-电话 + contact2Email: string // 联系人2-邮箱 + creditCode: string // 统一社会信用代码 + status: number // 状态 + remark: string // 备注 +} + +// MES 供应商 API +export const MdVendorApi = { + // 查询供应商分页 + getVendorPage: async (params: any) => { + return await request.get({ url: `/mes/md-vendor/page`, params }) + }, + + // 查询供应商详情 + getVendor: async (id: number) => { + return await request.get({ url: `/mes/md-vendor/get?id=` + id }) + }, + + // 新增供应商 + createVendor: async (data: MdVendorVO) => { + return await request.post({ url: `/mes/md-vendor/create`, data }) + }, + + // 修改供应商 + updateVendor: async (data: MdVendorVO) => { + return await request.put({ url: `/mes/md-vendor/update`, data }) + }, + + // 删除供应商 + deleteVendor: async (id: number) => { + return await request.delete({ url: `/mes/md-vendor/delete?id=` + id }) + }, + + // 导出供应商 Excel + exportVendor: async (params: any) => { + return await request.download({ url: `/mes/md-vendor/export-excel`, params }) + }, + + // 下载供应商导入模板 + importTemplate: async () => { + return await request.download({ url: `/mes/md-vendor/get-import-template` }) + } +} diff --git a/src/api/mes/md/workstation/index.ts b/src/api/mes/md/workstation/index.ts new file mode 100644 index 000000000..af55df009 --- /dev/null +++ b/src/api/mes/md/workstation/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +// MES 工作站 VO +export interface MdWorkstationVO { + id: number // 工作站编号 + code: string // 工作站编码 + name: string // 工作站名称 + address: string // 工作站地点 + workshopId: number // 所在车间 ID + workshopName: string // 所在车间名称 + processId: number // 工序 ID + processName: string // 工序名称 + warehouseId: number // 线边库 ID + locationId: number // 库区 ID + areaId: number // 库位 ID + status: number // 状态 + remark: string // 备注 +} + +// MES 工作站 API +export const MdWorkstationApi = { + // 查询工作站分页 + getWorkstationPage: async (params: any) => { + return await request.get({ url: `/mes/md-workstation/page`, params }) + }, + + // 查询工作站详情 + getWorkstation: async (id: number) => { + return await request.get({ url: `/mes/md-workstation/get?id=` + id }) + }, + + // 新增工作站 + createWorkstation: async (data: MdWorkstationVO) => { + return await request.post({ url: `/mes/md-workstation/create`, data }) + }, + + // 修改工作站 + updateWorkstation: async (data: MdWorkstationVO) => { + return await request.put({ url: `/mes/md-workstation/update`, data }) + }, + + // 删除工作站 + deleteWorkstation: async (id: number) => { + return await request.delete({ url: `/mes/md-workstation/delete?id=` + id }) + }, + + // 导出工作站 Excel + exportWorkstation: async (params: any) => { + return await request.download({ url: `/mes/md-workstation/export-excel`, params }) + } +} diff --git a/src/api/mes/md/workstation/machine/index.ts b/src/api/mes/md/workstation/machine/index.ts new file mode 100644 index 000000000..f68403443 --- /dev/null +++ b/src/api/mes/md/workstation/machine/index.ts @@ -0,0 +1,32 @@ +import request from '@/config/axios' + +// MES 设备资源 VO +export interface MdWorkstationMachineVO { + id: number + workstationId: number // 工作站 ID + machineryId: number // 设备 ID + machineryName: string // 设备名称 + machineryCode: string // 设备编码 + quantity: number // 数量 + remark: string // 备注 +} + +// MES 设备资源 API +export const MdWorkstationMachineApi = { + // 查询设备资源列表 + getWorkstationMachineList: async (workstationId: number) => { + return await request.get({ + url: `/mes/md-workstation-machine/list-by-workstation?workstationId=` + workstationId + }) + }, + + // 新增设备资源 + createWorkstationMachine: async (data: MdWorkstationMachineVO) => { + return await request.post({ url: `/mes/md-workstation-machine/create`, data }) + }, + + // 删除设备资源 + deleteWorkstationMachine: async (id: number) => { + return await request.delete({ url: `/mes/md-workstation-machine/delete?id=` + id }) + } +} diff --git a/src/api/mes/md/workstation/tool/index.ts b/src/api/mes/md/workstation/tool/index.ts new file mode 100644 index 000000000..bf84903ab --- /dev/null +++ b/src/api/mes/md/workstation/tool/index.ts @@ -0,0 +1,36 @@ +import request from '@/config/axios' + +// MES 工装夹具资源 VO +export interface MdWorkstationToolVO { + id: number + workstationId: number // 工作站 ID + toolTypeId: number // 工具类型 ID + toolTypeName: string // 工具类型名称 + quantity: number // 数量 + remark: string // 备注 +} + +// MES 工装夹具资源 API +export const MdWorkstationToolApi = { + // 查询工装夹具资源列表 + getWorkstationToolList: async (workstationId: number) => { + return await request.get({ + url: `/mes/md-workstation-tool/list-by-workstation?workstationId=` + workstationId + }) + }, + + // 新增工装夹具资源 + createWorkstationTool: async (data: MdWorkstationToolVO) => { + return await request.post({ url: `/mes/md-workstation-tool/create`, data }) + }, + + // 修改工装夹具资源 + updateWorkstationTool: async (data: MdWorkstationToolVO) => { + return await request.put({ url: `/mes/md-workstation-tool/update`, data }) + }, + + // 删除工装夹具资源 + deleteWorkstationTool: async (id: number) => { + return await request.delete({ url: `/mes/md-workstation-tool/delete?id=` + id }) + } +} diff --git a/src/api/mes/md/workstation/worker/index.ts b/src/api/mes/md/workstation/worker/index.ts new file mode 100644 index 000000000..b813a2760 --- /dev/null +++ b/src/api/mes/md/workstation/worker/index.ts @@ -0,0 +1,36 @@ +import request from '@/config/axios' + +// MES 人力资源 VO +export interface MdWorkstationWorkerVO { + id: number + workstationId: number // 工作站 ID + postId: number // 岗位 ID + postName: string // 岗位名称 + quantity: number // 数量 + remark: string // 备注 +} + +// MES 人力资源 API +export const MdWorkstationWorkerApi = { + // 查询人力资源列表 + getWorkstationWorkerList: async (workstationId: number) => { + return await request.get({ + url: `/mes/md-workstation-worker/list-by-workstation?workstationId=` + workstationId + }) + }, + + // 新增人力资源 + createWorkstationWorker: async (data: MdWorkstationWorkerVO) => { + return await request.post({ url: `/mes/md-workstation-worker/create`, data }) + }, + + // 修改人力资源 + updateWorkstationWorker: async (data: MdWorkstationWorkerVO) => { + return await request.put({ url: `/mes/md-workstation-worker/update`, data }) + }, + + // 删除人力资源 + deleteWorkstationWorker: async (id: number) => { + return await request.delete({ url: `/mes/md-workstation-worker/delete?id=` + id }) + } +} diff --git a/src/api/mes/md/workstation/workshop/index.ts b/src/api/mes/md/workstation/workshop/index.ts new file mode 100644 index 000000000..1db375521 --- /dev/null +++ b/src/api/mes/md/workstation/workshop/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +// MES 车间 VO +export interface MdWorkshopVO { + id: number // 车间编号 + code: string // 车间编码 + name: string // 车间名称 + area: number // 面积 + chargeUserId: number // 负责人用户编号 + chargeUserName: string // 负责人名称 + status: number // 状态 + remark: string // 备注 +} + +// MES 车间 API +export const MdWorkshopApi = { + // 查询车间分页 + getWorkshopPage: async (params: any) => { + return await request.get({ url: `/mes/md-workshop/page`, params }) + }, + + // 查询车间精简列表 + getWorkshopSimpleList: async () => { + return await request.get({ url: `/mes/md-workshop/simple-list` }) + }, + + // 查询车间详情 + getWorkshop: async (id: number) => { + return await request.get({ url: `/mes/md-workshop/get?id=` + id }) + }, + + // 新增车间 + createWorkshop: async (data: MdWorkshopVO) => { + return await request.post({ url: `/mes/md-workshop/create`, data }) + }, + + // 修改车间 + updateWorkshop: async (data: MdWorkshopVO) => { + return await request.put({ url: `/mes/md-workshop/update`, data }) + }, + + // 删除车间 + deleteWorkshop: async (id: number) => { + return await request.delete({ url: `/mes/md-workshop/delete?id=` + id }) + }, + + // 导出车间 Excel + exportWorkshop: async (params: any) => { + return await request.download({ url: `/mes/md-workshop/export-excel`, params }) + } +} diff --git a/src/api/mes/pro/andon/config/index.ts b/src/api/mes/pro/andon/config/index.ts new file mode 100644 index 000000000..0851b8219 --- /dev/null +++ b/src/api/mes/pro/andon/config/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +// MES 安灯配置 VO +export interface ProAndonConfigVO { + id: number // 编号 + reason: string // 呼叫原因 + level: number // 级别 + handlerRoleId: number // 处置人角色编号 + handlerUserId: number // 处置人编号 + handlerUserNickname: string // 处置人昵称 + remark: string // 备注 +} + +// MES 安灯配置 API +export const ProAndonConfigApi = { + // 查询安灯配置分页 + getAndonConfigPage: async (params: any) => { + return await request.get({ url: `/mes/pro/andon-config/page`, params }) + }, + + // 查询安灯配置列表 + getAndonConfigList: async () => { + return await request.get({ url: `/mes/pro/andon-config/list` }) + }, + + // 查询安灯配置详情 + getAndonConfig: async (id: number) => { + return await request.get({ url: `/mes/pro/andon-config/get?id=` + id }) + }, + + // 新增安灯配置 + createAndonConfig: async (data: ProAndonConfigVO) => { + return await request.post({ url: `/mes/pro/andon-config/create`, data }) + }, + + // 修改安灯配置 + updateAndonConfig: async (data: ProAndonConfigVO) => { + return await request.put({ url: `/mes/pro/andon-config/update`, data }) + }, + + // 删除安灯配置 + deleteAndonConfig: async (id: number) => { + return await request.delete({ url: `/mes/pro/andon-config/delete?id=` + id }) + } +} diff --git a/src/api/mes/pro/andon/record/index.ts b/src/api/mes/pro/andon/record/index.ts new file mode 100644 index 000000000..30a4f7850 --- /dev/null +++ b/src/api/mes/pro/andon/record/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +// MES 安灯记录 VO +export interface ProAndonRecordVO { + id: number // 编号 + configId: number // 安灯配置编号 + workstationId: number // 工作站编号 + workstationCode: string // 工作站编码 + workstationName: string // 工作站名称 + userId: number // 发起用户编号 + userNickname: string // 发起人昵称 + workOrderId: number // 工单编号 + workOrderCode: string // 工单编码 + processId: number // 工序编号 + processName: string // 工序名称 + reason: string // 呼叫原因 + level: number // 级别 + status: number // 处置状态 + handleTime: Date // 处置时间 + handlerUserId: number // 处置人编号 + handlerUserNickname: string // 处置人昵称 + remark: string // 备注 + createTime: Date // 发起时间 +} + +// MES 安灯记录 API +export const ProAndonRecordApi = { + // 查询安灯记录分页 + getAndonRecordPage: async (params: any) => { + return await request.get({ url: `/mes/pro/andon-record/page`, params }) + }, + + // 查询安灯记录详情 + getAndonRecord: async (id: number) => { + return await request.get({ url: `/mes/pro/andon-record/get?id=` + id }) + }, + + // 新增安灯记录 + createAndonRecord: async (data: ProAndonRecordVO) => { + return await request.post({ url: `/mes/pro/andon-record/create`, data }) + }, + + // 删除安灯记录 + deleteAndonRecord: async (id: number) => { + return await request.delete({ url: `/mes/pro/andon-record/delete?id=` + id }) + }, + + // 更新安灯记录(保存/已处置) + updateAndonRecord: async (data: any) => { + return await request.put({ url: `/mes/pro/andon-record/update`, data }) + }, + + // 导出安灯记录 Excel + exportAndonRecord: async (params: any) => { + return await request.download({ url: `/mes/pro/andon-record/export-excel`, params }) + } +} diff --git a/src/api/mes/pro/card/index.ts b/src/api/mes/pro/card/index.ts new file mode 100644 index 000000000..a438dbe11 --- /dev/null +++ b/src/api/mes/pro/card/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +// MES 生产流转卡 VO +export interface ProCardVO { + id: number // 编号 + code: string // 流转卡编码 + workOrderId: number // 生产工单编号 + workOrderCode: string // 工单编码 + workOrderName: string // 工单名称 + batchCode: string // 批次号 + itemId: number // 产品物料编号 + itemCode: string // 产品编码 + itemName: string // 产品名称 + specification: string // 规格型号 + unitMeasureName: string // 单位名称 + transferedQuantity: number // 流转数量 + status: number // 状态 + remark: string // 备注 +} + +// MES 生产流转卡 API +export const ProCardApi = { + // 查询生产流转卡分页 + getCardPage: async (params: any) => { + return await request.get({ url: `/mes/pro/card/page`, params }) + }, + + // 查询生产流转卡详情 + getCard: async (id: number) => { + return await request.get({ url: `/mes/pro/card/get?id=` + id }) + }, + + // 新增生产流转卡 + createCard: async (data: ProCardVO) => { + return await request.post({ url: `/mes/pro/card/create`, data }) + }, + + // 修改生产流转卡 + updateCard: async (data: ProCardVO) => { + return await request.put({ url: `/mes/pro/card/update`, data }) + }, + + // 删除生产流转卡 + deleteCard: async (id: number) => { + return await request.delete({ url: `/mes/pro/card/delete?id=` + id }) + }, + + // 导出生产流转卡 Excel + exportCard: async (params: any) => { + return await request.download({ url: `/mes/pro/card/export-excel`, params }) + }, + + // 提交生产流转卡 + submitCard: async (id: number) => { + return await request.put({ url: `/mes/pro/card/submit?id=` + id }) + }, + + // 完成生产流转卡 + finishCard: async (id: number) => { + return await request.put({ url: `/mes/pro/card/finish?id=` + id }) + }, + + // 取消生产流转卡 + cancelCard: async (id: number) => { + return await request.put({ url: `/mes/pro/card/cancel?id=` + id }) + } +} diff --git a/src/api/mes/pro/card/process/index.ts b/src/api/mes/pro/card/process/index.ts new file mode 100644 index 000000000..5f0578e12 --- /dev/null +++ b/src/api/mes/pro/card/process/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +// MES 流转卡工序记录 VO +export interface ProCardProcessVO { + id: number // 编号 + cardId: number // 流转卡编号 + sort: number // 序号 + processId: number // 工序编号 + processCode: string // 工序编码 + processName: string // 工序名称 + inputTime: Date // 进入工序时间 + outputTime: Date // 出工序时间 + inputQuantity: number // 投入数量 + outputQuantity: number // 产出数量 + unqualifiedQuantity: number // 不合格品数量 + workstationId: number // 工位编号 + workstationCode: string // 工位编码 + workstationName: string // 工位名称 + userId: number // 操作人编号 + nickname: string // 操作人名称 + ipqcId: number // 过程检验单编号 + remark: string // 备注 +} + +// MES 流转卡工序记录 API +export const ProCardProcessApi = { + // 查询流转卡工序记录分页 + getCardProcessPage: async (params: any) => { + return await request.get({ url: `/mes/pro/card-process/page`, params }) + }, + + // 查询流转卡工序记录详情 + getCardProcess: async (id: number) => { + return await request.get({ url: `/mes/pro/card-process/get?id=` + id }) + }, + + // 新增流转卡工序记录 + createCardProcess: async (data: ProCardProcessVO) => { + return await request.post({ url: `/mes/pro/card-process/create`, data }) + }, + + // 修改流转卡工序记录 + updateCardProcess: async (data: ProCardProcessVO) => { + return await request.put({ url: `/mes/pro/card-process/update`, data }) + }, + + // 删除流转卡工序记录 + deleteCardProcess: async (id: number) => { + return await request.delete({ url: `/mes/pro/card-process/delete?id=` + id }) + } +} diff --git a/src/api/mes/pro/feedback/index.ts b/src/api/mes/pro/feedback/index.ts new file mode 100644 index 000000000..c53aec761 --- /dev/null +++ b/src/api/mes/pro/feedback/index.ts @@ -0,0 +1,85 @@ +import request from '@/config/axios' + +// MES 生产报工 VO +export interface ProFeedbackVO { + id: number // 编号 + code: string // 报工单编号 + type: number // 报工类型 + channel: string // 报工途径 + feedbackTime: Date // 报工时间 + workstationId: number // 工作站编号 + workstationCode: string // 工作站编码 + workstationName: string // 工作站名称 + routeId: number // 工艺路线编号 + routeCode: string // 工艺路线编码 + processId: number // 工序编号 + processCode: string // 工序编码 + processName: string // 工序名称 + checkFlag: boolean // 是否需要检验 + workOrderId: number // 生产工单编号 + workOrderCode: string // 工单编码 + workOrderName: string // 工单名称 + taskId: number // 生产任务编号 + taskCode: string // 任务编码 + itemId: number // 产品物料编号 + itemCode: string // 物料编码 + itemName: string // 物料名称 + itemSpecification: string // 规格型号 + unitMeasureId: number // 单位编号 + unitMeasureName: string // 单位名称 + expireDate: Date // 过期日期 + scheduledQuantity: number // 排产数量 + feedbackQuantity: number // 本次报工数量 + qualifiedQuantity: number // 合格品数量 + unqualifiedQuantity: number // 不良品数量 + uncheckQuantity: number // 待检测数量 + laborScrapQuantity: number // 工废数量 + materialScrapQuantity: number // 料废数量 + otherScrapQuantity: number // 其他废品数量 + feedbackUserId: number // 报工用户编号 + feedbackUserNickname: string // 报工人昵称 + approveUserId: number // 审核用户编号 + approveUserNickname: string // 审核人昵称 + status: number // 状态 + remark: string // 备注 +} + +// MES 生产报工 API +export const ProFeedbackApi = { + // 查询生产报工分页 + getFeedbackPage: async (params: any) => { + return await request.get({ url: `/mes/pro/feedback/page`, params }) + }, + // 查询生产报工详情 + getFeedback: async (id: number) => { + return await request.get({ url: `/mes/pro/feedback/get?id=` + id }) + }, + // 新增生产报工 + createFeedback: async (data: ProFeedbackVO) => { + return await request.post({ url: `/mes/pro/feedback/create`, data }) + }, + // 修改生产报工 + updateFeedback: async (data: ProFeedbackVO) => { + return await request.put({ url: `/mes/pro/feedback/update`, data }) + }, + // 删除生产报工 + deleteFeedback: async (id: number) => { + return await request.delete({ url: `/mes/pro/feedback/delete?id=` + id }) + }, + // 导出生产报工 Excel + exportFeedback: async (params: any) => { + return await request.download({ url: `/mes/pro/feedback/export-excel`, params }) + }, + // 提交报工 + submitFeedback: async (id: number) => { + return await request.put({ url: `/mes/pro/feedback/submit?id=` + id }) + }, + // 驳回报工 + rejectFeedback: async (id: number) => { + return await request.put({ url: `/mes/pro/feedback/reject?id=` + id }) + }, + // 审批报工(返回审批后的状态) + approveFeedback: async (id: number) => { + return await request.put({ url: `/mes/pro/feedback/approve?id=` + id }) + } +} diff --git a/src/api/mes/pro/process/content/index.ts b/src/api/mes/pro/process/content/index.ts new file mode 100644 index 000000000..e4c37649a --- /dev/null +++ b/src/api/mes/pro/process/content/index.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +// MES 生产工序内容 VO +export interface ProProcessContentVO { + id?: number // 编号 + processId: number // 工序编号 + sort: number // 顺序编号 + content?: string // 步骤说明 + device?: string // 辅助设备 + material?: string // 辅助材料 + docUrl?: string // 材料文档 URL + remark?: string // 备注 + createTime?: Date // 创建时间 +} + +// MES 生产工序内容 API +export const ProProcessContentApi = { + // 查询工序内容列表(按工序编号) + getProcessContentListByProcessId: async (processId: number) => { + return await request.get({ + url: `/mes/pro/process-content/list-by-process?processId=` + processId + }) + }, + + // 查询工序内容详情 + getProcessContent: async (id: number) => { + return await request.get({ url: `/mes/pro/process-content/get?id=` + id }) + }, + + // 新增工序内容 + createProcessContent: async (data: ProProcessContentVO) => { + return await request.post({ url: `/mes/pro/process-content/create`, data }) + }, + + // 修改工序内容 + updateProcessContent: async (data: ProProcessContentVO) => { + return await request.put({ url: `/mes/pro/process-content/update`, data }) + }, + + // 删除工序内容 + deleteProcessContent: async (id: number) => { + return await request.delete({ url: `/mes/pro/process-content/delete?id=` + id }) + } +} diff --git a/src/api/mes/pro/process/index.ts b/src/api/mes/pro/process/index.ts new file mode 100644 index 000000000..98be3b72b --- /dev/null +++ b/src/api/mes/pro/process/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +// MES 生产工序 VO +export interface ProProcessVO { + id?: number // 编号 + code: string // 工序编码 + name: string // 工序名称 + attention?: string // 工艺要求 + status: number // 状态 + remark?: string // 备注 + createTime?: Date // 创建时间 +} + +// MES 生产工序 API +export const ProProcessApi = { + // 查询生产工序列表分页 + getProcessPage: async (params: any) => { + return await request.get({ url: `/mes/pro/process/page`, params }) + }, + + // 查询生产工序精简列表 + getProcessSimpleList: async () => { + return await request.get({ url: `/mes/pro/process/simple-list` }) + }, + + // 查询生产工序详情 + getProcess: async (id: number) => { + return await request.get({ url: `/mes/pro/process/get?id=` + id }) + }, + + // 新增生产工序 + createProcess: async (data: ProProcessVO) => { + return await request.post({ url: `/mes/pro/process/create`, data }) + }, + + // 修改生产工序 + updateProcess: async (data: ProProcessVO) => { + return await request.put({ url: `/mes/pro/process/update`, data }) + }, + + // 删除生产工序 + deleteProcess: async (id: number) => { + return await request.delete({ url: `/mes/pro/process/delete?id=` + id }) + }, + + // 导出生产工序 Excel + exportProcess: async (params: any) => { + return await request.download({ url: `/mes/pro/process/export-excel`, params }) + } +} diff --git a/src/api/mes/pro/route/index.ts b/src/api/mes/pro/route/index.ts new file mode 100644 index 000000000..0f767e846 --- /dev/null +++ b/src/api/mes/pro/route/index.ts @@ -0,0 +1,55 @@ +import request from '@/config/axios' + +// MES 工艺路线 VO +export interface ProRouteVO { + id?: number // 编号 + code: string // 工艺路线编码 + name: string // 工艺路线名称 + description?: string // 工艺路线说明 + status?: number // 状态 + remark?: string // 备注 + createTime?: Date // 创建时间 +} + +// MES 工艺路线 API +export const ProRouteApi = { + // 查询工艺路线分页 + getRoutePage: async (params: any) => { + return await request.get({ url: `/mes/pro/route/page`, params }) + }, + + // 查询工艺路线精简列表 + getRouteSimpleList: async () => { + return await request.get({ url: `/mes/pro/route/simple-list` }) + }, + + // 查询工艺路线详情 + getRoute: async (id: number) => { + return await request.get({ url: `/mes/pro/route/get?id=` + id }) + }, + + // 新增工艺路线 + createRoute: async (data: ProRouteVO) => { + return await request.post({ url: `/mes/pro/route/create`, data }) + }, + + // 修改工艺路线 + updateRoute: async (data: ProRouteVO) => { + return await request.put({ url: `/mes/pro/route/update`, data }) + }, + + // 修改工艺路线状态 + updateRouteStatus: async (id: number, status: number) => { + return await request.put({ url: `/mes/pro/route/update-status?id=` + id + `&status=` + status }) + }, + + // 删除工艺路线 + deleteRoute: async (id: number) => { + return await request.delete({ url: `/mes/pro/route/delete?id=` + id }) + }, + + // 导出工艺路线 Excel + exportRoute: async (params: any) => { + return await request.download({ url: `/mes/pro/route/export-excel`, params }) + } +} diff --git a/src/api/mes/pro/route/process/index.ts b/src/api/mes/pro/route/process/index.ts new file mode 100644 index 000000000..58c86214b --- /dev/null +++ b/src/api/mes/pro/route/process/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +// MES 工艺路线工序 VO +export interface ProRouteProcessVO { + id?: number // 编号 + routeId: number // 工艺路线编号 + processId: number // 工序编号 + processCode?: string // 工序编码 + processName?: string // 工序名称 + sort: number // 序号 + nextProcessId?: number // 下一道工序编号 + nextProcessName?: string // 下一道工序名称 + linkType: number // 与下一道工序关系 + prepareTime?: number // 准备时间(分钟) + waitTime?: number // 等待时间(分钟) + colorCode?: string // 甘特图显示颜色 + keyFlag?: number // 是否关键工序 + checkFlag?: boolean // 是否质检工序 + remark?: string // 备注 + createTime?: Date // 创建时间 +} + +// MES 工艺路线工序 API +export const ProRouteProcessApi = { + // 按工艺路线查询工序列表 + getRouteProcessListByRoute: async (routeId: number) => { + return await request.get({ url: `/mes/pro/route-process/list-by-route?routeId=` + routeId }) + }, + + // 按产品查询工序列表(自动查找关联的工艺路线) + getRouteProcessListByProduct: async (productId: number) => { + return await request.get({ + url: `/mes/pro/route-process/list-by-product?productId=` + productId + }) + }, + + // 查询工艺路线工序详情 + getRouteProcess: async (id: number) => { + return await request.get({ url: `/mes/pro/route-process/get?id=` + id }) + }, + + // 按工艺路线+工序精确查询工序配置 + getRouteProcessByRouteAndProcess: async (routeId: number, processId: number) => { + return await request.get({ + url: `/mes/pro/route-process/get-by-route-and-process`, + params: { routeId, processId } + }) + }, + + // 新增工艺路线工序 + createRouteProcess: async (data: ProRouteProcessVO) => { + return await request.post({ url: `/mes/pro/route-process/create`, data }) + }, + + // 修改工艺路线工序 + updateRouteProcess: async (data: ProRouteProcessVO) => { + return await request.put({ url: `/mes/pro/route-process/update`, data }) + }, + + // 删除工艺路线工序 + deleteRouteProcess: async (id: number) => { + return await request.delete({ url: `/mes/pro/route-process/delete?id=` + id }) + } +} diff --git a/src/api/mes/pro/route/product/index.ts b/src/api/mes/pro/route/product/index.ts new file mode 100644 index 000000000..97710409d --- /dev/null +++ b/src/api/mes/pro/route/product/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +// MES 工艺路线产品 VO +export interface ProRouteProductVO { + id?: number // 编号 + routeId: number // 工艺路线编号 + itemId: number // 产品物料编号 + itemCode?: string // 产品编码 + itemName?: string // 产品名称 + specification?: string // 规格型号 + unitName?: string // 单位名称 + quantity?: number // 生产数量 + productionTime?: number // 生产用时 + timeUnitType?: number // 时间单位 + remark?: string // 备注 + createTime?: Date // 创建时间 +} + +// MES 工艺路线产品 API +export const ProRouteProductApi = { + // 按工艺路线查询产品列表 + getRouteProductListByRoute: async (routeId: number) => { + return await request.get({ url: `/mes/pro/route-product/list-by-route?routeId=` + routeId }) + }, + + // 查询工艺路线产品详情 + getRouteProduct: async (id: number) => { + return await request.get({ url: `/mes/pro/route-product/get?id=` + id }) + }, + + // 新增工艺路线产品 + createRouteProduct: async (data: ProRouteProductVO) => { + return await request.post({ url: `/mes/pro/route-product/create`, data }) + }, + + // 修改工艺路线产品 + updateRouteProduct: async (data: ProRouteProductVO) => { + return await request.put({ url: `/mes/pro/route-product/update`, data }) + }, + + // 删除工艺路线产品 + deleteRouteProduct: async (id: number) => { + return await request.delete({ url: `/mes/pro/route-product/delete?id=` + id }) + } +} diff --git a/src/api/mes/pro/route/productbom/index.ts b/src/api/mes/pro/route/productbom/index.ts new file mode 100644 index 000000000..a1f9f2b8a --- /dev/null +++ b/src/api/mes/pro/route/productbom/index.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +// MES 工艺路线产品 BOM VO +export interface ProRouteProductBomVO { + id?: number // 编号 + routeId: number // 工艺路线编号 + processId: number // 工序编号 + productId: number // 产品物料编号 + itemId: number // BOM 物料编号 + itemCode?: string // 物料编码 + itemName?: string // 物料名称 + specification?: string // 规格型号 + unitName?: string // 单位名称 + quantity?: number // 用料比例 + remark?: string // 备注 + createTime?: Date // 创建时间 +} + +// MES 工艺路线产品 BOM API +export const ProRouteProductBomApi = { + // 查询工艺路线产品 BOM 列表 + getRouteProductBomList: async (params: { + routeId: number + processId?: number + productId?: number + }) => { + return await request.get({ url: `/mes/pro/route-product-bom/list`, params }) + }, + + // 查询工艺路线产品 BOM 详情 + getRouteProductBom: async (id: number) => { + return await request.get({ url: `/mes/pro/route-product-bom/get?id=` + id }) + }, + + // 新增工艺路线产品 BOM + createRouteProductBom: async (data: ProRouteProductBomVO) => { + return await request.post({ url: `/mes/pro/route-product-bom/create`, data }) + }, + + // 修改工艺路线产品 BOM + updateRouteProductBom: async (data: ProRouteProductBomVO) => { + return await request.put({ url: `/mes/pro/route-product-bom/update`, data }) + }, + + // 删除工艺路线产品 BOM + deleteRouteProductBom: async (id: number) => { + return await request.delete({ url: `/mes/pro/route-product-bom/delete?id=` + id }) + } +} diff --git a/src/api/mes/pro/task/index.ts b/src/api/mes/pro/task/index.ts new file mode 100644 index 000000000..9fa40691b --- /dev/null +++ b/src/api/mes/pro/task/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +// MES 生产任务 VO +export interface ProTaskVO { + id: number // 编号 + code: string // 任务编码 + name: string // 任务名称 + workOrderId: number // 生产工单编号 + workOrderCode: string // 工单编码 + workOrderName: string // 工单名称 + workstationId: number // 工作站编号 + workstationCode: string // 工作站编码 + workstationName: string // 工作站名称 + routeId: number // 工艺路线编号 + processId: number // 工序编号 + processName: string // 工序名称 + itemId: number // 产品物料编号 + itemName: string // 产品名称 + itemCode: string // 产品编码 + itemSpecification: string // 规格型号 + quantity: number // 排产数量 + producedQuantity: number // 已生产数量 + qualifyQuantity: number // 合格品数量 + unqualifyQuantity: number // 不良品数量 + changedQuantity: number // 调整数量 + clientId: number // 客户编号 + clientName: string // 客户名称 + startTime: Date // 开始生产时间 + duration: number // 生产时长(工作日,1=8小时) + endTime: Date | number // 结束生产时间 + colorCode: string // 甘特图显示颜色 + requestDate: Date // 需求日期(从工单查) + finishDate: Date // 完成日期 + cancelDate: Date // 取消日期 + status: number // 任务状态 + checkFlag: boolean // 是否质检(派生自工艺路线工序) + remark: string // 备注 +} + +// MES 生产任务 API +export const ProTaskApi = { + // 查询生产任务分页 + getTaskPage: async (params: any) => { + return await request.get({ url: `/mes/pro/task/page`, params }) + }, + + // 查询生产任务详情 + getTask: async (id: number) => { + return await request.get({ url: `/mes/pro/task/get?id=` + id }) + }, + + // 新增生产任务 + createTask: async (data: ProTaskVO) => { + return await request.post({ url: `/mes/pro/task/create`, data }) + }, + + // 修改生产任务 + updateTask: async (data: ProTaskVO) => { + return await request.put({ url: `/mes/pro/task/update`, data }) + }, + + // 删除生产任务 + deleteTask: async (id: number) => { + return await request.delete({ url: `/mes/pro/task/delete?id=` + id }) + }, + + // 导出生产任务 Excel + exportTask: async (params: any) => { + return await request.download({ url: `/mes/pro/task/export-excel`, params }) + }, + + // 获得甘特图任务列表(非分页) + getGanttTaskList: async (params: any) => { + return await request.get({ url: `/mes/pro/task/gantt-list`, params }) + } +} diff --git a/src/api/mes/pro/task/issue/index.ts b/src/api/mes/pro/task/issue/index.ts new file mode 100644 index 000000000..b76a49fb1 --- /dev/null +++ b/src/api/mes/pro/task/issue/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +// MES 生产任务投料 VO +export interface ProTaskIssueVO { + id: number // 编号 + taskId: number // 生产任务编号 + workOrderId: number // 生产工单编号 + workstationId: number // 工作站编号 + sourceDocType: string // 来源单据类型 + sourceDocId: number // 来源单据编号 + sourceLineId: number // 来源单据行编号 + sourceDocCode: string // 来源单据编码 + batchCode: string // 投料批次 + itemId: number // 产品物料编号 + itemName: string // 产品名称 + itemCode: string // 产品编码 + itemSpecification: string // 规格型号 + unitMeasureId: number // 单位编号 + unitMeasureName: string // 单位名称 + issuedQuantity: number // 总投料数量 + availableQuantity: number // 当前可用数量 + usedQuantity: number // 当前使用数量 + remark: string // 备注 +} + +// MES 生产任务投料 API +export const ProTaskIssueApi = { + // 查询生产任务投料分页 + getTaskIssuePage: async (params: any) => { + return await request.get({ url: `/mes/pro/task-issue/page`, params }) + }, + + // 查询生产任务投料详情 + getTaskIssue: async (id: number) => { + return await request.get({ url: `/mes/pro/task-issue/get?id=` + id }) + }, + + // 新增生产任务投料 + createTaskIssue: async (data: ProTaskIssueVO) => { + return await request.post({ url: `/mes/pro/task-issue/create`, data }) + }, + + // 修改生产任务投料 + updateTaskIssue: async (data: ProTaskIssueVO) => { + return await request.put({ url: `/mes/pro/task-issue/update`, data }) + }, + + // 删除生产任务投料 + deleteTaskIssue: async (id: number) => { + return await request.delete({ url: `/mes/pro/task-issue/delete?id=` + id }) + }, + + // 按任务查询投料列表 + getTaskIssueListByTask: async (taskId: number) => { + return await request.get({ url: `/mes/pro/task-issue/list-by-task?taskId=` + taskId }) + } +} diff --git a/src/api/mes/pro/workorder/bom/index.ts b/src/api/mes/pro/workorder/bom/index.ts new file mode 100644 index 000000000..766f96080 --- /dev/null +++ b/src/api/mes/pro/workorder/bom/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +// MES 生产工单 BOM VO +export interface ProWorkOrderBomVO { + id: number // 编号 + workOrderId: number // 生产工单编号 + itemId: number // BOM 物料编号 + itemName: string // 物料名称 + itemCode: string // 物料编码 + itemSpecification: string // 规格型号 + unitMeasureId: number // 单位编号 + unitMeasureName: string // 单位名称 + quantity: number // 预计使用量 + remark: string // 备注 + itemOrProduct: string // 物料产品标识 +} + +// MES 生产工单 BOM API +export const ProWorkOrderBomApi = { + // 查询工单 BOM 分页 + getWorkOrderBomPage: async (params: any) => { + return await request.get({ url: `/mes/pro/work-order-bom/page`, params }) + }, + + // 查询工单 BOM 详情 + getWorkOrderBom: async (id: number) => { + return await request.get({ url: `/mes/pro/work-order-bom/get?id=` + id }) + }, + + // 新增工单 BOM + createWorkOrderBom: async (data: ProWorkOrderBomVO) => { + return await request.post({ url: `/mes/pro/work-order-bom/create`, data }) + }, + + // 修改工单 BOM + updateWorkOrderBom: async (data: ProWorkOrderBomVO) => { + return await request.put({ url: `/mes/pro/work-order-bom/update`, data }) + }, + + // 删除工单 BOM + deleteWorkOrderBom: async (id: number) => { + return await request.delete({ url: `/mes/pro/work-order-bom/delete?id=` + id }) + }, + + // 获取工单物料需求列表 + getWorkOrderBomItemListByWorkOrderId: async (workOrderId: number) => { + return await request.get({ + url: `/mes/pro/work-order-bom/item-list-by-work-order-id?workOrderId=` + workOrderId + }) + } +} diff --git a/src/api/mes/pro/workorder/index.ts b/src/api/mes/pro/workorder/index.ts new file mode 100644 index 000000000..259945a04 --- /dev/null +++ b/src/api/mes/pro/workorder/index.ts @@ -0,0 +1,82 @@ +import request from '@/config/axios' + +// MES 生产工单 VO +export interface ProWorkOrderVO { + id: number // 编号 + code: string // 工单编码 + name: string // 工单名称 + type: number // 工单类型 + orderSourceType: number // 来源类型 + orderSourceCode: string // 来源单据编号 + productId: number // 产品编号 + productName: string // 产品名称 + productCode: string // 产品编码 + productSpecification: string // 规格型号 + unitMeasureName: string // 单位名称 + quantity: number // 生产数量 + quantityProduced: number // 已生产数量 + quantityChanged: number // 调整数量 + quantityScheduled: number // 已排产数量 + clientId: number // 客户编号 + clientCode: string // 客户编码 + clientName: string // 客户名称 + vendorId: number // 供应商编号 + vendorName: string // 供应商名称 + vendorCode: string // 供应商编码 + batchCode: string // 批次号 + requestDate: Date // 需求日期 + parentId: number // 父工单编号 + parentCode: string // 父工单编码 + finishDate: Date // 完成时间 + cancelDate: Date // 取消时间 + status: number // 工单状态 + remark: string // 备注 +} + +// MES 生产工单 API +export const ProWorkOrderApi = { + // 查询生产工单分页 + getWorkOrderPage: async (params: any) => { + return await request.get({ url: `/mes/pro/work-order/page`, params }) + }, + + // 查询生产工单详情 + getWorkOrder: async (id: number) => { + return await request.get({ url: `/mes/pro/work-order/get?id=` + id }) + }, + + // 新增生产工单 + createWorkOrder: async (data: ProWorkOrderVO) => { + return await request.post({ url: `/mes/pro/work-order/create`, data }) + }, + + // 修改生产工单 + updateWorkOrder: async (data: ProWorkOrderVO) => { + return await request.put({ url: `/mes/pro/work-order/update`, data }) + }, + + // 删除生产工单 + deleteWorkOrder: async (id: number) => { + return await request.delete({ url: `/mes/pro/work-order/delete?id=` + id }) + }, + + // 导出生产工单 Excel + exportWorkOrder: async (params: any) => { + return await request.download({ url: `/mes/pro/work-order/export-excel`, params }) + }, + + // 完成工单 + finishWorkOrder: async (id: number) => { + return await request.put({ url: `/mes/pro/work-order/finish?id=` + id }) + }, + + // 取消工单 + cancelWorkOrder: async (id: number) => { + return await request.put({ url: `/mes/pro/work-order/cancel?id=` + id }) + }, + + // 确认工单 + confirmWorkOrder: async (id: number) => { + return await request.put({ url: `/mes/pro/work-order/confirm?id=` + id }) + } +} diff --git a/src/api/mes/pro/workrecord/index.ts b/src/api/mes/pro/workrecord/index.ts new file mode 100644 index 000000000..3901cdc4a --- /dev/null +++ b/src/api/mes/pro/workrecord/index.ts @@ -0,0 +1,54 @@ +import request from '@/config/axios' + +// MES 工作记录流水 VO +export interface ProWorkRecordLogVO { + id: number + userId: number + userNickname: string + workstationId: number + workstationCode: string + workstationName: string + type: number // 1=上工 2=下工 + remark: string + createTime: Date +} + +// MES 当前工作站绑定状态 VO +export interface ProWorkRecordVO { + userId: number + userNickname: string + workstationId: number + workstationCode: string + workstationName: string + type: number // 1=上工 2=下工 + clockInTime: Date + clockOutTime: Date +} + +// MES 工作记录 API +export const ProWorkRecordApi = { + // 查询工作记录分页 + getWorkRecordLogPage: async (params: any) => { + return await request.get({ url: `/mes/pro/workrecord/log/page`, params }) + }, + // 查询工作记录详情 + getWorkRecordLog: async (id: number) => { + return await request.get({ url: `/mes/pro/workrecord/log/get?id=` + id }) + }, + // 导出工作记录 Excel + exportWorkRecordLog: async (params: any) => { + return await request.download({ url: `/mes/pro/workrecord/log/export-excel`, params }) + }, + // 上线(绑定工作站) + clockInWorkRecord: async (workstationId: number) => { + return await request.put({ url: `/mes/pro/workrecord/clock-in?workstationId=` + workstationId }) + }, + // 下线(解绑工作站) + clockOutWorkRecord: async () => { + return await request.put({ url: `/mes/pro/workrecord/clock-out` }) + }, + // 获取当前用户绑定的工作站 + getMyWorkRecord: async () => { + return await request.get({ url: `/mes/pro/workrecord/get-my` }) + } +} diff --git a/src/api/mes/qc/defect/index.ts b/src/api/mes/qc/defect/index.ts new file mode 100644 index 000000000..263291804 --- /dev/null +++ b/src/api/mes/qc/defect/index.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +// MES 缺陷类型 VO +export interface QcDefectVO { + id: number // 编号 + code: string // 缺陷编码 + name: string // 缺陷描述 + type: number // 检测项类型 + level: number // 缺陷等级 + remark: string // 备注 +} + +// MES 缺陷类型 API +export const QcDefectApi = { + // 查询缺陷类型分页 + getDefectPage: async (params: any) => { + return await request.get({ url: `/mes/qc/defect/page`, params }) + }, + + // 查询缺陷类型精简列表 + getDefectSimpleList: async () => { + return await request.get({ url: `/mes/qc/defect/simple-list` }) + }, + + // 查询缺陷类型详情 + getDefect: async (id: number) => { + return await request.get({ url: `/mes/qc/defect/get?id=` + id }) + }, + + // 新增缺陷类型 + createDefect: async (data: QcDefectVO) => { + return await request.post({ url: `/mes/qc/defect/create`, data }) + }, + + // 修改缺陷类型 + updateDefect: async (data: QcDefectVO) => { + return await request.put({ url: `/mes/qc/defect/update`, data }) + }, + + // 删除缺陷类型 + deleteDefect: async (id: number) => { + return await request.delete({ url: `/mes/qc/defect/delete?id=` + id }) + }, + + // 导出缺陷类型 Excel + exportDefect: async (params: any) => { + return await request.download({ url: `/mes/qc/defect/export-excel`, params }) + } +} diff --git a/src/api/mes/qc/defectrecord/index.ts b/src/api/mes/qc/defectrecord/index.ts new file mode 100644 index 000000000..bc3d3353e --- /dev/null +++ b/src/api/mes/qc/defectrecord/index.ts @@ -0,0 +1,36 @@ +import request from '@/config/axios' + +// MES 质检缺陷记录 VO +export interface QcDefectRecordVO { + id: number // 编号 + qcType: number // 检验类型 + qcId: number // 检验单 ID + lineId: number // 检验行 ID + name: string // 缺陷描述 + level: number // 缺陷等级 + quantity: number // 缺陷数量 + remark: string // 备注 +} + +// MES 质检缺陷记录 API +export const QcDefectRecordApi = { + // 查询质检缺陷记录分页 + getDefectRecordPage: async (params: any) => { + return await request.get({ url: `/mes/qc/defect-record/page`, params }) + }, + + // 新增质检缺陷记录 + createDefectRecord: async (data: QcDefectRecordVO) => { + return await request.post({ url: `/mes/qc/defect-record/create`, data }) + }, + + // 修改质检缺陷记录 + updateDefectRecord: async (data: QcDefectRecordVO) => { + return await request.put({ url: `/mes/qc/defect-record/update`, data }) + }, + + // 删除质检缺陷记录 + deleteDefectRecord: async (id: number) => { + return await request.delete({ url: `/mes/qc/defect-record/delete?id=` + id }) + } +} diff --git a/src/api/mes/qc/indicator/index.ts b/src/api/mes/qc/indicator/index.ts new file mode 100644 index 000000000..7108304ec --- /dev/null +++ b/src/api/mes/qc/indicator/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +// MES 质检指标 VO +export interface QcIndicatorVO { + id: number // 编号 + code: string // 检测项编码 + name: string // 检测项名称 + type: number // 检测项类型 + tool: string // 检测工具 + resultType: number // 结果值类型 + resultSpecification: string // 结果值属性 + remark: string // 备注 +} + +// MES 质检指标 API +export const QcIndicatorApi = { + // 查询质检指标分页 + getIndicatorPage: async (params: any) => { + return await request.get({ url: `/mes/qc/indicator/page`, params }) + }, + + // 查询质检指标详情 + getIndicator: async (id: number) => { + return await request.get({ url: `/mes/qc/indicator/get?id=` + id }) + }, + + // 新增质检指标 + createIndicator: async (data: QcIndicatorVO) => { + return await request.post({ url: `/mes/qc/indicator/create`, data }) + }, + + // 修改质检指标 + updateIndicator: async (data: QcIndicatorVO) => { + return await request.put({ url: `/mes/qc/indicator/update`, data }) + }, + + // 删除质检指标 + deleteIndicator: async (id: number) => { + return await request.delete({ url: `/mes/qc/indicator/delete?id=` + id }) + }, + + // 导出质检指标 Excel + exportIndicator: async (params: any) => { + return await request.download({ url: `/mes/qc/indicator/export-excel`, params }) + } +} diff --git a/src/api/mes/qc/indicatorresult/index.ts b/src/api/mes/qc/indicatorresult/index.ts new file mode 100644 index 000000000..9b1f303d4 --- /dev/null +++ b/src/api/mes/qc/indicatorresult/index.ts @@ -0,0 +1,59 @@ +import request from '@/config/axios' + +// MES 检验结果 VO +export interface QcIndicatorResultVO { + id: number // 编号 + code: string // 样品编号 + qcId: number // 关联质检单ID + qcType: number // 质检类型 + itemId: number // 产品物料ID + sn: string // 物资SN + remark: string // 备注 + createTime: Date // 创建时间 + // 子表 + items: QcIndicatorResultDetailVO[] // 检验结果明细列表 +} + +// MES 检验结果明细 VO +export interface QcIndicatorResultDetailVO { + id: number // 编号 + resultId: number // 关联检验结果ID + indicatorId: number // 检测指标ID + value: string // 检测值(统一存为字符串) + remark: string // 备注 + // 关联查询字段(来自 indicator) + indicatorName: string // 检测指标名称 + valueType: number // 质检值类型 + valueSpecification: string // 值属性 +} + +// MES 检验结果 API +export const QcIndicatorResultApi = { + // 查询检验结果分页 + getResultPage: async (params: any) => { + return await request.get({ url: `/mes/qc/indicator-result/page`, params }) + }, + + // 查询检验结果明细(含检测项模板):编辑传 id,新增不传 + getDetail: async (qcId: number, qcType: number, id?: number) => { + return await request.get({ + url: `/mes/qc/indicator-result/get-detail`, + params: { id, qcId, qcType } + }) + }, + + // 新增检验结果 + createResult: async (data: any) => { + return await request.post({ url: `/mes/qc/indicator-result/create`, data }) + }, + + // 修改检验结果 + updateResult: async (data: any) => { + return await request.put({ url: `/mes/qc/indicator-result/update`, data }) + }, + + // 删除检验结果 + deleteResult: async (id: number) => { + return await request.delete({ url: `/mes/qc/indicator-result/delete?id=` + id }) + } +} diff --git a/src/api/mes/qc/ipqc/index.ts b/src/api/mes/qc/ipqc/index.ts new file mode 100644 index 000000000..9dd39efe2 --- /dev/null +++ b/src/api/mes/qc/ipqc/index.ts @@ -0,0 +1,82 @@ +import request from '@/config/axios' + +// MES 过程检验单 VO +export interface QcIpqcVO { + id: number // 编号 + code: string // 检验单编号 + name: string // 检验单名称 + type: string // IPQC 检验类型 + templateId: number // 检验模板 ID + sourceDocType: number // 来源单据类型 + sourceDocId: number // 来源单据 ID + sourceLineId: number // 来源单据行 ID + workOrderId: number // 生产工单 ID + workOrderCode: string // 工单编号(关联查询) + workOrderName: string // 工单名称(关联查询) + taskId: number // 生产任务 ID + workstationId: number // 工位 ID + workstationName: string // 工位名称(关联查询) + processId: number // 工序 ID + processName: string // 工序名称(关联查询) + itemId: number // 产品物料 ID + itemCode: string // 产品物料编码(关联查询) + itemName: string // 产品物料名称(关联查询) + itemSpecification: string // 规格型号(关联查询) + unitName: string // 单位名称(关联查询) + checkQuantity?: number // 检测数量 + qualifiedQuantity?: number // 合格品数量 + unqualifiedQuantity?: number // 不合格品数量 + laborScrapQuantity?: number // 工废数量 + materialScrapQuantity: number // 料废数量 + otherScrapQuantity: number // 其他废品数量 + criticalRate: number // 致命缺陷率(%) + majorRate: number // 严重缺陷率(%) + minorRate: number // 轻微缺陷率(%) + criticalQuantity: number // 致命缺陷数量 + majorQuantity: number // 严重缺陷数量 + minorQuantity: number // 轻微缺陷数量 + checkResult: number // 检测结果 + inspectDate: Date // 检测日期 + inspectorUserId: number // 检测人员用户 ID + inspectorNickname: string // 检测人员昵称(关联查询) + status?: number // 状态 + remark: string // 备注 +} + +// MES 过程检验单 API +export const QcIpqcApi = { + // 查询过程检验单分页 + getIpqcPage: async (params: any) => { + return await request.get({ url: `/mes/qc/ipqc/page`, params }) + }, + + // 查询过程检验单详情 + getIpqc: async (id: number) => { + return await request.get({ url: `/mes/qc/ipqc/get?id=` + id }) + }, + + // 新增过程检验单 + createIpqc: async (data: QcIpqcVO) => { + return await request.post({ url: `/mes/qc/ipqc/create`, data }) + }, + + // 修改过程检验单 + updateIpqc: async (data: QcIpqcVO) => { + return await request.put({ url: `/mes/qc/ipqc/update`, data }) + }, + + // 完成过程检验单 + finishIpqc: async (id: number) => { + return await request.put({ url: `/mes/qc/ipqc/finish?id=` + id }) + }, + + // 删除过程检验单 + deleteIpqc: async (id: number) => { + return await request.delete({ url: `/mes/qc/ipqc/delete?id=` + id }) + }, + + // 导出过程检验单 Excel + exportIpqc: async (params: any) => { + return await request.download({ url: `/mes/qc/ipqc/export-excel`, params }) + } +} diff --git a/src/api/mes/qc/ipqc/line/index.ts b/src/api/mes/qc/ipqc/line/index.ts new file mode 100644 index 000000000..511262a5b --- /dev/null +++ b/src/api/mes/qc/ipqc/line/index.ts @@ -0,0 +1,36 @@ +import request from '@/config/axios' + +// MES 过程检验单行 VO +export interface QcIpqcLineVO { + id: number // 编号 + ipqcId: number // 过程检验单 ID + indicatorId: number // 检测指标 ID + indicatorCode: string // 检测指标编码(关联查询) + indicatorName: string // 检测指标名称(关联查询) + indicatorType: number // 检测指标类型(关联查询) + toolId: number // 检测工具 ID + toolName: string // 检测工具名称(关联查询) + checkMethod: string // 检测方法 + standardValue: number // 标准值 + unitMeasureId: number // 计量单位 ID + unitMeasureName: string // 计量单位名称(关联查询) + maxThreshold: number // 误差上限 + minThreshold: number // 误差下限 + criticalQuantity: number // 致命缺陷数量 + majorQuantity: number // 严重缺陷数量 + minorQuantity: number // 轻微缺陷数量 + remark: string // 备注 +} + +// MES 过程检验单行 API +export const QcIpqcLineApi = { + // 查询过程检验单行分页 + getIpqcLinePage: async (params: any) => { + return await request.get({ url: `/mes/qc/ipqc/line/page`, params }) + }, + + // 查询过程检验单行详情 + getIpqcLine: async (id: number) => { + return await request.get({ url: `/mes/qc/ipqc/line/get?id=` + id }) + } +} diff --git a/src/api/mes/qc/iqc/index.ts b/src/api/mes/qc/iqc/index.ts new file mode 100644 index 000000000..55c6edbe5 --- /dev/null +++ b/src/api/mes/qc/iqc/index.ts @@ -0,0 +1,74 @@ +import request from '@/config/axios' + +// MES 来料检验单 VO +export interface QcIqcVO { + id: number // 编号 + code: string // 检验单编号 + name: string // 检验单名称 + templateId: number // 检验模板 ID + sourceDocType: number // 来源单据类型 + sourceDocId: number // 来源单据 ID + sourceLineId: number // 来源单据行 ID + vendorId: number // 供应商 ID + vendorNickname: string // 供应商简称(关联查询) + vendorBatch: string // 供应商批次号 + itemId: number // 产品物料 ID + itemCode: string // 产品物料编码(关联查询) + itemName: string // 产品物料名称(关联查询) + itemSpecification: string // 规格型号(关联查询) + unitName: string // 单位名称(关联查询) + receivedQuantity: number // 本次接收数量 + checkQuantity: number // 本次检测数量 + qualifiedQuantity: number // 合格品数量 + unqualifiedQuantity: number // 不合格品数量 + criticalRate: number // 致命缺陷率(%) + majorRate: number // 严重缺陷率(%) + minorRate: number // 轻微缺陷率(%) + criticalQuantity: number // 致命缺陷数量 + majorQuantity: number // 严重缺陷数量 + minorQuantity: number // 轻微缺陷数量 + checkResult: string // 检测结果 + receiveDate: Date // 来料日期 + inspectDate: Date // 检测日期 + inspector: string // 检测人员 + status: number // 状态 + remark: string // 备注 +} + +// MES 来料检验单 API +export const QcIqcApi = { + // 查询来料检验单分页 + getIqcPage: async (params: any) => { + return await request.get({ url: `/mes/qc/iqc/page`, params }) + }, + + // 查询来料检验单详情 + getIqc: async (id: number) => { + return await request.get({ url: `/mes/qc/iqc/get?id=` + id }) + }, + + // 新增来料检验单 + createIqc: async (data: QcIqcVO) => { + return await request.post({ url: `/mes/qc/iqc/create`, data }) + }, + + // 修改来料检验单 + updateIqc: async (data: QcIqcVO) => { + return await request.put({ url: `/mes/qc/iqc/update`, data }) + }, + + // 完成来料检验单 + finishIqc: async (id: number) => { + return await request.put({ url: `/mes/qc/iqc/finish?id=` + id }) + }, + + // 删除来料检验单 + deleteIqc: async (id: number) => { + return await request.delete({ url: `/mes/qc/iqc/delete?id=` + id }) + }, + + // 导出来料检验单 Excel + exportIqc: async (params: any) => { + return await request.download({ url: `/mes/qc/iqc/export-excel`, params }) + } +} diff --git a/src/api/mes/qc/iqc/line/index.ts b/src/api/mes/qc/iqc/line/index.ts new file mode 100644 index 000000000..c9cec9b89 --- /dev/null +++ b/src/api/mes/qc/iqc/line/index.ts @@ -0,0 +1,35 @@ +import request from '@/config/axios' + +// MES 来料检验单行 VO +export interface QcIqcLineVO { + id: number // 编号 + iqcId: number // 来料检验单 ID + indicatorId: number // 检测指标 ID + indicatorCode: string // 检测指标编码(关联查询) + indicatorName: string // 检测指标名称(关联查询) + indicatorType: number // 检测指标类型(关联查询) + tool: string // 检测工具 + checkMethod: string // 检测方法 + standardValue: number // 标准值 + unitMeasureId: number // 计量单位 ID + unitMeasureName: string // 计量单位名称(关联查询) + maxThreshold: number // 误差上限 + minThreshold: number // 误差下限 + criticalQuantity: number // 致命缺陷数量 + majorQuantity: number // 严重缺陷数量 + minorQuantity: number // 轻微缺陷数量 + remark: string // 备注 +} + +// MES 来料检验单行 API +export const QcIqcLineApi = { + // 查询来料检验单行分页 + getIqcLinePage: async (params: any) => { + return await request.get({ url: `/mes/qc/iqc/line/page`, params }) + }, + + // 查询来料检验单行详情 + getIqcLine: async (id: number) => { + return await request.get({ url: `/mes/qc/iqc/line/get?id=` + id }) + } +} diff --git a/src/api/mes/qc/oqc/index.ts b/src/api/mes/qc/oqc/index.ts new file mode 100644 index 000000000..545285842 --- /dev/null +++ b/src/api/mes/qc/oqc/index.ts @@ -0,0 +1,77 @@ +import request from '@/config/axios' + +// MES 出货检验单 VO +export interface QcOqcVO { + id: number // 编号 + code: string // 检验单编号 + name: string // 检验单名称 + templateId: number // 检验模板 ID + sourceDocType: string // 来源单据类型 + sourceDocId: number // 来源单据 ID + sourceLineId: number // 来源单据行 ID + clientId: number // 客户 ID + clientNickname: string // 客户简称(关联查询) + batchCode: string // 批次号 + itemId: number // 产品物料 ID + itemCode: string // 产品物料编码(关联查询) + itemName: string // 产品物料名称(关联查询) + itemSpecification: string // 规格型号(关联查询) + unitName: string // 单位名称(关联查询) + minCheckQuantity: number // 最低检测数 + maxUnqualifiedQuantity: number // 最大不合格数 + outQuantity: number // 本次出货数量 + checkQuantity: number // 本次检测数量 + qualifiedQuantity: number // 合格品数量 + unqualifiedQuantity: number // 不合格品数量 + criticalRate: number // 致命缺陷率(%) + majorRate: number // 严重缺陷率(%) + minorRate: number // 轻微缺陷率(%) + criticalQuantity: number // 致命缺陷数量 + majorQuantity: number // 严重缺陷数量 + minorQuantity: number // 轻微缺陷数量 + checkResult: string // 检测结果 + outDate: Date // 出货日期 + inspectDate: Date // 检测日期 + inspectorUserId: number // 检测人员用户 ID + inspectorNickname: string // 检测人员昵称(关联查询) + status: number // 状态 + remark: string // 备注 +} + +// MES 出货检验单 API +export const QcOqcApi = { + // 查询出货检验单分页 + getOqcPage: async (params: any) => { + return await request.get({ url: `/mes/qc/oqc/page`, params }) + }, + + // 查询出货检验单详情 + getOqc: async (id: number) => { + return await request.get({ url: `/mes/qc/oqc/get?id=` + id }) + }, + + // 新增出货检验单 + createOqc: async (data: QcOqcVO) => { + return await request.post({ url: `/mes/qc/oqc/create`, data }) + }, + + // 修改出货检验单 + updateOqc: async (data: QcOqcVO) => { + return await request.put({ url: `/mes/qc/oqc/update`, data }) + }, + + // 完成出货检验单 + finishOqc: async (id: number) => { + return await request.put({ url: `/mes/qc/oqc/finish?id=` + id }) + }, + + // 删除出货检验单 + deleteOqc: async (id: number) => { + return await request.delete({ url: `/mes/qc/oqc/delete?id=` + id }) + }, + + // 导出出货检验单 Excel + exportOqc: async (params: any) => { + return await request.download({ url: `/mes/qc/oqc/export-excel`, params }) + } +} diff --git a/src/api/mes/qc/oqc/line/index.ts b/src/api/mes/qc/oqc/line/index.ts new file mode 100644 index 000000000..f1bc2c7e8 --- /dev/null +++ b/src/api/mes/qc/oqc/line/index.ts @@ -0,0 +1,34 @@ +import request from '@/config/axios' + +// MES 出货检验单行 VO +export interface QcOqcLineVO { + id: number // 编号 + oqcId: number // 出货检验单 ID + indicatorId: number // 检测指标 ID + indicatorCode: string // 检测指标编码(关联查询) + indicatorName: string // 检测指标名称(关联查询) + indicatorType: number // 检测指标类型(关联查询) + checkMethod: string // 检测方法 + standardValue: number // 标准值 + unitMeasureId: number // 计量单位 ID + unitMeasureName: string // 计量单位名称(关联查询) + maxThreshold: number // 误差上限 + minThreshold: number // 误差下限 + criticalQuantity: number // 致命缺陷数量 + majorQuantity: number // 严重缺陷数量 + minorQuantity: number // 轻微缺陷数量 + remark: string // 备注 +} + +// MES 出货检验单行 API +export const QcOqcLineApi = { + // 查询出货检验单行分页 + getOqcLinePage: async (params: any) => { + return await request.get({ url: `/mes/qc/oqc/line/page`, params }) + }, + + // 查询出货检验单行详情 + getOqcLine: async (id: number) => { + return await request.get({ url: `/mes/qc/oqc/line/get?id=` + id }) + } +} diff --git a/src/api/mes/qc/pendinginspect/index.ts b/src/api/mes/qc/pendinginspect/index.ts new file mode 100644 index 000000000..2a85849f6 --- /dev/null +++ b/src/api/mes/qc/pendinginspect/index.ts @@ -0,0 +1,36 @@ +import request from '@/config/axios' + +// MES 待检任务 VO +export interface QcPendingInspectVO { + sourceDocType: number + sourceDocId: number + sourceLineId: number + sourceDocCode: string + qcType: number + itemId: number + itemCode: string + itemName: string + specification: string + unitName: string + quantity: number + vendorId: number + vendorName: string + // 工单/工作站/任务(IPQC/RQC 场景) + workOrderId: number + workstationId: number + workstationName: string + taskId: number + taskCode: string + // 客户(OQC/RQC 场景) + clientId: number + clientName: string + recordTime: string +} + +// MES 待检任务 API +export const QcPendingInspectApi = { + // 查询待检任务分页 + getPendingInspectPage: async (params: any) => { + return await request.get({ url: '/mes/qc/pending-inspect/page', params }) + } +} diff --git a/src/api/mes/qc/rqc/index.ts b/src/api/mes/qc/rqc/index.ts new file mode 100644 index 000000000..0b079393d --- /dev/null +++ b/src/api/mes/qc/rqc/index.ts @@ -0,0 +1,73 @@ +import request from '@/config/axios' + +// MES 退货检验单 VO +export interface QcRqcVO { + id: number // 编号 + code: string // 检验单编号 + name: string // 检验单名称 + templateId: number // 检验模板 ID + sourceDocType: string // 来源单据类型 + sourceDocId: number // 来源单据 ID + sourceLineId: number // 来源单据行 ID + type: number // 检验类型 + itemId: number // 产品物料 ID + itemCode: string // 产品物料编码(关联查询) + itemName: string // 产品物料名称(关联查询) + itemSpecification: string // 规格型号(关联查询) + unitName: string // 单位名称(关联查询) + batchCode: string // 批次号 + checkQuantity: number // 检测数量 + qualifiedQuantity: number // 合格品数量 + unqualifiedQuantity: number // 不合格数量 + checkResult: number // 检测结果 + inspectDate: Date // 检测日期 + inspectorUserId: number // 检测人员用户 ID + inspectorNickname: string // 检测人员昵称(关联查询) + status: number // 状态 + remark: string // 备注 + // 缺陷统计 + criticalRate: number // 致命缺陷率(%) + majorRate: number // 严重缺陷率(%) + minorRate: number // 轻微缺陷率(%) + criticalQuantity: number // 致命缺陷数量 + majorQuantity: number // 严重缺陷数量 + minorQuantity: number // 轻微缺陷数量 +} + +// MES 退货检验单 API +export const QcRqcApi = { + // 查询退货检验单分页 + getRqcPage: async (params: any) => { + return await request.get({ url: `/mes/qc/rqc/page`, params }) + }, + + // 查询退货检验单详情 + getRqc: async (id: number) => { + return await request.get({ url: `/mes/qc/rqc/get?id=` + id }) + }, + + // 新增退货检验单 + createRqc: async (data: QcRqcVO) => { + return await request.post({ url: `/mes/qc/rqc/create`, data }) + }, + + // 修改退货检验单 + updateRqc: async (data: QcRqcVO) => { + return await request.put({ url: `/mes/qc/rqc/update`, data }) + }, + + // 完成退货检验单 + finishRqc: async (id: number) => { + return await request.put({ url: `/mes/qc/rqc/finish?id=` + id }) + }, + + // 删除退货检验单 + deleteRqc: async (id: number) => { + return await request.delete({ url: `/mes/qc/rqc/delete?id=` + id }) + }, + + // 导出退货检验单 Excel + exportRqc: async (params: any) => { + return await request.download({ url: `/mes/qc/rqc/export-excel`, params }) + } +} diff --git a/src/api/mes/qc/rqc/line/index.ts b/src/api/mes/qc/rqc/line/index.ts new file mode 100644 index 000000000..476c058bb --- /dev/null +++ b/src/api/mes/qc/rqc/line/index.ts @@ -0,0 +1,35 @@ +import request from '@/config/axios' + +// MES 退货检验单行 VO +export interface QcRqcLineVO { + id: number // 编号 + rqcId: number // 退货检验单 ID + indicatorId: number // 检测指标 ID + indicatorCode: string // 检测指标编码(关联查询) + indicatorName: string // 检测指标名称(关联查询) + indicatorType: number // 检测指标类型(关联查询) + tool: string // 检测工具 + checkMethod: string // 检测方法 + standardValue: number // 标准值 + unitMeasureId: number // 计量单位 ID + unitMeasureName: string // 计量单位名称(关联查询) + maxThreshold: number // 误差上限 + minThreshold: number // 误差下限 + criticalQuantity: number // 致命缺陷数量 + majorQuantity: number // 严重缺陷数量 + minorQuantity: number // 轻微缺陷数量 + remark: string // 备注 +} + +// MES 退货检验单行 API +export const QcRqcLineApi = { + // 查询退货检验单行分页 + getRqcLinePage: async (params: any) => { + return await request.get({ url: `/mes/qc/rqc/line/page`, params }) + }, + + // 查询退货检验单行详情 + getRqcLine: async (id: number) => { + return await request.get({ url: `/mes/qc/rqc/line/get?id=` + id }) + } +} diff --git a/src/api/mes/qc/template/index.ts b/src/api/mes/qc/template/index.ts new file mode 100644 index 000000000..d802305dd --- /dev/null +++ b/src/api/mes/qc/template/index.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +// MES 质检方案 VO +export interface QcTemplateVO { + id: number // 编号 + code: string // 方案编号 + name: string // 方案名称 + types: number[] // 检测种类 + status: number // 状态 + remark: string // 备注 +} + +// MES 质检方案 API +export const QcTemplateApi = { + // 查询质检方案分页 + getTemplatePage: async (params: any) => { + return await request.get({ url: `/mes/qc/template/page`, params }) + }, + + // 查询质检方案详情 + getTemplate: async (id: number) => { + return await request.get({ url: `/mes/qc/template/get?id=` + id }) + }, + + // 新增质检方案 + createTemplate: async (data: QcTemplateVO) => { + return await request.post({ url: `/mes/qc/template/create`, data }) + }, + + // 修改质检方案 + updateTemplate: async (data: QcTemplateVO) => { + return await request.put({ url: `/mes/qc/template/update`, data }) + }, + + // 删除质检方案 + deleteTemplate: async (id: number) => { + return await request.delete({ url: `/mes/qc/template/delete?id=` + id }) + }, + + // 导出质检方案 Excel + exportTemplate: async (params: any) => { + return await request.download({ url: `/mes/qc/template/export-excel`, params }) + } +} diff --git a/src/api/mes/qc/template/indicator/index.ts b/src/api/mes/qc/template/indicator/index.ts new file mode 100644 index 000000000..91ce5b4be --- /dev/null +++ b/src/api/mes/qc/template/indicator/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +// MES 质检方案-检测指标项 VO +export interface QcTemplateIndicatorVO { + id: number // 编号 + templateId: number // 质检方案ID + indicatorId: number // 质检指标ID + checkMethod: string // 检测方法 + standardValue: number // 标准值 + unitMeasureId: number // 计量单位ID + thresholdMax: number // 误差上限 + thresholdMin: number // 误差下限 + docUrl: string // 说明图URL + remark: string // 备注 + // JOIN mes_qc_indicator + indicatorCode: string // 检测项编码 + indicatorName: string // 检测项名称 + indicatorType: number // 检测项类型 + indicatorTool: string // 检测工具 + // JOIN mes_md_unit_measure + unitMeasureName: string // 计量单位名称 +} + +// MES 质检方案-检测指标项 API +export const QcTemplateIndicatorApi = { + // 查询检测指标项分页 + getTemplateIndicatorPage: async (params: any) => { + return await request.get({ url: `/mes/qc/template/indicator/page`, params }) + }, + + // 查询检测指标项详情 + getTemplateIndicator: async (id: number) => { + return await request.get({ url: `/mes/qc/template/indicator/get?id=` + id }) + }, + + // 新增检测指标项 + createTemplateIndicator: async (data: QcTemplateIndicatorVO) => { + return await request.post({ url: `/mes/qc/template/indicator/create`, data }) + }, + + // 修改检测指标项 + updateTemplateIndicator: async (data: QcTemplateIndicatorVO) => { + return await request.put({ url: `/mes/qc/template/indicator/update`, data }) + }, + + // 删除检测指标项 + deleteTemplateIndicator: async (id: number) => { + return await request.delete({ url: `/mes/qc/template/indicator/delete?id=` + id }) + } +} diff --git a/src/api/mes/qc/template/item/index.ts b/src/api/mes/qc/template/item/index.ts new file mode 100644 index 000000000..0b19c694d --- /dev/null +++ b/src/api/mes/qc/template/item/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +// MES 质检方案-产品关联 VO +export interface QcTemplateItemVO { + id: number // 编号 + templateId: number // 质检方案ID + itemId: number // 产品物料ID + quantityCheck: number // 最低检测数 + quantityUnqualified: number // 最大不合格数 + criticalRate: number // 最大致命缺陷率(%) + majorRate: number // 最大严重缺陷率(%) + minorRate: number // 最大轻微缺陷率(%) + remark: string // 备注 + // JOIN mes_md_item + itemCode: string // 物料编码 + itemName: string // 物料名称 + specification: string // 规格型号 + unitMeasureName: string // 计量单位名称 +} + +// MES 质检方案-产品关联 API +export const QcTemplateItemApi = { + // 查询产品关联分页 + getTemplateItemPage: async (params: any) => { + return await request.get({ url: `/mes/qc/template/item/page`, params }) + }, + + // 查询产品关联详情 + getTemplateItem: async (id: number) => { + return await request.get({ url: `/mes/qc/template/item/get?id=` + id }) + }, + + // 新增产品关联 + createTemplateItem: async (data: QcTemplateItemVO) => { + return await request.post({ url: `/mes/qc/template/item/create`, data }) + }, + + // 修改产品关联 + updateTemplateItem: async (data: QcTemplateItemVO) => { + return await request.put({ url: `/mes/qc/template/item/update`, data }) + }, + + // 删除产品关联 + deleteTemplateItem: async (id: number) => { + return await request.delete({ url: `/mes/qc/template/item/delete?id=` + id }) + } +} diff --git a/src/api/mes/tm/tool/index.ts b/src/api/mes/tm/tool/index.ts new file mode 100644 index 000000000..c93f01eb8 --- /dev/null +++ b/src/api/mes/tm/tool/index.ts @@ -0,0 +1,52 @@ +import request from '@/config/axios' + +// MES 工具台账 VO +export interface TmToolVO { + id: number // 编号 + code: string // 工具编码 + name: string // 工具名称 + brand: string // 品牌 + specification: string // 型号规格 + toolTypeId: number // 工具类型编号 + toolTypeName: string // 工具类型名称 + quantity: number // 数量 + availableQuantity: number // 可用数量 + maintenType: number // 保养维护类型 + nextMaintenPeriod: number // 下次保养周期(次数) + nextMaintenDate: Date // 下次保养日期 + status: number // 状态 + remark: string // 备注 +} + +// MES 工具台账 API +export const TmToolApi = { + // 查询工具台账分页 + getToolPage: async (params: any) => { + return await request.get({ url: `/mes/tm/tool/page`, params }) + }, + + // 查询工具台账详情 + getTool: async (id: number) => { + return await request.get({ url: `/mes/tm/tool/get?id=` + id }) + }, + + // 新增工具台账 + createTool: async (data: TmToolVO) => { + return await request.post({ url: `/mes/tm/tool/create`, data }) + }, + + // 修改工具台账 + updateTool: async (data: TmToolVO) => { + return await request.put({ url: `/mes/tm/tool/update`, data }) + }, + + // 删除工具台账 + deleteTool: async (id: number) => { + return await request.delete({ url: `/mes/tm/tool/delete?id=` + id }) + }, + + // 导出工具台账 Excel + exportTool: async (params: any) => { + return await request.download({ url: `/mes/tm/tool/export-excel`, params }) + } +} diff --git a/src/api/mes/tm/tool/type/index.ts b/src/api/mes/tm/tool/type/index.ts new file mode 100644 index 000000000..47b146394 --- /dev/null +++ b/src/api/mes/tm/tool/type/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +// MES 工具类型 VO +export interface TmToolTypeVO { + id: number // 编号 + code: string // 类型编码 + name: string // 类型名称 + codeFlag: boolean // 是否编码管理 + maintenType: number // 保养维护类型 + maintenPeriod: number // 保养周期 + remark: string // 备注 +} + +// MES 工具类型 API +export const TmToolTypeApi = { + // 查询工具类型分页 + getToolTypePage: async (params: any) => { + return await request.get({ url: `/mes/tm/tool-type/page`, params }) + }, + + // 查询工具类型精简列表 + getToolTypeSimpleList: async () => { + return await request.get({ url: `/mes/tm/tool-type/simple-list` }) + }, + + // 查询工具类型详情 + getToolType: async (id: number) => { + return await request.get({ url: `/mes/tm/tool-type/get?id=` + id }) + }, + + // 新增工具类型 + createToolType: async (data: TmToolTypeVO) => { + return await request.post({ url: `/mes/tm/tool-type/create`, data }) + }, + + // 修改工具类型 + updateToolType: async (data: TmToolTypeVO) => { + return await request.put({ url: `/mes/tm/tool-type/update`, data }) + }, + + // 删除工具类型 + deleteToolType: async (id: number) => { + return await request.delete({ url: `/mes/tm/tool-type/delete?id=` + id }) + }, + + // 导出工具类型 Excel + exportToolType: async (params: any) => { + return await request.download({ url: `/mes/tm/tool-type/export-excel`, params }) + } +} diff --git a/src/api/mes/wm/arrivalnotice/index.ts b/src/api/mes/wm/arrivalnotice/index.ts new file mode 100644 index 000000000..563b8e2b5 --- /dev/null +++ b/src/api/mes/wm/arrivalnotice/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +// MES 到货通知单 VO +export interface WmArrivalNoticeVO { + id: number + code: string + name: string + purchaseOrderCode: string + vendorId: number + vendorCode: string + vendorName: string + arrivalDate: string + contactName: string + contactTelephone: string + status: number + remark: string + createTime: string +} + +// MES 到货通知单 API +export const WmArrivalNoticeApi = { + // 查询到货通知单分页 + getArrivalNoticePage: async (params: any) => { + return await request.get({ url: '/mes/wm/arrival-notice/page', params }) + }, + + // 查询到货通知单详情 + getArrivalNotice: async (id: number) => { + return await request.get({ url: '/mes/wm/arrival-notice/get?id=' + id }) + }, + + // 新增到货通知单 + createArrivalNotice: async (data: WmArrivalNoticeVO) => { + return await request.post({ url: '/mes/wm/arrival-notice/create', data }) + }, + + // 修改到货通知单 + updateArrivalNotice: async (data: WmArrivalNoticeVO) => { + return await request.put({ url: '/mes/wm/arrival-notice/update', data }) + }, + + // 删除到货通知单 + deleteArrivalNotice: async (id: number) => { + return await request.delete({ url: '/mes/wm/arrival-notice/delete?id=' + id }) + }, + + // 提交到货通知单 + submitArrivalNotice: async (id: number) => { + return await request.put({ url: '/mes/wm/arrival-notice/submit?id=' + id }) + }, + + // 导出到货通知单 Excel + exportArrivalNotice: async (params: any) => { + return await request.download({ url: '/mes/wm/arrival-notice/export-excel', params }) + } +} diff --git a/src/api/mes/wm/arrivalnotice/line/index.ts b/src/api/mes/wm/arrivalnotice/line/index.ts new file mode 100644 index 000000000..fdadfb2bc --- /dev/null +++ b/src/api/mes/wm/arrivalnotice/line/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +// MES 到货通知单行 VO +export interface WmArrivalNoticeLineVO { + id: number + noticeId: number + itemId: number + itemCode: string + itemName: string + specification: string + unitMeasureName: string + arrivalQuantity: number + qualifiedQuantity: number + iqcCheckFlag: boolean + iqcId: number + iqcCode: string + remark: string + createTime: string +} + +// MES 到货通知单行 API +export const WmArrivalNoticeLineApi = { + // 查询到货通知单行分页 + getArrivalNoticeLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/arrival-notice-line/page', params }) + }, + + // 查询到货通知单行详情 + getArrivalNoticeLine: async (id: number) => { + return await request.get({ url: '/mes/wm/arrival-notice-line/get?id=' + id }) + }, + + // 新增到货通知单行 + createArrivalNoticeLine: async (data: WmArrivalNoticeLineVO) => { + return await request.post({ url: '/mes/wm/arrival-notice-line/create', data }) + }, + + // 修改到货通知单行 + updateArrivalNoticeLine: async (data: WmArrivalNoticeLineVO) => { + return await request.put({ url: '/mes/wm/arrival-notice-line/update', data }) + }, + + // 删除到货通知单行 + deleteArrivalNoticeLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/arrival-notice-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/barcode/config/index.ts b/src/api/mes/wm/barcode/config/index.ts new file mode 100644 index 000000000..3f991024a --- /dev/null +++ b/src/api/mes/wm/barcode/config/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +// MES 条码配置 VO +export interface WmBarcodeConfigVO { + id: number + format: number + bizType: number + contentFormat: string + contentExample: string + autoGenerateFlag: boolean + defaultTemplate: string + status: number + remark: string + createTime: string +} + +// MES 条码配置 API +export const WmBarcodeConfigApi = { + // 查询条码配置分页 + getBarcodeConfigPage: async (params: any) => { + return await request.get({ url: '/mes/wm/barcode-config/page', params }) + }, + + // 查询条码配置详情 + getBarcodeConfig: async (id: number) => { + return await request.get({ url: '/mes/wm/barcode-config/get?id=' + id }) + }, + + // 新增条码配置 + createBarcodeConfig: async (data: WmBarcodeConfigVO) => { + return await request.post({ url: '/mes/wm/barcode-config/create', data }) + }, + + // 修改条码配置 + updateBarcodeConfig: async (data: WmBarcodeConfigVO) => { + return await request.put({ url: '/mes/wm/barcode-config/update', data }) + }, + + // 删除条码配置 + deleteBarcodeConfig: async (id: number) => { + return await request.delete({ url: '/mes/wm/barcode-config/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/barcode/index.ts b/src/api/mes/wm/barcode/index.ts new file mode 100644 index 000000000..a74534c6a --- /dev/null +++ b/src/api/mes/wm/barcode/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +// MES 条码清单 VO +export interface WmBarcodeVO { + id?: number + configId?: number + format?: number + bizType?: number + content?: string + bizId?: number + bizCode?: string + bizName?: string + status: number + remark: string + createTime?: Date +} + +// MES 条码 API +export const WmBarcodeApi = { + // 查询条码分页 + getBarcodePage: async (params: any) => { + return await request.get({ url: '/mes/wm/barcode/page', params }) + }, + + // 查询条码详情 + getBarcode: async (id: number) => { + return await request.get({ url: '/mes/wm/barcode/get?id=' + id }) + }, + + // 根据业务对象获取条码 + getBarcodeByBusiness: async (bizType: number, bizId: number) => { + return await request.get({ + url: '/mes/wm/barcode/get-by-business', + params: { bizType, bizId } + }) + }, + + // 新增条码 + createBarcode: async (data: WmBarcodeVO) => { + return await request.post({ url: '/mes/wm/barcode/create', data }) + }, + + // 修改条码 + updateBarcode: async (data: WmBarcodeVO) => { + return await request.put({ url: '/mes/wm/barcode/update', data }) + }, + + // 删除条码 + deleteBarcode: async (id: number) => { + return await request.delete({ url: '/mes/wm/barcode/delete?id=' + id }) + }, + + // 导出条码 Excel + exportBarcode: async (params: any) => { + return await request.download({ url: '/mes/wm/barcode/export-excel', params }) + }, + + // 生成条码内容 + generateBarcodeContent: async (bizType: number, bizCode: string) => { + return await request.get({ + url: '/mes/wm/barcode/generate-content', + params: { bizType, bizCode } + }) + } +} diff --git a/src/api/mes/wm/batch/index.ts b/src/api/mes/wm/batch/index.ts new file mode 100644 index 000000000..ed3167ed2 --- /dev/null +++ b/src/api/mes/wm/batch/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface BatchVO { + id: number + code: string + itemId: number + itemCode?: string + itemName?: string + itemSpecification?: string + unitName?: string + produceDate?: Date + expireDate?: Date + receiptDate?: Date + vendorId?: number + vendorCode?: string + vendorName?: string + clientId?: number + clientCode?: string + clientName?: string + purchaseOrderCode?: string + salesOrderCode?: string + workOrderId?: number + workOrderCode?: string + taskId?: number + taskCode?: string + workstationId?: number + workstationCode?: string + toolId?: number + toolCode?: string + moldId?: number + lotNumber?: string + qualityStatus?: string + remark?: string + createTime?: Date +} + +// 批次追溯 API +export const BatchApi = { + // 获取批次详情 + getBatch: async (id: number) => { + return await request.get({ url: `/mes/wm/batch/get?id=` + id }) + }, + + // 获取批次分页 + getBatchPage: async (params: PageParam) => { + return await request.get({ url: `/mes/wm/batch/page`, params }) + }, + + // 向前追溯 + getForwardList: async (code: string) => { + return await request.get({ url: `/mes/wm/batch/forward-list`, params: { code } }) + }, + + // 向后追溯 + getBackwardList: async (code: string) => { + return await request.get({ url: `/mes/wm/batch/backward-list`, params: { code } }) + } +} diff --git a/src/api/mes/wm/itemconsume/line/index.ts b/src/api/mes/wm/itemconsume/line/index.ts new file mode 100644 index 000000000..2460ca40a --- /dev/null +++ b/src/api/mes/wm/itemconsume/line/index.ts @@ -0,0 +1,10 @@ +import request from '@/config/axios' + +// DONE @AI:itemconsume/line/index.ts +/** 根据报工编号分页获取消耗行列表 */ +export const getItemConsumeLinePage = (params: any) => { + return request.get({ + url: '/mes/wm/item-consume-line/page', + params + }) +} diff --git a/src/api/mes/wm/itemreceipt/detail/index.ts b/src/api/mes/wm/itemreceipt/detail/index.ts new file mode 100644 index 000000000..9d5e71582 --- /dev/null +++ b/src/api/mes/wm/itemreceipt/detail/index.ts @@ -0,0 +1,54 @@ +import request from '@/config/axios' + +// MES 采购入库明细 VO +export interface WmItemReceiptDetailVO { + id: number + lineId: number + receiptId: number + itemId: number + itemCode: string + itemName: string + specification: string + unitMeasureName: string + quantity: number + batchId: number + warehouseId: number + warehouseName: string + locationId: number + locationName: string + areaId: number + areaName: string + remark: string + createTime: string +} + +// MES 采购入库明细 API +export const WmItemReceiptDetailApi = { + // 查询采购入库明细列表(按行编号) + getItemReceiptDetailListByLineId: async (lineId: number) => { + return await request.get({ + url: '/mes/wm/item-receipt-detail/list-by-line', + params: { lineId } + }) + }, + + // 查询采购入库明细详情 + getItemReceiptDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/item-receipt-detail/get?id=' + id }) + }, + + // 新增采购入库明细 + createItemReceiptDetail: async (data: WmItemReceiptDetailVO) => { + return await request.post({ url: '/mes/wm/item-receipt-detail/create', data }) + }, + + // 修改采购入库明细 + updateItemReceiptDetail: async (data: WmItemReceiptDetailVO) => { + return await request.put({ url: '/mes/wm/item-receipt-detail/update', data }) + }, + + // 删除采购入库明细 + deleteItemReceiptDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/item-receipt-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/itemreceipt/index.ts b/src/api/mes/wm/itemreceipt/index.ts new file mode 100644 index 000000000..06a7afb01 --- /dev/null +++ b/src/api/mes/wm/itemreceipt/index.ts @@ -0,0 +1,78 @@ +import request from '@/config/axios' + +// MES 采购入库单 VO +export interface WmItemReceiptVO { + id: number + code: string + name: string + iqcId: number + iqcCode: string + noticeId: number + noticeCode: string + purchaseOrderCode: string + vendorId: number + vendorName: string + warehouseId: number + warehouseName: string + locationId: number + locationName: string + areaId: number + areaName: string + receiptDate: string + status: number + remark: string + createTime: string +} + +// MES 采购入库单 API +export const WmItemReceiptApi = { + // 查询采购入库单分页 + getItemReceiptPage: async (params: any) => { + return await request.get({ url: '/mes/wm/item-receipt/page', params }) + }, + + // 查询采购入库单详情 + getItemReceipt: async (id: number) => { + return await request.get({ url: '/mes/wm/item-receipt/get?id=' + id }) + }, + + // 新增采购入库单 + createItemReceipt: async (data: WmItemReceiptVO) => { + return await request.post({ url: '/mes/wm/item-receipt/create', data }) + }, + + // 修改采购入库单 + updateItemReceipt: async (data: WmItemReceiptVO) => { + return await request.put({ url: '/mes/wm/item-receipt/update', data }) + }, + + // 删除采购入库单 + deleteItemReceipt: async (id: number) => { + return await request.delete({ url: '/mes/wm/item-receipt/delete?id=' + id }) + }, + + // 提交采购入库单 + submitItemReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/item-receipt/submit?id=' + id }) + }, + + // 执行上架 + stockItemReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/item-receipt/stock?id=' + id }) + }, + + // 执行入库 + finishItemReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/item-receipt/finish?id=' + id }) + }, + + // 取消采购入库单 + cancelItemReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/item-receipt/cancel?id=' + id }) + }, + + // 导出采购入库单 Excel + exportItemReceipt: async (params: any) => { + return await request.download({ url: '/mes/wm/item-receipt/export-excel', params }) + } +} diff --git a/src/api/mes/wm/itemreceipt/line/index.ts b/src/api/mes/wm/itemreceipt/line/index.ts new file mode 100644 index 000000000..a274ac1a1 --- /dev/null +++ b/src/api/mes/wm/itemreceipt/line/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +// MES 采购入库单行 VO +export interface WmItemReceiptLineVO { + id: number + receiptId: number + arrivalNoticeLineId: number + itemId: number + itemCode: string + itemName: string + specification: string + unitMeasureName: string + receivedQuantity: number + batchId: number + batchCode: string + warehouseId: number + warehouseName: string + locationId: number + locationName: string + areaId: number + areaName: string + productionDate: string + expireDate: string + lotNumber: string + iqcCheckFlag: boolean + iqcId: number + iqcCode: string + remark: string + createTime: string +} + +// MES 采购入库单行 API +export const WmItemReceiptLineApi = { + // 查询采购入库单行分页 + getItemReceiptLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/item-receipt-line/page', params }) + }, + + // 查询采购入库单行详情 + getItemReceiptLine: async (id: number) => { + return await request.get({ url: '/mes/wm/item-receipt-line/get?id=' + id }) + }, + + // 新增采购入库单行 + createItemReceiptLine: async (data: WmItemReceiptLineVO) => { + return await request.post({ url: '/mes/wm/item-receipt-line/create', data }) + }, + + // 修改采购入库单行 + updateItemReceiptLine: async (data: WmItemReceiptLineVO) => { + return await request.put({ url: '/mes/wm/item-receipt-line/update', data }) + }, + + // 删除采购入库单行 + deleteItemReceiptLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/item-receipt-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/materialstock/index.ts b/src/api/mes/wm/materialstock/index.ts new file mode 100644 index 000000000..4214dbebe --- /dev/null +++ b/src/api/mes/wm/materialstock/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +// MES 库存台账 VO +export interface WmMaterialStockVO { + id: number + itemTypeId: number + itemId: number + itemCode: string + itemName: string + specification: string + unitMeasureName: string + batchId: number + batchCode: string + warehouseId: number + warehouseCode: string + warehouseName: string + locationId: number + locationName: string + areaId: number + areaName: string + vendorId: number + vendorName: string + quantity: number + receiptTime: string + frozen: boolean + createTime: string +} + +// MES 库存台账 API +export const WmMaterialStockApi = { + // 查询库存台账分页 + getMaterialStockPage: async (params: any) => { + return await request.get({ url: '/mes/wm/material-stock/page', params }) + }, + + // 查询库存记录详情 + getMaterialStock: async (id: number) => { + return await request.get({ url: '/mes/wm/material-stock/get?id=' + id }) + }, + + // 更新库存冻结状态 + updateMaterialStockFrozen: async (data: { id: number; frozen: boolean }) => { + return await request.put({ url: '/mes/wm/material-stock/update-frozen', data }) + }, + + // 导出库存台账 Excel + exportMaterialStock: async (params: any) => { + return await request.download({ url: '/mes/wm/material-stock/export-excel', params }) + } +} diff --git a/src/api/mes/wm/miscissue/index.ts b/src/api/mes/wm/miscissue/index.ts new file mode 100644 index 000000000..fba95d2b8 --- /dev/null +++ b/src/api/mes/wm/miscissue/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +// MES 杂项出库单 VO +export interface WmMiscIssueVO { + id: number + code: string + name: string + type: string + sourceDocType: string + sourceDocId: number + sourceDocCode: string + issueDate: string + status: number + remark: string + createTime: string +} + +// MES 杂项出库单 API +export const WmMiscIssueApi = { + // 查询杂项出库单分页 + getMiscIssuePage: async (params: any) => { + return await request.get({ url: '/mes/wm/misc-issue/page', params }) + }, + + // 查询杂项出库单详情 + getMiscIssue: async (id: number) => { + return await request.get({ url: '/mes/wm/misc-issue/get?id=' + id }) + }, + + // 新增杂项出库单 + createMiscIssue: async (data: WmMiscIssueVO) => { + return await request.post({ url: '/mes/wm/misc-issue/create', data }) + }, + + // 修改杂项出库单 + updateMiscIssue: async (data: WmMiscIssueVO) => { + return await request.put({ url: '/mes/wm/misc-issue/update', data }) + }, + + // 删除杂项出库单 + deleteMiscIssue: async (id: number) => { + return await request.delete({ url: '/mes/wm/misc-issue/delete?id=' + id }) + }, + + // 提交杂项出库单 + submitMiscIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/misc-issue/submit?id=' + id }) + }, + + // 执行出库 + finishMiscIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/misc-issue/finish?id=' + id }) + }, + + // 取消杂项出库单 + cancelMiscIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/misc-issue/cancel?id=' + id }) + }, + + // 导出杂项出库单 Excel + exportMiscIssue: async (params: any) => { + return await request.download({ url: '/mes/wm/misc-issue/export-excel', params }) + }, + + // 校验杂项出库单数量 + checkMiscIssueQuantity: async (id: number) => { + return await request.get({ url: '/mes/wm/misc-issue/check-quantity?id=' + id }) + } +} diff --git a/src/api/mes/wm/miscissue/line/index.ts b/src/api/mes/wm/miscissue/line/index.ts new file mode 100644 index 000000000..ce0438fde --- /dev/null +++ b/src/api/mes/wm/miscissue/line/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +// MES 杂项出库单行 VO +export interface WmMiscIssueLineVO { + id: number + issueId: number + sourceDocLineId: number + materialStockId: number + itemId: number + itemCode: string + itemName: string + specification: string + unitMeasure: string + unitMeasureName: string + quantity: number + batchId: number + batchCode: string + warehouseId: number + warehouseCode: string + warehouseName: string + locationId: number + locationCode: string + locationName: string + areaId: number + areaCode: string + areaName: string + remark: string +} + +// MES 杂项出库单行 API +export const WmMiscIssueLineApi = { + // 查询杂项出库单行分页 + getMiscIssueLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/misc-issue-line/page', params }) + }, + + // 根据出库单ID查询杂项出库单行列表 + getMiscIssueLineListByIssueId: async (issueId: number) => { + return await request.get({ url: '/mes/wm/misc-issue-line/list-by-issue-id?issueId=' + issueId }) + }, + + // 查询杂项出库单行详情 + getMiscIssueLine: async (id: number) => { + return await request.get({ url: '/mes/wm/misc-issue-line/get?id=' + id }) + }, + + // 新增杂项出库单行 + createMiscIssueLine: async (data: WmMiscIssueLineVO) => { + return await request.post({ url: '/mes/wm/misc-issue-line/create', data }) + }, + + // 修改杂项出库单行 + updateMiscIssueLine: async (data: WmMiscIssueLineVO) => { + return await request.put({ url: '/mes/wm/misc-issue-line/update', data }) + }, + + // 删除杂项出库单行 + deleteMiscIssueLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/misc-issue-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/miscreceipt/index.ts b/src/api/mes/wm/miscreceipt/index.ts new file mode 100644 index 000000000..6262d228c --- /dev/null +++ b/src/api/mes/wm/miscreceipt/index.ts @@ -0,0 +1,64 @@ +import request from '@/config/axios' + +// MES 杂项入库单 VO +export interface WmMiscReceiptVO { + id: number + code: string + name: string + type: number + sourceDocType: string + sourceDocId: number + sourceDocCode: string + receiptDate: string + status: number + remark: string + createTime: string +} + +// MES 杂项入库单 API +export const WmMiscReceiptApi = { + // 查询杂项入库单分页 + getMiscReceiptPage: async (params: any) => { + return await request.get({ url: '/mes/wm/misc-receipt/page', params }) + }, + + // 查询杂项入库单详情 + getMiscReceipt: async (id: number) => { + return await request.get({ url: '/mes/wm/misc-receipt/get?id=' + id }) + }, + + // 新增杂项入库单 + createMiscReceipt: async (data: WmMiscReceiptVO) => { + return await request.post({ url: '/mes/wm/misc-receipt/create', data }) + }, + + // 修改杂项入库单 + updateMiscReceipt: async (data: WmMiscReceiptVO) => { + return await request.put({ url: '/mes/wm/misc-receipt/update', data }) + }, + + // 删除杂项入库单 + deleteMiscReceipt: async (id: number) => { + return await request.delete({ url: '/mes/wm/misc-receipt/delete?id=' + id }) + }, + + // 提交审批 + submitMiscReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/misc-receipt/submit?id=' + id }) + }, + + // 执行入库 + finishMiscReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/misc-receipt/finish?id=' + id }) + }, + + // 取消杂项入库单 + cancelMiscReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/misc-receipt/cancel?id=' + id }) + }, + + // 导出杂项入库单 Excel + exportMiscReceipt: async (params: any) => { + return await request.download({ url: '/mes/wm/misc-receipt/export-excel', params }) + } +} diff --git a/src/api/mes/wm/miscreceipt/line/index.ts b/src/api/mes/wm/miscreceipt/line/index.ts new file mode 100644 index 000000000..77ddb2adf --- /dev/null +++ b/src/api/mes/wm/miscreceipt/line/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +// MES 杂项入库单行 VO +export interface WmMiscReceiptLineVO { + id: number + receiptId: number + itemId: number + quantity: number + batchCode: string + warehouseId: number + locationId: number + areaId: number + remark: string + createTime: string +} + +// MES 杂项入库单行 API +export const WmMiscReceiptLineApi = { + // 查询杂项入库单行详情 + getMiscReceiptLine: async (id: number) => { + return await request.get({ url: '/mes/wm/misc-receipt-line/get?id=' + id }) + }, + + // 查询杂项入库单行列表 + getMiscReceiptLineListByReceiptId: async (receiptId: number) => { + return await request.get({ + url: '/mes/wm/misc-receipt-line/list-by-receipt-id?receiptId=' + receiptId + }) + }, + + // 新增杂项入库单行 + createMiscReceiptLine: async (data: WmMiscReceiptLineVO) => { + return await request.post({ url: '/mes/wm/misc-receipt-line/create', data }) + }, + + // 修改杂项入库单行 + updateMiscReceiptLine: async (data: WmMiscReceiptLineVO) => { + return await request.put({ url: '/mes/wm/misc-receipt-line/update', data }) + }, + + // 删除杂项入库单行 + deleteMiscReceiptLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/misc-receipt-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/outsourceissue/detail/index.ts b/src/api/mes/wm/outsourceissue/detail/index.ts new file mode 100644 index 000000000..b90622cd5 --- /dev/null +++ b/src/api/mes/wm/outsourceissue/detail/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +// MES 外协发料单明细 VO +export interface WmOutsourceIssueDetailVO { + id: number + lineId: number + issueId: number + materialStockId: number + itemId: number + itemCode: string + itemName: string + specification: string + unitMeasureName: string + quantity: number + batchId: number + batchCode: string + warehouseId: number + warehouseName: string + locationId: number + locationName: string + areaId: number + areaName: string + remark: string + createTime: string +} + +// MES 外协发料单明细 API +export const WmOutsourceIssueDetailApi = { + // 查询外协发料单明细列表(按行编号) + getOutsourceIssueDetailListByLineId: async (lineId: number) => { + return await request.get({ + url: '/mes/wm/outsource-issue-detail/list-by-line', + params: { lineId } + }) + }, + + // 查询外协发料单明细详情 + getOutsourceIssueDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/outsource-issue-detail/get?id=' + id }) + }, + + // 新增外协发料单明细 + createOutsourceIssueDetail: async (data: WmOutsourceIssueDetailVO) => { + return await request.post({ url: '/mes/wm/outsource-issue-detail/create', data }) + }, + + // 修改外协发料单明细 + updateOutsourceIssueDetail: async (data: WmOutsourceIssueDetailVO) => { + return await request.put({ url: '/mes/wm/outsource-issue-detail/update', data }) + }, + + // 删除外协发料单明细 + deleteOutsourceIssueDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/outsource-issue-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/outsourceissue/index.ts b/src/api/mes/wm/outsourceissue/index.ts new file mode 100644 index 000000000..5d1f83bb9 --- /dev/null +++ b/src/api/mes/wm/outsourceissue/index.ts @@ -0,0 +1,76 @@ +import request from '@/config/axios' + +// MES 外协发料单 VO +export interface WmOutsourceIssueVO { + id: number + code: string + name: string + vendorId: number + vendorCode: string + vendorName: string + workorderId: number + workorderCode: string + workorderName: string + issueDate: string + status: number + remark: string + createTime: string +} + +// MES 外协发料单 API +export const WmOutsourceIssueApi = { + // 查询外协发料单分页 + getOutsourceIssuePage: async (params: any) => { + return await request.get({ url: '/mes/wm/outsource-issue/page', params }) + }, + + // 查询外协发料单详情 + getOutsourceIssue: async (id: number) => { + return await request.get({ url: '/mes/wm/outsource-issue/get?id=' + id }) + }, + + // 新增外协发料单 + createOutsourceIssue: async (data: WmOutsourceIssueVO) => { + return await request.post({ url: '/mes/wm/outsource-issue/create', data }) + }, + + // 修改外协发料单 + updateOutsourceIssue: async (data: WmOutsourceIssueVO) => { + return await request.put({ url: '/mes/wm/outsource-issue/update', data }) + }, + + // 删除外协发料单 + deleteOutsourceIssue: async (id: number) => { + return await request.delete({ url: '/mes/wm/outsource-issue/delete?id=' + id }) + }, + + // 提交到待拣货 + submitOutsourceIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/outsource-issue/submit?id=' + id }) + }, + + // 执行拣货 + stockOutsourceIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/outsource-issue/stock?id=' + id }) + }, + + // 完成外协发料出库 + finishOutsourceIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/outsource-issue/finish?id=' + id }) + }, + + // 取消外协发料单 + cancelOutsourceIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/outsource-issue/cancel?id=' + id }) + }, + + // 校验外协发料单数量 + checkOutsourceIssueQuantity: async (id: number) => { + return await request.get({ url: '/mes/wm/outsource-issue/check-quantity?id=' + id }) + }, + + // 导出外协发料单 Excel + exportOutsourceIssue: async (params: any) => { + return await request.download({ url: '/mes/wm/outsource-issue/export-excel', params }) + } +} diff --git a/src/api/mes/wm/outsourceissue/line/index.ts b/src/api/mes/wm/outsourceissue/line/index.ts new file mode 100644 index 000000000..f00c8e861 --- /dev/null +++ b/src/api/mes/wm/outsourceissue/line/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +// MES 外协发料单行 VO +export interface WmOutsourceIssueLineVO { + id: number + issueId: number + materialStockId: number + itemId: number + itemCode: string + itemName: string + specification: string + unitMeasureName: string + quantity: number + batchId: number + batchCode: string + remark: string + createTime: string +} + +// MES 外协发料单行 API +export const WmOutsourceIssueLineApi = { + // 查询外协发料单行分页 + getOutsourceIssueLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/outsource-issue-line/page', params }) + }, + + // 查询外协发料单行详情 + getOutsourceIssueLine: async (id: number) => { + return await request.get({ url: '/mes/wm/outsource-issue-line/get?id=' + id }) + }, + + // 新增外协发料单行 + createOutsourceIssueLine: async (data: WmOutsourceIssueLineVO) => { + return await request.post({ url: '/mes/wm/outsource-issue-line/create', data }) + }, + + // 修改外协发料单行 + updateOutsourceIssueLine: async (data: WmOutsourceIssueLineVO) => { + return await request.put({ url: '/mes/wm/outsource-issue-line/update', data }) + }, + + // 删除外协发料单行 + deleteOutsourceIssueLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/outsource-issue-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/outsourcereceipt/detail/index.ts b/src/api/mes/wm/outsourcereceipt/detail/index.ts new file mode 100644 index 000000000..92bafcc6d --- /dev/null +++ b/src/api/mes/wm/outsourcereceipt/detail/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +// MES 委外收货明细 VO +export interface WmOutsourceReceiptDetailVO { + id: number + lineId: number + receiptId: number + itemId: number + itemCode: string + itemName: string + batchCode: string + quantity: number + locationId: number + locationName: string + remark: string + createTime: string +} + +// MES 委外收货明细 API +export const WmOutsourceReceiptDetailApi = { + // 查询委外收货明细列表(按行编号) + getOutsourceReceiptDetailListByLineId: async (lineId: number) => { + return await request.get({ + url: '/mes/wm/outsource-receipt-detail/list-by-line', + params: { lineId } + }) + }, + + // 查询委外收货明细详情 + getOutsourceReceiptDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/outsource-receipt-detail/get?id=' + id }) + }, + + // 新增委外收货明细 + createOutsourceReceiptDetail: async (data: WmOutsourceReceiptDetailVO) => { + return await request.post({ url: '/mes/wm/outsource-receipt-detail/create', data }) + }, + + // 修改委外收货明细 + updateOutsourceReceiptDetail: async (data: WmOutsourceReceiptDetailVO) => { + return await request.put({ url: '/mes/wm/outsource-receipt-detail/update', data }) + }, + + // 删除委外收货明细 + deleteOutsourceReceiptDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/outsource-receipt-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/outsourcereceipt/index.ts b/src/api/mes/wm/outsourcereceipt/index.ts new file mode 100644 index 000000000..8d087b119 --- /dev/null +++ b/src/api/mes/wm/outsourcereceipt/index.ts @@ -0,0 +1,93 @@ +import request from '@/config/axios' + +// MES 委外收货单 VO +export interface WmOutsourceReceiptVO { + id: number + code: string + name: string + vendorId: number + vendorName: string + warehouseId: number + warehouseName: string + receiptDate: string + status: number + remark: string + createTime: string +} + +// MES 委外收货单明细 VO +export interface WmOutsourceReceiptLineVO { + id: number + receiptId: number + itemId: number + itemCode: string + itemName: string + quantity: number + unitId: number + unitName: string + remark: string +} + +// MES 委外收货单详情 VO +export interface WmOutsourceReceiptDetailVO { + id: number + lineId: number + batchCode: string + quantity: number + locationId: number + locationName: string + remark: string +} + +// MES 委外收货单 API +export const WmOutsourceReceiptApi = { + // 查询委外收货单分页 + getOutsourceReceiptPage: async (params: any) => { + return await request.get({ url: '/mes/wm/outsource-receipt/page', params }) + }, + + // 查询委外收货单详情 + getOutsourceReceipt: async (id: number) => { + return await request.get({ url: '/mes/wm/outsource-receipt/get?id=' + id }) + }, + + // 新增委外收货单 + createOutsourceReceipt: async (data: WmOutsourceReceiptVO) => { + return await request.post({ url: '/mes/wm/outsource-receipt/create', data }) + }, + + // 修改委外收货单 + updateOutsourceReceipt: async (data: WmOutsourceReceiptVO) => { + return await request.put({ url: '/mes/wm/outsource-receipt/update', data }) + }, + + // 删除委外收货单 + deleteOutsourceReceipt: async (id: number) => { + return await request.delete({ url: '/mes/wm/outsource-receipt/delete?id=' + id }) + }, + + // 提交委外收货单 + submitOutsourceReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/outsource-receipt/submit?id=' + id }) + }, + + // 入库上架 + stockOutsourceReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/outsource-receipt/stock?id=' + id }) + }, + + // 完成委外收货单 + finishOutsourceReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/outsource-receipt/finish?id=' + id }) + }, + + // 取消委外收货单 + cancelOutsourceReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/outsource-receipt/cancel?id=' + id }) + }, + + // 导出委外收货单 Excel + exportOutsourceReceipt: async (params: any) => { + return await request.download({ url: '/mes/wm/outsource-receipt/export-excel', params }) + } +} diff --git a/src/api/mes/wm/outsourcereceipt/line/index.ts b/src/api/mes/wm/outsourcereceipt/line/index.ts new file mode 100644 index 000000000..7cd0c1a9a --- /dev/null +++ b/src/api/mes/wm/outsourcereceipt/line/index.ts @@ -0,0 +1,52 @@ +import request from '@/config/axios' + +// MES 委外收货单行 VO +export interface WmOutsourceReceiptLineVO { + id: number + receiptId: number + itemId: number + itemCode: string + itemName: string + specification: string + quantity: number + unitId: number + unitName: string + batchId: number + batchCode: string + productionDate: string + expireDate: string + lotNumber: string + iqcCheck: boolean + iqcId: number + qualityStatus: number + remark: string + createTime: string +} + +// MES 委外收货单行 API +export const WmOutsourceReceiptLineApi = { + // 查询委外收货单行分页 + getOutsourceReceiptLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/outsource-receipt-line/page', params }) + }, + + // 查询委外收货单行详情 + getOutsourceReceiptLine: async (id: number) => { + return await request.get({ url: '/mes/wm/outsource-receipt-line/get?id=' + id }) + }, + + // 新增委外收货单行 + createOutsourceReceiptLine: async (data: WmOutsourceReceiptLineVO) => { + return await request.post({ url: '/mes/wm/outsource-receipt-line/create', data }) + }, + + // 修改委外收货单行 + updateOutsourceReceiptLine: async (data: WmOutsourceReceiptLineVO) => { + return await request.put({ url: '/mes/wm/outsource-receipt-line/update', data }) + }, + + // 删除委外收货单行 + deleteOutsourceReceiptLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/outsource-receipt-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/packages/index.ts b/src/api/mes/wm/packages/index.ts new file mode 100644 index 000000000..7f9e904a2 --- /dev/null +++ b/src/api/mes/wm/packages/index.ts @@ -0,0 +1,75 @@ +import request from '@/config/axios' + +// 装箱单 VO +export interface WmPackageVO { + id: number + code: string + parentId?: number + packageDate: number + salesOrderCode?: string + invoiceCode?: string + clientId?: number + clientCode?: string + clientName?: string + clientNickname?: string + length?: number + width?: number + height?: number + sizeUnitId?: number + sizeUnitName?: string + netWeight?: number + grossWeight?: number + weightUnitId?: number + weightUnitName?: string + inspectorUserId?: number + inspectorName?: string + status: number + remark?: string + createTime: string +} + +// 装箱单 API +export const WmPackageApi = { + // 创建装箱单 + createPackage: async (data: WmPackageVO) => { + return await request.post({ url: '/mes/wm/package/create', data }) + }, + + // 修改装箱单 + updatePackage: async (data: WmPackageVO) => { + return await request.put({ url: '/mes/wm/package/update', data }) + }, + + // 删除装箱单 + deletePackage: async (id: number) => { + return await request.delete({ url: '/mes/wm/package/delete?id=' + id }) + }, + + // 获取装箱单详情 + getPackage: async (id: number) => { + return await request.get({ url: '/mes/wm/package/get?id=' + id }) + }, + + // 分页查询装箱单 + getPackagePage: async (params: any) => { + return await request.get({ url: '/mes/wm/package/page', params }) + }, + + // 完成装箱单 + finishPackage: async (id: number) => { + return await request.put({ url: '/mes/wm/package/finish?id=' + id }) + }, + + // 添加子箱 + addChildPackage: async (parentId: number, childId: number) => { + return await request.put({ + url: '/mes/wm/package/add-child-package', + params: { parentId, childId } + }) + }, + + // 移除子箱 + removeChildPackage: async (childId: number) => { + return await request.put({ url: '/mes/wm/package/remove-child-package?childId=' + childId }) + } +} diff --git a/src/api/mes/wm/packages/line/index.ts b/src/api/mes/wm/packages/line/index.ts new file mode 100644 index 000000000..a222ff91f --- /dev/null +++ b/src/api/mes/wm/packages/line/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +export interface WmPackageLineVO { + id?: number + packageId: number + materialStockId?: number + itemId: number + itemCode?: string + itemName?: string + specification?: string + unitMeasureName?: string + quantity: number + workOrderId?: number + workOrderCode?: string + batchCode?: string + expireDate?: number + remark?: string + createTime?: string +} + +// 装箱明细 API +export const WmPackageLineApi = { + // 创建装箱明细 + createPackageLine: async (data: WmPackageLineVO) => { + return await request.post({ url: '/mes/wm/package-line/create', data }) + }, + + // 修改装箱明细 + updatePackageLine: async (data: WmPackageLineVO) => { + return await request.put({ url: '/mes/wm/package-line/update', data }) + }, + + // 删除装箱明细 + deletePackageLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/package-line/delete?id=' + id }) + }, + + // 获取装箱明细详情 + getPackageLine: async (id: number) => { + return await request.get({ url: '/mes/wm/package-line/get?id=' + id }) + }, + + // 分页查询装箱明细 + getPackageLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/package-line/page', params }) + } + // DONE @AI:这个接口不需要;是不是前后端都删除掉 +} diff --git a/src/api/mes/wm/productissue/detail/index.ts b/src/api/mes/wm/productissue/detail/index.ts new file mode 100644 index 000000000..ec7efb725 --- /dev/null +++ b/src/api/mes/wm/productissue/detail/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +// MES 领料出库明细 VO +export interface WmProductIssueDetailVO { + id?: number + issueId: number + lineId: number + materialStockId: number + itemId: number + quantity: number + batchId?: number + batchCode?: string + warehouseId: number + warehouseName?: string + locationId?: number + locationName?: string + areaId?: number + areaName?: string + remark?: string +} + +// MES 领料出库明细 API +export const WmProductIssueDetailApi = { + // 查询领料出库明细列表(按行编号) + getProductIssueDetailListByLineId: async (lineId: number) => { + return await request.get({ + url: '/mes/wm/product-issue-detail/list-by-line', + params: { lineId } + }) + }, + + // 查询领料出库明细详情 + getProductIssueDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/product-issue-detail/get?id=' + id }) + }, + + // 新增领料出库明细 + createProductIssueDetail: async (data: WmProductIssueDetailVO) => { + return await request.post({ url: '/mes/wm/product-issue-detail/create', data }) + }, + + // 修改领料出库明细 + updateProductIssueDetail: async (data: WmProductIssueDetailVO) => { + return await request.put({ url: '/mes/wm/product-issue-detail/update', data }) + }, + + // 删除领料出库明细 + deleteProductIssueDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/product-issue-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/productissue/index.ts b/src/api/mes/wm/productissue/index.ts new file mode 100644 index 000000000..83747a536 --- /dev/null +++ b/src/api/mes/wm/productissue/index.ts @@ -0,0 +1,75 @@ +import request from '@/config/axios' + +// MES 领料出库单 VO +export interface WmProductIssueVO { + id?: number + code?: string + name: string + workstationId?: number + workstationCode?: string + workstationName?: string + workOrderId?: number + workOrderCode?: string + requiredTime?: string + status?: number + remark?: string + createTime?: string +} + +// MES 领料出库单 API +export const WmProductIssueApi = { + // 查询领料出库单分页 + getProductIssuePage: async (params: any) => { + return await request.get({ url: '/mes/wm/product-issue/page', params }) + }, + + // 查询领料出库单详情 + getProductIssue: async (id: number) => { + return await request.get({ url: '/mes/wm/product-issue/get?id=' + id }) + }, + + // 新增领料出库单 + createProductIssue: async (data: WmProductIssueVO) => { + return await request.post({ url: '/mes/wm/product-issue/create', data }) + }, + + // 修改领料出库单 + updateProductIssue: async (data: WmProductIssueVO) => { + return await request.put({ url: '/mes/wm/product-issue/update', data }) + }, + + // 删除领料出库单 + deleteProductIssue: async (id: number) => { + return await request.delete({ url: '/mes/wm/product-issue/delete?id=' + id }) + }, + + // 提交领料出库单(进入审批流程) + submitProductIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/product-issue/submit?id=' + id }) + }, + + // 执行拣货 + stockProductIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/product-issue/stock?id=' + id }) + }, + + // 取消领料出库单 + cancelProductIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/product-issue/cancel?id=' + id }) + }, + + // 完成领料出库单(执行出库) + finishProductIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/product-issue/finish?id=' + id }) + }, + + // 校验领料出库单数量(每行明细数量之和是否等于行领料数量) + checkProductIssueQuantity: async (id: number) => { + return await request.get({ url: '/mes/wm/product-issue/check-quantity?id=' + id }) + }, + + // 导出领料出库单 Excel + exportProductIssue: async (params: any) => { + return await request.download({ url: '/mes/wm/product-issue/export-excel', params }) + } +} diff --git a/src/api/mes/wm/productissue/line/index.ts b/src/api/mes/wm/productissue/line/index.ts new file mode 100644 index 000000000..9a808d4f5 --- /dev/null +++ b/src/api/mes/wm/productissue/line/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +// MES 领料出库单行 VO +export interface WmProductIssueLineVO { + id?: number + issueId: number + itemId: number + itemCode?: string + itemName?: string + specification?: string + unitMeasureName?: string + quantity: number + batchId?: number + remark?: string +} + +// MES 领料出库单行 API +export const WmProductIssueLineApi = { + // 查询领料出库单行分页 + getProductIssueLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/product-issue-line/page', params }) + }, + + // 查询领料出库单行详情 + getProductIssueLine: async (id: number) => { + return await request.get({ url: '/mes/wm/product-issue-line/get?id=' + id }) + }, + + // 新增领料出库单行 + createProductIssueLine: async (data: WmProductIssueLineVO) => { + return await request.post({ url: '/mes/wm/product-issue-line/create', data }) + }, + + // 修改领料出库单行 + updateProductIssueLine: async (data: WmProductIssueLineVO) => { + return await request.put({ url: '/mes/wm/product-issue-line/update', data }) + }, + + // 删除领料出库单行 + deleteProductIssueLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/product-issue-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/productproduce/line/index.ts b/src/api/mes/wm/productproduce/line/index.ts new file mode 100644 index 000000000..2918a1b5e --- /dev/null +++ b/src/api/mes/wm/productproduce/line/index.ts @@ -0,0 +1,9 @@ +import request from '@/config/axios' + +/** 获取产品产出行分页 */ +export const getProductProduceLinePage = (params: any) => { + return request.get({ + url: '/mes/wm/product-produce-line/page', + params + }) +} diff --git a/src/api/mes/wm/productreceipt/detail/index.ts b/src/api/mes/wm/productreceipt/detail/index.ts new file mode 100644 index 000000000..3eee4fc4b --- /dev/null +++ b/src/api/mes/wm/productreceipt/detail/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +// MES 产品入库单明细 VO +export interface WmProductReceiptDetailVO { + id: number + lineId: number + receiptId: number + itemId: number + itemCode: string + quantity: number + batchId: number + warehouseId: number + warehouseName: string + locationId: number + locationName: string + areaId: number + areaName: string + remark: string + createTime: string +} + +// MES 产品入库单明细 API +export const WmProductReceiptDetailApi = { + // 查询产品入库单明细列表 + getProductReceiptDetailList: async (params: any) => { + return await request.get({ url: '/mes/wm/product-receipt-detail/list', params }) + }, + + // 根据行项目ID查询产品入库单明细列表 + getProductReceiptDetailListByLineId: async (lineId: number) => { + return await request.get({ + url: '/mes/wm/product-receipt-detail/list-by-line', + params: { lineId } + }) + }, + + // 查询产品入库单明细详情 + getProductReceiptDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/product-receipt-detail/get?id=' + id }) + }, + + // 新增产品入库单明细 + createProductReceiptDetail: async (data: WmProductReceiptDetailVO) => { + return await request.post({ url: '/mes/wm/product-receipt-detail/create', data }) + }, + + // 修改产品入库单明细 + updateProductReceiptDetail: async (data: WmProductReceiptDetailVO) => { + return await request.put({ url: '/mes/wm/product-receipt-detail/update', data }) + }, + + // 删除产品入库单明细 + deleteProductReceiptDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/product-receipt-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/productreceipt/index.ts b/src/api/mes/wm/productreceipt/index.ts new file mode 100644 index 000000000..a91d9c21b --- /dev/null +++ b/src/api/mes/wm/productreceipt/index.ts @@ -0,0 +1,77 @@ +import request from '@/config/axios' + +// MES 产品入库单 VO +export interface WmProductReceiptVO { + id: number + code: string + name: string + workOrderId: number + workOrderCode: string + itemId: number + itemCode: string + itemName: string + specification: string + unitMeasureName: string + receiptDate: string + status: number + remark: string + createTime: string +} + +// MES 产品入库单 API +export const WmProductReceiptApi = { + // 查询产品入库单分页 + getProductReceiptPage: async (params: any) => { + return await request.get({ url: '/mes/wm/product-receipt/page', params }) + }, + + // 查询产品入库单详情 + getProductReceipt: async (id: number) => { + return await request.get({ url: '/mes/wm/product-receipt/get?id=' + id }) + }, + + // 新增产品入库单 + createProductReceipt: async (data: WmProductReceiptVO) => { + return await request.post({ url: '/mes/wm/product-receipt/create', data }) + }, + + // 修改产品入库单 + updateProductReceipt: async (data: WmProductReceiptVO) => { + return await request.put({ url: '/mes/wm/product-receipt/update', data }) + }, + + // 删除产品入库单 + deleteProductReceipt: async (id: number) => { + return await request.delete({ url: '/mes/wm/product-receipt/delete?id=' + id }) + }, + + // 提交产品入库单 + submitProductReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/product-receipt/submit?id=' + id }) + }, + + // 执行上架 + stockProductReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/product-receipt/stock?id=' + id }) + }, + + // 执行入库 + finishProductReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/product-receipt/finish?id=' + id }) + }, + + // 取消产品入库单 + cancelProductReceipt: async (id: number) => { + return await request.put({ url: '/mes/wm/product-receipt/cancel?id=' + id }) + }, + + // 校验产品入库单明细数量 + checkProductReceiptQuantity: async (id: number) => { + return await request.get({ url: '/mes/wm/product-receipt/check-quantity?id=' + id }) + }, + + // 导出产品入库单 Excel + exportProductReceipt: async (params: any) => { + return await request.download({ url: '/mes/wm/product-receipt/export-excel', params }) + } +} diff --git a/src/api/mes/wm/productreceipt/line/index.ts b/src/api/mes/wm/productreceipt/line/index.ts new file mode 100644 index 000000000..d69617e9e --- /dev/null +++ b/src/api/mes/wm/productreceipt/line/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +// MES 产品入库单行 VO +export interface WmProductReceiptLineVO { + id: number + receiptId: number + itemId: number + materialStockId: number + itemCode: string + itemName: string + specification: string + unitMeasureName: string + quantity: number + batchId: number + batchCode: string + remark: string + createTime: string +} + +// MES 产品入库单行 API +export const WmProductReceiptLineApi = { + // 查询产品入库单行分页 + getProductReceiptLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/product-receipt-line/page', params }) + }, + + // 查询产品入库单行详情 + getProductReceiptLine: async (id: number) => { + return await request.get({ url: '/mes/wm/product-receipt-line/get?id=' + id }) + }, + + // 新增产品入库单行 + createProductReceiptLine: async (data: WmProductReceiptLineVO) => { + return await request.post({ url: '/mes/wm/product-receipt-line/create', data }) + }, + + // 修改产品入库单行 + updateProductReceiptLine: async (data: WmProductReceiptLineVO) => { + return await request.put({ url: '/mes/wm/product-receipt-line/update', data }) + }, + + // 删除产品入库单行 + deleteProductReceiptLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/product-receipt-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/productsales/detail/index.ts b/src/api/mes/wm/productsales/detail/index.ts new file mode 100644 index 000000000..817bfa1ea --- /dev/null +++ b/src/api/mes/wm/productsales/detail/index.ts @@ -0,0 +1,52 @@ +import request from '@/config/axios' + +// MES 销售出库明细 VO +export interface WmProductSalesDetailVO { + id: number + lineId: number + salesId: number + itemId: number + itemCode: string + itemName: string + quantity: number + batchId: number + warehouseId: number + warehouseName: string + locationId: number + locationName: string + areaId: number + areaName: string + remark: string + createTime: string +} + +// MES 销售出库明细 API +export const WmProductSalesDetailApi = { + // 查询销售出库明细列表(按行编号) + getProductSalesDetailListByLineId: async (lineId: number) => { + return await request.get({ + url: '/mes/wm/product-sales-detail/list-by-line', + params: { lineId } + }) + }, + + // 查询销售出库明细详情 + getProductSalesDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/product-sales-detail/get?id=' + id }) + }, + + // 新增销售出库明细 + createProductSalesDetail: async (data: WmProductSalesDetailVO) => { + return await request.post({ url: '/mes/wm/product-sales-detail/create', data }) + }, + + // 修改销售出库明细 + updateProductSalesDetail: async (data: WmProductSalesDetailVO) => { + return await request.put({ url: '/mes/wm/product-sales-detail/update', data }) + }, + + // 删除销售出库明细 + deleteProductSalesDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/product-sales-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/productsales/index.ts b/src/api/mes/wm/productsales/index.ts new file mode 100644 index 000000000..e5a1c2054 --- /dev/null +++ b/src/api/mes/wm/productsales/index.ts @@ -0,0 +1,80 @@ +import request from '@/config/axios' + +// MES 销售出库单 VO +export interface WmProductSalesVO { + id: number + code: string + name: string + clientId: number + clientName: string + salesOrderCode: string + shipmentDate: string + contactName: string + contactTelephone: string + status: number + remark: string + createTime: string +} + +// MES 销售出库单 API +export const WmProductSalesApi = { + // 查询销售出库单分页 + getProductSalesPage: async (params: any) => { + return await request.get({ url: '/mes/wm/product-sales/page', params }) + }, + + // 查询销售出库单详情 + getProductSales: async (id: number) => { + return await request.get({ url: '/mes/wm/product-sales/get?id=' + id }) + }, + + // 新增销售出库单 + createProductSales: async (data: WmProductSalesVO) => { + return await request.post({ url: '/mes/wm/product-sales/create', data }) + }, + + // 修改销售出库单 + updateProductSales: async (data: WmProductSalesVO) => { + return await request.put({ url: '/mes/wm/product-sales/update', data }) + }, + + // 删除销售出库单 + deleteProductSales: async (id: number) => { + return await request.delete({ url: '/mes/wm/product-sales/delete?id=' + id }) + }, + + // 提交销售出库单 + submitProductSales: async (id: number) => { + return await request.put({ url: '/mes/wm/product-sales/submit?id=' + id }) + }, + + // 校验销售出库单数量 + checkProductSalesQuantity: async (id: number) => { + return await request.get({ url: '/mes/wm/product-sales/check-quantity?id=' + id }) + }, + + // 执行拣货 + stockProductSales: async (id: number) => { + return await request.put({ url: '/mes/wm/product-sales/stock?id=' + id }) + }, + + // 填写运单 + shippingProductSales: async (data: WmProductSalesVO) => { + return await request.put({ url: '/mes/wm/product-sales/shipping', data }) + }, + + // 执行出库 + finishProductSales: async (id: number) => { + return await request.put({ url: '/mes/wm/product-sales/finish?id=' + id }) + }, + + // 取消销售出库单 + cancelProductSales: async (id: number) => { + return await request.put({ url: '/mes/wm/product-sales/cancel?id=' + id }) + }, + + // 导出销售出库单 Excel + exportProductSales: async (params: any) => { + return await request.download({ url: '/mes/wm/product-sales/export-excel', params }) + } +} diff --git a/src/api/mes/wm/productsales/line/index.ts b/src/api/mes/wm/productsales/line/index.ts new file mode 100644 index 000000000..bd8354080 --- /dev/null +++ b/src/api/mes/wm/productsales/line/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +// MES 销售出库单行 VO +export interface WmProductSalesLineVO { + id: number + salesId: number + noticeLineId: number + itemId: number + itemCode: string + itemName: string + quantity: number + pickedQuantity: number + batchId: number + batchCode: string + oqcCheckFlag: boolean + remark: string + createTime: string +} + +// MES 销售出库单行 API +export const WmProductSalesLineApi = { + // 查询销售出库单行分页 + getProductSalesLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/product-sales-line/page', params }) + }, + + // 查询销售出库单行详情 + getProductSalesLine: async (id: number) => { + return await request.get({ url: '/mes/wm/product-sales-line/get?id=' + id }) + }, + + // 新增销售出库单行 + createProductSalesLine: async (data: WmProductSalesLineVO) => { + return await request.post({ url: '/mes/wm/product-sales-line/create', data }) + }, + + // 修改销售出库单行 + updateProductSalesLine: async (data: WmProductSalesLineVO) => { + return await request.put({ url: '/mes/wm/product-sales-line/update', data }) + }, + + // 删除销售出库单行 + deleteProductSalesLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/product-sales-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/returnissue/detail/index.ts b/src/api/mes/wm/returnissue/detail/index.ts new file mode 100644 index 000000000..0bb9e114d --- /dev/null +++ b/src/api/mes/wm/returnissue/detail/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +// MES 生产退料明细 VO +export interface WmReturnIssueDetailVO { + id?: number + issueId: number + lineId: number + materialStockId: number + itemId: number + quantity: number + batchId?: number + batchCode?: string + warehouseId: number + warehouseName?: string + locationId?: number + locationName?: string + areaId?: number + areaName?: string + remark?: string +} + +// MES 生产退料明细 API +export const WmReturnIssueDetailApi = { + // 查询生产退料明细列表(按行编号) + getReturnIssueDetailListByLineId: async (lineId: number) => { + return await request.get({ + url: '/mes/wm/return-issue-detail/list-by-line', + params: { lineId } + }) + }, + + // 查询生产退料明细详情 + getReturnIssueDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/return-issue-detail/get?id=' + id }) + }, + + // 新增生产退料明细 + createReturnIssueDetail: async (data: WmReturnIssueDetailVO) => { + return await request.post({ url: '/mes/wm/return-issue-detail/create', data }) + }, + + // 修改生产退料明细 + updateReturnIssueDetail: async (data: WmReturnIssueDetailVO) => { + return await request.put({ url: '/mes/wm/return-issue-detail/update', data }) + }, + + // 删除生产退料明细 + deleteReturnIssueDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-issue-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/returnissue/index.ts b/src/api/mes/wm/returnissue/index.ts new file mode 100644 index 000000000..aad372a9f --- /dev/null +++ b/src/api/mes/wm/returnissue/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +// MES 生产退料单 VO +export interface WmReturnIssueVO { + id?: number + code?: string + name: string + workstationId?: number + workstationName?: string + workOrderId?: number + workOrderCode?: string + type?: number + returnDate?: string + status?: number + remark?: string + createTime?: string +} + +// MES 生产退料单 API +export const WmReturnIssueApi = { + // 查询生产退料单分页 + getReturnIssuePage: async (params: any) => { + return await request.get({ url: '/mes/wm/return-issue/page', params }) + }, + + // 查询生产退料单详情 + getReturnIssue: async (id: number) => { + return await request.get({ url: '/mes/wm/return-issue/get?id=' + id }) + }, + + // 新增生产退料单 + createReturnIssue: async (data: WmReturnIssueVO) => { + return await request.post({ url: '/mes/wm/return-issue/create', data }) + }, + + // 修改生产退料单 + updateReturnIssue: async (data: WmReturnIssueVO) => { + return await request.put({ url: '/mes/wm/return-issue/update', data }) + }, + + // 删除生产退料单 + deleteReturnIssue: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-issue/delete?id=' + id }) + }, + + // 提交生产退料单(草稿 → 待检验/待上架) + submitReturnIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/return-issue/submit?id=' + id }) + }, + + // 入库上架 + stockReturnIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/return-issue/stock?id=' + id }) + }, + + // 取消生产退料单 + cancelReturnIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/return-issue/cancel?id=' + id }) + }, + + // 完成生产退料单 + finishReturnIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/return-issue/finish?id=' + id }) + }, + + // 导出生产退料单 Excel + exportReturnIssue: async (params: any) => { + return await request.download({ url: '/mes/wm/return-issue/export-excel', params }) + } +} diff --git a/src/api/mes/wm/returnissue/line/index.ts b/src/api/mes/wm/returnissue/line/index.ts new file mode 100644 index 000000000..342e29f23 --- /dev/null +++ b/src/api/mes/wm/returnissue/line/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +// MES 生产退料单行 VO +export interface WmReturnIssueLineVO { + id?: number + issueId: number + itemId: number + itemCode?: string + itemName?: string + specification?: string + unitMeasureName?: string + materialStockId?: number + quantity: number + batchId?: number + batchCode?: string + rqcCheckFlag?: boolean + qualityStatus?: number + rqcId?: number + remark?: string +} + +// MES 生产退料单行 API +export const WmReturnIssueLineApi = { + // 查询生产退料单行分页 + getReturnIssueLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/return-issue-line/page', params }) + }, + + // 查询生产退料单行详情 + getReturnIssueLine: async (id: number) => { + return await request.get({ url: '/mes/wm/return-issue-line/get?id=' + id }) + }, + + // 新增生产退料单行 + createReturnIssueLine: async (data: WmReturnIssueLineVO) => { + return await request.post({ url: '/mes/wm/return-issue-line/create', data }) + }, + + // 修改生产退料单行 + updateReturnIssueLine: async (data: WmReturnIssueLineVO) => { + return await request.put({ url: '/mes/wm/return-issue-line/update', data }) + }, + + // 删除生产退料单行 + deleteReturnIssueLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-issue-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/returnsales/detail/index.ts b/src/api/mes/wm/returnsales/detail/index.ts new file mode 100644 index 000000000..293c2b65c --- /dev/null +++ b/src/api/mes/wm/returnsales/detail/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +// MES 销售退货明细 VO +export interface WmReturnSalesDetailVO { + id?: number + returnId: number + lineId: number + itemId: number + quantity: number + batchId?: number + batchCode?: string + warehouseId: number + warehouseName?: string + locationId?: number + locationName?: string + areaId?: number + areaName?: string + remark?: string +} + +// MES 销售退货明细 API +export const WmReturnSalesDetailApi = { + // 查询销售退货明细列表(按行编号) + getReturnSalesDetailListByLineId: async (lineId: number) => { + return await request.get({ + url: '/mes/wm/return-sales-detail/list-by-line', + params: { lineId } + }) + }, + + // 查询销售退货明细详情 + getReturnSalesDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/return-sales-detail/get?id=' + id }) + }, + + // 新增销售退货明细 + createReturnSalesDetail: async (data: WmReturnSalesDetailVO) => { + return await request.post({ url: '/mes/wm/return-sales-detail/create', data }) + }, + + // 修改销售退货明细 + updateReturnSalesDetail: async (data: WmReturnSalesDetailVO) => { + return await request.put({ url: '/mes/wm/return-sales-detail/update', data }) + }, + + // 删除销售退货明细 + deleteReturnSalesDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-sales-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/returnsales/index.ts b/src/api/mes/wm/returnsales/index.ts new file mode 100644 index 000000000..500b9b755 --- /dev/null +++ b/src/api/mes/wm/returnsales/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +// MES 销售退货单 VO +export interface WmReturnSalesVO { + id?: number + code?: string + name: string + salesOrderCode?: string + clientId?: number + clientCode?: string + clientName?: string + returnDate?: string + returnReason?: string + status?: number + remark?: string + createTime?: string +} + +// MES 销售退货单 API +export const WmReturnSalesApi = { + // 查询销售退货单分页 + getReturnSalesPage: async (params: any) => { + return await request.get({ url: '/mes/wm/return-sales/page', params }) + }, + + // 查询销售退货单详情 + getReturnSales: async (id: number) => { + return await request.get({ url: '/mes/wm/return-sales/get?id=' + id }) + }, + + // 新增销售退货单 + createReturnSales: async (data: WmReturnSalesVO) => { + return await request.post({ url: '/mes/wm/return-sales/create', data }) + }, + + // 修改销售退货单 + updateReturnSales: async (data: WmReturnSalesVO) => { + return await request.put({ url: '/mes/wm/return-sales/update', data }) + }, + + // 删除销售退货单 + deleteReturnSales: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-sales/delete?id=' + id }) + }, + + // 提交销售退货单 + submitReturnSales: async (id: number) => { + return await request.put({ url: '/mes/wm/return-sales/submit?id=' + id }) + }, + + // 执行退货 + finishReturnSales: async (id: number) => { + return await request.put({ url: '/mes/wm/return-sales/finish?id=' + id }) + }, + + // 执行上架 + stockReturnSales: async (id: number) => { + return await request.put({ url: '/mes/wm/return-sales/stock?id=' + id }) + }, + + // 取消销售退货单 + cancelReturnSales: async (id: number) => { + return await request.put({ url: '/mes/wm/return-sales/cancel?id=' + id }) + }, + + // 导出销售退货单 Excel + exportReturnSales: async (params: any) => { + return await request.download({ url: '/mes/wm/return-sales/export-excel', params }) + } +} diff --git a/src/api/mes/wm/returnsales/line/index.ts b/src/api/mes/wm/returnsales/line/index.ts new file mode 100644 index 000000000..37fe4a2ff --- /dev/null +++ b/src/api/mes/wm/returnsales/line/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +// MES 销售退货单行 VO +export interface WmReturnSalesLineVO { + id?: number + returnId: number + itemId: number + itemCode?: string + itemName?: string + specification?: string + unitMeasureName?: string + quantity: number + batchId: number + batchCode: string + qcFlag: boolean + rqcId: number + qualityStatus?: number + remark?: string +} + +// MES 销售退货单行 API +export const WmReturnSalesLineApi = { + // 查询销售退货单行分页 + getReturnSalesLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/return-sales-line/page', params }) + }, + + // 查询销售退货单行详情 + getReturnSalesLine: async (id: number) => { + return await request.get({ url: '/mes/wm/return-sales-line/get?id=' + id }) + }, + + // 新增销售退货单行 + createReturnSalesLine: async (data: WmReturnSalesLineVO) => { + return await request.post({ url: '/mes/wm/return-sales-line/create', data }) + }, + + // 修改销售退货单行 + updateReturnSalesLine: async (data: WmReturnSalesLineVO) => { + return await request.put({ url: '/mes/wm/return-sales-line/update', data }) + }, + + // 删除销售退货单行 + deleteReturnSalesLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-sales-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/returnvendor/detail/index.ts b/src/api/mes/wm/returnvendor/detail/index.ts new file mode 100644 index 000000000..7d90d626d --- /dev/null +++ b/src/api/mes/wm/returnvendor/detail/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +// MES 供应商退货明细 VO +export interface WmReturnVendorDetailVO { + id?: number + returnId: number + lineId: number + materialStockId?: number + itemId: number + quantity: number + batchId?: number + batchCode?: string + warehouseId: number + warehouseName?: string + locationId?: number + locationName?: string + areaId?: number + areaName?: string + remark?: string +} + +// MES 供应商退货明细 API +export const WmReturnVendorDetailApi = { + // 查询供应商退货明细列表(按行编号) + getReturnVendorDetailListByLineId: async (lineId: number) => { + return await request.get({ + url: '/mes/wm/return-vendor-detail/list-by-line', + params: { lineId } + }) + }, + + // 查询供应商退货明细详情 + getReturnVendorDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/return-vendor-detail/get?id=' + id }) + }, + + // 新增供应商退货明细 + createReturnVendorDetail: async (data: WmReturnVendorDetailVO) => { + return await request.post({ url: '/mes/wm/return-vendor-detail/create', data }) + }, + + // 修改供应商退货明细 + updateReturnVendorDetail: async (data: WmReturnVendorDetailVO) => { + return await request.put({ url: '/mes/wm/return-vendor-detail/update', data }) + }, + + // 删除供应商退货明细 + deleteReturnVendorDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-vendor-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/returnvendor/index.ts b/src/api/mes/wm/returnvendor/index.ts new file mode 100644 index 000000000..830d53473 --- /dev/null +++ b/src/api/mes/wm/returnvendor/index.ts @@ -0,0 +1,78 @@ +import request from '@/config/axios' + +// MES 供应商退货单 VO +export interface WmReturnVendorVO { + id?: number + code?: string + name: string + purchaseOrderCode?: string + vendorId?: number + vendorCode?: string + vendorName?: string + vendorNickname?: string + returnDate?: string + returnReason?: string + transportCode?: string + transportTelephone?: string + status?: number + remark?: string + createTime?: string +} + +// MES 供应商退货单 API +export const WmReturnVendorApi = { + // 查询供应商退货单分页 + getReturnVendorPage: async (params: any) => { + return await request.get({ url: '/mes/wm/return-vendor/page', params }) + }, + + // 查询供应商退货单详情 + getReturnVendor: async (id: number) => { + return await request.get({ url: '/mes/wm/return-vendor/get?id=' + id }) + }, + + // 新增供应商退货单 + createReturnVendor: async (data: WmReturnVendorVO) => { + return await request.post({ url: '/mes/wm/return-vendor/create', data }) + }, + + // 修改供应商退货单 + updateReturnVendor: async (data: WmReturnVendorVO) => { + return await request.put({ url: '/mes/wm/return-vendor/update', data }) + }, + + // 删除供应商退货单 + deleteReturnVendor: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-vendor/delete?id=' + id }) + }, + + // 提交供应商退货单 + submitReturnVendor: async (id: number) => { + return await request.put({ url: '/mes/wm/return-vendor/submit?id=' + id }) + }, + + // 执行拣货 + stockReturnVendor: async (id: number) => { + return await request.put({ url: '/mes/wm/return-vendor/stock?id=' + id }) + }, + + // 取消供应商退货单 + cancelReturnVendor: async (id: number) => { + return await request.put({ url: '/mes/wm/return-vendor/cancel?id=' + id }) + }, + + // 完成供应商退货单(执行退货) + finishReturnVendor: async (id: number) => { + return await request.put({ url: '/mes/wm/return-vendor/finish?id=' + id }) + }, + + // 校验供应商退货单数量(每行明细数量之和是否等于行退货数量) + checkReturnVendorQuantity: async (id: number) => { + return await request.get({ url: '/mes/wm/return-vendor/check-quantity?id=' + id }) + }, + + // 导出供应商退货单 Excel + exportReturnVendor: async (params: any) => { + return await request.download({ url: '/mes/wm/return-vendor/export-excel', params }) + } +} diff --git a/src/api/mes/wm/returnvendor/line/index.ts b/src/api/mes/wm/returnvendor/line/index.ts new file mode 100644 index 000000000..8e7ac688c --- /dev/null +++ b/src/api/mes/wm/returnvendor/line/index.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +// MES 供应商退货单行 VO +export interface WmReturnVendorLineVO { + id?: number + returnId: number + itemId: number + itemCode?: string + itemName?: string + specification?: string + unitMeasureName?: string + quantity: number + batchId?: number + batchCode?: string + remark?: string +} + +// MES 供应商退货单行 API +export const WmReturnVendorLineApi = { + // 查询供应商退货单行分页 + getReturnVendorLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/return-vendor-line/page', params }) + }, + + // 查询供应商退货单行详情 + getReturnVendorLine: async (id: number) => { + return await request.get({ url: '/mes/wm/return-vendor-line/get?id=' + id }) + }, + + // 新增供应商退货单行 + createReturnVendorLine: async (data: WmReturnVendorLineVO) => { + return await request.post({ url: '/mes/wm/return-vendor-line/create', data }) + }, + + // 修改供应商退货单行 + updateReturnVendorLine: async (data: WmReturnVendorLineVO) => { + return await request.put({ url: '/mes/wm/return-vendor-line/update', data }) + }, + + // 删除供应商退货单行 + deleteReturnVendorLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-vendor-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/salesnotice/index.ts b/src/api/mes/wm/salesnotice/index.ts new file mode 100644 index 000000000..d4ee52751 --- /dev/null +++ b/src/api/mes/wm/salesnotice/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +// MES 发货通知单 VO +export interface WmSalesNoticeVO { + id: number + code: string + name: string + salesOrderCode: string + clientId: number + clientCode: string + clientName: string + salesDate: string + recipientName: string + recipientTelephone: string + recipientAddress: string + status: number + remark: string + createTime: string +} + +// MES 发货通知单 API +export const WmSalesNoticeApi = { + // 查询发货通知单分页 + getSalesNoticePage: async (params: any) => { + return await request.get({ url: '/mes/wm/sales-notice/page', params }) + }, + + // 查询发货通知单详情 + getSalesNotice: async (id: number) => { + return await request.get({ url: '/mes/wm/sales-notice/get?id=' + id }) + }, + + // 新增发货通知单 + createSalesNotice: async (data: WmSalesNoticeVO) => { + return await request.post({ url: '/mes/wm/sales-notice/create', data }) + }, + + // 修改发货通知单 + updateSalesNotice: async (data: WmSalesNoticeVO) => { + return await request.put({ url: '/mes/wm/sales-notice/update', data }) + }, + + // 删除发货通知单 + deleteSalesNotice: async (id: number) => { + return await request.delete({ url: '/mes/wm/sales-notice/delete?id=' + id }) + }, + + // 提交发货通知单 + submitSalesNotice: async (id: number) => { + return await request.put({ url: '/mes/wm/sales-notice/submit?id=' + id }) + }, + + // 导出发货通知单 Excel + exportSalesNotice: async (params: any) => { + return await request.download({ url: '/mes/wm/sales-notice/export-excel', params }) + } +} diff --git a/src/api/mes/wm/salesnotice/line/index.ts b/src/api/mes/wm/salesnotice/line/index.ts new file mode 100644 index 000000000..70055cb19 --- /dev/null +++ b/src/api/mes/wm/salesnotice/line/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +// MES 发货通知单行 VO +export interface WmSalesNoticeLineVO { + id: number + noticeId: number + itemId: number + itemCode: string + itemName: string + specification: string + unitMeasureName: string + batchId: number + batchCode: string + quantity: number + oqcCheckFlag: boolean + remark: string + createTime: string +} + +// MES 发货通知单行 API +export const WmSalesNoticeLineApi = { + // 查询发货通知单行分页 + getSalesNoticeLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/sales-notice-line/page', params }) + }, + + // 查询发货通知单行详情 + getSalesNoticeLine: async (id: number) => { + return await request.get({ url: '/mes/wm/sales-notice-line/get?id=' + id }) + }, + + // 新增发货通知单行 + createSalesNoticeLine: async (data: WmSalesNoticeLineVO) => { + return await request.post({ url: '/mes/wm/sales-notice-line/create', data }) + }, + + // 修改发货通知单行 + updateSalesNoticeLine: async (data: WmSalesNoticeLineVO) => { + return await request.put({ url: '/mes/wm/sales-notice-line/update', data }) + }, + + // 删除发货通知单行 + deleteSalesNoticeLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/sales-notice-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/sn/index.ts b/src/api/mes/wm/sn/index.ts new file mode 100644 index 000000000..d13ca021b --- /dev/null +++ b/src/api/mes/wm/sn/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface WmSnGroupVO { + uuid?: string + count?: number + itemId?: number + itemCode?: string + itemName?: string + specification?: string + unitName?: string + batchCode?: string + workOrderId?: number + createTime?: Date +} + +export interface WmSnGenerateVO { + itemId?: number + batchCode?: string + workOrderId?: number + count?: number +} + +// 生成 SN 码 +export const generateSnCodes = async (data: WmSnGenerateVO) => { + return await request.post({ url: `/mes/wm/sn/generate`, data }) +} + +// 获得 SN 码分组分页 +export const getSnGroupPage = async (params: any) => { + return await request.get({ url: `/mes/wm/sn/group-page`, params }) +} + +// 批量删除 SN 码(按批次 UUID) +export const deleteSnBatch = async (uuid: string) => { + return await request.delete({ url: `/mes/wm/sn/delete-batch`, params: { uuid } }) +} + +// 导出 SN 码分组 Excel +export const exportSnGroupExcel = async (params: any) => { + return await request.download({ url: `/mes/wm/sn/group-export-excel`, params }) +} + +// 导出批次 SN 码明细 Excel +export const exportSnDetailExcel = async (uuid: string) => { + return await request.download({ url: `/mes/wm/sn/export-excel`, params: { uuid } }) +} diff --git a/src/api/mes/wm/stocktaking/plan/index.ts b/src/api/mes/wm/stocktaking/plan/index.ts new file mode 100644 index 000000000..6e822e4dd --- /dev/null +++ b/src/api/mes/wm/stocktaking/plan/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export interface StockTakingPlanVO { + id?: number + code?: string + name?: string + type?: number + startTime?: string + endTime?: string + blindFlag?: boolean + frozen?: boolean + status?: number + remark?: string + createTime?: string +} + +export const StockTakingPlanApi = { + updateStockTakingPlanStatus: async (id: number, status: number) => { + return await request.put({ + url: '/mes/wm/stocktaking-plan/update-status?id=' + id + '&status=' + status + }) + }, + + getStockTakingPlanPage: async (params: any) => { + return await request.get({ url: '/mes/wm/stocktaking-plan/page', params }) + }, + + getStockTakingPlan: async (id: number) => { + return await request.get({ url: '/mes/wm/stocktaking-plan/get?id=' + id }) + }, + + createStockTakingPlan: async (data: StockTakingPlanVO) => { + return await request.post({ url: '/mes/wm/stocktaking-plan/create', data }) + }, + + updateStockTakingPlan: async (data: StockTakingPlanVO) => { + return await request.put({ url: '/mes/wm/stocktaking-plan/update', data }) + }, + + deleteStockTakingPlan: async (id: number) => { + return await request.delete({ url: '/mes/wm/stocktaking-plan/delete?id=' + id }) + }, + + exportStockTakingPlan: async (params: any) => { + return await request.download({ url: '/mes/wm/stocktaking-plan/export-excel', params }) + } +} diff --git a/src/api/mes/wm/stocktaking/plan/param/index.ts b/src/api/mes/wm/stocktaking/plan/param/index.ts new file mode 100644 index 000000000..f7b7f6d40 --- /dev/null +++ b/src/api/mes/wm/stocktaking/plan/param/index.ts @@ -0,0 +1,33 @@ +import request from '@/config/axios' + +export interface StockTakingPlanParamVO { + id?: number + planId?: number + type?: number + valueId?: number + valueCode?: string + valueName?: string + remark?: string +} + +export const StockTakingPlanParamApi = { + getStockTakingPlanParam: async (id: number) => { + return await request.get({ url: '/mes/wm/stocktaking-plan-param/get?id=' + id }) + }, + + getStockTakingPlanParamPage: async (params: any) => { + return await request.get({ url: '/mes/wm/stocktaking-plan-param/page', params }) + }, + + createStockTakingPlanParam: async (data: StockTakingPlanParamVO) => { + return await request.post({ url: '/mes/wm/stocktaking-plan-param/create', data }) + }, + + updateStockTakingPlanParam: async (data: StockTakingPlanParamVO) => { + return await request.put({ url: '/mes/wm/stocktaking-plan-param/update', data }) + }, + + deleteStockTakingPlanParam: async (id: number) => { + return await request.delete({ url: '/mes/wm/stocktaking-plan-param/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/stocktaking/task/index.ts b/src/api/mes/wm/stocktaking/task/index.ts new file mode 100644 index 000000000..133b81538 --- /dev/null +++ b/src/api/mes/wm/stocktaking/task/index.ts @@ -0,0 +1,59 @@ +import request from '@/config/axios' + +export interface StockTakingTaskVO { + id?: number + code?: string + name?: string + takingDate?: string + type?: number + userId?: number + userNickname?: string + planId?: number + planCode?: string + planName?: string + blindFlag?: boolean + frozen?: boolean + startTime?: string + endTime?: string + status?: number + remark?: string + createTime?: string +} + +export const StockTakingApi = { + getStockTakingPage: async (params: any) => { + return await request.get({ url: '/mes/wm/stocktaking-task/page', params }) + }, + + getStockTaking: async (id: number) => { + return await request.get({ url: '/mes/wm/stocktaking-task/get?id=' + id }) + }, + + createStockTaking: async (data: StockTakingTaskVO) => { + return await request.post({ url: '/mes/wm/stocktaking-task/create', data }) + }, + + updateStockTaking: async (data: StockTakingTaskVO) => { + return await request.put({ url: '/mes/wm/stocktaking-task/update', data }) + }, + + deleteStockTaking: async (id: number) => { + return await request.delete({ url: '/mes/wm/stocktaking-task/delete?id=' + id }) + }, + + submitStockTaking: async (id: number) => { + return await request.put({ url: '/mes/wm/stocktaking-task/submit', params: { id } }) + }, + + cancelStockTaking: async (id: number) => { + return await request.put({ url: '/mes/wm/stocktaking-task/cancel', params: { id } }) + }, + + finishStockTaking: async (id: number) => { + return await request.put({ url: '/mes/wm/stocktaking-task/finish', data: { id } }) + }, + + exportStockTaking: async (params: any) => { + return await request.download({ url: '/mes/wm/stocktaking-task/export-excel', params }) + } +} diff --git a/src/api/mes/wm/stocktaking/task/line/index.ts b/src/api/mes/wm/stocktaking/task/line/index.ts new file mode 100644 index 000000000..a4e225f02 --- /dev/null +++ b/src/api/mes/wm/stocktaking/task/line/index.ts @@ -0,0 +1,71 @@ +import request from '@/config/axios' + +export interface StockTakingTaskLineVO { + id?: number + taskId: number + materialStockId?: number + itemId?: number + itemCode?: string + itemName?: string + specification?: string + unitMeasureName?: string + batchId?: number + batchCode?: string + quantity?: number + takingQuantity?: number + differenceQuantity?: number + warehouseId?: number + warehouseName?: string + locationId?: number + locationName?: string + areaId?: number + areaName?: string + status?: number + remark?: string +} + +export const StockTakingTaskLineApi = { + getStockTakingTaskLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/stocktaking-task-line/page', params }) + }, + + getStockTakingTaskLineSimpleList: async (taskId: number) => { + return await request.get({ + url: '/mes/wm/stocktaking-task-line/simple-list', + params: { taskId } + }) + }, + + getStockTakingTaskLine: async (id: number) => { + return await request.get({ url: '/mes/wm/stocktaking-task-line/get', params: { id } }) + }, + + createStockTakingTaskLine: async (data: StockTakingTaskLineVO) => { + return await request.post({ url: '/mes/wm/stocktaking-task-line/create', data }) + }, + + updateStockTakingTaskLine: async (data: StockTakingTaskLineVO) => { + return await request.put({ url: '/mes/wm/stocktaking-task-line/update', data }) + }, + + deleteStockTakingTaskLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/stocktaking-task-line/delete?id=' + id }) + } +} + +export interface StockTakingTaskLineSimpleVO { + id: number + itemId: number + itemCode: string + itemName: string + specification?: string + unitMeasureName?: string + batchCode?: string + warehouseId: number + warehouseName: string + locationId?: number + locationName?: string + areaId?: number + areaName?: string + quantity: number +} diff --git a/src/api/mes/wm/stocktaking/task/result/index.ts b/src/api/mes/wm/stocktaking/task/result/index.ts new file mode 100644 index 000000000..17a376b0d --- /dev/null +++ b/src/api/mes/wm/stocktaking/task/result/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface StockTakingResultVO { + id?: number + taskId?: number + lineId?: number + materialStockId?: number + itemId?: number + itemCode?: string + itemName?: string + specification?: string + unitMeasureName?: string + batchId?: number + batchCode?: string + warehouseId?: number + warehouseName?: string + locationId?: number + locationName?: string + areaId?: number + areaName?: string + quantity?: number + remark?: string + createTime?: string +} + +export const StockTakingResultApi = { + getStockTakingResultPage: async (params: any) => { + return await request.get({ url: '/mes/wm/stocktaking-task-result/page', params }) + }, + + getStockTakingResult: async (id: number) => { + return await request.get({ url: '/mes/wm/stocktaking-task-result/get', params: { id } }) + }, + + createStockTakingResult: async (data: StockTakingResultVO) => { + return await request.post({ url: '/mes/wm/stocktaking-task-result/create', data }) + }, + + updateStockTakingResult: async (data: StockTakingResultVO) => { + return await request.put({ url: '/mes/wm/stocktaking-task-result/update', data }) + }, + + deleteStockTakingResult: async (id: number) => { + return await request.delete({ url: '/mes/wm/stocktaking-task-result/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/transfer/detail/index.ts b/src/api/mes/wm/transfer/detail/index.ts new file mode 100644 index 000000000..cefc9acdf --- /dev/null +++ b/src/api/mes/wm/transfer/detail/index.ts @@ -0,0 +1,53 @@ +import request from '@/config/axios' + +// MES 调拨明细 VO +export interface WmTransferDetailVO { + id: number + lineId: number + transferId: number + itemId: number + itemCode?: string + itemName?: string + specification?: string + unitName?: string + unitMeasureName?: string + quantity: number + batchId: number + batchCode?: string + toWarehouseId: number + toWarehouseName?: string + toLocationId: number + toLocationName?: string + toAreaId: number + toAreaName?: string + remark: string + createTime?: string +} + +// MES 调拨明细 API +export const WmTransferDetailApi = { + // 查询调拨明细列表(按行编号) + getTransferDetailListByLineId: async (lineId: number) => { + return await request.get({ url: '/mes/wm/transfer-detail/list-by-line', params: { lineId } }) + }, + + // 查询调拨明细详情 + getTransferDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/transfer-detail/get?id=' + id }) + }, + + // 新增调拨明细 + createTransferDetail: async (data: WmTransferDetailVO) => { + return await request.post({ url: '/mes/wm/transfer-detail/create', data }) + }, + + // 修改调拨明细 + updateTransferDetail: async (data: WmTransferDetailVO) => { + return await request.put({ url: '/mes/wm/transfer-detail/update', data }) + }, + + // 删除调拨明细 + deleteTransferDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/transfer-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/transfer/index.ts b/src/api/mes/wm/transfer/index.ts new file mode 100644 index 000000000..672226c76 --- /dev/null +++ b/src/api/mes/wm/transfer/index.ts @@ -0,0 +1,78 @@ +import request from '@/config/axios' + +// MES 转移单 VO +export interface WmTransferVO { + id: number + code: string + name: string + type: number + deliveryFlag: boolean + recipientName: string + recipientTelephone: string + destinationAddress: string + carrier: string + shippingNumber: string + confirmFlag: boolean + transferDate: string + status: number + remark: string + createTime?: string +} + +// MES 转移单 API +export const WmTransferApi = { + // 查询转移单分页 + getTransferPage: async (params: any) => { + return await request.get({ url: '/mes/wm/transfer/page', params }) + }, + + // 查询转移单详情 + getTransfer: async (id: number) => { + return await request.get({ url: '/mes/wm/transfer/get?id=' + id }) + }, + + // 新增转移单 + createTransfer: async (data: WmTransferVO) => { + return await request.post({ url: '/mes/wm/transfer/create', data }) + }, + + // 修改转移单 + updateTransfer: async (data: WmTransferVO) => { + return await request.put({ url: '/mes/wm/transfer/update', data }) + }, + + // 删除转移单 + deleteTransfer: async (id: number) => { + return await request.delete({ url: '/mes/wm/transfer/delete?id=' + id }) + }, + + // 提交转移单 + submitTransfer: async (id: number) => { + return await request.put({ url: '/mes/wm/transfer/submit?id=' + id }) + }, + + // 到货确认 + confirmTransfer: async (id: number) => { + return await request.put({ url: '/mes/wm/transfer/confirm?id=' + id }) + }, + + // 执行上架 + stockTransfer: async (id: number) => { + return await request.put({ url: '/mes/wm/transfer/stock?id=' + id }) + }, + + // 完成转移 + finishTransfer: async (id: number) => { + return await request.put({ url: '/mes/wm/transfer/finish?id=' + id }) + }, + + // 取消转移单 + cancelTransfer: async (id: number) => { + return await request.put({ url: '/mes/wm/transfer/cancel?id=' + id }) + }, + + // 导出转移单 Excel + exportTransfer: async (params: any) => { + return await request.download({ url: '/mes/wm/transfer/export-excel', params }) + } +} diff --git a/src/api/mes/wm/transfer/line/index.ts b/src/api/mes/wm/transfer/line/index.ts new file mode 100644 index 000000000..fdf974a0b --- /dev/null +++ b/src/api/mes/wm/transfer/line/index.ts @@ -0,0 +1,53 @@ +import request from '@/config/axios' + +// MES 转移单行 VO +export interface WmTransferLineVO { + id: number + transferId: number + materialStockId: number + itemId: number + itemCode?: string + itemName?: string + specification?: string + unitName?: string + unitMeasureName?: string + quantity: number + batchId: number + batchCode?: string + fromWarehouseId: number + fromWarehouseName?: string + fromLocationId: number + fromLocationName?: string + fromAreaId: number + fromAreaName?: string + remark: string + createTime?: string +} + +// MES 转移单行 API +export const WmTransferLineApi = { + // 查询转移单行列表 + getTransferLineList: async (transferId: number) => { + return await request.get({ url: '/mes/wm/transfer-line/list', params: { transferId } }) + }, + + // 查询转移单行详情 + getTransferLine: async (id: number) => { + return await request.get({ url: '/mes/wm/transfer-line/get?id=' + id }) + }, + + // 新增转移单行 + createTransferLine: async (data: WmTransferLineVO) => { + return await request.post({ url: '/mes/wm/transfer-line/create', data }) + }, + + // 修改转移单行 + updateTransferLine: async (data: WmTransferLineVO) => { + return await request.put({ url: '/mes/wm/transfer-line/update', data }) + }, + + // 删除转移单行 + deleteTransferLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/transfer-line/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/warehouse/area/index.ts b/src/api/mes/wm/warehouse/area/index.ts new file mode 100644 index 000000000..83211d79f --- /dev/null +++ b/src/api/mes/wm/warehouse/area/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +// MES 库位 VO +export interface WmWarehouseAreaVO { + id: number + code: string + name: string + warehouseId: number + warehouseName: string + locationId: number + locationName: string + area: number + maxLoad: number + positionX: number + positionY: number + positionZ: number + status: number + frozen: boolean + allowItemMixing: boolean + allowBatchMixing: boolean + remark: string + createTime: string +} + +// MES 库位 API +export const WmWarehouseAreaApi = { + // 查询库位分页 + getWarehouseAreaPage: async (params: any) => { + return await request.get({ url: '/mes/wm/warehouse-area/page', params }) + }, + + // 查询库位精简列表 + getWarehouseAreaSimpleList: async (locationId?: number) => { + return await request.get({ url: '/mes/wm/warehouse-area/simple-list', params: { locationId } }) + }, + + // 查询库位详情 + getWarehouseArea: async (id: number) => { + return await request.get({ url: '/mes/wm/warehouse-area/get?id=' + id }) + }, + + // 新增库位 + createWarehouseArea: async (data: WmWarehouseAreaVO) => { + return await request.post({ url: '/mes/wm/warehouse-area/create', data }) + }, + + // 修改库位 + updateWarehouseArea: async (data: WmWarehouseAreaVO) => { + return await request.put({ url: '/mes/wm/warehouse-area/update', data }) + }, + + // 删除库位 + deleteWarehouseArea: async (id: number) => { + return await request.delete({ url: '/mes/wm/warehouse-area/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/warehouse/index.ts b/src/api/mes/wm/warehouse/index.ts new file mode 100644 index 000000000..f5be3c67c --- /dev/null +++ b/src/api/mes/wm/warehouse/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +// MES 仓库 VO +export interface WmWarehouseVO { + id: number + code: string + name: string + address: string + area: number + chargeUserId: number + frozen: boolean + remark: string + createTime: string +} + +// MES 仓库 API +export const WmWarehouseApi = { + // 查询仓库分页 + getWarehousePage: async (params: any) => { + return await request.get({ url: '/mes/wm/warehouse/page', params }) + }, + + // 查询仓库精简列表 + getWarehouseSimpleList: async () => { + return await request.get({ url: '/mes/wm/warehouse/simple-list' }) + }, + + // 查询仓库详情 + getWarehouse: async (id: number) => { + return await request.get({ url: '/mes/wm/warehouse/get?id=' + id }) + }, + + // 新增仓库 + createWarehouse: async (data: WmWarehouseVO) => { + return await request.post({ url: '/mes/wm/warehouse/create', data }) + }, + + // 修改仓库 + updateWarehouse: async (data: WmWarehouseVO) => { + return await request.put({ url: '/mes/wm/warehouse/update', data }) + }, + + // 删除仓库 + deleteWarehouse: async (id: number) => { + return await request.delete({ url: '/mes/wm/warehouse/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/warehouse/location/index.ts b/src/api/mes/wm/warehouse/location/index.ts new file mode 100644 index 000000000..7ddd17be3 --- /dev/null +++ b/src/api/mes/wm/warehouse/location/index.ts @@ -0,0 +1,62 @@ +import request from '@/config/axios' + +// MES 库区 VO +export interface WmWarehouseLocationVO { + id: number + code: string + name: string + warehouseId: number + warehouseName: string + area: number + frozen: boolean + remark: string + createTime: string +} + +// MES 库区 API +export const WmWarehouseLocationApi = { + // 查询库区分页 + getWarehouseLocationPage: async (params: any) => { + return await request.get({ url: '/mes/wm/warehouse-location/page', params }) + }, + + // 查询库区精简列表 + getWarehouseLocationSimpleList: async (warehouseId?: number) => { + return await request.get({ + url: '/mes/wm/warehouse-location/simple-list', + params: { warehouseId } + }) + }, + + // 查询库区详情 + getWarehouseLocation: async (id: number) => { + return await request.get({ url: '/mes/wm/warehouse-location/get?id=' + id }) + }, + + // 新增库区 + createWarehouseLocation: async (data: WmWarehouseLocationVO) => { + return await request.post({ url: '/mes/wm/warehouse-location/create', data }) + }, + + // 修改库区 + updateWarehouseLocation: async (data: WmWarehouseLocationVO) => { + return await request.put({ url: '/mes/wm/warehouse-location/update', data }) + }, + + // 删除库区 + deleteWarehouseLocation: async (id: number) => { + return await request.delete({ url: '/mes/wm/warehouse-location/delete?id=' + id }) + }, + + // 批量设置库区下所有库位的混放规则 + updateAreaByLocationId: async ( + locationId: number, + allowItemMixing?: boolean, + allowBatchMixing?: boolean + ) => { + return await request.put({ + url: '/mes/wm/warehouse-location/update-by-location-id', + params: { locationId, allowItemMixing, allowBatchMixing } + }) + } +} diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index 31484f73c..db6d5c10a 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -127,7 +127,6 @@ const remainingRouter: AppRouteRecordRaw[] = [ } ] }, - { path: '/codegen', component: Layout, @@ -234,6 +233,16 @@ const remainingRouter: AppRouteRecordRaw[] = [ noTagsView: true } }, + { + path: '/:pathMatch(.*)*', + component: () => import('@/views/Error/404.vue'), + name: '', + meta: { + title: '404', + hidden: true, + breadcrumb: false + } + }, { path: '/bpm', component: Layout, @@ -694,16 +703,6 @@ const remainingRouter: AppRouteRecordRaw[] = [ } ] }, - { - path: '/:pathMatch(.*)*', - component: () => import('@/views/Error/404.vue'), - name: '', - meta: { - title: '404', - hidden: true, - breadcrumb: false - } - }, { path: '/iot', component: Layout, @@ -747,6 +746,55 @@ const remainingRouter: AppRouteRecordRaw[] = [ } ] }, + { + path: '/mes', + component: Layout, + name: 'MesWmRouter', + meta: { + hidden: true + }, + children: [ + { + path: 'wm/warehouse/location', + component: () => import('@/views/mes/wm/warehouse/location/index.vue'), + name: 'MesWmLocation', + meta: { + noCache: true, + hidden: true, + canTo: true, + icon: '', + title: '库区设置', + activeMenu: '/mes/wm/warehouse' + } + }, + { + path: 'wm/warehouse/area', + component: () => import('@/views/mes/wm/warehouse/area/index.vue'), + name: 'MesWmArea', + meta: { + noCache: true, + hidden: true, + canTo: true, + icon: '', + title: '库位设置', + activeMenu: '/mes/wm/warehouse' + } + }, + { + path: 'pro/task/gantt-edit', + component: () => import('@/views/mes/pro/task/edit/index.vue'), + name: 'MesProTaskGanttEdit', + meta: { + noCache: true, + hidden: true, + canTo: true, + icon: '', + title: '甘特图编辑', + activeMenu: '/mes/pro/task' + } + } + ] + }, { path: '/im', name: 'Im', diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 8f3060fc7..b65788fde 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -252,6 +252,81 @@ export enum DICT_TYPE { IOT_MODBUS_MODE = 'iot_modbus_mode', // IoT Modbus 工作模式 IOT_MODBUS_FRAME_FORMAT = 'iot_modbus_frame_format', // IoT Modbus 帧格式 + // ========== MES - 制造执行系统模块 ========== + MES_MD_ITEM_OR_PRODUCT = 'mes_md_item_or_product', // MES 物料产品标识 + MES_CLIENT_TYPE = 'mes_client_type', // MES 客户类型 + MES_VENDOR_LEVEL = 'mes_vendor_level', // MES 供应商级别 + MES_CAL_HOLIDAY_TYPE = 'mes_cal_holiday_type', // MES 假期类型 + MES_CAL_SHIFT_TYPE = 'mes_cal_shift_type', // MES 轮班方式 + MES_CAL_SHIFT_METHOD = 'mes_cal_shift_method', // MES 倒班方式 + MES_CAL_CALENDAR_TYPE = 'mes_cal_calendar_type', // MES 班组类型 + MES_CAL_PLAN_STATUS = 'mes_cal_plan_status', // MES 排班计划状态 + MES_TM_TOOL_STATUS = 'mes_tm_tool_status', // MES 工具状态 + MES_TM_MAINTEN_TYPE = 'mes_tm_mainten_type', // MES 保养维护类型 + MES_DV_MACHINERY_STATUS = 'mes_dv_machinery_status', // MES 设备状态 + MES_DV_SUBJECT_TYPE = 'mes_dv_subject_type', // MES 点检保养项目类型 + MES_INDICATOR_TYPE = 'mes_indicator_type', // MES 检测项类型 + MES_QC_RESULT_TYPE = 'mes_qc_result_type', // MES 质检结果值类型 + MES_DEFECT_LEVEL = 'mes_defect_level', // MES 缺陷等级 + MES_DEFECT_TYPE = 'mes_defect_type', // MES 缺陷检测项类型 + MES_PRO_WORK_ORDER_STATUS = 'mes_pro_work_order_status', // MES 生产工单状态 + MES_PRO_WORK_ORDER_SOURCE_TYPE = 'mes_pro_work_order_source_type', // MES 工单来源类型 + MES_PRO_WORK_ORDER_TYPE = 'mes_pro_work_order_type', // MES 工单类型 + MES_QC_TYPE = 'mes_qc_type', // MES 质检方案类型 + MES_PRO_LINK_TYPE = 'mes_pro_link_type', // MES 工序关系类型 + MES_PRO_TASK_STATUS = 'mes_pro_task_status', // MES 生产任务状态 + MES_TIME_UNIT_TYPE = 'mes_time_unit_type', // MES 时间单位 + MES_ORDER_STATUS = 'mes_order_status', // MES 单据状态 + MES_QC_CHECK_RESULT = 'mes_qc_check_result', // MES 检测结果 + MES_QC_SOURCE_DOC_TYPE = 'mes_qc_source_doc_type', // MES 来源单据类型 + MES_IPQC_TYPE = 'mes_ipqc_type', // MES IPQC 检验类型 + MES_DV_CYCLE_TYPE = 'mes_dv_cycle_type', // MES 点检保养周期类型 + MES_DV_CHECK_PLAN_STATUS = 'mes_dv_check_plan_status', // MES 点检保养方案状态 + MES_MAINTEN_RECORD_STATUS = 'mes_mainten_record_status', // MES 保养记录状态 + MES_MAINTEN_STATUS = 'mes_mainten_status', // MES 保养结果 + MES_DV_REPAIR_STATUS = 'mes_dv_repair_status', // MES 维修工单状态 + MES_DV_REPAIR_RESULT = 'mes_dv_repair_result', // MES 维修结果 + MES_DV_CHECK_RECORD_STATUS = 'mes_dv_check_record_status', // MES 点检记录状态 + MES_DV_CHECK_RESULT = 'mes_dv_check_result', // MES 点检结果 + MES_PRO_FEEDBACK_STATUS = 'mes_pro_feedback_status', // MES 生产报工状态 + MES_PRO_FEEDBACK_TYPE = 'mes_pro_feedback_type', // MES 生产报工类型 + MES_PRO_FEEDBACK_CHANNEL = 'mes_pro_feedback_channel', // MES 生产报工途径 + MES_PRO_ANDON_STATUS = 'mes_pro_andon_status', // MES 安灯处置状态 + MES_PRO_ANDON_LEVEL = 'mes_pro_andon_level', // MES 安灯级别 + MES_PRO_WORK_RECORD_TYPE = 'mes_pro_work_record_type', // MES 上下工状态类型 + MES_RQC_TYPE = 'mes_rqc_type', // MES 退货检验类型 + MES_WM_ARRIVAL_NOTICE_STATUS = 'mes_wm_arrival_notice_status', // MES 到货通知单状态 + MES_WM_ITEM_RECEIPT_STATUS = 'mes_wm_item_receipt_status', // MES 物料接收单状态 + MES_WM_TRANSFER_STATUS = 'mes_wm_transfer_status', // MES 转移单状态 + MES_WM_TRANSFER_TYPE = 'mes_wm_transfer_type', // MES 转移单类型 + MES_WM_STOCK_TAKING_TYPE = 'mes_wm_stock_taking_type', // MES 盘点类型 + MES_WM_STOCK_TAKING_TASK_STATUS = 'mes_wm_stock_taking_task_status', // MES 盘点任务状态 + MES_WM_STOCK_TAKING_LINE_STATUS = 'mes_wm_stock_taking_task_line_status', // MES 盘点任务行状态 + MES_WM_STOCK_TAKING_PLAN_PARAM_TYPE = 'mes_wm_stock_taking_plan_param_type', // MES 盘点方案参数类型 + MES_WM_OUTSOURCE_RECPT_STATUS = 'mes_wm_outsource_recpt_status', // MES 外协入库单状态 + MES_WM_PRODUCT_ISSUE_STATUS = 'mes_wm_product_issue_status', // MES 领料出库单状态 + MES_WM_PRODUCT_PRODUCE_STATUS = 'mes_wm_product_produce_status', // MES 生产入库单状态 + MES_WM_RETURN_VENDOR_STATUS = 'mes_wm_return_vendor_status', // MES 供应商退货单状态 + MES_WM_QUALITY_STATUS = 'mes_wm_quality_status', // MES 质量状态 + MES_WM_RETURN_ISSUE_STATUS = 'mes_wm_return_issue_status', // MES 生产退料单状态 + MES_WM_RETURN_ISSUE_TYPE = 'mes_wm_return_issue_type', // MES 退料类型 + MES_WM_PRODUCT_RECPT_STATUS = 'mes_wm_product_receipt_status', // MES 成品入库单状态 + MES_WM_RETURN_SALES_STATUS = 'mes_wm_return_sales_status', // MES 销售退货单状态 + MES_WM_PRODUCT_SALES_STATUS = 'mes_wm_product_sales_status', // MES 销售出库单状态 + MES_WM_SALES_NOTICE_STATUS = 'mes_wm_sales_notice_status', // MES 发货通知单状态 + MES_WM_MISC_ISSUE_TYPE = 'mes_wm_misc_issue_type', // MES 杂项出库类型 + MES_WM_MISC_ISSUE_STATUS = 'mes_wm_misc_issue_status', // MES 杂项出库单状态 + MES_WM_MISC_RECEIPT_TYPE = 'mes_wm_misc_receipt_type', // MES 杂项单类型 + MES_WM_MISC_RECEIPT_STATUS = 'mes_wm_misc_receipt_status', // MES 杂项入库单状态 + MES_WM_OUTSOURCE_RECEIPT_STATUS = 'mes_wm_outsource_receipt_status', // MES 外协入库单状态 + MES_WM_OUTSOURCE_ISSUE_STATUS = 'mes_wm_outsource_issue_status', // MES 外协出库单状态 + MES_MD_AUTO_CODE_PART_TYPE = 'mes_md_auto_code_part_type', // MES 编码规则分段类型 + MES_MD_AUTO_CODE_PADDED_METHOD = 'mes_md_auto_code_padded_method', // MES 编码规则补齐方式 + MES_MD_AUTO_CODE_CYCLE_METHOD = 'mes_md_auto_code_cycle_method', // MES 编码规则循环方式 + MES_WM_BARCODE_FORMAT = 'mes_wm_barcode_format', // MES 条码格式 + MES_WM_BARCODE_BIZ_TYPE = 'mes_wm_barcode_biz_type', // MES 条码业务类型 + MES_WM_PACKAGE_STATUS = 'mes_wm_package_status', // MES 装箱单状态 + // ========== IM - 即时通讯模块 ========== IM_MESSAGE_TYPE = 'im_message_type', // IM 消息类型 IM_PRIVATE_MESSAGE_STATUS = 'im_private_message_status', // IM 私聊消息状态:0=未读 / 2=已撤回 / 3=已读 diff --git a/src/utils/domUtils.ts b/src/utils/domUtils.ts index dbc1989cb..b7bac3b5a 100644 --- a/src/utils/domUtils.ts +++ b/src/utils/domUtils.ts @@ -172,43 +172,43 @@ export const once = function (el: HTMLElement, event: string, fn: EventListener) export const getStyle = ieVersion < 9 ? function (element: Element | any, styleName: string) { - if (isServer) return - if (!element || !styleName) return null - styleName = camelCase(styleName) - if (styleName === 'float') { - styleName = 'styleFloat' - } - try { - switch (styleName) { - case 'opacity': - try { - return element.filters.item('alpha').opacity / 100 - } catch (e) { - return 1.0 - } - default: - return element.style[styleName] || element.currentStyle - ? element.currentStyle[styleName] - : null - } - } catch (e) { - return element.style[styleName] - } + if (isServer) return + if (!element || !styleName) return null + styleName = camelCase(styleName) + if (styleName === 'float') { + styleName = 'styleFloat' } + try { + switch (styleName) { + case 'opacity': + try { + return element.filters.item('alpha').opacity / 100 + } catch (e) { + return 1.0 + } + default: + return element.style[styleName] || element.currentStyle + ? element.currentStyle[styleName] + : null + } + } catch (e) { + return element.style[styleName] + } + } : function (element: Element | any, styleName: string) { - if (isServer) return - if (!element || !styleName) return null - styleName = camelCase(styleName) - if (styleName === 'float') { - styleName = 'cssFloat' - } - try { - const computed = (document as any).defaultView.getComputedStyle(element, '') - return element.style[styleName] || computed ? computed[styleName] : null - } catch (e) { - return element.style[styleName] - } + if (isServer) return + if (!element || !styleName) return null + styleName = camelCase(styleName) + if (styleName === 'float') { + styleName = 'cssFloat' } + try { + const computed = (document as any).defaultView.getComputedStyle(element, '') + return element.style[styleName] || computed ? computed[styleName] : null + } catch (e) { + return element.style[styleName] + } + } /* istanbul ignore next */ export function setStyle(element: Element | any, styleName: any, value: any) { @@ -287,3 +287,16 @@ export const isInContainer = (el: Element, container: any) => { elRect.left < containerRect.right ) } + +// TODO @AI:拿到 /Users/yunai/Java/yudao-all-in-one/yudao-ui-admin-vue3/src/utils/index.ts;放在 domutils 有点奇怪! +/** HTML 转义函数,防止 XSS */ +export const escapeHtml = (text: string): string => { + const map: Record = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' + } + return text.replace(/[&<>"']/g, (char) => map[char]) +} diff --git a/src/utils/download.ts b/src/utils/download.ts index 32fc624b5..ee116ae5c 100644 --- a/src/utils/download.ts +++ b/src/utils/download.ts @@ -70,6 +70,11 @@ const download = { a.click() } }, + // 下载 Base64 图片(将 base64 转为文件并触发下载) + base64Image: (base64: string, fileName: string) => { + const file = download.base64ToFile(base64, fileName) + download0(file, file.name, file.type) + }, base64ToFile: (base64: any, fileName: string) => { // 将base64按照 , 进行分割 将前缀 与后续内容分隔开 const data = base64.split(',') diff --git a/src/views/mall/trade/delivery/pickUpStore/components/StoreStaffTableSelect.vue b/src/views/mall/trade/delivery/pickUpStore/components/StoreStaffTableSelect.vue index c5acda31e..5b09d0696 100644 --- a/src/views/mall/trade/delivery/pickUpStore/components/StoreStaffTableSelect.vue +++ b/src/views/mall/trade/delivery/pickUpStore/components/StoreStaffTableSelect.vue @@ -5,7 +5,7 @@ - + @@ -137,7 +137,7 @@ import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' import { dateFormatter } from '@/utils/formatTime' import * as UserApi from '@/api/system/user' -import DeptTree from '@/views/system/user/DeptTree.vue' +import DeptTreeSelect from '@/views/system/dept/components/DeptTreeSelect.vue' // 是否全选 const isCheckAll = ref(false) @@ -189,8 +189,8 @@ const resetQuery = () => { } /** 处理部门被点击 */ -const handleDeptNodeClick = async (row) => { - queryParams.deptId = row.id +const handleDeptNodeClick = async (deptId: number | undefined) => { + queryParams.deptId = deptId await getList() } diff --git a/src/views/mes/cal/calendar/CalendarDateCell.vue b/src/views/mes/cal/calendar/CalendarDateCell.vue new file mode 100644 index 000000000..664eab115 --- /dev/null +++ b/src/views/mes/cal/calendar/CalendarDateCell.vue @@ -0,0 +1,124 @@ + + + + + + diff --git a/src/views/mes/cal/calendar/CalendarLegend.vue b/src/views/mes/cal/calendar/CalendarLegend.vue new file mode 100644 index 000000000..bd602d33c --- /dev/null +++ b/src/views/mes/cal/calendar/CalendarLegend.vue @@ -0,0 +1,41 @@ + + + + diff --git a/src/views/mes/cal/calendar/TeamView.vue b/src/views/mes/cal/calendar/TeamView.vue new file mode 100644 index 000000000..c89f2465b --- /dev/null +++ b/src/views/mes/cal/calendar/TeamView.vue @@ -0,0 +1,86 @@ + + + + diff --git a/src/views/mes/cal/calendar/TypeView.vue b/src/views/mes/cal/calendar/TypeView.vue new file mode 100644 index 000000000..8045032d5 --- /dev/null +++ b/src/views/mes/cal/calendar/TypeView.vue @@ -0,0 +1,80 @@ + + + + diff --git a/src/views/mes/cal/calendar/UserView.vue b/src/views/mes/cal/calendar/UserView.vue new file mode 100644 index 000000000..126bde65f --- /dev/null +++ b/src/views/mes/cal/calendar/UserView.vue @@ -0,0 +1,75 @@ + + + + diff --git a/src/views/mes/cal/calendar/index.vue b/src/views/mes/cal/calendar/index.vue new file mode 100644 index 000000000..41a8d05f7 --- /dev/null +++ b/src/views/mes/cal/calendar/index.vue @@ -0,0 +1,28 @@ + + + + diff --git a/src/views/mes/cal/calendar/useCalendar.ts b/src/views/mes/cal/calendar/useCalendar.ts new file mode 100644 index 000000000..2f9db7f98 --- /dev/null +++ b/src/views/mes/cal/calendar/useCalendar.ts @@ -0,0 +1,90 @@ +import { ref, watch } from 'vue' +import { CalCalendarApi, CalCalendarDayVO } from '@/api/mes/cal/calendar' +import { CalHolidayApi, CalHolidayVO } from '@/api/mes/cal/holiday' +import { formatDate } from '@/utils/formatTime' +import { HolidayType } from '@/views/mes/utils/constants' + +/** + * 排班日历通用 composable + * + * 封装日历组件中通用的响应式状态、假期加载、排班查询、月份切换逻辑 + */ +export function useCalendar() { + const loading = ref(false) + const currentDate = ref(new Date()) + const calendarDayMap = ref>(new Map()) + const holidaySet = ref(new Set()) + + /** 获取节假日列表,按当前月份范围加载 */ + const loadHolidays = async () => { + holidaySet.value.clear() + const { startDay, endDay } = getMonthRange() + const list = await CalHolidayApi.getHolidayList({ + startDay: formatDate(startDay, 'YYYY-MM-DD HH:mm:ss'), + endDay: formatDate(endDay, 'YYYY-MM-DD HH:mm:ss') + }) + if (!list) { + return + } + list.forEach((item: CalHolidayVO) => { + const day = item.day ? formatDate(item.day as any, 'YYYY-MM-DD') : '' + if (day && item.type === HolidayType.HOLIDAY) { + holidaySet.value.add(day) + } + }) + } + + /** 查询排班日历,params 由调用方提供 queryType 相关参数 */ + const fetchCalendar = async (params: Record) => { + loading.value = true + try { + const { startDay, endDay } = getMonthRange() + const list = await CalCalendarApi.getCalendarList({ + ...params, + startDay: formatDate(startDay, 'YYYY-MM-DD HH:mm:ss'), + endDay: formatDate(endDay, 'YYYY-MM-DD HH:mm:ss') + }) + calendarDayMap.value.clear() + if (!list) { + return + } + list.forEach((item: CalCalendarDayVO) => { + const day = item.day ? formatDate(item.day as any, 'YYYY-MM-DD') : '' + if (day) { + calendarDayMap.value.set(day, { ...item, day }) + } + }) + } finally { + loading.value = false + } + } + + /** 计算当前月份的起止时间 */ + const getMonthRange = () => { + const date = currentDate.value + const year = date.getFullYear() + const month = date.getMonth() + return { + startDay: new Date(year, month, 1), + endDay: new Date(year, month + 1, 0, 23, 59, 59) + } + } + + /** 监听月份切换,调用回调刷新数据 */ + const watchMonth = (callback: () => void) => { + watch(currentDate, () => { + loadHolidays().then() + callback() + }) + } + + return { + loading, + currentDate, + calendarDayMap, + holidaySet, + loadHolidays, + fetchCalendar, + watchMonth + } +} diff --git a/src/views/mes/cal/holiday/HolidayForm.vue b/src/views/mes/cal/holiday/HolidayForm.vue new file mode 100644 index 000000000..9d8dcfbfc --- /dev/null +++ b/src/views/mes/cal/holiday/HolidayForm.vue @@ -0,0 +1,108 @@ + + + diff --git a/src/views/mes/cal/holiday/index.vue b/src/views/mes/cal/holiday/index.vue new file mode 100644 index 000000000..84dbbf736 --- /dev/null +++ b/src/views/mes/cal/holiday/index.vue @@ -0,0 +1,147 @@ + + + diff --git a/src/views/mes/cal/plan/CalPlanForm.vue b/src/views/mes/cal/plan/CalPlanForm.vue new file mode 100644 index 000000000..335f84b3b --- /dev/null +++ b/src/views/mes/cal/plan/CalPlanForm.vue @@ -0,0 +1,274 @@ + + + diff --git a/src/views/mes/cal/plan/CalPlanTeamList.vue b/src/views/mes/cal/plan/CalPlanTeamList.vue new file mode 100644 index 000000000..abcaa5b1b --- /dev/null +++ b/src/views/mes/cal/plan/CalPlanTeamList.vue @@ -0,0 +1,217 @@ + + + + + + diff --git a/src/views/mes/cal/plan/CalShiftList.vue b/src/views/mes/cal/plan/CalShiftList.vue new file mode 100644 index 000000000..05d5f5f1a --- /dev/null +++ b/src/views/mes/cal/plan/CalShiftList.vue @@ -0,0 +1,209 @@ + + + + diff --git a/src/views/mes/cal/plan/index.vue b/src/views/mes/cal/plan/index.vue new file mode 100644 index 000000000..a1d9046e5 --- /dev/null +++ b/src/views/mes/cal/plan/index.vue @@ -0,0 +1,276 @@ + + + diff --git a/src/views/mes/cal/team/CalTeamForm.vue b/src/views/mes/cal/team/CalTeamForm.vue new file mode 100644 index 000000000..7eb92888c --- /dev/null +++ b/src/views/mes/cal/team/CalTeamForm.vue @@ -0,0 +1,166 @@ + + + diff --git a/src/views/mes/cal/team/CalTeamMemberList.vue b/src/views/mes/cal/team/CalTeamMemberList.vue new file mode 100644 index 000000000..0c9ce55e9 --- /dev/null +++ b/src/views/mes/cal/team/CalTeamMemberList.vue @@ -0,0 +1,147 @@ + + + + diff --git a/src/views/mes/cal/team/components/CalTeamSelect.vue b/src/views/mes/cal/team/components/CalTeamSelect.vue new file mode 100644 index 000000000..27e1a5a01 --- /dev/null +++ b/src/views/mes/cal/team/components/CalTeamSelect.vue @@ -0,0 +1,165 @@ + + + + + + diff --git a/src/views/mes/cal/team/components/CalTeamSelectDialog.vue b/src/views/mes/cal/team/components/CalTeamSelectDialog.vue new file mode 100644 index 000000000..b9d10304e --- /dev/null +++ b/src/views/mes/cal/team/components/CalTeamSelectDialog.vue @@ -0,0 +1,262 @@ + + + + + + diff --git a/src/views/mes/cal/team/index.vue b/src/views/mes/cal/team/index.vue new file mode 100644 index 000000000..536b0d308 --- /dev/null +++ b/src/views/mes/cal/team/index.vue @@ -0,0 +1,210 @@ + + + diff --git a/src/views/mes/dv/checkplan/CheckPlanForm.vue b/src/views/mes/dv/checkplan/CheckPlanForm.vue new file mode 100644 index 000000000..a50277d32 --- /dev/null +++ b/src/views/mes/dv/checkplan/CheckPlanForm.vue @@ -0,0 +1,220 @@ + + + diff --git a/src/views/mes/dv/checkplan/CheckPlanMachineryList.vue b/src/views/mes/dv/checkplan/CheckPlanMachineryList.vue new file mode 100644 index 000000000..44563aabc --- /dev/null +++ b/src/views/mes/dv/checkplan/CheckPlanMachineryList.vue @@ -0,0 +1,155 @@ + + + + diff --git a/src/views/mes/dv/checkplan/CheckPlanSubjectList.vue b/src/views/mes/dv/checkplan/CheckPlanSubjectList.vue new file mode 100644 index 000000000..8a3133cbc --- /dev/null +++ b/src/views/mes/dv/checkplan/CheckPlanSubjectList.vue @@ -0,0 +1,160 @@ + + + + diff --git a/src/views/mes/dv/checkplan/components/DvCheckPlanSelect.vue b/src/views/mes/dv/checkplan/components/DvCheckPlanSelect.vue new file mode 100644 index 000000000..461255678 --- /dev/null +++ b/src/views/mes/dv/checkplan/components/DvCheckPlanSelect.vue @@ -0,0 +1,186 @@ + + + + + + diff --git a/src/views/mes/dv/checkplan/components/DvCheckPlanSelectDialog.vue b/src/views/mes/dv/checkplan/components/DvCheckPlanSelectDialog.vue new file mode 100644 index 000000000..d534b7f88 --- /dev/null +++ b/src/views/mes/dv/checkplan/components/DvCheckPlanSelectDialog.vue @@ -0,0 +1,324 @@ + + + + + + diff --git a/src/views/mes/dv/checkplan/index.vue b/src/views/mes/dv/checkplan/index.vue new file mode 100644 index 000000000..acf76917f --- /dev/null +++ b/src/views/mes/dv/checkplan/index.vue @@ -0,0 +1,287 @@ + + + diff --git a/src/views/mes/dv/checkrecord/CheckRecordForm.vue b/src/views/mes/dv/checkrecord/CheckRecordForm.vue new file mode 100644 index 000000000..4075eed1c --- /dev/null +++ b/src/views/mes/dv/checkrecord/CheckRecordForm.vue @@ -0,0 +1,204 @@ + + + diff --git a/src/views/mes/dv/checkrecord/CheckRecordLineList.vue b/src/views/mes/dv/checkrecord/CheckRecordLineList.vue new file mode 100644 index 000000000..fd3bd8b80 --- /dev/null +++ b/src/views/mes/dv/checkrecord/CheckRecordLineList.vue @@ -0,0 +1,182 @@ + + + + diff --git a/src/views/mes/dv/checkrecord/index.vue b/src/views/mes/dv/checkrecord/index.vue new file mode 100644 index 000000000..c9f94b4e1 --- /dev/null +++ b/src/views/mes/dv/checkrecord/index.vue @@ -0,0 +1,220 @@ + + + diff --git a/src/views/mes/dv/machinery/MachineryCheckRecordList.vue b/src/views/mes/dv/machinery/MachineryCheckRecordList.vue new file mode 100644 index 000000000..f0874cdf3 --- /dev/null +++ b/src/views/mes/dv/machinery/MachineryCheckRecordList.vue @@ -0,0 +1,97 @@ + + + + diff --git a/src/views/mes/dv/machinery/MachineryForm.vue b/src/views/mes/dv/machinery/MachineryForm.vue new file mode 100644 index 000000000..5f9fd981b --- /dev/null +++ b/src/views/mes/dv/machinery/MachineryForm.vue @@ -0,0 +1,250 @@ + + + diff --git a/src/views/mes/dv/machinery/MachineryImportForm.vue b/src/views/mes/dv/machinery/MachineryImportForm.vue new file mode 100644 index 000000000..4a9ba4730 --- /dev/null +++ b/src/views/mes/dv/machinery/MachineryImportForm.vue @@ -0,0 +1,138 @@ + + diff --git a/src/views/mes/dv/machinery/MachineryMaintenRecordList.vue b/src/views/mes/dv/machinery/MachineryMaintenRecordList.vue new file mode 100644 index 000000000..29ad115b3 --- /dev/null +++ b/src/views/mes/dv/machinery/MachineryMaintenRecordList.vue @@ -0,0 +1,97 @@ + + + + diff --git a/src/views/mes/dv/machinery/MachineryRepairList.vue b/src/views/mes/dv/machinery/MachineryRepairList.vue new file mode 100644 index 000000000..ba1fb31e5 --- /dev/null +++ b/src/views/mes/dv/machinery/MachineryRepairList.vue @@ -0,0 +1,93 @@ + + + + diff --git a/src/views/mes/dv/machinery/components/DvMachinerySelect.vue b/src/views/mes/dv/machinery/components/DvMachinerySelect.vue new file mode 100644 index 000000000..1ca50556d --- /dev/null +++ b/src/views/mes/dv/machinery/components/DvMachinerySelect.vue @@ -0,0 +1,170 @@ + + + + + + diff --git a/src/views/mes/dv/machinery/components/DvMachinerySelectDialog.vue b/src/views/mes/dv/machinery/components/DvMachinerySelectDialog.vue new file mode 100644 index 000000000..9124b4576 --- /dev/null +++ b/src/views/mes/dv/machinery/components/DvMachinerySelectDialog.vue @@ -0,0 +1,318 @@ + + + + + + diff --git a/src/views/mes/dv/machinery/index.vue b/src/views/mes/dv/machinery/index.vue new file mode 100644 index 000000000..0d5fd2872 --- /dev/null +++ b/src/views/mes/dv/machinery/index.vue @@ -0,0 +1,302 @@ + + + + diff --git a/src/views/mes/dv/machinery/type/MachineryTypeForm.vue b/src/views/mes/dv/machinery/type/MachineryTypeForm.vue new file mode 100644 index 000000000..4ae301fb0 --- /dev/null +++ b/src/views/mes/dv/machinery/type/MachineryTypeForm.vue @@ -0,0 +1,168 @@ + + + diff --git a/src/views/mes/dv/machinery/type/components/DvMachineryTypeSelect.vue b/src/views/mes/dv/machinery/type/components/DvMachineryTypeSelect.vue new file mode 100644 index 000000000..11da463c2 --- /dev/null +++ b/src/views/mes/dv/machinery/type/components/DvMachineryTypeSelect.vue @@ -0,0 +1,97 @@ + + + + diff --git a/src/views/mes/dv/machinery/type/components/MachineryTypeTree.vue b/src/views/mes/dv/machinery/type/components/MachineryTypeTree.vue new file mode 100644 index 000000000..6aa80bfe9 --- /dev/null +++ b/src/views/mes/dv/machinery/type/components/MachineryTypeTree.vue @@ -0,0 +1,104 @@ + + + + diff --git a/src/views/mes/dv/machinery/type/index.vue b/src/views/mes/dv/machinery/type/index.vue new file mode 100644 index 000000000..5510dfeaa --- /dev/null +++ b/src/views/mes/dv/machinery/type/index.vue @@ -0,0 +1,187 @@ + + + + diff --git a/src/views/mes/dv/maintenrecord/MaintenRecordForm.vue b/src/views/mes/dv/maintenrecord/MaintenRecordForm.vue new file mode 100644 index 000000000..26b6db417 --- /dev/null +++ b/src/views/mes/dv/maintenrecord/MaintenRecordForm.vue @@ -0,0 +1,210 @@ + + + diff --git a/src/views/mes/dv/maintenrecord/MaintenRecordLineList.vue b/src/views/mes/dv/maintenrecord/MaintenRecordLineList.vue new file mode 100644 index 000000000..c373e8c54 --- /dev/null +++ b/src/views/mes/dv/maintenrecord/MaintenRecordLineList.vue @@ -0,0 +1,177 @@ + + + + diff --git a/src/views/mes/dv/maintenrecord/index.vue b/src/views/mes/dv/maintenrecord/index.vue new file mode 100644 index 000000000..84328c568 --- /dev/null +++ b/src/views/mes/dv/maintenrecord/index.vue @@ -0,0 +1,208 @@ + + + diff --git a/src/views/mes/dv/repair/RepairForm.vue b/src/views/mes/dv/repair/RepairForm.vue new file mode 100644 index 000000000..857d07ab7 --- /dev/null +++ b/src/views/mes/dv/repair/RepairForm.vue @@ -0,0 +1,362 @@ + + + diff --git a/src/views/mes/dv/repair/RepairLineList.vue b/src/views/mes/dv/repair/RepairLineList.vue new file mode 100644 index 000000000..f3aae7134 --- /dev/null +++ b/src/views/mes/dv/repair/RepairLineList.vue @@ -0,0 +1,191 @@ + + + + diff --git a/src/views/mes/dv/repair/index.vue b/src/views/mes/dv/repair/index.vue new file mode 100644 index 000000000..2a2c405f8 --- /dev/null +++ b/src/views/mes/dv/repair/index.vue @@ -0,0 +1,277 @@ + + + diff --git a/src/views/mes/dv/subject/SubjectForm.vue b/src/views/mes/dv/subject/SubjectForm.vue new file mode 100644 index 000000000..bcf94f04e --- /dev/null +++ b/src/views/mes/dv/subject/SubjectForm.vue @@ -0,0 +1,168 @@ + + + diff --git a/src/views/mes/dv/subject/components/DvSubjectSelect.vue b/src/views/mes/dv/subject/components/DvSubjectSelect.vue new file mode 100644 index 000000000..00503d644 --- /dev/null +++ b/src/views/mes/dv/subject/components/DvSubjectSelect.vue @@ -0,0 +1,177 @@ + + + + + + diff --git a/src/views/mes/dv/subject/components/DvSubjectSelectDialog.vue b/src/views/mes/dv/subject/components/DvSubjectSelectDialog.vue new file mode 100644 index 000000000..1cedcbb86 --- /dev/null +++ b/src/views/mes/dv/subject/components/DvSubjectSelectDialog.vue @@ -0,0 +1,315 @@ + + + + + + diff --git a/src/views/mes/dv/subject/index.vue b/src/views/mes/dv/subject/index.vue new file mode 100644 index 000000000..5bc90f714 --- /dev/null +++ b/src/views/mes/dv/subject/index.vue @@ -0,0 +1,226 @@ + + + diff --git a/src/views/mes/home/HomeAlertPanel.vue b/src/views/mes/home/HomeAlertPanel.vue new file mode 100644 index 000000000..094b4d00e --- /dev/null +++ b/src/views/mes/home/HomeAlertPanel.vue @@ -0,0 +1,80 @@ + + + + + + diff --git a/src/views/mes/home/HomeKpiCards.vue b/src/views/mes/home/HomeKpiCards.vue new file mode 100644 index 000000000..cedd2ee56 --- /dev/null +++ b/src/views/mes/home/HomeKpiCards.vue @@ -0,0 +1,192 @@ + + + + + + diff --git a/src/views/mes/home/HomeProductionTrend.vue b/src/views/mes/home/HomeProductionTrend.vue new file mode 100644 index 000000000..77ad47c48 --- /dev/null +++ b/src/views/mes/home/HomeProductionTrend.vue @@ -0,0 +1,78 @@ + + + + diff --git a/src/views/mes/home/HomeShortcuts.vue b/src/views/mes/home/HomeShortcuts.vue new file mode 100644 index 000000000..c0f6c78c6 --- /dev/null +++ b/src/views/mes/home/HomeShortcuts.vue @@ -0,0 +1,47 @@ + + + + diff --git a/src/views/mes/home/HomeWorkOrderChart.vue b/src/views/mes/home/HomeWorkOrderChart.vue new file mode 100644 index 000000000..51d4aa57f --- /dev/null +++ b/src/views/mes/home/HomeWorkOrderChart.vue @@ -0,0 +1,57 @@ + + + + diff --git a/src/views/mes/home/index.vue b/src/views/mes/home/index.vue new file mode 100644 index 000000000..18e9b6d77 --- /dev/null +++ b/src/views/mes/home/index.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/views/mes/md/autocode/AutoCodePartForm.vue b/src/views/mes/md/autocode/AutoCodePartForm.vue new file mode 100644 index 000000000..8bda03969 --- /dev/null +++ b/src/views/mes/md/autocode/AutoCodePartForm.vue @@ -0,0 +1,223 @@ + + + + diff --git a/src/views/mes/md/autocode/AutoCodePartList.vue b/src/views/mes/md/autocode/AutoCodePartList.vue new file mode 100644 index 000000000..d12f92f1e --- /dev/null +++ b/src/views/mes/md/autocode/AutoCodePartList.vue @@ -0,0 +1,100 @@ + + + + diff --git a/src/views/mes/md/autocode/AutoCodeRuleForm.vue b/src/views/mes/md/autocode/AutoCodeRuleForm.vue new file mode 100644 index 000000000..78208b257 --- /dev/null +++ b/src/views/mes/md/autocode/AutoCodeRuleForm.vue @@ -0,0 +1,196 @@ + + + + diff --git a/src/views/mes/md/autocode/index.vue b/src/views/mes/md/autocode/index.vue new file mode 100644 index 000000000..45d333fca --- /dev/null +++ b/src/views/mes/md/autocode/index.vue @@ -0,0 +1,207 @@ + + + + diff --git a/src/views/mes/md/client/ClientProductSalesLineList.vue b/src/views/mes/md/client/ClientProductSalesLineList.vue new file mode 100644 index 000000000..fdc9e5816 --- /dev/null +++ b/src/views/mes/md/client/ClientProductSalesLineList.vue @@ -0,0 +1,78 @@ + + + diff --git a/src/views/mes/md/client/ClientProductSalesList.vue b/src/views/mes/md/client/ClientProductSalesList.vue new file mode 100644 index 000000000..23ab02e54 --- /dev/null +++ b/src/views/mes/md/client/ClientProductSalesList.vue @@ -0,0 +1,89 @@ + + + diff --git a/src/views/mes/md/client/MdClientForm.vue b/src/views/mes/md/client/MdClientForm.vue new file mode 100644 index 000000000..a39cd8070 --- /dev/null +++ b/src/views/mes/md/client/MdClientForm.vue @@ -0,0 +1,324 @@ + + diff --git a/src/views/mes/md/client/MdClientImportForm.vue b/src/views/mes/md/client/MdClientImportForm.vue new file mode 100644 index 000000000..9d1268057 --- /dev/null +++ b/src/views/mes/md/client/MdClientImportForm.vue @@ -0,0 +1,138 @@ + + diff --git a/src/views/mes/md/client/components/MdClientSelect.vue b/src/views/mes/md/client/components/MdClientSelect.vue new file mode 100644 index 000000000..8546ee96e --- /dev/null +++ b/src/views/mes/md/client/components/MdClientSelect.vue @@ -0,0 +1,170 @@ + + + + + + diff --git a/src/views/mes/md/client/components/MdClientSelectDialog.vue b/src/views/mes/md/client/components/MdClientSelectDialog.vue new file mode 100644 index 000000000..0a435a56e --- /dev/null +++ b/src/views/mes/md/client/components/MdClientSelectDialog.vue @@ -0,0 +1,306 @@ + + + + + + diff --git a/src/views/mes/md/client/index.vue b/src/views/mes/md/client/index.vue new file mode 100644 index 000000000..01cdba04e --- /dev/null +++ b/src/views/mes/md/client/index.vue @@ -0,0 +1,266 @@ + + + diff --git a/src/views/mes/md/item/MdItemBatchConfigForm.vue b/src/views/mes/md/item/MdItemBatchConfigForm.vue new file mode 100644 index 000000000..2dd097be7 --- /dev/null +++ b/src/views/mes/md/item/MdItemBatchConfigForm.vue @@ -0,0 +1,118 @@ + + + + diff --git a/src/views/mes/md/item/MdItemForm.vue b/src/views/mes/md/item/MdItemForm.vue new file mode 100644 index 000000000..965f597c1 --- /dev/null +++ b/src/views/mes/md/item/MdItemForm.vue @@ -0,0 +1,279 @@ + + + diff --git a/src/views/mes/md/item/MdItemImportForm.vue b/src/views/mes/md/item/MdItemImportForm.vue new file mode 100644 index 000000000..afa308a30 --- /dev/null +++ b/src/views/mes/md/item/MdItemImportForm.vue @@ -0,0 +1,138 @@ + + diff --git a/src/views/mes/md/item/MdProductBomForm.vue b/src/views/mes/md/item/MdProductBomForm.vue new file mode 100644 index 000000000..2efbb629f --- /dev/null +++ b/src/views/mes/md/item/MdProductBomForm.vue @@ -0,0 +1,239 @@ + + + + diff --git a/src/views/mes/md/item/MdProductSipForm.vue b/src/views/mes/md/item/MdProductSipForm.vue new file mode 100644 index 000000000..4355ef86c --- /dev/null +++ b/src/views/mes/md/item/MdProductSipForm.vue @@ -0,0 +1,241 @@ + + + + diff --git a/src/views/mes/md/item/MdProductSopForm.vue b/src/views/mes/md/item/MdProductSopForm.vue new file mode 100644 index 000000000..7579fe916 --- /dev/null +++ b/src/views/mes/md/item/MdProductSopForm.vue @@ -0,0 +1,240 @@ + + + + diff --git a/src/views/mes/md/item/components/MdItemSelect.vue b/src/views/mes/md/item/components/MdItemSelect.vue new file mode 100644 index 000000000..d5e2fd85f --- /dev/null +++ b/src/views/mes/md/item/components/MdItemSelect.vue @@ -0,0 +1,170 @@ + + + + + + diff --git a/src/views/mes/md/item/components/MdItemSelectDialog.vue b/src/views/mes/md/item/components/MdItemSelectDialog.vue new file mode 100644 index 000000000..dd6553d38 --- /dev/null +++ b/src/views/mes/md/item/components/MdItemSelectDialog.vue @@ -0,0 +1,316 @@ + + + + + + diff --git a/src/views/mes/md/item/components/MdProductBomSelect.vue b/src/views/mes/md/item/components/MdProductBomSelect.vue new file mode 100644 index 000000000..7faab73ab --- /dev/null +++ b/src/views/mes/md/item/components/MdProductBomSelect.vue @@ -0,0 +1,183 @@ + + + + + + diff --git a/src/views/mes/md/item/components/MdProductBomSelectDialog.vue b/src/views/mes/md/item/components/MdProductBomSelectDialog.vue new file mode 100644 index 000000000..969085c66 --- /dev/null +++ b/src/views/mes/md/item/components/MdProductBomSelectDialog.vue @@ -0,0 +1,143 @@ + + + + + + diff --git a/src/views/mes/md/item/index.vue b/src/views/mes/md/item/index.vue new file mode 100644 index 000000000..c19ae5337 --- /dev/null +++ b/src/views/mes/md/item/index.vue @@ -0,0 +1,298 @@ + + + + diff --git a/src/views/mes/md/item/type/MdItemTypeForm.vue b/src/views/mes/md/item/type/MdItemTypeForm.vue new file mode 100644 index 000000000..b1460a14a --- /dev/null +++ b/src/views/mes/md/item/type/MdItemTypeForm.vue @@ -0,0 +1,186 @@ + + + diff --git a/src/views/mes/md/item/type/components/MdItemTypeSelect.vue b/src/views/mes/md/item/type/components/MdItemTypeSelect.vue new file mode 100644 index 000000000..2b6048b3c --- /dev/null +++ b/src/views/mes/md/item/type/components/MdItemTypeSelect.vue @@ -0,0 +1,97 @@ + + + + diff --git a/src/views/mes/md/item/type/components/MdItemTypeTree.vue b/src/views/mes/md/item/type/components/MdItemTypeTree.vue new file mode 100644 index 000000000..a80ace012 --- /dev/null +++ b/src/views/mes/md/item/type/components/MdItemTypeTree.vue @@ -0,0 +1,104 @@ + + + + diff --git a/src/views/mes/md/item/type/index.vue b/src/views/mes/md/item/type/index.vue new file mode 100644 index 000000000..bfec32e69 --- /dev/null +++ b/src/views/mes/md/item/type/index.vue @@ -0,0 +1,193 @@ + + + + diff --git a/src/views/mes/md/unitmeasure/UnitMeasureForm.vue b/src/views/mes/md/unitmeasure/UnitMeasureForm.vue new file mode 100644 index 000000000..2cefbba4f --- /dev/null +++ b/src/views/mes/md/unitmeasure/UnitMeasureForm.vue @@ -0,0 +1,175 @@ + + + diff --git a/src/views/mes/md/unitmeasure/components/MdUnitMeasureSelect.vue b/src/views/mes/md/unitmeasure/components/MdUnitMeasureSelect.vue new file mode 100644 index 000000000..7f6de680a --- /dev/null +++ b/src/views/mes/md/unitmeasure/components/MdUnitMeasureSelect.vue @@ -0,0 +1,115 @@ + + + + diff --git a/src/views/mes/md/unitmeasure/index.vue b/src/views/mes/md/unitmeasure/index.vue new file mode 100644 index 000000000..80f614253 --- /dev/null +++ b/src/views/mes/md/unitmeasure/index.vue @@ -0,0 +1,211 @@ + + + + diff --git a/src/views/mes/md/vendor/MdVendorForm.vue b/src/views/mes/md/vendor/MdVendorForm.vue new file mode 100644 index 000000000..a9fa426d4 --- /dev/null +++ b/src/views/mes/md/vendor/MdVendorForm.vue @@ -0,0 +1,334 @@ + + diff --git a/src/views/mes/md/vendor/MdVendorImportForm.vue b/src/views/mes/md/vendor/MdVendorImportForm.vue new file mode 100644 index 000000000..f1cf6055a --- /dev/null +++ b/src/views/mes/md/vendor/MdVendorImportForm.vue @@ -0,0 +1,138 @@ + + diff --git a/src/views/mes/md/vendor/VendorItemReceiptLineList.vue b/src/views/mes/md/vendor/VendorItemReceiptLineList.vue new file mode 100644 index 000000000..cc6d57f6f --- /dev/null +++ b/src/views/mes/md/vendor/VendorItemReceiptLineList.vue @@ -0,0 +1,78 @@ + + + diff --git a/src/views/mes/md/vendor/VendorItemReceiptList.vue b/src/views/mes/md/vendor/VendorItemReceiptList.vue new file mode 100644 index 000000000..b70294501 --- /dev/null +++ b/src/views/mes/md/vendor/VendorItemReceiptList.vue @@ -0,0 +1,79 @@ + + + diff --git a/src/views/mes/md/vendor/components/MdVendorSelect.vue b/src/views/mes/md/vendor/components/MdVendorSelect.vue new file mode 100644 index 000000000..c72ad32b0 --- /dev/null +++ b/src/views/mes/md/vendor/components/MdVendorSelect.vue @@ -0,0 +1,170 @@ + + + + + + diff --git a/src/views/mes/md/vendor/components/MdVendorSelectDialog.vue b/src/views/mes/md/vendor/components/MdVendorSelectDialog.vue new file mode 100644 index 000000000..ad34166b5 --- /dev/null +++ b/src/views/mes/md/vendor/components/MdVendorSelectDialog.vue @@ -0,0 +1,320 @@ + + + + + + diff --git a/src/views/mes/md/vendor/index.vue b/src/views/mes/md/vendor/index.vue new file mode 100644 index 000000000..8bcaf65dc --- /dev/null +++ b/src/views/mes/md/vendor/index.vue @@ -0,0 +1,242 @@ + + + diff --git a/src/views/mes/md/workstation/WorkstationForm.vue b/src/views/mes/md/workstation/WorkstationForm.vue new file mode 100644 index 000000000..52e3b44bf --- /dev/null +++ b/src/views/mes/md/workstation/WorkstationForm.vue @@ -0,0 +1,307 @@ + + diff --git a/src/views/mes/md/workstation/WorkstationMachineList.vue b/src/views/mes/md/workstation/WorkstationMachineList.vue new file mode 100644 index 000000000..a8f367aca --- /dev/null +++ b/src/views/mes/md/workstation/WorkstationMachineList.vue @@ -0,0 +1,170 @@ + + + + diff --git a/src/views/mes/md/workstation/WorkstationToolList.vue b/src/views/mes/md/workstation/WorkstationToolList.vue new file mode 100644 index 000000000..3d5539cfd --- /dev/null +++ b/src/views/mes/md/workstation/WorkstationToolList.vue @@ -0,0 +1,181 @@ + + + + diff --git a/src/views/mes/md/workstation/WorkstationWorkerList.vue b/src/views/mes/md/workstation/WorkstationWorkerList.vue new file mode 100644 index 000000000..6c64af0fd --- /dev/null +++ b/src/views/mes/md/workstation/WorkstationWorkerList.vue @@ -0,0 +1,186 @@ + + + + diff --git a/src/views/mes/md/workstation/components/MdWorkshopSelect.vue b/src/views/mes/md/workstation/components/MdWorkshopSelect.vue new file mode 100644 index 000000000..c33a3cc3d --- /dev/null +++ b/src/views/mes/md/workstation/components/MdWorkshopSelect.vue @@ -0,0 +1,112 @@ + + + + diff --git a/src/views/mes/md/workstation/components/MdWorkstationSelect.vue b/src/views/mes/md/workstation/components/MdWorkstationSelect.vue new file mode 100644 index 000000000..3e520e7c8 --- /dev/null +++ b/src/views/mes/md/workstation/components/MdWorkstationSelect.vue @@ -0,0 +1,177 @@ + + + + + + diff --git a/src/views/mes/md/workstation/components/MdWorkstationSelectDialog.vue b/src/views/mes/md/workstation/components/MdWorkstationSelectDialog.vue new file mode 100644 index 000000000..67795acaa --- /dev/null +++ b/src/views/mes/md/workstation/components/MdWorkstationSelectDialog.vue @@ -0,0 +1,280 @@ + + + + + + diff --git a/src/views/mes/md/workstation/index.vue b/src/views/mes/md/workstation/index.vue new file mode 100644 index 000000000..9924d3bef --- /dev/null +++ b/src/views/mes/md/workstation/index.vue @@ -0,0 +1,251 @@ + + + diff --git a/src/views/mes/md/workstation/workshop/WorkshopForm.vue b/src/views/mes/md/workstation/workshop/WorkshopForm.vue new file mode 100644 index 000000000..b97019797 --- /dev/null +++ b/src/views/mes/md/workstation/workshop/WorkshopForm.vue @@ -0,0 +1,207 @@ + + diff --git a/src/views/mes/md/workstation/workshop/index.vue b/src/views/mes/md/workstation/workshop/index.vue new file mode 100644 index 000000000..22a06a1ce --- /dev/null +++ b/src/views/mes/md/workstation/workshop/index.vue @@ -0,0 +1,178 @@ + + + diff --git a/src/views/mes/pro/andon/config/AndonConfigForm.vue b/src/views/mes/pro/andon/config/AndonConfigForm.vue new file mode 100644 index 000000000..b817c57ad --- /dev/null +++ b/src/views/mes/pro/andon/config/AndonConfigForm.vue @@ -0,0 +1,199 @@ + + + + diff --git a/src/views/mes/pro/andon/config/components/AndonConfigSelect.vue b/src/views/mes/pro/andon/config/components/AndonConfigSelect.vue new file mode 100644 index 000000000..9e2ebd8ce --- /dev/null +++ b/src/views/mes/pro/andon/config/components/AndonConfigSelect.vue @@ -0,0 +1,76 @@ + + + + diff --git a/src/views/mes/pro/andon/record/AndonRecordForm.vue b/src/views/mes/pro/andon/record/AndonRecordForm.vue new file mode 100644 index 000000000..8b0cfa57e --- /dev/null +++ b/src/views/mes/pro/andon/record/AndonRecordForm.vue @@ -0,0 +1,276 @@ + + + + diff --git a/src/views/mes/pro/andon/record/index.vue b/src/views/mes/pro/andon/record/index.vue new file mode 100644 index 000000000..12e279a77 --- /dev/null +++ b/src/views/mes/pro/andon/record/index.vue @@ -0,0 +1,259 @@ + + + + diff --git a/src/views/mes/pro/card/CardForm.vue b/src/views/mes/pro/card/CardForm.vue new file mode 100644 index 000000000..59a3d16b6 --- /dev/null +++ b/src/views/mes/pro/card/CardForm.vue @@ -0,0 +1,268 @@ + + + + diff --git a/src/views/mes/pro/card/CardProcessList.vue b/src/views/mes/pro/card/CardProcessList.vue new file mode 100644 index 000000000..336780349 --- /dev/null +++ b/src/views/mes/pro/card/CardProcessList.vue @@ -0,0 +1,293 @@ + + + + diff --git a/src/views/mes/pro/card/components/ProCardSelect.vue b/src/views/mes/pro/card/components/ProCardSelect.vue new file mode 100644 index 000000000..affce8926 --- /dev/null +++ b/src/views/mes/pro/card/components/ProCardSelect.vue @@ -0,0 +1,170 @@ + + + + + + diff --git a/src/views/mes/pro/card/components/ProCardSelectDialog.vue b/src/views/mes/pro/card/components/ProCardSelectDialog.vue new file mode 100644 index 000000000..d238d3c04 --- /dev/null +++ b/src/views/mes/pro/card/components/ProCardSelectDialog.vue @@ -0,0 +1,290 @@ + + + + + + diff --git a/src/views/mes/pro/card/index.vue b/src/views/mes/pro/card/index.vue new file mode 100644 index 000000000..c24ed1407 --- /dev/null +++ b/src/views/mes/pro/card/index.vue @@ -0,0 +1,242 @@ + + + + diff --git a/src/views/mes/pro/feedback/FeedbackForm.vue b/src/views/mes/pro/feedback/FeedbackForm.vue new file mode 100644 index 000000000..33273dc35 --- /dev/null +++ b/src/views/mes/pro/feedback/FeedbackForm.vue @@ -0,0 +1,612 @@ + + + + diff --git a/src/views/mes/pro/feedback/ItemConsumeList.vue b/src/views/mes/pro/feedback/ItemConsumeList.vue new file mode 100644 index 000000000..7578ccbe7 --- /dev/null +++ b/src/views/mes/pro/feedback/ItemConsumeList.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/views/mes/pro/feedback/ProductProduceList.vue b/src/views/mes/pro/feedback/ProductProduceList.vue new file mode 100644 index 000000000..4f1b4f141 --- /dev/null +++ b/src/views/mes/pro/feedback/ProductProduceList.vue @@ -0,0 +1,73 @@ + + + + diff --git a/src/views/mes/pro/feedback/index.vue b/src/views/mes/pro/feedback/index.vue new file mode 100644 index 000000000..458e6448c --- /dev/null +++ b/src/views/mes/pro/feedback/index.vue @@ -0,0 +1,298 @@ + + + + diff --git a/src/views/mes/pro/process/ProProcessContentList.vue b/src/views/mes/pro/process/ProProcessContentList.vue new file mode 100644 index 000000000..30bfea621 --- /dev/null +++ b/src/views/mes/pro/process/ProProcessContentList.vue @@ -0,0 +1,189 @@ + + + + diff --git a/src/views/mes/pro/process/ProProcessForm.vue b/src/views/mes/pro/process/ProProcessForm.vue new file mode 100644 index 000000000..a2c7cb8d0 --- /dev/null +++ b/src/views/mes/pro/process/ProProcessForm.vue @@ -0,0 +1,168 @@ + + + + diff --git a/src/views/mes/pro/process/components/ProProcessSelect.vue b/src/views/mes/pro/process/components/ProProcessSelect.vue new file mode 100644 index 000000000..435154166 --- /dev/null +++ b/src/views/mes/pro/process/components/ProProcessSelect.vue @@ -0,0 +1,109 @@ + + + + diff --git a/src/views/mes/pro/process/index.vue b/src/views/mes/pro/process/index.vue new file mode 100644 index 000000000..da8da2379 --- /dev/null +++ b/src/views/mes/pro/process/index.vue @@ -0,0 +1,217 @@ + + + + diff --git a/src/views/mes/pro/route/RouteForm.vue b/src/views/mes/pro/route/RouteForm.vue new file mode 100644 index 000000000..a504acb52 --- /dev/null +++ b/src/views/mes/pro/route/RouteForm.vue @@ -0,0 +1,189 @@ + + + + diff --git a/src/views/mes/pro/route/RouteProcessList.vue b/src/views/mes/pro/route/RouteProcessList.vue new file mode 100644 index 000000000..b32af4d1e --- /dev/null +++ b/src/views/mes/pro/route/RouteProcessList.vue @@ -0,0 +1,274 @@ + + + + diff --git a/src/views/mes/pro/route/RouteProductBomList.vue b/src/views/mes/pro/route/RouteProductBomList.vue new file mode 100644 index 000000000..5d15b511c --- /dev/null +++ b/src/views/mes/pro/route/RouteProductBomList.vue @@ -0,0 +1,189 @@ + + + + diff --git a/src/views/mes/pro/route/RouteProductList.vue b/src/views/mes/pro/route/RouteProductList.vue new file mode 100644 index 000000000..3e7fd0196 --- /dev/null +++ b/src/views/mes/pro/route/RouteProductList.vue @@ -0,0 +1,199 @@ + + + + diff --git a/src/views/mes/pro/route/index.vue b/src/views/mes/pro/route/index.vue new file mode 100644 index 000000000..5d88fbe06 --- /dev/null +++ b/src/views/mes/pro/route/index.vue @@ -0,0 +1,246 @@ + + + + diff --git a/src/views/mes/pro/task/ProTaskList.vue b/src/views/mes/pro/task/ProTaskList.vue new file mode 100644 index 000000000..dd88b5aea --- /dev/null +++ b/src/views/mes/pro/task/ProTaskList.vue @@ -0,0 +1,330 @@ + + + + diff --git a/src/views/mes/pro/task/WorkOrderForm2.vue b/src/views/mes/pro/task/WorkOrderForm2.vue new file mode 100644 index 000000000..cffebe03b --- /dev/null +++ b/src/views/mes/pro/task/WorkOrderForm2.vue @@ -0,0 +1,251 @@ + + + + diff --git a/src/views/mes/pro/task/components/GanttChart.vue b/src/views/mes/pro/task/components/GanttChart.vue new file mode 100644 index 000000000..1629546de --- /dev/null +++ b/src/views/mes/pro/task/components/GanttChart.vue @@ -0,0 +1,256 @@ + + + + + + diff --git a/src/views/mes/pro/task/components/ProTaskSelect.vue b/src/views/mes/pro/task/components/ProTaskSelect.vue new file mode 100644 index 000000000..a0b52f96e --- /dev/null +++ b/src/views/mes/pro/task/components/ProTaskSelect.vue @@ -0,0 +1,182 @@ + + + + + + diff --git a/src/views/mes/pro/task/components/ProTaskSelectDialog.vue b/src/views/mes/pro/task/components/ProTaskSelectDialog.vue new file mode 100644 index 000000000..4ed2a39c6 --- /dev/null +++ b/src/views/mes/pro/task/components/ProTaskSelectDialog.vue @@ -0,0 +1,343 @@ + + + + + + diff --git a/src/views/mes/pro/task/edit/index.vue b/src/views/mes/pro/task/edit/index.vue new file mode 100644 index 000000000..a11b9bac1 --- /dev/null +++ b/src/views/mes/pro/task/edit/index.vue @@ -0,0 +1,92 @@ + + + diff --git a/src/views/mes/pro/task/index.vue b/src/views/mes/pro/task/index.vue new file mode 100644 index 000000000..aee3d8390 --- /dev/null +++ b/src/views/mes/pro/task/index.vue @@ -0,0 +1,231 @@ + + + + diff --git a/src/views/mes/pro/workorder/WorkOrderBomList.vue b/src/views/mes/pro/workorder/WorkOrderBomList.vue new file mode 100644 index 000000000..fbc9cfdc6 --- /dev/null +++ b/src/views/mes/pro/workorder/WorkOrderBomList.vue @@ -0,0 +1,241 @@ + + + + diff --git a/src/views/mes/pro/workorder/WorkOrderForm.vue b/src/views/mes/pro/workorder/WorkOrderForm.vue new file mode 100644 index 000000000..29dbbb995 --- /dev/null +++ b/src/views/mes/pro/workorder/WorkOrderForm.vue @@ -0,0 +1,446 @@ + + + + diff --git a/src/views/mes/pro/workorder/WorkOrderItemList.vue b/src/views/mes/pro/workorder/WorkOrderItemList.vue new file mode 100644 index 000000000..563b08857 --- /dev/null +++ b/src/views/mes/pro/workorder/WorkOrderItemList.vue @@ -0,0 +1,44 @@ + + + + diff --git a/src/views/mes/pro/workorder/components/ProWorkOrderSelect.vue b/src/views/mes/pro/workorder/components/ProWorkOrderSelect.vue new file mode 100644 index 000000000..52143e592 --- /dev/null +++ b/src/views/mes/pro/workorder/components/ProWorkOrderSelect.vue @@ -0,0 +1,178 @@ + + + + + + diff --git a/src/views/mes/pro/workorder/components/ProWorkOrderSelectDialog.vue b/src/views/mes/pro/workorder/components/ProWorkOrderSelectDialog.vue new file mode 100644 index 000000000..16f1961b4 --- /dev/null +++ b/src/views/mes/pro/workorder/components/ProWorkOrderSelectDialog.vue @@ -0,0 +1,338 @@ + + + + + + diff --git a/src/views/mes/pro/workorder/index.vue b/src/views/mes/pro/workorder/index.vue new file mode 100644 index 000000000..c85ac56cb --- /dev/null +++ b/src/views/mes/pro/workorder/index.vue @@ -0,0 +1,361 @@ + + + + diff --git a/src/views/mes/pro/workrecord/WorkRecordStatusBar.vue b/src/views/mes/pro/workrecord/WorkRecordStatusBar.vue new file mode 100644 index 000000000..e02133c43 --- /dev/null +++ b/src/views/mes/pro/workrecord/WorkRecordStatusBar.vue @@ -0,0 +1,114 @@ + + + + diff --git a/src/views/mes/pro/workrecord/index.vue b/src/views/mes/pro/workrecord/index.vue new file mode 100644 index 000000000..2e58fbd43 --- /dev/null +++ b/src/views/mes/pro/workrecord/index.vue @@ -0,0 +1,170 @@ + + + + diff --git a/src/views/mes/qc/batchtrace/BatchTraceDetail.vue b/src/views/mes/qc/batchtrace/BatchTraceDetail.vue new file mode 100644 index 000000000..d80169592 --- /dev/null +++ b/src/views/mes/qc/batchtrace/BatchTraceDetail.vue @@ -0,0 +1,78 @@ + + + diff --git a/src/views/mes/qc/batchtrace/BatchTraceDetailList.vue b/src/views/mes/qc/batchtrace/BatchTraceDetailList.vue new file mode 100644 index 000000000..8c227d027 --- /dev/null +++ b/src/views/mes/qc/batchtrace/BatchTraceDetailList.vue @@ -0,0 +1,58 @@ + + + diff --git a/src/views/mes/qc/batchtrace/index.vue b/src/views/mes/qc/batchtrace/index.vue new file mode 100644 index 000000000..75bcb9c39 --- /dev/null +++ b/src/views/mes/qc/batchtrace/index.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/views/mes/qc/defect/DefectForm.vue b/src/views/mes/qc/defect/DefectForm.vue new file mode 100644 index 000000000..6f49ad65c --- /dev/null +++ b/src/views/mes/qc/defect/DefectForm.vue @@ -0,0 +1,143 @@ + + + + diff --git a/src/views/mes/qc/defect/index.vue b/src/views/mes/qc/defect/index.vue new file mode 100644 index 000000000..99ddc1d51 --- /dev/null +++ b/src/views/mes/qc/defect/index.vue @@ -0,0 +1,226 @@ + + + + diff --git a/src/views/mes/qc/defectrecord/components/DefectRecordInlineList.vue b/src/views/mes/qc/defectrecord/components/DefectRecordInlineList.vue new file mode 100644 index 000000000..4cb9a62dc --- /dev/null +++ b/src/views/mes/qc/defectrecord/components/DefectRecordInlineList.vue @@ -0,0 +1,231 @@ + + + + diff --git a/src/views/mes/qc/indicator/IndicatorForm.vue b/src/views/mes/qc/indicator/IndicatorForm.vue new file mode 100644 index 000000000..c9a9a9431 --- /dev/null +++ b/src/views/mes/qc/indicator/IndicatorForm.vue @@ -0,0 +1,212 @@ + + + diff --git a/src/views/mes/qc/indicator/components/QcIndicatorSelect.vue b/src/views/mes/qc/indicator/components/QcIndicatorSelect.vue new file mode 100644 index 000000000..693779464 --- /dev/null +++ b/src/views/mes/qc/indicator/components/QcIndicatorSelect.vue @@ -0,0 +1,170 @@ + + + + + + diff --git a/src/views/mes/qc/indicator/components/QcIndicatorSelectDialog.vue b/src/views/mes/qc/indicator/components/QcIndicatorSelectDialog.vue new file mode 100644 index 000000000..7654c4e64 --- /dev/null +++ b/src/views/mes/qc/indicator/components/QcIndicatorSelectDialog.vue @@ -0,0 +1,277 @@ + + + + + + diff --git a/src/views/mes/qc/indicator/index.vue b/src/views/mes/qc/indicator/index.vue new file mode 100644 index 000000000..914bf8fc0 --- /dev/null +++ b/src/views/mes/qc/indicator/index.vue @@ -0,0 +1,232 @@ + + + + diff --git a/src/views/mes/qc/indicatorresult/components/QcIndicatorResultForm.vue b/src/views/mes/qc/indicatorresult/components/QcIndicatorResultForm.vue new file mode 100644 index 000000000..247e68248 --- /dev/null +++ b/src/views/mes/qc/indicatorresult/components/QcIndicatorResultForm.vue @@ -0,0 +1,213 @@ + + + + diff --git a/src/views/mes/qc/indicatorresult/components/QcIndicatorResultList.vue b/src/views/mes/qc/indicatorresult/components/QcIndicatorResultList.vue new file mode 100644 index 000000000..a60c4eab1 --- /dev/null +++ b/src/views/mes/qc/indicatorresult/components/QcIndicatorResultList.vue @@ -0,0 +1,109 @@ + + + + diff --git a/src/views/mes/qc/ipqc/IpqcForm.vue b/src/views/mes/qc/ipqc/IpqcForm.vue new file mode 100644 index 000000000..c7e427db4 --- /dev/null +++ b/src/views/mes/qc/ipqc/IpqcForm.vue @@ -0,0 +1,512 @@ + + + + diff --git a/src/views/mes/qc/ipqc/IpqcLineList.vue b/src/views/mes/qc/ipqc/IpqcLineList.vue new file mode 100644 index 000000000..b95ce3338 --- /dev/null +++ b/src/views/mes/qc/ipqc/IpqcLineList.vue @@ -0,0 +1,93 @@ + + + + diff --git a/src/views/mes/qc/ipqc/index.vue b/src/views/mes/qc/ipqc/index.vue new file mode 100644 index 000000000..b9074e811 --- /dev/null +++ b/src/views/mes/qc/ipqc/index.vue @@ -0,0 +1,256 @@ + + + + diff --git a/src/views/mes/qc/iqc/IqcForm.vue b/src/views/mes/qc/iqc/IqcForm.vue new file mode 100644 index 000000000..48dc20324 --- /dev/null +++ b/src/views/mes/qc/iqc/IqcForm.vue @@ -0,0 +1,427 @@ + + + + diff --git a/src/views/mes/qc/iqc/IqcLineList.vue b/src/views/mes/qc/iqc/IqcLineList.vue new file mode 100644 index 000000000..ae454dd55 --- /dev/null +++ b/src/views/mes/qc/iqc/IqcLineList.vue @@ -0,0 +1,94 @@ + + + + diff --git a/src/views/mes/qc/iqc/index.vue b/src/views/mes/qc/iqc/index.vue new file mode 100644 index 000000000..322a7a489 --- /dev/null +++ b/src/views/mes/qc/iqc/index.vue @@ -0,0 +1,288 @@ + + + + diff --git a/src/views/mes/qc/oqc/OqcForm.vue b/src/views/mes/qc/oqc/OqcForm.vue new file mode 100644 index 000000000..bf14d5666 --- /dev/null +++ b/src/views/mes/qc/oqc/OqcForm.vue @@ -0,0 +1,454 @@ + + + + diff --git a/src/views/mes/qc/oqc/OqcLineList.vue b/src/views/mes/qc/oqc/OqcLineList.vue new file mode 100644 index 000000000..a3efd5475 --- /dev/null +++ b/src/views/mes/qc/oqc/OqcLineList.vue @@ -0,0 +1,93 @@ + + + + diff --git a/src/views/mes/qc/oqc/index.vue b/src/views/mes/qc/oqc/index.vue new file mode 100644 index 000000000..5c5a4a322 --- /dev/null +++ b/src/views/mes/qc/oqc/index.vue @@ -0,0 +1,255 @@ + + + + diff --git a/src/views/mes/qc/pendinginspect/index.vue b/src/views/mes/qc/pendinginspect/index.vue new file mode 100644 index 000000000..3c96c3a6d --- /dev/null +++ b/src/views/mes/qc/pendinginspect/index.vue @@ -0,0 +1,248 @@ + + + + diff --git a/src/views/mes/qc/rqc/RqcForm.vue b/src/views/mes/qc/rqc/RqcForm.vue new file mode 100644 index 000000000..127029bbd --- /dev/null +++ b/src/views/mes/qc/rqc/RqcForm.vue @@ -0,0 +1,420 @@ + + + + diff --git a/src/views/mes/qc/rqc/RqcLineList.vue b/src/views/mes/qc/rqc/RqcLineList.vue new file mode 100644 index 000000000..8d59551f0 --- /dev/null +++ b/src/views/mes/qc/rqc/RqcLineList.vue @@ -0,0 +1,93 @@ + + + + diff --git a/src/views/mes/qc/rqc/index.vue b/src/views/mes/qc/rqc/index.vue new file mode 100644 index 000000000..9e5eb343b --- /dev/null +++ b/src/views/mes/qc/rqc/index.vue @@ -0,0 +1,283 @@ + + + + diff --git a/src/views/mes/qc/template/TemplateForm.vue b/src/views/mes/qc/template/TemplateForm.vue new file mode 100644 index 000000000..496e85948 --- /dev/null +++ b/src/views/mes/qc/template/TemplateForm.vue @@ -0,0 +1,199 @@ + + + + diff --git a/src/views/mes/qc/template/TemplateIndicatorList.vue b/src/views/mes/qc/template/TemplateIndicatorList.vue new file mode 100644 index 000000000..27310abb7 --- /dev/null +++ b/src/views/mes/qc/template/TemplateIndicatorList.vue @@ -0,0 +1,287 @@ + + + + diff --git a/src/views/mes/qc/template/TemplateItemList.vue b/src/views/mes/qc/template/TemplateItemList.vue new file mode 100644 index 000000000..3a9e7ecf7 --- /dev/null +++ b/src/views/mes/qc/template/TemplateItemList.vue @@ -0,0 +1,283 @@ + + + + diff --git a/src/views/mes/qc/template/index.vue b/src/views/mes/qc/template/index.vue new file mode 100644 index 000000000..c902cca24 --- /dev/null +++ b/src/views/mes/qc/template/index.vue @@ -0,0 +1,227 @@ + + + + diff --git a/src/views/mes/tm/tool/ToolForm.vue b/src/views/mes/tm/tool/ToolForm.vue new file mode 100644 index 000000000..a35bb1f6d --- /dev/null +++ b/src/views/mes/tm/tool/ToolForm.vue @@ -0,0 +1,295 @@ + + + diff --git a/src/views/mes/tm/tool/components/TmToolSelect.vue b/src/views/mes/tm/tool/components/TmToolSelect.vue new file mode 100644 index 000000000..14508e3b6 --- /dev/null +++ b/src/views/mes/tm/tool/components/TmToolSelect.vue @@ -0,0 +1,171 @@ + + + + + + diff --git a/src/views/mes/tm/tool/components/TmToolSelectDialog.vue b/src/views/mes/tm/tool/components/TmToolSelectDialog.vue new file mode 100644 index 000000000..aa210d1c5 --- /dev/null +++ b/src/views/mes/tm/tool/components/TmToolSelectDialog.vue @@ -0,0 +1,314 @@ + + + + + + diff --git a/src/views/mes/tm/tool/index.vue b/src/views/mes/tm/tool/index.vue new file mode 100644 index 000000000..8a08c483b --- /dev/null +++ b/src/views/mes/tm/tool/index.vue @@ -0,0 +1,282 @@ + + + + diff --git a/src/views/mes/tm/tool/type/ToolTypeForm.vue b/src/views/mes/tm/tool/type/ToolTypeForm.vue new file mode 100644 index 000000000..d1913a8fd --- /dev/null +++ b/src/views/mes/tm/tool/type/ToolTypeForm.vue @@ -0,0 +1,197 @@ + + + diff --git a/src/views/mes/tm/tool/type/components/TmToolTypeList.vue b/src/views/mes/tm/tool/type/components/TmToolTypeList.vue new file mode 100644 index 000000000..165799a75 --- /dev/null +++ b/src/views/mes/tm/tool/type/components/TmToolTypeList.vue @@ -0,0 +1,104 @@ + + + + diff --git a/src/views/mes/tm/tool/type/components/TmToolTypeSelect.vue b/src/views/mes/tm/tool/type/components/TmToolTypeSelect.vue new file mode 100644 index 000000000..88d7d9b72 --- /dev/null +++ b/src/views/mes/tm/tool/type/components/TmToolTypeSelect.vue @@ -0,0 +1,111 @@ + + + + diff --git a/src/views/mes/tm/tool/type/index.vue b/src/views/mes/tm/tool/type/index.vue new file mode 100644 index 000000000..f5cde5260 --- /dev/null +++ b/src/views/mes/tm/tool/type/index.vue @@ -0,0 +1,247 @@ + + + + diff --git a/src/views/mes/utils/constants.ts b/src/views/mes/utils/constants.ts new file mode 100644 index 000000000..7eab07311 --- /dev/null +++ b/src/views/mes/utils/constants.ts @@ -0,0 +1,534 @@ +/** MES 单据状态常量 */ +export const MesOrderStatusConstants = { + DRAFT: 0, + CONFIRMED: 1, + APPROVING: 2, + APPROVED: 3, + FINISHED: 4, + CANCELLED: 5 +} as const + +/** MES 工具状态枚举 */ +export const MesToolStatusEnum = { + STORE: 1, // 在库 + ISSUE: 2, // 领用中 + REPAIR: 3, // 维修中 + SCRAP: 4 // 报废 +} + +/** MES 保养维护类型枚举 */ +export const MesMaintenTypeEnum = { + REGULAR: 1, // 定期维护 + USAGE: 2 // 按使用次数维护 +} + +/** MES 物料/产品标识枚举 */ +export const MesItemOrProductEnum = { + ITEM: { + label: '物料', + value: 'ITEM' + }, + PRODUCT: { + label: '产品', + value: 'PRODUCT' + } +} as const + +/** MES 设备状态枚举 */ +export const MesDvMachineryStatusEnum = { + STOP: 1, // 停机 + PRODUCING: 2, // 生产中 + MAINTENANCE: 3 // 维护中 +} + +/** MES 假期类型枚举 */ +export const HolidayType = { + WORKDAY: 1, // 工作日 + HOLIDAY: 2 // 节假日 +} as const + +/** MES 排班计划状态枚举 */ +export const MesCalPlanStatusEnum = { + PREPARE: 0, // 草稿 + CONFIRMED: 1 // 已确认 +} + +/** MES 轮班方式枚举 */ +export const MesCalShiftTypeEnum = { + SINGLE: 1, // 单白班 + TWO: 2, // 两班倒 + THREE: 3 // 三班倒 +} + +/** MES 倒班方式枚举 */ +export const MesCalShiftMethodEnum = { + QUARTER: 1, // 按季度 + MONTH: 2, // 按月 + WEEK: 3, // 按周 + DAY: 4 // 按天 +} + +/** MES 生产工单状态枚举 */ +export const MesProWorkOrderStatusEnum = { + PREPARE: 0, // 草稿 + CONFIRMED: 1, // 已确认 + FINISHED: 2, // 已完成 + CANCELED: 3 // 已取消 +} + +/** MES 生产流转卡状态枚举(复用工单状态值) */ +export const MesProCardStatusEnum = { + PREPARE: 0, // 草稿 + CONFIRMED: 1, // 已确认 + FINISHED: 2, // 已完成 + CANCELED: 3 // 已取消 +} + +/** MES 工单类型枚举 */ +export const MesProWorkOrderTypeEnum = { + SELF: 1, // 自行生产 + OUTSOURCE: 2, // 代工 + PURCHASE: 3 // 采购 +} + +/** MES 工单来源类型枚举 */ +export const MesProWorkOrderSourceTypeEnum = { + ORDER: 1, // 客户订单 + STORE: 2 // 库存备货 +} + +/** MES 生产任务状态枚举 */ +export const MesProTaskStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, // 草稿 + FINISHED: MesOrderStatusConstants.FINISHED, // 已完成 + CANCELED: MesOrderStatusConstants.CANCELLED // 已取消 +} + +/** MES 点检保养项目类型枚举(对应字典 mes_dv_subject_type) */ +export const MesDvSubjectTypeEnum = { + CHECK: 1, // 点检 + MAINTENANCE: 2 // 保养 +} + +/** MES 点检保养方案状态枚举 */ +export const MesDvCheckPlanStatusEnum = { + PREPARE: 0, // 草稿 + ENABLED: 1 // 已启用 +} + +/** MES 设备保养记录状态枚举 */ +export const MesDvMaintenRecordStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, // 草稿 + SUBMITTED: MesOrderStatusConstants.FINISHED // 已提交 +} + +/** MES 设备保养明细结果枚举(对应字典 mes_mainten_status) */ +export const MesDvMaintenStatusEnum = { + NORMAL: 1, // 正常 + ABNORMAL: 2 // 异常 +} + +/** MES 设备点检记录状态枚举 */ +export const MesDvCheckRecordStatusEnum = { + DRAFT: 10, // 草稿 + FINISHED: 20 // 已完成 +} + +/** MES 设备点检结果枚举(对应字典 mes_dv_check_result) */ +export const MesDvCheckResultEnum = { + NORMAL: 1, // 正常 + ABNORMAL: 2 // 异常 +} + +/** MES 质检结果值类型枚举 */ +export const MesQcResultValueType = { + FLOAT: 1, // 浮点 + INTEGER: 2, // 整数 + TEXT: 3, // 文本 + DICT: 4, // 字典 + FILE: 5 // 文件 +} as const + +/** MES 业务类型常量 */ +export const MesBizTypeEnum = { + // WM 仓库模块 [100, 200) + WM_ARRIVAL_NOTICE: 100, // 到货通知单 + WM_RETURN_ISSUE: 116, // 生产退料 + WM_PRODUCT_SALES: 118, // 销售出库 + WM_RETURN_SALES: 119, // 销售退货入库 + WM_OUTSOURCE_RECPT: 121, // 外协入库 + + // PRO 生产模块 [300, 400) + PRO_FEEDBACK: 304 // 生产报工 +} + +/** MES 质检来源单据类型枚举 */ +export const MesQcSourceDocTypeEnum = { + // IQC + ARRIVAL_NOTICE: MesBizTypeEnum.WM_ARRIVAL_NOTICE, + OUTSOURCE_RECPT: MesBizTypeEnum.WM_OUTSOURCE_RECPT, + // IPQC + PRO_FEEDBACK: MesBizTypeEnum.PRO_FEEDBACK, + // OQC + PRODUCT_SALES: MesBizTypeEnum.WM_PRODUCT_SALES, + // RQC + RETURN_ISSUE: MesBizTypeEnum.WM_RETURN_ISSUE, + RETURN_SALES: MesBizTypeEnum.WM_RETURN_SALES +} + +/** MES 质检类型枚举 */ +export const MesQcTypeEnum = { + IQC: 1, // 来料检验 + IPQC: 2, // 过程检验 + OQC: 3, // 出货检验 + RQC: 4 // 退货检验 +} + +/** MES 维修工单状态枚举 */ +export const MesDvRepairStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, // 草稿 + CONFIRMED: MesOrderStatusConstants.CONFIRMED, // 维修中 + APPROVING: MesOrderStatusConstants.APPROVING, // 待验收 + FINISHED: MesOrderStatusConstants.FINISHED // 已确认(终态) +} + +/** MES 维修结果枚举(对应字典 mes_dv_repair_result) */ +export const MesDvRepairResultEnum = { + PASS: 1, // 通过 + FAIL: 2 // 不通过 +} + +/** MES 质检单状态枚举 */ +export const MesQcStatusEnum = { + DRAFT: MesOrderStatusConstants.DRAFT, + FINISHED: MesOrderStatusConstants.FINISHED +} + +/** MES 生产报工状态枚举 */ +export const MesProFeedbackStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, // 草稿 + APPROVING: MesOrderStatusConstants.APPROVING, // 审批中 + UNCHECK: MesOrderStatusConstants.APPROVED, // 待检验 + FINISHED: MesOrderStatusConstants.FINISHED, // 已完成 + CANCELED: MesOrderStatusConstants.CANCELLED // 已取消 +} + +/** MES 安灯处置状态枚举 */ +export const MesProAndonStatusEnum = { + ACTIVE: 0, // 未处置 + HANDLED: 1 // 已处置 +} + +/** MES 安灯级别枚举 */ +export const MesProAndonLevelEnum = { + LEVEL1: 1, // 一级 + LEVEL2: 2, // 二级 + LEVEL3: 3 // 三级 +} + +/** MES 上下工操作类型枚举 */ +export const MesProWorkRecordTypeEnum = { + CLOCK_IN: 1, // 上工 + CLOCK_OUT: 2 // 下工 +} + +/** MES 生产报工类型枚举 */ +export const MesProFeedbackTypeEnum = { + SELF: 1, // 自行报工 + UNIFIED: 2 // 统一报工 +} + +/** MES 到货通知单状态枚举 */ +export const MesWmArrivalNoticeStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + PENDING_QC: MesOrderStatusConstants.APPROVING, + PENDING_RECEIPT: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED +} + +/** MES 采购入库单状态枚举 */ +export const MesWmItemReceiptStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 转移单状态枚举 */ +export const MesWmTransferStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + UNCONFIRMED: MesOrderStatusConstants.CONFIRMED, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 委外收货单状态枚举 */ +export const MesWmOutsourceReceiptStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 盘点类型枚举 */ +export const MesWmStockTakingTypeEnum = { + STATIC: 1, + DYNAMIC: 2 +} + +/** MES 盘点任务状态枚举 */ +export const MesWmStockTakingTaskStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 盘点任务行状态枚举 */ +export const MesWmStockTakingTaskLineStatusEnum = { + UNCOUNTED: 0, + NORMAL: 1, + GAIN: 2, + LOSS: 3 +} + +/** MES 盘点方案参数类型枚举 */ +export const MesWmStockTakingParamTypeEnum = { + WAREHOUSE: 102, + LOCATION: 103, + AREA: 104, + ITEM: 600, + BATCH: 107, + QUALITY_STATUS: 900 +} + +/** MES 外协入库单状态枚举 */ +export const MesWmOutsourceRecptStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 生产领料出库单状态枚举 */ +export const MesWmProductIssueStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 杂项入库单状态枚举 */ +export const MesWmMiscReceiptStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 供应商退货单状态枚举 */ +export const MesWmReturnVendorStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 销售退货单状态枚举 */ +export const MesWmReturnSalesStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + CONFIRMED: MesOrderStatusConstants.CONFIRMED, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 生产退料单状态枚举 */ +export const MesWmReturnIssueStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + CONFIRMED: MesOrderStatusConstants.CONFIRMED, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 生产入库单状态枚举 */ +export const MesWmProductProduceStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 产品入库单状态枚举 */ +export const MesWmProductReceiptStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 销售出库单状态枚举 */ +export const MesWmProductSalesStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + CONFIRMED: MesOrderStatusConstants.CONFIRMED, + APPROVING: MesOrderStatusConstants.APPROVING, + SHIPPING: 10, // 待填写运单 + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 发货通知单状态枚举 */ +export const MesWmSalesNoticeStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVED: MesOrderStatusConstants.APPROVED +} + +/** MES 仓库常量 */ +export const MesWmWarehouseConstants = { + /** 虚拟线边仓编码关键字(对应后端 MesWmWarehouseDO.WIP_VIRTUAL_WAREHOUSE) */ + WIP_VIRTUAL: 'WIP_VIRTUAL' +} as const + +/** MES 装箱单状态枚举 */ +export const MesWmPackageStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + FINISHED: MesOrderStatusConstants.FINISHED +} + +/** MES 杂项出库单状态枚举 */ +export const MesWmMiscIssueStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 外协发料单状态枚举 */ +export const MesWmOutsourceIssueStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELLED: MesOrderStatusConstants.CANCELLED +} + +/** MES 编码规则分段类型枚举 */ +export const MesAutoCodePartTypeEnum = { + INPUT: 1, // 输入字符 + DATE: 2, // 当前日期 + FIX: 3, // 固定字符 + SERIAL: 4 // 流水号 +} + +/** MES 编码规则补齐方式枚举 */ +export const MesAutoCodePaddedMethodEnum = { + LEFT: 1, // 左补齐 + RIGHT: 2 // 右补齐 +} + +/** MES 自动编码规则 Code 枚举 */ +export const MesAutoCodeRuleCode = { + MD_ITEM_TYPE_CODE: 'MD_ITEM_TYPE_CODE', // 物料分类编码 + MD_ITEM_CODE: 'MD_ITEM_CODE', // 物料编码 + MD_VENDOR_CODE: 'MD_VENDOR_CODE', // 供应商编码 + MD_CLIENT_CODE: 'MD_CLIENT_CODE', // 客户编码 + MD_WORKSTATION_CODE: 'MD_WORKSTATION_CODE', // 工作站编码 + MD_WORKSHOP_CODE: 'MD_WORKSHOP_CODE', // 车间编码 + TM_TOOL_CODE: 'TM_TOOL_CODE', // 工具编码 + TM_TOOL_TYPE_CODE: 'TM_TOOL_TYPE_CODE', // 工具类型编码 + WM_ARRIVAL_NOTICE_CODE: 'WM_ARRIVAL_NOTICE_CODE', // 到货通知单编码 + WM_ITEM_RECEIPT_CODE: 'WM_ITEM_RECEIPT_CODE', // 采购入库单编码 + WM_RETURN_VENDOR_CODE: 'WM_RETURN_VENDOR_CODE', // 采购退货单编码 + WM_PRODUCT_ISSUE_CODE: 'WM_PRODUCT_ISSUE_CODE', // 生产领料出库单编码 + WM_RETURN_ISSUE_CODE: 'WM_RETURN_ISSUE_CODE', // 生产退料单编码 + WM_RETURN_SALES_CODE: 'WM_RETURN_SALES_CODE', // 销售退货单编码 + PRODUCTRECPT_CODE: 'PRODUCTRECPT_CODE', // 产品入库单编码 + WM_SALES_NOTICE_CODE: 'WM_SALES_NOTICE_CODE', // 发货通知单编码 + WM_SN_CODE: 'WM_SN_CODE', // SN 码 + WM_PACKAGE_CODE: 'WM_PACKAGE_CODE', // 装箱单编码 + WM_BATCH_CODE: 'WM_BATCH_CODE', // 批次编码 + PRO_TASK_CODE: 'PRO_TASK_CODE', // 生产任务编码 + QC_IQC_CODE: 'QC_IQC_CODE', // 来料检验单编码 + QC_IPQC_CODE: 'QC_IPQC_CODE', // 过程检验单编码 + QC_OQC_CODE: 'QC_OQC_CODE', // 出货检验单编码 + QC_RQC_CODE: 'QC_RQC_CODE', // 退货检验单编码 + WM_WAREHOUSE_CODE: 'WM_WAREHOUSE_CODE', // 仓库编码 + WM_LOCATION_CODE: 'WM_LOCATION_CODE', // 库区编码 + WM_AREA_CODE: 'WM_AREA_CODE', // 库位编码 + WM_PRODUCT_SALES_CODE: 'WM_PRODUCT_SALES_CODE', // 销售出库单编码 + WM_MISC_ISSUE_CODE: 'WM_MISC_ISSUE_CODE', // 杂项出库单编码 + WM_MISC_RECEIPT_CODE: 'WM_MISC_RECEIPT_CODE', // 杂项入库单编码 + WM_STOCK_TAKING_PLAN_CODE: 'WM_STOCK_TAKING_PLAN_CODE', // 盘点方案编码 + WM_STOCK_TAKING_CODE: 'WM_STOCK_TAKING_CODE', // 盘点任务编码 + TRANSFER_CODE: 'TRANSFER_CODE', // 转移调拨单编码 + WM_OUTSOURCE_ISSUE_CODE: 'WM_OUTSOURCE_ISSUE_CODE', // 外协发料单编码 + CAL_TEAM_CODE: 'CAL_TEAM_CODE', // 班组编码 + CAL_PLAN_CODE: 'CAL_PLAN_CODE', // 排班计划编码 + DV_MACHINERY_CODE: 'DV_MACHINERY_CODE', // 设备编码 + DV_MACHINERY_TYPE_CODE: 'DV_MACHINERY_TYPE_CODE', // 设备类型编码 + DV_CHECK_PLAN_CODE: 'DV_CHECK_PLAN_CODE', // 点检保养方案编码 + DV_SUBJECT_CODE: 'DV_SUBJECT_CODE', // 点检保养项目编码 + DV_REPAIR_CODE: 'DV_REPAIR_CODE', // 维修单编码 + PRO_PROCESS_CODE: 'PRO_PROCESS_CODE', // 工序编码 + PRO_ROUTE_CODE: 'PRO_ROUTE_CODE', // 工艺路线编码 + PRO_FEEDBACK_CODE: 'PRO_FEEDBACK_CODE', // 生产报工单编码 + PRO_WORK_ORDER_CODE: 'PRO_WORK_ORDER_CODE', // 生产工单编码 + QC_DEFECT_CODE: 'QC_DEFECT_CODE', // 缺陷类型编码 + QC_TEMPLATE_CODE: 'QC_TEMPLATE_CODE', // 质检方案编码 + QC_INDICATOR_CODE: 'QC_INDICATOR_CODE', // 检测项编码 + PRO_CARD_CODE: 'PRO_CARD_CODE' // 流转卡编码 +} as const + +/** MES 条码格式枚举 */ +export enum BarcodeFormatEnum { + QR_CODE = 1, + EAN13 = 2, + CODE39 = 3, + UPC_A = 4 +} + +/** 条码格式映射表(枚举值 -> JsBarcode 格式名) */ +export const BARCODE_FORMAT_MAP: Record = { + [BarcodeFormatEnum.QR_CODE]: 'QR_CODE', + [BarcodeFormatEnum.EAN13]: 'EAN13', + [BarcodeFormatEnum.CODE39]: 'CODE39', + [BarcodeFormatEnum.UPC_A]: 'UPC_A' +} + +/** MES 条码业务类型枚举(对应后端 BarcodeBizTypeEnum) */ +export enum BarcodeBizTypeEnum { + // WM 仓库模块 [100, 200) + WAREHOUSE = 102, + LOCATION = 103, + AREA = 104, + PACKAGE = 105, + STOCK = 106, + BATCH = 107, + // PRO 生产模块 [300, 400) + PROCARD = 300, + WORKORDER = 301, + TRANSORDER = 302, + TASK = 303, + // DV 设备模块 [400, 500) + MACHINERY = 400, + // TM 工具模块 [500, 600) + TOOL = 500, + // MD 主数据模块 [600, 700) + ITEM = 600, + VENDOR = 601, + WORKSTATION = 602, + WORKSHOP = 603, + USER = 604, + CLIENT = 605 +} diff --git a/src/views/mes/wm/arrivalnotice/ArrivalNoticeForm.vue b/src/views/mes/wm/arrivalnotice/ArrivalNoticeForm.vue new file mode 100644 index 000000000..6bec849b4 --- /dev/null +++ b/src/views/mes/wm/arrivalnotice/ArrivalNoticeForm.vue @@ -0,0 +1,254 @@ + + + diff --git a/src/views/mes/wm/arrivalnotice/ArrivalNoticeLineList.vue b/src/views/mes/wm/arrivalnotice/ArrivalNoticeLineList.vue new file mode 100644 index 000000000..48e2d50c0 --- /dev/null +++ b/src/views/mes/wm/arrivalnotice/ArrivalNoticeLineList.vue @@ -0,0 +1,212 @@ + + + + diff --git a/src/views/mes/wm/arrivalnotice/components/WmArrivalNoticeLineSelect.vue b/src/views/mes/wm/arrivalnotice/components/WmArrivalNoticeLineSelect.vue new file mode 100644 index 000000000..3041a4b53 --- /dev/null +++ b/src/views/mes/wm/arrivalnotice/components/WmArrivalNoticeLineSelect.vue @@ -0,0 +1,193 @@ + + + + + + diff --git a/src/views/mes/wm/arrivalnotice/components/WmArrivalNoticeLineSelectDialog.vue b/src/views/mes/wm/arrivalnotice/components/WmArrivalNoticeLineSelectDialog.vue new file mode 100644 index 000000000..4f5e8530a --- /dev/null +++ b/src/views/mes/wm/arrivalnotice/components/WmArrivalNoticeLineSelectDialog.vue @@ -0,0 +1,180 @@ + + + + + + diff --git a/src/views/mes/wm/arrivalnotice/components/WmArrivalNoticeSelect.vue b/src/views/mes/wm/arrivalnotice/components/WmArrivalNoticeSelect.vue new file mode 100644 index 000000000..55c38dae0 --- /dev/null +++ b/src/views/mes/wm/arrivalnotice/components/WmArrivalNoticeSelect.vue @@ -0,0 +1,177 @@ + + + + + + diff --git a/src/views/mes/wm/arrivalnotice/components/WmArrivalNoticeSelectDialog.vue b/src/views/mes/wm/arrivalnotice/components/WmArrivalNoticeSelectDialog.vue new file mode 100644 index 000000000..d1c984858 --- /dev/null +++ b/src/views/mes/wm/arrivalnotice/components/WmArrivalNoticeSelectDialog.vue @@ -0,0 +1,331 @@ + + + + + + diff --git a/src/views/mes/wm/arrivalnotice/index.vue b/src/views/mes/wm/arrivalnotice/index.vue new file mode 100644 index 000000000..2e4b87400 --- /dev/null +++ b/src/views/mes/wm/arrivalnotice/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/mes/wm/barcode/BarcodeForm.vue b/src/views/mes/wm/barcode/BarcodeForm.vue new file mode 100644 index 000000000..23539428b --- /dev/null +++ b/src/views/mes/wm/barcode/BarcodeForm.vue @@ -0,0 +1,451 @@ + + + diff --git a/src/views/mes/wm/barcode/components/Barcode.vue b/src/views/mes/wm/barcode/components/Barcode.vue new file mode 100644 index 000000000..a0e8ae67c --- /dev/null +++ b/src/views/mes/wm/barcode/components/Barcode.vue @@ -0,0 +1,104 @@ + + diff --git a/src/views/mes/wm/barcode/components/BarcodeDetail.vue b/src/views/mes/wm/barcode/components/BarcodeDetail.vue new file mode 100644 index 000000000..1657956e1 --- /dev/null +++ b/src/views/mes/wm/barcode/components/BarcodeDetail.vue @@ -0,0 +1,236 @@ + + + diff --git a/src/views/mes/wm/barcode/components/PrinterLabel.vue b/src/views/mes/wm/barcode/components/PrinterLabel.vue new file mode 100644 index 000000000..f00f37240 --- /dev/null +++ b/src/views/mes/wm/barcode/components/PrinterLabel.vue @@ -0,0 +1,22 @@ + + diff --git a/src/views/mes/wm/barcode/components/index.ts b/src/views/mes/wm/barcode/components/index.ts new file mode 100644 index 000000000..4e34eb79a --- /dev/null +++ b/src/views/mes/wm/barcode/components/index.ts @@ -0,0 +1,3 @@ +export { default as Barcode } from './Barcode.vue' +export { default as BarcodeDetail } from './BarcodeDetail.vue' +export { default as PrinterLabel } from './PrinterLabel.vue' diff --git a/src/views/mes/wm/barcode/config/BarcodeConfigForm.vue b/src/views/mes/wm/barcode/config/BarcodeConfigForm.vue new file mode 100644 index 000000000..dd7a85405 --- /dev/null +++ b/src/views/mes/wm/barcode/config/BarcodeConfigForm.vue @@ -0,0 +1,174 @@ + + + diff --git a/src/views/mes/wm/barcode/config/index.vue b/src/views/mes/wm/barcode/config/index.vue new file mode 100644 index 000000000..52744e025 --- /dev/null +++ b/src/views/mes/wm/barcode/config/index.vue @@ -0,0 +1,231 @@ + + + diff --git a/src/views/mes/wm/barcode/index.vue b/src/views/mes/wm/barcode/index.vue new file mode 100644 index 000000000..512818b30 --- /dev/null +++ b/src/views/mes/wm/barcode/index.vue @@ -0,0 +1,292 @@ + + + diff --git a/src/views/mes/wm/batch/BatchForm.vue b/src/views/mes/wm/batch/BatchForm.vue new file mode 100644 index 000000000..d4c06fbda --- /dev/null +++ b/src/views/mes/wm/batch/BatchForm.vue @@ -0,0 +1,138 @@ + + + diff --git a/src/views/mes/wm/batch/components/WmBatchSelect.vue b/src/views/mes/wm/batch/components/WmBatchSelect.vue new file mode 100644 index 000000000..a1831566b --- /dev/null +++ b/src/views/mes/wm/batch/components/WmBatchSelect.vue @@ -0,0 +1,178 @@ + + + + + + diff --git a/src/views/mes/wm/batch/components/WmBatchSelectDialog.vue b/src/views/mes/wm/batch/components/WmBatchSelectDialog.vue new file mode 100644 index 000000000..d2eca250d --- /dev/null +++ b/src/views/mes/wm/batch/components/WmBatchSelectDialog.vue @@ -0,0 +1,516 @@ + + + + + + diff --git a/src/views/mes/wm/itemreceipt/ItemReceiptDetailForm.vue b/src/views/mes/wm/itemreceipt/ItemReceiptDetailForm.vue new file mode 100644 index 000000000..b21ca0523 --- /dev/null +++ b/src/views/mes/wm/itemreceipt/ItemReceiptDetailForm.vue @@ -0,0 +1,146 @@ + + + + diff --git a/src/views/mes/wm/itemreceipt/ItemReceiptDetailList.vue b/src/views/mes/wm/itemreceipt/ItemReceiptDetailList.vue new file mode 100644 index 000000000..eaa60900b --- /dev/null +++ b/src/views/mes/wm/itemreceipt/ItemReceiptDetailList.vue @@ -0,0 +1,68 @@ + + + + diff --git a/src/views/mes/wm/itemreceipt/ItemReceiptForm.vue b/src/views/mes/wm/itemreceipt/ItemReceiptForm.vue new file mode 100644 index 000000000..f62fdfd3e --- /dev/null +++ b/src/views/mes/wm/itemreceipt/ItemReceiptForm.vue @@ -0,0 +1,304 @@ + + + diff --git a/src/views/mes/wm/itemreceipt/ItemReceiptLineList.vue b/src/views/mes/wm/itemreceipt/ItemReceiptLineList.vue new file mode 100644 index 000000000..30adff57d --- /dev/null +++ b/src/views/mes/wm/itemreceipt/ItemReceiptLineList.vue @@ -0,0 +1,338 @@ + + + + diff --git a/src/views/mes/wm/itemreceipt/index.vue b/src/views/mes/wm/itemreceipt/index.vue new file mode 100644 index 000000000..7bb1a0013 --- /dev/null +++ b/src/views/mes/wm/itemreceipt/index.vue @@ -0,0 +1,255 @@ + + + diff --git a/src/views/mes/wm/materialstock/components/WmMaterialStockSelect.vue b/src/views/mes/wm/materialstock/components/WmMaterialStockSelect.vue new file mode 100644 index 000000000..c32509fbf --- /dev/null +++ b/src/views/mes/wm/materialstock/components/WmMaterialStockSelect.vue @@ -0,0 +1,193 @@ + + + + + + diff --git a/src/views/mes/wm/materialstock/components/WmMaterialStockSelectDialog.vue b/src/views/mes/wm/materialstock/components/WmMaterialStockSelectDialog.vue new file mode 100644 index 000000000..77752cd60 --- /dev/null +++ b/src/views/mes/wm/materialstock/components/WmMaterialStockSelectDialog.vue @@ -0,0 +1,404 @@ + + + + + + diff --git a/src/views/mes/wm/materialstock/index.vue b/src/views/mes/wm/materialstock/index.vue new file mode 100644 index 000000000..507b7f610 --- /dev/null +++ b/src/views/mes/wm/materialstock/index.vue @@ -0,0 +1,256 @@ + + + + diff --git a/src/views/mes/wm/miscissue/MiscIssueForm.vue b/src/views/mes/wm/miscissue/MiscIssueForm.vue new file mode 100644 index 000000000..cc4d30c58 --- /dev/null +++ b/src/views/mes/wm/miscissue/MiscIssueForm.vue @@ -0,0 +1,273 @@ + + + diff --git a/src/views/mes/wm/miscissue/MiscIssueLineList.vue b/src/views/mes/wm/miscissue/MiscIssueLineList.vue new file mode 100644 index 000000000..ca22446e5 --- /dev/null +++ b/src/views/mes/wm/miscissue/MiscIssueLineList.vue @@ -0,0 +1,275 @@ + + + + diff --git a/src/views/mes/wm/miscissue/index.vue b/src/views/mes/wm/miscissue/index.vue new file mode 100644 index 000000000..3ca9e5755 --- /dev/null +++ b/src/views/mes/wm/miscissue/index.vue @@ -0,0 +1,293 @@ + + + diff --git a/src/views/mes/wm/miscreceipt/MiscReceiptForm.vue b/src/views/mes/wm/miscreceipt/MiscReceiptForm.vue new file mode 100644 index 000000000..2ad294193 --- /dev/null +++ b/src/views/mes/wm/miscreceipt/MiscReceiptForm.vue @@ -0,0 +1,275 @@ + + + + diff --git a/src/views/mes/wm/miscreceipt/MiscReceiptLineList.vue b/src/views/mes/wm/miscreceipt/MiscReceiptLineList.vue new file mode 100644 index 000000000..a5d66668b --- /dev/null +++ b/src/views/mes/wm/miscreceipt/MiscReceiptLineList.vue @@ -0,0 +1,255 @@ + + + + diff --git a/src/views/mes/wm/miscreceipt/index.vue b/src/views/mes/wm/miscreceipt/index.vue new file mode 100644 index 000000000..4012c11f1 --- /dev/null +++ b/src/views/mes/wm/miscreceipt/index.vue @@ -0,0 +1,294 @@ + + + diff --git a/src/views/mes/wm/outsourceissue/OutsourceIssueDetailForm.vue b/src/views/mes/wm/outsourceissue/OutsourceIssueDetailForm.vue new file mode 100644 index 000000000..7626d797d --- /dev/null +++ b/src/views/mes/wm/outsourceissue/OutsourceIssueDetailForm.vue @@ -0,0 +1,215 @@ + + + + diff --git a/src/views/mes/wm/outsourceissue/OutsourceIssueDetailList.vue b/src/views/mes/wm/outsourceissue/OutsourceIssueDetailList.vue new file mode 100644 index 000000000..371f4af7a --- /dev/null +++ b/src/views/mes/wm/outsourceissue/OutsourceIssueDetailList.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/src/views/mes/wm/outsourceissue/OutsourceIssueForm.vue b/src/views/mes/wm/outsourceissue/OutsourceIssueForm.vue new file mode 100644 index 000000000..8145f9a65 --- /dev/null +++ b/src/views/mes/wm/outsourceissue/OutsourceIssueForm.vue @@ -0,0 +1,292 @@ + + + diff --git a/src/views/mes/wm/outsourceissue/OutsourceIssueLineList.vue b/src/views/mes/wm/outsourceissue/OutsourceIssueLineList.vue new file mode 100644 index 000000000..084035a2f --- /dev/null +++ b/src/views/mes/wm/outsourceissue/OutsourceIssueLineList.vue @@ -0,0 +1,280 @@ + + + + diff --git a/src/views/mes/wm/outsourceissue/index.vue b/src/views/mes/wm/outsourceissue/index.vue new file mode 100644 index 000000000..e160cf69d --- /dev/null +++ b/src/views/mes/wm/outsourceissue/index.vue @@ -0,0 +1,256 @@ + + + diff --git a/src/views/mes/wm/outsourcereceipt/OutsourceReceiptDetailForm.vue b/src/views/mes/wm/outsourcereceipt/OutsourceReceiptDetailForm.vue new file mode 100644 index 000000000..d27e02521 --- /dev/null +++ b/src/views/mes/wm/outsourcereceipt/OutsourceReceiptDetailForm.vue @@ -0,0 +1,157 @@ + + + + diff --git a/src/views/mes/wm/outsourcereceipt/OutsourceReceiptDetailList.vue b/src/views/mes/wm/outsourcereceipt/OutsourceReceiptDetailList.vue new file mode 100644 index 000000000..dc40c54ca --- /dev/null +++ b/src/views/mes/wm/outsourcereceipt/OutsourceReceiptDetailList.vue @@ -0,0 +1,90 @@ + + + + diff --git a/src/views/mes/wm/outsourcereceipt/OutsourceReceiptForm.vue b/src/views/mes/wm/outsourcereceipt/OutsourceReceiptForm.vue new file mode 100644 index 000000000..b447fda66 --- /dev/null +++ b/src/views/mes/wm/outsourcereceipt/OutsourceReceiptForm.vue @@ -0,0 +1,285 @@ + + + diff --git a/src/views/mes/wm/outsourcereceipt/OutsourceReceiptLineList.vue b/src/views/mes/wm/outsourcereceipt/OutsourceReceiptLineList.vue new file mode 100644 index 000000000..78e8b7b1c --- /dev/null +++ b/src/views/mes/wm/outsourcereceipt/OutsourceReceiptLineList.vue @@ -0,0 +1,335 @@ + + + + diff --git a/src/views/mes/wm/outsourcereceipt/index.vue b/src/views/mes/wm/outsourcereceipt/index.vue new file mode 100644 index 000000000..8619b86e2 --- /dev/null +++ b/src/views/mes/wm/outsourcereceipt/index.vue @@ -0,0 +1,282 @@ + + + diff --git a/src/views/mes/wm/packages/PackageForm.vue b/src/views/mes/wm/packages/PackageForm.vue new file mode 100644 index 000000000..7e89b9eff --- /dev/null +++ b/src/views/mes/wm/packages/PackageForm.vue @@ -0,0 +1,333 @@ + + + diff --git a/src/views/mes/wm/packages/PackageLineList.vue b/src/views/mes/wm/packages/PackageLineList.vue new file mode 100644 index 000000000..71639b0ff --- /dev/null +++ b/src/views/mes/wm/packages/PackageLineList.vue @@ -0,0 +1,239 @@ + + + + diff --git a/src/views/mes/wm/packages/SubPackageList.vue b/src/views/mes/wm/packages/SubPackageList.vue new file mode 100644 index 000000000..74d61cbd3 --- /dev/null +++ b/src/views/mes/wm/packages/SubPackageList.vue @@ -0,0 +1,136 @@ + + + + diff --git a/src/views/mes/wm/packages/components/WmPackageSelect.vue b/src/views/mes/wm/packages/components/WmPackageSelect.vue new file mode 100644 index 000000000..80007c4e1 --- /dev/null +++ b/src/views/mes/wm/packages/components/WmPackageSelect.vue @@ -0,0 +1,179 @@ + + + + + + diff --git a/src/views/mes/wm/packages/components/WmPackageSelectDialog.vue b/src/views/mes/wm/packages/components/WmPackageSelectDialog.vue new file mode 100644 index 000000000..0351725db --- /dev/null +++ b/src/views/mes/wm/packages/components/WmPackageSelectDialog.vue @@ -0,0 +1,328 @@ + + + + + + diff --git a/src/views/mes/wm/packages/index.vue b/src/views/mes/wm/packages/index.vue new file mode 100644 index 000000000..b433a3257 --- /dev/null +++ b/src/views/mes/wm/packages/index.vue @@ -0,0 +1,199 @@ + + + diff --git a/src/views/mes/wm/productissue/ProductIssueDetailForm.vue b/src/views/mes/wm/productissue/ProductIssueDetailForm.vue new file mode 100644 index 000000000..ddc17aadc --- /dev/null +++ b/src/views/mes/wm/productissue/ProductIssueDetailForm.vue @@ -0,0 +1,213 @@ + + + + diff --git a/src/views/mes/wm/productissue/ProductIssueDetailList.vue b/src/views/mes/wm/productissue/ProductIssueDetailList.vue new file mode 100644 index 000000000..0b80dfc46 --- /dev/null +++ b/src/views/mes/wm/productissue/ProductIssueDetailList.vue @@ -0,0 +1,70 @@ + + + + diff --git a/src/views/mes/wm/productissue/ProductIssueForm.vue b/src/views/mes/wm/productissue/ProductIssueForm.vue new file mode 100644 index 000000000..2f421a55b --- /dev/null +++ b/src/views/mes/wm/productissue/ProductIssueForm.vue @@ -0,0 +1,280 @@ + + + diff --git a/src/views/mes/wm/productissue/ProductIssueLineList.vue b/src/views/mes/wm/productissue/ProductIssueLineList.vue new file mode 100644 index 000000000..9bf1d27e7 --- /dev/null +++ b/src/views/mes/wm/productissue/ProductIssueLineList.vue @@ -0,0 +1,275 @@ + + + + diff --git a/src/views/mes/wm/productissue/index.vue b/src/views/mes/wm/productissue/index.vue new file mode 100644 index 000000000..df2576fe8 --- /dev/null +++ b/src/views/mes/wm/productissue/index.vue @@ -0,0 +1,289 @@ + + + diff --git a/src/views/mes/wm/productreceipt/ProductReceiptDetailForm.vue b/src/views/mes/wm/productreceipt/ProductReceiptDetailForm.vue new file mode 100644 index 000000000..bbe94b5cc --- /dev/null +++ b/src/views/mes/wm/productreceipt/ProductReceiptDetailForm.vue @@ -0,0 +1,146 @@ + + + + diff --git a/src/views/mes/wm/productreceipt/ProductReceiptDetailList.vue b/src/views/mes/wm/productreceipt/ProductReceiptDetailList.vue new file mode 100644 index 000000000..3b54be26b --- /dev/null +++ b/src/views/mes/wm/productreceipt/ProductReceiptDetailList.vue @@ -0,0 +1,75 @@ + + + + diff --git a/src/views/mes/wm/productreceipt/ProductReceiptForm.vue b/src/views/mes/wm/productreceipt/ProductReceiptForm.vue new file mode 100644 index 000000000..3c47264e4 --- /dev/null +++ b/src/views/mes/wm/productreceipt/ProductReceiptForm.vue @@ -0,0 +1,276 @@ + + + diff --git a/src/views/mes/wm/productreceipt/ProductReceiptLineList.vue b/src/views/mes/wm/productreceipt/ProductReceiptLineList.vue new file mode 100644 index 000000000..d9d0de1a7 --- /dev/null +++ b/src/views/mes/wm/productreceipt/ProductReceiptLineList.vue @@ -0,0 +1,331 @@ + + + + diff --git a/src/views/mes/wm/productreceipt/index.vue b/src/views/mes/wm/productreceipt/index.vue new file mode 100644 index 000000000..25c4e8ace --- /dev/null +++ b/src/views/mes/wm/productreceipt/index.vue @@ -0,0 +1,252 @@ + + + diff --git a/src/views/mes/wm/productsales/ProductSalesDetailForm.vue b/src/views/mes/wm/productsales/ProductSalesDetailForm.vue new file mode 100644 index 000000000..9d141967e --- /dev/null +++ b/src/views/mes/wm/productsales/ProductSalesDetailForm.vue @@ -0,0 +1,225 @@ + + + + diff --git a/src/views/mes/wm/productsales/ProductSalesDetailList.vue b/src/views/mes/wm/productsales/ProductSalesDetailList.vue new file mode 100644 index 000000000..89574f290 --- /dev/null +++ b/src/views/mes/wm/productsales/ProductSalesDetailList.vue @@ -0,0 +1,69 @@ + + + + diff --git a/src/views/mes/wm/productsales/ProductSalesForm.vue b/src/views/mes/wm/productsales/ProductSalesForm.vue new file mode 100644 index 000000000..9767958b1 --- /dev/null +++ b/src/views/mes/wm/productsales/ProductSalesForm.vue @@ -0,0 +1,402 @@ + + + diff --git a/src/views/mes/wm/productsales/ProductSalesLineList.vue b/src/views/mes/wm/productsales/ProductSalesLineList.vue new file mode 100644 index 000000000..a7c81eee5 --- /dev/null +++ b/src/views/mes/wm/productsales/ProductSalesLineList.vue @@ -0,0 +1,330 @@ + + + + diff --git a/src/views/mes/wm/productsales/index.vue b/src/views/mes/wm/productsales/index.vue new file mode 100644 index 000000000..220ea8b2b --- /dev/null +++ b/src/views/mes/wm/productsales/index.vue @@ -0,0 +1,301 @@ + + + diff --git a/src/views/mes/wm/returnissue/ReturnIssueDetailForm.vue b/src/views/mes/wm/returnissue/ReturnIssueDetailForm.vue new file mode 100644 index 000000000..1735ef53b --- /dev/null +++ b/src/views/mes/wm/returnissue/ReturnIssueDetailForm.vue @@ -0,0 +1,213 @@ + + + + diff --git a/src/views/mes/wm/returnissue/ReturnIssueDetailList.vue b/src/views/mes/wm/returnissue/ReturnIssueDetailList.vue new file mode 100644 index 000000000..f248db932 --- /dev/null +++ b/src/views/mes/wm/returnissue/ReturnIssueDetailList.vue @@ -0,0 +1,73 @@ + + + + diff --git a/src/views/mes/wm/returnissue/ReturnIssueForm.vue b/src/views/mes/wm/returnissue/ReturnIssueForm.vue new file mode 100644 index 000000000..17e6d1698 --- /dev/null +++ b/src/views/mes/wm/returnissue/ReturnIssueForm.vue @@ -0,0 +1,293 @@ + + + diff --git a/src/views/mes/wm/returnissue/ReturnIssueLineList.vue b/src/views/mes/wm/returnissue/ReturnIssueLineList.vue new file mode 100644 index 000000000..ebb6e2e53 --- /dev/null +++ b/src/views/mes/wm/returnissue/ReturnIssueLineList.vue @@ -0,0 +1,357 @@ + + + + diff --git a/src/views/mes/wm/returnissue/index.vue b/src/views/mes/wm/returnissue/index.vue new file mode 100644 index 000000000..b45c85b9f --- /dev/null +++ b/src/views/mes/wm/returnissue/index.vue @@ -0,0 +1,276 @@ + + + diff --git a/src/views/mes/wm/returnsales/ReturnSalesDetailForm.vue b/src/views/mes/wm/returnsales/ReturnSalesDetailForm.vue new file mode 100644 index 000000000..1fbc29c3e --- /dev/null +++ b/src/views/mes/wm/returnsales/ReturnSalesDetailForm.vue @@ -0,0 +1,152 @@ + + + + diff --git a/src/views/mes/wm/returnsales/ReturnSalesDetailList.vue b/src/views/mes/wm/returnsales/ReturnSalesDetailList.vue new file mode 100644 index 000000000..a1bd909cb --- /dev/null +++ b/src/views/mes/wm/returnsales/ReturnSalesDetailList.vue @@ -0,0 +1,73 @@ + + + + diff --git a/src/views/mes/wm/returnsales/ReturnSalesForm.vue b/src/views/mes/wm/returnsales/ReturnSalesForm.vue new file mode 100644 index 000000000..97aa6995f --- /dev/null +++ b/src/views/mes/wm/returnsales/ReturnSalesForm.vue @@ -0,0 +1,294 @@ + + + diff --git a/src/views/mes/wm/returnsales/ReturnSalesLineList.vue b/src/views/mes/wm/returnsales/ReturnSalesLineList.vue new file mode 100644 index 000000000..1fe469adf --- /dev/null +++ b/src/views/mes/wm/returnsales/ReturnSalesLineList.vue @@ -0,0 +1,305 @@ + + + + diff --git a/src/views/mes/wm/returnsales/index.vue b/src/views/mes/wm/returnsales/index.vue new file mode 100644 index 000000000..7f1db6900 --- /dev/null +++ b/src/views/mes/wm/returnsales/index.vue @@ -0,0 +1,283 @@ + + + diff --git a/src/views/mes/wm/returnvendor/ReturnVendorDetailForm.vue b/src/views/mes/wm/returnvendor/ReturnVendorDetailForm.vue new file mode 100644 index 000000000..6ff555949 --- /dev/null +++ b/src/views/mes/wm/returnvendor/ReturnVendorDetailForm.vue @@ -0,0 +1,212 @@ + + + + diff --git a/src/views/mes/wm/returnvendor/ReturnVendorDetailList.vue b/src/views/mes/wm/returnvendor/ReturnVendorDetailList.vue new file mode 100644 index 000000000..e0a412ecc --- /dev/null +++ b/src/views/mes/wm/returnvendor/ReturnVendorDetailList.vue @@ -0,0 +1,67 @@ + + + + diff --git a/src/views/mes/wm/returnvendor/ReturnVendorForm.vue b/src/views/mes/wm/returnvendor/ReturnVendorForm.vue new file mode 100644 index 000000000..f1006c247 --- /dev/null +++ b/src/views/mes/wm/returnvendor/ReturnVendorForm.vue @@ -0,0 +1,312 @@ + + + diff --git a/src/views/mes/wm/returnvendor/ReturnVendorLineList.vue b/src/views/mes/wm/returnvendor/ReturnVendorLineList.vue new file mode 100644 index 000000000..09ef5e010 --- /dev/null +++ b/src/views/mes/wm/returnvendor/ReturnVendorLineList.vue @@ -0,0 +1,302 @@ + + + + diff --git a/src/views/mes/wm/returnvendor/index.vue b/src/views/mes/wm/returnvendor/index.vue new file mode 100644 index 000000000..d1c9a468b --- /dev/null +++ b/src/views/mes/wm/returnvendor/index.vue @@ -0,0 +1,255 @@ + + + diff --git a/src/views/mes/wm/salesnotice/SalesNoticeForm.vue b/src/views/mes/wm/salesnotice/SalesNoticeForm.vue new file mode 100644 index 000000000..b498191d4 --- /dev/null +++ b/src/views/mes/wm/salesnotice/SalesNoticeForm.vue @@ -0,0 +1,279 @@ + + + diff --git a/src/views/mes/wm/salesnotice/SalesNoticeLineList.vue b/src/views/mes/wm/salesnotice/SalesNoticeLineList.vue new file mode 100644 index 000000000..7cd90ef09 --- /dev/null +++ b/src/views/mes/wm/salesnotice/SalesNoticeLineList.vue @@ -0,0 +1,224 @@ + + + + diff --git a/src/views/mes/wm/salesnotice/components/WmSalesNoticeLineSelect.vue b/src/views/mes/wm/salesnotice/components/WmSalesNoticeLineSelect.vue new file mode 100644 index 000000000..f3af92630 --- /dev/null +++ b/src/views/mes/wm/salesnotice/components/WmSalesNoticeLineSelect.vue @@ -0,0 +1,190 @@ + + + + + + diff --git a/src/views/mes/wm/salesnotice/components/WmSalesNoticeLineSelectDialog.vue b/src/views/mes/wm/salesnotice/components/WmSalesNoticeLineSelectDialog.vue new file mode 100644 index 000000000..bec091e25 --- /dev/null +++ b/src/views/mes/wm/salesnotice/components/WmSalesNoticeLineSelectDialog.vue @@ -0,0 +1,230 @@ + + + + + + diff --git a/src/views/mes/wm/salesnotice/components/WmSalesNoticeSelect.vue b/src/views/mes/wm/salesnotice/components/WmSalesNoticeSelect.vue new file mode 100644 index 000000000..71b038c0b --- /dev/null +++ b/src/views/mes/wm/salesnotice/components/WmSalesNoticeSelect.vue @@ -0,0 +1,177 @@ + + + + + + diff --git a/src/views/mes/wm/salesnotice/components/WmSalesNoticeSelectDialog.vue b/src/views/mes/wm/salesnotice/components/WmSalesNoticeSelectDialog.vue new file mode 100644 index 000000000..9f0c65a0a --- /dev/null +++ b/src/views/mes/wm/salesnotice/components/WmSalesNoticeSelectDialog.vue @@ -0,0 +1,326 @@ + + + + + + diff --git a/src/views/mes/wm/salesnotice/index.vue b/src/views/mes/wm/salesnotice/index.vue new file mode 100644 index 000000000..d6985f69b --- /dev/null +++ b/src/views/mes/wm/salesnotice/index.vue @@ -0,0 +1,223 @@ + + + diff --git a/src/views/mes/wm/sn/WmSnGenerateForm.vue b/src/views/mes/wm/sn/WmSnGenerateForm.vue new file mode 100644 index 000000000..30e3be345 --- /dev/null +++ b/src/views/mes/wm/sn/WmSnGenerateForm.vue @@ -0,0 +1,80 @@ + + + diff --git a/src/views/mes/wm/sn/index.vue b/src/views/mes/wm/sn/index.vue new file mode 100644 index 000000000..48e75b75d --- /dev/null +++ b/src/views/mes/wm/sn/index.vue @@ -0,0 +1,235 @@ + + + diff --git a/src/views/mes/wm/stocktaking/plan/StockTakingPlanForm.vue b/src/views/mes/wm/stocktaking/plan/StockTakingPlanForm.vue new file mode 100644 index 000000000..aa466c63a --- /dev/null +++ b/src/views/mes/wm/stocktaking/plan/StockTakingPlanForm.vue @@ -0,0 +1,207 @@ + + + diff --git a/src/views/mes/wm/stocktaking/plan/StockTakingPlanParamList.vue b/src/views/mes/wm/stocktaking/plan/StockTakingPlanParamList.vue new file mode 100644 index 000000000..2d53c0a81 --- /dev/null +++ b/src/views/mes/wm/stocktaking/plan/StockTakingPlanParamList.vue @@ -0,0 +1,402 @@ + + + + diff --git a/src/views/mes/wm/stocktaking/plan/components/StockTakingPlanSelect.vue b/src/views/mes/wm/stocktaking/plan/components/StockTakingPlanSelect.vue new file mode 100644 index 000000000..4b4abe989 --- /dev/null +++ b/src/views/mes/wm/stocktaking/plan/components/StockTakingPlanSelect.vue @@ -0,0 +1,178 @@ + + + + + + diff --git a/src/views/mes/wm/stocktaking/plan/components/StockTakingPlanSelectDialog.vue b/src/views/mes/wm/stocktaking/plan/components/StockTakingPlanSelectDialog.vue new file mode 100644 index 000000000..05e49c9b1 --- /dev/null +++ b/src/views/mes/wm/stocktaking/plan/components/StockTakingPlanSelectDialog.vue @@ -0,0 +1,315 @@ + + + + + + diff --git a/src/views/mes/wm/stocktaking/plan/index.vue b/src/views/mes/wm/stocktaking/plan/index.vue new file mode 100644 index 000000000..1c47c6f1a --- /dev/null +++ b/src/views/mes/wm/stocktaking/plan/index.vue @@ -0,0 +1,268 @@ + + + diff --git a/src/views/mes/wm/stocktaking/task/StockTakingForm.vue b/src/views/mes/wm/stocktaking/task/StockTakingForm.vue new file mode 100644 index 000000000..29a7d59f6 --- /dev/null +++ b/src/views/mes/wm/stocktaking/task/StockTakingForm.vue @@ -0,0 +1,349 @@ + + + diff --git a/src/views/mes/wm/stocktaking/task/StockTakingTaskLineList.vue b/src/views/mes/wm/stocktaking/task/StockTakingTaskLineList.vue new file mode 100644 index 000000000..82abc1193 --- /dev/null +++ b/src/views/mes/wm/stocktaking/task/StockTakingTaskLineList.vue @@ -0,0 +1,154 @@ + + + + diff --git a/src/views/mes/wm/stocktaking/task/StockTakingTaskResultList.vue b/src/views/mes/wm/stocktaking/task/StockTakingTaskResultList.vue new file mode 100644 index 000000000..b748ce277 --- /dev/null +++ b/src/views/mes/wm/stocktaking/task/StockTakingTaskResultList.vue @@ -0,0 +1,366 @@ + + + + diff --git a/src/views/mes/wm/stocktaking/task/index.vue b/src/views/mes/wm/stocktaking/task/index.vue new file mode 100644 index 000000000..1f3ac2448 --- /dev/null +++ b/src/views/mes/wm/stocktaking/task/index.vue @@ -0,0 +1,281 @@ + + + diff --git a/src/views/mes/wm/transfer/TransferDetailForm.vue b/src/views/mes/wm/transfer/TransferDetailForm.vue new file mode 100644 index 000000000..9b94bbfc8 --- /dev/null +++ b/src/views/mes/wm/transfer/TransferDetailForm.vue @@ -0,0 +1,154 @@ + + + diff --git a/src/views/mes/wm/transfer/TransferDetailList.vue b/src/views/mes/wm/transfer/TransferDetailList.vue new file mode 100644 index 000000000..4bdbcafb0 --- /dev/null +++ b/src/views/mes/wm/transfer/TransferDetailList.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/views/mes/wm/transfer/TransferForm.vue b/src/views/mes/wm/transfer/TransferForm.vue new file mode 100644 index 000000000..b02c508d2 --- /dev/null +++ b/src/views/mes/wm/transfer/TransferForm.vue @@ -0,0 +1,359 @@ + + + diff --git a/src/views/mes/wm/transfer/TransferLineList.vue b/src/views/mes/wm/transfer/TransferLineList.vue new file mode 100644 index 000000000..1667ba002 --- /dev/null +++ b/src/views/mes/wm/transfer/TransferLineList.vue @@ -0,0 +1,360 @@ + + + diff --git a/src/views/mes/wm/transfer/index.vue b/src/views/mes/wm/transfer/index.vue new file mode 100644 index 000000000..79224e2da --- /dev/null +++ b/src/views/mes/wm/transfer/index.vue @@ -0,0 +1,291 @@ + + + diff --git a/src/views/mes/wm/warehouse/WarehouseForm.vue b/src/views/mes/wm/warehouse/WarehouseForm.vue new file mode 100644 index 000000000..4581f2579 --- /dev/null +++ b/src/views/mes/wm/warehouse/WarehouseForm.vue @@ -0,0 +1,204 @@ + + + diff --git a/src/views/mes/wm/warehouse/area/AreaForm.vue b/src/views/mes/wm/warehouse/area/AreaForm.vue new file mode 100644 index 000000000..392c5d049 --- /dev/null +++ b/src/views/mes/wm/warehouse/area/AreaForm.vue @@ -0,0 +1,342 @@ + + + diff --git a/src/views/mes/wm/warehouse/area/index.vue b/src/views/mes/wm/warehouse/area/index.vue new file mode 100644 index 000000000..d9efe9008 --- /dev/null +++ b/src/views/mes/wm/warehouse/area/index.vue @@ -0,0 +1,268 @@ + + + diff --git a/src/views/mes/wm/warehouse/components/WmWarehouseAreaSelect.vue b/src/views/mes/wm/warehouse/components/WmWarehouseAreaSelect.vue new file mode 100644 index 000000000..0732b3798 --- /dev/null +++ b/src/views/mes/wm/warehouse/components/WmWarehouseAreaSelect.vue @@ -0,0 +1,132 @@ + + + + diff --git a/src/views/mes/wm/warehouse/components/WmWarehouseLocationSelect.vue b/src/views/mes/wm/warehouse/components/WmWarehouseLocationSelect.vue new file mode 100644 index 000000000..047c22147 --- /dev/null +++ b/src/views/mes/wm/warehouse/components/WmWarehouseLocationSelect.vue @@ -0,0 +1,131 @@ + + + + diff --git a/src/views/mes/wm/warehouse/components/WmWarehouseSelect.vue b/src/views/mes/wm/warehouse/components/WmWarehouseSelect.vue new file mode 100644 index 000000000..f9fb807ef --- /dev/null +++ b/src/views/mes/wm/warehouse/components/WmWarehouseSelect.vue @@ -0,0 +1,111 @@ + + + + diff --git a/src/views/mes/wm/warehouse/index.vue b/src/views/mes/wm/warehouse/index.vue new file mode 100644 index 000000000..809cf555e --- /dev/null +++ b/src/views/mes/wm/warehouse/index.vue @@ -0,0 +1,231 @@ + + + diff --git a/src/views/mes/wm/warehouse/location/LocationForm.vue b/src/views/mes/wm/warehouse/location/LocationForm.vue new file mode 100644 index 000000000..fbc22d638 --- /dev/null +++ b/src/views/mes/wm/warehouse/location/LocationForm.vue @@ -0,0 +1,252 @@ + + + diff --git a/src/views/mes/wm/warehouse/location/index.vue b/src/views/mes/wm/warehouse/location/index.vue new file mode 100644 index 000000000..da5db157d --- /dev/null +++ b/src/views/mes/wm/warehouse/location/index.vue @@ -0,0 +1,240 @@ + + + diff --git a/src/views/system/dept/components/DeptTreeSelect.vue b/src/views/system/dept/components/DeptTreeSelect.vue new file mode 100644 index 000000000..46fb0b94a --- /dev/null +++ b/src/views/system/dept/components/DeptTreeSelect.vue @@ -0,0 +1,107 @@ + + + + diff --git a/src/views/system/role/components/RoleSelect.vue b/src/views/system/role/components/RoleSelect.vue new file mode 100644 index 000000000..f2d993445 --- /dev/null +++ b/src/views/system/role/components/RoleSelect.vue @@ -0,0 +1,86 @@ + + + + diff --git a/src/views/system/user/DeptTree.vue b/src/views/system/user/DeptTree.vue deleted file mode 100644 index 71ed6cd50..000000000 --- a/src/views/system/user/DeptTree.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - diff --git a/src/views/system/user/components/UserSelect.vue b/src/views/system/user/components/UserSelect.vue new file mode 100644 index 000000000..fc79efa2e --- /dev/null +++ b/src/views/system/user/components/UserSelect.vue @@ -0,0 +1,86 @@ + + + + diff --git a/src/views/system/user/components/UserSelectDialogV2.vue b/src/views/system/user/components/UserSelectDialogV2.vue new file mode 100644 index 000000000..dfc9ec623 --- /dev/null +++ b/src/views/system/user/components/UserSelectDialogV2.vue @@ -0,0 +1,319 @@ + + + + + + diff --git a/src/views/system/user/components/UserSelectV2.vue b/src/views/system/user/components/UserSelectV2.vue new file mode 100644 index 000000000..79cb3dc35 --- /dev/null +++ b/src/views/system/user/components/UserSelectV2.vue @@ -0,0 +1,172 @@ + + + + + + diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 566451728..fbd1bfadd 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -7,7 +7,7 @@ - + @@ -219,7 +219,7 @@ import * as UserApi from '@/api/system/user' import UserForm from './UserForm.vue' import UserImportForm from './UserImportForm.vue' import UserAssignRoleForm from './UserAssignRoleForm.vue' -import DeptTree from './DeptTree.vue' +import DeptTreeSelect from '@/views/system/dept/components/DeptTreeSelect.vue' defineOptions({ name: 'SystemUser' }) @@ -265,14 +265,9 @@ const resetQuery = () => { } /** 处理部门被点击 */ -const handleDeptNodeClick = async (row: any) => { - if (row === undefined) { - queryParams.deptId = undefined - await getList() - } else { - queryParams.deptId = row.id - await getList() - } +const handleDeptNodeClick = async (deptId: number | undefined) => { + queryParams.deptId = deptId + await getList() } /** 添加/修改操作 */