diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..dccf841
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,19 @@
+root = true
+
+[*]
+charset=utf-8
+end_of_line=lf
+insert_final_newline=true
+indent_style=space
+indent_size=2
+max_line_length = 100
+
+[*.{yml,yaml,json}]
+indent_style = space
+indent_size = 2
+
+[*.md]
+trim_trailing_whitespace = false
+
+[Makefile]
+indent_style = tab
diff --git a/.env b/.env
new file mode 100644
index 0000000..74e66bb
--- /dev/null
+++ b/.env
@@ -0,0 +1,17 @@
+# 标题
+VITE_APP_TITLE=富维海拉智慧工厂管理平台
+
+# 项目本地运行端口号
+VITE_PORT=80
+
+# open 运行 npm run dev 时自动打开浏览器
+VITE_OPEN=true
+
+# 租户开关
+VITE_APP_TENANT_ENABLE=true
+
+# 验证码的开关
+VITE_APP_CAPTCHA_ENABLE=true
+
+# 百度统计
+VITE_APP_BAIDU_CODE = a1ff8825baa73c3a78eb96aa40325abc
diff --git a/.env.prod b/.env.prod
new file mode 100644
index 0000000..06f2aa7
--- /dev/null
+++ b/.env.prod
@@ -0,0 +1,54 @@
+# 生产环境
+NODE_ENV=production
+
+VITE_DEV=false
+
+# 请求路径
+VITE_BASE_URL='http://dev.ccwin-in.com:25300/api'
+
+# 上传路径
+VITE_UPLOAD_URL='http://dev.ccwin-in.com:25300/api/admin-api/infra/file/upload'
+
+# 接口前缀
+VITE_API_BASEPATH=
+
+# 接口地址
+VITE_API_URL=/admin-api
+
+# 是否删除debugger
+VITE_DROP_DEBUGGER=true
+
+# 是否删除console.log
+VITE_DROP_CONSOLE=true
+
+# 是否sourcemap
+VITE_SOURCEMAP=false
+
+# 打包路径
+VITE_BASE_PATH=/
+
+# 输出路径
+VITE_OUT_DIR=sfms3.0-ui
+
+# 自定义接口路径
+VITE_INTERFACE_URL='http://dev.ccwin-in.com:25310/magic/web/index.html'
+
+# 积木报表请求路径
+VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:25310'
+
+# 租户配置
+VITE_TENANT='["长春1379","成都1397","长春2379"]'
+
+# 查看质检报告环境
+VITE_REPORT_URL = 'http://dev.ccwin-in.com:25400'
+
+# 登录系统升级的提示
+VITE_SYSTERM_UPDATE_ALERT = true
+VITE_SYSTERM_UPDATE_URL = 'https://scptest.faway-hella.com/'
+
+# 是否需要验证码
+VITE_NEED_CODE = true
+
+
+# 是否需要下载PDA链接
+VITE_PDA_URL = false
diff --git a/.env.test b/.env.test
new file mode 100644
index 0000000..cb687a7
--- /dev/null
+++ b/.env.test
@@ -0,0 +1,50 @@
+# 生产环境
+NODE_ENV=test
+
+VITE_DEV=false
+
+# 请求路径
+VITE_BASE_URL='http://dev.ccwin-in.com:29000/api'
+
+# 上传路径
+VITE_UPLOAD_URL='http://dev.ccwin-in.com:29000/api/admin-api/infra/file/upload'
+
+# 接口前缀
+VITE_API_BASEPATH=
+
+# 接口地址
+VITE_API_URL=/admin-api
+
+# 是否删除debugger
+VITE_DROP_DEBUGGER=true
+
+# 是否删除console.log
+VITE_DROP_CONSOLE=true
+
+# 是否sourcemap
+VITE_SOURCEMAP=false
+
+# 打包路径
+VITE_BASE_PATH=/
+
+# 输出路径
+VITE_OUT_DIR=sfms3.0-ui
+
+# 自定义接口路径
+VITE_INTERFACE_URL='http://dev.ccwin-in.com:29000/magic/web/index.html'
+
+# 积木报表请求路径
+VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:29000'
+
+# 租户配置
+VITE_TENANT='["长春","成都"]'
+
+# 查看质检报告环境
+VITE_REPORT_URL = 'http://dev.ccwin-in.com:25400'
+
+# 是否需要验证码
+VITE_NEED_CODE = true
+
+
+# 是否需要下载PDA链接
+VITE_PDA_URL = true
\ No newline at end of file
diff --git a/.env.test-scp b/.env.test-scp
new file mode 100644
index 0000000..218728c
--- /dev/null
+++ b/.env.test-scp
@@ -0,0 +1,50 @@
+# 生产环境
+NODE_ENV=test
+
+VITE_DEV=false
+
+# 请求路径
+VITE_BASE_URL='http://dev.ccwin-in.com:25400/api'
+
+# 上传路径
+VITE_UPLOAD_URL='http://dev.ccwin-in.com:25400/api/admin-api/infra/file/upload'
+
+# 接口前缀
+VITE_API_BASEPATH=
+
+# 接口地址
+VITE_API_URL=/admin-api
+
+# 是否删除debugger
+VITE_DROP_DEBUGGER=true
+
+# 是否删除console.log
+VITE_DROP_CONSOLE=true
+
+# 是否sourcemap
+VITE_SOURCEMAP=false
+
+# 打包路径
+VITE_BASE_PATH=/
+
+# 输出路径
+VITE_OUT_DIR=sfms3.0
+
+# 自定义接口路径
+VITE_INTERFACE_URL='http://dev.ccwin-in.com:25311/magic/web/index.html'
+
+# 积木报表请求路径
+VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:25311'
+
+
+# 租户配置
+VITE_TENANT='["长春1379","成都1397","长春2379"]'
+
+# 查看质检报告环境
+VITE_REPORT_URL = 'http://dev.ccwin-in.com:25400'
+
+# 是否需要验证码
+VITE_NEED_CODE = false
+
+# 是否需要下载PDA链接
+VITE_PDA_URL = false
diff --git a/.env.wyf b/.env.wyf
new file mode 100644
index 0000000..b6100e3
--- /dev/null
+++ b/.env.wyf
@@ -0,0 +1,64 @@
+# 生产环境
+NODE_ENV=test
+
+VITE_DEV=false
+
+# # 请求路径
+# VITE_BASE_URL='http://192.168.0.113:12080'
+# # 上传路径
+# VITE_UPLOAD_URL='http://192.168.0.113:12080/admin-api/infra/file/upload'
+# # 请求路径
+# VITE_BASE_URL='https://scp.faway-hella.com/api'
+# # 上传路径
+# VITE_UPLOAD_URL='https://scp.faway-hella.com/api/admin-api/infra/file/upload'
+
+# 请求路径
+VITE_BASE_URL='http://172.21.32.13/api'
+# 上传路径
+VITE_UPLOAD_URL='http://172.21.32.13/api/admin-api/infra/file/upload'
+
+
+# # 请求路径
+# VITE_BASE_URL='http://dev.ccwin-in.com:25300/api'
+
+# # 上传路径
+# VITE_UPLOAD_URL='http://dev.ccwin-in.com:25300/api/admin-api/infra/file/upload'
+
+# 接口前缀
+VITE_API_BASEPATH=
+
+# 接口地址
+VITE_API_URL=/admin-api
+
+# 是否删除debugger
+VITE_DROP_DEBUGGER=true
+
+# 是否删除console.log
+VITE_DROP_CONSOLE=true
+
+# 是否sourcemap
+VITE_SOURCEMAP=false
+
+# 打包路径
+VITE_BASE_PATH=/
+
+# 输出路径
+VITE_OUT_DIR=sfms3.0
+
+# # 自定义接口路径
+# VITE_INTERFACE_URL='http://192.168.0.108:12080/magic/web/index.html'
+
+# # 积木报表请求路径
+# VITE_JMREPORT_BASE_URL='http://192.168.0.108:12080'
+
+# 自定义接口路径
+VITE_INTERFACE_URL='http://dev.ccwin-in.com:25310/magic/web/index.html'
+
+# 积木报表请求路径
+VITE_JMREPORT_BASE_URL='http://192.168.0.108:12080'
+
+# 租户配置
+VITE_TENANT='["长春1379","成都1397","长春2379"]'
+
+# 查看质检报告环境
+VITE_REPORT_URL = 'http://dev.ccwin-in.com:25400'
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..1e85c0f
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,8 @@
+/build/
+/config/
+/dist/
+/*.js
+/test/unit/coverage/
+/node_modules/*
+/dist*
+/src/main.ts
diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
new file mode 100644
index 0000000..024c96a
--- /dev/null
+++ b/.eslintrc-auto-import.json
@@ -0,0 +1,259 @@
+{
+ "globals": {
+ "EffectScope": true,
+ "ElMessage": true,
+ "ElMessageBox": true,
+ "ElTag": true,
+ "asyncComputed": true,
+ "autoResetRef": true,
+ "computed": true,
+ "computedAsync": true,
+ "computedEager": true,
+ "computedInject": true,
+ "computedWithControl": true,
+ "controlledComputed": true,
+ "controlledRef": true,
+ "createApp": true,
+ "createEventHook": true,
+ "createGlobalState": true,
+ "createInjectionState": true,
+ "createReactiveFn": true,
+ "createSharedComposable": true,
+ "createUnrefFn": true,
+ "customRef": true,
+ "debouncedRef": true,
+ "debouncedWatch": true,
+ "defineAsyncComponent": true,
+ "defineComponent": true,
+ "eagerComputed": true,
+ "effectScope": true,
+ "extendRef": true,
+ "getCurrentInstance": true,
+ "getCurrentScope": true,
+ "h": true,
+ "ignorableWatch": true,
+ "inject": true,
+ "isDefined": true,
+ "isProxy": true,
+ "isReactive": true,
+ "isReadonly": true,
+ "isRef": true,
+ "makeDestructurable": true,
+ "markRaw": true,
+ "nextTick": true,
+ "onActivated": true,
+ "onBeforeMount": true,
+ "onBeforeUnmount": true,
+ "onBeforeUpdate": true,
+ "onClickOutside": true,
+ "onDeactivated": true,
+ "onErrorCaptured": true,
+ "onKeyStroke": true,
+ "onLongPress": true,
+ "onMounted": true,
+ "onRenderTracked": true,
+ "onRenderTriggered": true,
+ "onScopeDispose": true,
+ "onServerPrefetch": true,
+ "onStartTyping": true,
+ "onUnmounted": true,
+ "onUpdated": true,
+ "pausableWatch": true,
+ "provide": true,
+ "reactify": true,
+ "reactifyObject": true,
+ "reactive": true,
+ "reactiveComputed": true,
+ "reactiveOmit": true,
+ "reactivePick": true,
+ "readonly": true,
+ "ref": true,
+ "refAutoReset": true,
+ "refDebounced": true,
+ "refDefault": true,
+ "refThrottled": true,
+ "refWithControl": true,
+ "resolveComponent": true,
+ "resolveRef": true,
+ "resolveUnref": true,
+ "shallowReactive": true,
+ "shallowReadonly": true,
+ "shallowRef": true,
+ "syncRef": true,
+ "syncRefs": true,
+ "templateRef": true,
+ "throttledRef": true,
+ "throttledWatch": true,
+ "toRaw": true,
+ "toReactive": true,
+ "toRef": true,
+ "toRefs": true,
+ "triggerRef": true,
+ "tryOnBeforeMount": true,
+ "tryOnBeforeUnmount": true,
+ "tryOnMounted": true,
+ "tryOnScopeDispose": true,
+ "tryOnUnmounted": true,
+ "unref": true,
+ "unrefElement": true,
+ "until": true,
+ "useActiveElement": true,
+ "useArrayEvery": true,
+ "useArrayFilter": true,
+ "useArrayFind": true,
+ "useArrayFindIndex": true,
+ "useArrayJoin": true,
+ "useArrayMap": true,
+ "useArrayReduce": true,
+ "useArraySome": true,
+ "useAsyncQueue": true,
+ "useAsyncState": true,
+ "useAttrs": true,
+ "useBase64": true,
+ "useBattery": true,
+ "useBluetooth": true,
+ "useBreakpoints": true,
+ "useBroadcastChannel": true,
+ "useBrowserLocation": true,
+ "useCached": true,
+ "useClipboard": true,
+ "useColorMode": true,
+ "useConfirmDialog": true,
+ "useCounter": true,
+ "useCssModule": true,
+ "useCssVar": true,
+ "useCssVars": true,
+ "useCurrentElement": true,
+ "useCycleList": true,
+ "useDark": true,
+ "useDateFormat": true,
+ "useDebounce": true,
+ "useDebounceFn": true,
+ "useDebouncedRefHistory": true,
+ "useDeviceMotion": true,
+ "useDeviceOrientation": true,
+ "useDevicePixelRatio": true,
+ "useDevicesList": true,
+ "useDisplayMedia": true,
+ "useDocumentVisibility": true,
+ "useDraggable": true,
+ "useDropZone": true,
+ "useElementBounding": true,
+ "useElementByPoint": true,
+ "useElementHover": true,
+ "useElementSize": true,
+ "useElementVisibility": true,
+ "useEventBus": true,
+ "useEventListener": true,
+ "useEventSource": true,
+ "useEyeDropper": true,
+ "useFavicon": true,
+ "useFetch": true,
+ "useFileDialog": true,
+ "useFileSystemAccess": true,
+ "useFocus": true,
+ "useFocusWithin": true,
+ "useFps": true,
+ "useFullscreen": true,
+ "useGamepad": true,
+ "useGeolocation": true,
+ "useIdle": true,
+ "useImage": true,
+ "useInfiniteScroll": true,
+ "useIntersectionObserver": true,
+ "useInterval": true,
+ "useIntervalFn": true,
+ "useKeyModifier": true,
+ "useLastChanged": true,
+ "useLocalStorage": true,
+ "useMagicKeys": true,
+ "useManualRefHistory": true,
+ "useMediaControls": true,
+ "useMediaQuery": true,
+ "useMemoize": true,
+ "useMemory": true,
+ "useMounted": true,
+ "useMouse": true,
+ "useMouseInElement": true,
+ "useMousePressed": true,
+ "useMutationObserver": true,
+ "useNavigatorLanguage": true,
+ "useNetwork": true,
+ "useNow": true,
+ "useObjectUrl": true,
+ "useOffsetPagination": true,
+ "useOnline": true,
+ "usePageLeave": true,
+ "useParallax": true,
+ "usePermission": true,
+ "usePointer": true,
+ "usePointerSwipe": true,
+ "usePreferredColorScheme": true,
+ "usePreferredDark": true,
+ "usePreferredLanguages": true,
+ "useRafFn": true,
+ "useRefHistory": true,
+ "useResizeObserver": true,
+ "useRoute": true,
+ "useRouter": true,
+ "useScreenOrientation": true,
+ "useScreenSafeArea": true,
+ "useScriptTag": true,
+ "useScroll": true,
+ "useScrollLock": true,
+ "useSessionStorage": true,
+ "useShare": true,
+ "useSlots": true,
+ "useSpeechRecognition": true,
+ "useSpeechSynthesis": true,
+ "useStepper": true,
+ "useStorage": true,
+ "useStorageAsync": true,
+ "useStyleTag": true,
+ "useSupported": true,
+ "useSwipe": true,
+ "useTemplateRefsList": true,
+ "useTextDirection": true,
+ "useTextSelection": true,
+ "useTextareaAutosize": true,
+ "useThrottle": true,
+ "useThrottleFn": true,
+ "useThrottledRefHistory": true,
+ "useTimeAgo": true,
+ "useTimeout": true,
+ "useTimeoutFn": true,
+ "useTimeoutPoll": true,
+ "useTimestamp": true,
+ "useTitle": true,
+ "useToggle": true,
+ "useTransition": true,
+ "useUrlSearchParams": true,
+ "useUserMedia": true,
+ "useVModel": true,
+ "useVModels": true,
+ "useVibrate": true,
+ "useVirtualList": true,
+ "useWakeLock": true,
+ "useWebNotification": true,
+ "useWebSocket": true,
+ "useWebWorker": true,
+ "useWebWorkerFn": true,
+ "useWindowFocus": true,
+ "useWindowScroll": true,
+ "useWindowSize": true,
+ "watch": true,
+ "watchArray": true,
+ "watchAtMost": true,
+ "watchDebounced": true,
+ "watchEffect": true,
+ "watchIgnorable": true,
+ "watchOnce": true,
+ "watchPausable": true,
+ "watchPostEffect": true,
+ "watchSyncEffect": true,
+ "watchThrottled": true,
+ "watchTriggerable": true,
+ "watchWithFilter": true,
+ "whenever": true
+ }
+}
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..eee5ae3
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,75 @@
+// @ts-check
+const { defineConfig } = require('eslint-define-config')
+const { off } = require('process')
+module.exports = defineConfig({
+ root: true,
+ env: {
+ browser: true,
+ node: true,
+ es6: true
+ },
+ parser: 'vue-eslint-parser',
+ plugins: ['vue'],
+ parserOptions: {
+ parser: '@typescript-eslint/parser',
+ ecmaVersion: 2020,
+ sourceType: 'module',
+ jsxPragma: 'React',
+ ecmaFeatures: {
+ jsx: true
+ }
+ },
+ extends: [
+ 'plugin:vue/vue3-recommended',
+ 'plugin:@typescript-eslint/recommended',
+ // 'prettier',
+ // 'plugin:prettier/recommended',
+ '@unocss'
+ ],
+ rules: {
+ //'indent':['off',2],
+ //"@typescript-eslint/no-this-alias":["off"],
+ 'vue/script-setup-uses-vars': 'error',
+ 'vue/no-reserved-component-names': 'off',
+ 'vue/no-setup-props-destructure': 'off',
+ '@typescript-eslint/ban-ts-ignore': 'off',
+ '@typescript-eslint/explicit-function-return-type': 'off',
+ '@typescript-eslint/no-explicit-any': 'off',
+ '@typescript-eslint/no-var-requires': 'off',
+ '@typescript-eslint/no-empty-function': 'off',
+ 'vue/custom-event-name-casing': 'off',
+ 'no-use-before-define': 'off',
+ '@typescript-eslint/no-use-before-define': 'off',
+ '@typescript-eslint/ban-ts-comment': 'off',
+ '@typescript-eslint/ban-types': 'off',
+ '@typescript-eslint/no-non-null-assertion': 'off',
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
+ '@typescript-eslint/no-unused-vars': 'off',
+ 'no-unused-vars': 'off',
+ 'space-before-function-paren': 'off',
+
+ 'vue/attributes-order': 'off',
+ 'vue/one-component-per-file': 'off',
+ 'vue/html-closing-bracket-newline': 'off',
+ 'vue/max-attributes-per-line': 'off',
+ 'vue/multiline-html-element-content-newline': 'off',
+ 'vue/singleline-html-element-content-newline': 'off',
+ 'vue/attribute-hyphenation': 'off',
+ 'vue/require-default-prop': 'off',
+ 'vue/require-explicit-emits': 'off',
+ 'vue/html-self-closing': [
+ 'error',
+ {
+ html: {
+ void: 'always',
+ normal: 'never',
+ component: 'always'
+ },
+ svg: 'always',
+ math: 'always'
+ }
+ ],
+ 'vue/multi-word-component-names': 'off',
+ 'vue/no-v-html': 'off'
+ }
+})
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1f40422
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,15 @@
+node_modules
+.env.development
+.DS_Store
+dist
+dist-ssr
+*.local
+/dist*
+*-lock.*
+pnpm-debug
+auto-*.d.ts
+.idea
+.history
+/sfms3.0
+/sfms3.0-ui
+.vscode/
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..f68ea86
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,11 @@
+/node_modules/**
+/dist/
+/dist*
+/public/*
+/docs/*
+/vite.config.ts
+/src/types/env.d.ts
+/src/types/auto-components.d.ts
+/src/types/auto-imports.d.ts
+/docs/**/*
+CHANGELOG
diff --git a/.stylelintignore b/.stylelintignore
new file mode 100644
index 0000000..aa605b4
--- /dev/null
+++ b/.stylelintignore
@@ -0,0 +1,6 @@
+/dist/*
+/public/*
+public/*
+/dist*
+/src/types/env.d.ts
+/docs/**/*
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..1575c3c
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,7 @@
+# 设置基础镜像
+FROM win-nginx
+
+WORKDIR /opt/sfms3.0
+COPY nginx.conf /usr/local/nginx/conf/nginx.conf
+# 将dist文件中的内容复制到 /opt/sfms3.0 这个目录下面
+COPY sfms3.0/ /opt/sfms3.0
diff --git a/Dockerfile_prod b/Dockerfile_prod
new file mode 100644
index 0000000..e2a9419
--- /dev/null
+++ b/Dockerfile_prod
@@ -0,0 +1,7 @@
+# 设置基础镜像
+FROM win-nginx
+
+WORKDIR /opt/sfms3.0
+COPY nginx_prod.conf /usr/local/nginx/conf/nginx.conf
+# 将dist文件中的内容复制到 /opt/sfms3.0 这个目录下面
+COPY sfms3.0/ /opt/sfms3.0
diff --git a/Dockerfile_scp b/Dockerfile_scp
new file mode 100644
index 0000000..700cdf9
--- /dev/null
+++ b/Dockerfile_scp
@@ -0,0 +1,7 @@
+# 设置基础镜像
+FROM win-nginx
+
+WORKDIR /opt/sfms3.0
+COPY nginx_scp.conf /usr/local/nginx/conf/nginx.conf
+# 将dist文件中的内容复制到 /opt/sfms3.0 这个目录下面
+COPY sfms3.0/ /opt/sfms3.0
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..9861118
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021-present Archer
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/build/vite/index.ts b/build/vite/index.ts
new file mode 100644
index 0000000..c67f8a8
--- /dev/null
+++ b/build/vite/index.ts
@@ -0,0 +1,107 @@
+import { resolve } from 'path'
+import Vue from '@vitejs/plugin-vue'
+import VueJsx from '@vitejs/plugin-vue-jsx'
+import progress from 'vite-plugin-progress'
+// import EslintPlugin from 'vite-plugin-eslint'
+import PurgeIcons from 'vite-plugin-purge-icons'
+import { ViteEjsPlugin } from 'vite-plugin-ejs'
+// @ts-ignore
+import ElementPlus from 'unplugin-element-plus/vite'
+import AutoImport from 'unplugin-auto-import/vite'
+import Components from 'unplugin-vue-components/vite'
+import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
+import viteCompression from 'vite-plugin-compression'
+import topLevelAwait from 'vite-plugin-top-level-await'
+import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite'
+import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
+import UnoCSS from 'unocss/vite'
+
+export function createVitePlugins() {
+ const root = process.cwd()
+
+ // 路径查找
+ function pathResolve(dir: string) {
+ return resolve(root, '.', dir)
+ }
+
+ return [
+ Vue(),
+ VueJsx(),
+ UnoCSS(),
+ progress(),
+ PurgeIcons(),
+ ElementPlus({}),
+ AutoImport({
+ include: [
+ /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
+ /\.vue$/,
+ /\.vue\?vue/, // .vue
+ /\.md$/ // .md
+ ],
+ imports: [
+ 'vue',
+ 'vue-router',
+ // 可额外添加需要 autoImport 的组件
+ {
+ '@/hooks/web/useI18n': ['useI18n'],
+ '@/hooks/web/useMessage': ['useMessage'],
+ '@/hooks/web/useTable': ['useTable'],
+ '@/hooks/web/useCrudSchemas': ['useCrudSchemas'],
+ '@/utils/formRules': ['required'],
+ '@/utils/dict': ['DICT_TYPE']
+ }
+ ],
+ dts: 'src/types/auto-imports.d.ts',
+ resolvers: [ElementPlusResolver()],
+ eslintrc: {
+ enabled: false, // Default `false`
+ filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json`
+ globalsPropValue: true // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable')
+ }
+ }),
+ Components({
+ // 要搜索组件的目录的相对路径
+ dirs: ['src/components'],
+ // 组件的有效文件扩展名
+ extensions: ['vue', 'md'],
+ // 搜索子目录
+ deep: true,
+ include: [/\.vue$/, /\.vue\?vue/],
+ // 生成自定义 `auto-components.d.ts` 全局声明
+ dts: 'src/types/auto-components.d.ts',
+ // 自定义组件的解析器
+ resolvers: [ElementPlusResolver()],
+ exclude: [/[\\/]node_modules[\\/]/]
+ }),
+ // EslintPlugin({
+ // cache: false,
+ // include: ['src/**/*.vue', 'src/**/*.ts', 'src/**/*.tsx'] // 检查的文件
+ // }),
+ VueI18nPlugin({
+ runtimeOnly: true,
+ compositionOnly: true,
+ include: [resolve(__dirname, 'src/locales/**')]
+ }),
+ createSvgIconsPlugin({
+ iconDirs: [pathResolve('src/assets/svgs')],
+ symbolId: 'icon-[dir]-[name]',
+ svgoOptions: true
+ }),
+ viteCompression({
+ verbose: true, // 是否在控制台输出压缩结果
+ disable: false, // 是否禁用
+ threshold: 10240, // 体积大于 threshold 才会被压缩,单位 b
+ algorithm: 'gzip', // 压缩算法,可选 [ 'gzip' , 'brotliCompress' ,'deflate' , 'deflateRaw']
+ ext: '.gz', // 生成的压缩包后缀
+ deleteOriginFile: false //压缩后是否删除源文件
+ }),
+ ViteEjsPlugin(),
+ topLevelAwait({
+ // https://juejin.cn/post/7152191742513512485
+ // The export name of top-level await promise for each chunk module
+ promiseExportName: '__tla',
+ // The function to generate import names of top-level await promise in each chunk module
+ promiseImportName: (i) => `__tla_${i}`
+ })
+ ]
+}
diff --git a/build/vite/optimize.ts b/build/vite/optimize.ts
new file mode 100644
index 0000000..3dda50b
--- /dev/null
+++ b/build/vite/optimize.ts
@@ -0,0 +1,112 @@
+const include = [
+ 'qs',
+ 'url',
+ 'vue',
+ 'sass',
+ 'mitt',
+ 'axios',
+ 'pinia',
+ 'dayjs',
+ 'qrcode',
+ 'unocss',
+ 'vue-router',
+ 'vue-types',
+ 'vue-i18n',
+ 'crypto-js',
+ 'cropperjs',
+ 'lodash-es',
+ 'nprogress',
+ 'web-storage-cache',
+ '@iconify/iconify',
+ '@vueuse/core',
+ '@zxcvbn-ts/core',
+ 'echarts/core',
+ 'echarts/charts',
+ 'echarts/components',
+ 'echarts/renderers',
+ 'echarts-wordcloud',
+ '@wangeditor/editor',
+ '@wangeditor/editor-for-vue',
+ 'element-plus',
+ 'element-plus/es',
+ 'element-plus/es/locale/lang/zh-cn',
+ 'element-plus/es/locale/lang/en',
+ 'element-plus/es/components/avatar/style/css',
+ 'element-plus/es/components/space/style/css',
+ 'element-plus/es/components/backtop/style/css',
+ 'element-plus/es/components/form/style/css',
+ 'element-plus/es/components/radio-group/style/css',
+ 'element-plus/es/components/radio/style/css',
+ 'element-plus/es/components/checkbox/style/css',
+ 'element-plus/es/components/checkbox-group/style/css',
+ 'element-plus/es/components/switch/style/css',
+ 'element-plus/es/components/time-picker/style/css',
+ 'element-plus/es/components/date-picker/style/css',
+ 'element-plus/es/components/descriptions/style/css',
+ 'element-plus/es/components/descriptions-item/style/css',
+ 'element-plus/es/components/link/style/css',
+ 'element-plus/es/components/tooltip/style/css',
+ 'element-plus/es/components/drawer/style/css',
+ 'element-plus/es/components/dialog/style/css',
+ 'element-plus/es/components/checkbox-button/style/css',
+ 'element-plus/es/components/option-group/style/css',
+ 'element-plus/es/components/radio-button/style/css',
+ 'element-plus/es/components/cascader/style/css',
+ 'element-plus/es/components/color-picker/style/css',
+ 'element-plus/es/components/input-number/style/css',
+ 'element-plus/es/components/rate/style/css',
+ 'element-plus/es/components/select-v2/style/css',
+ 'element-plus/es/components/tree-select/style/css',
+ 'element-plus/es/components/slider/style/css',
+ 'element-plus/es/components/time-select/style/css',
+ 'element-plus/es/components/autocomplete/style/css',
+ 'element-plus/es/components/image-viewer/style/css',
+ 'element-plus/es/components/upload/style/css',
+ 'element-plus/es/components/col/style/css',
+ 'element-plus/es/components/form-item/style/css',
+ 'element-plus/es/components/alert/style/css',
+ 'element-plus/es/components/breadcrumb/style/css',
+ 'element-plus/es/components/select/style/css',
+ 'element-plus/es/components/input/style/css',
+ 'element-plus/es/components/breadcrumb-item/style/css',
+ 'element-plus/es/components/tag/style/css',
+ 'element-plus/es/components/pagination/style/css',
+ 'element-plus/es/components/table/style/css',
+ 'element-plus/es/components/table-v2/style/css',
+ 'element-plus/es/components/table-column/style/css',
+ 'element-plus/es/components/card/style/css',
+ 'element-plus/es/components/row/style/css',
+ 'element-plus/es/components/button/style/css',
+ 'element-plus/es/components/menu/style/css',
+ 'element-plus/es/components/sub-menu/style/css',
+ 'element-plus/es/components/menu-item/style/css',
+ 'element-plus/es/components/option/style/css',
+ 'element-plus/es/components/dropdown/style/css',
+ 'element-plus/es/components/dropdown-menu/style/css',
+ 'element-plus/es/components/dropdown-item/style/css',
+ 'element-plus/es/components/skeleton/style/css',
+ 'element-plus/es/components/skeleton/style/css',
+ 'element-plus/es/components/backtop/style/css',
+ 'element-plus/es/components/menu/style/css',
+ 'element-plus/es/components/sub-menu/style/css',
+ 'element-plus/es/components/menu-item/style/css',
+ 'element-plus/es/components/dropdown/style/css',
+ 'element-plus/es/components/tree/style/css',
+ 'element-plus/es/components/dropdown-menu/style/css',
+ 'element-plus/es/components/dropdown-item/style/css',
+ 'element-plus/es/components/badge/style/css',
+ 'element-plus/es/components/breadcrumb/style/css',
+ 'element-plus/es/components/breadcrumb-item/style/css',
+ 'element-plus/es/components/image/style/css',
+ 'element-plus/es/components/collapse-transition/style/css',
+ 'element-plus/es/components/timeline/style/css',
+ 'element-plus/es/components/timeline-item/style/css',
+ 'element-plus/es/components/collapse/style/css',
+ 'element-plus/es/components/collapse-item/style/css',
+ 'element-plus/es/components/button-group/style/css',
+ 'element-plus/es/components/text/style/css'
+]
+
+const exclude = ['@iconify/json']
+
+export { include, exclude }
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..e1dc00e
--- /dev/null
+++ b/index.html
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+ %VITE_APP_TITLE%
+
+
+
+
+
+
+
+
+
%VITE_APP_TITLE%
+
+
+
+
+
+
+
+
diff --git a/nginx.conf b/nginx.conf
new file mode 100644
index 0000000..3f28a53
--- /dev/null
+++ b/nginx.conf
@@ -0,0 +1,53 @@
+user root;
+worker_processes 2;
+
+events {
+ worker_connections 1024;
+}
+
+http {
+ include mime.types;
+ charset utf-8,gbk;
+ default_type application/octet-stream;
+ log_format main '$remote_addr - $remote_user [$time_local] "$request" '
+ '$status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for" "$request_time $upstream_response_time"';
+ access_log logs/access.log main;
+ sendfile on;
+ #tcp_nopush on;
+ keepalive_timeout 600s;
+ client_max_body_size 200m;
+ gzip on;
+ gzip_min_length 10k;
+ gzip_comp_level 9;
+ gzip_buffers 4 16k;
+ gzip_types text/plain application/javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
+ gzip_vary on;
+ gzip_disable "MSIE [1-6]\.";
+ upstream sfms3.0 {
+ server localhost:25310 weight=10 max_fails=3 fail_timeout=10s;
+ }
+ server {
+ listen 25300;
+ server_name_in_redirect off;
+ server_name _;
+ location /api/ {
+ proxy_pass http://sfms3.0/;
+ proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
+ proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
+ proxy_set_header Host $http_host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $http_x_forwarded_for;
+ }
+ location /profile/ {
+ alias /opt/profile/;
+ index index.html index.htm;
+ }
+ location / {
+ try_files $uri $uri/ /index.html;
+ root /opt/sfms3.0;
+ index index.html index.htm;
+ }
+ }
+}
+
diff --git a/nginx_prod.conf b/nginx_prod.conf
new file mode 100644
index 0000000..7cd6ed0
--- /dev/null
+++ b/nginx_prod.conf
@@ -0,0 +1,101 @@
+user root;
+worker_processes 2;
+
+events {
+ worker_connections 1024;
+}
+
+http {
+ include mime.types;
+ charset utf-8,gbk;
+ default_type application/octet-stream;
+ log_format main '$remote_addr - $remote_user [$time_local] "$request" '
+ '$status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for" "$request_time $upstream_response_time"';
+ access_log logs/access.log main;
+ sendfile on;
+ #tcp_nopush on;
+ keepalive_timeout 600s;
+ client_max_body_size 200m;
+ gzip on;
+ gzip_min_length 10k;
+ gzip_comp_level 9;
+ gzip_buffers 4 16k;
+ gzip_types text/plain application/javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
+ gzip_vary on;
+ gzip_disable "MSIE [1-6]\.";
+ upstream sfms3.0 {
+ server localhost:90 weight=10 max_fails=3 fail_timeout=10s;
+ }
+ server {
+ listen 80;
+ server_name_in_redirect off;
+ server_name _;
+ location /api/ {
+ proxy_pass http://sfms3.0/;
+ proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
+ proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
+ proxy_set_header Host $http_host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $http_x_forwarded_for;
+ }
+ location /profile/ {
+ alias /opt/profile/;
+ index index.html index.htm;
+ }
+ location / {
+ try_files $uri $uri/ /index.html;
+ root /opt/sfms3.0;
+ index index.html index.htm;
+ }
+ }
+ server {
+ listen 55563 ssl;
+ server_name_in_redirect off;
+ server_name _;
+ ssl_certificate /opt/faway-hella/faway-hella.com.pem;
+ ssl_certificate_key /opt/faway-hella/faway-hella.com.key;
+ location /api/ {
+ proxy_pass http://sfms3.0/;
+ proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
+ proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
+ proxy_set_header Host $http_host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $http_x_forwarded_for;
+ }
+ location /profile/ {
+ alias /opt/profile/;
+ index index.html index.htm;
+ }
+ location / {
+ try_files $uri $uri/ /index.html;
+ root /opt/sfms3.0;
+ index index.html index.htm;
+ }
+ }
+ server {
+ listen 56563 ssl;
+ server_name_in_redirect off;
+ server_name _;
+ ssl_certificate /opt/faway-hella/faway-hella.com.pem;
+ ssl_certificate_key /opt/faway-hella/faway-hella.com.key;
+ location /api/ {
+ proxy_pass http://sfms3.0/;
+ proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
+ proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
+ proxy_set_header Host $http_host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $http_x_forwarded_for;
+ }
+ location /profile/ {
+ alias /opt/profile/;
+ index index.html index.htm;
+ }
+ location / {
+ try_files $uri $uri/ /index.html;
+ root /opt/sfms3.0;
+ index index.html index.htm;
+ }
+ }
+}
+
diff --git a/nginx_scp.conf b/nginx_scp.conf
new file mode 100644
index 0000000..00a1a93
--- /dev/null
+++ b/nginx_scp.conf
@@ -0,0 +1,53 @@
+user root;
+worker_processes 2;
+
+events {
+ worker_connections 1024;
+}
+
+http {
+ include mime.types;
+ charset utf-8,gbk;
+ default_type application/octet-stream;
+ log_format main '$remote_addr - $remote_user [$time_local] "$request" '
+ '$status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent" "$http_x_forwarded_for" "$request_time $upstream_response_time"';
+ access_log logs/access.log main;
+ sendfile on;
+ #tcp_nopush on;
+ keepalive_timeout 600s;
+ client_max_body_size 200m;
+ gzip on;
+ gzip_min_length 10k;
+ gzip_comp_level 9;
+ gzip_buffers 4 16k;
+ gzip_types text/plain application/javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
+ gzip_vary on;
+ gzip_disable "MSIE [1-6]\.";
+ upstream sfms3.0 {
+ server localhost:25311 weight=10 max_fails=3 fail_timeout=10s;
+ }
+ server {
+ listen 25400;
+ server_name_in_redirect off;
+ server_name _;
+ location /api/ {
+ proxy_pass http://sfms3.0/;
+ proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
+ proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
+ proxy_set_header Host $http_host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $http_x_forwarded_for;
+ }
+ location /profile/ {
+ alias /opt/profile/;
+ index index.html index.htm;
+ }
+ location / {
+ try_files $uri $uri/ /index.html;
+ root /opt/sfms3.0;
+ index index.html index.htm;
+ }
+ }
+}
+
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..fb6cd18
--- /dev/null
+++ b/package.json
@@ -0,0 +1,140 @@
+{
+ "name": "yudao-ui-admin-vue3",
+ "version": "1.8.2-snapshot",
+ "description": "基于vue3、vite4、element-plus、typesScript",
+ "author": "xingyu",
+ "private": false,
+ "scripts": {
+ "dev": "vite",
+ "wyf": "vite --mode wyf",
+ "test": "vite build --mode test",
+ "test-scp": "vite build --mode test-scp",
+ "prod": "vite build --mode prod",
+ "preview": "vite preview",
+ "lint": "eslint --fix --ext .js,.vue src"
+ },
+ "dependencies": {
+ "@antv/x6": "^2.18.1",
+ "@element-plus/icons-vue": "^2.3.1",
+ "@form-create/designer": "^3.2.8",
+ "@form-create/element-ui": "^3.2.12",
+ "@iconify/iconify": "^3.1.1",
+ "@kjgl77/datav-vue3": "^1.7.4",
+ "@videojs-player/vue": "^1.0.0",
+ "@vueuse/core": "^10.11.1",
+ "@wangeditor/editor": "^5.1.23",
+ "@wangeditor/editor-for-vue": "^5.1.12",
+ "@zxcvbn-ts/core": "^3.0.4",
+ "animate.css": "^4.1.1",
+ "axios": "^1.7.7",
+ "benz-amr-recorder": "^1.1.5",
+ "bpmn-js-token-simulation": "^0.10.0",
+ "camunda-bpmn-moddle": "^7.0.1",
+ "cropperjs": "^1.6.2",
+ "crypto-js": "^4.2.0",
+ "dayjs": "^1.11.13",
+ "diagram-js": "^12.8.1",
+ "echarts": "^5.5.1",
+ "echarts-wordcloud": "^2.1.0",
+ "element-plus": "2.3.14",
+ "fast-xml-parser": "^4.5.0",
+ "highlight.js": "^11.10.0",
+ "intro.js": "^7.2.0",
+ "jsencrypt": "^3.3.2",
+ "lodash-es": "^4.17.21",
+ "min-dash": "^4.2.2",
+ "mitt": "^3.0.1",
+ "nprogress": "^0.2.0",
+ "pinia": "^2.2.4",
+ "qrcode": "^1.5.4",
+ "qs": "^6.13.0",
+ "sortablejs": "^1.15.3",
+ "steady-xml": "^0.1.0",
+ "url": "^0.11.4",
+ "video.js": "^7.21.6",
+ "vue": "^3.5.12",
+ "vue-dompurify-html": "^4.1.4",
+ "vue-i18n": "^9.14.1",
+ "vue-next-focus": "^0.0.12",
+ "vue-qr": "^4.0.9",
+ "vue-router": "^4.4.5",
+ "vue-types": "^5.1.3",
+ "vuedraggable": "^4.1.0",
+ "web-storage-cache": "^1.1.1",
+ "xml-js": "^1.6.11"
+ },
+ "devDependencies": {
+ "@babel/plugin-proposal-optional-chaining": "^7.21.0",
+ "@commitlint/cli": "^17.8.1",
+ "@commitlint/config-conventional": "^17.8.1",
+ "@iconify/json": "^2.2.265",
+ "@intlify/unplugin-vue-i18n": "^1.6.0",
+ "@purge-icons/generated": "^0.9.0",
+ "@types/intro.js": "^5.1.5",
+ "@types/lodash-es": "^4.17.12",
+ "@types/node": "^20.17.1",
+ "@types/nprogress": "^0.2.3",
+ "@types/qrcode": "^1.5.5",
+ "@types/qs": "^6.9.16",
+ "@typescript-eslint/eslint-plugin": "^6.21.0",
+ "@typescript-eslint/parser": "^6.21.0",
+ "@unocss/eslint-config": "^0.56.5",
+ "@unocss/transformer-variant-group": "^0.56.5",
+ "@vitejs/plugin-legacy": "^4.1.1",
+ "@vitejs/plugin-vue": "^4.6.2",
+ "@vitejs/plugin-vue-jsx": "^3.1.0",
+ "@vue-macros/volar": "^0.14.3",
+ "autoprefixer": "^10.4.20",
+ "bpmn-js": "8.9.0",
+ "bpmn-js-properties-panel": "0.46.0",
+ "consola": "^3.2.3",
+ "eslint": "^8.57.1",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-define-config": "^1.24.1",
+ "eslint-plugin-prettier": "^5.2.1",
+ "eslint-plugin-vue": "^9.29.1",
+ "lint-staged": "^14.0.1",
+ "postcss": "^8.4.47",
+ "postcss-html": "^1.7.0",
+ "postcss-scss": "^4.0.9",
+ "prettier": "^3.3.3",
+ "rimraf": "^5.0.10",
+ "rollup": "^3.29.5",
+ "sass": "^1.80.4",
+ "stylelint": "^15.11.0",
+ "stylelint-config-html": "^1.1.0",
+ "stylelint-config-recommended": "^13.0.0",
+ "stylelint-config-standard": "^34.0.0",
+ "stylelint-order": "^6.0.4",
+ "terser": "^5.36.0",
+ "typescript": "5.2.2",
+ "unocss": "^0.56.5",
+ "unplugin-auto-import": "^0.16.7",
+ "unplugin-element-plus": "^0.8.0",
+ "unplugin-vue-components": "^0.25.2",
+ "vite": "4.4.9",
+ "vite-plugin-compression": "^0.5.1",
+ "vite-plugin-ejs": "^1.7.0",
+ "vite-plugin-eslint": "^1.8.1",
+ "vite-plugin-progress": "^0.0.7",
+ "vite-plugin-purge-icons": "^0.9.2",
+ "vite-plugin-svg-icons": "^2.0.1",
+ "vite-plugin-top-level-await": "^1.4.4",
+ "vue-eslint-parser": "^9.4.3",
+ "vue-tsc": "^1.8.27"
+ },
+ "license": "MIT",
+ "repository": {
+ "type": "git",
+ "url": "git+https://gitee.com/yudaocode/yudao-ui-admin-vue3"
+ },
+ "bugs": {
+ "url": "https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues"
+ },
+ "homepage": "https://gitee.com/yudaocode/yudao-ui-admin-vue3",
+ "packageManager": "pnpm@8.6.0",
+ "engines": {
+ "node": ">= 16.0.0",
+ "pnpm": ">=8.6.0"
+ }
+}
diff --git a/postcss.config.js b/postcss.config.js
new file mode 100644
index 0000000..961986e
--- /dev/null
+++ b/postcss.config.js
@@ -0,0 +1,5 @@
+module.exports = {
+ plugins: {
+ autoprefixer: {}
+ }
+}
diff --git a/prettier.config.js b/prettier.config.js
new file mode 100644
index 0000000..b014bbf
--- /dev/null
+++ b/prettier.config.js
@@ -0,0 +1,22 @@
+module.exports = {
+ printWidth: 100, // 每行代码长度(默认80)
+ tabWidth: 2, // 每个tab相当于多少个空格(默认2)ab进行缩进(默认false)
+ useTabs: false, // 是否使用tab
+ semi: false, // 声明结尾使用分号(默认true)
+ vueIndentScriptAndStyle: false,
+ singleQuote: true, // 使用单引号(默认false)
+ quoteProps: 'as-needed',
+ bracketSpacing: true, // 对象字面量的大括号间使用空格(默认true)
+ trailingComma: 'none', // 多行使用拖尾逗号(默认none)
+ jsxSingleQuote: false,
+ // 箭头函数参数括号 默认avoid 可选 avoid| always
+ // avoid 能省略括号的时候就省略 例如x => x
+ // always 总是有括号
+ arrowParens: 'always',
+ insertPragma: false,
+ requirePragma: false,
+ proseWrap: 'never',
+ htmlWhitespaceSensitivity: 'strict',
+ endOfLine: 'auto',
+ rangeStart: 0
+}
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..5a7de08
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/home.png b/public/home.png
new file mode 100644
index 0000000..ccd4145
Binary files /dev/null and b/public/home.png differ
diff --git a/public/logo.gif b/public/logo.gif
new file mode 100644
index 0000000..fdbd32c
Binary files /dev/null and b/public/logo.gif differ
diff --git a/public/systemConfig.js b/public/systemConfig.js
new file mode 100644
index 0000000..3942093
--- /dev/null
+++ b/public/systemConfig.js
@@ -0,0 +1,20 @@
+let systemConfig = {
+ // 请求路径
+ baseUrl: 'http://172.22.32.8/api',
+ // 上传路径
+ uploadUrl: 'http://172.22.32.8/api/admin-api/infra/file/upload',
+ // 自定义接口路径
+ interfaceUrl: 'http://172.22.32.8:90/magic/web/index.html',
+ // 积木报表请求路径
+ jmreportBaseUrl: 'http://172.22.32.8:90',
+ // 查看质检报告环境
+ reportUrl: 'https://scp.faway-hella.com',
+ // 租户配置
+ tenant: '["成都"]',
+ systermUpdateAlert: true,
+ systermUpdateUrl: 'https://scptest.faway-hella.com/',
+ //是否需要验证码
+ needCode:false,
+ //是否需要PDA下载链接
+ pdaUrl:false,
+}
diff --git a/qodana.yaml b/qodana.yaml
new file mode 100644
index 0000000..29f8f8c
--- /dev/null
+++ b/qodana.yaml
@@ -0,0 +1,29 @@
+#-------------------------------------------------------------------------------#
+# Qodana analysis is configured by qodana.yaml file #
+# https://www.jetbrains.com/help/qodana/qodana-yaml.html #
+#-------------------------------------------------------------------------------#
+version: "1.0"
+
+#Specify inspection profile for code analysis
+profile:
+ name: qodana.starter
+
+#Enable inspections
+#include:
+# - name:
+
+#Disable inspections
+#exclude:
+# - name:
+# paths:
+# -
+
+#Execute shell command before Qodana execution (Applied in CI/CD pipeline)
+#bootstrap: sh ./prepare-qodana.sh
+
+#Install IDE plugins before Qodana execution (Applied in CI/CD pipeline)
+#plugins:
+# - id: #(plugin id can be found at https://plugins.jetbrains.com)
+
+#Specify Qodana linter for analysis (Applied in CI/CD pipeline)
+linter: jetbrains/qodana-js:latest
diff --git a/src/App.vue b/src/App.vue
new file mode 100644
index 0000000..c0d50c3
--- /dev/null
+++ b/src/App.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
diff --git a/src/api/bpm/activity/index.ts b/src/api/bpm/activity/index.ts
new file mode 100644
index 0000000..870d0d6
--- /dev/null
+++ b/src/api/bpm/activity/index.ts
@@ -0,0 +1,8 @@
+import request from '@/config/axios'
+
+export const getActivityList = async (params) => {
+ return await request.get({
+ url: '/bpm/activity/list',
+ params
+ })
+}
diff --git a/src/api/bpm/definition/index.ts b/src/api/bpm/definition/index.ts
new file mode 100644
index 0000000..c0e51fa
--- /dev/null
+++ b/src/api/bpm/definition/index.ts
@@ -0,0 +1,21 @@
+import request from '@/config/axios'
+
+export const getProcessDefinitionBpmnXML = async (id: number) => {
+ return await request.get({
+ url: '/bpm/process-definition/get-bpmn-xml?id=' + id
+ })
+}
+
+export const getProcessDefinitionPage = async (params) => {
+ return await request.get({
+ url: '/bpm/process-definition/page',
+ params
+ })
+}
+
+export const getProcessDefinitionList = async (params) => {
+ return await request.get({
+ url: '/bpm/process-definition/list',
+ params
+ })
+}
diff --git a/src/api/bpm/form/index.ts b/src/api/bpm/form/index.ts
new file mode 100644
index 0000000..142ed24
--- /dev/null
+++ b/src/api/bpm/form/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export type FormVO = {
+ id: number
+ name: string
+ conf: string
+ fields: string[]
+ status: number
+ remark: string
+ createTime: string
+}
+
+// 创建工作流的表单定义
+export const createForm = async (data: FormVO) => {
+ return await request.post({
+ url: '/bpm/form/create',
+ data: data
+ })
+}
+
+// 更新工作流的表单定义
+export const updateForm = async (data: FormVO) => {
+ return await request.put({
+ url: '/bpm/form/update',
+ data: data
+ })
+}
+
+// 删除工作流的表单定义
+export const deleteForm = async (id: number) => {
+ return await request.delete({
+ url: '/bpm/form/delete?id=' + id
+ })
+}
+
+// 获得工作流的表单定义
+export const getForm = async (id: number) => {
+ return await request.get({
+ url: '/bpm/form/get?id=' + id
+ })
+}
+
+// 获得工作流的表单定义分页
+export const getFormPage = async (params) => {
+ return await request.get({
+ url: '/bpm/form/page',
+ params
+ })
+}
+
+// 获得动态表单的精简列表
+export const getSimpleFormList = async () => {
+ return await request.get({
+ url: '/bpm/form/list-all-simple'
+ })
+}
diff --git a/src/api/bpm/leave/index.ts b/src/api/bpm/leave/index.ts
new file mode 100644
index 0000000..d4fe8d5
--- /dev/null
+++ b/src/api/bpm/leave/index.ts
@@ -0,0 +1,27 @@
+import request from '@/config/axios'
+
+export type LeaveVO = {
+ id: number
+ result: number
+ type: number
+ reason: string
+ processInstanceId: string
+ startTime: string
+ endTime: string
+ createTime: string
+}
+
+// 创建请假申请
+export const createLeave = async (data: LeaveVO) => {
+ return await request.post({ url: '/bpm/oa/leave/create', data: data })
+}
+
+// 获得请假申请
+export const getLeave = async (id: number) => {
+ return await request.get({ url: '/bpm/oa/leave/get?id=' + id })
+}
+
+// 获得请假申请分页
+export const getLeavePage = async (params: PageParam) => {
+ return await request.get({ url: '/bpm/oa/leave/page', params })
+}
diff --git a/src/api/bpm/model/index.ts b/src/api/bpm/model/index.ts
new file mode 100644
index 0000000..2e1d4e6
--- /dev/null
+++ b/src/api/bpm/model/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export type ProcessDefinitionVO = {
+ id: string
+ version: number
+ deploymentTIme: string
+ suspensionState: number
+}
+
+export type ModelVO = {
+ id: number
+ formName: string
+ key: string
+ name: string
+ description: string
+ category: string
+ formType: number
+ formId: number
+ formCustomCreatePath: string
+ formCustomViewPath: string
+ processDefinition: ProcessDefinitionVO
+ status: number
+ remark: string
+ createTime: string
+ bpmnXml: string
+}
+
+export const getModelPage = async (params) => {
+ return await request.get({ url: '/bpm/model/page', params })
+}
+
+export const getModel = async (id: number) => {
+ return await request.get({ url: '/bpm/model/get?id=' + id })
+}
+
+export const updateModel = async (data: ModelVO) => {
+ return await request.put({ url: '/bpm/model/update', data: data })
+}
+
+// 任务状态修改
+export const updateModelState = async (id: number, state: number) => {
+ const data = {
+ id: id,
+ state: state
+ }
+ return await request.put({ url: '/bpm/model/update-state', data: data })
+}
+
+export const createModel = async (data: ModelVO) => {
+ return await request.post({ url: '/bpm/model/create', data: data })
+}
+
+export const deleteModel = async (id: number) => {
+ return await request.delete({ url: '/bpm/model/delete?id=' + id })
+}
+
+export const deployModel = async (id: number) => {
+ return await request.post({ url: '/bpm/model/deploy?id=' + id })
+}
diff --git a/src/api/bpm/processInstance/index.ts b/src/api/bpm/processInstance/index.ts
new file mode 100644
index 0000000..10cd3bc
--- /dev/null
+++ b/src/api/bpm/processInstance/index.ts
@@ -0,0 +1,41 @@
+import request from '@/config/axios'
+
+export type Task = {
+ id: string
+ name: string
+}
+
+export type ProcessInstanceVO = {
+ id: number
+ name: string
+ processDefinitionId: string
+ category: string
+ result: number
+ tasks: Task[]
+ fields: string[]
+ status: number
+ remark: string
+ businessKey: string
+ createTime: string
+ endTime: string
+}
+
+export const getMyProcessInstancePage = async (params) => {
+ return await request.get({ url: '/bpm/process-instance/my-page', params })
+}
+
+export const createProcessInstance = async (data) => {
+ return await request.post({ url: '/bpm/process-instance/create', data: data })
+}
+
+export const cancelProcessInstance = async (id: number, reason: string) => {
+ const data = {
+ id: id,
+ reason: reason
+ }
+ return await request.delete({ url: '/bpm/process-instance/cancel', data: data })
+}
+
+export const getProcessInstance = async (id: number) => {
+ return await request.get({ url: '/bpm/process-instance/get?id=' + id })
+}
diff --git a/src/api/bpm/task/index.ts b/src/api/bpm/task/index.ts
new file mode 100644
index 0000000..e6478d3
--- /dev/null
+++ b/src/api/bpm/task/index.ts
@@ -0,0 +1,53 @@
+import request from '@/config/axios'
+
+export type TaskVO = {
+ id: number
+}
+
+export const getTodoTaskPage = async (params) => {
+ return await request.get({ url: '/bpm/task/todo-page', params })
+}
+
+export const getDoneTaskPage = async (params) => {
+ return await request.get({ url: '/bpm/task/done-page', params })
+}
+
+export const completeTask = async (data) => {
+ return await request.put({ url: '/bpm/task/complete', data })
+}
+
+export const approveTask = async (data) => {
+ return await request.put({ url: '/bpm/task/approve', data })
+}
+
+export const rejectTask = async (data) => {
+ return await request.put({ url: '/bpm/task/reject', data })
+}
+export const backTask = async (data) => {
+ return await request.put({ url: '/bpm/task/back', data })
+}
+
+export const updateTaskAssignee = async (data) => {
+ return await request.put({ url: '/bpm/task/update-assignee', data })
+}
+
+export const getTaskListByProcessInstanceId = async (processInstanceId) => {
+ return await request.get({
+ url: '/bpm/task/list-by-process-instance-id?processInstanceId=' + processInstanceId
+ })
+}
+
+// 导出任务
+export const exportTask = async (params) => {
+ return await request.download({ url: '/bpm/task/export', params })
+}
+
+// 获取所有可回退的节点
+export const getReturnList = async (params) => {
+ return await request.get({ url: '/bpm/task/get-return-list', params })
+}
+
+// 回退
+export const returnTask = async (data) => {
+ return await request.put({ url: '/bpm/task/return', data })
+}
diff --git a/src/api/bpm/taskAssignRule/index.ts b/src/api/bpm/taskAssignRule/index.ts
new file mode 100644
index 0000000..5fbe342
--- /dev/null
+++ b/src/api/bpm/taskAssignRule/index.ts
@@ -0,0 +1,29 @@
+import request from '@/config/axios'
+
+export type TaskAssignVO = {
+ id: number
+ modelId: string
+ processDefinitionId: string
+ taskDefinitionKey: string
+ taskDefinitionName: string
+ options: string[]
+ type: number
+}
+
+export const getTaskAssignRuleList = async (params) => {
+ return await request.get({ url: '/bpm/task-assign-rule/list', params })
+}
+
+export const createTaskAssignRule = async (data: TaskAssignVO) => {
+ return await request.post({
+ url: '/bpm/task-assign-rule/create',
+ data: data
+ })
+}
+
+export const updateTaskAssignRule = async (data: TaskAssignVO) => {
+ return await request.put({
+ url: '/bpm/task-assign-rule/update',
+ data: data
+ })
+}
diff --git a/src/api/bpm/userGroup/index.ts b/src/api/bpm/userGroup/index.ts
new file mode 100644
index 0000000..035762b
--- /dev/null
+++ b/src/api/bpm/userGroup/index.ts
@@ -0,0 +1,47 @@
+import request from '@/config/axios'
+
+export type UserGroupVO = {
+ id: number
+ name: string
+ description: string
+ memberUserIds: number[]
+ status: number
+ remark: string
+ createTime: string
+}
+
+// 创建用户组
+export const createUserGroup = async (data: UserGroupVO) => {
+ return await request.post({
+ url: '/bpm/user-group/create',
+ data: data
+ })
+}
+
+// 更新用户组
+export const updateUserGroup = async (data: UserGroupVO) => {
+ return await request.put({
+ url: '/bpm/user-group/update',
+ data: data
+ })
+}
+
+// 删除用户组
+export const deleteUserGroup = async (id: number) => {
+ return await request.delete({ url: '/bpm/user-group/delete?id=' + id })
+}
+
+// 获得用户组
+export const getUserGroup = async (id: number) => {
+ return await request.get({ url: '/bpm/user-group/get?id=' + id })
+}
+
+// 获得用户组分页
+export const getUserGroupPage = async (params) => {
+ return await request.get({ url: '/bpm/user-group/page', params })
+}
+
+// 获取用户组精简信息列表
+export const getSimpleUserGroupList = async (): Promise => {
+ return await request.get({ url: '/bpm/user-group/list-all-simple' })
+}
diff --git a/src/api/eam/adjustRecordDetail/index.ts b/src/api/eam/adjustRecordDetail/index.ts
new file mode 100644
index 0000000..d8f18cb
--- /dev/null
+++ b/src/api/eam/adjustRecordDetail/index.ts
@@ -0,0 +1,46 @@
+import request from '@/config/axios'
+
+export interface AdjustRecordDetailVO {
+ number: string
+ planNumber: string
+ requestNumber: string
+ requestTime: Date
+ jobNumber: string
+ recordNumber: string
+}
+
+// 查询备件盘点调整记录主列表
+export const getAdjustRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/adjustRecordDetail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/adjustRecordDetail/page`, params })
+ }
+}
+
+// 查询备件盘点调整记录主详情
+export const getAdjustRecordDetail = async (id: number) => {
+ return await request.get({ url: `/eam/adjustRecordDetail/get?id=` + id })
+}
+
+// 新增备件盘点调整记录主
+export const createAdjustRecordDetail = async (data: AdjustRecordDetailVO) => {
+ return await request.post({ url: `/eam/adjustRecordDetail/create`, data })
+}
+
+// 修改备件盘点调整记录主
+export const updateAdjustRecordDetail = async (data: AdjustRecordDetailVO) => {
+ return await request.put({ url: `/eam/adjustRecordDetail/update`, data })
+}
+
+// 删除备件盘点调整记录主
+export const deleteAdjustRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/adjustRecordDetail/delete?id=` + id })
+}
+
+// 导出备件盘点调整记录主 Excel
+export const exportAdjustRecordDetail = async (params) => {
+ return await request.download({ url: `/eam/adjustRecordDetail/export-excel`, params })
+}
diff --git a/src/api/eam/adjustRecordMain/index.ts b/src/api/eam/adjustRecordMain/index.ts
new file mode 100644
index 0000000..9eb4297
--- /dev/null
+++ b/src/api/eam/adjustRecordMain/index.ts
@@ -0,0 +1,46 @@
+import request from '@/config/axios'
+
+export interface AdjustRecordMainVO {
+ number: string
+ planNumber: string
+ requestNumber: string
+ requestTime: Date
+ jobNumber: string
+ recordNumber: string
+}
+
+// 查询备件盘点调整记录主列表
+export const getAdjustRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/adjustRecordMain/senior', data })
+ } else {
+ return await request.get({ url: `/eam/adjustRecordMain/page`, params })
+ }
+}
+
+// 查询备件盘点调整记录主详情
+export const getAdjustRecordMain = async (id: number) => {
+ return await request.get({ url: `/eam/adjustRecordMain/get?id=` + id })
+}
+
+// 新增备件盘点调整记录主
+export const createAdjustRecordMain = async (data: AdjustRecordMainVO) => {
+ return await request.post({ url: `/eam/adjustRecordMain/create`, data })
+}
+
+// 修改备件盘点调整记录主
+export const updateAdjustRecordMain = async (data: AdjustRecordMainVO) => {
+ return await request.put({ url: `/eam/adjustRecordMain/update`, data })
+}
+
+// 删除备件盘点调整记录主
+export const deleteAdjustRecordMain = async (id: number) => {
+ return await request.delete({ url: `/eam/adjustRecordMain/delete?id=` + id })
+}
+
+// 导出备件盘点调整记录主 Excel
+export const exportAdjustRecordMain = async (params) => {
+ return await request.download({ url: `/eam/adjustRecordMain/export-excel`, params })
+}
diff --git a/src/api/eam/applicationRecordDetail/index.ts b/src/api/eam/applicationRecordDetail/index.ts
new file mode 100644
index 0000000..9a45b46
--- /dev/null
+++ b/src/api/eam/applicationRecordDetail/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface ItemApplyDetailVO {
+ number : string
+ name : string
+ type : string
+ applyId : number
+ applyDeptId : number
+ approveId : number
+ approveTime : Date
+ outId : number
+ outTime : Date
+ siteId : string
+ available : string
+ concurrencyStamp : number
+}
+
+// 查询备件申领记录主列表
+export const getApplicationRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/item-apply-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-apply-request-detail/page`, params })
+ }
+}
+
+// 查询备件申领记录主详情
+export const getApplicationRecordDetail = async (id : number) => {
+ return await request.get({ url: `/eam/item-apply-request-detail/get?id=` + id })
+}
+
+// 新增备件申领记录主
+export const createApplicationRecordDetail = async (data : ItemApplyDetailVO) => {
+ return await request.post({ url: `/eam/item-apply-request-detail/create`, data })
+}
+
+// 修改备件申领记录主
+export const updateApplicationRecordDetail = async (data : ItemApplyDetailVO) => {
+ return await request.put({ url: `/eam/item-apply-request-detail/update`, data })
+}
+
+// 删除备件申领记录主
+export const deleteApplicationRecordDetail = async (id : number) => {
+ return await request.delete({ url: `/eam/item-apply-request-detail/delete?id=` + id })
+}
+
+// 导出备件申领记录主 Excel
+export const exportApplicationRecordDetail = async (params) => {
+ return await request.download({ url: `/eam/item-apply-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-apply-request-detail/get-import-template' })
+}
diff --git a/src/api/eam/applicationRecordMain/index.ts b/src/api/eam/applicationRecordMain/index.ts
new file mode 100644
index 0000000..207b15a
--- /dev/null
+++ b/src/api/eam/applicationRecordMain/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface ItemApplyMainVO {
+ number: string
+ name: string
+ type: string
+ applyId: number
+ applyDeptId: number
+ approveId: number
+ approveTime: Date
+ outId: number
+ outTime: Date
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询备件申领记录主列表
+export const getApplicationRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-apply-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-apply-request-main/page`, params })
+ }
+}
+
+// 查询备件申领记录主详情
+export const getApplicationRecordMain = async (id: number) => {
+ return await request.get({ url: `/eam/item-apply-request-main/get?id=` + id })
+}
+
+// 新增备件申领记录主
+export const createApplicationRecordMain = async (data: ItemApplyMainVO) => {
+ return await request.post({ url: `/eam/item-apply-request-main/create`, data })
+}
+
+// 修改备件申领记录主
+export const updateApplicationRecordMain = async (data: ItemApplyMainVO) => {
+ return await request.put({ url: `/eam/item-apply-request-main/update`, data })
+}
+
+// 删除备件申领记录主
+export const deleteApplicationRecordMain = async (id: number) => {
+ return await request.delete({ url: `/eam/item-apply-request-main/delete?id=` + id })
+}
+
+// 审批通过备件申领记录主
+export const agreeApplicationRecordMain = async (id: number) => {
+ return await request.get({ url: `/eam/item-apply-request-main/agree?id=` + id })
+}
+
+// 审批驳回备件申领记录主
+export const disAgreeApplicationRecordMain = async (id: number) => {
+ return await request.get({ url: `/eam/item-apply-request-main/disAgree?id=` + id })
+}
+
+// 导出备件申领记录主 Excel
+export const exportApplicationRecordMain = async (params) => {
+ return await request.download({ url: `/eam/item-apply-request-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-apply-request-main/get-import-template' })
+}
diff --git a/src/api/eam/attachmentFileUpload/index.ts b/src/api/eam/attachmentFileUpload/index.ts
new file mode 100644
index 0000000..9008e96
--- /dev/null
+++ b/src/api/eam/attachmentFileUpload/index.ts
@@ -0,0 +1,20 @@
+import request from '@/config/axios'
+// 上传图片
+export const uploadFiles = async (data) => {
+ return await request.post({ url: `/eam/attachment-file/upload`, data })
+}
+
+// 查询图片
+export const getFiles = async (data) => {
+ return await request.post({ url: `/eam/attachment-file/listNoPage`, data })
+}
+
+// 新增图片
+export const addFile = async (data) => {
+ return await request.post({ url: `/eam/attachment-file/create`, data })
+}
+
+// 删除图片
+export const delFile = async (id: number) => {
+ return await request.delete({ url: `/eam/attachment-file/delete?uid=`, id })
+}
\ No newline at end of file
diff --git a/src/api/eam/basicEamProductionline/index.ts b/src/api/eam/basicEamProductionline/index.ts
new file mode 100644
index 0000000..9f410ae
--- /dev/null
+++ b/src/api/eam/basicEamProductionline/index.ts
@@ -0,0 +1,73 @@
+import request from '@/config/axios'
+import {BasicEamWorkshopVO} from "@/api/eam/basicEamWorkshop";
+
+export interface BasicEamProductionlineVO {
+ id: number
+ code: string
+ name: string
+ description: string
+ type: string
+ workshopCode: string
+ rawLocationCode: string
+ fgLocationCode: string
+ available: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询生产线列表
+export const getBasicEamProductionlinePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic-eam-productionline/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic-eam-productionline/page`, params })
+ }
+}
+
+// 查询生产线详情
+export const getBasicEamProductionline = async (id: number) => {
+ return await request.get({ url: `/eam/basic-eam-productionline/get?id=` + id })
+}
+
+// 新增生产线
+export const createBasicEamProductionline = async (data: BasicEamProductionlineVO) => {
+ return await request.post({ url: `/eam/basic-eam-productionline/create`, data })
+}
+
+// 修改生产线
+export const updateBasicEamProductionline = async (data: BasicEamProductionlineVO) => {
+ return await request.put({ url: `/eam/basic-eam-productionline/update`, data })
+}
+
+// 删除生产线
+export const deleteBasicEamProductionline = async (id: number) => {
+ return await request.delete({ url: `/eam/basic-eam-productionline/delete?id=` + id })
+}
+
+// 导出生产线 Excel
+export const exportBasicEamProductionline = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/eam/basic-eam-productionline/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/eam/basic-eam-productionline/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic-eam-productionline/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: BasicEamProductionlineVO) => {
+ return await request.post({ url: `/eam/basic-eam-productionline/ables` , data })
+}
diff --git a/src/api/eam/basicEamWorkshop/index.ts b/src/api/eam/basicEamWorkshop/index.ts
new file mode 100644
index 0000000..2728f74
--- /dev/null
+++ b/src/api/eam/basicEamWorkshop/index.ts
@@ -0,0 +1,75 @@
+import request from '@/config/axios'
+
+export interface BasicEamWorkshopVO {
+ id: number
+ code: string
+ name: string
+ description: string
+ type: string
+ available: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询EAM车间列表
+export const getBasicEamWorkshopPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic-eam-workshop/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic-eam-workshop/page`, params })
+ }
+}
+
+// 查询EAM车间详情
+export const getBasicEamWorkshop = async (id: number) => {
+ return await request.get({ url: `/eam/basic-eam-workshop/get?id=` + id })
+}
+
+// 新增EAM车间
+export const createBasicEamWorkshop = async (data: BasicEamWorkshopVO) => {
+ return await request.post({ url: `/eam/basic-eam-workshop/create`, data })
+}
+
+// 修改EAM车间
+export const updateBasicEamWorkshop = async (data: BasicEamWorkshopVO) => {
+ return await request.put({ url: `/eam/basic-eam-workshop/update`, data })
+}
+
+// 删除EAM车间
+export const deleteBasicEamWorkshop = async (id: number) => {
+ return await request.delete({ url: `/eam/basic-eam-workshop/delete?id=` + id })
+}
+
+// 导出EAM车间 Excel
+export const exportBasicEamWorkshop = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/eam/basic-eam-workshop/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/eam/basic-eam-workshop/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic-eam-workshop/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: BasicEamWorkshopVO) => {
+ return await request.post({ url: `/eam/basic-eam-workshop/ables` , data })
+}
+
+
+// 查询EAM车间列表
+export const getBasicEamWorkshopNoPage = async (params) => {
+ return await request.get({ url: `/eam/basic-eam-workshop/noPage`, params })
+}
\ No newline at end of file
diff --git a/src/api/eam/basicFaultCause/index.ts b/src/api/eam/basicFaultCause/index.ts
new file mode 100644
index 0000000..5c72afd
--- /dev/null
+++ b/src/api/eam/basicFaultCause/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart";
+
+export interface BasicFaultCauseVO {
+ id: number
+ parentId: number
+ code: string
+ name: string
+ describing: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询故障原因列表
+export const getBasicFaultCausePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic-fault-cause/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic-fault-cause/page`, params })
+ }
+}
+
+// 查询故障原因详情
+export const getBasicFaultCause = async (id: number) => {
+ return await request.get({ url: `/eam/basic-fault-cause/get?id=` + id })
+}
+
+// 新增故障原因
+export const createBasicFaultCause = async (data: BasicFaultCauseVO) => {
+ return await request.post({ url: `/eam/basic-fault-cause/create`, data })
+}
+
+// 修改故障原因
+export const updateBasicFaultCause = async (data: BasicFaultCauseVO) => {
+ return await request.put({ url: `/eam/basic-fault-cause/update`, data })
+}
+
+// 删除故障原因
+export const deleteBasicFaultCause = async (id: number) => {
+ return await request.delete({ url: `/eam/basic-fault-cause/delete?id=` + id })
+}
+
+// 导出故障原因 Excel
+export const exportBasicFaultCause = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/eam/basic-fault-cause/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/eam/basic-fault-cause/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic-fault-cause/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: BasicFaultCauseVO) => {
+ return await request.post({ url: `/eam/basic-fault-cause/ables` , data })
+}
diff --git a/src/api/eam/basicFaultType/index.ts b/src/api/eam/basicFaultType/index.ts
new file mode 100644
index 0000000..6986595
--- /dev/null
+++ b/src/api/eam/basicFaultType/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart";
+
+export interface BasicFaultTypeVO {
+ id: number
+ code: string
+ name: string
+ describing: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询故障类型列表
+export const getBasicFaultTypePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic-fault-type/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic-fault-type/page`, params })
+ }
+}
+
+// 查询故障类型详情
+export const getBasicFaultType = async (id: number) => {
+ return await request.get({ url: `/eam/basic-fault-type/get?id=` + id })
+}
+
+// 新增故障类型
+export const createBasicFaultType = async (data: BasicFaultTypeVO) => {
+ return await request.post({ url: `/eam/basic-fault-type/create`, data })
+}
+
+// 修改故障类型
+export const updateBasicFaultType = async (data: BasicFaultTypeVO) => {
+ return await request.put({ url: `/eam/basic-fault-type/update`, data })
+}
+
+// 删除故障类型
+export const deleteBasicFaultType = async (id: number) => {
+ return await request.delete({ url: `/eam/basic-fault-type/delete?id=` + id })
+}
+
+// 导出故障类型 Excel
+export const exportBasicFaultType = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/eam/basic-fault-type/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/eam/basic-fault-type/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic-fault-type/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: BasicFaultTypeVO) => {
+ return await request.post({ url: `/eam/basic-fault-type/ables` , data })
+}
diff --git a/src/api/eam/basicInspectionOption/index.ts b/src/api/eam/basicInspectionOption/index.ts
new file mode 100644
index 0000000..663c618
--- /dev/null
+++ b/src/api/eam/basicInspectionOption/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart";
+
+export interface BasicInspectionOptionVO {
+ id: number
+ code: string
+ name: string
+ describing: string
+ isUpdated: boolean
+ type: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询巡检方案列表
+export const getBasicInspectionOptionPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic-inspection-option/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic-inspection-option/page`, params })
+ }
+}
+
+// 查询巡检方案详情
+export const getBasicInspectionOption = async (id: number) => {
+ return await request.get({ url: `/eam/basic-inspection-option/get?id=` + id })
+}
+
+// 新增巡检方案
+export const createBasicInspectionOption = async (data: BasicInspectionOptionVO) => {
+ return await request.post({ url: `/eam/basic-inspection-option/create`, data })
+}
+
+// 修改巡检方案
+export const updateBasicInspectionOption = async (data: BasicInspectionOptionVO) => {
+ return await request.put({ url: `/eam/basic-inspection-option/update`, data })
+}
+
+// 删除巡检方案
+export const deleteBasicInspectionOption = async (id: number) => {
+ return await request.delete({ url: `/eam/basic-inspection-option/delete?id=` + id })
+}
+
+// 导出巡检方案 Excel
+export const exportBasicInspectionOption = async (params) => {
+ return await request.download({ url: `/eam/basic-inspection-option/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic-inspection-option/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: BasicInspectionOptionVO) => {
+ return await request.post({ url: `/eam/basic-inspection-option/ables` , data })
+}
diff --git a/src/api/eam/basicMaintenanceOption/index.ts b/src/api/eam/basicMaintenanceOption/index.ts
new file mode 100644
index 0000000..96cca69
--- /dev/null
+++ b/src/api/eam/basicMaintenanceOption/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface BasicMaintenanceOptionVO {
+ id: number
+ code: string
+ name: string
+ selectId: string
+ describing: string
+ isUpdated: boolean
+ type: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询保养方案列表
+export const getBasicMaintenanceOptionPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic-maintenance-option/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic-maintenance-option/page`, params })
+ }
+}
+
+// 查询保养方案详情
+export const getBasicMaintenanceOption = async (id: number) => {
+ return await request.get({ url: `/eam/basic-maintenance-option/get?id=` + id })
+}
+
+// 新增保养方案
+export const createBasicMaintenanceOption = async (data) => {
+ return await request.post({ url: `/eam/basic-maintenance-option/create`, data })
+}
+
+// 修改保养方案
+export const updateBasicMaintenanceOption = async (data: BasicMaintenanceOptionVO) => {
+ return await request.put({ url: `/eam/basic-maintenance-option/update`, data })
+}
+
+// 删除保养方案
+export const deleteBasicMaintenanceOption = async (id: number) => {
+ return await request.delete({ url: `/eam/basic-maintenance-option/delete?id=` + id })
+}
+
+// 导出保养方案 Excel
+export const exportBasicMaintenanceOption = async (params) => {
+ return await request.download({ url: `/eam/basic-maintenance-option/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic-maintenance-option/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: BasicMaintenanceOptionVO) => {
+ return await request.post({ url: `/eam/basic-maintenance-option/ables` , data })
+}
diff --git a/src/api/eam/basicSpotCheckOption/index.ts b/src/api/eam/basicSpotCheckOption/index.ts
new file mode 100644
index 0000000..5b7d2d4
--- /dev/null
+++ b/src/api/eam/basicSpotCheckOption/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface BasicSpotCheckOptionVO {
+ id: number
+ code: string
+ name: string
+ selectId: number
+ describing: string
+ isUpdated: boolean
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询点检方案列表
+export const getBasicSpotCheckOptionPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic-spotCheck-option/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic-spotCheck-option/page`, params })
+ }
+}
+
+// 查询点检方案详情
+export const getBasicSpotCheckOption = async (id: number) => {
+ return await request.get({ url: `/eam/basic-spotCheck-option/get?id=` + id })
+}
+
+// 新增点检方案
+export const createBasicSpotCheckOption = async (data: BasicSpotCheckOptionVO) => {
+ return await request.post({ url: `/eam/basic-spotCheck-option/create`, data })
+}
+
+// 修改点检方案
+export const updateBasicSpotCheckOption = async (data: BasicSpotCheckOptionVO) => {
+ return await request.put({ url: `/eam/basic-spotCheck-option/update`, data })
+}
+
+// 删除点检方案
+export const deleteBasicSpotCheckOption = async (id: number) => {
+ return await request.delete({ url: `/eam/basic-spotCheck-option/delete?id=` + id })
+}
+
+// 导出点检方案 Excel
+export const exportBasicSpotCheckOption = async (params) => {
+ return await request.download({ url: `/eam/basic-spotCheck-option/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic-spotCheck-option/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: BasicSpotCheckOptionVO) => {
+ return await request.post({ url: `/eam/basic-spotCheck-option/ables` , data })
+}
diff --git a/src/api/eam/classTypeRole/index.ts b/src/api/eam/classTypeRole/index.ts
new file mode 100644
index 0000000..c6dd939
--- /dev/null
+++ b/src/api/eam/classTypeRole/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface ClassTypeRoleVO {
+ id: number
+ workerRoleId: string
+ engineerRoleId: string
+ type: string
+ factoryAreaCode: string
+ workshopCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询厂区班组角色维护列表
+export const getClassTypeRolePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/class-type-role/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/class-type-role/page`, params })
+ }
+}
+
+// 查询厂区班组角色维护详情
+export const getClassTypeRole = async (id: number) => {
+ return await request.get({ url: `/eam/basic/class-type-role/get?id=` + id })
+}
+
+// 新增厂区班组角色维护
+export const createClassTypeRole = async (data: ClassTypeRoleVO) => {
+ return await request.post({ url: `/eam/basic/class-type-role/create`, data })
+}
+
+// 修改厂区班组角色维护
+export const updateClassTypeRole = async (data: ClassTypeRoleVO) => {
+ return await request.put({ url: `/eam/basic/class-type-role/update`, data })
+}
+
+// 删除厂区班组角色维护
+export const deleteClassTypeRole = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/class-type-role/delete?id=` + id })
+}
+
+// 导出厂区班组角色维护 Excel
+export const exportClassTypeRole = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.downloadPost({ url: `/eam/basic/class-type-role/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/eam/basic/class-type-role/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/class-type-role/get-import-template' })
+}
+
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: ClassTypeRoleVO) => {
+ return await request.post({ url: `/eam/basic/class-type-role/ables` , data })
+}
diff --git a/src/api/eam/countJobDetail/index.ts b/src/api/eam/countJobDetail/index.ts
new file mode 100644
index 0000000..5f06e89
--- /dev/null
+++ b/src/api/eam/countJobDetail/index.ts
@@ -0,0 +1,51 @@
+import request from '@/config/axios'
+
+export interface CountJobDetailVO {
+ id : number
+ number : string
+ name : string
+ classification : string
+ isInAccount : string
+ status : string
+}
+
+// 查询备件盘点计划列表
+export const getCountJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/countJobDetail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/countJobDetail/page`, params })
+ }
+}
+
+// 查询备件盘点计划详情
+export const getCountJobDetail = async (id : number) => {
+ return await request.get({ url: `/eam/countJobDetail/get?id=` + id })
+}
+
+// 新增备件盘点计划
+export const createCountJobDetail = async (data : CountJobDetailVO) => {
+ return await request.post({ url: `/eam/countJobDetail/create`, data })
+}
+
+// 修改备件盘点计划
+export const updateCountJobDetail = async (data : CountJobDetailVO) => {
+ return await request.put({ url: `/eam/countJobDetail/update`, data })
+}
+
+// 删除备件盘点计划
+export const deleteCountJobDetail = async (id : number) => {
+ return await request.delete({ url: `/eam/countJobDetail/delete?id=` + id })
+}
+
+// 导出备件盘点计划 Excel
+export const exportCountJobDetail = async (params) => {
+ return await request.download({ url: `/eam/countJobDetail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/countJobDetail/get-import-template' })
+}
diff --git a/src/api/eam/countJobMain/index.ts b/src/api/eam/countJobMain/index.ts
new file mode 100644
index 0000000..2ead754
--- /dev/null
+++ b/src/api/eam/countJobMain/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface CountJobMainVO {
+ id : number
+ number : string
+ name : string
+ classification : string
+ isInAccount : string
+ status : string
+}
+
+// 查询备件盘点计划列表
+export const getCountJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/countJobMain/senior', data })
+ } else {
+ return await request.get({ url: `/eam/countJobMain/page`, params })
+ }
+}
+
+// 查询备件盘点计划详情
+export const getCountJobMain = async (id : number) => {
+ return await request.get({ url: `/eam/countJobMain/get?id=` + id })
+}
+
+// 新增备件盘点计划
+export const createCountJobMain = async (data : CountJobMainVO) => {
+ return await request.post({ url: `/eam/countJobMain/create`, data })
+}
+
+// 修改备件盘点计划
+export const updateCountJobMain = async (data : CountJobMainVO) => {
+ return await request.put({ url: `/eam/countJobMain/update`, data })
+}
+
+// 删除备件盘点计划
+export const deleteCountJobMain = async (id : number) => {
+ return await request.delete({ url: `/eam/countJobMain/delete?id=` + id })
+}
+
+// 导出备件盘点计划 Excel
+export const handleMainExport = async (id : number) => {
+ return await request.download({ url: `/eam/countJobMain/handleMainExport?id=` + id })
+}
+
+// 导出备件盘点计划 Excel
+export const exportCountJobMain = async (params) => {
+ return await request.download({ url: `/eam/countJobMain/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/countJobMain/get-import-template' })
+}
diff --git a/src/api/eam/countRecordDetail/index.ts b/src/api/eam/countRecordDetail/index.ts
new file mode 100644
index 0000000..0387608
--- /dev/null
+++ b/src/api/eam/countRecordDetail/index.ts
@@ -0,0 +1,51 @@
+import request from '@/config/axios'
+
+export interface CountRecordDetailVO {
+ id : number
+ number : string
+ name : string
+ classification : string
+ isInAccount : string
+ status : string
+}
+
+// 查询备件盘点计划列表
+export const getCountRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/countRecordDetail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/countRecordDetail/page`, params })
+ }
+}
+
+// 查询备件盘点计划详情
+export const getCountRecordDetail = async (id : number) => {
+ return await request.get({ url: `/eam/countRecordDetail/get?id=` + id })
+}
+
+// 新增备件盘点计划
+export const createCountRecordDetail = async (data : CountRecordDetailVO) => {
+ return await request.post({ url: `/eam/countRecordDetail/create`, data })
+}
+
+// 修改备件盘点计划
+export const updateCountRecordDetail = async (data : CountRecordDetailVO) => {
+ return await request.put({ url: `/eam/countRecordDetail/update`, data })
+}
+
+// 删除备件盘点计划
+export const deleteCountRecordDetail = async (id : number) => {
+ return await request.delete({ url: `/eam/countRecordDetail/delete?id=` + id })
+}
+
+// 导出备件盘点计划 Excel
+export const exportCountRecordDetail = async (params) => {
+ return await request.download({ url: `/eam/countRecordDetail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/countRecordDetail/get-import-template' })
+}
diff --git a/src/api/eam/countRecordMain/index.ts b/src/api/eam/countRecordMain/index.ts
new file mode 100644
index 0000000..512ae4c
--- /dev/null
+++ b/src/api/eam/countRecordMain/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface CountRecordMainVO {
+ id : number
+ number : string
+ name : string
+ classification : string
+ isInAccount : string
+ status : string
+}
+
+// 查询备件盘点计划列表
+export const getCountRecordMainPage = async (params) => {
+ params.status="CANGENERATE"
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/countRecordMain/senior', data })
+ } else {
+ return await request.get({ url: `/eam/countRecordMain/page`, params })
+ }
+}
+
+// 查询备件盘点计划详情
+export const getCountRecordMain = async (id : number) => {
+ return await request.get({ url: `/eam/countRecordMain/get?id=` + id })
+}
+
+// 新增备件盘点计划
+export const createCountRecordMain = async (data : CountRecordMainVO) => {
+ return await request.post({ url: `/eam/countRecordMain/create`, data })
+}
+
+// 修改备件盘点计划
+export const updateCountRecordMain = async (data : CountRecordMainVO) => {
+ return await request.put({ url: `/eam/countRecordMain/update`, data })
+}
+
+// 删除备件盘点计划
+export const deleteCountRecordMain = async (id : number) => {
+ return await request.delete({ url: `/eam/countRecordMain/delete?id=` + id })
+}
+// 盘点调整
+export const adjustCountRecordMain = async (id : number) => {
+ return await request.get({ url: `/eam/countRecordMain/adjust?number=` + id })
+}
+
+// 导出备件盘点计划 Excel
+export const handleMainExport = async (id : number) => {
+ return await request.download({ url: `/eam/countRecordMain/handleMainExport?id=` + id })
+}
+
+// 导出备件盘点计划 Excel
+export const exportCounRecordMain = async (params) => {
+ return await request.download({ url: `/eam/countRecordMain/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/countRecordMain/get-import-template' })
+}
diff --git a/src/api/eam/countadjustPlan/index.ts b/src/api/eam/countadjustPlan/index.ts
new file mode 100644
index 0000000..4a9470f
--- /dev/null
+++ b/src/api/eam/countadjustPlan/index.ts
@@ -0,0 +1,51 @@
+import request from '@/config/axios'
+
+export interface CountadjustPlanVO {
+ id : number
+ number : string
+ name : string
+ classification : string
+ isInAccount : string
+ status : string
+}
+
+// 查询备件盘点计划列表
+export const getCountadjustPlanPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/countadjust-plan/senior', data })
+ } else {
+ return await request.get({ url: `/eam/countadjust-plan/page`, params })
+ }
+}
+
+// 查询备件盘点计划详情
+export const getCountadjustPlan = async (id : number) => {
+ return await request.get({ url: `/eam/countadjust-plan/get?id=` + id })
+}
+
+// 新增备件盘点计划
+export const createCountadjustPlan = async (data : CountadjustPlanVO) => {
+ return await request.post({ url: `/eam/countadjust-plan/create`, data })
+}
+
+// 修改备件盘点计划
+export const updateCountadjustPlan = async (data : CountadjustPlanVO) => {
+ return await request.put({ url: `/eam/countadjust-plan/update`, data })
+}
+
+// 删除备件盘点计划
+export const deleteCountadjustPlan = async (id : number) => {
+ return await request.delete({ url: `/eam/countadjust-plan/delete?id=` + id })
+}
+
+// 导出备件盘点计划 Excel
+export const exportCountadjustPlan = async (params) => {
+ return await request.download({ url: `/eam/countadjust-plan/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/countadjust-plan/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/documentType/index.ts b/src/api/eam/documentType/index.ts
new file mode 100644
index 0000000..af93a8b
--- /dev/null
+++ b/src/api/eam/documentType/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart";
+
+export interface DocumentTypeVO {
+ id: number
+ code: string
+ name: string
+ type: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询文档类型列表
+export const getDocumentTypePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/document-type/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/document-type/page`, params })
+ }
+}
+
+// 查询文档类型详情
+export const getDocumentType = async (id: number) => {
+ return await request.get({ url: `/eam/basic/document-type/get?id=` + id })
+}
+
+// 新增文档类型
+export const createDocumentType = async (data: DocumentTypeVO) => {
+ return await request.post({ url: `/eam/basic/document-type/create`, data })
+}
+
+// 修改文档类型
+export const updateDocumentType = async (data: DocumentTypeVO) => {
+ return await request.put({ url: `/eam/basic/document-type/update`, data })
+}
+
+// 删除文档类型
+export const deleteDocumentType = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/document-type/delete?id=` + id })
+}
+
+// 导出文档类型 Excel
+export const exportDocumentType = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/eam/basic/document-type/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/eam/basic/document-type/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/document-type/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: DocumentTypeVO) => {
+ return await request.post({ url: `/eam/basic/document-type/ables` , data })
+}
diff --git a/src/api/eam/documentTypeSelectSet/index.ts b/src/api/eam/documentTypeSelectSet/index.ts
new file mode 100644
index 0000000..c776a99
--- /dev/null
+++ b/src/api/eam/documentTypeSelectSet/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface DocumentTypeSelectSetVO {
+ id: number
+ name: string
+ itemCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询文档类型选择集列表
+export const getDocumentTypeSelectSetPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/document-type-select-set/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/document-type-select-set/page`, params })
+ }
+}
+
+// 查询文档类型选择集详情
+export const getDocumentTypeSelectSet = async (id: number) => {
+ return await request.get({ url: `/eam/basic/document-type-select-set/get?id=` + id })
+}
+
+// 新增文档类型选择集
+export const createDocumentTypeSelectSet = async (data: DocumentTypeSelectSetVO) => {
+ return await request.post({ url: `/eam/basic/document-type-select-set/create`, data })
+}
+
+// 修改文档类型选择集
+export const updateDocumentTypeSelectSet = async (data: DocumentTypeSelectSetVO) => {
+ return await request.put({ url: `/eam/basic/document-type-select-set/update`, data })
+}
+
+// 删除文档类型选择集
+export const deleteDocumentTypeSelectSet = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/document-type-select-set/delete?id=` + id })
+}
+
+// 导出文档类型选择集 Excel
+export const exportDocumentTypeSelectSet = async (params) => {
+ return await request.download({ url: `/eam/basic/document-type-select-set/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/document-type-select-set/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: DocumentTypeSelectSetVO) => {
+ return await request.post({ url: `/eam/basic/document-type-select-set/ables` , data })
+}
diff --git a/src/api/eam/equipmentAccounts/index.ts b/src/api/eam/equipmentAccounts/index.ts
new file mode 100644
index 0000000..6f76580
--- /dev/null
+++ b/src/api/eam/equipmentAccounts/index.ts
@@ -0,0 +1,90 @@
+import request from '@/config/axios'
+
+export interface EquipmentAccountsVO {
+ id: number
+ code: string
+ name: string
+ specification: string
+ type: string
+ power: string
+ equity: string
+ electricMachine: string
+ beat: string
+ storageLocation: string
+ useDept: string
+ principal: string
+ principalTelephone: string
+ status: string
+ changeReason: string
+ startDate: Date
+ supplierCode: string
+ purchaseTime: Date
+ purchaseDept: string
+ purchaser: string
+ productionDate: Date
+ manufactureCode: string
+ equipmentLife: string
+ acceptanceDate: Date
+ purchasePrice: number
+ factoryAreaCode: string
+ workshopCode: string
+ workshopSectionCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备台账列表
+export const getEquipmentAccountsPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/device/equipment-accounts/senior', data })
+ } else {
+ return await request.get({ url: `/eam/device/equipment-accounts/page`, params })
+ }
+}
+
+// 查询设备台账详情
+export const getEquipmentAccounts = async (id: number) => {
+ return await request.get({ url: `/eam/device/equipment-accounts/get?id=` + id })
+}
+
+// 新增设备台账
+export const createEquipmentAccounts = async (data: EquipmentAccountsVO) => {
+ return await request.post({ url: `/eam/device/equipment-accounts/create`, data })
+}
+
+// 修改设备台账
+export const updateEquipmentAccounts = async (data: EquipmentAccountsVO) => {
+ return await request.put({ url: `/eam/device/equipment-accounts/update`, data })
+}
+
+// 删除设备台账
+export const deleteEquipmentAccounts = async (id: number) => {
+ return await request.delete({ url: `/eam/device/equipment-accounts/delete?id=` + id })
+}
+
+// 导出设备台账 Excel
+export const exportEquipmentAccounts = async (params) => {
+ return await request.download({ url: `/eam/device/equipment-accounts/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/device/equipment-accounts/get-import-template' })
+}
+
+// 查询设备台账列表
+export const getEquipmentAccountsNoPage = async (params) => {
+ return await request.get({ url: `/eam/device/equipment-accounts/noPage`, params })
+}
+
+//停用启用
+export const ableEquipmentAccountsMain = async (data: EquipmentAccountsVO) => {
+ return await request.post({ url: `/eam/device/equipment-accounts/ables`, data })
+}
diff --git a/src/api/eam/equipmentInspectionDetail/index.ts b/src/api/eam/equipmentInspectionDetail/index.ts
new file mode 100644
index 0000000..2381178
--- /dev/null
+++ b/src/api/eam/equipmentInspectionDetail/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface EquipmentInspectionDetailVO {
+ id: number
+ number: string
+ masterId: number
+ completionTime: Date
+ uncompletedCause: string
+ result: string
+ name: string
+ content: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询巡检工单子列表
+export const getEquipmentInspectionDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-inspection-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-inspection-detail/page`, params })
+ }
+}
+
+// 查询巡检工单子详情
+export const getEquipmentInspectionDetail = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-inspection-detail/get?id=` + id })
+}
+
+// 新增巡检工单子
+export const createEquipmentInspectionDetail = async (data: EquipmentInspectionDetailVO) => {
+ return await request.post({ url: `/eam/equipment-inspection-detail/create`, data })
+}
+
+// 修改巡检工单子
+export const updateEquipmentInspectionDetail = async (data: EquipmentInspectionDetailVO) => {
+ return await request.put({ url: `/eam/equipment-inspection-detail/update`, data })
+}
+
+// 删除巡检工单子
+export const deleteEquipmentInspectionDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-inspection-detail/delete?id=` + id })
+}
+
+// 导出巡检工单子 Excel
+export const exportEquipmentInspectionDetail = async (params) => {
+ return await request.download({ url: `/eam/equipment-inspection-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-inspection-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentInspectionMain/index.ts b/src/api/eam/equipmentInspectionMain/index.ts
new file mode 100644
index 0000000..6f25500
--- /dev/null
+++ b/src/api/eam/equipmentInspectionMain/index.ts
@@ -0,0 +1,104 @@
+import request from '@/config/axios'
+import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart";
+import {EquipmentMaintenanceMainVO} from "@/api/eam/equipmentMaintenanceMain";
+
+export interface EquipmentInspectionMainVO {
+ id: number
+ number: string
+ sources: string
+ describing: string
+ equipmentCode: string
+ type: string
+ isPictures: boolean
+ planNumber: string
+ planStartTime: Date
+ planEndTime: Date
+ startTime: Date
+ endTime: Date
+ classType: string
+ verifyer: number
+ verifyContent: string
+ verifyTime: Date
+ maintenancer: number
+ completionTime: Date
+ maintenanceTime: Date
+ status: string
+ autoOrder: string
+ autoPerform: string
+ autoVerify: string
+ directCreateRecord: string
+ faultType: string
+ factoryAreaCode: string
+ workshopCode: string
+ lineCode: string
+ processCode: string
+ workstationCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询巡检工单主列表
+export const getEquipmentInspectionMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-inspection-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-inspection-main/page`, params })
+ }
+}
+
+// 查询巡检工单主详情
+export const getEquipmentInspectionMain = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-inspection-main/get?id=` + id })
+}
+
+// 新增巡检工单主
+export const createEquipmentInspectionMain = async (data: EquipmentInspectionMainVO) => {
+ return await request.post({ url: `/eam/equipment-inspection-main/create`, data })
+}
+
+// 修改巡检工单主
+export const updateEquipmentInspectionMain = async (data: EquipmentInspectionMainVO) => {
+ return await request.put({ url: `/eam/equipment-inspection-main/update`, data })
+}
+
+// 验证巡检工单主
+export const verifyEquipmentInspectionMain = async (data: EquipmentInspectionMainVO) => {
+ return await request.post({ url: `/eam/equipment-inspection-main/verifyOrder`, data })
+}
+
+// 删除巡检工单主
+export const deleteEquipmentInspectionMain = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-inspection-main/delete?id=` + id })
+}
+
+// 导出巡检工单主 Excel
+export const exportEquipmentInspectionMain = async (params) => {
+ return await request.download({ url: `/eam/equipment-inspection-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-inspection-main/get-import-template' })
+}
+
+// 修改保养工单状态
+export const updateEquipmentInspectionOrder = async (data: EquipmentInspectionMainVO) => {
+ return await request.post({ url: `/eam/equipment-inspection-main/updateOrder`, data })
+}
+
+//完成保养工单
+export const executeEquipmentInspectionOrder = async (data: EquipmentInspectionMainVO) => {
+ return await request.post({ url: `/eam/equipment-inspection-main/execute`, data })
+}
+
+//验证不通过,打回保养工单
+export const backEquipmentInspectionOrder = async (data: EquipmentInspectionMainVO) => {
+ return await request.post({ url: `/eam/equipment-inspection-main/fallback`, data })
+}
diff --git a/src/api/eam/equipmentInspectionRecordDetail/index.ts b/src/api/eam/equipmentInspectionRecordDetail/index.ts
new file mode 100644
index 0000000..32f0f5c
--- /dev/null
+++ b/src/api/eam/equipmentInspectionRecordDetail/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface EquipmentInspectionRecordDetailVO {
+ id: number
+ number: string
+ masterId: number
+ completionTime: Date
+ uncompletedCause: string
+ result: string
+ name: string
+ content: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询巡检记录子列表
+export const getEquipmentInspectionRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-inspection-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-inspection-record-detail/page`, params })
+ }
+}
+
+// 查询巡检记录子详情
+export const getEquipmentInspectionRecordDetail = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-inspection-record-detail/get?id=` + id })
+}
+
+// 新增巡检记录子
+export const createEquipmentInspectionRecordDetail = async (data: EquipmentInspectionRecordDetailVO) => {
+ return await request.post({ url: `/eam/equipment-inspection-record-detail/create`, data })
+}
+
+// 修改巡检记录子
+export const updateEquipmentInspectionRecordDetail = async (data: EquipmentInspectionRecordDetailVO) => {
+ return await request.put({ url: `/eam/equipment-inspection-record-detail/update`, data })
+}
+
+// 删除巡检记录子
+export const deleteEquipmentInspectionRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-inspection-record-detail/delete?id=` + id })
+}
+
+// 导出巡检记录子 Excel
+export const exportEquipmentInspectionRecordDetail = async (params) => {
+ return await request.download({ url: `/eam/equipment-inspection-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-inspection-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentInspectionRecordMain/index.ts b/src/api/eam/equipmentInspectionRecordMain/index.ts
new file mode 100644
index 0000000..23f4893
--- /dev/null
+++ b/src/api/eam/equipmentInspectionRecordMain/index.ts
@@ -0,0 +1,79 @@
+import request from '@/config/axios'
+
+export interface EquipmentInspectionRecordMainVO {
+ id: number
+ number: string
+ describing: string
+ equipmentCode: string
+ type: string
+ isPictures: boolean
+ planNumber: string
+ planStartTime: Date
+ planEndTime: Date
+ startTime: Date
+ endTime: Date
+ classType: string
+ verifyer: number
+ verifyContent: string
+ verifyTime: Date
+ maintenancer: number
+ completionTime: Date
+ maintenanceTime: Date
+ status: string
+ autoOrder: string
+ autoPerform: string
+ autoVerify: string
+ directCreateRecord: string
+ faultType: string
+ factoryAreaCode: string
+ workshopCode: string
+ workshopSectionCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询巡检记录主列表
+export const getEquipmentInspectionRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-inspection-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-inspection-record-main/page`, params })
+ }
+}
+
+// 查询巡检记录主详情
+export const getEquipmentInspectionRecordMain = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-inspection-record-main/get?id=` + id })
+}
+
+// 新增巡检记录主
+export const createEquipmentInspectionRecordMain = async (data: EquipmentInspectionRecordMainVO) => {
+ return await request.post({ url: `/eam/equipment-inspection-record-main/create`, data })
+}
+
+// 修改巡检记录主
+export const updateEquipmentInspectionRecordMain = async (data: EquipmentInspectionRecordMainVO) => {
+ return await request.put({ url: `/eam/equipment-inspection-record-main/update`, data })
+}
+
+// 删除巡检记录主
+export const deleteEquipmentInspectionRecordMain = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-inspection-record-main/delete?id=` + id })
+}
+
+// 导出巡检记录主 Excel
+export const exportEquipmentInspectionRecordMain = async (params) => {
+ return await request.download({ url: `/eam/equipment-inspection-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-inspection-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentMainPart/index.ts b/src/api/eam/equipmentMainPart/index.ts
new file mode 100644
index 0000000..c50e500
--- /dev/null
+++ b/src/api/eam/equipmentMainPart/index.ts
@@ -0,0 +1,72 @@
+import request from '@/config/axios'
+
+export interface EquipmentMainPartVO {
+ id: number
+ name: string
+ code: string
+ type: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询主要部件列表
+export const getEquipmentMainPartPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-main-part/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-main-part/page`, params })
+ }
+}
+
+// 查询主要部件详情
+export const getEquipmentMainPart = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-main-part/get?id=` + id })
+}
+
+// 新增主要部件
+export const createEquipmentMainPart = async (data: EquipmentMainPartVO) => {
+ return await request.post({ url: `/eam/equipment-main-part/create`, data })
+}
+
+// 修改主要部件
+export const updateEquipmentMainPart = async (data: EquipmentMainPartVO) => {
+ console.log(data)
+ return await request.put({ url: `/eam/equipment-main-part/update`, data })
+}
+
+// 删除主要部件
+export const deleteEquipmentMainPart = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-main-part/delete?id=` + id })
+}
+
+// 导出主要部件 Excel
+export const exportEquipmentMainPart = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/eam/equipment-main-part/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/eam/equipment-main-part/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-main-part/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: EquipmentMainPartVO) => {
+ return await request.post({ url: `/eam/equipment-main-part/ables` , data })
+}
+
+// 查询主要部件列表
+export const getEquipmentMainPartNoPage = async (params) => {
+ return await request.get({ url: `/eam/equipment-main-part/noPage`, params })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentMaintenanceDetail/index.ts b/src/api/eam/equipmentMaintenanceDetail/index.ts
new file mode 100644
index 0000000..0869a00
--- /dev/null
+++ b/src/api/eam/equipmentMaintenanceDetail/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface EquipmentMaintenanceDetailVO {
+ id: number
+ number: string
+ masterId: number
+ peoples: number
+ estimatedMinutes: number
+ actualMinutes: number
+ chargePeoples: string
+ completionTime: Date
+ uncompletedCause: string
+ result: string
+ contents: string
+ equipmentParts: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备保养工单子列表
+export const getEquipmentMaintenanceDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-maintenance-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-maintenance-detail/page`, params })
+ }
+}
+
+// 查询设备保养工单子详情
+export const getEquipmentMaintenanceDetail = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-maintenance-detail/get?id=` + id })
+}
+
+// 新增设备保养工单子
+export const createEquipmentMaintenanceDetail = async (data: EquipmentMaintenanceDetailVO) => {
+ return await request.post({ url: `/eam/equipment-maintenance-detail/create`, data })
+}
+
+// 新增设备保养工单 通过主表添加
+export const createItemEquipmentMaintenanceDetail = async (data: EquipmentMaintenanceDetailVO) => {
+ return await request.post({ url: `/eam/equipment-maintenance-detail/createItem`, data })
+}
+
+// 修改设备保养工单子
+export const updateEquipmentMaintenanceDetail = async (data: EquipmentMaintenanceDetailVO) => {
+ return await request.put({ url: `/eam/equipment-maintenance-detail/update`, data })
+}
+
+// 删除设备保养工单子
+export const deleteEquipmentMaintenanceDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-maintenance-detail/delete?id=` + id })
+}
+
+// 导出设备保养工单子 Excel
+export const exportEquipmentMaintenanceDetail = async (params) => {
+ return await request.download({ url: `/eam/equipment-maintenance-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-maintenance-detail/get-import-template' })
+}
diff --git a/src/api/eam/equipmentMaintenanceMain/index.ts b/src/api/eam/equipmentMaintenanceMain/index.ts
new file mode 100644
index 0000000..e8b4498
--- /dev/null
+++ b/src/api/eam/equipmentMaintenanceMain/index.ts
@@ -0,0 +1,111 @@
+import request from '@/config/axios'
+import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart";
+
+export interface EquipmentMaintenanceMainVO {
+ id: number
+ describing: string
+ number: string
+ sources: string
+ equipmentCode: string
+ type: string
+ faultType: string
+ planNumber: string
+ planStartTime: Date
+ planEndTime: Date
+ startTime: Date
+ endTime: Date
+ classType: string
+ verifyer: number
+ verifyContent: string
+ verifyTime: Date
+ maintenancer: number
+ maintenancePhone: string
+ completionTime: Date
+ maintenanceTime: Date
+ status: string
+ autoOrder: string
+ autoPerform: string
+ autoVerify: string
+ directCreateRecord: string
+ factoryAreaCode: string
+ workshopCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备保养工单主列表
+export const getEquipmentMaintenanceMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-maintenance-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-maintenance-main/page`, params })
+ }
+}
+
+// 查询设备保养工单主详情
+export const getEquipmentMaintenanceMain = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-maintenance-main/get?id=` + id })
+}
+
+
+
+export const getMaintenanceOrderConfig = async () => {
+ return await request.get({ url: `/eam/equipment-maintenance-main/get-order-config`})
+}
+
+// 新增设备保养工单主
+export const createEquipmentMaintenanceMain = async (data: EquipmentMaintenanceMainVO) => {
+ return await request.post({ url: `/eam/equipment-maintenance-main/create`, data })
+}
+
+// 修改设备保养工单主
+export const updateEquipmentMaintenanceMain = async (data: EquipmentMaintenanceMainVO) => {
+ return await request.put({ url: `/eam/equipment-maintenance-main/update`, data })
+}
+
+// 验证设备保养工单主
+export const verifyEquipmentMaintenanceMain = async (data: EquipmentMaintenanceMainVO) => {
+ return await request.post({ url: `/eam/equipment-maintenance-main/verifyOrder`, data })
+}
+
+// 删除设备保养工单主
+export const deleteEquipmentMaintenanceMain = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-maintenance-main/delete?id=` + id })
+}
+
+// 导出设备保养工单主 Excel
+export const exportEquipmentMaintenanceMain = async (params) => {
+ return await request.download({ url: `/eam/equipment-maintenance-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-maintenance-main/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: EquipmentMainPartVO) => {
+ return await request.post({ url: `/eam/equipment-maintenance-main/ables` , data })
+}
+
+// 修改保养工单状态
+export const updateMaintenanceOrder = async (data: EquipmentMainPartVO) => {
+ return await request.post({ url: `/eam/equipment-maintenance-main/updateOrder`, data })
+}
+
+//完成保养工单
+export const executeMaintenanceOrder = async (data: EquipmentMainPartVO) => {
+ return await request.post({ url: `/eam/equipment-maintenance-main/execute`, data })
+}
+
+//验证不通过,打回保养工单
+export const backMaintenanceOrder = async (data: EquipmentMainPartVO) => {
+ return await request.post({ url: `/eam/equipment-maintenance-main/fallback`, data })
+}
diff --git a/src/api/eam/equipmentMaintenanceRecordDetail/index.ts b/src/api/eam/equipmentMaintenanceRecordDetail/index.ts
new file mode 100644
index 0000000..2ddc101
--- /dev/null
+++ b/src/api/eam/equipmentMaintenanceRecordDetail/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface EquipmentMaintenanceRecordDetailVO {
+ id: number
+ number: string
+ masterId: number
+ peoples: number
+ estimatedMinutes: number
+ actualMinutes: number
+ chargePeoples: string
+ completionTime: Date
+ uncompletedCause: string
+ result: string
+ name: string
+ content: string
+ equipmentParts: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询保养记录子列表
+export const getEquipmentMaintenanceRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-maintenance-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-maintenance-record-detail/page`, params })
+ }
+}
+
+// 查询保养记录子详情
+export const getEquipmentMaintenanceRecordDetail = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-maintenance-record-detail/get?id=` + id })
+}
+
+// 新增保养记录子
+export const createEquipmentMaintenanceRecordDetail = async (data: EquipmentMaintenanceRecordDetailVO) => {
+ return await request.post({ url: `/eam/equipment-maintenance-record-detail/create`, data })
+}
+
+// 修改保养记录子
+export const updateEquipmentMaintenanceRecordDetail = async (data: EquipmentMaintenanceRecordDetailVO) => {
+ return await request.put({ url: `/eam/equipment-maintenance-record-detail/update`, data })
+}
+
+// 删除保养记录子
+export const deleteEquipmentMaintenanceRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-maintenance-record-detail/delete?id=` + id })
+}
+
+// 导出保养记录子 Excel
+export const exportEquipmentMaintenanceRecordDetail = async (params) => {
+ return await request.download({ url: `/eam/equipment-maintenance-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-maintenance-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentMaintenanceRecordMain/index.ts b/src/api/eam/equipmentMaintenanceRecordMain/index.ts
new file mode 100644
index 0000000..184805d
--- /dev/null
+++ b/src/api/eam/equipmentMaintenanceRecordMain/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface EquipmentMaintenanceRecordMainVO {
+ id: number
+ number: string
+ describing: string
+ equipmentCode: string
+ category: string
+ classes: string
+ planNumber: string
+ faultType: string
+ cycle: string
+ times: string
+ verifyer2: number
+ verifyContent2: string
+ verifyTime2: Date
+ maintenancer: number
+ maintenancePhone: string
+ completeResult: string
+ completionTime2: Date
+ maintenanceTime: Date
+ status: string
+ factoryAreaCode: string
+ workshopCode: string
+ workshopSectionCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备保养记录主列表
+export const getEquipmentMaintenanceRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-maintenance-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-maintenance-record-main/page`, params })
+ }
+}
+
+// 查询设备保养记录主详情
+export const getEquipmentMaintenanceRecordMain = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-maintenance-record-main/get?id=` + id })
+}
+
+// 新增设备保养记录主
+export const createEquipmentMaintenanceRecordMain = async (data: EquipmentMaintenanceRecordMainVO) => {
+ return await request.post({ url: `/eam/equipment-maintenance-record-main/create`, data })
+}
+
+// 修改设备保养记录主
+export const updateEquipmentMaintenanceRecordMain = async (data: EquipmentMaintenanceRecordMainVO) => {
+ return await request.put({ url: `/eam/equipment-maintenance-record-main/update`, data })
+}
+
+// 删除设备保养记录主
+export const deleteEquipmentMaintenanceRecordMain = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-maintenance-record-main/delete?id=` + id })
+}
+
+// 导出设备保养记录主 Excel
+export const exportEquipmentMaintenanceRecordMain = async (params) => {
+ return await request.download({ url: `/eam/equipment-maintenance-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-maintenance-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentManufacturer/index.ts b/src/api/eam/equipmentManufacturer/index.ts
new file mode 100644
index 0000000..1160cc0
--- /dev/null
+++ b/src/api/eam/equipmentManufacturer/index.ts
@@ -0,0 +1,73 @@
+import request from '@/config/axios'
+
+export interface EquipmentManufacturerVO {
+ id: number
+ number: string
+ name: string
+ shortName: string
+ address: string
+ country: string
+ city: string
+ phone: string
+ fax: string
+ postId: string
+ contacts: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备制造商列表
+export const getEquipmentManufacturerPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/equipment-manufacturer/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/equipment-manufacturer/page`, params })
+ }
+}
+
+// 查询设备制造商详情
+export const getEquipmentManufacturer = async (id: number) => {
+ return await request.get({ url: `/eam/basic/equipment-manufacturer/get?id=` + id })
+}
+
+// 新增设备制造商
+export const createEquipmentManufacturer = async (data: EquipmentManufacturerVO) => {
+ return await request.post({ url: `/eam/basic/equipment-manufacturer/create`, data })
+}
+
+// 修改设备制造商
+export const updateEquipmentManufacturer = async (data: EquipmentManufacturerVO) => {
+ return await request.put({ url: `/eam/basic/equipment-manufacturer/update`, data })
+}
+
+// 删除设备制造商
+export const deleteEquipmentManufacturer = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/equipment-manufacturer/delete?id=` + id })
+}
+
+// 导出设备制造商 Excel
+export const exportEquipmentManufacturer = async (params) => {
+ if (params.isSearch) {
+ const data = { ...params }
+ return await request.downloadPost({ url: `/eam/basic/equipment-manufacturer/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/eam/basic/equipment-manufacturer/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/equipment-manufacturer/get-import-template' })
+}
+
+// 查询设备制造商列表
+export const getEquipmentManufacturerNoPage = async (params) => {
+ return await request.get({ url: `/eam/basic/equipment-manufacturer/noPage`, params })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentRepairJobDetail/index.ts b/src/api/eam/equipmentRepairJobDetail/index.ts
new file mode 100644
index 0000000..efe6bda
--- /dev/null
+++ b/src/api/eam/equipmentRepairJobDetail/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface EquipmentRepairJobDetailVO {
+ id: number
+ number: string
+ masterId: number
+ describing: string
+ faultCause: string
+ workOut: string
+ maintenances: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询维修工单子列表
+export const getEquipmentRepairJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-repair-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-repair-job-detail/page`, params })
+ }
+}
+
+// 查询维修工单子详情
+export const getEquipmentRepairJobDetail = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-repair-job-detail/get?id=` + id })
+}
+
+// 新增维修工单子
+export const createEquipmentRepairJobDetail = async (data: EquipmentRepairJobDetailVO) => {
+ return await request.post({ url: `/eam/equipment-repair-job-detail/create`, data })
+}
+
+// 修改维修工单子
+export const updateEquipmentRepairJobDetail = async (data: EquipmentRepairJobDetailVO) => {
+ return await request.put({ url: `/eam/equipment-repair-job-detail/update`, data })
+}
+
+// 删除维修工单子
+export const deleteEquipmentRepairJobDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-repair-job-detail/delete?id=` + id })
+}
+
+// 导出维修工单子 Excel
+export const exportEquipmentRepairJobDetail = async (params) => {
+ return await request.download({ url: `/eam/equipment-repair-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-repair-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentRepairJobMain/index.ts b/src/api/eam/equipmentRepairJobMain/index.ts
new file mode 100644
index 0000000..0a77ee4
--- /dev/null
+++ b/src/api/eam/equipmentRepairJobMain/index.ts
@@ -0,0 +1,122 @@
+import request from '@/config/axios'
+
+export interface EquipmentRepairJobMainVO {
+ id: number
+ number: string
+ type: string
+ repairNumber: string
+ sources: string
+ maintenanceDesc: string
+ urgency: string
+ level: string
+ equipmentCode: string
+ shutDown: boolean
+ startTime: Date
+ endTime: Date
+ totalMinutes: number
+ verifyerRepair: number
+ verifyContentRepair: string
+ verifyTimeRepair: Date
+ verifyerReport: number
+ verifyContentReport: string
+ verifyTimeReport: Date
+ maintenancer: number
+ maintenancePhone: string
+ completeResult: string
+ completionTime: Date
+ maintenanceTime: Date
+ repairTime: Date
+ repairer: number
+ faultType: string
+ status: string
+ autoOrder: string
+ autoPerform: string
+ autoVerify: string
+ directCreateRecord: string
+ classType: string
+ factoryAreaCode: string
+ workshopCode: string
+ lineCode: string
+ processCode: string
+ workstationCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询维修工单主列表
+export const getEquipmentRepairJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-repair-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-repair-job-main/page`, params })
+ }
+}
+
+// 查询维修工单主详情
+export const getEquipmentRepairJobMain = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-repair-job-main/get?id=` + id })
+}
+
+// 新增维修工单主
+export const createEquipmentRepairJobMain = async (data: EquipmentRepairJobMainVO) => {
+ return await request.post({ url: `/eam/equipment-repair-job-main/create`, data })
+}
+
+// 维修验证更新工单主
+export const wxVerifyEquipmentRepairJobMain = async (data: EquipmentRepairJobMainVO) => {
+ return await request.post({ url: `/eam/equipment-repair-job-main/wxVerify`, data })
+}
+
+// 修改维修工单主
+export const updateEquipmentRepairJobMain = async (data: EquipmentRepairJobMainVO) => {
+ return await request.put({ url: `/eam/equipment-repair-job-main/update`, data })
+}
+
+// 修改维修工单主
+export const updateEquipmentRepairMain = async (data: EquipmentRepairJobMainVO) => {
+ return await request.post({ url: `/eam/equipment-repair-job-main/updateRepair`, data })
+}
+
+
+// 完成维修工单主
+export const executeEquipmentRepairJobMain = async (data: EquipmentRepairJobMainVO) => {
+ return await request.post({ url: `/eam/equipment-repair-job-main/execute`, data })
+}
+
+// 删除维修工单主
+export const deleteEquipmentRepairJobMain = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-repair-job-main/delete?id=` + id })
+}
+
+// 导出维修工单主 Excel
+export const exportEquipmentRepairJobMain = async (params) => {
+ return await request.download({ url: `/eam/equipment-repair-job-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-repair-job-main/get-import-template' })
+}
+
+// 修改维修工单状态
+export const updateEquipmentRepairOrder = async (data: EquipmentRepairJobMainVO) => {
+ return await request.post({ url: `/eam/equipment-repair-job-main/updateOrder`, data })
+}
+
+//维修验证不通过,打回维修工单
+export const backEquipmentRepairOrder = async (data: EquipmentRepairJobMainVO) => {
+ return await request.post({ url: `/eam/equipment-repair-job-main/fallback`, data })
+}
+
+//报修验证
+export const createEquipmentRepairNewOrder = async (data: EquipmentRepairJobMainVO) => {
+ return await request.post({ url: `/eam/equipment-repair-job-main/createNew`, data })
+}
+
diff --git a/src/api/eam/equipmentRepairRecordDetail/index.ts b/src/api/eam/equipmentRepairRecordDetail/index.ts
new file mode 100644
index 0000000..91b3e73
--- /dev/null
+++ b/src/api/eam/equipmentRepairRecordDetail/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface EquipmentRepairRecordDetailVO {
+ id: number
+ number: string
+ masterId: number
+ describing: string
+ faultCause: string
+ workOut: string
+ maintenances: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备维修记录子列表
+export const getEquipmentRepairRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-repair-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-repair-record-detail/page`, params })
+ }
+}
+
+// 查询设备维修记录子详情
+export const getEquipmentRepairRecordDetail = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-repair-record-detail/get?id=` + id })
+}
+
+// 新增设备维修记录子
+export const createEquipmentRepairRecordDetail = async (data: EquipmentRepairRecordDetailVO) => {
+ return await request.post({ url: `/eam/equipment-repair-record-detail/create`, data })
+}
+
+// 修改设备维修记录子
+export const updateEquipmentRepairRecordDetail = async (data: EquipmentRepairRecordDetailVO) => {
+ return await request.put({ url: `/eam/equipment-repair-record-detail/update`, data })
+}
+
+// 删除设备维修记录子
+export const deleteEquipmentRepairRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-repair-record-detail/delete?id=` + id })
+}
+
+// 导出设备维修记录子 Excel
+export const exportEquipmentRepairRecordDetail = async (params) => {
+ return await request.download({ url: `/eam/equipment-repair-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-repair-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentRepairRecordMain/index.ts b/src/api/eam/equipmentRepairRecordMain/index.ts
new file mode 100644
index 0000000..d10e21d
--- /dev/null
+++ b/src/api/eam/equipmentRepairRecordMain/index.ts
@@ -0,0 +1,85 @@
+import request from '@/config/axios'
+
+export interface EquipmentRepairRecordMainVO {
+ id: number
+ number: string
+ type: string
+ repairNumber: string
+ sources: string
+ maintenanceDesc: string
+ urgency: string
+ level: string
+ equipmentCode: string
+ shutDown: boolean
+ startTime: Date
+ endTime: Date
+ totalMinutes: number
+ verifyer: number
+ verifyContent: string
+ verifyTime: Date
+ maintenancer: number
+ maintenancePhone: string
+ completeResult: string
+ completionTime: Date
+ maintenanceTime: Date
+ repairTime: Date
+ repairer: number
+ faultType: string
+ status: string
+ autoOrder: string
+ autoPerform: string
+ autoVerify: string
+ directCreateRecord: string
+ classType: string
+ factoryAreaCode: string
+ workshopCode: string
+ workshopSectionCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备维修记录主列表
+export const getEquipmentRepairRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-repair-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-repair-record-main/page`, params })
+ }
+}
+
+// 查询设备维修记录主详情
+export const getEquipmentRepairRecordMain = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-repair-record-main/get?id=` + id })
+}
+
+// 新增设备维修记录主
+export const createEquipmentRepairRecordMain = async (data: EquipmentRepairRecordMainVO) => {
+ return await request.post({ url: `/eam/equipment-repair-record-main/create`, data })
+}
+
+// 修改设备维修记录主
+export const updateEquipmentRepairRecordMain = async (data: EquipmentRepairRecordMainVO) => {
+ return await request.put({ url: `/eam/equipment-repair-record-main/update`, data })
+}
+
+// 删除设备维修记录主
+export const deleteEquipmentRepairRecordMain = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-repair-record-main/delete?id=` + id })
+}
+
+// 导出设备维修记录主 Excel
+export const exportEquipmentRepairRecordMain = async (params) => {
+ return await request.download({ url: `/eam/equipment-repair-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-repair-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentReportRepairRequest/index.ts b/src/api/eam/equipmentReportRepairRequest/index.ts
new file mode 100644
index 0000000..c804cc4
--- /dev/null
+++ b/src/api/eam/equipmentReportRepairRequest/index.ts
@@ -0,0 +1,93 @@
+import request from '@/config/axios'
+
+export interface EquipmentReportRepairRequestVO {
+ id: number
+ number: string
+ type: string
+ equipmentCode: string
+ urgency: string
+ faultType: string
+ describing: string
+ shutDown: boolean
+ images: string
+ factoryAreaCode: string
+ workshopCode: string
+ workshopSectionCode: string
+ repairmaner: number
+ repairPhone: string
+ status: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ autoVerify: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设报修申请列表
+export const getEquipmentReportRepairRequestPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-report-repair-request/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-report-repair-request/page`, params })
+ }
+}
+
+// 查询设报修申请详情
+export const getEquipmentReportRepairRequest = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-report-repair-request/get?id=` + id })
+}
+
+// 新增设报修申请
+export const createEquipmentReportRepairRequest = async (data: EquipmentReportRepairRequestVO) => {
+ return await request.post({ url: `/eam/equipment-report-repair-request/create`, data })
+}
+
+// 修改设报修申请
+export const updateEquipmentReportRepairRequest = async (data: EquipmentReportRepairRequestVO) => {
+ return await request.put({ url: `/eam/equipment-report-repair-request/update`, data })
+}
+
+// 删除设报修申请
+export const deleteEquipmentReportRepairRequest = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-report-repair-request/delete?id=` + id })
+}
+
+// 导出设报修申请 Excel
+export const exportEquipmentReportRepairRequest = async (params) => {
+ return await request.download({ url: `/eam/equipment-report-repair-request/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-report-repair-request/get-import-template' })
+}
+
+// 修改报修工单状态
+export const updateEquipmentReportRepairOrder = async (data: EquipmentReportRepairRequestVO) => {
+ return await request.post({ url: `/eam/equipment-report-repair-request/updateOrder`, data })
+}
+
+// 审核报修工单状态
+export const audiEquipmentReportRepairOrder = async (data: EquipmentReportRepairRequestVO) => {
+ return await request.post({ url: `/eam/equipment-report-repair-request/audiOrder`, data })
+}
+
+// 完成并创建维修工单
+export const createEquipmentWeixiuOrder = async (data: EquipmentReportRepairRequestVO) => {
+ return await request.post({ url: `/eam/equipment-report-repair-request/updateCreateOrder`, data })
+}
+
+// 查询报修工单文件附件
+export const getEquipmentReportFileInfo = async (data) => {
+ return await request.post({ url: `/eam/equipment-report-repair-request/fileListInfo`, data })
+}
diff --git a/src/api/eam/equipmentShutdown/index.ts b/src/api/eam/equipmentShutdown/index.ts
new file mode 100644
index 0000000..61ff870
--- /dev/null
+++ b/src/api/eam/equipmentShutdown/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface EquipmentShutdownVO {
+ id: number
+ equipmentCode: string
+ operationDate: Date
+ operationer: string
+ factoryAreaCode: string
+ workshopCode: string
+ workshopSectionCode: string
+ status: string
+ shutdownCause: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备停机记录列表
+export const getEquipmentShutdownPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-shutdown/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-shutdown/page`, params })
+ }
+}
+
+// 查询设备停机记录详情
+export const getEquipmentShutdown = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-shutdown/get?id=` + id })
+}
+
+// 新增设备停机记录
+export const createEquipmentShutdown = async (data: EquipmentShutdownVO) => {
+ return await request.post({ url: `/eam/equipment-shutdown/create`, data })
+}
+
+// 修改设备停机记录
+export const updateEquipmentShutdown = async (data: EquipmentShutdownVO) => {
+ return await request.put({ url: `/eam/equipment-shutdown/update`, data })
+}
+
+// 删除设备停机记录
+export const deleteEquipmentShutdown = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-shutdown/delete?id=` + id })
+}
+
+// 导出设备停机记录 Excel
+export const exportEquipmentShutdown = async (params) => {
+ return await request.download({ url: `/eam/equipment-shutdown/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-shutdown/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentSigning/index.ts b/src/api/eam/equipmentSigning/index.ts
new file mode 100644
index 0000000..b33bcc9
--- /dev/null
+++ b/src/api/eam/equipmentSigning/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface EquipmentSigningVO {
+ id: number
+ equipmentCode: string
+ operationDate: Date
+ operationer: string
+ operationDept: string
+ telephone: string
+ supplierCode: string
+ supplierPeople: string
+ supplierTelephone: string
+ status: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ storageLocation: string
+ factoryAreaCode: string
+ workshopCode: string
+ workshopSectionCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备到货签收记录列表
+export const getEquipmentSigningPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-signing/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-signing/page`, params })
+ }
+}
+
+// 查询设备到货签收记录详情
+export const getEquipmentSigning = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-signing/get?id=` + id })
+}
+
+// 新增设备到货签收记录
+export const createEquipmentSigning = async (data: EquipmentSigningVO) => {
+ return await request.post({ url: `/eam/equipment-signing/create`, data })
+}
+export const createsEquipmentSigning = async (data: EquipmentSigningVO) => {
+ return await request.post({ url: `/eam/equipment-signing/creates`, data })
+}
+
+
+// 修改设备到货签收记录
+export const updateEquipmentSigning = async (data: EquipmentSigningVO) => {
+ return await request.put({ url: `/eam/equipment-signing/update`, data })
+}
+
+// 删除设备到货签收记录
+export const deleteEquipmentSigning = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-signing/delete?id=` + id })
+}
+
+// 导出设备到货签收记录 Excel
+export const exportEquipmentSigning = async (params) => {
+ return await request.download({ url: `/eam/equipment-signing/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-signing/get-import-template' })
+}
diff --git a/src/api/eam/equipmentSpotCheckDetail/index.ts b/src/api/eam/equipmentSpotCheckDetail/index.ts
new file mode 100644
index 0000000..be5b180
--- /dev/null
+++ b/src/api/eam/equipmentSpotCheckDetail/index.ts
@@ -0,0 +1,62 @@
+import request from '@/config/axios'
+
+export interface EquipmentSpotCheckDetailVO {
+ id: number
+ number: string
+ masterId: number
+ completionTime: Date
+ uncompletedCause: string
+ result: string
+ name: string
+ content: string
+ equipmentParts: string
+ methods: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询点检工单子列表
+export const getEquipmentSpotCheckDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-spot-check-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-spot-check-detail/page`, params })
+ }
+}
+
+// 查询点检工单子详情
+export const getEquipmentSpotCheckDetail = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-spot-check-detail/get?id=` + id })
+}
+
+// 新增点检工单子
+export const createEquipmentSpotCheckDetail = async (data: EquipmentSpotCheckDetailVO) => {
+ return await request.post({ url: `/eam/equipment-spot-check-detail/create`, data })
+}
+
+// 修改点检工单子
+export const updateEquipmentSpotCheckDetail = async (data: EquipmentSpotCheckDetailVO) => {
+ return await request.put({ url: `/eam/equipment-spot-check-detail/update`, data })
+}
+
+// 删除点检工单子
+export const deleteEquipmentSpotCheckDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-spot-check-detail/delete?id=` + id })
+}
+
+// 导出点检工单子 Excel
+export const exportEquipmentSpotCheckDetail = async (params) => {
+ return await request.download({ url: `/eam/equipment-spot-check-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-spot-check-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentSpotCheckMain/index.ts b/src/api/eam/equipmentSpotCheckMain/index.ts
new file mode 100644
index 0000000..bd0c0d5
--- /dev/null
+++ b/src/api/eam/equipmentSpotCheckMain/index.ts
@@ -0,0 +1,103 @@
+import request from '@/config/axios'
+import {EquipmentInspectionMainVO} from "@/api/eam/equipmentInspectionMain";
+
+export interface EquipmentSpotCheckMainVO {
+ id: number
+ number: string
+ describing: string
+ equipmentCode: string
+ type: string
+ planNumber: string
+ planStartTime: Date
+ planEndTime: Date
+ startTime: Date
+ endTime: Date
+ faultType: string
+ verifyer: number
+ verifyContent: string
+ verifyTime: Date
+ maintenancer: number
+ completionTime: Date
+ maintenanceTime: Date
+ isPictures: boolean
+ status: string
+ autoOrder: string
+ autoPerform: string
+ autoVerify: string
+ directCreateRecord: string
+ classType: string
+ factoryAreaCode: string
+ workshopCode: string
+ lineCode: string
+ processCode: string
+ workstationCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询点检工单主列表
+export const getEquipmentSpotCheckMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-spot-check-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-spot-check-main/page`, params })
+ }
+}
+
+// 查询点检工单主详情
+export const getEquipmentSpotCheckMain = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-spot-check-main/get?id=` + id })
+}
+
+// 新增点检工单主
+export const createEquipmentSpotCheckMain = async (data: EquipmentSpotCheckMainVO) => {
+ return await request.post({ url: `/eam/equipment-spot-check-main/create`, data })
+}
+
+// 修改点检工单主
+export const updateEquipmentSpotCheckMain = async (data: EquipmentSpotCheckMainVO) => {
+ return await request.put({ url: `/eam/equipment-spot-check-main/update`, data })
+}
+
+// 验证点检工单主
+export const verifyEquipmentSpotCheckMain = async (data: EquipmentSpotCheckMainVO) => {
+ return await request.post({ url: `/eam/equipment-spot-check-main/verifyOrder`, data })
+}
+
+// 删除点检工单主
+export const deleteEquipmentSpotCheckMain = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-spot-check-main/delete?id=` + id })
+}
+
+// 导出点检工单主 Excel
+export const exportEquipmentSpotCheckMain = async (params) => {
+ return await request.download({ url: `/eam/equipment-spot-check-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-spot-check-main/get-import-template' })
+}
+
+
+// 修改点检工单状态
+export const updateEquipmentSpotCheckOrder = async (data: EquipmentSpotCheckMainVO) => {
+ return await request.post({ url: `/eam/equipment-spot-check-main/updateOrder`, data })
+}
+
+//完成点检工单
+export const executeEquipmentSpotCheckOrder = async (data: EquipmentSpotCheckMainVO) => {
+ return await request.post({ url: `/eam/equipment-spot-check-main/execute`, data })
+}
+
+//验证不通过,打回点检工单
+export const backEquipmentSpotCheckOrder = async (data: EquipmentSpotCheckMainVO) => {
+ return await request.post({ url: `/eam/equipment-spot-check-main/fallback`, data })
+}
diff --git a/src/api/eam/equipmentSpotCheckRecordDetail/index.ts b/src/api/eam/equipmentSpotCheckRecordDetail/index.ts
new file mode 100644
index 0000000..952ae13
--- /dev/null
+++ b/src/api/eam/equipmentSpotCheckRecordDetail/index.ts
@@ -0,0 +1,62 @@
+import request from '@/config/axios'
+
+export interface EquipmentSpotCheckRecordDetailVO {
+ id: number
+ number: string
+ masterId: number
+ completionTime: Date
+ uncompletedCause: string
+ result: string
+ name: string
+ content: string
+ equipmentParts: string
+ methods: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询点检记录子列表
+export const getEquipmentSpotCheckRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-spot-check-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-spot-check-record-detail/page`, params })
+ }
+}
+
+// 查询点检记录子详情
+export const getEquipmentSpotCheckRecordDetail = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-spot-check-record-detail/get?id=` + id })
+}
+
+// 新增点检记录子
+export const createEquipmentSpotCheckRecordDetail = async (data: EquipmentSpotCheckRecordDetailVO) => {
+ return await request.post({ url: `/eam/equipment-spot-check-record-detail/create`, data })
+}
+
+// 修改点检记录子
+export const updateEquipmentSpotCheckRecordDetail = async (data: EquipmentSpotCheckRecordDetailVO) => {
+ return await request.put({ url: `/eam/equipment-spot-check-record-detail/update`, data })
+}
+
+// 删除点检记录子
+export const deleteEquipmentSpotCheckRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-spot-check-record-detail/delete?id=` + id })
+}
+
+// 导出点检记录子 Excel
+export const exportEquipmentSpotCheckRecordDetail = async (params) => {
+ return await request.download({ url: `/eam/equipment-spot-check-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-spot-check-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentSpotCheckRecordMain/index.ts b/src/api/eam/equipmentSpotCheckRecordMain/index.ts
new file mode 100644
index 0000000..ca4d8f4
--- /dev/null
+++ b/src/api/eam/equipmentSpotCheckRecordMain/index.ts
@@ -0,0 +1,79 @@
+import request from '@/config/axios'
+
+export interface EquipmentSpotCheckRecordMainVO {
+ id: number
+ number: string
+ describing: string
+ equipmentCode: string
+ type: string
+ planNumber: string
+ planStartTime: Date
+ planEndTime: Date
+ startTime: Date
+ endTime: Date
+ faultType: string
+ verifyer: number
+ verifyContent: string
+ verifyTime: Date
+ maintenancer: number
+ completionTime: Date
+ maintenanceTime: Date
+ isPictures: boolean
+ status: string
+ autoOrder: string
+ autoPerform: string
+ autoVerify: string
+ directCreateRecord: string
+ classType: string
+ factoryAreaCode: string
+ workshopCode: string
+ workshopSectionCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询点检记录主列表
+export const getEquipmentSpotCheckRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-spot-check-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-spot-check-record-main/page`, params })
+ }
+}
+
+// 查询点检记录主详情
+export const getEquipmentSpotCheckRecordMain = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-spot-check-record-main/get?id=` + id })
+}
+
+// 新增点检记录主
+export const createEquipmentSpotCheckRecordMain = async (data: EquipmentSpotCheckRecordMainVO) => {
+ return await request.post({ url: `/eam/equipment-spot-check-record-main/create`, data })
+}
+
+// 修改点检记录主
+export const updateEquipmentSpotCheckRecordMain = async (data: EquipmentSpotCheckRecordMainVO) => {
+ return await request.put({ url: `/eam/equipment-spot-check-record-main/update`, data })
+}
+
+// 删除点检记录主
+export const deleteEquipmentSpotCheckRecordMain = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-spot-check-record-main/delete?id=` + id })
+}
+
+// 导出点检记录主 Excel
+export const exportEquipmentSpotCheckRecordMain = async (params) => {
+ return await request.download({ url: `/eam/equipment-spot-check-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-spot-check-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentSupplier/index.ts b/src/api/eam/equipmentSupplier/index.ts
new file mode 100644
index 0000000..62e5510
--- /dev/null
+++ b/src/api/eam/equipmentSupplier/index.ts
@@ -0,0 +1,73 @@
+import request from '@/config/axios'
+
+export interface EquipmentSupplierVO {
+ id: number
+ number: string
+ name: string
+ shortName: string
+ address: string
+ country: string
+ city: string
+ phone: string
+ fax: string
+ postId: string
+ contacts: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询供应商列表
+export const getEquipmentSupplierPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/equipment-supplier/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/equipment-supplier/page`, params })
+ }
+}
+
+// 查询供应商详情
+export const getEquipmentSupplier = async (id: number) => {
+ return await request.get({ url: `/eam/basic/equipment-supplier/get?id=` + id })
+}
+
+// 新增供应商
+export const createEquipmentSupplier = async (data: EquipmentSupplierVO) => {
+ return await request.post({ url: `/eam/basic/equipment-supplier/create`, data })
+}
+
+// 修改供应商
+export const updateEquipmentSupplier = async (data: EquipmentSupplierVO) => {
+ return await request.put({ url: `/eam/basic/equipment-supplier/update`, data })
+}
+
+// 删除供应商
+export const deleteEquipmentSupplier = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/equipment-supplier/delete?id=` + id })
+}
+
+// 导出供应商 Excel
+export const exportEquipmentSupplier = async (params) => {
+ if (params.isSearch) {
+ const data = { ...params }
+ return await request.downloadPost({ url: `/eam/basic/equipment-supplier/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/eam/basic/equipment-supplier/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/equipment-supplier/get-import-template' })
+}
+
+//供应商列表不分页
+export const getEquipmentSupplierNoPage = async (params) => {
+ return await request.get({ url: `/eam/basic/equipment-supplier/noPage`, params })
+}
\ No newline at end of file
diff --git a/src/api/eam/equipmentToolSparePart/index.ts b/src/api/eam/equipmentToolSparePart/index.ts
new file mode 100644
index 0000000..a1ae420
--- /dev/null
+++ b/src/api/eam/equipmentToolSparePart/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface EquipmentToolSparePartVO {
+ id: number
+ sparePartCode: string
+ equipmentToolCode: string
+ type: string
+ usePosition: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备或工装与备件关联列表
+export const getEquipmentToolSparePartPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/relation/equipment-tool-spare-part/senior', data })
+ } else {
+ return await request.get({ url: `/eam/relation/equipment-tool-spare-part/page`, params })
+ }
+}
+
+// 查询设备或工装与备件关联详情
+export const getEquipmentToolSparePart = async (id: number) => {
+ return await request.get({ url: `/eam/relation/equipment-tool-spare-part/get?id=` + id })
+}
+
+// 新增设备或工装与备件关联
+export const createEquipmentToolSparePart = async (data: EquipmentToolSparePartVO) => {
+ return await request.post({ url: `/eam/relation/equipment-tool-spare-part/create`, data })
+}
+
+// 修改设备或工装与备件关联
+export const updateEquipmentToolSparePart = async (data: EquipmentToolSparePartVO) => {
+ return await request.put({ url: `/eam/relation/equipment-tool-spare-part/update`, data })
+}
+
+// 删除设备或工装与备件关联
+export const deleteEquipmentToolSparePart = async (id: number) => {
+ return await request.delete({ url: `/eam/relation/equipment-tool-spare-part/delete?id=` + id })
+}
+
+// 导出设备或工装与备件关联 Excel
+export const exportEquipmentToolSparePart = async (params) => {
+ return await request.download({ url: `/eam/relation/equipment-tool-spare-part/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/relation/equipment-tool-spare-part/get-import-template' })
+}
+
+// 新增设备或工装与备件关联
+export const createEquipmentToolSparePartBatch = async (data: Array) => {
+ return await request.post({ url: `/eam/relation/equipment-tool-spare-part/createBatch`, data })
+}
+
+// 查询设备或工装与备件关联列表
+export const getEquipmentToolSparePartNoPage = async (params) => {
+ return await request.get({ url: `/eam/relation/equipment-tool-spare-part/noPage`, params })
+}
+
diff --git a/src/api/eam/equipmentTransferRecord/index.ts b/src/api/eam/equipmentTransferRecord/index.ts
new file mode 100644
index 0000000..493a0a7
--- /dev/null
+++ b/src/api/eam/equipmentTransferRecord/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface EquipmentTransferRecordVO {
+ id: number
+ equipmentCode: string
+ type: string
+ operationDate: Date
+ operationer: string
+ beforeFactoryAreaCode: string
+ beforeLocation: string
+ beforeWorkshopCode: string
+ beforeWorkshopSectionCode: string
+ nowLocation: string
+ factoryAreaCode: string
+ workshopCode: string
+ workshopSectionCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备移动记录列表
+export const getEquipmentTransferRecordPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/equipment-transfer-record/senior', data })
+ } else {
+ return await request.get({ url: `/eam/equipment-transfer-record/page`, params })
+ }
+}
+
+// 查询设备移动记录详情
+export const getEquipmentTransferRecord = async (id: number) => {
+ return await request.get({ url: `/eam/equipment-transfer-record/get?id=` + id })
+}
+
+// 新增设备移动记录
+export const createEquipmentTransferRecord = async (data: EquipmentTransferRecordVO) => {
+ return await request.post({ url: `/eam/equipment-transfer-record/create`, data })
+}
+
+// 修改设备移动记录
+export const updateEquipmentTransferRecord = async (data: EquipmentTransferRecordVO) => {
+ return await request.put({ url: `/eam/equipment-transfer-record/update`, data })
+}
+
+// 删除设备移动记录
+export const deleteEquipmentTransferRecord = async (id: number) => {
+ return await request.delete({ url: `/eam/equipment-transfer-record/delete?id=` + id })
+}
+
+// 导出设备移动记录 Excel
+export const exportEquipmentTransferRecord = async (params) => {
+ return await request.download({ url: `/eam/equipment-transfer-record/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/equipment-transfer-record/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/inspectionItem/index.ts b/src/api/eam/inspectionItem/index.ts
new file mode 100644
index 0000000..98f14dc
--- /dev/null
+++ b/src/api/eam/inspectionItem/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface InspectionItemVO {
+ id: number
+ content: string
+ equipmentParts: string
+ serialNumber: number
+ category: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询巡检项列表
+export const getInspectionItemPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/inspection-item/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/inspection-item/page`, params })
+ }
+}
+
+// 查询巡检项详情
+export const getInspectionItem = async (id: number) => {
+ return await request.get({ url: `/eam/basic/inspection-item/get?id=` + id })
+}
+
+// 新增巡检项
+export const createInspectionItem = async (data: InspectionItemVO) => {
+ return await request.post({ url: `/eam/basic/inspection-item/create`, data })
+}
+
+// 修改巡检项
+export const updateInspectionItem = async (data: InspectionItemVO) => {
+ return await request.put({ url: `/eam/basic/inspection-item/update`, data })
+}
+
+// 删除巡检项
+export const deleteInspectionItem = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/inspection-item/delete?id=` + id })
+}
+
+// 导出巡检项 Excel
+export const exportInspectionItem = async (params) => {
+ if (params.isSearch) {
+ const data = { ...params }
+ return await request.downloadPost({ url: `/eam/basic/inspection-item/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/eam/basic/inspection-item/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/inspection-item/get-import-template' })
+}
+
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: InspectionItemVO) => {
+ return await request.post({ url: `/eam/basic/inspection-item/ables` , data })
+}
diff --git a/src/api/eam/inspectionItemSelectSet/index.ts b/src/api/eam/inspectionItemSelectSet/index.ts
new file mode 100644
index 0000000..f02a166
--- /dev/null
+++ b/src/api/eam/inspectionItemSelectSet/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface InspectionItemSelectSetVO {
+ id: number
+ name: string
+ itemCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询巡检项选择集列表
+export const getInspectionItemSelectSetPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/inspection-item-select-set/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/inspection-item-select-set/page`, params })
+ }
+}
+
+// 查询巡检项选择集详情
+export const getInspectionItemSelectSet = async (id: number) => {
+ return await request.get({ url: `/eam/basic/inspection-item-select-set/get?id=` + id })
+}
+
+// 新增巡检项选择集
+export const createInspectionItemSelectSet = async (data: InspectionItemSelectSetVO) => {
+ return await request.post({ url: `/eam/basic/inspection-item-select-set/create`, data })
+}
+
+// 修改巡检项选择集
+export const updateInspectionItemSelectSet = async (data: InspectionItemSelectSetVO) => {
+ return await request.put({ url: `/eam/basic/inspection-item-select-set/update`, data })
+}
+
+// 删除巡检项选择集
+export const deleteInspectionItemSelectSet = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/inspection-item-select-set/delete?id=` + id })
+}
+
+// 导出巡检项选择集 Excel
+export const exportInspectionItemSelectSet = async (params) => {
+ return await request.download({ url: `/eam/basic/inspection-item-select-set/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/inspection-item-select-set/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: InspectionItemSelectSetVO) => {
+ return await request.post({ url: `/eam/basic/inspection-item-select-set/ables` , data })
+}
+
+// 查询巡检项选择集列表
+export const getInspectionItemSelectSetList = async (params) => {
+ return await request.get({ url: `/eam/basic/inspection-item/getList`, params })
+}
+
+// 查询巡检方案项列表
+export const getRalInspectionOptionItemList = async (params) => {
+ return await request.get({url: `/eam/relation-inspection-option-item/getList?optionCode=` + params})
+}
diff --git a/src/api/eam/item/index.ts b/src/api/eam/item/index.ts
new file mode 100644
index 0000000..35d3e10
--- /dev/null
+++ b/src/api/eam/item/index.ts
@@ -0,0 +1,80 @@
+import request from '@/config/axios'
+
+export interface ItemVO {
+ number : string
+ name : string
+ brand : string
+ specifications : string
+ isConstant : string
+ subject : string
+ classification : string
+ uom : string
+ singlePrice : number
+ reprocurement : number
+ safetyStock : number
+ cost : string
+ purchaser : string
+ financer : string
+ isFramework : string
+ isRadeIn : string
+ siteId : string
+ available : string
+ concurrencyStamp : number
+}
+
+// 查询备件列表
+export const getItemPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/item/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item/page`, params })
+ }
+}
+
+// 生成标签
+export const genDevice = async (data) => {
+ return await request.post({ url: `/eam/item/genDevice`, data })
+}
+
+// 查询备件详情
+export const getItem = async (id : number) => {
+ return await request.get({ url: `/eam/item/get?id=` + id })
+}
+
+// 新增备件
+export const createItem = async (data : ItemVO) => {
+ return await request.post({ url: `/eam/item/create`, data })
+}
+
+// 修改备件
+export const updateItem = async (data : ItemVO) => {
+ return await request.put({ url: `/eam/item/update`, data })
+}
+
+// 删除备件
+export const deleteItem = async (id : number) => {
+ return await request.delete({ url: `/eam/item/delete?id=` + id })
+}
+
+// 导出备件 Excel
+export const exportItem = async (params) => {
+ return await request.download({ url: `/eam/item/export-excel`, params })
+}
+
+// 修改备件
+export const getItemList = async (params) => {
+ return await request.get({ url: `/eam/item/getListByNumber`, params })
+}
+
+// // 删除备件
+// export const getaaa = async () => {
+// return await request.get({ url: `/eam/producePlan/produce`})
+// }
+
+// 备件不分页
+
+export const getItemNoPage = async (params) => {
+ return await request.get({ url: `/eam/item/noPage`, params })
+}
diff --git a/src/api/eam/itemAccounts/index.ts b/src/api/eam/itemAccounts/index.ts
new file mode 100644
index 0000000..88fb3d1
--- /dev/null
+++ b/src/api/eam/itemAccounts/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface ItemAccountsVO {
+ itemNumber: string
+ qty: number
+ areaNumber: string
+ isInAccount: string
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询备件台账列表
+export const getItemAccountsPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-accounts/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-accounts/page`, params })
+ }
+}
+
+// 查询备件台账详情
+export const getItemAccounts = async (id: number) => {
+ return await request.get({ url: `/eam/item-accounts/get?id=` + id })
+}
+
+// 新增备件台账
+export const createItemAccounts = async (data: ItemAccountsVO) => {
+ return await request.post({ url: `/eam/item-accounts/create`, data })
+}
+
+// 修改备件台账
+export const updateItemAccounts = async (data: ItemAccountsVO) => {
+ return await request.put({ url: `/eam/item-accounts/update`, data })
+}
+
+// 删除备件台账
+export const deleteItemAccounts = async (id: number) => {
+ return await request.delete({ url: `/eam/item-accounts/delete?id=` + id })
+}
+
+// 导出备件台账 Excel
+export const exportItemAccounts = async (params) => {
+ return await request.download({ url: `/eam/item-accounts/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-accounts/get-import-template' })
+}
+
+// 更改备件库位
+export const replaceLocation = async (data: Array) => {
+ return await request.post({url: `/eam/item-accounts/replaceLocation `, data });
+};
+
+// 备件不分页
+
+export const getItemAccountsNoPage = async (params) => {
+ return await request.get({ url: `/eam/item-accounts/noPage`, params })
+}
diff --git a/src/api/eam/itemApplyDetail/index.ts b/src/api/eam/itemApplyDetail/index.ts
new file mode 100644
index 0000000..0941c11
--- /dev/null
+++ b/src/api/eam/itemApplyDetail/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface ItemApplyDetailVO {
+ number: string
+ name: string
+ type: string
+ applyId: number
+ applyDeptId: number
+ approveId: number
+ approveTime: Date
+ outId: number
+ outTime: Date
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询备件申领记录主列表
+export const getItemApplyDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-apply-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-apply-request-detail/page`, params })
+ }
+}
+
+// 查询备件申领记录主详情
+export const getItemApplyDetail = async (id: number) => {
+ return await request.get({ url: `/eam/item-apply-request-detail/get?id=` + id })
+}
+
+// 新增备件申领记录主
+export const createItemApplyDetail = async (data: ItemApplyDetailVO) => {
+ return await request.post({ url: `/eam/item-apply-request-detail/create`, data })
+}
+
+// 修改备件申领记录主
+export const updateItemApplyDetail = async (data: ItemApplyDetailVO) => {
+ return await request.put({ url: `/eam/item-apply-request-detail/update`, data })
+}
+
+// 删除备件申领记录主
+export const deleteItemApplyDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/item-apply-request-detail/delete?id=` + id })
+}
+
+// 导出备件申领记录主 Excel
+export const exportItemApplyDetail = async (params) => {
+ return await request.download({ url: `/eam/item-apply-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-apply-request-detail/get-import-template' })
+}
diff --git a/src/api/eam/itemApplyMain/index.ts b/src/api/eam/itemApplyMain/index.ts
new file mode 100644
index 0000000..eeccb6e
--- /dev/null
+++ b/src/api/eam/itemApplyMain/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface ItemApplyMainVO {
+ number: string
+ name: string
+ type: string
+ applyId: number
+ applyDeptId: number
+ approveId: number
+ approveTime: Date
+ outId: number
+ outTime: Date
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询备件申领记录主列表
+export const getItemApplyMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-apply-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-apply-request-main/page`, params })
+ }
+}
+
+// 查询备件申领记录主详情
+export const getItemApplyMain = async (id: number) => {
+ return await request.get({ url: `/eam/item-apply-request-main/get?id=` + id })
+}
+
+// 新增备件申领记录主
+export const createItemApplyMain = async (data: ItemApplyMainVO) => {
+ return await request.post({ url: `/eam/item-apply-request-main/create`, data })
+}
+
+// 修改备件申领记录主
+export const updateItemApplyMain = async (data: ItemApplyMainVO) => {
+ return await request.put({ url: `/eam/item-apply-request-main/update`, data })
+}
+
+// 删除备件申领记录主
+export const deleteItemApplyMain = async (id: number) => {
+ return await request.delete({ url: `/eam/item-apply-request-main/delete?id=` + id })
+}
+
+// 撤销备件申领记录主
+export const backoutItemApplyMain = async (id: number) => {
+ return await request.get({ url: `/eam/item-apply-request-main/backout?id=` + id })
+}
+
+
+// 导出备件申领记录主 Excel
+export const exportItemApplyMain = async (params) => {
+ return await request.download({ url: `/eam/item-apply-request-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-apply-request-main/get-import-template' })
+}
diff --git a/src/api/eam/itemDelete/index.ts b/src/api/eam/itemDelete/index.ts
new file mode 100644
index 0000000..417f114
--- /dev/null
+++ b/src/api/eam/itemDelete/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface ItemAccountsVO {
+ itemNumber: string
+ qty: number
+ areaNumber: string
+ isInAccount: string
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询备件台账移除列表
+export const getItemAccountsPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ data.qty = 0
+ return await request.post({ url: '/eam/item-accounts/senior', data })
+ } else {
+ params.qty = 0
+ return await request.get({ url: `/eam/item-accounts/page`, params })
+ }
+}
+
+// 查询备件台账详情
+export const getItemAccounts = async (id: number) => {
+ return await request.get({ url: `/eam/item-accounts/get?id=` + id })
+}
+
+// 新增备件台账
+export const createItemAccounts = async (data: ItemAccountsVO) => {
+ return await request.post({ url: `/eam/item-accounts/create`, data })
+}
+
+// 修改备件台账
+export const updateItemAccounts = async (data: ItemAccountsVO) => {
+ return await request.put({ url: `/eam/item-accounts/update`, data })
+}
+
+// 删除备件台账
+export const deleteItemAccounts = async (id: number) => {
+ return await request.delete({ url: `/eam/item-accounts/delete?id=` + id })
+}
+
+// 导出备件台账 Excel
+export const exportItemAccounts = async (params) => {
+ return await request.download({ url: `/eam/item-accounts/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-accounts/get-import-template' })
+}
+
+// 更改备件库位
+export const replaceLocation = async (data: Array) => {
+ return await request.post({ url: `/eam/item-accounts/replaceLocation `, data })
+}
+
+// 备件不分页
+
+export const getItemAccountsNoPage = async (params) => {
+ return await request.get({ url: `/eam/item-accounts/noPage`, params })
+}
diff --git a/src/api/eam/itemInLocation/index.ts b/src/api/eam/itemInLocation/index.ts
new file mode 100644
index 0000000..9589db3
--- /dev/null
+++ b/src/api/eam/itemInLocation/index.ts
@@ -0,0 +1,50 @@
+import request from '@/config/axios'
+
+export interface ItemInLocationVO {
+ number: string
+ itemNumber: string
+ locationNumber: string
+ type: string
+ qty: number
+}
+
+// 查询备件入库记录列表
+export const getItemInLocationPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-in-location/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-in-location/page`, params })
+ }
+}
+
+// 查询备件入库记录详情
+export const getItemInLocation = async (id: number) => {
+ return await request.get({ url: `/eam/item-in-location/get?id=` + id })
+}
+
+// 新增备件入库记录
+export const createItemInLocation = async (data: ItemInLocationVO) => {
+ return await request.post({ url: `/eam/item-in-location/create`, data })
+}
+
+// 修改备件入库记录
+export const updateItemInLocation = async (data: ItemInLocationVO) => {
+ return await request.put({ url: `/eam/item-in-location/update`, data })
+}
+
+// 删除备件入库记录
+export const deleteItemInLocation = async (id: number) => {
+ return await request.delete({ url: `/eam/item-in-location/delete?id=` + id })
+}
+
+// 导出备件入库记录 Excel
+export const exportItemInLocation = async (params) => {
+ return await request.download({ url: `/eam/item-in-location/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-in-location/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/itemLocationReplace/index.ts b/src/api/eam/itemLocationReplace/index.ts
new file mode 100644
index 0000000..7bdab64
--- /dev/null
+++ b/src/api/eam/itemLocationReplace/index.ts
@@ -0,0 +1,49 @@
+import request from '@/config/axios'
+
+export interface ItemLocationReplaceVO {
+ locationNumber: string
+ describe: string
+ oldItemNumber: string
+ itemNumber: string
+}
+
+// 查询备件库位变更记录列表
+export const getItemLocationReplacePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-location-replace/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-location-replace/page`, params })
+ }
+}
+
+// 查询备件库位变更记录详情
+export const getItemLocationReplace = async (id: number) => {
+ return await request.get({ url: `/eam/item-location-replace/get?id=` + id })
+}
+
+// 新增备件库位变更记录
+export const createItemLocationReplace = async (data: ItemLocationReplaceVO) => {
+ return await request.post({ url: `/eam/item-location-replace/create`, data })
+}
+
+// 修改备件库位变更记录
+export const updateItemLocationReplace = async (data: ItemLocationReplaceVO) => {
+ return await request.put({ url: `/eam/item-location-replace/update`, data })
+}
+
+// 删除备件库位变更记录
+export const deleteItemLocationReplace = async (id: number) => {
+ return await request.delete({ url: `/eam/item-location-replace/delete?id=` + id })
+}
+
+// 导出备件库位变更记录 Excel
+export const exportItemLocationReplace = async (params) => {
+ return await request.download({ url: `/eam/item-location-replace/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-location-replace/get-import-template' })
+}
diff --git a/src/api/eam/itemMaintenance/index.ts b/src/api/eam/itemMaintenance/index.ts
new file mode 100644
index 0000000..d6fe941
--- /dev/null
+++ b/src/api/eam/itemMaintenance/index.ts
@@ -0,0 +1,52 @@
+import request from '@/config/axios'
+
+export interface ItemMaintenanceVO {
+ number: string
+ itemNumber: string
+ qty: number
+ result: string
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询备件维修记录列表
+export const getItemMaintenancePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-maintenance-record/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-maintenance-record/page`, params })
+ }
+}
+
+// 查询备件维修记录详情
+export const getItemMaintenance = async (id: number) => {
+ return await request.get({ url: `/eam/item-maintenance-record/get?id=` + id })
+}
+
+// 新增备件维修记录
+export const createItemMaintenance = async (data: ItemMaintenanceVO) => {
+ return await request.post({ url: `/eam/item-maintenance-record/create`, data })
+}
+
+// 修改备件维修记录
+export const updateItemMaintenance = async (data: ItemMaintenanceVO) => {
+ return await request.put({ url: `/eam/item-maintenance-record/update`, data })
+}
+
+// 删除备件维修记录
+export const deleteItemMaintenance = async (id: number) => {
+ return await request.delete({ url: `/eam/item-maintenance-record/delete?id=` + id })
+}
+
+// 导出备件维修记录 Excel
+export const exportItemMaintenance = async (params) => {
+ return await request.download({ url: `/eam/item-maintenance-record/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-maintenance-record/get-import-template' })
+}
diff --git a/src/api/eam/itemOrderDetail/index.ts b/src/api/eam/itemOrderDetail/index.ts
new file mode 100644
index 0000000..339c348
--- /dev/null
+++ b/src/api/eam/itemOrderDetail/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface ItemOrderDetailVO {
+ number: string
+ date: string
+ phone: string
+ fax: string
+ purchaser: string
+ supplierNumber: string
+ supplierName: string
+ supplierAddress: string
+ shipTo: string
+ invoiceTo: string
+ contacts: string
+ contactsPhone: string
+ paymentType: string
+ registLocation: string
+ bank: string
+ account: string
+ dutyParagraph: string
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询备件采购订单主列表
+export const getItemOrderDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-order-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-order-detail/page`, params })
+ }
+}
+
+// 查询备件采购订单主详情
+export const getItemOrderDetail = async (id: number) => {
+ return await request.get({ url: `/eam/item-order-detail/get?id=` + id })
+}
+
+// 新增备件采购订单主
+export const createItemOrderDetail = async (data: ItemOrderDetailVO) => {
+ return await request.post({ url: `/eam/item-order-detail/create`, data })
+}
+
+// 修改备件采购订单主
+export const updateItemOrderDetail = async (data: ItemOrderDetailVO) => {
+ return await request.put({ url: `/eam/item-order-detail/update`, data })
+}
+
+// 删除备件采购订单主
+export const deleteItemOrderDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/item-order-detail/delete?id=` + id })
+}
+
+// 导出备件采购订单主 Excel
+export const exportItemOrderDetail = async (params) => {
+ return await request.download({ url: `/eam/item-order-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-order-detail/get-import-template' })
+}
diff --git a/src/api/eam/itemOrderMain/index.ts b/src/api/eam/itemOrderMain/index.ts
new file mode 100644
index 0000000..125851b
--- /dev/null
+++ b/src/api/eam/itemOrderMain/index.ts
@@ -0,0 +1,71 @@
+import request from '@/config/axios'
+
+export interface ItemOrderMainVO {
+ number: string
+ date: string
+ phone: string
+ fax: string
+ purchaser: string
+ supplierNumber: string
+ supplierName: string
+ supplierAddress: string
+ shipTo: string
+ invoiceTo: string
+ contacts: string
+ contactsPhone: string
+ paymentType: string
+ registLocation: string
+ bank: string
+ account: string
+ dutyParagraph: string
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询备件采购订单主列表
+export const getItemOrderMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-order-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-order-main/page`, params })
+ }
+}
+
+// 查询备件采购订单主详情
+export const getItemOrderMain = async (id: number) => {
+ return await request.get({ url: `/eam/item-order-main/get?id=` + id })
+}
+
+// 新增备件采购订单主
+export const createItemOrderMain = async (data: ItemOrderMainVO) => {
+ return await request.post({ url: `/eam/item-order-main/create`, data })
+}
+
+// 修改备件采购订单主
+export const updateItemOrderMain = async (data: ItemOrderMainVO) => {
+ return await request.put({ url: `/eam/item-order-main/update`, data })
+}
+
+// 删除备件采购订单主
+export const deleteItemOrderMain = async (id: number) => {
+ return await request.delete({ url: `/eam/item-order-main/delete?id=` + id })
+}
+
+// 关闭采购订单主
+export const closeItemOrderMain = async (id: number) => {
+ return await request.post({ url: `/eam/item-order-main/close?id=` + id })
+}
+
+
+// 导出备件采购订单主 Excel
+export const exportItemOrderMain = async (params) => {
+ return await request.download({ url: `/eam/item-order-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-order-main/get-import-template' })
+}
diff --git a/src/api/eam/itemOutLocation/index.ts b/src/api/eam/itemOutLocation/index.ts
new file mode 100644
index 0000000..a6660ae
--- /dev/null
+++ b/src/api/eam/itemOutLocation/index.ts
@@ -0,0 +1,50 @@
+import request from '@/config/axios'
+
+export interface ItemOutLocationVO {
+ number: string
+ itemNumber: string
+ locationNumber: string
+ type: string
+ qty: number
+}
+
+// 查询备件出库记录列表
+export const getItemOutLocationPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-out-location/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-out-location/page`, params })
+ }
+}
+
+// 查询备件出库记录详情
+export const getItemOutLocation = async (id: number) => {
+ return await request.get({ url: `/eam/item-out-location/get?id=` + id })
+}
+
+// 新增备件出库记录
+export const createItemOutLocation = async (data: ItemOutLocationVO) => {
+ return await request.post({ url: `/eam/item-out-location/create`, data })
+}
+
+// 修改备件出库记录
+export const updateItemOutLocation = async (data: ItemOutLocationVO) => {
+ return await request.put({ url: `/eam/item-out-location/update`, data })
+}
+
+// 删除备件出库记录
+export const deleteItemOutLocation = async (id: number) => {
+ return await request.delete({ url: `/eam/item-out-location/delete?id=` + id })
+}
+
+// 导出备件出库记录 Excel
+export const exportItemOutLocation = async (params) => {
+ return await request.download({ url: `/eam/item-out-location/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-out-location/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/location/index.ts b/src/api/eam/location/index.ts
new file mode 100644
index 0000000..66eab6e
--- /dev/null
+++ b/src/api/eam/location/index.ts
@@ -0,0 +1,55 @@
+import request from '@/config/axios'
+
+export interface LocationVO {
+ number: string
+ name: string
+ description: string
+ areaNumber: string
+ type: string
+ isInAccount: string
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询库位列表
+export const getLocationPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/location/senior', data })
+ } else {
+ return await request.get({ url: `/eam/location/page`, params })
+ }
+}
+
+// 查询库位详情
+export const getLocation = async (id: number) => {
+ return await request.get({ url: `/eam/location/get?id=` + id })
+}
+
+// 新增库位
+export const createLocation = async (data: LocationVO) => {
+ return await request.post({ url: `/eam/location/create`, data })
+}
+
+// 修改库位
+export const updateLocation = async (data: LocationVO) => {
+ return await request.put({ url: `/eam/location/update`, data })
+}
+
+// 删除库位
+export const deleteLocation = async (id: number) => {
+ return await request.delete({ url: `/eam/location/delete?id=` + id })
+}
+
+// 导出库位 Excel
+export const exportLocation = async (params) => {
+ return await request.download({ url: `/eam/location/export-excel`, params })
+}
+
+
+// 查询库位列表
+export const getLocationNoPage = async (params) => {
+ return await request.get({ url: `/eam/location/noPage`, params })
+}
diff --git a/src/api/eam/locationArea/index.ts b/src/api/eam/locationArea/index.ts
new file mode 100644
index 0000000..e1dd72e
--- /dev/null
+++ b/src/api/eam/locationArea/index.ts
@@ -0,0 +1,48 @@
+import request from '@/config/axios'
+
+export interface LocationAreaVO {
+ number: string
+ name: string
+ description: string
+ type: string
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询库区列表
+export const getLocationAreaPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/location-area/senior', data })
+ } else {
+ return await request.get({ url: `/eam/location-area/page`, params })
+ }
+}
+
+// 查询库区详情
+export const getLocationArea = async (id: number) => {
+ return await request.get({ url: `/eam/location-area/get?id=` + id })
+}
+
+// 新增库区
+export const createLocationArea = async (data: LocationAreaVO) => {
+ return await request.post({ url: `/eam/location-area/create`, data })
+}
+
+// 修改库区
+export const updateLocationArea = async (data: LocationAreaVO) => {
+ return await request.put({ url: `/eam/location-area/update`, data })
+}
+
+// 删除库区
+export const deleteLocationArea = async (id: number) => {
+ return await request.delete({ url: `/eam/location-area/delete?id=` + id })
+}
+
+// 导出库区 Excel
+export const exportLocationArea = async (params) => {
+ return await request.download({ url: `/eam/location-area/export-excel`, params })
+}
+
diff --git a/src/api/eam/maintainExperience/index.ts b/src/api/eam/maintainExperience/index.ts
new file mode 100644
index 0000000..f85ae6e
--- /dev/null
+++ b/src/api/eam/maintainExperience/index.ts
@@ -0,0 +1,51 @@
+import request from '@/config/axios'
+
+export interface MaintainExperienceVO {
+ id: number
+ name: string
+ content: string
+ masterId: number
+ orderType: string
+ maintainNumber: string
+}
+
+// 查询保养经验记录列表
+export const getMaintainExperiencePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/record/maintain-experience/senior', data })
+ } else {
+ return await request.get({ url: `/record/maintain-experience/page`, params })
+ }
+}
+
+// 查询保养经验记录详情
+export const getMaintainExperience = async (id: number) => {
+ return await request.get({ url: `/record/maintain-experience/get?id=` + id })
+}
+
+// 新增保养经验记录
+export const createMaintainExperience = async (data: MaintainExperienceVO) => {
+ return await request.post({ url: `/record/maintain-experience/create`, data })
+}
+
+// 修改保养经验记录
+export const updateMaintainExperience = async (data: MaintainExperienceVO) => {
+ return await request.put({ url: `/record/maintain-experience/update`, data })
+}
+
+// 删除保养经验记录
+export const deleteMaintainExperience = async (id: number) => {
+ return await request.delete({ url: `/record/maintain-experience/delete?id=` + id })
+}
+
+// 导出保养经验记录 Excel
+export const exportMaintainExperience = async (params) => {
+ return await request.download({ url: `/record/maintain-experience/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/record/maintain-experience/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/maintenance/index.ts b/src/api/eam/maintenance/index.ts
new file mode 100644
index 0000000..dbba478
--- /dev/null
+++ b/src/api/eam/maintenance/index.ts
@@ -0,0 +1,88 @@
+import request from '@/config/axios'
+import {InspectionItemSelectSetVO} from "@/api/eam/inspectionItemSelectSet";
+import {EquipmentMainPartVO} from "@/api/eam/equipmentMainPart";
+
+export interface MaintenanceVO {
+ id: number
+ number: string
+ name: string
+ equipmentCode: string
+ type: string
+ optionCode: string
+ cycle: string
+ startTime: Date
+ endTime: Date
+ status: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ factoryAreaCode: string
+ workshopCode: string
+ workshopSectionCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询保养计划列表
+export const getMaintenancePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/maintenance/senior', data })
+ } else {
+ return await request.get({ url: `/eam/maintenance/page`, params })
+ }
+}
+
+// 查询保养计划详情
+export const getMaintenance = async (id: number) => {
+ return await request.get({ url: `/eam/maintenance/get?id=` + id })
+}
+
+// 新增保养计划
+export const createMaintenance = async (data: MaintenanceVO) => {
+ return await request.post({ url: `/eam/maintenance/create`, data })
+}
+
+// 修改保养计划
+export const updateMaintenance = async (data: MaintenanceVO) => {
+ return await request.put({ url: `/eam/maintenance/update`, data })
+}
+
+// 修改保养计划-审核
+export const updateMaintenanceAudi = async (data: MaintenanceVO) => {
+ return await request.post({ url: `/eam/maintenance/updateAudi`, data })
+}
+
+// 删除保养计划
+export const deleteMaintenance = async (id: number) => {
+ return await request.delete({ url: `/eam/maintenance/delete?id=` + id })
+}
+
+// 导出保养计划 Excel
+export const exportMaintenance = async (params) => {
+ return await request.download({ url: `/eam/maintenance/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/maintenance/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: MaintenanceVO) => {
+ return await request.post({ url: `/eam/maintenance/ables` , data })
+}
+
+// 修改计划状态
+export const updateMaintenancePlan = async (data: MaintenanceVO) => {
+ return await request.post({ url: `/eam/maintenance/updatePlan`, data })
+}
diff --git a/src/api/eam/maintenanceItem/index.ts b/src/api/eam/maintenanceItem/index.ts
new file mode 100644
index 0000000..403c459
--- /dev/null
+++ b/src/api/eam/maintenanceItem/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface MaintenanceItemVO {
+ id: number
+ content: string
+ serialNumber: number
+ equipmentParts: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询保养项维护列表
+export const getMaintenanceItemPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/maintenance-item/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/maintenance-item/page`, params })
+ }
+}
+
+// 查询保养项维护详情
+export const getMaintenanceItem = async (id: number) => {
+ return await request.get({ url: `/eam/basic/maintenance-item/get?id=` + id })
+}
+
+// 新增保养项维护
+export const createMaintenanceItem = async (data: MaintenanceItemVO) => {
+ return await request.post({ url: `/eam/basic/maintenance-item/create`, data })
+}
+
+// 修改保养项维护
+export const updateMaintenanceItem = async (data: MaintenanceItemVO) => {
+ return await request.put({ url: `/eam/basic/maintenance-item/update`, data })
+}
+
+// 删除保养项维护
+export const deleteMaintenanceItem = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/maintenance-item/delete?id=` + id })
+}
+
+// 导出保养项维护 Excel
+export const exportMaintenanceItem = async (params) => {
+ if (params.isSearch) {
+ const data = { ...params }
+ return await request.downloadPost({ url: `/eam/basic/maintenance-item/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/eam/basic/maintenance-item/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/maintenance-item/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/maintenanceItemSelectSet/index.ts b/src/api/eam/maintenanceItemSelectSet/index.ts
new file mode 100644
index 0000000..b3a67ce
--- /dev/null
+++ b/src/api/eam/maintenanceItemSelectSet/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface MaintenanceItemSelectSetVO {
+ id: number
+ name: string
+ itemCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询保养项选择集列表
+export const getBasicMaintenanceItemSelectSetPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/maintenance-item-select-set/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/maintenance-item-select-set/page`, params })
+ }
+}
+
+// 查询保养项选择集详情
+export const getBasicMaintenanceItemSelectSet = async (id: number) => {
+ return await request.get({ url: `/eam/basic/maintenance-item-select-set/get?id=` + id })
+}
+
+// 新增保养项选择集
+export const createBasicMaintenanceItemSelectSet = async (data: MaintenanceItemSelectSetVO) => {
+ return await request.post({ url: `/eam/basic/maintenance-item-select-set/create`, data })
+}
+
+// 修改保养项选择集
+export const updateBasicMaintenanceItemSelectSet = async (data: MaintenanceItemSelectSetVO) => {
+ return await request.put({ url: `/eam/basic/maintenance-item-select-set/update`, data })
+}
+
+// 删除保养项选择集
+export const deleteBasicMaintenanceItemSelectSet = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/maintenance-item-select-set/delete?id=` + id })
+}
+
+// 导出保养项选择集 Excel
+export const exportBasicMaintenanceItemSelectSet = async (params) => {
+ return await request.download({ url: `/eam/basic/maintenance-item-select-set/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/maintenance-item-select-set/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: MaintenanceItemSelectSetVO) => {
+ return await request.post({ url: `/eam/basic/maintenance-item-select-set/ables` , data })
+}
+
+// 查询保养项选择集列表
+export const getMaintenanceItemSelectSetList = async (params) => {
+ return await request.get({ url: `/eam/basic/maintenance-item/getList`, params })
+}
+
+// 查询保养方案项列表
+export const getRalMaintenanceOptionItemList = async (params) => {
+ return await request.get({url: `/eam/relation-maintenance-option-item/getList?optionCode=` + params})
+}
diff --git a/src/api/eam/planInspection/index.ts b/src/api/eam/planInspection/index.ts
new file mode 100644
index 0000000..10b3fbf
--- /dev/null
+++ b/src/api/eam/planInspection/index.ts
@@ -0,0 +1,91 @@
+import request from '@/config/axios'
+import {MaintenanceVO} from "@/api/eam/maintenance";
+
+export interface PlanInspectionVO {
+ id: number
+ number: string
+ name: string
+ equipmentCode: string
+ type: string
+ optionCode: string
+ cycle: string
+ startTime: Date
+ endTime: Date
+ status: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ factoryAreaCode: string
+ workshopCode: string
+ lineCode: string
+ processCode: string
+ workstationCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询巡检计划列表
+export const getPlanInspectionPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/plan-inspection/senior', data })
+ } else {
+ return await request.get({ url: `/eam/plan-inspection/page`, params })
+ }
+}
+
+// 查询巡检计划详情
+export const getPlanInspection = async (id: number) => {
+ return await request.get({ url: `/eam/plan-inspection/get?id=` + id })
+}
+
+// 新增巡检计划
+export const createPlanInspection = async (data: PlanInspectionVO) => {
+ return await request.post({ url: `/eam/plan-inspection/create`, data })
+}
+
+// 修改巡检计划
+export const updatePlanInspection = async (data: PlanInspectionVO) => {
+ return await request.put({ url: `/eam/plan-inspection/update`, data })
+}
+
+// 修改巡检计划-审核
+export const updateInspectionPlanAudi = async (data: PlanInspectionVO) => {
+ return await request.post({ url: `/eam/plan-inspection/updateAudi`, data })
+}
+
+// 删除巡检计划
+export const deletePlanInspection = async (id: number) => {
+ return await request.delete({ url: `/eam/plan-inspection/delete?id=` + id })
+}
+
+// 导出巡检计划 Excel
+export const exportPlanInspection = async (params) => {
+ return await request.download({ url: `/eam/plan-inspection/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/plan-inspection/get-import-template' })
+}
+
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: PlanInspectionVO) => {
+ return await request.post({ url: `/eam/plan-inspection/ables` , data })
+}
+
+
+// 修改计划状态
+export const updateInspectionPlan = async (data: PlanInspectionVO) => {
+ return await request.post({ url: `/eam/plan-inspection/updatePlan`, data })
+}
diff --git a/src/api/eam/planSpotCheck/index.ts b/src/api/eam/planSpotCheck/index.ts
new file mode 100644
index 0000000..9ed72a1
--- /dev/null
+++ b/src/api/eam/planSpotCheck/index.ts
@@ -0,0 +1,91 @@
+import request from '@/config/axios'
+import {PlanInspectionVO} from "@/api/eam/planInspection";
+
+export interface PlanSpotCheckVO {
+ id: number
+ number: string
+ name: string
+ equipmentCode: string
+ type: string
+ optionCode: string
+ cycle: string
+ startTime: Date
+ endTime: Date
+ status: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ factoryAreaCode: string
+ workshopCode: string
+ lineCode: string
+ processCode: string
+ workstationCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询点检计划列表
+export const getPlanSpotCheckPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/plan-spot-check/senior', data })
+ } else {
+ return await request.get({ url: `/eam/plan-spot-check/page`, params })
+ }
+}
+
+// 查询点检计划详情
+export const getPlanSpotCheck = async (id: number) => {
+ return await request.get({ url: `/eam/plan-spot-check/get?id=` + id })
+}
+
+// 新增点检计划
+export const createPlanSpotCheck = async (data: PlanSpotCheckVO) => {
+ return await request.post({ url: `/eam/plan-spot-check/create`, data })
+}
+
+// 修改点检计划
+export const updatePlanSpotCheck = async (data: PlanSpotCheckVO) => {
+ return await request.put({ url: `/eam/plan-spot-check/update`, data })
+}
+
+// 修改巡检计划-审核
+export const updateSpotCheckPlanAudi = async (data: PlanSpotCheckVO) => {
+ return await request.post({ url: `/eam/plan-spot-check/updateAudi`, data })
+}
+
+// 删除点检计划
+export const deletePlanSpotCheck = async (id: number) => {
+ return await request.delete({ url: `/eam/plan-spot-check/delete?id=` + id })
+}
+
+// 导出点检计划 Excel
+export const exportPlanSpotCheck = async (params) => {
+ return await request.download({ url: `/eam/plan-spot-check/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/plan-spot-check/get-import-template' })
+}
+
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: PlanSpotCheckVO) => {
+ return await request.post({ url: `/eam/plan-spot-check/ables` , data })
+}
+
+
+// 修改计划状态
+export const updateSpotCheckPlan = async (data: PlanSpotCheckVO) => {
+ return await request.post({ url: `/eam/plan-spot-check/updatePlan`, data })
+}
diff --git a/src/api/eam/recordDeviceChanged/index.ts b/src/api/eam/recordDeviceChanged/index.ts
new file mode 100644
index 0000000..a7fe656
--- /dev/null
+++ b/src/api/eam/recordDeviceChanged/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface RecordDeviceChangedVO {
+ id: number
+ code: string
+ name: string
+ statusBefore: string
+ statusAfter: string
+ operator: number
+ operateTime: Date
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备变更记录列表
+export const getRecordDeviceChangedPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/record-device-changed/senior', data })
+ } else {
+ return await request.get({ url: `/eam/record-device-changed/page`, params })
+ }
+}
+
+// 查询设备变更记录详情
+export const getRecordDeviceChanged = async (id: number) => {
+ return await request.get({ url: `/eam/record-device-changed/get?id=` + id })
+}
+
+// 新增设备变更记录
+export const createRecordDeviceChanged = async (data: RecordDeviceChangedVO) => {
+ return await request.post({ url: `/eam/record-device-changed/create`, data })
+}
+
+// 修改设备变更记录
+export const updateRecordDeviceChanged = async (data: RecordDeviceChangedVO) => {
+ return await request.put({ url: `/eam/record-device-changed/update`, data })
+}
+
+// 删除设备变更记录
+export const deleteRecordDeviceChanged = async (id: number) => {
+ return await request.delete({ url: `/eam/record-device-changed/delete?id=` + id })
+}
+
+// 导出设备变更记录 Excel
+export const exportRecordDeviceChanged = async (params) => {
+ return await request.download({ url: `/eam/record-device-changed/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/record-device-changed/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/relationInspectionPlanItem/index.ts b/src/api/eam/relationInspectionPlanItem/index.ts
new file mode 100644
index 0000000..08f7863
--- /dev/null
+++ b/src/api/eam/relationInspectionPlanItem/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface RelationInspectionPlanItemVO {
+ id: number
+ planNumber: string
+ itemCode: string
+ itemName: string
+ isSelectd: boolean
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询巡检计划和巡检项关系列表
+export const getRelationInspectionPlanItemPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/relation-inspection-plan-item/senior', data })
+ } else {
+ return await request.get({ url: `/eam/relation-inspection-plan-item/page`, params })
+ }
+}
+
+// 查询巡检计划和巡检项关系详情
+export const getRelationInspectionPlanItem = async (id: number) => {
+ return await request.get({ url: `/eam/relation-inspection-plan-item/get?id=` + id })
+}
+
+// 新增巡检计划和巡检项关系
+export const createRelationInspectionPlanItem = async (data: RelationInspectionPlanItemVO) => {
+ return await request.post({ url: `/eam/relation-inspection-plan-item/create`, data })
+}
+
+// 修改巡检计划和巡检项关系
+export const updateRelationInspectionPlanItem = async (data: RelationInspectionPlanItemVO) => {
+ return await request.put({ url: `/eam/relation-inspection-plan-item/update`, data })
+}
+
+// 删除巡检计划和巡检项关系
+export const deleteRelationInspectionPlanItem = async (id: number) => {
+ return await request.delete({ url: `/eam/relation-inspection-plan-item/delete?id=` + id })
+}
+
+// 导出巡检计划和巡检项关系 Excel
+export const exportRelationInspectionPlanItem = async (params) => {
+ return await request.download({ url: `/eam/relation-inspection-plan-item/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/relation-inspection-plan-item/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/relationMainPart/index.ts b/src/api/eam/relationMainPart/index.ts
new file mode 100644
index 0000000..41d9322
--- /dev/null
+++ b/src/api/eam/relationMainPart/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface RelationMainPartVO {
+ id: number
+ mainPartCode: string
+ equipmentCode: string
+ type: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询主要部件关联列表
+export const getRelationMainPartPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/relation/relation-main-partsenior', data })
+ } else {
+ return await request.get({ url: `/eam/relation/relation-main-part/page`, params })
+ }
+}
+
+// 查询主要部件关联详情
+export const getRelationMainPart = async (id: number) => {
+ return await request.get({ url: `/eam/relation/relation-main-part/get?id=` + id })
+}
+
+// 新增主要部件关联
+export const createRelationMainPart = async (data: RelationMainPartVO) => {
+ return await request.post({ url: `/eam/relation/relation-main-part/create`, data })
+}
+
+// 修改主要部件关联
+export const updateRelationMainPart = async (data: RelationMainPartVO) => {
+ return await request.put({ url: `/eam/relation/relation-main-part/update`, data })
+}
+
+// 删除主要部件关联
+export const deleteRelationMainPart = async (id: number) => {
+ return await request.delete({ url: `/eam/relation/relation-main-part/delete?id=` + id })
+}
+
+// 导出主要部件关联 Excel
+export const exportRelationMainPart = async (params) => {
+ return await request.download({ url: `/eam/relation/relation-main-part/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/relation/relation-main-part/get-import-template' })
+}
+
+// 查询主要部件关联列表不分页
+export const getRelationMainPartNoPage = async (params) => {
+ return await request.get({ url: `/eam/relation/relation-main-part/noPage`, params })
+}
+
+
+// 新增主要部件批量关联
+export const createRelationMainPartBatch = async (data: Array) => {
+ return await request.post({ url: `/eam/relation/relation-main-part/createBatch`, data })
+}
diff --git a/src/api/eam/relationMaintenancePlanItem/index.ts b/src/api/eam/relationMaintenancePlanItem/index.ts
new file mode 100644
index 0000000..9381fb7
--- /dev/null
+++ b/src/api/eam/relationMaintenancePlanItem/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface RelationMaintenancePlanItemVO {
+ id: number
+ planNumber: string
+ itemCode: string
+ itemName: string
+ isSelectd: boolean
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询保养计划表和保养项关系列表
+export const getRelationMaintenancePlanItemPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/relation-maintenance-plan-item/senior', data })
+ } else {
+ return await request.get({ url: `/eam/relation-maintenance-plan-item/page`, params })
+ }
+}
+
+// 查询保养计划表和保养项关系详情
+export const getRelationMaintenancePlanItem = async (id: number) => {
+ return await request.get({ url: `/eam/relation-maintenance-plan-item/get?id=` + id })
+}
+
+// 新增保养计划表和保养项关系
+export const createRelationMaintenancePlanItem = async (data: RelationMaintenancePlanItemVO) => {
+ return await request.post({ url: `/eam/relation-maintenance-plan-item/create`, data })
+}
+
+// 修改保养计划表和保养项关系
+export const updateRelationMaintenancePlanItem = async (data: RelationMaintenancePlanItemVO) => {
+ return await request.put({ url: `/eam/relation-maintenance-plan-item/update`, data })
+}
+
+// 删除保养计划表和保养项关系
+export const deleteRelationMaintenancePlanItem = async (id: number) => {
+ return await request.delete({ url: `/eam/relation-maintenance-plan-item/delete?id=` + id })
+}
+
+// 导出保养计划表和保养项关系 Excel
+export const exportRelationMaintenancePlanItem = async (params) => {
+ return await request.download({ url: `/eam/relation-maintenance-plan-item/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/relation-maintenance-plan-item/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/relationSpotCheckPlanItem/index.ts b/src/api/eam/relationSpotCheckPlanItem/index.ts
new file mode 100644
index 0000000..7293e47
--- /dev/null
+++ b/src/api/eam/relationSpotCheckPlanItem/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface RelationSpotCheckPlanItemVO {
+ id: number
+ planNumber: string
+ itemCode: string
+ itemName: string
+ isSelectd: boolean
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询点检计划表和巡检项关系列表
+export const getRelationSpotCheckPlanItemPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/relation-spot-check-plan-item/senior', data })
+ } else {
+ return await request.get({ url: `/eam/relation-spot-check-plan-item/page`, params })
+ }
+}
+
+// 查询点检计划表和巡检项关系详情
+export const getRelationSpotCheckPlanItem = async (id: number) => {
+ return await request.get({ url: `/eam/relation-spot-check-plan-item/get?id=` + id })
+}
+
+// 新增点检计划表和巡检项关系
+export const createRelationSpotCheckPlanItem = async (data: RelationSpotCheckPlanItemVO) => {
+ return await request.post({ url: `/eam/relation-spot-check-plan-item/create`, data })
+}
+
+// 修改点检计划表和巡检项关系
+export const updateRelationSpotCheckPlanItem = async (data: RelationSpotCheckPlanItemVO) => {
+ return await request.put({ url: `/eam/relation-spot-check-plan-item/update`, data })
+}
+
+// 删除点检计划表和巡检项关系
+export const deleteRelationSpotCheckPlanItem = async (id: number) => {
+ return await request.delete({ url: `/eam/relation-spot-check-plan-item/delete?id=` + id })
+}
+
+// 导出点检计划表和巡检项关系 Excel
+export const exportRelationSpotCheckPlanItem = async (params) => {
+ return await request.download({ url: `/eam/relation-spot-check-plan-item/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/relation-spot-check-plan-item/get-import-template' })
+}
diff --git a/src/api/eam/repairExperience/index.ts b/src/api/eam/repairExperience/index.ts
new file mode 100644
index 0000000..b0fe57f
--- /dev/null
+++ b/src/api/eam/repairExperience/index.ts
@@ -0,0 +1,49 @@
+import request from '@/config/axios'
+
+export interface RepairExperienceVO {
+ id: number
+ name: string
+ content: string
+ repairRecordNumber: string
+}
+
+// 查询维修经验记录列表
+export const getRepairExperiencePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/record/repair-experience/senior', data })
+ } else {
+ return await request.get({ url: `/record/repair-experience/page`, params })
+ }
+}
+
+// 查询维修经验记录详情
+export const getRepairExperience = async (id: number) => {
+ return await request.get({ url: `/record/repair-experience/get?id=` + id })
+}
+
+// 新增维修经验记录
+export const createRepairExperience = async (data: RepairExperienceVO) => {
+ return await request.post({ url: `/record/repair-experience/create`, data })
+}
+
+// 修改维修经验记录
+export const updateRepairExperience = async (data: RepairExperienceVO) => {
+ return await request.put({ url: `/record/repair-experience/update`, data })
+}
+
+// 删除维修经验记录
+export const deleteRepairExperience = async (id: number) => {
+ return await request.delete({ url: `/record/repair-experience/delete?id=` + id })
+}
+
+// 导出维修经验记录 Excel
+export const exportRepairExperience = async (params) => {
+ return await request.download({ url: `/record/repair-experience/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/record/repair-experience/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/repairSparePartsRecord/index.ts b/src/api/eam/repairSparePartsRecord/index.ts
new file mode 100644
index 0000000..d499696
--- /dev/null
+++ b/src/api/eam/repairSparePartsRecord/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface RepairSparePartsRecordVO {
+ id: number
+ number: string
+ sparePartsCode: string
+ qty: number
+ areaCode: string
+ locationCode: string
+ status: string
+ result: string
+ applyer: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询备件维修申请列表
+export const getRepairSparePartsRecordPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/repair-spare-parts-record/senior', data })
+ } else {
+ return await request.get({ url: `/eam/repair-spare-parts-record/page`, params })
+ }
+}
+
+// 查询备件维修申请详情
+export const getRepairSparePartsRecord = async (id: number) => {
+ return await request.get({ url: `/eam/repair-spare-parts-record/get?id=` + id })
+}
+
+// 新增备件维修申请
+export const createRepairSparePartsRecord = async (data: RepairSparePartsRecordVO) => {
+ return await request.post({ url: `/eam/repair-spare-parts-record/create`, data })
+}
+
+// 修改备件维修申请
+export const updateRepairSparePartsRecord = async (data: RepairSparePartsRecordVO) => {
+ return await request.put({ url: `/eam/repair-spare-parts-record/update`, data })
+}
+
+// 删除备件维修申请
+export const deleteRepairSparePartsRecord = async (id: number) => {
+ return await request.delete({ url: `/eam/repair-spare-parts-record/delete?id=` + id })
+}
+
+// 导出备件维修申请 Excel
+export const exportRepairSparePartsRecord = async (params) => {
+ return await request.download({ url: `/eam/repair-spare-parts-record/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/repair-spare-parts-record/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/repairSparePartsRequest/index.ts b/src/api/eam/repairSparePartsRequest/index.ts
new file mode 100644
index 0000000..b99181f
--- /dev/null
+++ b/src/api/eam/repairSparePartsRequest/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface RepairSparePartsRequestVO {
+ id: number
+ number: string
+ sparePartsCode: string
+ qty: number
+ areaCode: string
+ locationCode: string
+ status: string
+ result: string
+ applyer: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+ repairCause: string
+}
+
+// 查询备件维修申请列表
+export const getRepairSparePartsRequestPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/repair-spare-parts-request/senior', data })
+ } else {
+ return await request.get({ url: `/eam/repair-spare-parts-request/page`, params })
+ }
+}
+
+// 查询备件维修申请详情
+export const getRepairSparePartsRequest = async (id: number) => {
+ return await request.get({ url: `/eam/repair-spare-parts-request/get?id=` + id })
+}
+
+// 新增备件维修申请
+export const createRepairSparePartsRequest = async (data: RepairSparePartsRequestVO) => {
+ return await request.post({ url: `/eam/repair-spare-parts-request/create`, data })
+}
+
+// 修改备件维修申请
+export const updateRepairSparePartsRequest = async (data: RepairSparePartsRequestVO) => {
+ return await request.put({ url: `/eam/repair-spare-parts-request/update`, data })
+}
+
+// 删除备件维修申请
+export const deleteRepairSparePartsRequest = async (id: number) => {
+ return await request.delete({ url: `/eam/repair-spare-parts-request/delete?id=` + id })
+}
+
+// 导出备件维修申请 Excel
+export const exportRepairSparePartsRequest = async (params) => {
+ return await request.download({ url: `/eam/repair-spare-parts-request/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/repair-spare-parts-request/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/sparePart/index.ts b/src/api/eam/sparePart/index.ts
new file mode 100644
index 0000000..2956ac0
--- /dev/null
+++ b/src/api/eam/sparePart/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface SparePartVO {
+ id: number
+ code: string
+ name: string
+ brand: string
+ specifications: string
+ isOverall: string
+ subject: string
+ subjectCode: string
+ type: string
+ images: string
+ region: string
+ classification: string
+ uom: string
+ singlePrice: number
+ manufacturer: string
+ minInventory: number
+ maxInventory: number
+ replacementCycle: number
+ storageLocation: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询备件基础列表
+export const getSparePartPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/spare-part/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/spare-part/page`, params })
+ }
+}
+
+// 查询备件基础详情
+export const getSparePart = async (id: number) => {
+ return await request.get({ url: `/eam/basic/spare-part/get?id=` + id })
+}
+
+// 新增备件基础
+export const createSparePart = async (data: SparePartVO) => {
+ return await request.post({ url: `/eam/basic/spare-part/create`, data })
+}
+
+// 修改备件基础
+export const updateSparePart = async (data: SparePartVO) => {
+ return await request.put({ url: `/eam/basic/spare-part/update`, data })
+}
+
+// 删除备件基础
+export const deleteSparePart = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/spare-part/delete?id=` + id })
+}
+
+// 导出备件基础 Excel
+export const exportSparePart = async (params) => {
+ return await request.download({ url: `/eam/basic/spare-part/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/spare-part/get-import-template' })
+}
+
+// 查询备件基础列表
+export const getSparePartNoPage = async (params) => {
+ return await request.get({ url: `/eam/basic/spare-part/noPage`, params })
+}
diff --git a/src/api/eam/sparePartsApplyDetail/index.ts b/src/api/eam/sparePartsApplyDetail/index.ts
new file mode 100644
index 0000000..ae94831
--- /dev/null
+++ b/src/api/eam/sparePartsApplyDetail/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface SparePartsApplyDetailVO {
+ id: number
+ number: string
+ masterId: number
+ sparePartsCode: string
+ isRadeIn: string
+ applyQty: number
+ currentQty: number
+ type: string
+ currentSinglePrice: number
+ equipmentCode: byte[]
+ jobNumber: byte[]
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询备件领用申请子列表
+export const getSparePartsApplyDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/spare-parts-apply-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/spare-parts-apply-detail/page`, params })
+ }
+}
+
+// 查询备件领用申请子详情
+export const getSparePartsApplyDetail = async (id: number) => {
+ return await request.get({ url: `/eam/spare-parts-apply-detail/get?id=` + id })
+}
+
+// 新增备件领用申请子
+export const createSparePartsApplyDetail = async (data: SparePartsApplyDetailVO) => {
+ return await request.post({ url: `/eam/spare-parts-apply-detail/create`, data })
+}
+
+// 修改备件领用申请子
+export const updateSparePartsApplyDetail = async (data: SparePartsApplyDetailVO) => {
+ return await request.put({ url: `/eam/spare-parts-apply-detail/update`, data })
+}
+
+// 删除备件领用申请子
+export const deleteSparePartsApplyDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/spare-parts-apply-detail/delete?id=` + id })
+}
+
+// 导出备件领用申请子 Excel
+export const exportSparePartsApplyDetail = async (params) => {
+ return await request.download({ url: `/eam/spare-parts-apply-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/spare-parts-apply-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/sparePartsApplyMain/index.ts b/src/api/eam/sparePartsApplyMain/index.ts
new file mode 100644
index 0000000..80288a6
--- /dev/null
+++ b/src/api/eam/sparePartsApplyMain/index.ts
@@ -0,0 +1,87 @@
+import request from '@/config/axios'
+
+export interface SparePartsApplyMainVO {
+ id: number
+ number: string
+ description: string
+ applyDeptId: string
+ sumVal: number
+ status: string
+ applyer: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询备件领用申请列表
+export const getSparePartsApplyMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/spare-parts-apply-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/spare-parts-apply-main/page`, params })
+ }
+}
+
+// 查询备件领用申请详情
+export const getSparePartsApplyMain = async (id: number) => {
+ return await request.get({ url: `/eam/spare-parts-apply-main/get?id=` + id })
+}
+
+// 新增备件领用申请
+export const createSparePartsApplyMain = async (data: SparePartsApplyMainVO) => {
+ return await request.post({ url: `/eam/spare-parts-apply-main/create`, data })
+}
+
+// 修改备件领用申请
+export const updateSparePartsApplyMain = async (data: SparePartsApplyMainVO) => {
+ return await request.put({ url: `/eam/spare-parts-apply-main/update`, data })
+}
+
+// 删除备件领用申请
+export const deleteSparePartsApplyMain = async (id: number) => {
+ return await request.delete({ url: `/eam/spare-parts-apply-main/delete?id=` + id })
+}
+
+// 导出备件领用申请 Excel
+export const exportSparePartsApplyMain = async (params) => {
+ return await request.download({ url: `/eam/spare-parts-apply-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/spare-parts-apply-main/get-import-template' })
+}
+
+// 撤回
+export const cancelSparePartsApplyMain = async (id) => {
+ return await request.get({ url: `/eam/spare-parts-apply-main/cancel?id=` + id })
+}
+// 审核
+export const submitSparePartsApplyMain = async (id) => {
+ return await request.get({ url: `/eam/spare-parts-apply-main/submitExamine?id=` + id })
+}
+// 审核驳回
+export const rejectSparePartsApplyMain = async (id) => {
+ return await request.get({ url: `/eam/spare-parts-apply-main/reject?id=` + id })
+}
+// 审核通过
+export const approveSparePartsApplyMain = async (data) => {
+ return await request.post({ url: `/eam/spare-parts-apply-main/approve`, data })
+}
+
+// 完成
+export const finishSparePartsApplyMain = async (id) => {
+ return await request.post({ url: `/eam/spare-parts-apply-main/finish?id=` + id })
+}
diff --git a/src/api/eam/sparePartsInLocationDetail/index.ts b/src/api/eam/sparePartsInLocationDetail/index.ts
new file mode 100644
index 0000000..827687a
--- /dev/null
+++ b/src/api/eam/sparePartsInLocationDetail/index.ts
@@ -0,0 +1,58 @@
+import request from '@/config/axios'
+
+export interface SparePartsInLocationDetailVO {
+ id: number
+ number: string
+ masterId: number
+ sparePartsCode: string
+ isRadeIn: string
+ applyQty: number
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询备件入库记录子列表
+export const getSparePartsInLocationDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/spare-parts-in-location-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/spare-parts-in-location-detail/page`, params })
+ }
+}
+
+// 查询备件入库记录子详情
+export const getSparePartsInLocationDetail = async (id: number) => {
+ return await request.get({ url: `/eam/spare-parts-in-location-detail/get?id=` + id })
+}
+
+// 新增备件入库记录子
+export const createSparePartsInLocationDetail = async (data: SparePartsInLocationDetailVO) => {
+ return await request.post({ url: `/eam/spare-parts-in-location-detail/create`, data })
+}
+
+// 修改备件入库记录子
+export const updateSparePartsInLocationDetail = async (data: SparePartsInLocationDetailVO) => {
+ return await request.put({ url: `/eam/spare-parts-in-location-detail/update`, data })
+}
+
+// 删除备件入库记录子
+export const deleteSparePartsInLocationDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/spare-parts-in-location-detail/delete?id=` + id })
+}
+
+// 导出备件入库记录子 Excel
+export const exportSparePartsInLocationDetail = async (params) => {
+ return await request.download({ url: `/eam/spare-parts-in-location-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/spare-parts-in-location-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/sparePartsInLocationMain/index.ts b/src/api/eam/sparePartsInLocationMain/index.ts
new file mode 100644
index 0000000..687d99a
--- /dev/null
+++ b/src/api/eam/sparePartsInLocationMain/index.ts
@@ -0,0 +1,91 @@
+import request from '@/config/axios'
+
+export interface SparePartsInLocationMainVO {
+ id: number
+ number: string
+ theme: string
+ status: string
+ applyer: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ areaCode: string
+ locationCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询备件入库记录主列表
+export const getSparePartsInLocationMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/spare-parts-in-location-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/spare-parts-in-location-main/page`, params })
+ }
+}
+
+// 查询备件入库记录主详情
+export const getSparePartsInLocationMain = async (id: number) => {
+ return await request.get({ url: `/eam/spare-parts-in-location-main/get?id=` + id })
+}
+
+// 新增备件入库记录主
+export const createSparePartsInLocationMain = async (data: SparePartsInLocationMainVO) => {
+ return await request.post({ url: `/eam/spare-parts-in-location-main/create`, data })
+}
+
+// 修改备件入库记录主
+export const updateSparePartsInLocationMain = async (data: SparePartsInLocationMainVO) => {
+ return await request.put({ url: `/eam/spare-parts-in-location-main/update`, data })
+}
+
+// 删除备件入库记录主
+export const deleteSparePartsInLocationMain = async (id: number) => {
+ return await request.delete({ url: `/eam/spare-parts-in-location-main/delete?id=` + id })
+}
+
+// 导出备件入库记录主 Excel
+export const exportSparePartsInLocationMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/eam/spare-parts-in-location-main/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/eam/spare-parts-in-location-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/spare-parts-in-location-main/get-import-template' })
+}
+
+// 撤回
+export const cancelSparePartsInLocation = async (id) => {
+ return await request.get({ url: `/eam/spare-parts-in-location-main/cancel?id=` + id })
+}
+// 审核
+export const submitExamineSparePartsInLocation = async (id) => {
+ return await request.get({ url: `/eam/spare-parts-in-location-main/submitExamine?id=` + id })
+}
+// 审核驳回
+export const rejectSparePartsInLocation = async (id) => {
+ return await request.get({ url: `/eam/spare-parts-in-location-main/reject?id=` + id })
+}
+// 审核通过
+export const approveSparePartsInLocation = async (data) => {
+ return await request.post({ url: `/eam/spare-parts-in-location-main/approve`,data })
+}
+// 完成
+export const finishSparePartsInLocation = async (id) => {
+ return await request.post({ url: `/eam/spare-parts-in-location-main/finish?id=` + id })
+}
\ No newline at end of file
diff --git a/src/api/eam/sparePartsInLocationRecordDetail/index.ts b/src/api/eam/sparePartsInLocationRecordDetail/index.ts
new file mode 100644
index 0000000..9e4df69
--- /dev/null
+++ b/src/api/eam/sparePartsInLocationRecordDetail/index.ts
@@ -0,0 +1,58 @@
+import request from '@/config/axios'
+
+export interface SparePartsInLocationDetailRecordVO {
+ id: number
+ number: string
+ masterId: number
+ sparePartsCode: string
+ isRadeIn: string
+ applyQty: number
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询备件入库记录子列表
+export const getSparePartsInLocationRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/spare-parts-in-location-detail-record/senior', data })
+ } else {
+ return await request.get({ url: `/eam/spare-parts-in-location-detail-record/page`, params })
+ }
+}
+
+// 查询备件入库记录子详情
+export const getSparePartsInLocationRecordDetail = async (id: number) => {
+ return await request.get({ url: `/eam/spare-parts-in-location-detail-record/get?id=` + id })
+}
+
+// 新增备件入库记录子
+export const createSparePartsInLocationRecordDetail= async (data: SparePartsInLocationDetailRecordVO) => {
+ return await request.post({ url: `/eam/spare-parts-in-location-detail-record/create`, data })
+}
+
+// 修改备件入库记录子
+export const updateSparePartsInLocationRecordDetail = async (data: SparePartsInLocationDetailRecordVO) => {
+ return await request.put({ url: `/eam/spare-parts-in-location-detail-record/update`, data })
+}
+
+// 删除备件入库记录子
+export const deleteSparePartsInLocationRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/spare-parts-in-location-detail-record/delete?id=` + id })
+}
+
+// 导出备件入库记录子 Excel
+export const exportSparePartsInLocationRecordDetail = async (params) => {
+ return await request.download({ url: `/eam/spare-parts-in-location-detail-record/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/spare-parts-in-location-detail-record/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/sparePartsInLocationRecordMain/index.ts b/src/api/eam/sparePartsInLocationRecordMain/index.ts
new file mode 100644
index 0000000..42c7616
--- /dev/null
+++ b/src/api/eam/sparePartsInLocationRecordMain/index.ts
@@ -0,0 +1,72 @@
+import request from '@/config/axios'
+
+export interface SparePartsInLocationMainRecordVO {
+ id: number
+ number: string
+ theme: string
+ status: string
+ applyer: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ areaCode: string
+ locationCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询备件入库记录主列表
+export const getSparePartsInLocationRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/spare-parts-in-location-main-record/senior', data })
+ } else {
+ return await request.get({ url: `/eam/spare-parts-in-location-main-record/page`, params })
+ }
+}
+
+// 查询备件入库记录主详情
+export const getSparePartsInLocationRecordMain = async (id: number) => {
+ return await request.get({ url: `/eam/spare-parts-in-location-main-record/get?id=` + id })
+}
+
+// 新增备件入库记录主
+export const createSparePartsInLocationRecordMain = async (
+ data: SparePartsInLocationMainRecordVO
+) => {
+ return await request.post({ url: `/eam/spare-parts-in-location-main-record/create`, data })
+}
+
+// 修改备件入库记录主
+export const updateSparePartsInLocationRecordMain = async (
+ data: SparePartsInLocationMainRecordVO
+) => {
+ return await request.put({ url: `/eam/spare-parts-in-location-main-record/update`, data })
+}
+
+// 删除备件入库记录主
+export const deleteSparePartsInLocationRecordMain= async (id: number) => {
+ return await request.delete({ url: `/eam/spare-parts-in-location-main-record/delete?id=` + id })
+}
+
+// 导出备件入库记录主 Excel
+export const exportSparePartsInLocationRecordMain = async (params) => {
+ return await request.download({
+ url: `/eam/spare-parts-in-location-main-record/export-excel`,
+ params
+ })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/spare-parts-in-location-main-record/get-import-template' })
+}
diff --git a/src/api/eam/sparePartsOutLocationDetail/index.ts b/src/api/eam/sparePartsOutLocationDetail/index.ts
new file mode 100644
index 0000000..16b9fe4
--- /dev/null
+++ b/src/api/eam/sparePartsOutLocationDetail/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface SparePartsOutLocationDetailVO {
+ id: number
+ number: string
+ masterId: number
+ sparePartsCode: string
+ isRadeIn: string
+ applyQty: number
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询备件入库记录子列表
+export const getSparePartsOutLocationDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/spare-parts-out-location-detail/senior', data })
+ } else {
+ return await request.get({ url: `/eam/spare-parts-out-location-detail/page`, params })
+ }
+}
+
+// 查询备件入库记录子详情
+export const getSparePartsOutLocationDetail = async (id: number) => {
+ return await request.get({ url: `/eam/spare-parts-out-location-detail/get?id=` + id })
+}
+
+// 新增备件入库记录子
+export const createSparePartsOutLocationDetail = async (data: SparePartsOutLocationDetailVO) => {
+ return await request.post({ url: `/eam/spare-parts-out-location-detail/create`, data })
+}
+
+// 修改备件入库记录子
+export const updateSparePartsOutLocationDetail = async (data: SparePartsOutLocationDetailVO) => {
+ return await request.put({ url: `/eam/spare-parts-out-location-detail/update`, data })
+}
+
+// 删除备件入库记录子
+export const deleteSparePartsOutLocationDetail = async (id: number) => {
+ return await request.delete({ url: `/eam/spare-parts-out-location-detail/delete?id=` + id })
+}
+
+// 导出备件入库记录子 Excel
+export const exportSparePartsOutLocationDetail = async (params) => {
+ return await request.download({
+ url: `/eam/spare-parts-out-location-detail/export-excel`,
+ params
+ })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/spare-parts-out-location-detail/get-import-template' })
+}
diff --git a/src/api/eam/sparePartsOutLocationMain/index.ts b/src/api/eam/sparePartsOutLocationMain/index.ts
new file mode 100644
index 0000000..1eeccf4
--- /dev/null
+++ b/src/api/eam/sparePartsOutLocationMain/index.ts
@@ -0,0 +1,81 @@
+import request from '@/config/axios'
+
+export interface SparePartsOutLocationMainVO {
+ id: number
+ number: string
+ theme: string
+ status: string
+ applyer: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ areaCode: string
+ locationCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询备件入库记录主列表
+export const getSparePartsOutLocationMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/spare-parts-out-location-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/spare-parts-out-location-main/page`, params })
+ }
+}
+
+// 查询备件入库记录主详情
+export const getSparePartsOutLocationMain = async (id: number) => {
+ return await request.get({ url: `/eam/spare-parts-out-location-main/get?id=` + id })
+}
+
+// 新增备件入库记录主
+export const createSparePartsOutLocationMain = async (data: SparePartsOutLocationMainVO) => {
+ return await request.post({ url: `/eam/spare-parts-out-location-main/create`, data })
+}
+
+// 修改备件入库记录主
+export const updateSparePartsOutLocationMain = async (data: SparePartsOutLocationMainVO) => {
+ return await request.put({ url: `/eam/spare-parts-out-location-main/update`, data })
+}
+
+// 删除备件入库记录主
+export const deleteSparePartsOutLocationMain = async (id: number) => {
+ return await request.delete({ url: `/eam/spare-parts-out-location-main/delete?id=` + id })
+}
+
+// 出库
+export const outSparePartsOutLocationMain = async (id) => {
+ return await request.get({ url: `/eam/spare-parts-out-location-main/out?id=` + id })
+}
+
+// 导出备件入库记录主 Excel
+export const exportSparePartsOutLocationMain = async (params) => {
+ if (params.isSearch) {
+ const data = { ...params }
+ return await request.downloadPost({
+ url: `/eam/spare-parts-out-location-main/export-excel-senior`,
+ data
+ })
+ } else {
+ return await request.download({
+ url: `/eam/spare-parts-out-location-main/export-excel`,
+ params
+ })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/spare-parts-out-location-main/get-import-template' })
+}
diff --git a/src/api/eam/sparePartsOutLocationRecordDetail/index.ts b/src/api/eam/sparePartsOutLocationRecordDetail/index.ts
new file mode 100644
index 0000000..afffa39
--- /dev/null
+++ b/src/api/eam/sparePartsOutLocationRecordDetail/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface SparePartsOutLocationRecordDetailVO {
+ id: number
+ number: string
+ theme: string
+ status: string
+ applyer: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ areaCode: string
+ locationCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询备件入库记录主列表
+export const getSparePartsOutLocationDetailRecordPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/spare-parts-out-location-detail-record/senior', data })
+ } else {
+ return await request.get({ url: `/eam/spare-parts-out-location-detail-record/page`, params })
+ }
+}
+
+// 查询备件入库记录主详情
+export const getSparePartsOutLocationDetailRecord = async (id: number) => {
+ return await request.get({ url: `/eam/spare-parts-out-location-detail-record/get?id=` + id })
+}
+
+// 新增备件入库记录主
+export const createSparePartsOutLocationDetailRecord = async (
+ data: SparePartsOutLocationRecordDetailVO
+) => {
+ return await request.post({ url: `/eam/spare-parts-out-location-detail-record/create`, data })
+}
+
+// 修改备件入库记录主
+export const updateSparePartsOutLocationDetailRecord = async (
+ data: SparePartsOutLocationRecordDetailVO
+) => {
+ return await request.put({ url: `/eam/spare-parts-out-location-detail-record/update`, data })
+}
+
+// 删除备件入库记录主
+export const deleteSparePartsOutLocationDetailRecord = async (id: number) => {
+ return await request.delete({
+ url: `/eam/spare-parts-out-location-detail-record/delete?id=` + id
+ })
+}
+
+// 导出备件入库记录主 Excel
+export const exportSparePartsOutLocationDetailRecord = async (params) => {
+ return await request.download({
+ url: `/eam/spare-parts-out-location-detail-record/export-excel`,
+ params
+ })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({
+ url: '/eam/spare-parts-out-location-detail-record/get-import-template'
+ })
+}
diff --git a/src/api/eam/sparePartsOutLocationRecordDetail/sparePartsOutLocationDetailRecord.js b/src/api/eam/sparePartsOutLocationRecordDetail/sparePartsOutLocationDetailRecord.js
new file mode 100644
index 0000000..4e84a94
--- /dev/null
+++ b/src/api/eam/sparePartsOutLocationRecordDetail/sparePartsOutLocationDetailRecord.js
@@ -0,0 +1,54 @@
+import request from '@/config/axios'
+
+// 创建领用出库记录子
+export function createSparePartsOutLocationRecordDetail(data) {
+ return request({
+ url: '/eam/spare-parts-out-location-detail-record/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 更新领用出库记录子
+export function updateSparePartsOutLocationRecordDetail(data) {
+ return request({
+ url: '/eam/spare-parts-out-location-detail-record/update',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除领用出库记录子
+export function deleteSparePartsOutLocationRecordDetail(id) {
+ return request({
+ url: '/eam/spare-parts-out-location-detail-record/delete?id=' + id,
+ method: 'delete'
+ })
+}
+
+// 获得领用出库记录子
+export function getSparePartsOutLocationRecordDetail(id) {
+ return request({
+ url: '/eam/spare-parts-out-location-detail-record/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 获得领用出库记录子分页
+export function getSparePartsOutLocationRecordDetailPage(query) {
+ return request({
+ url: '/eam/spare-parts-out-location-detail-record/page',
+ method: 'get',
+ params: query
+ })
+}
+
+// 导出领用出库记录子 Excel
+export function exportSparePartsOutLocationRecordDetailExcel(query) {
+ return request({
+ url: '/eam/spare-parts-out-location-detail-record/export-excel',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
diff --git a/src/api/eam/sparePartsOutLocationRecordMain/index.ts b/src/api/eam/sparePartsOutLocationRecordMain/index.ts
new file mode 100644
index 0000000..4f075cc
--- /dev/null
+++ b/src/api/eam/sparePartsOutLocationRecordMain/index.ts
@@ -0,0 +1,71 @@
+import request from '@/config/axios'
+
+export interface SparePartsOutLocationRecordMainVO {
+ id: number
+ number: string
+ theme: string
+ applyer: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ areaCode: string
+ locationCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询领用出库记录主列表
+export const getSparePartsOutLocationRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/eam/spare-parts-out-location-main-record/senior', data })
+ } else {
+ return await request.get({ url: `/eam/spare-parts-out-location-main-record/page`, params })
+ }
+}
+
+// 查询领用出库记录主详情
+export const getSparePartsOutLocationRecordMain = async (id: number) => {
+ return await request.get({ url: `/eam/spare-parts-out-location-main-record/get?id=` + id })
+}
+
+// 新增领用出库记录主
+export const createSparePartsOutLocationRecordMain = async (
+ data: SparePartsOutLocationRecordMainVO
+) => {
+ return await request.post({ url: `/eam/spare-parts-out-location-main-record/create`, data })
+}
+
+// 修改领用出库记录主
+export const updateSparePartsOutLocationRecordMain = async (
+ data: SparePartsOutLocationRecordMainVO
+) => {
+ return await request.put({ url: `/eam/spare-parts-out-location-main-record/update`, data })
+}
+
+// 删除领用出库记录主
+export const deleteSparePartsOutLocationRecordMain = async (id: number) => {
+ return await request.delete({ url: `/eam/spare-parts-out-location-main-record/delete?id=` + id })
+}
+
+// 导出领用出库记录主 Excel
+export const exportSparePartsOutLocationRecordMain = async (params) => {
+ return await request.download({
+ url: `/eam/spare-parts-out-location-main-record/export-excel`,
+ params
+ })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/spare-parts-out-location-main-record/get-import-template' })
+}
diff --git a/src/api/eam/spotCheckItem/index.ts b/src/api/eam/spotCheckItem/index.ts
new file mode 100644
index 0000000..e1f587c
--- /dev/null
+++ b/src/api/eam/spotCheckItem/index.ts
@@ -0,0 +1,62 @@
+import request from '@/config/axios'
+
+export interface SpotCheckItemVO {
+ id: number
+ content: string
+ equipmentParts: string
+ serialNumber: number
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询点检项列表
+export const getSpotCheckItemPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/spot-check-item/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/spot-check-item/page`, params })
+ }
+}
+
+// 查询点检项详情
+export const getSpotCheckItem = async (id: number) => {
+ return await request.get({ url: `/eam/basic/spot-check-item/get?id=` + id })
+}
+
+// 新增点检项
+export const createSpotCheckItem = async (data: SpotCheckItemVO) => {
+ return await request.post({ url: `/eam/basic/spot-check-item/create`, data })
+}
+
+// 修改点检项
+export const updateSpotCheckItem = async (data: SpotCheckItemVO) => {
+ return await request.put({ url: `/eam/basic/spot-check-item/update`, data })
+}
+
+// 删除点检项
+export const deleteSpotCheckItem = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/spot-check-item/delete?id=` + id })
+}
+
+// 导出点检项 Excel
+export const exportSpotCheckItem = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.downloadPost({ url: `/eam/basic/spot-check-item/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/eam/basic/spot-check-item/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/spot-check-item/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/spotCheckSelectSet/index.ts b/src/api/eam/spotCheckSelectSet/index.ts
new file mode 100644
index 0000000..dd6a604
--- /dev/null
+++ b/src/api/eam/spotCheckSelectSet/index.ts
@@ -0,0 +1,72 @@
+import request from '@/config/axios'
+
+export interface BasicSpotCheckSelectSetVO {
+ id: number
+ name: string
+ describing: string
+ itemCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询点检选择集维护列表
+export const getBasicSpotCheckSelectSetPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/spot-check-select-set/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/spot-check-select-set/page`, params })
+ }
+}
+
+// 查询点检选择集维护详情
+export const getBasicSpotCheckSelectSet = async (id: number) => {
+ return await request.get({ url: `/eam/basic/spot-check-select-set/get?id=` + id })
+}
+
+// 新增点检选择集维护
+export const createBasicSpotCheckSelectSet = async (data: BasicSpotCheckSelectSetVO) => {
+ return await request.post({ url: `/eam/basic/spot-check-select-set/create`, data })
+}
+
+// 修改点检选择集维护
+export const updateBasicSpotCheckSelectSet = async (data: BasicSpotCheckSelectSetVO) => {
+ return await request.put({ url: `/eam/basic/spot-check-select-set/update`, data })
+}
+
+// 删除点检选择集维护
+export const deleteBasicSpotCheckSelectSet = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/spot-check-select-set/delete?id=` + id })
+}
+
+// 导出点检选择集维护 Excel
+export const exportBasicSpotCheckSelectSet = async (params) => {
+ return await request.download({ url: `/eam/basic/spot-check-select-set/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/spot-check-select-set/get-import-template' })
+}
+
+// 启用 / 禁用
+export const updateEnableCode = async (data: BasicSpotCheckSelectSetVO) => {
+ return await request.post({ url: `/eam/basic/spot-check-select-set/ables` , data })
+}
+
+
+// 查询点检项选择集列表
+export const getSpotCheckSelectSetList = async (params) => {
+ return await request.get({ url: `/eam/basic/spot-check-item/getList`, params })
+}
+
+// 查询点检方案项列表
+export const getRalSpotCheckOptionItemList = async (params) => {
+ return await request.get({url: `/eam/relation-spotCheck-option-item/getList?optionCode=` + params})
+}
diff --git a/src/api/eam/tableDataExtendedAttribute/index.ts b/src/api/eam/tableDataExtendedAttribute/index.ts
new file mode 100644
index 0000000..a1ca18d
--- /dev/null
+++ b/src/api/eam/tableDataExtendedAttribute/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface TableDataExtendedAttributeVO {
+ id: number
+ tableName: string
+ dataId: string
+ fieldName: string
+ fieldVal: string
+ siteId: string
+ available: string
+ departmentCode: number
+ remark: string
+ concurrencyStamp: number
+}
+
+// 查询表数据扩展属性字段列表
+export const getTableDataExtendedAttributePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/table-data-extended-attribute/senior', data })
+ } else {
+ return await request.get({ url: `/eam/table-data-extended-attribute/page`, params })
+ }
+}
+
+// 查询表数据扩展属性字段详情
+export const getTableDataExtendedAttribute = async (id: number) => {
+ return await request.get({ url: `/eam/table-data-extended-attribute/get?id=` + id })
+}
+
+// 新增表数据扩展属性字段
+export const createTableDataExtendedAttribute = async (data: TableDataExtendedAttributeVO) => {
+ return await request.post({ url: `/eam/table-data-extended-attribute/create`, data })
+}
+
+// 修改表数据扩展属性字段
+export const updateTableDataExtendedAttribute = async (data: TableDataExtendedAttributeVO) => {
+ return await request.put({ url: `/eam/table-data-extended-attribute/update`, data })
+}
+
+// 删除表数据扩展属性字段
+export const deleteTableDataExtendedAttribute = async (id: number) => {
+ return await request.delete({ url: `/eam/table-data-extended-attribute/delete?id=` + id })
+}
+
+// 导出表数据扩展属性字段 Excel
+export const exportTableDataExtendedAttribute = async (params) => {
+ return await request.download({ url: `/eam/table-data-extended-attribute/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/table-data-extended-attribute/get-import-template' })
+}
+
+// 查询表数据扩展属性字段列表
+export const getTableDataExtendedAttributeNoPage = async (params) => {
+ return await request.get({ url: `/eam/table-data-extended-attribute/noPage`, params })
+}
+
+// 新增表数据扩展属性字段
+export const createTableDataExtendedAttributeBatch = async (data: Object) => {
+ return await request.post({ url: `/eam/table-data-extended-attribute/createBatch`, data })
+}
diff --git a/src/api/eam/toolAccounts/index.ts b/src/api/eam/toolAccounts/index.ts
new file mode 100644
index 0000000..bf93820
--- /dev/null
+++ b/src/api/eam/toolAccounts/index.ts
@@ -0,0 +1,84 @@
+import request from '@/config/axios'
+
+export interface ToolAccountsVO {
+ id: number
+ code: string
+ name: string
+ specification: string
+ type: string
+ equity: string
+ electricMachine: string
+ isCustomerAptitude: boolean
+ customerId: string
+ storageLocation: string
+ useDept: string
+ principal: string
+ principalTelephone: string
+ status: string
+ startDate: Date
+ supplierCode: string
+ purchaseTime: Date
+ purchaseDept: string
+ purchaser: string
+ productionDate: Date
+ manufactureCode: string
+ equipmentLife: string
+ acceptanceDate: Date
+ purchasePrice: number
+ factoryAreaCode: string
+ workshopCode: string
+ workshopSectionCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询工装台账列表
+export const getToolAccountsPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/tool/tool-accounts/senior', data })
+ } else {
+ return await request.get({ url: `/eam/tool/tool-accounts/page`, params })
+ }
+}
+
+// 查询工装台账详情
+export const getToolAccounts = async (id: number) => {
+ return await request.get({ url: `/eam/tool/tool-accounts/get?id=` + id })
+}
+
+// 新增工装台账
+export const createToolAccounts = async (data: ToolAccountsVO) => {
+ return await request.post({ url: `/eam/tool/tool-accounts/create`, data })
+}
+
+// 修改工装台账
+export const updateToolAccounts = async (data: ToolAccountsVO) => {
+ return await request.put({ url: `/eam/tool/tool-accounts/update`, data })
+}
+
+// 删除工装台账
+export const deleteToolAccounts = async (id: number) => {
+ return await request.delete({ url: `/eam/tool/tool-accounts/delete?id=` + id })
+}
+
+// 导出工装台账 Excel
+export const exportToolAccounts = async (params) => {
+ return await request.download({ url: `/eam/tool/tool-accounts/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/tool/tool-accounts/get-import-template' })
+}
+
+// 查询工装台账列表
+export const getToolAccountsNoPage = async (params) => {
+ return await request.get({ url: `/eam/tool/tool-accounts/noPage`, params })
+}
\ No newline at end of file
diff --git a/src/api/eam/toolChangedRecord/index.ts b/src/api/eam/toolChangedRecord/index.ts
new file mode 100644
index 0000000..c3b32e0
--- /dev/null
+++ b/src/api/eam/toolChangedRecord/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface ToolChangedRecordVO {
+ id: number
+ code: string
+ name: string
+ statusBefore: string
+ statusAfter: string
+ operator: number
+ operateTime: Date
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询设备变更记录列表
+export const getToolChangedRecordPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/tool-changed-record/senior', data })
+ } else {
+ return await request.get({ url: `/eam/tool-changed-record/page`, params })
+ }
+}
+
+// 查询设备变更记录详情
+export const getToolChangedRecord = async (id: number) => {
+ return await request.get({ url: `/eam/tool-changed-record/get?id=` + id })
+}
+
+// 新增设备变更记录
+export const createToolChangedRecord = async (data: ToolChangedRecordVO) => {
+ return await request.post({ url: `/eam/tool-changed-record/create`, data })
+}
+
+// 修改设备变更记录
+export const updateToolChangedRecord = async (data: ToolChangedRecordVO) => {
+ return await request.put({ url: `/eam/tool-changed-record/update`, data })
+}
+
+// 删除设备变更记录
+export const deleteToolChangedRecord = async (id: number) => {
+ return await request.delete({ url: `/eam/tool-changed-record/delete?id=` + id })
+}
+
+// 导出设备变更记录 Excel
+export const exportToolChangedRecord = async (params) => {
+ return await request.download({ url: `/eam/tool-changed-record/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/tool-changed-record/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/toolEquipmentIn/index.ts b/src/api/eam/toolEquipmentIn/index.ts
new file mode 100644
index 0000000..d175f6d
--- /dev/null
+++ b/src/api/eam/toolEquipmentIn/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface ToolEquipmentInVO {
+ id: number
+ describing: string
+ toolCode: string
+ status: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ factoryAreaCode: string
+ workshopCode: string
+ lineCode: string
+ processCode: string
+ workstationCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询工装入库记录列表
+export const getToolEquipmentInPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/tool/tool-equipment-in/senior', data })
+ } else {
+ return await request.get({ url: `/eam/tool/tool-equipment-in/page`, params })
+ }
+}
+
+// 查询工装入库记录详情
+export const getToolEquipmentIn = async (id: number) => {
+ return await request.get({ url: `/eam/tool/tool-equipment-in/get?id=` + id })
+}
+
+// 新增工装入库记录
+export const createToolEquipmentIn = async (data: ToolEquipmentInVO) => {
+ return await request.post({ url: `/eam/tool/tool-equipment-in/create`, data })
+}
+
+// 修改工装入库记录
+export const updateToolEquipmentIn = async (data: ToolEquipmentInVO) => {
+ return await request.put({ url: `/eam/tool/tool-equipment-in/update`, data })
+}
+
+// 删除工装入库记录
+export const deleteToolEquipmentIn = async (id: number) => {
+ return await request.delete({ url: `/eam/tool/tool-equipment-in/delete?id=` + id })
+}
+
+// 导出工装入库记录 Excel
+export const exportToolEquipmentIn = async (params) => {
+ return await request.download({ url: `/eam/tool/tool-equipment-in/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/tool/tool-equipment-in/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/toolEquipmentOut/index.ts b/src/api/eam/toolEquipmentOut/index.ts
new file mode 100644
index 0000000..7ffda68
--- /dev/null
+++ b/src/api/eam/toolEquipmentOut/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface ToolEquipmentOutVO {
+ id: number
+ theme: string
+ toolCode: string
+ type: string
+ qty: number
+ status: string
+ applyer: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询工装出库记录列表
+export const getToolEquipmentOutPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/tool/tool-equipment-out/senior', data })
+ } else {
+ return await request.get({ url: `/eam/tool/tool-equipment-out/page`, params })
+ }
+}
+
+// 查询工装出库记录详情
+export const getToolEquipmentOut = async (id: number) => {
+ return await request.get({ url: `/eam/tool/tool-equipment-out/get?id=` + id })
+}
+
+// 新增工装出库记录
+export const createToolEquipmentOut = async (data: ToolEquipmentOutVO) => {
+ return await request.post({ url: `/eam/tool/tool-equipment-out/create`, data })
+}
+
+// 修改工装出库记录
+export const updateToolEquipmentOut = async (data: ToolEquipmentOutVO) => {
+ return await request.put({ url: `/eam/tool/tool-equipment-out/update`, data })
+}
+
+// 删除工装出库记录
+export const deleteToolEquipmentOut = async (id: number) => {
+ return await request.delete({ url: `/eam/tool/tool-equipment-out/delete?id=` + id })
+}
+
+// 导出工装出库记录 Excel
+export const exportToolEquipmentOut = async (params) => {
+ return await request.download({ url: `/eam/tool/tool-equipment-out/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/tool/tool-equipment-out/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/toolMod/index.ts b/src/api/eam/toolMod/index.ts
new file mode 100644
index 0000000..507aa8e
--- /dev/null
+++ b/src/api/eam/toolMod/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface ToolModVO {
+ id: number
+ modCode: string
+ toolCode: string
+ type: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询工装物料关联列表
+export const getToolModPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic/tool-mod/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic/tool-mod/page`, params })
+ }
+}
+
+// 查询工装物料关联详情
+export const getToolMod = async (id: number) => {
+ return await request.get({ url: `/eam/basic/tool-mod/get?id=` + id })
+}
+
+// 新增工装物料关联
+export const createToolMod = async (data: ToolModVO) => {
+ return await request.post({ url: `/eam/basic/tool-mod/create`, data })
+}
+
+// 修改工装物料关联
+export const updateToolMod = async (data: ToolModVO) => {
+ return await request.put({ url: `/eam/basic/tool-mod/update`, data })
+}
+
+// 删除工装物料关联
+export const deleteToolMod = async (id: number) => {
+ return await request.delete({ url: `/eam/basic/tool-mod/delete?id=` + id })
+}
+
+// 导出工装物料关联 Excel
+export const exportToolMod = async (params) => {
+ return await request.download({ url: `/eam/basic/tool-mod/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic/tool-mod/get-import-template' })
+}
+
+// 新增工装物料关联
+export const createToolModBatch = async (data: ToolModVO) => {
+ return await request.post({ url: `/eam/basic/tool-mod/createBatch`, data })
+}
diff --git a/src/api/eam/toolSigning/index.ts b/src/api/eam/toolSigning/index.ts
new file mode 100644
index 0000000..66fca87
--- /dev/null
+++ b/src/api/eam/toolSigning/index.ts
@@ -0,0 +1,79 @@
+import request from '@/config/axios'
+
+export interface ToolSigningVO {
+ id: number
+ toolCode: string
+ operationDate: Date
+ operationer: string
+ operationDept: string
+ telephone: string
+ supplierCode: string
+ supplierPeople: string
+ supplierTelephone: string
+ status: string
+ approver: number
+ approveContent: string
+ approveTime: Date
+ autoExamine: string
+ autoAgree: string
+ directCreateRecord: string
+ storageLocation: string
+ factoryAreaCode: string
+ workshopCode: string
+ lineCode: string
+ processCode: string
+ workstationCode: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询工装到货签收记录列表
+export const getToolSigningPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/tool-signing/senior', data })
+ } else {
+ return await request.get({ url: `/eam/tool-signing/page`, params })
+ }
+}
+
+// 查询工装到货签收记录详情
+export const getToolSigning = async (id: number) => {
+ return await request.get({ url: `/eam/tool-signing/get?id=` + id })
+}
+
+// 新增工装到货签收记录
+export const createToolSigning = async (data: ToolSigningVO) => {
+ return await request.post({ url: `/eam/tool-signing/create`, data })
+}
+
+// 新增工装到货签收记录
+export const createToolSigningNew = async (data: ToolSigningVO) => {
+ return await request.post({ url: `/eam/tool-signing/createNew`, data })
+}
+
+// 修改工装到货签收记录
+export const updateToolSigning = async (data: ToolSigningVO) => {
+ return await request.put({ url: `/eam/tool-signing/update`, data })
+}
+
+// 删除工装到货签收记录
+export const deleteToolSigning = async (id: number) => {
+ return await request.delete({ url: `/eam/tool-signing/delete?id=` + id })
+}
+
+// 导出工装到货签收记录 Excel
+export const exportToolSigning = async (params) => {
+ return await request.download({ url: `/eam/tool-signing/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/tool-signing/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/transaction/index.ts b/src/api/eam/transaction/index.ts
new file mode 100644
index 0000000..c11588a
--- /dev/null
+++ b/src/api/eam/transaction/index.ts
@@ -0,0 +1,53 @@
+import request from '@/config/axios'
+
+export interface TransactionVO {
+ itemNumber: string
+ locationNumber: string
+ transactionType: string
+ inventoryAction: string
+ businessType: string
+ inventoryStatus: string
+ uom: string
+ qty: number
+}
+
+// 查询库存事务列表
+export const getTransactionPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/transaction/senior', data })
+ } else {
+ return await request.get({ url: `/eam/transaction/page`, params })
+ }
+}
+
+// 查询库存事务详情
+export const getTransaction = async (id: number) => {
+ return await request.get({ url: `/eam/transaction/get?id=` + id })
+}
+
+// 新增库存事务
+export const createTransaction = async (data: TransactionVO) => {
+ return await request.post({ url: `/eam/transaction/create`, data })
+}
+
+// 修改库存事务
+export const updateTransaction = async (data: TransactionVO) => {
+ return await request.put({ url: `/eam/transaction/update`, data })
+}
+
+// 删除库存事务
+export const deleteTransaction = async (id: number) => {
+ return await request.delete({ url: `/eam/transaction/delete?id=` + id })
+}
+
+// 导出库存事务 Excel
+export const exportTransaction = async (params) => {
+ return await request.download({ url: `/eam/transaction/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/transaction/get-import-template' })
+}
diff --git a/src/api/home/index.ts b/src/api/home/index.ts
new file mode 100644
index 0000000..dee1700
--- /dev/null
+++ b/src/api/home/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+// 供应商首页
+export const getSupplierData = async () => {
+ return await request.get({ url: `/wms/index/indexSupplier` })
+}
+
+// 原料管理员首页
+export const getMaterialData = async () => {
+ return await request.get({ url: `/wms/index/indexMaterial` })
+}
+
+// 生产管理员首页
+export const getProduceData = async () => {
+ return await request.get({ url: `/wms/index/indexProduce` })
+}
+
+// 成品管理员首页
+export const getProductData = async () => {
+ return await request.get({ url: `/wms/index/indexProduct` })
+}
+
+// 超期库存预警
+export const getOverdueBalance = async (params) => {
+ return await request.get({ url: `/wms/index/pageOverdueBalance`,params })
+}
+
+// 呆滞库存预警
+export const getStagnantBalance = async (params) => {
+ return await request.get({ url: `/wms/index/pageStagnantBalance` ,params})
+}
+// 高低储预警
+export const getWarningBalance = async (params) => {
+ return await request.get({ url: `/wms/index/pageWarningBalance` ,params})
+}
+
+// 本月退货明细
+export const getPurchasereturnRecordMonth = async (params) => {
+ return await request.get({ url: `/wms/index/pagePurchasereturnRecordMonth`,params })
+}
+
+// 本月索赔明细
+export const getPurchaseclaimRecordMonth = async (params) => {
+ return await request.get({ url: `/wms/index/pagePurchaseclaimRecordMonth`,params })
+}
+
+// 今日生产计划
+export const getProductionToday = async (params) => {
+ return await request.get({ url: `/wms/index/pageProductionToday`,params })
+}
+
+// 线边安全库存
+export const getSafeLocation = async (params) => {
+ return await request.get({ url: `/wms/index/pageSafeLocation`,params })
+}
+// 待上架成品库存
+export const getProductputawayJobDetail = async (params) => {
+ return await request.get({ url: `/wms/index/pageProductputawayJobDetail`,params })
+}
\ No newline at end of file
diff --git a/src/api/infra/apiAccessLog/index.ts b/src/api/infra/apiAccessLog/index.ts
new file mode 100644
index 0000000..c6b4b45
--- /dev/null
+++ b/src/api/infra/apiAccessLog/index.ts
@@ -0,0 +1,30 @@
+import request from '@/config/axios'
+
+export interface ApiAccessLogVO {
+ id: number
+ traceId: string
+ userId: number
+ userType: number
+ applicationName: string
+ requestMethod: string
+ requestParams: string
+ requestUrl: string
+ userIp: string
+ userAgent: string
+ beginTime: Date
+ endTIme: Date
+ duration: number
+ resultCode: number
+ resultMsg: string
+ createTime: Date
+}
+
+// 查询列表API 访问日志
+export const getApiAccessLogPage = (params: PageParam) => {
+ return request.get({ url: '/infra/api-access-log/page', params })
+}
+
+// 导出API 访问日志
+export const exportApiAccessLog = (params) => {
+ return request.download({ url: '/infra/api-access-log/export-excel', params })
+}
diff --git a/src/api/infra/apiErrorLog/index.ts b/src/api/infra/apiErrorLog/index.ts
new file mode 100644
index 0000000..59ee214
--- /dev/null
+++ b/src/api/infra/apiErrorLog/index.ts
@@ -0,0 +1,48 @@
+import request from '@/config/axios'
+
+export interface ApiErrorLogVO {
+ id: number
+ traceId: string
+ userId: number
+ userType: number
+ applicationName: string
+ requestMethod: string
+ requestParams: string
+ requestUrl: string
+ userIp: string
+ userAgent: string
+ exceptionTime: Date
+ exceptionName: string
+ exceptionMessage: string
+ exceptionRootCauseMessage: string
+ exceptionStackTrace: string
+ exceptionClassName: string
+ exceptionFileName: string
+ exceptionMethodName: string
+ exceptionLineNumber: number
+ processUserId: number
+ processStatus: number
+ processTime: Date
+ resultCode: number
+ createTime: Date
+}
+
+// 查询列表API 访问日志
+export const getApiErrorLogPage = (params: PageParam) => {
+ return request.get({ url: '/infra/api-error-log/page', params })
+}
+
+// 更新 API 错误日志的处理状态
+export const updateApiErrorLogPage = (id: number, processStatus: number) => {
+ return request.put({
+ url: '/infra/api-error-log/update-status?id=' + id + '&processStatus=' + processStatus
+ })
+}
+
+// 导出API 访问日志
+export const exportApiErrorLog = (params) => {
+ return request.download({
+ url: '/infra/api-error-log/export-excel',
+ params
+ })
+}
diff --git a/src/api/infra/codegen/index.ts b/src/api/infra/codegen/index.ts
new file mode 100644
index 0000000..64701ef
--- /dev/null
+++ b/src/api/infra/codegen/index.ts
@@ -0,0 +1,123 @@
+import request from '@/config/axios'
+
+export type CodegenTableVO = {
+ id: number
+ tableId: number
+ isParentMenuIdValid: boolean
+ dataSourceConfigId: number
+ scene: number
+ tableName: string
+ tableComment: string
+ remark: string
+ moduleName: string
+ businessName: string
+ className: string
+ classComment: string
+ author: string
+ createTime: Date
+ updateTime: Date
+ templateType: number
+ parentMenuId: number
+}
+
+export type CodegenColumnVO = {
+ id: number
+ tableId: number
+ columnName: string
+ dataType: string
+ columnComment: string
+ nullable: number
+ primaryKey: number
+ autoIncrement: string
+ ordinalPosition: number
+ javaType: string
+ javaField: string
+ dictType: string
+ example: string
+ createOperation: number
+ updateOperation: number
+ listOperation: number
+ listOperationCondition: string
+ listOperationResult: number
+ htmlType: string
+}
+
+export type DatabaseTableVO = {
+ name: string
+ comment: string
+}
+
+export type CodegenDetailVO = {
+ table: CodegenTableVO
+ columns: CodegenColumnVO[]
+}
+
+export type CodegenPreviewVO = {
+ filePath: string
+ code: string
+}
+
+export type CodegenUpdateReqVO = {
+ table: CodegenTableVO | any
+ columns: CodegenColumnVO[]
+}
+
+export type CodegenCreateListReqVO = {
+ dataSourceConfigId: number
+ tableNames: string[]
+}
+
+// 查询列表代码生成表定义
+export const getCodegenTablePage = (params: PageParam) => {
+ return request.get({ url: '/infra/codegen/table/page', params })
+}
+
+// 查询详情代码生成表定义
+export const getCodegenTable = (id: number) => {
+ return request.get({ url: '/infra/codegen/detail?tableId=' + id })
+}
+
+// 新增代码生成表定义
+export const createCodegenTable = (data: CodegenCreateListReqVO) => {
+ return request.post({ url: '/infra/codegen/create', data })
+}
+
+// 修改代码生成表定义
+export const updateCodegenTable = (data: CodegenUpdateReqVO) => {
+ return request.put({ url: '/infra/codegen/update', data })
+}
+
+// 基于数据库的表结构,同步数据库的表和字段定义
+export const syncCodegenFromDB = (id: number) => {
+ return request.put({ url: '/infra/codegen/sync-from-db?tableId=' + id })
+}
+
+// 基于 SQL 建表语句,同步数据库的表和字段定义
+export const syncCodegenFromSQL = (id: number, sql: string) => {
+ return request.put({ url: '/infra/codegen/sync-from-sql?tableId=' + id + '&sql=' + sql })
+}
+
+// 预览生成代码
+export const previewCodegen = (id: number) => {
+ return request.get({ url: '/infra/codegen/preview?tableId=' + id })
+}
+
+// 下载生成代码
+export const downloadCodegen = (id: number) => {
+ return request.download({ url: '/infra/codegen/download?tableId=' + id })
+}
+
+// 获得表定义
+export const getSchemaTableList = (params) => {
+ return request.get({ url: '/infra/codegen/db/table/list', params })
+}
+
+// 基于数据库的表结构,创建代码生成器的表定义
+export const createCodegenList = (data) => {
+ return request.post({ url: '/infra/codegen/create-list', data })
+}
+
+// 删除代码生成表定义
+export const deleteCodegenTable = (id: number) => {
+ return request.delete({ url: '/infra/codegen/delete?tableId=' + id })
+}
diff --git a/src/api/infra/config/index.ts b/src/api/infra/config/index.ts
new file mode 100644
index 0000000..d9b0031
--- /dev/null
+++ b/src/api/infra/config/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface ConfigVO {
+ id: number | undefined
+ category: string
+ name: string
+ key: string
+ value: string
+ itemType: string
+ areaType: string
+ inventoryStatus: string
+ type: number
+ visible: boolean
+ remark: string
+ createTime: Date
+ locoationCode: string
+}
+
+// 查询参数列表
+export const getConfigPage = (params: PageParam) => {
+ return request.get({ url: '/infra/config/page', params })
+}
+
+// 查询参数详情
+export const getConfig = (id: number) => {
+ return request.get({ url: '/infra/config/get?id=' + id })
+}
+
+// 根据参数键名查询参数值
+export const getConfigKey = (configKey: string) => {
+ return request.get({ url: '/infra/config/get-value-by-key?key=' + configKey })
+}
+
+// 根据参数键名查询参数值
+export const queryByKey = (configKey: string) => {
+ return request.get({ url: '/infra/config/queryByKey?key=' + configKey })
+}
+
+// 新增参数
+export const createConfig = (data: ConfigVO) => {
+ return request.post({ url: '/infra/config/create', data })
+}
+
+// 修改参数
+export const updateConfig = (data: ConfigVO) => {
+ return request.put({ url: '/infra/config/update', data })
+}
+
+// 删除参数
+export const deleteConfig = (id: number) => {
+ return request.delete({ url: '/infra/config/delete?id=' + id })
+}
+
+// 导出参数
+export const exportConfig = (params) => {
+ return request.download({ url: '/infra/config/export', params })
+}
diff --git a/src/api/infra/dataSourceConfig/index.ts b/src/api/infra/dataSourceConfig/index.ts
new file mode 100644
index 0000000..b413f34
--- /dev/null
+++ b/src/api/infra/dataSourceConfig/index.ts
@@ -0,0 +1,35 @@
+import request from '@/config/axios'
+
+export interface DataSourceConfigVO {
+ id: number | undefined
+ name: string
+ url: string
+ username: string
+ password: string
+ createTime?: Date
+}
+
+// 新增数据源配置
+export const createDataSourceConfig = (data: DataSourceConfigVO) => {
+ return request.post({ url: '/infra/data-source-config/create', data })
+}
+
+// 修改数据源配置
+export const updateDataSourceConfig = (data: DataSourceConfigVO) => {
+ return request.put({ url: '/infra/data-source-config/update', data })
+}
+
+// 删除数据源配置
+export const deleteDataSourceConfig = (id: number) => {
+ return request.delete({ url: '/infra/data-source-config/delete?id=' + id })
+}
+
+// 查询数据源配置详情
+export const getDataSourceConfig = (id: number) => {
+ return request.get({ url: '/infra/data-source-config/get?id=' + id })
+}
+
+// 查询数据源配置列表
+export const getDataSourceConfigList = () => {
+ return request.get({ url: '/infra/data-source-config/list' })
+}
diff --git a/src/api/infra/dbDoc/index.ts b/src/api/infra/dbDoc/index.ts
new file mode 100644
index 0000000..1a1a36b
--- /dev/null
+++ b/src/api/infra/dbDoc/index.ts
@@ -0,0 +1,16 @@
+import request from '@/config/axios'
+
+// 导出Html
+export const exportHtml = () => {
+ return request.download({ url: '/infra/db-doc/export-html' })
+}
+
+// 导出Word
+export const exportWord = () => {
+ return request.download({ url: '/infra/db-doc/export-word' })
+}
+
+// 导出Markdown
+export const exportMarkdown = () => {
+ return request.download({ url: '/infra/db-doc/export-markdown' })
+}
diff --git a/src/api/infra/file/index.ts b/src/api/infra/file/index.ts
new file mode 100644
index 0000000..f64bc0d
--- /dev/null
+++ b/src/api/infra/file/index.ts
@@ -0,0 +1,17 @@
+import request from '@/config/axios'
+
+export interface FilePageReqVO extends PageParam {
+ path?: string
+ type?: string
+ createTime?: Date[]
+}
+
+// 查询文件列表
+export const getFilePage = (params: FilePageReqVO) => {
+ return request.get({ url: '/infra/file/page', params })
+}
+
+// 删除文件
+export const deleteFile = (id: number) => {
+ return request.delete({ url: '/infra/file/delete?id=' + id })
+}
diff --git a/src/api/infra/fileConfig/index.ts b/src/api/infra/fileConfig/index.ts
new file mode 100644
index 0000000..b72f18b
--- /dev/null
+++ b/src/api/infra/fileConfig/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface FileClientConfig {
+ basePath: string
+ host?: string
+ port?: number
+ username?: string
+ password?: string
+ mode?: string
+ endpoint?: string
+ bucket?: string
+ accessKey?: string
+ accessSecret?: string
+ domain: string
+}
+
+export interface FileConfigVO {
+ id: number
+ name: string
+ storage: any
+ master: boolean
+ visible: boolean
+ config: FileClientConfig
+ remark: string
+ createTime: Date
+}
+
+// 查询文件配置列表
+export const getFileConfigPage = (params: PageParam) => {
+ return request.get({ url: '/infra/file-config/page', params })
+}
+
+// 查询文件配置详情
+export const getFileConfig = (id: number) => {
+ return request.get({ url: '/infra/file-config/get?id=' + id })
+}
+
+// 更新文件配置为主配置
+export const updateFileConfigMaster = (id: number) => {
+ return request.put({ url: '/infra/file-config/update-master?id=' + id })
+}
+
+// 新增文件配置
+export const createFileConfig = (data: FileConfigVO) => {
+ return request.post({ url: '/infra/file-config/create', data })
+}
+
+// 修改文件配置
+export const updateFileConfig = (data: FileConfigVO) => {
+ return request.put({ url: '/infra/file-config/update', data })
+}
+
+// 删除文件配置
+export const deleteFileConfig = (id: number) => {
+ return request.delete({ url: '/infra/file-config/delete?id=' + id })
+}
+
+// 测试文件配置
+export const testFileConfig = (id: number) => {
+ return request.get({ url: '/infra/file-config/test?id=' + id })
+}
diff --git a/src/api/infra/job/index.ts b/src/api/infra/job/index.ts
new file mode 100644
index 0000000..033b2cb
--- /dev/null
+++ b/src/api/infra/job/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface JobVO {
+ id: number
+ name: string
+ status: number
+ handlerName: string
+ handlerParam: string
+ cronExpression: string
+ retryCount: number
+ retryInterval: number
+ monitorTimeout: number
+ createTime: Date
+}
+
+// 任务列表
+export const getJobPage = (params: PageParam) => {
+ return request.get({ url: '/infra/job/page', params })
+}
+
+// 任务详情
+export const getJob = (id: number) => {
+ return request.get({ url: '/infra/job/get?id=' + id })
+}
+
+// 新增任务
+export const createJob = (data: JobVO) => {
+ return request.post({ url: '/infra/job/create', data })
+}
+
+// 修改定时任务调度
+export const updateJob = (data: JobVO) => {
+ return request.put({ url: '/infra/job/update', data })
+}
+
+// 删除定时任务调度
+export const deleteJob = (id: number) => {
+ return request.delete({ url: '/infra/job/delete?id=' + id })
+}
+
+// 导出定时任务调度
+export const exportJob = (params) => {
+ return request.download({ url: '/infra/job/export-excel', params })
+}
+
+// 任务状态修改
+export const updateJobStatus = (id: number, status: number) => {
+ const params = {
+ id,
+ status
+ }
+ return request.put({ url: '/infra/job/update-status', params })
+}
+
+// 定时任务立即执行一次
+export const runJob = (id: number) => {
+ return request.put({ url: '/infra/job/trigger?id=' + id })
+}
+
+// 获得定时任务的下 n 次执行时间
+export const getJobNextTimes = (id: number) => {
+ return request.get({ url: '/infra/job/get_next_times?id=' + id })
+}
diff --git a/src/api/infra/jobLog/index.ts b/src/api/infra/jobLog/index.ts
new file mode 100644
index 0000000..f429cd9
--- /dev/null
+++ b/src/api/infra/jobLog/index.ts
@@ -0,0 +1,33 @@
+import request from '@/config/axios'
+
+export interface JobLogVO {
+ id: number
+ jobId: number
+ handlerName: string
+ handlerParam: string
+ cronExpression: string
+ executeIndex: string
+ beginTime: string
+ endTime: string
+ duration: string
+ status: number
+ createTime: string
+}
+
+// 任务日志列表
+export const getJobLogPage = (params: PageParam) => {
+ return request.get({ url: '/infra/job-log/page', params })
+}
+
+// 任务日志详情
+export const getJobLog = (id: number) => {
+ return request.get({ url: '/infra/job-log/get?id=' + id })
+}
+
+// 导出定时任务日志
+export const exportJobLog = (params) => {
+ return request.download({
+ url: '/infra/job-log/export-excel',
+ params
+ })
+}
diff --git a/src/api/infra/redis/index.ts b/src/api/infra/redis/index.ts
new file mode 100644
index 0000000..f27be77
--- /dev/null
+++ b/src/api/infra/redis/index.ts
@@ -0,0 +1,8 @@
+import request from '@/config/axios'
+
+/**
+ * 获取redis 监控信息
+ */
+export const getCache = () => {
+ return request.get({ url: '/infra/redis/get-monitor-info' })
+}
diff --git a/src/api/infra/redis/types.ts b/src/api/infra/redis/types.ts
new file mode 100644
index 0000000..548bfe9
--- /dev/null
+++ b/src/api/infra/redis/types.ts
@@ -0,0 +1,176 @@
+export interface RedisMonitorInfoVO {
+ info: RedisInfoVO
+ dbSize: number
+ commandStats: RedisCommandStatsVO[]
+}
+
+export interface RedisInfoVO {
+ io_threaded_reads_processed: string
+ tracking_clients: string
+ uptime_in_seconds: string
+ cluster_connections: string
+ current_cow_size: string
+ maxmemory_human: string
+ aof_last_cow_size: string
+ master_replid2: string
+ mem_replication_backlog: string
+ aof_rewrite_scheduled: string
+ total_net_input_bytes: string
+ rss_overhead_ratio: string
+ hz: string
+ current_cow_size_age: string
+ redis_build_id: string
+ errorstat_BUSYGROUP: string
+ aof_last_bgrewrite_status: string
+ multiplexing_api: string
+ client_recent_max_output_buffer: string
+ allocator_resident: string
+ mem_fragmentation_bytes: string
+ aof_current_size: string
+ repl_backlog_first_byte_offset: string
+ tracking_total_prefixes: string
+ redis_mode: string
+ redis_git_dirty: string
+ aof_delayed_fsync: string
+ allocator_rss_bytes: string
+ repl_backlog_histlen: string
+ io_threads_active: string
+ rss_overhead_bytes: string
+ total_system_memory: string
+ loading: string
+ evicted_keys: string
+ maxclients: string
+ cluster_enabled: string
+ redis_version: string
+ repl_backlog_active: string
+ mem_aof_buffer: string
+ allocator_frag_bytes: string
+ io_threaded_writes_processed: string
+ instantaneous_ops_per_sec: string
+ used_memory_human: string
+ total_error_replies: string
+ role: string
+ maxmemory: string
+ used_memory_lua: string
+ rdb_current_bgsave_time_sec: string
+ used_memory_startup: string
+ used_cpu_sys_main_thread: string
+ lazyfree_pending_objects: string
+ aof_pending_bio_fsync: string
+ used_memory_dataset_perc: string
+ allocator_frag_ratio: string
+ arch_bits: string
+ used_cpu_user_main_thread: string
+ mem_clients_normal: string
+ expired_time_cap_reached_count: string
+ unexpected_error_replies: string
+ mem_fragmentation_ratio: string
+ aof_last_rewrite_time_sec: string
+ master_replid: string
+ aof_rewrite_in_progress: string
+ lru_clock: string
+ maxmemory_policy: string
+ run_id: string
+ latest_fork_usec: string
+ tracking_total_items: string
+ total_commands_processed: string
+ expired_keys: string
+ errorstat_ERR: string
+ used_memory: string
+ module_fork_in_progress: string
+ errorstat_WRONGPASS: string
+ aof_buffer_length: string
+ dump_payload_sanitizations: string
+ mem_clients_slaves: string
+ keyspace_misses: string
+ server_time_usec: string
+ executable: string
+ lazyfreed_objects: string
+ db0: string
+ used_memory_peak_human: string
+ keyspace_hits: string
+ rdb_last_cow_size: string
+ aof_pending_rewrite: string
+ used_memory_overhead: string
+ active_defrag_hits: string
+ tcp_port: string
+ uptime_in_days: string
+ used_memory_peak_perc: string
+ current_save_keys_processed: string
+ blocked_clients: string
+ total_reads_processed: string
+ expire_cycle_cpu_milliseconds: string
+ sync_partial_err: string
+ used_memory_scripts_human: string
+ aof_current_rewrite_time_sec: string
+ aof_enabled: string
+ process_supervised: string
+ master_repl_offset: string
+ used_memory_dataset: string
+ used_cpu_user: string
+ rdb_last_bgsave_status: string
+ tracking_total_keys: string
+ atomicvar_api: string
+ allocator_rss_ratio: string
+ client_recent_max_input_buffer: string
+ clients_in_timeout_table: string
+ aof_last_write_status: string
+ mem_allocator: string
+ used_memory_scripts: string
+ used_memory_peak: string
+ process_id: string
+ master_failover_state: string
+ errorstat_NOAUTH: string
+ used_cpu_sys: string
+ repl_backlog_size: string
+ connected_slaves: string
+ current_save_keys_total: string
+ gcc_version: string
+ total_system_memory_human: string
+ sync_full: string
+ connected_clients: string
+ module_fork_last_cow_size: string
+ total_writes_processed: string
+ allocator_active: string
+ total_net_output_bytes: string
+ pubsub_channels: string
+ current_fork_perc: string
+ active_defrag_key_hits: string
+ rdb_changes_since_last_save: string
+ instantaneous_input_kbps: string
+ used_memory_rss_human: string
+ configured_hz: string
+ expired_stale_perc: string
+ active_defrag_misses: string
+ used_cpu_sys_children: string
+ number_of_cached_scripts: string
+ sync_partial_ok: string
+ used_memory_lua_human: string
+ rdb_last_save_time: string
+ pubsub_patterns: string
+ slave_expires_tracked_keys: string
+ redis_git_sha1: string
+ used_memory_rss: string
+ rdb_last_bgsave_time_sec: string
+ os: string
+ mem_not_counted_for_evict: string
+ active_defrag_running: string
+ rejected_connections: string
+ aof_rewrite_buffer_length: string
+ total_forks: string
+ active_defrag_key_misses: string
+ allocator_allocated: string
+ aof_base_size: string
+ instantaneous_output_kbps: string
+ second_repl_offset: string
+ rdb_bgsave_in_progress: string
+ used_cpu_user_children: string
+ total_connections_received: string
+ migrate_cached_sockets: string
+}
+
+export interface RedisCommandStatsVO {
+ command: string
+ calls: number
+ usec: number
+}
diff --git a/src/api/login/index.ts b/src/api/login/index.ts
new file mode 100644
index 0000000..7f30be3
--- /dev/null
+++ b/src/api/login/index.ts
@@ -0,0 +1,83 @@
+import request from '@/config/axios'
+import { getRefreshToken } from '@/utils/auth'
+import type { UserLoginVO } from './types'
+
+export interface SmsCodeVO {
+ mobile: string
+ scene: number
+}
+
+export interface SmsLoginVO {
+ mobile: string
+ code: string
+}
+
+// 登录
+export const login = (data: UserLoginVO) => {
+ return request.post({ url: '/system/auth/login', data })
+}
+export const loginNoCode = (data: UserLoginVO) => {
+ return request.post({ url: '/system/auth/loginNoCode', data })
+}
+// 刷新访问令牌
+export const refreshToken = () => {
+ return request.post({ url: '/system/auth/refresh-token?refreshToken=' + getRefreshToken() })
+}
+
+// 使用租户名,获得租户编号
+export const getTenantIdByName = (name: string) => {
+ return request.get({ url: '/system/tenant/get-id-by-name?name=' + name })
+}
+
+// 登出
+export const loginOut = () => {
+ return request.post({ url: '/system/auth/logout' })
+}
+
+// 获取用户权限信息
+export const getInfo = () => {
+ return request.get({ url: '/system/auth/get-permission-info' })
+}
+
+//获取登录验证码
+export const sendSmsCode = (data: SmsCodeVO) => {
+ return request.post({ url: '/system/auth/send-sms-code', data })
+}
+
+// 短信验证码登录
+export const smsLogin = (data: SmsLoginVO) => {
+ return request.post({ url: '/system/auth/sms-login', data })
+}
+
+// 社交授权的跳转
+export const socialAuthRedirect = (type: number, redirectUri: string) => {
+ return request.get({
+ url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri
+ })
+}
+// 获取验证图片以及 token
+export const getCode = (data) => {
+ return request.postOriginal({ url: 'system/captcha/get', data })
+}
+
+// 获取验证图片以及 token
+export const getCodeCaptchaImage = (params) => {
+ return request.get({ url: 'system/captcha/captchaImage', params })
+}
+
+// 滑动或者点选验证
+export const reqCheck = (data) => {
+ return request.postOriginal({ url: 'system/captcha/check', data })
+}
+
+// 获取验证码
+export const getCodeImg = () => {
+ return request.get({
+ url: 'system/captcha/captchaImage', headers: {
+ isToken: false
+ }})
+}
+// PDA下载地址
+export const downloadApk = (params) => {
+ return request.get({ url: '/wms/system-install-package/downloadApk', params })
+}
diff --git a/src/api/login/oauth2/index.ts b/src/api/login/oauth2/index.ts
new file mode 100644
index 0000000..aef1820
--- /dev/null
+++ b/src/api/login/oauth2/index.ts
@@ -0,0 +1,41 @@
+import request from '@/config/axios'
+
+// 获得授权信息
+export const getAuthorize = (clientId: string) => {
+ return request.get({ url: '/system/oauth2/authorize?clientId=' + clientId })
+}
+
+// 发起授权
+export const authorize = (
+ responseType: string,
+ clientId: string,
+ redirectUri: string,
+ state: string,
+ autoApprove: boolean,
+ checkedScopes: string[],
+ uncheckedScopes: string[]
+) => {
+ // 构建 scopes
+ const scopes = {}
+ for (const scope of checkedScopes) {
+ scopes[scope] = true
+ }
+ for (const scope of uncheckedScopes) {
+ scopes[scope] = false
+ }
+ // 发起请求
+ return request.post({
+ url: '/system/oauth2/authorize',
+ headers: {
+ 'Content-type': 'application/x-www-form-urlencoded'
+ },
+ params: {
+ response_type: responseType,
+ client_id: clientId,
+ redirect_uri: redirectUri,
+ state: state,
+ auto_approve: autoApprove,
+ scope: JSON.stringify(scopes)
+ }
+ })
+}
diff --git a/src/api/login/types.ts b/src/api/login/types.ts
new file mode 100644
index 0000000..b2173f7
--- /dev/null
+++ b/src/api/login/types.ts
@@ -0,0 +1,28 @@
+export type UserLoginVO = {
+ username: string
+ password: string
+ captchaVerification: string
+}
+
+export type TokenType = {
+ id: number // 编号
+ accessToken: string // 访问令牌
+ refreshToken: string // 刷新令牌
+ userId: number // 用户编号
+ userType: number //用户类型
+ clientId: string //客户端编号
+ expiresTime: number //过期时间
+}
+
+export type UserVO = {
+ id: number
+ username: string
+ nickname: string
+ deptId: number
+ email: string
+ mobile: string
+ sex: number
+ avatar: string
+ loginIp: string
+ loginDate: string
+}
diff --git a/src/api/mes/abilityInfo/index.ts b/src/api/mes/abilityInfo/index.ts
new file mode 100644
index 0000000..f7c2c02
--- /dev/null
+++ b/src/api/mes/abilityInfo/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface AbilityInfoVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ ablityCode: string
+ ablityName: string
+ trainMinHours: number
+ operMinHours: number
+}
+
+// 查询能力矩阵信息列表
+export const getAbilityInfoPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/ability-info/senior', data })
+ } else {
+ return await request.get({ url: `/mes/ability-info/page`, params })
+ }
+}
+
+// 查询能力矩阵信息详情
+export const getAbilityInfo = async (id: number) => {
+ return await request.get({ url: `/mes/ability-info/get?id=` + id })
+}
+
+// 新增能力矩阵信息
+export const createAbilityInfo = async (data: AbilityInfoVO) => {
+ return await request.post({ url: `/mes/ability-info/create`, data })
+}
+
+// 修改能力矩阵信息
+export const updateAbilityInfo = async (data: AbilityInfoVO) => {
+ return await request.put({ url: `/mes/ability-info/update`, data })
+}
+
+// 删除能力矩阵信息
+export const deleteAbilityInfo = async (id: number) => {
+ return await request.delete({ url: `/mes/ability-info/delete?id=` + id })
+}
+
+// 导出能力矩阵信息 Excel
+export const exportAbilityInfo = async (params) => {
+ return await request.download({ url: `/mes/ability-info/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/ability-info/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/dismantlingDetail/index.ts b/src/api/mes/dismantlingDetail/index.ts
new file mode 100644
index 0000000..e9baec0
--- /dev/null
+++ b/src/api/mes/dismantlingDetail/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface DismantlingDetailVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ mainBiilno: string
+ materialCode: string
+ materialStauts: string
+ materialProcessstauts: string
+}
+
+// 查询报废拆解明细列表
+export const getDismantlingDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/dismantling-detail/senior', data })
+ } else {
+ return await request.get({ url: `/mes/dismantling-detail/page`, params })
+ }
+}
+
+// 查询报废拆解明细详情
+export const getDismantlingDetail = async (id: number) => {
+ return await request.get({ url: `/mes/dismantling-detail/get?id=` + id })
+}
+
+// 新增报废拆解明细
+export const createDismantlingDetail = async (data: DismantlingDetailVO) => {
+ return await request.post({ url: `/mes/dismantling-detail/create`, data })
+}
+
+// 修改报废拆解明细
+export const updateDismantlingDetail = async (data: DismantlingDetailVO) => {
+ return await request.put({ url: `/mes/dismantling-detail/update`, data })
+}
+
+// 删除报废拆解明细
+export const deleteDismantlingDetail = async (id: number) => {
+ return await request.delete({ url: `/mes/dismantling-detail/delete?id=` + id })
+}
+
+// 导出报废拆解明细 Excel
+export const exportDismantlingDetail = async (params) => {
+ return await request.download({ url: `/mes/dismantling-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/dismantling-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/dismantlingMain/index.ts b/src/api/mes/dismantlingMain/index.ts
new file mode 100644
index 0000000..67bb422
--- /dev/null
+++ b/src/api/mes/dismantlingMain/index.ts
@@ -0,0 +1,55 @@
+import request from '@/config/axios'
+
+export interface DismantlingMainVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ dismantlingBillno: string
+ productionCode: string
+ workbillType: string
+}
+
+// 查询报废拆解登记主列表
+export const getDismantlingMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/dismantling-main/senior', data })
+ } else {
+ return await request.get({ url: `/mes/dismantling-main/page`, params })
+ }
+}
+
+// 查询报废拆解登记主详情
+export const getDismantlingMain = async (id: number) => {
+ return await request.get({ url: `/mes/dismantling-main/get?id=` + id })
+}
+
+// 新增报废拆解登记主
+export const createDismantlingMain = async (data: DismantlingMainVO) => {
+ return await request.post({ url: `/mes/dismantling-main/create`, data })
+}
+
+// 修改报废拆解登记主
+export const updateDismantlingMain = async (data: DismantlingMainVO) => {
+ return await request.put({ url: `/mes/dismantling-main/update`, data })
+}
+
+// 删除报废拆解登记主
+export const deleteDismantlingMain = async (id: number) => {
+ return await request.delete({ url: `/mes/dismantling-main/delete?id=` + id })
+}
+
+// 导出报废拆解登记主 Excel
+export const exportDismantlingMain = async (params) => {
+ return await request.download({ url: `/mes/dismantling-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/dismantling-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/holiday/index.ts b/src/api/mes/holiday/index.ts
new file mode 100644
index 0000000..546a0ee
--- /dev/null
+++ b/src/api/mes/holiday/index.ts
@@ -0,0 +1,53 @@
+import request from '@/config/axios'
+
+export interface HolidayVO {
+ id: number
+ status: string
+ remark: string
+ holidayYear: string
+ holidayType: string
+ keyDate: string
+ holidayName: string
+ holidayDate: Date
+}
+
+// 查询节假日设置列表
+export const getHolidayPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/holiday/senior', data })
+ } else {
+ return await request.get({ url: `/mes/holiday/page`, params })
+ }
+}
+
+// 查询节假日设置详情
+export const getHoliday = async (id: number) => {
+ return await request.get({ url: `/mes/holiday/get?id=` + id })
+}
+
+// 新增节假日设置
+export const createHoliday = async (data: HolidayVO) => {
+ return await request.post({ url: `/mes/holiday/create`, data })
+}
+
+// 修改节假日设置
+export const updateHoliday = async (data: HolidayVO) => {
+ return await request.put({ url: `/mes/holiday/update`, data })
+}
+
+// 删除节假日设置
+export const deleteHoliday = async (id: number) => {
+ return await request.delete({ url: `/mes/holiday/delete?id=` + id })
+}
+
+// 导出节假日设置 Excel
+export const exportHoliday = async (params) => {
+ return await request.download({ url: `/mes/holiday/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/holiday/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/holidayCalendar/index.ts b/src/api/mes/holidayCalendar/index.ts
new file mode 100644
index 0000000..8bd1e08
--- /dev/null
+++ b/src/api/mes/holidayCalendar/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface HolidayCalendarVO {
+ id: number
+ holidayDate: Date
+ endTime: Date
+ textOne: string
+ textTwo: string
+ textThree: string
+ textFour: string
+ textFive: string
+ deleteTime: Date
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+}
+
+// 查询节假日设置日历列表
+export const getHolidayCalendarPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/holidayCalendar/senior', data })
+ } else {
+ return await request.get({ url: `/mes/holidayCalendar/page`, params })
+ }
+}
+
+// 查询节假日设置日历详情
+export const getHolidayCalendar = async (id: number) => {
+ return await request.get({ url: `/mes/holidayCalendar/get?id=` + id })
+}
+
+// 新增节假日设置日历
+export const createHolidayCalendar = async (data: HolidayCalendarVO) => {
+ return await request.post({ url: `/mes/holidayCalendar/create`, data })
+}
+
+// 修改节假日设置日历
+export const updateHolidayCalendar = async (data: HolidayCalendarVO) => {
+ return await request.put({ url: `/mes/holidayCalendar/update`, data })
+}
+
+// 删除节假日设置日历
+export const deleteHolidayCalendar = async (id: number) => {
+ return await request.delete({ url: `/mes/holidayCalendar/delete?id=` + id })
+}
+
+// 导出节假日设置日历 Excel
+export const exportHolidayCalendar = async (params) => {
+ return await request.download({ url: `/mes/holidayCalendar/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/holidayCalendar/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/hrPersonAbility/index.ts b/src/api/mes/hrPersonAbility/index.ts
new file mode 100644
index 0000000..f076d1a
--- /dev/null
+++ b/src/api/mes/hrPersonAbility/index.ts
@@ -0,0 +1,58 @@
+import request from '@/config/axios'
+
+export interface HrPersonAbilityVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ personId: number
+ personCode: string
+ ablityCode: string
+ ablityLevel: number
+ studyDuration: number
+ workDuration: number
+}
+
+// 查询人员能力矩阵配置列表
+export const getHrPersonAbilityPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/hr-person-ability/senior', data })
+ } else {
+ return await request.get({ url: `/mes/hr-person-ability/page`, params })
+ }
+}
+
+// 查询人员能力矩阵配置详情
+export const getHrPersonAbility = async (id: number) => {
+ return await request.get({ url: `/mes/hr-person-ability/get?id=` + id })
+}
+
+// 新增人员能力矩阵配置
+export const createHrPersonAbility = async (data: HrPersonAbilityVO) => {
+ return await request.post({ url: `/mes/hr-person-ability/create`, data })
+}
+
+// 修改人员能力矩阵配置
+export const updateHrPersonAbility = async (data: HrPersonAbilityVO) => {
+ return await request.put({ url: `/mes/hr-person-ability/update`, data })
+}
+
+// 删除人员能力矩阵配置
+export const deleteHrPersonAbility = async (id: number) => {
+ return await request.delete({ url: `/mes/hr-person-ability/delete?id=` + id })
+}
+
+// 导出人员能力矩阵配置 Excel
+export const exportHrPersonAbility = async (params) => {
+ return await request.download({ url: `/mes/hr-person-ability/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/hr-person-ability/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/item/index.ts b/src/api/mes/item/index.ts
new file mode 100644
index 0000000..f915865
--- /dev/null
+++ b/src/api/mes/item/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface ItemVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ itemCode: string
+ itemName: string
+ itemType: string
+ qmsClass: string
+ dataType: string
+ dataVerify: string
+ dataStandvalue: string
+ dataDescripe: string
+}
+
+// 查询质检项目定义列表
+export const getItemPage = async (params) => {
+ console.log(params);
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/item/senior', data })
+ } else {
+ return await request.get({ url: `/mes/item/page`, params })
+ }
+}
+
+// 查询质检项目定义详情
+export const getItem = async (id: number) => {
+ return await request.get({ url: `/mes/item/get?id=` + id })
+}
+
+// 新增质检项目定义
+export const createItem = async (data: ItemVO) => {
+ return await request.post({ url: `/mes/item/create`, data })
+}
+
+// 修改质检项目定义
+export const updateItem = async (data: ItemVO) => {
+ return await request.put({ url: `/mes/item/update`, data })
+}
+
+// 删除质检项目定义
+export const deleteItem = async (id: number) => {
+ return await request.delete({ url: `/mes/item/delete?id=` + id })
+}
+
+// 导出质检项目定义 Excel
+export const exportItem = async (params) => {
+ return await request.download({ url: `/mes/item/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/item/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/itemRequestDetail/index.ts b/src/api/mes/itemRequestDetail/index.ts
new file mode 100644
index 0000000..dd253bc
--- /dev/null
+++ b/src/api/mes/itemRequestDetail/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface ItemRequestDetailVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ requestBillNo: string
+ itemBasicCode: string
+ itemCounts: number
+ itemUom: string
+ siteId: number
+}
+
+// 查询叫料申请明细列表
+export const getItemRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/item-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/mes/item-request-detail/page`, params })
+ }
+}
+
+// 查询叫料申请明细详情
+export const getItemRequestDetail = async (id: number) => {
+ return await request.get({ url: `/mes/item-request-detail/get?id=` + id })
+}
+
+// 新增叫料申请明细
+export const createItemRequestDetail = async (data: ItemRequestDetailVO) => {
+ return await request.post({ url: `/mes/item-request-detail/create`, data })
+}
+
+// 修改叫料申请明细
+export const updateItemRequestDetail = async (data: ItemRequestDetailVO) => {
+ return await request.put({ url: `/mes/item-request-detail/update`, data })
+}
+
+// 删除叫料申请明细
+export const deleteItemRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/mes/item-request-detail/delete?id=` + id })
+}
+
+// 导出叫料申请明细 Excel
+export const exportItemRequestDetail = async (params) => {
+ return await request.download({ url: `/mes/item-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/item-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/itemRequestMain/index.ts b/src/api/mes/itemRequestMain/index.ts
new file mode 100644
index 0000000..9cc8e20
--- /dev/null
+++ b/src/api/mes/itemRequestMain/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface ItemRequestMainVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ planDayCode: string
+ workBillNo: string
+ batchCode: string
+ requestBillNo: string
+ workstationCode: string
+ productCode: string
+ processCode: string
+ requestType: string
+}
+
+// 查询叫料申请单主列表
+export const getItemRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/item-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/mes/item-request-main/page`, params })
+ }
+}
+
+// 查询叫料申请单主详情
+export const getItemRequestMain = async (id: number) => {
+ return await request.get({ url: `/mes/item-request-main/get?id=` + id })
+}
+
+// 新增叫料申请单主
+export const createItemRequestMain = async (data: ItemRequestMainVO) => {
+ return await request.post({ url: `/mes/item-request-main/create`, data })
+}
+
+// 修改叫料申请单主
+export const updateItemRequestMain = async (data: ItemRequestMainVO) => {
+ return await request.put({ url: `/mes/item-request-main/update`, data })
+}
+
+// 删除叫料申请单主
+export const deleteItemRequestMain = async (id: number) => {
+ return await request.delete({ url: `/mes/item-request-main/delete?id=` + id })
+}
+
+// 导出叫料申请单主 Excel
+export const exportItemRequestMain = async (params) => {
+ return await request.download({ url: `/mes/item-request-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/item-request-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/opersteps/index.ts b/src/api/mes/opersteps/index.ts
new file mode 100644
index 0000000..a4e8b65
--- /dev/null
+++ b/src/api/mes/opersteps/index.ts
@@ -0,0 +1,55 @@
+import request from '@/config/axios'
+
+export interface OperstepsVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ stepsCode: string
+ stepsName: string
+ collectCode: string
+}
+
+// 查询MES操作步骤信息列表
+export const getOperstepsPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/opersteps/senior', data })
+ } else {
+ return await request.get({ url: `/mes/opersteps/page`, params })
+ }
+}
+
+// 查询MES操作步骤信息详情
+export const getOpersteps = async (id: number) => {
+ return await request.get({ url: `/mes/opersteps/get?id=` + id })
+}
+
+// 新增MES操作步骤信息
+export const createOpersteps = async (data: OperstepsVO) => {
+ return await request.post({ url: `/mes/opersteps/create`, data })
+}
+
+// 修改MES操作步骤信息
+export const updateOpersteps = async (data: OperstepsVO) => {
+ return await request.put({ url: `/mes/opersteps/update`, data })
+}
+
+// 删除MES操作步骤信息
+export const deleteOpersteps = async (id: number) => {
+ return await request.delete({ url: `/mes/opersteps/delete?id=` + id })
+}
+
+// 导出MES操作步骤信息 Excel
+export const exportOpersteps = async (params) => {
+ return await request.download({ url: `/mes/opersteps/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/opersteps/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/operstepsType/index.ts b/src/api/mes/operstepsType/index.ts
new file mode 100644
index 0000000..0519078
--- /dev/null
+++ b/src/api/mes/operstepsType/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface OperstepsTypeVO {
+ collectCode: string
+ collectName: string
+ collectType: string
+ adpaterClass: string
+ argLsit: string
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+}
+
+// 查询操作步骤类型配置列表
+export const getOperstepsTypePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/opersteps-type/senior', data })
+ } else {
+ return await request.get({ url: `/mes/opersteps-type/page`, params })
+ }
+}
+
+// 查询操作步骤类型配置详情
+export const getOperstepsType = async (id: number) => {
+ return await request.get({ url: `/mes/opersteps-type/get?id=` + id })
+}
+
+// 新增操作步骤类型配置
+export const createOperstepsType = async (data: OperstepsTypeVO) => {
+ return await request.post({ url: `/mes/opersteps-type/create`, data })
+}
+
+// 修改操作步骤类型配置
+export const updateOperstepsType = async (data: OperstepsTypeVO) => {
+ return await request.put({ url: `/mes/opersteps-type/update`, data })
+}
+
+// 删除操作步骤类型配置
+export const deleteOperstepsType = async (id: number) => {
+ return await request.delete({ url: `/mes/opersteps-type/delete?id=` + id })
+}
+
+// 导出操作步骤类型配置 Excel
+export const exportOperstepsType = async (params) => {
+ return await request.download({ url: `/mes/opersteps-type/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/opersteps-type/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/orderDay/index.ts b/src/api/mes/orderDay/index.ts
new file mode 100644
index 0000000..89fafea
--- /dev/null
+++ b/src/api/mes/orderDay/index.ts
@@ -0,0 +1,108 @@
+import request from '@/config/axios'
+
+export interface OrderDayVO {
+ status: string
+ remark: string
+ planNoMonth: string
+ planNoDay: string
+ productCode: string
+ workroomCode: string
+ lineCode: string
+ planCount: number
+ processrouteCode: string
+ tempProcessroute: string
+ standardBom: string
+ tempBom: string
+ workMode: string
+ planDate: Date
+ startTime: Date
+ endTime: Date
+ taskMode: string
+ batchCode:string
+}
+
+// 查询生产日计划列表
+export const getOrderDayPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/orderday/senior', data })
+ } else {
+ return await request.get({ url: `/mes/orderday/page`, params })
+ }
+}
+
+// 查询生产日计划详情
+export const getOrderDay = async (id: number) => {
+ return await request.get({ url: `/mes/orderday/get?id=` + id })
+}
+
+// 新增生产日计划
+export const createOrderDay = async (data: OrderDayVO) => {
+ return await request.post({ url: `/mes/orderday/create`, data })
+}
+
+// 修改生产日计划
+export const updateOrderDay = async (data: OrderDayVO) => {
+ return await request.put({ url: `/mes/orderday/update`, data })
+}
+
+// 删除生产日计划
+export const deleteOrderDay = async (id: number) => {
+ return await request.delete({ url: `/mes/orderday/delete?id=` + id })
+}
+
+// 导出生产日计划 Excel
+export const exportOrderDay = async (params) => {
+ return await request.download({ url: `/mes/orderday/export-excel`, params })
+}
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/orderday/get-import-template' })
+}
+// 根据产品编码获取Bom
+export const getBoms = async (code: String) => {
+ return request.get({ url: '/mes/common/geBomByProductCode?code='+code })
+}
+// 根据产品编码获取工艺路线
+export const getProcessroutes = async (code: String) => {
+ return request.get({ url: '/mes/common/getProcessRouteByProductCode?code='+code })
+}
+// 根据车间编码获取产线列表
+export const getProductlines = async (code: String) => {
+ return request.get({ url: '/mes/common/getLinesByWorkRoomCode?code='+code })
+}
+// 获取产线信息
+export const getProductlineInfo = async (code: String) => {
+ return request.get({ url: '/mes/common/getLinesByWorkRoomCode?code='+code })
+}
+// 根据工艺路线的工序信息
+export const getProcessroutesDetail = async (code) => {
+ return await request.get({ url: `/mes/orderday/getProcessInfo?code=`+ code })
+}
+// 根据获取计划BOM信息
+export const getPlanBom = async (params) => {
+ return await request.get({ url: `/mes/orderday/getBomInfo`,params })
+}
+
+// 根据获取计划BOM信息
+export const getBomInfoTree = async (params) => {
+ return await request.get({ url: `/mes/orderday/getBomInfoTree`,params })
+}
+// 根据计划的车间、产线、计划时间 查询已经配置的人员
+export const getPlanWorks = async (params) => {
+ return await request.get({ url: `/mes/orderday/getWorkGroup`,params })
+}
+// 根据车间、产线 查询已配置的设备
+export const getPlanDevices = async (params) => {
+ return await request.get({ url: `/mes/orderday/getDeviceInfo`,params })
+}
+
+///发布计划
+export const publishPlan = async (data: OrderDayVO) => {
+ return await request.postOriginal({ url: `/mes/orderday/publishPlan`,data })
+}
+//终止计划
+export const stopPlan = async (id) => {
+ return await request.post({ url: `/mes/orderday/stopPlan/`+id })
+}
diff --git a/src/api/mes/orderDayConfig/index.ts b/src/api/mes/orderDayConfig/index.ts
new file mode 100644
index 0000000..f1f5749
--- /dev/null
+++ b/src/api/mes/orderDayConfig/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+export interface OrderDayQueryParamVo {
+ planNoDay:String
+ productCode:String
+ workroomCode:String
+ lineCode:String
+ processrouteCode:String
+ batchCode:String
+ processCode:String
+}
+
+
+// 查询生产配置工艺路线
+export const getConfigProcessRoute = async (params) => {
+ return await request.get({ url: `/mes/orderDayRoute/getByOrder`, params })
+}
+// 查询已经配置的工序
+export const getConfigProcessRouteNode = async (params) => {
+ return await request.get({ url: `/mes/orderDayRoutesub/getByOrder`, params })
+}
+// 查询生产配置工序BOM
+export const getOrderDayBomByOrder = async (params) => {
+ return await request.get({ url: `/mes/orderDayBom/getByOrder`, params })
+}
+
+// 查询已经配置工序工位
+export const getConfigProcessWorkstation = async (params) => {
+ return await request.get({ url: `/mes/orderDayWorkstation/getByOrder`, params })
+}
+// 查询已经配置工序人员
+export const getConfigProcessWorker = async (params) => {
+ return await request.get({ url: `/mes/orderDayWorker/getByOrder`, params })
+}
+// 查询已经的工序工位设备
+export const getConfigProcessEquipment = async (params) => {
+ return await request.get({ url: `/mes/orderDayequipment/getByOrder`, params })
+}
+
+/*批量保存工序人员配置*/
+export const saveWorker = async (data: any) => {
+ return await request.post({ url: `/mes/orderDayWorker/batchCreate`, data })
+}
+
+// 查询设备基本信息列表
+export const getDeviceInfoPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/device-info/senior', data })
+ } else {
+ return await request.get({ url: `/mes/device-info/page`, params })
+ }
+}
+/*批量保存工序模具配置*/
+export const saveEquipment = async (data: any) => {
+ return await request.post({ url: `/mes/orderDayequipment/batchCreate`, data })
+}
diff --git a/src/api/mes/ordermonthplan/index.ts b/src/api/mes/ordermonthplan/index.ts
new file mode 100644
index 0000000..b2b77a7
--- /dev/null
+++ b/src/api/mes/ordermonthplan/index.ts
@@ -0,0 +1,118 @@
+import request from '@/config/axios'
+
+export interface MesOrderMonthMainVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ sourceType: string
+ planMasterCode: string
+ planSubCode: string
+ planType: string
+ checker: string
+ checkDate: string
+ factoryCode: string
+ factoryName: string
+}
+
+// 查询订单计划月主列表
+export const getMesOrderMonthMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/plan/mes-order-month-main/senior', data })
+ } else {
+ return await request.get({ url: `/plan/mes-order-month-main/page`, params })
+ }
+}
+
+// 查询订单计划月主详情
+export const getMesOrderMonthMain = async (id: number) => {
+ return await request.get({ url: `/plan/mes-order-month-main/get?id=` + id })
+}
+
+// 新增订单计划月主
+export const createMesOrderMonthMain = async (data: MesOrderMonthMainVO) => {
+ return await request.post({ url: `/plan/mes-order-month-main/create`, data })
+}
+
+// 修改订单计划月主
+export const updateMesOrderMonthMain = async (data: MesOrderMonthMainVO) => {
+ return await request.put({ url: `/plan/mes-order-month-main/update`, data })
+}
+
+// 删除订单计划月主
+export const deleteMesOrderMonthMain = async (id: number) => {
+ return await request.delete({ url: `/plan/mes-order-month-main/delete?id=` + id })
+}
+
+// 导出订单计划月主 Excel
+export const exportMesOrderMonthMain = async (params) => {
+ return await request.download({ url: `/plan/mes-order-month-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/plan/mes-order-month-main/get-import-template' })
+}
+
+export interface MesOrderMonthSubVO {
+ status: string
+ remark: string
+ productCode: string
+ productName: string
+ bomCode: string
+ bomVersion: string
+ inStoreCode: string
+ planBegin: Date
+ planEnd: Date
+ realStart: string
+ realFinish: Date
+ planCount: number
+ finishCount: number
+ qualifiedCount: number
+ unqualifiedCount: number
+ flagBackwash: string
+ productBatchcode: string
+}
+// 查询订单月计划子列表
+export const getMesOrderMonthSubPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/plan/mes-order-month-sub/senior', data })
+ } else {
+ return await request.get({ url: `/plan/mes-order-month-sub/page`, params })
+ }
+}
+
+// 查询订单月计划子详情
+export const getMesOrderMonthSub = async (id: number) => {
+ return await request.get({ url: `/plan/mes-order-month-sub/get?id=` + id })
+}
+
+// 新增订单月计划子
+export const createMesOrderMonthSub = async (data: MesOrderMonthSubVO) => {
+ return await request.post({ url: `/plan/mes-order-month-sub/create`, data })
+}
+
+// 修改订单月计划子
+export const updateMesOrderMonthSub = async (data: MesOrderMonthSubVO) => {
+ return await request.put({ url: `/plan/mes-order-month-sub/update`, data })
+}
+
+// 删除订单月计划子
+export const deleteMesOrderMonthSub = async (id: number) => {
+ return await request.delete({ url: `/plan/mes-order-month-sub/delete?id=` + id })
+}
+export interface MesOrderMonthSubBreakdownReqVO{
+ planMasterId: string
+ id: number
+}
+// 拆解为日计划
+export const breakdown = async (data: MesOrderMonthSubBreakdownReqVO) => {
+ return await request.post({ url: `/plan/mes-order-month-sub/breakdown`,data})
+}
diff --git a/src/api/mes/pattern/index.ts b/src/api/mes/pattern/index.ts
new file mode 100644
index 0000000..2ee8068
--- /dev/null
+++ b/src/api/mes/pattern/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface PatternVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ code: string
+ name: string
+ partternName: string
+ productCode: string
+ dateUseStart: Date
+ dateUseStop: Date
+ partternFrom: string
+ partternGo: string
+ initCout: number
+ effectStart: Date
+ effectEnd: Date
+ factoryCode: string
+ factoryName: string
+ factoryType: string
+}
+
+// 查询模具基本信息列表
+export const getPatternPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/pattern/senior', data })
+ } else {
+ return await request.get({ url: `/mes/pattern/page`, params })
+ }
+}
+
+// 查询模具基本信息详情
+export const getPattern = async (id: number) => {
+ return await request.get({ url: `/mes/pattern/get?id=` + id })
+}
+
+// 新增模具基本信息
+export const createPattern = async (data: PatternVO) => {
+ return await request.post({ url: `/mes/pattern/create`, data })
+}
+
+// 修改模具基本信息
+export const updatePattern = async (data: PatternVO) => {
+ return await request.put({ url: `/mes/pattern/update`, data })
+}
+
+// 删除模具基本信息
+export const deletePattern = async (id: number) => {
+ return await request.delete({ url: `/mes/pattern/delete?id=` + id })
+}
+
+// 导出模具基本信息 Excel
+export const exportPattern = async (params) => {
+ return await request.download({ url: `/mes/pattern/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/pattern/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/patternType/index.ts b/src/api/mes/patternType/index.ts
new file mode 100644
index 0000000..f4bf226
--- /dev/null
+++ b/src/api/mes/patternType/index.ts
@@ -0,0 +1,54 @@
+import request from '@/config/axios'
+
+export interface PatternTypeVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ code: string
+ name: string
+}
+
+// 查询模具类型列表
+export const getPatternTypePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/pattern-type/senior', data })
+ } else {
+ return await request.get({ url: `/mes/pattern-type/page`, params })
+ }
+}
+
+// 查询模具类型详情
+export const getPatternType = async (id: number) => {
+ return await request.get({ url: `/mes/pattern-type/get?id=` + id })
+}
+
+// 新增模具类型
+export const createPatternType = async (data: PatternTypeVO) => {
+ return await request.post({ url: `/mes/pattern-type/create`, data })
+}
+
+// 修改模具类型
+export const updatePatternType = async (data: PatternTypeVO) => {
+ return await request.put({ url: `/mes/pattern-type/update`, data })
+}
+
+// 删除模具类型
+export const deletePatternType = async (id: number) => {
+ return await request.delete({ url: `/mes/pattern-type/delete?id=` + id })
+}
+
+// 导出模具类型 Excel
+export const exportPatternType = async (params) => {
+ return await request.download({ url: `/mes/pattern-type/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/pattern-type/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/process/index.ts b/src/api/mes/process/index.ts
new file mode 100644
index 0000000..0adec9e
--- /dev/null
+++ b/src/api/mes/process/index.ts
@@ -0,0 +1,158 @@
+import request from '@/config/axios'
+
+export interface ProcessVO {
+ code: string
+ name: string
+ description: string
+ type: string
+ workshopCode: string
+ productionLineCode: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+export const goalParams = {
+ processCode:null
+}
+// 查询工序列表
+export const getProcessPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/mes/process/senior', data })
+ } else {
+ return await request.get({ url: `/mes/process/page`, params })
+ }
+}
+
+// 查询工序详情
+export const getProcess = async (id: number) => {
+ return await request.get({ url: `/mes/process/get?id=` + id })
+}
+
+// 新增工序
+export const createProcess: (data: ProcessVO) => Promise = async (data: ProcessVO) => {
+ return await request.post({ url: `/mes/process/create`, data })
+}
+
+// 修改工序
+export const updateProcess = async (data: ProcessVO) => {
+ return await request.put({ url: `/mes/process/update`, data })
+}
+
+// 删除工序
+export const deleteProcess: (id: number) => Promise = async (id: number) => {
+ return await request.delete({ url: `/mes/process/delete?id=` + id })
+}
+
+// 导出工序 Excel
+export const exportProcess = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/mes/process/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/mes/process/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/process/get-import-template' })
+}
+
+
+// 查询模具基本信息列表
+export const getPatternPage = async (params) => {
+ params.processCode = goalParams.processCode
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/mes/mes-process-pattern/senior', data })
+ } else {
+ return await request.get({ url: `/mes/mes-process-pattern/pagePatternByProcessCode`, params })
+ }
+}
+
+//创建工序模具关联
+export const createPatternRelation = async (Codes:string[]) => {
+ const data = {
+ processCode : goalParams.processCode,
+ listPatternCode : Codes
+ }
+ return await request.post({ url: `/mes/mes-process-pattern/createRelation`, data })
+}
+
+//删除工序模具关联
+export const deletePatternRelation = async (Codes:string[]) => {
+ const data = {
+ processCode : goalParams.processCode,
+ listPatternCode : Codes
+ }
+ return await request.post({ url: `/mes/mes-process-pattern/deleteRelation`, data })
+}
+
+
+
+// 查询产线列表
+export const getProductionlinePage = async (params) => {
+ params.processCode = goalParams.processCode
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/mes/mes-process-productionline/senior', data })
+ } else {
+ return await request.get({ url: `/mes/mes-process-productionline/pageByProcessCode`, params })
+ }
+}
+
+//创建工序产线关联
+export const createProductionlineRelation = async (Codes:string[]) => {
+ const data = {
+ processCode : goalParams.processCode,
+ listProductionlineCode : Codes
+ }
+ return await request.post({ url: `/mes/mes-process-productionline/createRelation`, data })
+}
+
+//删除工序产线关联
+export const deleteProductionlineRelation = async (Codes:string[]) => {
+ const data = {
+ processCode : goalParams.processCode,
+ listProductionlineCode : Codes
+ }
+ return await request.post({ url: `/mes/mes-process-productionline/deleteRelation`, data })
+}
+
+
+
+// 查询物料列表
+export const getItembasicPage = async (params) => {
+ params.processCode = goalParams.processCode
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/mes/mes-process-itembasic/senior', data })
+ } else {
+ return await request.get({ url: `/mes/mes-process-itembasic/pageByProcessCode`, params })
+ }
+}
+
+//创建工序物料关联
+export const createItembasicRelation = async (Codes:string[]) => {
+ const data = {
+ processCode : goalParams.processCode,
+ listItembasicCode : Codes
+ }
+ return await request.post({ url: `/mes/mes-process-itembasic/createRelation`, data })
+}
+
+//删除工序物料关联
+export const deleteItembasicRelation = async (Codes:string[]) => {
+ const data = {
+ processCode : goalParams.processCode,
+ listItembasicCode : Codes
+ }
+ return await request.post({ url: `/mes/mes-process-itembasic/deleteRelation`, data })
+}
diff --git a/src/api/mes/processroute/index.ts b/src/api/mes/processroute/index.ts
new file mode 100644
index 0000000..f6f5f17
--- /dev/null
+++ b/src/api/mes/processroute/index.ts
@@ -0,0 +1,97 @@
+import request from '@/config/axios'
+
+export interface ProcessrouteVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ processrouteCode: string
+ processName: string
+ productCode: string
+ routeVersion: number
+
+}
+
+
+// 查询工艺路线定义列表
+export const getProcessroutePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/processroute/senior', data })
+ } else {
+ return await request.get({ url: `/mes/processroute/page`, params })
+ }
+}
+
+// 查询工艺路线定义详情
+export const getProcessroute = async (id: number) => {
+ return await request.get({ url: `/mes/processroute/get?id=` + id })
+}
+// 查询工艺路线定义的工序列表
+export const getProcessrouteNodeList = async (code:any) => {
+ return await request.get({ url: `/mes/processrouteNodeDetail/getRouteNodes?code=`+code })
+}
+
+
+// 新增工艺路线定义
+export const createProcessroute = async (data: ProcessrouteVO) => {
+ return await request.post({ url: `/mes/processroute/create`, data })
+}
+//提交图形数据
+// 新增工艺路线定义
+export const saveGraphData = async (data: any) => {
+ return await request.post({ url: `/mes/processroute/updategraph`, data })
+}
+// 修改工艺路线定义
+export const updateProcessroute = async (data: ProcessrouteVO) => {
+ return await request.put({ url: `/mes/processroute/update`, data })
+}
+
+// 删除工艺路线定义
+export const deleteProcessroute = async (id: number) => {
+ return await request.delete({ url: `/mes/processroute/delete?id=` + id })
+}
+
+// 导出工艺路线定义 Excel
+export const exportProcessroute = async (params) => {
+ return await request.download({ url: `/mes/processroute/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/processroute/get-import-template' })
+}
+// 获取工序工序列表-
+export const getProcessList =async (params) => {
+ return await request.get({ url: `/mes/process/page`, params })
+}
+// 获取工序工序信息-
+export const getProcesInfo = async(code:String) => {
+ return await request.get({ url: `/mes/process/getByCode?code=`+code })
+}
+// 获取产品信息列表-
+export const getProductInfo =async (code:String) => {
+ return await request.get({ url: `/wms/itembasic/getProduct?code=`+code})
+}
+
+// 查询模具基本信息列表
+export const getPatternPage = async (code:String) => {
+ return await request.get({ url: `/mes/mes-process-pattern/pagePatternByProcessCode?pageSize=25&processCode=`+code })
+}
+
+// 查询产品物料列表
+export const getProcessBomList = async (params) => {
+ return await request.get({ url: `/mes/common/getBomListByProductAndProcess`,params})
+}
+
+// 查询产品bom的工序物料列表
+export const getBomListByProductBomAndProcess = async (params) => {
+ return await request.get({ url: `/mes/common/getBomListByProductBomAndProcess`,params})
+}
+
+export const getWorkstationPage = async (code:String) => {
+ return await request.get({ url: `/mes/workstation/page?pageSize=25&processCode=`+code})
+}
diff --git a/src/api/mes/productBackline/index.ts b/src/api/mes/productBackline/index.ts
new file mode 100644
index 0000000..c1403fc
--- /dev/null
+++ b/src/api/mes/productBackline/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface ProductBacklineVO {
+ offlineCode: string
+ productCode: string
+ workBillno: string
+ processCode: string
+ operCode: string
+ backlineBillno: string
+ planCode: string
+ deleteTime: Date
+ id: number
+ status: string
+ remark: string
+ deleter: string
+ siteId: number
+ workstationCode: string
+}
+
+// 查询产品返线登记列表
+export const getProductBacklinePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/product-backline/senior', data })
+ } else {
+ return await request.get({ url: `/mes/product-backline/page`, params })
+ }
+}
+
+// 查询产品返线登记详情
+export const getProductBackline = async (id: number) => {
+ return await request.get({ url: `/mes/product-backline/get?id=` + id })
+}
+
+// 新增产品返线登记
+export const createProductBackline = async (data: ProductBacklineVO) => {
+ return await request.post({ url: `/mes/product-backline/create`, data })
+}
+
+// 修改产品返线登记
+export const updateProductBackline = async (data: ProductBacklineVO) => {
+ return await request.put({ url: `/mes/product-backline/update`, data })
+}
+
+// 删除产品返线登记
+export const deleteProductBackline = async (id: number) => {
+ return await request.delete({ url: `/mes/product-backline/delete?id=` + id })
+}
+
+// 导出产品返线登记 Excel
+export const exportProductBackline = async (params) => {
+ return await request.download({ url: `/mes/product-backline/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/product-backline/get-import-template' })
+}
diff --git a/src/api/mes/productOffline/index.ts b/src/api/mes/productOffline/index.ts
new file mode 100644
index 0000000..8d504ad
--- /dev/null
+++ b/src/api/mes/productOffline/index.ts
@@ -0,0 +1,71 @@
+import request from '@/config/axios'
+
+export interface ProductOfflineVO {
+ offlineCode: string
+ workBillno: string
+ planCode: string
+ productCode: string
+ offlineReson: string
+ productDestination: string
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ processCode: string
+ stationCode: string
+ checkPersonCode: string
+}
+
+// 查询产品离线登记记录列表
+export const getProductOfflinePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/product-offline/senior', data })
+ } else {
+ return await request.get({ url: `/mes/product-offline/page`, params })
+ }
+}
+
+// 查询产品离线登记记录详情
+export const getProductOffline = async (id: number) => {
+ return await request.get({ url: `/mes/product-offline/get?id=` + id })
+}
+
+// 新增产品离线登记记录
+export const createProductOffline = async (data: ProductOfflineVO) => {
+ return await request.post({ url: `/mes/product-offline/create`, data })
+}
+
+// 修改产品离线登记记录
+export const updateProductOffline = async (data: ProductOfflineVO) => {
+ return await request.put({ url: `/mes/product-offline/update`, data })
+}
+
+// 删除产品离线登记记录
+export const deleteProductOffline = async (id: number) => {
+ return await request.delete({ url: `/mes/product-offline/delete?id=` + id })
+}
+
+// 导出产品离线登记记录 Excel
+export const exportProductOffline = async (params) => {
+ return await request.download({ url: `/mes/product-offline/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/product-offline/get-import-template' })
+}
+
+export const getworkSchedulingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/workScheduling/senior', data })
+ } else {
+ return await request.get({ url: `/mes/workScheduling/page`, params })
+ }
+}
diff --git a/src/api/mes/productionPlan/index.ts b/src/api/mes/productionPlan/index.ts
new file mode 100644
index 0000000..de60663
--- /dev/null
+++ b/src/api/mes/productionPlan/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface ProductionPlanVO {
+ id: number
+ planCode: string
+ planName: string
+ teamType: string
+ endTime: Date
+ shiftMode: string
+ billState: number
+ deleteTime: Date
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ textOne: string
+ textTwo: string
+ textThree: string
+}
+
+// 查询生产排产计划列表
+export const getProductionPlanPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/productionPlan/senior', data })
+ } else {
+ return await request.get({ url: `/mes/productionPlan/page`, params })
+ }
+}
+
+// 查询生产排产计划详情
+export const getProductionPlan = async (id: number) => {
+ return await request.get({ url: `/mes/productionPlan/get?id=` + id })
+}
+
+// 新增生产排产计划
+export const createProductionPlan = async (data: ProductionPlanVO) => {
+ return await request.post({ url: `/mes/productionPlan/create`, data })
+}
+
+// 修改生产排产计划
+export const updateProductionPlan = async (data: ProductionPlanVO) => {
+ return await request.put({ url: `/mes/productionPlan/update`, data })
+}
+
+// 删除生产排产计划
+export const deleteProductionPlan = async (id: number) => {
+ return await request.delete({ url: `/mes/productionPlan/delete?id=` + id })
+}
+
+// 导出生产排产计划 Excel
+export const exportProductionPlan = async (params) => {
+ return await request.download({ url: `/mes/productionPlan/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/productionPlan/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/qualityclass/index.ts b/src/api/mes/qualityclass/index.ts
new file mode 100644
index 0000000..137a6bd
--- /dev/null
+++ b/src/api/mes/qualityclass/index.ts
@@ -0,0 +1,55 @@
+import request from '@/config/axios'
+
+export interface QualityclassVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ code: string
+ name: string
+ groupCode: string
+}
+
+// 查询质检类别列表
+export const getQualityclassPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/qualityclass/senior', data })
+ } else {
+ return await request.get({ url: `/mes/qualityclass/page`, params })
+ }
+}
+
+// 查询质检类别详情
+export const getQualityclass = async (id: number) => {
+ return await request.get({ url: `/mes/qualityclass/get?id=` + id })
+}
+
+// 新增质检类别
+export const createQualityclass = async (data: QualityclassVO) => {
+ return await request.post({ url: `/mes/qualityclass/create`, data })
+}
+
+// 修改质检类别
+export const updateQualityclass = async (data: QualityclassVO) => {
+ return await request.put({ url: `/mes/qualityclass/update`, data })
+}
+
+// 删除质检类别
+export const deleteQualityclass = async (id: number) => {
+ return await request.delete({ url: `/mes/qualityclass/delete?id=` + id })
+}
+
+// 导出质检类别 Excel
+export const exportQualityclass = async (params) => {
+ return await request.download({ url: `/mes/qualityclass/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/qualityclass/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/qualityform/index.ts b/src/api/mes/qualityform/index.ts
new file mode 100644
index 0000000..40041b6
--- /dev/null
+++ b/src/api/mes/qualityform/index.ts
@@ -0,0 +1,50 @@
+import request from '@/config/axios'
+
+export interface QualityformVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ formNo: string
+ formName: string
+ formType: string
+}
+
+// 查询质检表单列表
+export const getQualityformPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/qualityform/senior', data })
+ } else {
+ return await request.get({ url: `/mes/qualityform/page`, params })
+ }
+}
+
+// 查询质检表单详情
+export const getQualityform = async (id: number) => {
+ return await request.get({ url: `/mes/qualityform/get?id=` + id })
+}
+
+// 新增质检表单
+export const createQualityform = async (data: QualityformVO) => {
+ return await request.post({ url: `/mes/qualityform/create`, data })
+}
+
+// 修改质检表单
+export const updateQualityform = async (data: QualityformVO) => {
+ return await request.put({ url: `/mes/qualityform/update`, data })
+}
+
+// 删除质检表单
+export const deleteQualityform = async (id: number) => {
+ return await request.delete({ url: `/mes/qualityform/delete?id=` + id })
+}
+
+// 导出质检表单 Excel
+export const exportQualityform = async (params) => {
+ return await request.download({ url: `/mes/qualityform/export-excel`, params })
+}
diff --git a/src/api/mes/qualityformdetail/index.ts b/src/api/mes/qualityformdetail/index.ts
new file mode 100644
index 0000000..8526e44
--- /dev/null
+++ b/src/api/mes/qualityformdetail/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface QualityformdetailVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ formNo: string
+ itemCode: string
+ itemName: string
+ itemType: string
+ qmsClass: string
+ dataType: string
+ dataVerify: string
+ dataStandvalue: string
+ dataDescripe: string
+}
+
+// 查询质检表单子表列表
+export const getQualityformdetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/qualityformdetail/senior', data })
+ } else {
+ return await request.get({ url: `/mes/qualityformdetail/page`, params })
+ }
+}
+
+// 查询质检表单子表详情
+export const getQualityformdetail = async (id: number) => {
+ return await request.get({ url: `/mes/qualityformdetail/get?id=` + id })
+}
+
+// 新增质检表单子表
+export const createQualityformdetail = async (data: QualityformdetailVO) => {
+ return await request.post({ url: `/mes/qualityformdetail/create`, data })
+}
+
+// 修改质检表单子表
+export const updateQualityformdetail = async (data: QualityformdetailVO) => {
+ return await request.put({ url: `/mes/qualityformdetail/update`, data })
+}
+
+// 删除质检表单子表
+export const deleteQualityformdetail = async (id: number) => {
+ return await request.delete({ url: `/mes/qualityformdetail/delete?id=` + id })
+}
+
+// 导出质检表单子表 Excel
+export const exportQualityformdetail = async (params) => {
+ return await request.download({ url: `/mes/qualityformdetail/export-excel`, params })
+}
diff --git a/src/api/mes/qualityformlog/index.ts b/src/api/mes/qualityformlog/index.ts
new file mode 100644
index 0000000..31b7d2f
--- /dev/null
+++ b/src/api/mes/qualityformlog/index.ts
@@ -0,0 +1,53 @@
+import request from '@/config/axios'
+
+export interface QualityformlogVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ masterId: number
+ formNo: string
+ operation: string
+ operator: string
+ operateContent: string
+ operateTime: Date
+}
+
+// 查询质检表单日志列表
+export const getQualityformlogPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/qualityformlog/senior', data })
+ } else {
+ return await request.get({ url: `/mes/qualityformlog/page`, params })
+ }
+}
+
+// 查询质检表单日志详情
+export const getQualityformlog = async (id: number) => {
+ return await request.get({ url: `/mes/qualityformlog/get?id=` + id })
+}
+
+// 新增质检表单日志
+export const createQualityformlog = async (data: QualityformlogVO) => {
+ return await request.post({ url: `/mes/qualityformlog/create`, data })
+}
+
+// 修改质检表单日志
+export const updateQualityformlog = async (data: QualityformlogVO) => {
+ return await request.put({ url: `/mes/qualityformlog/update`, data })
+}
+
+// 删除质检表单日志
+export const deleteQualityformlog = async (id: number) => {
+ return await request.delete({ url: `/mes/qualityformlog/delete?id=` + id })
+}
+
+// 导出质检表单日志 Excel
+export const exportQualityformlog = async (params) => {
+ return await request.download({ url: `/mes/qualityformlog/export-excel`, params })
+}
diff --git a/src/api/mes/qualitygroup/index.ts b/src/api/mes/qualitygroup/index.ts
new file mode 100644
index 0000000..8825bba
--- /dev/null
+++ b/src/api/mes/qualitygroup/index.ts
@@ -0,0 +1,55 @@
+import request from '@/config/axios'
+
+export interface QualitygroupVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ code: string
+ name: string
+ groupCode: string
+}
+
+// 查询质检分组列表
+export const getQualitygroupPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/qualitygroup/senior', data })
+ } else {
+ return await request.get({ url: `/mes/qualitygroup/page`, params })
+ }
+}
+
+// 查询质检分组详情
+export const getQualitygroup = async (id: number) => {
+ return await request.get({ url: `/mes/qualitygroup/get?id=` + id })
+}
+
+// 新增质检分组
+export const createQualitygroup = async (data: QualitygroupVO) => {
+ return await request.post({ url: `/mes/qualitygroup/create`, data })
+}
+
+// 修改质检分组
+export const updateQualitygroup = async (data: QualitygroupVO) => {
+ return await request.put({ url: `/mes/qualitygroup/update`, data })
+}
+
+// 删除质检分组
+export const deleteQualitygroup = async (id: number) => {
+ return await request.delete({ url: `/mes/qualitygroup/delete?id=` + id })
+}
+
+// 导出质检分组 Excel
+export const exportQualitygroup = async (params) => {
+ return await request.download({ url: `/mes/qualitygroup/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/qualitygroup/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/reportpStore/index.ts b/src/api/mes/reportpStore/index.ts
new file mode 100644
index 0000000..adb29ea
--- /dev/null
+++ b/src/api/mes/reportpStore/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface ReportpStoreVO {
+ status: string
+ remark: string
+ planDayCode: string
+ workBillNo: string
+ batchCode: string
+ reportUuid: string
+ itemBasicCode: string
+ itemCounts: number
+ itemUom: string
+ workstationCode: string
+ productCode: string
+}
+
+// 查询工序报工物料明细列表
+export const getReportpStorePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/reportp-store/senior', data })
+ } else {
+ return await request.get({ url: `/mes/reportp-store/page`, params })
+ }
+}
+
+// 查询工序报工物料明细详情
+export const getReportpStore = async (id: number) => {
+ return await request.get({ url: `/mes/reportp-store/get?id=` + id })
+}
+
+// 新增工序报工物料明细
+export const createReportpStore = async (data: ReportpStoreVO) => {
+ return await request.post({ url: `/mes/reportp-store/create`, data })
+}
+
+// 修改工序报工物料明细
+export const updateReportpStore = async (data: ReportpStoreVO) => {
+ return await request.put({ url: `/mes/reportp-store/update`, data })
+}
+
+// 删除工序报工物料明细
+export const deleteReportpStore = async (id: number) => {
+ return await request.delete({ url: `/mes/reportp-store/delete?id=` + id })
+}
+
+// 导出工序报工物料明细 Excel
+export const exportReportpStore = async (params) => {
+ return await request.download({ url: `/mes/reportp-store/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/reportp-store/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/reworkBatch/index.ts b/src/api/mes/reworkBatch/index.ts
new file mode 100644
index 0000000..0ab7e79
--- /dev/null
+++ b/src/api/mes/reworkBatch/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface ReworkBatchVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ reworkType: string
+ productionCode: string
+ productionCount: string
+ reworkAction: string
+ replaceFlag: string
+ reworkPersoncode: string
+ reworkTime: Date
+ reworkResult: string
+ reworkbillNo: string
+}
+
+// 查询返工登记批量列表
+export const getReworkBatchPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/rework-batch/senior', data })
+ } else {
+ return await request.get({ url: `/mes/rework-batch/page`, params })
+ }
+}
+
+// 查询返工登记批量详情
+export const getReworkBatch = async (id: number) => {
+ return await request.get({ url: `/mes/rework-batch/get?id=` + id })
+}
+
+// 新增返工登记批量
+export const createReworkBatch = async (data: ReworkBatchVO) => {
+ return await request.post({ url: `/mes/rework-batch/create`, data })
+}
+
+// 修改返工登记批量
+export const updateReworkBatch = async (data: ReworkBatchVO) => {
+ return await request.put({ url: `/mes/rework-batch/update`, data })
+}
+
+// 删除返工登记批量
+export const deleteReworkBatch = async (id: number) => {
+ return await request.delete({ url: `/mes/rework-batch/delete?id=` + id })
+}
+
+// 中止返工登记单件
+export const suspendReworkSingle = async (id: number) => {
+ return await request.delete({ url: `/mes/rework-batch/suspend?id=` + id })
+}
+
+// 领取返工登记单件
+export const receiveReworkSingle = async (id: number) => {
+ return await request.put({ url: `/mes/rework-batch/receive?id=` + id })
+}
+
+// 完成返工登记单件
+export const finishReworkSingle = async (id: number) => {
+ return await request.put({ url: `/mes/rework-batch/finish?id=` + id })
+}
+
+// 导出返工登记批量 Excel
+export const exportReworkBatch = async (params) => {
+ return await request.download({ url: `/mes/rework-batch/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/rework-batch/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/reworkSingle/index.ts b/src/api/mes/reworkSingle/index.ts
new file mode 100644
index 0000000..d84be32
--- /dev/null
+++ b/src/api/mes/reworkSingle/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface ReworkSingleVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ reworkType: string
+ productionCode: string
+ reworkAction: string
+ replaceFlag: string
+ reworkPersoncode: string
+ reworkTime: Date
+ reworkResult: string
+ reworkbillNo: string
+}
+
+// 查询返工登记单件列表
+export const getReworkSinglePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/rework-single/senior', data })
+ } else {
+ return await request.get({ url: `/mes/rework-single/page`, params })
+ }
+}
+
+// 查询返工登记单件详情
+export const getReworkSingle = async (id: number) => {
+ return await request.get({ url: `/mes/rework-single/get?id=` + id })
+}
+
+// 新增返工登记单件
+export const createReworkSingle = async (data: ReworkSingleVO) => {
+ return await request.post({ url: `/mes/rework-single/create`, data })
+}
+
+// 修改返工登记单件
+export const updateReworkSingle = async (data: ReworkSingleVO) => {
+ return await request.put({ url: `/mes/rework-single/update`, data })
+}
+
+// 删除返工登记单件
+export const deleteReworkSingle = async (id: number) => {
+ return await request.delete({ url: `/mes/rework-single/delete?id=` + id })
+}
+
+// 中止返工登记单件
+export const suspendReworkSingle = async (id: number) => {
+ return await request.delete({ url: `/mes/rework-single/suspend?id=` + id })
+}
+
+// 领取返工登记单件
+export const receiveReworkSingle = async (id: number) => {
+ return await request.put({ url: `/mes/rework-single/receive?id=` + id })
+}
+
+// 完成返工登记单件
+export const finishReworkSingle = async (id: number) => {
+ return await request.put({ url: `/mes/rework-single/finish?id=` + id })
+}
+
+
+// 导出返工登记单件 Excel
+export const exportReworkSingle = async (params) => {
+ return await request.download({ url: `/mes/rework-single/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/rework-single/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/teamSetting/index.ts b/src/api/mes/teamSetting/index.ts
new file mode 100644
index 0000000..61224bc
--- /dev/null
+++ b/src/api/mes/teamSetting/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface TeamSettingVO {
+ id: number
+ teamCode: string
+ teamName: string
+ teamType: string
+ endTime: Date
+ textOne: string
+ textTwo: string
+ textThree: string
+ textFour: string
+ textFive: string
+ deleteTime: Date
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+}
+
+// 查询班组人员管理列表
+export const getTeamSettingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/teamSetting/senior', data })
+ } else {
+ return await request.get({ url: `/mes/teamSetting/page`, params })
+ }
+}
+
+// 查询班组人员管理详情
+export const getTeamSetting = async (id: number) => {
+ return await request.get({ url: `/mes/teamSetting/get?id=` + id })
+}
+
+// 新增班组人员管理
+export const createTeamSetting = async (data: TeamSettingVO) => {
+ return await request.post({ url: `/mes/teamSetting/create`, data })
+}
+
+// 修改班组人员管理
+export const updateTeamSetting = async (data: TeamSettingVO) => {
+ return await request.put({ url: `/mes/teamSetting/update`, data })
+}
+
+// 删除班组人员管理
+export const deleteTeamSetting = async (id: number) => {
+ return await request.delete({ url: `/mes/teamSetting/delete?id=` + id })
+}
+
+// 导出班组人员管理 Excel
+export const exportTeamSetting = async (params) => {
+ return await request.download({ url: `/mes/teamSetting/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/teamSetting/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/workScheduling/index.ts b/src/api/mes/workScheduling/index.ts
new file mode 100644
index 0000000..f6f118c
--- /dev/null
+++ b/src/api/mes/workScheduling/index.ts
@@ -0,0 +1,80 @@
+import request from '@/config/axios'
+
+export interface WorkSchedulingVO {
+ flagDo: string
+}
+
+// 查询生产任务排产列表
+export const getWorkSchedulingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/workScheduling/senior', data })
+ } else {
+ return await request.get({ url: `/mes/workScheduling/page`, params })
+ }
+}
+
+// 查询生产任务排产详情
+export const getWorkScheduling = async (id: number) => {
+ return await request.get({ url: `/mes/workScheduling/get?id=` + id })
+}
+
+// 新增生产任务排产
+export const createWorkScheduling = async (data: WorkSchedulingVO) => {
+ return await request.post({ url: `/mes/workScheduling/create`, data })
+}
+
+// 修改生产任务排产
+export const updateWorkScheduling = async (data: WorkSchedulingVO) => {
+ return await request.put({ url: `/mes/workScheduling/update`, data })
+}
+// 更改生产任务状态
+export const updateWorkSchedulingStatus = async (data: any) => {
+ return await request.put({ url: `/mes/workScheduling/updateStatus`, data })
+}
+
+// 删除生产任务排产
+export const deleteWorkScheduling = async (id: number) => {
+ return await request.delete({ url: `/mes/workScheduling/delete?id=` + id })
+}
+
+// 导出生产任务排产 Excel
+export const exportWorkScheduling = async (params) => {
+ return await request.download({ url: `/mes/workScheduling/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/workScheduling/get-import-template' })
+}
+// 完工
+export const completeHandle = async (data) => {
+ return await request.post({ url: `/mes/workScheduling/completeHandle`, data })
+}
+//工序报工
+export const reportWorkByProcess = async (data) => {
+ return await request.post({ url: `/mes/work-scheduling-detail/reportWorkByProcess`, data })
+}
+//批量报工
+export const reportWorkByTask = async (data) => {
+ return await request.post({ url: `/mes/workScheduling/reportForAll`, data })
+}
+//检查当前节点是否可以完工
+export const getNodePosition = async (params) => {
+ return await request.get({ url: `/mes/workScheduling/getNodePosition`, params })
+}
+//获取当前工序的员工列表
+export const getCurrentWorkerList = async (params) => {
+ return await request.get({ url: `/mes/workScheduling/getCurrentWorkerList`, params })
+}
+//获取当前工单的工序列表
+export const getProcessList = async (params) => {
+ return await request.get({ url: `/mes/workScheduling/getProcessList`, params })
+}
+//工序质检
+export const processQualified = async (data) => {
+ return await request.post({ url: `/mes/work-scheduling-detail/processQualified`, data })
+}
+
+
diff --git a/src/api/mes/workSchedulingDetail/index.ts b/src/api/mes/workSchedulingDetail/index.ts
new file mode 100644
index 0000000..122291b
--- /dev/null
+++ b/src/api/mes/workSchedulingDetail/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface WorkSchedulingDetailVO {
+ schedulingCode: string
+ schedulingId: number
+ taskSort: number
+ nodeCode: string
+ workstationValidate: string
+ deviceValidate: string
+ personValidate: string
+ reportPerson: string
+ receivePerson: string
+ planCount: number
+ reportCount: number
+ reportType: number
+ qualifiedCount: number
+ unqualifiedCount: number
+ receiveWorkstation: string
+ receiveDevice: string
+ materialValidate: string
+}
+
+// 查询工单任务明细列表
+export const getWorkSchedulingDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/work-scheduling-detail/senior', data })
+ } else {
+ return await request.get({ url: `/mes/work-scheduling-detail/page`, params })
+ }
+}
+
+// 查询工单任务明细详情
+export const getWorkSchedulingDetail = async (id: number) => {
+ return await request.get({ url: `/mes/work-scheduling-detail/get?id=` + id })
+}
+
+// 新增工单任务明细
+export const createWorkSchedulingDetail = async (data: WorkSchedulingDetailVO) => {
+ return await request.post({ url: `/mes/work-scheduling-detail/create`, data })
+}
+// 更新工序的状态
+export const processFinished = async (id:number) => {
+ return await request.get({ url: `/mes/work-scheduling-detail/processFinished?id=`+id })
+}
+// 修改工单任务明细
+export const updateWorkSchedulingDetail = async (data: WorkSchedulingDetailVO) => {
+ return await request.put({ url: `/mes/work-scheduling-detail/update`, data })
+}
+
+// 删除工单任务明细
+export const deleteWorkSchedulingDetail = async (id: number) => {
+ return await request.delete({ url: `/mes/work-scheduling-detail/delete?id=` + id })
+}
+
+// 导出工单任务明细 Excel
+export const exportWorkSchedulingDetail = async (params) => {
+ return await request.download({ url: `/mes/work-scheduling-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/work-scheduling-detail/get-import-template' })
+}
+//工序报工
+export const reportWorkByProcess = async (data) => {
+ return await request.post({ url: `/mes/work-scheduling-detail/reportWorkByProcess`, data })
+}
\ No newline at end of file
diff --git a/src/api/mes/workSchedulingQaform/index.ts b/src/api/mes/workSchedulingQaform/index.ts
new file mode 100644
index 0000000..e964dad
--- /dev/null
+++ b/src/api/mes/workSchedulingQaform/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface WorkSchedulingQaformVO {
+ deleteTime: Date
+ id: number
+ status: string
+ concurrencyStamp: number
+ remark: string
+ deleter: string
+ siteId: number
+ planMaserCode: string
+ schedulingCode: string
+ nodeCode: string
+ qaFormNo: string
+ qaFormName: string
+ qaFormType: string
+ qaTime: Date
+ qaCount: number
+ qaCountPassed: number
+ qaCountNotpassed: number
+ qaPassRate: string
+}
+
+// 查询任务质检单列表
+export const getWorkSchedulingQaformPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/work-scheduling-qaform/senior', data })
+ } else {
+ return await request.get({ url: `/mes/work-scheduling-qaform/page`, params })
+ }
+}
+
+// 查询任务质检单详情
+export const getWorkSchedulingQaform = async (id: number) => {
+ return await request.get({ url: `/mes/work-scheduling-qaform/get?id=` + id })
+}
+
+// 新增任务质检单
+export const createWorkSchedulingQaform = async (data: WorkSchedulingQaformVO) => {
+ return await request.post({ url: `/mes/work-scheduling-qaform/create`, data })
+}
+
+// 修改任务质检单
+export const updateWorkSchedulingQaform = async (data: WorkSchedulingQaformVO) => {
+ return await request.put({ url: `/mes/work-scheduling-qaform/update`, data })
+}
+
+// 删除任务质检单
+export const deleteWorkSchedulingQaform = async (id: number) => {
+ return await request.delete({ url: `/mes/work-scheduling-qaform/delete?id=` + id })
+}
+
+// 导出任务质检单 Excel
+export const exportWorkSchedulingQaform = async (params) => {
+ return await request.download({ url: `/mes/work-scheduling-qaform/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/mes/work-scheduling-qaform/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/mes/workcalendar/index.ts b/src/api/mes/workcalendar/index.ts
new file mode 100644
index 0000000..2769ea2
--- /dev/null
+++ b/src/api/mes/workcalendar/index.ts
@@ -0,0 +1,81 @@
+import request from '@/config/axios'
+
+
+
+// 查询节假日
+export const getDismantlingDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/workCalendar/senior', data })
+ } else {
+ return await request.get({ url: `/mes/workCalendar/page`, params })
+ }
+}
+
+//班组排班 信息
+export interface SchedulingcalendarCreateReqVO{
+ keyDate:String,
+ //班组编码
+ teamCode:String,
+//班组名称
+ teamName:String,
+//班组类别"
+ teamType:String,
+//班次名称"
+ shiftName:String,
+//班次编码
+shiftCode:String,
+//上班时间
+startTime:String,
+//下班时间"
+endTime:String,
+//工作日期
+workDate:String,
+//倒班规则
+shiftRule:String,
+//倒班类型
+shiftRate:String,
+sort:number
+}
+//
+// 查询班组列表
+export const getTeamList = async (params) => {
+ return await request.get({ url: `/wms/team/page`, params })
+}
+
+// 保存排班信息
+export const saveWorkPlan = async (data:SchedulingcalendarCreateReqVO ) => {
+ return await request.post({ url: `/mes/schedulingcalendar/create`, data })
+}
+// 删除班组排班信息
+export const deleteWorkPlan = async (data) => {
+ return await request.post({ url: `/mes/schedulingcalendar/deleteTeam`, data})
+}
+//批量保存排班信息
+export const createBatch = async (data:any) => {
+ return await request.post({ url: `/mes/schedulingcalendar/createBatch`, data })
+}
+//批量对象方式保存排班信息--保留
+export const createObj= async (data:any) => {
+ return await request.post({ url: `/mes/schedulingcalendar/createObj`, data })
+}
+
+// 查询排班信息 code startTime:开始时间" endTime:结束时间")
+export const getWorkPlan = async (params ) => {
+ return await request.get({ url: `/mes/schedulingcalendar/getList`,params })
+}
+// 查询班次信息
+export const getShiftInfos = async (code:any) => {
+ return await request.get({ url: `/mes/schedulingcalendar/shift?code=`+code})
+}
+//查询节假日信息
+export const getHolidays = async (year:any) => {
+ return await request.get({ url: `/mes/holiday/listByYear?year=`+year})
+}
+
+// 导出排班信息
+export const exportWorkPlan = async (params) => {
+ return await request.download({ url: `/mes/schedulingcalendar/export-excel`, params })
+}
+
diff --git a/src/api/mes/workstation/index.ts b/src/api/mes/workstation/index.ts
new file mode 100644
index 0000000..fcd745b
--- /dev/null
+++ b/src/api/mes/workstation/index.ts
@@ -0,0 +1,160 @@
+import request from '@/config/axios'
+
+export interface WorkstationVO {
+ code: string
+ activeTime: Date
+ expireTime: Date
+ name: string
+}
+export const goalParams = {
+ workstationCode:null
+}
+// 查询工位列表
+export const getWorkstationPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/workstation/senior', data })
+ } else {
+ return await request.get({ url: `/mes/workstation/page`, params })
+ }
+}
+
+// 新增工位
+export const createWorkstation = async (data: WorkstationVO) => {
+ return await request.post({ url: `/mes/workstation/create`, data })
+}
+
+// 修改工位
+export const updateWorkstation = async (data: WorkstationVO) => {
+ return await request.put({ url: `/mes/workstation/update`, data })
+}
+
+// 删除工位
+export const deleteWorkstation = async (id: number) => {
+ return await request.delete({ url: `/mes/workstation/delete?id=` + id })
+}
+
+export const getEquipmentPage = async (params) => {
+ params.workstationCode = goalParams.workstationCode
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/equipment/senior', data })
+ } else {
+ return await request.get({ url: `/mes/equipment/getEquipmentPage`, params })
+ }
+}
+// 查询选择设备列表
+export const checkEquipmentPageList = async (params) => {
+ params.workstationCode = goalParams.workstationCode
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/equipment/senior', data })
+ } else {
+ return await request.get({ url: `/mes/equipment/pageCheckList`, params })
+ }
+}
+// 添加设备关联
+export const createEquipment = async (equipmentCodes:string[]) => {
+ const data = {
+ workstationCode : goalParams.workstationCode,
+ equipmentCodes : equipmentCodes
+ }
+ return await request.post({ url: `/mes/equipment/createRelation`, data })
+}
+
+// 删除设备关联
+export const deleteEquipment = async (equipmentCodes:string[]) => {
+ const data = {
+ workstationCode : goalParams.workstationCode,
+ equipmentCodes : equipmentCodes
+ }
+ return await request.post({ url: `/mes/equipment/deleteRelation`, data })
+}
+
+
+export const getOperstepsPage = async (params) => {
+ params.workstationCode = goalParams.workstationCode
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/workstation-opersteps/senior', data })
+ } else {
+ return await request.get({ url: `/mes/workstation-opersteps/getWorkstationOperstepsPage`, params })
+ }
+}
+// 添加操作步骤关联
+export const createOpersteps = async (codes:string[]) => {
+ const data = {
+ workstationCode : goalParams.workstationCode,
+ operstepsCodes : codes
+ }
+ return await request.post({ url: `/mes/workstation-opersteps/create`, data })
+}
+
+// 删除操作步骤关联
+export const deleteOpersteps = async (codes:string[]) => {
+ const data = {
+ workstationCode : goalParams.workstationCode,
+ operstepsCodes : codes
+ }
+ return await request.post({ url: `/mes/workstation-opersteps/delete`, data })
+}
+
+export const getAbilityPage = async (params) => {
+ params.workstationCode = goalParams.workstationCode
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/workstation-ability/senior', data })
+ } else {
+ return await request.get({ url: `/mes/workstation-ability/getWorkstationAbilityPage`, params })
+ }
+}
+// 添加能力关联
+export const createAbility = async (codes:string[]) => {
+ const data = {
+ workstationCode : goalParams.workstationCode,
+ abilityCodes : codes
+ }
+ return await request.post({ url: `/mes/workstation-ability/create`, data })
+}
+
+// 删除能力关联
+export const deleteAbility = async (codes:string[]) => {
+ const data = {
+ workstationCode : goalParams.workstationCode,
+ abilityCodes : codes
+ }
+ return await request.post({ url: `/mes/workstation-ability/delete`, data })
+}
+// 查询工位岗位关联
+export const getPostPage = async (params) => {
+ params.workstationCode = goalParams.workstationCode
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/mes/workstation-post/senior', data })
+ } else {
+ return await request.get({ url: `/mes/workstation-post/getWorkstationPostPage`, params })
+ }
+}
+// 添加能力关联
+export const createAPost = async (codes:string[]) => {
+ const data = {
+ workstationCode : goalParams.workstationCode,
+ postCodes : codes
+ }
+ return await request.post({ url: `/mes/workstation-post/create`, data })
+}
+
+// 删除能力关联
+export const deletePost = async (codes:string[]) => {
+ const data = {
+ workstationCode : goalParams.workstationCode,
+ postCodes : codes
+ }
+ return await request.post({ url: `/mes/workstation-post/delete`, data })
+}
diff --git a/src/api/opc/automaticShellInsertion/index.ts b/src/api/opc/automaticShellInsertion/index.ts
new file mode 100644
index 0000000..2a55f4a
--- /dev/null
+++ b/src/api/opc/automaticShellInsertion/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface AutomaticShellInsertionVO {
+ id: number
+ code: string
+ rkyl: string
+ rklg: string
+ result: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ loginId: string
+ coreId: number
+ rework: number
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询自动入壳列表
+export const getAutomaticShellInsertionPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/automatic-shell-insertion/senior', data })
+ } else {
+ return await request.get({ url: `/opc/automatic-shell-insertion/page`, params })
+ }
+}
+
+// 查询自动入壳详情
+export const getAutomaticShellInsertion = async (id: number) => {
+ return await request.get({ url: `/opc/automatic-shell-insertion/get?id=` + id })
+}
+
+// 新增自动入壳
+export const createAutomaticShellInsertion = async (data: AutomaticShellInsertionVO) => {
+ return await request.post({ url: `/opc/automatic-shell-insertion/create`, data })
+}
+
+// 修改自动入壳
+export const updateAutomaticShellInsertion = async (data: AutomaticShellInsertionVO) => {
+ return await request.put({ url: `/opc/automatic-shell-insertion/update`, data })
+}
+
+// 删除自动入壳
+export const deleteAutomaticShellInsertion = async (id: number) => {
+ return await request.delete({ url: `/opc/automatic-shell-insertion/delete?id=` + id })
+}
+
+// 导出自动入壳 Excel
+export const exportAutomaticShellInsertion = async (params) => {
+ return await request.download({ url: `/opc/automatic-shell-insertion/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/automatic-shell-insertion/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/coverCode/index.ts b/src/api/opc/coverCode/index.ts
new file mode 100644
index 0000000..3f35c37
--- /dev/null
+++ b/src/api/opc/coverCode/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface CoverCodeVO {
+ id: number
+ code: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ loginId: number
+ coreId: number
+ rework: string
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询顶盖刻码列表
+export const getCoverCodePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/cover-code/senior', data })
+ } else {
+ return await request.get({ url: `/opc/cover-code/page`, params })
+ }
+}
+
+// 查询顶盖刻码详情
+export const getCoverCode = async (id: number) => {
+ return await request.get({ url: `/opc/cover-code/get?id=` + id })
+}
+
+// 新增顶盖刻码
+export const createCoverCode = async (data: CoverCodeVO) => {
+ return await request.post({ url: `/opc/cover-code/create`, data })
+}
+
+// 修改顶盖刻码
+export const updateCoverCode = async (data: CoverCodeVO) => {
+ return await request.put({ url: `/opc/cover-code/update`, data })
+}
+
+// 删除顶盖刻码
+export const deleteCoverCode = async (id: number) => {
+ return await request.delete({ url: `/opc/cover-code/delete?id=` + id })
+}
+
+// 导出顶盖刻码 Excel
+export const exportCoverCode = async (params) => {
+ return await request.download({ url: `/opc/cover-code/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/cover-code/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/hexinPatch/index.ts b/src/api/opc/hexinPatch/index.ts
new file mode 100644
index 0000000..27bef55
--- /dev/null
+++ b/src/api/opc/hexinPatch/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface HexinPatchVO {
+ id: number
+ code: string
+ jdpcm1: string
+ jdpcm2: string
+ jdpcm3: string
+ result: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ loginId: string
+ coreId: number
+ rework: number
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询合芯贴片列表
+export const getHexinPatchPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/hexin-patch/senior', data })
+ } else {
+ return await request.get({ url: `/opc/hexin-patch/page`, params })
+ }
+}
+
+// 查询合芯贴片详情
+export const getHexinPatch = async (id: number) => {
+ return await request.get({ url: `/opc/hexin-patch/get?id=` + id })
+}
+
+// 新增合芯贴片
+export const createHexinPatch = async (data: HexinPatchVO) => {
+ return await request.post({ url: `/opc/hexin-patch/create`, data })
+}
+
+// 修改合芯贴片
+export const updateHexinPatch = async (data: HexinPatchVO) => {
+ return await request.put({ url: `/opc/hexin-patch/update`, data })
+}
+
+// 删除合芯贴片
+export const deleteHexinPatch = async (id: number) => {
+ return await request.delete({ url: `/opc/hexin-patch/delete?id=` + id })
+}
+
+// 导出合芯贴片 Excel
+export const exportHexinPatch = async (params) => {
+ return await request.download({ url: `/opc/hexin-patch/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/hexin-patch/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/hotPress/index.ts b/src/api/opc/hotPress/index.ts
new file mode 100644
index 0000000..ddf166f
--- /dev/null
+++ b/src/api/opc/hotPress/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface HotPressVO {
+ id: number
+ code: string
+ gwh: string
+ jjh: string
+ qualityStatus: string
+ ryjg: string
+ dzjcjg: string
+ zzyl: string
+ ylsx: string
+ ylxx: string
+ ylbcsj: string
+ zjscwd: string
+ zjscxjwd: string
+ zjxcwd: string
+ zjxcxjwd: string
+ dzjcyk: string
+ dzjczz: string
+ dzjcsj: string
+ processStartTime: string
+ processEndTime: string
+ loginId: string
+ coreId: number
+ rework: number
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询热压列表
+export const getHotPressPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/hot-press/senior', data })
+ } else {
+ return await request.get({ url: `/opc/hot-press/page`, params })
+ }
+}
+
+// 查询热压详情
+export const getHotPress = async (id: number) => {
+ return await request.get({ url: `/opc/hot-press/get?id=` + id })
+}
+
+// 新增热压
+export const createHotPress = async (data: HotPressVO) => {
+ return await request.post({ url: `/opc/hot-press/create`, data })
+}
+
+// 修改热压
+export const updateHotPress = async (data: HotPressVO) => {
+ return await request.put({ url: `/opc/hot-press/update`, data })
+}
+
+// 删除热压
+export const deleteHotPress = async (id: number) => {
+ return await request.delete({ url: `/opc/hot-press/delete?id=` + id })
+}
+
+// 导出热压 Excel
+export const exportHotPress = async (params) => {
+ return await request.download({ url: `/opc/hot-press/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/hot-press/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/laserWelding/index.ts b/src/api/opc/laserWelding/index.ts
new file mode 100644
index 0000000..de81bf4
--- /dev/null
+++ b/src/api/opc/laserWelding/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface LaserWeldingVO {
+ id: number
+ code: string
+ gbtm: string
+ code2: string
+ zjdw: string
+ zjljl: string
+ zjwz: string
+ zjgz: string
+ zjbhqll: string
+ zjccfs: string
+ zjhjsd: string
+ fjdw: string
+ fhlljl: string
+ fhwz: string
+ fjgl: string
+ fjbhqll: string
+ fjccfs: string
+ fjhjsd: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ whnl: string
+ xxnl: string
+ loginId: string
+ coreId: number
+ rework: number
+ inDoundRst: string
+ inDoundFinsh: string
+}
+
+// 查询转接片激光焊列表
+export const getLaserWeldingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/laser-welding/senior', data })
+ } else {
+ return await request.get({ url: `/opc/laser-welding/page`, params })
+ }
+}
+
+// 查询转接片激光焊详情
+export const getLaserWelding = async (id: number) => {
+ return await request.get({ url: `/opc/laser-welding/get?id=` + id })
+}
+
+// 新增转接片激光焊
+export const createLaserWelding = async (data: LaserWeldingVO) => {
+ return await request.post({ url: `/opc/laser-welding/create`, data })
+}
+
+// 修改转接片激光焊
+export const updateLaserWelding = async (data: LaserWeldingVO) => {
+ return await request.put({ url: `/opc/laser-welding/update`, data })
+}
+
+// 删除转接片激光焊
+export const deleteLaserWelding = async (id: number) => {
+ return await request.delete({ url: `/opc/laser-welding/delete?id=` + id })
+}
+
+// 导出转接片激光焊 Excel
+export const exportLaserWelding = async (params) => {
+ return await request.download({ url: `/opc/laser-welding/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/laser-welding/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/oneHelium/index.ts b/src/api/opc/oneHelium/index.ts
new file mode 100644
index 0000000..87448da
--- /dev/null
+++ b/src/api/opc/oneHelium/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface OneHeliumVO {
+ id: number
+ code: string
+ yhxh: string
+ yhhjjg: string
+ yhdcdljg: string
+ yhckyl: string
+ yhzhyl: string
+ yhchyl: string
+ yhzkd: string
+ yhqll: string
+ yhhll: string
+ yhhlyl: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ hjsj: string
+ chsj: string
+ loginId: string
+ coreId: number
+ rework: number
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询一次氦检列表
+export const getOneHeliumPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/one-helium/senior', data })
+ } else {
+ return await request.get({ url: `/opc/one-helium/page`, params })
+ }
+}
+
+// 查询一次氦检详情
+export const getOneHelium = async (id: number) => {
+ return await request.get({ url: `/opc/one-helium/get?id=` + id })
+}
+
+// 新增一次氦检
+export const createOneHelium = async (data: OneHeliumVO) => {
+ return await request.post({ url: `/opc/one-helium/create`, data })
+}
+
+// 修改一次氦检
+export const updateOneHelium = async (data: OneHeliumVO) => {
+ return await request.put({ url: `/opc/one-helium/update`, data })
+}
+
+// 删除一次氦检
+export const deleteOneHelium = async (id: number) => {
+ return await request.delete({ url: `/opc/one-helium/delete?id=` + id })
+}
+
+// 导出一次氦检 Excel
+export const exportOneHelium = async (params) => {
+ return await request.download({ url: `/opc/one-helium/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/one-helium/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/packageMylar/index.ts b/src/api/opc/packageMylar/index.ts
new file mode 100644
index 0000000..ce4b8b4
--- /dev/null
+++ b/src/api/opc/packageMylar/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface PackageMylarVO {
+ id: number
+ code: string
+ dtrrwd: string
+ dtrrTime: string
+ scbrrwd: string
+ scvrrTime: string
+ xcbrrwd: string
+ xcbrrTime: string
+ zyrrwd: string
+ zyrrTime: string
+ dtpcm: string
+ mylarPcm: string
+ jdpcm: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ loginId: string
+ coreId: number
+ rework: number
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询包Mylar列表
+export const getPackageMylarPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/package-mylar/senior', data })
+ } else {
+ return await request.get({ url: `/opc/package-mylar/page`, params })
+ }
+}
+
+// 查询包Mylar详情
+export const getPackageMylar = async (id: number) => {
+ return await request.get({ url: `/opc/package-mylar/get?id=` + id })
+}
+
+// 新增包Mylar
+export const createPackageMylar = async (data: PackageMylarVO) => {
+ return await request.post({ url: `/opc/package-mylar/create`, data })
+}
+
+// 修改包Mylar
+export const updatePackageMylar = async (data: PackageMylarVO) => {
+ return await request.put({ url: `/opc/package-mylar/update`, data })
+}
+
+// 删除包Mylar
+export const deletePackageMylar = async (id: number) => {
+ return await request.delete({ url: `/opc/package-mylar/delete?id=` + id })
+}
+
+// 导出包Mylar Excel
+export const exportPackageMylar = async (params) => {
+ return await request.download({ url: `/opc/package-mylar/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/package-mylar/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/sealingNailWelding/index.ts b/src/api/opc/sealingNailWelding/index.ts
new file mode 100644
index 0000000..d707d41
--- /dev/null
+++ b/src/api/opc/sealingNailWelding/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface SealingNailWeldingVO {
+ id: number
+ code: string
+ jjNumber: string
+ qxJg: string
+ bhqll: string
+ qxCount: string
+ qxSpeed: string
+ qxpl: string
+ qcPower: string
+ topx: string
+ topy: string
+ topResult: string
+ ccdx: string
+ ccdy: string
+ ccdResult: string
+ hjbhqll: string
+ bx: string
+ gl: string
+ nl: string
+ pl: string
+ sd: string
+ ccz: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ loginId: string
+ coreId: number
+ rework: number
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询密封钉焊接列表
+export const getSealingNailWeldingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/sealing-nail-welding/senior', data })
+ } else {
+ return await request.get({ url: `/opc/sealing-nail-welding/page`, params })
+ }
+}
+
+// 查询密封钉焊接详情
+export const getSealingNailWelding = async (id: number) => {
+ return await request.get({ url: `/opc/sealing-nail-welding/get?id=` + id })
+}
+
+// 新增密封钉焊接
+export const createSealingNailWelding = async (data: SealingNailWeldingVO) => {
+ return await request.post({ url: `/opc/sealing-nail-welding/create`, data })
+}
+
+// 修改密封钉焊接
+export const updateSealingNailWelding = async (data: SealingNailWeldingVO) => {
+ return await request.put({ url: `/opc/sealing-nail-welding/update`, data })
+}
+
+// 删除密封钉焊接
+export const deleteSealingNailWelding = async (id: number) => {
+ return await request.delete({ url: `/opc/sealing-nail-welding/delete?id=` + id })
+}
+
+// 导出密封钉焊接 Excel
+export const exportSealingNailWelding = async (params) => {
+ return await request.download({ url: `/opc/sealing-nail-welding/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/sealing-nail-welding/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/secondaryInspection/index.ts b/src/api/opc/secondaryInspection/index.ts
new file mode 100644
index 0000000..972e36b
--- /dev/null
+++ b/src/api/opc/secondaryInspection/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface SecondaryInspectionVO {
+ id: number
+ code: string
+ exwh: string
+ exjjg: string
+ ezkd: string
+ eqll: string
+ ehll: string
+ eylz: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ chsj: string
+ hjsj: string
+ loginId: string
+ coreId: number
+ rework: number
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询二次氦检列表
+export const getSecondaryInspectionPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/secondary-inspection/senior', data })
+ } else {
+ return await request.get({ url: `/opc/secondary-inspection/page`, params })
+ }
+}
+
+// 查询二次氦检详情
+export const getSecondaryInspection = async (id: number) => {
+ return await request.get({ url: `/opc/secondary-inspection/get?id=` + id })
+}
+
+// 新增二次氦检
+export const createSecondaryInspection = async (data: SecondaryInspectionVO) => {
+ return await request.post({ url: `/opc/secondary-inspection/create`, data })
+}
+
+// 修改二次氦检
+export const updateSecondaryInspection = async (data: SecondaryInspectionVO) => {
+ return await request.put({ url: `/opc/secondary-inspection/update`, data })
+}
+
+// 删除二次氦检
+export const deleteSecondaryInspection = async (id: number) => {
+ return await request.delete({ url: `/opc/secondary-inspection/delete?id=` + id })
+}
+
+// 导出二次氦检 Excel
+export const exportSecondaryInspection = async (params) => {
+ return await request.download({ url: `/opc/secondary-inspection/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/secondary-inspection/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/stackedCoreAdhesive/index.ts b/src/api/opc/stackedCoreAdhesive/index.ts
new file mode 100644
index 0000000..74d0548
--- /dev/null
+++ b/src/api/opc/stackedCoreAdhesive/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface StackedCoreAdhesiveVO {
+ id: number
+ code: string
+ jdpcm1: string
+ jdpcm2: string
+ jdpcm3: string
+ result: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ loginId: number
+ coreId: number
+ rework: string
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询叠芯贴胶列表
+export const getStackedCoreAdhesivePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/stacked-core-adhesive/senior', data })
+ } else {
+ return await request.get({ url: `/opc/stacked-core-adhesive/page`, params })
+ }
+}
+
+// 查询叠芯贴胶详情
+export const getStackedCoreAdhesive = async (id: number) => {
+ return await request.get({ url: `/opc/stacked-core-adhesive/get?id=` + id })
+}
+
+// 新增叠芯贴胶
+export const createStackedCoreAdhesive = async (data: StackedCoreAdhesiveVO) => {
+ return await request.post({ url: `/opc/stacked-core-adhesive/create`, data })
+}
+
+// 修改叠芯贴胶
+export const updateStackedCoreAdhesive = async (data: StackedCoreAdhesiveVO) => {
+ return await request.put({ url: `/opc/stacked-core-adhesive/update`, data })
+}
+
+// 删除叠芯贴胶
+export const deleteStackedCoreAdhesive = async (id: number) => {
+ return await request.delete({ url: `/opc/stacked-core-adhesive/delete?id=` + id })
+}
+
+// 导出叠芯贴胶 Excel
+export const exportStackedCoreAdhesive = async (params) => {
+ return await request.download({ url: `/opc/stacked-core-adhesive/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/stacked-core-adhesive/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/topWelded/index.ts b/src/api/opc/topWelded/index.ts
new file mode 100644
index 0000000..67e90d1
--- /dev/null
+++ b/src/api/opc/topWelded/index.ts
@@ -0,0 +1,132 @@
+import request from '@/config/axios'
+
+export interface TopWeldedVO {
+ id: number
+ code: string
+ jjyhj1: string
+ jjljl1: string
+ jjbhq1: string
+ jjccll1: string
+ jjhjsd1: string
+ jj1ngl1: string
+ jjwnl1: string
+ jjhjnl1: string
+ jjbx1: string
+ jjh1: string
+ jjljl2: string
+ jjbhq2: string
+ jjccll2: string
+ jjhjsd2: string
+ jj1ngl2: string
+ jjwnl2: string
+ jjhjnl2: string
+ jjbx2: string
+ jjljl3: string
+ jjbhq3: string
+ jjccll3: string
+ jjhjsd3: string
+ jj1ngl3: string
+ jjwnl3: string
+ jjhjnl3: string
+ jjbx3: string
+ jjljl4: string
+ jjbhq4: string
+ jjccll4: string
+ jjhjsd4: string
+ jj1ngl4: string
+ jjwnl4: string
+ jjhjnl4: string
+ jjbx4: string
+ jjljl5: string
+ jjbhq5: string
+ jjccll5: string
+ jjhjsd5: string
+ jj1ngl5: string
+ jjwnl5: string
+ jjhjl5: string
+ jjbx5: string
+ jjljl6: string
+ jjbhq6: string
+ jjccll6: string
+ jjhjsd6: string
+ jj1ngl6: string
+ jjwnl6: string
+ jjhjnl6: string
+ jjbx6: string
+ jjljl7: string
+ jjbhq7: string
+ jjccll7: string
+ jjhjsd7: string
+ jj1ngl7: string
+ jjwnl7: string
+ jjhjnl7: string
+ jjbx7: string
+ jjljl8: string
+ jjbhq8: string
+ jjccll8: string
+ jjhjsd8: string
+ jj1ngl8: string
+ jjwnl8: string
+ jjhjnl8: string
+ jjbx8: string
+ jythj: string
+ jyljl: string
+ jybhq: string
+ jyccll: string
+ jyhjsd: string
+ jynhgl: string
+ jywhgl: string
+ jyhjnl: string
+ jybx: string
+ jyjjh: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ loginId: string
+ coreId: number
+ rework: number
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询顶盖预满焊列表
+export const getTopWeldedPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/top-welded/senior', data })
+ } else {
+ return await request.get({ url: `/opc/top-welded/page`, params })
+ }
+}
+
+// 查询顶盖预满焊详情
+export const getTopWelded = async (id: number) => {
+ return await request.get({ url: `/opc/top-welded/get?id=` + id })
+}
+
+// 新增顶盖预满焊
+export const createTopWelded = async (data: TopWeldedVO) => {
+ return await request.post({ url: `/opc/top-welded/create`, data })
+}
+
+// 修改顶盖预满焊
+export const updateTopWelded = async (data: TopWeldedVO) => {
+ return await request.put({ url: `/opc/top-welded/update`, data })
+}
+
+// 删除顶盖预满焊
+export const deleteTopWelded = async (id: number) => {
+ return await request.delete({ url: `/opc/top-welded/delete?id=` + id })
+}
+
+// 导出顶盖预满焊 Excel
+export const exportTopWelded = async (params) => {
+ return await request.download({ url: `/opc/top-welded/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/top-welded/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/ultrasonicFinalWelding/index.ts b/src/api/opc/ultrasonicFinalWelding/index.ts
new file mode 100644
index 0000000..17f6659
--- /dev/null
+++ b/src/api/opc/ultrasonicFinalWelding/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface UltrasonicFinalWeldingVO {
+ id: number
+ code: string
+ alzsj: string
+ alnl: string
+ algl: string
+ alcs: string
+ alzf: string
+ alfl: string
+ cuzsj: string
+ cunl: string
+ cugl: string
+ cucs: string
+ cuzf: string
+ cuyl: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ hzsm: string
+ htsm: string
+ loginId: number
+ coreId: number
+ rework: string
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询超声波终焊列表
+export const getUltrasonicFinalWeldingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/ultrasonic-final-welding/senior', data })
+ } else {
+ return await request.get({ url: `/opc/ultrasonic-final-welding/page`, params })
+ }
+}
+
+// 查询超声波终焊详情
+export const getUltrasonicFinalWelding = async (id: number) => {
+ return await request.get({ url: `/opc/ultrasonic-final-welding/get?id=` + id })
+}
+
+// 新增超声波终焊
+export const createUltrasonicFinalWelding = async (data: UltrasonicFinalWeldingVO) => {
+ return await request.post({ url: `/opc/ultrasonic-final-welding/create`, data })
+}
+
+// 修改超声波终焊
+export const updateUltrasonicFinalWelding = async (data: UltrasonicFinalWeldingVO) => {
+ return await request.put({ url: `/opc/ultrasonic-final-welding/update`, data })
+}
+
+// 删除超声波终焊
+export const deleteUltrasonicFinalWelding = async (id: number) => {
+ return await request.delete({ url: `/opc/ultrasonic-final-welding/delete?id=` + id })
+}
+
+// 导出超声波终焊 Excel
+export const exportUltrasonicFinalWelding = async (params) => {
+ return await request.download({ url: `/opc/ultrasonic-final-welding/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/ultrasonic-final-welding/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/ultrasonicPreWelding/index.ts b/src/api/opc/ultrasonicPreWelding/index.ts
new file mode 100644
index 0000000..bbd5f18
--- /dev/null
+++ b/src/api/opc/ultrasonicPreWelding/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface UltrasonicPreWeldingVO {
+ id: number
+ code: string
+ alzsj: string
+ alnl: string
+ algl: string
+ alcs: string
+ alzf: string
+ alyl: string
+ cuzsj: string
+ cunl: string
+ cugl: string
+ cucs: string
+ cuzf: string
+ cuyl: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ loginId: number
+ coreId: number
+ rework: string
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询超声波预焊列表
+export const getUltrasonicPreWeldingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/ultrasonic-pre-welding/senior', data })
+ } else {
+ return await request.get({ url: `/opc/ultrasonic-pre-welding/page`, params })
+ }
+}
+
+// 查询超声波预焊详情
+export const getUltrasonicPreWelding = async (id: number) => {
+ return await request.get({ url: `/opc/ultrasonic-pre-welding/get?id=` + id })
+}
+
+// 新增超声波预焊
+export const createUltrasonicPreWelding = async (data: UltrasonicPreWeldingVO) => {
+ return await request.post({ url: `/opc/ultrasonic-pre-welding/create`, data })
+}
+
+// 修改超声波预焊
+export const updateUltrasonicPreWelding = async (data: UltrasonicPreWeldingVO) => {
+ return await request.put({ url: `/opc/ultrasonic-pre-welding/update`, data })
+}
+
+// 删除超声波预焊
+export const deleteUltrasonicPreWelding = async (id: number) => {
+ return await request.delete({ url: `/opc/ultrasonic-pre-welding/delete?id=` + id })
+}
+
+// 导出超声波预焊 Excel
+export const exportUltrasonicPreWelding = async (params) => {
+ return await request.download({ url: `/opc/ultrasonic-pre-welding/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/ultrasonic-pre-welding/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/opc/weldAdhesiveBond/index.ts b/src/api/opc/weldAdhesiveBond/index.ts
new file mode 100644
index 0000000..826bc8f
--- /dev/null
+++ b/src/api/opc/weldAdhesiveBond/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface WeldAdhesiveBondVO {
+ id: number
+ code: string
+ zmtjcd: string
+ bmtjcd: string
+ jdyclm: string
+ qualityStatus: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ loginId: number
+ coreId: number
+ rework: string
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询超声波焊后贴胶列表
+export const getWeldAdhesiveBondPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/weld-adhesive-bond/senior', data })
+ } else {
+ return await request.get({ url: `/opc/weld-adhesive-bond/page`, params })
+ }
+}
+
+// 查询超声波焊后贴胶详情
+export const getWeldAdhesiveBond = async (id: number) => {
+ return await request.get({ url: `/opc/weld-adhesive-bond/get?id=` + id })
+}
+
+// 新增超声波焊后贴胶
+export const createWeldAdhesiveBond = async (data: WeldAdhesiveBondVO) => {
+ return await request.post({ url: `/opc/weld-adhesive-bond/create`, data })
+}
+
+// 修改超声波焊后贴胶
+export const updateWeldAdhesiveBond = async (data: WeldAdhesiveBondVO) => {
+ return await request.put({ url: `/opc/weld-adhesive-bond/update`, data })
+}
+
+// 删除超声波焊后贴胶
+export const deleteWeldAdhesiveBond = async (id: number) => {
+ return await request.delete({ url: `/opc/weld-adhesive-bond/delete?id=` + id })
+}
+
+// 导出超声波焊后贴胶 Excel
+export const exportWeldAdhesiveBond = async (params) => {
+ return await request.download({ url: `/opc/weld-adhesive-bond/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/weld-adhesive-bond/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/qms/aql/index.ts b/src/api/qms/aql/index.ts
new file mode 100644
index 0000000..90d8e63
--- /dev/null
+++ b/src/api/qms/aql/index.ts
@@ -0,0 +1,120 @@
+import request from '@/config/axios'
+
+export interface AqlVO {
+ id: number
+ code: string
+ inspectionQualification: string
+ sampleCharacterCode: string
+ sampleSize: number
+ a0separator010: number
+ r0separator010: number
+ a0separator015: number
+ r0separator015: number
+ a0separator025: number
+ r0separator025: number
+ a0separator040: number
+ r0separator040: number
+ a0separator065: number
+ r0separator065: number
+ a0separator10: number
+ r0separator10: number
+ a0separator15: number
+ r0separator15: number
+ a0separator25: number
+ r0separator25: number
+ a0separator40: number
+ r0separator40: number
+ a0separator65: number
+ r0separator65: number
+ a1separator0: number
+ r1separator0: number
+ a1separator5: number
+ r1separator5: number
+ a2separator5: number
+ r2separator5: number
+ a4separator0: number
+ r4separator0: number
+ a6separator5: number
+ r6separator5: number
+ a10: number
+ r10: number
+ a15: number
+ r15: number
+ a25: number
+ r25: number
+ a40: number
+ r40: number
+ a65: number
+ r65: number
+ a100: number
+ r100: number
+ a150: number
+ r150: number
+ a250: number
+ r250: number
+ a400: number
+ r400: number
+ a650: number
+ r650: number
+ a1000: number
+ r1000: number
+ available: string
+}
+
+// 查询aql列表
+export const getAqlPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/aql/senior', data })
+ } else {
+ return await request.get({ url: `/qms/aql/page`, params })
+ }
+}
+
+// 查询aql详情
+export const getAql = async (id: number) => {
+ return await request.get({ url: `/qms/aql/get?id=` + id })
+}
+
+// 新增aql
+export const createAql = async (data: AqlVO) => {
+ return await request.post({ url: `/qms/aql/create`, data })
+}
+
+// 修改aql
+export const updateAql = async (data: AqlVO) => {
+ return await request.put({ url: `/qms/aql/update`, data })
+}
+
+// 删除aql
+export const deleteAql = async (id: number) => {
+ return await request.delete({ url: `/qms/aql/delete?id=` + id })
+}
+
+// 导出aql Excel
+export const exportAql = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/qms/aql/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/qms/aql/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/aql/get-import-template' })
+}
+
+export const getSamplingScheme = async () => {
+ return await request.get({ url: `/qms/sampling-scheme/get-available-list`})
+}
+// 启用
+export const enableAql = async (id: number) => {
+ return await request.enable({ url: `/qms/aql/enable?id=` + id })
+}
+// 禁用
+export const disableAql = async (id: number) => {
+ return await request.disable({ url: `/qms/aql/disable?id=` + id })
+}
diff --git a/src/api/qms/counter/index.ts b/src/api/qms/counter/index.ts
new file mode 100644
index 0000000..9642371
--- /dev/null
+++ b/src/api/qms/counter/index.ts
@@ -0,0 +1,71 @@
+import request from '@/config/axios'
+
+export interface CounterVO {
+ id: number
+ itemCode: string
+ inspectionType: string
+ supplierCode: string
+ qualifiedTimes: number
+ lastQualifiedBatch: string
+ lastQualifiedTime: Date
+ unqualifiedTimes: number
+ lastUnqualifiedBatch: number
+ lastUnqualifiedTime: number
+ nextStage: number
+ available: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询物料检验计数器列表
+export const getCounterPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/counter/senior', data })
+ } else {
+ return await request.get({ url: `/qms/counter/page`, params })
+ }
+}
+
+// 查询物料检验计数器详情
+export const getCounter = async (id: number) => {
+ return await request.get({ url: `/qms/counter/get?id=` + id })
+}
+
+// 新增物料检验计数器
+export const createCounter = async (data: CounterVO) => {
+ return await request.post({ url: `/qms/counter/create`, data })
+}
+
+// 修改物料检验计数器
+export const updateCounter = async (data: CounterVO) => {
+ return await request.put({ url: `/qms/counter/update`, data })
+}
+
+// 删除物料检验计数器
+export const deleteCounter = async (id: number) => {
+ return await request.delete({ url: `/qms/counter/delete?id=` + id })
+}
+
+// 导出物料检验计数器 Excel
+export const exportCounter = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/qms/counter/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/qms/counter/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/counter/get-import-template' })
+}
+
+export const getNextStage = async (id:number) => {
+ return await request.get({ url: `/qms/counter/getNextStage?id=` + id})
+}
diff --git a/src/api/qms/dynamicRule/index.ts b/src/api/qms/dynamicRule/index.ts
new file mode 100644
index 0000000..23deba6
--- /dev/null
+++ b/src/api/qms/dynamicRule/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface DynamicRuleVO {
+ code: string
+ description: string
+ available: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询动态修改规则列表
+export const getDynamicRulePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/dynamic-rule/senior', data })
+ } else {
+ return await request.get({ url: `/qms/dynamic-rule/page`, params })
+ }
+}
+
+// 查询动态修改规则详情
+export const getDynamicRule = async (id: number) => {
+ return await request.get({ url: `/qms/dynamic-rule/get?id=` + id })
+}
+
+// 新增动态修改规则
+export const createDynamicRule = async (data: DynamicRuleVO) => {
+ return await request.post({ url: `/qms/dynamic-rule/create`, data })
+}
+
+// 修改动态修改规则
+export const updateDynamicRule = async (data: DynamicRuleVO) => {
+ return await request.put({ url: `/qms/dynamic-rule/update`, data })
+}
+
+// 删除动态修改规则
+export const deleteDynamicRule = async (id: number) => {
+ return await request.delete({ url: `/qms/dynamic-rule/delete?id=` + id })
+}
+
+// 导出动态修改规则 Excel
+export const exportDynamicRule = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/qms/dynamic-rule/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/qms/dynamic-rule/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/dynamic-rule/get-import-template' })
+}
+
+// 启用
+export const enableDynamicRule = async (id: number) => {
+ return await request.enable({ url: `/qms/dynamic-rule/enable?id=` + id })
+}
+// 禁用
+export const disableDynamicRule = async (id: number) => {
+ return await request.disable({ url: `/qms/dynamic-rule/disable?id=` + id })
+}
diff --git a/src/api/qms/inspectionJob/InspectionJobPackage/InspectionJobPackage.ts b/src/api/qms/inspectionJob/InspectionJobPackage/InspectionJobPackage.ts
new file mode 100644
index 0000000..ff82af6
--- /dev/null
+++ b/src/api/qms/inspectionJob/InspectionJobPackage/InspectionJobPackage.ts
@@ -0,0 +1,13 @@
+import request from '@/config/axios'
+export interface InspectionRequestPackageVO {
+ number: string
+ packageCode: string
+ packageSpecificationCode: string
+ amount: string
+ measuringUnit: string
+}
+
+//查询包装列表
+export const getInspectionJobPackageList = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-job-package/list?masterId=` + id })
+}
diff --git a/src/api/qms/inspectionJob/inspectionJobDetail/index.ts b/src/api/qms/inspectionJob/inspectionJobDetail/index.ts
new file mode 100644
index 0000000..e9148ab
--- /dev/null
+++ b/src/api/qms/inspectionJob/inspectionJobDetail/index.ts
@@ -0,0 +1,52 @@
+import request from '@/config/axios'
+
+
+// 查询检验申请列表
+export const getInspectionJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/inspection-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/qms/inspection-job-detail/page`, params })
+ }
+}
+//查询检验申请列表
+export const getInspectionJobDetailList = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-job-detail/list?masterId=` + id })
+}
+
+// 查询检验申请详情
+export const getInspectionJobDetail = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-job-detail/get?id=` + id })
+}
+
+// 新增检验申请
+export const createInspectionJobDetail = async (data) => {
+ return await request.post({ url: `/qms/inspection-job-detail/create`, data })
+}
+
+// 修改检验申请
+export const updateInspectionJobDetail = async (data) => {
+ return await request.put({ url: `/qms/inspection-job-detail/update`, data })
+}
+
+// 删除检验申请
+export const deleteInspectionJobDetail = async (id: number) => {
+ return await request.delete({ url: `/qms/inspection-job-detail/delete?id=` + id })
+}
+
+// 导出检验申请 Excel
+export const exportInspectionJobDetail = async (params) => {
+ return await request.download({ url: `/qms/inspection-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/inspection-job-detail/get-import-template' })
+}
+
+// 根据检验方案编码获取工序和检验特性列表
+export const getBySchemeCode = async (schemeCode) => {
+ return await request.get({ url: `/qms/inspection-job-detail/getBySchemeCode?schemeCode=${schemeCode}` })
+}
diff --git a/src/api/qms/inspectionJob/inspectionJobMain/index.ts b/src/api/qms/inspectionJob/inspectionJobMain/index.ts
new file mode 100644
index 0000000..b8ff3f9
--- /dev/null
+++ b/src/api/qms/inspectionJob/inspectionJobMain/index.ts
@@ -0,0 +1,71 @@
+import request from '@/config/axios'
+
+
+// 查询检验任务列表
+export const getInspectionJobMainPage = async (params) => {
+ if (params.isSearch) {
+ // delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/inspection-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/qms/inspection-job-main/page`, params })
+ }
+}
+
+// 查询检验任务详情
+export const getInspectionJobMain = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-job-main/get?id=` + id })
+}
+
+// 新增检验任务
+export const createInspectionJobMain = async (data) => {
+ return await request.post({ url: `/qms/inspection-job-main/create`, data })
+}
+
+// 暂存检验任务
+export const stagingInspectionJobMain = async (data) => {
+ return await request.post({ url: `/qms/inspection-job-main/staging`, data })
+}
+
+// 修改检验任务
+export const updateInspectionJobMain = async (data) => {
+ return await request.put({ url: `/qms/inspection-job-main/update`, data })
+}
+// 执行检验任务
+export const executeInspectionJobMain = async (data) => {
+ return await request.put({ url: `/qms/inspection-job-main/execute`, data })
+}
+// 删除检验任务
+export const deleteInspectionJobMain = async (id: number) => {
+ return await request.delete({ url: `/qms/inspection-job-main/delete?id=` + id })
+}
+// 承接检验任务
+export const acceptInspectionJobMain = async (id) => {
+ return await request.put({ url: `/qms/inspection-job-main/accept?id=` + id })
+}
+// 放弃检验任务
+export const abandonInspectionJobMain = async (id) => {
+ return await request.put({ url: `/qms/inspection-job-main/abandon?id=` + id })
+}
+// 关闭检验任务
+export const closeInspectionJobMain = async (id) => {
+ return await request.put({ url: `/qms/inspection-job-main/close?id=` + id })
+}
+// 发布检验任务
+export const releaseInspectionJobMain = async (id) => {
+ return await request.put({ url: `/qms/inspection-job-main/release?id=` + id })
+}
+// 导出检验申请 Excel
+export const exportInspectionJobMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/qms/inspection-job-main/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/qms/inspection-job-main/export-excel`, params })
+ }
+}
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/inspection-job-main/get-import-template' })
+}
+
diff --git a/src/api/qms/inspectionMethod/index.ts b/src/api/qms/inspectionMethod/index.ts
new file mode 100644
index 0000000..12aeeb6
--- /dev/null
+++ b/src/api/qms/inspectionMethod/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface InspectionMethodVO {
+ id: number
+ code: string
+ description: string
+ version: string
+ operationGuidance: string
+ videoAddress: string
+ available: string
+}
+
+// 查询检验方法列表
+export const getInspectionMethodPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/inspection-method/senior', data })
+ } else {
+ return await request.get({ url: `/qms/inspection-method/page`, params })
+ }
+}
+
+// 查询检验方法详情
+export const getInspectionMethod = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-method/get?id=` + id })
+}
+
+// 新增检验方法
+export const createInspectionMethod = async (data: InspectionMethodVO) => {
+ return await request.post({ url: `/qms/inspection-method/create`, data })
+}
+
+// 修改检验方法
+export const updateInspectionMethod = async (data: InspectionMethodVO) => {
+ // debugger
+ return await request.put({ url: `/qms/inspection-method/update`, data })
+}
+
+// 删除检验方法
+export const deleteInspectionMethod = async (id: number) => {
+ return await request.delete({ url: `/qms/inspection-method/delete?id=` + id })
+}
+
+// 导出检验方法 Excel
+export const exportInspectionMethod = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/qms/inspection-method/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/qms/inspection-method/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/inspection-method/get-import-template' })
+}
+// 启用
+export const enableInspectionMethod = async (id: number) => {
+ return await request.enable({ url: `/qms/inspection-method/enable?id=` + id })
+}
+// 禁用
+export const disableInspectionMethod = async (id: number) => {
+ return await request.disable({ url: `/qms/inspection-method/disable?id=` + id })
+}
diff --git a/src/api/qms/inspectionQ1/index.ts b/src/api/qms/inspectionQ1/index.ts
new file mode 100644
index 0000000..9072dcd
--- /dev/null
+++ b/src/api/qms/inspectionQ1/index.ts
@@ -0,0 +1,77 @@
+import request from '@/config/axios'
+
+export interface Q1VO {
+ id: number
+ number: string
+ customerCode: string
+ costCode: string
+ itemCode: string
+ qty: number
+ uom: string
+ code: string
+ priority: number
+ responUser: string
+ claimAmount: number
+ claimReason: number
+ claimTime: Date
+ handleTime: Date
+ desc: string
+ status: string
+ available: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询Q1通知单列表
+export const getQ1Page = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/qms/inspectionQ1/senior', data })
+ } else {
+ return await request.get({ url: `/qms/inspectionQ1/page`, params })
+ }
+}
+
+// 查询Q1通知单详情
+export const getQ1 = async (id: number) => {
+ return await request.get({ url: `/qms/inspectionQ1/get?id=` + id })
+}
+
+// 新增Q1通知单
+export const createQ1 = async (data: Q1VO) => {
+ return await request.post({ url: `/qms/inspectionQ1/create`, data })
+}
+
+// 修改Q1通知单
+export const updateQ1 = async (data: Q1VO) => {
+ return await request.put({ url: `/qms/inspectionQ1/update`, data })
+}
+
+// 删除Q1通知单
+export const deleteQ1 = async (id: number) => {
+ return await request.delete({ url: `/qms/inspectionQ1/delete?id=` + id })
+}
+
+// 导出Q1通知单 Excel
+export const exportQ1 = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/qms/inspectionQ1/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/qms/inspectionQ1/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/inspectionQ1/get-import-template' })
+}
+
+// 完成
+export const finishQ1 = async (id: number) => {
+ return await request.get({ url: `/qms/inspectionQ1/finish?id=` + id })
+}
diff --git a/src/api/qms/inspectionQ2/index.ts b/src/api/qms/inspectionQ2/index.ts
new file mode 100644
index 0000000..a89604a
--- /dev/null
+++ b/src/api/qms/inspectionQ2/index.ts
@@ -0,0 +1,87 @@
+import request from '@/config/axios'
+
+export interface Q2VO {
+ id: number
+ number: string
+ supplierCode: string
+ itemCode: string
+ q1Number: string
+ purchaseReceiptNumber: string
+ qty: number
+ uom: string
+ code: string
+ desc: string
+ priority: number
+ responUser: string
+ claimAmount: number
+ costCode: string
+ claimTime: Date
+ handleTime: Date
+ status: string
+ available: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询Q2通知单列表
+export const getQ2Page = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/qms/inspectionQ2/senior', data })
+ } else {
+ return await request.get({ url: `/qms/inspectionQ2/page`, params })
+ }
+}
+
+// 查询Q2通知单详情
+export const getQ2 = async (id: number) => {
+ return await request.get({ url: `/qms/inspectionQ2/get?id=` + id })
+}
+
+// 新增Q2通知单
+export const createQ2 = async (data: Q2VO) => {
+ return await request.post({ url: `/qms/inspectionQ2/create`, data })
+}
+
+// 修改Q2通知单
+export const updateQ2 = async (data: Q2VO) => {
+ return await request.put({ url: `/qms/inspectionQ2/update`, data })
+}
+
+// 删除Q2通知单
+export const deleteQ2 = async (id: number) => {
+ return await request.delete({ url: `/qms/inspectionQ2/delete?id=` + id })
+}
+
+// 导出Q2通知单 Excel
+export const exportQ2 = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/qms/inspectionQ2/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/qms/inspectionQ2/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/inspectionQ2/get-import-template' })
+}
+
+// 完成
+export const finishQ2 = async (id: number) => {
+ return await request.get({ url: `/qms/inspectionQ2/finish?id=` + id })
+}
+
+// 获取系统中的email地址
+export const getEmail = () => {
+ return request.get({ url: `/qms/inspectionQ2/getEmail`})
+}
+
+export const sendQ2 = async (id: number) => {
+ return await request.get({ url: `/qms/inspectionQ2/send?id=` + id })
+}
diff --git a/src/api/qms/inspectionQ3/inspectionQ3Detail/index.ts b/src/api/qms/inspectionQ3/inspectionQ3Detail/index.ts
new file mode 100644
index 0000000..796b255
--- /dev/null
+++ b/src/api/qms/inspectionQ3/inspectionQ3Detail/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface InspectionQ3DetailVO {
+ id: number
+ masterId: number
+ number: string
+ itemCode: string
+ qty: number
+ uom: string
+ price: number
+ amount: number
+ costCode: string
+ defectCode: string
+ defectLocation: string
+ defectType: string
+ problemReason: string
+ available: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询Q3通知单子列表
+export const getInspectionQ3DetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/qms/inspection-Q3-detail/senior', data })
+ } else {
+ return await request.get({ url: `/qms/inspection-Q3-detail/page`, params })
+ }
+}
+
+// 查询Q3通知单子详情
+export const getInspectionQ3Detail = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-Q3-detail/get?id=` + id })
+}
+
+// 新增Q3通知单子
+export const createInspectionQ3Detail = async (data: InspectionQ3DetailVO) => {
+ return await request.post({ url: `/qms/inspection-Q3-detail/create`, data })
+}
+
+// 修改Q3通知单子
+export const updateInspectionQ3Detail = async (data: InspectionQ3DetailVO) => {
+ return await request.put({ url: `/qms/inspection-Q3-detail/update`, data })
+}
+
+// 删除Q3通知单子
+export const deleteInspectionQ3Detail = async (id: number) => {
+ return await request.delete({ url: `/qms/inspection-Q3-detail/delete?id=` + id })
+}
+
+// 导出Q3通知单子 Excel
+export const exportInspectionQ3Detail = async (params) => {
+ return await request.download({ url: `/qms/inspection-Q3-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/inspection-Q3-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/qms/inspectionQ3/inspectionQ3Main/index.ts b/src/api/qms/inspectionQ3/inspectionQ3Main/index.ts
new file mode 100644
index 0000000..60c723f
--- /dev/null
+++ b/src/api/qms/inspectionQ3/inspectionQ3Main/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface InspectionQ3MainVO {
+ id: number
+ number: string
+ q1Number: string
+ responUser: string
+ priority: string
+ handleTime: Date
+ summaryAmount: number
+ desc: string
+ status: string
+ available: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询Q3通知单主列表
+export const getInspectionQ3MainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/qms/inspection-Q3-main/senior', data })
+ } else {
+ return await request.get({ url: `/qms/inspection-Q3-main/page`, params })
+ }
+}
+
+// 查询Q3通知单主详情
+export const getInspectionQ3Main = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-Q3-main/get?id=` + id })
+}
+
+// 新增Q3通知单主
+export const createInspectionQ3Main = async (data: InspectionQ3MainVO) => {
+ return await request.post({ url: `/qms/inspection-Q3-main/create`, data })
+}
+
+// 修改Q3通知单主
+export const updateInspectionQ3Main = async (data: InspectionQ3MainVO) => {
+ return await request.put({ url: `/qms/inspection-Q3-main/update`, data })
+}
+
+// 删除Q3通知单主
+export const deleteInspectionQ3Main = async (id: number) => {
+ return await request.delete({ url: `/qms/inspection-Q3-main/delete?id=` + id })
+}
+
+// 导出Q3通知单主 Excel
+export const exportInspectionQ3Main = async (params) => {
+ return await request.download({ url: `/qms/inspection-Q3-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/inspection-Q3-main/get-import-template' })
+}
+
+// 完成
+export const finishInspectionQ3Main = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-Q3-main/finish?id=` + id })
+}
diff --git a/src/api/qms/inspectionRecord/InspectionRecordPackage/InspectionRecordPackage.ts b/src/api/qms/inspectionRecord/InspectionRecordPackage/InspectionRecordPackage.ts
new file mode 100644
index 0000000..cb0c2e6
--- /dev/null
+++ b/src/api/qms/inspectionRecord/InspectionRecordPackage/InspectionRecordPackage.ts
@@ -0,0 +1,13 @@
+import request from '@/config/axios'
+export interface InspectionRequestPackageVO {
+ number: string
+ packageCode: string
+ packageSpecificationCode: string
+ amount: string
+ measuringUnit: string
+}
+
+//查询包装列表
+export const getInspectionRecordPackageList = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-record-package/list?masterId=` + id })
+}
diff --git a/src/api/qms/inspectionRecord/inspectionRecordDetail/index.ts b/src/api/qms/inspectionRecord/inspectionRecordDetail/index.ts
new file mode 100644
index 0000000..16dfb87
--- /dev/null
+++ b/src/api/qms/inspectionRecord/inspectionRecordDetail/index.ts
@@ -0,0 +1,47 @@
+import request from '@/config/axios'
+
+
+
+// 查询检验申请列表
+export const getInspectionRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/inspection-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/qms/inspection-record-detail/page`, params })
+ }
+}
+// 查询检验申请列表
+export const getInspectionRecordDetailList = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-record-detail/list?masterId=` + id })
+}
+// 查询检验申请详情
+export const getInspectionRecordDetail = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-record-detail/get?id=` + id })
+}
+
+// 新增检验申请
+export const createInspectionRecordDetail = async (data) => {
+ return await request.post({ url: `/qms/inspection-record-detail/create`, data })
+}
+
+// 修改检验申请
+export const updateInspectionRecordDetail = async (data) => {
+ return await request.put({ url: `/qms/inspection-record-detail/update`, data })
+}
+
+// 删除检验申请
+export const deleteInspectionRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/qms/inspection-record-detail/delete?id=` + id })
+}
+
+// 导出检验申请 Excel
+export const exportInspectionRecordDetail = async (params) => {
+ return await request.download({ url: `/qms/inspection-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/inspection-record-detail/get-import-template' })
+}
diff --git a/src/api/qms/inspectionRecord/inspectionRecordMain/index.ts b/src/api/qms/inspectionRecord/inspectionRecordMain/index.ts
new file mode 100644
index 0000000..f5ec5d9
--- /dev/null
+++ b/src/api/qms/inspectionRecord/inspectionRecordMain/index.ts
@@ -0,0 +1,100 @@
+import request from '@/config/axios'
+
+export interface InspectionRecordMainVO {
+ number: string
+ applicationDate: localdate
+ applicationTime: Date
+ requestStartTime: Date
+ requestEndTime: Date
+ finishTime: Date
+ supplierCode: string
+ materialCode: string
+ batch: string
+ requestInspectionNum: number
+ referenceOrderCode: string
+ referenceOrderRow: number
+ referenceCertificateCode: string
+ referenceCertificateRow: number
+ inspectionSchemeCode: string
+ inspectionStageCode: string
+ applicationPackageCode: string
+ inspectionLevel: string
+ aqlValue: number
+ available: string
+}
+
+// 查询检验申请列表
+export const getInspectionRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ // delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/qms/inspection-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/qms/inspection-record-main/page`, params })
+ }
+}
+
+// 查询检验申请详情
+export const getInspectionRecordMain = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-record-main/get?id=` + id })
+}
+
+// 新增检验申请
+export const createInspectionRecordMain = async (data: InspectionRecordMainVO) => {
+ return await request.post({ url: `/qms/inspection-record-main/create`, data })
+}
+
+// 修改检验申请
+export const updateInspectionRecordMain = async (data: InspectionRecordMainVO) => {
+ return await request.put({ url: `/qms/inspection-record-main/update`, data })
+}
+// 首件检验保存
+export const updateInspectionRecordFirstMain = async (data: InspectionRecordMainVO) => {
+ return await request.put({ url: `/qms/inspection-record-main/firstInspectionUpdate`, data })
+}
+
+// 删除检验申请
+export const deleteInspectionRecordMain = async (id: number) => {
+ return await request.delete({ url: `/qms/inspection-record-main/delete?id=` + id })
+}
+
+// 导出检验申请 Excel
+export const exportInspectionRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = { ...params }
+ return await request.downloadPost({
+ url: `/qms/inspection-record-main/export-excel-senior`,
+ data
+ })
+ } else {
+ return await request.download({ url: `/qms/inspection-record-main/export-excel`, params })
+ }
+}
+
+// 导出首件检验记录 Excel
+export const exportFirstInspectionRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = { ...params }
+ return await request.downloadPost({
+ url: `/qms/inspection-record-main/export-excel-first-senior`,
+ data
+ })
+ } else {
+ return await request.download({ url: `/qms/inspection-record-main/export-excel-first`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/inspection-record-main/get-import-template' })
+}
+// 发布
+export const publishInspectionRecordMain = async (id) => {
+ return await request.put({ url: `/qms/inspection-record-main/publish?id=`+id })
+}
+
+// 执行检验任务
+export const executeInspectionRecordMain = async (data) => {
+ return await request.put({ url: `/qms/inspection-record-main/execute`, data })
+}
+
diff --git a/src/api/qms/inspectionRequest/InspectionRequestPackage.ts b/src/api/qms/inspectionRequest/InspectionRequestPackage.ts
new file mode 100644
index 0000000..34acfae
--- /dev/null
+++ b/src/api/qms/inspectionRequest/InspectionRequestPackage.ts
@@ -0,0 +1,27 @@
+import request from '@/config/axios'
+export interface InspectionRequestPackageVO {
+ number: string
+ packageCode: string
+ packageSpecificationCode: string
+ amount: string
+ measuringUnit: string
+}
+
+//查询包装列表
+export const getInspectionRequestPackageList = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-request-package/list?masterId=` + id })
+}
+// 新增检验申请
+export const createInspectionRequestPackage = async (data: InspectionRequestPackageVO) => {
+ return await request.post({ url: `/qms/inspection-request-package/create`, data })
+}
+
+// 修改检验申请
+export const updateInspectionRequestPackage = async (data: InspectionRequestPackageVO) => {
+ return await request.put({ url: `/qms/inspection-request-package/update`, data })
+}
+
+// 删除检验申请
+export const deleteInspectionRequestPackage = async (id: number) => {
+ return await request.delete({ url: `/qms/inspection-request-package/delete?id=` + id })
+}
\ No newline at end of file
diff --git a/src/api/qms/inspectionRequest/index.ts b/src/api/qms/inspectionRequest/index.ts
new file mode 100644
index 0000000..68dc89e
--- /dev/null
+++ b/src/api/qms/inspectionRequest/index.ts
@@ -0,0 +1,93 @@
+import request from '@/config/axios'
+
+export interface InspectionMainVO {
+ number: string
+ applicationDate: Date
+ applicationTime: Date
+ requestStartTime: Date
+ requestEndTime: Date
+ finishTime: Date
+ supplierCode: string
+ itemCode: string
+ batch: string
+ requestInspectionNum: number
+ referenceOrderCode: string
+ referenceOrderRow: number
+ referenceCertificateCode: string
+ referenceCertificateRow: number
+}
+
+// 查询检验申请列表
+export const getInspectionMainPage = async (params) => {
+ if (params.isSearch) {
+ // delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/inspection-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/qms/inspection-request-main/page`, params })
+ }
+}
+
+// 查询检验申请详情
+export const getInspectionMain = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-request-main/get?id=` + id })
+}
+
+// 新增检验申请
+export const createInspectionMain = async (data: InspectionMainVO) => {
+ return await request.post({ url: `/qms/inspection-request-main/create`, data })
+}
+
+// 修改检验申请
+export const updateInspectionMain = async (data: InspectionMainVO) => {
+ return await request.put({ url: `/qms/inspection-request-main/update`, data })
+}
+
+// 删除检验申请
+export const deleteInspectionMain = async (id: number) => {
+ return await request.delete({ url: `/qms/inspection-request-main/delete?id=` + id })
+}
+
+// 导出检验申请 Excel
+export const exportInspectionMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/qms/inspection-request-main/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/qms/inspection-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/inspection-request-main/get-import-template' })
+}
+// 关闭检验申请主 Excel
+export const closeInspectRequestMain = async (id) => {
+ return await request.put({ url: `/qms/inspection-request-main/close?id=` + id })
+}
+
+// 重新添加检验申请主 Excel
+export const reAddInspectRequestMain = async (id) => {
+ return await request.put({ url: `/qms/inspection-request-main/reAdd?id=` + id })
+}
+
+// 提交检验申请主 Excel
+export const submitInspectRequestMain = async (id) => {
+ return await request.put({ url: `/qms/inspection-request-main/submit?id=` + id })
+}
+
+// 审批通过检验申请主 Excel
+export const agreeInspectRequestMain = async (id) => {
+ return await request.put({ url: `/qms/inspection-request-main/agree?id=` + id })
+}
+
+// 审批驳回检验申请主 Excel
+export const refusedInspectRequestMain = async (id) => {
+ return await request.put({ url: `/qms/inspection-request-main/refused?id=` + id })
+}
+
+// 处理检验申请主 Excel
+export const handleInspectRequestMain = async (id) => {
+ return await request.put({ url: `/qms/inspection-request-main/handle?id=` + id })
+}
diff --git a/src/api/qms/inspectionScheme/index.ts b/src/api/qms/inspectionScheme/index.ts
new file mode 100644
index 0000000..42a82a5
--- /dev/null
+++ b/src/api/qms/inspectionScheme/index.ts
@@ -0,0 +1,47 @@
+import request from '@/config/axios'
+// 新增
+export const InspectionSchemeCreat = async (data) => {
+ return await request.post({ url: `/qms/inspection-scheme/create`, data })
+}
+// 编辑
+export const InspectionSchemeUpdate = async (data) => {
+ return await request.put({ url: `/qms/inspection-scheme/update`, data })
+}
+// 删除
+export const InspectionSchemeDelete = async (id) => {
+ return await request.delete({ url: `/qms/inspection-scheme/delete?id=` + id })
+}
+// 列表
+export const InspectionSchemePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return request.post({ url: '/qms/inspection-scheme/senior', data })
+ } else {
+ return await request.get({ url: `/qms/inspection-scheme/page`, params })
+ }
+}
+
+// 启用
+export const enableInspectionScheme = async (id: number) => {
+ return await request.enable({ url: `/qms/inspection-scheme/enable?id=` + id })
+}
+// 禁用
+export const disableInspectionScheme = async (id: number) => {
+ return await request.disable({ url: `/qms/inspection-scheme/disable?id=` + id })
+}
+
+// 导出检验阶段 Excel
+export const exportInspectionScheme = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/qms/inspection-scheme/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/qms/inspection-scheme/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/inspection-scheme/get-import-template' })
+}
diff --git a/src/api/qms/inspectionStage/index.ts b/src/api/qms/inspectionStage/index.ts
new file mode 100644
index 0000000..2ad0ed1
--- /dev/null
+++ b/src/api/qms/inspectionStage/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface InspectionStageVO {
+ code: string
+ masterId: number
+ stage: number
+ dynamicModifyCode: string
+ description: string
+ okTimes: number
+ okTimeStage: number
+ noOkTimes: number
+ noOkTimeStage: number
+ isStartStage: boolean
+ skipInspection: boolean
+ inspectionStringency: string
+ available: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询检验阶段列表
+export const getInspectionStagePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/inspection-stage/senior', data })
+ } else {
+ return await request.get({ url: `/qms/inspection-stage/page`, params })
+ }
+}
+
+// 查询检验阶段详情
+export const getInspectionStage = async (id: number) => {
+ return await request.get({ url: `/qms/inspection-stage/get?id=` + id })
+}
+
+// 新增检验阶段
+export const createInspectionStage = async (data: InspectionStageVO) => {
+ return await request.post({ url: `/qms/inspection-stage/create`, data })
+}
+
+// 修改检验阶段
+export const updateInspectionStage = async (data: InspectionStageVO) => {
+ return await request.put({ url: `/qms/inspection-stage/update`, data })
+}
+
+// 删除检验阶段
+export const deleteInspectionStage = async (id: number) => {
+ return await request.delete({ url: `/qms/inspection-stage/delete?id=` + id })
+}
+
+// 导出检验阶段 Excel
+export const exportInspectionStage = async (params) => {
+ return await request.download({ url: `/qms/inspection-stage/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/inspection-stage/get-import-template' })
+}
+
+
+// 查询检验阶段列表
+export const getInspectionStageNoPage = async (params) => {
+ return await request.get({ url: `/qms/inspection-stage/noPage`, params })
+}
\ No newline at end of file
diff --git a/src/api/qms/inspectionTemplate/index.ts b/src/api/qms/inspectionTemplate/index.ts
new file mode 100644
index 0000000..048c705
--- /dev/null
+++ b/src/api/qms/inspectionTemplate/index.ts
@@ -0,0 +1,52 @@
+import request from '@/config/axios'
+
+// 列表
+export const getListByTempleteCode = async (code) => {
+ return await request.get({ url: `/qms/inspection-process/getListByTempleteCode?code=` + code })
+}
+// 新增
+export const inspectionTemplateCreat = async (data) => {
+ return await request.post({ url: `/qms/programme-template/create`, data })
+}
+// 编辑
+export const inspectionTemplateUpdate = async (data) => {
+ return await request.put({ url: `/qms/programme-template/update`, data })
+}
+// 删除
+export const inspectionTemplateDelete = async (id) => {
+ return await request.delete({ url: `/qms/programme-template/delete?id=` + id })
+}
+// 列表
+export const inspectionTemplatePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return request.post({ url: '/qms/programme-template/senior', data })
+ } else {
+ return await request.get({ url: `/qms/programme-template/page`, params })
+ }
+}
+
+// 启用
+export const enableInspectionTemplate = async (id: number) => {
+ return await request.enable({ url: `/qms/programme-template/enable?id=` + id })
+}
+// 禁用
+export const disableInspectionTemplate = async (id: number) => {
+ return await request.disable({ url: `/qms/programme-template/disable?id=` + id })
+}
+
+// 导出检验模版 Excel
+export const exportInspectionTemplate = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/qms/programme-template/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/qms/programme-template/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/programme-template/get-import-template' })
+}
diff --git a/src/api/qms/qualityNotice/index.ts b/src/api/qms/qualityNotice/index.ts
new file mode 100644
index 0000000..3dcb342
--- /dev/null
+++ b/src/api/qms/qualityNotice/index.ts
@@ -0,0 +1,31 @@
+import request from '@/config/axios'
+// 列表
+export const qualityNoticePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/basic/quality-notice/senior', data })
+ } else {
+ return await request.get({ url: `/basic/quality-notice/page`, params })
+ }
+}
+// 新增
+export const qualityNoticeCreat = async (data) => {
+ return await request.post({ url: `/basic/quality-notice/create`,data})
+}
+// 编辑
+export const qualityNoticeUpdate = async (data) => {
+ return await request.put({ url: `/basic/quality-notice/update`,data})
+}
+// 删除
+export const qualityNoticeDelete = async (id) => {
+ return await request.delete({ url: `/basic/quality-notice/delete?id=`+id})
+}
+// 详情
+export const qualityNoticeDetail = async (id) => {
+ return await request.get({ url: `/basic/quality-notice/get?id=`+id})
+}
+// 详情
+export const qualityNoticePublish = async (id) => {
+ return await request.put({ url: `/basic/quality-notice/release?id=`+id})
+}
\ No newline at end of file
diff --git a/src/api/qms/sampleCode/index.ts b/src/api/qms/sampleCode/index.ts
new file mode 100644
index 0000000..8710358
--- /dev/null
+++ b/src/api/qms/sampleCode/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface SampleCodeVO {
+ id: number
+ code: string
+ batchLowLimiting: number
+ batchUpperLimiting: number
+ s1: string
+ s2: string
+ s3: string
+ s4: string
+ g1: string
+ g2: string
+ g3: string
+ available: string
+}
+
+// 查询样本字码列表
+export const getSampleCodePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/sample-code/senior', data })
+ } else {
+ return await request.get({ url: `/qms/sample-code/page`, params })
+ }
+}
+
+// 查询样本字码详情
+export const getSampleCode = async (id: number) => {
+ return await request.get({ url: `/qms/sample-code/get?id=` + id })
+}
+
+// 新增样本字码
+export const createSampleCode = async (data: SampleCodeVO) => {
+ return await request.post({ url: `/qms/sample-code/create`, data })
+}
+
+// 修改样本字码
+export const updateSampleCode = async (data: SampleCodeVO) => {
+ return await request.put({ url: `/qms/sample-code/update`, data })
+}
+
+// 删除样本字码
+export const deleteSampleCode = async (id: number) => {
+ return await request.delete({ url: `/qms/sample-code/delete?id=` + id })
+}
+
+// 导出样本字码 Excel
+export const exportSampleCode = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.downloadPost({ url: '/qms/sample-code/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/qms/sample-code/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/sample-code/get-import-template' })
+}
+
+export const getSamplingScheme = async () => {
+ return await request.get({ url: `/qms/sampling-scheme/get-available-list`})
+}
+
+// 启用
+export const enableSampleCode = async (id: number) => {
+ return await request.enable({ url: `/qms/sample-code/enable?id=` + id })
+}
+// 禁用
+export const disableSampleCode = async (id: number) => {
+ return await request.disable({ url: `/qms/sample-code/disable?id=` + id })
+}
diff --git a/src/api/qms/samplingProcess/index.ts b/src/api/qms/samplingProcess/index.ts
new file mode 100644
index 0000000..55d9675
--- /dev/null
+++ b/src/api/qms/samplingProcess/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+import { validatePercent } from '@/utils/validator'
+
+export interface SamplingProcessVO {
+ id: number
+ code: string
+ description: string
+ sampleType: string
+ evaluationMode: string
+ sampleSize: number
+ sampleProgCode: String
+ available: string
+}
+
+const rules = ref({
+ sampleSize:[
+ {validator:validatePercent,message:'百分比范围 0 ~ 100', trigger:'blur'}
+ ]
+})
+// 查询采样过程列表
+export const getSamplingProcessPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/sampling-process/senior', data })
+ } else {
+ return await request.get({ url: `/qms/sampling-process/page`, params })
+ }
+}
+
+// 查询采样过程详情
+export const getSamplingProcess = async (id: number) => {
+ return await request.get({ url: `/qms/sampling-process/get?id=` + id })
+}
+
+// 新增采样过程
+export const createSamplingProcess = async (data: SamplingProcessVO) => {
+ return await request.post({ url: `/qms/sampling-process/create`, data })
+}
+
+// 修改采样过程
+export const updateSamplingProcess = async (data: SamplingProcessVO) => {
+ return await request.put({ url: `/qms/sampling-process/update`, data })
+}
+
+// 删除采样过程
+export const deleteSamplingProcess = async (id: number) => {
+ return await request.delete({ url: `/qms/sampling-process/delete?id=` + id })
+}
+
+// 导出采样过程 Excel
+export const exportSamplingProcess = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/qms/sampling-process/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/qms/sampling-process/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/sampling-process/get-import-template' })
+}
+
+export const getSamplingScheme = async () => {
+ return await request.get({ url: `/qms/sampling-scheme/get-available-list`})
+}
+// 启用
+export const enableSamplingProcess = async (id: number) => {
+ return await request.enable({ url: `/qms/sampling-process/enable?id=` + id })
+}
+// 禁用
+export const disableSamplingProcess = async (id: number) => {
+ return await request.disable({ url: `/qms/sampling-process/disable?id=` + id })
+}
diff --git a/src/api/qms/samplingScheme/index.ts b/src/api/qms/samplingScheme/index.ts
new file mode 100644
index 0000000..8512eea
--- /dev/null
+++ b/src/api/qms/samplingScheme/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface SamplingSchemeVO {
+ id: number
+ code: string
+ description: string
+ available: string
+}
+
+// 查询采样方案列表
+export const getSamplingSchemePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/qms/sampling-scheme/senior', data })
+ } else {
+ return await request.get({ url: `/qms/sampling-scheme/page`, params })
+ }
+}
+
+// 查询采样方案详情
+export const getSamplingScheme = async (id: number) => {
+ return await request.get({ url: `/qms/sampling-scheme/get?id=` + id })
+}
+
+// 新增采样方案
+export const createSamplingScheme = async (data: SamplingSchemeVO) => {
+ return await request.post({ url: `/qms/sampling-scheme/create`, data })
+}
+
+// 修改采样方案
+export const updateSamplingScheme = async (data: SamplingSchemeVO) => {
+ return await request.put({ url: `/qms/sampling-scheme/update`, data })
+}
+
+// 删除采样方案
+export const deleteSamplingScheme = async (id: number) => {
+ return await request.delete({ url: `/qms/sampling-scheme/delete?id=` + id })
+}
+
+// 导出采样方案 Excel
+export const exportSamplingScheme = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.downloadPost({ url: '/qms/sampling-scheme/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/qms/sampling-scheme/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/sampling-scheme/get-import-template' })
+}
+
+// 启用
+export const enableSamplingScheme = async (id: number) => {
+ return await request.enable({ url: `/qms/sampling-scheme/enable?id=` + id })
+}
+// 禁用
+export const disableSamplingScheme = async (id: number) => {
+ return await request.disable({ url: `/qms/sampling-scheme/disable?id=` + id })
+}
diff --git a/src/api/qms/selectedProject/index.ts b/src/api/qms/selectedProject/index.ts
new file mode 100644
index 0000000..941fc48
--- /dev/null
+++ b/src/api/qms/selectedProject/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface SelectedProjectVO {
+ id: number
+ code: string
+ dictionaryCode: string
+ dictionaryValue: string
+ estimateCode: string
+ defectLevel: string
+ available: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询选定集项目列表
+export const getSelectedProjectPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/selected-project/senior', data })
+ } else {
+ return await request.get({ url: `/qms/selected-project/page`, params })
+ }
+}
+
+// 查询选定集项目详情
+export const getSelectedProject = async (id: number) => {
+ return await request.get({ url: `/qms/selected-project/get?id=` + id })
+}
+
+// 新增选定集项目
+export const createSelectedProject = async (data: SelectedProjectVO) => {
+ return await request.post({ url: `/qms/selected-project/create`, data })
+}
+
+// 修改选定集项目
+export const updateSelectedProject = async (data: SelectedProjectVO) => {
+ return await request.put({ url: `/qms/selected-project/update`, data })
+}
+
+// 删除选定集项目
+export const deleteSelectedProject = async (id: number) => {
+ return await request.delete({ url: `/qms/selected-project/delete?id=` + id })
+}
+
+// 导出选定集项目 Excel
+export const exportSelectedProject = async (params) => {
+ return await request.download({ url: `/qms/selected-project/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/selected-project/get-import-template' })
+}
+
+
+// 查询选定集项目列表
+export const getSelectedProjectNoPage = async (params) => {
+ return await request.get({ url: `/qms/selected-project/noPage`, params })
+}
\ No newline at end of file
diff --git a/src/api/qms/selectedSet/index.ts b/src/api/qms/selectedSet/index.ts
new file mode 100644
index 0000000..cf11448
--- /dev/null
+++ b/src/api/qms/selectedSet/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface SelectedSetVO {
+ id: number
+ code: string
+ description: string
+ classification: string
+ available: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询选定集列表
+export const getSelectedSetPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/qms/selected-set/senior', data })
+ } else {
+ return await request.get({ url: `/qms/selected-set/page`, params })
+ }
+}
+
+// 查询选定集详情
+export const getSelectedSet = async (id: number) => {
+ return await request.get({ url: `/qms/selected-set/get?id=` + id })
+}
+
+// 新增选定集
+export const createSelectedSet = async (data: SelectedSetVO) => {
+ return await request.post({ url: `/qms/selected-set/create`, data })
+}
+
+// 修改选定集
+export const updateSelectedSet = async (data: SelectedSetVO) => {
+ return await request.put({ url: `/qms/selected-set/update`, data })
+}
+
+// 删除选定集
+export const deleteSelectedSet = async (id: number) => {
+ return await request.delete({ url: `/qms/selected-set/delete?id=` + id })
+}
+
+// 导出选定集 Excel
+export const exportSelectedSet = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/qms/selected-set/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/qms/selected-set/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/qms/selected-set/get-import-template' })
+}
+
+// 启用
+export const enableSelectedSet = async (id: number) => {
+ return await request.enable({ url: `/qms/selected-set/enable?id=` + id })
+}
+// 禁用
+export const disableSelectedSet = async (id: number) => {
+ return await request.disable({ url: `/qms/selected-set/disable?id=` + id })
+}
diff --git a/src/api/redis/index.ts b/src/api/redis/index.ts
new file mode 100644
index 0000000..b716359
--- /dev/null
+++ b/src/api/redis/index.ts
@@ -0,0 +1,21 @@
+import request from '@/config/axios'
+
+export interface RedisVO {
+ key: string
+ value: string
+}
+
+// 加入缓存
+export const addRedis = async (data:RedisVO) => {
+ return await request.post({ url: `/infra/redis/set`, data })
+}
+
+// 获取缓存
+export const getRedis = async (key) => {
+ return await request.get({ url: `/infra/redis/get?key=` + key})
+}
+
+// 删除物料清单
+export const deleteRedis = async (key) => {
+ return await request.delete({ url: `/infra/redis/delete?key=` + key})
+}
\ No newline at end of file
diff --git a/src/api/scp/index.ts b/src/api/scp/index.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/api/system/area/index.ts b/src/api/system/area/index.ts
new file mode 100644
index 0000000..b7da941
--- /dev/null
+++ b/src/api/system/area/index.ts
@@ -0,0 +1,19 @@
+import request from '@/config/axios'
+
+// 获得地区树
+export const getAreaTree = async () => {
+ return await request.get({ url: '/system/area/tree' })
+}
+
+export const getChildrenArea = async (id: number) => {
+ return await request.get({ url: '/system/area/get-children?id=' + id })
+}
+
+export const getAreaListByIds = async (ids) => {
+ return await request.get({ url: '/system/area/get-by-ids?ids=' + ids })
+}
+
+// 获得 IP 对应的地区名
+export const getAreaByIp = async (ip: string) => {
+ return await request.get({ url: '/system/area/get-by-ip?ip=' + ip })
+}
diff --git a/src/api/system/dept/index.ts b/src/api/system/dept/index.ts
new file mode 100644
index 0000000..d995f13
--- /dev/null
+++ b/src/api/system/dept/index.ts
@@ -0,0 +1,43 @@
+import request from '@/config/axios'
+
+export interface DeptVO {
+ id?: number
+ name: string
+ parentId: number
+ status: number
+ sort: number
+ leaderUserId: number
+ phone: string
+ email: string
+ createTime: Date
+}
+
+// 查询部门(精简)列表
+export const getSimpleDeptList = async (): Promise => {
+ return await request.get({ url: '/system/dept/list-all-simple' })
+}
+
+// 查询部门列表
+export const getDeptPage = async (params: PageParam) => {
+ return await request.get({ url: '/system/dept/list', params })
+}
+
+// 查询部门详情
+export const getDept = async (id: number) => {
+ return await request.get({ url: '/system/dept/get?id=' + id })
+}
+
+// 新增部门
+export const createDept = async (data: DeptVO) => {
+ return await request.post({ url: '/system/dept/create', data: data })
+}
+
+// 修改部门
+export const updateDept = async (params: DeptVO) => {
+ return await request.put({ url: '/system/dept/update', data: params })
+}
+
+// 删除部门
+export const deleteDept = async (id: number) => {
+ return await request.delete({ url: '/system/dept/delete?id=' + id })
+}
diff --git a/src/api/system/dict/dict.data.ts b/src/api/system/dict/dict.data.ts
new file mode 100644
index 0000000..faa0dca
--- /dev/null
+++ b/src/api/system/dict/dict.data.ts
@@ -0,0 +1,54 @@
+import request from '@/config/axios'
+
+export type DictDataVO = {
+ id: number | undefined
+ sort: number | undefined
+ label: string
+ value: string
+ dictType: string
+ status: number
+ colorType: string
+ cssClass: string
+ remark: string
+ createTime: Date
+}
+
+// 查询字典数据(精简)列表
+export const listSimpleDictData = () => {
+ return request.get({ url: '/system/dict-data/list-all-simple' })
+}
+
+// 查询字典数据列表
+export const getDictDataPage = (params: PageParam) => {
+ return request.get({ url: '/system/dict-data/page', params })
+}
+
+// 查询字典数据列表根据类型
+export const queryByDictType = (dictType: number) => {
+ return request.get({ url: '/system/dict-data/queryByDictType?dictType=' + dictType })
+}
+
+// 查询字典数据详情
+export const getDictData = (id: string) => {
+ return request.get({ url: '/system/dict-data/get?id=' + id })
+}
+
+// 新增字典数据
+export const createDictData = (data: DictDataVO) => {
+ return request.post({ url: '/system/dict-data/create', data })
+}
+
+// 修改字典数据
+export const updateDictData = (data: DictDataVO) => {
+ return request.put({ url: '/system/dict-data/update', data })
+}
+
+// 删除字典数据
+export const deleteDictData = (id: number) => {
+ return request.delete({ url: '/system/dict-data/delete?id=' + id })
+}
+
+// 导出字典类型数据
+export const exportDictData = (params) => {
+ return request.get({ url: '/system/dict-data/export', params })
+}
diff --git a/src/api/system/dict/dict.type.ts b/src/api/system/dict/dict.type.ts
new file mode 100644
index 0000000..d88c889
--- /dev/null
+++ b/src/api/system/dict/dict.type.ts
@@ -0,0 +1,54 @@
+import request from '@/config/axios'
+
+export type DictTypeVO = {
+ id: number | undefined
+ name: string
+ type: string
+ status: number
+ remark: string
+ createTime: Date
+}
+
+// 查询字典(精简)列表
+export const getSimpleDictTypeList = () => {
+ return request.get({ url: '/system/dict-type/list-all-simple' })
+}
+
+// 查询字典列表
+export const getDictTypePage = (params: PageParam) => {
+ return request.get({ url: '/system/dict-type/page', params })
+}
+
+// 查询字典详情
+export const getDictType = (id: number) => {
+ return request.get({ url: '/system/dict-type/get?id=' + id })
+}
+
+// 新增字典
+export const createDictType = (data: DictTypeVO) => {
+ return request.post({ url: '/system/dict-type/create', data })
+}
+
+// 修改字典
+export const updateDictType = (data: DictTypeVO) => {
+ return request.put({ url: '/system/dict-type/update', data })
+}
+
+// 删除字典
+export const deleteDictType = (id: number) => {
+ return request.delete({ url: '/system/dict-type/delete?id=' + id })
+}
+// 导出字典类型
+export const exportDictType = (params) => {
+ return request.get({ url: '/system/dict-type/export', params })
+}
+
+
+// 查询字典列表
+export const getDictTypeAndData = (classes: string | null) => {
+ let url = '/system/dict-type/list-all-data-all';
+ if (classes !== null) {
+ url += `?classes=${classes}`;
+ }
+ return request.get({ url });
+}
\ No newline at end of file
diff --git a/src/api/system/errorCode/index.ts b/src/api/system/errorCode/index.ts
new file mode 100644
index 0000000..8a86a63
--- /dev/null
+++ b/src/api/system/errorCode/index.ts
@@ -0,0 +1,40 @@
+import request from '@/config/axios'
+
+export interface ErrorCodeVO {
+ id: number | undefined
+ type: number
+ applicationName: string
+ code: number | undefined
+ message: string
+ memo: string
+ createTime: Date
+}
+
+// 查询错误码列表
+export const getErrorCodePage = (params: PageParam) => {
+ return request.get({ url: '/system/error-code/page', params })
+}
+
+// 查询错误码详情
+export const getErrorCode = (id: number) => {
+ return request.get({ url: '/system/error-code/get?id=' + id })
+}
+
+// 新增错误码
+export const createErrorCode = (data: ErrorCodeVO) => {
+ return request.post({ url: '/system/error-code/create', data })
+}
+
+// 修改错误码
+export const updateErrorCode = (data: ErrorCodeVO) => {
+ return request.put({ url: '/system/error-code/update', data })
+}
+
+// 删除错误码
+export const deleteErrorCode = (id: number) => {
+ return request.delete({ url: '/system/error-code/delete?id=' + id })
+}
+// 导出错误码
+export const excelErrorCode = (params) => {
+ return request.download({ url: '/system/error-code/export-excel', params })
+}
diff --git a/src/api/system/loginLog/index.ts b/src/api/system/loginLog/index.ts
new file mode 100644
index 0000000..f275c3e
--- /dev/null
+++ b/src/api/system/loginLog/index.ts
@@ -0,0 +1,24 @@
+import request from '@/config/axios'
+
+export interface LoginLogVO {
+ id: number
+ logType: number
+ traceId: number
+ userId: number
+ userType: number
+ username: string
+ status: number
+ userIp: string
+ userAgent: string
+ createTime: Date
+}
+
+// 查询登录日志列表
+export const getLoginLogPage = (params: PageParam) => {
+ return request.get({ url: '/system/login-log/page', params })
+}
+
+// 导出登录日志
+export const exportLoginLog = (params) => {
+ return request.download({ url: '/system/login-log/export', params })
+}
diff --git a/src/api/system/mail/account/index.ts b/src/api/system/mail/account/index.ts
new file mode 100644
index 0000000..9e10c92
--- /dev/null
+++ b/src/api/system/mail/account/index.ts
@@ -0,0 +1,41 @@
+import request from '@/config/axios'
+
+export interface MailAccountVO {
+ id: number
+ mail: string
+ username: string
+ password: string
+ host: string
+ port: number
+ sslEnable: boolean
+}
+
+// 查询邮箱账号列表
+export const getMailAccountPage = async (params: PageParam) => {
+ return await request.get({ url: '/system/mail-account/page', params })
+}
+
+// 查询邮箱账号详情
+export const getMailAccount = async (id: number) => {
+ return await request.get({ url: '/system/mail-account/get?id=' + id })
+}
+
+// 新增邮箱账号
+export const createMailAccount = async (data: MailAccountVO) => {
+ return await request.post({ url: '/system/mail-account/create', data })
+}
+
+// 修改邮箱账号
+export const updateMailAccount = async (data: MailAccountVO) => {
+ return await request.put({ url: '/system/mail-account/update', data })
+}
+
+// 删除邮箱账号
+export const deleteMailAccount = async (id: number) => {
+ return await request.delete({ url: '/system/mail-account/delete?id=' + id })
+}
+
+// 获得邮箱账号精简列表
+export const getSimpleMailAccountList = async () => {
+ return request.get({ url: '/system/mail-account/list-all-simple' })
+}
diff --git a/src/api/system/mail/log/index.ts b/src/api/system/mail/log/index.ts
new file mode 100644
index 0000000..13172a7
--- /dev/null
+++ b/src/api/system/mail/log/index.ts
@@ -0,0 +1,30 @@
+import request from '@/config/axios'
+
+export interface MailLogVO {
+ id: number
+ userId: number
+ userType: number
+ toMail: string
+ accountId: number
+ fromMail: string
+ templateId: number
+ templateCode: string
+ templateNickname: string
+ templateTitle: string
+ templateContent: string
+ templateParams: string
+ sendStatus: number
+ sendTime: Date
+ sendMessageId: string
+ sendException: string
+}
+
+// 查询邮件日志列表
+export const getMailLogPage = async (params: PageParam) => {
+ return await request.get({ url: '/system/mail-log/page', params })
+}
+
+// 查询邮件日志详情
+export const getMailLog = async (id: number) => {
+ return await request.get({ url: '/system/mail-log/get?id=' + id })
+}
diff --git a/src/api/system/mail/template/index.ts b/src/api/system/mail/template/index.ts
new file mode 100644
index 0000000..60b4048
--- /dev/null
+++ b/src/api/system/mail/template/index.ts
@@ -0,0 +1,55 @@
+import request from '@/config/axios'
+
+export interface MailTemplateVO {
+ id: number
+ name: string
+ code: string
+ accountId: number
+ nickname: string
+ title: string
+ content: string
+ params: string
+ status: number
+ remark: string
+}
+
+export interface MailSendReqVO {
+ mail: string
+ templateCode: string
+ templateParams: Map
+}
+
+// 查询邮件模版列表
+export const getMailTemplatePage = async (params: PageParam) => {
+ return await request.get({ url: '/system/mail-template/page', params })
+}
+
+// 查询邮件模版详情
+export const getMailTemplate = async (id: number) => {
+ return await request.get({ url: '/system/mail-template/get?id=' + id })
+}
+
+// 新增邮件模版
+export const createMailTemplate = async (data: MailTemplateVO) => {
+ return await request.post({ url: '/system/mail-template/create', data })
+}
+
+// 修改邮件模版
+export const updateMailTemplate = async (data: MailTemplateVO) => {
+ return await request.put({ url: '/system/mail-template/update', data })
+}
+
+// 删除邮件模版
+export const deleteMailTemplate = async (id: number) => {
+ return await request.delete({ url: '/system/mail-template/delete?id=' + id })
+}
+
+// 发送邮件
+export const sendMail = (data: MailSendReqVO) => {
+ return request.post({ url: '/system/mail-template/send-mail', data })
+}
+
+// 查询邮件模版列表不分页
+export const getMailTemplateNoPage = async (params: PageParam) => {
+ return await request.get({ url: '/system/mail-template/noPage', params })
+}
\ No newline at end of file
diff --git a/src/api/system/menu/index.ts b/src/api/system/menu/index.ts
new file mode 100644
index 0000000..4bb9a87
--- /dev/null
+++ b/src/api/system/menu/index.ts
@@ -0,0 +1,49 @@
+import request from '@/config/axios'
+
+export interface MenuVO {
+ id: number
+ name: string
+ permission: string
+ type: number
+ sort: number
+ parentId: number
+ path: string
+ icon: string
+ component: string
+ componentName?: string
+ status: number
+ visible: boolean
+ keepAlive: boolean
+ alwaysShow?: boolean
+ createTime: Date
+}
+
+// 查询菜单(精简)列表
+export const getSimpleMenusList = () => {
+ return request.get({ url: '/system/menu/list-all-simple' })
+}
+
+// 查询菜单列表
+export const getMenuList = (params) => {
+ return request.get({ url: '/system/menu/list', params })
+}
+
+// 获取菜单详情
+export const getMenu = (id: number) => {
+ return request.get({ url: '/system/menu/get?id=' + id })
+}
+
+// 新增菜单
+export const createMenu = (data: MenuVO) => {
+ return request.post({ url: '/system/menu/create', data })
+}
+
+// 修改菜单
+export const updateMenu = (data: MenuVO) => {
+ return request.put({ url: '/system/menu/update', data })
+}
+
+// 删除菜单
+export const deleteMenu = (id: number) => {
+ return request.delete({ url: '/system/menu/delete?id=' + id })
+}
diff --git a/src/api/system/messageSet/index.ts b/src/api/system/messageSet/index.ts
new file mode 100644
index 0000000..d7814b7
--- /dev/null
+++ b/src/api/system/messageSet/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface MessageSetVO {
+ id: number
+ tableName: string
+ action: number
+ available: string
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询消息设置列表
+export const getMessageSetPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/system/message-set/senior', data })
+ } else {
+ return await request.get({ url: `/system/message-set/page`, params })
+ }
+}
+
+// 查询消息设置详情
+export const getMessageSet = async (id: number) => {
+ return await request.get({ url: `/system/message-set/get?id=` + id })
+}
+
+// 新增消息设置
+export const createMessageSet = async (data: MessageSetVO) => {
+ return await request.post({ url: `/system/message-set/create`, data })
+}
+
+// 修改消息设置
+export const updateMessageSet = async (data: MessageSetVO) => {
+ return await request.put({ url: `/system/message-set/update`, data })
+}
+
+// 删除消息设置
+export const deleteMessageSet = async (id: number) => {
+ return await request.delete({ url: `/system/message-set/delete?id=` + id })
+}
+
+// 导出消息设置 Excel
+export const exportMessageSet = async (params) => {
+ return await request.download({ url: `/system/message-set/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/system/message-set/get-import-template' })
+}
+
+// 查询消息设置列表不分页
+export const getMessageSetNoPage = async (params) => {
+ return await request.get({ url: `/system/message-set/noPage`, params })
+}
diff --git a/src/api/system/notice/index.ts b/src/api/system/notice/index.ts
new file mode 100644
index 0000000..62bf525
--- /dev/null
+++ b/src/api/system/notice/index.ts
@@ -0,0 +1,37 @@
+import request from '@/config/axios'
+
+export interface NoticeVO {
+ id: number | undefined
+ title: string
+ type: number
+ content: string
+ status: number
+ remark: string
+ creator: string
+ createTime: Date
+}
+
+// 查询公告列表
+export const getNoticePage = (params: PageParam) => {
+ return request.get({ url: '/system/notice/page', params })
+}
+
+// 查询公告详情
+export const getNotice = (id: number) => {
+ return request.get({ url: '/system/notice/get?id=' + id })
+}
+
+// 新增公告
+export const createNotice = (data: NoticeVO) => {
+ return request.post({ url: '/system/notice/create', data })
+}
+
+// 修改公告
+export const updateNotice = (data: NoticeVO) => {
+ return request.put({ url: '/system/notice/update', data })
+}
+
+// 删除公告
+export const deleteNotice = (id: number) => {
+ return request.delete({ url: '/system/notice/delete?id=' + id })
+}
diff --git a/src/api/system/notify/message/index.ts b/src/api/system/notify/message/index.ts
new file mode 100644
index 0000000..29036b9
--- /dev/null
+++ b/src/api/system/notify/message/index.ts
@@ -0,0 +1,48 @@
+import request from '@/config/axios'
+import qs from 'qs'
+
+export interface NotifyMessageVO {
+ id: number
+ userId: number
+ userType: number
+ templateId: number
+ templateCode: string
+ templateNickname: string
+ templateContent: string
+ templateType: number
+ templateParams: string
+ readStatus: boolean
+ readTime: Date
+}
+
+// 查询站内信消息列表
+export const getNotifyMessagePage = async (params: PageParam) => {
+ return await request.get({ url: '/system/notify-message/page', params })
+}
+
+// 获得我的站内信分页
+export const getMyNotifyMessagePage = async (params: PageParam) => {
+ return await request.get({ url: '/system/notify-message/my-page', params })
+}
+
+// 批量标记已读
+export const updateNotifyMessageRead = async (ids) => {
+ return await request.put({
+ url: '/system/notify-message/update-read?' + qs.stringify({ ids: ids }, { indices: false })
+ })
+}
+
+// 标记所有站内信为已读
+export const updateAllNotifyMessageRead = async () => {
+ return await request.put({ url: '/system/notify-message/update-all-read' })
+}
+
+// 获取当前用户的最新站内信列表
+export const getUnreadNotifyMessageList = async () => {
+ return await request.get({ url: '/system/notify-message/get-unread-list' })
+}
+
+// 获得当前用户的未读站内信数量
+export const getUnreadNotifyMessageCount = async () => {
+ return await request.get({ url: '/system/notify-message/get-unread-count' })
+}
diff --git a/src/api/system/notify/template/index.ts b/src/api/system/notify/template/index.ts
new file mode 100644
index 0000000..fd7b5ac
--- /dev/null
+++ b/src/api/system/notify/template/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface NotifyTemplateVO {
+ id?: number
+ name: string
+ nickname: string
+ code: string
+ roleIds: []
+ content: string
+ type: number
+ params: string
+ status: number
+ remark: string
+ roleIdList: []
+ deptIdList: []
+ postIdList: []
+ userIdList: []
+}
+
+export interface NotifySendReqVO {
+ userId: number | null
+ templateCode: string
+ templateParams: Map
+}
+
+// 查询站内信模板列表
+export const getNotifyTemplatePage = async (params: PageParam) => {
+ return await request.get({ url: '/system/notify-template/page', params })
+}
+
+// 查询站内信模板详情
+export const getNotifyTemplate = async (id: number) => {
+ return await request.get({ url: '/system/notify-template/get?id=' + id })
+}
+
+// 新增站内信模板
+export const createNotifyTemplate = async (data: NotifyTemplateVO) => {
+ return await request.post({ url: '/system/notify-template/create', data })
+}
+
+// 修改站内信模板
+export const updateNotifyTemplate = async (data: NotifyTemplateVO) => {
+ return await request.put({ url: '/system/notify-template/update', data })
+}
+
+// 删除站内信模板
+export const deleteNotifyTemplate = async (id: number) => {
+ return await request.delete({ url: '/system/notify-template/delete?id=' + id })
+}
+
+// 发送站内信
+export const sendNotify = (data: NotifySendReqVO) => {
+ return request.post({ url: '/system/notify-template/send-notify', data })
+}
+
+// 查询站内信模板列表不分页
+export const getNotifyTemplateNoPage = async (params: PageParam) => {
+ return await request.get({ url: '/system/notify-template/noPage', params })
+}
diff --git a/src/api/system/oauth2/client.ts b/src/api/system/oauth2/client.ts
new file mode 100644
index 0000000..6f71aca
--- /dev/null
+++ b/src/api/system/oauth2/client.ts
@@ -0,0 +1,47 @@
+import request from '@/config/axios'
+
+export interface OAuth2ClientVO {
+ id: number
+ clientId: string
+ secret: string
+ name: string
+ logo: string
+ description: string
+ status: number
+ accessTokenValiditySeconds: number
+ refreshTokenValiditySeconds: number
+ redirectUris: string[]
+ autoApprove: boolean
+ authorizedGrantTypes: string[]
+ scopes: string[]
+ authorities: string[]
+ resourceIds: string[]
+ additionalInformation: string
+ isAdditionalInformationJson: boolean
+ createTime: Date
+}
+
+// 查询 OAuth2 客户端的列表
+export const getOAuth2ClientPage = (params: PageParam) => {
+ return request.get({ url: '/system/oauth2-client/page', params })
+}
+
+// 查询 OAuth2 客户端的详情
+export const getOAuth2Client = (id: number) => {
+ return request.get({ url: '/system/oauth2-client/get?id=' + id })
+}
+
+// 新增 OAuth2 客户端
+export const createOAuth2Client = (data: OAuth2ClientVO) => {
+ return request.post({ url: '/system/oauth2-client/create', data })
+}
+
+// 修改 OAuth2 客户端
+export const updateOAuth2Client = (data: OAuth2ClientVO) => {
+ return request.put({ url: '/system/oauth2-client/update', data })
+}
+
+// 删除 OAuth2
+export const deleteOAuth2Client = (id: number) => {
+ return request.delete({ url: '/system/oauth2-client/delete?id=' + id })
+}
diff --git a/src/api/system/oauth2/token.ts b/src/api/system/oauth2/token.ts
new file mode 100644
index 0000000..ac89ae8
--- /dev/null
+++ b/src/api/system/oauth2/token.ts
@@ -0,0 +1,22 @@
+import request from '@/config/axios'
+
+export interface OAuth2TokenVO {
+ id: number
+ accessToken: string
+ refreshToken: string
+ userId: number
+ userType: number
+ clientId: string
+ createTime: Date
+ expiresTime: Date
+}
+
+// 查询 token列表
+export const getAccessTokenPage = (params: PageParam) => {
+ return request.get({ url: '/system/oauth2-token/page', params })
+}
+
+// 删除 token
+export const deleteAccessToken = (accessToken: string) => {
+ return request.delete({ url: '/system/oauth2-token/delete?accessToken=' + accessToken })
+}
diff --git a/src/api/system/operatelog/index.ts b/src/api/system/operatelog/index.ts
new file mode 100644
index 0000000..848a533
--- /dev/null
+++ b/src/api/system/operatelog/index.ts
@@ -0,0 +1,33 @@
+import request from '@/config/axios'
+
+export type OperateLogVO = {
+ id: number
+ userNickname: string
+ traceId: string
+ userId: number
+ module: string
+ name: string
+ type: number
+ content: string
+ exts: Map
+ requestMethod: string
+ requestUrl: string
+ userIp: string
+ userAgent: string
+ javaMethod: string
+ javaMethodArgs: string
+ startTime: Date
+ duration: number
+ resultCode: number
+ resultMsg: string
+ resultData: string
+}
+
+// 查询操作日志列表
+export const getOperateLogPage = (params: PageParam) => {
+ return request.get({ url: '/system/operate-log/page', params })
+}
+// 导出操作日志
+export const exportOperateLog = (params) => {
+ return request.download({ url: '/system/operate-log/export', params })
+}
diff --git a/src/api/system/password/index.ts b/src/api/system/password/index.ts
new file mode 100644
index 0000000..13d65aa
--- /dev/null
+++ b/src/api/system/password/index.ts
@@ -0,0 +1,30 @@
+import request from '@/config/axios'
+
+export interface PassWordConfigVO {
+ id: number
+ status: boolean
+ ruleLevel: string
+ ruleDesc: string
+ tryCount: number
+ lockHours: number
+ updatePeriod: number
+ dayTryCount: number
+}
+// 获取密码策略
+export const getConfig = () => {
+ return request.get({ url: '/system/password/getConfig' })
+}
+
+// 设置密码策略
+export const setConfig = (data: PassWordConfigVO) => {
+ return request.post({ url: '/system/password/setConfig', data })
+}
+
+// 获取密码复杂度
+export const getRuleList = () => {
+ return request.get({ url: '/system/password/getRuleList'})
+}
+// 验证密码是否过期
+export const validateResetTime = (userId:number) => {
+ return request.get({ url: '/system/password/validateResetTime?userId=' + userId})
+}
diff --git a/src/api/system/permission/index.ts b/src/api/system/permission/index.ts
new file mode 100644
index 0000000..b3c7696
--- /dev/null
+++ b/src/api/system/permission/index.ts
@@ -0,0 +1,42 @@
+import request from '@/config/axios'
+
+export interface PermissionAssignUserRoleReqVO {
+ userId: number
+ roleIds: number[]
+}
+
+export interface PermissionAssignRoleMenuReqVO {
+ roleId: number
+ menuIds: number[]
+}
+
+export interface PermissionAssignRoleDataScopeReqVO {
+ roleId: number
+ dataScope: number
+ dataScopeDeptIds: number[]
+}
+
+// 查询角色拥有的菜单权限
+export const getRoleMenuList = async (roleId: number) => {
+ return await request.get({ url: '/system/permission/list-role-menus?roleId=' + roleId })
+}
+
+// 赋予角色菜单权限
+export const assignRoleMenu = async (data: PermissionAssignRoleMenuReqVO) => {
+ return await request.post({ url: '/system/permission/assign-role-menu', data })
+}
+
+// 赋予角色数据权限
+export const assignRoleDataScope = async (data: PermissionAssignRoleDataScopeReqVO) => {
+ return await request.post({ url: '/system/permission/assign-role-data-scope', data })
+}
+
+// 查询用户拥有的角色数组
+export const getUserRoleList = async (userId: number) => {
+ return await request.get({ url: '/system/permission/list-user-roles?userId=' + userId })
+}
+
+// 赋予用户角色
+export const assignUserRole = async (data: PermissionAssignUserRoleReqVO) => {
+ return await request.post({ url: '/system/permission/assign-user-role', data })
+}
diff --git a/src/api/system/post/index.ts b/src/api/system/post/index.ts
new file mode 100644
index 0000000..405db38
--- /dev/null
+++ b/src/api/system/post/index.ts
@@ -0,0 +1,46 @@
+import request from '@/config/axios'
+
+export interface PostVO {
+ id?: number
+ name: string
+ code: string
+ sort: number
+ status: number
+ remark: string
+ createTime?: Date
+}
+
+// 查询岗位列表
+export const getPostPage = async (params: PageParam) => {
+ return await request.get({ url: '/system/post/page', params })
+}
+
+// 获取岗位精简信息列表
+export const getSimplePostList = async (): Promise => {
+ return await request.get({ url: '/system/post/list-all-simple' })
+}
+
+// 查询岗位详情
+export const getPost = async (id: number) => {
+ return await request.get({ url: '/system/post/get?id=' + id })
+}
+
+// 新增岗位
+export const createPost = async (data: PostVO) => {
+ return await request.post({ url: '/system/post/create', data })
+}
+
+// 修改岗位
+export const updatePost = async (data: PostVO) => {
+ return await request.put({ url: '/system/post/update', data })
+}
+
+// 删除岗位
+export const deletePost = async (id: number) => {
+ return await request.delete({ url: '/system/post/delete?id=' + id })
+}
+
+// 导出岗位
+export const exportPost = async (params) => {
+ return await request.download({ url: '/system/post/export', params })
+}
diff --git a/src/api/system/role/index.ts b/src/api/system/role/index.ts
new file mode 100644
index 0000000..ac8b3e7
--- /dev/null
+++ b/src/api/system/role/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface RoleVO {
+ id: number
+ name: string
+ code: string
+ sort: number
+ status: number
+ type: number
+ dataScope: number
+ dataScopeDeptIds: number[]
+ createTime: Date
+}
+
+export interface UpdateStatusReqVO {
+ id: number
+ status: number
+}
+
+// 查询角色列表
+export const getRolePage = async (params: PageParam) => {
+ return await request.get({ url: '/system/role/page', params })
+}
+
+// 查询角色(精简)列表
+export const getSimpleRoleList = async (): Promise => {
+ return await request.get({ url: '/system/role/list-all-simple' })
+}
+
+// 查询角色详情
+export const getRole = async (id: number) => {
+ return await request.get({ url: '/system/role/get?id=' + id })
+}
+
+// 新增角色
+export const createRole = async (data: RoleVO) => {
+ return await request.post({ url: '/system/role/create', data })
+}
+
+// 修改角色
+export const updateRole = async (data: RoleVO) => {
+ return await request.put({ url: '/system/role/update', data })
+}
+
+// 修改角色状态
+export const updateRoleStatus = async (data: UpdateStatusReqVO) => {
+ return await request.put({ url: '/system/role/update-status', data })
+}
+
+// 删除角色
+export const deleteRole = async (id: number) => {
+ return await request.delete({ url: '/system/role/delete?id=' + id })
+}
+
+// 导出角色
+export const exportRole = (params) => {
+ return request.download({
+ url: '/system/role/export-excel',
+ params
+ })
+}
+
+// 查询角色列表
+export const getRoleNoPage = async (params: PageParam) => {
+ return await request.get({ url: '/system/role/noPage', params })
+}
diff --git a/src/api/system/sensitiveWord/index.ts b/src/api/system/sensitiveWord/index.ts
new file mode 100644
index 0000000..1116226
--- /dev/null
+++ b/src/api/system/sensitiveWord/index.ts
@@ -0,0 +1,58 @@
+import request from '@/config/axios'
+import qs from 'qs'
+
+export interface SensitiveWordVO {
+ id: number
+ name: string
+ status: number
+ description: string
+ tags: string[]
+ createTime: Date
+}
+
+export interface SensitiveWordTestReqVO {
+ text: string
+ tag: string[]
+}
+
+// 查询敏感词列表
+export const getSensitiveWordPage = (params: PageParam) => {
+ return request.get({ url: '/system/sensitive-word/page', params })
+}
+
+// 查询敏感词详情
+export const getSensitiveWord = (id: number) => {
+ return request.get({ url: '/system/sensitive-word/get?id=' + id })
+}
+
+// 新增敏感词
+export const createSensitiveWord = (data: SensitiveWordVO) => {
+ return request.post({ url: '/system/sensitive-word/create', data })
+}
+
+// 修改敏感词
+export const updateSensitiveWord = (data: SensitiveWordVO) => {
+ return request.put({ url: '/system/sensitive-word/update', data })
+}
+
+// 删除敏感词
+export const deleteSensitiveWord = (id: number) => {
+ return request.delete({ url: '/system/sensitive-word/delete?id=' + id })
+}
+
+// 导出敏感词
+export const exportSensitiveWord = (params) => {
+ return request.download({ url: '/system/sensitive-word/export-excel', params })
+}
+
+// 获取所有敏感词的标签数组
+export const getSensitiveWordTagList = () => {
+ return request.get({ url: '/system/sensitive-word/get-tags' })
+}
+
+// 获得文本所包含的不合法的敏感词数组
+export const validateText = (query: SensitiveWordTestReqVO) => {
+ return request.get({
+ url: '/system/sensitive-word/validate-text?' + qs.stringify(query, { arrayFormat: 'repeat' })
+ })
+}
diff --git a/src/api/system/serialNumber/index.ts b/src/api/system/serialNumber/index.ts
new file mode 100644
index 0000000..33fa754
--- /dev/null
+++ b/src/api/system/serialNumber/index.ts
@@ -0,0 +1,42 @@
+import request from '@/config/axios'
+
+export interface SerialNumberVO {
+ id: number
+ ruleCode: string
+ ruleName: string
+ prefix: string
+ pattern: string
+ length: byte
+ separator: string
+ remark: string
+}
+
+// 查询流水号规则列表
+export const getSerialNumberPage = async (params) => {
+ return await request.get({ url: `/system/serial-number/page`, params })
+}
+
+// 查询流水号规则详情
+export const getSerialNumber = async (id: number) => {
+ return await request.get({ url: `/system/serial-number/get?id=` + id })
+}
+
+// 新增流水号规则
+export const createSerialNumber = async (data: SerialNumberVO) => {
+ return await request.post({ url: `/system/serial-number/create`, data })
+}
+
+// 修改流水号规则
+export const updateSerialNumber = async (data: SerialNumberVO) => {
+ return await request.put({ url: `/system/serial-number/update`, data })
+}
+
+// 删除流水号规则
+export const deleteSerialNumber = async (id: number) => {
+ return await request.delete({ url: `/system/serial-number/delete?id=` + id })
+}
+
+// 导出流水号规则 Excel
+export const exportSerialNumber = async (params) => {
+ return await request.download({ url: `/system/serial-number/export-excel`, params })
+}
diff --git a/src/api/system/sms/smsChannel/index.ts b/src/api/system/sms/smsChannel/index.ts
new file mode 100644
index 0000000..f335628
--- /dev/null
+++ b/src/api/system/sms/smsChannel/index.ts
@@ -0,0 +1,43 @@
+import request from '@/config/axios'
+
+export interface SmsChannelVO {
+ id: number
+ code: string
+ status: number
+ signature: string
+ remark: string
+ apiKey: string
+ apiSecret: string
+ callbackUrl: string
+ createTime: Date
+}
+
+// 查询短信渠道列表
+export const getSmsChannelPage = (params: PageParam) => {
+ return request.get({ url: '/system/sms-channel/page', params })
+}
+
+// 获得短信渠道精简列表
+export function getSimpleSmsChannelList() {
+ return request.get({ url: '/system/sms-channel/list-all-simple' })
+}
+
+// 查询短信渠道详情
+export const getSmsChannel = (id: number) => {
+ return request.get({ url: '/system/sms-channel/get?id=' + id })
+}
+
+// 新增短信渠道
+export const createSmsChannel = (data: SmsChannelVO) => {
+ return request.post({ url: '/system/sms-channel/create', data })
+}
+
+// 修改短信渠道
+export const updateSmsChannel = (data: SmsChannelVO) => {
+ return request.put({ url: '/system/sms-channel/update', data })
+}
+
+// 删除短信渠道
+export const deleteSmsChannel = (id: number) => {
+ return request.delete({ url: '/system/sms-channel/delete?id=' + id })
+}
diff --git a/src/api/system/sms/smsLog/index.ts b/src/api/system/sms/smsLog/index.ts
new file mode 100644
index 0000000..3d54fac
--- /dev/null
+++ b/src/api/system/sms/smsLog/index.ts
@@ -0,0 +1,39 @@
+import request from '@/config/axios'
+
+export interface SmsLogVO {
+ id: number | null
+ channelId: number | null
+ channelCode: string
+ templateId: number | null
+ templateCode: string
+ templateType: number | null
+ templateContent: string
+ templateParams: Map | null
+ apiTemplateId: string
+ mobile: string
+ userId: number | null
+ userType: number | null
+ sendStatus: number | null
+ sendTime: Date | null
+ sendCode: number | null
+ sendMsg: string
+ apiSendCode: string
+ apiSendMsg: string
+ apiRequestId: string
+ apiSerialNo: string
+ receiveStatus: number | null
+ receiveTime: Date | null
+ apiReceiveCode: string
+ apiReceiveMsg: string
+ createTime: Date | null
+}
+
+// 查询短信日志列表
+export const getSmsLogPage = (params: PageParam) => {
+ return request.get({ url: '/system/sms-log/page', params })
+}
+
+// 导出短信日志
+export const exportSmsLog = (params) => {
+ return request.download({ url: '/system/sms-log/export-excel', params })
+}
diff --git a/src/api/system/sms/smsTemplate/index.ts b/src/api/system/sms/smsTemplate/index.ts
new file mode 100644
index 0000000..4ad36c7
--- /dev/null
+++ b/src/api/system/sms/smsTemplate/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface SmsTemplateVO {
+ id: number | null
+ type: number | null
+ status: number
+ code: string
+ name: string
+ content: string
+ remark: string
+ apiTemplateId: string
+ channelId: number | null
+ channelCode?: string
+ params?: string[]
+ createTime?: Date
+ roleIdList: []
+ deptIdList: []
+ postIdList: []
+ userIdList: []
+}
+
+export interface SendSmsReqVO {
+ mobile: string
+ templateCode: string
+ templateParams: Map
+}
+
+// 查询短信模板列表
+export const getSmsTemplatePage = (params: PageParam) => {
+ return request.get({ url: '/system/sms-template/page', params })
+}
+
+// 查询短信模板详情
+export const getSmsTemplate = (id: number) => {
+ return request.get({ url: '/system/sms-template/get?id=' + id })
+}
+
+// 新增短信模板
+export const createSmsTemplate = (data: SmsTemplateVO) => {
+ return request.post({ url: '/system/sms-template/create', data })
+}
+
+// 修改短信模板
+export const updateSmsTemplate = (data: SmsTemplateVO) => {
+ return request.put({ url: '/system/sms-template/update', data })
+}
+
+// 删除短信模板
+export const deleteSmsTemplate = (id: number) => {
+ return request.delete({ url: '/system/sms-template/delete?id=' + id })
+}
+
+// 导出短信模板
+export const exportSmsTemplate = (params) => {
+ return request.download({
+ url: '/system/sms-template/export-excel',
+ params
+ })
+}
+
+// 发送短信
+export const sendSms = (data: SendSmsReqVO) => {
+ return request.post({ url: '/system/sms-template/send-sms', data })
+}
+
+// 查询待发送列表
+export const getSmsTemplateNoPage = (data: SendSmsReqVO) => {
+ return request.get({ url: '/system/sms-template/noPage', data })
+}
diff --git a/src/api/system/tableActionRel/index.ts b/src/api/system/tableActionRel/index.ts
new file mode 100644
index 0000000..481d2eb
--- /dev/null
+++ b/src/api/system/tableActionRel/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface TableActionRelVO {
+ id: number
+ tableName: string
+ action: number
+ type: number
+ name: string
+ available: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询表名动作关系列表
+export const getTableActionRelPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/system/table-action-rel/senior', data })
+ } else {
+ return await request.get({ url: `/system/table-action-rel/page`, params })
+ }
+}
+
+// 查询表名动作关系详情
+export const getTableActionRel = async (id: number) => {
+ return await request.get({ url: `/system/table-action-rel/get?id=` + id })
+}
+
+// 新增表名动作关系
+export const createTableActionRel = async (data: TableActionRelVO) => {
+ return await request.post({ url: `/system/table-action-rel/create`, data })
+}
+
+// 修改表名动作关系
+export const updateTableActionRel = async (data: TableActionRelVO) => {
+ return await request.put({ url: `/system/table-action-rel/update`, data })
+}
+
+// 删除表名动作关系
+export const deleteTableActionRel = async (id: number) => {
+ return await request.delete({ url: `/system/table-action-rel/delete?id=` + id })
+}
+
+// 导出表名动作关系 Excel
+export const exportTableActionRel = async (params) => {
+ return await request.download({ url: `/system/table-action-rel/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/system/table-action-rel/get-import-template' })
+}
+
+// 查询表名动作关系列表
+export const getTableActionRelNoPage = async (params) => {
+ return await request.get({ url: `/system/table-action-rel/noPage`, params })
+}
\ No newline at end of file
diff --git a/src/api/system/tenant/index.ts b/src/api/system/tenant/index.ts
new file mode 100644
index 0000000..1e11e2d
--- /dev/null
+++ b/src/api/system/tenant/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface TenantVO {
+ id: number
+ name: string
+ contactName: string
+ contactMobile: string
+ status: number
+ domain: string
+ packageId: number
+ username: string
+ password: string
+ expireTime: Date
+ accountCount: number
+ createTime: Date
+}
+
+export interface TenantPageReqVO extends PageParam {
+ name?: string
+ contactName?: string
+ contactMobile?: string
+ status?: number
+ createTime?: Date[]
+}
+
+export interface TenantExportReqVO {
+ name?: string
+ contactName?: string
+ contactMobile?: string
+ status?: number
+ createTime?: Date[]
+}
+
+// 查询租户列表
+export const getTenantPage = (params: TenantPageReqVO) => {
+ console.log(params)
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return request.post({ url: '/system/tenant/senior', data })
+ } else {
+ return request.get({ url: '/system/tenant/page', params })
+ }
+ // return request.get({ url: '/system/tenant/page', params })
+}
+
+// 查询租户详情
+export const getTenant = (id: number) => {
+ return request.get({ url: '/system/tenant/get?id=' + id })
+}
+
+// 新增租户
+export const createTenant = (data: TenantVO) => {
+ return request.post({ url: '/system/tenant/create', data })
+}
+
+// 修改租户
+export const updateTenant = (data: TenantVO) => {
+ return request.put({ url: '/system/tenant/update', data })
+}
+
+// 删除租户
+export const deleteTenant = (id: number) => {
+ return request.delete({ url: '/system/tenant/delete?id=' + id })
+}
+
+// 导出租户
+export const exportTenant = (params: TenantExportReqVO) => {
+ return request.download({ url: '/system/tenant/export-excel', params })
+}
diff --git a/src/api/system/tenantPackage/index.ts b/src/api/system/tenantPackage/index.ts
new file mode 100644
index 0000000..01d139e
--- /dev/null
+++ b/src/api/system/tenantPackage/index.ts
@@ -0,0 +1,42 @@
+import request from '@/config/axios'
+
+export interface TenantPackageVO {
+ id: number
+ name: string
+ status: number
+ remark: string
+ creator: string
+ updater: string
+ updateTime: string
+ menuIds: number[]
+ createTime: Date
+}
+
+// 查询租户套餐列表
+export const getTenantPackagePage = (params: PageParam) => {
+ return request.get({ url: '/system/tenant-package/page', params })
+}
+
+// 获得租户
+export const getTenantPackage = (id: number) => {
+ return request.get({ url: '/system/tenant-package/get?id=' + id })
+}
+
+// 新增租户套餐
+export const createTenantPackage = (data: TenantPackageVO) => {
+ return request.post({ url: '/system/tenant-package/create', data })
+}
+
+// 修改租户套餐
+export const updateTenantPackage = (data: TenantPackageVO) => {
+ return request.put({ url: '/system/tenant-package/update', data })
+}
+
+// 删除租户套餐
+export const deleteTenantPackage = (id: number) => {
+ return request.delete({ url: '/system/tenant-package/delete?id=' + id })
+}
+// 获取租户套餐精简信息列表
+export const getTenantPackageList = () => {
+ return request.get({ url: '/system/tenant-package/get-simple-list' })
+}
diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts
new file mode 100644
index 0000000..606b951
--- /dev/null
+++ b/src/api/system/user/index.ts
@@ -0,0 +1,120 @@
+import request from '@/config/axios'
+
+export interface UserVO {
+ id : number
+ username : string
+ nickname : string
+ deptId : number
+ postIds : string[]
+ email : string
+ mobile : string
+ sex : number
+ avatar : string
+ loginIp : string
+ status : number
+ remark : string
+ loginDate : Date
+ createTime : Date
+ userType : string
+ mailKey : string
+}
+
+export const getUserPage = async (params) => {
+ console.log(params)
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/system/user/senior', data })
+ } else {
+ return await request.get({ url: '/system/user/page', params })
+ }
+}
+
+// 查询用户管理列表
+// export const getUserPage = (params: PageParam) => {
+// return request.get({ url: '/system/user/page', params })
+// }
+
+// 查询用户详情
+export const getUser = (id : number) => {
+ return request.get({ url: '/system/user/get?id=' + id })
+}
+
+// 新增用户
+export const createUser = (data : UserVO) => {
+ return request.post({ url: '/system/user/create', data })
+}
+
+// 修改用户
+export const updateUser = (data : UserVO) => {
+ return request.put({ url: '/system/user/update', data })
+}
+
+// 删除用户
+export const deleteUser = (id : number) => {
+ return request.delete({ url: '/system/user/delete?id=' + id })
+}
+// 解冻用户
+export const unLockUser = (id : number) => {
+ return request.get({ url: '/system/user/unLockUser?id=' + id })
+}
+// 导出用户
+export const exportUser = (params) => {
+ return request.download({ url: '/system/user/export', params })
+}
+
+// 下载用户导入模板
+export const importUserTemplate = () => {
+ return request.download({ url: '/system/user/get-import-template' })
+}
+
+// 用户密码重置
+export const resetUserPwd = (id : number, password : string) => {
+ const data = {
+ id,
+ password
+ }
+ return request.put({ url: '/system/user/update-password', data: data })
+}
+
+// 用户状态修改
+export const updateUserStatus = (id : number, status : number) => {
+ const data = {
+ id,
+ status
+ }
+ return request.put({ url: '/system/user/update-status', data: data })
+}
+
+// 获取用户精简信息列表
+export const getSimpleUserList = () : Promise => {
+ return request.get({ url: '/system/user/list-all-simple' })
+}
+
+// 忘记密码
+export const forgetPassword = (data : UserVO) => {
+ return request.put({ url: '/system/user/forgetPassword', data })
+}
+
+// 忘记密码->修改密码
+export const updatePassword = (data : UserVO) => {
+ return request.put({ url: '/system/user/updatePassword', data })
+}
+// 重置密码
+export const updateUserPassword = (data : UserVO) => {
+ return request.put({ url: '/system/user/update-password-by-mailKey', data })
+}
+
+export const getPassWordConfig = () => {
+ return request.get({ url: '/system/password/getConfig' })
+}
+// 查询用户详情
+export const getUserListByDeptIds = (data : Array) => {
+ return request.post({ url: '/system/user/getUserListByDeptIds', data })
+}
+// 获取全部用户
+export const getUserListAll = () => {
+ return request.get({ url: '/system/user/listAll' })
+}
+
+
diff --git a/src/api/system/user/profile.ts b/src/api/system/user/profile.ts
new file mode 100644
index 0000000..b2623c8
--- /dev/null
+++ b/src/api/system/user/profile.ts
@@ -0,0 +1,77 @@
+import request from '@/config/axios'
+
+export interface ProfileDept {
+ id: number
+ name: string
+}
+export interface ProfileRole {
+ id: number
+ name: string
+}
+export interface ProfilePost {
+ id: number
+ name: string
+}
+export interface SocialUser {
+ id: number
+ type: number
+ openid: string
+ token: string
+ rawTokenInfo: string
+ nickname: string
+ avatar: string
+ rawUserInfo: string
+ code: string
+ state: string
+}
+export interface ProfileVO {
+ id: number
+ username: string
+ nickname: string
+ dept: ProfileDept
+ roles: ProfileRole[]
+ posts: ProfilePost[]
+ socialUsers: SocialUser[]
+ email: string
+ mobile: string
+ sex: number
+ avatar: string
+ status: number
+ remark: string
+ loginIp: string
+ loginDate: Date
+ createTime: Date
+}
+
+export interface UserProfileUpdateReqVO {
+ nickname: string
+ email: string
+ mobile: string
+ sex: number
+}
+
+// 查询用户个人信息
+export const getUserProfile = () => {
+ return request.get({ url: '/system/user/profile/get' })
+}
+
+// 修改用户个人信息
+export const updateUserProfile = (data: UserProfileUpdateReqVO) => {
+ return request.put({ url: '/system/user/profile/update', data })
+}
+
+// 用户密码重置
+export const updateUserPassword = (oldPassword: string, newPassword: string) => {
+ return request.put({
+ url: '/system/user/profile/update-password',
+ data: {
+ oldPassword: oldPassword,
+ newPassword: newPassword
+ }
+ })
+}
+
+// 用户头像上传
+export const uploadAvatar = (data) => {
+ return request.upload({ url: '/system/user/profile/update-avatar', data: data })
+}
diff --git a/src/api/system/user/socialUser.ts b/src/api/system/user/socialUser.ts
new file mode 100644
index 0000000..79f4d40
--- /dev/null
+++ b/src/api/system/user/socialUser.ts
@@ -0,0 +1,31 @@
+import request from '@/config/axios'
+
+// 社交绑定,使用 code 授权码
+export const socialBind = (type, code, state) => {
+ return request.post({
+ url: '/system/social-user/bind',
+ data: {
+ type,
+ code,
+ state
+ }
+ })
+}
+
+// 取消社交绑定
+export const socialUnbind = (type, openid) => {
+ return request.delete({
+ url: '/system/social-user/unbind',
+ data: {
+ type,
+ openid
+ }
+ })
+}
+
+// 社交授权的跳转
+export const socialAuthRedirect = (type, redirectUri) => {
+ return request.get({
+ url: '/system/auth/social-auth-redirect?type=' + type + '&redirectUri=' + redirectUri
+ })
+}
diff --git a/src/api/wms/accountcalendar/index.ts b/src/api/wms/accountcalendar/index.ts
new file mode 100644
index 0000000..984d36b
--- /dev/null
+++ b/src/api/wms/accountcalendar/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface AccountcalendarVO {
+ year: string
+ month: string
+ descriiption: string
+ beginTime: Date
+ endTime: Date
+ converttotime: Date
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询账期日历列表
+export const getAccountcalendarPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/accountcalendar/senior', data })
+ } else {
+ return await request.get({ url: `/wms/accountcalendar/page`, params })
+ }
+}
+
+// 查询账期日历详情
+export const getAccountcalendar = async (id: number) => {
+ return await request.get({ url: `/wms/accountcalendar/get?id=` + id })
+}
+
+// 新增账期日历
+export const createAccountcalendar = async (data: AccountcalendarVO) => {
+ return await request.post({ url: `/wms/accountcalendar/create`, data })
+}
+
+// 修改账期日历
+export const updateAccountcalendar = async (data: AccountcalendarVO) => {
+ return await request.put({ url: `/wms/accountcalendar/update`, data })
+}
+
+// 删除账期日历
+export const deleteAccountcalendar = async (id: number) => {
+ return await request.delete({ url: `/wms/accountcalendar/delete?id=` + id })
+}
+
+// 导出账期日历 Excel
+export const exportAccountcalendar = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/accountcalendar/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/accountcalendar/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/accountcalendar/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/agvLocationrelation/index.ts b/src/api/wms/agvLocationrelation/index.ts
new file mode 100644
index 0000000..3bc7533
--- /dev/null
+++ b/src/api/wms/agvLocationrelation/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface AgvLocationrelationVO {
+ id: number
+ reqCode: string
+ positionCode: string
+ positionArea: string
+ wmsArea: string
+ wmsPosition: string
+ available: string
+ remark: string
+}
+
+// 查询AGV库位转换列表
+export const getAgvLocationrelationPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/agv-locationrelation/senior', data })
+ } else {
+ return await request.get({ url: `/wms/agv-locationrelation/page`, params })
+ }
+}
+
+// 查询AGV库位转换详情
+export const getAgvLocationrelation = async (id: number) => {
+ return await request.get({ url: `/wms/agv-locationrelation/get?id=` + id })
+}
+
+// 新增AGV库位转换
+export const createAgvLocationrelation = async (data: AgvLocationrelationVO) => {
+ return await request.post({ url: `/wms/agv-locationrelation/create`, data })
+}
+
+// 修改AGV库位转换
+export const updateAgvLocationrelation = async (data: AgvLocationrelationVO) => {
+ return await request.put({ url: `/wms/agv-locationrelation/update`, data })
+}
+
+// 删除AGV库位转换
+export const deleteAgvLocationrelation = async (id: number) => {
+ return await request.delete({ url: `/wms/agv-locationrelation/delete?id=` + id })
+}
+
+// 导出AGV库位转换 Excel
+export const exportAgvLocationrelation = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/agv-locationrelation/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/agv-locationrelation/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/agv-locationrelation/get-import-template' })
+}
diff --git a/src/api/wms/areabasic/index.ts b/src/api/wms/areabasic/index.ts
new file mode 100644
index 0000000..8554c55
--- /dev/null
+++ b/src/api/wms/areabasic/index.ts
@@ -0,0 +1,77 @@
+import request from '@/config/axios'
+
+export interface AreaVO {
+ code: string
+ name: string
+ description: string
+ warehouseCode: string
+ type: string
+ isFunctional: number
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询库区列表
+export const getAreaPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/areabasic/senior', data })
+ } else {
+ return await request.get({ url: `/wms/areabasic/page`, params })
+ }
+}
+
+// 查询库区列表
+export const selectAreabasicDOByCode = async (locationCode: String) => {
+ return await request.get({ url: `/wms/areabasic/getArea?locationCode=`+locationCode })
+}
+// 查询库区列表
+export const getAreaList = async (params) => {
+ return await request.get({ url: `/wms/areabasic/list`, params })
+}
+// 校验库区
+export const verifyAreaList = async (params) => {
+ return await request.get({ url: `/wms/areabasic/listAreabasicByCode`, params })
+}
+// 查询库区详情
+export const getArea = async (id: number) => {
+ return await request.get({ url: `/wms/areabasic/get?id=` + id })
+}
+
+// 新增库区
+export const createArea = async (data: AreaVO) => {
+ return await request.post({ url: `/wms/areabasic/create`, data })
+}
+
+// 修改库区
+export const updateArea = async (data: AreaVO) => {
+ return await request.put({ url: `/wms/areabasic/update`, data })
+}
+
+// 删除库区
+export const deleteArea = async (id: number) => {
+ return await request.delete({ url: `/wms/areabasic/delete?id=` + id })
+}
+
+// 导出库区 Excel
+export const exportArea = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/areabasic/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/areabasic/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/areabasic/get-import-template' })
+}
+
+// 根据code获取数据列表
+export const getAreabasicByCodes = async (params) => {
+ return await request.get({ url: `/wms/areabasic/listByCodes`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/backflushDetailbQad/index.ts b/src/api/wms/backflushDetailbQad/index.ts
new file mode 100644
index 0000000..096cc33
--- /dev/null
+++ b/src/api/wms/backflushDetailbQad/index.ts
@@ -0,0 +1,50 @@
+import request from '@/config/axios'
+
+export interface BackflushDetailbQadVO {
+ qty: number
+ productreceiptNumber: string
+ parentItemCode: string
+ itemCode: string
+ status: number
+}
+
+// 查询制品收货记录子表QAD返回数据列表
+export const getBackflushDetailbQadPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/backflush-detailb-qad/senior', data })
+ } else {
+ return await request.get({ url: `/wms/backflush-detailb-qad/page`, params })
+ }
+}
+
+// 查询制品收货记录子表QAD返回数据详情
+export const getBackflushDetailbQad = async (id: number) => {
+ return await request.get({ url: `/wms/backflush-detailb-qad/get?id=` + id })
+}
+
+// 新增制品收货记录子表QAD返回数据
+export const createBackflushDetailbQad = async (data: BackflushDetailbQadVO) => {
+ return await request.post({ url: `/wms/backflush-detailb-qad/create`, data })
+}
+
+// 修改制品收货记录子表QAD返回数据
+export const updateBackflushDetailbQad = async (data: BackflushDetailbQadVO) => {
+ return await request.put({ url: `/wms/backflush-detailb-qad/update`, data })
+}
+
+// 删除制品收货记录子表QAD返回数据
+export const deleteBackflushDetailbQad = async (id: number) => {
+ return await request.delete({ url: `/wms/backflush-detailb-qad/delete?id=` + id })
+}
+
+// 导出制品收货记录子表QAD返回数据 Excel
+export const exportBackflushDetailbQad = async (params) => {
+ return await request.download({ url: `/wms/backflush-detailb-qad/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/backflush-detailb-qad/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/backflushRecordDetailb/index.ts b/src/api/wms/backflushRecordDetailb/index.ts
new file mode 100644
index 0000000..3b770a5
--- /dev/null
+++ b/src/api/wms/backflushRecordDetailb/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface BackflushRecordDetailbVO {
+ processCode: string
+ bomVersion: string
+ packingNumber: string
+ batch: string
+ inventoryStatus: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ uom: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+
+// 查询制品收货记录子列表
+export const getBackflushRecordDetailbPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/backflush-record-detailb/senior', data })
+ } else {
+ return await request.get({ url: `/wms/backflush-record-detailb/page`, params })
+ }
+}
+
+// 查询制品收货记录子详情
+export const getBackflushRecordDetailb = async (id: number) => {
+ return await request.get({ url: `/wms/backflush-record-detailb/get?id=` + id })
+}
+
+// 新增制品收货记录子
+export const createBackflushRecordDetailb = async (data: BackflushRecordDetailbVO) => {
+ return await request.post({ url: `/wms/backflush-record-detailb/create`, data })
+}
+
+// 修改制品收货记录子
+export const updateBackflushRecordDetailb = async (data: BackflushRecordDetailbVO) => {
+ return await request.put({ url: `/wms/backflush-record-detailb/update`, data })
+}
+
+// 删除制品收货记录子
+export const deleteBackflushRecordDetailb = async (id: number) => {
+ return await request.delete({ url: `/wms/backflush-record-detailb/delete?id=` + id })
+}
+
+// 导出制品收货记录子 Excel
+export const exportBackflushRecordDetailb = async (params) => {
+ return await request.download({ url: `/wms/backflush-record-detailb/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/backflush-record-detailb/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/backflushRequestDetailb/index.ts b/src/api/wms/backflushRequestDetailb/index.ts
new file mode 100644
index 0000000..7e67a09
--- /dev/null
+++ b/src/api/wms/backflushRequestDetailb/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface BackflushRequestDetailbVO {
+ processCode: string
+ bomVersion: string
+ itemCode: string
+ number: string
+ remark: string
+ createTime: Date
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ creator: string
+}
+
+// 查询制品收货申请子列表
+export const getBackflushRequestDetailbPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-request-detailb/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-request-detailb/page`, params })
+ }
+}
+
+// 查询制品收货申请子详情
+export const getBackflushRequestDetailb = async (id: number) => {
+ return await request.get({ url: `/wms/productreceipt-request-detailb/get?id=` + id })
+}
+
+// 新增制品收货申请子
+export const createBackflushRequestDetailb = async (data: BackflushRequestDetailbVO) => {
+ return await request.post({ url: `/wms/productreceipt-request-detailb/create`, data })
+}
+
+// 修改制品收货申请子
+export const updateBackflushRequestDetailb = async (data: BackflushRequestDetailbVO) => {
+ return await request.put({ url: `/wms/productreceipt-request-detailb/update`, data })
+}
+
+// 删除制品收货申请子
+export const deleteBackflushRequestDetailb = async (id: number) => {
+ return await request.delete({ url: `/wms/productreceipt-request-detailb/delete?id=` + id })
+}
+
+// 导出制品收货申请子 Excel
+export const exportBackflushRequestDetailb = async (params) => {
+ return await request.download({ url: `/wms/productreceipt-request-detailb/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productreceipt-request-detailb/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/balance/index.ts b/src/api/wms/balance/index.ts
new file mode 100644
index 0000000..5199e94
--- /dev/null
+++ b/src/api/wms/balance/index.ts
@@ -0,0 +1,248 @@
+import request from '@/config/axios'
+
+export interface BalanceVO {
+ packingNumber: string
+ containerNumber: string
+ itemCode: string
+ batch: string
+ altBatch: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ locationCode: string
+ locationGroupCode: string
+ areaCode: string
+ warehouseCode: string
+ erpLocationCode: string
+ ownerCode: string
+ uom: string
+ qty: number
+ lockedQty: number
+ usableQty: number
+ singlePrice: number
+ amount: number
+ putInTime: Date
+ frozen: string
+ frozenReason: string
+ lastTransNumber: string
+ weight: number
+ area: number
+ volume: number
+}
+
+// 查询库存余额列表
+export const getBalancePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/senior', data })
+ } else {
+ return await request.get({ url: `/wms/balance/page`, params })
+ }
+}
+
+export const getTransactionBalancePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transaction/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transaction/page_balance`, params })
+ }
+}
+
+// 查询库存余额列表(包括已冻结,已失效的物料)
+export const getBalancePageAll = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/seniorAll', data })
+ } else {
+ return await request.get({ url: `/wms/balance/pageAll`, params })
+ }
+}
+
+// 查询库存汇总列表
+export const getBalanceSummaryPageAll = async (params) => {
+ return await request.get({ url: `/wms/balance/totalBalanceTree`, params })
+}
+// 查询库存余额列表
+export const getBalancePageReturn= async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/seniorReturn', data })
+ } else {
+ return await request.get({ url: `/wms/balance/pageReturn`, params })
+ }
+}
+// 查询库存余额列表
+export const getBalancePagePutaway= async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/senior', data })
+ } else {
+ return await request.get({ url: `/wms/balance/pagePutaway`, params })
+ }
+}
+// 查询库存余额列表增加物料筛选条件
+export const getBalanceItemPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/seniorItems', data })
+ } else {
+ return await request.get({ url: `/wms/balance/pageItems`, params })
+ }
+}
+// 查询库存余额列表根据业务类型
+export const getBalancePageByBusinessType = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/seniorBusinessType', data })
+ } else {
+ return await request.get({ url: `/wms/balance/pageBusinessType`, params })
+ }
+}
+
+
+// 查询库存余额列表根据业务类型的物料类型
+export const getBalancePageByBusinessTypeByItemType = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/seniorBusinessTypeByItemType', data })
+ } else {
+ return await request.get({ url: `/wms/balance/pageBusinessTypeByItemType`, params })
+ }
+}
+
+// 备件出库查询库存余额列表
+export const getBalancePageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/seniorSpareItems', data })
+ } else {
+ return await request.get({ url: `/wms/balance/pageSpareItem`, params })
+ }
+}
+
+// 根据物料code 批次 和库位码查询库存余额总数
+export const getSumByConditions= async (params) => {
+ return await request.get({ url: `/wms/balance/getSumByConditions`, params })
+}
+
+// 查询库存余额详情
+export const getBalance = async (id: number) => {
+ return await request.get({ url: `/wms/balance/get?id=` + id })
+}
+
+// 新增库存余额
+export const createBalance = async (data: BalanceVO) => {
+ return await request.post({ url: `/wms/balance/create`, data })
+}
+
+// 修改库存余额
+export const updateBalance = async (data: BalanceVO) => {
+ return await request.put({ url: `/wms/balance/update`, data })
+}
+
+// 删除库存余额
+export const deleteBalance = async (id: number) => {
+ return await request.delete({ url: `/wms/balance/delete?id=` + id })
+}
+
+// 导出库存余额 Excel
+export const exportBalance = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/balance/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/balance/export-excel`, params })
+ }
+}
+
+// 导出库存汇总 Excel
+export const exportTotalBalanceTree = async (params) => {
+ return await request.download({ url: `/wms/balance/exportTotalBalanceTree`, params })
+}
+
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/balance/get-import-template' })
+}
+
+// 获得库位代码筛选出的库存余额分页
+export const selectLocationTypeToBalance = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/pageLocationCodeToBalanceSenior', data })
+ } else {
+ return request.get({ url: '/wms/balance/pageLocationCodeToBalance', params})
+ }
+}
+
+// 获得配置筛选出的库存余额分页
+export const selectConfigToBalance = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/pageConfigToBalanceSenior', data })
+ } else {
+ return request.get({ url: '/wms/balance/pageConfigToBalance', params})
+ }
+}
+
+
+// 查询库存余额列表根据业务类型 根据库存状态及库区类型筛选
+export const getBalanceByBusinessTypeByItemType = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/pageBusinessTypeToBalanceSenior', data })
+ } else {
+ return await request.get({ url: `/wms/balance/pageBusinessTypeToBalance`, params })
+ }
+}
+
+// 查询库存余额列表根据业务类型 根据库存状态及库区类型再根据物料的种类筛选
+export const getBalanceByBusinessCategoryByItemType = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/pageBusinessCategoryToBalanceSenior', data })
+ } else {
+ return await request.get({ url: `/wms/balance/pageBusinessCategoryToBalance`, params })
+ }
+}
+// 根据code获取数据列表
+export const getBalanceItemListByCodes = async (data) => {
+ return await request.get({ url: `/wms/balance/listByCodes`,data })
+}
+// 查询bom批次默认数据
+export const getBanchBomPage = async (params) => {
+ return await request.get({ url: `/wms/balance/pageBOM`, params })
+}
+
+// 查询
+export const getAllBalancePage = async (params) => {
+ return await request.get({ url: `/wms/balance/getBalancePageAll `, params })
+}
+
+
+// 查询库存余额列表根据库位
+export const getBalanceByLocation = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/balance/balanceSeniorByLocation', data })
+ } else {
+ return await request.get({ url: `/wms/balance/balancePageByLocation`, params })
+ }
+}
\ No newline at end of file
diff --git a/src/api/wms/barbasic/index.ts b/src/api/wms/barbasic/index.ts
new file mode 100644
index 0000000..0f7e161
--- /dev/null
+++ b/src/api/wms/barbasic/index.ts
@@ -0,0 +1,62 @@
+import request from '@/config/axios'
+
+export interface BarbasicVO {
+ id: number
+ number: string
+ type: string
+ template: string
+ status: string
+ relateNumber: string
+ barcodeString: string
+ printTimes: number
+ lastPrintTime: string
+ lastPrintUserId: string
+ lastPrintUserName: string
+}
+
+// 查询条码实体基类列表
+export const getBarbasicPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/barbasic/senior', data })
+ } else {
+ return await request.get({ url: `/wms/barbasic/page`, params })
+ }
+}
+
+// 查询条码实体基类详情
+export const getBarbasic = async (id: number) => {
+ return await request.get({ url: `/wms/barbasic/get?id=` + id })
+}
+
+// 新增条码实体基类
+export const createBarbasic = async (data: BarbasicVO) => {
+ return await request.post({ url: `/wms/barbasic/create`, data })
+}
+
+// 修改条码实体基类
+export const updateBarbasic = async (data: BarbasicVO) => {
+ return await request.put({ url: `/wms/barbasic/update`, data })
+}
+
+// 删除条码实体基类
+export const deleteBarbasic = async (id: number) => {
+ return await request.delete({ url: `/wms/barbasic/delete?id=` + id })
+}
+
+// 导出条码实体基类 Excel
+export const exportBarbasic = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/barbasic/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/barbasic/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/barbasic/get-import-template' })
+}
diff --git a/src/api/wms/barcode/index.ts b/src/api/wms/barcode/index.ts
new file mode 100644
index 0000000..38d00d6
--- /dev/null
+++ b/src/api/wms/barcode/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface BarcodeVO {
+ id: number
+ code: string
+ name: string
+ description: string
+ order: number
+ length: number
+ prefixLenght: number
+ prefixChar: string
+ entityProperties: string
+ encyptMethod: string
+ masterId: number
+ trimEnd: string
+ isEncypt: string,
+ labelType: string,
+}
+
+// 查询条码片段列表
+export const getBarcodePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/label/barcode/senior', data })
+ } else {
+ return await request.get({ url: `/label/barcode/page`, params })
+ }
+}
+
+// 查询条码片段详情
+export const getBarcode = async (id: number) => {
+ return await request.get({ url: `/label/barcode/get?id=` + id })
+}
+
+// 新增条码片段
+export const createBarcode = async (data: BarcodeVO) => {
+ return await request.post({ url: `/label/barcode/create`, data })
+}
+
+// 修改条码片段
+export const updateBarcode = async (data: BarcodeVO) => {
+ return await request.put({ url: `/label/barcode/update`, data })
+}
+
+// 删除条码片段
+export const deleteBarcode = async (id: number) => {
+ return await request.delete({ url: `/label/barcode/delete?id=` + id })
+}
+
+// 导出条码片段 Excel
+export const exportBarcode = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/label/barcode/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/label/barcode/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/label/barcode/get-import-template' })
+}
diff --git a/src/api/wms/bom/index.ts b/src/api/wms/bom/index.ts
new file mode 100644
index 0000000..84fa225
--- /dev/null
+++ b/src/api/wms/bom/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface BomVO {
+ productItemCode: string
+ componentItemCode: string
+ componentUom: string
+ componentQty: number
+ processCode: string
+ version: string
+ layer: number
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询物料清单列表
+export const getBomPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/bom/senior', data })
+ } else {
+ return await request.get({ url: `/wms/bom/page`, params })
+ }
+}
+
+// 查询物料清单详情
+export const getBom = async (id: number) => {
+ return await request.get({ url: `/wms/bom/get?id=` + id })
+}
+
+// 新增物料清单
+export const createBom = async (data: BomVO) => {
+ return await request.post({ url: `/wms/bom/create`, data })
+}
+
+// 修改物料清单
+export const updateBom = async (data: BomVO) => {
+ return await request.put({ url: `/wms/bom/update`, data })
+}
+
+// 删除物料清单
+export const deleteBom = async (id: number) => {
+ return await request.delete({ url: `/wms/bom/delete?id=` + id })
+}
+
+// 导出物料清单 Excel
+export const exportBom = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/bom/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/bom/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/bom/get-import-template' })
+}
diff --git a/src/api/wms/bomDismantle/index.ts b/src/api/wms/bomDismantle/index.ts
new file mode 100644
index 0000000..981af0f
--- /dev/null
+++ b/src/api/wms/bomDismantle/index.ts
@@ -0,0 +1,52 @@
+import request from '@/config/axios'
+
+// 查询制品返修申请子列表
+export const getBomDismantlePage = async (params) => {
+ return await request.get({ url: `/wms/productrepair-request-main/bomPage`, params })
+}
+
+// 查询制品返修记录子列表
+export const getBomDismantleRecordPage = async (params) => {
+ return await request.get({ url: `/wms/productrepair-record-main/bomPage`, params })
+}
+
+// 查询制品报废申请子列表
+export const getProductscrapBomDismantlePage = async (params) => {
+ return await request.get({ url: `/wms/productscrap-request-main/bomPage`, params })
+}
+
+
+export const getProductscrapBomRecordPage = async (params1) => {
+ console.log('getProductscrapBomRecordPage',params1)
+ let params = {...params1}
+ if(params.isRecord){
+ delete params.isRecord
+ return await request.get({ url: `/wms/productscrap-request-main/bomRecordPage`, params })
+ }else{
+ delete params.isRecord
+ return await request.get({ url: `/wms/productscrap-request-main/bomPage`, params })
+
+ }
+}
+export const getProductscrapBomRecordPageBatch = async (params1) => {
+ console.log('getProductscrapBomRecordPage',params1)
+ let params = {...params1}
+ if(params.isRecord){
+ delete params.isRecord
+ return await request.get({ url: `/wms/productscrap-request-main/bomRecordPageBatch`, params })
+ }else{
+ delete params.isRecord
+ return await request.get({ url: `/wms/productscrap-request-main/bomPageBatch`, params })
+
+ }
+}
+
+// 查询制品报废申请子列表
+export const getProductscrapBomDismantleRecordPage = async (params) => {
+ return await request.get({ url: `/wms/productscrap-record-main/bomPage`, params })
+}
+
+// 查询制品拆解申请子列表
+export const getDetailbBomDismantlePage = async (params) => {
+ return await request.get({ url: `/wms/dismantle-request-detailb/bomPage`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/business/inputBlur.ts b/src/api/wms/business/inputBlur.ts
new file mode 100644
index 0000000..2ae9504
--- /dev/null
+++ b/src/api/wms/business/inputBlur.ts
@@ -0,0 +1,600 @@
+
+import { isString } from 'min-dash'
+const message = useMessage() // 消息弹窗
+const { t } = useI18n() // 国际化
+/**
+ * 业务组件
+ * tableFormBlur 表格表单失去焦点时候获取焦点
+ * FormBlur 表格失去焦点时候获取焦点
+ */
+export const tableFormBlurVer = async (headerItem, val, row, index, routeName, formRef, detailData, tableData, callback) => {
+
+ try {
+ if (headerItem?.tableForm?.searchPage && headerItem?.tableForm?.verificationParams) {
+ if (val && isString(val)) {
+ if (!headerItem?.tableForm?.multiple && val.indexOf(',') > -1) {
+ message.alert('该输入框只能输入一条数据')
+ row[headerItem.field] = ''
+ return
+ }
+ // 校验
+ const params = ref({})
+ const params1 = ref({})
+ const filters: any[] = []
+ const searchCondition = headerItem.tableForm.searchCondition //获取data.ts参数信息
+ const verificationParams = headerItem.tableForm.verificationParams //获取data.ts参数信息
+ // 循环参数设置参数为key:value格式
+ if (searchCondition && searchCondition.length > 0) {
+ for (let i = 0; i < searchCondition.length; i++) {
+ if (searchCondition[i].isMainValue) {
+ params.value[searchCondition[i].key] =
+ formRef.formModel[searchCondition[i].value]
+ ? formRef.formModel[searchCondition[i].value]
+ : detailData
+ ? detailData[searchCondition[i].value]
+ : row
+ ? row[searchCondition[i].value]
+ : ''
+ params1.value[searchCondition[i].key] =
+ formRef.formModel[searchCondition[i].value]
+ ? formRef.formModel[searchCondition[i].value]
+ : detailData
+ ? detailData[searchCondition[i].value]
+ : row
+ ? row[searchCondition[i].value]
+ : ''
+ // 是否含有空参数情况
+ let isNull = false
+ if (
+ params.value[searchCondition[i].key] == '' ||
+ params.value[searchCondition[i].key] == undefined
+ ) {
+ if(!searchCondition[i].isOptional){ // 添加参数可选可空的判断
+ isNull = true
+ }
+ }
+ if (isNull) {
+ message.warning(
+ searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!'
+ )
+ row[headerItem.field] = ''
+ return
+ }
+ if(searchCondition[i].isOptional&&!params.value[searchCondition[i].key]){ // 添加参数可选可空的判断
+ continue
+ }
+ filters.push({
+ action: searchCondition[i].action || '==',
+ column: searchCondition[i].key,
+ value: formRef.formModel[
+ searchCondition[i].value
+ ]
+ ? formRef.formModel[searchCondition[i].value]
+ : detailData
+ ? detailData[searchCondition[i].value]
+ : row
+ ? row[searchCondition[i].value]
+ : ''
+ })
+
+ } else if (searchCondition[i].isTableRowValue) {
+ if (searchCondition[i].required) {
+ if (row[searchCondition[i].value] == '' || row[searchCondition[i].value] == undefined) {
+ message.warning(
+ searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!'
+ )
+ row[headerItem.field] = ''
+ return
+ }
+ }
+ //查询当前table表数据的值
+ filters.push({
+ action: searchCondition[i].action || '==',
+ column: searchCondition[i].key,
+ value: row[searchCondition[i].value]
+ })
+ params1.value[searchCondition[i].key] = row[searchCondition[i].value]
+ } else {
+ // 扩展 转换为筛选条件进行查询
+ if (searchCondition[i].isSearch) {
+ if (searchCondition[i].isFormModel) {
+ //用formModel中的值
+ if (searchCondition[i].required) {
+ if (
+ formRef.formModel[searchCondition[i].value] == '' ||
+ formRef.formModel[searchCondition[i].value] == undefined
+ ) {
+ message.warning(
+ searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!'
+ )
+ row[headerItem.field] = ''
+ return
+ }
+ }
+ filters.push({
+ action: searchCondition[i].action || '==',
+ column: searchCondition[i].key,
+ value: formRef.formModel[searchCondition[i].value]
+ })
+ params1.value[searchCondition[i].key] = formRef.formModel[searchCondition[i].value]
+ } else {
+ filters.push({
+ action: searchCondition[i].action || '==',
+ column: searchCondition[i].key,
+ value: searchCondition[i].value
+ })
+ params1.value[searchCondition[i].key] = searchCondition[i].value
+ }
+ } else {
+ filters.push({
+ action: searchCondition[i].action || '==',
+ column: searchCondition[i].key,
+ value: searchCondition[i].value
+ })
+ params1.value[searchCondition[i].key] = searchCondition[i].value
+ }
+ }
+ }
+ }
+ if (verificationParams && verificationParams.length > 0) {
+ // 转换筛选条件所需
+ for (let i = 0; i < verificationParams.length; i++) {
+ // 扩展 转换为筛选条件进行查询
+ if (verificationParams[i].isSearch) {
+ if (verificationParams[i].isFormModel) {
+ filters.push({
+ action: verificationParams[i].action,
+ column: verificationParams[i].key,
+ value: formRef.formModel[verificationParams[i].value]
+ ? formRef.formModel[verificationParams[i].value]
+ : val.trim()
+ })
+
+ verificationParams[i].key1 = verificationParams[i].key + 's'
+ params1.value[verificationParams[i].key1] =
+ formRef.formModel[verificationParams[i].value]
+ ? formRef.formModel[verificationParams[i].value]
+ : val.trim()
+ } else {
+ filters.push({
+ action: searchCondition[i].action || '==',
+ column: searchCondition[i].key,
+ value: searchCondition[i].value
+ })
+ verificationParams[i].key1 = verificationParams[i].key + 's'
+ params1.value[verificationParams[i].key1] = searchCondition[i].value
+ }
+ } else {
+ params[verificationParams[i].key] = verificationParams[i].value
+ verificationParams[i].key1 = verificationParams[i].key + 's'
+ params1.value[verificationParams[i].key1] = verificationParams[i].value
+
+ }
+ }
+ }
+ console.log(params1.value)
+ // 判断代码是否存在
+ if (!headerItem?.tableForm.isRepeat) {
+ const seen = new Set()
+ const repeatCode = new Set()
+ const arr = tableData.map((item) => item[headerItem.field]?.trim())
+ arr.forEach((item) => {
+ if (item) {
+ if (seen.has(item)) {
+ repeatCode.add(item)
+ } else {
+ seen.add(item)
+ }
+ }
+ })
+ const arr1 = Array.from(repeatCode)
+ if (arr1.length > 0) {
+ message.warning(`${arr1.join(',')}${t('ts.已经存在')}`)
+ row[headerItem.field] = ''
+ return
+ }
+ }
+ if (filters.length > 0) {
+ params.value.isSearch = true
+ params.value.filters = filters
+ }
+ const obj = {
+ by: 'ASC',
+ pageNo: 1,
+ pageSize: 20
+ }
+ params.value = {
+ isSearch: params.value.isSearch,
+ filters: params.value.filters,
+ ...obj
+ }
+ const list = ref()
+ if (headerItem?.tableForm?.multiple) {
+ const pageApi = row.searchTable?.verificationPage ? row.searchTable?.verificationPage : headerItem.tableForm.verificationPage
+ await pageApi(params1.value).then(async (res) => {
+ const arr1 = val.split(',')
+ const list = ref([])
+ list.value = res?.length > 0 ? res : []
+ if (list.value?.length == 0) {
+ message.alert('暂无数据')
+ formRef.setValues(setV)
+ return
+ }
+ console.log(arr1)
+ console.log(list.value)
+ if (arr1.length != list.value.length) {
+ const arr2 = list.value.map((item) => item.code)
+ const str = [
+ ...arr1.filter((item) => !arr2.includes(item)),
+ ...arr2.filter((item) => !arr1.includes(item))
+ ].join(',')
+ message.alert('代码' + str + '没有找到对应数据')
+ formRef.setValues(setV)
+ return
+ }
+ callback(list.value)
+ })
+ } else {
+ // 调取包装接口
+ await headerItem.tableForm.searchPage(params.value).then(async (res) => {
+
+ list.value = res?.list?.length > 0 ? res.list.slice(0, 1) : []
+ // 只查一条数据,多条数据查询默认显示不存在
+ if (list.value?.length == 0) {
+ message.alert('代码' + row[headerItem.field] + '没有找到对应数据')
+ row[headerItem.field] = ''
+ return
+ }
+ callback(list.value)
+ })
+ }
+ }
+ }
+ } catch {
+ message.warning('暂无数据')
+ row[headerItem.field] = ''
+ return
+ }
+}
+export const FormBlur = async (field, val, routeName, formRef, detailData, formSchema, callback) => {
+ const setV = {}
+ setV[field] = ''
+ try {
+ if (formSchema.searchPage && formSchema.verificationParams) {
+ if (!formSchema.multiple) {
+ //获取data.ts参数信息
+ const searchCondition = formSchema?.searchCondition || []
+ //获取失去焦点参数信息
+ const verificationParams = formSchema?.verificationParams ||
+ []
+ console.log('走新方法啦')
+ // searchCondition = [...searchCondition, ...verificationParams]
+
+ if (val && isString(val)) {
+ let params = {}
+ const _searchCondition = {}
+ const filters: any[] = []
+ if (searchCondition && searchCondition.length > 0) {
+ // 转换筛选条件所需
+ for (let i = 0; i < searchCondition.length; i++) {
+ // searchCondition.forEach((item) => {
+ // 查询条件为主表某字段,需要赋值主表数据,数据来源是详情的,赋值需要从row中获取
+ if (searchCondition[i].isMainValue) {
+ _searchCondition[searchCondition[i].key] = formRef.formModel[
+ searchCondition[i].value
+ ]
+ ? formRef.formModel[searchCondition[i].value]
+ : detailData
+ ? detailData[searchCondition[i].value]
+ : // : row
+ // ? row[searchCondition[i].value]
+ ''
+ // 是否含有空参数情况
+ let isNull = false
+ if (
+ _searchCondition[searchCondition[i].key] == '' ||
+ _searchCondition[searchCondition[i].key] == undefined
+ ) {
+ isNull = true
+ }
+ if (isNull) {
+ message.warning(
+ searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!'
+ )
+ formRef.setValues(setV)
+ return
+ }
+ filters.push({
+ action: searchCondition[i].action || '==',
+ column: searchCondition[i].key,
+ value: formRef.formModel[searchCondition[i].value]
+ })
+ }
+
+ // else if (searchCondition[i].isTableRowValue) {
+ // if (searchCondition[i].required) {
+ // if (row[searchCondition[i].value] == '' || row[searchCondition[i].value] == undefined) {
+ // message.warning(
+ // searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!'
+ // )
+ // return
+ // }
+ // }
+ // row[searchCondition[i].value]
+ // //查询当前table表数据的值
+ // _searchCondition[searchCondition[i].key] = row[searchCondition[i].value]
+ // }
+ else {
+ // 扩展 转换为筛选条件进行查询
+ if (searchCondition[i].isSearch) {
+ if (searchCondition[i].isFormModel) {
+ //用formModel中的值
+ if (searchCondition[i].required) {
+ if (
+ formRef.formModel[searchCondition[i].value] == '' ||
+ formRef.formModel[searchCondition[i].value] == undefined
+ ) {
+ message.warning(
+ searchCondition[i].message ? searchCondition[i].message : '前置条件未选择!'
+ )
+ formRef.setValues(setV)
+ return
+ }
+ }
+ filters.push({
+ action: searchCondition[i].action || '==',
+ column: searchCondition[i].key,
+ value: formRef.formModel[searchCondition[i].value]
+ })
+ } else {
+ filters.push({
+ action: searchCondition[i].action || '==',
+ column: searchCondition[i].key,
+ value: searchCondition[i].value
+ })
+ }
+ } else {
+ filters.push({
+ action: searchCondition[i].action || '==',
+ column: searchCondition[i].key,
+ value: searchCondition[i].value
+ })
+ }
+ }
+ }
+ }
+ if (verificationParams && verificationParams.length > 0) {
+ // 转换筛选条件所需
+ for (let i = 0; i < verificationParams.length; i++) {
+ // 扩展 转换为筛选条件进行查询
+ if (verificationParams[i].isSearch) {
+ if (verificationParams[i].isFormModel) {
+ filters.push({
+ action: verificationParams[i].action,
+ column: verificationParams[i].key,
+ value: formRef.formModel[verificationParams[i].value]
+ ? formRef.formModel[verificationParams[i].value]
+ : val.trim()
+ })
+ } else {
+ filters.push({
+ action: verificationParams[i].action,
+ column: verificationParams[i].key,
+ value: verificationParams[i].value
+ })
+ }
+ } else {
+ _searchCondition[verificationParams[i].key] = verificationParams[i].value
+ }
+ }
+ }
+ console.log(filters)
+ if (filters.length > 0) {
+ _searchCondition.isSearch = true
+ _searchCondition.filters = filters
+ }
+ const obj = {
+ by: 'ASC',
+ pageNo: 1,
+ pageSize: 20
+ }
+ params = {
+ isSearch: _searchCondition.isSearch,
+ filters: _searchCondition.filters,
+ ...obj
+ }
+ // console.log(333,params)
+ if (!formSchema?.multiple && val.indexOf(',') > -1) {
+ message.alert('该输入框只能输入一条数据')
+ formRef.setValues(setV)
+ return
+ }
+ await formSchema.searchPage(params).then((res) => {
+ const arr1 = val.split(',')
+ const list = ref([])
+ list.value = res?.list?.length > 0 ? res.list.slice(0, 1) : []
+ if (list.value?.length == 0) {
+ message.alert('暂无数据')
+ formRef.setValues(setV)
+ return
+ }
+ if (arr1.length != list.value.length) {
+ const arr2 = list.value.map((item) => item.code)
+ const str = [
+ ...arr1.filter((item) => !arr2.includes(item)),
+ ...arr2.filter((item) => !arr1.includes(item))
+ ].join(',')
+ message.alert('代码' + str + '没有找到对应数据')
+ formRef.setValues(setV)
+ return
+ }
+ callback(list.value)
+ })
+
+ }
+ } else {
+ if (val && isString(val)) {
+ await formSchema.verificationPage({
+ codes: val
+ }).then((res) => {
+ const arr1 = val.split(',')
+ const list = ref([])
+ list.value = res?.length > 0 ? res : []
+ if (list.value?.length == 0) {
+ message.alert('暂无数据')
+ formRef.setValues(setV)
+ return
+ }
+ console.log(arr1)
+ console.log(list.value)
+ if (arr1.length != list.value.length) {
+ const arr2 = list.value.map((item) => item.code)
+ const str = [
+ ...arr1.filter((item) => !arr2.includes(item)),
+ ...arr2.filter((item) => !arr1.includes(item))
+ ].join(',')
+ const cleanedStr = str.replace(/[,]+$/, ''); // 去掉末尾的逗号// 去掉所有非字母和数字的符号
+ message.alert('代码' + cleanedStr + '没有找到对应数据')
+ formRef.setValues(setV)
+ return
+ }
+ callback(list.value)
+ })
+ }
+ }
+ }
+ } catch {
+ message.alert('暂无数据')
+ formRef.setValues(setV)
+ return
+ }
+
+
+}
+
+// 根据下方输入框失去焦点校验信息
+export const getListByBottonInput = async (headerItem, val, row, routeName, formRef, detailData, tableData, callback) => {
+ const tableFormSchemaObj = headerItem?.tableForm
+ console.log(333, tableFormSchemaObj)
+ if (tableFormSchemaObj.verificationPage && tableFormSchemaObj.verificationParams) {
+ if (!val) return;
+ const params = ref({})
+ const list = ref([])
+ const searchCondition1 = headerItem.tableForm.searchCondition //获取data.ts参数信息
+ const verificationParams = headerItem.tableForm.verificationParams //获取data.ts参数信息
+ // 循环参数设置参数为key:value格式
+ if (searchCondition1 && searchCondition1.length > 0) {
+ for (let i = 0; i < searchCondition1.length; i++) {
+ if (searchCondition1[i].isMainValue) {
+ params.value[searchCondition1[i].key] = formRef.formModel[
+ searchCondition1[i].value
+ ]
+ ? formRef.formModel[searchCondition1[i].value]
+ : detailData
+ ? detailData[searchCondition1[i].value]
+ : ''
+ // 是否含有空参数情况
+ let isNull = false
+ if (
+ params.value[searchCondition1[i].key] == '' ||
+ params.value[searchCondition1[i].key] == undefined
+ ) {
+ if(!searchCondition1[i].isOptional){ // 添加参数可选可空的判断
+ if(!searchCondition1[i].isOptional){ // 添加参数可选可空的判断
+ isNull = true
+ }
+ }
+ }
+ if (isNull) {
+ message.warning(
+ searchCondition1[i].message ? searchCondition1[i].message : '前置条件未选择!'
+ )
+ return
+ }
+ } else if (searchCondition1[i].isTableRowValue) {
+ if (searchCondition1[i].required) {
+ if (row[searchCondition1[i].value] == '' || row[searchCondition1[i].value] == undefined) {
+ message.warning(
+ searchCondition1[i].message ? searchCondition1[i].message : '前置条件未选择!'
+ )
+ return
+ }
+ }
+ row[searchCondition1[i].value]
+ //查询当前table表数据的值
+ params.value[searchCondition1[i].key] = row[searchCondition1[i].value]
+ } else {
+ // 扩展 转换为筛选条件进行查询
+ if (searchCondition1[i].isSearch) {
+ if (searchCondition1[i].isFormModel) {
+ //用formModel中的值
+ if (searchCondition1[i].required) {
+ if (
+ formRef.formModel[searchCondition1[i].value] == '' ||
+ formRef.formModel[searchCondition1[i].value] == undefined
+ ) {
+ message.warning(
+ searchCondition1[i].message ? searchCondition1[i].message : '前置条件未选择!'
+ )
+ return
+ }
+ }
+ } else {
+ params.value[searchCondition1[i].key] = searchCondition1[i].value
+ }
+ } else {
+ params.value[searchCondition1[i].key] = searchCondition1[i].value
+ }
+ }
+ }
+ }
+ if (verificationParams && verificationParams.length > 0) {
+ for (let i = 0; i < verificationParams.length; i++) {
+ console.log(54565, verificationParams[i].key)
+ verificationParams[i].key1 = verificationParams[i].key + 's'
+ params.value[verificationParams[i].key1] = val
+ }
+ }
+ const arr1 = val.split(',').map(item => item.trim())
+ // 判断代码是否存在
+ if (!headerItem?.tableForm.isRepeat) {
+ const repeatCode = []
+ if (tableData.length > 0) {
+ tableData.forEach((item) => {
+ const findIndex = arr1.findIndex(valItem => valItem == item[headerItem.field])
+ if (findIndex > -1) {
+ arr1.splice(findIndex, 1)
+ repeatCode.push(item[headerItem.field])
+ }
+ })
+ }
+ if (repeatCode.length > 0) {
+ message.warning(`${t('ts.代码')}${repeatCode.join(',')}${t('ts.已经存在')}`);
+ return;
+ }
+ }
+ await tableFormSchemaObj.verificationPage(params.value).then(async (res) => {
+ if(!Array.isArray(res)&&res.list&&Array.isArray(res.list)){
+ res = res.list
+ }
+ list.value = res ? res : []
+ if (arr1.length != res.length) {
+ const arr2 = res.map((item) => item[headerItem.tableForm.searchField])
+ const str = [
+ ...arr1.filter((item) => !arr2.includes(item)),
+ ...arr2.filter((item) => !arr1.includes(item))
+ ].join(',')
+ console.log(arr1.filter((item) => arr2.includes(item)))
+ console.log(22, str)
+ if (str) {
+ message.alert('代码' + str + '没有找到对应数据')
+ return
+ }
+ }
+
+ callback(list.value)
+ })
+ return
+ }
+
+}
diff --git a/src/api/wms/businesstype/index.ts b/src/api/wms/businesstype/index.ts
new file mode 100644
index 0000000..422a828
--- /dev/null
+++ b/src/api/wms/businesstype/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface BusinesstypeVO {
+ code: string
+ name: string
+ description: string
+ itemTypes: string
+ itemStatuses: string
+ outAreaTypes: string
+ inAreaTypes: string
+ outAreaCodes: string
+ inAreaCodes: string
+ outInventoryStatuses: string
+ inInventoryStatuses: string
+ outTransactionType: string
+ inTransactionType: string
+ onTheWayArea: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ useOnTheWay: string
+ available: string
+ isSoftDeleted: string
+}
+
+// 查询业务类型列表
+export const getBusinesstypePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/businesstype/senior', data })
+ } else {
+ return await request.get({ url: `/wms/businesstype/page`, params })
+ }
+}
+
+// 查询业务类型详情
+export const getBusinesstype = async (id: number) => {
+ return await request.get({ url: `/wms/businesstype/get?id=` + id })
+}
+
+// 新增业务类型
+export const createBusinesstype = async (data: BusinesstypeVO) => {
+ return await request.post({ url: `/wms/businesstype/create`, data })
+}
+
+// 修改业务类型
+export const updateBusinesstype = async (data: BusinesstypeVO) => {
+ return await request.put({ url: `/wms/businesstype/update`, data })
+}
+
+// 删除业务类型
+export const deleteBusinesstype = async (id: number) => {
+ return await request.delete({ url: `/wms/businesstype/delete?id=` + id })
+}
+
+// 导出业务类型 Excel
+export const exportBusinesstype = async (params) => {
+ return await request.download({ url: `/wms/businesstype/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/businesstype/get-import-template' })
+}
+
+// 库存状态
+export const getBusinesstypeCode = async (businessCode: string) => {
+ return await request.get({ url: `/wms/businesstype/getBusinesstypeCode?businessCode=` + businessCode })
+}
diff --git a/src/api/wms/callmaterials/index.ts b/src/api/wms/callmaterials/index.ts
new file mode 100644
index 0000000..198efd9
--- /dev/null
+++ b/src/api/wms/callmaterials/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface CallmaterialsVO {
+ id: number
+ itemCode: string
+ batch: string
+ isRecive: string
+ packUnit: string
+ location: string
+ qty: number
+ uom: string
+}
+
+// 查询叫料标签列表
+export const getCallmaterialsPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/callmaterials/senior', data })
+ } else {
+ return await request.get({ url: `/wms/callmaterials/page`, params })
+ }
+}
+
+// 查询叫料标签详情
+export const getCallmaterials = async (id: number) => {
+ return await request.get({ url: `/wms/callmaterials/get?id=` + id })
+}
+
+// 新增叫料标签
+export const createCallmaterials = async (data: CallmaterialsVO) => {
+ return await request.post({ url: `/wms/callmaterials/create`, data })
+}
+
+// 修改叫料标签
+export const updateCallmaterials = async (data: CallmaterialsVO) => {
+ return await request.put({ url: `/wms/callmaterials/update`, data })
+}
+
+// 删除叫料标签
+export const deleteCallmaterials = async (id: number) => {
+ return await request.delete({ url: `/wms/callmaterials/delete?id=` + id })
+}
+
+// 导出叫料标签 Excel
+export const exportCallmaterials = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/callmaterials/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/callmaterials/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/callmaterials/get-import-template' })
+}
diff --git a/src/api/wms/carrier/index.ts b/src/api/wms/carrier/index.ts
new file mode 100644
index 0000000..18d1c88
--- /dev/null
+++ b/src/api/wms/carrier/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface CarrierVO {
+ code: string
+ name: string
+ shortName: string
+ address: string
+ country: string
+ city: string
+ phone: string
+ fax: string
+ postId: string
+ contacts: string
+ bank: string
+ currency: string
+ taxRate: number
+ type: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ available: string
+}
+
+// 查询承运商列表
+export const getCarrierPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/carrier/senior', data })
+ } else {
+ return await request.get({ url: `/wms/carrier/page`, params })
+ }
+}
+
+// 查询承运商详情
+export const getCarrier = async (id: number) => {
+ return await request.get({ url: `/wms/carrier/get?id=` + id })
+}
+
+// 新增承运商
+export const createCarrier = async (data: CarrierVO) => {
+ return await request.post({ url: `/wms/carrier/create`, data })
+}
+
+// 修改承运商
+export const updateCarrier = async (data: CarrierVO) => {
+ return await request.put({ url: `/wms/carrier/update`, data })
+}
+
+// 删除承运商
+export const deleteCarrier = async (id: number) => {
+ return await request.delete({ url: `/wms/carrier/delete?id=` + id })
+}
+
+// 导出承运商 Excel
+export const exportCarrier = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/carrier/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/carrier/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/carrier/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/condition/index.ts b/src/api/wms/condition/index.ts
new file mode 100644
index 0000000..6e2acde
--- /dev/null
+++ b/src/api/wms/condition/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface ConditionVO {
+ strategyCode: string
+ ruleCode: string
+ paramCode: string
+ operator: string
+ value: string
+ groupCode: string
+}
+
+// 查询条件列表
+export const getConditionPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/condition/senior', data })
+ } else {
+ return await request.get({ url: `/wms/condition/page`, params })
+ }
+}
+
+// 查询条件详情
+export const getCondition = async (id: number) => {
+ return await request.get({ url: `/wms/condition/get?id=` + id })
+}
+
+// 新增条件
+export const createCondition = async (data: ConditionVO) => {
+ return await request.post({ url: `/wms/condition/create`, data })
+}
+
+// 修改条件
+export const updateCondition = async (data: ConditionVO) => {
+ return await request.put({ url: `/wms/condition/update`, data })
+}
+
+// 删除条件
+export const deleteCondition = async (id: number) => {
+ return await request.delete({ url: `/wms/condition/delete?id=` + id })
+}
+
+// 导出条件 Excel
+export const exportCondition = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/condition/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/condition/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/condition/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/configuration/index.ts b/src/api/wms/configuration/index.ts
new file mode 100644
index 0000000..65fc1ad
--- /dev/null
+++ b/src/api/wms/configuration/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface ConfigurationVO {
+ strategyCode: string
+ ruleCode: string
+ configurationCode: string
+ configurationValue: string
+ description: string
+ groupCode: string
+}
+
+// 查询配置列表
+export const getConfigurationPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/configuration/senior', data })
+ } else {
+ return await request.get({ url: `/wms/configuration/page`, params })
+ }
+}
+
+// 查询配置详情
+export const getConfiguration = async (id: number) => {
+ return await request.get({ url: `/wms/configuration/get?id=` + id })
+}
+
+// 新增配置
+export const createConfiguration = async (data: ConfigurationVO) => {
+ return await request.post({ url: `/wms/configuration/create`, data })
+}
+
+// 修改配置
+export const updateConfiguration = async (data: ConfigurationVO) => {
+ return await request.put({ url: `/wms/configuration/update`, data })
+}
+
+// 删除配置
+export const deleteConfiguration = async (id: number) => {
+ return await request.delete({ url: `/wms/configuration/delete?id=` + id })
+}
+
+// 导出配置 Excel
+export const exportConfiguration = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/configuration/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/configuration/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/configuration/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/configurationsetting/index.ts b/src/api/wms/configurationsetting/index.ts
new file mode 100644
index 0000000..a1a063c
--- /dev/null
+++ b/src/api/wms/configurationsetting/index.ts
@@ -0,0 +1,58 @@
+import request from '@/config/axios'
+
+export interface ConfigurationsettingVO {
+ strategyType: string
+ configurationCode: string
+ configurationName: string
+ dataType: string
+ valueScope: string
+ relatedTo: string
+ description: string
+ isRequired: string
+}
+
+// 查询配置设置列表
+export const getConfigurationsettingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/configurationsetting/senior', data })
+ } else {
+ return await request.get({ url: `/wms/configurationsetting/page`, params })
+ }
+}
+
+// 查询配置设置详情
+export const getConfigurationsetting = async (id: number) => {
+ return await request.get({ url: `/wms/configurationsetting/get?id=` + id })
+}
+
+// 新增配置设置
+export const createConfigurationsetting = async (data: ConfigurationsettingVO) => {
+ return await request.post({ url: `/wms/configurationsetting/create`, data })
+}
+
+// 修改配置设置
+export const updateConfigurationsetting = async (data: ConfigurationsettingVO) => {
+ return await request.put({ url: `/wms/configurationsetting/update`, data })
+}
+
+// 删除配置设置
+export const deleteConfigurationsetting = async (id: number) => {
+ return await request.delete({ url: `/wms/configurationsetting/delete?id=` + id })
+}
+
+// 导出配置设置 Excel
+export const exportConfigurationsetting = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/configurationsetting/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/configurationsetting/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/configurationsetting/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/consumeRecordDetailb/index.ts b/src/api/wms/consumeRecordDetailb/index.ts
new file mode 100644
index 0000000..98745df
--- /dev/null
+++ b/src/api/wms/consumeRecordDetailb/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface ConsumeRecordDetailbVO {
+ batch: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ inventoryStatus: string
+ packingNumber: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ uom: string
+ code: string
+ interfaceType: string
+}
+
+// 查询制品返修记录子列表
+export const getConsumeRecordDetailbPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/consume-record-detailb/senior', data })
+ } else {
+ return await request.get({ url: `/wms/consume-record-detailb/page`, params })
+ }
+}
+
+// 查询制品返修记录子详情
+export const getConsumeRecordDetailb = async (id: number) => {
+ return await request.get({ url: `/wms/consume-record-detailb/get?id=` + id })
+}
+
+// 新增制品返修记录子
+export const createConsumeRecordDetailb = async (data: ConsumeRecordDetailbVO) => {
+ return await request.post({ url: `/wms/consume-record-detailb/create`, data })
+}
+
+// 修改制品返修记录子
+export const updateConsumeRecordDetailb = async (data: ConsumeRecordDetailbVO) => {
+ return await request.put({ url: `/wms/consume-record-detailb/update`, data })
+}
+
+// 删除制品返修记录子
+export const deleteConsumeRecordDetailb = async (id: number) => {
+ return await request.delete({ url: `/wms/consume-record-detailb/delete?id=` + id })
+}
+
+// 导出制品返修记录子 Excel
+export const exportConsumeRecordDetailb = async (params) => {
+ return await request.download({ url: `/wms/consume-record-detailb/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/consume-record-detailb/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/consumereRequestDetailb/index.ts b/src/api/wms/consumereRequestDetailb/index.ts
new file mode 100644
index 0000000..9c0baa5
--- /dev/null
+++ b/src/api/wms/consumereRequestDetailb/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface ConsumereRequestDetailbVO {
+ inventoryStatus: string
+ packingNumber: string
+ batch: string
+ fromLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ uom: string
+ updateTime: Date
+ updater: string
+}
+
+// 查询制品返修申请子列表
+export const getConsumereRequestDetailbPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/consumere-request-detailb/senior', data })
+ } else {
+ return await request.get({ url: `/wms/consumere-request-detailb/page`, params })
+ }
+}
+
+// 查询制品返修申请子详情
+export const getConsumereRequestDetailb = async (id: number) => {
+ return await request.get({ url: `/wms/consumere-request-detailb/get?id=` + id })
+}
+
+// 新增制品返修申请子
+export const createConsumereRequestDetailb = async (data: ConsumereRequestDetailbVO) => {
+ return await request.post({ url: `/wms/consumere-request-detailb/create`, data })
+}
+
+// 修改制品返修申请子
+export const updateConsumereRequestDetailb = async (data: ConsumereRequestDetailbVO) => {
+ return await request.put({ url: `/wms/consumere-request-detailb/update`, data })
+}
+
+// 删除制品返修申请子
+export const deleteConsumereRequestDetailb = async (id: number) => {
+ return await request.delete({ url: `/wms/consumere-request-detailb/delete?id=` + id })
+}
+
+// 导出制品返修申请子 Excel
+export const exportConsumereRequestDetailb = async (params) => {
+ return await request.download({ url: `/wms/consumere-request-detailb/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/consumere-request-detailb/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/containerBindRecordDetail/index.ts b/src/api/wms/containerBindRecordDetail/index.ts
new file mode 100644
index 0000000..6b70279
--- /dev/null
+++ b/src/api/wms/containerBindRecordDetail/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface ContainerBindRecordDetailVO {
+ id: number
+ containerContentType: string
+ contentNumber: string
+ itemCode: string
+ batch: string
+ inventoryStatus: string
+ uom: string
+ qty: number
+ masterId: number
+ number: string
+ siteId: string
+ remark: string
+}
+
+// 查询器具绑定记录子列表
+export const getContainerBindRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-bind-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-bind-record-detail/page`, params })
+ }
+}
+
+// 查询器具绑定记录子详情
+export const getContainerBindRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/container-bind-record-detail/get?id=` + id })
+}
+
+// 新增器具绑定记录子
+export const createContainerBindRecordDetail = async (data: ContainerBindRecordDetailVO) => {
+ return await request.post({ url: `/wms/container-bind-record-detail/create`, data })
+}
+
+// 修改器具绑定记录子
+export const updateContainerBindRecordDetail = async (data: ContainerBindRecordDetailVO) => {
+ return await request.put({ url: `/wms/container-bind-record-detail/update`, data })
+}
+
+// 删除器具绑定记录子
+export const deleteContainerBindRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/container-bind-record-detail/delete?id=` + id })
+}
+
+// 导出器具绑定记录子 Excel
+export const exportContainerBindRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/container-bind-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-bind-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/containerBindRecordMain/index.ts b/src/api/wms/containerBindRecordMain/index.ts
new file mode 100644
index 0000000..be7cca6
--- /dev/null
+++ b/src/api/wms/containerBindRecordMain/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface ContainerBindRecordMainVO {
+ id: number
+ number: string
+ containerNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ userGroupCode: string
+ interfaceType: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+ code: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+}
+
+// 查询器具绑定记录主列表
+export const getContainerBindRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-bind-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-bind-record-main/page`, params })
+ }
+}
+
+// 查询器具绑定记录主详情
+export const getContainerBindRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/container-bind-record-main/get?id=` + id })
+}
+
+// 新增器具绑定记录主
+export const createContainerBindRecordMain = async (data: ContainerBindRecordMainVO) => {
+ return await request.post({ url: `/wms/container-bind-record-main/create`, data })
+}
+
+// 修改器具绑定记录主
+export const updateContainerBindRecordMain = async (data: ContainerBindRecordMainVO) => {
+ return await request.put({ url: `/wms/container-bind-record-main/update`, data })
+}
+
+// 删除器具绑定记录主
+export const deleteContainerBindRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/container-bind-record-main/delete?id=` + id })
+}
+
+// 导出器具绑定记录主 Excel
+export const exportContainerBindRecordMain = async (params) => {
+ return await request.download({ url: `/wms/container-bind-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-bind-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/containerDetail/index.ts b/src/api/wms/containerDetail/index.ts
new file mode 100644
index 0000000..1be2d08
--- /dev/null
+++ b/src/api/wms/containerDetail/index.ts
@@ -0,0 +1,52 @@
+import request from '@/config/axios'
+
+export interface ContainerDetailVO {
+ containerContentType: string
+ contentNumber: string
+ itemCode: string
+ batch: string
+ inventoryStatus: string
+ uom: string
+ qty: number
+}
+
+// 查询器具子列表
+export const getContainerDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-detail/page`, params })
+ }
+}
+
+// 查询器具子详情
+export const getContainerDetail = async (id: number) => {
+ return await request.get({ url: `/wms/container-detail/get?id=` + id })
+}
+
+// 新增器具子
+export const createContainerDetail = async (data: ContainerDetailVO) => {
+ return await request.post({ url: `/wms/container-detail/create`, data })
+}
+
+// 修改器具子
+export const updateContainerDetail = async (data: ContainerDetailVO) => {
+ return await request.put({ url: `/wms/container-detail/update`, data })
+}
+
+// 删除器具子
+export const deleteContainerDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/container-detail/delete?id=` + id })
+}
+
+// 导出器具子 Excel
+export const exportContainerDetail = async (params) => {
+ return await request.download({ url: `/wms/container-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/containerDetailRequest/index.ts b/src/api/wms/containerDetailRequest/index.ts
new file mode 100644
index 0000000..43ec721
--- /dev/null
+++ b/src/api/wms/containerDetailRequest/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface ContainerDetailRequestVO {
+ id: number
+ masterId: number
+ number: string
+ containerNumber: string
+ fromLocationCode: string
+ toLocationCode: string
+ qty: number
+ uom: string
+ remark: string
+ siteId: string
+ concurrencyStamp: number
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询器具管理申请子列表
+export const getContainerDetailRequestPage = async (params) => {
+ console.log(params);
+
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-detail-request/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-detail-request/page`, params })
+ }
+}
+
+// 查询器具管理申请子详情
+export const getContainerDetailRequest = async (id: number) => {
+ return await request.get({ url: `/wms/container-detail-request/get?id=` + id })
+}
+
+// 新增器具管理申请子
+export const createContainerDetailRequest = async (data: ContainerDetailRequestVO) => {
+ return await request.post({ url: `/wms/container-detail-request/create`, data })
+}
+
+// 修改器具管理申请子
+export const updateContainerDetailRequest = async (data: ContainerDetailRequestVO) => {
+ return await request.put({ url: `/wms/container-detail-request/update`, data })
+}
+
+// 删除器具管理申请子
+export const deleteContainerDetailRequest = async (id: number) => {
+ return await request.delete({ url: `/wms/container-detail-request/delete?id=` + id })
+}
+
+// 导出器具管理申请子 Excel
+export const exportContainerDetailRequest = async (params) => {
+ return await request.download({ url: `/wms/container-detail-request/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-detail-request/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/containerInitRecordDetail/index.ts b/src/api/wms/containerInitRecordDetail/index.ts
new file mode 100644
index 0000000..f998ec3
--- /dev/null
+++ b/src/api/wms/containerInitRecordDetail/index.ts
@@ -0,0 +1,55 @@
+import request from '@/config/axios'
+
+export interface ContainerInitRecordDetailVO {
+ id: number
+ containerNumber: string
+ type: string
+ capacity: number
+ status: string
+ ownerCode: string
+ masterId: number
+ number: string
+ siteId: string
+ remark: string
+}
+
+// 查询器具初始化记录子列表
+export const getContainerInitRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-init-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-init-record-detail/page`, params })
+ }
+}
+
+// 查询器具初始化记录子详情
+export const getContainerInitRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/container-init-record-detail/get?id=` + id })
+}
+
+// 新增器具初始化记录子
+export const createContainerInitRecordDetail = async (data: ContainerInitRecordDetailVO) => {
+ return await request.post({ url: `/wms/container-init-record-detail/create`, data })
+}
+
+// 修改器具初始化记录子
+export const updateContainerInitRecordDetail = async (data: ContainerInitRecordDetailVO) => {
+ return await request.put({ url: `/wms/container-init-record-detail/update`, data })
+}
+
+// 删除器具初始化记录子
+export const deleteContainerInitRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/container-init-record-detail/delete?id=` + id })
+}
+
+// 导出器具初始化记录子 Excel
+export const exportContainerInitRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/container-init-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-init-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/containerInitRecordMain/index.ts b/src/api/wms/containerInitRecordMain/index.ts
new file mode 100644
index 0000000..9bcb441
--- /dev/null
+++ b/src/api/wms/containerInitRecordMain/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface ContainerInitRecordMainVO {
+ id: number
+ number: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ userGroupCode: string
+ interfaceType: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+ code: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+}
+
+// 查询器具初始化记录主列表
+export const getContainerInitRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-init-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-init-record-main/page`, params })
+ }
+}
+
+// 查询器具初始化记录主详情
+export const getContainerInitRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/container-init-record-main/get?id=` + id })
+}
+
+// 新增器具初始化记录主
+export const createContainerInitRecordMain = async (data: ContainerInitRecordMainVO) => {
+ return await request.post({ url: `/wms/container-init-record-main/create`, data })
+}
+
+// 修改器具初始化记录主
+export const updateContainerInitRecordMain = async (data: ContainerInitRecordMainVO) => {
+ return await request.put({ url: `/wms/container-init-record-main/update`, data })
+}
+
+// 删除器具初始化记录主
+export const deleteContainerInitRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/container-init-record-main/delete?id=` + id })
+}
+
+// 导出器具初始化记录主 Excel
+export const exportContainerInitRecordMain = async (params) => {
+ return await request.download({ url: `/wms/container-init-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-init-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/containerMain/index.ts b/src/api/wms/containerMain/index.ts
new file mode 100644
index 0000000..7e10ebf
--- /dev/null
+++ b/src/api/wms/containerMain/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface ContainerMainVO {
+ id: string
+ number: string
+ type: string
+ capacity: number
+ status: string
+ ownerCode: string
+}
+
+// 查询器具主列表
+export const getContainerMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-main/page`, params })
+ }
+}
+
+// 查询器具主详情
+export const getContainerMain = async (id: number) => {
+ return await request.get({ url: `/wms/container-main/get?id=` + id })
+}
+
+// 新增器具主
+export const createContainerMain = async (data: ContainerMainVO) => {
+ return await request.post({ url: `/wms/container-main/create`, data })
+}
+
+// 修改器具主
+export const updateContainerMain = async (data: ContainerMainVO) => {
+ return await request.put({ url: `/wms/container-main/update`, data })
+}
+
+// 删除器具主
+export const deleteContainerMain = async (id: number) => {
+ return await request.delete({ url: `/wms/container-main/delete?id=` + id })
+}
+
+// 导出器具主 Excel
+export const exportContainerMain = async (params) => {
+ return await request.download({ url: `/wms/container-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-main/get-import-template' })
+}
+
+// 器具维修
+export const repairSubmitContainerRequestMain = async (id) => {
+ return await request.put({ url: `/wms/container-main/repair?id=` + id })
+}
+
+// 器具报废
+export const scrapSubmitContainerRequestMain = async (id) => {
+ return await request.put({ url: `/wms/container-main/scrap?id=` + id })
+}
diff --git a/src/api/wms/containerMainRequest/index.ts b/src/api/wms/containerMainRequest/index.ts
new file mode 100644
index 0000000..2d5bea0
--- /dev/null
+++ b/src/api/wms/containerMainRequest/index.ts
@@ -0,0 +1,149 @@
+import request from '@/config/axios'
+
+export interface ContainerMainRequestVO {
+ id: number
+ type: string
+ available: string
+ remark: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询器具管理申请主列表
+export const getContainerMainRequestPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/wms/container-main-request/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-main-request/page`, params })
+ }
+}
+
+// 查询器具管理申请主详情
+export const getContainerMainRequest = async (id: number) => {
+ return await request.get({ url: `/wms/container-main-request/get?id=` + id })
+}
+
+// 新增器具管理申请主
+export const createContainerMainRequest = async (data: ContainerMainRequestVO) => {
+ return await request.post({ url: `/wms/container-main-request/create`, data })
+}
+
+// 修改器具管理申请主
+export const updateContainerMainRequest = async (data: ContainerMainRequestVO) => {
+ return await request.put({ url: `/wms/container-main-request/update`, data })
+}
+
+// 删除器具管理申请主
+export const deleteContainerMainRequest = async (id: number) => {
+ return await request.delete({ url: `/wms/container-main-request/delete?id=` + id })
+}
+
+// 导出器具管理申请主 Excel
+export const exportContainerMainRequest = async (params) => {
+ params.businessType = 'ContainerManage'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.downloadPost({ url: '/wms/container-main-request/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/container-main-request/export-excel`, params })
+ }
+}
+
+// 导出初始化器具管理申请主 Excel
+export const exportInitialContainerMainRequest = async (params) => {
+ params.businessType = 'InitialContainerManage'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.downloadPost({ url: '/wms/container-main-request/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/container-main-request/export-excel`, params })
+ }
+}
+
+// 导出初始化器具管理申请主 Excel
+export const exportScrapContainerMainRequest = async (params) => {
+ params.businessType = 'ScrapContainerManage'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.downloadPost({ url: '/wms/container-main-request/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/container-main-request/export-excel`, params })
+ }
+}
+
+// 导出移动器具管理申请主 Excel
+export const exportMoveContainerMainRequest = async (params) => {
+ params.businessType = 'MoveContainerManage'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.downloadPost({ url: '/wms/container-main-request/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/container-main-request/export-excel`, params })
+ }
+}
+
+// 导出返回器具管理申请主 Excel
+export const exportReturnContainerMainRequest = async (params) => {
+ params.businessType = 'ReturnContainerManage'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.downloadPost({ url: '/wms/container-main-request/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/container-main-request/export-excel`, params })
+ }
+}
+
+// 导出发运器具管理申请主 Excel
+export const exportDeliverContainerMainRequest = async (params) => {
+ params.businessType = 'DeliverContainerManage'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.downloadPost({ url: '/wms/container-main-request/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/container-main-request/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-main-request/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/container-main-request/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/container-main-request/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/container-main-request/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/container-main-request/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/container-main-request/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/container-main-request/handle?id=' + id })
+}
diff --git a/src/api/wms/containerRecordDetail/index.ts b/src/api/wms/containerRecordDetail/index.ts
new file mode 100644
index 0000000..e8993f7
--- /dev/null
+++ b/src/api/wms/containerRecordDetail/index.ts
@@ -0,0 +1,58 @@
+import request from '@/config/axios'
+
+export interface ContainerRecordDetailVO {
+ id: number
+ masterId: number
+ number: string
+ containerNumber: string
+ fromLocationCode: string
+ toLocationCode: string
+ qty: number
+ uom: string
+ remark: string
+ siteId: string
+ concurrencyStamp: number
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询器具管理记录子列表
+export const getContainerRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-record-detail/page`, params })
+ }
+}
+
+// 查询器具管理记录子详情
+export const getContainerRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/container-record-detail/get?id=` + id })
+}
+
+// 新增器具管理记录子
+export const createContainerRecordDetail = async (data: ContainerRecordDetailVO) => {
+ return await request.post({ url: `/wms/container-record-detail/create`, data })
+}
+
+// 修改器具管理记录子
+export const updateContainerRecordDetail = async (data: ContainerRecordDetailVO) => {
+ return await request.put({ url: `/wms/container-record-detail/update`, data })
+}
+
+// 删除器具管理记录子
+export const deleteContainerRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/container-record-detail/delete?id=` + id })
+}
+
+// 导出器具管理记录子 Excel
+export const exportContainerRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/container-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/containerRecordMain/index.ts b/src/api/wms/containerRecordMain/index.ts
new file mode 100644
index 0000000..044e9d8
--- /dev/null
+++ b/src/api/wms/containerRecordMain/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface ContainerRecordMainVO {
+ id: number
+ type: string
+ number: string
+ requestNumber: string
+ status: string
+ available: string
+ remark: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+ departmentCode: string
+}
+
+// 查询器具管理记录主列表
+export const getContainerRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-record-main/page`, params })
+ }
+}
+
+// 查询器具管理记录主详情
+export const getContainerRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/container-record-main/get?id=` + id })
+}
+
+// 新增器具管理记录主
+export const createContainerRecordMain = async (data: ContainerRecordMainVO) => {
+ return await request.post({ url: `/wms/container-record-main/create`, data })
+}
+
+// 修改器具管理记录主
+export const updateContainerRecordMain = async (data: ContainerRecordMainVO) => {
+ return await request.put({ url: `/wms/container-record-main/update`, data })
+}
+
+// 删除器具管理记录主
+export const deleteContainerRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/container-record-main/delete?id=` + id })
+}
+
+// 导出器具管理记录主 Excel
+export const exportContainerRecordMain = async (params) => {
+ // return await request.download({ url: `/wms/container-record-main/export-excel`, params })
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.downloadPost({ url: '/wms/container-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/container-record-main/export-excel`, params })
+ }
+}
+
+// 导出器具管理初始化记录主 Excel
+export const exportContainerInitRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.downloadPost({ url: '/wms/container-record-main/export-excel-init-senior', data })
+ } else {
+ return await request.download({ url: `/wms/container-record-main/export-excel-init`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-record-main/get-import-template' })
+}
diff --git a/src/api/wms/containerRepairRecordDetail/index.ts b/src/api/wms/containerRepairRecordDetail/index.ts
new file mode 100644
index 0000000..379757f
--- /dev/null
+++ b/src/api/wms/containerRepairRecordDetail/index.ts
@@ -0,0 +1,53 @@
+import request from '@/config/axios'
+
+export interface ContainerRepairRecordDetailVO {
+ id: number
+ containerNumber: string
+ fromContainerStatus: string
+ toContainerStatus: string
+ masterId: number
+ number: string
+ siteId: string
+ remark: string
+}
+
+// 查询器具维修记录子列表
+export const getContainerRepairRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-repair-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-repair-record-detail/page`, params })
+ }
+}
+
+// 查询器具维修记录子详情
+export const getContainerRepairRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/container-repair-record-detail/get?id=` + id })
+}
+
+// 新增器具维修记录子
+export const createContainerRepairRecordDetail = async (data: ContainerRepairRecordDetailVO) => {
+ return await request.post({ url: `/wms/container-repair-record-detail/create`, data })
+}
+
+// 修改器具维修记录子
+export const updateContainerRepairRecordDetail = async (data: ContainerRepairRecordDetailVO) => {
+ return await request.put({ url: `/wms/container-repair-record-detail/update`, data })
+}
+
+// 删除器具维修记录子
+export const deleteContainerRepairRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/container-repair-record-detail/delete?id=` + id })
+}
+
+// 导出器具维修记录子 Excel
+export const exportContainerRepairRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/container-repair-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-repair-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/containerRepairRecordMain/index.ts b/src/api/wms/containerRepairRecordMain/index.ts
new file mode 100644
index 0000000..8754af5
--- /dev/null
+++ b/src/api/wms/containerRepairRecordMain/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface ContainerRepairRecordMainVO {
+ id: number
+ number: string
+ containerNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ userGroupCode: string
+ interfaceType: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+ code: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+}
+
+// 查询器具维修记录主列表
+export const getContainerRepairRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-repair-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-repair-record-main/page`, params })
+ }
+}
+
+// 查询器具维修记录主详情
+export const getContainerRepairRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/container-repair-record-main/get?id=` + id })
+}
+
+// 新增器具维修记录主
+export const createContainerRepairRecordMain = async (data: ContainerRepairRecordMainVO) => {
+ return await request.post({ url: `/wms/container-repair-record-main/create`, data })
+}
+
+// 修改器具维修记录主
+export const updateContainerRepairRecordMain = async (data: ContainerRepairRecordMainVO) => {
+ return await request.put({ url: `/wms/container-repair-record-main/update`, data })
+}
+
+// 删除器具维修记录主
+export const deleteContainerRepairRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/container-repair-record-main/delete?id=` + id })
+}
+
+// 导出器具维修记录主 Excel
+export const exportContainerRepairRecordMain = async (params) => {
+ return await request.download({ url: `/wms/container-repair-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-repair-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/containerUnbindRecordDetail/index.ts b/src/api/wms/containerUnbindRecordDetail/index.ts
new file mode 100644
index 0000000..737f9f0
--- /dev/null
+++ b/src/api/wms/containerUnbindRecordDetail/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface ContainerUnbindRecordDetailVO {
+ id: number
+ containerContentType: string
+ contentNumber: string
+ itemCode: string
+ batch: string
+ inventoryStatus: string
+ uom: string
+ qty: number
+ masterId: number
+ number: string
+ siteId: string
+ remark: string
+}
+
+// 查询器具解绑记录子列表
+export const getContainerUnbindRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-unbind-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-unbind-record-detail/page`, params })
+ }
+}
+
+// 查询器具解绑记录子详情
+export const getContainerUnbindRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/container-unbind-record-detail/get?id=` + id })
+}
+
+// 新增器具解绑记录子
+export const createContainerUnbindRecordDetail = async (data: ContainerUnbindRecordDetailVO) => {
+ return await request.post({ url: `/wms/container-unbind-record-detail/create`, data })
+}
+
+// 修改器具解绑记录子
+export const updateContainerUnbindRecordDetail = async (data: ContainerUnbindRecordDetailVO) => {
+ return await request.put({ url: `/wms/container-unbind-record-detail/update`, data })
+}
+
+// 删除器具解绑记录子
+export const deleteContainerUnbindRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/container-unbind-record-detail/delete?id=` + id })
+}
+
+// 导出器具解绑记录子 Excel
+export const exportContainerUnbindRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/container-unbind-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-unbind-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/containerUnbindRecordMain/index.ts b/src/api/wms/containerUnbindRecordMain/index.ts
new file mode 100644
index 0000000..1dc49d4
--- /dev/null
+++ b/src/api/wms/containerUnbindRecordMain/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface ContainerUnbindRecordMainVO {
+ id: number
+ number: string
+ containerNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ userGroupCode: string
+ interfaceType: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+ code: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+}
+
+// 查询器具解绑记录主列表
+export const getContainerUnbindRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/container-unbind-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/container-unbind-record-main/page`, params })
+ }
+}
+
+// 查询器具解绑记录主详情
+export const getContainerUnbindRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/container-unbind-record-main/get?id=` + id })
+}
+
+// 新增器具解绑记录主
+export const createContainerUnbindRecordMain = async (data: ContainerUnbindRecordMainVO) => {
+ return await request.post({ url: `/wms/container-unbind-record-main/create`, data })
+}
+
+// 修改器具解绑记录主
+export const updateContainerUnbindRecordMain = async (data: ContainerUnbindRecordMainVO) => {
+ return await request.put({ url: `/wms/container-unbind-record-main/update`, data })
+}
+
+// 删除器具解绑记录主
+export const deleteContainerUnbindRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/container-unbind-record-main/delete?id=` + id })
+}
+
+// 导出器具解绑记录主 Excel
+export const exportContainerUnbindRecordMain = async (params) => {
+ return await request.download({ url: `/wms/container-unbind-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/container-unbind-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/countJobDetail/index.ts b/src/api/wms/countJobDetail/index.ts
new file mode 100644
index 0000000..6b7e132
--- /dev/null
+++ b/src/api/wms/countJobDetail/index.ts
@@ -0,0 +1,62 @@
+import request from '@/config/axios'
+
+export interface CountJobDetailVO {
+ countDetailNumber: string
+ ownerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+}
+
+// 查询盘点任务子列表
+export const getCountJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/count-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/count-job-detail/page`, params })
+ }
+}
+
+// 查询盘点任务子详情
+export const getCountJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/count-job-detail/get?id=` + id })
+}
+
+// 新增盘点任务子
+export const createCountJobDetail = async (data: CountJobDetailVO) => {
+ return await request.post({ url: `/wms/count-job-detail/create`, data })
+}
+
+// 修改盘点任务子
+export const updateCountJobDetail = async (data: CountJobDetailVO) => {
+ return await request.put({ url: `/wms/count-job-detail/update`, data })
+}
+
+// 删除盘点任务子
+export const deleteCountJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/count-job-detail/delete?id=` + id })
+}
+
+// 导出盘点任务子 Excel
+export const exportCountJobDetail = async (params) => {
+ return await request.download({ url: `/wms/count-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/count-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/countJobMain/index.ts b/src/api/wms/countJobMain/index.ts
new file mode 100644
index 0000000..d851c31
--- /dev/null
+++ b/src/api/wms/countJobMain/index.ts
@@ -0,0 +1,115 @@
+import request from '@/config/axios'
+
+export interface CountJobMainVO {
+ requestNumber: string
+ planNumber: string
+ stage: string
+ warehouseCode: string
+ locationCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ siteId: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询盘点任务主列表
+export const getCountJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/count-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/count-job-main/page`, params })
+ }
+}
+
+// 查询盘点任务主详情
+export const getCountJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/count-job-main/get?id=` + id })
+}
+
+// 新增盘点任务主
+export const createCountJobMain = async (data: CountJobMainVO) => {
+ return await request.post({ url: `/wms/count-job-main/create`, data })
+}
+
+// 修改盘点任务主
+export const updateCountJobMain = async (data: CountJobMainVO) => {
+ return await request.put({ url: `/wms/count-job-main/update`, data })
+}
+
+// 删除盘点任务主
+export const deleteCountJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/count-job-main/delete?id=` + id })
+}
+
+// 导出盘点任务主 Excel
+export const exportCountJobMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.downloadPost({ url: '/wms/count-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/count-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/count-job-main/get-import-template' })
+}
+
+// 关闭盘点任务主
+export const closeCountJobMain = (id: number) => {
+ return request.put({ url: '/wms/count-job-main/close?id=' + id })
+}
+
+// 完成盘点任务主
+export const doneCountJobMain = (id: number) => {
+ //更换一下完成接口
+ return request.put({ url: '/wms/count-job-main/finish?id=' + id })
+}
+// 承接盘点任务主
+export const acceptCountJobMain = (id: number) => {
+ return request.put({ url: '/wms/count-job-main/accept?id=' + id })
+}
+// 取消承接盘点任务主
+export const abandonCountJobMain = (id: number) => {
+ return request.put({ url: '/wms/count-job-main/abandon?id=' + id })
+}
+
+// 关闭盘点任务主
+export const handleExportCountJob = async (id: number) => {
+ let params = {
+ masterId:id
+ }
+ return await request.download({ url: `/wms/count-job-main/export-excel-single`, params })
+}
diff --git a/src/api/wms/countPlanDetail/index.ts b/src/api/wms/countPlanDetail/index.ts
new file mode 100644
index 0000000..5c4300b
--- /dev/null
+++ b/src/api/wms/countPlanDetail/index.ts
@@ -0,0 +1,52 @@
+import request from '@/config/axios'
+
+export interface CountPlanDetailVO {
+ type: string
+ value: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ planQty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ available: string
+}
+
+// 查询盘点计划子列表
+export const getCountPlanDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/count-plan-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/count-plan-detail/page`, params })
+ }
+}
+
+// 查询盘点计划子详情
+export const getCountPlanDetail = async (id: number) => {
+ return await request.get({ url: `/wms/count-plan-detail/get?id=` + id })
+}
+
+// 新增盘点计划子
+export const createCountPlanDetail = async (data: CountPlanDetailVO) => {
+ return await request.post({ url: `/wms/count-plan-detail/create`, data })
+}
+
+// 修改盘点计划子
+export const updateCountPlanDetail = async (data: CountPlanDetailVO) => {
+ return await request.put({ url: `/wms/count-plan-detail/update`, data })
+}
+
+// 删除盘点计划子
+export const deleteCountPlanDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/count-plan-detail/delete?id=` + id })
+}
+
+// 导出盘点计划子 Excel
+export const exportCountPlanDetail = async (params) => {
+ return await request.download({ url: `/wms/count-plan-detail/export-excel`, params })
+}
diff --git a/src/api/wms/countPlanMain/index.ts b/src/api/wms/countPlanMain/index.ts
new file mode 100644
index 0000000..e292f6d
--- /dev/null
+++ b/src/api/wms/countPlanMain/index.ts
@@ -0,0 +1,111 @@
+import request from '@/config/axios'
+
+export interface CountPlanMainVO {
+ type: string
+ crontab: string
+ dimension: string
+ limitedValue: number
+ ignoreListOfItem: string
+ ignoreListOfLocation: string
+ scopeList: string
+ countSplitType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ beginTime: Date
+ endTime: Date
+ status: string
+ updateTime: Date
+ updater: string
+ isSnapshot: string
+ isFreeze: string
+ isCountEmptyLocation: string
+ isCountZeroInventory: string
+ isCountNegativeInventory: string
+ isOpenCount: string
+ available: string
+}
+
+// 查询盘点计划主列表
+export const getCountPlanMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/count-plan-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/count-plan-main/page`, params })
+ }
+}
+
+// 查询盘点计划主详情
+export const getCountPlanMain = async (id: number) => {
+ return await request.get({ url: `/wms/count-plan-main/get?id=` + id })
+}
+
+// 新增盘点计划主
+export const createCountPlanMain = async (data: CountPlanMainVO) => {
+ return await request.post({ url: `/wms/count-plan-main/create`, data })
+}
+
+// 修改盘点计划主
+export const updateCountPlanMain = async (data: CountPlanMainVO) => {
+ return await request.put({ url: `/wms/count-plan-main/update`, data })
+}
+
+// 删除盘点计划主
+export const deleteCountPlanMain = async (id: number) => {
+ return await request.delete({ url: `/wms/count-plan-main/delete?id=` + id })
+}
+
+// 导出盘点计划主 Excel
+export const exportCountPlanMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.downloadPost({ url: '/wms/count-plan-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/count-plan-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/count-plan-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/count-plan-main/close?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/count-plan-main/submit?id=' + id })
+}
+
+// 打开
+export const open = (id) => {
+ return request.put({ url: '/wms/count-plan-main/open?id=' + id })
+}
+
+// 驳回
+export const reject = (id) => {
+ return request.put({ url: '/wms/count-plan-main/reject?id=' + id })
+}
+
+// 通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/count-plan-main/agree?id=' + id })
+}
+
+// 发布
+export const publish = (id) => {
+ return request.put({ url: '/wms/count-plan-main/publish?id=' + id })
+}
+
+// 重置
+export const resetting = (id) => {
+ return request.put({ url: '/wms/count-plan-main/resetting?id=' + id })
+}
diff --git a/src/api/wms/countRecordDetail/index.ts b/src/api/wms/countRecordDetail/index.ts
new file mode 100644
index 0000000..3a35068
--- /dev/null
+++ b/src/api/wms/countRecordDetail/index.ts
@@ -0,0 +1,72 @@
+import request from '@/config/axios'
+
+export interface CountRecordDetailVO {
+ countDetailNumber: string
+ ownerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ locationCode: string
+ locationGroupCode: string
+ areaCode: string
+ inventoryStatus: string
+ countQty: number
+ countTime: Date
+ countUser: string
+ countDescription: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creatorId: string
+ jobDetailId: string
+}
+
+// 查询盘点记录子列表
+export const getCountRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/count-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/count-record-detail/page`, params })
+ }
+}
+
+// 查询盘点记录子详情
+export const getCountRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/count-record-detail/get?id=` + id })
+}
+
+// 新增盘点记录子
+export const createCountRecordDetail = async (data: CountRecordDetailVO) => {
+ return await request.post({ url: `/wms/count-record-detail/create`, data })
+}
+
+// 修改盘点记录子
+export const updateCountRecordDetail = async (data: CountRecordDetailVO) => {
+ return await request.put({ url: `/wms/count-record-detail/update`, data })
+}
+
+// 删除盘点记录子
+export const deleteCountRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/count-record-detail/delete?id=` + id })
+}
+
+// 导出盘点记录子 Excel
+export const exportCountRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/count-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/count-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/countRecordMain/index.ts b/src/api/wms/countRecordMain/index.ts
new file mode 100644
index 0000000..71012a8
--- /dev/null
+++ b/src/api/wms/countRecordMain/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface CountRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ planNumber: string
+ stage: string
+ warehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ available: string
+}
+
+// 查询盘点记录主列表
+export const getCountRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/count-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/count-record-main/page`, params })
+ }
+}
+
+// 查询盘点记录主详情
+export const getCountRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/count-record-main/get?id=` + id })
+}
+
+// 新增盘点记录主
+export const createCountRecordMain = async (data: CountRecordMainVO) => {
+ return await request.post({ url: `/wms/count-record-main/create`, data })
+}
+
+// 修改盘点记录主
+export const updateCountRecordMain = async (data: CountRecordMainVO) => {
+ return await request.put({ url: `/wms/count-record-main/update`, data })
+}
+
+// 删除盘点记录主
+export const deleteCountRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/count-record-main/delete?id=` + id })
+}
+
+// 导出盘点记录主 Excel
+export const exportCountRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.downloadPost({ url: '/wms/count-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/count-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/count-record-main/get-import-template' })
+}
+
+// 生成盘点调整
+export const generateCountRecordMain = async (id) => {
+ return await request.put({ url: `/wms/count-record-main/generate?id=` + id})
+}
diff --git a/src/api/wms/countRequestDetail/index.ts b/src/api/wms/countRequestDetail/index.ts
new file mode 100644
index 0000000..96ed644
--- /dev/null
+++ b/src/api/wms/countRequestDetail/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface CountRequestDetailVO {
+ countDetailNumber: string
+ ownerCode: string
+ batch: string
+ locationCode: string
+ inventoryStatus: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ itemCode: string
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromContainerNumber: string
+ toContainerNumber: string
+}
+
+// 查询盘点申请子列表
+export const getCountRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/count-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/count-request-detail/page`, params })
+ }
+}
+
+// 查询盘点申请子详情
+export const getCountRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/count-request-detail/get?id=` + id })
+}
+
+// 新增盘点申请子
+export const createCountRequestDetail = async (data: CountRequestDetailVO) => {
+ return await request.post({ url: `/wms/count-request-detail/create`, data })
+}
+
+// 修改盘点申请子
+export const updateCountRequestDetail = async (data: CountRequestDetailVO) => {
+ return await request.put({ url: `/wms/count-request-detail/update`, data })
+}
+
+// 删除盘点申请子
+export const deleteCountRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/count-request-detail/delete?id=` + id })
+}
+
+// 导出盘点申请子 Excel
+export const exportCountRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/count-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/count-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/countRequestMain/index.ts b/src/api/wms/countRequestMain/index.ts
new file mode 100644
index 0000000..77ff0c0
--- /dev/null
+++ b/src/api/wms/countRequestMain/index.ts
@@ -0,0 +1,118 @@
+import request from '@/config/axios'
+
+export interface CountRequestMainVO {
+ requestNumber: string
+ planNumber: string
+ stage: string
+ warehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询盘点申请主列表
+export const getCountRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/count-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/count-request-main/page`, params })
+ }
+}
+
+// 查询盘点申请主详情
+export const getCountRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/count-request-main/get?id=` + id })
+}
+
+// 新增盘点申请主
+export const createCountRequestMain = async (data: CountRequestMainVO) => {
+ return await request.post({ url: `/wms/count-request-main/create`, data })
+}
+
+// 修改盘点申请主
+export const updateCountRequestMain = async (data: CountRequestMainVO) => {
+ return await request.put({ url: `/wms/count-request-main/update`, data })
+}
+
+// 删除盘点申请主
+export const deleteCountRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/count-request-main/delete?id=` + id })
+}
+
+// 导出盘点申请主 Excel
+export const exportCountRequestMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.downloadPost({ url: '/wms/count-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/count-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/count-request-main/get-import-template' })
+}
+
+// 关闭盘点申请主 Excel
+export const close = async (id) => {
+ return await request.put({ url: `/wms/count-request-main/close?id=` + id })
+}
+
+// 重新添加盘点申请主 Excel
+export const reAdd = async (id) => {
+ return await request.put({ url: `/wms/count-request-main/reAdd?id=` + id })
+}
+
+// 提交盘点申请主 Excel
+export const submit = async (id) => {
+ return await request.put({ url: `/wms/count-request-main/submit?id=` + id })
+}
+
+// 审批通过盘点申请主 Excel
+export const agree = async (id) => {
+ return await request.put({ url: `/wms/count-request-main/agree?id=` + id })
+}
+
+// 审批驳回盘点申请主 Excel
+export const refused = async (id) => {
+ return await request.put({ url: `/wms/count-request-main/refused?id=` + id })
+}
+
+// 处理盘点申请主 Excel
+export const handle = async (id) => {
+ return await request.put({ url: `/wms/count-request-main/handle?id=` + id })
+}
+
+//重盘
+export const reCount = async (data) => {
+ return await request.put({ url: `/wms/count-request-main/reCount`,data})
+}
+
+//监盘
+export const superviseCount = async (data) => {
+ return await request.put({ url: `/wms/count-request-main/supervise`,data})
+}
+//生成盘点调整申请
+export const generateCountadjustRequest = async (id) => {
+ return await request.put({ url: `/wms/count-request-main/generateCountadjustRequest?id=` + id })
+}
+//解冻
+export const thaw = async (id) => {
+ return await request.put({ url: `/wms/count-request-main/thaw?id=` + id })
+}
diff --git a/src/api/wms/countadjustRecordDetail/index.ts b/src/api/wms/countadjustRecordDetail/index.ts
new file mode 100644
index 0000000..ab86020
--- /dev/null
+++ b/src/api/wms/countadjustRecordDetail/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface CountadjustRecordDetailVO {
+ countDetailNumber: string
+ ownerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ locationCode: string
+ inventoryStatus: string
+ inventoryQty: number
+ countQty: number
+ adjustQty: number
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+}
+
+// 查询盘点调整记录子列表
+export const getCountadjustRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/countadjust-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/countadjust-record-detail/page`, params })
+ }
+}
+
+// 查询盘点调整记录子详情
+export const getCountadjustRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/countadjust-record-detail/get?id=` + id })
+}
+
+// 新增盘点调整记录子
+export const createCountadjustRecordDetail = async (data: CountadjustRecordDetailVO) => {
+ return await request.post({ url: `/wms/countadjust-record-detail/create`, data })
+}
+
+// 修改盘点调整记录子
+export const updateCountadjustRecordDetail = async (data: CountadjustRecordDetailVO) => {
+ return await request.put({ url: `/wms/countadjust-record-detail/update`, data })
+}
+
+// 删除盘点调整记录子
+export const deleteCountadjustRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/countadjust-record-detail/delete?id=` + id })
+}
+
+// 导出盘点调整记录子 Excel
+export const exportCountadjustRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/countadjust-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/countadjust-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/countadjustRecordMain/index.ts b/src/api/wms/countadjustRecordMain/index.ts
new file mode 100644
index 0000000..8cb6da3
--- /dev/null
+++ b/src/api/wms/countadjustRecordMain/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface CountadjustRecordMainVO {
+ requestNumber: string
+ countRecordNumber: string
+ warehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ available: string
+}
+
+// 查询盘点调整记录主列表
+export const getCountadjustRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/countadjust-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/countadjust-record-main/page`, params })
+ }
+}
+
+// 查询盘点调整记录主详情
+export const getCountadjustRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/countadjust-record-main/get?id=` + id })
+}
+
+// 新增盘点调整记录主
+export const createCountadjustRecordMain = async (data: CountadjustRecordMainVO) => {
+ return await request.post({ url: `/wms/countadjust-record-main/create`, data })
+}
+
+// 修改盘点调整记录主
+export const updateCountadjustRecordMain = async (data: CountadjustRecordMainVO) => {
+ return await request.put({ url: `/wms/countadjust-record-main/update`, data })
+}
+
+// 删除盘点调整记录主
+export const deleteCountadjustRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/countadjust-record-main/delete?id=` + id })
+}
+
+// 导出盘点调整记录主 Excel
+export const exportCountadjustRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.downloadPost({ url: '/wms/countadjust-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/countadjust-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/countadjust-record-main/get-import-template' })
+}
diff --git a/src/api/wms/countadjustRequestDetail/index.ts b/src/api/wms/countadjustRequestDetail/index.ts
new file mode 100644
index 0000000..1bb9805
--- /dev/null
+++ b/src/api/wms/countadjustRequestDetail/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface CountadjustRequestDetailVO {
+ countDetailNumber: string
+ ownerlCode: string
+ packinglNumber: string
+ containerlNumber: string
+ batch: string
+ locationlCode: string
+ inventorylStatus: string
+ inventorylQty: number
+ countlQty: number
+ adjustlQty: number
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemlName: string
+ itemlDesc1: string
+ itemlDesc2: string
+ projectlCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ itemlCode: string
+}
+
+// 查询盘点调整申请子列表
+export const getCountadjustRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/countadjust-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/countadjust-request-detail/page`, params })
+ }
+}
+
+// 查询盘点调整申请子详情
+export const getCountadjustRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/countadjust-request-detail/get?id=` + id })
+}
+
+// 新增盘点调整申请子
+export const createCountadjustRequestDetail = async (data: CountadjustRequestDetailVO) => {
+ return await request.post({ url: `/wms/countadjust-request-detail/create`, data })
+}
+
+// 修改盘点调整申请子
+export const updateCountadjustRequestDetail = async (data: CountadjustRequestDetailVO) => {
+ return await request.put({ url: `/wms/countadjust-request-detail/update`, data })
+}
+
+// 删除盘点调整申请子
+export const deleteCountadjustRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/countadjust-request-detail/delete?id=` + id })
+}
+
+// 导出盘点调整申请子 Excel
+export const exportCountadjustRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/countadjust-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/countadjust-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/countadjustRequestMain/index.ts b/src/api/wms/countadjustRequestMain/index.ts
new file mode 100644
index 0000000..d1612bd
--- /dev/null
+++ b/src/api/wms/countadjustRequestMain/index.ts
@@ -0,0 +1,99 @@
+import request from '@/config/axios'
+
+export interface CountadjustRequestMainVO {
+ requestNumber: string
+ countRecordNumber: string
+ warehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询盘点调整申请主列表
+export const getCountadjustRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/countadjust-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/countadjust-request-main/page`, params })
+ }
+}
+
+// 查询盘点调整申请主详情
+export const getCountadjustRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/countadjust-request-main/get?id=` + id })
+}
+
+// 新增盘点调整申请主
+export const createCountadjustRequestMain = async (data: CountadjustRequestMainVO) => {
+ return await request.post({ url: `/wms/countadjust-request-main/create`, data })
+}
+
+// 修改盘点调整申请主
+export const updateCountadjustRequestMain = async (data: CountadjustRequestMainVO) => {
+ return await request.put({ url: `/wms/countadjust-request-main/update`, data })
+}
+
+// 删除盘点调整申请主
+export const deleteCountadjustRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/countadjust-request-main/delete?id=` + id })
+}
+
+// 导出盘点调整申请主 Excel
+export const exportCountadjustRequestMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.downloadPost({ url: '/wms/countadjust-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/countadjust-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/countadjust-request-main/get-import-template' })
+}
+
+// 关闭盘点申请主 Excel
+export const close = async (id) => {
+ return await request.put({ url: `/wms/countadjust-request-main/close?id=` + id })
+}
+
+// 重新添加盘点申请主 Excel
+export const reAdd = async (id) => {
+ return await request.put({ url: `/wms/countadjust-request-main/reAdd?id=` + id })
+}
+
+// 提交盘点申请主 Excel
+export const submit = async (id) => {
+ return await request.put({ url: `/wms/countadjust-request-main/submit?id=` + id })
+}
+
+// 审批通过盘点申请主 Excel
+export const agree = async (id) => {
+ return await request.put({ url: `/wms/countadjust-request-main/agree?id=` + id })
+}
+
+// 审批驳回盘点申请主 Excel
+export const refused = async (id) => {
+ return await request.put({ url: `/wms/countadjust-request-main/refused?id=` + id })
+}
+
+// 处理盘点申请主 Excel
+export const handle = async (id) => {
+ return await request.put({ url: `/wms/countadjust-request-main/handle?id=` + id })
+}
diff --git a/src/api/wms/currencyexchange/index.ts b/src/api/wms/currencyexchange/index.ts
new file mode 100644
index 0000000..6e07777
--- /dev/null
+++ b/src/api/wms/currencyexchange/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface CurrencyexchangeVO {
+ currency: string
+ basiccurrency: string
+ rate: number
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询货币转换列表
+export const getCurrencyexchangePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/currencyexchange/senior', data })
+ } else {
+ return await request.get({ url: `/wms/currencyexchange/page`, params })
+ }
+}
+
+// 查询货币转换详情
+export const getCurrencyexchange = async (id: number) => {
+ return await request.get({ url: `/wms/currencyexchange/get?id=` + id })
+}
+
+// 新增货币转换
+export const createCurrencyexchange = async (data: CurrencyexchangeVO) => {
+ return await request.post({ url: `/wms/currencyexchange/create`, data })
+}
+
+// 修改货币转换
+export const updateCurrencyexchange = async (data: CurrencyexchangeVO) => {
+ return await request.put({ url: `/wms/currencyexchange/update`, data })
+}
+
+// 删除货币转换
+export const deleteCurrencyexchange = async (id: number) => {
+ return await request.delete({ url: `/wms/currencyexchange/delete?id=` + id })
+}
+
+// 导出货币转换 Excel
+export const exportCurrencyexchange = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/currencyexchange/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/currencyexchange/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/currencyexchange/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/customer/index.ts b/src/api/wms/customer/index.ts
new file mode 100644
index 0000000..2ae4ee4
--- /dev/null
+++ b/src/api/wms/customer/index.ts
@@ -0,0 +1,75 @@
+import request from '@/config/axios'
+
+export interface CustomerVO {
+ code: string
+ name: string
+ shortName: string
+ address: string
+ country: string
+ city: string
+ phone: string
+ fax: string
+ postId: string
+ contacts: string
+ bank: string
+ currency: string
+ taxRate: number
+ type: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询客户列表
+export const getCustomerPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/customer/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customer/page`, params })
+ }
+}
+// 查询客户列表
+export const getCustomerList = async (params) => {
+ return await request.get({ url: `/wms/customer/list`, params })
+}
+// 查询客户详情
+export const getCustomer = async (id: number) => {
+ return await request.get({ url: `/wms/customer/get?id=` + id })
+}
+
+// 新增客户
+export const createCustomer = async (data: CustomerVO) => {
+ return await request.post({ url: `/wms/customer/create`, data })
+}
+
+// 修改客户
+export const updateCustomer = async (data: CustomerVO) => {
+ return await request.put({ url: `/wms/customer/update`, data })
+}
+
+// 删除客户
+export const deleteCustomer = async (id: number) => {
+ return await request.delete({ url: `/wms/customer/delete?id=` + id })
+}
+
+// 导出客户 Excel
+export const exportCustomer = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/customer/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/customer/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customer/get-import-template' })
+}
+
+export const getCustomerByCodes = async (params) => {
+ return await request.get({ url: `/wms/customer/listByCodes`, params })
+}
diff --git a/src/api/wms/customerDeliveryForecast/index.ts b/src/api/wms/customerDeliveryForecast/index.ts
new file mode 100644
index 0000000..65322ff
--- /dev/null
+++ b/src/api/wms/customerDeliveryForecast/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface CustomerDeliveryForecastVO {
+ schdSite: string
+ schdOrder: string
+ schdLine: string
+ schdCust: string
+ schdShipto: string
+ schdDock: string
+ schdPart: string
+ schdNetReq: string
+ schdDate: Date
+ schdTime: Date
+ schdReference: string
+ schdOrdMult: string
+ schdCustpart: string
+ schdPkgCode: string
+ schdModelyr: string
+ schdCustref: string
+ schdPcrQty: string
+ available: string
+}
+
+// 查询客户发货预测列表
+export const getCustomerDeliveryForecastPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customer-delivery-forecast/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customer-delivery-forecast/page`, params })
+ }
+}
+
+// 查询客户发货预测详情
+export const getCustomerDeliveryForecast = async (id: number) => {
+ return await request.get({ url: `/wms/customer-delivery-forecast/get?id=` + id })
+}
+
+// 新增客户发货预测
+export const createCustomerDeliveryForecast = async (data: CustomerDeliveryForecastVO) => {
+ return await request.post({ url: `/wms/customer-delivery-forecast/create`, data })
+}
+
+// 修改客户发货预测
+export const updateCustomerDeliveryForecast = async (data: CustomerDeliveryForecastVO) => {
+ return await request.put({ url: `/wms/customer-delivery-forecast/update`, data })
+}
+
+// 删除客户发货预测
+export const deleteCustomerDeliveryForecast = async (id: number) => {
+ return await request.delete({ url: `/wms/customer-delivery-forecast/delete?id=` + id })
+}
+
+// 导出客户发货预测 Excel
+export const exportCustomerDeliveryForecast = async (params) => {
+ return await request.download({ url: `/wms/customer-delivery-forecast/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customer-delivery-forecast/get-import-template' })
+}
diff --git a/src/api/wms/customerdock/index.ts b/src/api/wms/customerdock/index.ts
new file mode 100644
index 0000000..a340407
--- /dev/null
+++ b/src/api/wms/customerdock/index.ts
@@ -0,0 +1,90 @@
+import request from '@/config/axios'
+
+export interface CustomerdockVO {
+ code: string
+ name: string
+ description: string
+ city: string
+ address: string
+ contactPerson: string
+ contactPhone: string
+ customerCode: string
+ warehouseCode: string
+ defaultLocationCode: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询客户月台列表
+export const getCustomerdockPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/customerdock/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customerdock/page`, params })
+ }
+}
+
+export const getdeliverCustomerdockPage = async (params) => {
+ return await request.get({ url: `/wms/customerdock/deliverPages`, params })
+}
+
+// 查询客户月台详情
+export const getCustomerdock = async (id: number) => {
+ return await request.get({ url: `/wms/customerdock/get?id=` + id })
+}
+
+// 新增客户月台
+export const createCustomerdock = async (data: CustomerdockVO) => {
+ return await request.post({ url: `/wms/customerdock/create`, data })
+}
+
+// 修改客户月台
+export const updateCustomerdock = async (data: CustomerdockVO) => {
+ return await request.put({ url: `/wms/customerdock/update`, data })
+}
+
+// 删除客户月台
+export const deleteCustomerdock = async (id: number) => {
+ return await request.delete({ url: `/wms/customerdock/delete?id=` + id })
+}
+
+// 导出客户月台 Excel
+export const exportCustomerdock = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/customerdock/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/customerdock/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customerdock/get-import-template' })
+}
+
+// 查询客户月台发货口列表
+export const pageCustomerCodeToCustomerDock = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/customerdock/pageCustomerCodeToCustomerDockSenior', data })
+ } else {
+ return await request.get({ url: `/wms/customerdock/pageCustomerCodeToCustomerDock`, params })
+ }
+}
+
+// 查询客户月台收货口列表
+export const pageCustomerCodeToCustomerDockReceiving = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/customerdock/pageCustomerCodeToCustomerDockReceivingSenior', data })
+ } else {
+ return await request.get({ url: `/wms/customerdock/pageCustomerCodeToCustomerDockReceiving`, params })
+ }
+}
diff --git a/src/api/wms/customeritem/index.ts b/src/api/wms/customeritem/index.ts
new file mode 100644
index 0000000..b9af703
--- /dev/null
+++ b/src/api/wms/customeritem/index.ts
@@ -0,0 +1,80 @@
+import request from '@/config/axios'
+
+export interface CustomeritemVO {
+ customerCode: string
+ itemCode: string
+ customerItemCode: string
+ cusotmerUom: string
+ convertRate: number
+ packUnit: string
+ packQty: number
+ altPackUnit: string
+ altPackQty: number
+ packQtyOfContainer: number
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询客户物料列表
+export const getCustomeritemPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/customeritem/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customeritem/page`, params })
+ }
+}
+
+// 查询客户物料详情
+export const getCustomeritem = async (id: number) => {
+ return await request.get({ url: `/wms/customeritem/get?id=` + id })
+}
+
+// 新增客户物料
+export const createCustomeritem = async (data: CustomeritemVO) => {
+ return await request.post({ url: `/wms/customeritem/create`, data })
+}
+
+// 修改客户物料
+export const updateCustomeritem = async (data: CustomeritemVO) => {
+ return await request.put({ url: `/wms/customeritem/update`, data })
+}
+
+// 删除客户物料
+export const deleteCustomeritem = async (id: number) => {
+ return await request.delete({ url: `/wms/customeritem/delete?id=` + id })
+}
+
+// 导出客户物料 Excel
+export const exportCustomeritem = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/customeritem/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/customeritem/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customeritem/get-import-template' })
+}
+
+// 获得业务类型筛选出的物料分页
+export const getPageBusinessTypeToItemCode = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/customeritem/pageBusinessTypeToLocationSenior', data })
+ } else {
+ return await request.get({ url: `/wms/customeritem/pageBusinessTypeToItemCode`, params })
+ }
+}
+
+// 根据code获取数据列表
+export const getCustomerItemListByCodes = async (data) => {
+ return await request.get({ url: `/wms/customeritem/listByCodes?itemCodes=` + data.itemCodes + '&customerCode='+data.customerCode + '&businessType='+(data.businessType?data.businessType:'') })
+}
diff --git a/src/api/wms/customerreceiptRecordDetail/index.ts b/src/api/wms/customerreceiptRecordDetail/index.ts
new file mode 100644
index 0000000..037bf8e
--- /dev/null
+++ b/src/api/wms/customerreceiptRecordDetail/index.ts
@@ -0,0 +1,78 @@
+import request from '@/config/axios'
+
+export interface CustomerreceiptRecordDetailVO {
+ soNumber: string
+ soLine: string
+ fromBatch: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ fromContainerNumber: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toOwnerCode: string
+ toContainerNumber: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ singlePrice: number
+ amount: number
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+ fromPackingNumber: string
+ toPackingNumber: string
+ toBatch: string
+}
+
+// 查询客户收货记录子列表
+export const getCustomerreceiptRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customerreceipt-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customerreceipt-record-detail/page`, params })
+ }
+}
+
+// 查询客户收货记录子详情
+export const getCustomerreceiptRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/customerreceipt-record-detail/get?id=` + id })
+}
+
+// 新增客户收货记录子
+export const createCustomerreceiptRecordDetail = async (data: CustomerreceiptRecordDetailVO) => {
+ return await request.post({ url: `/wms/customerreceipt-record-detail/create`, data })
+}
+
+// 修改客户收货记录子
+export const updateCustomerreceiptRecordDetail = async (data: CustomerreceiptRecordDetailVO) => {
+ return await request.put({ url: `/wms/customerreceipt-record-detail/update`, data })
+}
+
+// 删除客户收货记录子
+export const deleteCustomerreceiptRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/customerreceipt-record-detail/delete?id=` + id })
+}
+
+// 导出客户收货记录子 Excel
+export const exportCustomerreceiptRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/customerreceipt-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customerreceipt-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/customerreceiptRecordMain/index.ts b/src/api/wms/customerreceiptRecordMain/index.ts
new file mode 100644
index 0000000..73e8e34
--- /dev/null
+++ b/src/api/wms/customerreceiptRecordMain/index.ts
@@ -0,0 +1,79 @@
+import request from '@/config/axios'
+
+export interface CustomerreceiptRecordMainVO {
+ requestNumber: string
+ deliverRecordNumber: string
+ deliverPlanNumber: string
+ customerCode: string
+ customerDockCode: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ available: string
+}
+
+// 查询客户收货记录主列表
+export const getCustomerreceiptRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customerreceipt-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customerreceipt-record-main/page`, params })
+ }
+}
+
+// 查询客户收货记录主详情
+export const getCustomerreceiptRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/customerreceipt-record-main/get?id=` + id })
+}
+
+// 新增客户收货记录主
+export const createCustomerreceiptRecordMain = async (data: CustomerreceiptRecordMainVO) => {
+ return await request.post({ url: `/wms/customerreceipt-record-main/create`, data })
+}
+
+// 修改客户收货记录主
+export const updateCustomerreceiptRecordMain = async (data: CustomerreceiptRecordMainVO) => {
+ return await request.put({ url: `/wms/customerreceipt-record-main/update`, data })
+}
+
+// 删除客户收货记录主
+export const deleteCustomerreceiptRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/customerreceipt-record-main/delete?id=` + id })
+}
+
+// 导出客户收货记录主 Excel
+export const exportCustomerreceiptRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/customerreceipt-record-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/customerreceipt-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customerreceipt-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/customerreceiptRequestDetail/index.ts b/src/api/wms/customerreceiptRequestDetail/index.ts
new file mode 100644
index 0000000..f370f62
--- /dev/null
+++ b/src/api/wms/customerreceiptRequestDetail/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface CustomerreceiptRequestDetailVO {
+ soNumber: string
+ soLine: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ fromLocationCode: string
+ toLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询客户收货申请子列表
+export const getCustomerreceiptRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customerreceipt-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customerreceipt-request-detail/page`, params })
+ }
+}
+
+// 查询客户收货申请子详情
+export const getCustomerreceiptRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/customerreceipt-request-detail/get?id=` + id })
+}
+
+// 新增客户收货申请子
+export const createCustomerreceiptRequestDetail = async (data: CustomerreceiptRequestDetailVO) => {
+ return await request.post({ url: `/wms/customerreceipt-request-detail/create`, data })
+}
+
+// 修改客户收货申请子
+export const updateCustomerreceiptRequestDetail = async (data: CustomerreceiptRequestDetailVO) => {
+ return await request.put({ url: `/wms/customerreceipt-request-detail/update`, data })
+}
+
+// 删除客户收货申请子
+export const deleteCustomerreceiptRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/customerreceipt-request-detail/delete?id=` + id })
+}
+
+// 导出客户收货申请子 Excel
+export const exportCustomerreceiptRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/customerreceipt-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customerreceipt-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/customerreceiptRequestMain/index.ts b/src/api/wms/customerreceiptRequestMain/index.ts
new file mode 100644
index 0000000..a933b87
--- /dev/null
+++ b/src/api/wms/customerreceiptRequestMain/index.ts
@@ -0,0 +1,103 @@
+import request from '@/config/axios'
+
+export interface CustomerreceiptRequestMainVO {
+ customerreceiptRequestNumber: string
+ customerreceiptPlanNumber: string
+ customerCode: string
+ customerDockCode: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询客户收货申请主列表
+export const getCustomerreceiptRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customerreceipt-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customerreceipt-request-main/page`, params })
+ }
+}
+
+// 查询客户收货申请主详情
+export const getCustomerreceiptRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/customerreceipt-request-main/get?id=` + id })
+}
+
+// 新增客户收货申请主
+export const createCustomerreceiptRequestMain = async (data: CustomerreceiptRequestMainVO) => {
+ return await request.post({ url: `/wms/customerreceipt-request-main/create`, data })
+}
+
+// 修改客户收货申请主
+export const updateCustomerreceiptRequestMain = async (data: CustomerreceiptRequestMainVO) => {
+ return await request.put({ url: `/wms/customerreceipt-request-main/update`, data })
+}
+
+// 删除客户收货申请主
+export const deleteCustomerreceiptRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/customerreceipt-request-main/delete?id=` + id })
+}
+
+// 导出客户收货申请主 Excel
+export const exportCustomerreceiptRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/customerreceipt-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/customerreceipt-request-main/export-excel`, params })
+ }
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/customerreceipt-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/customerreceipt-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/customerreceipt-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/customerreceipt-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/customerreceipt-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/customerreceipt-request-main/handle?id=' + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/customerreturnJobDetail/index.ts b/src/api/wms/customerreturnJobDetail/index.ts
new file mode 100644
index 0000000..526c63a
--- /dev/null
+++ b/src/api/wms/customerreturnJobDetail/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface CustomerreturnJobDetailVO {
+ soNumber: string
+ soLine: string
+ packingNumber: string
+ batch: string
+ inventoryStatus: string
+ ownerCode: string
+ containerNumber: string
+ fromLocationCode: string
+ toLocationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createtime: Date
+ creator: string
+}
+
+// 查询客户退货任务子列表
+export const getCustomerreturnJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customerreturn-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customerreturn-job-detail/page`, params })
+ }
+}
+
+// 查询客户退货任务子详情
+export const getCustomerreturnJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/customerreturn-job-detail/get?id=` + id })
+}
+
+// 新增客户退货任务子
+export const createCustomerreturnJobDetail = async (data: CustomerreturnJobDetailVO) => {
+ return await request.post({ url: `/wms/customerreturn-job-detail/create`, data })
+}
+
+// 修改客户退货任务子
+export const updateCustomerreturnJobDetail = async (data: CustomerreturnJobDetailVO) => {
+ return await request.put({ url: `/wms/customerreturn-job-detail/update`, data })
+}
+
+// 删除客户退货任务子
+export const deleteCustomerreturnJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/customerreturn-job-detail/delete?id=` + id })
+}
+
+// 导出客户退货任务子 Excel
+export const exportCustomerreturnJobDetail = async (params) => {
+ return await request.download({ url: `/wms/customerreturn-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customerreturn-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/customerreturnJobMain/index.ts b/src/api/wms/customerreturnJobMain/index.ts
new file mode 100644
index 0000000..cc2ca4f
--- /dev/null
+++ b/src/api/wms/customerreturnJobMain/index.ts
@@ -0,0 +1,115 @@
+import request from '@/config/axios'
+
+export interface CustomerreturnJobMainVO {
+ requestNumber: string
+ deliverRecordNumber: string
+ deliverPlanNumber: string
+ customerCode: string
+ customerDockCode: string
+ receiptDock: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ toDockCode: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询客户退货任务主列表
+export const getCustomerreturnJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customerreturn-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customerreturn-job-main/page`, params })
+ }
+}
+
+// 查询客户退货任务主详情
+export const getCustomerreturnJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/customerreturn-job-main/get?id=` + id })
+}
+
+// 新增客户退货任务主
+export const createCustomerreturnJobMain = async (data: CustomerreturnJobMainVO) => {
+ return await request.post({ url: `/wms/customerreturn-job-main/create`, data })
+}
+
+// 修改客户退货任务主
+export const updateCustomerreturnJobMain = async (data: CustomerreturnJobMainVO) => {
+ return await request.put({ url: `/wms/customerreturn-job-main/update`, data })
+}
+
+// 删除客户退货任务主
+export const deleteCustomerreturnJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/customerreturn-job-main/delete?id=` + id })
+}
+
+// 导出客户退货任务主 Excel
+export const exportCustomerreturnJobMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/customerreturn-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/customerreturn-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customerreturn-job-main/get-import-template' })
+}
+
+// 承接客户退货任务主 Excel
+export const acceptCustomerreturnJobMain = async (id) => {
+ return await request.put({ url: `/wms/customerreturn-job-main/accept?id=` + id })
+}
+
+// 取消承接客户退货任务主 Excel
+export const abandonCustomerreturnJobMain = async (id) => {
+ return await request.put({ url: `/wms/customerreturn-job-main/abandon?id=` + id })
+}
+
+// 关闭客户退货任务主 Excel
+export const closeCustomerreturnJobMain = async (id) => {
+ return await request.put({ url: `/wms/customerreturn-job-main/close?id=` + id })
+}
+
+// 执行客户退货任务主
+export const executeCustomerreturnJobMain = async (data: CustomerreturnJobMainVO) => {
+ return await request.put({ url: `/wms/customerreturn-job-main/execute`, data })
+}
\ No newline at end of file
diff --git a/src/api/wms/customerreturnRecordDetail/index.ts b/src/api/wms/customerreturnRecordDetail/index.ts
new file mode 100644
index 0000000..e139bd6
--- /dev/null
+++ b/src/api/wms/customerreturnRecordDetail/index.ts
@@ -0,0 +1,78 @@
+import request from '@/config/axios'
+
+export interface CustomerreturnRecordDetailVO {
+ soNumber: string
+ soLine: string
+ fromBatch: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ fromContainerNumber: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toOwnerCode: string
+ toContainerNumber: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ singlePrice: number
+ amount: number
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+ fromPackingNumber: string
+ toPackingNumber: string
+ toBatch: string
+}
+
+// 查询客户退货记录子列表
+export const getCustomerreturnRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customerreturn-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customerreturn-record-detail/page`, params })
+ }
+}
+
+// 查询客户退货记录子详情
+export const getCustomerreturnRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/customerreturn-record-detail/get?id=` + id })
+}
+
+// 新增客户退货记录子
+export const createCustomerreturnRecordDetail = async (data: CustomerreturnRecordDetailVO) => {
+ return await request.post({ url: `/wms/customerreturn-record-detail/create`, data })
+}
+
+// 修改客户退货记录子
+export const updateCustomerreturnRecordDetail = async (data: CustomerreturnRecordDetailVO) => {
+ return await request.put({ url: `/wms/customerreturn-record-detail/update`, data })
+}
+
+// 删除客户退货记录子
+export const deleteCustomerreturnRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/customerreturn-record-detail/delete?id=` + id })
+}
+
+// 导出客户退货记录子 Excel
+export const exportCustomerreturnRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/customerreturn-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customerreturn-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/customerreturnRecordMain/index.ts b/src/api/wms/customerreturnRecordMain/index.ts
new file mode 100644
index 0000000..4da1116
--- /dev/null
+++ b/src/api/wms/customerreturnRecordMain/index.ts
@@ -0,0 +1,91 @@
+import request from '@/config/axios'
+
+export interface CustomerreturnRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ deliverRecordNumber: string
+ deliverPlanNumber: string
+ customerCode: string
+ customerDockCode: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creatorId: string
+ code: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ toAreaCodes: string
+ toDockCode: string
+ available: string
+ fromAreaCodes: string
+}
+
+// 查询客户退货记录主列表
+export const getCustomerreturnRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customerreturn-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customerreturn-record-main/page`, params })
+ }
+}
+
+// 查询客户退货记录主详情
+export const getCustomerreturnRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/customerreturn-record-main/get?id=` + id })
+}
+
+// 新增客户退货记录主
+export const createCustomerreturnRecordMain = async (data: CustomerreturnRecordMainVO) => {
+ return await request.post({ url: `/wms/customerreturn-record-main/create`, data })
+}
+
+// 修改客户退货记录主
+export const updateCustomerreturnRecordMain = async (data: CustomerreturnRecordMainVO) => {
+ return await request.put({ url: `/wms/customerreturn-record-main/update`, data })
+}
+
+// 删除客户退货记录主
+export const deleteCustomerreturnRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/customerreturn-record-main/delete?id=` + id })
+}
+
+// 导出客户退货记录主 Excel
+export const exportCustomerreturnRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/customerreturn-record-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/customerreturn-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customerreturn-record-main/get-import-template' })
+}
+
+// 接收隔离收货
+export const receive = (id) => {
+ return request.put({ url: '/wms/customerreturn-record-main/receive?id=' + id })
+}
+
+// 拒收隔离收货
+export const refuse = (id) => {
+ return request.put({ url: '/wms/customerreturn-record-main/refuse?id=' + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/customerreturnRequestDetail/index.ts b/src/api/wms/customerreturnRequestDetail/index.ts
new file mode 100644
index 0000000..28f2b02
--- /dev/null
+++ b/src/api/wms/customerreturnRequestDetail/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface CustomerreturnRequestDetailVO {
+ soNumber: string
+ soLine: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ fromLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ toOwnerCode: string
+}
+
+// 查询客户退货申请子列表
+export const getCustomerreturnRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customerreturn-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customerreturn-request-detail/page`, params })
+ }
+}
+
+// 查询客户退货申请子详情
+export const getCustomerreturnRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/customerreturn-request-detail/get?id=` + id })
+}
+
+// 新增客户退货申请子
+export const createCustomerreturnRequestDetail = async (data: CustomerreturnRequestDetailVO) => {
+ return await request.post({ url: `/wms/customerreturn-request-detail/create`, data })
+}
+
+// 修改客户退货申请子
+export const updateCustomerreturnRequestDetail = async (data: CustomerreturnRequestDetailVO) => {
+ return await request.put({ url: `/wms/customerreturn-request-detail/update`, data })
+}
+
+// 删除客户退货申请子
+export const deleteCustomerreturnRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/customerreturn-request-detail/delete?id=` + id })
+}
+
+// 导出客户退货申请子 Excel
+export const exportCustomerreturnRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/customerreturn-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customerreturn-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/customerreturnRequestMain/index.ts b/src/api/wms/customerreturnRequestMain/index.ts
new file mode 100644
index 0000000..873bb25
--- /dev/null
+++ b/src/api/wms/customerreturnRequestMain/index.ts
@@ -0,0 +1,125 @@
+import request from '@/config/axios'
+
+export interface CustomerreturnRequestMainVO {
+ requestNumber: string
+ deliverRecordNumber: string
+ deliverPlanNumber: string
+ customerCode: string
+ customerDockCode: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ toDockCode: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询客户退货申请主列表
+export const getCustomerreturnRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customerreturn-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customerreturn-request-main/page`, params })
+ }
+}
+
+// 查询客户退货申请主详情
+export const getCustomerreturnRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/customerreturn-request-main/get?id=` + id })
+}
+
+// 新增客户退货申请主
+export const createCustomerreturnRequestMain = async (data: CustomerreturnRequestMainVO) => {
+ return await request.post({ url: `/wms/customerreturn-request-main/create`, data })
+}
+
+// 修改客户退货申请主
+export const updateCustomerreturnRequestMain = async (data: CustomerreturnRequestMainVO) => {
+ return await request.put({ url: `/wms/customerreturn-request-main/update`, data })
+}
+
+// 删除客户退货申请主
+export const deleteCustomerreturnRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/customerreturn-request-main/delete?id=` + id })
+}
+
+// 导出客户退货申请主 Excel
+export const exportCustomerreturnRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/customerreturn-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/customerreturn-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customerreturn-request-main/get-import-template' })
+}
+
+// 关闭客户退货申请主 Excel
+export const close = async (id) => {
+ return await request.put({ url: `/wms/customerreturn-request-main/close?id=` + id })
+}
+
+// 重新添加客户退货申请主 Excel
+export const reAdd = async (id) => {
+ return await request.put({ url: `/wms/customerreturn-request-main/reAdd?id=` + id })
+}
+
+// 提交客户退货申请主 Excel
+export const submit = async (id) => {
+ return await request.put({ url: `/wms/customerreturn-request-main/submit?id=` + id })
+}
+
+// 审批通过客户退货申请主 Excel
+export const agree = async (id) => {
+ return await request.put({ url: `/wms/customerreturn-request-main/agree?id=` + id })
+}
+
+// 审批驳回客户退货申请主 Excel
+export const refused = async (id) => {
+ return await request.put({ url: `/wms/customerreturn-request-main/refused?id=` + id })
+}
+
+// 处理驳回客户退货申请主 Excel
+export const handle = async (id) => {
+ return await request.put({ url: `/wms/customerreturn-request-main/handle?id=` + id })
+}
+
+export const pageItemCodeToBalance = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customerreturn-request-main/pageItemCodeToBalanceSenior', data })
+ } else {
+ return request.get({ url: `/wms/customerreturn-request-main/pageItemCodeToBalance`, params })
+ }
+}
+
+// 生成标签
+export const genLabel = async (data) => {
+ return await request.post({ url: `/wms/customerreturn-request-main/genLabel`, data })
+}
diff --git a/src/api/wms/customersettleRecordDetail/index.ts b/src/api/wms/customersettleRecordDetail/index.ts
new file mode 100644
index 0000000..3932fed
--- /dev/null
+++ b/src/api/wms/customersettleRecordDetail/index.ts
@@ -0,0 +1,71 @@
+import request from '@/config/axios'
+
+export interface CustomersettleRecordDetailVO {
+ soNumber: string
+ soLine: string
+ ownerCode: string
+ packingNumber: string
+ batch: string
+ inventoryStatus: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ singlePrice: number
+ amount: number
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ interfaceType: string
+ code: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ siteId: string
+ jobDetailId: string
+}
+
+// 查询客户结算记录子列表
+export const getCustomersettleRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customersettle-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customersettle-record-detail/page`, params })
+ }
+}
+
+// 查询客户结算记录子详情
+export const getCustomersettleRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/customersettle-record-detail/get?id=` + id })
+}
+
+// 新增客户结算记录子
+export const createCustomersettleRecordDetail = async (data: CustomersettleRecordDetailVO) => {
+ return await request.post({ url: `/wms/customersettle-record-detail/create`, data })
+}
+
+// 修改客户结算记录子
+export const updateCustomersettleRecordDetail = async (data: CustomersettleRecordDetailVO) => {
+ return await request.put({ url: `/wms/customersettle-record-detail/update`, data })
+}
+
+// 删除客户结算记录子
+export const deleteCustomersettleRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/customersettle-record-detail/delete?id=` + id })
+}
+
+// 导出客户结算记录子 Excel
+export const exportCustomersettleRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/customersettle-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customersettle-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/customersettleRecordMain/index.ts b/src/api/wms/customersettleRecordMain/index.ts
new file mode 100644
index 0000000..ac7a404
--- /dev/null
+++ b/src/api/wms/customersettleRecordMain/index.ts
@@ -0,0 +1,73 @@
+import request from '@/config/axios'
+
+export interface CustomersettleRecordMainVO {
+ requestNumber: string
+ deliverRecordNumber: string
+ deliverPlanNumber: string
+ customerCode: string
+ outTransactionType: string
+ inTransactionYpe: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ createTime: Date
+ creator: string
+ remark: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ available: string
+}
+
+// 查询客户结算记录主列表
+export const getCustomersettleRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customersettle-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customersettle-record-main/page`, params })
+ }
+}
+
+// 查询客户结算记录主详情
+export const getCustomersettleRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/customersettle-record-main/get?id=` + id })
+}
+
+// 新增客户结算记录主
+export const createCustomersettleRecordMain = async (data: CustomersettleRecordMainVO) => {
+ return await request.post({ url: `/wms/customersettle-record-main/create`, data })
+}
+
+// 修改客户结算记录主
+export const updateCustomersettleRecordMain = async (data: CustomersettleRecordMainVO) => {
+ return await request.put({ url: `/wms/customersettle-record-main/update`, data })
+}
+
+// 删除客户结算记录主
+export const deleteCustomersettleRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/customersettle-record-main/delete?id=` + id })
+}
+
+// 导出客户结算记录主 Excel
+export const exportCustomersettleRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/customersettle-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/customersettle-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customersettle-record-main/get-import-template' })
+}
diff --git a/src/api/wms/customersettleRequestDetail/index.ts b/src/api/wms/customersettleRequestDetail/index.ts
new file mode 100644
index 0000000..9877bd9
--- /dev/null
+++ b/src/api/wms/customersettleRequestDetail/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface CustomersettleRequestDetailVO {
+ soNumber: string
+ soLine: string
+ fromOwnerCode: string
+ packingNumber: string
+ batch: string
+ inventoryStatus: string
+ fromLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+}
+
+// 查询客户结算申请子列表
+export const getCustomersettleRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customersettle-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customersettle-request-detail/page`, params })
+ }
+}
+
+// 查询客户结算申请子详情
+export const getCustomersettleRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/customersettle-request-detail/get?id=` + id })
+}
+
+// 新增客户结算申请子
+export const createCustomersettleRequestDetail = async (data: CustomersettleRequestDetailVO) => {
+ return await request.post({ url: `/wms/customersettle-request-detail/create`, data })
+}
+
+// 修改客户结算申请子
+export const updateCustomersettleRequestDetail = async (data: CustomersettleRequestDetailVO) => {
+ return await request.put({ url: `/wms/customersettle-request-detail/update`, data })
+}
+
+// 删除客户结算申请子
+export const deleteCustomersettleRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/customersettle-request-detail/delete?id=` + id })
+}
+
+// 导出客户结算申请子 Excel
+export const exportCustomersettleRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/customersettle-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customersettle-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/customersettleRequestMain/index.ts b/src/api/wms/customersettleRequestMain/index.ts
new file mode 100644
index 0000000..a291458
--- /dev/null
+++ b/src/api/wms/customersettleRequestMain/index.ts
@@ -0,0 +1,102 @@
+import request from '@/config/axios'
+
+export interface CustomersettleRequestMainVO {
+ deliverRecordNumber: string
+ deliverPlanNumber: string
+ customerCode: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询客户结算申请主列表
+export const getCustomersettleRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customersettle-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/customersettle-request-main/page`, params })
+ }
+}
+
+// 查询客户结算申请主详情
+export const getCustomersettleRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/customersettle-request-main/get?id=` + id })
+}
+
+// 新增客户结算申请主
+export const createCustomersettleRequestMain = async (data: CustomersettleRequestMainVO) => {
+ return await request.post({ url: `/wms/customersettle-request-main/create`, data })
+}
+
+// 修改客户结算申请主
+export const updateCustomersettleRequestMain = async (data: CustomersettleRequestMainVO) => {
+ return await request.put({ url: `/wms/customersettle-request-main/update`, data })
+}
+
+// 删除客户结算申请主
+export const deleteCustomersettleRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/customersettle-request-main/delete?id=` + id })
+}
+
+// 导出客户结算申请主 Excel
+export const exportCustomersettleRequestMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/customersettle-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/customersettle-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/customersettle-request-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/customersettle-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/customersettle-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/customersettle-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/customersettle-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/customersettle-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/customersettle-request-main/handle?id=' + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/deliverJobDetail/index.ts b/src/api/wms/deliverJobDetail/index.ts
new file mode 100644
index 0000000..9e54e57
--- /dev/null
+++ b/src/api/wms/deliverJobDetail/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface DeliverJobDetailVO {
+ soNumber: string
+ soLine: string
+ packingNumber: string
+ batch: string
+ inventoryStatus: string
+ ownerCode: string
+ containerNumber: string
+ fromLocationCode: string
+ toLocationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+}
+
+// 查询发货任务子列表
+export const getDeliverJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/deliver-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/deliver-job-detail/page`, params })
+ }
+}
+
+// 查询发货任务子详情
+export const getDeliverJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/deliver-job-detail/get?id=` + id })
+}
+
+// 新增发货任务子
+export const createDeliverJobDetail = async (data: DeliverJobDetailVO) => {
+ return await request.post({ url: `/wms/deliver-job-detail/create`, data })
+}
+
+// 修改发货任务子
+export const updateDeliverJobDetail = async (data: DeliverJobDetailVO) => {
+ return await request.put({ url: `/wms/deliver-job-detail/update`, data })
+}
+
+// 删除发货任务子
+export const deleteDeliverJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/deliver-job-detail/delete?id=` + id })
+}
+
+// 导出发货任务子 Excel
+export const exportDeliverJobDetail = async (params) => {
+ return await request.download({ url: `/wms/deliver-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/deliver-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/deliverJobMain/index.ts b/src/api/wms/deliverJobMain/index.ts
new file mode 100644
index 0000000..5be9037
--- /dev/null
+++ b/src/api/wms/deliverJobMain/index.ts
@@ -0,0 +1,115 @@
+import request from '@/config/axios'
+
+export interface DeliverJobMainVO {
+ requestNumber: string
+ deliverPlanNumber: string
+ customerDeliverNumber: string
+ customerCode: string
+ customerDockCode: string
+ deliverDock: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityincrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ ruleUserId: number
+ fromAreaCodes: string
+ toAreaCodes: string
+ fromDockCode: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询发货任务主列表
+export const getDeliverJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/deliver-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/deliver-job-main/page`, params })
+ }
+}
+
+// 查询发货任务主详情
+export const getDeliverJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/deliver-job-main/get?id=` + id })
+}
+
+// 新增发货任务主
+export const createDeliverJobMain = async (data: DeliverJobMainVO) => {
+ return await request.post({ url: `/wms/deliver-job-main/create`, data })
+}
+
+// 修改发货任务主
+export const updateDeliverJobMain = async (data: DeliverJobMainVO) => {
+ return await request.put({ url: `/wms/deliver-job-main/update`, data })
+}
+
+// 删除发货任务主
+export const deleteDeliverJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/deliver-job-main/delete?id=` + id })
+}
+
+// 导出发货任务主 Excel
+export const exportDeliverJobMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/deliver-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/deliver-job-main/export-excel`, params }) }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/deliver-job-main/get-import-template' })
+}
+
+// 承接发货任务 Excel
+export const acceptDeliverJobMain = async (id) => {
+ return await request.put({ url: `/wms/deliver-job-main/accept?id=` + id })
+}
+
+// 取消承接发货任务 Excel
+export const abandonDeliverJobMain = async (id) => {
+ return await request.put({ url: `/wms/deliver-job-main/abandon?id=` + id })
+}
+
+// 关闭发货任务主 Excel
+export const closeDeliverJobMain = async (id) => {
+ return await request.put({ url: `/wms/deliver-job-main/close?id=` + id })
+}
+
+// 执行发货任务主
+export const executeDeliverJobMain = async (data: DeliverJobMainVO) => {
+ return await request.put({ url: `/wms/deliver-job-main/execute`, data })
+}
\ No newline at end of file
diff --git a/src/api/wms/deliverPlanDetail/index.ts b/src/api/wms/deliverPlanDetail/index.ts
new file mode 100644
index 0000000..ea68874
--- /dev/null
+++ b/src/api/wms/deliverPlanDetail/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface DeliverPlanDetailVO {
+ soNumber: string
+ soLine: string
+ customerDockCode: string
+ project: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ planQty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ available: string
+}
+
+// 查询发货计划子列表
+export const selectDetailByMasterID = async (id: number) => {
+ return await request.get({ url: `/wms/deliver-plan-detail/detailList?id=` + id })
+}
+
+// 查询发货计划子列表
+export const getDeliverPlanDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/deliver-plan-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/deliver-plan-detail/page`, params })
+ }
+}
+
+// 查询发货计划子列表
+export const getDeliverPlanDetailPage1 = async (params) => {
+ return await request.get({ url: `/wms/deliver-plan-detail/page`, params })
+}
+
+// 查询发货计划子详情
+export const getDeliverPlanDetail = async (id: number) => {
+ return await request.get({ url: `/wms/deliver-plan-detail/get?id=` + id })
+}
+
+// 新增发货计划子
+export const createDeliverPlanDetail = async (data: DeliverPlanDetailVO) => {
+ return await request.post({ url: `/wms/deliver-plan-detail/create`, data })
+}
+
+// 修改发货计划子
+export const updateDeliverPlanDetail = async (data: DeliverPlanDetailVO) => {
+ return await request.put({ url: `/wms/deliver-plan-detail/update`, data })
+}
+
+// 删除发货计划子
+export const deleteDeliverPlanDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/deliver-plan-detail/delete?id=` + id })
+}
+
+// 导出发货计划子 Excel
+export const exportDeliverPlanDetail = async (params) => {
+ return await request.download({ url: `/wms/deliver-plan-detail/export-excel`, params })
+}
diff --git a/src/api/wms/deliverPlanMain/index.ts b/src/api/wms/deliverPlanMain/index.ts
new file mode 100644
index 0000000..47e9624
--- /dev/null
+++ b/src/api/wms/deliverPlanMain/index.ts
@@ -0,0 +1,124 @@
+import request from '@/config/axios'
+
+export interface DeliverPlanMainVO {
+ customerCode: string
+ planDate: Date
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ beginTime: Date
+ endTime: Date
+ status: string
+ updateTime: Date
+ updater: string
+ available: string
+}
+
+// 查询发货计划主列表
+export const getDeliverPlanMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/deliver-plan-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/deliver-plan-main/page`, params })
+ }
+}
+
+// 查询发货计划主详情
+export const getDeliverPlanMain = async (id: number) => {
+ return await request.get({ url: `/wms/deliver-plan-main/get?id=` + id })
+}
+
+// 新增发货计划主
+export const createDeliverPlanMain = async (data: DeliverPlanMainVO) => {
+ return await request.post({ url: `/wms/deliver-plan-main/create`, data })
+}
+
+// 修改发货计划主
+export const updateDeliverPlanMain = async (data: DeliverPlanMainVO) => {
+ return await request.put({ url: `/wms/deliver-plan-main/update`, data })
+}
+
+// 删除发货计划主
+export const deleteDeliverPlanMain = async (id: number) => {
+ return await request.delete({ url: `/wms/deliver-plan-main/delete?id=` + id })
+}
+
+// 导出发货计划主 Excel
+export const exportDeliverPlanMain = async (params) => {
+ params.businessType = 'Deliver'
+ if (params.isSearch) {
+ // const cmd = {
+ // 'column':'businessType',
+ // 'action':'==',
+ // 'value':'Deliver'
+ // }
+ // params.filters.push(cmd)
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/deliver-plan-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/deliver-plan-main/export-excel`, params })
+ }
+}
+
+// 导出发货计划主 Excela
+export const exportZZBJDeliverPlanMain = async (params) => {
+ params.businessType = 'ZZBJDeliver'
+ if (params.isSearch) {
+ // const cmd = {
+ // 'column':'businessType',
+ // 'action':'==',
+ // 'value':'ZZBJDeliver'
+ // }
+ // params.filters.push(cmd)
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/deliver-plan-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/deliver-plan-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/deliver-plan-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/deliver-plan-main/close?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/deliver-plan-main/submit?id=' + id })
+}
+
+// 打开
+export const open = (id) => {
+ return request.put({ url: '/wms/deliver-plan-main/open?id=' + id })
+}
+
+// 驳回
+export const reject = (id) => {
+ return request.put({ url: '/wms/deliver-plan-main/reject?id=' + id })
+}
+
+// 通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/deliver-plan-main/agree?id=' + id })
+}
+
+// 发布
+export const publish = (id) => {
+ return request.put({ url: '/wms/deliver-plan-main/publish?id=' + id })
+}
+
+// 重置
+export const resetting = (id) => {
+ return request.put({ url: '/wms/deliver-plan-main/resetting?id=' + id })
+}
diff --git a/src/api/wms/deliverRecordDetail/index.ts b/src/api/wms/deliverRecordDetail/index.ts
new file mode 100644
index 0000000..293f1c0
--- /dev/null
+++ b/src/api/wms/deliverRecordDetail/index.ts
@@ -0,0 +1,90 @@
+import request from '@/config/axios'
+
+export interface DeliverRecordDetailVO {
+ soNumber: string
+ soLine: string
+ packingNumber: string
+ batch: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ fromContainerNumber: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toOwnerCode: string
+ toContainerNumber: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ singlePrice: number
+ amount: number
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+// 查询发货记录子列表
+export const getDeliverRecordDetailPageCustomerreturn = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/deliver-record-detail/seniorCustomerreturn', data })
+ } else {
+ return await request.get({ url: `/wms/deliver-record-detail/pageCustomerreturn`, params })
+ }
+}
+// 查询发货记录子列表
+export const getDeliverRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/deliver-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/deliver-record-detail/page`, params })
+ }
+}
+
+// 查询发货记录子详情
+export const getDeliverRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/deliver-record-detail/get?id=` + id })
+}
+
+// 新增发货记录子
+export const createDeliverRecordDetail = async (data: DeliverRecordDetailVO) => {
+ return await request.post({ url: `/wms/deliver-record-detail/create`, data })
+}
+
+// 修改发货记录子
+export const updateDeliverRecordDetail = async (data: DeliverRecordDetailVO) => {
+ return await request.put({ url: `/wms/deliver-record-detail/update`, data })
+}
+
+// 删除发货记录子
+export const deleteDeliverRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/deliver-record-detail/delete?id=` + id })
+}
+
+// 导出发货记录子 Excel
+export const exportDeliverRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/deliver-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/deliver-record-detail/get-import-template' })
+}
+
+// 查询发货记录子列表
+export const getDeliverRecordDetailListToRepeat = async (params) => {
+ return await request.get({ url: `/wms/deliver-record-detail/listToRepeatDeliverReceipt`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/deliverRecordMain/index.ts b/src/api/wms/deliverRecordMain/index.ts
new file mode 100644
index 0000000..c7c01cb
--- /dev/null
+++ b/src/api/wms/deliverRecordMain/index.ts
@@ -0,0 +1,82 @@
+import request from '@/config/axios'
+
+export interface DeliverRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ deliverPlanNumber: string
+ customerDeliverNumber: string
+ customerCode: string
+ customerDockCode: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toAreaTypes: string
+ toAreaCodes: string
+ fromDockCode: string
+ available: string
+}
+
+// 查询发货记录主列表
+export const getDeliverRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/deliver-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/deliver-record-main/page`, params })
+ }
+}
+
+// 查询发货记录主详情
+export const getDeliverRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/deliver-record-main/get?id=` + id })
+}
+
+// 新增发货记录主
+export const createDeliverRecordMain = async (data: DeliverRecordMainVO) => {
+ return await request.post({ url: `/wms/deliver-record-main/create`, data })
+}
+
+// 修改发货记录主
+export const updateDeliverRecordMain = async (data: DeliverRecordMainVO) => {
+ return await request.put({ url: `/wms/deliver-record-main/update`, data })
+}
+
+// 删除发货记录主
+export const deleteDeliverRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/deliver-record-main/delete?id=` + id })
+}
+
+// 导出发货记录主 Excel
+export const exportDeliverRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/deliver-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/deliver-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/deliver-record-main/get-import-template' })
+}
diff --git a/src/api/wms/deliverRequestDetail/index.ts b/src/api/wms/deliverRequestDetail/index.ts
new file mode 100644
index 0000000..2022ede
--- /dev/null
+++ b/src/api/wms/deliverRequestDetail/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface DeliverRequestDetailVO {
+ soNumber: string
+ soLine: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ toOwnerCode: string
+ toLocationCode: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ itemCode: string
+ fromOwnerCode: string
+}
+
+// 查询发货申请子列表
+export const getDeliverRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/deliver-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/deliver-request-detail/page`, params })
+ }
+}
+
+// 查询发货申请子详情
+export const getDeliverRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/deliver-request-detail/get?id=` + id })
+}
+
+// 新增发货申请子
+export const createDeliverRequestDetail = async (data: DeliverRequestDetailVO) => {
+ return await request.post({ url: `/wms/deliver-request-detail/create`, data })
+}
+
+// 修改发货申请子
+export const updateDeliverRequestDetail = async (data: DeliverRequestDetailVO) => {
+ return await request.put({ url: `/wms/deliver-request-detail/update`, data })
+}
+
+// 删除发货申请子
+export const deleteDeliverRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/deliver-request-detail/delete?id=` + id })
+}
+
+// 导出发货申请子 Excel
+export const exportDeliverRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/deliver-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/deliver-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/deliverRequestMain/index.ts b/src/api/wms/deliverRequestMain/index.ts
new file mode 100644
index 0000000..621e912
--- /dev/null
+++ b/src/api/wms/deliverRequestMain/index.ts
@@ -0,0 +1,122 @@
+import request from '@/config/axios'
+
+export interface DeliverRequestMainVO {
+ deliverPlanNumber: string
+ customerDeliverNumber: string
+ customerCode: string
+ customerDockCode: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ toAreaTypes: string
+ toAreaCodes: string
+ fromDockCode: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询发货申请主列表
+export const getDeliverRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/deliver-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/deliver-request-main/page`, params })
+ }
+}
+
+// 查询发货申请主详情
+export const getDeliverRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/deliver-request-main/get?id=` + id })
+}
+
+// 新增发货申请主
+export const createDeliverRequestMain = async (data: DeliverRequestMainVO) => {
+ return await request.post({ url: `/wms/deliver-request-main/create`, data })
+}
+
+// 修改发货申请主
+export const updateDeliverRequestMain = async (data: DeliverRequestMainVO) => {
+ return await request.put({ url: `/wms/deliver-request-main/update`, data })
+}
+
+// 删除发货申请主
+export const deleteDeliverRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/deliver-request-main/delete?id=` + id })
+}
+
+// 导出发货申请主 Excel
+export const exportDeliverRequestMain = async (params) => {
+ params.businessType = 'Deliver'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/deliver-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/deliver-request-main/export-excel`, params })
+ }
+}
+
+// 导出发货申请主 Excel
+export const exportZZBJDeliverRequestMain = async (params) => {
+ params.businessType = 'ZZBJDeliver'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/deliver-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/deliver-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/deliver-request-main/get-import-template' })
+}
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/deliver-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/deliver-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/deliver-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/deliver-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/deliver-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/deliver-request-main/handle?id=' + id })
+}
diff --git a/src/api/wms/demandforecastingDetail/index.ts b/src/api/wms/demandforecastingDetail/index.ts
new file mode 100644
index 0000000..753c999
--- /dev/null
+++ b/src/api/wms/demandforecastingDetail/index.ts
@@ -0,0 +1,127 @@
+import request from '@/config/axios'
+import { isString } from '@/utils/is'
+import dayjs from 'dayjs'
+
+export interface DemandforecastingDetailVO {
+ predictTimeType: string
+ predictTime: Date
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ planQty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ available: string
+}
+
+// 要货预测-列表和头部请求参数
+const getPageParams = (params)=>{
+ // 到货日期
+ if(params.dueDate&¶ms.dueDate.length>0){
+ if(isString(params.dueDate[0])){
+ params.startDate = params.dueDate[0]
+ }else{
+ params.startDate = params.dueDate[0].format('YYYY-MM-DD')
+ }
+
+ }
+ if(params.dueDate&¶ms.dueDate.length>1){
+ if(isString(params.dueDate[1])){
+ params.endDate = params.dueDate[1]
+ }else{
+ params.endDate = params.dueDate[1].format('YYYY-MM-DD')
+ }
+ }
+ console.log(params.dueDate)
+ if (!params.dueDate || params.dueDate.length == 0) {
+ params.startDate = ''
+ params.endDate = ''
+ }
+ // params.dueDate = ''
+
+ //计划员
+ if(params.planerId&¶ms.planerId.length>0){
+ params.planers = params.planerId.join(',')
+ }
+ params.planerId = ''
+ // 供应商代码
+ if(params.supplierCode&¶ms.supplierCode.length>0){
+ let keyValue = params.supplierCode.split(' ')
+ keyValue.forEach(item=>{item = item.trim()})
+ params.supplierCodes = keyValue.join(',')
+ }
+ params.supplierCode = ''
+
+ // 物料代码
+ if(params.itemCode&¶ms.itemCode.length>0){
+ let keyValue = params.itemCode.split(' ')
+ keyValue.forEach(item=>{item = item.trim()})
+ params.itemCodes = keyValue.join(',')
+ }
+ params.itemCode = ''
+
+ // 版本号
+ if(params.version&¶ms.version.length>0){
+ let keyValue = params.version.split(' ')
+ keyValue.forEach(item=>{item = item.trim()})
+ params.versions = keyValue.join(',')
+ }
+ params.version = ''
+ return params
+}
+
+// 查询要货预测子列表
+export const getDemandforecastingDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ if(params.flag){
+ delete params.flag
+ }
+ const data = {...params}
+ return await request.post({ url: '/wms/demandforecasting-detail/senior', data })
+ } else {
+ params = getPageParams(params)
+ return await request.get({ url: `/wms/demandforecasting-detail/page`, params })
+ }
+}
+
+// 查询要货预测子详情
+export const getDemandforecastingDetail = async (id: number) => {
+ return await request.get({ url: `/wms/demandforecasting-detail/get?id=` + id })
+}
+
+// 新增要货预测子
+export const createDemandforecastingDetail = async (data: DemandforecastingDetailVO) => {
+ return await request.post({ url: `/wms/demandforecasting-detail/create`, data })
+}
+
+// 修改要货预测子
+export const updateDemandforecastingDetail = async (data: DemandforecastingDetailVO) => {
+ return await request.put({ url: `/wms/demandforecasting-detail/update`, data })
+}
+
+// 删除要货预测子
+export const deleteDemandforecastingDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/demandforecasting-detail/delete?id=` + id })
+}
+
+// 导出要货预测子 Excel
+export const exportDemandforecastingDetail = async (params) => {
+ return await request.download({ url: `/wms/demandforecasting-detail/export-excel`, params })
+}
+
+// 查询要货预测主列表
+export const getPageTableHead = async (params) => {
+ params = getPageParams(params)
+ console.log('params',params)
+ return await request.get({ url: `/wms/demandforecasting-detail/queryPageTableHead`, params })
+}
+
+
+// 查询版本号
+export const queryVersion = async (params) => {
+ return await request.get({ url: `/wms/demandforecasting-detail/queryVersion`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/demandforecastingMain/index.ts b/src/api/wms/demandforecastingMain/index.ts
new file mode 100644
index 0000000..cbb7bfb
--- /dev/null
+++ b/src/api/wms/demandforecastingMain/index.ts
@@ -0,0 +1,159 @@
+import request from '@/config/axios'
+import { isString } from '@/utils/is'
+
+export interface DemandforecastingMainVO {
+ supplierCode: string
+ version: string
+ publishTime: Date
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ beginTime: Date
+ endTime: Date
+ status: string
+ updateTime: Date
+ updater: string
+ available: string
+}
+
+// 查询要货预测主列表
+export const getDemandforecastingMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/demandforecasting-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/demandforecasting-main/page`, params })
+ }
+}
+
+// 查询要货预测主详情
+export const getDemandforecastingMain = async (id: number) => {
+ return await request.get({ url: `/wms/demandforecasting-main/get?id=` + id })
+}
+
+// 新增要货预测主
+export const createDemandforecastingMain = async (data: DemandforecastingMainVO) => {
+ return await request.post({ url: `/wms/demandforecasting-main/create`, data })
+}
+
+// 修改要货预测主
+export const updateDemandforecastingMain = async (data: DemandforecastingMainVO) => {
+ return await request.put({ url: `/wms/demandforecasting-main/update`, data })
+}
+
+// 删除要货预测主
+export const deleteDemandforecastingMain = async (id: number) => {
+ return await request.delete({ url: `/wms/demandforecasting-main/delete?id=` + id })
+}
+
+
+// 关闭要货预测
+export const closePurchaseMain = async (id: number) => {
+ return await request.post({ url: `/wms/demandforecasting-main/close?id=` + id })
+}
+// 打开要货预测
+export const openPurchaseMain = async (id: number) => {
+ return await request.post({ url: `/wms/demandforecasting-main/open?id=` + id })
+}
+// 发布要货预测
+export const publishPurchaseMain = async (id: number) => {
+ return await request.post({ url: `/wms/demandforecasting-main/publish?id=` + id })
+}
+// 下架要货预测
+export const witPurchaseMain = async (id: number) => {
+ return await request.post({ url: `/wms/demandforecasting-main/wit?id=` + id })
+}
+
+// 要货预测-列表和头部请求参数
+const getPageParams = (params)=>{
+ // 到货日期
+ if(params.dueDate&¶ms.dueDate.length>0){
+ if(isString(params.dueDate[0])){
+ params.startDate = params.dueDate[0]
+ }else{
+ params.startDate = params.dueDate[0].format('YYYY-MM-DD')
+ }
+
+ }
+ if(params.dueDate&¶ms.dueDate.length>1){
+ if(isString(params.dueDate[1])){
+ params.endDate = params.dueDate[1]
+ }else{
+ params.endDate = params.dueDate[1].format('YYYY-MM-DD')
+ }
+ }
+ if (!params.dueDate || params.dueDate.length == 0) {
+ params.startDate = ''
+ params.endDate = ''
+ }
+ // params.dueDate = ''
+
+ //计划员
+ if(params.planerId&¶ms.planerId.length>0){
+ params.planers = params.planerId.join(',')
+ }
+ params.planerId = ''
+ // 供应商代码
+ if(params.supplierCode&¶ms.supplierCode.length>0){
+ let keyValue = params.supplierCode.split(' ')
+ keyValue.forEach(item=>{item = item.trim()})
+ params.supplierCodes = keyValue.join(',')
+ }
+ params.supplierCode = ''
+
+ // 物料代码
+ if(params.itemCode&¶ms.itemCode.length>0){
+ let keyValue = params.itemCode.split(' ')
+ keyValue.forEach(item=>{item = item.trim()})
+ params.itemCodes = keyValue.join(',')
+ }
+ params.itemCode = ''
+
+ // 版本号
+ if(params.version&¶ms.version.length>0){
+ let keyValue = params.version.split(' ')
+ keyValue.forEach(item=>{item = item.trim()})
+ params.versions = keyValue.join(',')
+ }
+ params.version = ''
+ return params
+}
+// 导出要货预测主 Excel
+export const exportDemandforecastingMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/demandforecasting-main/export-excel-senior', data })
+ } else {
+ params = getPageParams(params)
+ return await request.download({ url: `/wms/demandforecasting-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/demandforecasting-main/get-import-template' })
+}
+
+
+// 计划员
+export const queryUserPlanerList = async () => {
+ return await request.post({ url: `/wms/demandforecasting-main/queryUserPlanerList`,data:{} })
+
+}
+
+// 供应商代码
+export const querySupplierList = async (data) => {
+ return await request.post({ url: `/wms/demandforecasting-main/querySupplierList`,data })
+}
+
+
+// 是否已读接口
+export const updateIsRead = async (data) => {
+ return await request.post({ url: `/wms/demandforecasting-main/updateIsRead`,data })
+}
+
+
diff --git a/src/api/wms/detail/index.ts b/src/api/wms/detail/index.ts
new file mode 100644
index 0000000..9bf57f6
--- /dev/null
+++ b/src/api/wms/detail/index.ts
@@ -0,0 +1,35 @@
+import request from '@/config/axios'
+
+
+// 查询备注列表
+export const getRemarkPage = async (params) => {
+ return await request.get({ url: `/infra/remark/list`, params })
+}
+
+// // 查询库区详情
+// export const getArea = async (id: number) => {
+// return await request.get({ url: `/wms/areabasic/get?id=` + id })
+// }
+
+// 新增备注
+export const createRemark= async (data) => {
+ return await request.post({ url: `/infra/remark/create`, data })
+}
+// 查询变更记录列表
+export const getChangeRecordPage = async (params) => {
+ return await request.get({ url: `/infra/trends/list`, params })
+}
+// // 修改库区
+// export const updateArea = async (data: AreaVO) => {
+// return await request.put({ url: `/wms/areabasic/update`, data })
+// }
+
+// // 删除库区
+// export const deleteArea = async (id: number) => {
+// return await request.delete({ url: `/wms/areabasic/delete?id=` + id })
+// }
+
+// // 导出库区 Excel
+// export const exportArea = async (params) => {
+// return await request.download({ url: `/wms/areabasic/export-excel`, params })
+// }
diff --git a/src/api/wms/dismantleRecordDetailb/index.ts b/src/api/wms/dismantleRecordDetailb/index.ts
new file mode 100644
index 0000000..e1aaa04
--- /dev/null
+++ b/src/api/wms/dismantleRecordDetailb/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface DismantleRecordDetailbVO {
+ processCode: string
+ bomVersion: string
+ batch: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ inventoryStatus: string
+ packingNumber: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+
+// 查询制品拆解记录子列表
+export const getDismantleRecordDetailbPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/dismantle-record-detailb/senior', data })
+ } else {
+ return await request.get({ url: `/wms/dismantle-record-detailb/page`, params })
+ }
+}
+
+// 查询制品拆解记录子详情
+export const getDismantleRecordDetailb = async (id: number) => {
+ return await request.get({ url: `/wms/dismantle-record-detailb/get?id=` + id })
+}
+
+// 新增制品拆解记录子
+export const createDismantleRecordDetailb = async (data: DismantleRecordDetailbVO) => {
+ return await request.post({ url: `/wms/dismantle-record-detailb/create`, data })
+}
+
+// 修改制品拆解记录子
+export const updateDismantleRecordDetailb = async (data: DismantleRecordDetailbVO) => {
+ return await request.put({ url: `/wms/dismantle-record-detailb/update`, data })
+}
+
+// 删除制品拆解记录子
+export const deleteDismantleRecordDetailb = async (id: number) => {
+ return await request.delete({ url: `/wms/dismantle-record-detailb/delete?id=` + id })
+}
+
+// 导出制品拆解记录子 Excel
+export const exportDismantleRecordDetailb = async (params) => {
+ return await request.download({ url: `/wms/dismantle-record-detailb/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/dismantle-record-detailb/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/dismantleRequestDetailb/index.ts b/src/api/wms/dismantleRequestDetailb/index.ts
new file mode 100644
index 0000000..4603fb3
--- /dev/null
+++ b/src/api/wms/dismantleRequestDetailb/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface DismantleRequestDetailbVO {
+ processCode: string
+ bomVersion: string
+ itemCode: string
+ number: string
+ remark: string
+ createTime: Date
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ creator: string
+ siteId: string
+}
+
+// 查询制品拆解申请子列表
+export const getDismantleRequestDetailbPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/dismantle-request-detailb/senior', data })
+ } else {
+ return await request.get({ url: `/wms/dismantle-request-detailb/page`, params })
+ }
+}
+
+// 查询制品拆解申请子详情
+export const getDismantleRequestDetailb = async (id: number) => {
+ return await request.get({ url: `/wms/dismantle-request-detailb/get?id=` + id })
+}
+
+// 新增制品拆解申请子
+export const createDismantleRequestDetailb = async (data: DismantleRequestDetailbVO) => {
+ return await request.post({ url: `/wms/dismantle-request-detailb/create`, data })
+}
+
+// 修改制品拆解申请子
+export const updateDismantleRequestDetailb = async (id, data) => {
+ return await request.post({ url: `/wms/dismantle-request-detailb/update?id=`+id, data })
+}
+
+// 删除制品拆解申请子
+export const deleteDismantleRequestDetailb = async (id: number) => {
+ return await request.delete({ url: `/wms/dismantle-request-detailb/delete?id=` + id })
+}
+
+// 导出制品拆解申请子 Excel
+export const exportDismantleRequestDetailb = async (params) => {
+ return await request.download({ url: `/wms/dismantle-request-detailb/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/dismantle-request-detailb/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/dock/index.ts b/src/api/wms/dock/index.ts
new file mode 100644
index 0000000..ece07e8
--- /dev/null
+++ b/src/api/wms/dock/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface DockVO {
+ code: string
+ name: string
+ description: string
+ city: string
+ address: string
+ type: string
+ warehouseCode: string
+ defaultLocationCode: string
+ contactPerson: string
+ contactPhone: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询月台列表
+export const getDockPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/dock/senior', data })
+ } else {
+ return await request.get({ url: `/wms/dock/page`, params })
+ }
+}
+// 查询月台列表
+export const getDockList = async (params) => {
+ return await request.get({ url: `/wms/dock/list`, params })
+}
+// 查询月台详情
+export const getDock = async (id: number) => {
+ return await request.get({ url: `/wms/dock/get?id=` + id })
+}
+
+// 新增月台
+export const createDock = async (data: DockVO) => {
+ return await request.post({ url: `/wms/dock/create`, data })
+}
+
+// 修改月台
+export const updateDock = async (data: DockVO) => {
+ return await request.put({ url: `/wms/dock/update`, data })
+}
+
+// 删除月台
+export const deleteDock = async (id: number) => {
+ return await request.delete({ url: `/wms/dock/delete?id=` + id })
+}
+
+// 导出月台 Excel
+export const exportDock = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/dock/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/dock/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/dock/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/documentsetting/index.ts b/src/api/wms/documentsetting/index.ts
new file mode 100644
index 0000000..6d9dc6b
--- /dev/null
+++ b/src/api/wms/documentsetting/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface DocumentsettingVO {
+ code: string
+ name: string
+ description: string
+ type: string
+ businessType: string
+ numberPrefix: string
+ dateFormat: string
+ serialLength: number
+ separatorStr: string
+ resetPeriod: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ available: string
+ isSoftDeleted: string
+}
+
+// 查询单据设置列表
+export const getDocumentsettingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/documentsetting/senior', data })
+ } else {
+ return await request.get({ url: `/wms/documentsetting/page`, params })
+ }
+}
+
+// 查询单据设置详情
+export const getDocumentsetting = async (id: number) => {
+ return await request.get({ url: `/wms/documentsetting/get?id=` + id })
+}
+
+// 新增单据设置
+export const createDocumentsetting = async (data: DocumentsettingVO) => {
+ return await request.post({ url: `/wms/documentsetting/create`, data })
+}
+
+// 修改单据设置
+export const updateDocumentsetting = async (data: DocumentsettingVO) => {
+ return await request.put({ url: `/wms/documentsetting/update`, data })
+}
+
+// 删除单据设置
+export const deleteDocumentsetting = async (id: number) => {
+ return await request.delete({ url: `/wms/documentsetting/delete?id=` + id })
+}
+
+// 导出单据设置 Excel
+export const exportDocumentsetting = async (params) => {
+ return await request.download({ url: `/wms/documentsetting/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/documentsetting/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/enterprise/index.ts b/src/api/wms/enterprise/index.ts
new file mode 100644
index 0000000..87cf0ff
--- /dev/null
+++ b/src/api/wms/enterprise/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface EnterpriseVO {
+ id: number
+ code: string
+ name: string
+ shortName: string
+ address: string
+ available: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: string
+ siteId: string
+}
+
+// 查询企业列表
+export const getEnterprisePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/enterprise/senior', data })
+ } else {
+ return await request.get({ url: `/wms/enterprise/page`, params })
+ }
+}
+
+// 查询企业详情
+export const getEnterprise = async (id: number) => {
+ return await request.get({ url: `/wms/enterprise/get?id=` + id })
+}
+
+// 新增企业
+export const createEnterprise = async (data: EnterpriseVO) => {
+ return await request.post({ url: `/wms/enterprise/create`, data })
+}
+
+// 修改企业
+export const updateEnterprise = async (data: EnterpriseVO) => {
+ return await request.put({ url: `/wms/enterprise/update`, data })
+}
+
+// 删除企业
+export const deleteEnterprise = async (id: number) => {
+ return await request.delete({ url: `/wms/enterprise/delete?id=` + id })
+}
+
+// 导出企业 Excel
+export const exportEnterprise = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/enterprise/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/enterprise/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/enterprise/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/expectin/index.ts b/src/api/wms/expectin/index.ts
new file mode 100644
index 0000000..ab98fbc
--- /dev/null
+++ b/src/api/wms/expectin/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface ExpectinVO {
+ jobNumber: string
+ businessType: string
+ itemCode: string
+ batch: string
+ inventoryStatus: string
+ uom: string
+ qty: number
+ locationCode: string
+ warehouseCode: string
+ ownerCode: string
+}
+
+// 查询预计入库存列表
+export const getExpectinPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/expectin/senior', data })
+ } else {
+ return await request.get({ url: `/wms/expectin/page`, params })
+ }
+}
+
+// 查询预计入库存详情
+export const getExpectin = async (id: number) => {
+ return await request.get({ url: `/wms/expectin/get?id=` + id })
+}
+
+// 新增预计入库存
+export const createExpectin = async (data: ExpectinVO) => {
+ return await request.post({ url: `/wms/expectin/create`, data })
+}
+
+// 修改预计入库存
+export const updateExpectin = async (data: ExpectinVO) => {
+ return await request.put({ url: `/wms/expectin/update`, data })
+}
+
+// 删除预计入库存
+export const deleteExpectin = async (id: number) => {
+ return await request.delete({ url: `/wms/expectin/delete?id=` + id })
+}
+
+// 批量删除预计出库存
+export const deleteExpectinIds = async (ids: string) => {
+ return await request.delete({ url: `/wms/expectin/deleteIds?ids=` + ids })
+}
+
+// 导出预计入库存 Excel
+export const exportExpectin = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/expectin/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/expectin/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/expectin/get-import-template' })
+}
diff --git a/src/api/wms/expectout/index.ts b/src/api/wms/expectout/index.ts
new file mode 100644
index 0000000..64329d4
--- /dev/null
+++ b/src/api/wms/expectout/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface ExpectoutVO {
+ jobNumber: string
+ businessType: string
+ packingNumber: string
+ itemCode: string
+ batch: string
+ inventoryStatus: string
+ uom: string
+ qty: number
+ locationCode: string
+ warehouseCode: string
+ ownerCode: string
+}
+
+// 查询预计出库存列表
+export const getExpectoutPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/expectout/senior', data })
+ } else {
+ return await request.get({ url: `/wms/expectout/page`, params })
+ }
+}
+
+// 查询预计出库存详情
+export const getExpectout = async (id: number) => {
+ return await request.get({ url: `/wms/expectout/get?id=` + id })
+}
+
+// 新增预计出库存
+export const createExpectout = async (data: ExpectoutVO) => {
+ return await request.post({ url: `/wms/expectout/create`, data })
+}
+
+// 修改预计出库存
+export const updateExpectout = async (data: ExpectoutVO) => {
+ return await request.put({ url: `/wms/expectout/update`, data })
+}
+
+// 删除预计出库存
+export const deleteExpectout = async (id: number) => {
+ return await request.delete({ url: `/wms/expectout/delete?id=` + id })
+}
+
+// 批量删除预计出库存
+export const deleteExpectoutIds = async (ids: string) => {
+ return await request.delete({ url: `/wms/expectout/deleteIds?ids=` + ids })
+}
+
+// 导出预计出库存 Excel
+export const exportExpectout = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/expectout/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/expectout/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/expectout/get-import-template' })
+}
diff --git a/src/api/wms/file/index.ts b/src/api/wms/file/index.ts
new file mode 100644
index 0000000..f817181
--- /dev/null
+++ b/src/api/wms/file/index.ts
@@ -0,0 +1,12 @@
+import request from '@/config/axios'
+
+// 查询变更记录列表
+export const getFileList = async (params) => {
+ return await request.get({ url: `/infra/file/list`, params })
+}
+
+// 删除库区
+export const deleteFile = async (id: number) => {
+ return await request.delete({ url: `/infra/file/delete?id=` + id })
+}
+
diff --git a/src/api/wms/index.ts b/src/api/wms/index.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/api/wms/inspectJobDetail/index.ts b/src/api/wms/inspectJobDetail/index.ts
new file mode 100644
index 0000000..64fcb32
--- /dev/null
+++ b/src/api/wms/inspectJobDetail/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface InspectJobDetailVO {
+ packingNumber: string
+ containerNumber: string
+ inventoryStatus: string
+ fromLocationCode: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+}
+
+// 查询检验任务子列表
+export const getInspectJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inspect-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inspect-job-detail/page`, params })
+ }
+}
+
+// 查询检验任务子详情
+export const getInspectJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/inspect-job-detail/get?id=` + id })
+}
+
+// 新增检验任务子
+export const createInspectJobDetail = async (data: InspectJobDetailVO) => {
+ return await request.post({ url: `/wms/inspect-job-detail/create`, data })
+}
+
+// 修改检验任务子
+export const updateInspectJobDetail = async (data: InspectJobDetailVO) => {
+ return await request.put({ url: `/wms/inspect-job-detail/update`, data })
+}
+
+// 删除检验任务子
+export const deleteInspectJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/inspect-job-detail/delete?id=` + id })
+}
+
+// 导出检验任务子 Excel
+export const exportInspectJobDetail = async (params) => {
+ return await request.download({ url: `/wms/inspect-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inspect-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/inspectJobMain/index.ts b/src/api/wms/inspectJobMain/index.ts
new file mode 100644
index 0000000..54e9514
--- /dev/null
+++ b/src/api/wms/inspectJobMain/index.ts
@@ -0,0 +1,101 @@
+import request from '@/config/axios'
+
+export interface InspectJobMainVO {
+ requestNumber: string
+ purchaseReceiptRecordNumber: string
+ supplierCode: string
+ warehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ poUmber: string
+ poLine: string
+ batch: string
+ itemCode: string
+ inspectType: string
+ nextAction: string
+ sampleMethod: string
+ uom: string
+ receiveQty: number
+ sampleQty: number
+ owner: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询检验任务主列表
+export const getInspectJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inspect-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inspect-job-main/page`, params })
+ }
+}
+
+// 查询检验任务主详情
+export const getInspectJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/inspect-job-main/get?id=` + id })
+}
+
+// 新增检验任务主
+export const createInspectJobMain = async (data: InspectJobMainVO) => {
+ return await request.post({ url: `/wms/inspect-job-main/create`, data })
+}
+
+// 修改检验任务主
+export const updateInspectJobMain = async (data: InspectJobMainVO) => {
+ return await request.put({ url: `/wms/inspect-job-main/update`, data })
+}
+
+// 删除检验任务主
+export const deleteInspectJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/inspect-job-main/delete?id=` + id })
+}
+
+// 导出检验任务主 Excel
+export const exportInspectJobMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/inspect-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({url: `/wms/inspect-job-main/export-excel`, params})
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inspect-job-main/get-import-template' })
+}
+
+// 关闭检验任务主
+export const closeInspectJobMain = (id: number) => {
+ return request.put({ url: '/wms/inspect-job-main/close?id=' + id })
+}
diff --git a/src/api/wms/inspectRecordDetail/index.ts b/src/api/wms/inspectRecordDetail/index.ts
new file mode 100644
index 0000000..5bda866
--- /dev/null
+++ b/src/api/wms/inspectRecordDetail/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface InspectRecordDetailVO {
+ packingNumber: string
+ containerNumber: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ sampleQty: number
+ goodQty: number
+ failedQty: number
+ crackQty: number
+ notPassedQty: number
+ failedReason: string
+ photos: string
+ inspectUser: string
+ inspectResult: string
+ appearance: string
+ volume: string
+ weight: string
+ otherProperties: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+
+// 查询检验记录子列表
+export const getInspectRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inspect-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inspect-record-detail/page`, params })
+ }
+}
+
+// 查询检验记录子详情
+export const getInspectRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/inspect-record-detail/get?id=` + id })
+}
+
+// 新增检验记录子
+export const createInspectRecordDetail = async (data: InspectRecordDetailVO) => {
+ return await request.post({ url: `/wms/inspect-record-detail/create`, data })
+}
+
+// 修改检验记录子
+export const updateInspectRecordDetail = async (data: InspectRecordDetailVO) => {
+ return await request.put({ url: `/wms/inspect-record-detail/update`, data })
+}
+
+// 删除检验记录子
+export const deleteInspectRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/inspect-record-detail/delete?id=` + id })
+}
+
+// 导出检验记录子 Excel
+export const exportInspectRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/inspect-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inspect-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/inspectRecordMain/index.ts b/src/api/wms/inspectRecordMain/index.ts
new file mode 100644
index 0000000..3de2e0b
--- /dev/null
+++ b/src/api/wms/inspectRecordMain/index.ts
@@ -0,0 +1,94 @@
+import request from '@/config/axios'
+
+export interface InspectRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ purchaseReceiptRecordNumber: string
+ supplierCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ poNumber: string
+ poLine: string
+ batch: string
+ inspectType: string
+ nextAction: string
+ sampleMethod: string
+ uom: string
+ receiveQty: number
+ batchGoodQty: number
+ batchFaildQty: number
+ batchCrackQty: number
+ batchNotPassedQty: number
+ itemCode: string
+ fromWarehouseCode: string
+ fromAreaCodes: string
+ ownerCode: string
+ available: string
+ sampleQty: number
+ fromAreaTypes: string
+ putawayRequestFlag: boolean
+}
+
+// 查询检验记录主列表
+export const getInspectRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inspect-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inspect-record-main/page`, params })
+ }
+}
+
+// 查询检验记录主详情
+export const getInspectRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/inspect-record-main/get?id=` + id })
+}
+
+// 新增检验记录主
+export const createInspectRecordMain = async (data: InspectRecordMainVO) => {
+ return await request.post({ url: `/wms/inspect-record-main/create`, data })
+}
+
+// 修改检验记录主
+export const updateInspectRecordMain = async (data: InspectRecordMainVO) => {
+ return await request.put({ url: `/wms/inspect-record-main/update`, data })
+}
+
+// 删除检验记录主
+export const deleteInspectRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/inspect-record-main/delete?id=` + id })
+}
+
+// 导出检验记录主 Excel
+export const exportInspectRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/inspect-record-main/export-excel-senior`, data })
+ } else {
+ return await request.download({url: `/wms/inspect-record-main/export-excel`, params})
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inspect-record-main/get-import-template' })
+}
+
+
+// 创建上架申请
+export const createPutAwayRequest = async (number:string) => {
+ return await request.post({ url: `/wms/inspect-record-main/createPutAwayRequestPC?number=`+number })
+}
\ No newline at end of file
diff --git a/src/api/wms/inspectRequestDetail/index.ts b/src/api/wms/inspectRequestDetail/index.ts
new file mode 100644
index 0000000..d3a1a0f
--- /dev/null
+++ b/src/api/wms/inspectRequestDetail/index.ts
@@ -0,0 +1,58 @@
+import request from '@/config/axios'
+
+export interface InspectRequestDetailVO {
+ packingNumber: string
+ containerNumber: string
+ inventoryStatus: string
+ fromLocationCode: string
+ updateTime: Date
+ updater: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+}
+
+// 查询检验申请子列表
+export const getInspectRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inspect-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inspect-request-detail/page`, params })
+ }
+}
+
+// 查询检验申请子详情
+export const getInspectRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/inspect-request-detail/get?id=` + id })
+}
+
+// 新增检验申请子
+export const createInspectRequestDetail = async (data: InspectRequestDetailVO) => {
+ return await request.post({ url: `/wms/inspect-request-detail/create`, data })
+}
+
+// 修改检验申请子
+export const updateInspectRequestDetail = async (data: InspectRequestDetailVO) => {
+ return await request.put({ url: `/wms/inspect-request-detail/update`, data })
+}
+
+// 删除检验申请子
+export const deleteInspectRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/inspect-request-detail/delete?id=` + id })
+}
+
+// 导出检验申请子 Excel
+export const exportInspectRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/inspect-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inspect-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/inspectRequestMain/index.ts b/src/api/wms/inspectRequestMain/index.ts
new file mode 100644
index 0000000..c4f71cc
--- /dev/null
+++ b/src/api/wms/inspectRequestMain/index.ts
@@ -0,0 +1,111 @@
+import request from '@/config/axios'
+
+export interface InspectRequestMainVO {
+ purchaseReceiptRecordNumber: string
+ supplierCode: string
+ number: string
+ businessType: string
+ fromWarehouseCode: string
+ fromAreaCodes: string
+ fromAreaTypes: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ poNumber: string
+ poLine: string
+ batch: string
+ itemCode: string
+ inspectType: string
+ nextAction: string
+ sampleMethod: string
+ uom: string
+ receiveQty: number
+ sampleQty: number
+ ownerCode: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询检验申请主列表
+export const getInspectRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inspect-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inspect-request-main/page`, params })
+ }
+}
+
+// 查询检验申请主详情
+export const getInspectRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/inspect-request-main/get?id=` + id })
+}
+
+// 新增检验申请主
+export const createInspectRequestMain = async (data: InspectRequestMainVO) => {
+ return await request.post({ url: `/wms/inspect-request-main/create`, data })
+}
+
+// 修改检验申请主
+export const updateInspectRequestMain = async (data: InspectRequestMainVO) => {
+ return await request.put({ url: `/wms/inspect-request-main/update`, data })
+}
+
+// 删除检验申请主
+export const deleteInspectRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/inspect-request-main/delete?id=` + id })
+}
+
+// 导出检验申请主 Excel
+export const exportInspectRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/inspect-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({url: `/wms/inspect-request-main/export-excel`, params})
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inspect-request-main/get-import-template' })
+}
+
+// 关闭检验申请主 Excel
+export const closeInspectRequestMain = async (id) => {
+ return await request.put({ url: `/wms/inspect-request-main/close?id=` + id })
+}
+
+// 重新添加检验申请主 Excel
+export const reAddInspectRequestMain = async (id) => {
+ return await request.put({ url: `/wms/inspect-request-main/reAdd?id=` + id })
+}
+
+// 提交检验申请主 Excel
+export const submitInspectRequestMain = async (id) => {
+ return await request.put({ url: `/wms/inspect-request-main/submit?id=` + id })
+}
+
+// 审批通过检验申请主 Excel
+export const agreeInspectRequestMain = async (id) => {
+ return await request.put({ url: `/wms/inspect-request-main/agree?id=` + id })
+}
+
+// 审批驳回检验申请主 Excel
+export const refusedInspectRequestMain = async (id) => {
+ return await request.put({ url: `/wms/inspect-request-main/refused?id=` + id })
+}
+
+// 处理检验申请主 Excel
+export const handleInspectRequestMain = async (id) => {
+ return await request.put({ url: `/wms/inspect-request-main/handle?id=` + id })
+}
diff --git a/src/api/wms/interfaceInfo/index.ts b/src/api/wms/interfaceInfo/index.ts
new file mode 100644
index 0000000..9af0ea3
--- /dev/null
+++ b/src/api/wms/interfaceInfo/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface InterfaceInfoVO {
+ number:string
+ id: number
+ interfaceType: string
+ interfaceName: string
+ interfaceStatus: string
+ url: string
+ reqBody: string
+ respBody: string
+ errorMsg: string
+ remark: string
+ extraProperties: string
+ concurrencyStamp: number
+}
+
+// 查询接口调用信息列表
+export const getInterfaceInfoPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/interface-info/senior', data })
+ } else {
+ return await request.get({ url: `/wms/interface-info/page`, params })
+ }
+}
+
+// 查询接口调用信息详情
+export const getInterfaceInfo = async (id: number) => {
+ return await request.get({ url: `/wms/interface-info/get?id=` + id })
+}
+
+// 新增接口调用信息
+export const createInterfaceInfo = async (data: InterfaceInfoVO) => {
+ return await request.post({ url: `/wms/interface-info/create`, data })
+}
+
+// 修改接口调用信息
+export const updateInterfaceInfo = async (data: InterfaceInfoVO) => {
+ return await request.put({ url: `/wms/interface-info/update`, data })
+}
+
+// 删除接口调用信息
+export const deleteInterfaceInfo = async (id: number) => {
+ return await request.delete({ url: `/wms/interface-info/delete?id=` + id })
+}
+
+// 导出接口调用信息 Excel
+export const exportInterfaceInfo = async (params) => {
+ return await request.download({ url: `/wms/interface-info/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/interface-info/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/inventorychangeRecordDetail/index.ts b/src/api/wms/inventorychangeRecordDetail/index.ts
new file mode 100644
index 0000000..3c68f04
--- /dev/null
+++ b/src/api/wms/inventorychangeRecordDetail/index.ts
@@ -0,0 +1,82 @@
+import request from '@/config/axios'
+
+export interface InventorychangeRecordDetailVO {
+ locationCode: string
+ locationGroupCode: string
+ areaCode: string
+ fromQty: number
+ fromOwnerCode: string
+ fromPackingNumber: string
+ fromContainerNumber: string
+ fromBatch: string
+ fromAltBatch: string
+ fromArriveDate: Date
+ fromProduceDate: Date
+ fromExpireDate: Date
+ fromInventoryStatus: string
+ toQty: number
+ toOwnerCode: string
+ toPackingNumber: string
+ toContainerNumber: string
+ toBatch: string
+ toAltBatch: string
+ toArriveDate: Date
+ toProduceDate: Date
+ toExpireDate: Date
+ toInventoryStatus: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+}
+
+// 查询库存修改记录子列表
+export const getInventorychangeRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventorychange-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventorychange-record-detail/page`, params })
+ }
+}
+
+// 查询库存修改记录子详情
+export const getInventorychangeRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/inventorychange-record-detail/get?id=` + id })
+}
+
+// 新增库存修改记录子
+export const createInventorychangeRecordDetail = async (data: InventorychangeRecordDetailVO) => {
+ return await request.post({ url: `/wms/inventorychange-record-detail/create`, data })
+}
+
+// 修改库存修改记录子
+export const updateInventorychangeRecordDetail = async (data: InventorychangeRecordDetailVO) => {
+ return await request.put({ url: `/wms/inventorychange-record-detail/update`, data })
+}
+
+// 删除库存修改记录子
+export const deleteInventorychangeRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/inventorychange-record-detail/delete?id=` + id })
+}
+
+// 导出库存修改记录子 Excel
+export const exportInventorychangeRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/inventorychange-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventorychange-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/inventorychangeRecordMain/index.ts b/src/api/wms/inventorychangeRecordMain/index.ts
new file mode 100644
index 0000000..dea0dc2
--- /dev/null
+++ b/src/api/wms/inventorychangeRecordMain/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface InventorychangeRecordMainVO {
+ requestNumber: string
+ warehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ available: string
+}
+
+// 查询库存修改记录主列表
+export const getInventorychangeRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventorychange-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventorychange-record-main/page`, params })
+ }
+}
+
+// 查询库存修改记录主详情
+export const getInventorychangeRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/inventorychange-record-main/get?id=` + id })
+}
+
+// 新增库存修改记录主
+export const createInventorychangeRecordMain = async (data: InventorychangeRecordMainVO) => {
+ return await request.post({ url: `/wms/inventorychange-record-main/create`, data })
+}
+
+// 修改库存修改记录主
+export const updateInventorychangeRecordMain = async (data: InventorychangeRecordMainVO) => {
+ return await request.put({ url: `/wms/inventorychange-record-main/update`, data })
+}
+
+// 删除库存修改记录主
+export const deleteInventorychangeRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/inventorychange-record-main/delete?id=` + id })
+}
+
+// 导出库存修改记录主 Excel
+export const exportInventorychangeRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorychange-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorychange-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventorychange-record-main/get-import-template' })
+}
diff --git a/src/api/wms/inventorychangeRequestDetail/index.ts b/src/api/wms/inventorychangeRequestDetail/index.ts
new file mode 100644
index 0000000..3a36cad
--- /dev/null
+++ b/src/api/wms/inventorychangeRequestDetail/index.ts
@@ -0,0 +1,81 @@
+import request from '@/config/axios'
+
+export interface InventorychangeRequestDetailVO {
+ locationGroupCode: string
+ locationCode: string
+ areaCode: string
+ fromQty: number
+ fromOwnerCode: string
+ fromPackingNumber: string
+ fromContainerNumber: string
+ fromBatch: string
+ fromAltbatch: string
+ fromArriveDate: Date
+ fromProduceDate: Date
+ fromExpireDate: Date
+ frominventoryStatus: string
+ toQty: number
+ toOwnerCode: string
+ toPackingNumber: string
+ toContainerNumber: string
+ toBatch: string
+ toAltBatch: string
+ toArrivdAte: Date
+ toProduceDate: Date
+ toExpireDate: Date
+ toInventoryStatus: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ itemCode: string
+}
+
+// 查询库存修改申请子列表
+export const getInventorychangeRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventorychange-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventorychange-request-detail/page`, params })
+ }
+}
+
+// 查询库存修改申请子详情
+export const getInventorychangeRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/inventorychange-request-detail/get?id=` + id })
+}
+
+// 新增库存修改申请子
+export const createInventorychangeRequestDetail = async (data: InventorychangeRequestDetailVO) => {
+ return await request.post({ url: `/wms/inventorychange-request-detail/create`, data })
+}
+
+// 修改库存修改申请子
+export const updateInventorychangeRequestDetail = async (data: InventorychangeRequestDetailVO) => {
+ return await request.put({ url: `/wms/inventorychange-request-detail/update`, data })
+}
+
+// 删除库存修改申请子
+export const deleteInventorychangeRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/inventorychange-request-detail/delete?id=` + id })
+}
+
+// 导出库存修改申请子 Excel
+export const exportInventorychangeRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/inventorychange-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventorychange-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/inventorychangeRequestMain/index.ts b/src/api/wms/inventorychangeRequestMain/index.ts
new file mode 100644
index 0000000..4d531a3
--- /dev/null
+++ b/src/api/wms/inventorychangeRequestMain/index.ts
@@ -0,0 +1,97 @@
+import request from '@/config/axios'
+
+export interface InventorychangeRequestMainVO {
+ warehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询库存修改申请主列表
+export const getInventorychangeRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventorychange-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventorychange-request-main/page`, params })
+ }
+}
+
+// 查询库存修改申请主详情
+export const getInventorychangeRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/inventorychange-request-main/get?id=` + id })
+}
+
+// 新增库存修改申请主
+export const createInventorychangeRequestMain = async (data: InventorychangeRequestMainVO) => {
+ return await request.post({ url: `/wms/inventorychange-request-main/create`, data })
+}
+
+// 修改库存修改申请主
+export const updateInventorychangeRequestMain = async (data: InventorychangeRequestMainVO) => {
+ return await request.put({ url: `/wms/inventorychange-request-main/update`, data })
+}
+
+// 删除库存修改申请主
+export const deleteInventorychangeRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/inventorychange-request-main/delete?id=` + id })
+}
+
+// 导出库存修改申请主 Excel
+export const exportInventorychangeRequestMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorychange-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorychange-request-main/export-excel`, params })
+ }
+ }
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventorychange-request-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/inventorychange-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/inventorychange-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/inventorychange-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/inventorychange-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/inventorychange-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/inventorychange-request-main/handle?id=' + id })
+}
diff --git a/src/api/wms/inventoryinitRecordDetail/index.ts b/src/api/wms/inventoryinitRecordDetail/index.ts
new file mode 100644
index 0000000..fe2d27f
--- /dev/null
+++ b/src/api/wms/inventoryinitRecordDetail/index.ts
@@ -0,0 +1,80 @@
+import request from '@/config/axios'
+
+export interface InventoryinitRecordDetailVO {
+ ownerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ altBatch: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ locationCode: string
+ locationGroupCode: string
+ areaCode: string
+ packQty: number
+ packUnit: string
+ qty: number
+ singlePrice: number
+ amount: number
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ uom: string
+ code: string
+ interfaceType: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+}
+
+// 查询库存初始化记录子列表
+export const getInventoryinitRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventoryinit-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventoryinit-record-detail/page`, params })
+ }
+}
+
+// 查询库存初始化记录子详情
+export const getInventoryinitRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/inventoryinit-record-detail/get?id=` + id })
+}
+
+// 新增库存初始化记录子
+export const createInventoryinitRecordDetail = async (data: InventoryinitRecordDetailVO) => {
+ return await request.post({ url: `/wms/inventoryinit-record-detail/create`, data })
+}
+
+// 修改库存初始化记录子
+export const updateInventoryinitRecordDetail = async (data: InventoryinitRecordDetailVO) => {
+ return await request.put({ url: `/wms/inventoryinit-record-detail/update`, data })
+}
+
+// 删除库存初始化记录子
+export const deleteInventoryinitRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/inventoryinit-record-detail/delete?id=` + id })
+}
+
+// 导出库存初始化记录子 Excel
+export const exportInventoryinitRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/inventoryinit-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventoryinit-record-detail/get-import-template' })
+}
+
+// 批量打印
+export const printLabelBatchByIdSelection = async (data: any) => {
+ return await request.post({ url: `/wms/inventoryinit-record-main/printLabelBatchById` ,data})
+}
\ No newline at end of file
diff --git a/src/api/wms/inventoryinitRecordMain/index.ts b/src/api/wms/inventoryinitRecordMain/index.ts
new file mode 100644
index 0000000..173941d
--- /dev/null
+++ b/src/api/wms/inventoryinitRecordMain/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface InventoryinitRecordMainVO {
+ requestNumber: string
+ warehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ available: string
+}
+
+// 查询库存初始化记录主列表
+export const getInventoryinitRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventoryinit-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventoryinit-record-main/page`, params })
+ }
+}
+
+// 查询库存初始化记录主详情
+export const getInventoryinitRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/inventoryinit-record-main/get?id=` + id })
+}
+
+// 新增库存初始化记录主
+export const createInventoryinitRecordMain = async (data: InventoryinitRecordMainVO) => {
+ return await request.post({ url: `/wms/inventoryinit-record-main/create`, data })
+}
+
+// 修改库存初始化记录主
+export const updateInventoryinitRecordMain = async (data: InventoryinitRecordMainVO) => {
+ return await request.put({ url: `/wms/inventoryinit-record-main/update`, data })
+}
+
+// 删除库存初始化记录主
+export const deleteInventoryinitRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/inventoryinit-record-main/delete?id=` + id })
+}
+
+// 导出库存初始化记录主 Excel
+export const exportInventoryinitRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/inventoryinit-record-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/inventoryinit-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventoryinit-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/inventoryinitRequestDetail/index.ts b/src/api/wms/inventoryinitRequestDetail/index.ts
new file mode 100644
index 0000000..8962c3a
--- /dev/null
+++ b/src/api/wms/inventoryinitRequestDetail/index.ts
@@ -0,0 +1,72 @@
+import request from '@/config/axios'
+
+export interface InventoryinitRequestDetailVO {
+ ownerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ altBatch: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ locationCode: string
+ locationGroupCode: string
+ areaCode: string
+ packQty: number
+ packUnit: string
+ qty: number
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ uom: string
+ updateTime: Date
+ updater: string
+ itemCode: string
+}
+
+// 查询库存初始化申请子列表
+export const getInventoryinitRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventoryinit-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventoryinit-request-detail/page`, params })
+ }
+}
+
+// 查询库存初始化申请子详情
+export const getInventoryinitRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/inventoryinit-request-detail/get?id=` + id })
+}
+
+// 新增库存初始化申请子
+export const createInventoryinitRequestDetail = async (data: InventoryinitRequestDetailVO) => {
+ return await request.post({ url: `/wms/inventoryinit-request-detail/create`, data })
+}
+
+// 修改库存初始化申请子
+export const updateInventoryinitRequestDetail = async (data: InventoryinitRequestDetailVO) => {
+ return await request.put({ url: `/wms/inventoryinit-request-detail/update`, data })
+}
+
+// 删除库存初始化申请子
+export const deleteInventoryinitRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/inventoryinit-request-detail/delete?id=` + id })
+}
+
+// 导出库存初始化申请子 Excel
+export const exportInventoryinitRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/inventoryinit-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventoryinit-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/inventoryinitRequestMain/index.ts b/src/api/wms/inventoryinitRequestMain/index.ts
new file mode 100644
index 0000000..1cab338
--- /dev/null
+++ b/src/api/wms/inventoryinitRequestMain/index.ts
@@ -0,0 +1,94 @@
+import request from '@/config/axios'
+
+export interface InventoryinitRequestMainVO {
+ warehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询库存初始化申请主列表
+export const getInventoryinitRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventoryinit-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventoryinit-request-main/page`, params })
+ }
+}
+
+// 查询库存初始化申请主详情
+export const getInventoryinitRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/inventoryinit-request-main/get?id=` + id })
+}
+
+// 新增库存初始化申请主
+export const createInventoryinitRequestMain = async (data: InventoryinitRequestMainVO) => {
+ return await request.post({ url: `/wms/inventoryinit-request-main/create`, data })
+}
+
+// 修改库存初始化申请主
+export const updateInventoryinitRequestMain = async (data: InventoryinitRequestMainVO) => {
+ return await request.put({ url: `/wms/inventoryinit-request-main/update`, data })
+}
+// 关闭库存初始化申请主 Excel
+export const closeInventoryinitRequestMain = async (id) => {
+ return await request.put({ url: `/wms/inventoryinit-request-main/close?id=` + id })
+}
+// 重新添加库存初始化申请主 Excel
+export const reAddInventoryinitRequestMain = async (id) => {
+ return await request.put({ url: `/wms/inventoryinit-request-main/reAdd?id=` + id })
+}
+
+// 审批驳回库存初始化申请主 Excel
+export const refusedInventoryinitRequestMain = async (id) => {
+ return await request.put({ url: `/wms/inventoryinit-request-main/refused?id=` + id })
+}
+
+// 审批通过库存初始化申请主 Excel
+export const agreeInventoryinitRequestMain = async (id) => {
+ return await request.put({ url: `/wms/inventoryinit-request-main/agree?id=` + id })
+}
+
+// 提交库存初始化申请主 Excel
+export const submitInventoryinitRequestMain = async (id) => {
+ return await request.put({ url: `/wms/inventoryinit-request-main/submit?id=` + id })
+}
+
+// 删除库存初始化申请主
+export const deleteInventoryinitRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/inventoryinit-request-main/delete?id=` + id })
+}
+
+// 导出库存初始化申请主 Excel
+export const exportInventoryinitRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/inventoryinit-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/inventoryinit-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventoryinit-request-main/get-import-template' })
+}
+
+// 处理采购收货申请主 Excel
+export const handleInventoryinitRequestMain = async (id) => {
+ return await request.put({ url: `/wms/inventoryinit-request-main/handle?id=` + id })
+}
diff --git a/src/api/wms/inventorymoveJobDetail/index.ts b/src/api/wms/inventorymoveJobDetail/index.ts
new file mode 100644
index 0000000..f3821de
--- /dev/null
+++ b/src/api/wms/inventorymoveJobDetail/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface InventorymoveJobDetailVO {
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createtime: Date
+ creator: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ poNumber: string
+ poLine: string
+ fromLocationCode: string
+ toLocationCode: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询库存转移任务子列表
+export const getInventorymoveJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventorymove-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventorymove-job-detail/page`, params })
+ }
+}
+
+// 查询库存转移任务子详情
+export const getInventorymoveJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/inventorymove-job-detail/get?id=` + id })
+}
+
+// 新增库存转移任务子
+export const createInventorymoveJobDetail = async (data: InventorymoveJobDetailVO) => {
+ return await request.post({ url: `/wms/inventorymove-job-detail/create`, data })
+}
+
+// 修改库存转移任务子
+export const updateInventorymoveJobDetail = async (data: InventorymoveJobDetailVO) => {
+ return await request.put({ url: `/wms/inventorymove-job-detail/update`, data })
+}
+
+// 删除库存转移任务子
+export const deleteInventorymoveJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/inventorymove-job-detail/delete?id=` + id })
+}
+
+// 导出库存转移任务子 Excel
+export const exportInventorymoveJobDetail = async (params) => {
+ return await request.download({ url: `/wms/inventorymove-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventorymove-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/inventorymoveJobMain/index.ts b/src/api/wms/inventorymoveJobMain/index.ts
new file mode 100644
index 0000000..11e2341
--- /dev/null
+++ b/src/api/wms/inventorymoveJobMain/index.ts
@@ -0,0 +1,192 @@
+import request from '@/config/axios'
+
+export interface InventorymoveJobMainVO {
+ requestNumber: string
+ useOnTheWayLocation: string
+ fromWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ creatorName: string
+ toWarehouseCode: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询库存转移任务主列表
+export const getInventorymoveJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventorymove-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventorymove-job-main/page`, params })
+ }
+}
+
+// 查询库存转移任务主详情
+export const getInventorymoveJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/inventorymove-job-main/get?id=` + id })
+}
+
+// 新增库存转移任务主
+export const createInventorymoveJobMain = async (data: InventorymoveJobMainVO) => {
+ return await request.post({ url: `/wms/inventorymove-job-main/create`, data })
+}
+
+// 修改库存转移任务主
+export const updateInventorymoveJobMain = async (data: InventorymoveJobMainVO) => {
+ return await request.put({ url: `/wms/inventorymove-job-main/update`, data })
+}
+
+// 删除库存转移任务主
+export const deleteInventorymoveJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/inventorymove-job-main/delete?id=` + id })
+}
+
+// 导出库存转移任务主 Excel
+export const exportInventorymoveJobMain = async (params) => {
+ params.businessType = 'Move'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-job-main/export-excel`, params })
+ }
+}
+
+// 导出合格转隔离任务主 Excel
+export const exportOkToHoldJobMain = async (params) => {
+ params.businessType = 'OkToHold'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-job-main/export-excel`, params })
+ }
+}
+
+// 导出不合格转隔离任务主 Excel
+export const exportNokToHoldJobMain = async (params) => {
+ params.businessType = 'NokToHold'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-job-main/export-excel`, params })
+ }
+}
+// 导出隔离转合格任务主 Excel
+export const exportHoldToOkJobMain = async (params) => {
+ params.businessType = 'HoldToOk'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-job-main/export-excel`, params })
+ }
+}
+
+// 导出隔离转线边任务主 Excel
+export const exportHoldToWipJobMain = async (params) => {
+ params.businessType = 'HoldToWip'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-job-main/export-excel`, params })
+ }
+}
+
+// 导出隔离转报废任务主 Excel
+export const exportHoldToScrapJobMain = async (params) => {
+ params.businessType = 'HoldToScrap'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-job-main/export-excel`, params })
+ }
+}
+
+// 导出合格转报废任务主 Excel
+export const exportOkToScrapJobMain = async (params) => {
+ params.businessType = 'OkToScrap'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-job-main/export-excel`, params })
+ }
+}
+
+// 导出报废转隔离任务主 Excel
+export const exportScrapToHoldJobMain = async (params) => {
+ params.businessType = 'ScrapToHold'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-job-main/export-excel`, params })
+ }
+}
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventorymove-job-main/get-import-template' })
+}
+
+// 承接库存转移任务
+export const acceptInventorymoveMain = async (id) => {
+ return await request.put({ url: `/wms/inventorymove-job-main/accept?id=` + id })
+}
+
+// 放弃库存转移任务
+export const abandonInventorymoveMain = async (id) => {
+ return await request.put({ url: `/wms/inventorymove-job-main/abandon?id=` + id })
+}
+
+// 关闭库存转移任务
+export const closeInventorymoveMain = async (id) => {
+ return await request.put({ url: `/wms/inventorymove-job-main/close?id=` + id })
+}
+
+// 执行库存转移任务
+export const executeInventorymoveMain = async (data) => {
+ return await request.put({ url: `/wms/inventorymove-job-main/execute`, data})
+}
diff --git a/src/api/wms/inventorymoveRecordDetail/index.ts b/src/api/wms/inventorymoveRecordDetail/index.ts
new file mode 100644
index 0000000..8becf54
--- /dev/null
+++ b/src/api/wms/inventorymoveRecordDetail/index.ts
@@ -0,0 +1,77 @@
+import request from '@/config/axios'
+
+export interface InventorymoveRecordDetailVO {
+ onTheWayLocationCode: string
+ fromOwnerCode: string
+ fromPackingNumber: string
+ fromContainerNumber: string
+ fromBatch: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ fromInventoryStatus: string
+ toOwnerCode: string
+ toPackingNumber: string
+ toContainerNumber: string
+ toBatch: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ toInventoryStatus: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+}
+
+// 查询库存转移记录子列表
+export const getInventorymoveRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventorymove-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventorymove-record-detail/page`, params })
+ }
+}
+
+// 查询库存转移记录子详情
+export const getInventorymoveRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/inventorymove-record-detail/get?id=` + id })
+}
+
+// 新增库存转移记录子
+export const createInventorymoveRecordDetail = async (data: InventorymoveRecordDetailVO) => {
+ return await request.post({ url: `/wms/inventorymove-record-detail/create`, data })
+}
+
+// 修改库存转移记录子
+export const updateInventorymoveRecordDetail = async (data: InventorymoveRecordDetailVO) => {
+ return await request.put({ url: `/wms/inventorymove-record-detail/update`, data })
+}
+
+// 删除库存转移记录子
+export const deleteInventorymoveRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/inventorymove-record-detail/delete?id=` + id })
+}
+
+// 导出库存转移记录子 Excel
+export const exportInventorymoveRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/inventorymove-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventorymove-record-detail/get-import-template' })
+}
+
diff --git a/src/api/wms/inventorymoveRecordMain/index.ts b/src/api/wms/inventorymoveRecordMain/index.ts
new file mode 100644
index 0000000..79e6afd
--- /dev/null
+++ b/src/api/wms/inventorymoveRecordMain/index.ts
@@ -0,0 +1,173 @@
+import request from '@/config/axios'
+
+export interface InventorymoveRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ useOnTheWayLocation: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ available: string
+}
+
+// 查询库存转移记录主列表
+export const getInventorymoveRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventorymove-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventorymove-record-main/page`, params })
+ }
+}
+
+// 查询库存转移记录主详情
+export const getInventorymoveRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/inventorymove-record-main/get?id=` + id })
+}
+
+// 新增库存转移记录主
+export const createInventorymoveRecordMain = async (data: InventorymoveRecordMainVO) => {
+ return await request.post({ url: `/wms/inventorymove-record-main/createMove`, data })
+}
+
+// 修改库存转移记录主
+export const updateInventorymoveRecordMain = async (data: InventorymoveRecordMainVO) => {
+ return await request.put({ url: `/wms/inventorymove-record-main/update`, data })
+}
+
+// 删除库存转移记录主
+export const deleteInventorymoveRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/inventorymove-record-main/delete?id=` + id })
+}
+
+// 导出库存转移记录主 Excel
+export const exportInventorymoveRecordMain = async (params) => {
+ params.businessType = 'Move'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-record-main/export-excel`, params })
+ }
+}
+
+// 导出合格转隔离记录主 Excel
+export const exportOkToHoldRecordMain = async (params) => {
+ params.businessType = 'OkToHold'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-record-main/export-excel`, params })
+ }
+}
+// 导出合格转隔离记录主 Excel
+export const exportNokToHoldRecordMain = async (params) => {
+ params.businessType = 'NokToHold'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-record-main/export-excel`, params })
+ }
+}
+// 导出隔离转合格记录主 Excel
+export const exportHoldToOkRecordMain = async (params) => {
+ params.businessType = 'HoldToOk'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-record-main/export-excel`, params })
+ }
+}
+
+// 导出隔离转线边记录主 Excel
+export const exportHoldToWipRecordMain = async (params) => {
+ params.businessType = 'HoldToWip'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-record-main/export-excel`, params })
+ }
+}
+
+// 导出隔离转报废记录主 Excel
+export const exportHoldToScrapRecordMain = async (params) => {
+ params.businessType = 'HoldToScrap'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-record-main/export-excel`, params })
+ }
+}
+
+// 导出合格转报废记录主 Excel
+export const exportOkToScrapRecordMain = async (params) => {
+ params.businessType = 'OkToScrap'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-record-main/export-excel`, params })
+ }
+}
+
+// 导出报废转隔离记录主 Excel
+export const exportScrapToHoldRecordMain = async (params) => {
+ params.businessType = 'ScrapToHold'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-record-main/export-excel`, params })
+ }
+}
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventorymove-record-main/get-import-template' })
+}
+
+// 下载用户导入模板(除库存移动外)
+export const importTemplateExceptMove = () => {
+ return request.download({ url: '/wms/inventorymove-record-main/get-import-template-exceptMove' })
+}
+
+
+// 接收隔离收货
+export const receive = (id) => {
+ return request.put({ url: '/wms/inventorymove-record-main/receive?id=' + id })
+}
+
+// 拒收隔离收货
+export const refuse = (id) => {
+ return request.put({ url: '/wms/inventorymove-record-main/refuse?id=' + id })
+}
diff --git a/src/api/wms/inventorymoveRequestDetail/index.ts b/src/api/wms/inventorymoveRequestDetail/index.ts
new file mode 100644
index 0000000..26ad3a1
--- /dev/null
+++ b/src/api/wms/inventorymoveRequestDetail/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface InventorymoveRequestDetailVO {
+ fromOwnerCode: string
+ fromPackingNumber: string
+ fromContainerNumber: string
+ fromBatch: string
+ fromLocationCode: string
+ fromInventoryStatus: string
+ toOwnerCode: string
+ toPackingNumber: string
+ toContainerNumber: string
+ toBatch: string
+ toLocationCode: string
+ toInventoryStatus: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ itemCode: string
+}
+
+// 查询库存转移申请子列表
+export const getInventorymoveRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventorymove-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventorymove-request-detail/page`, params })
+ }
+}
+
+// 查询库存转移申请子详情
+export const getInventorymoveRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/inventorymove-request-detail/get?id=` + id })
+}
+
+// 新增库存转移申请子
+export const createInventorymoveRequestDetail = async (data: InventorymoveRequestDetailVO) => {
+ return await request.post({ url: `/wms/inventorymove-request-detail/create`, data })
+}
+
+// 修改库存转移申请子
+export const updateInventorymoveRequestDetail = async (data: InventorymoveRequestDetailVO) => {
+ return await request.put({ url: `/wms/inventorymove-request-detail/update`, data })
+}
+
+// 删除库存转移申请子
+export const deleteInventorymoveRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/inventorymove-request-detail/delete?id=` + id })
+}
+
+// 导出库存转移申请子 Excel
+export const exportInventorymoveRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/inventorymove-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventorymove-request-detail/get-import-template' })
+}
diff --git a/src/api/wms/inventorymoveRequestMain/index.ts b/src/api/wms/inventorymoveRequestMain/index.ts
new file mode 100644
index 0000000..2bcac86
--- /dev/null
+++ b/src/api/wms/inventorymoveRequestMain/index.ts
@@ -0,0 +1,182 @@
+import request from '@/config/axios'
+
+export interface InventorymoveRequestMainVO {
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ fromWarehouseOde: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ useOnTheWayLocation: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询库存转移申请主列表
+export const getInventorymoveRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/inventorymove-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/inventorymove-request-main/page`, params })
+ }
+}
+
+// 查询库存转移申请主详情
+export const getInventorymoveRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/inventorymove-request-main/get?id=` + id })
+}
+
+// 新增库存转移申请主
+export const createInventorymoveRequestMain = async (data: InventorymoveRequestMainVO) => {
+ return await request.post({ url: `/wms/inventorymove-request-main/create`, data })
+}
+
+// 修改库存转移申请主
+export const updateInventorymoveRequestMain = async (data: InventorymoveRequestMainVO) => {
+ return await request.put({ url: `/wms/inventorymove-request-main/update`, data })
+}
+
+// 删除库存转移申请主
+export const deleteInventorymoveRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/inventorymove-request-main/delete?id=` + id })
+}
+
+// 导出库存转移申请主 Excel
+export const exportInventorymoveRequestMain = async (params) => {
+ params.businessType = 'Move'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-request-main/export-excel`, params })
+ }
+}
+
+// 导出合格转隔离申请主 Excel
+export const exportOkToHoldRequestMain = async (params) => {
+ params.businessType = 'OkToHold'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-request-main/export-excel`, params })
+ }
+}
+
+// 导出隔离转合格申请主 Excel
+export const exportHoldToOkRequestMain = async (params) => {
+ params.businessType = 'HoldToOk'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-request-main/export-excel`, params })
+ }
+}
+
+export const exportHoldToWipRequestMain = async (params) => {
+ params.businessType = 'HoldToWip'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-request-main/export-excel`, params })
+ }
+}
+
+// 导出隔离转报废申请主 Excel
+export const exportHoldToScrapRequestMain = async (params) => {
+ params.businessType = 'HoldToScrap'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-request-main/export-excel`, params })
+ }
+}
+
+// 导出合格转报废申请主 Excel
+export const exportOkToScrapRequestMain = async (params) => {
+ params.businessType = 'OkToScrap'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-request-main/export-excel`, params })
+ }
+}
+
+// 导出报废转隔离申请主 Excel
+export const exportScrapToHoldRequestMain = async (params) => {
+ params.businessType = 'ScrapToHold'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/inventorymove-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/inventorymove-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+// 下载用户导入模板(除库存移动外)
+export const importTemplate = () => {
+ return request.download({ url: '/wms/inventorymove-request-main/get-import-template' })
+}
+export const importTemplateHoldOk = () => {
+ return request.download({ url: '/wms/inventorymove-request-main/get-import-template-hold-ok' })
+}
+export const importTemplateExceptMove = () => {
+ return request.download({ url: '/wms/inventorymove-request-main/get-import-template-exceptMove' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/inventorymove-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/inventorymove-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/inventorymove-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/inventorymove-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/inventorymove-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/inventorymove-request-main/handle?id=' + id })
+}
diff --git a/src/api/wms/invoicingcalendar/index.ts b/src/api/wms/invoicingcalendar/index.ts
new file mode 100644
index 0000000..fe8ee7e
--- /dev/null
+++ b/src/api/wms/invoicingcalendar/index.ts
@@ -0,0 +1,54 @@
+import request from '@/config/axios'
+
+export interface InvoicingcalendarVO {
+ id: number
+ beginDay: string
+ endDay: string
+ descriiption: string
+ available: string
+ remark: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询开票日历列表
+export const getInvoicingcalendarPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/invoicingcalendar/senior', data })
+ } else {
+ return await request.get({ url: `/wms/invoicingcalendar/page`, params })
+ }
+}
+
+// 查询开票日历详情
+export const getInvoicingcalendar = async (id: number) => {
+ return await request.get({ url: `/wms/invoicingcalendar/get?id=` + id })
+}
+
+// 新增开票日历
+export const createInvoicingcalendar = async (data: InvoicingcalendarVO) => {
+ return await request.post({ url: `/wms/invoicingcalendar/create`, data })
+}
+
+// 修改开票日历
+export const updateInvoicingcalendar = async (data: InvoicingcalendarVO) => {
+ return await request.put({ url: `/wms/invoicingcalendar/update`, data })
+}
+
+// 删除开票日历
+export const deleteInvoicingcalendar = async (id: number) => {
+ return await request.delete({ url: `/wms/invoicingcalendar/delete?id=` + id })
+}
+
+// 导出开票日历 Excel
+export const exportInvoicingcalendar = async (params) => {
+ return await request.download({ url: `/wms/invoicingcalendar/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/invoicingcalendar/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/issueJobDetail/index.ts b/src/api/wms/issueJobDetail/index.ts
new file mode 100644
index 0000000..ab43085
--- /dev/null
+++ b/src/api/wms/issueJobDetail/index.ts
@@ -0,0 +1,71 @@
+import request from '@/config/axios'
+
+export interface IssueJobDetailVO {
+ productionLineCode: string
+ workStationCode: string
+ inventoryStatus: string
+ onTheWayLocationCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ toLocationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ packQty: number
+ packUnit: string
+ supplierQty: number
+ supplierUom: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询发料任务子列表
+export const getIssueJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/issue-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/issue-job-detail/page`, params })
+ }
+}
+
+// 查询发料任务子详情
+export const getIssueJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/issue-job-detail/get?id=` + id })
+}
+
+// 新增发料任务子
+export const createIssueJobDetail = async (data: IssueJobDetailVO) => {
+ return await request.post({ url: `/wms/issue-job-detail/create`, data })
+}
+
+// 修改发料任务子
+export const updateIssueJobDetail = async (data: IssueJobDetailVO) => {
+ return await request.put({ url: `/wms/issue-job-detail/update`, data })
+}
+
+// 删除发料任务子
+export const deleteIssueJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/issue-job-detail/delete?id=` + id })
+}
+
+// 导出发料任务子 Excel
+export const exportIssueJobDetail = async (params) => {
+ return await request.download({ url: `/wms/issue-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/issue-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/issueJobMain/index.ts b/src/api/wms/issueJobMain/index.ts
new file mode 100644
index 0000000..0ae3e11
--- /dev/null
+++ b/src/api/wms/issueJobMain/index.ts
@@ -0,0 +1,110 @@
+import request from '@/config/axios'
+
+export interface IssueJobMainVO {
+ requestNumber: string
+ workShopCode: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserName: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ useOnTheWayLocation: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyPackingNumber: string
+ allowModifyBatch: string
+}
+
+// 查询发料任务主列表
+export const getIssueJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/issue-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/issue-job-main/page`, params })
+ }
+}
+
+// 查询发料任务主详情
+export const getIssueJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/issue-job-main/get?id=` + id })
+}
+
+// 新增发料任务主
+export const createIssueJobMain = async (data: IssueJobMainVO) => {
+ return await request.post({ url: `/wms/issue-job-main/create`, data })
+}
+
+// 修改发料任务主
+export const updateIssueJobMain = async (data: IssueJobMainVO) => {
+ return await request.put({ url: `/wms/issue-job-main/update`, data })
+}
+
+// 删除发料任务主
+export const deleteIssueJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/issue-job-main/delete?id=` + id })
+}
+
+// 导出发料任务主 Excel
+export const exportIssueJobMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/issue-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/issue-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/issue-job-main/get-import-template' })
+}
+
+// 承接发料任务
+export const acceptIssueMain = async (id) => {
+ return await request.put({ url: `/wms/issue-job-main/accept?id=` + id })
+}
+
+// 放弃发料任务
+export const abandonIssueMain = async (id) => {
+ return await request.put({ url: `/wms/issue-job-main/abandon?id=` + id })
+}
+
+// 关闭发料任务
+export const closeIssueMain = async (id) => {
+ return await request.put({ url: `/wms/issue-job-main/close?id=` + id })
+}
+
+// 执行发料任务
+export const executeIssueMain = async (data) => {
+ return await request.put({ url: `/wms/issue-job-main/execute`, data})
+}
+
+
diff --git a/src/api/wms/issueRecordDetail/index.ts b/src/api/wms/issueRecordDetail/index.ts
new file mode 100644
index 0000000..ba5498b
--- /dev/null
+++ b/src/api/wms/issueRecordDetail/index.ts
@@ -0,0 +1,77 @@
+import request from '@/config/axios'
+
+export interface IssueRecordDetailVO {
+ productionLineCode: string
+ workStationCode: string
+ onTheWayLocationCode: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ toOwnerCode: string
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ fromBatch: string
+ toBatch: string
+ fromLocationCode: string
+ toLocationCode: string
+ fromLocationGroupCode: string
+ toLocationGroupCode: string
+ fromAreaCode: string
+ toAreaCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+
+// 查询发料记录子列表
+export const getIssueRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/issue-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/issue-record-detail/page`, params })
+ }
+}
+
+// 查询发料记录子详情
+export const getIssueRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/issue-record-detail/get?id=` + id })
+}
+
+// 新增发料记录子
+export const createIssueRecordDetail = async (data: IssueRecordDetailVO) => {
+ return await request.post({ url: `/wms/issue-record-detail/create`, data })
+}
+
+// 修改发料记录子
+export const updateIssueRecordDetail = async (data: IssueRecordDetailVO) => {
+ return await request.put({ url: `/wms/issue-record-detail/update`, data })
+}
+
+// 删除发料记录子
+export const deleteIssueRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/issue-record-detail/delete?id=` + id })
+}
+
+// 导出发料记录子 Excel
+export const exportIssueRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/issue-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/issue-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/issueRecordMain/index.ts b/src/api/wms/issueRecordMain/index.ts
new file mode 100644
index 0000000..6348932
--- /dev/null
+++ b/src/api/wms/issueRecordMain/index.ts
@@ -0,0 +1,75 @@
+import request from '@/config/axios'
+
+export interface IssueRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ workshopCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ useOnTheWayLocation: string
+ available: string
+}
+
+// 查询发料记录主列表
+export const getIssueRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/issue-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/issue-record-main/page`, params })
+ }
+}
+
+// 查询发料记录主详情
+export const getIssueRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/issue-record-main/get?id=` + id })
+}
+
+// 新增发料记录主
+export const createIssueRecordMain = async (data: IssueRecordMainVO) => {
+ return await request.post({ url: `/wms/issue-record-main/create`, data })
+}
+
+// 修改发料记录主
+export const updateIssueRecordMain = async (data: IssueRecordMainVO) => {
+ return await request.put({ url: `/wms/issue-record-main/update`, data })
+}
+
+// 删除发料记录主
+export const deleteIssueRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/issue-record-main/delete?id=` + id })
+}
+
+// 导出发料记录主 Excel
+export const exportIssueRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/issue-record-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/issue-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/issue-record-main/get-import-template' })
+}
diff --git a/src/api/wms/issueRequestDetail/index.ts b/src/api/wms/issueRequestDetail/index.ts
new file mode 100644
index 0000000..19ce656
--- /dev/null
+++ b/src/api/wms/issueRequestDetail/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface IssueRequestDetailVO {
+ productionLineCode: string
+ workStationCode: string
+ inventoryStatus: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ toLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询发料申请子列表
+export const getIssueRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/issue-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/issue-request-detail/page`, params })
+ }
+}
+
+// 查询发料申请子详情
+export const getIssueRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/issue-request-detail/get?id=` + id })
+}
+
+// 新增发料申请子
+export const createIssueRequestDetail = async (data: IssueRequestDetailVO) => {
+ return await request.post({ url: `/wms/issue-request-detail/create`, data })
+}
+
+// 修改发料申请子
+export const updateIssueRequestDetail = async (data: IssueRequestDetailVO) => {
+ return await request.put({ url: `/wms/issue-request-detail/update`, data })
+}
+
+// 删除发料申请子
+export const deleteIssueRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/issue-request-detail/delete?id=` + id })
+}
+
+// 导出发料申请子 Excel
+export const exportIssueRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/issue-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/issue-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/issueRequestMain/index.ts b/src/api/wms/issueRequestMain/index.ts
new file mode 100644
index 0000000..b319da3
--- /dev/null
+++ b/src/api/wms/issueRequestMain/index.ts
@@ -0,0 +1,111 @@
+import request from '@/config/axios'
+
+export interface IssueRequestMainVO {
+ workshopCode: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ useOnTheWayLocation: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询发料申请主列表
+export const getIssueRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/issue-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/issue-request-main/page`, params })
+ }
+}
+
+// 查询发料申请主详情
+export const getIssueRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/issue-request-main/get?id=` + id })
+}
+
+// 新增发料申请主
+export const createIssueRequestMain = async (data: IssueRequestMainVO) => {
+ return await request.post({ url: `/wms/issue-request-main/create`, data })
+}
+
+// 新增PDA发料申请主
+export const createIssueRequestMainSetInterval = async (data: IssueRequestMainVO) => {
+ return await request.post({ url: `/wms/issue-request-main/createPDA`, data })
+}
+
+// 修改发料申请主
+export const updateIssueRequestMain = async (data: IssueRequestMainVO) => {
+ return await request.put({ url: `/wms/issue-request-main/update`, data })
+}
+
+// 删除发料申请主
+export const deleteIssueRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/issue-request-main/delete?id=` + id })
+}
+// 获取默认包装规格
+export const getPackUnit = async (data) => {
+ return await request.post({ url: `/wms/issue-request-main/getPackUnit`, data })
+}
+// 导出发料申请主 Excel
+export const exportIssueRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/issue-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/issue-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/issue-request-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/issue-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/issue-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/issue-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/issue-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/issue-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/issue-request-main/handle?id=' + id })
+}
diff --git a/src/api/wms/itemarea/index.ts b/src/api/wms/itemarea/index.ts
new file mode 100644
index 0000000..bf49737
--- /dev/null
+++ b/src/api/wms/itemarea/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface ItemareaVO {
+ id: number
+ itemCode: string
+ areaCode: string
+ inPackUnit: string
+ outPackUnit: string
+ maxQty: number
+ minQty: number
+ safeQty: number
+ autoRepleinsh: string
+ repleinshFromArea: string
+ repleinshQty: number
+ needReceive: string
+ available: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ manageMode: string
+ newlyToOutpackunit: string
+ surplusToOutpackunit: string
+}
+
+// 查询物料库区配置列表
+export const getItemareaPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/itemarea/senior', data })
+ } else {
+ return await request.get({ url: `/wms/itemarea/page`, params })
+ }
+}
+
+// 查询物料库区配置详情
+export const getItemarea = async (id: number) => {
+ return await request.get({ url: `/wms/itemarea/get?id=` + id })
+}
+
+// 新增物料库区配置
+export const createItemarea = async (data: ItemareaVO) => {
+ return await request.post({ url: `/wms/itemarea/create`, data })
+}
+
+// 修改物料库区配置
+export const updateItemarea = async (data: ItemareaVO) => {
+ return await request.put({ url: `/wms/itemarea/update`, data })
+}
+
+// 删除物料库区配置
+export const deleteItemarea = async (id: number) => {
+ return await request.delete({ url: `/wms/itemarea/delete?id=` + id })
+}
+
+// 导出物料库区配置 Excel
+export const exportItemarea = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/itemarea/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/itemarea/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/itemarea/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/itemareaDetail/index.ts b/src/api/wms/itemareaDetail/index.ts
new file mode 100644
index 0000000..1b0cfcd
--- /dev/null
+++ b/src/api/wms/itemareaDetail/index.ts
@@ -0,0 +1,50 @@
+import request from '@/config/axios'
+
+export interface ItemareaDetailVO {
+ id: number
+ masterId: number
+ remark: string
+ locationGroup: string
+ locationCode: string
+}
+
+// 查询物料库区配置表子列表
+export const getItemareaDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/itemarea-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/itemarea-detail/page`, params })
+ }
+}
+
+// 查询物料库区配置表子详情
+export const getItemareaDetail = async (id: number) => {
+ return await request.get({ url: `/wms/itemarea-detail/get?id=` + id })
+}
+
+// 新增物料库区配置表子
+export const createItemareaDetail = async (data: ItemareaDetailVO) => {
+ return await request.post({ url: `/wms/itemarea-detail/create`, data })
+}
+
+// 修改物料库区配置表子
+export const updateItemareaDetail = async (data: ItemareaDetailVO) => {
+ return await request.put({ url: `/wms/itemarea-detail/update`, data })
+}
+
+// 删除物料库区配置表子
+export const deleteItemareaDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/itemarea-detail/delete?id=` + id })
+}
+
+// 导出物料库区配置表子 Excel
+export const exportItemareaDetail = async (params) => {
+ return await request.download({ url: `/wms/itemarea-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/itemarea-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/itembasic/index.ts b/src/api/wms/itembasic/index.ts
new file mode 100644
index 0000000..5256121
--- /dev/null
+++ b/src/api/wms/itembasic/index.ts
@@ -0,0 +1,127 @@
+import request from '@/config/axios'
+
+export interface ItembasicVO {
+ code: string
+ name: string
+ desc1: string
+ desc2: string
+ status: string
+ uom: string
+ altUom: string
+ isStdPack: number
+ enableBuy: number
+ enableMake: number
+ enableOutsourcing: number
+ isRecycled: number
+ isPhantom: number
+ abcClass: string
+ type: string
+ category: string
+ itemGroup: string
+ color: string
+ configuration: string
+ project: string
+ eqLevel: string
+ validityDays: number
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询物料基本信息列表
+export const getItembasicPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/itembasic/senior', data })
+ } else {
+ return await request.get({ url: `/wms/itembasic/page`, params })
+ }
+}
+// 查询物料基本信息列表
+export const getItembasicList = async (params) => {
+ return await request.get({ url: `/wms/itembasic/list`, params })
+}
+// 查询物料基本信息详情
+export const getItembasic = async (id: number) => {
+ return await request.get({ url: `/wms/itembasic/get?id=` + id })
+}
+
+// 新增物料基本信息
+export const createItembasic = async (data: ItembasicVO) => {
+ return await request.post({ url: `/wms/itembasic/create`, data })
+}
+
+// 修改物料基本信息
+export const updateItembasic = async (data: ItembasicVO) => {
+ return await request.put({ url: `/wms/itembasic/update`, data })
+}
+
+// 删除物料基本信息
+export const deleteItembasic = async (id: number) => {
+ return await request.delete({ url: `/wms/itembasic/delete?id=` + id })
+}
+
+// 导出物料基本信息 Excel
+export const exportItembasic = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/itembasic/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/itembasic/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/itembasic/get-import-template' })
+}
+// 导入地址
+export const importUrl = '/wms/itembasic/import'
+
+// 查询物料类型为成品/半成品的信息列表
+export const selectItembasicPageToFgAndSemibasicPage = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return request.post({ url: '/wms/itembasic/itembasicPageToFgAndSemiSenior', data })
+ } else {
+ return await request.get({ url: `/wms/itembasic/itembasicPageToFgAndSemi`, params })
+ }
+}
+
+// 查询物料类型为原料/半成品的信息列表
+export const selectTypeToItembasic = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return request.post({ url: '/wms/itembasic/pageTypeToItembasicSenior', data })
+ } else {
+ return await request.get({ url: `/wms/itembasic/pageTypeToItembasic`, params })
+ }
+}
+
+// 查询物料类型为器具的信息列表
+export const selectConfigToItembasic = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return request.post({ url: '/wms/itembasic/pageConfigToItembasicSenior', data })
+ } else {
+ return await request.get({ url: `/wms/itembasic/pageConfigToItembasic`, params })
+ }
+}
+
+// 根据物料代码查计量单位
+export const getQueryItemCodeInfo = async (data) => {
+ return await request.post({ url: 'wms/itembasic/queryItemCodeInfo', data })
+}
+// 根据code获取数据列表
+export const getItemListByCodes = async (params) => {
+ return await request.get({ url: `/wms/itembasic/listByCodes`,params})
+}
+
+// 根据cood查询器具物料信息
+export const selectContainermanageItemCode = async (params) => {
+ const code = params.codes
+ console.log(2344,code)
+ return await request.get({ url: `/wms/itembasic/selectContainermanageItemCode?code=${code}`})
+}
diff --git a/src/api/wms/itempackage/index.ts b/src/api/wms/itempackage/index.ts
new file mode 100644
index 0000000..9fa24c8
--- /dev/null
+++ b/src/api/wms/itempackage/index.ts
@@ -0,0 +1,122 @@
+import request from '@/config/axios'
+
+export interface ItempackagingVO {
+ itemCode: string
+ uom: string
+ packUnit: string
+ packQty: number
+ altPackUnit1: string
+ altPackQty1: number
+ altPackUnit2: string
+ altPackQty2: number
+ altPackUnit3: string
+ altPackQty3: number
+ altPackUnit4: string
+ altPackQty4: number
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询物料包装信息 列表
+export const getItempackagingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/itempackage/senior', data })
+ } else {
+ return await request.get({ url: `/wms/itempackage/page`, params })
+ }
+}
+// 查询物料包装信息树形列表
+export const getItempackagingPageTree = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/itempackage/seniorTree', data })
+ } else {
+ return await request.get({ url: `/wms/itempackage/pageTree`, params })
+ }
+}
+// 查询物料包装信息树形列表
+export const getItempackagingPageTreeSCP = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/itempackage/seniorTreeSCP', data })
+ } else {
+ return await request.get({ url: `/wms/itempackage/pageTreeSCP`, params })
+ }
+}
+// 查询物料包装信息 列表--供应商发货申请
+export const getItempackagingPageBySupplierdeliver = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/itempackage/seniorBySupplierdeliver', data })
+ } else {
+ return await request.get({ url: `/wms/itempackage/pageBySupplierdeliver`, params })
+ }
+}
+
+// 查询物料包装信息 列表--客户退货申请
+export const getItempackagingPageByCustomerreturn = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/itempackage/seniorByCustomerreturn', data })
+ } else {
+ return await request.get({ url: `/wms/itempackage/pageByCustomerreturn`, params })
+ }
+}
+
+// 查询物料包装信息 列表--制品收货申请
+export const getItempackagingPageByProductreceipt = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/itempackage/seniorByProductreceipt', data })
+ } else {
+ return await request.get({ url: `/wms/itempackage/pageByProductreceipt`, params })
+ }
+}
+
+
+// 查询物料包装信息 详情
+export const getItempackaging = async (id: number) => {
+ return await request.get({ url: `/wms/itempackage/get?id=` + id })
+}
+
+// 新增物料包装信息
+export const createItempackaging = async (data: ItempackagingVO) => {
+ return await request.post({ url: `/wms/itempackage/create`, data })
+}
+
+// 修改物料包装信息
+export const updateItempackaging = async (data: ItempackagingVO) => {
+ return await request.put({ url: `/wms/itempackage/update`, data })
+}
+
+// 删除物料包装信息
+export const deleteItempackaging = async (id: number) => {
+ return await request.delete({ url: `/wms/itempackage/delete?id=` + id })
+}
+
+// 导出物料包装信息 Excel
+export const exportItempackaging = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/itempackage/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/itempackage/export-excel`, params })
+ }
+}
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/itempackage/get-import-template' })
+}
+// 根据code获取数据列表
+export const getItemPackageunitListByCodes = async (data) => {
+ return await request.get({ url: `/wms/itempackage/listByCodes?itemCode=` + data.itemCode + '&packUnit='+data.packUnit})
+}
diff --git a/src/api/wms/itemwarehouse/index.ts b/src/api/wms/itemwarehouse/index.ts
new file mode 100644
index 0000000..85ea4ba
--- /dev/null
+++ b/src/api/wms/itemwarehouse/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface ItemwarehouseVO {
+ id: number
+ itemCode: string
+ warehouseCode: string
+ manageMode: string
+ packUnit: string
+ available: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询物料仓库默认配置列表
+export const getItemwarehousePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/itemwarehouse/senior', data })
+ } else {
+ return await request.get({ url: `/wms/itemwarehouse/page`, params })
+ }
+}
+
+// 查询物料仓库默认配置详情
+export const getItemwarehouse = async (id: number) => {
+ return await request.get({ url: `/wms/itemwarehouse/get?id=` + id })
+}
+
+// 新增物料仓库默认配置
+export const createItemwarehouse = async (data: ItemwarehouseVO) => {
+ return await request.post({ url: `/wms/itemwarehouse/create`, data })
+}
+
+// 修改物料仓库默认配置
+export const updateItemwarehouse = async (data: ItemwarehouseVO) => {
+ return await request.put({ url: `/wms/itemwarehouse/update`, data })
+}
+
+// 删除物料仓库默认配置
+export const deleteItemwarehouse = async (id: number) => {
+ return await request.delete({ url: `/wms/itemwarehouse/delete?id=` + id })
+}
+
+// 导出物料仓库默认配置 Excel
+export const exportItemwarehouse = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/itemwarehouse/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/itemwarehouse/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/itemwarehouse/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/jobsetting/index.ts b/src/api/wms/jobsetting/index.ts
new file mode 100644
index 0000000..c7807e0
--- /dev/null
+++ b/src/api/wms/jobsetting/index.ts
@@ -0,0 +1,62 @@
+import request from '@/config/axios'
+
+export interface JobsettingVO {
+ code: string
+ validMinutes: number
+ activeTime: Date
+ remark: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBach: string
+ allowModifyPackingNumber: string
+ available: string
+ isSoftDeleted: string
+ expireTime: Date
+}
+
+// 查询任务设置列表
+export const getJobsettingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/jobsetting/senior', data })
+ } else {
+ return await request.get({ url: `/wms/jobsetting/page`, params })
+ }
+}
+
+// 查询任务设置详情
+export const getJobsetting = async (id: number) => {
+ return await request.get({ url: `/wms/jobsetting/get?id=` + id })
+}
+
+// 新增任务设置
+export const createJobsetting = async (data: JobsettingVO) => {
+ return await request.post({ url: `/wms/jobsetting/create`, data })
+}
+
+// 修改任务设置
+export const updateJobsetting = async (data: JobsettingVO) => {
+ return await request.put({ url: `/wms/jobsetting/update`, data })
+}
+
+// 删除任务设置
+export const deleteJobsetting = async (id: number) => {
+ return await request.delete({ url: `/wms/jobsetting/delete?id=` + id })
+}
+
+// 导出任务设置 Excel
+export const exportJobsetting = async (params) => {
+ return await request.download({ url: `/wms/jobsetting/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/jobsetting/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/labeltype/index.ts b/src/api/wms/labeltype/index.ts
new file mode 100644
index 0000000..148a1b9
--- /dev/null
+++ b/src/api/wms/labeltype/index.ts
@@ -0,0 +1,58 @@
+import request from '@/config/axios'
+
+export interface LabeltypeVO {
+ id: number
+ labelType: string
+ description: string
+ dataProtocol: string
+ splitMehod: string
+ header: string
+ version: string
+ separators: string
+ validateMethod: string
+ validateNumber: number
+ encyptEthod: string
+ compressMethod: string
+ templateName: string
+ templateFile: string
+ barcodeSegments: string
+ labelCode: string
+ isEncypt: string
+ isCompress: string
+}
+
+// 查询标签定义列表
+export const getLabeltypePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/labeltype/senior', data })
+ } else {
+ return await request.get({ url: `/wms/labeltype/page`, params })
+ }
+}
+
+// 查询标签定义详情
+export const getLabeltype = async (id: number) => {
+ return await request.get({ url: `/wms/labeltype/get?id=` + id })
+}
+
+// 新增标签定义
+export const createLabeltype = async (data: LabeltypeVO) => {
+ return await request.post({ url: `/wms/labeltype/create`, data })
+}
+
+// 修改标签定义
+export const updateLabeltype = async (data: LabeltypeVO) => {
+ return await request.put({ url: `/wms/labeltype/update`, data })
+}
+
+// 删除标签定义
+export const deleteLabeltype = async (id: number) => {
+ return await request.delete({ url: `/wms/labeltype/delete?id=` + id })
+}
+
+// 导出标签定义 Excel
+export const exportLabeltype = async (params) => {
+ return await request.download({ url: `/wms/labeltype/export-excel`, params })
+}
diff --git a/src/api/wms/location/index.ts b/src/api/wms/location/index.ts
new file mode 100644
index 0000000..4cde269
--- /dev/null
+++ b/src/api/wms/location/index.ts
@@ -0,0 +1,171 @@
+import request from '@/config/axios'
+
+export interface LocationVO {
+ code: string
+ name: string
+ description: string
+ warehouseCode: string
+ areaCode: string
+ locationGroupCode: string
+ erpLocationCode: string
+ type: string
+ aisle: string
+ shelf: string
+ locationRow: number
+ locationColum: number
+ pickPriority: number
+ maxWeight: number
+ maxArea: number
+ maxVolume: number
+ userGroupCode: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询库位列表
+export const getLocationPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/location/senior', data })
+ } else {
+ return await request.get({ url: `/wms/location/page`, params })
+ }
+}
+// 校验库位
+export const verifyLocation = async (params) => {
+ return await request.get({ url: `/wms/location/listLocationByCode`, params })
+}
+export const getLocationMPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/location/Msenior', data })
+ } else {
+ return await request.get({ url: `/wms/location/Mpage`, params })
+ }
+}
+
+export const getLocationPageRepleinsh = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/location/getForRepleinshSenior', data })
+ } else {
+ return await request.get({ url: `/wms/location/pageForRepleinsh`, params })
+ }
+}
+// 查询库位所有列表
+export const getLocationList = async (params) => {
+ return await request.get({ url: `/wms/location/list`, params })
+}
+
+// 查询库位详情
+export const getLocation = async (id: number) => {
+ return await request.get({ url: `/wms/location/get?id=` + id })
+}
+
+// 新增库位
+export const createLocation = async (data: LocationVO) => {
+ return await request.post({ url: `/wms/location/create`, data })
+}
+
+// 修改库位
+export const updateLocation = async (data: LocationVO) => {
+ return await request.put({ url: `/wms/location/update`, data })
+}
+
+// 删除库位
+export const deleteLocation = async (id: number) => {
+ return await request.delete({ url: `/wms/location/delete?id=` + id })
+}
+
+// 根据业务类型以及库区查询库位列表
+export const getLocationListByAreaAndBusinesstype = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/location/pageBusinessTypeToLocationSenior1', data })
+ } else {
+ return await request.get({ url: `/wms/location/pageBusinessTypeToLocation1`, params })
+ }
+}
+
+// 导出库位 Excel
+export const exportLocation = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/location/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/location/export-excel`, params })
+ }
+
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/location/get-import-template' })
+}
+
+export const selectBusinessTypeToLocation = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/location/pageBusinessTypeToLocationSenior', data })
+ } else {
+ return request.get({ url: `/wms/location/pageBusinessTypeToLocation`, params })
+ }
+}
+
+export const selectBusinessTypeOutLocation = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/location/pageBusinessTypeOutLocationSenior', data })
+ } else {
+ return request.get({ url: `/wms/location/pageBusinessTypeOutLocation`, params })
+ }
+}
+export const selectBusinessTypeOutLocationAll = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/location/pageBusinessTypeOutLocationSeniorAll', data })
+ } else {
+ return request.get({ url: `/wms/location/pageBusinessTypeOutLocationAll`, params })
+ }
+}
+
+
+export const selectPageItemAreaToLocation = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/location/pageItemAreaToLocationSenior', data })
+ } else {
+ return request.get({ url: `/wms/location/pageItemAreaToLocation`, params })
+ }
+}
+
+
+export const selectConfigToLocation = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/location/pageConfigToLocationSenior', data })
+ } else {
+ return request.get({ url: `/wms/location/pageConfigToLocation`, params })
+ }
+}
+// 根据code获取数据列表
+export const getLocationByCodes = async (params) => {
+ return await request.get({ url: `/wms/location/listByCodes`, params })
+}
+
+
+// 查询库位组列表
+export const getLocationByOverflowAreaTypeByConfig = async (params) => {
+ return await request.get({ url: `/wms/location/queryLocationByOverflowAreaTypeByConfig`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/locationcapacity/index.ts b/src/api/wms/locationcapacity/index.ts
new file mode 100644
index 0000000..38d7039
--- /dev/null
+++ b/src/api/wms/locationcapacity/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface LocationcapacityVO {
+ locationCode: string
+ warehouseCode: string
+ usedCapacity: number
+ availableCapacity: number
+ bearableOverloadCapacity: number
+ isInfinity: string
+}
+
+// 查询库位容量列表
+export const getLocationcapacityPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/locationcapacity/senior', data })
+ } else {
+ return await request.get({ url: `/wms/locationcapacity/page`, params })
+ }
+}
+
+// 查询库位容量详情
+export const getLocationcapacity = async (id: number) => {
+ return await request.get({ url: `/wms/locationcapacity/get?id=` + id })
+}
+
+// 新增库位容量
+export const createLocationcapacity = async (data: LocationcapacityVO) => {
+ return await request.post({ url: `/wms/locationcapacity/create`, data })
+}
+
+// 修改库位容量
+export const updateLocationcapacity = async (data: LocationcapacityVO) => {
+ return await request.put({ url: `/wms/locationcapacity/update`, data })
+}
+
+// 删除库位容量
+export const deleteLocationcapacity = async (id: number) => {
+ return await request.delete({ url: `/wms/locationcapacity/delete?id=` + id })
+}
+
+// 导出库位容量 Excel
+export const exportLocationcapacity = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/locationcapacity/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/locationcapacity/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/locationcapacity/get-import-template' })
+}
diff --git a/src/api/wms/locationgroup/index.ts b/src/api/wms/locationgroup/index.ts
new file mode 100644
index 0000000..7e84e6c
--- /dev/null
+++ b/src/api/wms/locationgroup/index.ts
@@ -0,0 +1,72 @@
+import request from '@/config/axios'
+
+export interface LocationgroupVO {
+ code: string
+ name: string
+ description: string
+ warehouseCode: string
+ areaCode: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询库位组列表
+export const getLocationgroupPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/locationgroup/senior', data })
+ } else {
+ return await request.get({ url: `/wms/locationgroup/page`, params })
+ }
+}
+// 校验库位组
+export const verifyLocationgroup = async (params) => {
+ return await request.get({ url: `/wms/locationgroup/ListByCode`, params })
+}
+// 查询库位组列表
+export const getLocationgroupList = async (params) => {
+ return await request.get({ url: `/wms/locationgroup/list`, params })
+}
+
+// 查询库位组详情
+export const getLocationgroup = async (id: number) => {
+ return await request.get({ url: `/wms/locationgroup/get?id=` + id })
+}
+
+// 新增库位组
+export const createLocationgroup = async (data: LocationgroupVO) => {
+ return await request.post({ url: `/wms/locationgroup/create`, data })
+}
+
+// 修改库位组
+export const updateLocationgroup = async (data: LocationgroupVO) => {
+ return await request.put({ url: `/wms/locationgroup/update`, data })
+}
+
+// 删除库位组
+export const deleteLocationgroup = async (id: number) => {
+ return await request.delete({ url: `/wms/locationgroup/delete?id=` + id })
+}
+
+// 导出库位组 Excel
+export const exportLocationgroup = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/locationgroup/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/locationgroup/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/locationgroup/get-import-template' })
+}
+
+// 根据code获取数据列表
+export const getLocationgroupByCodes = async (params) => {
+ return await request.get({ url: `/wms/locationgroup/listByCodes`, params })
+}
diff --git a/src/api/wms/mesBarCode/index.ts b/src/api/wms/mesBarCode/index.ts
new file mode 100644
index 0000000..4d1e9b9
--- /dev/null
+++ b/src/api/wms/mesBarCode/index.ts
@@ -0,0 +1,71 @@
+import request from '@/config/axios'
+
+export interface MesBarCodeVO {
+ id: number
+ plat: number
+ counter: string
+ sign: string
+ option: string
+ lowerLim: string
+ upperLimit: string
+ itac: string
+ type: string
+ lengthBc: number
+ posMat: string
+ lengthMat: number
+ posRevlv: string
+ partNumber: string
+ packLabel: string
+ oesLabel: string
+ checkRvl: string
+ days: number
+ available: string
+ remark: string
+}
+
+// 查询生产条码清单列表
+export const getMesBarCodePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/mes-bar-code/senior', data })
+ } else {
+ return await request.get({ url: `/wms/mes-bar-code/page`, params })
+ }
+}
+
+// 查询生产条码清单详情
+export const getMesBarCode = async (id: number) => {
+ return await request.get({ url: `/wms/mes-bar-code/get?id=` + id })
+}
+
+// 新增生产条码清单
+export const createMesBarCode = async (data: MesBarCodeVO) => {
+ return await request.post({ url: `/wms/mes-bar-code/create`, data })
+}
+
+// 修改生产条码清单
+export const updateMesBarCode = async (data: MesBarCodeVO) => {
+ return await request.put({ url: `/wms/mes-bar-code/update`, data })
+}
+
+// 删除生产条码清单
+export const deleteMesBarCode = async (id: number) => {
+ return await request.delete({ url: `/wms/mes-bar-code/delete?id=` + id })
+}
+
+// 导出生产条码清单 Excel
+export const exportMesBarCode = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/mes-bar-code/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/mes-bar-code/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/mes-bar-code/get-import-template' })
+}
diff --git a/src/api/wms/mesRawMaterialConsumptionInfo/index.ts b/src/api/wms/mesRawMaterialConsumptionInfo/index.ts
new file mode 100644
index 0000000..dac9236
--- /dev/null
+++ b/src/api/wms/mesRawMaterialConsumptionInfo/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+
+export const AssemblyFinishedMaterialConsumptionMesRespVO = {
+ finishPackingNumber: '',
+ finishBatch: '',
+ finishItemCode: '',
+ finishCreateTime: new Date(),
+ id: 0,
+ processCode: '',
+ bomVersion: '',
+ packingNumber: '',
+ batch: '',
+ inventoryStatus: '',
+ fromLocationCode: '',
+ fromLocationGroupCode: '',
+ fromAreaCode: '',
+ itemName: '',
+ itemDesc1: '',
+ itemDesc2: '',
+ projectCode: '',
+ qty: '',
+ uom: '',
+ number: '',
+ itemCode: '',
+ remark: '',
+ createTime: new Date(),
+ creator: '',
+ code: '',
+ interfaceType: '',
+ jobDetailId: ''
+};
+
+
+// 查询QAD项目信息列表
+export const getMesRawMaterialConsumptionInfoPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-detailb/getAssemblyMaterialUsageMesSenior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-detailb/getAssemblyMaterialUsageMes`, params })
+ }
+}
+
+
+
+export const exportAssemblyMaterialUsageMes = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productreceipt-detailb/getAssemblyMaterialUsageMesSeniorExport`, data })
+ }else{
+ return await request.download({ url: `/wms/productreceipt-detailb/assemblyMaterialUsageMesExport`, params })
+ }
+}
+
+
+
+
+
+
diff --git a/src/api/wms/mstr/index.ts b/src/api/wms/mstr/index.ts
new file mode 100644
index 0000000..f34bc2a
--- /dev/null
+++ b/src/api/wms/mstr/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface MstrVO {
+ id: number
+ hflccHflcd: string
+ plProdLine: string
+ plDesc: string
+ plMvarAcct: string
+ plCchgAcct: string
+ type: string
+ remark: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询产品类信息列表
+export const getMstrPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/mstr/senior', data })
+ } else {
+ return await request.get({ url: `/wms/mstr/page`, params })
+ }
+}
+
+// 查询产品类信息详情
+export const getMstr = async (id: number) => {
+ return await request.get({ url: `/wms/mstr/get?id=` + id })
+}
+
+// 新增产品类信息
+export const createMstr = async (data: MstrVO) => {
+ return await request.post({ url: `/wms/mstr/create`, data })
+}
+
+// 修改产品类信息
+export const updateMstr = async (data: MstrVO) => {
+ return await request.put({ url: `/wms/mstr/update`, data })
+}
+
+// 删除产品类信息
+export const deleteMstr = async (id: number) => {
+ return await request.delete({ url: `/wms/mstr/delete?id=` + id })
+}
+
+// 导出产品类信息 Excel
+export const exportMstr = async (params) => {
+ return await request.download({ url: `/wms/mstr/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/mstr/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/offlinesettlementRecordDetail/index.ts b/src/api/wms/offlinesettlementRecordDetail/index.ts
new file mode 100644
index 0000000..b19d564
--- /dev/null
+++ b/src/api/wms/offlinesettlementRecordDetail/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface OfflinesettlementRecordDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ locationCode: string
+ locationGroupCode: string
+ areaCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+}
+
+// 查询下线结算记录子列表
+export const getOfflinesettlementRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/offlinesettlement-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/offlinesettlement-record-detail/page`, params })
+ }
+}
+
+// 查询下线结算记录子详情
+export const getOfflinesettlementRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/offlinesettlement-record-detail/get?id=` + id })
+}
+
+// 新增下线结算记录子
+export const createOfflinesettlementRecordDetail = async (data: OfflinesettlementRecordDetailVO) => {
+ return await request.post({ url: `/wms/offlinesettlement-record-detail/create`, data })
+}
+
+// 修改下线结算记录子
+export const updateOfflinesettlementRecordDetail = async (data: OfflinesettlementRecordDetailVO) => {
+ return await request.put({ url: `/wms/offlinesettlement-record-detail/update`, data })
+}
+
+// 删除下线结算记录子
+export const deleteOfflinesettlementRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/offlinesettlement-record-detail/delete?id=` + id })
+}
+
+// 导出下线结算记录子 Excel
+export const exportOfflinesettlementRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/offlinesettlement-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/offlinesettlement-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/offlinesettlementRecordMain/index.ts b/src/api/wms/offlinesettlementRecordMain/index.ts
new file mode 100644
index 0000000..da771ba
--- /dev/null
+++ b/src/api/wms/offlinesettlementRecordMain/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface OfflinesettlementRecordMainVO {
+ requestNumber: string
+ productReceiptRecordNumber: string
+ warehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ available: string
+}
+
+// 查询下线结算记录主列表
+export const getOfflinesettlementRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/offlinesettlement-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/offlinesettlement-record-main/page`, params })
+ }
+}
+
+// 查询下线结算记录主详情
+export const getOfflinesettlementRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/offlinesettlement-record-main/get?id=` + id })
+}
+
+// 新增下线结算记录主
+export const createOfflinesettlementRecordMain = async (data: OfflinesettlementRecordMainVO) => {
+ return await request.post({ url: `/wms/offlinesettlement-record-main/create`, data })
+}
+
+// 修改下线结算记录主
+export const updateOfflinesettlementRecordMain = async (data: OfflinesettlementRecordMainVO) => {
+ return await request.put({ url: `/wms/offlinesettlement-record-main/update`, data })
+}
+
+// 删除下线结算记录主
+export const deleteOfflinesettlementRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/offlinesettlement-record-main/delete?id=` + id })
+}
+
+// 导出下线结算记录主 Excel
+export const exportOfflinesettlementRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/offlinesettlement-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/offlinesettlement-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/offlinesettlement-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/offlinesettlementRequestDetail/index.ts b/src/api/wms/offlinesettlementRequestDetail/index.ts
new file mode 100644
index 0000000..c4561b4
--- /dev/null
+++ b/src/api/wms/offlinesettlementRequestDetail/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface OfflinesettlementRequestDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ locationCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+}
+
+// 查询下线结算申请子列表
+export const getOfflinesettlementRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/offlinesettlement-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/offlinesettlement-request-detail/page`, params })
+ }
+}
+
+// 查询下线结算申请子详情
+export const getOfflinesettlementRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/offlinesettlement-request-detail/get?id=` + id })
+}
+
+// 新增下线结算申请子
+export const createOfflinesettlementRequestDetail = async (data: OfflinesettlementRequestDetailVO) => {
+ return await request.post({ url: `/wms/offlinesettlement-request-detail/create`, data })
+}
+
+// 修改下线结算申请子
+export const updateOfflinesettlementRequestDetail = async (data: OfflinesettlementRequestDetailVO) => {
+ return await request.put({ url: `/wms/offlinesettlement-request-detail/update`, data })
+}
+
+// 删除下线结算申请子
+export const deleteOfflinesettlementRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/offlinesettlement-request-detail/delete?id=` + id })
+}
+
+// 导出下线结算申请子 Excel
+export const exportOfflinesettlementRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/offlinesettlement-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/offlinesettlement-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/offlinesettlementRequestMain/index.ts b/src/api/wms/offlinesettlementRequestMain/index.ts
new file mode 100644
index 0000000..0dcbb20
--- /dev/null
+++ b/src/api/wms/offlinesettlementRequestMain/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface OfflinesettlementRequestMainVO {
+ productReceiptRecordNumber: string
+ warehouseCode: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询下线结算申请主列表
+export const getOfflinesettlementRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/offlinesettlement-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/offlinesettlement-request-main/page`, params })
+ }
+}
+
+// 查询下线结算申请主详情
+export const getOfflinesettlementRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/offlinesettlement-request-main/get?id=` + id })
+}
+
+// 新增下线结算申请主
+export const createOfflinesettlementRequestMain = async (data: OfflinesettlementRequestMainVO) => {
+ return await request.post({ url: `/wms/offlinesettlement-request-main/create`, data })
+}
+
+// 修改下线结算申请主
+export const updateOfflinesettlementRequestMain = async (data: OfflinesettlementRequestMainVO) => {
+ return await request.put({ url: `/wms/offlinesettlement-request-main/update`, data })
+}
+
+// 删除下线结算申请主
+export const deleteOfflinesettlementRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/offlinesettlement-request-main/delete?id=` + id })
+}
+
+// 导出下线结算申请主 Excel
+export const exportOfflinesettlementRequestMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/offlinesettlement-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/offlinesettlement-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/offlinesettlement-request-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/onlinesettlementRecordDetail/index.ts b/src/api/wms/onlinesettlementRecordDetail/index.ts
new file mode 100644
index 0000000..08eb9d6
--- /dev/null
+++ b/src/api/wms/onlinesettlementRecordDetail/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface OnlinesettlementRecordDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ locationCode: string
+ locationGroupCode: string
+ areaCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+}
+
+// 查询上线结算记录子列表
+export const getOnlinesettlementRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/onlinesettlement-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/onlinesettlement-record-detail/page`, params })
+ }
+}
+
+// 查询上线结算记录子详情
+export const getOnlinesettlementRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/onlinesettlement-record-detail/get?id=` + id })
+}
+
+// 新增上线结算记录子
+export const createOnlinesettlementRecordDetail = async (data: OnlinesettlementRecordDetailVO) => {
+ return await request.post({ url: `/wms/onlinesettlement-record-detail/create`, data })
+}
+
+// 修改上线结算记录子
+export const updateOnlinesettlementRecordDetail = async (data: OnlinesettlementRecordDetailVO) => {
+ return await request.put({ url: `/wms/onlinesettlement-record-detail/update`, data })
+}
+
+// 删除上线结算记录子
+export const deleteOnlinesettlementRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/onlinesettlement-record-detail/delete?id=` + id })
+}
+
+// 导出上线结算记录子 Excel
+export const exportOnlinesettlementRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/onlinesettlement-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/onlinesettlement-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/onlinesettlementRecordMain/index.ts b/src/api/wms/onlinesettlementRecordMain/index.ts
new file mode 100644
index 0000000..31018c0
--- /dev/null
+++ b/src/api/wms/onlinesettlementRecordMain/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface OnlinesettlementRecordMainVO {
+ requestNumber: string
+ issueRecordNumber: string
+ warehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ available: string
+}
+
+// 查询上线结算记录主列表
+export const getOnlinesettlementRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/onlinesettlement-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/onlinesettlement-record-main/page`, params })
+ }
+}
+
+// 查询上线结算记录主详情
+export const getOnlinesettlementRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/onlinesettlement-record-main/get?id=` + id })
+}
+
+// 新增上线结算记录主
+export const createOnlinesettlementRecordMain = async (data: OnlinesettlementRecordMainVO) => {
+ return await request.post({ url: `/wms/onlinesettlement-record-main/create`, data })
+}
+
+// 修改上线结算记录主
+export const updateOnlinesettlementRecordMain = async (data: OnlinesettlementRecordMainVO) => {
+ return await request.put({ url: `/wms/onlinesettlement-record-main/update`, data })
+}
+
+// 删除上线结算记录主
+export const deleteOnlinesettlementRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/onlinesettlement-record-main/delete?id=` + id })
+}
+
+// 导出上线结算记录主 Excel
+export const exportOnlinesettlementRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/onlinesettlement-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/onlinesettlement-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/onlinesettlement-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/onlinesettlementRequestDetail/index.ts b/src/api/wms/onlinesettlementRequestDetail/index.ts
new file mode 100644
index 0000000..b6ccf22
--- /dev/null
+++ b/src/api/wms/onlinesettlementRequestDetail/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface OnlinesettlementRequestDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ locationCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+}
+
+// 查询上线结算申请子列表
+export const getOnlinesettlementRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/onlinesettlement-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/onlinesettlement-request-detail/page`, params })
+ }
+}
+
+// 查询上线结算申请子详情
+export const getOnlinesettlementRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/onlinesettlement-request-detail/get?id=` + id })
+}
+
+// 新增上线结算申请子
+export const createOnlinesettlementRequestDetail = async (data: OnlinesettlementRequestDetailVO) => {
+ return await request.post({ url: `/wms/onlinesettlement-request-detail/create`, data })
+}
+
+// 修改上线结算申请子
+export const updateOnlinesettlementRequestDetail = async (data: OnlinesettlementRequestDetailVO) => {
+ return await request.put({ url: `/wms/onlinesettlement-request-detail/update`, data })
+}
+
+// 删除上线结算申请子
+export const deleteOnlinesettlementRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/onlinesettlement-request-detail/delete?id=` + id })
+}
+
+// 导出上线结算申请子 Excel
+export const exportOnlinesettlementRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/onlinesettlement-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/onlinesettlement-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/onlinesettlementRequestMain/index.ts b/src/api/wms/onlinesettlementRequestMain/index.ts
new file mode 100644
index 0000000..6f6238f
--- /dev/null
+++ b/src/api/wms/onlinesettlementRequestMain/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface OnlinesettlementRequestMainVO {
+ issueRecordNumber: string
+ warehouseCode: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询上线结算申请主列表
+export const getOnlinesettlementRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/onlinesettlement-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/onlinesettlement-request-main/page`, params })
+ }
+}
+
+// 查询上线结算申请主详情
+export const getOnlinesettlementRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/onlinesettlement-request-main/get?id=` + id })
+}
+
+// 新增上线结算申请主
+export const createOnlinesettlementRequestMain = async (data: OnlinesettlementRequestMainVO) => {
+ return await request.post({ url: `/wms/onlinesettlement-request-main/create`, data })
+}
+
+// 修改上线结算申请主
+export const updateOnlinesettlementRequestMain = async (data: OnlinesettlementRequestMainVO) => {
+ return await request.put({ url: `/wms/onlinesettlement-request-main/update`, data })
+}
+
+// 删除上线结算申请主
+export const deleteOnlinesettlementRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/onlinesettlement-request-main/delete?id=` + id })
+}
+
+// 导出上线结算申请主 Excel
+export const exportOnlinesettlementRequestMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/onlinesettlement-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/onlinesettlement-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/onlinesettlement-request-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/owner/index.ts b/src/api/wms/owner/index.ts
new file mode 100644
index 0000000..e3e8761
--- /dev/null
+++ b/src/api/wms/owner/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface OwnerVO {
+ code: string
+ name: string
+ shortName: string
+ address: string
+ country: string
+ city: string
+ phone: string
+ fax: string
+ postId: string
+ contacts: string
+ bank: string
+ currency: string
+ taxRate: number
+ type: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ available: string
+}
+
+// 查询货主列表
+export const getOwnerPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/owner/senior', data })
+ } else {
+ return await request.get({ url: `/wms/owner/page`, params })
+ }
+}
+// 查询所有货主列表
+export const getOwnerList = async (params) => {
+ return await request.get({ url: `/wms/owner/list`, params })
+}
+// 查询货主详情
+export const getOwner = async (id: number) => {
+ return await request.get({ url: `/wms/owner/get?id=` + id })
+}
+
+// 新增货主
+export const createOwner = async (data: OwnerVO) => {
+ return await request.post({ url: `/wms/owner/create`, data })
+}
+
+// 修改货主
+export const updateOwner = async (data: OwnerVO) => {
+ return await request.put({ url: `/wms/owner/update`, data })
+}
+
+// 删除货主
+export const deleteOwner = async (id: number) => {
+ return await request.delete({ url: `/wms/owner/delete?id=` + id })
+}
+
+// 导出货主 Excel
+export const exportOwner = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/owner/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/owner/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/owner/get-import-template' })
+}
+
+// 根据code获取数据列表
+export const getOwnerByCodes = async (params) => {
+ return await request.get({ url: `/wms/owner/listByCodes`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/package/index.ts b/src/api/wms/package/index.ts
new file mode 100644
index 0000000..8854a8b
--- /dev/null
+++ b/src/api/wms/package/index.ts
@@ -0,0 +1,138 @@
+import request from '@/config/axios'
+
+export interface PackageVO {
+ number: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ batch: string
+ altBatch: string
+ produceDate: Date
+ validityDays: number
+ expireDate: Date
+ uom: string
+ qty: number
+ altUom: string
+ altQty: number
+ convertRate: number
+ packQty: number
+ packUnit: string
+ toWarehouseCode: string
+ toDockCode: string
+ toLocationCode: string
+ supplierCode: string
+ supplierItemCode: string
+ poNumber: string
+ poLine: string
+ rpNumber: string
+ asnNumber: string
+ woNumber: string
+ woLine: string
+ productionLineCode: string
+ teamCode: string
+ shiftCode: string
+ customerCode: string
+ customerDockCode: string
+ customerItemCode: string
+ soNumber: string
+ soLine: string
+ eqLevel: string
+ ownerCode: string
+ weight: string
+ area: string
+ volume: string
+}
+
+// 查询包装列表
+export const getPackagePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/package/senior', data })
+ } else {
+ return await request.get({ url: `/wms/package/page`, params })
+ }
+}
+
+// 查询包装详情
+export const getPackage = async (id: number) => {
+ return await request.get({ url: `/wms/package/get?id=` + id })
+}
+
+// 新增包装
+export const createPackage = async (data: PackageVO) => {
+ return await request.post({ url: `/wms/package/create`, data })
+}
+
+// 修改包装
+export const updatePackage = async (data: PackageVO) => {
+ return await request.put({ url: `/wms/package/update`, data })
+}
+
+// 删除包装
+export const deletePackage = async (id: number) => {
+ return await request.delete({ url: `/wms/package/delete?id=` + id })
+}
+
+// 导出包装 Excel
+export const exportPackage = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/package/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/package/export-excel`, params })
+ }
+ }
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/package/get-import-template' })
+}
+
+// 创建标签
+export const createPackageLabel = async (data: PackageVO) => {
+ return await request.post({ url: `/wms/package/createLabel`, data })
+}
+
+
+// 批量打印标签
+export const batchPrintingLable = async (data: any) => {
+ return await request.post({ url: `/wms/package/batchPrintingLable`, data })
+}
+
+
+// 批量打印标签多选
+export const batchPrintingLables = async (data: any) => {
+ return await request.post({ url: `/wms/package/batchPrintingLables`, data })
+}
+
+// 打印标签获取包装列表
+export const getLabel = async (id: number) => {
+ return await request.get({ url: `/wms/package/getLabel?id=` + id })
+}
+
+// 打印标签获取包装列表
+
+export const getLabelDetailPage = async (params) => {
+ return await request.get({ url: `/wms/package/getLabelDetailPage`,params})
+}
+export const getLabelDetailPageByRecordId = async (params) => {
+ return await request.get({ url: `/wms/package/getLabelDetailPageByRecordId`,params})
+}
+
+// 打印标签获取包装列表(装配报工专用)
+
+export const getProductreceiptLabelDetailPage = async (params) => {
+ return await request.get({ url: `/wms/package/getProductreceiptLabelDetailPage`,params})
+}
+
+// 根据库存余额获取包装信息进行打印标签
+export const getBalanceToPackage = async (packingNumber: String) => {
+ return await request.get({ url: `/wms/package/getBalanceToPackage?packingNumber=` + packingNumber})
+}
+
+// 根据库存余额获取包装信息进行打印标签--批量打印
+export const getBalanceToPackageSelection = async (data: any) => {
+ return await request.post({ url: `/wms/balance/batchPrintLabel` ,data})
+}
diff --git a/src/api/wms/packagemergeDetail/index.ts b/src/api/wms/packagemergeDetail/index.ts
new file mode 100644
index 0000000..3322cfe
--- /dev/null
+++ b/src/api/wms/packagemergeDetail/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface PackagemergeDetailVO {
+ id: number
+ locationCode: string
+ locationGroupCode: string
+ areaCode: string
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromBatch: string
+ toBatch: string
+ fromInventoryStatus: string
+ toInventoryStatus: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ fromOwnerCode: string
+ toOwnerCode: string
+ masterId: number
+ number: string
+ itemCode: string
+ remark: string
+ siteId: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ toQty: number
+ fromQty: number
+ uom: string
+ interfaceType: string
+}
+
+// 查询合包记录子列表
+export const getPackagemergeDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packagemerge-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packagemerge-detail/page`, params })
+ }
+}
+
+// 查询合包记录子详情
+export const getPackagemergeDetail = async (id: number) => {
+ return await request.get({ url: '/wms/packagemerge-detail/get?id=' + id })
+}
+
+// 新增合包记录子
+export const createPackagemergeDetail = async (data: PackagemergeDetailVO) => {
+ return await request.post({ url: '/wms/packagemerge-detail/create', data })
+}
+
+// 修改合包记录子
+export const updatePackagemergeDetail = async (data: PackagemergeDetailVO) => {
+ return await request.put({ url: '/wms/packagemerge-detail/update', data })
+}
+
+// 删除合包记录子
+export const deletePackagemergeDetail = async (id: number) => {
+ return await request.delete({ url: '/wms/packagemerge-detail/delete?id=' + id })
+}
+
+// 导出合包记录子 Excel
+export const exportPackagemergeDetailApi = async (params) => {
+ return await request.download({ url: '/wms/packagemerge-detail/export-excel', params })
+}
diff --git a/src/api/wms/packagemergeMain/index.ts b/src/api/wms/packagemergeMain/index.ts
new file mode 100644
index 0000000..2638292
--- /dev/null
+++ b/src/api/wms/packagemergeMain/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface PackagemergeMainVO {
+ id: number
+ warehouseCode: string
+ details: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ userGroupCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+}
+
+// 查询合包记录主列表
+export const getPackagemergeMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packagemerge-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packagemerge-main/page`, params })
+ }
+}
+
+// 查询合包记录主详情
+export const getPackagemergeMain = async (id: number) => {
+ return await request.get({ url: `/wms/packagemerge-main/get?id=` + id })
+}
+
+// 新增合包记录主
+export const createPackagemergeMain = async (data: PackagemergeMainVO) => {
+ return await request.post({ url: `/wms/packagemerge-main/create`, data })
+}
+
+// 修改合包记录主
+export const updatePackagemergeMain = async (data: PackagemergeMainVO) => {
+ return await request.put({ url: `/wms/packagemerge-main/update`, data })
+}
+
+// 删除合包记录主
+export const deletePackagemergeMain = async (id: number) => {
+ return await request.delete({ url: `/wms/packagemerge-main/delete?id=` + id })
+}
+
+// 导出合包记录主 Excel
+export const exportPackagemergeMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/packagemerge-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/packagemerge-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/packagemerge-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/packageoverJobDetail/index.ts b/src/api/wms/packageoverJobDetail/index.ts
new file mode 100644
index 0000000..41043f0
--- /dev/null
+++ b/src/api/wms/packageoverJobDetail/index.ts
@@ -0,0 +1,71 @@
+import request from '@/config/axios'
+
+export interface PackageoverJobDetailVO {
+ id: number
+ number: string
+ batch: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromPackUnit: string
+ toPackUnit: string
+ fromPackQty: number
+ toPackQty: number
+ fromLocationGroupCode: string
+ toLocationGroupCode: string
+ fromAreaCode: string
+ toAreaCode: string
+ fromLocationCode: string
+ toLocationCode: string
+ fromOwnerCode: string
+ toOwnerCode: string
+ inventoryStatus: string
+ remark: string
+}
+
+// 查询翻包任务子列表
+export const getPackageoverJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packageover-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packageover-job-detail/page`, params })
+ }
+}
+
+// 查询翻包任务子详情
+export const getPackageoverJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/packageover-job-detail/get?id=` + id })
+}
+
+// 新增翻包任务子
+export const createPackageoverJobDetail = async (data: PackageoverJobDetailVO) => {
+ return await request.post({ url: `/wms/packageover-job-detail/create`, data })
+}
+
+// 修改翻包任务子
+export const updatePackageoverJobDetail = async (data: PackageoverJobDetailVO) => {
+ return await request.put({ url: `/wms/packageover-job-detail/update`, data })
+}
+
+// 删除翻包任务子
+export const deletePackageoverJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/packageover-job-detail/delete?id=` + id })
+}
+
+// 导出翻包任务子 Excel
+export const exportPackageoverJobDetail = async (params) => {
+ return await request.download({ url: `/wms/packageover-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/packageover-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/packageoverJobMain/index.ts b/src/api/wms/packageoverJobMain/index.ts
new file mode 100644
index 0000000..5aa7fa0
--- /dev/null
+++ b/src/api/wms/packageoverJobMain/index.ts
@@ -0,0 +1,87 @@
+import request from '@/config/axios'
+
+export interface PackageoverJobMainVO {
+ id: number
+ requestNumber: string
+ status: string
+ requestTime: Date
+ requestDueTime: Date
+ expiredTime: Date
+ number: string
+ priority: number
+ priorityIncrement: number
+ acceptUserId: string
+ acceptUserName: string
+ acceptTime: Date
+ completeUserId: string
+ completeUserName: string
+ completeTime: Date
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ inInventoryStatuses: string
+ outInventoryStatuses: string
+ businessType: string
+ departmentCode: string
+ remark: string
+}
+
+// 查询翻包任务主列表
+export const getPackageoverJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packageover-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packageover-job-main/page`, params })
+ }
+}
+
+// 查询翻包任务主详情
+export const getPackageoverJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/packageover-job-main/get?id=` + id })
+}
+
+// 新增翻包任务主
+export const createPackageoverJobMain = async (data: PackageoverJobMainVO) => {
+ return await request.post({ url: `/wms/packageover-job-main/create`, data })
+}
+
+// 修改翻包任务主
+export const updatePackageoverJobMain = async (data: PackageoverJobMainVO) => {
+ return await request.put({ url: `/wms/packageover-job-main/update`, data })
+}
+// 承接翻包任务主
+export const acceptPackageoverJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/packageover-job-main/accept?id=` + id })
+}
+// 放弃翻包任务主
+export const abandonPackageoverJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/packageover-job-main/abandon?id=` + id })
+}
+// 删除翻包任务主
+export const deletePackageoverJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/packageover-job-main/delete?id=` + id })
+}
+// 关闭翻包任务主
+export const closePackageoverJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/packageover-job-main/close?id=` + id })
+}
+
+// 导出翻包任务主 Excel
+export const exportPackageoverJobMain = async (params) => {
+ return await request.download({ url: `/wms/packageover-job-main/export-excel`, params })
+}
diff --git a/src/api/wms/packageoverRecordDetail/index.ts b/src/api/wms/packageoverRecordDetail/index.ts
new file mode 100644
index 0000000..3286e82
--- /dev/null
+++ b/src/api/wms/packageoverRecordDetail/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface PackageoverDetailVO {
+ id: number
+ locationCode: string
+ locationGroupCode: string
+ areaCode: string
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromBatch: string
+ toBatch: string
+ fromInventoryStatus: string
+ toInventoryStatus: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ fromOwnerCode: string
+ toOwnerCode: string
+ masterId: number
+ number: string
+ itemCode: string
+ remark: string
+ siteId: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ toQty: number
+ fromQty: number
+ uom: string
+ interfaceType: string
+}
+
+// 查询翻包记录子列表
+export const getPackageoverDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packageover-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packageover-record-detail/page`, params })
+ }
+}
+
+// 查询翻包记录子详情
+export const getPackageoverDetail = async (id: number) => {
+ return await request.get({ url: '/wms/packageover-record-detail/get?id=' + id })
+}
+
+// 新增翻包记录子
+export const createPackageoverDetail = async (data: PackageoverDetailVO) => {
+ return await request.post({ url: '/wms/packageover-record-detail/create', data })
+}
+
+// 修改翻包记录子
+export const updatePackageoverDetail = async (data: PackageoverDetailVO) => {
+ return await request.put({ url: '/wms/packageover-record-detail/update', data })
+}
+
+// 删除翻包记录子
+export const deletePackageoverDetail = async (id: number) => {
+ return await request.delete({ url: '/wms/packageover-record-detail/delete?id=' + id })
+}
+
+// 导出翻包记录子 Excel
+export const exportPackageoverDetailApi = async (params) => {
+ return await request.download({ url: '/wms/packageover-record-detail/export-excel', params })
+}
diff --git a/src/api/wms/packageoverRecordMain/index.ts b/src/api/wms/packageoverRecordMain/index.ts
new file mode 100644
index 0000000..398cdea
--- /dev/null
+++ b/src/api/wms/packageoverRecordMain/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface PackageoverMainVO {
+ id: number
+ number: string
+ status: string
+ requestTime: Date
+ dueTime: Date
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ inInventoryStatuses: string
+ outInventoryStatuses: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+ departmentCode: string
+ remark: string
+ businessType: string
+ concurrencyStamp: number
+}
+
+// 查询翻包申请主列表
+export const getPackageoverMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packageover-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packageover-record-main/page`, params })
+ }
+}
+
+// 查询翻包申请主详情
+export const getPackageoverMain = async (id: number) => {
+ return await request.get({ url: `/wms/packageover-record-main/get?id=` + id })
+}
+
+// 新增翻包申请主
+export const createPackageoverMain = async (data: PackageoverMainVO) => {
+ return await request.post({ url: `/wms/packageover-record-main/create`, data })
+}
+
+// 修改翻包申请主
+export const updatePackageoverMain = async (data: PackageoverMainVO) => {
+ return await request.put({ url: `/wms/packageover-record-main/update`, data })
+}
+
+// 删除翻包申请主
+export const deletePackageoverMain = async (id: number) => {
+ return await request.delete({ url: `/wms/packageover-record-main/delete?id=` + id })
+}
+
+// 导出翻包申请主 Excel
+export const exportPackageoverMain = async (params) => {
+ return await request.download({ url: `/wms/packageover-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/packageover-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/packageoverRequestDetail/index.ts b/src/api/wms/packageoverRequestDetail/index.ts
new file mode 100644
index 0000000..0be9818
--- /dev/null
+++ b/src/api/wms/packageoverRequestDetail/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface PackageoverRequestDetailVO {
+ id: number
+ number: string
+ batch: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ fromPackUnit: string
+ toPackUnit: string
+ fromPackQty: number
+ toPackQty: number
+ fromLocationCode: string
+ toLocationCode: string
+ fromLocationGroupCode: string
+ toLocationGroupCode: string
+ fromAreaCode: string
+ toAreaCode: string
+ inventoryStatus: string
+ remark: string
+ masterId: number
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询翻包申请子列表
+export const getPackageoverRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packageover-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packageover-request-detail/page`, params })
+ }
+}
+
+// 查询翻包申请子详情
+export const getPackageoverRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/packageover-request-detail/get?id=` + id })
+}
+
+// 新增翻包申请子
+export const createPackageoverRequestDetail = async (data: PackageoverRequestDetailVO) => {
+ return await request.post({ url: `/wms/packageover-request-detail/create`, data })
+}
+
+// 修改翻包申请子
+export const updatePackageoverRequestDetail = async (data: PackageoverRequestDetailVO) => {
+ return await request.put({ url: `/wms/packageover-request-detail/update`, data })
+}
+
+// 删除翻包申请子
+export const deletePackageoverRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/packageover-request-detail/delete?id=` + id })
+}
+
+// 导出翻包申请子 Excel
+export const exportPackageoverRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/packageover-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/packageover-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/packageoverRequestMain/index.ts b/src/api/wms/packageoverRequestMain/index.ts
new file mode 100644
index 0000000..94b376b
--- /dev/null
+++ b/src/api/wms/packageoverRequestMain/index.ts
@@ -0,0 +1,96 @@
+import request from '@/config/axios'
+
+export interface PackageoverRequestMainVO {
+ id: number
+ number: string
+ status: string
+ requestTime: Date
+ dueTime: Date
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ inInventoryStatuses: string
+ outInventoryStatuses: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+ departmentCode: string
+ remark: string
+ businessType: string
+ concurrencyStamp: number
+}
+
+// 查询翻包申请主列表
+export const getPackageoverRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packageover-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packageover-request-main/page`, params })
+ }
+}
+
+// 查询翻包申请主详情
+export const getPackageoverRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/packageover-request-main/get?id=` + id })
+}
+
+// 新增翻包申请主
+export const createPackageoverRequestMain = async (data: PackageoverRequestMainVO) => {
+ return await request.post({ url: `/wms/packageover-request-main/create`, data })
+}
+
+// 修改翻包申请主
+export const updatePackageoverRequestMain = async (data: PackageoverRequestMainVO) => {
+ return await request.put({ url: `/wms/packageover-request-main/update`, data })
+}
+
+// 删除翻包申请主
+export const deletePackageoverRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/packageover-request-main/delete?id=` + id })
+}
+
+// 导出翻包申请主 Excel
+export const exportPackageoverRequestMain = async (params) => {
+ return await request.download({ url: `/wms/packageover-request-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/packageover-request-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/packageover-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/packageover-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/packageover-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/packageover-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/packageover-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/packageover-request-main/handle?id=' + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/packageoverRetrospect/index.ts b/src/api/wms/packageoverRetrospect/index.ts
new file mode 100644
index 0000000..9641a14
--- /dev/null
+++ b/src/api/wms/packageoverRetrospect/index.ts
@@ -0,0 +1,83 @@
+import request from '@/config/axios'
+
+export interface PackageoverRetrospectVO {
+ id: number
+ number: string
+ jobNumber: string
+ warehouseCode: string
+ areaCode: string
+ locationGroupCode: string
+ locationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ requestTime: Date
+ dueTime: Date
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromBatch: string
+ toBatch: string
+ fromPackUnit: string
+ toPackUnit: string
+ fromPackQty: number
+ toPackQty: number
+ fromInventoryStatus: string
+ toInventoryStatus: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ businessType: string
+ departmentCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ fromOwnerCode: string
+ toOwnerCode: string
+ remark: string
+ available: string
+}
+
+// 查询翻包记录主列表
+export const getPackageoverRetrospectPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packageover-retrospect/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packageover-retrospect/page`, params })
+ }
+}
+
+// 查询翻包记录主详情
+export const getPackageoverRetrospect = async (id: number) => {
+ return await request.get({ url: `/wms/packageover-retrospect/get?id=` + id })
+}
+
+// 新增翻包记录主
+export const createPackageoverRetrospect = async (data: PackageoverRetrospectVO) => {
+ return await request.post({ url: `/wms/packageover-retrospect/create`, data })
+}
+
+// 修改翻包记录主
+export const updatePackageoverRetrospect = async (data: PackageoverRetrospectVO) => {
+ return await request.put({ url: `/wms/packageover-retrospect/update`, data })
+}
+
+// 删除翻包记录主
+export const deletePackageoverRetrospect = async (id: number) => {
+ return await request.delete({ url: `/wms/packageover-retrospect/delete?id=` + id })
+}
+
+// 导出翻包记录主 Excel
+export const exportPackageoverRetrospect = async (params) => {
+ return await request.download({ url: `/wms/packageover-retrospect/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/packageover-retrospect/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/packagesplitDetail/index.ts b/src/api/wms/packagesplitDetail/index.ts
new file mode 100644
index 0000000..23f7876
--- /dev/null
+++ b/src/api/wms/packagesplitDetail/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface PackagesplitDetailVO {
+ id: number
+ locationCode: string
+ locationGroupCode: string
+ areaCode: string
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromBatch: string
+ toBatch: string
+ fromInventoryStatus: string
+ toInventoryStatus: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ fromOwnerCode: string
+ toOwnerCode: string
+ masterId: number
+ number: string
+ itemCode: string
+ remark: string
+ siteId: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ toQty: number
+ fromQty: number
+ uom: string
+ interfaceType: string
+}
+
+// 查询拆包记录子列表
+export const getPackagesplitDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packagesplit-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packagesplit-detail/page`, params })
+ }
+}
+
+// 查询拆包记录子详情
+export const getPackagesplitDetail = async (id: number) => {
+ return await request.get({ url: '/wms/packagesplit-detail/get?id=' + id })
+}
+
+// 新增拆包记录子
+export const createPackagesplitDetail = async (data: PackagesplitDetailVO) => {
+ return await request.post({ url: '/wms/packagesplit-detail/create', data })
+}
+
+// 修改拆包记录子
+export const updatePackagesplitDetail = async (data: PackagesplitDetailVO) => {
+ return await request.put({ url: '/wms/packagesplit-detail/update', data })
+}
+
+// 删除拆包记录子
+export const deletePackagesplitDetail = async (id: number) => {
+ return await request.delete({ url: '/wms/packagesplit-detail/delete?id=' + id })
+}
+
+// 导出拆包记录子 Excel
+export const exportPackagesplitDetailApi = async (params) => {
+ return await request.download({ url: '/wms/packagesplit-detail/export-excel', params })
+}
diff --git a/src/api/wms/packagesplitMain/index.ts b/src/api/wms/packagesplitMain/index.ts
new file mode 100644
index 0000000..37fbedd
--- /dev/null
+++ b/src/api/wms/packagesplitMain/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface PackagesplitMainVO {
+ id: number
+ warehouseCode: string
+ details: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ userGroupCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+}
+
+// 查询拆包记录主列表
+export const getPackagesplitMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packagesplit-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packagesplit-main/page`, params })
+ }
+}
+
+// 查询拆包记录主详情
+export const getPackagesplitMain = async (id: number) => {
+ return await request.get({ url: '/wms/packagesplit-main/get?id=' + id })
+}
+
+// 新增拆包记录主
+export const createPackagesplitMain = async (data: PackagesplitMainVO) => {
+ return await request.post({ url: '/wms/packagesplit-main/create', data })
+}
+
+// 修改拆包记录主
+export const updatePackagesplitMain = async (data: PackagesplitMainVO) => {
+ return await request.put({ url: '/wms/packagesplit-main/update', data })
+}
+
+// 删除拆包记录主
+export const deletePackagesplitMain = async (id: number) => {
+ return await request.delete({ url: '/wms/packagesplit-main/delete?id=' + id })
+}
+
+// 导出拆包记录主 Excel
+export const exportPackagesplitMainApi = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/packagesplit-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/packagesplit-main/export-excel`, params })
+ }
+}
diff --git a/src/api/wms/packageunit/index.ts b/src/api/wms/packageunit/index.ts
new file mode 100644
index 0000000..94f053f
--- /dev/null
+++ b/src/api/wms/packageunit/index.ts
@@ -0,0 +1,95 @@
+import request from '@/config/axios'
+
+export interface PackageunitVO {
+ id: number
+ code: string
+ name: string
+ length: number
+ width: number
+ height: number
+ weight: number
+ unit: string
+ available: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+ desc: string
+ reuse: string
+ manageBalance: string
+}
+
+// 查询物品包装规格信息 列表
+export const getPackageunitPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packageunit/senior', data })
+ } else {
+ return await request.get({ url: `/wms/packageunit/page`, params })
+ }
+}
+// 查询物品包装规格信息 列表树状图
+export const getPackageunitPageTree = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packageunit/seniorTree', data })
+ } else {
+ return await request.get({ url: `/wms/packageunit/pageTree`, params })
+ }
+}
+// 查询物品父级包装规格信息
+export const getPackageunitPageParent = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/packageunit/seniorParent', data })
+ } else {
+ return await request.get({ url: `/wms/packageunit/pageParent`, params })
+ }
+}
+// 查询物品包装规格信息 详情
+export const getPackageunit = async (id: number) => {
+ return await request.get({ url: `/wms/packageunit/get?id=` + id })
+}
+
+// 新增物品包装规格信息
+export const createPackageunit = async (data: PackageunitVO) => {
+ return await request.post({ url: `/wms/packageunit/create`, data })
+}
+
+// 修改物品包装规格信息
+export const updatePackageunit = async (data: PackageunitVO) => {
+ return await request.put({ url: `/wms/packageunit/update`, data })
+}
+
+// 删除物品包装规格信息
+export const deletePackageunit = async (id: number) => {
+ return await request.delete({ url: `/wms/packageunit/delete?id=` + id })
+}
+
+// 导出物品包装规格信息 Excel
+export const exportPackageunit = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/packageunit/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/packageunit/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/packageunit/get-import-template' })
+}
+
+// 根据code获取数据列表
+export const getPackageunitListByCodes = async (codes: string) => {
+ return await request.get({ url: `/wms/packageunit/listByCodes?codes=` + codes })
+}
diff --git a/src/api/wms/paramsetting/index.ts b/src/api/wms/paramsetting/index.ts
new file mode 100644
index 0000000..c4549f2
--- /dev/null
+++ b/src/api/wms/paramsetting/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface ParamsettingVO {
+ strategyType: string
+ paramCode: string
+ paramName: string
+ usableOpeartors: string
+ dataType: string
+ valueScope: string
+ relatedTo: string
+ description: string
+ isRequired: string
+}
+
+// 查询参数设置列表
+export const getParamsettingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/paramsetting/senior', data })
+ } else {
+ return await request.get({ url: `/wms/paramsetting/page`, params })
+ }
+}
+
+// 查询参数设置详情
+export const getParamsetting = async (id: number) => {
+ return await request.get({ url: `/wms/paramsetting/get?id=` + id })
+}
+
+// 新增参数设置
+export const createParamsetting = async (data: ParamsettingVO) => {
+ return await request.post({ url: `/wms/paramsetting/create`, data })
+}
+
+// 修改参数设置
+export const updateParamsetting = async (data: ParamsettingVO) => {
+ return await request.put({ url: `/wms/paramsetting/update`, data })
+}
+
+// 删除参数设置
+export const deleteParamsetting = async (id: number) => {
+ return await request.delete({ url: `/wms/paramsetting/delete?id=` + id })
+}
+
+// 导出参数设置 Excel
+export const exportParamsetting = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/paramsetting/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/paramsetting/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/paramsetting/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/pickJobDetail/index.ts b/src/api/wms/pickJobDetail/index.ts
new file mode 100644
index 0000000..b150455
--- /dev/null
+++ b/src/api/wms/pickJobDetail/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface PickJobDetailVO {
+ packingNumber: string
+ batch: string
+ inventoryStatus: string
+ containerNumber: string
+ fromLocationCode: string
+ toLocationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creatorId: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询备货任务子列表
+export const getPickJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/pick-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/pick-job-detail/page`, params })
+ }
+}
+
+// 查询备货任务子详情
+export const getPickJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/pick-job-detail/get?id=` + id })
+}
+
+// 新增备货任务子
+export const createPickJobDetail = async (data: PickJobDetailVO) => {
+ return await request.post({ url: `/wms/pick-job-detail/create`, data })
+}
+
+// 修改备货任务子
+export const updatePickJobDetail = async (data: PickJobDetailVO) => {
+ return await request.put({ url: `/wms/pick-job-detail/update`, data })
+}
+
+// 删除备货任务子
+export const deletePickJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/pick-job-detail/delete?id=` + id })
+}
+
+// 导出备货任务子 Excel
+export const exportPickJobDetail = async (params) => {
+ return await request.download({ url: `/wms/pick-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/pick-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/pickJobMain/index.ts b/src/api/wms/pickJobMain/index.ts
new file mode 100644
index 0000000..3cf2aa4
--- /dev/null
+++ b/src/api/wms/pickJobMain/index.ts
@@ -0,0 +1,87 @@
+import request from '@/config/axios'
+
+export interface PickJobMainVO {
+ requestNumber: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromWarehouseCode: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询备货任务主列表
+export const getPickJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/pick-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/pick-job-main/page`, params })
+ }
+}
+
+// 查询备货任务主详情
+export const getPickJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/pick-job-main/get?id=` + id })
+}
+
+// 新增备货任务主
+export const createPickJobMain = async (data: PickJobMainVO) => {
+ return await request.post({ url: `/wms/pick-job-main/create`, data })
+}
+
+// 修改备货任务主
+export const updatePickJobMain = async (data: PickJobMainVO) => {
+ return await request.put({ url: `/wms/pick-job-main/update`, data })
+}
+
+// 删除备货任务主
+export const deletePickJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/pick-job-main/delete?id=` + id })
+}
+
+// 导出备货任务主 Excel
+export const exportPickJobMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/pick-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/pick-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/pick-job-main/get-import-template' })
+}
diff --git a/src/api/wms/pickRecordDetail/index.ts b/src/api/wms/pickRecordDetail/index.ts
new file mode 100644
index 0000000..7bec033
--- /dev/null
+++ b/src/api/wms/pickRecordDetail/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface PickRecordDetailVO {
+ fromPackingNumber: string
+ fromBatch: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ fromContainerNumber: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toOwnerCode: string
+ toContainerNumber: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+ toPackingNumber: string
+ toBatch: string
+}
+
+// 查询备货记录子列表
+export const getPickRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/pick-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/pick-record-detail/page`, params })
+ }
+}
+
+// 查询备货记录子详情
+export const getPickRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/pick-record-detail/get?id=` + id })
+}
+
+// 新增备货记录子
+export const createPickRecordDetail = async (data: PickRecordDetailVO) => {
+ return await request.post({ url: `/wms/pick-record-detail/create`, data })
+}
+
+// 修改备货记录子
+export const updatePickRecordDetail = async (data: PickRecordDetailVO) => {
+ return await request.put({ url: `/wms/pick-record-detail/update`, data })
+}
+
+// 删除备货记录子
+export const deletePickRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/pick-record-detail/delete?id=` + id })
+}
+
+// 导出备货记录子 Excel
+export const exportPickRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/pick-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/pick-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/pickRecordMain/index.ts b/src/api/wms/pickRecordMain/index.ts
new file mode 100644
index 0000000..78e8391
--- /dev/null
+++ b/src/api/wms/pickRecordMain/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface PickRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ available: string
+}
+
+// 查询备货记录主列表
+export const getPickRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/pick-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/pick-record-main/page`, params })
+ }
+}
+
+// 查询备货记录主详情
+export const getPickRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/pick-record-main/get?id=` + id })
+}
+
+// 新增备货记录主
+export const createPickRecordMain = async (data: PickRecordMainVO) => {
+ return await request.post({ url: `/wms/pick-record-main/create`, data })
+}
+
+// 修改备货记录主
+export const updatePickRecordMain = async (data: PickRecordMainVO) => {
+ return await request.put({ url: `/wms/pick-record-main/update`, data })
+}
+
+// 删除备货记录主
+export const deletePickRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/pick-record-main/delete?id=` + id })
+}
+
+// 导出备货记录主 Excel
+export const exportPickRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/pick-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/pick-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/pick-record-main/get-import-template' })
+}
diff --git a/src/api/wms/pickRequestDetail/index.ts b/src/api/wms/pickRequestDetail/index.ts
new file mode 100644
index 0000000..4f41d5e
--- /dev/null
+++ b/src/api/wms/pickRequestDetail/index.ts
@@ -0,0 +1,62 @@
+import request from '@/config/axios'
+
+export interface PickRequestDetailVO {
+ inventoryStatus: string
+ toLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询备货申请子列表
+export const getPickRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/pick-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/pick-request-detail/page`, params })
+ }
+}
+
+// 查询备货申请子详情
+export const getPickRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/pick-request-detail/get?id=` + id })
+}
+
+// 新增备货申请子
+export const createPickRequestDetail = async (data: PickRequestDetailVO) => {
+ return await request.post({ url: `/wms/pick-request-detail/create`, data })
+}
+
+// 修改备货申请子
+export const updatePickRequestDetail = async (data: PickRequestDetailVO) => {
+ return await request.put({ url: `/wms/pick-request-detail/update`, data })
+}
+
+// 删除备货申请子
+export const deletePickRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/pick-request-detail/delete?id=` + id })
+}
+
+// 导出备货申请子 Excel
+export const exportPickRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/pick-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/pick-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/pickRequestMain/index.ts b/src/api/wms/pickRequestMain/index.ts
new file mode 100644
index 0000000..b11d559
--- /dev/null
+++ b/src/api/wms/pickRequestMain/index.ts
@@ -0,0 +1,72 @@
+import request from '@/config/axios'
+
+export interface PickRequestMainVO {
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreas: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询备货申请主列表
+export const getPickRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/pick-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/pick-request-main/page`, params })
+ }
+}
+
+// 查询备货申请主详情
+export const getPickRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/pick-request-main/get?id=` + id })
+}
+
+// 新增备货申请主
+export const createPickRequestMain = async (data: PickRequestMainVO) => {
+ return await request.post({ url: `/wms/pick-request-main/create`, data })
+}
+
+// 修改备货申请主
+export const updatePickRequestMain = async (data: PickRequestMainVO) => {
+ return await request.put({ url: `/wms/pick-request-main/update`, data })
+}
+
+// 删除备货申请主
+export const deletePickRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/pick-request-main/delete?id=` + id })
+}
+
+// 导出备货申请主 Excel
+export const exportPickRequestMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/pick-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/pick-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/pick-request-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/plansetting/index.ts b/src/api/wms/plansetting/index.ts
new file mode 100644
index 0000000..07badf2
--- /dev/null
+++ b/src/api/wms/plansetting/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface PlansettingVO {
+ id: number
+ code: string
+ requestMode: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+ available: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ concurrencyStamp: number
+}
+
+// 查询计划设置列表
+export const getPlansettingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/plansetting/senior', data })
+ } else {
+ return await request.get({ url: `/wms/plansetting/page`, params })
+ }
+}
+
+// 查询计划设置详情
+export const getPlansetting = async (id: number) => {
+ return await request.get({ url: `/wms/plansetting/get?id=` + id })
+}
+
+// 新增计划设置
+export const createPlansetting = async (data: PlansettingVO) => {
+ return await request.post({ url: `/wms/plansetting/create`, data })
+}
+
+// 修改计划设置
+export const updatePlansetting = async (data: PlansettingVO) => {
+ return await request.put({ url: `/wms/plansetting/update`, data })
+}
+
+// 删除计划设置
+export const deletePlansetting = async (id: number) => {
+ return await request.delete({ url: `/wms/plansetting/delete?id=` + id })
+}
+
+// 导出计划设置 Excel
+export const exportPlansetting = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/plansetting/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/plansetting/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/plansetting/get-import-template' })
+}
diff --git a/src/api/wms/preparetoissueDetail/index.ts b/src/api/wms/preparetoissueDetail/index.ts
new file mode 100644
index 0000000..c9b0fdd
--- /dev/null
+++ b/src/api/wms/preparetoissueDetail/index.ts
@@ -0,0 +1,54 @@
+import request from '@/config/axios'
+
+export interface PreparetoissueDetailVO {
+ toLocationCode: string
+ workStation: string
+ dueTime: Date
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ planQty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ available: string
+}
+
+// 查询备料计划子列表
+export const getPreparetoissueDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/preparetoissue-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/preparetoissue-detail/page`, params })
+ }
+
+}
+
+// 查询备料计划子详情
+export const getPreparetoissueDetail = async (id: number) => {
+ return await request.get({ url: `/wms/preparetoissue-detail/get?id=` + id })
+}
+
+// 新增备料计划子
+export const createPreparetoissueDetail = async (data: PreparetoissueDetailVO) => {
+ return await request.post({ url: `/wms/preparetoissue-detail/create`, data })
+}
+
+// 修改备料计划子
+export const updatePreparetoissueDetail = async (data: PreparetoissueDetailVO) => {
+ return await request.put({ url: `/wms/preparetoissue-detail/update`, data })
+}
+
+// 删除备料计划子
+export const deletePreparetoissueDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/preparetoissue-detail/delete?id=` + id })
+}
+
+// 导出备料计划子 Excel
+export const exportPreparetoissueDetail = async (params) => {
+ return await request.download({ url: `/wms/preparetoissue-detail/export-excel`, params })
+}
diff --git a/src/api/wms/preparetoissueMain/index.ts b/src/api/wms/preparetoissueMain/index.ts
new file mode 100644
index 0000000..2dd0c8d
--- /dev/null
+++ b/src/api/wms/preparetoissueMain/index.ts
@@ -0,0 +1,115 @@
+import request from '@/config/axios'
+
+export interface PreparetoissueMainVO {
+ productionPlanNumber: string
+ workshop: string
+ prodLine: string
+ shift: string
+ team: string
+ planDate: Date
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ beginTime: Date
+ endTime: Date
+ status: string
+ updateTime: Date
+ updater: string
+ available: string
+}
+
+// 查询备料计划主列表
+export const getPreparetoissueMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/preparetoissue-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/preparetoissue-main/page`, params })
+ }
+}
+
+// 查询备料计划主详情
+export const getPreparetoissueMain = async (id: number) => {
+ return await request.get({ url: `/wms/preparetoissue-main/get?id=` + id })
+}
+
+// 新增备料计划主
+export const createPreparetoissueMain = async (data: PreparetoissueMainVO) => {
+ return await request.post({ url: `/wms/preparetoissue-main/create`, data })
+}
+
+// 修改备料计划主
+export const updatePreparetoissueMain = async (data: PreparetoissueMainVO) => {
+ return await request.put({ url: `/wms/preparetoissue-main/update`, data })
+}
+
+// 删除备料计划主
+export const deletePreparetoissueMain = async (id: number) => {
+ return await request.delete({ url: `/wms/preparetoissue-main/delete?id=` + id })
+}
+
+// 导出备料计划主 Excel
+export const exportPreparetoissueMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/preparetoissue-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/preparetoissue-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/preparetoissue-main/get-import-template' })
+}
+
+// bom拆解
+export const getBomDisassemble = async (id: number) => {
+ return await request.get({ url: `/wms/preparetoissue-main/getBomDisassemble?id=` + id })
+}
+
+
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/preparetoissue-main/close?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/preparetoissue-main/submit?id=' + id })
+}
+
+// 打开
+export const open = (id) => {
+ return request.put({ url: '/wms/preparetoissue-main/open?id=' + id })
+}
+
+// 驳回
+export const reject = (id) => {
+ return request.put({ url: '/wms/preparetoissue-main/reject?id=' + id })
+}
+
+// 驳回
+export const agree = (id) => {
+ return request.put({ url: '/wms/preparetoissue-main/agree?id=' + id })
+}
+
+// 发布
+export const publish = (id) => {
+ return request.put({ url: '/wms/preparetoissue-main/publish?id=' + id })
+}
+
+// 重置
+export const resetting = (id) => {
+ return request.put({ url: '/wms/preparetoissue-main/resetting?id=' + id })
+}
+
+
+// 创建发料申请
+export const generateIssueRequest = (number) => {
+ return request.post({ url: '/wms/preparetoissue-main/generateIssueRequest?number=' + number })
+}
\ No newline at end of file
diff --git a/src/api/wms/printBusinesstypeTemplate/index.ts b/src/api/wms/printBusinesstypeTemplate/index.ts
new file mode 100644
index 0000000..0ae7cbc
--- /dev/null
+++ b/src/api/wms/printBusinesstypeTemplate/index.ts
@@ -0,0 +1,49 @@
+import request from '@/config/axios'
+
+export interface PrintBusinesstypeTemplateVO {
+ id: number
+ businesstypeCode: string
+ templateCode: string
+ remark: string
+}
+
+// 查询打印服务业务类型和打印模板关系列表
+export const getPrintBusinesstypeTemplatePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/print-businesstype-template/senior', data })
+ } else {
+ return await request.get({ url: `/wms/print-businesstype-template/page`, params })
+ }
+}
+
+// 查询打印服务业务类型和打印模板关系详情
+export const getPrintBusinesstypeTemplate = async (id: number) => {
+ return await request.get({ url: `/wms/print-businesstype-template/get?id=` + id })
+}
+
+// 新增打印服务业务类型和打印模板关系
+export const createPrintBusinesstypeTemplate = async (data: PrintBusinesstypeTemplateVO) => {
+ return await request.post({ url: `/wms/print-businesstype-template/create`, data })
+}
+
+// 修改打印服务业务类型和打印模板关系
+export const updatePrintBusinesstypeTemplate = async (data: PrintBusinesstypeTemplateVO) => {
+ return await request.put({ url: `/wms/print-businesstype-template/update`, data })
+}
+
+// 删除打印服务业务类型和打印模板关系
+export const deletePrintBusinesstypeTemplate = async (id: number) => {
+ return await request.delete({ url: `/wms/print-businesstype-template/delete?id=` + id })
+}
+
+// 导出打印服务业务类型和打印模板关系 Excel
+export const exportPrintBusinesstypeTemplate = async (params) => {
+ return await request.download({ url: `/wms/print-businesstype-template/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/print-businesstype-template/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/printClientPrinter/index.ts b/src/api/wms/printClientPrinter/index.ts
new file mode 100644
index 0000000..d930471
--- /dev/null
+++ b/src/api/wms/printClientPrinter/index.ts
@@ -0,0 +1,49 @@
+import request from '@/config/axios'
+
+export interface PrintClientPrinterVO {
+ id: number
+ clientCode: string
+ printerName: string
+ remark: string
+}
+
+// 查询打印服务客户端与打印机名称关系列表
+export const getPrintClientPrinterPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/print-client-printer/senior', data })
+ } else {
+ return await request.get({ url: `/wms/print-client-printer/page`, params })
+ }
+}
+
+// 查询打印服务客户端与打印机名称关系详情
+export const getPrintClientPrinter = async (id: number) => {
+ return await request.get({ url: `/wms/print-client-printer/get?id=` + id })
+}
+
+// 新增打印服务客户端与打印机名称关系
+export const createPrintClientPrinter = async (data: PrintClientPrinterVO) => {
+ return await request.post({ url: `/wms/print-client-printer/create`, data })
+}
+
+// 修改打印服务客户端与打印机名称关系
+export const updatePrintClientPrinter = async (data: PrintClientPrinterVO) => {
+ return await request.put({ url: `/wms/print-client-printer/update`, data })
+}
+
+// 删除打印服务客户端与打印机名称关系
+export const deletePrintClientPrinter = async (id: number) => {
+ return await request.delete({ url: `/wms/print-client-printer/delete?id=` + id })
+}
+
+// 导出打印服务客户端与打印机名称关系 Excel
+export const exportPrintClientPrinter = async (params) => {
+ return await request.download({ url: `/wms/print-client-printer/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/print-client-printer/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/printLabelCorrelation/index.ts b/src/api/wms/printLabelCorrelation/index.ts
new file mode 100644
index 0000000..a5370b8
--- /dev/null
+++ b/src/api/wms/printLabelCorrelation/index.ts
@@ -0,0 +1,50 @@
+import request from '@/config/axios'
+
+export interface PrintCorrelationVO {
+ id: number
+ number: string
+ labelId: string
+ labelType: string
+ available: string
+}
+
+// 查询打印标签关联列表
+export const getPrintCorrelationPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/print-correlation/senior', data })
+ } else {
+ return await request.get({ url: `/wms/print-correlation/page`, params })
+ }
+}
+
+// 查询打印标签关联详情
+export const getPrintCorrelation = async (id: number) => {
+ return await request.get({ url: `/wms/print-correlation/get?id=` + id })
+}
+
+// 新增打印标签关联
+export const createPrintCorrelation = async (data: PrintCorrelationVO) => {
+ return await request.post({ url: `/wms/print-correlation/create`, data })
+}
+
+// 修改打印标签关联
+export const updatePrintCorrelation = async (data: PrintCorrelationVO) => {
+ return await request.put({ url: `/wms/print-correlation/update`, data })
+}
+
+// 删除打印标签关联
+export const deletePrintCorrelation = async (id: number) => {
+ return await request.delete({ url: `/wms/print-correlation/delete?id=` + id })
+}
+
+// 导出打印标签关联 Excel
+export const exportPrintCorrelation = async (params) => {
+ return await request.download({ url: `/wms/print-correlation/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/print-correlation/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/process/index.ts b/src/api/wms/process/index.ts
new file mode 100644
index 0000000..dda9c6d
--- /dev/null
+++ b/src/api/wms/process/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface ProcessVO {
+ code: string
+ name: string
+ description: string
+ type: string
+ workshopCode: string
+ productionLineCode: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询工序列表
+export const getProcessPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/process/senior', data })
+ } else {
+ return await request.get({ url: `/wms/process/page`, params })
+ }
+}
+
+// 查询工序详情
+export const getProcess = async (id: number) => {
+ return await request.get({ url: `/wms/process/get?id=` + id })
+}
+
+// 新增工序
+export const createProcess = async (data: ProcessVO) => {
+ return await request.post({ url: `/wms/process/create`, data })
+}
+
+// 修改工序
+export const updateProcess = async (data: ProcessVO) => {
+ return await request.put({ url: `/wms/process/update`, data })
+}
+
+// 删除工序
+export const deleteProcess = async (id: number) => {
+ return await request.delete({ url: `/wms/process/delete?id=` + id })
+}
+
+// 导出工序 Excel
+export const exportProcess = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/process/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/process/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/process/get-import-template' })
+}
+
+// 查询工序列表
+export const getProcessNoPage = async (params) => {
+ return await request.get({ url: `/wms/process/noPage`, params })
+}
+
+// 根据code获取数据列表
+export const getProcessByCodes = async (params) => {
+ return await request.get({ url: `/wms/process/listByCodes`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/processproductionRecordDetail/index.ts b/src/api/wms/processproductionRecordDetail/index.ts
new file mode 100644
index 0000000..0d8a4d0
--- /dev/null
+++ b/src/api/wms/processproductionRecordDetail/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface ProcessproductionRecordDetailVO {
+ masterId: number
+ number: string
+ processCode: string
+ productionLine: string
+ locationCode: string
+ componentItemCode: string
+ batch: string
+ componentItemcodeQty: number
+ effectiveDate: Date
+ available: string
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询工序报产记录子列表
+export const getProcessproductionRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/processproduction-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/processproduction-record-detail/page`, params })
+ }
+}
+
+// 查询工序报产记录子详情
+export const getProcessproductionRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/processproduction-record-detail/get?id=` + id })
+}
+
+// 新增工序报产记录子
+export const createProcessproductionRecordDetail = async (data: ProcessproductionRecordDetailVO) => {
+ return await request.post({ url: `/wms/processproduction-record-detail/create`, data })
+}
+
+// 修改工序报产记录子
+export const updateProcessproductionRecordDetail = async (data: ProcessproductionRecordDetailVO) => {
+ return await request.put({ url: `/wms/processproduction-record-detail/update`, data })
+}
+
+// 删除工序报产记录子
+export const deleteProcessproductionRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/processproduction-record-detail/delete?id=` + id })
+}
+
+// 导出工序报产记录子 Excel
+export const exportProcessproductionRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/processproduction-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/processproduction-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/processproductionRecordMain/index.ts b/src/api/wms/processproductionRecordMain/index.ts
new file mode 100644
index 0000000..7470d2a
--- /dev/null
+++ b/src/api/wms/processproductionRecordMain/index.ts
@@ -0,0 +1,62 @@
+import request from '@/config/axios'
+
+export interface ProcessproductionRecordMainVO {
+ number: string
+ requestNumber: string
+ itemCode: string
+ completedQuantity: number
+ scrapQuantity: number
+ available: string
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询工序报产记录主列表
+export const getProcessproductionRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/processproduction-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/processproduction-record-main/page`, params })
+ }
+}
+
+// 查询工序报产记录主详情
+export const getProcessproductionRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/processproduction-record-main/get?id=` + id })
+}
+
+// 新增工序报产记录主
+export const createProcessproductionRecordMain = async (data: ProcessproductionRecordMainVO) => {
+ return await request.post({ url: `/wms/processproduction-record-main/create`, data })
+}
+
+// 修改工序报产记录主
+export const updateProcessproductionRecordMain = async (data: ProcessproductionRecordMainVO) => {
+ return await request.put({ url: `/wms/processproduction-record-main/update`, data })
+}
+
+// 删除工序报产记录主
+export const deleteProcessproductionRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/processproduction-record-main/delete?id=` + id })
+}
+
+// 导出工序报产记录主 Excel
+export const exportProcessproductionRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/processproduction-record-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/processproduction-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/processproduction-record-main/get-import-template' })
+}
diff --git a/src/api/wms/processproductionRequestDetail/index.ts b/src/api/wms/processproductionRequestDetail/index.ts
new file mode 100644
index 0000000..0ea781d
--- /dev/null
+++ b/src/api/wms/processproductionRequestDetail/index.ts
@@ -0,0 +1,62 @@
+import request from '@/config/axios'
+
+export interface ProcessproductionRequestDetailVO {
+ id: number
+ masterId: number
+ number: string
+ processCode: string
+ productionLine: string
+ locationCode: string
+ componentItemCode: string
+ batch: string
+ componentItemcodeQty: number
+ effectiveDate: Date
+ available: string
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询工序报产申请子列表
+export const getProcessproductionRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/processproduction-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/processproduction-request-detail/page`, params })
+ }
+}
+
+// 查询工序报产申请子详情
+export const getProcessproductionRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/processproduction-request-detail/get?id=` + id })
+}
+
+// 新增工序报产申请子
+export const createProcessproductionRequestDetail = async (data: ProcessproductionRequestDetailVO) => {
+ return await request.post({ url: `/wms/processproduction-request-detail/create`, data })
+}
+
+// 修改工序报产申请子
+export const updateProcessproductionRequestDetail = async (data: ProcessproductionRequestDetailVO) => {
+ return await request.put({ url: `/wms/processproduction-request-detail/update`, data })
+}
+
+// 删除工序报产申请子
+export const deleteProcessproductionRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/processproduction-request-detail/delete?id=` + id })
+}
+
+// 导出工序报产申请子 Excel
+export const exportProcessproductionRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/processproduction-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/processproduction-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/processproductionRequestMain/index.ts b/src/api/wms/processproductionRequestMain/index.ts
new file mode 100644
index 0000000..d21a240
--- /dev/null
+++ b/src/api/wms/processproductionRequestMain/index.ts
@@ -0,0 +1,104 @@
+import request from '@/config/axios'
+
+export interface ProcessproductionRequestMainVO {
+ id: number
+ number: string
+ itemCode: string
+ completedQuantity: number
+ scrapQuantity: number
+ available: string
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询工序报产申请主列表
+export const getProcessproductionRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/processproduction-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/processproduction-request-main/page`, params })
+ }
+}
+
+
+// 查询工序报产子物料
+export const getProcessproductionChildBomPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/processproduction-request-main/queryChildItemByParentCodeSenior', data })
+ } else {
+ return await request.get({ url: `/wms/processproduction-request-main/queryChildItemByParentCodePage`, params })
+ }
+}
+
+// 查询工序报产申请主详情
+export const getProcessproductionRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/processproduction-request-main/get?id=` + id })
+}
+
+// 新增工序报产申请主
+export const createProcessproductionRequestMain = async (data: ProcessproductionRequestMainVO) => {
+ return await request.post({ url: `/wms/processproduction-request-main/create`, data })
+}
+
+// 修改工序报产申请主
+export const updateProcessproductionRequestMain = async (data: ProcessproductionRequestMainVO) => {
+ return await request.put({ url: `/wms/processproduction-request-main/update`, data })
+}
+
+// 删除工序报产申请主
+export const deleteProcessproductionRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/processproduction-request-main/delete?id=` + id })
+}
+
+// 导出工序报产申请主 Excel
+export const exportProcessproductionRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/processproduction-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/processproduction-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/processproduction-request-main/get-import-template' })
+}
+
+// 关闭
+export const closeProcessproductionRequestMain = async (id) => {
+ return await request.put({ url: `/wms/processproduction-request-main/close?id=` + id })
+}
+
+// 重新添加
+export const reAddProcessproductionRequestMain = async (id) => {
+ return await request.put({ url: `/wms/processproduction-request-main/reAdd?id=` + id })
+}
+
+// 提交审批
+export const submitProcessproductionRequestMain = async (id) => {
+ return await request.put({ url: `/wms/processproduction-request-main/submit?id=` + id })
+}
+
+// 审批驳回
+export const refusedProcessproductionRequestMain = async (id) => {
+ return await request.put({ url: `/wms/processproduction-request-main/refused?id=` + id })
+}
+
+// 审批通过
+export const agreeProcessproductionRequestMain = async (id) => {
+ return await request.put({ url: `/wms/processproduction-request-main/agree?id=` + id })
+}
+
+// 处理
+export const handleProcessproductionRequestMain = async (id) => {
+ return await request.put({ url: `/wms/processproduction-request-main/handle?id=` + id })
+}
diff --git a/src/api/wms/productdismantleJobDetail/index.ts b/src/api/wms/productdismantleJobDetail/index.ts
new file mode 100644
index 0000000..bdd27c6
--- /dev/null
+++ b/src/api/wms/productdismantleJobDetail/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface ProductdismantleJobDetailVO {
+ productionLineCode: string
+ workStationCode: string
+ processCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ packQty: number
+ packUnit: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromLocationCode: string
+ ownerCode: string
+ fromOwnerCode: string
+}
+
+// 查询制品拆解任务子列表
+export const getProductdismantleJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productdismantle-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productdismantle-job-detail/page`, params })
+ }
+}
+
+// 查询制品拆解任务子详情
+export const getProductdismantleJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productdismantle-job-detail/get?id=` + id })
+}
+
+// 新增制品拆解任务子
+export const createProductdismantleJobDetail = async (data: ProductdismantleJobDetailVO) => {
+ return await request.post({ url: `/wms/productdismantle-job-detail/create`, data })
+}
+
+// 修改制品拆解任务子
+export const updateProductdismantleJobDetail = async (data: ProductdismantleJobDetailVO) => {
+ return await request.put({ url: `/wms/productdismantle-job-detail/update`, data })
+}
+
+// 删除制品拆解任务子
+export const deleteProductdismantleJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productdismantle-job-detail/delete?id=` + id })
+}
+
+// 导出制品拆解任务子 Excel
+export const exportProductdismantleJobDetail = async (params) => {
+ return await request.download({ url: `/wms/productdismantle-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productdismantle-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productdismantleJobMain/index.ts b/src/api/wms/productdismantleJobMain/index.ts
new file mode 100644
index 0000000..0459b0d
--- /dev/null
+++ b/src/api/wms/productdismantleJobMain/index.ts
@@ -0,0 +1,88 @@
+import request from '@/config/axios'
+
+export interface ProductdismantleJobMainVO {
+ requestNumber: string
+ workshopCode: string
+ team: string
+ shift: string
+ fromWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询制品拆解任务主列表
+export const getProductdismantleJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productdismantle-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productdismantle-job-main/page`, params })
+ }
+}
+
+// 查询制品拆解任务主详情
+export const getProductdismantleJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/productdismantle-job-main/get?id=` + id })
+}
+
+// 新增制品拆解任务主
+export const createProductdismantleJobMain = async (data: ProductdismantleJobMainVO) => {
+ return await request.post({ url: `/wms/productdismantle-job-main/create`, data })
+}
+
+// 修改制品拆解任务主
+export const updateProductdismantleJobMain = async (data: ProductdismantleJobMainVO) => {
+ return await request.put({ url: `/wms/productdismantle-job-main/update`, data })
+}
+
+// 删除制品拆解任务主
+export const deleteProductdismantleJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productdismantle-job-main/delete?id=` + id })
+}
+
+// 导出制品拆解任务主 Excel
+export const exportProductdismantleJobMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productdismantle-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/productdismantle-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productdismantle-job-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productdismantleRecordDetaila/index.ts b/src/api/wms/productdismantleRecordDetaila/index.ts
new file mode 100644
index 0000000..da0a502
--- /dev/null
+++ b/src/api/wms/productdismantleRecordDetaila/index.ts
@@ -0,0 +1,72 @@
+import request from '@/config/axios'
+
+export interface ProductdismantleRecordDetailaVO {
+ fromOwnerCode: string
+ productionLineCode: string
+ workStationCode: string
+ processCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ produceDate: Date
+ expireDate: Date
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ inventoryStatus: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+
+// 查询制品拆解记录子列表
+export const getProductdismantleRecordDetailaPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productdismantle-record-detaila/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productdismantle-record-detaila/page`, params })
+ }
+}
+
+// 查询制品拆解记录子详情
+export const getProductdismantleRecordDetaila = async (id: number) => {
+ return await request.get({ url: `/wms/productdismantle-record-detaila/get?id=` + id })
+}
+
+// 新增制品拆解记录子
+export const createProductdismantleRecordDetaila = async (data: ProductdismantleRecordDetailaVO) => {
+ return await request.post({ url: `/wms/productdismantle-record-detaila/create`, data })
+}
+
+// 修改制品拆解记录子
+export const updateProductdismantleRecordDetaila = async (data: ProductdismantleRecordDetailaVO) => {
+ return await request.put({ url: `/wms/productdismantle-record-detaila/update`, data })
+}
+
+// 删除制品拆解记录子
+export const deleteProductdismantleRecordDetaila = async (id: number) => {
+ return await request.delete({ url: `/wms/productdismantle-record-detaila/delete?id=` + id })
+}
+
+// 导出制品拆解记录子 Excel
+export const exportProductdismantleRecordDetaila = async (params) => {
+ return await request.download({ url: `/wms/productdismantle-record-detaila/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productdismantle-record-detaila/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productdismantleRecordMain/index.ts b/src/api/wms/productdismantleRecordMain/index.ts
new file mode 100644
index 0000000..6cf740a
--- /dev/null
+++ b/src/api/wms/productdismantleRecordMain/index.ts
@@ -0,0 +1,73 @@
+import request from '@/config/axios'
+
+export interface ProductdismantleRecordMainVO {
+ requestNumber: string
+ workshopCode: string
+ team: string
+ shift: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ available: string
+}
+
+// 查询制品拆解记录主列表
+export const getProductdismantleRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productdismantle-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productdismantle-record-main/page`, params })
+ }
+}
+
+// 查询制品拆解记录主详情
+export const getProductdismantleRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/productdismantle-record-main/get?id=` + id })
+}
+
+// 新增制品拆解记录主
+export const createProductdismantleRecordMain = async (data: ProductdismantleRecordMainVO) => {
+ return await request.post({ url: `/wms/productdismantle-record-main/create`, data })
+}
+
+// 修改制品拆解记录主
+export const updateProductdismantleRecordMain = async (data: ProductdismantleRecordMainVO) => {
+ return await request.put({ url: `/wms/productdismantle-record-main/update`, data })
+}
+
+// 删除制品拆解记录主
+export const deleteProductdismantleRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productdismantle-record-main/delete?id=` + id })
+}
+
+// 导出制品拆解记录主 Excel
+export const exportProductdismantleRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productdismantle-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/productdismantle-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productdismantle-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productdismantleRequestDetaila/index.ts b/src/api/wms/productdismantleRequestDetaila/index.ts
new file mode 100644
index 0000000..edb9652
--- /dev/null
+++ b/src/api/wms/productdismantleRequestDetaila/index.ts
@@ -0,0 +1,71 @@
+import request from '@/config/axios'
+
+export interface ProductdismantleRequestDetailaVO {
+ productionLineCode: string
+ workStationCode: string
+ processCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ packQty: number
+ packUnit: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectOde: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ fromLocationCode: string
+ fromOwnerCode: string
+}
+
+// 查询制品拆解申请子列表
+export const getProductdismantleRequestDetailaPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productdismantle-request-detaila/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productdismantle-request-detaila/page`, params })
+ }
+}
+
+// 查询制品拆解申请子详情
+export const getProductdismantleRequestDetaila = async (id: number) => {
+ return await request.get({ url: `/wms/productdismantle-request-detaila/get?id=` + id })
+}
+
+// 新增制品拆解申请子
+export const createProductdismantleRequestDetaila = async (data: ProductdismantleRequestDetailaVO) => {
+ return await request.post({ url: `/wms/productdismantle-request-detaila/create`, data })
+}
+
+// 修改制品拆解申请子
+export const updateProductdismantleRequestDetaila = async (data: ProductdismantleRequestDetailaVO) => {
+ return await request.put({ url: `/wms/productdismantle-request-detaila/update`, data })
+}
+
+// 删除制品拆解申请子
+export const deleteProductdismantleRequestDetaila = async (id: number) => {
+ return await request.delete({ url: `/wms/productdismantle-request-detaila/delete?id=` + id })
+}
+
+// 导出制品拆解申请子 Excel
+export const exportProductdismantleRequestDetaila = async (params) => {
+ return await request.download({ url: `/wms/productdismantle-request-detaila/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productdismantle-request-detaila/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productdismantleRequestMain/index.ts b/src/api/wms/productdismantleRequestMain/index.ts
new file mode 100644
index 0000000..e4af1dd
--- /dev/null
+++ b/src/api/wms/productdismantleRequestMain/index.ts
@@ -0,0 +1,101 @@
+import request from '@/config/axios'
+
+export interface ProductdismantleRequestMainVO {
+ workshopCode: string
+ team: string
+ shift: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询制品拆解申请主列表
+export const getProductdismantleRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productdismantle-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productdismantle-request-main/page`, params })
+ }
+}
+
+// 查询制品拆解申请主详情
+export const getProductdismantleRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/productdismantle-request-main/get?id=` + id })
+}
+
+// 新增制品拆解申请主
+export const createProductdismantleRequestMain = async (data: ProductdismantleRequestMainVO) => {
+ return await request.post({ url: `/wms/productdismantle-request-main/create`, data })
+}
+
+// 修改制品拆解申请主
+export const updateProductdismantleRequestMain = async (data: ProductdismantleRequestMainVO) => {
+ return await request.put({ url: `/wms/productdismantle-request-main/update`, data })
+}
+
+// 删除制品拆解申请主
+export const deleteProductdismantleRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productdismantle-request-main/delete?id=` + id })
+}
+
+// 导出制品拆解申请主 Excel
+export const exportProductdismantleRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productdismantle-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productdismantle-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productdismantle-request-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/productdismantle-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/productdismantle-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/productdismantle-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/productdismantle-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/productdismantle-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/productdismantle-request-main/handle?id=' + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionDetail/index.ts b/src/api/wms/productionDetail/index.ts
new file mode 100644
index 0000000..b9c7674
--- /dev/null
+++ b/src/api/wms/productionDetail/index.ts
@@ -0,0 +1,53 @@
+import request from '@/config/axios'
+
+export interface ProductionDetailVO {
+ bomVersion: string
+ goodQty: number
+ notGoodQty: number
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ planQty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ available: string
+}
+
+// 查询生产计划子列表
+export const getProductionDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/production-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/production-detail/page`, params })
+ }
+}
+
+// 查询生产计划子详情
+export const getProductionDetail = async (id: number) => {
+ return await request.get({ url: `/wms/production-detail/get?id=` + id })
+}
+
+// 新增生产计划子
+export const createProductionDetail = async (data: ProductionDetailVO) => {
+ return await request.post({ url: `/wms/production-detail/create`, data })
+}
+
+// 修改生产计划子
+export const updateProductionDetail = async (data: ProductionDetailVO) => {
+ return await request.put({ url: `/wms/production-detail/update`, data })
+}
+
+// 删除生产计划子
+export const deleteProductionDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/production-detail/delete?id=` + id })
+}
+
+// 导出生产计划子 Excel
+export const exportProductionDetail = async (params) => {
+ return await request.download({ url: `/wms/production-detail/export-excel`, params })
+}
diff --git a/src/api/wms/productionMain/index.ts b/src/api/wms/productionMain/index.ts
new file mode 100644
index 0000000..372b1c8
--- /dev/null
+++ b/src/api/wms/productionMain/index.ts
@@ -0,0 +1,201 @@
+import request from '@/config/axios'
+
+export interface ProductionMainVO {
+ displayOrder: number
+ workshop: string
+ productionLine: string
+ shift: string
+ team: string
+ planDate: Date
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ beginTime: Date
+ endTime: Date
+ status: string
+ updateTime: Date
+ updater: string
+ available: string
+ woNumber: string
+ woLine: string
+}
+
+// 查询生产计划主列表
+export const getProductionMainPage = async (params) => {
+ params.planType = 'predict'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/production-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/production-main/page`, params })
+ }
+}
+
+// 查询 —— 装配 主列表
+export const getProductionMainAssemblePage = async (params) => {
+ params.planType = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/production-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/production-main/page`, params })
+ }
+}
+
+// 查询 —— 预生产备件 主列表
+export const getProductionMainPredictSparePartPage = async (params) => {
+ params.planType = 'predictSparePart'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/production-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/production-main/page`, params })
+ }
+}
+
+// 查询 —— 装配备件 主列表
+export const getProductionMainASparePartPage = async (params) => {
+ params.planType = 'assembleSparePart'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/production-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/production-main/page`, params })
+ }
+}
+
+// 查询生产计划子表数据不可用物料
+export const getProductionDetail = async (id: number) => {
+ return await request.get({ url: `/wms/production-main/getDetailByAvailable?id=` + id })
+}
+
+// 查询生产计划主详情
+export const getProductionMain = async (id: number) => {
+ return await request.get({ url: `/wms/production-main/get?id=` + id })
+}
+
+// 新增生产计划主
+export const createProductionMain = async (data: ProductionMainVO) => {
+ return await request.post({ url: `/wms/production-main/create`, data })
+}
+
+// 修改生产计划主
+export const updateProductionMain = async (data: ProductionMainVO) => {
+ return await request.put({ url: `/wms/production-main/update`, data })
+}
+
+// 删除生产计划主
+export const deleteProductionMain = async (id: number) => {
+ return await request.delete({ url: `/wms/production-main/delete?id=` + id })
+}
+
+// 导出预生产计划主 Excel
+export const exportProductionMain = async (params) => {
+ params.planType = 'predict'
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/production-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/production-main/export-excel`, params })
+ }
+}
+
+// 导出装配计划主 Excel
+export const exportProductionMainAssemble = async (params) => {
+ params.planType = 'assemble'
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/production-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/production-main/export-excel`, params })
+ }
+}
+
+// 导出装配备件计划主 Excel
+export const exportProductionMainPredictSparePart = async (params) => {
+ params.planType = 'predictSparePart'
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/production-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/production-main/export-excel`, params })
+ }
+}
+
+// 导出预生产备件计划主 Excel
+export const exportProductionMainAssembleSparePart = async (params) => {
+ params.planType = 'assembleSparePart'
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/production-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/production-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/production-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/production-main/close?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/production-main/submit?id=' + id })
+}
+
+// 打开
+export const open = (id) => {
+ return request.put({ url: '/wms/production-main/open?id=' + id })
+}
+
+// 驳回
+export const reject = (id) => {
+ return request.put({ url: '/wms/production-main/reject?id=' + id })
+}
+
+// 驳回
+export const agree = (id) => {
+ return request.put({ url: '/wms/production-main/agree?id=' + id })
+}
+
+// 发布
+export const publish = (id) => {
+ return request.put({ url: '/wms/production-main/publish?id=' + id })
+}
+
+// 重置
+export const resetting = (id) => {
+ return request.put({ url: '/wms/production-main/resetting?id=' + id })
+}
+
+// 创建备料计划
+export const generatePreparetoissue = (number) => {
+ return request.post({ url: '/wms/production-main/generatePreparetoissue?number=' + number })
+}
+
+// 创建制品收货申请
+export const generateProductreceiptRequest = (number) => {
+ return request.post({ url: '/wms/production-main/generateProductreceiptRequest?number=' + number })
+}
+
+// 创建发料申请
+export const generateIssueRequest = (number) => {
+ return request.post({ url: '/wms/preparetoissue-main/generateIssueRequest?number=' + number })
+}
+
+
+
+
+
+
diff --git a/src/api/wms/productionitemcodeSpareitemcode/index.ts b/src/api/wms/productionitemcodeSpareitemcode/index.ts
new file mode 100644
index 0000000..69a32a0
--- /dev/null
+++ b/src/api/wms/productionitemcodeSpareitemcode/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface ProductionitemcodeSpareitemcodeVO {
+ id: number
+ productionItemCode: string
+ spareItemCode: string
+ available: string
+ remark: string
+}
+
+// 查询量产件备件关系列表
+export const getProductionitemcodeSpareitemcodePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionitemcode-spareitemcode/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionitemcode-spareitemcode/page`, params })
+ }
+}
+
+// 查询量产件备件关系列表
+export const getProductionitemcodeSpareitemcodeRelation = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionitemcode-spareitemcode/getRelationSenior', data })
+ } else {
+ return await request.get({ url: `/wms/productionitemcode-spareitemcode/getRelation`, params })
+ }
+}
+
+// 查询量产件备件关系详情
+export const getProductionitemcodeSpareitemcode = async (id: number) => {
+ return await request.get({ url: `/wms/productionitemcode-spareitemcode/get?id=` + id })
+}
+
+// 新增量产件备件关系
+export const createProductionitemcodeSpareitemcode = async (data: ProductionitemcodeSpareitemcodeVO) => {
+ return await request.post({ url: `/wms/productionitemcode-spareitemcode/create`, data })
+}
+
+// 修改量产件备件关系
+export const updateProductionitemcodeSpareitemcode = async (data: ProductionitemcodeSpareitemcodeVO) => {
+ return await request.put({ url: `/wms/productionitemcode-spareitemcode/update`, data })
+}
+
+// 删除量产件备件关系
+export const deleteProductionitemcodeSpareitemcode = async (id: number) => {
+ return await request.delete({ url: `/wms/productionitemcode-spareitemcode/delete?id=` + id })
+}
+
+// 导出量产件备件关系 Excel
+export const exportProductionitemcodeSpareitemcode = async (params) => {
+ return await request.download({ url: `/wms/productionitemcode-spareitemcode/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionitemcode-spareitemcode/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionline/index.ts b/src/api/wms/productionline/index.ts
new file mode 100644
index 0000000..3a0176b
--- /dev/null
+++ b/src/api/wms/productionline/index.ts
@@ -0,0 +1,72 @@
+import request from '@/config/axios'
+
+export interface ProductionlineVO {
+ code: string
+ name: string
+ description: string
+ type: string
+ workshopCode: string
+ rawLocationCode: string
+ fgLocationCode: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询生产线列表
+export const getProductionlinePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/productionline/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionline/page`, params })
+ }
+}
+
+// 查询生产线详情
+export const getProductionline = async (id: number) => {
+ return await request.get({ url: `/wms/productionline/get?id=` + id })
+}
+
+// 新增生产线
+export const createProductionline = async (data: ProductionlineVO) => {
+ return await request.post({ url: `/wms/productionline/create`, data })
+}
+
+// 修改生产线
+export const updateProductionline = async (data: ProductionlineVO) => {
+ return await request.put({ url: `/wms/productionline/update`, data })
+}
+
+// 删除生产线
+export const deleteProductionline = async (id: number) => {
+ return await request.delete({ url: `/wms/productionline/delete?id=` + id })
+}
+
+// 导出生产线 Excel
+export const exportProductionline = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionline/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productionline/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionline/get-import-template' })
+}
+
+
+// 查询生产线列表
+export const getProductionlineNoPage = async (params) => {
+ return await request.get({ url: `/wms/productionline/noPage`, params })
+}
+
+// 根据code获取数据列表
+export const getProductionlineByCodes = async (params) => {
+ return await request.get({ url: `/wms/productionline/listByCodes`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionlineitem/index.ts b/src/api/wms/productionlineitem/index.ts
new file mode 100644
index 0000000..29715b3
--- /dev/null
+++ b/src/api/wms/productionlineitem/index.ts
@@ -0,0 +1,90 @@
+import request from '@/config/axios'
+
+export interface ProductionlineitemVO {
+ fgLocationCode: string
+ productionLineCode: string
+ itemCode: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询生产线物料关系列表
+export const getProductionlineitemPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/productionlineitem/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionlineitem/page`, params })
+ }
+}
+
+// 查询生产线物料关系列表
+export const getProductionlineitemPageBom = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/productionlineitem/seniorBom', data })
+ } else {
+ return await request.get({ url: `/wms/productionlineitem/pageBom`, params })
+ }
+}
+
+
+// 查询生产线物料关系列表——根据 生产线 物料类型为原料和半成品
+export const getProductionlineitemPageByItemtype = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionlineitem/pageByItemtypeSenior', data })
+ } else {
+ return await request.get({ url: `/wms/productionlineitem/pageByItemtype`, params })
+ }
+
+}
+
+// 查询生产线物料关系详情
+export const getProductionlineitem = async (id: number) => {
+ return await request.get({ url: `/wms/productionlineitem/get?id=` + id })
+}
+
+// 新增生产线物料关系
+export const createProductionlineitem = async (data: ProductionlineitemVO) => {
+ return await request.post({ url: `/wms/productionlineitem/create`, data })
+}
+
+// 修改生产线物料关系
+export const updateProductionlineitem = async (data: ProductionlineitemVO) => {
+ return await request.put({ url: `/wms/productionlineitem/update`, data })
+}
+
+// 删除生产线物料关系
+export const deleteProductionlineitem = async (id: number) => {
+ return await request.delete({ url: `/wms/productionlineitem/delete?id=` + id })
+}
+
+// 导出生产线物料关系 Excel
+export const exportProductionlineitem = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionlineitem/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productionlineitem/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionlineitem/get-import-template' })
+}
+
+
+export const getProductionLineCodelistByCodes = async (params) => {
+ return await request.get({ url: `/wms/productionlineitem/listByCodes`, params })
+}
+
+export const selectItemCodeToProductionLineCode = async (itemCode: String) => {
+ return await request.get({ url: `/wms/productionlineitem/selectItemCodeToProductionLineCode?itemCode=` + itemCode })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionreceiptJobDetail/index.ts b/src/api/wms/productionreceiptJobDetail/index.ts
new file mode 100644
index 0000000..9300b16
--- /dev/null
+++ b/src/api/wms/productionreceiptJobDetail/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface ProductionreceiptJobDetailVO {
+ productionLineCode: string
+ workStationCode: string
+ onTheWayLocationCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ fromLocationCode: string
+ toLocationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询生产收料任务子列表
+export const getProductionreceiptJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreceipt-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreceipt-job-detail/page`, params })
+ }
+}
+
+// 查询生产收料任务子详情
+export const getProductionreceiptJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productionreceipt-job-detail/get?id=` + id })
+}
+
+// 新增生产收料任务子
+export const createProductionreceiptJobDetail = async (data: ProductionreceiptJobDetailVO) => {
+ return await request.post({ url: `/wms/productionreceipt-job-detail/create`, data })
+}
+
+// 修改生产收料任务子
+export const updateProductionreceiptJobDetail = async (data: ProductionreceiptJobDetailVO) => {
+ return await request.put({ url: `/wms/productionreceipt-job-detail/update`, data })
+}
+
+// 删除生产收料任务子
+export const deleteProductionreceiptJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productionreceipt-job-detail/delete?id=` + id })
+}
+
+// 导出生产收料任务子 Excel
+export const exportProductionreceiptJobDetail = async (params) => {
+ return await request.download({ url: `/wms/productionreceipt-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionreceipt-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionreceiptJobMain/index.ts b/src/api/wms/productionreceiptJobMain/index.ts
new file mode 100644
index 0000000..34c3e07
--- /dev/null
+++ b/src/api/wms/productionreceiptJobMain/index.ts
@@ -0,0 +1,108 @@
+import request from '@/config/axios'
+
+export interface ProductionreceiptJobMainVO {
+ issueJobNumber: string
+ workshopCode: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ update: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ useOnTheWayLocation: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询生产收料任务主列表
+export const getProductionreceiptJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreceipt-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreceipt-job-main/page`, params })
+ }
+}
+
+// 查询生产收料任务主详情
+export const getProductionreceiptJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/productionreceipt-job-main/get?id=` + id })
+}
+
+// 新增生产收料任务主
+export const createProductionreceiptJobMain = async (data: ProductionreceiptJobMainVO) => {
+ return await request.post({ url: `/wms/productionreceipt-job-main/create`, data })
+}
+
+// 修改生产收料任务主
+export const updateProductionreceiptJobMain = async (data: ProductionreceiptJobMainVO) => {
+ return await request.put({ url: `/wms/productionreceipt-job-main/update`, data })
+}
+
+// 删除生产收料任务主
+export const deleteProductionreceiptJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productionreceipt-job-main/delete?id=` + id })
+}
+
+// 导出生产收料任务主 Excel
+export const exportProductionreceiptJobMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionreceipt-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productionreceipt-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionreceipt-job-main/get-import-template' })
+}
+
+// 承接发料任务
+export const acceptIssueMain = async (id) => {
+ return await request.put({ url: `/wms/productionreceipt-job-main/accept?id=` + id })
+}
+
+// 放弃发料任务
+export const abandonIssueMain = async (id) => {
+ return await request.put({ url: `/wms/productionreceipt-job-main/abandon?id=` + id })
+}
+
+// 关闭发料任务
+export const closeIssueMain = async (id) => {
+ return await request.put({ url: `/wms/productionreceipt-job-main/close?id=` + id })
+}
+
+// 执行发料任务
+export const executeIssueMain = async (data) => {
+ return await request.put({ url: `/wms/productionreceipt-job-main/execute`, data})
+}
\ No newline at end of file
diff --git a/src/api/wms/productionreceiptRecordDetail/index.ts b/src/api/wms/productionreceiptRecordDetail/index.ts
new file mode 100644
index 0000000..1afb5f5
--- /dev/null
+++ b/src/api/wms/productionreceiptRecordDetail/index.ts
@@ -0,0 +1,77 @@
+import request from '@/config/axios'
+
+export interface ProductionreceiptRecordDetailVO {
+ productionLineCode: string
+ workStationCode: string
+ onTheWayLocationCode: string
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromBatch: string
+ toBatch: string
+ inventoryStatus: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询生产收料记录子列表
+export const getProductionreceiptRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreceipt-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreceipt-record-detail/page`, params })
+ }
+}
+
+// 查询生产收料记录子详情
+export const getProductionreceiptRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productionreceipt-record-detail/get?id=` + id })
+}
+
+// 新增生产收料记录子
+export const createProductionreceiptRecordDetail = async (data: ProductionreceiptRecordDetailVO) => {
+ return await request.post({ url: `/wms/productionreceipt-record-detail/create`, data })
+}
+
+// 修改生产收料记录子
+export const updateProductionreceiptRecordDetail = async (data: ProductionreceiptRecordDetailVO) => {
+ return await request.put({ url: `/wms/productionreceipt-record-detail/update`, data })
+}
+
+// 删除生产收料记录子
+export const deleteProductionreceiptRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productionreceipt-record-detail/delete?id=` + id })
+}
+
+// 导出生产收料记录子 Excel
+export const exportProductionreceiptRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/productionreceipt-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionreceipt-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionreceiptRecordMain/index.ts b/src/api/wms/productionreceiptRecordMain/index.ts
new file mode 100644
index 0000000..c17a65c
--- /dev/null
+++ b/src/api/wms/productionreceiptRecordMain/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface ProductionreceiptRecordMainVO {
+ issueJobNumber: string
+ jobNumber: string
+ workshopCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ useOnTheWayLocation: string
+ available: string
+}
+
+// 查询生产收料记录主列表
+export const getProductionreceiptRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreceipt-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreceipt-record-main/page`, params })
+ }
+}
+
+// 查询生产收料记录主详情
+export const getProductionreceiptRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/productionreceipt-record-main/get?id=` + id })
+}
+
+// 新增生产收料记录主
+export const createProductionreceiptRecordMain = async (data: ProductionreceiptRecordMainVO) => {
+ return await request.post({ url: `/wms/productionreceipt-record-main/create`, data })
+}
+
+// 修改生产收料记录主
+export const updateProductionreceiptRecordMain = async (data: ProductionreceiptRecordMainVO) => {
+ return await request.put({ url: `/wms/productionreceipt-record-main/update`, data })
+}
+
+// 删除生产收料记录主
+export const deleteProductionreceiptRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productionreceipt-record-main/delete?id=` + id })
+}
+
+// 导出生产收料记录主 Excel
+export const exportProductionreceiptRecordMain = async (params) => {
+ if (params.isSearch){
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionreceipt-record-main/export-excel-senior`, data })
+ }else {
+ return await request.download({ url: `/wms/productionreceipt-record-main/export-excel`, params })
+ }
+
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionreceipt-record-main/get-import-template' })
+}
diff --git a/src/api/wms/productionreturnJobDetail/index.ts b/src/api/wms/productionreturnJobDetail/index.ts
new file mode 100644
index 0000000..50b6257
--- /dev/null
+++ b/src/api/wms/productionreturnJobDetail/index.ts
@@ -0,0 +1,87 @@
+import request from '@/config/axios'
+
+export interface ProductionreturnJobDetailVO {
+ productionLineCode: string
+ workStationCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ fromLocationCode: string
+ toLocationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询生产退料任务子列表
+export const getProductionreturnJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreturn-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreturn-job-detail/page`, params })
+ }
+}
+// 查询生产退料任务子列表
+export const getProductionreturnJobDetailPageStore = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreturn-job-detail-store/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreturn-job-detail-store/page`, params })
+ }
+}
+
+// 查询隔离退料任务子列表
+export const getProductionreturnJobDetailPageHold = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreturn-job-detail-hold/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreturn-job-detail-hold/page`, params })
+ }
+}
+
+// 查询生产退料任务子详情
+export const getProductionreturnJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productionreturn-job-detail/get?id=` + id })
+}
+
+// 新增生产退料任务子
+export const createProductionreturnJobDetail = async (data: ProductionreturnJobDetailVO) => {
+ return await request.post({ url: `/wms/productionreturn-job-detail/create`, data })
+}
+
+// 修改生产退料任务子
+export const updateProductionreturnJobDetail = async (data: ProductionreturnJobDetailVO) => {
+ return await request.put({ url: `/wms/productionreturn-job-detail/update`, data })
+}
+
+// 删除生产退料任务子
+export const deleteProductionreturnJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productionreturn-job-detail/delete?id=` + id })
+}
+
+// 导出生产退料任务子 Excel
+export const exportProductionreturnJobDetail = async (params) => {
+ return await request.download({ url: `/wms/productionreturn-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionreturn-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionreturnJobMain/index.ts b/src/api/wms/productionreturnJobMain/index.ts
new file mode 100644
index 0000000..74bd69d
--- /dev/null
+++ b/src/api/wms/productionreturnJobMain/index.ts
@@ -0,0 +1,128 @@
+import request from '@/config/axios'
+
+export interface ProductionreturnJobMainVO {
+ requestNumber: string
+ workshopCode: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询生产退料任务主列表
+export const getProductionreturnJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreturn-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreturn-job-main/page`, params })
+ }
+}
+
+// 查询生产退料任务主详情
+export const getProductionreturnJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/productionreturn-job-main/get?id=` + id })
+}
+
+// 新增生产退料任务主
+export const createProductionreturnJobMain = async (data: ProductionreturnJobMainVO) => {
+ return await request.post({ url: `/wms/productionreturn-job-main/create`, data })
+}
+
+// 修改生产退料任务主
+export const updateProductionreturnJobMain = async (data: ProductionreturnJobMainVO) => {
+ return await request.put({ url: `/wms/productionreturn-job-main/update`, data })
+}
+
+// 删除生产退料任务主
+export const deleteProductionreturnJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productionreturn-job-main/delete?id=` + id })
+}
+
+// 导出生产退料任务主 Excel
+export const exportProductionreturnJobMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionreturn-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productionreturn-job-main/export-excel`, params })
+ }
+}
+
+// 导出生产退料任务主 Excel -store
+export const exportProductionreturnJobMainStore = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionreturn-job-detail-store/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productionreturn-job-detail-store/export-excel`, params })
+ }
+}
+
+// 导出隔离退料任务主 Excel -hold
+export const exportProductionreturnJobMainHold = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionreturn-job-detail-hold/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productionreturn-job-detail-hold/export-excel`, params })
+ }
+}
+
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionreturn-job-main/get-import-template' })
+}
+
+// 承接发料任务
+export const acceptProductionreturnMain = async (id) => {
+ return await request.put({ url: `/wms/productionreturn-job-main/accept?id=` + id })
+}
+
+// 放弃发料任务
+export const abandonProductionreturnMain = async (id) => {
+ return await request.put({ url: `/wms/productionreturn-job-main/abandon?id=` + id })
+}
+
+// 关闭发料任务
+export const closeProductionreturnMain = async (id) => {
+ return await request.put({ url: `/wms/productionreturn-job-main/close?id=` + id })
+}
+
+// 执行发料任务
+export const executeProductionreturnMain = async (data) => {
+ return await request.put({ url: `/wms/productionreturn-job-main/execute`, data})
+}
\ No newline at end of file
diff --git a/src/api/wms/productionreturnRecordDetail/index.ts b/src/api/wms/productionreturnRecordDetail/index.ts
new file mode 100644
index 0000000..910cb94
--- /dev/null
+++ b/src/api/wms/productionreturnRecordDetail/index.ts
@@ -0,0 +1,96 @@
+import request from '@/config/axios'
+
+export interface ProductionreturnRecordDetailVO {
+ productionLineCode: string
+ workStationCode: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ fromPackingNumber: string
+ fromContainerNumber: string
+ fromBatch: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toOwnerCode: string
+ toPackingNumber: string
+ toContainerNumber: string
+ toBatch: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+
+// 查询生产退料记录子列表
+export const getProductionreturnRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreturn-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreturn-record-detail/page`, params })
+ }
+}
+// 查询生产退料记录子列表
+export const getProductionreturnRecordDetailPageStore = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreturn-record-detail-store/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreturn-record-detail-store/page`, params })
+ }
+}
+// 查询隔离退料记录子列表
+export const getProductionreturnRecordDetailPageHold = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreturn-record-detail-hold/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreturn-record-detail-hold/page`, params })
+ }
+}
+
+// 查询生产退料记录子详情
+export const getProductionreturnRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productionreturn-record-detail/get?id=` + id })
+}
+
+// 新增生产退料记录子
+export const createProductionreturnRecordDetail = async (data: ProductionreturnRecordDetailVO) => {
+ return await request.post({ url: `/wms/productionreturn-record-detail/create`, data })
+}
+
+// 修改生产退料记录子
+export const updateProductionreturnRecordDetail = async (data: ProductionreturnRecordDetailVO) => {
+ return await request.put({ url: `/wms/productionreturn-record-detail/update`, data })
+}
+
+// 删除生产退料记录子
+export const deleteProductionreturnRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productionreturn-record-detail/delete?id=` + id })
+}
+
+// 导出生产退料记录子 Excel
+export const exportProductionreturnRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/productionreturn-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionreturn-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionreturnRecordMain/index.ts b/src/api/wms/productionreturnRecordMain/index.ts
new file mode 100644
index 0000000..5515c4b
--- /dev/null
+++ b/src/api/wms/productionreturnRecordMain/index.ts
@@ -0,0 +1,103 @@
+import request from '@/config/axios'
+
+export interface ProductionreturnRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ workshopCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ available: string
+}
+
+// 查询生产退料记录主列表
+export const getProductionreturnRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreturn-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreturn-record-main/page`, params })
+ }
+}
+
+// 查询生产退料记录主详情
+export const getProductionreturnRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/productionreturn-record-main/get?id=` + id })
+}
+
+// 新增生产退料记录主
+export const createProductionreturnRecordMain = async (data: ProductionreturnRecordMainVO) => {
+ return await request.post({ url: `/wms/productionreturn-record-main/create`, data })
+}
+
+// 修改生产退料记录主
+export const updateProductionreturnRecordMain = async (data: ProductionreturnRecordMainVO) => {
+ return await request.put({ url: `/wms/productionreturn-record-main/update`, data })
+}
+
+// 删除生产退料记录主
+export const deleteProductionreturnRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productionreturn-record-main/delete?id=` + id })
+}
+
+// 导出生产退料记录主 Excel
+export const exportProductionreturnRecordMain = async (params) => {
+ if (params.isSearch){
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionreturn-record-main/export-excel-senior`, data })
+ }else {
+ return await request.download({ url: `/wms/productionreturn-record-main/export-excel`, params })
+ }
+}
+// 导出生产退料记录主 Excel -store
+export const exportProductionreturnRecordMainStore = async (params) => {
+ if (params.isSearch){
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionreturn-record-detail-store/export-excel-senior`, data })
+ }else {
+ return await request.download({ url: `/wms/productionreturn-record-detail-store/export-excel`, params })
+ }
+}
+// 导出隔离退料记录主 Excel -hold
+export const exportProductionreturnRecordMainHold = async (params) => {
+ if (params.isSearch){
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionreturn-record-detail-hold/export-excel-senior`, data })
+ }else {
+ return await request.download({ url: `/wms/productionreturn-record-detail-hold/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionreturn-record-main/get-import-template' })
+}
+
+
+// 接收隔离收货
+export const receive = (id) => {
+ return request.put({ url: '/wms/productionreturn-record-main/receive?id=' + id })
+}
+
+// 拒收隔离收货
+export const refuse = (id) => {
+ return request.put({ url: '/wms/productionreturn-record-main/refuse?id=' + id })
+}
diff --git a/src/api/wms/productionreturnRequestDetail/index.ts b/src/api/wms/productionreturnRequestDetail/index.ts
new file mode 100644
index 0000000..c47890e
--- /dev/null
+++ b/src/api/wms/productionreturnRequestDetail/index.ts
@@ -0,0 +1,73 @@
+import request from '@/config/axios'
+
+export interface ProductionreturnRequestDetailVO {
+ productionLineCode: string
+ workStationCode: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ toOwnerCode: string
+}
+
+// 查询生产退料申请子列表
+export const getProductionreturnRequestDetailPage = async (params) => {
+ params.businessType = 'ReturnToStore'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreturn-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreturn-request-detail/page`, params })
+ }
+}
+
+// 查询生产退料申请子详情
+export const getProductionreturnRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productionreturn-request-detail/get?id=` + id })
+}
+
+// 新增生产退料申请子
+export const createProductionreturnRequestDetail = async (data: ProductionreturnRequestDetailVO) => {
+ return await request.post({ url: `/wms/productionreturn-request-detail/create`, data })
+}
+
+// 修改生产退料申请子
+export const updateProductionreturnRequestDetail = async (data: ProductionreturnRequestDetailVO) => {
+ return await request.put({ url: `/wms/productionreturn-request-detail/update`, data })
+}
+
+// 删除生产退料申请子
+export const deleteProductionreturnRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productionreturn-request-detail/delete?id=` + id })
+}
+
+// 导出生产退料申请子 Excel
+export const exportProductionreturnRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/productionreturn-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionreturn-request-detail/get-import-template' })
+}
+
+// 创建包装信息后更新子表数据packingNumber
+export const updateDetailPackingNumber = async (id: number, number) => {
+ return await request.put({ url: '/wms/productionreturn-request-detail/updateDetailPackingNumber?id=' + id + '&number=' + number })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionreturnRequestDetailNo/index.ts b/src/api/wms/productionreturnRequestDetailNo/index.ts
new file mode 100644
index 0000000..7b9ca63
--- /dev/null
+++ b/src/api/wms/productionreturnRequestDetailNo/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface ProductionreturnRequestDetailVO {
+ productionLineCode: string
+ workStationCode: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ toOwnerCode: string
+}
+
+// 查询生产退料申请子列表
+export const getProductionreturnRequestDetailPage = async (params) => {
+ params.businessType = 'ReturnToHold'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreturn-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreturn-request-detail/page`, params })
+ }
+}
+
+// 查询生产退料申请子详情
+export const getProductionreturnRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productionreturn-request-detail/get?id=` + id })
+}
+
+// 新增生产退料申请子
+export const createProductionreturnRequestDetail = async (data: ProductionreturnRequestDetailVO) => {
+ return await request.post({ url: `/wms/productionreturn-request-detail/create`, data })
+}
+
+// 修改生产退料申请子
+export const updateProductionreturnRequestDetail = async (data: ProductionreturnRequestDetailVO) => {
+ return await request.put({ url: `/wms/productionreturn-request-detail/update`, data })
+}
+
+// 删除生产退料申请子
+export const deleteProductionreturnRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productionreturn-request-detail/delete?id=` + id })
+}
+
+// 导出生产退料申请子 Excel
+export const exportProductionreturnRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/productionreturn-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionreturn-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionreturnRequestMain/index.ts b/src/api/wms/productionreturnRequestMain/index.ts
new file mode 100644
index 0000000..04a6c8a
--- /dev/null
+++ b/src/api/wms/productionreturnRequestMain/index.ts
@@ -0,0 +1,104 @@
+import request from '@/config/axios'
+
+export interface ProductionreturnRequestMainVO {
+ workshopCode: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询生产退料申请主列表
+export const getProductionreturnRequestMainPage = async (params) => {
+ params.businessType = 'ReturnToStore'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreturn-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreturn-request-main/page`, params })
+ }
+}
+
+// 查询生产退料申请主详情
+export const getProductionreturnRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/productionreturn-request-main/get?id=` + id })
+}
+
+// 新增生产退料申请主
+export const createProductionreturnRequestMain = async (data: ProductionreturnRequestMainVO) => {
+ return await request.post({ url: `/wms/productionreturn-request-main/create`, data })
+}
+
+// 修改生产退料申请主
+export const updateProductionreturnRequestMain = async (data: ProductionreturnRequestMainVO) => {
+ return await request.put({ url: `/wms/productionreturn-request-main/update`, data })
+}
+
+// 删除生产退料申请主
+export const deleteProductionreturnRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productionreturn-request-main/delete?id=` + id })
+}
+
+// 导出生产退料申请主 Excel
+export const exportProductionreturnRequestMain = async (params) => {
+ params.businessType = 'ReturnToStore'
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionreturn-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productionreturn-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionreturn-request-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/productionreturn-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/productionreturn-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/productionreturn-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/productionreturn-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/productionreturn-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/productionreturn-request-main/handle?id=' + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionreturnRequestMainNo/index.ts b/src/api/wms/productionreturnRequestMainNo/index.ts
new file mode 100644
index 0000000..af389c5
--- /dev/null
+++ b/src/api/wms/productionreturnRequestMainNo/index.ts
@@ -0,0 +1,104 @@
+import request from '@/config/axios'
+
+export interface ProductionreturnRequestMainVO {
+ workshopCode: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询不合格生产退料申请主列表
+export const getProductionreturnRequestMainPage = async (params) => {
+ params.businessType = 'ReturnToHold'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionreturn-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionreturn-request-main/page`, params })
+ }
+}
+
+// 查询不合格生产退料申请主详情
+export const getProductionreturnRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/productionreturn-request-main/get?id=` + id })
+}
+
+// 新增不合格生产退料申请主
+export const createProductionreturnRequestMain = async (data: ProductionreturnRequestMainVO) => {
+ return await request.post({ url: `/wms/productionreturn-request-main/create`, data })
+}
+
+// 修改不合格生产退料申请主
+export const updateProductionreturnRequestMain = async (data: ProductionreturnRequestMainVO) => {
+ return await request.put({ url: `/wms/productionreturn-request-main/update`, data })
+}
+
+// 删除不合格生产退料申请主
+export const deleteProductionreturnRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productionreturn-request-main/delete?id=` + id })
+}
+
+// 导出不合格生产退料申请主 Excel
+export const exportProductionreturnRequestMain = async (params) => {
+ params.businessType = 'ReturnToHold'
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionreturn-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productionreturn-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionreturn-request-main/get-import-template-hold' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/productionreturn-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/productionreturn-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/productionreturn-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/productionreturn-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/productionreturn-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/productionreturn-request-main/handle?id=' + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionscrapRecordDetail/index.ts b/src/api/wms/productionscrapRecordDetail/index.ts
new file mode 100644
index 0000000..1aa05cb
--- /dev/null
+++ b/src/api/wms/productionscrapRecordDetail/index.ts
@@ -0,0 +1,77 @@
+import request from '@/config/axios'
+
+export interface ProductionscrapRecordDetailVO {
+ id: number
+ productionLineCode: string
+ workStationCode: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ fromPackingNumber: string
+ fromContainerNumber: string
+ fromBatch: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toOwnerCode: string
+ toPackingNumber: string
+ toContainerNumber: string
+ toBatch: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ masterId: number
+ number: string
+ itemCode: string
+ remark: string
+ siteId: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+
+// 查询线边原料报废记录子列表
+export const getProductionscrapRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionscrap-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionscrap-record-detail/page`, params })
+ }
+}
+
+// 查询线边原料报废记录子详情
+export const getProductionscrapRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productionscrap-record-detail/get?id=` + id })
+}
+
+// 新增线边原料报废记录子
+export const createProductionscrapRecordDetail = async (data: ProductionscrapRecordDetailVO) => {
+ return await request.post({ url: `/wms/productionscrap-record-detail/create`, data })
+}
+
+// 修改线边原料报废记录子
+export const updateProductionscrapRecordDetail = async (data: ProductionscrapRecordDetailVO) => {
+ return await request.put({ url: `/wms/productionscrap-record-detail/update`, data })
+}
+
+// 删除线边原料报废记录子
+export const deleteProductionscrapRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productionscrap-record-detail/delete?id=` + id })
+}
+
+// 导出线边原料报废记录子 Excel
+export const exportProductionscrapRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/productionscrap-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionscrap-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionscrapRecordMain/index.ts b/src/api/wms/productionscrapRecordMain/index.ts
new file mode 100644
index 0000000..3db1ddd
--- /dev/null
+++ b/src/api/wms/productionscrapRecordMain/index.ts
@@ -0,0 +1,82 @@
+import request from '@/config/axios'
+
+export interface ProductionscrapRecordMainVO {
+ id: number
+ requestNumber: string
+ jobNumber: string
+ workshopCode: string
+ details: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ userGroupCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+ code: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+}
+
+// 查询线边原料报废记录主列表
+export const getProductionscrapRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionscrap-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionscrap-record-main/page`, params })
+ }
+}
+
+// 查询线边原料报废记录主详情
+export const getProductionscrapRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/productionscrap-record-main/get?id=` + id })
+}
+
+// 新增线边原料报废记录主
+export const createProductionscrapRecordMain = async (data: ProductionscrapRecordMainVO) => {
+ return await request.post({ url: `/wms/productionscrap-record-main/create`, data })
+}
+
+// 修改线边原料报废记录主
+export const updateProductionscrapRecordMain = async (data: ProductionscrapRecordMainVO) => {
+ return await request.put({ url: `/wms/productionscrap-record-main/update`, data })
+}
+
+// 删除线边原料报废记录主
+export const deleteProductionscrapRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productionscrap-record-main/delete?id=` + id })
+}
+
+// 导出线边原料报废记录主 Excel
+export const exportProductionscrapRecordMain = async (params) => {
+ if (params.isSearch){
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productionscrap-record-main/export-excel-senior`, data })
+ }else {
+ return await request.download({ url: `/wms/productionscrap-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionscrap-record-main/get-import-template' })
+}
+
+// 撤销
+export const revoke = async (id: number) => {
+ return await request.get({ url: `/wms/productionscrap-record-main/revoke?id=` + id })
+}
diff --git a/src/api/wms/productionscrapRequestDetail/index.ts b/src/api/wms/productionscrapRequestDetail/index.ts
new file mode 100644
index 0000000..b5b5fd4
--- /dev/null
+++ b/src/api/wms/productionscrapRequestDetail/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface ProductionscrapRequestDetailVO {
+ id: number
+ productionLineCode: string
+ workStationCode: string
+ inventoryStatus: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ masterId: number
+ number: string
+ itemCode: string
+ remark: string
+ siteId: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ packUnit: string
+ packQty: number
+ fromOwnerCode: string
+ toOwnerCode: string
+ concurrencyStamp: number
+}
+
+// 查询线边原料报废子列表
+export const getProductionscrapRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionscrap-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionscrap-request-detail/page`, params })
+ }
+}
+
+// 查询线边原料报废子详情
+export const getProductionscrapRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productionscrap-request-detail/get?id=` + id })
+}
+
+// 新增线边原料报废子
+export const createProductionscrapRequestDetail = async (data: ProductionscrapRequestDetailVO) => {
+ return await request.post({ url: `/wms/productionscrap-request-detail/create`, data })
+}
+
+// 修改线边原料报废子
+export const updateProductionscrapRequestDetail = async (data: ProductionscrapRequestDetailVO) => {
+ return await request.put({ url: `/wms/productionscrap-request-detail/update`, data })
+}
+
+// 删除线边原料报废子
+export const deleteProductionscrapRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productionscrap-request-detail/delete?id=` + id })
+}
+
+// 导出线边原料报废子 Excel
+export const exportProductionscrapRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/productionscrap-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionscrap-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productionscrapRequestMain/index.ts b/src/api/wms/productionscrapRequestMain/index.ts
new file mode 100644
index 0000000..0dbd971
--- /dev/null
+++ b/src/api/wms/productionscrapRequestMain/index.ts
@@ -0,0 +1,102 @@
+import request from '@/config/axios'
+
+export interface ProductionscrapRequestMainVO {
+ id: number
+ workshopCode: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ details: string
+ number: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+ concurrencyStamp: number
+ ruleUserId: number
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ serialNumber: string
+ inInventoryStatuses: string
+ outInventoryStatuses: string
+}
+
+// 查询线边原料报废主列表
+export const getProductionscrapRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productionscrap-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productionscrap-request-main/page`, params })
+ }
+}
+
+// 查询线边原料报废主详情
+export const getProductionscrapRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/productionscrap-request-main/get?id=` + id })
+}
+
+// 新增线边原料报废主
+export const createProductionscrapRequestMain = async (data: ProductionscrapRequestMainVO) => {
+ return await request.post({ url: `/wms/productionscrap-request-main/create`, data })
+}
+
+// 修改线边原料报废主
+export const updateProductionscrapRequestMain = async (data: ProductionscrapRequestMainVO) => {
+ return await request.put({ url: `/wms/productionscrap-request-main/update`, data })
+}
+
+// 删除线边原料报废主
+export const deleteProductionscrapRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productionscrap-request-main/delete?id=` + id })
+}
+
+// 导出线边原料报废主 Excel
+export const exportProductionscrapRequestMain = async (params) => {
+ return await request.download({ url: `/wms/productionscrap-request-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productionscrap-request-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/productionscrap-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/productionscrap-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/productionscrap-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/productionscrap-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/productionscrap-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/productionscrap-request-main/handle?id=' + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/productputawayJobDetail/index.ts b/src/api/wms/productputawayJobDetail/index.ts
new file mode 100644
index 0000000..70cb9fc
--- /dev/null
+++ b/src/api/wms/productputawayJobDetail/index.ts
@@ -0,0 +1,79 @@
+import request from '@/config/axios'
+
+export interface ProductputawayJobDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ poNumber: string
+ poLine: string
+ fromLocationCode: string
+ toLocationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询制品上架任务子列表
+export const getProductputawayJobDetailPage = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productputaway-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productputaway-job-detail/page`, params })
+ }
+}
+
+// 查询制品上架任务子列表
+export const getProductputawayJobDetailPageAssemble = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productputaway-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productputaway-job-detail/page`, params })
+ }
+}
+
+// 查询制品上架任务子详情
+export const getProductputawayJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productputaway-job-detail/get?id=` + id })
+}
+
+// 新增制品上架任务子
+export const createProductputawayJobDetail = async (data: ProductputawayJobDetailVO) => {
+ return await request.post({ url: `/wms/productputaway-job-detail/create`, data })
+}
+
+// 修改制品上架任务子
+export const updateProductputawayJobDetail = async (data: ProductputawayJobDetailVO) => {
+ return await request.put({ url: `/wms/productputaway-job-detail/update`, data })
+}
+
+// 删除制品上架任务子
+export const deleteProductputawayJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productputaway-job-detail/delete?id=` + id })
+}
+
+// 导出制品上架任务子 Excel
+export const exportProductputawayJobDetail = async (params) => {
+ return await request.download({ url: `/wms/productputaway-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productputaway-job-detail/get-import-template' })
+}
diff --git a/src/api/wms/productputawayJobMain/index.ts b/src/api/wms/productputawayJobMain/index.ts
new file mode 100644
index 0000000..d937968
--- /dev/null
+++ b/src/api/wms/productputawayJobMain/index.ts
@@ -0,0 +1,132 @@
+import request from '@/config/axios'
+
+export interface ProductputawayJobMainVO {
+ requestNumber: string
+ supplierCode: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ completetime: Date
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询制品上架任务主列表
+export const getProductputawayJobMainPage = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productputaway-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productputaway-job-main/page`, params })
+ }
+}
+
+// 查询制品上架任务主列表
+export const getProductputawayJobMainAssemblePage = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productputaway-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productputaway-job-main/page`, params })
+ }
+}
+// 查询制品上架任务主详情
+export const getProductputawayJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/productputaway-job-main/get?id=` + id })
+}
+
+// 新增制品上架任务主
+export const createProductputawayJobMain = async (data: ProductputawayJobMainVO) => {
+ return await request.post({ url: `/wms/productputaway-job-main/create`, data })
+}
+
+// 修改制品上架任务主
+export const updateProductputawayJobMain = async (data: ProductputawayJobMainVO) => {
+ return await request.put({ url: `/wms/productputaway-job-main/update`, data })
+}
+
+// 删除制品上架任务主
+export const deleteProductputawayJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productputaway-job-main/delete?id=` + id })
+}
+
+// 导出制品上架任务主 Excel
+export const exportProductputawayJobMain = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productputaway-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productputaway-job-main/export-excel`, params })
+ }
+}
+
+
+// 导出制品上架任务主 Excel
+export const exportProductputawayJobMainAssemble = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productputaway-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productputaway-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productputaway-job-main/get-import-template' })
+}
+
+// 承接发料任务
+export const acceptProductputawayMain = async (id) => {
+ return await request.put({ url: `/wms/productputaway-job-main/accept?id=` + id })
+}
+
+// 放弃发料任务
+export const abandonProductputawayMain = async (id) => {
+ return await request.put({ url: `/wms/productputaway-job-main/abandon?id=` + id })
+}
+
+// 关闭发料任务
+export const closeProductputawayMain = async (id) => {
+ return await request.put({ url: `/wms/productputaway-job-main/close?id=` + id })
+}
+
+// 执行发料任务
+export const executeProductputawayMain = async (data) => {
+ return await request.put({ url: `/wms/productputaway-job-main/execute`, data})
+}
\ No newline at end of file
diff --git a/src/api/wms/productputawayRecordDetail/index.ts b/src/api/wms/productputawayRecordDetail/index.ts
new file mode 100644
index 0000000..5b46db2
--- /dev/null
+++ b/src/api/wms/productputawayRecordDetail/index.ts
@@ -0,0 +1,100 @@
+import request from '@/config/axios'
+
+export interface ProductputawayRecordDetailVO {
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromBatch: string
+ toBatch: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ inventoryStatus: string
+ poNumber: string
+ poLine: string
+ fromOwnerCode: string
+ toOwnerCode: string
+ fromLocationCode: string
+ toLocationCode: string
+ fromLocationGroupCode: string
+ toLocationGroupCode: string
+ fromAreaCode: string
+ toAreaCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+
+// 查询制品上架记录子列表
+export const getProductputawayRecordDetailPage = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ const cmd = {
+ 'column':'type',
+ 'action':'==',
+ 'value':'predict'
+ }
+ params.filters.push(cmd)
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productputaway-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productputaway-record-detail/page`, params })
+ }
+}
+
+// 查询制品上架记录子列表
+export const getProductputawayRecordDetailPageAssemble = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ const cmd = {
+ 'column':'type',
+ 'action':'==',
+ 'value':'assemble'
+ }
+ params.filters.push(cmd)
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productputaway-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productputaway-record-detail/page`, params })
+ }
+}
+// 查询制品上架记录子详情
+export const getProductputawayRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productputaway-record-detail/get?id=` + id })
+}
+
+// 新增制品上架记录子
+export const createProductputawayRecordDetail = async (data: ProductputawayRecordDetailVO) => {
+ return await request.post({ url: `/wms/productputaway-record-detail/create`, data })
+}
+
+// 修改制品上架记录子
+export const updateProductputawayRecordDetail = async (data: ProductputawayRecordDetailVO) => {
+ return await request.put({ url: `/wms/productputaway-record-detail/update`, data })
+}
+
+// 删除制品上架记录子
+export const deleteProductputawayRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productputaway-record-detail/delete?id=` + id })
+}
+
+// 导出制品上架记录子 Excel
+export const exportProductputawayRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/productputaway-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productputaway-record-detail/get-import-template' })
+}
diff --git a/src/api/wms/productputawayRecordMain/index.ts b/src/api/wms/productputawayRecordMain/index.ts
new file mode 100644
index 0000000..f9a39d0
--- /dev/null
+++ b/src/api/wms/productputawayRecordMain/index.ts
@@ -0,0 +1,108 @@
+import request from '@/config/axios'
+
+export interface ProductputawayRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ supplierCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ ruleUserId: number
+ available: string
+}
+
+// 查询制品上架记录主列表
+export const getProductputawayRecordMainPage = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productputaway-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productputaway-record-main/page`, params })
+ }
+}
+
+// 查询制品上架记录主列表
+export const getProductputawayRecordMainAssemblePage = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productputaway-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productputaway-record-main/page`, params })
+ }
+}
+
+// 查询制品上架记录主详情
+export const getProductputawayRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/productputaway-record-main/get?id=` + id })
+}
+
+// 新增制品上架记录主
+export const createProductputawayRecordMain = async (data: ProductputawayRecordMainVO) => {
+ return await request.post({ url: `/wms/productputaway-record-main/create`, data })
+}
+
+// 修改制品上架记录主
+export const updateProductputawayRecordMain = async (data: ProductputawayRecordMainVO) => {
+ return await request.put({ url: `/wms/productputaway-record-main/update`, data })
+}
+
+// 删除制品上架记录主
+export const deleteProductputawayRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productputaway-record-main/delete?id=` + id })
+}
+
+// 导出制品上架记录主 Excel
+export const exportProductputawayRecordMain = async (params) => {
+
+ if (params.isSearch) {
+ const cmd = {
+ 'column':'type',
+ 'action':'==',
+ 'value':params.type
+ }
+ params.filters.push(cmd)
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/productputaway-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/productputaway-record-main/export-excel`, params })
+ }
+}
+
+// 导出制品上架记录主 Excel
+export const exportProductputawayRecordMainAssemble = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/productputaway-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/productputaway-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productputaway-record-main/get-import-template' })
+}
diff --git a/src/api/wms/productputawayRequestDetail/index.ts b/src/api/wms/productputawayRequestDetail/index.ts
new file mode 100644
index 0000000..d1cc153
--- /dev/null
+++ b/src/api/wms/productputawayRequestDetail/index.ts
@@ -0,0 +1,80 @@
+import request from '@/config/axios'
+
+export interface ProductputawayRequestDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ poNumber: string
+ poLine: string
+ fromLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询制品上架申请子列表
+export const getProductputawayRequestDetailPage = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productputaway-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productputaway-request-detail/page`, params })
+ }
+}
+
+// 查询制品上架申请子列表
+export const getProductputawayRequestDetailPageAssemble = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productputaway-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productputaway-request-detail/page`, params })
+ }
+}
+
+// 查询制品上架申请子详情
+export const getProductputawayRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productputaway-request-detail/get?id=` + id })
+}
+
+// 新增制品上架申请子
+export const createProductputawayRequestDetail = async (data: ProductputawayRequestDetailVO) => {
+ return await request.post({ url: `/wms/productputaway-request-detail/create`, data })
+}
+
+// 修改制品上架申请子
+export const updateProductputawayRequestDetail = async (data: ProductputawayRequestDetailVO) => {
+ return await request.put({ url: `/wms/productputaway-request-detail/update`, data })
+}
+
+// 删除制品上架申请子
+export const deleteProductputawayRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productputaway-request-detail/delete?id=` + id })
+}
+
+// 导出制品上架申请子 Excel
+export const exportProductputawayRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/productputaway-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productputaway-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productputawayRequestMain/index.ts b/src/api/wms/productputawayRequestMain/index.ts
new file mode 100644
index 0000000..78b21d9
--- /dev/null
+++ b/src/api/wms/productputawayRequestMain/index.ts
@@ -0,0 +1,141 @@
+import request from '@/config/axios'
+
+export interface ProductputawayRequestMainVO {
+ id: number
+ supplierCode: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询制品上架申请主列表
+export const getProductputawayRequestMainPage = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productputaway-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productputaway-request-main/page`, params })
+ }
+}
+
+// 查询制品上架申请主列表
+export const getProductputawayRequestMainAssemblePage = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productputaway-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productputaway-request-main/page`, params })
+ }
+}
+
+// 查询制品上架申请主详情
+export const getProductputawayRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/productputaway-request-main/get?id=` + id })
+}
+
+// 新增制品上架申请主
+export const createProductputawayRequestMain = async (data: ProductputawayRequestMainVO) => {
+ return await request.post({ url: `/wms/productputaway-request-main/create`, data })
+}
+
+// 修改制品上架申请主
+export const updateProductputawayRequestMain = async (data: ProductputawayRequestMainVO) => {
+ return await request.put({ url: `/wms/productputaway-request-main/update`, data })
+}
+
+// 删除制品上架申请主
+export const deleteProductputawayRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productputaway-request-main/delete?id=` + id })
+}
+
+// 导出制品上架申请主 Excel
+export const exportProductputawayRequestMain = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ const cmd = {
+ 'column':'type',
+ 'action':'==',
+ 'value':'predict'
+ }
+ params.filters.push(cmd)
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productputaway-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productputaway-request-main/export-excel`, params })
+ }
+}
+
+// 导出制品上架申请主 Excel
+export const exportProductputawayRequestMainAssemble = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ const cmd = {
+ 'column':'type',
+ 'action':'==',
+ 'value':'assemble'
+ }
+ params.filters.push(cmd)
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productputaway-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productputaway-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productputaway-request-main/get-import-template' })
+}
+
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/productputaway-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/productputaway-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/productputaway-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/productputaway-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/productputaway-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/productputaway-request-main/handle?id=' + id })
+}
diff --git a/src/api/wms/productreceiptDetailb/index.ts b/src/api/wms/productreceiptDetailb/index.ts
new file mode 100644
index 0000000..15cfc93
--- /dev/null
+++ b/src/api/wms/productreceiptDetailb/index.ts
@@ -0,0 +1,51 @@
+import request from '@/config/axios'
+
+export interface ProductreceiptDetailbVO {
+ id: number
+ packingNumber: string
+ batch: string
+ masterId: number
+ number: string
+ itemCode: string
+ itemName: string
+ outsideItemCode: string
+ outsideProduceDate: string
+ outsideSerialNumber: string
+ remark: string
+}
+
+// 查询制品收货记录子列表
+export const getProductreceiptDetailbPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-detailb/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-detailb/page`, params })
+ }
+}
+
+// 查询制品收货记录子详情
+export const getProductreceiptDetailb = async (id: number) => {
+ return await request.get({ url: `/wms/productreceipt-detailb/get?id=` + id })
+}
+
+// 新增制品收货记录子
+export const createProductreceiptDetailb = async (data: ProductreceiptDetailbVO) => {
+ return await request.post({ url: `/wms/productreceipt-detailb/create`, data })
+}
+
+// 修改制品收货记录子
+export const updateProductreceiptDetailb = async (data: ProductreceiptDetailbVO) => {
+ return await request.put({ url: `/wms/productreceipt-detailb/update`, data })
+}
+
+// 删除制品收货记录子
+export const deleteProductreceiptDetailb = async (id: number) => {
+ return await request.delete({ url: `/wms/productreceipt-detailb/delete?id=` + id })
+}
+
+// 导出制品收货记录子 Excel
+export const exportProductreceiptDetailb = async (params) => {
+ return await request.download({ url: `/wms/productreceipt-detailb/export-excel`, params })
+}
diff --git a/src/api/wms/productreceiptJobDetail/index.ts b/src/api/wms/productreceiptJobDetail/index.ts
new file mode 100644
index 0000000..33606d2
--- /dev/null
+++ b/src/api/wms/productreceiptJobDetail/index.ts
@@ -0,0 +1,97 @@
+import request from '@/config/axios'
+
+export interface ProductreceiptJobDetailVO {
+ productionLineCode: string
+ workStationCode: string
+ processCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ toLocationCode: string
+ woNumber: string
+ woLine: string
+ packQty: number
+ packUnit: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ toOwnerCode: string
+}
+
+// 查询制品收货任务子列表
+export const getProductreceiptJobDetailPage = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-job-detail/page`, params })
+ }
+}
+
+// 查询制品收货任务子列表
+export const getProductreceiptJobDetailPageAssemble = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-job-detail/page`, params })
+ }
+}
+
+
+// 查询制品收货任务子列表
+export const getProductreceiptJobDetailPageScarp = async (params) => {
+ params.type = 'scrap'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-job-detail/page`, params })
+ }
+}
+
+// 查询制品收货任务子详情
+export const getProductreceiptJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productreceipt-job-detail/get?id=` + id })
+}
+
+// 新增制品收货任务子
+export const createProductreceiptJobDetail = async (data: ProductreceiptJobDetailVO) => {
+ return await request.post({ url: `/wms/productreceipt-job-detail/create`, data })
+}
+
+// 修改制品收货任务子
+export const updateProductreceiptJobDetail = async (data: ProductreceiptJobDetailVO) => {
+ return await request.put({ url: `/wms/productreceipt-job-detail/update`, data })
+}
+
+// 删除制品收货任务子
+export const deleteProductreceiptJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productreceipt-job-detail/delete?id=` + id })
+}
+
+// 导出制品收货任务子 Excel
+export const exportProductreceiptJobDetail = async (params) => {
+ return await request.download({ url: `/wms/productreceipt-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productreceipt-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productreceiptJobMain/index.ts b/src/api/wms/productreceiptJobMain/index.ts
new file mode 100644
index 0000000..91f9d4e
--- /dev/null
+++ b/src/api/wms/productreceiptJobMain/index.ts
@@ -0,0 +1,165 @@
+import request from '@/config/axios'
+
+export interface ProductreceiptJobMainVO {
+ requestNumber: string
+ productionPlanNumber: string
+ workShopCode: string
+ team: string
+ shift: string
+ details: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ toWarehouseCode: string
+ toAreaCodes: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询制品收货任务主列表
+export const getProductreceiptJobMainPage = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-job-main/page`, params })
+ }
+}
+
+// 查询装配收货任务主列表
+export const getProductreceiptJobMainAssemblePage = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-job-main/page`, params })
+ }
+}
+
+// 查询报废收货货任务主列表
+export const getProductreceiptscapJobMainPage = async (params) => {
+ params.type = 'scrap'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-job-main/page`, params })
+ }
+}
+
+
+// 查询制品收货任务主详情
+export const getProductreceiptJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/productreceipt-job-main/get?id=` + id })
+}
+
+// 新增制品收货任务主
+export const createProductreceiptJobMain = async (data: ProductreceiptJobMainVO) => {
+ return await request.post({ url: `/wms/productreceipt-job-main/create`, data })
+}
+
+// 修改制品收货任务主
+export const updateProductreceiptJobMain = async (data: ProductreceiptJobMainVO) => {
+ return await request.put({ url: `/wms/productreceipt-job-main/update`, data })
+}
+
+// 删除制品收货任务主
+export const deleteProductreceiptJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productreceipt-job-main/delete?id=` + id })
+}
+
+// 导出制品收货任务主 Excel
+export const exportProductreceiptJobMain = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ const cmd = {
+ 'column':'type',
+ 'action':'==',
+ 'value':'predict'
+ }
+ params.filters.push(cmd)
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productreceipt-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productreceipt-job-main/export-excel`, params })
+ }
+}
+
+
+// 导出装配收货任务主 Excel
+export const exportProductreceiptJobMainAssemble = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productreceipt-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productreceipt-job-main/export-excel`, params })
+ }
+}
+
+// 导出装配收货任务主 Excel
+export const exportProductreceiptJobMainScrap = async (params) => {
+ params.type = 'scrap'
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productreceipt-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productreceipt-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productreceipt-job-main/get-import-template' })
+}
+
+// 承接发料任务
+export const acceptProductreceiptMain = async (id) => {
+ return await request.put({ url: `/wms/productreceipt-job-main/accept?id=` + id })
+}
+
+// 放弃发料任务
+export const abandonProductreceiptMain = async (id) => {
+ return await request.put({ url: `/wms/productreceipt-job-main/abandon?id=` + id })
+}
+
+// 关闭发料任务
+export const closeProductreceiptMain = async (id) => {
+ return await request.put({ url: `/wms/productreceipt-job-main/close?id=` + id })
+}
+
+// 执行发料任务
+export const executeProductreceiptMain = async (data) => {
+ return await request.put({ url: `/wms/productreceipt-job-main/execute`, data})
+}
diff --git a/src/api/wms/productreceiptRecordDetail/index.ts b/src/api/wms/productreceiptRecordDetail/index.ts
new file mode 100644
index 0000000..35ba579
--- /dev/null
+++ b/src/api/wms/productreceiptRecordDetail/index.ts
@@ -0,0 +1,101 @@
+import request from '@/config/axios'
+
+export interface ProductreceiptRecordDetailVO {
+ productionlineCode: string
+ workStationCode: string
+ processCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ toOwnerCode: string
+ woNumber: string
+ woLine: string
+ packQty: number
+ packUnit: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+
+// 查询制品收货记录子列表
+export const getProductreceiptRecordDetailPage = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-record-detail/page`, params })
+ }
+}
+
+// 查询制品收货记录子列表
+export const getProductreceiptRecordDetailPageAssemble = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-record-detail/page`, params })
+ }
+}
+
+// 查询制品收货记录子列表
+export const getProductreceiptRecordDetailPageScrap = async (params) => {
+ params.type = 'scrap'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-record-detail/page`, params })
+ }
+}
+
+// 查询制品收货记录子详情
+export const getProductreceiptRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productreceipt-record-detail/get?id=` + id })
+}
+
+// 新增制品收货记录子
+export const createProductreceiptRecordDetail = async (data: ProductreceiptRecordDetailVO) => {
+ return await request.post({ url: `/wms/productreceipt-record-detail/create`, data })
+}
+
+// 修改制品收货记录子
+export const updateProductreceiptRecordDetail = async (data: ProductreceiptRecordDetailVO) => {
+ return await request.put({ url: `/wms/productreceipt-record-detail/update`, data })
+}
+
+// 删除制品收货记录子
+export const deleteProductreceiptRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productreceipt-record-detail/delete?id=` + id })
+}
+
+// 导出制品收货记录子 Excel
+export const exportProductreceiptRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/productreceipt-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productreceipt-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productreceiptRecordMain/index.ts b/src/api/wms/productreceiptRecordMain/index.ts
new file mode 100644
index 0000000..c3e96dc
--- /dev/null
+++ b/src/api/wms/productreceiptRecordMain/index.ts
@@ -0,0 +1,170 @@
+import request from '@/config/axios'
+
+export interface ProductreceiptRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ productionPlanNumber: string
+ workshopCode: string
+ team: string
+ shift: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ available: string
+ inventoryStatus:string
+}
+
+// 查询制品收货记录主列表
+export const getProductreceiptRecordMainPage = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-record-main/page`, params })
+ }
+}
+
+// 查询装配收货记录主列表
+export const getProductreceiptRecordMainAssemblePage = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-record-main/page`, params })
+ }
+}
+
+// 查询报废收货记录主列表
+export const getProductreceiptRecordMainScrapPage = async (params) => {
+ params.type = 'scrap'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-record-main/page`, params })
+ }
+}
+
+// 查询制品收货记录主详情
+export const getProductreceiptRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/productreceipt-record-main/get?id=` + id })
+}
+
+// 新增制品收货记录主
+export const createProductreceiptRecordMain = async (data: ProductreceiptRecordMainVO) => {
+ return await request.post({ url: `/wms/productreceipt-record-main/create`, data })
+}
+
+// 修改制品收货记录主
+export const updateProductreceiptRecordMain = async (data: ProductreceiptRecordMainVO) => {
+ return await request.put({ url: `/wms/productreceipt-record-main/update`, data })
+}
+
+// 删除制品收货记录主
+export const deleteProductreceiptRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productreceipt-record-main/delete?id=` + id })
+}
+
+// 导出制品收货记录主 Excel
+export const exportProductreceiptRecordMain = async (params) => {
+ // params.type = 'predict'
+ if (params.isSearch) {
+ // const cmd = {
+ // 'column':'type',
+ // 'action':'==',
+ // 'value':'predict'
+ // }
+ // params.filters.push(cmd)
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/productreceipt-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/productreceipt-record-main/export-excel`, params })
+ }
+}
+
+
+// 导出制品收货记录主 Excel
+export const exportProductreceiptRecordScapMain = async (params) => {
+ // params.type = 'predict'
+ if (params.isSearch) {
+ // const cmd = {
+ // 'column':'type',
+ // 'action':'==',
+ // 'value':'predict'
+ // }
+ // params.filters.push(cmd)
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/productreceipt-record-main/export-excel-senior-scrap', data })
+ } else {
+ return await request.download({ url: `/wms/productreceipt-record-main/export-excel-scrap`, params })
+ }
+}
+
+
+// 导出装配收货记录主 Excel
+export const exportProductreceiptRecordAssembleMain = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ const cmd = {
+ 'column':'type',
+ 'action':'==',
+ 'value':'assemble'
+ }
+ params.filters.push(cmd)
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/productreceipt-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/productreceipt-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productreceipt-record-main/get-import-template' })
+}
+// 创建上架申请
+export const createPutawayRequest = async (number:string) => {
+ return await request.post({ url: `/wms/productreceipt-record-main/createPutawayRequest?number=`+number })
+}
+
+// 创建检验申请
+export const createInspectRequest = async (number:string) => {
+ return await request.post({ url: `/wms/productreceipt-record-main/createInspectRequest?number=`+number })
+}
+
+//制品收货记录子执行回收操作
+export const handleRecoveryProductreceiptRecord = async (data: ProductreceiptRecordMainVO) => {
+ return await request.put({ url: `/wms/productreceipt-record-main/handleRecovery`, data })
+}
+
+// 接收隔离收货
+export const receive = (id) => {
+ return request.put({ url: '/wms/productreceipt-record-main/receive?id=' + id })
+}
+
+// 拒收隔离收货
+export const refuse = (id) => {
+ return request.put({ url: '/wms/productreceipt-record-main/refuse?id=' + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/productreceiptRequestDetail/index.ts b/src/api/wms/productreceiptRequestDetail/index.ts
new file mode 100644
index 0000000..7b21ba1
--- /dev/null
+++ b/src/api/wms/productreceiptRequestDetail/index.ts
@@ -0,0 +1,103 @@
+import request from '@/config/axios'
+
+export interface ProductreceiptRequestDetailVO {
+ productionLineCode: string
+ workStationCode: string
+ processCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ woNumber: string
+ woLine: string
+ packQty: number
+ packUnit: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ toOwnerCode: string
+}
+
+// 查询制品收货申请子列表
+export const getProductreceiptRequestDetailPage = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-request-detail/page`, params })
+ }
+}
+
+// 查询制品收货申请子列表
+export const getProductreceiptRequestDetailPageAssemble = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-request-detail/page`, params })
+ }
+}
+
+// 查询报废收货申请子列表
+export const getProductreceiptRequestDetailPageScrap = async (params) => {
+ params.type = 'scrap'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-request-detail/page`, params })
+ }
+}
+
+
+// 查询制品收货申请子详情
+export const getProductreceiptRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productreceipt-request-detail/get?id=` + id })
+}
+
+// 新增制品收货申请子
+export const createProductreceiptRequestDetail = async (data: ProductreceiptRequestDetailVO) => {
+ return await request.post({ url: `/wms/productreceipt-request-detail/create`, data })
+}
+
+// 修改制品收货申请子
+export const updateProductreceiptRequestDetail = async (data: ProductreceiptRequestDetailVO) => {
+ return await request.put({ url: `/wms/productreceipt-request-detail/update`, data })
+}
+
+// 删除制品收货申请子
+export const deleteProductreceiptRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productreceipt-request-detail/delete?id=` + id })
+}
+
+// 导出制品收货申请子 Excel
+export const exportProductreceiptRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/productreceipt-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productreceipt-request-detail/get-import-template' })
+}
+
+// 创建包装信息后更新子表数据packingNumber
+export const updateDetailPackingNumber = async (id: number, number) => {
+ return await request.put({ url: '/wms/productreceipt-request-detail/updateDetailPackingNumber?id=' + id + '&number=' + number })
+}
diff --git a/src/api/wms/productreceiptRequestMain/index.ts b/src/api/wms/productreceiptRequestMain/index.ts
new file mode 100644
index 0000000..d809c5e
--- /dev/null
+++ b/src/api/wms/productreceiptRequestMain/index.ts
@@ -0,0 +1,146 @@
+import request from '@/config/axios'
+
+export interface ProductreceiptRequestMainVO {
+ productionPlanNumber: string
+ workshopCode: string
+ team: string
+ shift: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询制品收货申请主列表
+export const getProductreceiptRequestMainPage = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-request-main/page`, params })
+ }
+}
+
+// 查询制品收货申请主列表
+export const getProductreceiptRequestMainAssemblePage = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-request-main/page`, params })
+ }
+}
+
+// 查询报废收货申请主列表
+export const getProductreceiptRequestMainScrapPage = async (params) => {
+ params.type = 'scrap'
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productreceipt-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productreceipt-request-main/page`, params })
+ }
+}
+
+
+// 查询制品收货申请主详情
+export const getProductreceiptRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/productreceipt-request-main/get?id=` + id })
+}
+
+// 新增制品收货申请主
+export const createProductreceiptRequestMain = async (data: ProductreceiptRequestMainVO) => {
+ return await request.post({ url: `/wms/productreceipt-request-main/create`, data })
+}
+
+// 修改制品收货申请主
+export const updateProductreceiptRequestMain = async (data: ProductreceiptRequestMainVO) => {
+ return await request.put({ url: `/wms/productreceipt-request-main/update`, data })
+}
+
+// 删除制品收货申请主
+export const deleteProductreceiptRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productreceipt-request-main/delete?id=` + id })
+}
+
+// 导出制品收货申请主 Excel
+export const exportProductreceiptRequestMain = async (params) => {
+ params.type = 'predict'
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productreceipt-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productreceipt-request-main/export-excel`, params })
+ }
+}
+
+// 导出制品收货申请主 Excel
+export const exportProductreceiptRequestMainAssemble = async (params) => {
+ params.type = 'assemble'
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productreceipt-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/productreceipt-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productreceipt-request-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/productreceipt-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/productreceipt-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/productreceipt-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/productreceipt-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/productreceipt-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/productreceipt-request-main/handle?id=' + id })
+}
+
+
+// 创建标签
+export const productCreateLabel = async (data: ProductreceiptRequestMainVO) => {
+ return await request.post({ url: `/wms/productreceipt-request-main/productCreateLabel`, data })
+}
\ No newline at end of file
diff --git a/src/api/wms/productredressJobDetail/index.ts b/src/api/wms/productredressJobDetail/index.ts
new file mode 100644
index 0000000..27dd360
--- /dev/null
+++ b/src/api/wms/productredressJobDetail/index.ts
@@ -0,0 +1,71 @@
+import request from '@/config/axios'
+
+export interface ProductredressJobDetailVO {
+ id: number
+ productionLineCode: string
+ workStationCode: string
+ processCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ toLocationCode: string
+ woNumber: string
+ woLine: string
+ packQty: number
+ packUnit: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ masterId: number
+ number: string
+ remark: string
+ toOwnerCode: string
+}
+
+// 查询制品回收任务子列表
+export const getProductredressJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productredress-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productredress-job-detail/page`, params })
+ }
+}
+
+// 查询制品回收任务子详情
+export const getProductredressJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productredress-job-detail/get?id=` + id })
+}
+
+// 新增制品回收任务子
+export const createProductredressJobDetail = async (data: ProductredressJobDetailVO) => {
+ return await request.post({ url: `/wms/productredress-job-detail/create`, data })
+}
+
+// 修改制品回收任务子
+export const updateProductredressJobDetail = async (data: ProductredressJobDetailVO) => {
+ return await request.put({ url: `/wms/productredress-job-detail/update`, data })
+}
+
+// 删除制品回收任务子
+export const deleteProductredressJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productredress-job-detail/delete?id=` + id })
+}
+
+// 导出制品回收任务子 Excel
+export const exportProductredressJobDetail = async (params) => {
+ return await request.download({ url: `/wms/productredress-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productredress-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productredressJobMain/index.ts b/src/api/wms/productredressJobMain/index.ts
new file mode 100644
index 0000000..8e90c03
--- /dev/null
+++ b/src/api/wms/productredressJobMain/index.ts
@@ -0,0 +1,104 @@
+import request from '@/config/axios'
+
+export interface ProductredressJobMainVO {
+ id: number
+ requestNumber: string
+ productionPlanNumber: string
+ workShopCode: string
+ team: string
+ shift: string
+ details: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ userGroupCode: string
+ acceptUserId: string
+ acceptUserName: string
+ acceptTime: Date
+ completeUserId: string
+ completeUserName: string
+ completeTime: Date
+ toWarehouseCode: string
+ toAreaCodes: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ type: string
+ businessType: string
+ remark: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+ inInventoryStatuses: string
+ outInventoryStatuses: string
+}
+
+// 查询制品回收任务主列表
+export const getProductredressJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productredress-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productredress-job-main/page`, params })
+ }
+}
+
+// 查询制品回收任务主详情
+export const getProductredressJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/productredress-job-main/get?id=` + id })
+}
+
+// 新增制品回收任务主
+export const createProductredressJobMain = async (data: ProductredressJobMainVO) => {
+ return await request.post({ url: `/wms/productredress-job-main/create`, data })
+}
+
+// 修改制品回收任务主
+export const updateProductredressJobMain = async (data: ProductredressJobMainVO) => {
+ return await request.put({ url: `/wms/productredress-job-main/update`, data })
+}
+
+// 删除制品回收任务主
+export const deleteProductredressJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productredress-job-main/delete?id=` + id })
+}
+// 承接制品回收任务主
+export const acceptProductredressJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/productredress-job-main/accept?id=` + id })
+}
+// 关闭制品回收任务主
+export const closeProductredressJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/productredress-job-main/close?id=` + id })
+}
+// 取消承接制品回收任务主
+export const abandonProductredressJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/productredress-job-main/abandon?id=` + id })
+}
+
+// 导出制品回收任务主 Excel
+export const exportProductredressJobMain = async (params) => {
+ if (params.isSearch){
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productredress-job-main/export-excel-senior`, data })
+ }else {
+ return await request.download({ url: `/wms/productredress-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productredress-job-main/get-import-template' })
+}
diff --git a/src/api/wms/productredressRecordDetail/index.ts b/src/api/wms/productredressRecordDetail/index.ts
new file mode 100644
index 0000000..860b7d8
--- /dev/null
+++ b/src/api/wms/productredressRecordDetail/index.ts
@@ -0,0 +1,77 @@
+import request from '@/config/axios'
+
+export interface ProductredressRecordDetailVO {
+ id: number
+ productionlineCode: string
+ workStationCode: string
+ processCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ toOwnerCode: string
+ woNumber: string
+ woLine: string
+ packQty: number
+ packUnit: string
+ bomVersion: string
+ backFlushDetails: string
+ masterId: number
+ number: string
+ itemCode: string
+ remark: string
+ siteId: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ interfaceType: string
+}
+
+// 查询制品回收记录子列表
+export const getProductredressRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productredress-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productredress-record-detail/page`, params })
+ }
+}
+
+// 查询制品回收记录子详情
+export const getProductredressRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productredress-record-detail/get?id=` + id })
+}
+
+// 新增制品回收记录子
+export const createProductredressRecordDetail = async (data: ProductredressRecordDetailVO) => {
+ return await request.post({ url: `/wms/productredress-record-detail/create`, data })
+}
+
+// 修改制品回收记录子
+export const updateProductredressRecordDetail = async (data: ProductredressRecordDetailVO) => {
+ return await request.put({ url: `/wms/productredress-record-detail/update`, data })
+}
+
+// 删除制品回收记录子
+export const deleteProductredressRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productredress-record-detail/delete?id=` + id })
+}
+
+// 导出制品回收记录子 Excel
+export const exportProductredressRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/productredress-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productredress-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productredressRecordMain/index.ts b/src/api/wms/productredressRecordMain/index.ts
new file mode 100644
index 0000000..0761559
--- /dev/null
+++ b/src/api/wms/productredressRecordMain/index.ts
@@ -0,0 +1,75 @@
+import request from '@/config/axios'
+
+export interface ProductredressRecordMainVO {
+ id: number
+ requestNumber: string
+ jobNumber: string
+ productionPlanNumber: string
+ workshopCode: string
+ team: string
+ shift: string
+ details: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ type: string
+ businessType: string
+ remark: string
+ code: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+}
+
+// 查询制品回收记录主列表
+export const getProductredressRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productredress-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productredress-record-main/page`, params })
+ }
+}
+
+// 查询制品回收记录主详情
+export const getProductredressRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/productredress-record-main/get?id=` + id })
+}
+
+// 新增制品回收记录主
+export const createProductredressRecordMain = async (data: ProductredressRecordMainVO) => {
+ return await request.post({ url: `/wms/productredress-record-main/create`, data })
+}
+
+// 修改制品回收记录主
+export const updateProductredressRecordMain = async (data: ProductredressRecordMainVO) => {
+ return await request.put({ url: `/wms/productredress-record-main/update`, data })
+}
+
+// 删除制品回收记录主
+export const deleteProductredressRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productredress-record-main/delete?id=` + id })
+}
+
+// 导出制品回收记录主 Excel
+export const exportProductredressRecordMain = async (params) => {
+ if (params.isSearch){
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productredress-record-main/export-excel-senior`, data })
+ }else {
+ return await request.download({ url: `/wms/productredress-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productredress-record-main/get-import-template' })
+}
diff --git a/src/api/wms/productredressRequestDetail/index.ts b/src/api/wms/productredressRequestDetail/index.ts
new file mode 100644
index 0000000..150891c
--- /dev/null
+++ b/src/api/wms/productredressRequestDetail/index.ts
@@ -0,0 +1,73 @@
+import request from '@/config/axios'
+
+export interface ProductredressRequestDetailVO {
+ id: number
+ productionLineCode: string
+ workStationCode: string
+ toLocationCode: string
+ processCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ woNumber: string
+ woLine: string
+ packQty: number
+ packUnit: string
+ bomVersion: string
+ backFlushDetails: string
+ masterId: number
+ number: string
+ itemCode: string
+ remark: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ toOwnerCode: string
+}
+
+// 查询制品回收申请子列表
+export const getProductredressRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productredress-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productredress-request-detail/page`, params })
+ }
+}
+
+// 查询制品回收申请子详情
+export const getProductredressRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productredress-request-detail/get?id=` + id })
+}
+
+// 新增制品回收申请子
+export const createProductredressRequestDetail = async (data: ProductredressRequestDetailVO) => {
+ return await request.post({ url: `/wms/productredress-request-detail/create`, data })
+}
+
+// 修改制品回收申请子
+export const updateProductredressRequestDetail = async (data: ProductredressRequestDetailVO) => {
+ return await request.put({ url: `/wms/productredress-request-detail/update`, data })
+}
+
+// 删除制品回收申请子
+export const deleteProductredressRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productredress-request-detail/delete?id=` + id })
+}
+
+// 导出制品回收申请子 Excel
+export const exportProductredressRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/productredress-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productredress-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productredressRequestMain/index.ts b/src/api/wms/productredressRequestMain/index.ts
new file mode 100644
index 0000000..d5402d7
--- /dev/null
+++ b/src/api/wms/productredressRequestMain/index.ts
@@ -0,0 +1,105 @@
+import request from '@/config/axios'
+
+export interface ProductredressRequestMainVO {
+ id: number
+ productionPlanNumber: string
+ workshopCode: string
+ team: string
+ shift: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ number: string
+ type: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+ inInventoryStatuses: string
+ outInventoryStatuses: string
+}
+
+// 查询制品回收申请主列表
+export const getProductredressRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productredress-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productredress-request-main/page`, params })
+ }
+}
+
+// 查询制品回收申请主详情
+export const getProductredressRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/productredress-request-main/get?id=` + id })
+}
+
+// 新增制品回收申请主
+export const createProductredressRequestMain = async (data: ProductredressRequestMainVO) => {
+ return await request.post({ url: `/wms/productredress-request-main/create`, data })
+}
+
+// 修改制品回收申请主
+export const updateProductredressRequestMain = async (data: ProductredressRequestMainVO) => {
+ return await request.put({ url: `/wms/productredress-request-main/update`, data })
+}
+
+// 删除制品回收申请主
+export const deleteProductredressRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productredress-request-main/delete?id=` + id })
+}
+
+// 导出制品回收申请主 Excel
+export const exportProductredressRequestMain = async (params) => {
+ if (params.isSearch){
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/productredress-request-main/export-excel-senior`, data })
+ }else {
+ return await request.download({ url: `/wms/productredress-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productredress-request-main/get-import-template' })
+}
+
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/productredress-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/productredress-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/productredress-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/productredress-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/productredress-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/productredress-request-main/handle?id=' + id })
+}
diff --git a/src/api/wms/productrepairRecordDetail/index.ts b/src/api/wms/productrepairRecordDetail/index.ts
new file mode 100644
index 0000000..20faa97
--- /dev/null
+++ b/src/api/wms/productrepairRecordDetail/index.ts
@@ -0,0 +1,72 @@
+import request from '@/config/axios'
+
+export interface ProductrepairRecordDetailVO {
+ fromOwnerCode: string
+ productionLineCode: string
+ workStationCode: string
+ processCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ produceDate: Date
+ expireDate: Date
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ inventoryStatus: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+
+// 查询制品返修记录子列表
+export const getProductrepairRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productrepair-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productrepair-record-detail/page`, params })
+ }
+}
+
+// 查询制品返修记录子详情
+export const getProductrepairRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productrepair-record-detail/get?id=` + id })
+}
+
+// 新增制品返修记录子
+export const createProductrepairRecordDetail = async (data: ProductrepairRecordDetailVO) => {
+ return await request.post({ url: `/wms/productrepair-record-detail/create`, data })
+}
+
+// 修改制品返修记录子
+export const updateProductrepairRecordDetail = async (data: ProductrepairRecordDetailVO) => {
+ return await request.put({ url: `/wms/productrepair-record-detail/update`, data })
+}
+
+// 删除制品返修记录子
+export const deleteProductrepairRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productrepair-record-detail/delete?id=` + id })
+}
+
+// 导出制品返修记录子 Excel
+export const exportProductrepairRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/productrepair-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productrepair-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productrepairRecordMain/index.ts b/src/api/wms/productrepairRecordMain/index.ts
new file mode 100644
index 0000000..ecdfc47
--- /dev/null
+++ b/src/api/wms/productrepairRecordMain/index.ts
@@ -0,0 +1,73 @@
+import request from '@/config/axios'
+
+export interface ProductrepairRecordMainVO {
+ requestNumber: string
+ workshopCode: string
+ team: string
+ shift: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ available: string
+}
+
+// 查询制品返修记录主列表
+export const getProductrepairRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productrepair-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productrepair-record-main/page`, params })
+ }
+}
+
+// 查询制品返修记录主详情
+export const getProductrepairRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/productrepair-record-main/get?id=` + id })
+}
+
+// 新增制品返修记录主
+export const createProductrepairRecordMain = async (data: ProductrepairRecordMainVO) => {
+ return await request.post({ url: `/wms/productrepair-record-main/create`, data })
+}
+
+// 修改制品返修记录主
+export const updateProductrepairRecordMain = async (data: ProductrepairRecordMainVO) => {
+ return await request.put({ url: `/wms/productrepair-record-main/update`, data })
+}
+
+// 删除制品返修记录主
+export const deleteProductrepairRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productrepair-record-main/delete?id=` + id })
+}
+
+// 导出制品返修记录主 Excel
+export const exportProductrepairRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/productrepair-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/productrepair-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productrepair-record-main/get-import-template' })
+}
diff --git a/src/api/wms/productrepairRequestDetaila/index.ts b/src/api/wms/productrepairRequestDetaila/index.ts
new file mode 100644
index 0000000..5b5adee
--- /dev/null
+++ b/src/api/wms/productrepairRequestDetaila/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface ProductrepairRequestDetailaVO {
+ fromOwnerCode: string
+ productionlineCode: string
+ workStationCode: string
+ processCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ inventoryStatus: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+}
+
+// 查询制品返修申请子列表
+export const getProductrepairRequestDetailaPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productrepair-request-detaila/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productrepair-request-detaila/page`, params })
+ }
+}
+
+// 查询制品返修申请子详情
+export const getProductrepairRequestDetaila = async (id: number) => {
+ return await request.get({ url: `/wms/productrepair-request-detaila/get?id=` + id })
+}
+
+// 新增制品返修申请子
+export const createProductrepairRequestDetaila = async (data: ProductrepairRequestDetailaVO) => {
+ return await request.post({ url: `/wms/productrepair-request-detaila/create`, data })
+}
+
+// 修改制品返修申请子
+export const updateProductrepairRequestDetaila = async (data: ProductrepairRequestDetailaVO) => {
+ return await request.put({ url: `/wms/productrepair-request-detaila/update`, data })
+}
+
+// 删除制品返修申请子
+export const deleteProductrepairRequestDetaila = async (id: number) => {
+ return await request.delete({ url: `/wms/productrepair-request-detaila/delete?id=` + id })
+}
+
+// 导出制品返修申请子 Excel
+export const exportProductrepairRequestDetaila = async (params) => {
+ return await request.download({ url: `/wms/productrepair-request-detaila/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productrepair-request-detaila/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productrepairRequestMain/index.ts b/src/api/wms/productrepairRequestMain/index.ts
new file mode 100644
index 0000000..87ff80c
--- /dev/null
+++ b/src/api/wms/productrepairRequestMain/index.ts
@@ -0,0 +1,107 @@
+import request from '@/config/axios'
+
+export interface ProductrepairRequestMainVO {
+ workshopCode: string
+ team: string
+ shift: string
+ fromWarehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询制品返修申请主列表
+export const getProductrepairRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productrepair-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productrepair-request-main/page`, params })
+ }
+}
+
+// 查询制品返修申请主详情
+export const getProductrepairRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/productrepair-request-main/get?id=` + id })
+}
+
+// 新增制品返修申请主
+export const createProductrepairRequestMain = async (data: ProductrepairRequestMainVO) => {
+ return await request.post({ url: `/wms/productrepair-request-main/create`, data })
+}
+
+// 修改制品返修申请主
+export const updateProductrepairRequestMain = async (data: ProductrepairRequestMainVO) => {
+ return await request.put({ url: `/wms/productrepair-request-main/update`, data })
+}
+
+// 删除制品返修申请主
+export const deleteProductrepairRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productrepair-request-main/delete?id=` + id })
+}
+
+// 导出制品返修申请主 Excel
+export const exportProductrepairRequestMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/productrepair-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/productrepair-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productrepair-request-main/get-import-template' })
+}
+
+// 关闭-制品返修申请
+export const closeProductrepairRequestMain = async (id) => {
+ return await request.put({ url: `/wms/productrepair-request-main/close?id=` + id })
+}
+
+// 重新添加-制品返修申请
+export const reAddProductrepairRequestMain = async (id) => {
+ return await request.put({ url: `/wms/productrepair-request-main/reAdd?id=` + id })
+}
+
+// 提交审批-制品返修申请
+export const submitProductrepairRequestMain = async (id) => {
+ return await request.put({ url: `/wms/productrepair-request-main/submit?id=` + id })
+}
+
+// 审批驳回-制品返修申请
+export const refusedProductrepairRequestMain = async (id) => {
+ return await request.put({ url: `/wms/productrepair-request-main/refused?id=` + id })
+}
+
+// 审批通过-制品返修申请
+export const agreeProductrepairRequestMain = async (id) => {
+ return await request.put({ url: `/wms/productrepair-request-main/agree?id=` + id })
+}
+
+// 处理-制品返修申请
+export const handleProductrepairRequestMain = async (id) => {
+ return await request.put({ url: `/wms/productrepair-request-main/handle?id=` + id })
+}
+
+// 修改制品返修BOM数据
+export const updateProductscrapDetailRequestBom = async (id, data) => {
+ return await request.post({ url: `/wms/productrepair-request-main/updateBom?id=`+id, data })
+}
diff --git a/src/api/wms/productscrapJobDetail/index.ts b/src/api/wms/productscrapJobDetail/index.ts
new file mode 100644
index 0000000..226fd56
--- /dev/null
+++ b/src/api/wms/productscrapJobDetail/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface ProductscrapJobDetailVO {
+ ownerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ inventoryStatus: string
+ reason: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+}
+
+// 查询制品报废任务子列表
+export const getProductscrapJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productscrap-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productscrap-job-detail/page`, params })
+ }
+}
+
+// 查询制品报废任务子详情
+export const getProductscrapJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productscrap-job-detail/get?id=` + id })
+}
+
+// 新增制品报废任务子
+export const createProductscrapJobDetail = async (data: ProductscrapJobDetailVO) => {
+ return await request.post({ url: `/wms/productscrap-job-detail/create`, data })
+}
+
+// 修改制品报废任务子
+export const updateProductscrapJobDetail = async (data: ProductscrapJobDetailVO) => {
+ return await request.put({ url: `/wms/productscrap-job-detail/update`, data })
+}
+
+// 删除制品报废任务子
+export const deleteProductscrapJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productscrap-job-detail/delete?id=` + id })
+}
+
+// 导出制品报废任务子 Excel
+export const exportProductscrapJobDetail = async (params) => {
+ return await request.download({ url: `/wms/productscrap-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productscrap-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productscrapJobMain/index.ts b/src/api/wms/productscrapJobMain/index.ts
new file mode 100644
index 0000000..d4c0941
--- /dev/null
+++ b/src/api/wms/productscrapJobMain/index.ts
@@ -0,0 +1,79 @@
+import request from '@/config/axios'
+
+export interface ProductscrapJobMainVO {
+ requestNumber: string
+ fromWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询制品报废任务主列表
+export const getProductscrapJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productscrap-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productscrap-job-main/page`, params })
+ }
+}
+
+// 查询制品报废任务主详情
+export const getProductscrapJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/productscrap-job-main/get?id=` + id })
+}
+
+// 新增制品报废任务主
+export const createProductscrapJobMain = async (data: ProductscrapJobMainVO) => {
+ return await request.post({ url: `/wms/productscrap-job-main/create`, data })
+}
+
+// 修改制品报废任务主
+export const updateProductscrapJobMain = async (data: ProductscrapJobMainVO) => {
+ return await request.put({ url: `/wms/productscrap-job-main/update`, data })
+}
+
+// 删除制品报废任务主
+export const deleteProductscrapJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productscrap-job-main/delete?id=` + id })
+}
+
+// 导出制品报废任务主 Excel
+export const exportProductscrapJobMain = async (params) => {
+ return await request.download({ url: `/wms/productscrap-job-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productscrap-job-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productscrapRecordDetail/index.ts b/src/api/wms/productscrapRecordDetail/index.ts
new file mode 100644
index 0000000..ae2aae8
--- /dev/null
+++ b/src/api/wms/productscrapRecordDetail/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface ProductscrapRecordDetailVO {
+ fromOwnerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ inventoryStatus: string
+ reason: string
+ singlePrice: number
+ amount: number
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+}
+
+// 查询制品报废记录子列表
+export const getProductscrapRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productscrap-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productscrap-record-detail/page`, params })
+ }
+}
+
+// 查询制品报废记录子详情
+export const getProductscrapRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productscrap-record-detail/get?id=` + id })
+}
+
+// 新增制品报废记录子
+export const createProductscrapRecordDetail = async (data: ProductscrapRecordDetailVO) => {
+ return await request.post({ url: `/wms/productscrap-record-detail/create`, data })
+}
+
+// 修改制品报废记录子
+export const updateProductscrapRecordDetail = async (data: ProductscrapRecordDetailVO) => {
+ return await request.put({ url: `/wms/productscrap-record-detail/update`, data })
+}
+
+// 删除制品报废记录子
+export const deleteProductscrapRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productscrap-record-detail/delete?id=` + id })
+}
+
+// 导出制品报废记录子 Excel
+export const exportProductscrapRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/productscrap-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productscrap-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productscrapRecordMain/index.ts b/src/api/wms/productscrapRecordMain/index.ts
new file mode 100644
index 0000000..1d18efe
--- /dev/null
+++ b/src/api/wms/productscrapRecordMain/index.ts
@@ -0,0 +1,77 @@
+import request from '@/config/axios'
+
+export interface ProductscrapRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ ruleUserId: number
+ available: string
+}
+
+// 查询制品报废记录主列表
+export const getProductscrapRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productscrap-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productscrap-record-main/page`, params })
+ }
+}
+
+// 查询制品报废记录主详情
+export const getProductscrapRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/productscrap-record-main/get?id=` + id })
+}
+
+// 新增制品报废记录主
+export const createProductscrapRecordMain = async (data: ProductscrapRecordMainVO) => {
+ return await request.post({ url: `/wms/productscrap-record-main/create`, data })
+}
+
+// 修改制品报废记录主
+export const updateProductscrapRecordMain = async (data: ProductscrapRecordMainVO) => {
+ return await request.put({ url: `/wms/productscrap-record-main/update`, data })
+}
+
+// 删除制品报废记录主
+export const deleteProductscrapRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productscrap-record-main/delete?id=` + id })
+}
+
+// 导出制品报废记录主 Excel
+export const exportProductscrapRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productscrap-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/productscrap-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productscrap-record-main/get-import-template' })
+}
+
+// 撤销
+export const revoke = async (requestNumber: number, number: number) => {
+ return await request.get({ url: `/wms/productscrap-record-main/revoke?requestNumber=` + requestNumber + '&number=' + number})
+}
\ No newline at end of file
diff --git a/src/api/wms/productscrapRequestDetail/index.ts b/src/api/wms/productscrapRequestDetail/index.ts
new file mode 100644
index 0000000..ffb2671
--- /dev/null
+++ b/src/api/wms/productscrapRequestDetail/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface ProductscrapRequestDetailVO {
+ fromOwnerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ inventoryStatus: string
+ reason: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+}
+
+// 查询制品报废申请子列表
+export const getProductscrapRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productscrap-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productscrap-request-detail/page`, params })
+ }
+}
+
+// 查询制品报废申请子详情
+export const getProductscrapRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/productscrap-request-detail/get?id=` + id })
+}
+
+// 新增制品报废申请子
+export const createProductscrapRequestDetail = async (data: ProductscrapRequestDetailVO) => {
+ return await request.post({ url: `/wms/productscrap-request-detail/create`, data })
+}
+
+// 修改制品报废申请子
+export const updateProductscrapRequestDetail = async (data: ProductscrapRequestDetailVO) => {
+ return await request.put({ url: `/wms/productscrap-request-detail/update`, data })
+}
+
+// 删除制品报废申请子
+export const deleteProductscrapRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/productscrap-request-detail/delete?id=` + id })
+}
+
+// 导出制品报废申请子 Excel
+export const exportProductscrapRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/productscrap-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productscrap-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/productscrapRequestMain/index.ts b/src/api/wms/productscrapRequestMain/index.ts
new file mode 100644
index 0000000..2a0a38e
--- /dev/null
+++ b/src/api/wms/productscrapRequestMain/index.ts
@@ -0,0 +1,110 @@
+import request from '@/config/axios'
+
+export interface ProductscrapRequestMainVO {
+ fromWarehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询制品报废申请主列表
+export const getProductscrapRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/productscrap-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/productscrap-request-main/page`, params })
+ }
+}
+
+// 查询制品报废申请主详情
+export const getProductscrapRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/productscrap-request-main/get?id=` + id })
+}
+
+// 新增制品报废申请主
+export const createProductscrapRequestMain = async (data: ProductscrapRequestMainVO) => {
+ return await request.post({ url: `/wms/productscrap-request-main/create`, data })
+}
+
+// 修改制品报废申请主
+export const updateProductscrapRequestMain = async (data: ProductscrapRequestMainVO) => {
+ return await request.put({ url: `/wms/productscrap-request-main/update`, data })
+}
+
+// 删除制品报废申请主
+export const deleteProductscrapRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/productscrap-request-main/delete?id=` + id })
+}
+
+// 导出制品报废申请主 Excel
+export const exportProductscrapRequestMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/productscrap-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/productscrap-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/productscrap-request-main/get-import-template' })
+}
+
+// 关闭-制品报废申请
+export const closeProductscrapRequestMain = async (id) => {
+ return await request.put({ url: `/wms/productscrap-request-main/close?id=` + id })
+}
+
+// 重新添加-制品报废申请
+export const reAddProductscrapRequestMain = async (id) => {
+ return await request.put({ url: `/wms/productscrap-request-main/reAdd?id=` + id })
+}
+
+// 提交审批-制品报废申请
+export const submitProductscrapRequestMain = async (id) => {
+ return await request.put({ url: `/wms/productscrap-request-main/submit?id=` + id })
+}
+
+// 审批驳回-制品报废申请
+export const refusedProductscrapRequestMain = async (id) => {
+ return await request.put({ url: `/wms/productscrap-request-main/refused?id=` + id })
+}
+
+// 审批通过-制品报废申请
+export const agreeProductscrapRequestMain = async (id) => {
+ return await request.put({ url: `/wms/productscrap-request-main/agree?id=` + id })
+}
+
+// 处理-制品报废申请
+export const handleProductscrapRequestMain = async (id) => {
+ return await request.put({ url: `/wms/productscrap-request-main/handle?id=` + id })
+}
+
+// 修改制品报废BOM数据
+export const updateProductscrapDetailRequestBom = async (id, data) => {
+ return await request.post({ url: `/wms/productscrap-request-main/updateBom?id=`+id, data })
+}
+
+// 编辑
+export const editReturnNew = async (params) => {
+ return await request.get({ url: `/wms/productscrap-request-main/editReturnNew`, params })
+}
+
diff --git a/src/api/wms/project/index.ts b/src/api/wms/project/index.ts
new file mode 100644
index 0000000..2689abd
--- /dev/null
+++ b/src/api/wms/project/index.ts
@@ -0,0 +1,58 @@
+import request from '@/config/axios'
+
+export interface ProjectVO {
+ code: string
+ name: string
+ description: string
+ customerCode: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询项目列表
+export const getProjectPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/project/senior', data })
+ } else {
+ return await request.get({ url: `/wms/project/page`, params })
+ }
+}
+
+// 查询项目详情
+export const getProject = async (id: number) => {
+ return await request.get({ url: `/wms/project/get?id=` + id })
+}
+
+// 新增项目
+export const createProject = async (data: ProjectVO) => {
+ return await request.post({ url: `/wms/project/create`, data })
+}
+
+// 修改项目
+export const updateProject = async (data: ProjectVO) => {
+ return await request.put({ url: `/wms/project/update`, data })
+}
+
+// 删除项目
+export const deleteProject = async (id: number) => {
+ return await request.delete({ url: `/wms/project/delete?id=` + id })
+}
+
+// 导出项目 Excel
+export const exportProject = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/project/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/project/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/project/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/purchaseDetail/index.ts b/src/api/wms/purchaseDetail/index.ts
new file mode 100644
index 0000000..4623e6f
--- /dev/null
+++ b/src/api/wms/purchaseDetail/index.ts
@@ -0,0 +1,136 @@
+import request from '@/config/axios'
+
+export interface PurchaseDetailVO {
+ lineNumber: string
+ erpLocationCode: string
+ projectCode: string
+ packQty: number
+ packUnit: string
+ supplierQty: number
+ supplierUom: string
+ convertRate: number
+ shippedQty: number
+ receivedQty: number
+ returnedQty: number
+ putawayQty: number
+ overReceivingPercent: number
+ singlePrice: number
+ amount: number
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ orderQty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ concurrencyStamp: string
+ status: string
+ available: string
+}
+
+const message = useMessage() // 消息弹窗
+
+// 查询采购订单子列表
+export const getPurchaseDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchase-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchase-detail/page`, params })
+ }
+}
+
+
+// 查询采购订单子列表
+export const getPurchaseDetailPageWMS = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchase-detail/seniorWMS', data })
+ } else {
+ return await request.get({ url: `/wms/purchase-detail/pageWMS`, params })
+ }
+}
+
+
+// 查询M类型的采购订单子列表
+export const getPurchaseDetailPageWMSMOrderType = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchase-detail/seniorWMS-MOrderType', data })
+ } else {
+ return await request.get({ url: `/wms/purchase-detail/pageWMS-MOrderType`, params })
+ }
+}
+
+export const getPurchaseDetailPageWMSTypeM = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchase-detail/seniorM', data })
+ } else {
+ return await request.get({ url: `/wms/purchase-detail/pageM`, params })
+ }
+}
+
+// 查询采购订单子列表
+export const getPurchaseDetailPageWMSSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchase-detail/seniorWMS-Spare', data })
+ } else {
+ return await request.get({ url: `/wms/purchase-detail/pageWMS-Spare`, params })
+ }
+}
+
+// 校验子表数据
+export const getPurchaseDetailPageCheckData = async (params) => {
+ return await request.get({ url: `/wms/purchase-detail/pageCheckData`, params })
+}
+
+// 查询采购订单子列表
+export const getPurchaseDetailPagePoNumber = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchase-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchase-detail/page`, params })
+ }
+}
+
+
+// 查询采购订单子详情
+export const getPurchaseDetail = async (id: number) => {
+ return await request.get({ url: `/wms/purchase-detail/get?id=` + id })
+}
+
+// 新增采购订单子
+export const createPurchaseDetail = async (data: PurchaseDetailVO) => {
+ return await request.post({ url: `/wms/purchase-detail/create`, data })
+}
+
+// 修改采购订单子
+export const updatePurchaseDetail = async (data: PurchaseDetailVO) => {
+ return await request.put({ url: `/wms/purchase-detail/update`, data })
+}
+
+// 删除采购订单子
+export const deletePurchaseDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/purchase-detail/delete?id=` + id })
+}
+
+// 导出采购订单子 Excel
+export const exportPurchaseDetail = async (params) => {
+ return await request.download({ url: `/wms/purchase-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchase-detail/get-import-template' })
+}
diff --git a/src/api/wms/purchaseMain/index.ts b/src/api/wms/purchaseMain/index.ts
new file mode 100644
index 0000000..164cf53
--- /dev/null
+++ b/src/api/wms/purchaseMain/index.ts
@@ -0,0 +1,86 @@
+import request from '@/config/axios'
+
+export interface PurchaseMainVO {
+ supplierCode: string
+ number: string
+ type: string
+ status: string
+ orderDate: Date
+ dueDate: Date
+ version: string
+ taxRate: number
+ contactName: string
+ contactPhone: string
+ contactEmail: string
+ isConsignment: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ updateTime: Date
+ updater: string
+ currentStage: number
+ available: string
+}
+
+// 查询采购订单主列表
+export const getPurchaseMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchase-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchase-main/page`, params })
+ }
+}
+
+// 查询采购订单主详情
+export const getPurchaseMain = async (id: number) => {
+ return await request.get({ url: `/wms/purchase-main/get?id=` + id })
+}
+
+// 新增采购订单主
+export const createPurchaseMain = async (data: PurchaseMainVO) => {
+ return await request.post({ url: `/wms/purchase-main/create`, data })
+}
+
+// 修改采购订单主
+export const updatePurchaseMain = async (data: PurchaseMainVO) => {
+ return await request.put({ url: `/wms/purchase-main/update`, data })
+}
+
+// 删除采购订单主
+export const deletePurchaseMain = async (id: number) => {
+ return await request.delete({ url: `/wms/purchase-main/delete?id=` + id })
+}
+
+// 关闭采购订单主
+export const closePurchaseMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-main/close?id=` + id })
+}
+// 打开采购订单主
+export const openPurchaseMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-main/open?id=` + id })
+}
+// 发布采购订单主
+export const publishPurchaseMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-main/publish?id=` + id })
+}
+// 下架采购订单主
+export const witPurchaseMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-main/wit?id=` + id })
+}
+// 导出采购订单主 Excel
+export const exportPurchaseMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchase-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/purchase-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchase-main/get-import-template' })
+}
diff --git a/src/api/wms/purchaseMainWms/index.ts b/src/api/wms/purchaseMainWms/index.ts
new file mode 100644
index 0000000..97ca9ed
--- /dev/null
+++ b/src/api/wms/purchaseMainWms/index.ts
@@ -0,0 +1,86 @@
+import request from '@/config/axios'
+
+export interface PurchaseMainVO {
+ supplierCode: string
+ number: string
+ type: string
+ status: string
+ orderDate: Date
+ dueDate: Date
+ version: string
+ taxRate: number
+ contactName: string
+ contactPhone: string
+ contactEmail: string
+ isConsignment: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ updateTime: Date
+ updater: string
+ currentStage: number
+ available: string
+}
+
+// 查询采购订单主列表
+export const getPurchaseMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchase-main/seniorWMS', data })
+ } else {
+ return await request.get({ url: `/wms/purchase-main/pageWMS`, params })
+ }
+}
+
+// 查询采购订单主详情
+export const getPurchaseMain = async (id: number) => {
+ return await request.get({ url: `/wms/purchase-main/get?id=` + id })
+}
+
+// 新增采购订单主
+export const createPurchaseMain = async (data: PurchaseMainVO) => {
+ return await request.post({ url: `/wms/purchase-main/create`, data })
+}
+
+// 修改采购订单主
+export const updatePurchaseMain = async (data: PurchaseMainVO) => {
+ return await request.put({ url: `/wms/purchase-main/update`, data })
+}
+
+// 删除采购订单主
+export const deletePurchaseMain = async (id: number) => {
+ return await request.delete({ url: `/wms/purchase-main/delete?id=` + id })
+}
+
+// 关闭采购订单主
+export const closePurchaseMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-main/close?id=` + id })
+}
+// 打开采购订单主
+export const openPurchaseMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-main/open?id=` + id })
+}
+// 发布采购订单主
+export const publishPurchaseMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-main/publish?id=` + id })
+}
+// 下架采购订单主
+export const witPurchaseMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-main/wit?id=` + id })
+}
+// 导出采购订单主 Excel
+export const exportPurchaseMain = async (params) => {
+ if (params.isSearch) {
+ const data = { ...params }
+ return await request.downloadPost({ url: `/wms/purchase-main/export-excel-seniorWMS`, data })
+ } else {
+ return await request.download({ url: `/wms/purchase-main/export-excelWMS`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchase-main/get-import-template' })
+}
diff --git a/src/api/wms/purchasePlanDetail/index.ts b/src/api/wms/purchasePlanDetail/index.ts
new file mode 100644
index 0000000..65cae26
--- /dev/null
+++ b/src/api/wms/purchasePlanDetail/index.ts
@@ -0,0 +1,94 @@
+import request from '@/config/axios'
+
+export interface PurchasePlanDetailVO {
+ poNumber: string
+ poLine: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ shippedQty: number
+ planQty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ available: string
+}
+// 要货预测-列表和头部请求参数
+const getPageParams = (params)=>{
+
+ console.log('params.status',params.status)
+ // 状态
+ if(Array.isArray(params.status)){
+ if(params.status&¶ms.status.length>0){
+ params.statuss = params.status.join(',')
+ }
+ params.status = ''
+ }
+ return params
+}
+// 查询要货计划子列表
+export const getPurchasePlanDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchase-plan-detail/senior', data })
+ } else {
+ params = getPageParams(params)
+ return await request.get({ url: `/wms/purchase-plan-detail/page`, params })
+ }
+}
+
+// 查询要货计划子列表 -- 供应商发货申请添加明细
+export const getPurchasePlanDetailPageClcik = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchase-plan-detail/clickDetailsSenior', data })
+ } else {
+ params = getPageParams(params)
+ return await request.get({ url: `/wms/purchase-plan-detail/clickDetailsPage`, params })
+ }
+}
+
+// 查询采购收货记录子列表
+export const getPurchasePlanDetailList = async (params) => {
+ return await request.get({ url: `/wms/purchase-plan-detail/allList`, params })
+}
+
+// 查询要货计划子详情
+export const getPurchasePlanDetail = async (id: number) => {
+ return await request.get({ url: `/wms/purchase-plan-detail/get?id=` + id })
+}
+
+// 新增要货计划子
+export const createPurchasePlanDetail = async (data: PurchasePlanDetailVO) => {
+ return await request.post({ url: `/wms/purchase-plan-detail/create`, data })
+}
+
+// 修改要货计划子
+export const updatePurchasePlanDetail = async (data: PurchasePlanDetailVO) => {
+ return await request.put({ url: `/wms/purchase-plan-detail/update`, data })
+}
+
+// 删除要货计划子
+export const deletePurchasePlanDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/purchase-plan-detail/delete?id=` + id })
+}
+
+// 导出要货计划子 Excel
+export const exportPurchasePlanDetail = async (params) => {
+ return await request.download({ url: `/wms/purchase-plan-detail/export-excel`, params })
+}
+
+// WMS查询要货计划子列表
+export const getPurchasePlanDetailPagewms = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchase-plan-detail/seniorWMS', data })
+ } else {
+ return await request.get({ url: `/wms/purchase-plan-detail/pageWMS`, params })
+ }
+}
diff --git a/src/api/wms/purchasePlanMain/index.ts b/src/api/wms/purchasePlanMain/index.ts
new file mode 100644
index 0000000..9d5e422
--- /dev/null
+++ b/src/api/wms/purchasePlanMain/index.ts
@@ -0,0 +1,114 @@
+import request from '@/config/axios'
+
+export interface PurchasePlanMainVO {
+ supplierCode: string
+ timeWindow: string
+ warehouseCode: string
+ dockCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ beginTime: Date
+ endTime: Date
+ status: string
+ updateTime: Date
+ updater: string
+ available: string
+}
+
+// 查询要货计划主列表
+export const getPurchasePlanMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchase-plan-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchase-plan-main/page`, params })
+ }
+}
+
+// 查询要货计划主详情
+export const getPurchasePlanMain = async (id: number) => {
+ return await request.get({ url: `/wms/purchase-plan-main/get?id=` + id })
+}
+
+// 新增要货计划主
+export const createPurchasePlanMain = async (data: PurchasePlanMainVO) => {
+ return await request.post({ url: `/wms/purchase-plan-main/create`, data })
+}
+
+// 修改要货计划主
+export const updatePurchasePlanMain = async (data: PurchasePlanMainVO) => {
+ return await request.put({ url: `/wms/purchase-plan-main/update`, data })
+}
+
+// 删除要货计划主
+export const deletePurchasePlanMain = async (id: number) => {
+ return await request.delete({ url: `/wms/purchase-plan-main/delete?id=` + id })
+}
+
+// 关闭要货计划主
+export const closePurchasePlanMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-plan-main/close?id=` + id })
+}
+// 打开要货计划主
+export const openPurchasePlanMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-plan-main/open?id=` + id })
+}
+// 发布要货计划主
+export const publishPurchasePlanMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-plan-main/publish?id=` + id })
+}
+// 下架要货计划主
+export const witPurchasePlanMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-plan-main/wit?id=` + id })
+}
+
+// 接受要货计划主
+export const accPurchasePlanMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-plan-main/acc?id=` + id })
+}
+
+// 驳回要货计划主
+export const rejPurchasePlanMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchase-plan-main/rej?id=` + id })
+}
+
+// 导出要货计划主 Excel
+export const exportPurchasePlanMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchase-plan-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/purchase-plan-main/export-excel`, params })
+ }
+}
+// 导出明细要货计划主 Excel
+export const exportDetailsPurchasePlanMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchase-plan-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/purchase-plan-main/export-excel-detail`, params })
+ }
+}
+// 导出要货计划二维表 Excel
+export const exportTablePurchasePlanMain = async (params) => {
+ // if (params.isSearch) {
+ // const data = {...params}
+ // return await request.downloadPost({ url: `/wms/purchase-plan-main/export-excel-senior`, data })
+ // } else {
+ return await request.download({ url: `/wms/purchase-plan-main/export-excel`, params })
+ //}
+}
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchase-plan-main/get-import-template' })
+}
+
+// 查询要货计划策略根据供应商
+export const queryPurchasePlan = async (supplierCode: string) => {
+ return await request.get({ url: `/wms/purchase-plan-main/queryPurchasePlan?supplierCode=` + supplierCode })
+}
\ No newline at end of file
diff --git a/src/api/wms/purchaseclaimRecordDetail/index.ts b/src/api/wms/purchaseclaimRecordDetail/index.ts
new file mode 100644
index 0000000..89f1f53
--- /dev/null
+++ b/src/api/wms/purchaseclaimRecordDetail/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface PurchaseclaimRecordDetailVO {
+ batch: string
+ altBatch: string
+ poNumber: string
+ poLine: string
+ reason: string
+ singlePrice: number
+ amount: number
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+
+// 查询采购索赔记录子列表
+export const getPurchaseclaimRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchaseclaim-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchaseclaim-record-detail/page`, params })
+ }
+}
+
+// 查询采购索赔记录子详情
+export const getPurchaseclaimRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/purchaseclaim-record-detail/get?id=` + id })
+}
+
+// 新增采购索赔记录子
+export const createPurchaseclaimRecordDetail = async (data: PurchaseclaimRecordDetailVO) => {
+ return await request.post({ url: `/wms/purchaseclaim-record-detail/create`, data })
+}
+
+// 修改采购索赔记录子
+export const updatePurchaseclaimRecordDetail = async (data: PurchaseclaimRecordDetailVO) => {
+ return await request.put({ url: `/wms/purchaseclaim-record-detail/update`, data })
+}
+
+// 删除采购索赔记录子
+export const deletePurchaseclaimRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/purchaseclaim-record-detail/delete?id=` + id })
+}
+
+// 导出采购索赔记录子 Excel
+export const exportPurchaseclaimRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/purchaseclaim-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchaseclaim-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/purchaseclaimRecordMain/index.ts b/src/api/wms/purchaseclaimRecordMain/index.ts
new file mode 100644
index 0000000..a4baa7d
--- /dev/null
+++ b/src/api/wms/purchaseclaimRecordMain/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface PurchaseclaimRecordMainVO {
+ requestNumber: string
+ asnNumber: string
+ ppNumber: string
+ supplierCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ available: string
+}
+
+// 查询采购索赔记录主列表
+export const getPurchaseclaimRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchaseclaim-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchaseclaim-record-main/page`, params })
+ }
+}
+
+// 查询采购索赔记录主详情
+export const getPurchaseclaimRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/purchaseclaim-record-main/get?id=` + id })
+}
+
+// 新增采购索赔记录主
+export const createPurchaseclaimRecordMain = async (data: PurchaseclaimRecordMainVO) => {
+ return await request.post({ url: `/wms/purchaseclaim-record-main/create`, data })
+}
+
+// 修改采购索赔记录主
+export const updatePurchaseclaimRecordMain = async (data: PurchaseclaimRecordMainVO) => {
+ return await request.put({ url: `/wms/purchaseclaim-record-main/update`, data })
+}
+
+// 删除采购索赔记录主
+export const deletePurchaseclaimRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/purchaseclaim-record-main/delete?id=` + id })
+}
+
+// 导出采购索赔记录主 Excel
+export const exportPurchaseclaimRecordMain = async (params) => {
+ return await request.download({ url: `/wms/purchaseclaim-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchaseclaim-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/purchaseclaimRequestDetail/index.ts b/src/api/wms/purchaseclaimRequestDetail/index.ts
new file mode 100644
index 0000000..fed254b
--- /dev/null
+++ b/src/api/wms/purchaseclaimRequestDetail/index.ts
@@ -0,0 +1,53 @@
+import request from '@/config/axios'
+
+export interface PurchaseclaimRequestDetailVO {
+ altBatch: string
+ amount: Number
+ batch: Number
+ id: string
+ itemCode: string
+ itemDesc1: string
+ itemDesc2: string
+ itemName: string
+ number: string
+ poLine: string
+ poNumber: string
+ projectCode: string
+ qty: Number
+ reason: string
+ remark: string
+ singlePrice: Number
+ uom: string
+}
+
+// 查询采购索赔申请子列表
+export const getPurchaseclaimRequestDetailPage = async (params) => {
+ // return await request.get({ url: `/wms/purchaseclaim-request-detail/page`, params })
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/purchaseclaim-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchaseclaim-request-detail/page`, params })
+ }
+}
+
+// 查询采购索赔申请子详情
+export const getPurchaseclaimRequesDetail = async (id: number) => {
+ return await request.get({ url: `/wms/purchaseclaim-request-detail/get?id=` + id })
+}
+
+// 新增采购索赔申请子
+export const createPurchaseclaimRequestDetail = async (data: PurchaseclaimRequestDetailVO) => {
+ return await request.post({ url: `/wms/purchaseclaim-request-detail/create`, data })
+}
+
+// 修改采购索赔申请子
+export const updatePurchaseclaimRequestDetail = async (data: PurchaseclaimRequestDetailVO) => {
+ return await request.put({ url: `/wms/purchaseclaim-request-detail/update`, data })
+}
+
+// 删除采购索赔申请子
+export const deletePurchaseclaimRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/purchaseclaim-request-detail/delete?id=` + id })
+}
diff --git a/src/api/wms/purchaseclaimRequestMain/index.ts b/src/api/wms/purchaseclaimRequestMain/index.ts
new file mode 100644
index 0000000..b17dfb9
--- /dev/null
+++ b/src/api/wms/purchaseclaimRequestMain/index.ts
@@ -0,0 +1,92 @@
+import request from '@/config/axios'
+
+export interface PurchaseclaimRequestMainVO {
+ asnNumber: string
+ ppNumber: string
+ supplierCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询采购索赔申请主列表
+export const getPurchaseclaimRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/purchaseclaim-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchaseclaim-request-main/page`, params })
+ }
+}
+// 查询采购索赔申请主详情
+export const getPurchaseclaimRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/purchaseclaim-request-main/get?id=` + id })
+}
+
+// 新增采购索赔申请主
+export const createPurchaseclaimRequestMain = async (data: PurchaseclaimRequestMainVO) => {
+ return await request.post({ url: `/wms/purchaseclaim-request-main/create`, data })
+}
+
+// 修改采购索赔申请主
+export const updatePurchaseclaimRequestMain = async (data: PurchaseclaimRequestMainVO) => {
+ return await request.put({ url: `/wms/purchaseclaim-request-main/update`, data })
+}
+
+// 删除采购索赔申请主
+export const deletePurchaseclaimRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/purchaseclaim-request-main/delete?id=` + id })
+}
+
+// 打开供应商发货申请主
+export const opePurchaseclaimRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchaseclaim-request-main/open?id=` + id })
+}
+// 关闭供应商发货申请主
+export const cloPurchaseclaimRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchaseclaim-request-main/close?id=` + id })
+}
+// 提交审批供应商发货申请主
+export const subPurchaseclaimRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchaseclaim-request-main/sub?id=` + id })
+}
+// 审批通过供应商发货申请主
+export const appPurchaseclaimRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchaseclaim-request-main/app?id=` + id })
+}
+// 驳回供应商发货申请主
+export const rejPurchaseclaimRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/purchaseclaim-request-main/rej?id=` + id })
+}
+// 处理
+export const genRecordsPurchaseclaimRequestMain = async (id) => {
+ return await request.post({ url: `/wms/purchaseclaim-request-main/genRecords?id=` + id })
+}
+// 导出采购索赔申请主 Excel
+export const exportPurchaseclaimRequestMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.downloadPost({ url: `/wms/purchaseclaim-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/purchaseclaim-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchaseclaim-request-main/get-import-template' })
+}
diff --git a/src/api/wms/purchaseprice/index.ts b/src/api/wms/purchaseprice/index.ts
new file mode 100644
index 0000000..03c6af8
--- /dev/null
+++ b/src/api/wms/purchaseprice/index.ts
@@ -0,0 +1,79 @@
+import request from '@/config/axios'
+
+export interface PurchasepriceVO {
+ supplierCode: string
+ itemCode: string
+ currency: string
+ price: number
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询采购价格单列表
+export const getPurchasepricePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/purchaseprice/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchaseprice/page`, params })
+ }
+}
+
+// 查询采购价格单列表
+export const getPurchasepricePageSCP = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/purchaseprice/seniorSCP', data })
+ } else {
+ return await request.get({ url: `/wms/purchaseprice/pageSCP`, params })
+ }
+}
+
+// 查询采购价格单详情
+export const getPurchaseprice = async (id: number) => {
+ return await request.get({ url: `/wms/purchaseprice/get?id=` + id })
+}
+
+// 新增采购价格单
+export const createPurchaseprice = async (data: PurchasepriceVO) => {
+ return await request.post({ url: `/wms/purchaseprice/create`, data })
+}
+
+// 修改采购价格单
+export const updatePurchaseprice = async (data: PurchasepriceVO) => {
+ return await request.put({ url: `/wms/purchaseprice/update`, data })
+}
+
+// 删除采购价格单
+export const deletePurchaseprice = async (id: number) => {
+ return await request.delete({ url: `/wms/purchaseprice/delete?id=` + id })
+}
+
+// 导出采购价格单 Excel
+export const exportPurchaseprice = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchaseprice/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/purchaseprice/export-excel`, params })
+ }
+}
+
+// 导出采购价格单 Excel
+export const exportPurchasepriceSCP = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchaseprice/export-excel-senior-SCP`, data })
+ } else {
+ return await request.download({ url: `/wms/purchaseprice/export-excel-SCP`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchaseprice/get-import-template' })
+}
diff --git a/src/api/wms/purchasereceiptJobDetail/index.ts b/src/api/wms/purchasereceiptJobDetail/index.ts
new file mode 100644
index 0000000..c012a62
--- /dev/null
+++ b/src/api/wms/purchasereceiptJobDetail/index.ts
@@ -0,0 +1,109 @@
+import request from '@/config/axios'
+
+export interface PurchasereceiptJobDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ altBatch: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ fromLocationCode: string
+ toLocationCode: string
+ poNumber: string
+ poLine: string
+ packQty: number
+ packUnit: string
+ supplierQty: number
+ supplierUom: string
+ convertRate: number
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ eemark: string
+ createTime: Date
+ creator: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询采购收货任务子列表
+export const getPurchasereceiptJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-job-detail/page`, params })
+ }
+}
+
+// 查询备件收货任务子列表
+export const getPurchasereceiptJobDetailPageSapre = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-job-detail/seniorSpare', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-job-detail/pageSpare`, params })
+ }
+}
+
+// 查询采购收货任务子列表
+export const getPurchasereceiptJobDetailPageSCP = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-job-detail/seniorSCP', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-job-detail/pageSCP`, params })
+ }
+}
+
+
+// 查询采购收货任务子详情
+export const getPurchasereceiptJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/purchasereceipt-job-detail/get?id=` + id })
+}
+
+// 新增采购收货任务子
+export const createPurchasereceiptJobDetail = async (data: PurchasereceiptJobDetailVO) => {
+ return await request.post({ url: `/wms/purchasereceipt-job-detail/create`, data })
+}
+
+// 修改采购收货任务子
+export const updatePurchasereceiptJobDetail = async (data: PurchasereceiptJobDetailVO) => {
+ return await request.put({ url: `/wms/purchasereceipt-job-detail/update`, data })
+}
+
+// 删除采购收货任务子
+export const deletePurchasereceiptJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/purchasereceipt-job-detail/delete?id=` + id })
+}
+
+// 导出采购收货任务子 Excel
+export const exportPurchasereceiptJobDetail = async (params) => {
+ return await request.download({ url: `/wms/purchasereceipt-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchasereceipt-job-detail/get-import-template' })
+}
+
+// 查询采购收货任务子列表
+export const queryPurchaseceiptChildPackingNumber = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-job-detail/seniorPackingNumber', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-job-detail/pagePackingNumber`, params })
+ }
+}
\ No newline at end of file
diff --git a/src/api/wms/purchasereceiptJobMain/index.ts b/src/api/wms/purchasereceiptJobMain/index.ts
new file mode 100644
index 0000000..79e5460
--- /dev/null
+++ b/src/api/wms/purchasereceiptJobMain/index.ts
@@ -0,0 +1,141 @@
+import request from '@/config/axios'
+
+export interface PurchasereceiptJobMainVO {
+ requestNumber: string
+ asnNumber: string
+ ppNumber: string
+ supplierCode: string
+ toDockCode: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ userPositionCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ allowModifyBatch: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyPackingNumber: string
+}
+
+// 查询采购收货任务主列表
+export const getPurchasereceiptJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-job-main/page`, params })
+ }
+}
+
+// 查询备件收货任务主列表
+export const getPurchasereceiptJobMainPageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-job-main/seniorSpare', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-job-main/pageSpare`, params })
+ }
+}
+
+
+// 查询采购收货任务主详情
+export const getPurchasereceiptJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/purchasereceipt-job-main/get?id=` + id })
+}
+
+// 新增采购收货任务主
+export const createPurchasereceiptJobMain = async (data: PurchasereceiptJobMainVO) => {
+ return await request.post({ url: `/wms/purchasereceipt-job-main/create`, data })
+}
+
+// 修改采购收货任务主
+export const updatePurchasereceiptJobMain = async (data: PurchasereceiptJobMainVO) => {
+ return await request.put({ url: `/wms/purchasereceipt-job-main/update`, data })
+}
+
+// 删除采购收货任务主
+export const deletePurchasereceiptJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/purchasereceipt-job-main/delete?id=` + id })
+}
+
+// 导出采购收货任务主 Excel
+export const exportPurchasereceiptJobMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereceipt-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/purchasereceipt-job-main/export-excel`, params })
+ }
+}
+
+
+// 导出备件收货任务
+export const exportSparereceiptJobMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereceipt-job-main/export-excel-spare-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/purchasereceipt-job-main/export-excel-spare`, params })
+ }
+}
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchasereceipt-job-main/get-import-template' })
+}
+
+// 关闭采购收货任务主
+export const closePurchasereceiptJobMain = (id: number) => {
+ return request.put({ url: '/wms/purchasereceipt-job-main/close?id=' + id })
+}
+
+// 执行备件收货任务主
+export const executePurchasereceiptJobMainSpare = (id: number) => {
+ return request.put({ url: '/wms/purchasereceipt-job-main/executeSpare?id=' + id })
+}
+
+// 放弃备件收货任务主
+export const abandonPurchasereceiptJobMainSpare = (id: number) => {
+ return request.put({ url: '/wms/purchasereceipt-job-main/abandon?id=' + id })
+}
+
+// 承接采购收货任务主
+export const acceptPurchasereceiptJobMain = (id: number) => {
+ return request.put({ url: '/wms/purchasereceipt-job-main/accept?id=' + id })
+}
+
+// 拒收采购收货任务主
+export const refusalPurchasereceiptJobMain = (data) => {
+ return request.post({ url: '/wms/purchasereceipt-job-main/refusal',data})
+}
diff --git a/src/api/wms/purchasereceiptRecordDetail/index.ts b/src/api/wms/purchasereceiptRecordDetail/index.ts
new file mode 100644
index 0000000..53d6cec
--- /dev/null
+++ b/src/api/wms/purchasereceiptRecordDetail/index.ts
@@ -0,0 +1,194 @@
+import request from '@/config/axios'
+
+export interface PurchasereceiptRecordDetailVO {
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ fromBatch: string
+ altBatch: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ fromLocationCode: string
+ toLocationCode: string
+ fromLocationGroupCode: string
+ toLocationGroupCode: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ poNumber: string
+ poLine: string
+ packQty: number
+ packUnit: string
+ qty: number
+ uom: string
+ supplierQty: number
+ supplierUom: string
+ convertRate: number
+ visualInspectResult: string
+ visualInspectPhotos: string
+ failedReason: string
+ singlePrice: number
+ amount: number
+ jobDetailId: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ projectCode: string
+ code: string
+ interfaceType: string
+ fromOwnerCode: string
+ toOwnerCode: string
+ toBatch: string
+ parentPackingNumber: string
+ packingNumber: string
+}
+
+// 查询采购收货记录子列表
+export const getPurchasereceiptRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/wms/purchasereceipt-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-record-detail/page`, params })
+ }
+}
+
+// 查询采购拒收记录
+export const getPurchasereceiptRecordDetailRefusePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/wms/purchasereceipt-record-detail/seniorRefuse', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-record-detail/pageRefuse`, params })
+ }
+}
+
+// 查询备件收货记录子列表
+export const getPurchasereceiptRecordDetailPageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/wms/purchasereceipt-record-detail/seniorSpare', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-record-detail/pageSpare`, params })
+ }
+}
+
+// 查询采购收货记录--退货筛选列表
+export const getPurchasereceiptRecordDetailPageReturn = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/wms/purchasereceipt-record-detail/seniorReturn', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-record-detail/pageReturn`, params })
+ }
+}
+
+export const getPurchasereceiptRecordDetailPageSCP = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/wms/purchasereceipt-record-detail/seniorSCP', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-record-detail/pageSCP`, params })
+ }
+}
+
+// 查询采购收货记录子列表
+export const getPurchasereceiptRecordDetailPageBySupplierCode = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({
+ url: '/wms/purchasereceipt-record-detail/seniorBySupplierCode',
+ data
+ })
+ } else {
+ return await request.get({
+ url: `/wms/purchasereceipt-record-detail/pageBySupplierCode`,
+ params
+ })
+ }
+}
+
+// 查询采购收货记录子列表
+export const getPurchasereceiptRecordDetailList = async (params) => {
+ return await request.get({ url: `/wms/purchasereceipt-record-detail/list`, params })
+}
+
+// 查询采购收货记录子列表
+export const getPurchasereceiptRecordDetailListToRepeat = async (params) => {
+ return await request.get({
+ url: `/wms/purchasereceipt-record-detail/listToRepeatPurchaseReceipt`,
+ params
+ })
+}
+
+// 查询采购收货记录子详情
+export const getPurchasereceiptRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/purchasereceipt-record-detail/get?id=` + id })
+}
+
+// 新增采购收货记录子
+export const createPurchasereceiptRecordDetail = async (data: PurchasereceiptRecordDetailVO) => {
+ return await request.post({ url: `/wms/purchasereceipt-record-detail/create`, data })
+}
+
+// 修改采购收货记录子
+export const updatePurchasereceiptRecordDetail = async (data: PurchasereceiptRecordDetailVO) => {
+ return await request.put({ url: `/wms/purchasereceipt-record-detail/update`, data })
+}
+
+// 删除采购收货记录子
+export const deletePurchasereceiptRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/purchasereceipt-record-detail/delete?id=` + id })
+}
+
+// 导出采购收货记录子 Excel
+export const exportPurchasereceiptRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/purchasereceipt-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchasereceipt-record-detail/get-import-template' })
+}
+// 缺货明细
+export const getScarceGoodsDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = { ...params }
+ return await request.post({ url: '/wms/purchaseshortage-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchaseshortage-detail/page`, params })
+ }
+}
+
+// 查询采购收货记录子包装数据
+export const queryPurchaseceiptChildPackingNumber = async (params) => {
+ return await request.get({
+ url: `/wms/purchasereceipt-record-detail/pageChildPackingNumber`,
+ params
+ })
+}
+
+// 查询采购收货缺货记录子包装数据
+export const queryPurchaseshortageChildPackingNumber = async (params) => {
+ return await request.get({ url: `/wms/purchaseshortage-detail/pageChildPackingNumber`, params })
+}
+
+// 查询采购收货缺货记录子包装数据
+export const pageForQ2 = async (params) => {
+ return await request.get({ url: `/wms/purchasereceipt-record-detail/pageForQ2`, params })
+}
+
diff --git a/src/api/wms/purchasereceiptRecordMain/index.ts b/src/api/wms/purchasereceiptRecordMain/index.ts
new file mode 100644
index 0000000..13ff984
--- /dev/null
+++ b/src/api/wms/purchasereceiptRecordMain/index.ts
@@ -0,0 +1,141 @@
+import request from '@/config/axios'
+
+export interface PurchasereceiptRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ asnNumber: string
+ ppNumber: string
+ supplierCode: string
+ toDockCode: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ outTransaction: string
+ inTransaction: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ available: string
+ putawayRequestFlag: boolean
+ putawayRequestNumber: string
+ inspectRequestFlag: boolean
+ inspectRequestNumber: string
+}
+
+// 查询采购收货记录主列表
+export const getPurchasereceiptRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-record-main/page`, params })
+ }
+}
+
+// 查询备件收货记录主列表
+export const getPurchasereceiptRecordMainPageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-record-main/seniorSpare', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-record-main/pageSpare`, params })
+ }
+}
+
+// 查询采购收货记录主详情
+export const getPurchasereceiptRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/purchasereceipt-record-main/get?id=` + id })
+}
+
+// 新增采购收货记录主
+export const createPurchasereceiptRecordMain = async (data: PurchasereceiptRecordMainVO) => {
+ return await request.post({ url: `/wms/purchasereceipt-record-main/create`, data })
+}
+
+// 修改采购收货记录主
+export const updatePurchasereceiptRecordMain = async (data: PurchasereceiptRecordMainVO) => {
+ return await request.put({ url: `/wms/purchasereceipt-record-main/update`, data })
+}
+
+// 删除采购收货记录主
+export const deletePurchasereceiptRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/purchasereceipt-record-main/delete?id=` + id })
+}
+
+// 导出采购收货记录主 Excel
+export const exportPurchasereceiptRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereceipt-record-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/purchasereceipt-record-main/export-excel`, params })
+ }
+}
+
+// 导出采购收货记录主 Excel
+export const exportPurchasereceiptRecordRefuseMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereceipt-record-main/export-excel-senior-refuse`, data })
+ } else {
+ return await request.download({ url: `/wms/purchasereceipt-record-main/export-excel-refuse`, params })
+ }
+}
+
+
+// 导出备件收货记录
+export const exportSparereceiptRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereceipt-record-main/export-excel-spare-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/purchasereceipt-record-main/export-excel-spare`, params })
+ }
+}
+
+// 导出采购收货记录主 Excel
+export const exportPurchasereceiptRecordMainSCP = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereceipt-record-main/export-excel-senior-SCP`, data })
+ } else {
+ return await request.download({ url: `/wms/purchasereceipt-record-main/export-excel-SCP`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchasereceipt-record-main/get-import-template' })
+}
+
+// 创建上架申请
+export const createPutawayRequest = async (number:string) => {
+ return await request.post({ url: `/wms/purchasereceipt-record-main/createPutawayRequest?number=`+number })
+}
+
+// 创建检验申请
+export const createInspectRequest = async (number:string) => {
+ return await request.post({ url: `/wms/purchasereceipt-record-main/createInspectRequest?number=`+number })
+}
+
+// 创建采购退货记录申请
+export const createPurchasereturnRecord = async (number:string) => {
+ return await request.post({ url: `/wms/purchasereceipt-record-main/createPurchasereturnRecord?number=`+number })
+}
\ No newline at end of file
diff --git a/src/api/wms/purchasereceiptRequestDetail/index.ts b/src/api/wms/purchasereceiptRequestDetail/index.ts
new file mode 100644
index 0000000..34e7190
--- /dev/null
+++ b/src/api/wms/purchasereceiptRequestDetail/index.ts
@@ -0,0 +1,119 @@
+import request from '@/config/axios'
+
+export interface PurchasereceiptRequestDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ altBatch: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ inventoryStatus: string
+ fromLocationCode: string
+ poNumber: string
+ poLine: string
+ packQty: number
+ packUnit: string
+ supplierPackQty: number
+ supplierPackUnit: string
+ convertRate: number
+ number: string
+ itemCode: string
+ remark: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ fromOwnerCode: string
+ toOwnerCode: string
+ createTime: Date
+ creator: string
+ labelStatus: string
+}
+
+// 查询采购收货申请子列表
+export const getPurchasereceiptRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-request-detail/page`, params })
+ }
+}
+
+// 查询采购收货申请子标签列表
+export const getPurchasereceiptRequestDetailLabelList = async (params) => {
+ return await request.get({ url: `/wms/purchasereceipt-request-detail/pageLabel`, params })
+}
+
+
+// 查询备件收货申请子列表
+export const getPurchasereceiptRequestDetailPageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-request-detail/seniorSpare', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-request-detail/pageSpare`, params })
+ }
+}
+
+
+// 查询M类型收货申请子列表
+export const getPurchasereceiptRequestDetailPageOrderMType = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-request-detail/seniorOrderMType', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-request-detail/pageOrderMType`, params })
+ }
+}
+
+// 查询采购收货申请子详情
+export const getPurchasereceiptRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/purchasereceipt-request-detail/get?id=` + id })
+}
+
+// 新增采购收货申请子
+export const createPurchasereceiptRequestDetail = async (data: PurchasereceiptRequestDetailVO) => {
+ return await request.post({ url: `/wms/purchasereceipt-request-detail/create`, data })
+}
+
+// 修改采购收货申请子
+export const updatePurchasereceiptRequestDetail = async (data: PurchasereceiptRequestDetailVO) => {
+ return await request.put({ url: `/wms/purchasereceipt-request-detail/update`, data })
+}
+
+// 删除采购收货申请子
+export const deletePurchasereceiptRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/purchasereceipt-request-detail/delete?id=` + id })
+}
+
+
+
+// 导出采购收货申请子 Excel
+export const exportPurchasereceiptRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/purchasereceipt-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchasereceipt-request-detail/get-import-template' })
+}
+
+// 查询采购收货申请子列表
+export const queryPurchaseceiptChildPackingNumber = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-request-detail/queryPurchaseceiptChildPackingNumberSenior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-request-detail/queryPurchaseceiptChildPackingNumberPage`, params })
+ }
+}
\ No newline at end of file
diff --git a/src/api/wms/purchasereceiptRequestMain/index.ts b/src/api/wms/purchasereceiptRequestMain/index.ts
new file mode 100644
index 0000000..6b7c235
--- /dev/null
+++ b/src/api/wms/purchasereceiptRequestMain/index.ts
@@ -0,0 +1,160 @@
+import request from '@/config/axios'
+
+export interface PurchasereceiptRequestMainVO {
+ asnNumber: string
+ ppNumber: string
+ supplierCode: string
+ carrierCode: string
+ transferMode: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ toDockCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ updateTime: Date
+ updater: string
+ status: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+ vehiclePlateNumber: string
+}
+
+// 查询采购收货申请主列表
+export const getPurchasereceiptRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-request-main/page`, params })
+ }
+}
+
+// 查询备件收货申请主列表
+export const getPurchasereceiptRequestMainPageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereceipt-request-main/seniorSpare', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereceipt-request-main/pageSpare`, params })
+ }
+}
+
+// 查询采购收货申请主详情
+export const getPurchasereceiptRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/purchasereceipt-request-main/get?id=` + id })
+}
+
+// 新增采购收货申请主
+export const createPurchasereceiptRequestMain = async (data: PurchasereceiptRequestMainVO) => {
+ return await request.post({ url: `/wms/purchasereceipt-request-main/create`, data })
+}
+
+// 新增备件收货申请主
+export const createPurchasereceiptRequestMainSpare = async (data: PurchasereceiptRequestMainVO) => {
+ return await request.post({ url: `/wms/purchasereceipt-request-main/createSpare`, data })
+}
+
+// 修改采购收货申请主
+export const updatePurchasereceiptRequestMain = async (data: PurchasereceiptRequestMainVO) => {
+ return await request.put({ url: `/wms/purchasereceipt-request-main/update`, data })
+}
+
+// 删除采购收货申请主
+export const deletePurchasereceiptRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/purchasereceipt-request-main/delete?id=` + id })
+}
+
+// 导出采购收货申请主 Excel
+export const exportPurchasereceiptRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereceipt-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/purchasereceipt-request-main/export-excel`, params })
+ }
+}
+
+
+// 导出采购M型收货申请主 Excel
+export const exportPurchasereceiptRequestMainOrderTypeM = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereceipt-request-main/export-excel-senior-orderTypeM`, data })
+ } else {
+ return await request.download({ url: `/wms/purchasereceipt-request-main/export-excel-orderTypeM`, params })
+ }
+}
+
+// 导出备件收货申请
+export const exportSparereceiptRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereceipt-request-main/export-excel-spare-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/purchasereceipt-request-main/export-excel-spare`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchasereceipt-request-main/get-import-template' })
+}
+
+// 关闭采购收货申请主 Excel
+export const closePurchasereceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/purchasereceipt-request-main/close?id=` + id })
+}
+
+// 重新添加采购收货申请主 Excel
+export const reAddPurchasereceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/purchasereceipt-request-main/reAdd?id=` + id })
+}
+
+// 提交采购收货申请主 Excel
+export const submitPurchasereceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/purchasereceipt-request-main/submit?id=` + id })
+}
+
+// 审批通过采购收货申请主 Excel
+export const agreePurchasereceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/purchasereceipt-request-main/agree?id=` + id })
+}
+
+// 审批驳回采购收货申请主 Excel
+export const refusedPurchasereceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/purchasereceipt-request-main/refused?id=` + id })
+}
+
+// 处理采购收货申请主 Excel
+export const handlePurchasereceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/purchasereceipt-request-main/handle?id=` + id })
+}
+
+// 生成标签
+export const genLabel = async (data) => {
+ return await request.post({ url: `/wms/purchasereceipt-request-main/genLabel`, data })
+}
+
+// “到库位代码”默认为待检库
+export const queryPurchasePlan = async (data) => {
+ return await request.post({ url: `/wms/purchasereceipt-request-main/queryPurchasePlan`, data })
+}
+// 重新生成标签前先删除标签
+export const deleteOldLabels = async (id) => {
+ return await request.post({ url: `/wms/purchasereceipt-request-main/deleteOldLabels?id=`+ id })
+}
+
diff --git a/src/api/wms/purchasereturnJobDetail/index.ts b/src/api/wms/purchasereturnJobDetail/index.ts
new file mode 100644
index 0000000..2fadb78
--- /dev/null
+++ b/src/api/wms/purchasereturnJobDetail/index.ts
@@ -0,0 +1,68 @@
+import request from '@/config/axios'
+
+export interface PurchasereturnJobDetailVO {
+ fromOwnerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ altBatch: string
+ fromLocationCode: string
+ toLocationCode: string
+ inventoryStatus: string
+ poNumber: string
+ poLine: string
+ reason: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: number
+ toOwnerCode: string
+}
+
+// 查询采购退货任务子列表
+export const getPurchasereturnJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereturn-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereturn-job-detail/page`, params })
+ }
+}
+
+// 查询采购退货任务子详情
+export const getPurchasereturnJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/purchasereturn-job-detail/get?id=` + id })
+}
+
+// 新增采购退货任务子
+export const createPurchasereturnJobDetail = async (data: PurchasereturnJobDetailVO) => {
+ return await request.post({ url: `/wms/purchasereturn-job-detail/create`, data })
+}
+
+// 修改采购退货任务子
+export const updatePurchasereturnJobDetail = async (data: PurchasereturnJobDetailVO) => {
+ return await request.put({ url: `/wms/purchasereturn-job-detail/update`, data })
+}
+
+// 删除采购退货任务子
+export const deletePurchasereturnJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/purchasereturn-job-detail/delete?id=` + id })
+}
+
+// 导出采购退货任务子 Excel
+export const exportPurchasereturnJobDetail = async (params) => {
+ return await request.download({ url: `/wms/purchasereturn-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchasereturn-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/purchasereturnJobMain/index.ts b/src/api/wms/purchasereturnJobMain/index.ts
new file mode 100644
index 0000000..d452888
--- /dev/null
+++ b/src/api/wms/purchasereturnJobMain/index.ts
@@ -0,0 +1,108 @@
+import request from '@/config/axios'
+
+export interface PurchasereturnJobMainVO {
+ requestNumber: string
+ purchaseReceiptRecordNumber: string
+ asnNumber: string
+ ppNumber: string
+ supplierCode: string
+ deliverDock: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ fromDockCode: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询采购退货任务主列表
+export const getPurchasereturnJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereturn-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereturn-job-main/page`, params })
+ }
+}
+
+// 查询采购退货任务主详情
+export const getPurchasereturnJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/purchasereturn-job-main/get?id=` + id })
+}
+
+// 新增采购退货任务主
+export const createPurchasereturnJobMain = async (data: PurchasereturnJobMainVO) => {
+ return await request.post({ url: `/wms/purchasereturn-job-main/create`, data })
+}
+
+// 修改采购退货任务主
+export const updatePurchasereturnJobMain = async (data: PurchasereturnJobMainVO) => {
+ return await request.put({ url: `/wms/purchasereturn-job-main/update`, data })
+}
+
+// 删除采购退货任务主
+export const deletePurchasereturnJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/purchasereturn-job-main/delete?id=` + id })
+}
+
+// 导出采购退货任务主 Excel
+export const exportPurchasereturnJobMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereturn-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/purchasereturn-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchasereturn-job-main/get-import-template' })
+}
+
+// 关闭采购退货任务主
+export const closePurchasereturnJobMain = (id: number) => {
+ return request.put({ url: '/wms/purchasereturn-job-main/close?id=' + id })
+}
+// 承接采购退货任务主
+export const acceptPurchasereturnJobMain = (id: number) => {
+ return request.put({ url: '/wms/purchasereturn-job-main/accept?id=' + id })
+}
+// 取消承接采购退货任务主
+export const abandonPurchasereturnJobMain = (id: number) => {
+ return request.put({ url: '/wms/purchasereturn-job-main/abandon?id=' + id })
+}
diff --git a/src/api/wms/purchasereturnRecordDetail/index.ts b/src/api/wms/purchasereturnRecordDetail/index.ts
new file mode 100644
index 0000000..c734765
--- /dev/null
+++ b/src/api/wms/purchasereturnRecordDetail/index.ts
@@ -0,0 +1,112 @@
+import request from '@/config/axios'
+
+export interface PurchasereturnRecordDetailVO {
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromContainerNumber: string
+ fromBatch: string
+ altBatch: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ inventoryStatus: string
+ poNumber: string
+ poLine: string
+ reason: string
+ singlePrice: number
+ amount: number
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+ toContainerNumber: string
+ fromOwnerCode: string
+ toOwnerCode: string
+ toBatch: string
+}
+
+// 查询采购退货记录子列表
+export const getPurchasereturnRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereturn-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereturn-record-detail/page`, params })
+ }
+}
+
+// 查询采购退货记录子列表
+export const getPurchasereturnRecordDetailPageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereturn-record-detail/seniorSpare', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereturn-record-detail/pageSpare`, params })
+ }
+}
+
+
+export const getPurchasereturnRecordDetailPageMorderType = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereturn-record-detail/seniorMorderType', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereturn-record-detail/pageMorderType`, params })
+ }
+}
+
+export const getPurchasereturnRecordDetailPageSCP = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereturn-record-detail/seniorSCP', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereturn-record-detail/pageSCP`, params })
+ }
+}
+
+// 查询采购退货记录子详情
+export const getPurchasereturnRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/purchasereturn-record-detail/get?id=` + id })
+}
+
+// 新增采购退货记录子
+export const createPurchasereturnRecordDetail = async (data: PurchasereturnRecordDetailVO) => {
+ return await request.post({ url: `/wms/purchasereturn-record-detail/create`, data })
+}
+
+// 修改采购退货记录子
+export const updatePurchasereturnRecordDetail = async (data: PurchasereturnRecordDetailVO) => {
+ return await request.put({ url: `/wms/purchasereturn-record-detail/update`, data })
+}
+
+// 删除采购退货记录子
+export const deletePurchasereturnRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/purchasereturn-record-detail/delete?id=` + id })
+}
+
+// 导出采购退货记录子 Excel
+export const exportPurchasereturnRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/purchasereturn-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchasereturn-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/purchasereturnRecordMain/index.ts b/src/api/wms/purchasereturnRecordMain/index.ts
new file mode 100644
index 0000000..6c799db
--- /dev/null
+++ b/src/api/wms/purchasereturnRecordMain/index.ts
@@ -0,0 +1,112 @@
+import request from '@/config/axios'
+
+export interface PurchasereturnRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ purchaseReceiptRecordNumber: string
+ asnNumber: string
+ ppNumber: string
+ supplierCode: string
+ fromDockCode: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ available: string
+}
+
+// 查询采购退货记录主列表
+export const getPurchasereturnRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereturn-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereturn-record-main/page`, params })
+ }
+}
+
+// 查询采购退货记录主详情
+export const getPurchasereturnRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/purchasereturn-record-main/get?id=` + id })
+}
+
+// 新增采购退货记录主
+export const createPurchasereturnRecordMain = async (data: PurchasereturnRecordMainVO) => {
+ return await request.post({ url: `/wms/purchasereturn-record-main/create`, data })
+}
+
+// 修改采购退货记录主
+export const updatePurchasereturnRecordMain = async (data: PurchasereturnRecordMainVO) => {
+ return await request.put({ url: `/wms/purchasereturn-record-main/update`, data })
+}
+
+// 删除采购退货记录主
+export const deletePurchasereturnRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/purchasereturn-record-main/delete?id=` + id })
+}
+
+// 导出采购退货记录主 Excel
+export const exportPurchasereturnRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereturn-record-main/export-excel-senior`, data })
+ } else {
+ return await request.download({url: `/wms/purchasereturn-record-main/export-excel`, params})
+ }
+}
+
+
+// 导出采购退货记录主 Excel
+export const exportPurchasereturnRecordMainMorderType = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereturn-record-main/export-excel-senior-mordertype`, data })
+ } else {
+ return await request.download({url: `/wms/purchasereturn-record-main/export-excel-mordertype`, params})
+ }
+}
+
+// 导出维修备件退货记录主 Excel
+export const exportPurchasereturnRecordMainSpare = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereturn-record-main/export-excel-senior-spare`, data })
+ } else {
+ return await request.download({url: `/wms/purchasereturn-record-main/export-excel-spare`, params})
+ }
+}
+
+// 导出采购退货记录主 Excel
+export const exportPurchasereturnRecordMainSCP = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereturn-record-main/export-excel-senior-SCP`, data })
+ } else {
+ return await request.download({url: `/wms/purchasereturn-record-main/export-excel-SCP`, params})
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchasereturn-record-main/get-import-template' })
+}
diff --git a/src/api/wms/purchasereturnRequestDetail/index.ts b/src/api/wms/purchasereturnRequestDetail/index.ts
new file mode 100644
index 0000000..6a75158
--- /dev/null
+++ b/src/api/wms/purchasereturnRequestDetail/index.ts
@@ -0,0 +1,131 @@
+import request from '@/config/axios'
+
+export interface PurchasereturnRequestDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ altBatch: string
+ toLocationCode: string
+ inventoryStatus: string
+ poNumber: string
+ poLine: string
+ reason: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询采购退货申请子列表
+export const getPurchasereturnRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereturn-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereturn-request-detail/page`, params })
+ }
+}
+
+// 查询采购退货申请子列表
+export const getPurchasereturnRequestDetailEditData = async (params) => {
+ return await request.get({ url: `/wms/purchasereturn-request-main/editReturnNew`, params })
+}
+
+// 查询M类型采购退货申请子列表
+export const getPurchasereturnRequestDetailEditDataMOrderType = async (params) => {
+ return await request.get({ url: `/wms/purchasereturn-request-main/editReturnNewMtype`, params })
+}
+
+// 物料供应商查询
+export const getPurchasereturnSupplierByCode = async (params) => {
+ return await request.get({ url: `/wms/supplieritem/querySupplierByCode`, params })
+}
+// 收货明细查询
+export const getPurchasereturnPurchasereceiptRecordByItemCode = async (params) => {
+ return await request.get({ url: `/wms/purchasereceipt-record-detail/queryPurchasereceiptRecordByItemCode`, params })
+}
+// 选完退货库位 渲染子列表数据
+export const getBalancePurchaseReceiptReturn = async (params) => {
+ return await request.get({ url: `/wms/balance/queryBalancePurchaseReceiptReturn`, params })
+}
+
+// 查询采购退货申请子列表
+export const getPurchasereturnRequestDetailPageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereturn-request-detail/seniorSpare', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereturn-request-detail/pageSpare`, params })
+ }
+}
+
+
+// 查询采购退货申请子列表--M类型退货
+export const getPurchasereturnRequestDetailPageMorderType = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereturn-request-detail/seniorMorderType', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereturn-request-detail/pageMorderType`, params })
+ }
+}
+
+// 查询采购退货申请子详情
+export const getPurchasereturnRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/purchasereturn-request-detail/get?id=` + id })
+}
+
+// 新增采购退货申请子
+export const createPurchasereturnRequestDetail = async (data: PurchasereturnRequestDetailVO) => {
+ return await request.post({ url: `/wms/purchasereturn-request-detail/create`, data })
+}
+
+// 修改采购退货申请子
+export const updatePurchasereturnRequestDetail = async (data: PurchasereturnRequestDetailVO) => {
+ return await request.put({ url: `/wms/purchasereturn-request-detail/update`, data })
+}
+
+// 删除采购退货申请子
+export const deletePurchasereturnRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/purchasereturn-request-detail/delete?id=` + id })
+}
+
+// 导出采购退货申请子 Excel
+export const exportPurchasereturnRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/purchasereturn-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchasereturn-request-detail/get-import-template' })
+}
+
+// 选择收货单明细
+// 查询采购退货申请子列表
+export const queryPurchasereceiptSpareRecordBySupplier = async (params) => {
+ return await request.get({ url: `/wms/purchasereceipt-record-detail/queryPurchasereceiptSpareRecordBySupplier`, params })
+}
+
+// 维修退货申请子表数据
+export const queryBalancePurchaseReceiptSpareReturn = async (params) => {
+ return await request.get({ url: `/wms/purchasereturn-request-main/queryBalancePurchaseReceiptSpareReturn`, params })
+}
+
+// 查询采购退货申请子列表
+export const editReturnSpareNew = async (params) => {
+ return await request.get({ url: `/wms/purchasereturn-request-main/editReturnSpareNew`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/purchasereturnRequestMain/index.ts b/src/api/wms/purchasereturnRequestMain/index.ts
new file mode 100644
index 0000000..509d295
--- /dev/null
+++ b/src/api/wms/purchasereturnRequestMain/index.ts
@@ -0,0 +1,179 @@
+import request from '@/config/axios'
+
+export interface PurchasereturnRequestMainVO {
+ purchaseReceiptRecordNumber: string
+ asnNumber: string
+ ppNumber: string
+ supplierCode: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ fromDockCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询采购退货申请主列表
+export const getPurchasereturnRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/purchasereturn-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/purchasereturn-request-main/page`, params })
+ }
+}
+
+// 查询采购退货申请主详情
+export const getPurchasereturnRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/purchasereturn-request-main/get?id=` + id })
+}
+
+// 新增采购退货申请主
+export const createPurchasereturnRequestMain = async (data: PurchasereturnRequestMainVO) => {
+ return await request.post({ url: `/wms/purchasereturn-request-main/create`, data })
+}
+// 新增采购退货申请主 --新版
+export const createPurchasereturnRequestMainNew = async (data: PurchasereturnRequestMainVO) => {
+ return await request.post({ url: `/wms/purchasereturn-request-main/createReturnNew`, data })
+}
+
+// 新增采购退货申请主 --M类型采购退货
+export const createPurchasereturnRequestMainMType = async (data: PurchasereturnRequestMainVO) => {
+ return await request.post({ url: `/wms/purchasereturn-request-main/createReturnNewMtype`, data })
+}
+
+// 修改采购退货申请主
+export const updatePurchasereturnRequestMain = async (data: PurchasereturnRequestMainVO) => {
+ return await request.put({ url: `/wms/purchasereturn-request-main/update`, data })
+}
+// 修改采购退货申请主 --新版
+export const updatePurchasereturnRequestMainNew = async (data: PurchasereturnRequestMainVO) => {
+ return await request.post({ url: `/wms/purchasereturn-request-main/updateReturnNew`, data })
+}
+
+// 修改M类型采购收货申请主
+export const updatePurchasereturnRequestMainNewMType = async (data: PurchasereturnRequestMainVO) => {
+ return await request.post({ url: `/wms/purchasereturn-request-main/updateReturnNewMtype`, data })
+}
+
+// 删除采购退货申请主
+export const deletePurchasereturnRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/purchasereturn-request-main/delete?id=` + id })
+}
+
+// 导出采购退货申请主 Excel
+export const exportPurchasereturnRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereturn-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({url: `/wms/purchasereturn-request-main/export-excel`, params})
+ }
+}
+
+// 导出采购退货申请主 Excel
+export const exportPurchasereturnRequestMainMorderType = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereturn-request-main/export-excel-senior-mordertype`, data })
+ } else {
+ return await request.download({url: `/wms/purchasereturn-request-main/export-excel-mordertype`, params})
+ }
+}
+
+// 导出采购退货申请主 Excel
+export const exportPurchasereturnRequestMainSpare = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/purchasereturn-request-main/export-excel-senior-spare`, data })
+ } else {
+ return await request.download({url: `/wms/purchasereturn-request-main/export-excel-spare`, params})
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/purchasereturn-request-main/get-import-template' })
+}
+
+// 下载用户维修备件导入模板
+export const importTemplateSpare = () => {
+ return request.download({ url: '/wms/purchasereturn-request-main/get-import-template-spare' })
+}
+
+// 下载用户导入模板(新)
+export const importTemplateNew = () => {
+ return request.download({ url: '/wms/purchasereturn-request-main/get-import-template-new' })
+}
+
+// 下载用户导入模板(新)
+export const importTemplateMorderType = () => {
+ return request.download({ url: '/wms/purchasereturn-request-main/get-import-template-mordertype' })
+}
+
+// 关闭采购退货申请主 Excel
+export const closePurchasereturnRequestMain = async (id) => {
+ return await request.put({ url: `/wms/purchasereturn-request-main/close?id=` + id })
+}
+
+// 重新添加采购退货申请主 Excel
+export const reAddPurchasereturnRequestMain = async (id) => {
+ return await request.put({ url: `/wms/purchasereturn-request-main/reAdd?id=` + id })
+}
+
+// 提交采购退货申请主 Excel
+export const submitPurchasereturnRequestMain = async (id) => {
+ return await request.put({ url: `/wms/purchasereturn-request-main/submit?id=` + id })
+}
+
+// 审批通过采购退货申请主 Excel
+export const agreePurchasereturnRequestMain = async (id) => {
+ return await request.put({ url: `/wms/purchasereturn-request-main/agree?id=` + id })
+}
+
+// 审批驳回采购退货申请主 Excel
+export const refusedPurchasereturnRequestMain = async (id) => {
+ return await request.put({ url: `/wms/purchasereturn-request-main/refused?id=` + id })
+}
+
+// 处理采购退货申请主 Excel
+export const handlePurchasereturnRequestMain = async (id) => {
+ return await request.put({ url: `/wms/purchasereturn-request-main/handle?id=` + id })
+}
+
+// 处理采购退货申请主(新)
+export const handlePurchasereturnRequestMainNew = async (id) => {
+ return await request.put({ url: `/wms/purchasereturn-request-main/handleNew?id=` + id })
+}
+
+// 生成标签
+export const genLabel = async (data) => {
+ return await request.post({ url: `/wms/purchasereturn-request-main/genLabel`, data })
+}
+
+
+// 修改采购退货申请主
+export const updateReturnSpareNew = async (data) => {
+ return await request.post({ url: `/wms/purchasereturn-request-main/updateReturnSpareNew
+`, data })
+}
\ No newline at end of file
diff --git a/src/api/wms/putawayJobDetail/index.ts b/src/api/wms/putawayJobDetail/index.ts
new file mode 100644
index 0000000..2916d8d
--- /dev/null
+++ b/src/api/wms/putawayJobDetail/index.ts
@@ -0,0 +1,71 @@
+import request from '@/config/axios'
+
+export interface PutawayJobDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ poNumber: string
+ poLine: string
+ fromLocationCode: string
+ toLocationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemdesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询上架任务子列表
+export const getPutawayJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/putaway-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/putaway-job-detail/page`, params })
+ }
+}
+
+// 查询上架任务子详情
+export const getPutawayJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/putaway-job-detail/get?id=` + id })
+}
+
+// 新增上架任务子
+export const createPutawayJobDetail = async (data: PutawayJobDetailVO) => {
+ return await request.post({ url: `/wms/putaway-job-detail/create`, data })
+}
+
+// 修改上架任务子
+export const updatePutawayJobDetail = async (data: PutawayJobDetailVO) => {
+ return await request.put({ url: `/wms/putaway-job-detail/update`, data })
+}
+
+// 删除上架任务子
+export const deletePutawayJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/putaway-job-detail/delete?id=` + id })
+}
+
+// 导出上架任务子 Excel
+export const exportPutawayJobDetail = async (params) => {
+ return await request.download({ url: `/wms/putaway-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/putaway-job-detail/get-import-template' })
+}
+
+// 查询上架任务子列表--自包装数量
+export const getPutawayJobDetailPageChildPackingNumber = async (params) => {
+ return await request.get({ url: `/wms/putaway-job-detail/pageChildPackingNumber`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/putawayJobMain/index.ts b/src/api/wms/putawayJobMain/index.ts
new file mode 100644
index 0000000..b6fb266
--- /dev/null
+++ b/src/api/wms/putawayJobMain/index.ts
@@ -0,0 +1,103 @@
+import request from '@/config/axios'
+
+export interface PutawayJobMainVO {
+ requestNumber: string
+ supplierCode: string
+ fromWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ concurrencyStamp: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ toWarehouseCode: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询上架任务主列表
+export const getPutawayJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/putaway-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/putaway-job-main/page`, params })
+ }
+}
+
+// 查询上架任务主详情
+export const getPutawayJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/putaway-job-main/get?id=` + id })
+}
+
+// 新增上架任务主
+export const createPutawayJobMain = async (data: PutawayJobMainVO) => {
+ return await request.post({ url: `/wms/putaway-job-main/create`, data })
+}
+
+// 修改上架任务主
+export const updatePutawayJobMain = async (data: PutawayJobMainVO) => {
+ return await request.put({ url: `/wms/putaway-job-main/update`, data })
+}
+
+// 删除上架任务主
+export const deletePutawayJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/putaway-job-main/delete?id=` + id })
+}
+
+// 导出上架任务主 Excel
+export const exportPutawayJobMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/putaway-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({url: `/wms/putaway-job-main/export-excel`, params})
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/putaway-job-main/get-import-template' })
+}
+
+// 关闭上架任务主
+export const closePutawayJobMain = (id: number) => {
+ return request.put({ url: '/wms/putaway-job-main/close?id=' + id })
+}
+
+// 承接上架任务主
+export const acceptPutawayJobMain = (id: number) => {
+ return request.put({ url: '/wms/putaway-job-main/accept?id=' + id })
+}
+
+// 取消承接上架任务主
+export const abandonPutawayJobMain = (id: number) => {
+ return request.put({ url: '/wms/putaway-job-main/abandon?id=' + id })
+}
diff --git a/src/api/wms/putawayRecordDetail/index.ts b/src/api/wms/putawayRecordDetail/index.ts
new file mode 100644
index 0000000..2d98839
--- /dev/null
+++ b/src/api/wms/putawayRecordDetail/index.ts
@@ -0,0 +1,81 @@
+import request from '@/config/axios'
+
+export interface PutawayRecordDetailVO {
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromBatch: string
+ inventoryStatus: string
+ poNumber: string
+ poLine: string
+ fromOwnerCode: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toOwnerCode: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ toBatch: string
+}
+
+// 查询上架记录子列表
+export const getPutawayRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/putaway-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/putaway-record-detail/page`, params })
+ }
+}
+
+// 查询上架记录子详情
+export const getPutawayRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/putaway-record-detail/get?id=` + id })
+}
+
+// 新增上架记录子
+export const createPutawayRecordDetail = async (data: PutawayRecordDetailVO) => {
+ return await request.post({ url: `/wms/putaway-record-detail/create`, data })
+}
+
+// 修改上架记录子
+export const updatePutawayRecordDetail = async (data: PutawayRecordDetailVO) => {
+ return await request.put({ url: `/wms/putaway-record-detail/update`, data })
+}
+
+// 删除上架记录子
+export const deletePutawayRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/putaway-record-detail/delete?id=` + id })
+}
+
+// 导出上架记录子 Excel
+export const exportPutawayRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/putaway-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/putaway-record-detail/get-import-template' })
+}
+
+// 查询上架记录子列表--子包装数据
+export const getPutawayJobDetailPageChildPackingNumber = async (params) => {
+ return await request.get({ url: `/wms/putaway-record-detail/pageChildPackingNumber`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/putawayRecordMain/index.ts b/src/api/wms/putawayRecordMain/index.ts
new file mode 100644
index 0000000..36507e3
--- /dev/null
+++ b/src/api/wms/putawayRecordMain/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface PutawayRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ supplierCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ available: string
+}
+
+// 查询上架记录主列表
+export const getPutawayRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/putaway-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/putaway-record-main/page`, params })
+ }
+}
+
+// 查询上架记录主详情
+export const getPutawayRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/putaway-record-main/get?id=` + id })
+}
+
+// 新增上架记录主
+export const createPutawayRecordMain = async (data: PutawayRecordMainVO) => {
+ return await request.post({ url: `/wms/putaway-record-main/create`, data })
+}
+
+// 修改上架记录主
+export const updatePutawayRecordMain = async (data: PutawayRecordMainVO) => {
+ return await request.put({ url: `/wms/putaway-record-main/update`, data })
+}
+
+// 删除上架记录主
+export const deletePutawayRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/putaway-record-main/delete?id=` + id })
+}
+
+// 导出上架记录主 Excel
+export const exportPutawayRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/putaway-record-main/export-excel-senior`, data })
+ } else {
+ return await request.download({url: `/wms/putaway-record-main/export-excel`, params})
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/putaway-record-main/get-import-template' })
+}
diff --git a/src/api/wms/putawayRequestDetail/index.ts b/src/api/wms/putawayRequestDetail/index.ts
new file mode 100644
index 0000000..a96a2d1
--- /dev/null
+++ b/src/api/wms/putawayRequestDetail/index.ts
@@ -0,0 +1,72 @@
+import request from '@/config/axios'
+
+export interface PutawayRequestDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ poNumber: string
+ poLine: string
+ fromLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询上架申请子列表
+export const getPutawayRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/putaway-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/putaway-request-detail/page`, params })
+ }
+}
+
+// 查询上架申请子详情
+export const getPutawayRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/putaway-request-detail/get?id=` + id })
+}
+
+// 新增上架申请子
+export const createPutawayRequestDetail = async (data: PutawayRequestDetailVO) => {
+ return await request.post({ url: `/wms/putaway-request-detail/create`, data })
+}
+
+// 修改上架申请子
+export const updatePutawayRequestDetail = async (data: PutawayRequestDetailVO) => {
+ return await request.put({ url: `/wms/putaway-request-detail/update`, data })
+}
+
+// 删除上架申请子
+export const deletePutawayRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/putaway-request-detail/delete?id=` + id })
+}
+
+// 导出上架申请子 Excel
+export const exportPutawayRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/putaway-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/putaway-request-detail/get-import-template' })
+}
+
+// 查询上架申请子列表--子包装数据
+export const getPutawayRequestDetailPageChildPackingNumber = async (params) => {
+ return await request.get({ url: `/wms/putaway-request-detail/pageChildPackingNumber`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/putawayRequestMain/index.ts b/src/api/wms/putawayRequestMain/index.ts
new file mode 100644
index 0000000..7db4cc0
--- /dev/null
+++ b/src/api/wms/putawayRequestMain/index.ts
@@ -0,0 +1,102 @@
+import request from '@/config/axios'
+
+export interface PutawayRequestMainVO {
+ supplierCode: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询上架申请主列表
+export const getPutawayRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/putaway-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/putaway-request-main/page`, params })
+ }
+}
+
+// 查询上架申请主详情
+export const getPutawayRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/putaway-request-main/get?id=` + id })
+}
+
+// 新增上架申请主
+export const createPutawayRequestMain = async (data: PutawayRequestMainVO) => {
+ return await request.post({ url: `/wms/putaway-request-main/create`, data })
+}
+
+// 修改上架申请主
+export const updatePutawayRequestMain = async (data: PutawayRequestMainVO) => {
+ return await request.put({ url: `/wms/putaway-request-main/update`, data })
+}
+
+// 删除上架申请主
+export const deletePutawayRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/putaway-request-main/delete?id=` + id })
+}
+
+// 导出上架申请主 Excel
+export const exportPutawayRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/putaway-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({url: `/wms/putaway-request-main/export-excel`, params})
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/putaway-request-main/get-import-template' })
+}
+
+// 关闭上架申请主 Excel
+export const closePutawayRequestMain = async (id) => {
+ return await request.put({ url: `/wms/putaway-request-main/close?id=` + id })
+}
+
+// 重新添加上架申请主 Excel
+export const reAddPutawayRequestMain = async (id) => {
+ return await request.put({ url: `/wms/putaway-request-main/reAdd?id=` + id })
+}
+
+// 提交上架申请主 Excel
+export const submitPutawayRequestMain = async (id) => {
+ return await request.put({ url: `/wms/putaway-request-main/submit?id=` + id })
+}
+
+// 审批通过上架申请主 Excel
+export const agreePutawayRequestMain = async (id) => {
+ return await request.put({ url: `/wms/putaway-request-main/agree?id=` + id })
+}
+
+// 审批驳回上架申请主 Excel
+export const refusedPutawayRequestMain = async (id) => {
+ return await request.put({ url: `/wms/putaway-request-main/refused?id=` + id })
+}
+
+// 处理上架申请主 Excel
+export const handlePutawayRequestMain = async (id) => {
+ return await request.put({ url: `/wms/putaway-request-main/handle?id=` + id })
+}
diff --git a/src/api/wms/qadCostcentre/index.ts b/src/api/wms/qadCostcentre/index.ts
new file mode 100644
index 0000000..752e436
--- /dev/null
+++ b/src/api/wms/qadCostcentre/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface QadCostcentreVO {
+ id: number
+ code: string
+ usageDescription: string
+ costcentreId: string
+ costcentreCode: string
+ costcentreDescription: string
+ costcentreActive: string
+ costcentreType: string
+ available: string
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询QAD成品中心列表
+export const getQadCostcentrePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/qad-costcentre/senior', data })
+ } else {
+ return await request.get({ url: `/wms/qad-costcentre/page`, params })
+ }
+}
+
+// 查询QAD成品中心详情
+export const getQadCostcentre = async (id: number) => {
+ return await request.get({ url: `/wms/qad-costcentre/get?id=` + id })
+}
+
+// 新增QAD成品中心
+export const createQadCostcentre = async (data: QadCostcentreVO) => {
+ return await request.post({ url: `/wms/qad-costcentre/create`, data })
+}
+
+// 修改QAD成品中心
+export const updateQadCostcentre = async (data: QadCostcentreVO) => {
+ return await request.put({ url: `/wms/qad-costcentre/update`, data })
+}
+
+// 删除QAD成品中心
+export const deleteQadCostcentre = async (id: number) => {
+ return await request.delete({ url: `/wms/qad-costcentre/delete?id=` + id })
+}
+
+// 导出QAD成品中心 Excel
+export const exportQadCostcentre = async (params) => {
+ return await request.download({ url: `/wms/qad-costcentre/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/qad-costcentre/get-import-template' })
+}
+
+// 根据code获取数据列表
+export const getCostCenterByCodes = async (params) => {
+ return await request.get({ url: `/wms/qad-costcentre/listByCostcentreCode`, params })
+}
diff --git a/src/api/wms/qadProject/index.ts b/src/api/wms/qadProject/index.ts
new file mode 100644
index 0000000..1cf09d8
--- /dev/null
+++ b/src/api/wms/qadProject/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface QadProjectVO {
+ id: number
+ projectId: string
+ projectCode: string
+ projectDescription: string
+ projectStartDate: string
+ projectEndDate: string
+ statusCode: string
+ available: string
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询QAD项目信息列表
+export const getQadProjectPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/qad-project/senior', data })
+ } else {
+ return await request.get({ url: `/wms/qad-project/page`, params })
+ }
+}
+
+// 查询QAD项目信息详情
+export const getQadProject = async (id: number) => {
+ return await request.get({ url: `/wms/qad-project/get?id=` + id })
+}
+
+// 新增QAD项目信息
+export const createQadProject = async (data: QadProjectVO) => {
+ return await request.post({ url: `/wms/qad-project/create`, data })
+}
+
+// 修改QAD项目信息
+export const updateQadProject = async (data: QadProjectVO) => {
+ return await request.put({ url: `/wms/qad-project/update`, data })
+}
+
+// 删除QAD项目信息
+export const deleteQadProject = async (id: number) => {
+ return await request.delete({ url: `/wms/qad-project/delete?id=` + id })
+}
+
+// 导出QAD项目信息 Excel
+export const exportQadProject = async (params) => {
+ return await request.download({ url: `/wms/qad-project/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/qad-project/get-import-template' })
+}
+
+export const getProjectType = async () => {
+ return await request.get({ url: `/wms/qad-costcentre/queryCostcentreType` })
+}
+
diff --git a/src/api/wms/qadproductionplan/index.ts b/src/api/wms/qadproductionplan/index.ts
new file mode 100644
index 0000000..a54e226
--- /dev/null
+++ b/src/api/wms/qadproductionplan/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface QadProductionPlanMainVO {
+ displayOrder: number
+ workshop: string
+ productionLine: string
+ shift: string
+ team: string
+ planDate: Date
+ details: string
+ number: string
+ planType: string
+ businessType: string
+ remark: string
+ woNumber: string
+ woLine: string
+}
+
+// 查询QAD生产计划主列表
+export const getQadProductionPlanMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/qad-production-plan-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/qad-production-plan-main/page`, params })
+ }
+}
+export const getQadProductionPlanDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/qad-production-plan-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/qad-production-plan-detail/page`, params })
+ }
+}
+
+
+
+// 查询QAD生产计划主详情
+export const getQadProductionPlanMain = async (id: number) => {
+ return await request.get({ url: `/wms/qad-production-plan-main/get?id=` + id })
+}
+
+// 新增QAD生产计划主
+export const createQadProductionPlanMain = async (data: QadProductionPlanMainVO) => {
+ return await request.post({ url: `/wms/qad-production-plan-main/create`, data })
+}
+
+// 修改QAD生产计划主
+export const updateQadProductionPlanMain = async (data: QadProductionPlanMainVO) => {
+ return await request.put({ url: `/wms/qad-production-plan-main/update`, data })
+}
+
+// 删除QAD生产计划主
+export const deleteQadProductionPlanMain = async (id: number) => {
+ return await request.delete({ url: `/wms/qad-production-plan-main/delete?id=` + id })
+}
+
+// 导出QAD生产计划主 Excel
+export const exportQadProductionPlanMain = async (params) => {
+ if (params.isSearch){
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/qad-production-plan-main/export-excel-senior`, data })
+ }else {
+ return await request.download({ url: `/wms/qad-production-plan-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/qad-production-plan-main/get-import-template' })
+}
diff --git a/src/api/wms/rawMaterialConsumptionInfo/index.ts b/src/api/wms/rawMaterialConsumptionInfo/index.ts
new file mode 100644
index 0000000..6acc4fe
--- /dev/null
+++ b/src/api/wms/rawMaterialConsumptionInfo/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+
+export const AssemblyFinishedMaterialConsumptionRespVO = {
+ finishPackingNumber: '',
+ finishBatch: '',
+ finishItemCode: '',
+ finishCreateTime: new Date(),
+ id: 0,
+ processCode: '',
+ bomVersion: '',
+ packingNumber: '',
+ batch: '',
+ inventoryStatus: '',
+ fromLocationCode: '',
+ fromLocationGroupCode: '',
+ fromAreaCode: '',
+ itemName: '',
+ itemDesc1: '',
+ itemDesc2: '',
+ projectCode: '',
+ qty: '',
+ uom: '',
+ number: '',
+ itemCode: '',
+ remark: '',
+ createTime: new Date(),
+ creator: '',
+ code: '',
+ interfaceType: '',
+ jobDetailId: ''
+};
+
+
+// 查询QAD项目信息列表
+export const getRawMaterialConsumptionInfoPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/backflush-record-detailb/getAssemblyMaterialUsageSenior', data })
+ } else {
+ return await request.get({ url: `/wms/backflush-record-detailb/getAssemblyMaterialUsage`, params })
+ }
+}
+
+
+export const exportAssemblyMaterialUsage = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/backflush-record-detailb/getAssemblyMaterialUsageSeniorExport`, data })
+ }else{
+ return await request.download({ url: `/wms/backflush-record-detailb/assemblyMaterialUsageExport`, params })
+ }
+}
+
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/backflush-record-detailb/get-import-template-error' })
+}
+
diff --git a/src/api/wms/recommendLocationHistory/index.ts b/src/api/wms/recommendLocationHistory/index.ts
new file mode 100644
index 0000000..f19147d
--- /dev/null
+++ b/src/api/wms/recommendLocationHistory/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface RecommendLocationHistoryVO {
+ id: number
+ businessNumber: string
+ businessId: number
+ toLocation: string
+ ruleName: string
+ priority: string
+ locationCollect: string
+ balanceLocationCollect: string
+ expectinLocationCollect: string
+ remark: string
+ extraProperties: string
+ concurrencyStamp: number
+}
+
+// 查询推荐库位推荐记录列表
+export const getRecommendLocationHistoryPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/recommend-location-history/senior', data })
+ } else {
+ return await request.get({ url: `/wms/recommend-location-history/page`, params })
+ }
+}
+
+// 查询推荐库位推荐记录详情
+export const getRecommendLocationHistory = async (id: number) => {
+ return await request.get({ url: `/wms/recommend-location-history/get?id=` + id })
+}
+
+// 新增推荐库位推荐记录
+export const createRecommendLocationHistory = async (data: RecommendLocationHistoryVO) => {
+ return await request.post({ url: `/wms/recommend-location-history/create`, data })
+}
+
+// 修改推荐库位推荐记录
+export const updateRecommendLocationHistory = async (data: RecommendLocationHistoryVO) => {
+ return await request.put({ url: `/wms/recommend-location-history/update`, data })
+}
+
+// 删除推荐库位推荐记录
+export const deleteRecommendLocationHistory = async (id: number) => {
+ return await request.delete({ url: `/wms/recommend-location-history/delete?id=` + id })
+}
+
+// 导出推荐库位推荐记录 Excel
+export const exportRecommendLocationHistory = async (params) => {
+ return await request.download({ url: `/wms/recommend-location-history/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/recommend-location-history/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/recordsetting/index.ts b/src/api/wms/recordsetting/index.ts
new file mode 100644
index 0000000..25f8d0d
--- /dev/null
+++ b/src/api/wms/recordsetting/index.ts
@@ -0,0 +1,52 @@
+import request from '@/config/axios'
+
+export interface RecordsettingVO {
+ code: string
+ interfaceType: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ available: string
+ isSoftDeleted: string
+}
+
+// 查询记录设置列表
+export const getRecordsettingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/recordsetting/senior', data })
+ } else {
+ return await request.get({ url: `/wms/recordsetting/page`, params })
+ }
+}
+
+// 查询记录设置详情
+export const getRecordsetting = async (id: number) => {
+ return await request.get({ url: `/wms/recordsetting/get?id=` + id })
+}
+
+// 新增记录设置
+export const createRecordsetting = async (data: RecordsettingVO) => {
+ return await request.post({ url: `/wms/recordsetting/create`, data })
+}
+
+// 修改记录设置
+export const updateRecordsetting = async (data: RecordsettingVO) => {
+ return await request.put({ url: `/wms/recordsetting/update`, data })
+}
+
+// 删除记录设置
+export const deleteRecordsetting = async (id: number) => {
+ return await request.delete({ url: `/wms/recordsetting/delete?id=` + id })
+}
+
+// 导出记录设置 Excel
+export const exportRecordsetting = async (params) => {
+ return await request.download({ url: `/wms/recordsetting/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/recordsetting/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/relegateRecordDetail/index.ts b/src/api/wms/relegateRecordDetail/index.ts
new file mode 100644
index 0000000..3127b99
--- /dev/null
+++ b/src/api/wms/relegateRecordDetail/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface RelegateRecordDetailVO {
+ id: number
+ masterId: number
+ itemCode: string
+ downItemCode: string
+ businessType: string
+ uom: string
+ qty: number
+ inventoryStatus: string
+ fromBatch: string
+ fromPackingNumber: string
+ fromLocationCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toPackingNumber: string
+ toBatch: string
+ toLocationCode: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ number: string
+ available: string
+ remark: string
+ departmentCode: string
+ siteId: number
+ extraProperties: string
+ status: string
+ concurrencyStamp: number
+ serialNumber: string
+ ruleUserId: number
+}
+
+// 查询物料降级记录子列表
+export const getRelegateRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/relegate-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/relegate-record-detail/page`, params })
+ }
+}
+
+// 查询物料降级记录子详情
+export const getRelegateRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/relegate-record-detail/get?id=` + id })
+}
+
+// 新增物料降级记录子
+export const createRelegateRecordDetail = async (data: RelegateRecordDetailVO) => {
+ return await request.post({ url: `/wms/relegate-record-detail/create`, data })
+}
+
+// 修改物料降级记录子
+export const updateRelegateRecordDetail = async (data: RelegateRecordDetailVO) => {
+ return await request.put({ url: `/wms/relegate-record-detail/update`, data })
+}
+
+// 删除物料降级记录子
+export const deleteRelegateRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/relegate-record-detail/delete?id=` + id })
+}
+
+// 导出物料降级记录子 Excel
+export const exportRelegateRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/relegate-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/relegate-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/relegateRecordMain/index.ts b/src/api/wms/relegateRecordMain/index.ts
new file mode 100644
index 0000000..78d63d8
--- /dev/null
+++ b/src/api/wms/relegateRecordMain/index.ts
@@ -0,0 +1,61 @@
+import request from '@/config/axios'
+
+export interface RelegateRecordMainVO {
+ id: number
+ requestNumber: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ userGroupCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+}
+
+// 查询物料降级记录主列表
+export const getRelegateRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/relegate-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/relegate-record-main/page`, params })
+ }
+}
+
+// 查询物料降级记录主详情
+export const getRelegateRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/relegate-record-main/get?id=` + id })
+}
+
+// 新增物料降级记录主
+export const createRelegateRecordMain = async (data: RelegateRecordMainVO) => {
+ return await request.post({ url: `/wms/relegate-record-main/create`, data })
+}
+
+// 修改物料降级记录主
+export const updateRelegateRecordMain = async (data: RelegateRecordMainVO) => {
+ return await request.put({ url: `/wms/relegate-record-main/update`, data })
+}
+
+// 删除物料降级记录主
+export const deleteRelegateRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/relegate-record-main/delete?id=` + id })
+}
+
+// 导出物料降级记录主 Excel
+export const exportRelegateRecordMain = async (params) => {
+ return await request.download({ url: `/wms/relegate-record-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/relegate-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/relegateRequestDetail/index.ts b/src/api/wms/relegateRequestDetail/index.ts
new file mode 100644
index 0000000..98aa10e
--- /dev/null
+++ b/src/api/wms/relegateRequestDetail/index.ts
@@ -0,0 +1,73 @@
+import request from '@/config/axios'
+
+export interface RelegateRequestDetailVO {
+ id: number
+ itemCode: string
+ downItemCode: string
+ businessType: string
+ uom: string
+ qty: number
+ fromBatch: string
+ fromPackingNumber: string
+ fromLocationCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ fromWarehouseCode: string
+ toPackingNumber: string
+ toBatch: string
+ toLocationCode: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ number: string
+ available: string
+ remark: string
+ departmentCode: string
+ siteId: number
+ extraProperties: string
+ status: string
+ concurrencyStamp: number
+ serialNumber: string
+ ruleUserId: number
+}
+
+// 查询物料降级信息列表
+export const getRelegateRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/relegate-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/relegate-request-detail/page`, params })
+ }
+}
+
+// 查询物料降级信息详情
+export const getRelegateRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/relegate-request-detail/get?id=` + id })
+}
+
+// 新增物料降级信息
+export const createRelegateRequestDetail = async (data: RelegateRequestDetailVO) => {
+ return await request.post({ url: `/wms/relegate-request-detail/create`, data })
+}
+
+// 修改物料降级信息
+export const updateRelegateRequestDetail = async (data: RelegateRequestDetailVO) => {
+ return await request.put({ url: `/wms/relegate-request-detail/update`, data })
+}
+
+// 删除物料降级信息
+export const deleteRelegateRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/relegate-request-detail/delete?id=` + id })
+}
+
+// 导出物料降级信息 Excel
+export const exportRelegateRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/relegate-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/relegate-request/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/relegateRequestMain/index.ts b/src/api/wms/relegateRequestMain/index.ts
new file mode 100644
index 0000000..84a8a9f
--- /dev/null
+++ b/src/api/wms/relegateRequestMain/index.ts
@@ -0,0 +1,103 @@
+import request from '@/config/axios'
+
+export interface RelegateRequestMainVO {
+ id: number
+ fromWarehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+ concurrencyStamp: number
+ ruleUserId: number
+ fromAreaTypes: string
+ fromAreaCodes: string
+ serialNumber: string
+ inInventoryStatuses: string
+ outInventoryStatuses: string
+ reason: string
+}
+
+// 查询物料降级申请主列表
+export const getRelegateRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/relegate-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/relegate-request-main/page`, params })
+ }
+}
+
+// 查询物料降级申请主详情
+export const getRelegateRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/relegate-request-main/get?id=` + id })
+}
+
+// 新增物料降级申请主
+export const createRelegateRequestMain = async (data: RelegateRequestMainVO) => {
+ return await request.post({ url: `/wms/relegate-request-main/create`, data })
+}
+
+// 修改物料降级申请主
+export const updateRelegateRequestMain = async (data: RelegateRequestMainVO) => {
+ return await request.put({ url: `/wms/relegate-request-main/update`, data })
+}
+
+// 删除物料降级申请主
+export const deleteRelegateRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/relegate-request-main/delete?id=` + id })
+}
+
+// 导出物料降级申请主 Excel
+export const exportRelegateRequestMain = async (params) => {
+ return await request.download({ url: `/wms/relegate-request-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/relegate-request-main/get-import-template' })
+}
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/relegate-request-main/handle?id=' + id })
+}
+
+// 创建标签
+export const relegateCreateLabel = async (data: RelegateRequestMainVO) => {
+ return await request.post({ url: `/wms/relegate-request-main/relegateCreateLabel`, data })
+}
\ No newline at end of file
diff --git a/src/api/wms/remark/index.ts b/src/api/wms/remark/index.ts
new file mode 100644
index 0000000..b650d78
--- /dev/null
+++ b/src/api/wms/remark/index.ts
@@ -0,0 +1,30 @@
+import request from '@/config/axios'
+// 查询备注列表
+export const getRemarkPage = async (params) => {
+ if (params.tableName){
+ params.tableName = toSnakeCase(params.tableName)
+ }
+ return await request.get({ url: `/infra/remark/list`, params })
+}
+
+// 新增备注
+export const createRemark= async (data) => {
+ return await request.post({ url: `/infra/remark/create`, data })
+}
+// 查询变更记录列表
+export const getChangeRecordPage = async (params) => {
+ params = handleParams(params);
+ return await request.get({ url: `/infra/trends/list`, params })
+}
+const handleParams = (params) => {
+ if (params.tableName && params.tableName.trim() !== "") {
+ // 检查是否包含大写字母
+ if (/[A-Z]/.test(params.tableName)) {
+ params.tableName = toSnakeCase(params.tableName);
+ }
+ }
+ return params;
+}
+const toSnakeCase = (str) => {
+ return str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);
+}
diff --git a/src/api/wms/repleinshJobDetail/index.ts b/src/api/wms/repleinshJobDetail/index.ts
new file mode 100644
index 0000000..86483e0
--- /dev/null
+++ b/src/api/wms/repleinshJobDetail/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface RepleinshJobDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ fromLocationCode: string
+ toLocationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询补料任务子列表
+export const getRepleinshJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/job/repleinsh-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/job/repleinsh-job-detail/page`, params })
+ }
+}
+
+// 查询补料任务子详情
+export const getRepleinshJobDetail = async (id: number) => {
+ return await request.get({ url: `/job/repleinsh-job-detail/get?id=` + id })
+}
+
+// 新增补料任务子
+export const createRepleinshJobDetail = async (data: RepleinshJobDetailVO) => {
+ return await request.post({ url: `/job/repleinsh-job-detail/create`, data })
+}
+
+// 修改补料任务子
+export const updateRepleinshJobDetail = async (data: RepleinshJobDetailVO) => {
+ return await request.put({ url: `/job/repleinsh-job-detail/update`, data })
+}
+
+// 删除补料任务子
+export const deleteRepleinshJobDetail = async (id: number) => {
+ return await request.delete({ url: `/job/repleinsh-job-detail/delete?id=` + id })
+}
+
+// 导出补料任务子 Excel
+export const exportRepleinshJobDetail = async (params) => {
+ return await request.download({ url: `/job/repleinsh-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/job/repleinsh-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/repleinshJobMain/index.ts b/src/api/wms/repleinshJobMain/index.ts
new file mode 100644
index 0000000..2869a77
--- /dev/null
+++ b/src/api/wms/repleinshJobMain/index.ts
@@ -0,0 +1,106 @@
+import request from '@/config/axios'
+
+export interface RepleinshJobMainVO {
+ requestNumber: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询补料任务主列表
+export const getRepleinshJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/repleinsh-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/repleinsh-job-main/page`, params })
+ }
+}
+
+// 查询补料任务主详情
+export const getRepleinshJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/repleinsh-job-main/get?id=` + id })
+}
+
+// 新增补料任务主
+export const createRepleinshJobMain = async (data: RepleinshJobMainVO) => {
+ return await request.post({ url: `/wms/repleinsh-job-main/create`, data })
+}
+
+// 修改补料任务主
+export const updateRepleinshJobMain = async (data: RepleinshJobMainVO) => {
+ return await request.put({ url: `/wms/repleinsh-job-main/update`, data })
+}
+
+// 删除补料任务主
+export const deleteRepleinshJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/repleinsh-job-main/delete?id=` + id })
+}
+
+// 导出补料任务主 Excel
+export const exportRepleinshJobMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/repleinsh-job-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/repleinsh-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/repleinsh-job-main/get-import-template' })
+}
+
+// 承接发料任务
+export const acceptRepleinshMain = async (id) => {
+ return await request.put({ url: `/wms/repleinsh-job-main/accept?id=` + id })
+}
+
+// 放弃发料任务
+export const abandonRepleinshMain = async (id) => {
+ return await request.put({ url: `/wms/repleinsh-job-main/abandon?id=` + id })
+}
+
+// 关闭发料任务
+export const closeRepleinshMain = async (id) => {
+ return await request.put({ url: `/wms/repleinsh-job-main/close?id=` + id })
+}
+
+// 执行发料任务
+export const executeRepleinshMain = async (data) => {
+ return await request.put({ url: `/wms/repleinsh-job-main/execute`, data})
+}
\ No newline at end of file
diff --git a/src/api/wms/repleinshRecordDetail/index.ts b/src/api/wms/repleinshRecordDetail/index.ts
new file mode 100644
index 0000000..2dc7060
--- /dev/null
+++ b/src/api/wms/repleinshRecordDetail/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface RepleinshRecordDetailVO {
+ fromPackingNumber: string
+ fromContainerNumber: string
+ fromBatch: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toOwnerCode: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+ toPackingNumber: string
+ toContainerNumber: string
+ toBatch: string
+}
+
+// 查询补料记录子列表
+export const getRepleinshRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/repleinsh-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/repleinsh-record-detail/page`, params })
+ }
+}
+
+// 查询补料记录子详情
+export const getRepleinshRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/repleinsh-record-detail/get?id=` + id })
+}
+
+// 新增补料记录子
+export const createRepleinshRecordDetail = async (data: RepleinshRecordDetailVO) => {
+ return await request.post({ url: `/wms/repleinsh-record-detail/create`, data })
+}
+
+// 修改补料记录子
+export const updateRepleinshRecordDetail = async (data: RepleinshRecordDetailVO) => {
+ return await request.put({ url: `/wms/repleinsh-record-detail/update`, data })
+}
+
+// 删除补料记录子
+export const deleteRepleinshRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/repleinsh-record-detail/delete?id=` + id })
+}
+
+// 导出补料记录子 Excel
+export const exportRepleinshRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/repleinsh-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/repleinsh-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/repleinshRecordMain/index.ts b/src/api/wms/repleinshRecordMain/index.ts
new file mode 100644
index 0000000..f9b00a1
--- /dev/null
+++ b/src/api/wms/repleinshRecordMain/index.ts
@@ -0,0 +1,73 @@
+import request from '@/config/axios'
+
+export interface RepleinshRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ available: string
+}
+
+// 查询补料记录主列表
+export const getRepleinshRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/repleinsh-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/repleinsh-record-main/page`, params })
+ }
+}
+
+// 查询补料记录主详情
+export const getRepleinshRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/repleinsh-record-main/get?id=` + id })
+}
+
+// 新增补料记录主
+export const createRepleinshRecordMain = async (data: RepleinshRecordMainVO) => {
+ return await request.post({ url: `/wms/repleinsh-record-main/create`, data })
+}
+
+// 修改补料记录主
+export const updateRepleinshRecordMain = async (data: RepleinshRecordMainVO) => {
+ return await request.put({ url: `/wms/repleinsh-record-main/update`, data })
+}
+
+// 删除补料记录主
+export const deleteRepleinshRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/repleinsh-record-main/delete?id=` + id })
+}
+
+// 导出补料记录主 Excel
+export const exportRepleinshRecordMain = async (params) => {
+ if (params.isSearch){
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/repleinsh-record-main/export-excel-senior`, data })
+ }else {
+ return await request.download({ url: `/wms/repleinsh-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/repleinsh-record-main/get-import-template' })
+}
diff --git a/src/api/wms/repleinshRequestDetail/index.ts b/src/api/wms/repleinshRequestDetail/index.ts
new file mode 100644
index 0000000..9e15b37
--- /dev/null
+++ b/src/api/wms/repleinshRequestDetail/index.ts
@@ -0,0 +1,62 @@
+import request from '@/config/axios'
+
+export interface RepleinshRequestDetailVO {
+ inventoryStatus: string
+ toLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询补料申请子列表
+export const getRepleinshRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/repleinsh-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/repleinsh-request-detail/page`, params })
+ }
+}
+
+// 查询补料申请子详情
+export const getRepleinshRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/repleinsh-request-detail/get?id=` + id })
+}
+
+// 新增补料申请子
+export const createRepleinshRequestDetail = async (data: RepleinshRequestDetailVO) => {
+ return await request.post({ url: `/wms/repleinsh-request-detail/create`, data })
+}
+
+// 修改补料申请子
+export const updateRepleinshRequestDetail = async (data: RepleinshRequestDetailVO) => {
+ return await request.put({ url: `/wms/repleinsh-request-detail/update`, data })
+}
+
+// 删除补料申请子
+export const deleteRepleinshRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/repleinsh-request-detail/delete?id=` + id })
+}
+
+// 导出补料申请子 Excel
+export const exportRepleinshRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/repleinsh-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/repleinsh-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/repleinshRequestMain/index.ts b/src/api/wms/repleinshRequestMain/index.ts
new file mode 100644
index 0000000..78ad4d4
--- /dev/null
+++ b/src/api/wms/repleinshRequestMain/index.ts
@@ -0,0 +1,102 @@
+import request from '@/config/axios'
+
+export interface RepleinshRequestMainVO {
+ fomWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询补料申请主列表
+export const getRepleinshRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/repleinsh-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/repleinsh-request-main/page`, params })
+ }
+}
+
+// 查询补料申请主详情
+export const getRepleinshRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/repleinsh-request-main/get?id=` + id })
+}
+
+// 新增补料申请主
+export const createRepleinshRequestMain = async (data: RepleinshRequestMainVO) => {
+ return await request.post({ url: `/wms/repleinsh-request-main/create`, data })
+}
+
+// 修改补料申请主
+export const updateRepleinshRequestMain = async (data: RepleinshRequestMainVO) => {
+ return await request.put({ url: `/wms/repleinsh-request-main/update`, data })
+}
+
+// 删除补料申请主
+export const deleteRepleinshRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/repleinsh-request-main/delete?id=` + id })
+}
+
+// 导出补料申请主 Excel
+export const exportRepleinshRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/repleinsh-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/repleinsh-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/repleinsh-request-main/get-import-template' })
+}
+
+
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/repleinsh-request-main/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/repleinsh-request-main/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/repleinsh-request-main/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/repleinsh-request-main/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/repleinsh-request-main/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/repleinsh-request-main/handle?id=' + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/requestsetting/index.ts b/src/api/wms/requestsetting/index.ts
new file mode 100644
index 0000000..7c6ea88
--- /dev/null
+++ b/src/api/wms/requestsetting/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface RequestsettingVO {
+ code: string
+ requestMode: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+ available: string
+ isSoftDeleted: string
+}
+
+// 查询申请设置列表
+export const getRequestsettingPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/requestsetting/senior', data })
+ } else {
+ return await request.get({ url: `/wms/requestsetting/page`, params })
+ }
+}
+
+// 查询申请设置详情
+export const getRequestsetting = async (id: number) => {
+ return await request.get({ url: `/wms/requestsetting/get?id=` + id })
+}
+
+// 新增申请设置
+export const createRequestsetting = async (data: RequestsettingVO) => {
+ return await request.post({ url: `/wms/requestsetting/create`, data })
+}
+
+// 修改申请设置
+export const updateRequestsetting = async (data: RequestsettingVO) => {
+ return await request.put({ url: `/wms/requestsetting/update`, data })
+}
+
+// 删除申请设置
+export const deleteRequestsetting = async (id: number) => {
+ return await request.delete({ url: `/wms/requestsetting/delete?id=` + id })
+}
+
+// 导出申请设置 Excel
+export const exportRequestsetting = async (params) => {
+ return await request.download({ url: `/wms/requestsetting/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/requestsetting/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/rule/index.ts b/src/api/wms/rule/index.ts
new file mode 100644
index 0000000..a6fe749
--- /dev/null
+++ b/src/api/wms/rule/index.ts
@@ -0,0 +1,58 @@
+import request from '@/config/axios'
+
+export interface RuleVO {
+ strategyCode: string
+ priority: number
+ code: string
+ name: string
+ description: string
+ status: number
+ condition: string
+ configuration: string
+}
+
+// 查询规则列表
+export const getRulePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/rule/senior', data })
+ } else {
+ return await request.get({ url: `/wms/rule/page`, params })
+ }
+}
+
+// 查询规则详情
+export const getRule = async (id: number) => {
+ return await request.get({ url: `/wms/rule/get?id=` + id })
+}
+
+// 新增规则
+export const createRule = async (data: RuleVO) => {
+ return await request.post({ url: `/wms/rule/create`, data })
+}
+
+// 修改规则
+export const updateRule = async (data: RuleVO) => {
+ return await request.put({ url: `/wms/rule/update`, data })
+}
+
+// 删除规则
+export const deleteRule = async (id: number) => {
+ return await request.delete({ url: `/wms/rule/delete?id=` + id })
+}
+
+// 导出规则 Excel
+export const exportRule = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/rule/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/rule/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/rule/get-import-template' })
+}
diff --git a/src/api/wms/saleDetail/index.ts b/src/api/wms/saleDetail/index.ts
new file mode 100644
index 0000000..dcc17f2
--- /dev/null
+++ b/src/api/wms/saleDetail/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface SaleDetailVO {
+ lineNumber: string
+ projectCode: string
+ packQty: number
+ packUnit: string
+ customerPackQty: number
+ customerPackUnit: string
+ convertRate: number
+ shippedQty: number
+ receivedQty: number
+ returnedQty: number
+ singlePrice: number
+ amount: number
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ orderQty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ available: string
+}
+
+// 查询销售订单子列表
+export const getSaleDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/sale-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/sale-detail/page`, params })
+ }
+}
+
+// 查询销售订单子详情
+export const getSaleDetail = async (id: number) => {
+ return await request.get({ url: `/wms/sale-detail/get?id=` + id })
+}
+
+// 新增销售订单子
+export const createSaleDetail = async (data: SaleDetailVO) => {
+ return await request.post({ url: `/wms/sale-detail/create`, data })
+}
+
+// 修改销售订单子
+export const updateSaleDetail = async (data: SaleDetailVO) => {
+ return await request.put({ url: `/wms/sale-detail/update`, data })
+}
+
+// 删除销售订单子
+export const deleteSaleDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/sale-detail/delete?id=` + id })
+}
+
+// 导出销售订单子 Excel
+export const exportSaleDetail = async (params) => {
+ return await request.download({ url: `/wms/sale-detail/export-excel`, params })
+}
+
+export const getSaleDetailByCodes = async (params) => {
+ return await request.get({ url: `/wms/sale-detail/listByCodes`, params })
+}
diff --git a/src/api/wms/saleMain/index.ts b/src/api/wms/saleMain/index.ts
new file mode 100644
index 0000000..0fd80a7
--- /dev/null
+++ b/src/api/wms/saleMain/index.ts
@@ -0,0 +1,69 @@
+import request from '@/config/axios'
+
+export interface SaleMainVO {
+ customerCode: string
+ type: string
+ orderDate: Date
+ dueDate: Date
+ version: string
+ taxRate: number
+ contactName: string
+ contactPhone: string
+ contactEmail: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ updateTime: Date
+ updater: string
+ currentStage: number
+ available: string
+}
+
+// 查询销售订单主列表
+export const getSaleMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/sale-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/sale-main/page`, params })
+ }
+}
+
+// 查询销售订单主详情
+export const getSaleMain = async (id: number) => {
+ return await request.get({ url: `/wms/sale-main/get?id=` + id })
+}
+
+// 新增销售订单主
+export const createSaleMain = async (data: SaleMainVO) => {
+ return await request.post({ url: `/wms/sale-main/create`, data })
+}
+
+// 修改销售订单主
+export const updateSaleMain = async (data: SaleMainVO) => {
+ return await request.put({ url: `/wms/sale-main/update`, data })
+}
+
+// 删除销售订单主
+export const deleteSaleMain = async (id: number) => {
+ return await request.delete({ url: `/wms/sale-main/delete?id=` + id })
+}
+
+// 导出销售订单主 Excel
+export const exportSaleMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/sale-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/sale-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/sale-main/get-import-template' })
+}
diff --git a/src/api/wms/saleShipmentDetail/index.ts b/src/api/wms/saleShipmentDetail/index.ts
new file mode 100644
index 0000000..5fd25f2
--- /dev/null
+++ b/src/api/wms/saleShipmentDetail/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface SaleShipmentDetailVO {
+ id: number
+ soNumber: string
+ soLine: string
+ fromOwnerCode: string
+ packingNumber: string
+ batch: string
+ inventoryStatus: string
+ fromLocationCode: string
+ masterId: number
+ number: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ remark: string
+ concurrencyStamp: string
+ siteId: number
+}
+
+// 查询结算出库申请子列表
+export const getSaleShipmentDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/sale-shipment-detail-request/senior', data })
+ } else {
+ return await request.get({ url: `/wms/sale-shipment-detail-request/page`, params })
+ }
+}
+
+// 查询结算出库申请子详情
+export const getSaleShipmentDetail = async (id: number) => {
+ return await request.get({ url: `/wms/sale-shipment-detail-request/get?id=` + id })
+}
+
+// 新增结算出库申请子
+export const createSaleShipmentDetail = async (data: SaleShipmentDetailVO) => {
+ return await request.post({ url: `/wms/sale-shipment-detail-request/create`, data })
+}
+
+// 修改结算出库申请子
+export const updateSaleShipmentDetail = async (data: SaleShipmentDetailVO) => {
+ return await request.put({ url: `/wms/sale-shipment-detail-request/update`, data })
+}
+
+// 删除结算出库申请子
+export const deleteSaleShipmentDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/sale-shipment-detail-request/delete?id=` + id })
+}
+
+// 导出结算出库申请子 Excel
+export const exportSaleShipmentDetail = async (params) => {
+ return await request.download({ url: `/wms/sale-shipment-detail-request/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/sale-shipment-detail-request/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/saleShipmentDetailRecord/index.ts b/src/api/wms/saleShipmentDetailRecord/index.ts
new file mode 100644
index 0000000..a87f477
--- /dev/null
+++ b/src/api/wms/saleShipmentDetailRecord/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface SaleShipmentDetailRecordVO {
+ id: number
+ soNumber: string
+ soLine: string
+ fromOwnerCode: string
+ packingNumber: string
+ batch: string
+ inventoryStatus: string
+ fromLocationCode: string
+ masterId: number
+ number: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ remark: string
+ concurrencyStamp: string
+ siteId: number
+}
+
+// 查询结算出库记录子列表
+export const getSaleShipmentDetailRecordPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/sale-shipment-detail-record/senior', data })
+ } else {
+ return await request.get({ url: `/wms/sale-shipment-detail-record/page`, params })
+ }
+}
+
+// 查询结算出库记录子详情
+export const getSaleShipmentDetailRecord = async (id: number) => {
+ return await request.get({ url: `/wms/sale-shipment-detail-record/get?id=` + id })
+}
+
+// 新增结算出库记录子
+export const createSaleShipmentDetailRecord = async (data: SaleShipmentDetailRecordVO) => {
+ return await request.post({ url: `/wms/sale-shipment-detail-record/create`, data })
+}
+
+// 修改结算出库记录子
+export const updateSaleShipmentDetailRecord = async (data: SaleShipmentDetailRecordVO) => {
+ return await request.put({ url: `/wms/sale-shipment-detail-record/update`, data })
+}
+
+// 删除结算出库记录子
+export const deleteSaleShipmentDetailRecord = async (id: number) => {
+ return await request.delete({ url: `/wms/sale-shipment-detail-record/delete?id=` + id })
+}
+
+// 导出结算出库记录子 Excel
+export const exportSaleShipmentDetailRecord = async (params) => {
+ return await request.download({ url: `/wms/sale-shipment-detail-record/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/sale-shipment-detail-record/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/saleShipmentMain/index.ts b/src/api/wms/saleShipmentMain/index.ts
new file mode 100644
index 0000000..a3e3c94
--- /dev/null
+++ b/src/api/wms/saleShipmentMain/index.ts
@@ -0,0 +1,100 @@
+import request from '@/config/axios'
+
+export interface SaleShipmentMainVO {
+ id: number
+ customerCode: string
+ number: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: number
+ invoiceTime: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+ concurrencyStamp: string
+ ruleUserId: number
+ serialNumber: string
+}
+
+// 查询结算出库申请主列表
+export const getSaleShipmentMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/sale-shipment-main-request/senior', data })
+ } else {
+ return await request.get({ url: `/wms/sale-shipment-main-request/page`, params })
+ }
+}
+
+// 查询结算出库申请主详情
+export const getSaleShipmentMain = async (id: number) => {
+ return await request.get({ url: `/wms/sale-shipment-main-request/get?id=` + id })
+}
+
+// 新增结算出库申请主
+export const createSaleShipmentMain = async (data: SaleShipmentMainVO) => {
+ return await request.post({ url: `/wms/sale-shipment-main-request/create`, data })
+}
+
+// 修改结算出库申请主
+export const updateSaleShipmentMain = async (data: SaleShipmentMainVO) => {
+ return await request.put({ url: `/wms/sale-shipment-main-request/update`, data })
+}
+
+// 删除结算出库申请主
+export const deleteSaleShipmentMain = async (id: number) => {
+ return await request.delete({ url: `/wms/sale-shipment-main-request/delete?id=` + id })
+}
+
+// 导出结算出库申请主 Excel
+export const exportSaleShipmentMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/sale-shipment-main-request/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/sale-shipment-main-request/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/sale-shipment-main-request/get-import-template' })
+}
+
+// 关闭-结算出库申请
+export const close = async (id) => {
+ return await request.put({ url: `/wms/sale-shipment-main-request/close?id=` + id })
+}
+
+// 重新添加-结算出库申请
+export const reAdd = async (id) => {
+ return await request.put({ url: `/wms/sale-shipment-main-request/reAdd?id=` + id })
+}
+
+// 提交审批-结算出库申请
+export const submit = async (id) => {
+ return await request.put({ url: `/wms/sale-shipment-main-request/submit?id=` + id })
+}
+
+// 审批驳回-结算出库申请
+export const refused = async (id) => {
+ return await request.put({ url: `/wms/sale-shipment-main-request/refused?id=` + id })
+}
+
+// 审批通过-结算出库申请
+export const agree = async (id) => {
+ return await request.put({ url: `/wms/sale-shipment-main-request/agree?id=` + id })
+}
+
+// 处理-结算出库申请
+export const handle = async (id) => {
+ return await request.put({ url: `/wms/sale-shipment-main-request/handle?id=` + id })
+}
diff --git a/src/api/wms/saleShipmentMainRecord/index.ts b/src/api/wms/saleShipmentMainRecord/index.ts
new file mode 100644
index 0000000..dc193da
--- /dev/null
+++ b/src/api/wms/saleShipmentMainRecord/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface SaleShipmentMainRecordVO {
+ id: number
+ requestNumber: string
+ customerCode: string
+ invoiceTime: Date
+ executeTime: Date
+ available: string
+ departmentCode: string
+ number: string
+ businessType: string
+ extraProperties: string
+ siteId: string
+}
+
+// 查询结算出库记录主列表
+export const getSaleShipmentMainRecordPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/sale-shipment-main-record/senior', data })
+ } else {
+ return await request.get({ url: `/wms/sale-shipment-main-record/page`, params })
+ }
+}
+
+// 查询结算出库记录主详情
+export const getSaleShipmentMainRecord = async (id: number) => {
+ return await request.get({ url: `/wms/sale-shipment-main-record/get?id=` + id })
+}
+
+// 新增结算出库记录主
+export const createSaleShipmentMainRecord = async (data: SaleShipmentMainRecordVO) => {
+ return await request.post({ url: `/wms/sale-shipment-main-record/create`, data })
+}
+
+// 修改结算出库记录主
+export const updateSaleShipmentMainRecord = async (data: SaleShipmentMainRecordVO) => {
+ return await request.put({ url: `/wms/sale-shipment-main-record/update`, data })
+}
+
+// 删除结算出库记录主
+export const deleteSaleShipmentMainRecord = async (id: number) => {
+ return await request.delete({ url: `/wms/sale-shipment-main-record/delete?id=` + id })
+}
+
+// 导出结算出库记录主 Excel
+export const exportSaleShipmentMainRecord = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/sale-shipment-main-record/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/sale-shipment-main-record/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/sale-shipment-main-record/get-import-template' })
+}
+// 处理-结算出库撤销
+export const abort = async (id) => {
+ return await request.put({ url: `/wms/sale-shipment-main-record/abort?id=` + id })
+}
diff --git a/src/api/wms/saleprice/index.ts b/src/api/wms/saleprice/index.ts
new file mode 100644
index 0000000..6ac634e
--- /dev/null
+++ b/src/api/wms/saleprice/index.ts
@@ -0,0 +1,58 @@
+import request from '@/config/axios'
+
+export interface SalepriceVO {
+ customercode: string
+ itemcode: string
+ currency: string
+ price: number
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询销售价格单列表
+export const getSalepricePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/saleprice/senior', data })
+ } else {
+ return await request.get({ url: `/wms/saleprice/page`, params })
+ }
+}
+
+// 查询销售价格单详情
+export const getSaleprice = async (id: number) => {
+ return await request.get({ url: `/wms/saleprice/get?id=` + id })
+}
+
+// 新增销售价格单
+export const createSaleprice = async (data: SalepriceVO) => {
+ return await request.post({ url: `/wms/saleprice/create`, data })
+}
+
+// 修改销售价格单
+export const updateSaleprice = async (data: SalepriceVO) => {
+ return await request.put({ url: `/wms/saleprice/update`, data })
+}
+
+// 删除销售价格单
+export const deleteSaleprice = async (id: number) => {
+ return await request.delete({ url: `/wms/saleprice/delete?id=` + id })
+}
+
+// 导出销售价格单 Excel
+export const exportSaleprice = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/saleprice/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/saleprice/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/saleprice/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/scrapJobDetail/index.ts b/src/api/wms/scrapJobDetail/index.ts
new file mode 100644
index 0000000..c333d80
--- /dev/null
+++ b/src/api/wms/scrapJobDetail/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface ScrapJobDetailVO {
+ ownerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ inventoryStatus: string
+ reason: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+}
+
+// 查询报废出库任务子列表
+export const getScrapJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/scrap-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/scrap-job-detail/page`, params })
+ }
+}
+
+// 查询报废出库任务子详情
+export const getScrapJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/scrap-job-detail/get?id=` + id })
+}
+
+// 新增报废出库任务子
+export const createScrapJobDetail = async (data: ScrapJobDetailVO) => {
+ return await request.post({ url: `/wms/scrap-job-detail/create`, data })
+}
+
+// 修改报废出库任务子
+export const updateScrapJobDetail = async (data: ScrapJobDetailVO) => {
+ return await request.put({ url: `/wms/scrap-job-detail/update`, data })
+}
+
+// 删除报废出库任务子
+export const deleteScrapJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/scrap-job-detail/delete?id=` + id })
+}
+
+// 导出报废出库任务子 Excel
+export const exportScrapJobDetail = async (params) => {
+ return await request.download({ url: `/wms/scrap-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/scrap-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/scrapJobMain/index.ts b/src/api/wms/scrapJobMain/index.ts
new file mode 100644
index 0000000..61a448a
--- /dev/null
+++ b/src/api/wms/scrapJobMain/index.ts
@@ -0,0 +1,97 @@
+import request from '@/config/axios'
+
+export interface ScrapJobMainVO {
+ requestNumber: string
+ fromWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询报废出库任务主列表
+export const getScrapJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/scrap-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/scrap-job-main/page`, params })
+ }
+}
+
+// 查询报废出库任务主详情
+export const getScrapJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/scrap-job-main/get?id=` + id })
+}
+
+// 新增报废出库任务主
+export const createScrapJobMain = async (data: ScrapJobMainVO) => {
+ return await request.post({ url: `/wms/scrap-job-main/create`, data })
+}
+
+// 修改报废出库任务主
+export const updateScrapJobMain = async (data: ScrapJobMainVO) => {
+ return await request.put({ url: `/wms/scrap-job-main/update`, data })
+}
+
+// 删除报废出库任务主
+export const deleteScrapJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/scrap-job-main/delete?id=` + id })
+}
+// 承接报废出库任务主
+export const acceptScrapJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/scrap-job-main/accept?id=` + id })
+}
+// 取消承接报废出库任务主
+export const abandonScrapJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/scrap-job-main/abandon?id=` + id })
+}
+// 关闭报废出库任务主
+export const closeScrapJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/scrap-job-main/close?id=` + id })
+}
+
+// 导出报废出库任务主 Excel
+export const exportScrapJobMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/scrap-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/scrap-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/scrap-job-main/get-import-template' })
+}
diff --git a/src/api/wms/scrapRecordDetail/index.ts b/src/api/wms/scrapRecordDetail/index.ts
new file mode 100644
index 0000000..4ff183b
--- /dev/null
+++ b/src/api/wms/scrapRecordDetail/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface ScrapRecordDetailVO {
+ fromOwnerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ inventoryStatus: string
+ reason: string
+ singlePrice: number
+ amount: number
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+}
+
+// 查询报废出库记录子列表
+export const getScrapRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/scrap-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/scrap-record-detail/page`, params })
+ }
+}
+
+// 查询报废出库记录子详情
+export const getScrapRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/scrap-record-detail/get?id=` + id })
+}
+
+// 新增报废出库记录子
+export const createScrapRecordDetail = async (data: ScrapRecordDetailVO) => {
+ return await request.post({ url: `/wms/scrap-record-detail/create`, data })
+}
+
+// 修改报废出库记录子
+export const updateScrapRecordDetail = async (data: ScrapRecordDetailVO) => {
+ return await request.put({ url: `/wms/scrap-record-detail/update`, data })
+}
+
+// 删除报废出库记录子
+export const deleteScrapRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/scrap-record-detail/delete?id=` + id })
+}
+
+// 导出报废出库记录子 Excel
+export const exportScrapRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/scrap-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/scrap-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/scrapRecordMain/index.ts b/src/api/wms/scrapRecordMain/index.ts
new file mode 100644
index 0000000..eb1d8aa
--- /dev/null
+++ b/src/api/wms/scrapRecordMain/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface ScrapRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ available: string
+}
+
+// 查询报废出库记录主列表
+export const getScrapRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/scrap-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/scrap-record-main/page`, params })
+ }
+}
+
+// 查询报废出库记录主详情
+export const getScrapRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/scrap-record-main/get?id=` + id })
+}
+
+// 新增报废出库记录主
+export const createScrapRecordMain = async (data: ScrapRecordMainVO) => {
+ return await request.post({ url: `/wms/scrap-record-main/create`, data })
+}
+
+// 修改报废出库记录主
+export const updateScrapRecordMain = async (data: ScrapRecordMainVO) => {
+ return await request.put({ url: `/wms/scrap-record-main/update`, data })
+}
+
+// 删除报废出库记录主
+export const deleteScrapRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/scrap-record-main/delete?id=` + id })
+}
+
+// 导出报废出库记录主 Excel
+export const exportScrapRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/scrap-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/scrap-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/scrap-record-main/get-import-template' })
+}
+
+// 撤销
+export const revoke = async (id: number) => {
+ return await request.get({ url: `/wms/scrap-record-main/revoke?id=` + id })
+}
diff --git a/src/api/wms/scrapRequestDetail/index.ts b/src/api/wms/scrapRequestDetail/index.ts
new file mode 100644
index 0000000..99a15ec
--- /dev/null
+++ b/src/api/wms/scrapRequestDetail/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface ScrapRequestDetailVO {
+ fromOwnerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ inventoryStatus: string
+ reason: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+}
+
+// 查询报废出库申请子列表
+export const getScrapRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/scrap-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/scrap-request-detail/page`, params })
+ }
+}
+
+// 查询报废出库申请子详情
+export const getScrapRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/scrap-request-detail/get?id=` + id })
+}
+
+// 新增报废出库申请子
+export const createScrapRequestDetail = async (data: ScrapRequestDetailVO) => {
+ return await request.post({ url: `/wms/scrap-request-detail/create`, data })
+}
+
+// 修改报废出库申请子
+export const updateScrapRequestDetail = async (data: ScrapRequestDetailVO) => {
+ return await request.put({ url: `/wms/scrap-request-detail/update`, data })
+}
+
+// 删除报废出库申请子
+export const deleteScrapRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/scrap-request-detail/delete?id=` + id })
+}
+
+// 导出报废出库申请子 Excel
+export const exportScrapRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/scrap-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/scrap-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/scrapRequestMain/index.ts b/src/api/wms/scrapRequestMain/index.ts
new file mode 100644
index 0000000..b4ca024
--- /dev/null
+++ b/src/api/wms/scrapRequestMain/index.ts
@@ -0,0 +1,98 @@
+import request from '@/config/axios'
+
+export interface ScrapRequestMainVO {
+ fromWarehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询报废出库申请主列表
+export const getScrapRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/scrap-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/scrap-request-main/page`, params })
+ }
+}
+
+// 查询报废出库申请主详情
+export const getScrapRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/scrap-request-main/get?id=` + id })
+}
+
+// 新增报废出库申请主
+export const createScrapRequestMain = async (data: ScrapRequestMainVO) => {
+ return await request.post({ url: `/wms/scrap-request-main/create`, data })
+}
+
+// 修改报废出库申请主
+export const updateScrapRequestMain = async (data: ScrapRequestMainVO) => {
+ return await request.put({ url: `/wms/scrap-request-main/update`, data })
+}
+
+// 删除报废出库申请主
+export const deleteScrapRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/scrap-request-main/delete?id=` + id })
+}
+
+// 导出报废出库申请主 Excel
+export const exportScrapRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/scrap-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/scrap-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/scrap-request-main/get-import-template' })
+}
+
+// 关闭-报废出库申请
+export const closeScrapRequestMain = async (id) => {
+ return await request.put({ url: `/wms/scrap-request-main/close?id=` + id })
+}
+
+// 重新添加-报废出库申请
+export const reAddScrapRequestMain = async (id) => {
+ return await request.put({ url: `/wms/scrap-request-main/reAdd?id=` + id })
+}
+
+// 提交审批-报废出库申请
+export const submitScrapRequestMain = async (id) => {
+ return await request.put({ url: `/wms/scrap-request-main/submit?id=` + id })
+}
+
+// 审批驳回-报废出库申请
+export const refusedScrapRequestMain = async (id) => {
+ return await request.put({ url: `/wms/scrap-request-main/refused?id=` + id })
+}
+
+// 审批通过-报废出库申请
+export const agreeScrapRequestMain = async (id) => {
+ return await request.put({ url: `/wms/scrap-request-main/agree?id=` + id })
+}
+
+// 处理-报废出库申请
+export const handleScrapRequestMain = async (id) => {
+ return await request.put({ url: `/wms/scrap-request-main/handle?id=` + id })
+}
diff --git a/src/api/wms/shift/index.ts b/src/api/wms/shift/index.ts
new file mode 100644
index 0000000..f663b79
--- /dev/null
+++ b/src/api/wms/shift/index.ts
@@ -0,0 +1,60 @@
+import request from '@/config/axios'
+
+export interface ShiftVO {
+ code: string
+ name: string
+ description: string
+ beginTime: Date
+ entTime: Date
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ endAtNextDay: string
+ available: string
+}
+
+// 查询班次列表
+export const getShiftPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/shift/senior', data })
+ } else {
+ return await request.get({ url: `/wms/shift/page`, params })
+ }
+}
+
+// 查询班次详情
+export const getShift = async (id: number) => {
+ return await request.get({ url: `/wms/shift/get?id=` + id })
+}
+
+// 新增班次
+export const createShift = async (data: ShiftVO) => {
+ return await request.post({ url: `/wms/shift/create`, data })
+}
+
+// 修改班次
+export const updateShift = async (data: ShiftVO) => {
+ return await request.put({ url: `/wms/shift/update`, data })
+}
+
+// 删除班次
+export const deleteShift = async (id: number) => {
+ return await request.delete({ url: `/wms/shift/delete?id=` + id })
+}
+
+// 导出班次 Excel
+export const exportShift = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/shift/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/shift/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/shift/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/stdcostprice/index.ts b/src/api/wms/stdcostprice/index.ts
new file mode 100644
index 0000000..171b6a9
--- /dev/null
+++ b/src/api/wms/stdcostprice/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface StdcostpriceVO {
+ supplierCode: string
+ itemCode: string
+ currency: string
+ price: number
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询标准成本价格单列表
+export const getStdcostpricePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/stdcostprice/senior', data })
+ } else {
+ return await request.get({ url: `/wms/stdcostprice/page`, params })
+ }
+}
+
+// 查询标准成本价格单详情
+export const getStdcostprice = async (id: number) => {
+ return await request.get({ url: `/wms/stdcostprice/get?id=` + id })
+}
+
+// 新增标准成本价格单
+export const createStdcostprice = async (data: StdcostpriceVO) => {
+ return await request.post({ url: `/wms/stdcostprice/create`, data })
+}
+
+// 修改标准成本价格单
+export const updateStdcostprice = async (data: StdcostpriceVO) => {
+ return await request.put({ url: `/wms/stdcostprice/update`, data })
+}
+
+// 删除标准成本价格单
+export const deleteStdcostprice = async (id: number) => {
+ return await request.delete({ url: `/wms/stdcostprice/delete?id=` + id })
+}
+
+// 导出标准成本价格单 Excel
+export const exportStdcostprice = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/stdcostprice/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/stdcostprice/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/stdcostprice/get-import-template' })
+}
+
+
+// 查询标准成本价格单列表
+export const queryStdcostpriceByItemCode = async (data) => {
+ return await request.post({ url: `/wms/stdcostprice/queryStdcostpriceByItemCode`, data })
+}
\ No newline at end of file
diff --git a/src/api/wms/stockupDetailJob/index.ts b/src/api/wms/stockupDetailJob/index.ts
new file mode 100644
index 0000000..0f0aedc
--- /dev/null
+++ b/src/api/wms/stockupDetailJob/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface StockupDetailJobVO {
+ id: number
+ packingNumber: string
+ batch: string
+ inventoryStatus: string
+ ownerCode: string
+ containerNumber: string
+ fromLocationCode: string
+ toLocationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ masterId: number
+ number: string
+ remark: string
+ siteId: string
+}
+
+// 查询备货任务子列表
+export const getStockupDetailJobPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/stockup-detail-job/senior', data })
+ } else {
+ return await request.get({ url: `/wms/stockup-detail-job/page`, params })
+ }
+}
+
+// 查询备货任务子详情
+export const getStockupDetailJob = async (id: number) => {
+ return await request.get({ url: `/wms/stockup-detail-job/get?id=` + id })
+}
+
+// 新增备货任务子
+export const createStockupDetailJob = async (data: StockupDetailJobVO) => {
+ return await request.post({ url: `/wms/stockup-detail-job/create`, data })
+}
+
+// 修改备货任务子
+export const updateStockupDetailJob = async (data: StockupDetailJobVO) => {
+ return await request.put({ url: `/wms/stockup-detail-job/update`, data })
+}
+
+// 删除备货任务子
+export const deleteStockupDetailJob = async (id: number) => {
+ return await request.delete({ url: `/wms/stockup-detail-job/delete?id=` + id })
+}
+
+// 导出备货任务子 Excel
+export const exportStockupDetailJob = async (params) => {
+ return await request.download({ url: `/wms/stockup-detail-job/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/stockup-detail-job/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/stockupDetailRecord/index.ts b/src/api/wms/stockupDetailRecord/index.ts
new file mode 100644
index 0000000..1ec393e
--- /dev/null
+++ b/src/api/wms/stockupDetailRecord/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface StockupDetailRecordVO {
+ id: number
+ packingNumber: string
+ batch: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ fromContainerNumber: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toOwnerCode: string
+ toContainerNumber: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ singlePrice: number
+ amount: number
+ masterId: number
+ number: string
+ itemCode: string
+ remark: string
+ siteId: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+ available: string
+}
+
+// 查询备货记录子列表
+export const getStockupDetailRecordPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/stockup-detail-record/senior', data })
+ } else {
+ return await request.get({ url: `/wms/stockup-detail-record/page`, params })
+ }
+}
+
+// 查询备货记录子详情
+export const getStockupDetailRecord = async (id: number) => {
+ return await request.get({ url: `/wms/stockup-detail-record/get?id=` + id })
+}
+
+// 新增备货记录子
+export const createStockupDetailRecord = async (data: StockupDetailRecordVO) => {
+ return await request.post({ url: `/wms/stockup-detail-record/create`, data })
+}
+
+// 修改备货记录子
+export const updateStockupDetailRecord = async (data: StockupDetailRecordVO) => {
+ return await request.put({ url: `/wms/stockup-detail-record/update`, data })
+}
+
+// 删除备货记录子
+export const deleteStockupDetailRecord = async (id: number) => {
+ return await request.delete({ url: `/wms/stockup-detail-record/delete?id=` + id })
+}
+
+// 导出备货记录子 Excel
+export const exportStockupDetailRecord = async (params) => {
+ return await request.download({ url: `/wms/stockup-detail-record/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/stockup-detail-record/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/stockupDetailRequest/index.ts b/src/api/wms/stockupDetailRequest/index.ts
new file mode 100644
index 0000000..3335962
--- /dev/null
+++ b/src/api/wms/stockupDetailRequest/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface StockupDetailRequestVO {
+ id: number
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ toOwnerCode: string
+ toLocationCode: string
+ masterId: number
+ number: string
+ remark: string
+ siteId: number
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ concurrencyStamp: string
+ fromOwnerCode: string
+}
+
+// 查询备货申请子列表
+export const getStockupDetailRequestPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/stockup-detail-request/senior', data })
+ } else {
+ return await request.get({ url: `/wms/stockup-detail-request/page`, params })
+ }
+}
+
+// 查询备货申请子详情
+export const getStockupDetailRequest = async (id: number) => {
+ return await request.get({ url: `/wms/stockup-detail-request/get?id=` + id })
+}
+
+// 新增备货申请子
+export const createStockupDetailRequest = async (data: StockupDetailRequestVO) => {
+ return await request.post({ url: `/wms/stockup-detail-request/create`, data })
+}
+
+// 修改备货申请子
+export const updateStockupDetailRequest = async (data: StockupDetailRequestVO) => {
+ return await request.put({ url: `/wms/stockup-detail-request/update`, data })
+}
+
+// 删除备货申请子
+export const deleteStockupDetailRequest = async (id: number) => {
+ return await request.delete({ url: `/wms/stockup-detail-request/delete?id=` + id })
+}
+
+// 导出备货申请子 Excel
+export const exportStockupDetailRequest = async (params) => {
+ return await request.download({ url: `/wms/stockup-detail-request/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/stockup-detail-request/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/stockupMainJob/index.ts b/src/api/wms/stockupMainJob/index.ts
new file mode 100644
index 0000000..1506091
--- /dev/null
+++ b/src/api/wms/stockupMainJob/index.ts
@@ -0,0 +1,116 @@
+import request from '@/config/axios'
+
+export interface StockupMainJobVO {
+ id: number
+ requestNumber: string
+ deliverPlanNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ details: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ concurrencyStamp: string
+ jobStageStatus: string
+ priority: number
+ priorityincrement: number
+ departmentCode: string
+ userGroupCode: string
+ acceptUserId: string
+ acceptUserName: string
+ acceptTime: Date
+ completeUserId: string
+ completeUserName: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ ruleUserId: number
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ serialNumber: string
+ inInventoryStatuses: string
+ outInventoryStatuses: string
+}
+
+// 查询备货任务主列表
+export const getStockupMainJobPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/stockup-main-job/senior', data })
+ } else {
+ return await request.get({ url: `/wms/stockup-main-job/page`, params })
+ }
+}
+
+// 查询备货任务主详情
+export const getStockupMainJob = async (id: number) => {
+ return await request.get({ url: `/wms/stockup-main-job/get?id=` + id })
+}
+
+// 新增备货任务主
+export const createStockupMainJob = async (data: StockupMainJobVO) => {
+ return await request.post({ url: `/wms/stockup-main-job/create`, data })
+}
+
+// 修改备货任务主
+export const updateStockupMainJob = async (data: StockupMainJobVO) => {
+ return await request.put({ url: `/wms/stockup-main-job/update`, data })
+}
+
+// 删除备货任务主
+export const deleteStockupMainJob = async (id: number) => {
+ return await request.delete({ url: `/wms/stockup-main-job/delete?id=` + id })
+}
+
+// 导出备货任务主 Excel
+export const exportStockupMainJob = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/stockup-main-job/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/stockup-main-job/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/stockup-main-job/get-import-template' })
+}
+
+// 承接发货任务 Excel
+export const acceptStockupMainJob = async (id) => {
+ return await request.put({ url: `/wms/stockup-main-job/accept?id=` + id })
+}
+
+// 取消承接发货任务 Excel
+export const abandonStockupMainJob = async (id) => {
+ return await request.put({ url: `/wms/stockup-main-job/abandon?id=` + id })
+}
+
+// 关闭发货任务主 Excel
+export const closeStockupMainJob = async (id) => {
+ return await request.put({ url: `/wms/stockup-main-job/close?id=` + id })
+}
+
+// 执行发货任务主
+export const executeStockupMainJob = async (data: StockupMainJobVO) => {
+ return await request.put({ url: `/wms/stockup-main-job/execute`, data })
+}
diff --git a/src/api/wms/stockupMainRecord/index.ts b/src/api/wms/stockupMainRecord/index.ts
new file mode 100644
index 0000000..cc3952c
--- /dev/null
+++ b/src/api/wms/stockupMainRecord/index.ts
@@ -0,0 +1,78 @@
+import request from '@/config/axios'
+
+export interface StockupMainRecordVO {
+ id: number
+ requestNumber: string
+ jobNumber: string
+ deliverPlanNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ details: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ available: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ userGroupCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: string
+ code: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toAreaTypes: string
+ toAreaCodes: string
+}
+
+// 查询备货记录主列表
+export const getStockupMainRecordPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/stockup-main-record/senior', data })
+ } else {
+ return await request.get({ url: `/wms/stockup-main-record/page`, params })
+ }
+}
+
+// 查询备货记录主详情
+export const getStockupMainRecord = async (id: number) => {
+ return await request.get({ url: `/wms/stockup-main-record/get?id=` + id })
+}
+
+// 新增备货记录主
+export const createStockupMainRecord = async (data: StockupMainRecordVO) => {
+ return await request.post({ url: `/wms/stockup-main-record/create`, data })
+}
+
+// 修改备货记录主
+export const updateStockupMainRecord = async (data: StockupMainRecordVO) => {
+ return await request.put({ url: `/wms/stockup-main-record/update`, data })
+}
+
+// 删除备货记录主
+export const deleteStockupMainRecord = async (id: number) => {
+ return await request.delete({ url: `/wms/stockup-main-record/delete?id=` + id })
+}
+
+// 导出备货记录主 Excel
+export const exportStockupMainRecord = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/stockup-main-record/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/stockup-main-record/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/stockup-main-record/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/stockupMainRequest/index.ts b/src/api/wms/stockupMainRequest/index.ts
new file mode 100644
index 0000000..a145390
--- /dev/null
+++ b/src/api/wms/stockupMainRequest/index.ts
@@ -0,0 +1,108 @@
+import request from '@/config/axios'
+
+export interface StockupMainRequestVO {
+ id: number
+ deliverPlanNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ details: string
+ number: string
+ businessType: string
+ remark: string
+ extraProperties: string
+ siteId: number
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+ concurrencyStamp: string
+ ruleUserId: number
+ toAreaTypes: string
+ toAreaCodes: string
+ serialNumber: string
+ deliverDate: Date
+ inInventoryStatuses: string
+ outInventoryStatuses: string
+}
+
+// 查询备货申请主列表
+export const getStockupMainRequestPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/stockup-main-request/senior', data })
+ } else {
+ return await request.get({ url: `/wms/stockup-main-request/page`, params })
+ }
+}
+
+// 查询备货申请主详情
+export const getStockupMainRequest = async (id: number) => {
+ return await request.get({ url: `/wms/stockup-main-request/get?id=` + id })
+}
+
+// 新增备货申请主
+export const createStockupMainRequest = async (data: StockupMainRequestVO) => {
+ return await request.post({ url: `/wms/stockup-main-request/create`, data })
+}
+
+// 修改备货申请主
+export const updateStockupMainRequest = async (data: StockupMainRequestVO) => {
+ return await request.put({ url: `/wms/stockup-main-request/update`, data })
+}
+
+// 删除备货申请主
+export const deleteStockupMainRequest = async (id: number) => {
+ return await request.delete({ url: `/wms/stockup-main-request/delete?id=` + id })
+}
+
+// 导出备货申请主 Excel
+export const exportStockupMainRequest = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/stockup-main-request/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/stockup-main-request/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/stockup-main-request/get-import-template' })
+}
+// 关闭
+export const close = (id) => {
+ return request.put({ url: '/wms/stockup-main-request/close?id=' + id })
+}
+
+// 重新添加
+export const reAdd = (id) => {
+ return request.put({ url: '/wms/stockup-main-request/reAdd?id=' + id })
+}
+
+// 提交审批
+export const submit = (id) => {
+ return request.put({ url: '/wms/stockup-main-request/submit?id=' + id })
+}
+
+// 驳回
+export const refused = (id) => {
+ return request.put({ url: '/wms/stockup-main-request/refused?id=' + id })
+}
+
+// 审批通过
+export const agree = (id) => {
+ return request.put({ url: '/wms/stockup-main-request/agree?id=' + id })
+}
+
+// 处理
+export const handle = (id) => {
+ return request.put({ url: '/wms/stockup-main-request/handle?id=' + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/strategy/index.ts b/src/api/wms/strategy/index.ts
new file mode 100644
index 0000000..bd26f00
--- /dev/null
+++ b/src/api/wms/strategy/index.ts
@@ -0,0 +1,53 @@
+import request from '@/config/axios'
+
+export interface StrategyVO {
+ remark: string
+ code: string
+ name: string
+ description: string
+ type: string
+ priority: number
+ isActive: string
+}
+
+// 查询策略列表
+export const getStrategyPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/strategy/senior', data })
+ } else {
+ return await request.get({ url: `/wms/strategy/page`, params })
+ }
+}
+
+// 查询策略详情
+export const getStrategy = async (id: number) => {
+ return await request.get({ url: `/wms/strategy/get?id=` + id })
+}
+
+// 新增策略
+export const createStrategy = async (data: StrategyVO) => {
+ return await request.post({ url: `/wms/strategy/create`, data })
+}
+
+// 修改策略
+export const updateStrategy = async (data: StrategyVO) => {
+ return await request.put({ url: `/wms/strategy/update`, data })
+}
+
+// 删除策略
+export const deleteStrategy = async (id: number) => {
+ return await request.delete({ url: `/wms/strategy/delete?id=` + id })
+}
+
+// 导出策略 Excel
+export const exportStrategy = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/strategy/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/strategy/export-excel`, params })
+ }
+}
diff --git a/src/api/wms/subjectAccount/index.ts b/src/api/wms/subjectAccount/index.ts
new file mode 100644
index 0000000..351203c
--- /dev/null
+++ b/src/api/wms/subjectAccount/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface SubjectAccountVO {
+ id: number
+ code: string
+ usageDescription: string
+ costecentreId: string
+ costecentreCode: string
+ costecentreType: string
+ projectId: string
+ projectCode: string
+ address: string
+ available: string
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询科目账户配置列表
+export const getSubjectAccountPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/subject-account/senior', data })
+ } else {
+ return await request.get({ url: `/wms/subject-account/page`, params })
+ }
+}
+
+// 查询科目账户配置详情
+export const getSubjectAccount = async (id: number) => {
+ return await request.get({ url: `/wms/subject-account/get?id=` + id })
+}
+
+// 新增科目账户配置
+export const createSubjectAccount = async (data: SubjectAccountVO) => {
+ return await request.post({ url: `/wms/subject-account/create`, data })
+}
+
+// 修改科目账户配置
+export const updateSubjectAccount = async (data: SubjectAccountVO) => {
+ return await request.put({ url: `/wms/subject-account/update`, data })
+}
+
+// 删除科目账户配置
+export const deleteSubjectAccount = async (id: number) => {
+ return await request.delete({ url: `/wms/subject-account/delete?id=` + id })
+}
+
+// 导出科目账户配置 Excel
+export const exportSubjectAccount = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/subject-account/export-excel-senior`, data })
+ }else{
+ return await request.download({ url: `/wms/subject-account/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/subject-account/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/supplier/index.ts b/src/api/wms/supplier/index.ts
new file mode 100644
index 0000000..33bd05f
--- /dev/null
+++ b/src/api/wms/supplier/index.ts
@@ -0,0 +1,101 @@
+import request from '@/config/axios'
+
+export interface SupplierVO {
+ code: string
+ name: string
+ shortName: string
+ address: string
+ country: string
+ city: string
+ phone: string
+ fax: string
+ postId: string
+ contacts: string
+ bank: string
+ currency: string
+ taxRate: number
+ type: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询供应商列表分页
+export const getSupplierPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/supplier/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplier/page`, params })
+ }
+}
+
+// 查询供应商列表分页
+export const getSupplierPageSCP = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/supplier/seniorSCP', data })
+ } else {
+ return await request.get({ url: `/wms/supplier/pageSCP`, params })
+ }
+}
+
+// 查询供应商列表
+export const getSupplierList = async (params) => {
+ return await request.get({ url: `/wms/supplier/list`, params })
+}
+
+// 查询供应商详情
+export const getSupplier = async (id: number) => {
+ return await request.get({ url: `/wms/supplier/get?id=` + id })
+}
+
+// 新增供应商
+export const createSupplier = async (data: SupplierVO) => {
+ return await request.post({ url: `/wms/supplier/create`, data })
+}
+
+// 修改供应商
+export const updateSupplier = async (data: SupplierVO) => {
+ return await request.put({ url: `/wms/supplier/update`, data })
+}
+
+// 删除供应商
+export const deleteSupplier = async (id: number) => {
+ return await request.delete({ url: `/wms/supplier/delete?id=` + id })
+}
+
+// 导出供应商 Excel
+export const exportSupplier = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/supplier/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/supplier/export-excel`, params })
+ }
+}
+
+
+// 导出供应商 Excel
+export const exportSupplierSCP = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/supplier/export-excel-senior-SCP`, data })
+ } else {
+ return await request.download({ url: `/wms/supplier/export-excel-SCP`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplier/get-import-template' })
+}
+
+// 根据code获取数据列表
+export const getSupplierListByCodes = async (params) => {
+ return await request.get({ url: `/wms/supplier/listByCodes`, params })
+}
+
diff --git a/src/api/wms/supplierApbalanceDetail/index.ts b/src/api/wms/supplierApbalanceDetail/index.ts
new file mode 100644
index 0000000..66f6d73
--- /dev/null
+++ b/src/api/wms/supplierApbalanceDetail/index.ts
@@ -0,0 +1,70 @@
+import request from '@/config/axios'
+
+export interface SupplierApbalanceDetailVO {
+ id: number
+ ttSupplier: string
+ ttSupplierName: string
+ ttGlcode: string
+ ttYear: string
+ ttVoucher: string
+ ttReference: string
+ ttInvoiceno: string
+ ttTcAmt: number
+ ttBcAmt: number
+ ttTcbal: number
+ ttBcbal: number
+ ttCurr: string
+ ttDueDate: Date
+ ttInvDate: Date
+ ttEffDate: Date
+ ttCreditTerm: string
+ ttGltype: string
+ masterId: number
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询供应商余额明细子列表
+export const getSupplierApbalanceDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplier-apbalance-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplier-apbalance-detail/page`, params })
+ }
+}
+
+// 查询供应商余额明细子详情
+export const getSupplierApbalanceDetail = async (id: number) => {
+ return await request.get({ url: `/wms/supplier-apbalance-detail/get?id=` + id })
+}
+
+// 新增供应商余额明细子
+export const createSupplierApbalanceDetail = async (data: SupplierApbalanceDetailVO) => {
+ return await request.post({ url: `/wms/supplier-apbalance-detail/create`, data })
+}
+
+// 修改供应商余额明细子
+export const updateSupplierApbalanceDetail = async (data: SupplierApbalanceDetailVO) => {
+ return await request.put({ url: `/wms/supplier-apbalance-detail/update`, data })
+}
+
+// 删除供应商余额明细子
+export const deleteSupplierApbalanceDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/supplier-apbalance-detail/delete?id=` + id })
+}
+
+// 导出供应商余额明细子 Excel
+export const exportSupplierApbalanceDetail = async (params) => {
+ return await request.download({ url: `/wms/supplier-apbalance-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplier-apbalance-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/supplierApbalanceMain/index.ts b/src/api/wms/supplierApbalanceMain/index.ts
new file mode 100644
index 0000000..ed7e2f6
--- /dev/null
+++ b/src/api/wms/supplierApbalanceMain/index.ts
@@ -0,0 +1,72 @@
+import request from '@/config/axios'
+
+export interface SupplierApbalanceMainVO {
+ id: number
+ ttCompany: string
+ ttSupplier: string
+ ttGltype: string
+ ttCustorsupp: string
+ ttSupplierType: string
+ ttName1: string
+ ttName2: string
+ ttName3: string
+ ttSupplierName: string
+ ttGenerateTime: Date
+ ttAccountAp: number
+ ttAccountOthap: number
+ ttAccountPrepay: number
+ ttCreditTerm: string
+ departmentCode: string
+ remark: string
+ siteId: string
+ available: string
+ deletionTime: Date
+ deleterId: byte[]
+ concurrencyStamp: number
+}
+
+// 查询供应商余额明细主列表
+export const getSupplierApbalanceMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplier-apbalance-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplier-apbalance-main/page`, params })
+ }
+}
+
+// 查询供应商余额明细主详情
+export const getSupplierApbalanceMain = async (id: number) => {
+ return await request.get({ url: `/wms/supplier-apbalance-main/get?id=` + id })
+}
+
+// 新增供应商余额明细主
+export const createSupplierApbalanceMain = async (data: SupplierApbalanceMainVO) => {
+ return await request.post({ url: `/wms/supplier-apbalance-main/create`, data })
+}
+
+// 修改供应商余额明细主
+export const updateSupplierApbalanceMain = async (data: any) => {
+ return await request.put({ url: `/wms/supplier-apbalance-main/update`, data })
+}
+
+// 删除供应商余额明细主
+export const deleteSupplierApbalanceMain = async (id: number) => {
+ return await request.delete({ url: `/wms/supplier-apbalance-main/delete?id=` + id })
+}
+
+// 导出供应商余额明细主 Excel
+export const exportSupplierApbalanceMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/supplier-apbalance-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/supplier-apbalance-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplier-apbalance-main/get-import-template' })
+}
diff --git a/src/api/wms/supplierCycle/index.ts b/src/api/wms/supplierCycle/index.ts
new file mode 100644
index 0000000..ddaf201
--- /dev/null
+++ b/src/api/wms/supplierCycle/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface SupplierCycleVO {
+ id: number
+ supplierCode: string
+ monday: string
+ tuesday: string
+ wednesday: string
+ thursday: string
+ friday: string
+ saturday: string
+ sunday: string
+ version: string
+ remark: string
+ extraProperties: string
+ siteId: string
+ beginTime: Date
+ endTime: Date
+ available: string
+ status: string
+ concurrencyStamp: string
+ ruleUserId: number
+ departmentCode: string
+}
+
+// 查询要货预测周期列表
+export const getSupplierCyclePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplier-cycle/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplier-cycle/page`, params })
+ }
+}
+
+// 查询要货预测周期详情
+export const getSupplierCycle = async (id: number) => {
+ return await request.get({ url: `/wms/supplier-cycle/get?id=` + id })
+}
+
+// 新增要货预测周期
+export const createSupplierCycle = async (data: SupplierCycleVO) => {
+ return await request.post({ url: `/wms/supplier-cycle/create`, data })
+}
+
+// 修改要货预测周期
+export const updateSupplierCycle = async (data: SupplierCycleVO) => {
+ return await request.put({ url: `/wms/supplier-cycle/update`, data })
+}
+
+// 删除要货预测周期
+export const deleteSupplierCycle = async (id: number) => {
+ return await request.delete({ url: `/wms/supplier-cycle/delete?id=` + id })
+}
+
+// 导出要货预测周期 Excel
+export const exportSupplierCycle = async (params) => {
+ return await request.download({ url: `/wms/supplier-cycle/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplier-cycle/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/supplierUser/index.ts b/src/api/wms/supplierUser/index.ts
new file mode 100644
index 0000000..a7d284e
--- /dev/null
+++ b/src/api/wms/supplierUser/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface SupplierUserVO {
+ id: number
+ userId: number
+ supplierCode: string
+ status: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ remark: string
+}
+
+// 查询供应商用户关联信息列表
+export const getSupplierUserPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplier-user/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplier-user/page`, params })
+ }
+}
+
+// 查询供应商用户关联信息详情
+export const getSupplierUser = async (id: number) => {
+ return await request.get({ url: `/wms/supplier-user/get?id=` + id })
+}
+
+// 新增供应商用户关联信息
+export const createSupplierUser = async (data: SupplierUserVO) => {
+ return await request.post({ url: `/wms/supplier-user/create`, data })
+}
+
+// 修改供应商用户关联信息
+export const updateSupplierUser = async (data: SupplierUserVO) => {
+ return await request.put({ url: `/wms/supplier-user/update`, data })
+}
+
+// 删除供应商用户关联信息
+export const deleteSupplierUser = async (id: number) => {
+ return await request.delete({ url: `/wms/supplier-user/delete?id=` + id })
+}
+
+// 导出供应商用户关联信息 Excel
+export const exportSupplierUser = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/supplier-user/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/supplier-user/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplier-user/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/supplierdeliverInspectionDetail/index.ts b/src/api/wms/supplierdeliverInspectionDetail/index.ts
new file mode 100644
index 0000000..4f5855e
--- /dev/null
+++ b/src/api/wms/supplierdeliverInspectionDetail/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface SupplierdeliverInspectionDetailVO {
+ id: number
+ itemCode: string
+ uom: string
+ batch: string
+ planQty: number
+ remark: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询供应商发货申请质检信息子列表
+export const getSupplierdeliverInspectionDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierdeliver-inspection-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplierdeliver-inspection-detail/page`, params })
+ }
+}
+
+// 查询供应商发货申请质检信息子详情
+export const getSupplierdeliverInspectionDetail = async (id: number) => {
+ return await request.get({ url: `/wms/supplierdeliver-inspection-detail/get?id=` + id })
+}
+
+// 查询供应商发货申请质子列表
+export const getSupplierdeliverDetailInfo = async (id: number) => {
+ return await request.get({ url: `/wms/supplierdeliver-inspection-detail/queryByMasterId?masterId=` + id })
+}
+
+// 新增供应商发货申请质检信息子
+export const createSupplierdeliverInspectionDetail = async (data: SupplierdeliverInspectionDetailVO) => {
+ return await request.post({ url: `/wms/supplierdeliver-inspection-detail/create`, data })
+}
+
+// 修改供应商发货申请质检信息子
+export const updateSupplierdeliverInspectionDetail = async (data: SupplierdeliverInspectionDetailVO) => {
+ return await request.put({ url: `/wms/supplierdeliver-inspection-detail/update`, data })
+}
+
+// 删除供应商发货申请质检信息子
+export const deleteSupplierdeliverInspectionDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/supplierdeliver-inspection-detail/delete?id=` + id })
+}
+
+// 导出供应商发货申请质检信息子 Excel
+export const exportSupplierdeliverInspectionDetail = async (params) => {
+ return await request.download({ url: `/wms/supplierdeliver-inspection-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplierdeliver-inspection-detail/get-import-template' })
+}
+// 查看质检报告
+export const queryQualityInspection = (asnNumber:string) => {
+ return request.get({ url: `/wms/supplierdeliver-request-main/queryQualityInspection?asnNumber=` + asnNumber })
+}
diff --git a/src/api/wms/supplierdeliverRecordDetail/index.ts b/src/api/wms/supplierdeliverRecordDetail/index.ts
new file mode 100644
index 0000000..2efc8aa
--- /dev/null
+++ b/src/api/wms/supplierdeliverRecordDetail/index.ts
@@ -0,0 +1,98 @@
+import request from '@/config/axios'
+
+export interface SupplierdeliverRecordDetailVO {
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromBatch: string
+ altBatch: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ poNumber: string
+ poLine: string
+ packQty: number
+ packUnit: string
+ supplierQty: number
+ supplierUom: string
+ convertRate: number
+ fromLocationCode: string
+ toLocationCode: string
+ fromLocationGroupCode: string
+ toLocationGroupCode: string
+ fromAreaCode: string
+ toAreaCode: string
+ fromOwnerCode: string
+ toOwnerCode: string
+ projectCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+ toBatch: string
+}
+
+// 查询供应商发货记录子列表
+export const getSupplierdeliverRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierdeliver-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplierdeliver-record-detail/page`, params })
+ }
+}
+
+// 查询采供应商发货记录子列表
+export const getSupplierdeliverRecordDetailList = async (params) => {
+ return await request.get({ url: `/wms/supplierdeliver-record-detail/allList`, params })
+}
+
+// 查询供应商发货记录子详情
+export const getSupplierdeliverRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/supplierdeliver-record-detail/get?id=` + id })
+}
+
+// 新增供应商发货记录子
+export const createSupplierdeliverRecordDetail = async (data: SupplierdeliverRecordDetailVO) => {
+ return await request.post({ url: `/wms/supplierdeliver-record-detail/create`, data })
+}
+
+// 修改供应商发货记录子
+export const updateSupplierdeliverRecordDetail = async (data: SupplierdeliverRecordDetailVO) => {
+ return await request.put({ url: `/wms/supplierdeliver-record-detail/update`, data })
+}
+
+// 删除供应商发货记录子
+export const deleteSupplierdeliverRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/supplierdeliver-record-detail/delete?id=` + id })
+}
+
+// 导出供应商发货记录子 Excel
+export const exportSupplierdeliverRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/supplierdeliver-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplierdeliver-record-detail/get-import-template' })
+}
+
+// 查询供应商发货记录
+export const queryChildPickingNumber = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierdeliver-record-detail/queryChildPickingNumberSenior', data })
+ } else {
+ return await request.get({ url: `/wms/supplierdeliver-record-detail/queryChildPickingNumberPage`, params })
+ }
+}
\ No newline at end of file
diff --git a/src/api/wms/supplierdeliverRecordMain/index.ts b/src/api/wms/supplierdeliverRecordMain/index.ts
new file mode 100644
index 0000000..659794f
--- /dev/null
+++ b/src/api/wms/supplierdeliverRecordMain/index.ts
@@ -0,0 +1,88 @@
+import request from '@/config/axios'
+
+export interface SupplierdeliverRecordMainVO {
+ requestNumber: string
+ ppNumber: string
+ asnNumber: string
+ supplierCode: string
+ contactName: string
+ contactPhone: string
+ contactEmail: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ toDockCode: string
+ timeWindow: string
+ planArriveTime: Date
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ outTransaction: string
+ inTransaction: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: number
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ serialNumber: string
+ available: string
+ purchasereceiptRequestFlag: boolean
+ purchasereceiptRequestNumber: string
+}
+
+// 查询供应商发货记录主列表
+export const getSupplierdeliverRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierdeliver-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplierdeliver-record-main/page`, params })
+ }
+}
+
+// 查询供应商发货记录主详情
+export const getSupplierdeliverRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/supplierdeliver-record-main/get?id=` + id })
+}
+
+// 新增供应商发货记录主
+export const createSupplierdeliverRecordMain = async (data: SupplierdeliverRecordMainVO) => {
+ return await request.post({ url: `/wms/supplierdeliver-record-main/create`, data })
+}
+
+// 修改供应商发货记录主
+export const updateSupplierdeliverRecordMain = async (data: SupplierdeliverRecordMainVO) => {
+ return await request.put({ url: `/wms/supplierdeliver-record-main/update`, data })
+}
+
+// 删除供应商发货记录主
+export const deleteSupplierdeliverRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/supplierdeliver-record-main/delete?id=` + id })
+}
+
+// 导出供应商发货记录主 Excel
+export const exportSupplierdeliverRecordMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/supplierdeliver-record-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/supplierdeliver-record-main/export-excel`, params })
+ }
+ }
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplierdeliver-record-main/get-import-template' })
+}
+
+// 创建采购申请
+export const createPurchasereceiptRequest = async (number:string) => {
+ return await request.post({ url: `/wms/supplierdeliver-record-main/createPurchasereceiptRequest?number=`+number })
+}
+
diff --git a/src/api/wms/supplierdeliverRequestDetail/index.ts b/src/api/wms/supplierdeliverRequestDetail/index.ts
new file mode 100644
index 0000000..f610cb2
--- /dev/null
+++ b/src/api/wms/supplierdeliverRequestDetail/index.ts
@@ -0,0 +1,86 @@
+import request from '@/config/axios'
+
+export interface SupplierdeliverRequestDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ altBatch: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ poNumber: string
+ poLine: string
+ packQty: number
+ packUnit: string
+ supplierPackQty: number
+ supplierPackUnit: string
+ convertRate: number
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+
+// 查询供应商发货申请子列表
+export const getSupplierdeliverRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierdeliver-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplierdeliver-request-detail/page`, params })
+ }
+}
+// 查询供应商发货申请子列表
+export const getGenerateLabelList = async (params) => {
+ return await request.get({ url: `/wms/supplierdeliver-request-detail/generateLabelList`, params })
+}
+// 上传履历表
+export const uploadCurriculumVitae = async (data) => {
+ return await request.post({ url: `/wms/supplierdeliver-inspection-detail1/create`, data })
+}
+// 查询托规格列表
+export const getGenerateLabelParentList = async (params) => {
+ return await request.get({ url: `/wms/supplierdeliver-request-detail/generateLabelParentList`, params })
+}
+// 查询供应商发货申请子详情
+export const getSupplierdeliverRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/supplierdeliver-request-detail/get?id=` + id })
+}
+
+// 新增供应商发货申请子
+export const createSupplierdeliverRequestDetail = async (data: SupplierdeliverRequestDetailVO) => {
+ return await request.post({ url: `/wms/supplierdeliver-request-detail/create`, data })
+}
+
+// 修改供应商发货申请子
+export const updateSupplierdeliverRequestDetail = async (data: SupplierdeliverRequestDetailVO) => {
+ return await request.put({ url: `/wms/supplierdeliver-request-detail/update`, data })
+}
+
+// 删除供应商发货申请子
+export const deleteSupplierdeliverRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/supplierdeliver-request-detail/delete?id=` + id })
+}
+
+// 导出供应商发货申请子 Excel
+export const exportSupplierdeliverRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/supplierdeliver-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplierdeliver-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/supplierdeliverRequestMain/index.ts b/src/api/wms/supplierdeliverRequestMain/index.ts
new file mode 100644
index 0000000..f4d4a7b
--- /dev/null
+++ b/src/api/wms/supplierdeliverRequestMain/index.ts
@@ -0,0 +1,132 @@
+import request from '@/config/axios'
+import { SupplierdeliverRequestDetailVO } from '../supplierdeliverRequestDetail'
+
+export interface SupplierdeliverRequestMainVO {
+ ppNumber: string
+ asnNumber: string
+ supplierCode: string
+ contactName: string
+ contactPhone: string
+ contactEmail: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ toDockCode: string
+ timeWindow: string
+ planArriveTime: Date
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+ labelStatus: string
+}
+
+// 查询供应商发货申请主列表
+export const getSupplierdeliverRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierdeliver-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplierdeliver-request-main/page`, params })
+ }
+}
+
+// 查询供应商发货申请主详情
+export const getSupplierdeliverRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/supplierdeliver-request-main/get?id=` + id })
+}
+
+// 新增供应商发货申请主
+export const createSupplierdeliverRequestMain = async (data: SupplierdeliverRequestMainVO) => {
+ return await request.post({ url: `/wms/supplierdeliver-request-main/create`, data })
+}
+
+// 修改供应商发货申请主
+export const updateSupplierdeliverRequestMain = async (data: SupplierdeliverRequestMainVO) => {
+ return await request.put({ url: `/wms/supplierdeliver-request-main/update`, data })
+}
+
+// 删除供应商发货申请主
+export const deleteSupplierdeliverRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/supplierdeliver-request-main/delete?id=` + id })
+}
+
+// 打开供应商发货申请主
+export const opeSupplierdeliverRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/supplierdeliver-request-main/open?id=` + id })
+}
+// 关闭供应商发货申请主
+export const cloSupplierdeliverRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/supplierdeliver-request-main/close?id=` + id })
+}
+// 提交审批供应商发货申请主
+export const subSupplierdeliverRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/supplierdeliver-request-main/sub?id=` + id })
+}
+// 审批通过供应商发货申请主
+export const appSupplierdeliverRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/supplierdeliver-request-main/app?id=` + id })
+}
+// 驳回供应商发货申请主
+export const rejSupplierdeliverRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/supplierdeliver-request-main/rej?id=` + id })
+}
+
+// 校验是否上传自检报告
+export const selfCheckReport = async (id) => {
+ return await request.post({ url: `/wms/supplierdeliver-request-main/selfCheckReport?id=` + id })
+}
+
+// 生成标签
+export const genLabel = async (data:SupplierdeliverRequestMainVO) => {
+ return await request.post({ url: `/wms/supplierdeliver-request-main/genLabel`,data })
+}
+
+// 校验是否修改了包装数量
+export const checkPackQty = async (data:SupplierdeliverRequestMainVO) => {
+ return await request.post({ url: `/wms/supplierdeliver-request-main/checkPackQty`,data })
+}
+
+
+// 生成记录
+export const genRecordsSupplierdeliverRequestMain = async (id) => {
+ return await request.post({ url: `/wms/supplierdeliver-request-main/genRecords?id=` + id })
+}
+// 导出供应商发货申请主 Excel
+export const exportSupplierdeliverRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/supplierdeliver-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({url: `/wms/supplierdeliver-request-main/export-excel`, params})
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplierdeliver-request-main/get-import-template' })
+}
+
+// 删除之前的包装和标签
+export const deleteOldLabels = async (id) => {
+ return await request.post({ url: `/wms/supplierdeliver-request-main/deleteOldLabels?id=` + id })
+}
+
+// 查看履历表
+export const querySupplierResume = (asnNumber:string) => {
+ return request.get({ url: `/wms/supplierdeliver-request-main/querySupplierResume?asnNumber=` + asnNumber })
+}
\ No newline at end of file
diff --git a/src/api/wms/supplierinvoiceInvoiced/index.ts b/src/api/wms/supplierinvoiceInvoiced/index.ts
new file mode 100644
index 0000000..2271cdf
--- /dev/null
+++ b/src/api/wms/supplierinvoiceInvoiced/index.ts
@@ -0,0 +1,93 @@
+import request from '@/config/axios'
+
+export interface SupplierinvoiceInvoicedVO {
+ id: number
+ tax: number
+ projectCode: string
+ billType: string
+ recvBillNum: string
+ asnBillNum: string
+ supplierCode: string
+ poNumber: string
+ poLine: string
+ purchasePrice: number
+ invoicableQuantity: number
+ itemCode: string
+ uom: string
+ currency: string
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询待开票列表--日程
+export const getSupplierinvoiceInvoicedPageSchedule = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierinvoice-invoiced/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplierinvoice-invoiced/page`, params })
+ }
+}
+
+// 查询待开票列表--离散
+export const getSupplierinvoiceInvoicedPageDiscrete = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierinvoice-invoiced/seniorDiscrete', data })
+ } else {
+ return await request.get({ url: `/wms/supplierinvoice-invoiced/pageDiscrete`, params })
+ }
+}
+
+
+// 查询待开票详情
+export const getSupplierinvoiceInvoiced = async (id: number) => {
+ return await request.get({ url: `/wms/supplierinvoice-invoiced/get?id=` + id })
+}
+
+// 新增待开票
+export const createSupplierinvoiceInvoiced = async (data: SupplierinvoiceInvoicedVO) => {
+ return await request.post({ url: `/wms/supplierinvoice-invoiced/create`, data })
+}
+
+// 修改待开票
+export const updateSupplierinvoiceInvoiced = async (data: SupplierinvoiceInvoicedVO) => {
+ return await request.put({ url: `/wms/supplierinvoice-invoiced/update`, data })
+}
+
+// 删除待开票
+export const deleteSupplierinvoiceInvoiced = async (id: number) => {
+ return await request.delete({ url: `/wms/supplierinvoice-invoiced/delete?id=` + id })
+}
+
+// 导出待开票 Excel
+export const exportSupplierinvoiceInvoicedSchedule = async (params) => {
+ return await request.download({ url: `/wms/supplierinvoice-invoiced/export-excel-schedule`, params })
+}
+
+
+// 导出待开票 Excel
+export const exportSupplierinvoiceInvoicedDiscrete = async (params) => {
+ return await request.download({ url: `/wms/supplierinvoice-invoiced/export-excel-discrete`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplierinvoice-invoiced/get-import-template' })
+}
+
+// 审批通过待开票
+export const agreeSupplierinvoiceInvoiced = async (id: number) => {
+ return await request.post({ url: `/wms/supplierinvoice-invoiced/agree?id=` + id })
+}
+
+// 审批拒绝待开票
+export const refuseSupplierinvoiceInvoiced = async (id: number) => {
+ return await request.post({ url: `/wms/supplierinvoice-invoiced/refuse?id=` + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/supplierinvoiceRecordDeatil/index.ts b/src/api/wms/supplierinvoiceRecordDeatil/index.ts
new file mode 100644
index 0000000..5c55d7a
--- /dev/null
+++ b/src/api/wms/supplierinvoiceRecordDeatil/index.ts
@@ -0,0 +1,73 @@
+import request from '@/config/axios'
+
+export interface SupplierinvoiceRecordDeatilVO {
+ recordNumber: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ altBatch: string
+ poNumber: string
+ poLine: string
+ packQty: number
+ packUnit: string
+ supplierQty: number
+ supplierUom: string
+ convertRate: number
+ singlePrice: number
+ amount: number
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ jobDetailId: string
+}
+
+// 查询供应商发票记录子列表
+export const getSupplierinvoiceRecordDeatilPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierinvoice-record-deatil/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplierinvoice-record-deatil/page`, params })
+ }
+}
+
+// 查询供应商发票记录子详情
+export const getSupplierinvoiceRecordDeatil = async (id: number) => {
+ return await request.get({ url: `/wms/supplierinvoice-record-deatil/get?id=` + id })
+}
+
+// 新增供应商发票记录子
+export const createSupplierinvoiceRecordDeatil = async (data: SupplierinvoiceRecordDeatilVO) => {
+ return await request.post({ url: `/wms/supplierinvoice-record-deatil/create`, data })
+}
+
+// 修改供应商发票记录子
+export const updateSupplierinvoiceRecordDeatil = async (data: SupplierinvoiceRecordDeatilVO) => {
+ return await request.put({ url: `/wms/supplierinvoice-record-deatil/update`, data })
+}
+
+// 删除供应商发票记录子
+export const deleteSupplierinvoiceRecordDeatil = async (id: number) => {
+ return await request.delete({ url: `/wms/supplierinvoice-record-deatil/delete?id=` + id })
+}
+
+// 导出供应商发票记录子 Excel
+export const exportSupplierinvoiceRecordDeatil = async (params) => {
+ return await request.download({ url: `/wms/supplierinvoice-record-deatil/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplierinvoice-record-deatil/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/supplierinvoiceRecordMain/index.ts b/src/api/wms/supplierinvoiceRecordMain/index.ts
new file mode 100644
index 0000000..7442e6f
--- /dev/null
+++ b/src/api/wms/supplierinvoiceRecordMain/index.ts
@@ -0,0 +1,89 @@
+import request from '@/config/axios'
+
+export interface SupplierinvoiceRecordMainVO {
+ requestNumber: string
+ supplierCode: string
+ adjustAmount: number
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ code: string
+ available: string
+}
+
+// 查询供应商发票记录主列表
+export const getSupplierinvoiceRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierinvoice-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplierinvoice-record-main/page`, params })
+ }
+}
+// 查询供应商发票记录主列表
+export const getSupplierinvoiceRecordMainPageDiscrete = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierinvoice-record-main/seniorDiscrete', data })
+ } else {
+ return await request.get({ url: `/wms/supplierinvoice-record-main/pageDiscrete`, params })
+ }
+}
+
+// 查询供应商发票记录主详情
+export const getSupplierinvoiceRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/supplierinvoice-record-main/get?id=` + id })
+}
+
+// 新增供应商发票记录主
+export const createSupplierinvoiceRecordMain = async (data: SupplierinvoiceRecordMainVO) => {
+ return await request.post({ url: `/wms/supplierinvoice-record-main/create`, data })
+}
+
+// 修改供应商发票记录主
+export const updateSupplierinvoiceRecordMain = async (data: SupplierinvoiceRecordMainVO) => {
+ return await request.put({ url: `/wms/supplierinvoice-record-main/update`, data })
+}
+
+// 删除供应商发票记录主
+export const deleteSupplierinvoiceRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/supplierinvoice-record-main/delete?id=` + id })
+}
+
+// 发票回转
+export const reverseSupplierinvoiceRecordMain = async (data: SupplierinvoiceRecordMainVO) => {
+ return await request.post({ url: `/wms/supplierinvoice-record-main/reverse`, data })
+}
+
+
+// 导出供应商发票记录主 Excel
+export const exportSupplierinvoiceRecordMain = async (params) => {
+ console.log(params)
+ if (params.isSearch) {
+ const data = { ...params }
+ return await request.downloadPost({ url: `/wms/supplierinvoice-record-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/supplierinvoice-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplierinvoice-record-main/get-import-template' })
+}
+
+export const exportSupplierinvoiceRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/supplierinvoice-record-deatil/export-excel`, params })
+}
diff --git a/src/api/wms/supplierinvoiceRequestDetail/index.ts b/src/api/wms/supplierinvoiceRequestDetail/index.ts
new file mode 100644
index 0000000..cab62a1
--- /dev/null
+++ b/src/api/wms/supplierinvoiceRequestDetail/index.ts
@@ -0,0 +1,82 @@
+import request from '@/config/axios'
+
+export interface SupplierinvoiceRequestDetailVO {
+ recordNumber: string
+ ownerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ altBatch: string
+ poNumber: string
+ poLine: string
+ packQty: number
+ packUnit: string
+ supplierPackQty: number
+ supplierPackUnit: string
+ convertRate: number
+ singlePrice: number
+ amount: number
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+}
+
+// 查询供应商发票申请子列表
+export const getSupplierinvoiceRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierinvoice-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplierinvoice-request-detail/page`, params })
+ }
+}
+
+// 查询供应商发票申请主详情
+export const getPoNumber = async (params) => {
+ return await request.get({ url: `/wms/supplierinvoice-request-detail/getPoNumber`, params})
+}
+
+// 查询供应商发票明细数据
+export const getPoNumberPoLineInfo = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: `/wms/supplierinvoice-request-detail/getInvoicedSenior`, data})
+ }else{
+ return await request.get({ url: `/wms/supplierinvoice-request-detail/getInvoicedPage`, params})
+ }
+}
+
+
+// 查询供应商发票申请子详情
+export const getSupplierinvoiceRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/supplierinvoice-request-detail/get?id=` + id })
+}
+
+// 新增供应商发票申请子
+export const createSupplierinvoiceRequestDetail = async (data) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-detail/create`, data })
+}
+
+// 修改供应商发票申请子
+export const updateSupplierinvoiceRequestDetail = async (data: SupplierinvoiceRequestDetailVO) => {
+ return await request.put({ url: `/wms/supplierinvoice-request-detail/update`, data })
+}
+
+// 删除供应商发票申请子
+export const deleteSupplierinvoiceRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/supplierinvoice-request-detail/delete?id=` + id })
+}
+
+// 导出供应商发票申请子 Excel
+export const exportSupplierinvoiceRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/supplierinvoice-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplierinvoice-request-detail/get-import-template' })
+}
diff --git a/src/api/wms/supplierinvoiceRequestMain/index.ts b/src/api/wms/supplierinvoiceRequestMain/index.ts
new file mode 100644
index 0000000..4330d5a
--- /dev/null
+++ b/src/api/wms/supplierinvoiceRequestMain/index.ts
@@ -0,0 +1,159 @@
+import request from '@/config/axios'
+
+export interface SupplierinvoiceRequestMainVO {
+ supplierCode: string
+ adjustAmount: number
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询供应商发票申请主列表
+export const getSupplierinvoiceRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/supplierinvoice-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplierinvoice-request-main/page`, params })
+ }
+}
+
+// 查询供应商发票申请主详情
+export const getSupplierinvoiceRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/supplierinvoice-request-main/get?id=` + id })
+}
+
+// 查询供应商发票申请主详情
+export const getNumber = async (params) => {
+ return await request.get({ url: `/wms/supplierinvoice-request-main/getNumber`, params})
+}
+
+// 新增供应商发票申请主
+export const createSupplierinvoiceRequestMain = async (data: SupplierinvoiceRequestMainVO) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/create`, data })
+}
+
+// 修改供应商发票申请主
+export const updateSupplierinvoiceRequestMain = async (data: SupplierinvoiceRequestMainVO) => {
+ return await request.put({ url: `/wms/supplierinvoice-request-main/update`, data })
+}
+
+// 删除供应商发票申请主
+export const deleteSupplierinvoiceRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/supplierinvoice-request-main/delete?id=` + id })
+}
+
+// 校验控制是否可以开票逻辑
+export const checkInvoicingCalendar = async (params) => {
+ return await request.get({ url: `/wms/supplierinvoice-request-main/checkInvoicingCalendar`, params })
+}
+
+
+// 打开供应商发货申请主
+export const opeSupplierinvoiceRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/open?id=` + id })
+}
+// 关闭供应商发货申请主
+export const cloSupplierinvoiceRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/close?id=` + id })
+}
+// 提交审批供应商发货申请主
+export const subSupplierinvoiceRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/sub?id=` + id })
+}
+// 采购--审批通过供应商发货申请主
+export const appSupplierinvoiceRequestMain = async (id: number,balanceStatement:any) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/app?id=` + id+ (balanceStatement?'&balanceStatement=' + balanceStatement:'')})
+}
+// 采购--驳回供应商发货申请主
+export const rejSupplierinvoiceRequestMain = async (data) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/rej`,data })
+}
+
+// 供应商--发票寄出
+export const invoiceSentOutSupplierinvoiceRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/invoiceSentOut?id=` + id })
+}
+
+// 财务--审批通过供应商发货申请主
+export const financeappSupplierinvoiceRequestMain = async (data) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/financeApp`, data })
+}
+// 财务--驳回供应商发货申请主
+export const financerejSupplierinvoiceRequestMain = async (data) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/financeRej`, data })
+}
+
+// 作废--供应商发货申请主
+export const repealSupplierinvoiceRequestMain = async (id: number) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/repeal?id=` + id })
+}
+
+// 生成记录
+export const genRecordsSupplierinvoiceRequestMain = async (id) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/genRecords?id=` + id })
+}
+
+// 打印单挑供应商发货记录
+export const printSupplierRecord = async (asnBillNum:string) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/querySupplierRecord?asnBillNum=`+asnBillNum })
+}
+
+// 打印单挑供应商发货记录
+export const printSupplierRecordByMasterId = async (masterId:number) => {
+ return await request.post({ url: `/wms/supplierinvoice-request-main/querySupplierRecordByMasterId?masterId=`+masterId })
+}
+
+// 导出供应商发票申请主 Excel
+export const exportSupplierinvoiceRequestMain = async (data) => {
+ if(data.isSearch){
+ return await request.downloadPost({ url: `/wms/supplierinvoice-request-main/export-excel-senior`, data })
+ }else {
+ return await request.downloadPost({ url: `/wms/supplierinvoice-request-main/export-excel`, data })
+ }
+}
+
+// 导出供应商发票申请明细 Excel
+export const exportSupplierinvoiceRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/supplierinvoice-request-main/export-excel-detail`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplierinvoice-request-main/get-import-template' })
+}
+
+// 根据角色编码获取用户列表
+export const queryUserInfoByRoleCode = async (params) => {
+ return await request.get({ url: `/wms/supplierinvoice-request-main/queryUserInfoByRoleCodePage`, params })
+
+}
+// 获取供应商角色
+export const getLoginUserRoleList = async () => {
+ return await request.get({ url: `/wms/supplierinvoice-request-main/getLoginUserRoleList`})
+
+}
+
+// 编辑的时候计算主表系统税额
+export const getTaxAmount = async ({id,taxRate}) => {
+ return await request.get({ url: `/wms/supplierinvoice-request-main/computeById?id=${id}&taxRate=${taxRate}`})
+
+}
+// 采购离散订单查看-点击未读按钮
+export const getDiscreteIsRead = async ({id}) => {
+ return await request.get({ url: `/wms/supplierinvoice-record-main/discreteIsRead?id=${id}`})
+
+}
\ No newline at end of file
diff --git a/src/api/wms/supplieritem/index.ts b/src/api/wms/supplieritem/index.ts
new file mode 100644
index 0000000..2744693
--- /dev/null
+++ b/src/api/wms/supplieritem/index.ts
@@ -0,0 +1,119 @@
+import request from '@/config/axios'
+
+export interface SupplieritemVO {
+ supplierCode: string
+ itemCode: string
+ supplierItemCode: string
+ supplierUom: string
+ convertRate: number
+ packUnit: string
+ packQty: number
+ altPackUnit: string
+ altPackQty: number
+ packQtyOfContainer: number
+ defaultWarehouseCode: string
+ defaultLocationCode: string
+ settlementType: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询供应商物料列表
+export const getSupplieritemPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/supplieritem/senior', data })
+ } else {
+ return await request.get({ url: `/wms/supplieritem/page`, params })
+ }
+}
+
+// 查询供应商物料列表
+export const getSupplieritemPageSCP = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/supplieritem/seniorSCP', data })
+ } else {
+ return await request.get({ url: `/wms/supplieritem/pageSCP`, params })
+ }
+}
+
+// 查询供应商物料详情
+export const getSupplieritem = async (id: number) => {
+ return await request.get({ url: `/wms/supplieritem/get?id=` + id })
+}
+
+// 新增供应商物料
+export const createSupplieritem = async (data: SupplieritemVO) => {
+ return await request.post({ url: `/wms/supplieritem/create`, data })
+}
+export const createSupplieritemSCP = async (data: SupplieritemVO) => {
+ return await request.post({ url: `/wms/supplieritem/createSCP`, data })
+}
+
+// 修改供应商物料
+export const updateSupplieritem = async (data: SupplieritemVO) => {
+ return await request.put({ url: `/wms/supplieritem/update`, data })
+}
+// 修改供应商物料
+export const updateSupplieritemSCP = async (data: SupplieritemVO) => {
+ return await request.put({ url: `/wms/supplieritem/updateSCP`, data })
+}
+
+// 删除供应商物料
+export const deleteSupplieritem = async (id: number) => {
+ return await request.delete({ url: `/wms/supplieritem/delete?id=` + id })
+}
+export const deleteSupplieritemSCP = async (id: number) => {
+ return await request.delete({ url: `/wms/supplieritem/deleteSCP?id=` + id })
+}
+
+
+// 导出供应商物料 Excel
+export const exportSupplieritem = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/supplieritem/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/supplieritem/export-excel`, params })
+ }
+}
+
+// 导出供应商物料 Excel
+export const exportSupplieritemSCP = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/supplieritem/export-excel-senior-SCP`, data })
+ } else {
+ return await request.download({ url: `/wms/supplieritem/export-excel-SCP`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/supplieritem/get-import-template' })
+}
+
+// 查询供应商物料列表
+export const selectItembasicTypeToSupplieritem = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.post({ url: `/wms/supplieritem/pageItembasicTypeToSupplieritemSenior`, data })
+ } else {
+ return await request.get({ url: `/wms/supplieritem/pageItembasicTypeToSupplieritem`, params })
+ }
+}
+
+export const getDefaultLocationCode = async(data: SupplieritemVO)=> {
+ return await request.post({ url: `/wms/supplieritem/getDefaultLocationCode`, data })
+}
+
+
+// 根据code获取数据列表
+export const getSupplierItemListByCodes = async (data) => {
+ return await request.get({ url: `/wms/supplieritem/listByCodes?supplierCode=`+data.supplierCode +'&itemCodes='+data.itemCodes })
+}
diff --git a/src/api/wms/switch/index.ts b/src/api/wms/switch/index.ts
new file mode 100644
index 0000000..fa520e9
--- /dev/null
+++ b/src/api/wms/switch/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface SwitchVO {
+ id: number
+ code: string
+ description: string
+ effectiveSetValue: string
+ available: string
+}
+
+// 查询单据开关列表
+export const getSwitchPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/switch/senior', data })
+ } else {
+ return await request.get({ url: `/wms/switch/page`, params })
+ }
+}
+
+// 查询单据开关详情
+export const getSwitch = async (id: number) => {
+ return await request.get({ url: `/wms/switch/get?id=` + id })
+}
+
+// 查询单据开关详情
+export const getByCode = async (code) => {
+ return await request.get({ url: `/wms/switch/getByCode?code=` + code })
+}
+
+
+// 新增单据开关
+export const createSwitch = async (data: SwitchVO) => {
+ return await request.post({ url: `/wms/switch/create`, data })
+}
+
+// 修改单据开关
+export const updateSwitch = async (data: SwitchVO) => {
+ return await request.put({ url: `/wms/switch/update`, data })
+}
+
+// 删除单据开关
+export const deleteSwitch = async (id: number) => {
+ return await request.delete({ url: `/wms/switch/delete?id=` + id })
+}
+
+// 导出单据开关 Excel
+export const exportSwitch = async (params) => {
+ return await request.download({ url: `/wms/switch/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/switch/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/systemInstallPackage/index.ts b/src/api/wms/systemInstallPackage/index.ts
new file mode 100644
index 0000000..b92b096
--- /dev/null
+++ b/src/api/wms/systemInstallPackage/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface SystemInstallPackageVO {
+ id: number
+ installPackageName: string
+ installPackageVersion: number
+ installPackageUrl: string
+ isForcedUpdate: string
+ updateContent: string
+ remark: string
+}
+
+// 查询安装包信息列表
+export const getSystemInstallPackagePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/system-install-package/senior', data })
+ } else {
+ return await request.get({ url: `/wms/system-install-package/page`, params })
+ }
+}
+
+// 查询安装包信息详情
+export const getSystemInstallPackage = async (id: number) => {
+ return await request.get({ url: `/wms/system-install-package/get?id=` + id })
+}
+
+// 新增安装包信息
+export const createSystemInstallPackage = async (data: SystemInstallPackageVO) => {
+ return await request.post({ url: `/wms/system-install-package/create`, data })
+}
+
+// 修改安装包信息
+export const updateSystemInstallPackage = async (data: SystemInstallPackageVO) => {
+ return await request.put({ url: `/wms/system-install-package/update`, data })
+}
+
+// 删除安装包信息
+export const deleteSystemInstallPackage = async (id: number) => {
+ return await request.delete({ url: `/wms/system-install-package/delete?id=` + id })
+}
+
+// 导出安装包信息 Excel
+export const exportSystemInstallPackage = async (params) => {
+ return await request.download({ url: `/wms/system-install-package/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/system-install-package/get-import-template' })
+}
+
+// 返回最新版本安装包信息
+export const returnNewFileSystemInstallPackage = async (data: SystemInstallPackageVO) => {
+ return await request.post({ url: `/wms/system-install-package/returnNewFile`, data })
+}
\ No newline at end of file
diff --git a/src/api/wms/systemcalendar/index.ts b/src/api/wms/systemcalendar/index.ts
new file mode 100644
index 0000000..0499f49
--- /dev/null
+++ b/src/api/wms/systemcalendar/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface SystemcalendarVO {
+ module: string
+ startTime: Date
+ stopTime: Date
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询系统日历列表
+export const getSystemcalendarPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/systemcalendar/senior', data })
+ } else {
+ return await request.get({ url: `/wms/systemcalendar/page`, params })
+ }
+}
+
+// 查询系统日历详情
+export const getSystemcalendar = async (id: number) => {
+ return await request.get({ url: `/wms/systemcalendar/get?id=` + id })
+}
+
+// 新增系统日历
+export const createSystemcalendar = async (data: SystemcalendarVO) => {
+ return await request.post({ url: `/wms/systemcalendar/create`, data })
+}
+
+// 修改系统日历
+export const updateSystemcalendar = async (data: SystemcalendarVO) => {
+ return await request.put({ url: `/wms/systemcalendar/update`, data })
+}
+
+// 删除系统日历
+export const deleteSystemcalendar = async (id: number) => {
+ return await request.delete({ url: `/wms/systemcalendar/delete?id=` + id })
+}
+
+// 导出系统日历 Excel
+export const exportSystemcalendar = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/systemcalendar/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/systemcalendar/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/systemcalendar/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/team/index.ts b/src/api/wms/team/index.ts
new file mode 100644
index 0000000..ea1ee0a
--- /dev/null
+++ b/src/api/wms/team/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface TeamVO {
+ code: string
+ name: string
+ description: string
+ members: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ available: string
+ teamGroup: string
+ workshopCode: string
+ productionLineCode: string
+ teamMonitorCode: string
+ teamMonitorName: string
+}
+
+// 查询班组列表
+export const getTeamPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/team/senior', data })
+ } else {
+ return await request.get({ url: `/wms/team/page`, params })
+ }
+}
+
+export const geTeamUserByCode = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/team/queryTeamUserByCode', data })
+ }
+ // else {
+ // return await request.get({ url: `/wms/team/queryTeamUserByCode`, params })
+ // }
+}
+
+// 查询班组详情
+export const getTeam = async (id: number) => {
+ return await request.get({ url: `/wms/team/get?id=` + id })
+}
+
+// 新增班组
+export const createTeam = async (data: TeamVO) => {
+ return await request.post({ url: `/wms/team/create`, data })
+}
+
+// 修改班组
+export const updateTeam = async (data: TeamVO) => {
+ return await request.put({ url: `/wms/team/update`, data })
+}
+
+// 删除班组
+export const deleteTeam = async (id: number) => {
+ return await request.delete({ url: `/wms/team/delete?id=` + id })
+}
+
+// 导出班组 Excel
+export const exportTeam = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/team/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/team/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/team/get-import-template' })
+}
diff --git a/src/api/wms/transaction/index.ts b/src/api/wms/transaction/index.ts
new file mode 100644
index 0000000..1581755
--- /dev/null
+++ b/src/api/wms/transaction/index.ts
@@ -0,0 +1,77 @@
+import request from '@/config/axios'
+
+export interface TransactionVO {
+ number: string
+ transactionType: string
+ inventoryAction: string
+ worker: string
+ businessType: string
+ recordNumber: string
+ activeTime: Date
+ itemCode: string
+ batch: string
+ inventoryStatus: string
+ uom: string
+ qty: number
+ singlePrice: number
+ amount: number
+ altBatch: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ packingNumber: string
+ containerNumber: string
+ locationCode: string
+ warehouseCode: string
+ areaCode: string
+ locationGroupCode: string
+ erpLocationCode: string
+ ownerCode: string
+}
+
+// 查询库存事务列表
+export const getTransactionPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transaction/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transaction/page`, params })
+ }
+}
+
+// 查询库存事务详情
+export const getTransaction = async (id: number) => {
+ return await request.get({ url: `/wms/transaction/get?id=` + id })
+}
+
+// 新增库存事务
+export const createTransaction = async (data: TransactionVO) => {
+ return await request.post({ url: `/wms/transaction/create`, data })
+}
+
+// 修改库存事务
+export const updateTransaction = async (data: TransactionVO) => {
+ return await request.put({ url: `/wms/transaction/update`, data })
+}
+
+// 删除库存事务
+export const deleteTransaction = async (id: number) => {
+ return await request.delete({ url: `/wms/transaction/delete?id=` + id })
+}
+
+// 导出库存事务 Excel
+export const exportTransaction = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/transaction/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/transaction/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transaction/get-import-template' })
+}
diff --git a/src/api/wms/transactiontype/index.ts b/src/api/wms/transactiontype/index.ts
new file mode 100644
index 0000000..8b30d08
--- /dev/null
+++ b/src/api/wms/transactiontype/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface TransactiontypeVO {
+ code: string
+ name: string
+ description: string
+ inventoryAction: string
+ activeTime: Date
+ expireTime: Date
+ remark: string
+ allowNegative: string
+ available: string
+ isSoftDeleted: string
+}
+
+// 查询事务类型列表
+export const getTransactiontypePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/transactiontype/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transactiontype/page`, params })
+ }
+}
+
+// 校验事务类型列表
+export const verifyTransactiontype = async (params) => {
+ return await request.get({ url: `/wms/transactiontype/ListByCode`, params })
+}
+
+
+// 查询事务类型详情
+export const getTransactiontype = async (id: number) => {
+ return await request.get({ url: `/wms/transactiontype/get?id=` + id })
+}
+
+// 新增事务类型
+export const createTransactiontype = async (data: TransactiontypeVO) => {
+ return await request.post({ url: `/wms/transactiontype/create`, data })
+}
+
+// 修改事务类型
+export const updateTransactiontype = async (data: TransactiontypeVO) => {
+ return await request.put({ url: `/wms/transactiontype/update`, data })
+}
+
+// 删除事务类型
+export const deleteTransactiontype = async (id: number) => {
+ return await request.delete({ url: `/wms/transactiontype/delete?id=` + id })
+}
+
+// 导出事务类型 Excel
+export const exportTransactiontype = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.downloadPost({ url: '/wms/transactiontype/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/transactiontype/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transactiontype/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/transferissueJobDetail/index.ts b/src/api/wms/transferissueJobDetail/index.ts
new file mode 100644
index 0000000..3837dcb
--- /dev/null
+++ b/src/api/wms/transferissueJobDetail/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface TransferissueJobDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ fromLocationCode: string
+ toLocationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询调拨出库任务子列表
+export const getTransferissueJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferissue-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferissue-job-detail/page`, params })
+ }
+}
+
+// 查询调拨出库任务子详情
+export const getTransferissueJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/transferissue-job-detail/get?id=` + id })
+}
+
+// 新增调拨出库任务子
+export const createTransferissueJobDetail = async (data: TransferissueJobDetailVO) => {
+ return await request.post({ url: `/wms/transferissue-job-detail/create`, data })
+}
+
+// 修改调拨出库任务子
+export const updateTransferissueJobDetail = async (data: TransferissueJobDetailVO) => {
+ return await request.put({ url: `/wms/transferissue-job-detail/update`, data })
+}
+
+// 删除调拨出库任务子
+export const deleteTransferissueJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/transferissue-job-detail/delete?id=` + id })
+}
+
+// 导出调拨出库任务子 Excel
+export const exportTransferissueJobDetail = async (params) => {
+ return await request.download({ url: `/wms/transferissue-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transferissue-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/transferissueJobMain/index.ts b/src/api/wms/transferissueJobMain/index.ts
new file mode 100644
index 0000000..5646458
--- /dev/null
+++ b/src/api/wms/transferissueJobMain/index.ts
@@ -0,0 +1,107 @@
+import request from '@/config/axios'
+
+export interface TransferissueJobMainVO {
+ requestNumber: string
+ deliverDock: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ fromAreaCodes: string
+ fromDockCode: string
+ toAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询调拨出库任务主列表
+export const getTransferissueJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferissue-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferissue-job-main/page`, params })
+ }
+}
+
+// 查询调拨出库任务主详情
+export const getTransferissueJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/transferissue-job-main/get?id=` + id })
+}
+
+// 新增调拨出库任务主
+export const createTransferissueJobMain = async (data: TransferissueJobMainVO) => {
+ return await request.post({ url: `/wms/transferissue-job-main/create`, data })
+}
+
+// 修改调拨出库任务主
+export const updateTransferissueJobMain = async (data: TransferissueJobMainVO) => {
+ return await request.put({ url: `/wms/transferissue-job-main/update`, data })
+}
+
+// 删除调拨出库任务主
+export const deleteTransferissueJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/transferissue-job-main/delete?id=` + id })
+}
+
+// 导出调拨出库任务主 Excel
+export const exportTransferissueJobMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/transferissue-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/transferissue-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transferissue-job-main/get-import-template' })
+}
+
+// 关闭-调拨出库任务主
+export const closeTransferissueJobMain = (id: number) => {
+ return request.put({ url: '/wms/transferissue-job-main/close?id=' + id })
+}
+
+// 承接-调拨出库任务主
+export const acceptTransferissueJobMain = (id: number) => {
+ return request.put({ url: '/wms/transferissue-job-main/accept?id=' + id })
+}
+
+// 放弃-调拨出库任务主
+export const abandonTransferissueJobMain = (id: number) => {
+ return request.put({ url: '/wms/transferissue-job-main/abandon?id=' + id })
+}
diff --git a/src/api/wms/transferissueRecordDetail/index.ts b/src/api/wms/transferissueRecordDetail/index.ts
new file mode 100644
index 0000000..507b9aa
--- /dev/null
+++ b/src/api/wms/transferissueRecordDetail/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface TransferissueRecordDetailVO {
+ fromBatch: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toOwnerCode: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ code: string
+ interfaceType: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ toBatch: string
+}
+
+// 查询调拨出库记录子列表
+export const getTransferissueRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferissue-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferissue-record-detail/page`, params })
+ }
+}
+
+// 查询调拨出库记录子详情
+export const getTransferissueRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/transferissue-record-detail/get?id=` + id })
+}
+
+// 新增调拨出库记录子
+export const createTransferissueRecordDetail = async (data: TransferissueRecordDetailVO) => {
+ return await request.post({ url: `/wms/transferissue-record-detail/create`, data })
+}
+
+// 修改调拨出库记录子
+export const updateTransferissueRecordDetail = async (data: TransferissueRecordDetailVO) => {
+ return await request.put({ url: `/wms/transferissue-record-detail/update`, data })
+}
+
+// 删除调拨出库记录子
+export const deleteTransferissueRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/transferissue-record-detail/delete?id=` + id })
+}
+
+// 导出调拨出库记录子 Excel
+export const exportTransferissueRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/transferissue-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transferissue-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/transferissueRecordMain/index.ts b/src/api/wms/transferissueRecordMain/index.ts
new file mode 100644
index 0000000..fc41241
--- /dev/null
+++ b/src/api/wms/transferissueRecordMain/index.ts
@@ -0,0 +1,78 @@
+import request from '@/config/axios'
+
+export interface TransferissueRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ code: string
+ interfaceType: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromDockCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toAreaTypes: string
+ toAreaCodes: string
+ available: string
+}
+
+// 查询调拨出库记录主列表
+export const getTransferissueRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferissue-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferissue-record-main/page`, params })
+ }
+}
+
+// 查询调拨出库记录主详情
+export const getTransferissueRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/transferissue-record-main/get?id=` + id })
+}
+
+// 新增调拨出库记录主
+export const createTransferissueRecordMain = async (data: TransferissueRecordMainVO) => {
+ return await request.post({ url: `/wms/transferissue-record-main/create`, data })
+}
+
+// 修改调拨出库记录主
+export const updateTransferissueRecordMain = async (data: TransferissueRecordMainVO) => {
+ return await request.put({ url: `/wms/transferissue-record-main/update`, data })
+}
+
+// 删除调拨出库记录主
+export const deleteTransferissueRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/transferissue-record-main/delete?id=` + id })
+}
+
+// 导出调拨出库记录主 Excel
+export const exportTransferissueRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferissue-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/transferissue-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transferissue-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/transferissueRequestDetail/index.ts b/src/api/wms/transferissueRequestDetail/index.ts
new file mode 100644
index 0000000..fc8fde3
--- /dev/null
+++ b/src/api/wms/transferissueRequestDetail/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface TransferissueRequestDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ toOwnerCode: string
+ toLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ fromOwnerCode: string
+ fromLocationCode: string
+ reason: string
+}
+
+// 查询调拨出库申请子列表
+export const getTransferissueRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferissue-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferissue-request-detail/page`, params })
+ }
+}
+
+// 查询调拨出库申请子详情
+export const getTransferissueRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/transferissue-request-detail/get?id=` + id })
+}
+
+// 新增调拨出库申请子
+export const createTransferissueRequestDetail = async (data: TransferissueRequestDetailVO) => {
+ return await request.post({ url: `/wms/transferissue-request-detail/create`, data })
+}
+
+// 修改调拨出库申请子
+export const updateTransferissueRequestDetail = async (data: TransferissueRequestDetailVO) => {
+ return await request.put({ url: `/wms/transferissue-request-detail/update`, data })
+}
+
+// 删除调拨出库申请子
+export const deleteTransferissueRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/transferissue-request-detail/delete?id=` + id })
+}
+
+// 导出调拨出库申请子 Excel
+export const exportTransferissueRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/transferissue-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transferissue-request-detail/get-import-template' })
+}
diff --git a/src/api/wms/transferissueRequestMain/index.ts b/src/api/wms/transferissueRequestMain/index.ts
new file mode 100644
index 0000000..5e08ee1
--- /dev/null
+++ b/src/api/wms/transferissueRequestMain/index.ts
@@ -0,0 +1,106 @@
+import request from '@/config/axios'
+
+export interface TransferissueRequestMainVO {
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ fromWarehouseCode: string
+ fromDockCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询调拨出库申请主列表
+export const getTransferissueRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferissue-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferissue-request-main/page`, params })
+ }
+}
+
+// 查询调拨出库申请主详情
+export const getTransferissueRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/transferissue-request-main/get?id=` + id })
+}
+
+// 新增-调拨出库申请主
+export const createTransferissueRequestMain = async (data: TransferissueRequestMainVO) => {
+ return await request.post({ url: `/wms/transferissue-request-main/create`, data })
+}
+
+// 修改-调拨出库申请主
+export const updateTransferissueRequestMain = async (data: TransferissueRequestMainVO) => {
+ return await request.put({ url: `/wms/transferissue-request-main/update`, data })
+}
+
+// 删除-调拨出库申请主
+export const deleteTransferissueRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/transferissue-request-main/delete?id=` + id })
+}
+
+// 导出-调拨出库申请主 Excel
+export const exportTransferissueRequestMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/transferissue-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/transferissue-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transferissue-request-main/get-import-template' })
+}
+
+// 关闭-调拨出库申请
+export const closeTransferissueRequestMain = async (id) => {
+ return await request.put({ url: `/wms/transferissue-request-main/close?id=` + id })
+}
+
+// 重新添加-调拨出库申请
+export const reAddTransferissueRequestMain = async (id) => {
+ return await request.put({ url: `/wms/transferissue-request-main/reAdd?id=` + id })
+}
+
+// 提交审批-调拨出库申请
+export const submitTransferissueRequestMain = async (id) => {
+ return await request.put({ url: `/wms/transferissue-request-main/submit?id=` + id })
+}
+
+// 审批驳回-调拨出库申请
+export const refusedTransferissueRequestMain = async (id) => {
+ return await request.put({ url: `/wms/transferissue-request-main/refused?id=` + id })
+}
+
+// 审批通过-调拨出库申请
+export const agreeTransferissueRequestMain = async (id) => {
+ return await request.put({ url: `/wms/transferissue-request-main/agree?id=` + id })
+}
+
+// 处理-调拨出库申请
+export const handleTransferissueRequestMain = async (id) => {
+ return await request.put({ url: `/wms/transferissue-request-main/handle?id=` + id })
+}
diff --git a/src/api/wms/transferlog/index.ts b/src/api/wms/transferlog/index.ts
new file mode 100644
index 0000000..8d13c84
--- /dev/null
+++ b/src/api/wms/transferlog/index.ts
@@ -0,0 +1,86 @@
+import request from '@/config/axios'
+
+export interface TransferlogVO {
+ number: string
+ transactionType: string
+ worker: string
+ businessType: string
+ recordNumber: string
+ activeTime: Date
+ itemCode: string
+ uom: string
+ qty: number
+ altBatch: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ fomTransactionNumber: string
+ fromPackingNumber: string
+ fromBatch: string
+ fromInventoryStatus: string
+ fromContainerNumber: string
+ fromLocationCode: string
+ fromWarehouseCode: string
+ fromAreaCode: string
+ fromLocationGroupCode: string
+ fromErpLocationCode: string
+ fromOwnerCode: string
+ toTransactionNumber: string
+ toPackingNumber: string
+ toBatch: string
+ toInventoryStatus: string
+ toContainerNumber: string
+ toLocationCode: string
+ toWarehouseCode: string
+ toAreaCode: string
+ toLocationGroupCode: string
+ toErpLocationCode: string
+ toOwnerCode: string
+}
+
+// 查询库存转移日志列表
+export const getTransferlogPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferlog/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferlog/page`, params })
+ }
+}
+
+// 查询库存转移日志详情
+export const getTransferlog = async (id: number) => {
+ return await request.get({ url: `/wms/transferlog/get?id=` + id })
+}
+
+// 新增库存转移日志
+export const createTransferlog = async (data: TransferlogVO) => {
+ return await request.post({ url: `/wms/transferlog/create`, data })
+}
+
+// 修改库存转移日志
+export const updateTransferlog = async (data: TransferlogVO) => {
+ return await request.put({ url: `/wms/transferlog/update`, data })
+}
+
+// 删除库存转移日志
+export const deleteTransferlog = async (id: number) => {
+ return await request.delete({ url: `/wms/transferlog/delete?id=` + id })
+}
+
+// 导出库存转移日志 Excel
+export const exportTransferlog = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/transferlog/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/transferlog/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transferlog/get-import-template' })
+}
diff --git a/src/api/wms/transferreceiptJobDetail/index.ts b/src/api/wms/transferreceiptJobDetail/index.ts
new file mode 100644
index 0000000..f424cc4
--- /dev/null
+++ b/src/api/wms/transferreceiptJobDetail/index.ts
@@ -0,0 +1,64 @@
+import request from '@/config/axios'
+
+export interface TransferreceiptJobDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ fromLocationCode: string
+ toLocationCode: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromOwnerCode: string
+ toOwnerCode: string
+}
+
+// 查询调拨入库任务子列表
+export const getTransferreceiptJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferreceipt-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferreceipt-job-detail/page`, params })
+ }
+}
+
+// 查询调拨入库任务子详情
+export const getTransferreceiptJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/transferreceipt-job-detail/get?id=` + id })
+}
+
+// 新增调拨入库任务子
+export const createTransferreceiptJobDetail = async (data: TransferreceiptJobDetailVO) => {
+ return await request.post({ url: `/wms/transferreceipt-job-detail/create`, data })
+}
+
+// 修改调拨入库任务子
+export const updateTransferreceiptJobDetail = async (data: TransferreceiptJobDetailVO) => {
+ return await request.put({ url: `/wms/transferreceipt-job-detail/update`, data })
+}
+
+// 删除调拨入库任务子
+export const deleteTransferreceiptJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/transferreceipt-job-detail/delete?id=` + id })
+}
+
+// 导出调拨入库任务子 Excel
+export const exportTransferreceiptJobDetail = async (params) => {
+ return await request.download({ url: `/wms/transferreceipt-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transferreceipt-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/transferreceiptJobMain/index.ts b/src/api/wms/transferreceiptJobMain/index.ts
new file mode 100644
index 0000000..a86aa1f
--- /dev/null
+++ b/src/api/wms/transferreceiptJobMain/index.ts
@@ -0,0 +1,103 @@
+import request from '@/config/axios'
+
+export interface TransferreceiptJobMainVO {
+ requestNumber: string
+ toDockCode: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromAreaCodes: string
+ toAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询调拨入库任务主列表
+export const getTransferreceiptJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferreceipt-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferreceipt-job-main/page`, params })
+ }
+}
+
+// 查询调拨入库任务主详情
+export const getTransferreceiptJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/transferreceipt-job-main/get?id=` + id })
+}
+
+// 新增调拨入库任务主
+export const createTransferreceiptJobMain = async (data: TransferreceiptJobMainVO) => {
+ return await request.post({ url: `/wms/transferreceipt-job-main/create`, data })
+}
+
+// 修改调拨入库任务主
+export const updateTransferreceiptJobMain = async (data: TransferreceiptJobMainVO) => {
+ return await request.put({ url: `/wms/transferreceipt-job-main/update`, data })
+}
+
+// 删除调拨入库任务主
+export const deleteTransferreceiptJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/transferreceipt-job-main/delete?id=` + id })
+}
+// 承接调拨入库任务主
+export const acceptTransferreceiptJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/transferreceipt-job-main/accept?id=` + id })
+}
+// 取消承接调拨入库任务主
+export const abandonTransferreceiptJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/transferreceipt-job-main/abandon?id=` + id })
+}
+// 关闭调拨入库任务主
+export const closeTransferreceiptJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/transferreceipt-job-main/close?id=` + id })
+}
+
+// 导出调拨入库任务主 Excel
+export const exportTransferreceiptJobMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/transferreceipt-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/transferreceipt-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transferreceipt-job-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/transferreceiptRecordDetail/index.ts b/src/api/wms/transferreceiptRecordDetail/index.ts
new file mode 100644
index 0000000..869ea1e
--- /dev/null
+++ b/src/api/wms/transferreceiptRecordDetail/index.ts
@@ -0,0 +1,74 @@
+import request from '@/config/axios'
+
+export interface TransferreceiptRecordDetailVO {
+ fromBatch: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ toOwnerCode: string
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+ fromPackingNumber: string
+ toPackingNumber: string
+ fromContainerNumber: string
+ toContainerNumber: string
+ toBatch: string
+}
+
+// 查询调拨入库记录子列表
+export const getTransferreceiptRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferreceipt-record-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferreceipt-record-detail/page`, params })
+ }
+}
+
+// 查询调拨入库记录子详情
+export const getTransferreceiptRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/transferreceipt-record-detail/get?id=` + id })
+}
+
+// 新增调拨入库记录子
+export const createTransferreceiptRecordDetail = async (data: TransferreceiptRecordDetailVO) => {
+ return await request.post({ url: `/wms/transferreceipt-record-detail/create`, data })
+}
+
+// 修改调拨入库记录子
+export const updateTransferreceiptRecordDetail = async (data: TransferreceiptRecordDetailVO) => {
+ return await request.put({ url: `/wms/transferreceipt-record-detail/update`, data })
+}
+
+// 删除调拨入库记录子
+export const deleteTransferreceiptRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/transferreceipt-record-detail/delete?id=` + id })
+}
+
+// 导出调拨入库记录子 Excel
+export const exportTransferreceiptRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/transferreceipt-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transferreceipt-record-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/transferreceiptRecordMain/index.ts b/src/api/wms/transferreceiptRecordMain/index.ts
new file mode 100644
index 0000000..ad358f0
--- /dev/null
+++ b/src/api/wms/transferreceiptRecordMain/index.ts
@@ -0,0 +1,79 @@
+import request from '@/config/axios'
+
+export interface TransferreceiptRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ receiptDock: string
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ fromWarehouseCode: string
+ toWarehouseCode: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ code: string
+ interfaceType: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toDockCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ available: string
+}
+
+// 查询调拨入库记录主列表
+export const getTransferreceiptRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferreceipt-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferreceipt-record-main/page`, params })
+ }
+}
+
+// 查询调拨入库记录主详情
+export const getTransferreceiptRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/transferreceipt-record-main/get?id=` + id })
+}
+
+// 新增调拨入库记录主
+export const createTransferreceiptRecordMain = async (data: TransferreceiptRecordMainVO) => {
+ return await request.post({ url: `/wms/transferreceipt-record-main/create`, data })
+}
+
+// 修改调拨入库记录主
+export const updateTransferreceiptRecordMain = async (data: TransferreceiptRecordMainVO) => {
+ return await request.put({ url: `/wms/transferreceipt-record-main/update`, data })
+}
+
+// 删除调拨入库记录主
+export const deleteTransferreceiptRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/transferreceipt-record-main/delete?id=` + id })
+}
+
+// 导出调拨入库记录主 Excel
+export const exportTransferreceiptRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/transferreceipt-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/transferreceipt-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transferreceipt-record-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/transferreceiptRequestDetail/index.ts b/src/api/wms/transferreceiptRequestDetail/index.ts
new file mode 100644
index 0000000..bcaa5b2
--- /dev/null
+++ b/src/api/wms/transferreceiptRequestDetail/index.ts
@@ -0,0 +1,65 @@
+import request from '@/config/axios'
+
+export interface TransferreceiptRequestDetailVO {
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ inventoryStatus: string
+ fromOwnerCode: string
+ fromLocationCode: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ toOwnerCode: string
+}
+
+// 查询调拨入库申请子列表
+export const getTransferreceiptRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferreceipt-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferreceipt-request-detail/page`, params })
+ }
+}
+
+// 查询调拨入库申请子详情
+export const getTransferreceiptRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/transferreceipt-request-detail/get?id=` + id })
+}
+
+// 新增调拨入库申请子
+export const createTransferreceiptRequestDetail = async (data: TransferreceiptRequestDetailVO) => {
+ return await request.post({ url: `/wms/transferreceipt-request-detail/create`, data })
+}
+
+// 修改调拨入库申请子
+export const updateTransferreceiptRequestDetail = async (data: TransferreceiptRequestDetailVO) => {
+ return await request.put({ url: `/wms/transferreceipt-request-detail/update`, data })
+}
+
+// 删除调拨入库申请子
+export const deleteTransferreceiptRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/transferreceipt-request-detail/delete?id=` + id })
+}
+
+// 导出调拨入库申请子 Excel
+export const exportTransferreceiptRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/transferreceipt-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/transferreceipt-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/transferreceiptRequestMain/index.ts b/src/api/wms/transferreceiptRequestMain/index.ts
new file mode 100644
index 0000000..69f1c51
--- /dev/null
+++ b/src/api/wms/transferreceiptRequestMain/index.ts
@@ -0,0 +1,106 @@
+import request from '@/config/axios'
+
+export interface TransferreceiptRequestMainVO {
+ carrierCode: string
+ transferMode: string
+ vehiclePlateNumber: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ fromWarehouseCode: string
+ toDockCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询调拨入库申请主列表
+export const getTransferreceiptRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/transferreceipt-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/transferreceipt-request-main/page`, params })
+ }
+}
+
+// 查询调拨入库申请主详情
+export const getTransferreceiptRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/transferreceipt-request-main/get?id=` + id })
+}
+
+// 新增调拨入库申请主
+export const createTransferreceiptRequestMain = async (data: TransferreceiptRequestMainVO) => {
+ return await request.post({ url: `/wms/transferreceipt-request-main/create`, data })
+}
+
+// 修改调拨入库申请主
+export const updateTransferreceiptRequestMain = async (data: TransferreceiptRequestMainVO) => {
+ return await request.put({ url: `/wms/transferreceipt-request-main/update`, data })
+}
+
+// 删除调拨入库申请主
+export const deleteTransferreceiptRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/transferreceipt-request-main/delete?id=` + id })
+}
+
+// 导出调拨入库申请主 Excel
+export const exportTransferreceiptRequestMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/transferreceipt-request-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/transferreceipt-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ // return request.download({ url: '/wms/transferreceipt-request-main/get-import-template' })
+}
+
+// 关闭-调拨入库申请
+export const closeTransferreceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/transferreceipt-request-main/close?id=` + id })
+}
+
+// 重新添加-调拨入库申请
+export const reAddTransferreceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/transferreceipt-request-main/reAdd?id=` + id })
+}
+
+// 提交审批-调拨入库申请
+export const submitTransferreceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/transferreceipt-request-main/submit?id=` + id })
+}
+
+// 审批驳回-调拨入库申请
+export const refusedTransferreceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/transferreceipt-request-main/refused?id=` + id })
+}
+
+// 审批通过-调拨入库申请
+export const agreeTransferreceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/transferreceipt-request-main/agree?id=` + id })
+}
+
+// 处理-调拨入库申请
+export const handleTransferreceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/transferreceipt-request-main/handle?id=` + id })
+}
diff --git a/src/api/wms/unplannedissueJobDetail/index.ts b/src/api/wms/unplannedissueJobDetail/index.ts
new file mode 100644
index 0000000..62afa1f
--- /dev/null
+++ b/src/api/wms/unplannedissueJobDetail/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface UnplannedissueJobDetailVO {
+ ownerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ inventoryStatus: string
+ reason: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+}
+
+// 查询计划外出库任务子列表
+export const getUnplannedissueJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/unplannedissue-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/unplannedissue-job-detail/page`, params })
+ }
+}
+
+// 查询计划外出库任务子详情
+export const getUnplannedissueJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedissue-job-detail/get?id=` + id })
+}
+
+// 新增计划外出库任务子
+export const createUnplannedissueJobDetail = async (data: UnplannedissueJobDetailVO) => {
+ return await request.post({ url: `/wms/unplannedissue-job-detail/create`, data })
+}
+
+// 修改计划外出库任务子
+export const updateUnplannedissueJobDetail = async (data: UnplannedissueJobDetailVO) => {
+ return await request.put({ url: `/wms/unplannedissue-job-detail/update`, data })
+}
+
+// 删除计划外出库任务子
+export const deleteUnplannedissueJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/unplannedissue-job-detail/delete?id=` + id })
+}
+
+// 导出计划外出库任务子 Excel
+export const exportUnplannedissueJobDetail = async (params) => {
+ return await request.download({ url: `/wms/unplannedissue-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/unplannedissue-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/unplannedissueJobMain/index.ts b/src/api/wms/unplannedissueJobMain/index.ts
new file mode 100644
index 0000000..0415203
--- /dev/null
+++ b/src/api/wms/unplannedissueJobMain/index.ts
@@ -0,0 +1,97 @@
+import request from '@/config/axios'
+
+export interface UnplannedissueJobMainVO {
+ requestNumber: string
+ fromWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ fromAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询计划外出库任务主列表
+export const getUnplannedissueJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/unplannedissue-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/unplannedissue-job-main/page`, params })
+ }
+}
+
+// 查询计划外出库任务主详情
+export const getUnplannedissueJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedissue-job-main/get?id=` + id })
+}
+
+// 新增计划外出库任务主
+export const createUnplannedissueJobMain = async (data: UnplannedissueJobMainVO) => {
+ return await request.post({ url: `/wms/unplannedissue-job-main/create`, data })
+}
+
+// 修改计划外出库任务主
+export const updateUnplannedissueJobMain = async (data: UnplannedissueJobMainVO) => {
+ return await request.put({ url: `/wms/unplannedissue-job-main/update`, data })
+}
+
+// 删除计划外出库任务主
+export const deleteUnplannedissueJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/unplannedissue-job-main/delete?id=` + id })
+}
+// 承接计划外出库任务主
+export const acceptUnplannedissueJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/unplannedissue-job-main/accept?id=` + id })
+}
+// 取消承接计划外出库任务主
+export const abandonUnplannedissueJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/unplannedissue-job-main/abandon?id=` + id })
+}
+// 关闭计划外出库任务主
+export const closeUnplannedissueJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/unplannedissue-job-main/close?id=` + id })
+}
+
+// 导出计划外出库任务主 Excel
+export const exportUnplannedissueJobMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/unplannedissue-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/unplannedissue-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/unplannedissue-job-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/unplannedissueRecordDetail/index.ts b/src/api/wms/unplannedissueRecordDetail/index.ts
new file mode 100644
index 0000000..839ff3b
--- /dev/null
+++ b/src/api/wms/unplannedissueRecordDetail/index.ts
@@ -0,0 +1,111 @@
+import request from '@/config/axios'
+
+export interface UnplannedissueRecordDetailVO {
+ ownerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ fromLocationGroupCode: string
+ fromAreaCode: string
+ inventoryStatus: string
+ reason: string
+ singlePrice: number
+ amount: number
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+}
+
+// 查询计划外出库记录子列表
+export const getUnplannedissueRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ const dataTypeCondition = {
+ 'column':'detailDataType',
+ 'action':'==',
+ 'value':'1'
+ }
+ const cmdExists = data.filters.some(filter =>
+ filter.column === dataTypeCondition.column &&
+ filter.action === dataTypeCondition.action &&
+ filter.value === dataTypeCondition.value
+ );
+
+ if (!cmdExists) {
+ data.filters.push(dataTypeCondition)
+ }
+ return await request.post({ url: '/wms/unplannedissue-record-detail/senior', data })
+ } else {
+ params.detailDataType='1'
+ return await request.get({ url: `/wms/unplannedissue-record-detail/page`, params })
+ }
+}
+
+// 查询备件领用出库记录子列表
+export const getUnplannedissueRecordDetailPageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ const dataTypeCondition = {
+ 'column':'detailDataType',
+ 'action':'==',
+ 'value':'2'
+ }
+ const cmdExists = data.filters.some(filter =>
+ filter.column === dataTypeCondition.column &&
+ filter.action === dataTypeCondition.action &&
+ filter.value === dataTypeCondition.value
+ );
+
+ if (!cmdExists) {
+ data.filters.push(dataTypeCondition)
+ }
+ return await request.post({ url: '/wms/unplannedissue-record-detail/senior', data })
+ } else {
+ params.detailDataType='2'
+ return await request.get({ url: `/wms/unplannedissue-record-detail/page`, params })
+ }
+}
+
+// 查询计划外出库记录子详情
+export const getUnplannedissueRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedissue-record-detail/get?id=` + id })
+}
+
+// 新增计划外出库记录子
+export const createUnplannedissueRecordDetail = async (data: UnplannedissueRecordDetailVO) => {
+ return await request.post({ url: `/wms/unplannedissue-record-detail/create`, data })
+}
+
+// 修改计划外出库记录子
+export const updateUnplannedissueRecordDetail = async (data: UnplannedissueRecordDetailVO) => {
+ return await request.put({ url: `/wms/unplannedissue-record-detail/update`, data })
+}
+
+// 删除计划外出库记录子
+export const deleteUnplannedissueRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/unplannedissue-record-detail/delete?id=` + id })
+}
+
+// 导出计划外出库记录子 Excel
+export const exportUnplannedissueRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/unplannedissue-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/unplannedissue-record-detail/get-import-template' })
+}
diff --git a/src/api/wms/unplannedissueRecordMain/index.ts b/src/api/wms/unplannedissueRecordMain/index.ts
new file mode 100644
index 0000000..6aec7d2
--- /dev/null
+++ b/src/api/wms/unplannedissueRecordMain/index.ts
@@ -0,0 +1,66 @@
+import request from '@/config/axios'
+
+export interface UnplannedissueRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creatorId: string
+ fromWarehouseCode: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ fromDockCode: string
+ available: string
+}
+
+// 查询计划外出库记录主详情
+export const getUnplannedissueRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedissue-record-main/get?id=` + id })
+}
+
+// 新增计划外出库记录主
+export const createUnplannedissueRecordMain = async (data: UnplannedissueRecordMainVO) => {
+ return await request.post({ url: `/wms/unplannedissue-record-main/create`, data })
+}
+
+// 修改计划外出库记录主
+export const updateUnplannedissueRecordMain = async (data: UnplannedissueRecordMainVO) => {
+ return await request.put({ url: `/wms/unplannedissue-record-main/update`, data })
+}
+
+// 删除计划外出库记录主
+export const deleteUnplannedissueRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/unplannedissue-record-main/delete?id=` + id })
+}
+
+// 导出计划外出库记录主 Excel
+export const exportUnplannedissueRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/unplannedissue-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/unplannedissue-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/unplannedissue-record-main/get-import-template' })
+}
+
+// 撤销
+export const revoke = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedissue-record-main/revoke?id=` + id })
+}
diff --git a/src/api/wms/unplannedissueRequestDetail/index.ts b/src/api/wms/unplannedissueRequestDetail/index.ts
new file mode 100644
index 0000000..b8a444f
--- /dev/null
+++ b/src/api/wms/unplannedissueRequestDetail/index.ts
@@ -0,0 +1,106 @@
+import request from '@/config/axios'
+
+export interface UnplannedissueRequestDetailVO {
+ fromOwnerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ fromLocationCode: string
+ inventoryStatus: string
+ reason: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+}
+
+// 查询计划外出库申请子列表
+export const getUnplannedissueRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ const dataTypeCondition = {
+ 'column':'detailDataType',
+ 'action':'==',
+ 'value':'1'
+ }
+ const cmdExists = data.filters.some(filter =>
+ filter.column === dataTypeCondition.column &&
+ filter.action === dataTypeCondition.action &&
+ filter.value === dataTypeCondition.value
+ );
+
+ if (!cmdExists) {
+ data.filters.push(dataTypeCondition)
+ }
+ return await request.post({ url: '/wms/unplannedissue-request-detail/senior', data })
+ } else {
+ params.detailDataType='1'
+ return await request.get({ url: `/wms/unplannedissue-request-detail/page`, params })
+ }
+}
+
+// 查询备件领用列表
+export const getUnplannedissueRequestDetailPageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ const dataTypeCondition = {
+ 'column':'detailDataType',
+ 'action':'==',
+ 'value':'2'
+ }
+ const cmdExists = data.filters.some(filter =>
+ filter.column === dataTypeCondition.column &&
+ filter.action === dataTypeCondition.action &&
+ filter.value === dataTypeCondition.value
+ );
+
+ if (!cmdExists) {
+ data.filters.push(dataTypeCondition)
+ }
+ return await request.post({ url: '/wms/unplannedissue-request-detail/senior', data })
+ } else {
+ params.detailDataType='2'
+ return await request.get({ url: `/wms/unplannedissue-request-detail/page`, params })
+ }
+}
+
+// 查询计划外出库申请子详情
+export const getUnplannedissueRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedissue-request-detail/get?id=` + id })
+}
+
+// 新增计划外出库申请子
+export const createUnplannedissueRequestDetail = async (data: UnplannedissueRequestDetailVO) => {
+ return await request.post({ url: `/wms/unplannedissue-request-detail/create`, data })
+}
+
+// 修改计划外出库申请子
+export const updateUnplannedissueRequestDetail = async (data: UnplannedissueRequestDetailVO) => {
+ return await request.put({ url: `/wms/unplannedissue-request-detail/update`, data })
+}
+
+// 删除计划外出库申请子
+export const deleteUnplannedissueRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/unplannedissue-request-detail/delete?id=` + id })
+}
+
+// 导出计划外出库申请子 Excel
+export const exportUnplannedissueRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/unplannedissue-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/unplannedissue-request-detail/get-import-template' })
+}
diff --git a/src/api/wms/unplannedissueRequestMain/index.ts b/src/api/wms/unplannedissueRequestMain/index.ts
new file mode 100644
index 0000000..2137666
--- /dev/null
+++ b/src/api/wms/unplannedissueRequestMain/index.ts
@@ -0,0 +1,149 @@
+import request from '@/config/axios'
+
+export interface UnplannedissueRequestMainVO {
+ fromWarehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ concurrencyStamp: string
+ fromAreaTypes: string
+ fromAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询计划外出库申请主列表
+export const getUnplannedissueRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ const dataTypeCondition = {
+ 'column':'dataType',
+ 'action':'==',
+ 'value':'1'
+ }
+ const cmdExists = data.filters.some(filter =>
+ filter.column === dataTypeCondition.column &&
+ filter.action === dataTypeCondition.action &&
+ filter.value === dataTypeCondition.value
+ );
+
+ if (!cmdExists) {
+ data.filters.push(dataTypeCondition)
+ }
+ return await request.post({ url: '/wms/unplannedissue-request-main/senior', data })
+ } else {
+ params.dataType='1'
+ return await request.get({ url: `/wms/unplannedissue-request-main/page`, params })
+ }
+}
+
+// 查询计划外出库申请主详情
+export const getUnplannedissueRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedissue-request-main/get?id=` + id })
+}
+
+// 新增计划外出库申请主
+export const createUnplannedissueRequestMain = async (data: UnplannedissueRequestMainVO) => {
+ return await request.post({ url: `/wms/unplannedissue-request-main/create`, data })
+}
+
+// 修改计划外出库申请主
+export const updateUnplannedissueRequestMain = async (data: UnplannedissueRequestMainVO) => {
+ return await request.put({ url: `/wms/unplannedissue-request-main/update`, data })
+}
+
+// 删除计划外出库申请主
+export const deleteUnplannedissueRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/unplannedissue-request-main/delete?id=` + id })
+}
+
+// 导出计划外出库申请主 Excel
+export const exportUnplannedissueRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/unplannedissue-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/unplannedissue-request-main/export-excel`, params })
+ }
+}
+
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/unplannedissue-request-main/get-import-template' })
+}
+
+
+// 关闭-计划外出库申请
+export const closeUnplannedissueRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedissue-request-main/close?id=` + id })
+}
+
+// 重新添加-计划外出库申请
+export const reAddUnplannedissueRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedissue-request-main/reAdd?id=` + id })
+}
+
+// 提交审批-计划外出库申请
+export const submitUnplannedissueRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedissue-request-main/submit?id=` + id })
+}
+
+// 审批驳回-计划外出库申请
+export const refusedUnplannedissueRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedissue-request-main/refused?id=` + id })
+}
+
+// 审批通过-计划外出库申请
+export const agreeUnplannedissueRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedissue-request-main/agree?id=` + id })
+}
+
+// 处理-计划外出库申请
+export const handleUnplannedissueRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedissue-request-main/handle?id=` + id })
+}
+
+
+// 查询备件领用主列表
+export const getUnplannedissueRequestMainPageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ const dataTypeCondition = {
+ 'column':'detailDataType',
+ 'action':'==',
+ 'value':'2'
+ }
+ const cmdExists = data.filters.some(filter =>
+ filter.column === dataTypeCondition.column &&
+ filter.action === dataTypeCondition.action &&
+ filter.value === dataTypeCondition.value
+ );
+
+ if (!cmdExists) {
+ data.filters.push(dataTypeCondition)
+ }
+ return await request.post({ url: '/wms/unplannedissue-request-main/senior', data })
+ } else {
+ params.detailDataType='2'
+ return await request.get({ url: `/wms/unplannedissue-request-main/page`, params })
+ }
+}
+
+
+// 备件领用下载用户导入模板
+export const spareImportTemplate = () => {
+ return request.download({ url: '/wms/unplannedissue-request-main/get-import-template-spare' })
+}
diff --git a/src/api/wms/unplannedreceiptJobDetail/index.ts b/src/api/wms/unplannedreceiptJobDetail/index.ts
new file mode 100644
index 0000000..450f813
--- /dev/null
+++ b/src/api/wms/unplannedreceiptJobDetail/index.ts
@@ -0,0 +1,67 @@
+import request from '@/config/axios'
+
+export interface UnplannedreceiptJobDetailVO {
+ ownerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ altBatch: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ toLocationCode: string
+ inventoryStatus: string
+ reason: string
+ itemCode: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ number: string
+ remark: string
+ createTime: Date
+ creator: string
+}
+
+// 查询计划外入库任务子列表
+export const getUnplannedreceiptJobDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/unplannedreceipt-job-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/unplannedreceipt-job-detail/page`, params })
+ }
+}
+
+// 查询计划外入库任务子详情
+export const getUnplannedreceiptJobDetail = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedreceipt-job-detail/get?id=` + id })
+}
+
+// 新增计划外入库任务子
+export const createUnplannedreceiptJobDetail = async (data: UnplannedreceiptJobDetailVO) => {
+ return await request.post({ url: `/wms/unplannedreceipt-job-detail/create`, data })
+}
+
+// 修改计划外入库任务子
+export const updateUnplannedreceiptJobDetail = async (data: UnplannedreceiptJobDetailVO) => {
+ return await request.put({ url: `/wms/unplannedreceipt-job-detail/update`, data })
+}
+
+// 删除计划外入库任务子
+export const deleteUnplannedreceiptJobDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/unplannedreceipt-job-detail/delete?id=` + id })
+}
+
+// 导出计划外入库任务子 Excel
+export const exportUnplannedreceiptJobDetail = async (params) => {
+ return await request.download({ url: `/wms/unplannedreceipt-job-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/unplannedreceipt-job-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/unplannedreceiptJobMain/index.ts b/src/api/wms/unplannedreceiptJobMain/index.ts
new file mode 100644
index 0000000..fd2c917
--- /dev/null
+++ b/src/api/wms/unplannedreceiptJobMain/index.ts
@@ -0,0 +1,98 @@
+import request from '@/config/axios'
+
+export interface UnplannedreceiptJobMainVO {
+ requestNumber: string
+ toWarehouseCode: string
+ requestTime: Date
+ requestDueTime: Date
+ status: string
+ expiredTime: Date
+ updateTime: Date
+ updater: string
+ jobStageStatus: string
+ priority: number
+ priorityIncrement: number
+ departmentCode: string
+ acceptUserId: string
+ acceptTime: Date
+ completeUserId: string
+ completeTime: Date
+ fromAreaTypes: string
+ toAreaTypes: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ toAreaCodes: string
+ autoComplete: string
+ allowModifyLocation: string
+ allowModifyQty: string
+ allowBiggerQty: string
+ allowSmallerQty: string
+ allowModifyInventoryStatus: string
+ allowContinuousScanning: string
+ allowPartialComplete: string
+ allowModifyBatch: string
+ allowModifyPackingNumber: string
+}
+
+// 查询计划外入库任务主列表
+export const getUnplannedreceiptJobMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/unplannedreceipt-job-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/unplannedreceipt-job-main/page`, params })
+ }
+}
+
+// 查询计划外入库任务主详情
+export const getUnplannedreceiptJobMain = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedreceipt-job-main/get?id=` + id })
+}
+
+// 新增计划外入库任务主
+export const createUnplannedreceiptJobMain = async (data: UnplannedreceiptJobMainVO) => {
+ return await request.post({ url: `/wms/unplannedreceipt-job-main/create`, data })
+}
+
+// 修改计划外入库任务主
+export const updateUnplannedreceiptJobMain = async (data: UnplannedreceiptJobMainVO) => {
+ return await request.put({ url: `/wms/unplannedreceipt-job-main/update`, data })
+}
+
+// 删除计划外入库任务主
+export const deleteUnplannedreceiptJobMain = async (id: number) => {
+ return await request.delete({ url: `/wms/unplannedreceipt-job-main/delete?id=` + id })
+}
+
+// 承接计划外入库任务主
+export const acceptUnplannedreceiptJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/unplannedreceipt-job-main/accept?id=` + id })
+}
+// 取消承接计划外入库任务主
+export const abandonUnplannedreceiptJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/unplannedreceipt-job-main/abandon?id=` + id })
+}
+// 关闭计划外入库任务主
+export const closeUnplannedreceiptJobMain = async (id: number) => {
+ return await request.put({ url: `/wms/unplannedreceipt-job-main/close?id=` + id })
+}
+
+// 导出计划外入库任务主 Excel
+export const exportUnplannedreceiptJobMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/unplannedreceipt-job-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/unplannedreceipt-job-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/unplannedreceipt-job-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/unplannedreceiptRecordDetail/index.ts b/src/api/wms/unplannedreceiptRecordDetail/index.ts
new file mode 100644
index 0000000..28905fb
--- /dev/null
+++ b/src/api/wms/unplannedreceiptRecordDetail/index.ts
@@ -0,0 +1,116 @@
+import request from '@/config/axios'
+
+export interface UnplannedreceiptRecordDetailVO {
+ ownerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ altBatch: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ toLocationCode: string
+ toLocationGroupCode: string
+ toAreaCode: string
+ inventoryStatus: string
+ reason: string
+ singlePrice: number
+ amount: number
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ code: string
+ interfaceType: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ jobDetailId: string
+}
+
+// 查询计划外入库记录子列表
+export const getUnplannedreceiptRecordDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ const dataTypeCondition = {
+ 'column':'detailDataType',
+ 'action':'==',
+ 'value':'1'
+ }
+ const cmdExists = data.filters.some(filter =>
+ filter.column === dataTypeCondition.column &&
+ filter.action === dataTypeCondition.action &&
+ filter.value === dataTypeCondition.value
+ );
+
+ if (!cmdExists) {
+ data.filters.push(dataTypeCondition)
+ }
+ return await request.post({ url: '/wms/unplannedreceipt-record-detail/senior', data })
+ } else {
+ params.detailDataType='1'
+ return await request.get({ url: `/wms/unplannedreceipt-record-detail/page`, params })
+ }
+}
+
+
+// 查询备件退库记录子列表
+export const getUnplannedreceiptRecordDetailPageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ const dataTypeCondition = {
+ 'column':'detailDataType',
+ 'action':'==',
+ 'value':'2'
+ }
+ const cmdExists = data.filters.some(filter =>
+ filter.column === dataTypeCondition.column &&
+ filter.action === dataTypeCondition.action &&
+ filter.value === dataTypeCondition.value
+ );
+
+ if (!cmdExists) {
+ data.filters.push(dataTypeCondition)
+ }
+ return await request.post({ url: '/wms/unplannedreceipt-record-detail/senior', data })
+ } else {
+ params.detailDataType='2'
+ return await request.get({ url: `/wms/unplannedreceipt-record-detail/page`, params })
+ }
+}
+
+// 查询计划外入库记录子详情
+export const getUnplannedreceiptRecordDetail = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedreceipt-record-detail/get?id=` + id })
+}
+
+// 新增计划外入库记录子
+export const createUnplannedreceiptRecordDetail = async (data: UnplannedreceiptRecordDetailVO) => {
+ return await request.post({ url: `/wms/unplannedreceipt-record-detail/create`, data })
+}
+
+// 修改计划外入库记录子
+export const updateUnplannedreceiptRecordDetail = async (data: UnplannedreceiptRecordDetailVO) => {
+ return await request.put({ url: `/wms/unplannedreceipt-record-detail/update`, data })
+}
+
+// 删除计划外入库记录子
+export const deleteUnplannedreceiptRecordDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/unplannedreceipt-record-detail/delete?id=` + id })
+}
+
+// 导出计划外入库记录子 Excel
+export const exportUnplannedreceiptRecordDetail = async (params) => {
+ return await request.download({ url: `/wms/unplannedreceipt-record-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/unplannedreceipt-record-detail/get-import-template' })
+}
diff --git a/src/api/wms/unplannedreceiptRecordMain/index.ts b/src/api/wms/unplannedreceiptRecordMain/index.ts
new file mode 100644
index 0000000..482b65e
--- /dev/null
+++ b/src/api/wms/unplannedreceiptRecordMain/index.ts
@@ -0,0 +1,76 @@
+import request from '@/config/axios'
+
+export interface UnplannedreceiptRecordMainVO {
+ requestNumber: string
+ jobNumber: string
+ outTransactionType: string
+ inTransactionType: string
+ executeTime: Date
+ activeDate: Date
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ interfaceType: string
+ code: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ toWarehouseCode: string
+ toAreaTypes: string
+ toAreaCodes: string
+ available: string
+}
+
+// 查询计划外入库记录主列表
+export const getUnplannedreceiptRecordMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/unplannedreceipt-record-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/unplannedreceipt-record-main/page`, params })
+ }
+}
+
+// 查询计划外入库记录主详情
+export const getUnplannedreceiptRecordMain = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedreceipt-record-main/get?id=` + id })
+}
+
+// 新增计划外入库记录主
+export const createUnplannedreceiptRecordMain = async (data: UnplannedreceiptRecordMainVO) => {
+ return await request.post({ url: `/wms/unplannedreceipt-record-main/create`, data })
+}
+
+// 修改计划外入库记录主
+export const updateUnplannedreceiptRecordMain = async (data: UnplannedreceiptRecordMainVO) => {
+ return await request.put({ url: `/wms/unplannedreceipt-record-main/update`, data })
+}
+
+// 删除计划外入库记录主
+export const deleteUnplannedreceiptRecordMain = async (id: number) => {
+ return await request.delete({ url: `/wms/unplannedreceipt-record-main/delete?id=` + id })
+}
+
+// 导出计划外入库记录主 Excel
+export const exportUnplannedreceiptRecordMain = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.downloadPost({ url: '/wms/unplannedreceipt-record-main/export-excel-senior', data })
+ } else {
+ return await request.download({ url: `/wms/unplannedreceipt-record-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/unplannedreceipt-record-main/get-import-template' })
+}
+
+// 撤销
+export const revoke = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedreceipt-record-main/revoke?id=` + id })
+}
\ No newline at end of file
diff --git a/src/api/wms/unplannedreceiptRequestDetail/index.ts b/src/api/wms/unplannedreceiptRequestDetail/index.ts
new file mode 100644
index 0000000..f9268af
--- /dev/null
+++ b/src/api/wms/unplannedreceiptRequestDetail/index.ts
@@ -0,0 +1,120 @@
+import request from '@/config/axios'
+
+export interface UnplannedreceiptRequestDetailVO {
+ toOwnerCode: string
+ packingNumber: string
+ containerNumber: string
+ batch: string
+ altBatch: string
+ arriveDate: Date
+ produceDate: Date
+ expireDate: Date
+ toLocationCode: string
+ inventoryStatus: string
+ reason: string
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ itemName: string
+ itemDesc1: string
+ itemDesc2: string
+ projectCode: string
+ qty: number
+ uom: string
+ updateTime: Date
+ updater: string
+}
+
+// 查询计划外入库申请子列表
+export const getUnplannedreceiptRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ const dataTypeCondition = {
+ 'column':'detailDataType',
+ 'action':'==',
+ 'value':'1'
+ }
+ const cmdExists = data.filters.some(filter =>
+ filter.column === dataTypeCondition.column &&
+ filter.action === dataTypeCondition.action &&
+ filter.value === dataTypeCondition.value
+ );
+
+ if (!cmdExists) {
+ data.filters.push(dataTypeCondition)
+ }
+ return await request.post({ url: '/wms/unplannedreceipt-request-detail/senior', data })
+ } else {
+ params.detailDataType='1'
+ return await request.get({ url: `/wms/unplannedreceipt-request-detail/page`, params })
+ }
+}
+
+// 查询维修备件退库列表
+export const getUnplannedreceiptRequestDetailPageSpare = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ const dataTypeCondition = {
+ 'column':'detailDataType',
+ 'action':'==',
+ 'value':'2'
+ }
+ const cmdExists = data.filters.some(filter =>
+ filter.column === dataTypeCondition.column &&
+ filter.action === dataTypeCondition.action &&
+ filter.value === dataTypeCondition.value
+ );
+
+ if (!cmdExists) {
+ data.filters.push(dataTypeCondition)
+ }
+ return await request.post({ url: '/wms/unplannedreceipt-request-detail/senior', data })
+ } else {
+ params.detailDataType='2'
+ return await request.get({ url: `/wms/unplannedreceipt-request-detail/page`, params })
+ }
+}
+
+// 查询计划外入库申请子打印标签
+export const getUnplannedreceiptRequestDetailPageCreateLabel = async (params) => {
+ return await request.get({ url: `/wms/unplannedreceipt-request-detail/pageCreateLabel`, params })
+}
+
+// 查询计划外入库申请子详情
+export const getUnplannedreceiptRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedreceipt-request-detail/get?id=` + id })
+}
+
+// 新增计划外入库申请子
+export const createUnplannedreceiptRequestDetail = async (data: UnplannedreceiptRequestDetailVO) => {
+ return await request.post({ url: `/wms/unplannedreceipt-request-detail/create`, data })
+}
+
+// 修改计划外入库申请子
+export const updateUnplannedreceiptRequestDetail = async (data: UnplannedreceiptRequestDetailVO) => {
+ return await request.put({ url: `/wms/unplannedreceipt-request-detail/update`, data })
+}
+
+// 删除计划外入库申请子
+export const deleteUnplannedreceiptRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/unplannedreceipt-request-detail/delete?id=` + id })
+}
+
+// 导出计划外入库申请子 Excel
+export const exportUnplannedreceiptRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/unplannedreceipt-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/unplannedreceipt-request-detail/get-import-template' })
+}
+
+// 创建包装信息后更新子表数据packingNumber
+export const updateDetailPackingNumber = async (id: number, number) => {
+ return await request.put({ url: '/wms/unplannedreceipt-request-detail/updateDetailPackingNumber?id=' + id + '&number=' + number })
+}
diff --git a/src/api/wms/unplannedreceiptRequestMain/index.ts b/src/api/wms/unplannedreceiptRequestMain/index.ts
new file mode 100644
index 0000000..23f034a
--- /dev/null
+++ b/src/api/wms/unplannedreceiptRequestMain/index.ts
@@ -0,0 +1,102 @@
+import request from '@/config/axios'
+
+export interface UnplannedreceiptRequestMainVO {
+ toWarehouseCode: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ requestTime: Date
+ dueTime: Date
+ departmentCode: string
+ status: string
+ updateTime: Date
+ updater: string
+ toAreaTypes: string
+ toAreaCodes: string
+ autoCommit: string
+ autoAgree: string
+ autoExecute: string
+ directCreateRecord: string
+}
+
+// 查询计划外入库申请主列表
+export const getUnplannedreceiptRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/unplannedreceipt-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/unplannedreceipt-request-main/page`, params })
+ }
+}
+
+// 查询计划外入库申请主详情
+export const getUnplannedreceiptRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/unplannedreceipt-request-main/get?id=` + id })
+}
+
+// 新增计划外入库申请主
+export const createUnplannedreceiptRequestMain = async (data: UnplannedreceiptRequestMainVO) => {
+ return await request.post({ url: `/wms/unplannedreceipt-request-main/create`, data })
+}
+
+// 修改计划外入库申请主
+export const updateUnplannedreceiptRequestMain = async (data: UnplannedreceiptRequestMainVO) => {
+ return await request.put({ url: `/wms/unplannedreceipt-request-main/update`, data })
+}
+
+// 删除计划外入库申请主
+export const deleteUnplannedreceiptRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/unplannedreceipt-request-main/delete?id=` + id })
+}
+
+// 导出计划外入库申请主 Excel
+export const exportUnplannedreceiptRequestMain = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/unplannedreceipt-request-main/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/unplannedreceipt-request-main/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/unplannedreceipt-request-main/get-import-template' })
+}
+
+// 关闭-计划外入库申请
+export const closeUnplannedreceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedreceipt-request-main/close?id=` + id })
+}
+
+// 重新添加-计划外入库申请
+export const reAddUnplannedreceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedreceipt-request-main/reAdd?id=` + id })
+}
+
+// 提交审批-计划外入库申请
+export const submitUnplannedreceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedreceipt-request-main/submit?id=` + id })
+}
+
+// 审批驳回-计划外入库申请
+export const refusedUnplannedreceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedreceipt-request-main/refused?id=` + id })
+}
+
+// 审批通过-计划外入库申请
+export const agreeUnplannedreceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedreceipt-request-main/agree?id=` + id })
+}
+
+// 处理-计划外入库申请
+export const handleUnplannedreceiptRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedreceipt-request-main/handle?id=` + id })
+}
+
+export const handleSparepartReturnRequestMain = async (id) => {
+ return await request.put({ url: `/wms/unplannedreceipt-request-main/handleBack?id=` + id })
+}
diff --git a/src/api/wms/warehouse/index.ts b/src/api/wms/warehouse/index.ts
new file mode 100644
index 0000000..51e6eb7
--- /dev/null
+++ b/src/api/wms/warehouse/index.ts
@@ -0,0 +1,83 @@
+import request from '@/config/axios'
+
+export interface WarehouseVO {
+ code: string
+ name: string
+ description: string
+ type: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询仓库列表
+export const getWarehousePage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/warehouse/senior', data })
+ } else {
+ return await request.get({ url: `/wms/warehouse/page`, params })
+ }
+}
+
+// 校验仓库
+export const verifyWarehouse = async (params) => {
+ return await request.get({ url: `/wms/warehouse/ListByCode`, params })
+}
+
+
+// 查询仓库所有列表
+export const getWarehouseList = async (params) => {
+ return await request.get({ url: `/wms/warehouse/list`, params })
+}
+// 查询仓库详情
+export const getWarehouse = async (id: number) => {
+ return await request.get({ url: `/wms/warehouse/get?id=` + id })
+}
+
+// 新增仓库
+export const createWarehouse = async (data: WarehouseVO) => {
+ return await request.post({ url: `/wms/warehouse/create`, data })
+}
+
+// 修改仓库
+export const updateWarehouse = async (data: WarehouseVO) => {
+ return await request.put({ url: `/wms/warehouse/update`, data })
+}
+
+// 删除仓库
+export const deleteWarehouse = async (id: number) => {
+ return await request.delete({ url: `/wms/warehouse/delete?id=` + id })
+}
+
+// 导出仓库 Excel
+export const exportWarehouse = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/warehouse/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/warehouse/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/warehouse/get-import-template' })
+}
+
+// 查询仓库列表
+export const pageBusinessTypeToWarehouse = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/warehouse/pageBusinessTypeToWarehouseSenior', data })
+ } else {
+ return await request.get({ url: `/wms/warehouse/pageBusinessTypeToWarehouse`, params })
+ }
+}
+// 根据code获取数据列表
+export const getWarehouseByCodes = async (params) => {
+ return await request.get({ url: `/wms/warehouse/listByCodes`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/workDetail/index.ts b/src/api/wms/workDetail/index.ts
new file mode 100644
index 0000000..2c5a1c8
--- /dev/null
+++ b/src/api/wms/workDetail/index.ts
@@ -0,0 +1,47 @@
+import request from '@/config/axios'
+
+export interface WorkDetailVO {
+ lineNumber: string
+ projectCode: string
+ finishedQty: number
+ number: string
+ itemCode: string
+ remark: string
+ createTime: Date
+ creator: string
+ orderQty: number
+ uom: string
+ updateTime: Date
+ updater: string
+ available: string
+}
+
+// 查询生产订单子列表
+export const getWorkDetailPage = async (params) => {
+ return await request.get({ url: `/wms/work-detail/page`, params })
+}
+
+// 查询生产订单子详情
+export const getWorkDetail = async (id: number) => {
+ return await request.get({ url: `/wms/work-detail/get?id=` + id })
+}
+
+// 新增生产订单子
+export const createWorkDetail = async (data: WorkDetailVO) => {
+ return await request.post({ url: `/wms/work-detail/create`, data })
+}
+
+// 修改生产订单子
+export const updateWorkDetail = async (data: WorkDetailVO) => {
+ return await request.put({ url: `/wms/work-detail/update`, data })
+}
+
+// 删除生产订单子
+export const deleteWorkDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/work-detail/delete?id=` + id })
+}
+
+// 导出生产订单子 Excel
+export const exportWorkDetail = async (params) => {
+ return await request.download({ url: `/wms/work-detail/export-excel`, params })
+}
diff --git a/src/api/wms/workMain/index.ts b/src/api/wms/workMain/index.ts
new file mode 100644
index 0000000..6465bc7
--- /dev/null
+++ b/src/api/wms/workMain/index.ts
@@ -0,0 +1,59 @@
+import request from '@/config/axios'
+
+export interface WorkMainVO {
+ customerCode: string
+ type: string
+ orderDate: Date
+ dueDate: Date
+ version: string
+ number: string
+ businessType: string
+ remark: string
+ createTime: Date
+ creator: string
+ updateTime: Date
+ updater: string
+ currentStage: number
+ available: string
+}
+
+// 查询生产订单主列表
+export const getWorkMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/work-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/work-main/page`, params })
+ }
+}
+
+// 查询生产订单主详情
+export const getWorkMain = async (id: number) => {
+ return await request.get({ url: `/wms/work-main/get?id=` + id })
+}
+
+// 新增生产订单主
+export const createWorkMain = async (data: WorkMainVO) => {
+ return await request.post({ url: `/wms/work-main/create`, data })
+}
+
+// 修改生产订单主
+export const updateWorkMain = async (data: WorkMainVO) => {
+ return await request.put({ url: `/wms/work-main/update`, data })
+}
+
+// 删除生产订单主
+export const deleteWorkMain = async (id: number) => {
+ return await request.delete({ url: `/wms/work-main/delete?id=` + id })
+}
+
+// 导出生产订单主 Excel
+export const exportWorkMain = async (params) => {
+ return await request.download({ url: `/wms/work-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/work-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/workshop/index.ts b/src/api/wms/workshop/index.ts
new file mode 100644
index 0000000..e2a2328
--- /dev/null
+++ b/src/api/wms/workshop/index.ts
@@ -0,0 +1,63 @@
+import request from '@/config/axios'
+
+export interface WorkshopVO {
+ code: string
+ name: string
+ description: string
+ type: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询车间列表
+export const getWorkshopPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/workshop/senior', data })
+ } else {
+ return await request.get({ url: `/wms/workshop/page`, params })
+ }
+}
+
+// 查询车间详情
+export const getWorkshop = async (id: number) => {
+ return await request.get({ url: `/wms/workshop/get?id=` + id })
+}
+
+// 新增车间
+export const createWorkshop = async (data: WorkshopVO) => {
+ return await request.post({ url: `/wms/workshop/create`, data })
+}
+
+// 修改车间
+export const updateWorkshop = async (data: WorkshopVO) => {
+ return await request.put({ url: `/wms/workshop/update`, data })
+}
+
+// 删除车间
+export const deleteWorkshop = async (id: number) => {
+ return await request.delete({ url: `/wms/workshop/delete?id=` + id })
+}
+
+// 导出车间 Excel
+export const exportWorkshop = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/workshop/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/workshop/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/workshop/get-import-template' })
+}
+
+// 查询车间列表
+export const getWorkshopNoPage = async (params) => {
+ return await request.get({ url: `/wms/workshop/noPage`, params })
+}
\ No newline at end of file
diff --git a/src/api/wms/workstation/index.ts b/src/api/wms/workstation/index.ts
new file mode 100644
index 0000000..499cf69
--- /dev/null
+++ b/src/api/wms/workstation/index.ts
@@ -0,0 +1,84 @@
+import request from '@/config/axios'
+
+export interface WorkstationVO {
+ code: string
+ name: string
+ description: string
+ type: string
+ workshopCode: string
+ productionLineCode: string
+ rawLocationCode: string
+ fgLocationCode: string
+ available: number
+ activeTime: Date
+ expireTime: Date
+ remark: string
+}
+
+// 查询工位列表
+export const getWorkstationPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/workstation/senior', data })
+ } else {
+ return await request.get({ url: `/wms/workstation/page`, params })
+ }
+}
+
+// 查询工位详情
+export const getWorkstation = async (id: number) => {
+ return await request.get({ url: `/wms/workstation/get?id=` + id })
+}
+
+// 新增工位
+export const createWorkstation = async (data: WorkstationVO) => {
+ return await request.post({ url: `/wms/workstation/create`, data })
+}
+
+// 修改工位
+export const updateWorkstation = async (data: WorkstationVO) => {
+ return await request.put({ url: `/wms/workstation/update`, data })
+}
+
+// 删除工位
+export const deleteWorkstation = async (id: number) => {
+ return await request.delete({ url: `/wms/workstation/delete?id=` + id })
+}
+
+// 导出工位 Excel
+export const exportWorkstation = async (params) => {
+ if (params.isSearch) {
+ const data = {...params}
+ return await request.downloadPost({ url: `/wms/workstation/export-excel-senior`, data })
+ } else {
+ return await request.download({ url: `/wms/workstation/export-excel`, params })
+ }
+}
+
+// 下载用户导入模板
+export const importWorkstationTemplate = () => {
+ return request.download({ url: '/wms/workstation/get-import-template' })
+}
+
+// 根据库区筛选出的库位分页
+export const selectAreaTypeToLocation = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return request.post({ url: '/wms/workstation/pageAreaToLocationSenior', data })
+ } else {
+ return await request.get({ url: `/wms/workstation/pageAreaToLocation`, params })
+ }
+}
+
+
+// 查询工位列表
+export const getWorkstationNoPage = async (params) => {
+ return await request.get({ url: `/wms/workstation/noPage`, params })
+}
+
+// 根据code获取数据列表
+export const getWorkstationByCodes = async (params) => {
+ return await request.get({ url: `/wms/workstation/listByCodes`, params })
+}
\ No newline at end of file
diff --git a/src/assets/imgs/Eyes-closed.png b/src/assets/imgs/Eyes-closed.png
new file mode 100644
index 0000000..450f114
Binary files /dev/null and b/src/assets/imgs/Eyes-closed.png differ
diff --git a/src/assets/imgs/avatar.gif b/src/assets/imgs/avatar.gif
new file mode 100644
index 0000000..fdbd32c
Binary files /dev/null and b/src/assets/imgs/avatar.gif differ
diff --git a/src/assets/imgs/avatar.jpg b/src/assets/imgs/avatar.jpg
new file mode 100644
index 0000000..d46a70a
Binary files /dev/null and b/src/assets/imgs/avatar.jpg differ
diff --git a/src/assets/imgs/code.png b/src/assets/imgs/code.png
new file mode 100644
index 0000000..ac4c16f
Binary files /dev/null and b/src/assets/imgs/code.png differ
diff --git a/src/assets/imgs/eye.png b/src/assets/imgs/eye.png
new file mode 100644
index 0000000..e149f7c
Binary files /dev/null and b/src/assets/imgs/eye.png differ
diff --git a/src/assets/imgs/icon1.png b/src/assets/imgs/icon1.png
new file mode 100644
index 0000000..8fb718a
Binary files /dev/null and b/src/assets/imgs/icon1.png differ
diff --git a/src/assets/imgs/icon2.png b/src/assets/imgs/icon2.png
new file mode 100644
index 0000000..9f8ed61
Binary files /dev/null and b/src/assets/imgs/icon2.png differ
diff --git a/src/assets/imgs/icon3.png b/src/assets/imgs/icon3.png
new file mode 100644
index 0000000..2c3e201
Binary files /dev/null and b/src/assets/imgs/icon3.png differ
diff --git a/src/assets/imgs/icon4.png b/src/assets/imgs/icon4.png
new file mode 100644
index 0000000..64062f6
Binary files /dev/null and b/src/assets/imgs/icon4.png differ
diff --git a/src/assets/imgs/icon5.png b/src/assets/imgs/icon5.png
new file mode 100644
index 0000000..935e296
Binary files /dev/null and b/src/assets/imgs/icon5.png differ
diff --git a/src/assets/imgs/icon6.png b/src/assets/imgs/icon6.png
new file mode 100644
index 0000000..976d00b
Binary files /dev/null and b/src/assets/imgs/icon6.png differ
diff --git a/src/assets/imgs/login-bg.png b/src/assets/imgs/login-bg.png
new file mode 100644
index 0000000..a0e6f1c
Binary files /dev/null and b/src/assets/imgs/login-bg.png differ
diff --git a/src/assets/imgs/login-bg1.png b/src/assets/imgs/login-bg1.png
new file mode 100644
index 0000000..beb68b9
Binary files /dev/null and b/src/assets/imgs/login-bg1.png differ
diff --git a/src/assets/imgs/logo.png b/src/assets/imgs/logo.png
new file mode 100644
index 0000000..87c1d32
Binary files /dev/null and b/src/assets/imgs/logo.png differ
diff --git a/src/assets/imgs/logo1.png b/src/assets/imgs/logo1.png
new file mode 100644
index 0000000..0dcd2fa
Binary files /dev/null and b/src/assets/imgs/logo1.png differ
diff --git a/src/assets/imgs/logo_w.png b/src/assets/imgs/logo_w.png
new file mode 100644
index 0000000..5d8b3fe
Binary files /dev/null and b/src/assets/imgs/logo_w.png differ
diff --git a/src/assets/imgs/logo_white.png b/src/assets/imgs/logo_white.png
new file mode 100644
index 0000000..fe3f264
Binary files /dev/null and b/src/assets/imgs/logo_white.png differ
diff --git a/src/assets/imgs/logo_white.svg b/src/assets/imgs/logo_white.svg
new file mode 100644
index 0000000..f037407
--- /dev/null
+++ b/src/assets/imgs/logo_white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/imgs/logo_white1.png b/src/assets/imgs/logo_white1.png
new file mode 100644
index 0000000..a3a435c
Binary files /dev/null and b/src/assets/imgs/logo_white1.png differ
diff --git a/src/assets/imgs/logo_white_blue.png b/src/assets/imgs/logo_white_blue.png
new file mode 100644
index 0000000..5f8214f
Binary files /dev/null and b/src/assets/imgs/logo_white_blue.png differ
diff --git a/src/assets/imgs/logo_white_btn.png b/src/assets/imgs/logo_white_btn.png
new file mode 100644
index 0000000..e980cce
Binary files /dev/null and b/src/assets/imgs/logo_white_btn.png differ
diff --git a/src/assets/imgs/profile.jpg b/src/assets/imgs/profile.jpg
new file mode 100644
index 0000000..e4bcf87
Binary files /dev/null and b/src/assets/imgs/profile.jpg differ
diff --git a/src/assets/imgs/wechat.png b/src/assets/imgs/wechat.png
new file mode 100644
index 0000000..6afc5e4
Binary files /dev/null and b/src/assets/imgs/wechat.png differ
diff --git a/src/assets/svgs/403.svg b/src/assets/svgs/403.svg
new file mode 100644
index 0000000..4500596
--- /dev/null
+++ b/src/assets/svgs/403.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/404.svg b/src/assets/svgs/404.svg
new file mode 100644
index 0000000..5244d8d
--- /dev/null
+++ b/src/assets/svgs/404.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/500.svg b/src/assets/svgs/500.svg
new file mode 100644
index 0000000..9c02092
--- /dev/null
+++ b/src/assets/svgs/500.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/icon.svg b/src/assets/svgs/icon.svg
new file mode 100644
index 0000000..7024bec
--- /dev/null
+++ b/src/assets/svgs/icon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/login-bg.svg b/src/assets/svgs/login-bg.svg
new file mode 100644
index 0000000..bbe06c1
--- /dev/null
+++ b/src/assets/svgs/login-bg.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/login-box-bg.svg b/src/assets/svgs/login-box-bg.svg
new file mode 100644
index 0000000..ab10040
--- /dev/null
+++ b/src/assets/svgs/login-box-bg.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/member_balance.svg b/src/assets/svgs/member_balance.svg
new file mode 100644
index 0000000..5395b23
--- /dev/null
+++ b/src/assets/svgs/member_balance.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/member_expenditure_balance.svg b/src/assets/svgs/member_expenditure_balance.svg
new file mode 100644
index 0000000..02d498c
--- /dev/null
+++ b/src/assets/svgs/member_expenditure_balance.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/member_level.svg b/src/assets/svgs/member_level.svg
new file mode 100644
index 0000000..cbcc686
--- /dev/null
+++ b/src/assets/svgs/member_level.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/member_point.svg b/src/assets/svgs/member_point.svg
new file mode 100644
index 0000000..b849ddb
--- /dev/null
+++ b/src/assets/svgs/member_point.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/member_recharge_balance.svg b/src/assets/svgs/member_recharge_balance.svg
new file mode 100644
index 0000000..7519bb2
--- /dev/null
+++ b/src/assets/svgs/member_recharge_balance.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/message.svg b/src/assets/svgs/message.svg
new file mode 100644
index 0000000..14ca817
--- /dev/null
+++ b/src/assets/svgs/message.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/money.svg b/src/assets/svgs/money.svg
new file mode 100644
index 0000000..c1580de
--- /dev/null
+++ b/src/assets/svgs/money.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/pay/icon/alipay_app.svg b/src/assets/svgs/pay/icon/alipay_app.svg
new file mode 100644
index 0000000..ebf1188
--- /dev/null
+++ b/src/assets/svgs/pay/icon/alipay_app.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/pay/icon/alipay_bar.svg b/src/assets/svgs/pay/icon/alipay_bar.svg
new file mode 100644
index 0000000..eb1e1e8
--- /dev/null
+++ b/src/assets/svgs/pay/icon/alipay_bar.svg
@@ -0,0 +1,2 @@
+
diff --git a/src/assets/svgs/pay/icon/alipay_pc.svg b/src/assets/svgs/pay/icon/alipay_pc.svg
new file mode 100644
index 0000000..2a75277
--- /dev/null
+++ b/src/assets/svgs/pay/icon/alipay_pc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/pay/icon/alipay_qr.svg b/src/assets/svgs/pay/icon/alipay_qr.svg
new file mode 100644
index 0000000..4833750
--- /dev/null
+++ b/src/assets/svgs/pay/icon/alipay_qr.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/pay/icon/alipay_wap.svg b/src/assets/svgs/pay/icon/alipay_wap.svg
new file mode 100644
index 0000000..87075db
--- /dev/null
+++ b/src/assets/svgs/pay/icon/alipay_wap.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/pay/icon/mock.svg b/src/assets/svgs/pay/icon/mock.svg
new file mode 100644
index 0000000..27b09ea
--- /dev/null
+++ b/src/assets/svgs/pay/icon/mock.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/pay/icon/wx_app.svg b/src/assets/svgs/pay/icon/wx_app.svg
new file mode 100644
index 0000000..ad40b2a
--- /dev/null
+++ b/src/assets/svgs/pay/icon/wx_app.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/pay/icon/wx_bar.svg b/src/assets/svgs/pay/icon/wx_bar.svg
new file mode 100644
index 0000000..11292e6
--- /dev/null
+++ b/src/assets/svgs/pay/icon/wx_bar.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/pay/icon/wx_lite.svg b/src/assets/svgs/pay/icon/wx_lite.svg
new file mode 100644
index 0000000..0c925cf
--- /dev/null
+++ b/src/assets/svgs/pay/icon/wx_lite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/pay/icon/wx_native.svg b/src/assets/svgs/pay/icon/wx_native.svg
new file mode 100644
index 0000000..bf3ba2b
--- /dev/null
+++ b/src/assets/svgs/pay/icon/wx_native.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/pay/icon/wx_pub.svg b/src/assets/svgs/pay/icon/wx_pub.svg
new file mode 100644
index 0000000..3a6d15b
--- /dev/null
+++ b/src/assets/svgs/pay/icon/wx_pub.svg
@@ -0,0 +1,2 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/peoples.svg b/src/assets/svgs/peoples.svg
new file mode 100644
index 0000000..aab852e
--- /dev/null
+++ b/src/assets/svgs/peoples.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svgs/shopping.svg b/src/assets/svgs/shopping.svg
new file mode 100644
index 0000000..f395bc7
--- /dev/null
+++ b/src/assets/svgs/shopping.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/components/Annex/index.ts b/src/components/Annex/index.ts
new file mode 100644
index 0000000..d0456f9
--- /dev/null
+++ b/src/components/Annex/index.ts
@@ -0,0 +1,3 @@
+import Annex from './src/Annex.vue'
+
+export { Annex }
diff --git a/src/components/Annex/src/Annex.vue b/src/components/Annex/src/Annex.vue
new file mode 100644
index 0000000..b64bcfa
--- /dev/null
+++ b/src/components/Annex/src/Annex.vue
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ item.name }}
+
+
+
{{ item.size }}KB
+
来自 {{ item.nickname }}
+
+
+
+
+
+
{{ formatDate(item.createTime) }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Annex/src/AnnexLedger.vue b/src/components/Annex/src/AnnexLedger.vue
new file mode 100644
index 0000000..c364747
--- /dev/null
+++ b/src/components/Annex/src/AnnexLedger.vue
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ item.name }}
+
+
+
{{ item.size }}KB
+
来自 {{ item.nickname }}
+
+
+
+
+
+
{{ formatDate(item.createTime) }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/AutoIncrementField/index.ts b/src/components/AutoIncrementField/index.ts
new file mode 100644
index 0000000..b869670
--- /dev/null
+++ b/src/components/AutoIncrementField/index.ts
@@ -0,0 +1,3 @@
+import AutoIncrementField from './src/AutoIncrementField.vue'
+
+export { AutoIncrementField }
diff --git a/src/components/AutoIncrementField/src/AutoIncrementField.vue b/src/components/AutoIncrementField/src/AutoIncrementField.vue
new file mode 100644
index 0000000..69ef2f0
--- /dev/null
+++ b/src/components/AutoIncrementField/src/AutoIncrementField.vue
@@ -0,0 +1,106 @@
+vue
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+
+
+ 提交
+ 添加字段
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Backtop/index.ts b/src/components/Backtop/index.ts
new file mode 100644
index 0000000..96de88d
--- /dev/null
+++ b/src/components/Backtop/index.ts
@@ -0,0 +1,3 @@
+import Backtop from './src/Backtop.vue'
+
+export { Backtop }
diff --git a/src/components/Backtop/src/Backtop.vue b/src/components/Backtop/src/Backtop.vue
new file mode 100644
index 0000000..5d79f51
--- /dev/null
+++ b/src/components/Backtop/src/Backtop.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/src/components/BasicForm/index.ts b/src/components/BasicForm/index.ts
new file mode 100644
index 0000000..131ef9d
--- /dev/null
+++ b/src/components/BasicForm/index.ts
@@ -0,0 +1,3 @@
+import BasicForm from './src/BasicForm.vue'
+
+export { BasicForm }
diff --git a/src/components/BasicForm/src/BasicForm.vue b/src/components/BasicForm/src/BasicForm.vue
new file mode 100644
index 0000000..c825bcc
--- /dev/null
+++ b/src/components/BasicForm/src/BasicForm.vue
@@ -0,0 +1,1191 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/BasicForm/src/BasicFormQmsNumber.vue b/src/components/BasicForm/src/BasicFormQmsNumber.vue
new file mode 100644
index 0000000..93b9a66
--- /dev/null
+++ b/src/components/BasicForm/src/BasicFormQmsNumber.vue
@@ -0,0 +1,696 @@
+
+
+
+
+
+
diff --git a/src/components/BasicForm/src/BasicFormWmsCount.vue b/src/components/BasicForm/src/BasicFormWmsCount.vue
new file mode 100644
index 0000000..6ae5c83
--- /dev/null
+++ b/src/components/BasicForm/src/BasicFormWmsCount.vue
@@ -0,0 +1,1112 @@
+
+
+
+
+
+
+
diff --git a/src/components/Card/index.ts b/src/components/Card/index.ts
new file mode 100644
index 0000000..f4c0d86
--- /dev/null
+++ b/src/components/Card/index.ts
@@ -0,0 +1,3 @@
+import CardTitle from './src/CardTitle.vue'
+
+export { CardTitle }
diff --git a/src/components/Card/src/CardTitle.vue b/src/components/Card/src/CardTitle.vue
new file mode 100644
index 0000000..5b122f4
--- /dev/null
+++ b/src/components/Card/src/CardTitle.vue
@@ -0,0 +1,37 @@
+
+
+
+ {{ title }}
+
+
+
diff --git a/src/components/ChangeRecord/index.ts b/src/components/ChangeRecord/index.ts
new file mode 100644
index 0000000..f0a3509
--- /dev/null
+++ b/src/components/ChangeRecord/index.ts
@@ -0,0 +1,3 @@
+import ChangeRecord from './src/ChangeRecord.vue'
+
+export { ChangeRecord }
diff --git a/src/components/ChangeRecord/src/ChangeRecord.vue b/src/components/ChangeRecord/src/ChangeRecord.vue
new file mode 100644
index 0000000..58aca80
--- /dev/null
+++ b/src/components/ChangeRecord/src/ChangeRecord.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ formatDate(item.createTime) }}
+
+
+
+
+
+ {{ item.nickname }} {{ item.content }}
+
+ 查看变更数据
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/CollectionTable/index.ts b/src/components/CollectionTable/index.ts
new file mode 100644
index 0000000..6f760ab
--- /dev/null
+++ b/src/components/CollectionTable/index.ts
@@ -0,0 +1,3 @@
+import CollectionTable from './src/CollectionTable.vue'
+
+export { CollectionTable }
diff --git a/src/components/CollectionTable/src/CollectionTable.vue b/src/components/CollectionTable/src/CollectionTable.vue
new file mode 100644
index 0000000..81c4c8b
--- /dev/null
+++ b/src/components/CollectionTable/src/CollectionTable.vue
@@ -0,0 +1,229 @@
+
+
+
+
+
+
+
+
+
+ {{ getStatus(scope.row,headerItem.field) }}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/ConfigGlobal/index.ts b/src/components/ConfigGlobal/index.ts
new file mode 100644
index 0000000..dda2462
--- /dev/null
+++ b/src/components/ConfigGlobal/index.ts
@@ -0,0 +1,3 @@
+import ConfigGlobal from './src/ConfigGlobal.vue'
+
+export { ConfigGlobal }
diff --git a/src/components/ConfigGlobal/src/ConfigGlobal.vue b/src/components/ConfigGlobal/src/ConfigGlobal.vue
new file mode 100644
index 0000000..a087396
--- /dev/null
+++ b/src/components/ConfigGlobal/src/ConfigGlobal.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
diff --git a/src/components/ContentDetailWrap/index.ts b/src/components/ContentDetailWrap/index.ts
new file mode 100644
index 0000000..1871cac
--- /dev/null
+++ b/src/components/ContentDetailWrap/index.ts
@@ -0,0 +1,3 @@
+import ContentDetailWrap from './src/ContentDetailWrap.vue'
+
+export { ContentDetailWrap }
diff --git a/src/components/ContentDetailWrap/src/ContentDetailWrap.vue b/src/components/ContentDetailWrap/src/ContentDetailWrap.vue
new file mode 100644
index 0000000..a9eacc0
--- /dev/null
+++ b/src/components/ContentDetailWrap/src/ContentDetailWrap.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+ {{ t('common.back') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/ContentWrap/index.ts b/src/components/ContentWrap/index.ts
new file mode 100644
index 0000000..8c22cc8
--- /dev/null
+++ b/src/components/ContentWrap/index.ts
@@ -0,0 +1,3 @@
+import ContentWrap from './src/ContentWrap.vue'
+
+export { ContentWrap }
diff --git a/src/components/ContentWrap/src/ContentWrap.vue b/src/components/ContentWrap/src/ContentWrap.vue
new file mode 100644
index 0000000..e3bd597
--- /dev/null
+++ b/src/components/ContentWrap/src/ContentWrap.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
{{ title }}
+
+
+ {{ message }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/CountTo/index.ts b/src/components/CountTo/index.ts
new file mode 100644
index 0000000..2119f02
--- /dev/null
+++ b/src/components/CountTo/index.ts
@@ -0,0 +1,3 @@
+import CountTo from './src/CountTo.vue'
+
+export { CountTo }
diff --git a/src/components/CountTo/src/CountTo.vue b/src/components/CountTo/src/CountTo.vue
new file mode 100644
index 0000000..1b1131a
--- /dev/null
+++ b/src/components/CountTo/src/CountTo.vue
@@ -0,0 +1,182 @@
+
+
+
+
+ {{ displayValue }}
+
+
diff --git a/src/components/Crontab/index.ts b/src/components/Crontab/index.ts
new file mode 100644
index 0000000..6beeef8
--- /dev/null
+++ b/src/components/Crontab/index.ts
@@ -0,0 +1,2 @@
+import Crontab from './src/Crontab.vue'
+export { Crontab }
diff --git a/src/components/Crontab/src/Crontab.vue b/src/components/Crontab/src/Crontab.vue
new file mode 100644
index 0000000..67b82d3
--- /dev/null
+++ b/src/components/Crontab/src/Crontab.vue
@@ -0,0 +1,1015 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
秒
+ {{ value_second }}
+
+
+
+
+
+ 任意值
+ 范围
+ 间隔
+ 指定
+
+
+
+
+ -
+
+
+
+
+ 秒开始,每
+
+ 秒执行一次
+
+
+
+
+
+
+
+
+
+
+
+
分钟
+ {{ value_minute }}
+
+
+
+
+
+ 任意值
+ 范围
+ 间隔
+ 指定
+
+
+
+
+ -
+
+
+
+
+ 分钟开始,每
+
+ 分钟执行一次
+
+
+
+
+
+
+
+
+
+
+
+
小时
+ {{ value_hour }}
+
+
+
+
+
+ 任意值
+ 范围
+ 间隔
+ 指定
+
+
+
+
+ -
+
+
+
+
+ 小时开始,每
+
+ 小时执行一次
+
+
+
+
+
+
+
+
+
+
+
+
日
+ {{ value_day }}
+
+
+
+
+
+ 任意值
+ 范围
+ 间隔
+ 指定
+ 本月最后一天
+ 不指定
+
+
+
+
+ -
+
+
+
+
+ 号开始,每
+
+ 天执行一次
+
+
+
+
+
+
+
+
+
+
+
+
月
+ {{ value_month }}
+
+
+
+
+
+ 任意值
+ 范围
+ 间隔
+ 指定
+
+
+
+
+ -
+
+
+
+
+ 月开始,每
+
+ 月执行一次
+
+
+
+
+
+
+
+
+
+
+
+
周
+ {{ value_week }}
+
+
+
+
+
+
+ 任意值
+ 范围
+ 间隔
+ 指定
+ 本月最后一周
+ 不指定
+
+
+
+
+
+
+ -
+
+
+
+
+
+ 第
+
+ 周的星期
+
+
+
+ 执行一次
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
年
+ {{ value_year }}
+
+
+
+
+
+ 忽略
+ 任意值
+ 范围
+ 间隔
+ 指定
+
+
+
+
+ -
+
+
+
+
+ 年开始,每
+
+ 年执行一次
+
+
+
+
+
+
+
+
+
+
+
+
+ 取 消
+ 确 认
+
+
+
+
+
diff --git a/src/components/Cropper/index.ts b/src/components/Cropper/index.ts
new file mode 100644
index 0000000..8fcc618
--- /dev/null
+++ b/src/components/Cropper/index.ts
@@ -0,0 +1,4 @@
+import CropperImage from './src/Cropper.vue'
+import CropperAvatar from './src/CropperAvatar.vue'
+
+export { CropperImage, CropperAvatar }
diff --git a/src/components/Cropper/src/CopperModal.vue b/src/components/Cropper/src/CopperModal.vue
new file mode 100644
index 0000000..27052b8
--- /dev/null
+++ b/src/components/Cropper/src/CopperModal.vue
@@ -0,0 +1,261 @@
+
+
+
+
+
+
+
diff --git a/src/components/Cropper/src/Cropper.vue b/src/components/Cropper/src/Cropper.vue
new file mode 100644
index 0000000..871aed8
--- /dev/null
+++ b/src/components/Cropper/src/Cropper.vue
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+
diff --git a/src/components/Cropper/src/CropperAvatar.vue b/src/components/Cropper/src/CropperAvatar.vue
new file mode 100644
index 0000000..55a7d34
--- /dev/null
+++ b/src/components/Cropper/src/CropperAvatar.vue
@@ -0,0 +1,142 @@
+
+
+
+
+
+ {{ btnText ? btnText : t('cropper.selectImage') }}
+
+
+
+
+
+
diff --git a/src/components/Cropper/src/types.ts b/src/components/Cropper/src/types.ts
new file mode 100644
index 0000000..bcad3b4
--- /dev/null
+++ b/src/components/Cropper/src/types.ts
@@ -0,0 +1,8 @@
+import type Cropper from 'cropperjs'
+
+export interface CropendResult {
+ imgBase64: string
+ imgInfo: Cropper.Data
+}
+
+export type { Cropper }
diff --git a/src/components/Descriptions/index.ts b/src/components/Descriptions/index.ts
new file mode 100644
index 0000000..243bc39
--- /dev/null
+++ b/src/components/Descriptions/index.ts
@@ -0,0 +1,4 @@
+import Descriptions from './src/Descriptions.vue'
+import DescriptionsItemLabel from './src/DescriptionsItemLabel.vue'
+
+export { Descriptions, DescriptionsItemLabel }
diff --git a/src/components/Descriptions/src/Descriptions.vue b/src/components/Descriptions/src/Descriptions.vue
new file mode 100644
index 0000000..ca9f37c
--- /dev/null
+++ b/src/components/Descriptions/src/Descriptions.vue
@@ -0,0 +1,207 @@
+
+
+
+
+
+
+
+ {{ t(`ts.${title}`).replace('ts.', '') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t(`ts.${item.label}`).replace('ts.', '') }}
+
+
+
+
+
+ {{
+ data[item.field] !== null ? dayjs(data[item.field]).format(item.dateFormat) : ''
+ }}
+
+
+ {{ item.valueFilter(data[item.field]) }}
+ {{
+ item.valueFilter(data[item.field])
+ }}
+
+ {{ data[item.field] }}
+
+
+
+
+
+
+ {{ data[item.field] }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Descriptions/src/DescriptionsItemLabel.vue b/src/components/Descriptions/src/DescriptionsItemLabel.vue
new file mode 100644
index 0000000..4efb2fb
--- /dev/null
+++ b/src/components/Descriptions/src/DescriptionsItemLabel.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+ {{ label }}
+
+
+
+
diff --git a/src/components/Detail/index.ts b/src/components/Detail/index.ts
new file mode 100644
index 0000000..d3fcb5c
--- /dev/null
+++ b/src/components/Detail/index.ts
@@ -0,0 +1,3 @@
+import Detail from './src/Detail.vue'
+
+export { Detail }
diff --git a/src/components/Detail/src/Detail.vue b/src/components/Detail/src/Detail.vue
new file mode 100644
index 0000000..22f0dd4
--- /dev/null
+++ b/src/components/Detail/src/Detail.vue
@@ -0,0 +1,1179 @@
+
+
+
+
+
+ {{ titleValueRef }} {{ t(`ts.${titleNameRef}`).replace('ts.','') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Detail/src/DetailLedger.vue b/src/components/Detail/src/DetailLedger.vue
new file mode 100644
index 0000000..5e0964f
--- /dev/null
+++ b/src/components/Detail/src/DetailLedger.vue
@@ -0,0 +1,1256 @@
+
+
+
+
+
+ {{ titleValueRef }} {{ t(`ts.${titleNameRef}`).replace('ts.','') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ value }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/DetailTable/index.ts b/src/components/DetailTable/index.ts
new file mode 100644
index 0000000..2acd32a
--- /dev/null
+++ b/src/components/DetailTable/index.ts
@@ -0,0 +1,3 @@
+import DetailCountPlan from './src/DetailCountPlan.vue'
+
+export { DetailCountPlan }
diff --git a/src/components/DetailTable/src/DetailTable.vue b/src/components/DetailTable/src/DetailTable.vue
new file mode 100644
index 0000000..35ff029
--- /dev/null
+++ b/src/components/DetailTable/src/DetailTable.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
+ {{ forrmatter(scope.row.type) }}
+
+
+
+
+
+ {{ forrmatter1(scope.row) }}
+ {{ scope.row.value }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Dialog/index.ts b/src/components/Dialog/index.ts
new file mode 100644
index 0000000..1655dad
--- /dev/null
+++ b/src/components/Dialog/index.ts
@@ -0,0 +1,3 @@
+import Dialog from './src/Dialog.vue'
+
+export { Dialog }
diff --git a/src/components/Dialog/src/Dialog.vue b/src/components/Dialog/src/Dialog.vue
new file mode 100644
index 0000000..8ad2e6a
--- /dev/null
+++ b/src/components/Dialog/src/Dialog.vue
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/DictTag/index.ts b/src/components/DictTag/index.ts
new file mode 100644
index 0000000..4db2742
--- /dev/null
+++ b/src/components/DictTag/index.ts
@@ -0,0 +1,3 @@
+import DictTag from './src/DictTag.vue'
+
+export { DictTag }
diff --git a/src/components/DictTag/src/DictTag.vue b/src/components/DictTag/src/DictTag.vue
new file mode 100644
index 0000000..beeb614
--- /dev/null
+++ b/src/components/DictTag/src/DictTag.vue
@@ -0,0 +1,87 @@
+
diff --git a/src/components/Distinction/index.ts b/src/components/Distinction/index.ts
new file mode 100644
index 0000000..ba8af41
--- /dev/null
+++ b/src/components/Distinction/index.ts
@@ -0,0 +1,3 @@
+import Distinction from './src/Distinction.vue'
+
+export { Distinction }
diff --git a/src/components/Distinction/src/Distinction.vue b/src/components/Distinction/src/Distinction.vue
new file mode 100644
index 0000000..e775adb
--- /dev/null
+++ b/src/components/Distinction/src/Distinction.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/DocAlert/index.vue b/src/components/DocAlert/index.vue
new file mode 100644
index 0000000..3a3feab
--- /dev/null
+++ b/src/components/DocAlert/index.vue
@@ -0,0 +1,34 @@
+
+
+
+ {{ '【' + title + '】文档地址:' + url }}
+
+
+
+
+
diff --git a/src/components/Echart/index.ts b/src/components/Echart/index.ts
new file mode 100644
index 0000000..4822092
--- /dev/null
+++ b/src/components/Echart/index.ts
@@ -0,0 +1,3 @@
+import Echart from './src/Echart.vue'
+
+export { Echart }
diff --git a/src/components/Echart/src/Echart.vue b/src/components/Echart/src/Echart.vue
new file mode 100644
index 0000000..fd3342d
--- /dev/null
+++ b/src/components/Echart/src/Echart.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
diff --git a/src/components/Editor/index.ts b/src/components/Editor/index.ts
new file mode 100644
index 0000000..3fbf0a9
--- /dev/null
+++ b/src/components/Editor/index.ts
@@ -0,0 +1,8 @@
+import Editor from './src/Editor.vue'
+import { IDomEditor } from '@wangeditor/editor'
+
+export interface EditorExpose {
+ getEditorRef: () => Promise
+}
+
+export { Editor }
diff --git a/src/components/Editor/src/Editor.vue b/src/components/Editor/src/Editor.vue
new file mode 100644
index 0000000..6a98435
--- /dev/null
+++ b/src/components/Editor/src/Editor.vue
@@ -0,0 +1,203 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Error/index.ts b/src/components/Error/index.ts
new file mode 100644
index 0000000..a52c6f9
--- /dev/null
+++ b/src/components/Error/index.ts
@@ -0,0 +1,3 @@
+import Error from './src/Error.vue'
+
+export { Error }
diff --git a/src/components/Error/src/Error.vue b/src/components/Error/src/Error.vue
new file mode 100644
index 0000000..3fd7a17
--- /dev/null
+++ b/src/components/Error/src/Error.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
{{ errorMap[type].message }}
+
+ {{ errorMap[type].buttonText }}
+
+
+
+
diff --git a/src/components/Form/index.ts b/src/components/Form/index.ts
new file mode 100644
index 0000000..484c7a2
--- /dev/null
+++ b/src/components/Form/index.ts
@@ -0,0 +1,15 @@
+import Form from './src/Form.vue'
+import { ElForm } from 'element-plus'
+import { FormSchema, FormSetPropsType } from '@/types/form'
+
+export interface FormExpose {
+ setValues: (data: Recordable) => void
+ setProps: (props: Recordable) => void
+ delSchema: (field: string) => void
+ addSchema: (formSchema: FormSchema, index?: number) => void
+ setSchema: (schemaProps: FormSetPropsType[]) => void
+ formModel: Recordable
+ getElFormRef: () => ComponentRef
+}
+
+export { Form }
diff --git a/src/components/Form/src/Form.vue b/src/components/Form/src/Form.vue
new file mode 100644
index 0000000..33db690
--- /dev/null
+++ b/src/components/Form/src/Form.vue
@@ -0,0 +1,496 @@
+
+
+
diff --git a/src/components/Form/src/componentMap.ts b/src/components/Form/src/componentMap.ts
new file mode 100644
index 0000000..5af9b40
--- /dev/null
+++ b/src/components/Form/src/componentMap.ts
@@ -0,0 +1,55 @@
+import type { Component } from 'vue'
+import {
+ ElCascader,
+ ElCheckboxGroup,
+ ElColorPicker,
+ ElDatePicker,
+ ElInput,
+ ElInputNumber,
+ ElRadioGroup,
+ ElRate,
+ ElSelect,
+ ElSelectV2,
+ ElTreeSelect,
+ ElSlider,
+ ElSwitch,
+ ElTimePicker,
+ ElTimeSelect,
+ ElTransfer,
+ ElAutocomplete,
+ ElDivider
+} from 'element-plus'
+import { InputPassword } from '@/components/InputPassword'
+import { Editor } from '@/components/Editor'
+import { UploadImg, UploadImgs, UploadFile } from '@/components/UploadFile'
+import { ComponentName } from '@/types/components'
+
+const componentMap: Recordable = {
+ Radio: ElRadioGroup,
+ Checkbox: ElCheckboxGroup,
+ CheckboxButton: ElCheckboxGroup,
+ Input: ElInput,
+ Autocomplete: ElAutocomplete,
+ InputNumber: ElInputNumber,
+ Select: ElSelect,
+ Cascader: ElCascader,
+ Switch: ElSwitch,
+ Slider: ElSlider,
+ TimePicker: ElTimePicker,
+ DatePicker: ElDatePicker,
+ Rate: ElRate,
+ ColorPicker: ElColorPicker,
+ Transfer: ElTransfer,
+ Divider: ElDivider,
+ TimeSelect: ElTimeSelect,
+ SelectV2: ElSelectV2,
+ TreeSelect: ElTreeSelect,
+ RadioButton: ElRadioGroup,
+ InputPassword: InputPassword,
+ Editor: Editor,
+ UploadImg: UploadImg,
+ UploadImgs: UploadImgs,
+ UploadFile: UploadFile
+}
+
+export { componentMap }
diff --git a/src/components/Form/src/components/useRenderCheckbox.tsx b/src/components/Form/src/components/useRenderCheckbox.tsx
new file mode 100644
index 0000000..e151839
--- /dev/null
+++ b/src/components/Form/src/components/useRenderCheckbox.tsx
@@ -0,0 +1,26 @@
+import { FormSchema } from '@/types/form'
+import { ElCheckbox, ElCheckboxButton } from 'element-plus'
+import { defineComponent } from 'vue'
+
+export const useRenderCheckbox = () => {
+ const renderCheckboxOptions = (item: FormSchema) => {
+ // 如果有别名,就取别名
+ const labelAlias = item?.componentProps?.optionsAlias?.labelField
+ const valueAlias = item?.componentProps?.optionsAlias?.valueField
+ const Com = (item.component === 'Checkbox' ? ElCheckbox : ElCheckboxButton) as ReturnType<
+ typeof defineComponent
+ >
+ return item?.componentProps?.options?.map((option) => {
+ const { ...other } = option
+ return (
+
+ {option[labelAlias || 'label']}
+
+ )
+ })
+ }
+
+ return {
+ renderCheckboxOptions
+ }
+}
diff --git a/src/components/Form/src/components/useRenderRadio.tsx b/src/components/Form/src/components/useRenderRadio.tsx
new file mode 100644
index 0000000..d1005ca
--- /dev/null
+++ b/src/components/Form/src/components/useRenderRadio.tsx
@@ -0,0 +1,26 @@
+import { FormSchema } from '@/types/form'
+import { ElRadio, ElRadioButton } from 'element-plus'
+import { defineComponent } from 'vue'
+
+export const useRenderRadio = () => {
+ const renderRadioOptions = (item: FormSchema) => {
+ // 如果有别名,就取别名
+ const labelAlias = item?.componentProps?.optionsAlias?.labelField
+ const valueAlias = item?.componentProps?.optionsAlias?.valueField
+ const Com = (item.component === 'Radio' ? ElRadio : ElRadioButton) as ReturnType<
+ typeof defineComponent
+ >
+ return item?.componentProps?.options?.map((option) => {
+ const { ...other } = option
+ return (
+
+ {option[labelAlias || 'label']}
+
+ )
+ })
+ }
+
+ return {
+ renderRadioOptions
+ }
+}
diff --git a/src/components/Form/src/components/useRenderSelect.tsx b/src/components/Form/src/components/useRenderSelect.tsx
new file mode 100644
index 0000000..30f6d73
--- /dev/null
+++ b/src/components/Form/src/components/useRenderSelect.tsx
@@ -0,0 +1,60 @@
+import { FormSchema } from '@/types/form'
+import { ComponentOptions } from '@/types/components'
+import { ElOption, ElOptionGroup } from 'element-plus'
+import { getSlot } from '@/utils/tsxHelper'
+import { Slots } from 'vue'
+const { t } = useI18n()
+
+export const useRenderSelect = (slots: Slots) => {
+ // 渲染 select options
+ const renderSelectOptions = (item: FormSchema) => {
+ // 如果有别名,就取别名
+ const labelAlias = item?.componentProps?.optionsAlias?.labelField
+ return item?.componentProps?.options?.map((option) => {
+ if (option?.options?.length) {
+ return (
+
+ {() => {
+ return option?.options?.map((v) => {
+ return renderSelectOptionItem(item, v)
+ })
+ }}
+
+ )
+ } else {
+ return renderSelectOptionItem(item, option)
+ }
+ })
+ }
+
+ // 渲染 select option item
+ const renderSelectOptionItem = (item: FormSchema, option: ComponentOptions) => {
+ // 如果有别名,就取别名
+ const labelAlias = item?.componentProps?.optionsAlias?.labelField
+ const valueAlias = item?.componentProps?.optionsAlias?.valueField
+
+ const { label, value, ...other } = option
+ const zhName = labelAlias ? option[labelAlias] : label;//中文名称
+ let labelName = t(`ts.${zhName}`).replace('ts.','')
+
+ return (
+
+ {{
+ default: () =>
+ // option 插槽名规则,{field}-option
+ item?.componentProps?.optionsSlot
+ ? getSlot(slots, `${item.field}-option`, { item: option })
+ : undefined
+ }}
+
+ )
+ }
+
+ return {
+ renderSelectOptions
+ }
+}
diff --git a/src/components/Form/src/helper.ts b/src/components/Form/src/helper.ts
new file mode 100644
index 0000000..ac3540f
--- /dev/null
+++ b/src/components/Form/src/helper.ts
@@ -0,0 +1,154 @@
+import type { Slots } from 'vue'
+import { getSlot } from '@/utils/tsxHelper'
+import { PlaceholderModel } from './types'
+import { FormSchema } from '@/types/form'
+import { ColProps } from '@/types/components'
+
+/**
+ *
+ * @param schema 对应组件数据
+ * @returns 返回提示信息对象
+ * @description 用于自动设置placeholder
+ */
+export const setTextPlaceholder = (schema: FormSchema): PlaceholderModel => {
+ const { t } = useI18n()
+ const textMap = ['Input', 'Autocomplete', 'InputNumber', 'InputPassword']
+ const selectMap = ['Select', 'SelectV2', 'TimePicker', 'DatePicker', 'TimeSelect', 'TimeSelect']
+
+ let labelName = schema.label || ''
+ if(schema.label){
+ labelName = ' '+t(`ts.${schema.label}`).replace('ts.','')
+ }
+
+ if (textMap.includes(schema?.component as string)) {
+ return {
+ placeholder: t('common.inputText') + labelName
+ }
+ }
+ if (selectMap.includes(schema?.component as string)) {
+ // 一些范围选择器
+ const twoTextMap = ['datetimerange', 'daterange', 'monthrange', 'datetimerange', 'daterange']
+ if (
+ twoTextMap.includes(
+ (schema?.componentProps?.type || schema?.componentProps?.isRange) as string
+ )
+ ) {
+ return {
+ startPlaceholder: t('common.startTimeText'),
+ endPlaceholder: t('common.endTimeText'),
+ rangeSeparator: '-'
+ }
+ } else {
+ return {
+ placeholder: t('common.selectText') + labelName
+ }
+ }
+ }
+ return {}
+}
+
+/**
+ *
+ * @param col 内置栅格
+ * @returns 返回栅格属性
+ * @description 合并传入进来的栅格属性
+ */
+export const setGridProp = (col: ColProps = {}): ColProps => {
+ const colProps: ColProps = {
+ // 如果有span,代表用户优先级更高,所以不需要默认栅格
+ ...(col.span
+ ? {}
+ : {
+ xs: 24,
+ sm: 12,
+ md: 12,
+ lg: 12,
+ xl: 12
+ }),
+ ...col
+ }
+ return colProps
+}
+
+/**
+ *
+ * @param item 传入的组件属性
+ * @returns 默认添加 clearable 属性
+ */
+export const setComponentProps = (item: FormSchema): Recordable => {
+ const notNeedClearable = ['ColorPicker']
+ const componentProps: Recordable = notNeedClearable.includes(item.component as string)
+ ? { ...item.componentProps }
+ : {
+ clearable: true,
+ ...item.componentProps
+ }
+ // 需要删除额外的属性
+ delete componentProps?.slots
+ return componentProps
+}
+
+/**
+ *
+ * @param slots 插槽
+ * @param slotsProps 插槽属性
+ * @param field 字段名
+ */
+export const setItemComponentSlots = (
+ slots: Slots,
+ slotsProps: Recordable = {},
+ field: string
+): Recordable => {
+ const slotObj: Recordable = {}
+ for (const key in slotsProps) {
+ if (slotsProps[key]) {
+ // 由于组件有可能重复,需要有一个唯一的前缀
+ slotObj[key] = (data: Recordable) => {
+ return getSlot(slots, `${field}-${key}`, data)
+ }
+ }
+ }
+ return slotObj
+}
+
+/**
+ *
+ * @param schema Form表单结构化数组
+ * @param formModel FormModel
+ * @returns FormModel
+ * @description 生成对应的formModel
+ */
+export const initModel = (schema: FormSchema[], formModel: Recordable) => {
+ const model: Recordable = { ...formModel }
+ schema.map((v) => {
+ // 如果是hidden,就删除对应的值
+ if (v.hidden) {
+ delete model[v.field]
+ } else if (v.component && v.component !== 'Divider') {
+ const hasField = Reflect.has(model, v.field)
+ // 如果先前已经有值存在,则不进行重新赋值,而是采用现有的值
+ model[v.field] = hasField ? model[v.field] : v.value === 'undefined' ? undefined : v.value !== void 0 ? v.value : ''
+ }
+ })
+ return model
+}
+
+/**
+ * @param slots 插槽
+ * @param field 字段名
+ * @returns 返回FormIiem插槽
+ */
+export const setFormItemSlots = (slots: Slots, field: string): Recordable => {
+ const slotObj: Recordable = {}
+ if (slots[`${field}-error`]) {
+ slotObj['error'] = (data: Recordable) => {
+ return getSlot(slots, `${field}-error`, data)
+ }
+ }
+ if (slots[`${field}-label`]) {
+ slotObj['label'] = (data: Recordable) => {
+ return getSlot(slots, `${field}-label`, data)
+ }
+ }
+ return slotObj
+}
diff --git a/src/components/Form/src/types.ts b/src/components/Form/src/types.ts
new file mode 100644
index 0000000..dcd01e7
--- /dev/null
+++ b/src/components/Form/src/types.ts
@@ -0,0 +1,17 @@
+import { FormSchema } from '@/types/form'
+
+export interface PlaceholderModel {
+ placeholder?: string
+ startPlaceholder?: string
+ endPlaceholder?: string
+ rangeSeparator?: string
+}
+
+export type FormProps = {
+ schema?: FormSchema[]
+ isCol?: boolean
+ model?: Recordable
+ autoSetPlaceholder?: boolean
+ isCustom?: boolean
+ labelWidth?: string | number
+} & Recordable
diff --git a/src/components/Highlight/index.ts b/src/components/Highlight/index.ts
new file mode 100644
index 0000000..3e2d9ed
--- /dev/null
+++ b/src/components/Highlight/index.ts
@@ -0,0 +1,3 @@
+import Highlight from './src/Highlight.vue'
+
+export { Highlight }
diff --git a/src/components/Highlight/src/Highlight.vue b/src/components/Highlight/src/Highlight.vue
new file mode 100644
index 0000000..ef923a9
--- /dev/null
+++ b/src/components/Highlight/src/Highlight.vue
@@ -0,0 +1,65 @@
+
diff --git a/src/components/Icon/index.ts b/src/components/Icon/index.ts
new file mode 100644
index 0000000..33d1de3
--- /dev/null
+++ b/src/components/Icon/index.ts
@@ -0,0 +1,4 @@
+import Icon from './src/Icon.vue'
+import IconSelect from './src/IconSelect.vue'
+
+export { Icon, IconSelect }
diff --git a/src/components/Icon/src/Icon.vue b/src/components/Icon/src/Icon.vue
new file mode 100644
index 0000000..00dfa5d
--- /dev/null
+++ b/src/components/Icon/src/Icon.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Icon/src/IconSelect.vue b/src/components/Icon/src/IconSelect.vue
new file mode 100644
index 0000000..d4a5b07
--- /dev/null
+++ b/src/components/Icon/src/IconSelect.vue
@@ -0,0 +1,229 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Icon/src/data.ts b/src/components/Icon/src/data.ts
new file mode 100644
index 0000000..2a4ed5a
--- /dev/null
+++ b/src/components/Icon/src/data.ts
@@ -0,0 +1,1961 @@
+export const IconJson = {
+ 'ep:': [
+ 'add-location',
+ 'aim',
+ 'alarm-clock',
+ 'apple',
+ 'arrow-down',
+ 'arrow-down-bold',
+ 'arrow-left',
+ 'arrow-left-bold',
+ 'arrow-right',
+ 'arrow-right-bold',
+ 'arrow-up',
+ 'arrow-up-bold',
+ 'avatar',
+ 'back',
+ 'baseball',
+ 'basketball',
+ 'bell',
+ 'bell-filled',
+ 'bicycle',
+ 'bottom',
+ 'bottom-left',
+ 'bottom-right',
+ 'bowl',
+ 'box',
+ 'briefcase',
+ 'brush',
+ 'brush-filled',
+ 'burger',
+ 'calendar',
+ 'camera',
+ 'camera-filled',
+ 'caret-bottom',
+ 'caret-left',
+ 'caret-right',
+ 'caret-top',
+ 'cellphone',
+ 'chat-dot-round',
+ 'chat-dot-square',
+ 'chat-line-round',
+ 'chat-line-square',
+ 'chat-round',
+ 'chat-square',
+ 'check',
+ 'checked',
+ 'cherry',
+ 'chicken',
+ 'circle-check',
+ 'circle-check-filled',
+ 'circle-close',
+ 'circle-close-filled',
+ 'circle-plus',
+ 'circle-plus-filled',
+ 'clock',
+ 'close',
+ 'close-bold',
+ 'cloudy',
+ 'coffee',
+ 'coffee-cup',
+ 'coin',
+ 'cold-drink',
+ 'collection',
+ 'collection-tag',
+ 'comment',
+ 'compass',
+ 'connection',
+ 'coordinate',
+ 'copy-document',
+ 'cpu',
+ 'credit-card',
+ 'crop',
+ 'd-arrow-left',
+ 'd-arrow-right',
+ 'd-caret',
+ 'data-analysis',
+ 'data-board',
+ 'data-line',
+ 'delete',
+ 'delete-filled',
+ 'delete-location',
+ 'dessert',
+ 'discount',
+ 'dish',
+ 'dish-dot',
+ 'document',
+ 'document-add',
+ 'document-checked',
+ 'document-copy',
+ 'document-delete',
+ 'document-remove',
+ 'download',
+ 'drizzling',
+ 'edit',
+ 'edit-pen',
+ 'eleme',
+ 'eleme-filled',
+ 'expand',
+ 'failed',
+ 'female',
+ 'files',
+ 'film',
+ 'filter',
+ 'finished',
+ 'first-aid-kit',
+ 'flag',
+ 'fold',
+ 'folder',
+ 'folder-add',
+ 'folder-checked',
+ 'folder-delete',
+ 'folder-opened',
+ 'folder-remove',
+ 'food',
+ 'football',
+ 'fork-spoon',
+ 'fries',
+ 'full-screen',
+ 'goblet',
+ 'goblet-full',
+ 'goblet-square',
+ 'goblet-square-full',
+ 'goods',
+ 'goods-filled',
+ 'grape',
+ 'grid',
+ 'guide',
+ 'headset',
+ 'help',
+ 'help-filled',
+ 'histogram',
+ 'home-filled',
+ 'hot-water',
+ 'house',
+ 'ice-cream',
+ 'ice-cream-round',
+ 'ice-cream-square',
+ 'ice-drink',
+ 'ice-tea',
+ 'info-filled',
+ 'iphone',
+ 'key',
+ 'knife-fork',
+ 'lightning',
+ 'link',
+ 'list',
+ 'loading',
+ 'location',
+ 'location-filled',
+ 'location-information',
+ 'lock',
+ 'lollipop',
+ 'magic-stick',
+ 'magnet',
+ 'male',
+ 'management',
+ 'map-location',
+ 'medal',
+ 'menu',
+ 'message',
+ 'message-box',
+ 'mic',
+ 'microphone',
+ 'milk-tea',
+ 'minus',
+ 'money',
+ 'monitor',
+ 'moon',
+ 'moon-night',
+ 'more',
+ 'more-filled',
+ 'mostly-cloudy',
+ 'mouse',
+ 'mug',
+ 'mute',
+ 'mute-notification',
+ 'no-smoking',
+ 'notebook',
+ 'notification',
+ 'odometer',
+ 'office-building',
+ 'open',
+ 'operation',
+ 'opportunity',
+ 'orange',
+ 'paperclip',
+ 'partly-cloudy',
+ 'pear',
+ 'phone',
+ 'phone-filled',
+ 'picture',
+ 'picture-filled',
+ 'picture-rounded',
+ 'pie-chart',
+ 'place',
+ 'platform',
+ 'plus',
+ 'pointer',
+ 'position',
+ 'postcard',
+ 'pouring',
+ 'present',
+ 'price-tag',
+ 'printer',
+ 'promotion',
+ 'question-filled',
+ 'rank',
+ 'reading',
+ 'reading-lamp',
+ 'refresh',
+ 'refresh-left',
+ 'refresh-right',
+ 'refrigerator',
+ 'remove',
+ 'remove-filled',
+ 'right',
+ 'scale-to-original',
+ 'school',
+ 'scissor',
+ 'search',
+ 'select',
+ 'sell',
+ 'semi-select',
+ 'service',
+ 'set-up',
+ 'setting',
+ 'share',
+ 'ship',
+ 'shop',
+ 'shopping-bag',
+ 'shopping-cart',
+ 'shopping-cart-full',
+ 'smoking',
+ 'soccer',
+ 'sold-out',
+ 'sort',
+ 'sort-down',
+ 'sort-up',
+ 'stamp',
+ 'star',
+ 'star-filled',
+ 'stopwatch',
+ 'success-filled',
+ 'sugar',
+ 'suitcase',
+ 'sunny',
+ 'sunrise',
+ 'sunset',
+ 'switch',
+ 'switch-button',
+ 'takeaway-box',
+ 'ticket',
+ 'tickets',
+ 'timer',
+ 'toilet-paper',
+ 'tools',
+ 'top',
+ 'top-left',
+ 'top-right',
+ 'trend-charts',
+ 'trophy',
+ 'turn-off',
+ 'umbrella',
+ 'unlock',
+ 'upload',
+ 'upload-filled',
+ 'user',
+ 'user-filled',
+ 'van',
+ 'video-camera',
+ 'video-camera-filled',
+ 'video-pause',
+ 'video-play',
+ 'view',
+ 'wallet',
+ 'wallet-filled',
+ 'warning',
+ 'warning-filled',
+ 'watch',
+ 'watermelon',
+ 'wind-power',
+ 'zoom-in',
+ 'zoom-out'
+ ],
+ 'fa:': [
+ '500px',
+ 'address-book',
+ 'address-book-o',
+ 'address-card',
+ 'address-card-o',
+ 'adjust',
+ 'adn',
+ 'align-center',
+ 'align-justify',
+ 'align-left',
+ 'amazon',
+ 'ambulance',
+ 'american-sign-language-interpreting',
+ 'anchor',
+ 'android',
+ 'angellist',
+ 'angle-double-left',
+ 'angle-double-up',
+ 'angle-down',
+ 'angle-left',
+ 'angle-up',
+ 'apple',
+ 'archive',
+ 'area-chart',
+ 'arrow-circle-left',
+ 'arrow-circle-o-left',
+ 'arrow-circle-o-up',
+ 'arrow-circle-up',
+ 'arrow-left',
+ 'arrow-up',
+ 'arrows',
+ 'arrows-alt',
+ 'arrows-h',
+ 'arrows-v',
+ 'assistive-listening-systems',
+ 'asterisk',
+ 'at',
+ 'audio-description',
+ 'automobile',
+ 'backward',
+ 'balance-scale',
+ 'ban',
+ 'bandcamp',
+ 'bank',
+ 'bar-chart',
+ 'barcode',
+ 'bars',
+ 'bath',
+ 'battery',
+ 'battery-0',
+ 'battery-1',
+ 'battery-2',
+ 'battery-3',
+ 'bed',
+ 'beer',
+ 'behance',
+ 'behance-square',
+ 'bell',
+ 'bell-o',
+ 'bell-slash',
+ 'bell-slash-o',
+ 'bicycle',
+ 'binoculars',
+ 'birthday-cake',
+ 'bitbucket',
+ 'bitbucket-square',
+ 'bitcoin',
+ 'black-tie',
+ 'blind',
+ 'bluetooth',
+ 'bluetooth-b',
+ 'bold',
+ 'bolt',
+ 'bomb',
+ 'book',
+ 'bookmark',
+ 'bookmark-o',
+ 'braille',
+ 'briefcase',
+ 'bug',
+ 'building',
+ 'building-o',
+ 'bullhorn',
+ 'bullseye',
+ 'bus',
+ 'buysellads',
+ 'cab',
+ 'calculator',
+ 'calendar',
+ 'calendar-check-o',
+ 'calendar-minus-o',
+ 'calendar-o',
+ 'calendar-plus-o',
+ 'calendar-times-o',
+ 'camera',
+ 'camera-retro',
+ 'caret-down',
+ 'caret-left',
+ 'caret-square-o-left',
+ 'caret-square-o-up',
+ 'caret-up',
+ 'cart-arrow-down',
+ 'cart-plus',
+ 'cc',
+ 'cc-amex',
+ 'cc-diners-club',
+ 'cc-discover',
+ 'cc-jcb',
+ 'cc-mastercard',
+ 'cc-paypal',
+ 'cc-stripe',
+ 'cc-visa',
+ 'certificate',
+ 'chain',
+ 'chain-broken',
+ 'check',
+ 'check-circle',
+ 'check-circle-o',
+ 'check-square',
+ 'check-square-o',
+ 'chevron-circle-left',
+ 'chevron-circle-up',
+ 'chevron-down',
+ 'chevron-left',
+ 'chevron-up',
+ 'child',
+ 'chrome',
+ 'circle',
+ 'circle-o',
+ 'circle-o-notch',
+ 'circle-thin',
+ 'clipboard',
+ 'clock-o',
+ 'clone',
+ 'close',
+ 'cloud',
+ 'cloud-download',
+ 'cloud-upload',
+ 'cny',
+ 'code',
+ 'code-fork',
+ 'codepen',
+ 'codiepie',
+ 'coffee',
+ 'cog',
+ 'cogs',
+ 'columns',
+ 'comment',
+ 'comment-o',
+ 'commenting',
+ 'commenting-o',
+ 'comments',
+ 'comments-o',
+ 'compass',
+ 'compress',
+ 'connectdevelop',
+ 'contao',
+ 'copy',
+ 'copyright',
+ 'creative-commons',
+ 'credit-card',
+ 'credit-card-alt',
+ 'crop',
+ 'crosshairs',
+ 'css3',
+ 'cube',
+ 'cubes',
+ 'cut',
+ 'cutlery',
+ 'dashboard',
+ 'dashcube',
+ 'database',
+ 'deaf',
+ 'dedent',
+ 'delicious',
+ 'desktop',
+ 'deviantart',
+ 'diamond',
+ 'digg',
+ 'dollar',
+ 'dot-circle-o',
+ 'download',
+ 'dribbble',
+ 'drivers-license',
+ 'drivers-license-o',
+ 'dropbox',
+ 'drupal',
+ 'edge',
+ 'edit',
+ 'eercast',
+ 'eject',
+ 'ellipsis-h',
+ 'ellipsis-v',
+ 'empire',
+ 'envelope',
+ 'envelope-o',
+ 'envelope-open',
+ 'envelope-open-o',
+ 'envelope-square',
+ 'envira',
+ 'eraser',
+ 'etsy',
+ 'eur',
+ 'exchange',
+ 'exclamation',
+ 'exclamation-circle',
+ 'exclamation-triangle',
+ 'expand',
+ 'expeditedssl',
+ 'external-link',
+ 'external-link-square',
+ 'eye',
+ 'eye-slash',
+ 'eyedropper',
+ 'fa',
+ 'facebook',
+ 'facebook-official',
+ 'facebook-square',
+ 'fast-backward',
+ 'fax',
+ 'feed',
+ 'female',
+ 'fighter-jet',
+ 'file',
+ 'file-archive-o',
+ 'file-audio-o',
+ 'file-code-o',
+ 'file-excel-o',
+ 'file-image-o',
+ 'file-movie-o',
+ 'file-o',
+ 'file-pdf-o',
+ 'file-powerpoint-o',
+ 'file-text',
+ 'file-text-o',
+ 'file-word-o',
+ 'film',
+ 'filter',
+ 'fire',
+ 'fire-extinguisher',
+ 'firefox',
+ 'first-order',
+ 'flag',
+ 'flag-checkered',
+ 'flag-o',
+ 'flask',
+ 'flickr',
+ 'floppy-o',
+ 'folder',
+ 'folder-o',
+ 'folder-open',
+ 'folder-open-o',
+ 'font',
+ 'fonticons',
+ 'fort-awesome',
+ 'forumbee',
+ 'foursquare',
+ 'free-code-camp',
+ 'frown-o',
+ 'futbol-o',
+ 'gamepad',
+ 'gavel',
+ 'gbp',
+ 'genderless',
+ 'get-pocket',
+ 'gg',
+ 'gg-circle',
+ 'gift',
+ 'git',
+ 'git-square',
+ 'github',
+ 'github-alt',
+ 'github-square',
+ 'gitlab',
+ 'gittip',
+ 'glass',
+ 'glide',
+ 'glide-g',
+ 'globe',
+ 'google',
+ 'google-plus',
+ 'google-plus-circle',
+ 'google-plus-square',
+ 'google-wallet',
+ 'graduation-cap',
+ 'grav',
+ 'group',
+ 'h-square',
+ 'hacker-news',
+ 'hand-grab-o',
+ 'hand-lizard-o',
+ 'hand-o-left',
+ 'hand-o-up',
+ 'hand-paper-o',
+ 'hand-peace-o',
+ 'hand-pointer-o',
+ 'hand-scissors-o',
+ 'hand-spock-o',
+ 'handshake-o',
+ 'hashtag',
+ 'hdd-o',
+ 'header',
+ 'headphones',
+ 'heart',
+ 'heart-o',
+ 'heartbeat',
+ 'history',
+ 'home',
+ 'hospital-o',
+ 'hourglass',
+ 'hourglass-1',
+ 'hourglass-2',
+ 'hourglass-3',
+ 'hourglass-o',
+ 'houzz',
+ 'html5',
+ 'i-cursor',
+ 'id-badge',
+ 'ils',
+ 'image',
+ 'imdb',
+ 'inbox',
+ 'indent',
+ 'industry',
+ 'info',
+ 'info-circle',
+ 'inr',
+ 'instagram',
+ 'internet-explorer',
+ 'intersex',
+ 'ioxhost',
+ 'italic',
+ 'joomla',
+ 'jsfiddle',
+ 'key',
+ 'keyboard-o',
+ 'krw',
+ 'language',
+ 'laptop',
+ 'lastfm',
+ 'lastfm-square',
+ 'leaf',
+ 'leanpub',
+ 'lemon-o',
+ 'level-up',
+ 'life-bouy',
+ 'lightbulb-o',
+ 'line-chart',
+ 'linkedin',
+ 'linkedin-square',
+ 'linode',
+ 'linux',
+ 'list',
+ 'list-alt',
+ 'list-ol',
+ 'list-ul',
+ 'location-arrow',
+ 'lock',
+ 'long-arrow-left',
+ 'long-arrow-up',
+ 'low-vision',
+ 'magic',
+ 'magnet',
+ 'mail-forward',
+ 'mail-reply',
+ 'mail-reply-all',
+ 'male',
+ 'map',
+ 'map-marker',
+ 'map-o',
+ 'map-pin',
+ 'map-signs',
+ 'mars',
+ 'mars-double',
+ 'mars-stroke',
+ 'mars-stroke-h',
+ 'mars-stroke-v',
+ 'maxcdn',
+ 'meanpath',
+ 'medium',
+ 'medkit',
+ 'meetup',
+ 'meh-o',
+ 'mercury',
+ 'microchip',
+ 'microphone',
+ 'microphone-slash',
+ 'minus',
+ 'minus-circle',
+ 'minus-square',
+ 'minus-square-o',
+ 'mixcloud',
+ 'mobile',
+ 'modx',
+ 'money',
+ 'moon-o',
+ 'motorcycle',
+ 'mouse-pointer',
+ 'music',
+ 'neuter',
+ 'newspaper-o',
+ 'object-group',
+ 'object-ungroup',
+ 'odnoklassniki',
+ 'odnoklassniki-square',
+ 'opencart',
+ 'openid',
+ 'opera',
+ 'optin-monster',
+ 'pagelines',
+ 'paint-brush',
+ 'paper-plane',
+ 'paper-plane-o',
+ 'paperclip',
+ 'paragraph',
+ 'pause',
+ 'pause-circle',
+ 'pause-circle-o',
+ 'paw',
+ 'paypal',
+ 'pencil',
+ 'pencil-square',
+ 'percent',
+ 'phone',
+ 'phone-square',
+ 'pie-chart',
+ 'pied-piper',
+ 'pied-piper-alt',
+ 'pied-piper-pp',
+ 'pinterest',
+ 'pinterest-p',
+ 'pinterest-square',
+ 'plane',
+ 'play',
+ 'play-circle',
+ 'play-circle-o',
+ 'plug',
+ 'plus',
+ 'plus-circle',
+ 'plus-square',
+ 'plus-square-o',
+ 'podcast',
+ 'power-off',
+ 'print',
+ 'product-hunt',
+ 'puzzle-piece',
+ 'qq',
+ 'qrcode',
+ 'question',
+ 'question-circle',
+ 'question-circle-o',
+ 'quora',
+ 'quote-left',
+ 'quote-right',
+ 'ra',
+ 'random',
+ 'ravelry',
+ 'recycle',
+ 'reddit',
+ 'reddit-alien',
+ 'reddit-square',
+ 'refresh',
+ 'registered',
+ 'renren',
+ 'repeat',
+ 'retweet',
+ 'road',
+ 'rocket',
+ 'rotate-left',
+ 'rouble',
+ 'rss-square',
+ 'safari',
+ 'scribd',
+ 'search',
+ 'search-minus',
+ 'search-plus',
+ 'sellsy',
+ 'server',
+ 'share-alt',
+ 'share-alt-square',
+ 'share-square',
+ 'share-square-o',
+ 'shield',
+ 'ship',
+ 'shirtsinbulk',
+ 'shopping-bag',
+ 'shopping-basket',
+ 'shopping-cart',
+ 'shower',
+ 'sign-in',
+ 'sign-language',
+ 'sign-out',
+ 'signal',
+ 'simplybuilt',
+ 'sitemap',
+ 'skyatlas',
+ 'skype',
+ 'slack',
+ 'sliders',
+ 'slideshare',
+ 'smile-o',
+ 'snapchat',
+ 'snapchat-ghost',
+ 'snapchat-square',
+ 'snowflake-o',
+ 'sort',
+ 'sort-alpha-asc',
+ 'sort-alpha-desc',
+ 'sort-amount-asc',
+ 'sort-amount-desc',
+ 'sort-asc',
+ 'sort-numeric-asc',
+ 'sort-numeric-desc',
+ 'soundcloud',
+ 'space-shuttle',
+ 'spinner',
+ 'spoon',
+ 'spotify',
+ 'square',
+ 'square-o',
+ 'stack-exchange',
+ 'stack-overflow',
+ 'star',
+ 'star-half',
+ 'star-half-empty',
+ 'star-o',
+ 'steam',
+ 'steam-square',
+ 'step-backward',
+ 'stethoscope',
+ 'sticky-note',
+ 'sticky-note-o',
+ 'stop',
+ 'stop-circle',
+ 'stop-circle-o',
+ 'street-view',
+ 'strikethrough',
+ 'stumbleupon',
+ 'stumbleupon-circle',
+ 'subscript',
+ 'subway',
+ 'suitcase',
+ 'sun-o',
+ 'superpowers',
+ 'superscript',
+ 'table',
+ 'tablet',
+ 'tag',
+ 'tags',
+ 'tasks',
+ 'telegram',
+ 'television',
+ 'tencent-weibo',
+ 'terminal',
+ 'text-height',
+ 'text-width',
+ 'th',
+ 'th-large',
+ 'th-list',
+ 'themeisle',
+ 'thermometer',
+ 'thermometer-0',
+ 'thermometer-1',
+ 'thermometer-2',
+ 'thermometer-3',
+ 'thumb-tack',
+ 'thumbs-down',
+ 'thumbs-o-up',
+ 'thumbs-up',
+ 'ticket',
+ 'times-circle',
+ 'times-circle-o',
+ 'times-rectangle',
+ 'times-rectangle-o',
+ 'tint',
+ 'toggle-off',
+ 'toggle-on',
+ 'trademark',
+ 'train',
+ 'transgender-alt',
+ 'trash',
+ 'trash-o',
+ 'tree',
+ 'trello',
+ 'tripadvisor',
+ 'trophy',
+ 'truck',
+ 'try',
+ 'tty',
+ 'tumblr',
+ 'tumblr-square',
+ 'twitch',
+ 'twitter',
+ 'twitter-square',
+ 'umbrella',
+ 'underline',
+ 'universal-access',
+ 'unlock',
+ 'unlock-alt',
+ 'upload',
+ 'usb',
+ 'user',
+ 'user-circle',
+ 'user-circle-o',
+ 'user-md',
+ 'user-o',
+ 'user-plus',
+ 'user-secret',
+ 'user-times',
+ 'venus',
+ 'venus-double',
+ 'venus-mars',
+ 'viacoin',
+ 'viadeo',
+ 'viadeo-square',
+ 'video-camera',
+ 'vimeo',
+ 'vimeo-square',
+ 'vine',
+ 'vk',
+ 'volume-control-phone',
+ 'volume-down',
+ 'volume-off',
+ 'volume-up',
+ 'wechat',
+ 'weibo',
+ 'whatsapp',
+ 'wheelchair',
+ 'wheelchair-alt',
+ 'wifi',
+ 'wikipedia-w',
+ 'window-maximize',
+ 'window-minimize',
+ 'window-restore',
+ 'windows',
+ 'wordpress',
+ 'wpbeginner',
+ 'wpexplorer',
+ 'wpforms',
+ 'wrench',
+ 'xing',
+ 'xing-square',
+ 'y-combinator',
+ 'yahoo',
+ 'yelp',
+ 'yoast',
+ 'youtube',
+ 'youtube-play',
+ 'youtube-square'
+ ],
+ 'fa-solid:': [
+ 'abacus',
+ 'ad',
+ 'address-book',
+ 'address-card',
+ 'adjust',
+ 'air-freshener',
+ 'align-center',
+ 'align-justify',
+ 'align-left',
+ 'align-right',
+ 'allergies',
+ 'ambulance',
+ 'american-sign-language-interpreting',
+ 'anchor',
+ 'angle-double-down',
+ 'angle-double-left',
+ 'angle-double-right',
+ 'angle-double-up',
+ 'angle-down',
+ 'angle-left',
+ 'angle-right',
+ 'angle-up',
+ 'angry',
+ 'ankh',
+ 'apple-alt',
+ 'archive',
+ 'archway',
+ 'arrow-alt-circle-down',
+ 'arrow-alt-circle-left',
+ 'arrow-alt-circle-right',
+ 'arrow-alt-circle-up',
+ 'arrow-circle-down',
+ 'arrow-circle-left',
+ 'arrow-circle-right',
+ 'arrow-circle-up',
+ 'arrow-down',
+ 'arrow-left',
+ 'arrow-right',
+ 'arrow-up',
+ 'arrows-alt',
+ 'arrows-alt-h',
+ 'arrows-alt-v',
+ 'assistive-listening-systems',
+ 'asterisk',
+ 'at',
+ 'atlas',
+ 'atom',
+ 'audio-description',
+ 'award',
+ 'baby',
+ 'baby-carriage',
+ 'backspace',
+ 'backward',
+ 'bacon',
+ 'bacteria',
+ 'bacterium',
+ 'bahai',
+ 'balance-scale',
+ 'balance-scale-left',
+ 'balance-scale-right',
+ 'ban',
+ 'band-aid',
+ 'barcode',
+ 'bars',
+ 'baseball-ball',
+ 'basketball-ball',
+ 'bath',
+ 'battery-empty',
+ 'battery-full',
+ 'battery-half',
+ 'battery-quarter',
+ 'battery-three-quarters',
+ 'bed',
+ 'beer',
+ 'bell',
+ 'bell-slash',
+ 'bezier-curve',
+ 'bible',
+ 'bicycle',
+ 'biking',
+ 'binoculars',
+ 'biohazard',
+ 'birthday-cake',
+ 'blender',
+ 'blender-phone',
+ 'blind',
+ 'blog',
+ 'bold',
+ 'bolt',
+ 'bomb',
+ 'bone',
+ 'bong',
+ 'book',
+ 'book-dead',
+ 'book-medical',
+ 'book-open',
+ 'book-reader',
+ 'bookmark',
+ 'border-all',
+ 'border-none',
+ 'border-style',
+ 'bowling-ball',
+ 'box',
+ 'box-open',
+ 'box-tissue',
+ 'boxes',
+ 'braille',
+ 'brain',
+ 'bread-slice',
+ 'briefcase',
+ 'briefcase-medical',
+ 'broadcast-tower',
+ 'broom',
+ 'brush',
+ 'bug',
+ 'building',
+ 'bullhorn',
+ 'bullseye',
+ 'burn',
+ 'bus',
+ 'bus-alt',
+ 'business-time',
+ 'calculator',
+ 'calculator-alt',
+ 'calendar',
+ 'calendar-alt',
+ 'calendar-check',
+ 'calendar-day',
+ 'calendar-minus',
+ 'calendar-plus',
+ 'calendar-times',
+ 'calendar-week',
+ 'camera',
+ 'camera-retro',
+ 'campground',
+ 'candy-cane',
+ 'cannabis',
+ 'capsules',
+ 'car',
+ 'car-alt',
+ 'car-battery',
+ 'car-crash',
+ 'car-side',
+ 'caravan',
+ 'caret-down',
+ 'caret-left',
+ 'caret-right',
+ 'caret-square-down',
+ 'caret-square-left',
+ 'caret-square-right',
+ 'caret-square-up',
+ 'caret-up',
+ 'carrot',
+ 'cart-arrow-down',
+ 'cart-plus',
+ 'cash-register',
+ 'cat',
+ 'certificate',
+ 'chair',
+ 'chalkboard',
+ 'chalkboard-teacher',
+ 'charging-station',
+ 'chart-area',
+ 'chart-bar',
+ 'chart-line',
+ 'chart-pie',
+ 'check',
+ 'check-circle',
+ 'check-double',
+ 'check-square',
+ 'cheese',
+ 'chess',
+ 'chess-bishop',
+ 'chess-board',
+ 'chess-king',
+ 'chess-knight',
+ 'chess-pawn',
+ 'chess-queen',
+ 'chess-rook',
+ 'chevron-circle-down',
+ 'chevron-circle-left',
+ 'chevron-circle-right',
+ 'chevron-circle-up',
+ 'chevron-down',
+ 'chevron-left',
+ 'chevron-right',
+ 'chevron-up',
+ 'child',
+ 'church',
+ 'circle',
+ 'circle-notch',
+ 'city',
+ 'clinic-medical',
+ 'clipboard',
+ 'clipboard-check',
+ 'clipboard-list',
+ 'clock',
+ 'clone',
+ 'closed-captioning',
+ 'cloud',
+ 'cloud-download-alt',
+ 'cloud-meatball',
+ 'cloud-moon',
+ 'cloud-moon-rain',
+ 'cloud-rain',
+ 'cloud-showers-heavy',
+ 'cloud-sun',
+ 'cloud-sun-rain',
+ 'cloud-upload-alt',
+ 'cocktail',
+ 'code',
+ 'code-branch',
+ 'coffee',
+ 'cog',
+ 'cogs',
+ 'coins',
+ 'columns',
+ 'comment',
+ 'comment-alt',
+ 'comment-dollar',
+ 'comment-dots',
+ 'comment-medical',
+ 'comment-slash',
+ 'comments',
+ 'comments-dollar',
+ 'compact-disc',
+ 'compass',
+ 'compress',
+ 'compress-alt',
+ 'compress-arrows-alt',
+ 'concierge-bell',
+ 'cookie',
+ 'cookie-bite',
+ 'copy',
+ 'copyright',
+ 'couch',
+ 'credit-card',
+ 'crop',
+ 'crop-alt',
+ 'cross',
+ 'crosshairs',
+ 'crow',
+ 'crown',
+ 'crutch',
+ 'cube',
+ 'cubes',
+ 'cut',
+ 'database',
+ 'deaf',
+ 'democrat',
+ 'desktop',
+ 'dharmachakra',
+ 'diagnoses',
+ 'dice',
+ 'dice-d20',
+ 'dice-d6',
+ 'dice-five',
+ 'dice-four',
+ 'dice-one',
+ 'dice-six',
+ 'dice-three',
+ 'dice-two',
+ 'digital-tachograph',
+ 'directions',
+ 'disease',
+ 'divide',
+ 'dizzy',
+ 'dna',
+ 'dog',
+ 'dollar-sign',
+ 'dolly',
+ 'dolly-flatbed',
+ 'donate',
+ 'door-closed',
+ 'door-open',
+ 'dot-circle',
+ 'dove',
+ 'download',
+ 'drafting-compass',
+ 'dragon',
+ 'draw-polygon',
+ 'drum',
+ 'drum-steelpan',
+ 'drumstick-bite',
+ 'dumbbell',
+ 'dumpster',
+ 'dumpster-fire',
+ 'dungeon',
+ 'edit',
+ 'egg',
+ 'eject',
+ 'ellipsis-h',
+ 'ellipsis-v',
+ 'empty-set',
+ 'envelope',
+ 'envelope-open',
+ 'envelope-open-text',
+ 'envelope-square',
+ 'equals',
+ 'eraser',
+ 'ethernet',
+ 'euro-sign',
+ 'exchange-alt',
+ 'exclamation',
+ 'exclamation-circle',
+ 'exclamation-triangle',
+ 'expand',
+ 'expand-alt',
+ 'expand-arrows-alt',
+ 'external-link-alt',
+ 'external-link-square-alt',
+ 'eye',
+ 'eye-dropper',
+ 'eye-slash',
+ 'fan',
+ 'fast-backward',
+ 'fast-forward',
+ 'faucet',
+ 'fax',
+ 'feather',
+ 'feather-alt',
+ 'female',
+ 'fighter-jet',
+ 'file',
+ 'file-alt',
+ 'file-archive',
+ 'file-audio',
+ 'file-code',
+ 'file-contract',
+ 'file-csv',
+ 'file-download',
+ 'file-excel',
+ 'file-export',
+ 'file-image',
+ 'file-import',
+ 'file-invoice',
+ 'file-invoice-dollar',
+ 'file-medical',
+ 'file-medical-alt',
+ 'file-pdf',
+ 'file-powerpoint',
+ 'file-prescription',
+ 'file-signature',
+ 'file-upload',
+ 'file-video',
+ 'file-word',
+ 'fill',
+ 'fill-drip',
+ 'film',
+ 'filter',
+ 'fingerprint',
+ 'fire',
+ 'fire-alt',
+ 'fire-extinguisher',
+ 'first-aid',
+ 'fish',
+ 'fist-raised',
+ 'flag',
+ 'flag-checkered',
+ 'flag-usa',
+ 'flask',
+ 'flushed',
+ 'folder',
+ 'folder-minus',
+ 'folder-open',
+ 'folder-plus',
+ 'font',
+ 'football-ball',
+ 'forward',
+ 'frog',
+ 'frown',
+ 'frown-open',
+ 'function',
+ 'funnel-dollar',
+ 'futbol',
+ 'gamepad',
+ 'gas-pump',
+ 'gavel',
+ 'gem',
+ 'genderless',
+ 'ghost',
+ 'gift',
+ 'gifts',
+ 'glass-cheers',
+ 'glass-martini',
+ 'glass-martini-alt',
+ 'glass-whiskey',
+ 'glasses',
+ 'globe',
+ 'globe-africa',
+ 'globe-americas',
+ 'globe-asia',
+ 'globe-europe',
+ 'golf-ball',
+ 'gopuram',
+ 'graduation-cap',
+ 'greater-than',
+ 'greater-than-equal',
+ 'grimace',
+ 'grin',
+ 'grin-alt',
+ 'grin-beam',
+ 'grin-beam-sweat',
+ 'grin-hearts',
+ 'grin-squint',
+ 'grin-squint-tears',
+ 'grin-stars',
+ 'grin-tears',
+ 'grin-tongue',
+ 'grin-tongue-squint',
+ 'grin-tongue-wink',
+ 'grin-wink',
+ 'grip-horizontal',
+ 'grip-lines',
+ 'grip-lines-vertical',
+ 'grip-vertical',
+ 'guitar',
+ 'h-square',
+ 'hamburger',
+ 'hammer',
+ 'hamsa',
+ 'hand-holding',
+ 'hand-holding-heart',
+ 'hand-holding-medical',
+ 'hand-holding-usd',
+ 'hand-holding-water',
+ 'hand-lizard',
+ 'hand-middle-finger',
+ 'hand-paper',
+ 'hand-peace',
+ 'hand-point-down',
+ 'hand-point-left',
+ 'hand-point-right',
+ 'hand-point-up',
+ 'hand-pointer',
+ 'hand-rock',
+ 'hand-scissors',
+ 'hand-sparkles',
+ 'hand-spock',
+ 'hands',
+ 'hands-helping',
+ 'hands-wash',
+ 'handshake',
+ 'handshake-alt-slash',
+ 'handshake-slash',
+ 'hanukiah',
+ 'hard-hat',
+ 'hashtag',
+ 'hat-cowboy',
+ 'hat-cowboy-side',
+ 'hat-wizard',
+ 'hdd',
+ 'head-side-cough',
+ 'head-side-cough-slash',
+ 'head-side-mask',
+ 'head-side-virus',
+ 'heading',
+ 'headphones',
+ 'headphones-alt',
+ 'headset',
+ 'heart',
+ 'heart-broken',
+ 'heartbeat',
+ 'helicopter',
+ 'highlighter',
+ 'hiking',
+ 'hippo',
+ 'history',
+ 'hockey-puck',
+ 'holly-berry',
+ 'home',
+ 'horse',
+ 'horse-head',
+ 'hospital',
+ 'hospital-alt',
+ 'hospital-symbol',
+ 'hospital-user',
+ 'hot-tub',
+ 'hotdog',
+ 'hotel',
+ 'hourglass',
+ 'hourglass-end',
+ 'hourglass-half',
+ 'hourglass-start',
+ 'house-damage',
+ 'house-user',
+ 'hryvnia',
+ 'i-cursor',
+ 'ice-cream',
+ 'icicles',
+ 'icons',
+ 'id-badge',
+ 'id-card',
+ 'id-card-alt',
+ 'igloo',
+ 'image',
+ 'images',
+ 'inbox',
+ 'indent',
+ 'industry',
+ 'infinity',
+ 'info',
+ 'info-circle',
+ 'integral',
+ 'intersection',
+ 'italic',
+ 'jedi',
+ 'joint',
+ 'journal-whills',
+ 'kaaba',
+ 'key',
+ 'keyboard',
+ 'khanda',
+ 'kiss',
+ 'kiss-beam',
+ 'kiss-wink-heart',
+ 'kiwi-bird',
+ 'lambda',
+ 'landmark',
+ 'language',
+ 'laptop',
+ 'laptop-code',
+ 'laptop-house',
+ 'laptop-medical',
+ 'laugh',
+ 'laugh-beam',
+ 'laugh-squint',
+ 'laugh-wink',
+ 'layer-group',
+ 'leaf',
+ 'lemon',
+ 'less-than',
+ 'less-than-equal',
+ 'level-down-alt',
+ 'level-up-alt',
+ 'life-ring',
+ 'lightbulb',
+ 'link',
+ 'lira-sign',
+ 'list',
+ 'list-alt',
+ 'list-ol',
+ 'list-ul',
+ 'location-arrow',
+ 'lock',
+ 'lock-open',
+ 'long-arrow-alt-down',
+ 'long-arrow-alt-left',
+ 'long-arrow-alt-right',
+ 'long-arrow-alt-up',
+ 'low-vision',
+ 'luggage-cart',
+ 'lungs',
+ 'lungs-virus',
+ 'magic',
+ 'magnet',
+ 'mail-bulk',
+ 'male',
+ 'map',
+ 'map-marked',
+ 'map-marked-alt',
+ 'map-marker',
+ 'map-marker-alt',
+ 'map-pin',
+ 'map-signs',
+ 'marker',
+ 'mars',
+ 'mars-double',
+ 'mars-stroke',
+ 'mars-stroke-h',
+ 'mars-stroke-v',
+ 'mask',
+ 'medal',
+ 'medkit',
+ 'meh',
+ 'meh-blank',
+ 'meh-rolling-eyes',
+ 'memory',
+ 'menorah',
+ 'mercury',
+ 'meteor',
+ 'microchip',
+ 'microphone',
+ 'microphone-alt',
+ 'microphone-alt-slash',
+ 'microphone-slash',
+ 'microscope',
+ 'minus',
+ 'minus-circle',
+ 'minus-square',
+ 'mitten',
+ 'mobile',
+ 'mobile-alt',
+ 'money-bill',
+ 'money-bill-alt',
+ 'money-bill-wave',
+ 'money-bill-wave-alt',
+ 'money-check',
+ 'money-check-alt',
+ 'monument',
+ 'moon',
+ 'mortar-pestle',
+ 'mosque',
+ 'motorcycle',
+ 'mountain',
+ 'mouse',
+ 'mouse-pointer',
+ 'mug-hot',
+ 'music',
+ 'network-wired',
+ 'neuter',
+ 'newspaper',
+ 'not-equal',
+ 'notes-medical',
+ 'object-group',
+ 'object-ungroup',
+ 'oil-can',
+ 'om',
+ 'omega',
+ 'otter',
+ 'outdent',
+ 'pager',
+ 'paint-brush',
+ 'paint-roller',
+ 'palette',
+ 'pallet',
+ 'paper-plane',
+ 'paperclip',
+ 'parachute-box',
+ 'paragraph',
+ 'parking',
+ 'passport',
+ 'pastafarianism',
+ 'paste',
+ 'pause',
+ 'pause-circle',
+ 'paw',
+ 'peace',
+ 'pen',
+ 'pen-alt',
+ 'pen-fancy',
+ 'pen-nib',
+ 'pen-square',
+ 'pencil-alt',
+ 'pencil-ruler',
+ 'people-arrows',
+ 'people-carry',
+ 'pepper-hot',
+ 'percent',
+ 'percentage',
+ 'person-booth',
+ 'phone',
+ 'phone-alt',
+ 'phone-slash',
+ 'phone-square',
+ 'phone-square-alt',
+ 'phone-volume',
+ 'photo-video',
+ 'pi',
+ 'piggy-bank',
+ 'pills',
+ 'pizza-slice',
+ 'place-of-worship',
+ 'plane',
+ 'plane-arrival',
+ 'plane-departure',
+ 'plane-slash',
+ 'play',
+ 'play-circle',
+ 'plug',
+ 'plus',
+ 'plus-circle',
+ 'plus-square',
+ 'podcast',
+ 'poll',
+ 'poll-h',
+ 'poo',
+ 'poo-storm',
+ 'poop',
+ 'portrait',
+ 'pound-sign',
+ 'power-off',
+ 'pray',
+ 'praying-hands',
+ 'prescription',
+ 'prescription-bottle',
+ 'prescription-bottle-alt',
+ 'print',
+ 'procedures',
+ 'project-diagram',
+ 'pump-medical',
+ 'pump-soap',
+ 'puzzle-piece',
+ 'qrcode',
+ 'question',
+ 'question-circle',
+ 'quidditch',
+ 'quote-left',
+ 'quote-right',
+ 'quran',
+ 'radiation',
+ 'radiation-alt',
+ 'rainbow',
+ 'random',
+ 'receipt',
+ 'record-vinyl',
+ 'recycle',
+ 'redo',
+ 'redo-alt',
+ 'registered',
+ 'remove-format',
+ 'reply',
+ 'reply-all',
+ 'republican',
+ 'restroom',
+ 'retweet',
+ 'ribbon',
+ 'ring',
+ 'road',
+ 'robot',
+ 'rocket',
+ 'route',
+ 'rss',
+ 'rss-square',
+ 'ruble-sign',
+ 'ruler',
+ 'ruler-combined',
+ 'ruler-horizontal',
+ 'ruler-vertical',
+ 'running',
+ 'rupee-sign',
+ 'sad-cry',
+ 'sad-tear',
+ 'satellite',
+ 'satellite-dish',
+ 'save',
+ 'school',
+ 'screwdriver',
+ 'scroll',
+ 'sd-card',
+ 'search',
+ 'search-dollar',
+ 'search-location',
+ 'search-minus',
+ 'search-plus',
+ 'seedling',
+ 'server',
+ 'shapes',
+ 'share',
+ 'share-alt',
+ 'share-alt-square',
+ 'share-square',
+ 'shekel-sign',
+ 'shield-alt',
+ 'shield-virus',
+ 'ship',
+ 'shipping-fast',
+ 'shoe-prints',
+ 'shopping-bag',
+ 'shopping-basket',
+ 'shopping-cart',
+ 'shower',
+ 'shuttle-van',
+ 'sigma',
+ 'sign',
+ 'sign-in-alt',
+ 'sign-language',
+ 'sign-out-alt',
+ 'signal',
+ 'signal-alt',
+ 'signal-alt-slash',
+ 'signal-slash',
+ 'signature',
+ 'sim-card',
+ 'sink',
+ 'sitemap',
+ 'skating',
+ 'skiing',
+ 'skiing-nordic',
+ 'skull',
+ 'skull-crossbones',
+ 'slash',
+ 'sleigh',
+ 'sliders-h',
+ 'smile',
+ 'smile-beam',
+ 'smile-wink',
+ 'smog',
+ 'smoking',
+ 'smoking-ban',
+ 'sms',
+ 'snowboarding',
+ 'snowflake',
+ 'snowman',
+ 'snowplow',
+ 'soap',
+ 'socks',
+ 'solar-panel',
+ 'sort',
+ 'sort-alpha-down',
+ 'sort-alpha-down-alt',
+ 'sort-alpha-up',
+ 'sort-alpha-up-alt',
+ 'sort-amount-down',
+ 'sort-amount-down-alt',
+ 'sort-amount-up',
+ 'sort-amount-up-alt',
+ 'sort-down',
+ 'sort-numeric-down',
+ 'sort-numeric-down-alt',
+ 'sort-numeric-up',
+ 'sort-numeric-up-alt',
+ 'sort-up',
+ 'spa',
+ 'space-shuttle',
+ 'spell-check',
+ 'spider',
+ 'spinner',
+ 'splotch',
+ 'spray-can',
+ 'square',
+ 'square-full',
+ 'square-root',
+ 'square-root-alt',
+ 'stamp',
+ 'star',
+ 'star-and-crescent',
+ 'star-half',
+ 'star-half-alt',
+ 'star-of-david',
+ 'star-of-life',
+ 'step-backward',
+ 'step-forward',
+ 'stethoscope',
+ 'sticky-note',
+ 'stop',
+ 'stop-circle',
+ 'stopwatch',
+ 'stopwatch-20',
+ 'store',
+ 'store-alt',
+ 'store-alt-slash',
+ 'store-slash',
+ 'stream',
+ 'street-view',
+ 'strikethrough',
+ 'stroopwafel',
+ 'subscript',
+ 'subway',
+ 'suitcase',
+ 'suitcase-rolling',
+ 'sun',
+ 'superscript',
+ 'surprise',
+ 'swatchbook',
+ 'swimmer',
+ 'swimming-pool',
+ 'synagogue',
+ 'sync',
+ 'sync-alt',
+ 'syringe',
+ 'table',
+ 'table-tennis',
+ 'tablet',
+ 'tablet-alt',
+ 'tablets',
+ 'tachometer-alt',
+ 'tag',
+ 'tags',
+ 'tally',
+ 'tape',
+ 'tasks',
+ 'taxi',
+ 'teeth',
+ 'teeth-open',
+ 'temperature-high',
+ 'temperature-low',
+ 'tenge',
+ 'terminal',
+ 'text-height',
+ 'text-width',
+ 'th',
+ 'th-large',
+ 'th-list',
+ 'theater-masks',
+ 'thermometer',
+ 'thermometer-empty',
+ 'thermometer-full',
+ 'thermometer-half',
+ 'thermometer-quarter',
+ 'thermometer-three-quarters',
+ 'theta',
+ 'thumbs-down',
+ 'thumbs-up',
+ 'thumbtack',
+ 'ticket-alt',
+ 'tilde',
+ 'times',
+ 'times-circle',
+ 'tint',
+ 'tint-slash',
+ 'tired',
+ 'toggle-off',
+ 'toggle-on',
+ 'toilet',
+ 'toilet-paper',
+ 'toilet-paper-slash',
+ 'toolbox',
+ 'tools',
+ 'tooth',
+ 'torah',
+ 'torii-gate',
+ 'tractor',
+ 'trademark',
+ 'traffic-light',
+ 'trailer',
+ 'train',
+ 'tram',
+ 'transgender',
+ 'transgender-alt',
+ 'trash',
+ 'trash-alt',
+ 'trash-restore',
+ 'trash-restore-alt',
+ 'tree',
+ 'trophy',
+ 'truck',
+ 'truck-loading',
+ 'truck-monster',
+ 'truck-moving',
+ 'truck-pickup',
+ 'tshirt',
+ 'tty',
+ 'tv',
+ 'umbrella',
+ 'umbrella-beach',
+ 'underline',
+ 'undo',
+ 'undo-alt',
+ 'union',
+ 'universal-access',
+ 'university',
+ 'unlink',
+ 'unlock',
+ 'unlock-alt',
+ 'upload',
+ 'user',
+ 'user-alt',
+ 'user-alt-slash',
+ 'user-astronaut',
+ 'user-check',
+ 'user-circle',
+ 'user-clock',
+ 'user-cog',
+ 'user-edit',
+ 'user-friends',
+ 'user-graduate',
+ 'user-injured',
+ 'user-lock',
+ 'user-md',
+ 'user-minus',
+ 'user-ninja',
+ 'user-nurse',
+ 'user-plus',
+ 'user-secret',
+ 'user-shield',
+ 'user-slash',
+ 'user-tag',
+ 'user-tie',
+ 'user-times',
+ 'users',
+ 'users-cog',
+ 'users-slash',
+ 'utensil-spoon',
+ 'utensils',
+ 'value-absolute',
+ 'vector-square',
+ 'venus',
+ 'venus-double',
+ 'venus-mars',
+ 'vest',
+ 'vest-patches',
+ 'vial',
+ 'vials',
+ 'video',
+ 'video-slash',
+ 'vihara',
+ 'virus',
+ 'virus-slash',
+ 'viruses',
+ 'voicemail',
+ 'volleyball-ball',
+ 'volume',
+ 'volume-down',
+ 'volume-mute',
+ 'volume-off',
+ 'volume-slash',
+ 'volume-up',
+ 'vote-yea',
+ 'vr-cardboard',
+ 'walking',
+ 'wallet',
+ 'warehouse',
+ 'water',
+ 'wave-square',
+ 'weight',
+ 'weight-hanging',
+ 'wheelchair',
+ 'wifi',
+ 'wifi-slash',
+ 'wind',
+ 'window-close',
+ 'window-maximize',
+ 'window-minimize',
+ 'window-restore',
+ 'wine-bottle',
+ 'wine-glass',
+ 'wine-glass-alt',
+ 'won-sign',
+ 'wrench',
+ 'x-ray',
+ 'yen-sign',
+ 'yin-yang'
+ ]
+}
diff --git a/src/components/ImageViewer/index.ts b/src/components/ImageViewer/index.ts
new file mode 100644
index 0000000..3868135
--- /dev/null
+++ b/src/components/ImageViewer/index.ts
@@ -0,0 +1,33 @@
+import ImageViewer from './src/ImageViewer.vue'
+import { isClient } from '@/utils/is'
+import { createVNode, render, VNode } from 'vue'
+import { ImageViewerProps } from './src/types'
+
+let instance: Nullable = null
+
+export function createImageViewer(options: ImageViewerProps) {
+ if (!isClient) return
+ const {
+ urlList,
+ initialIndex = 0,
+ infinite = true,
+ hideOnClickModal = false,
+ appendToBody = false,
+ zIndex = 2000,
+ show = true
+ } = options
+
+ const propsData: Partial = {}
+ const container = document.createElement('div')
+ propsData.urlList = urlList
+ propsData.initialIndex = initialIndex
+ propsData.infinite = infinite
+ propsData.hideOnClickModal = hideOnClickModal
+ propsData.appendToBody = appendToBody
+ propsData.zIndex = zIndex
+ propsData.show = show
+
+ document.body.appendChild(container)
+ instance = createVNode(ImageViewer, propsData)
+ render(instance, container)
+}
diff --git a/src/components/ImageViewer/src/ImageViewer.vue b/src/components/ImageViewer/src/ImageViewer.vue
new file mode 100644
index 0000000..5c4921e
--- /dev/null
+++ b/src/components/ImageViewer/src/ImageViewer.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
diff --git a/src/components/ImageViewer/src/types.ts b/src/components/ImageViewer/src/types.ts
new file mode 100644
index 0000000..1932d74
--- /dev/null
+++ b/src/components/ImageViewer/src/types.ts
@@ -0,0 +1,9 @@
+export interface ImageViewerProps {
+ urlList?: string[]
+ zIndex?: number
+ initialIndex?: number
+ infinite?: boolean
+ hideOnClickModal?: boolean
+ appendToBody?: boolean
+ show?: boolean
+}
diff --git a/src/components/ImportForm/index.ts b/src/components/ImportForm/index.ts
new file mode 100644
index 0000000..9eed682
--- /dev/null
+++ b/src/components/ImportForm/index.ts
@@ -0,0 +1,3 @@
+import ImportForm from './src/ImportForm.vue'
+
+export { ImportForm }
diff --git a/src/components/ImportForm/src/ImportDetailForm.vue b/src/components/ImportForm/src/ImportDetailForm.vue
new file mode 100644
index 0000000..d8a4533
--- /dev/null
+++ b/src/components/ImportForm/src/ImportDetailForm.vue
@@ -0,0 +1,346 @@
+
+
+
+
+
+
+
diff --git a/src/components/ImportForm/src/ImportForm.vue b/src/components/ImportForm/src/ImportForm.vue
new file mode 100644
index 0000000..7276097
--- /dev/null
+++ b/src/components/ImportForm/src/ImportForm.vue
@@ -0,0 +1,382 @@
+
+
+
+
+
+
+
diff --git a/src/components/Infotip/index.ts b/src/components/Infotip/index.ts
new file mode 100644
index 0000000..413fa5f
--- /dev/null
+++ b/src/components/Infotip/index.ts
@@ -0,0 +1,3 @@
+import Infotip from './src/Infotip.vue'
+
+export { Infotip }
diff --git a/src/components/Infotip/src/Infotip.vue b/src/components/Infotip/src/Infotip.vue
new file mode 100644
index 0000000..0afd692
--- /dev/null
+++ b/src/components/Infotip/src/Infotip.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+ {{ showIndex ? `${$index + 1}、` : '' }}{{ typeof item === 'string' ? item : item.label }}
+
+
+
+
+
diff --git a/src/components/InputPassword/index.ts b/src/components/InputPassword/index.ts
new file mode 100644
index 0000000..1dcc38e
--- /dev/null
+++ b/src/components/InputPassword/index.ts
@@ -0,0 +1,3 @@
+import InputPassword from './src/InputPassword.vue'
+
+export { InputPassword }
diff --git a/src/components/InputPassword/src/InputPassword.vue b/src/components/InputPassword/src/InputPassword.vue
new file mode 100644
index 0000000..b8c93e7
--- /dev/null
+++ b/src/components/InputPassword/src/InputPassword.vue
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
diff --git a/src/components/LabelForm/index.ts b/src/components/LabelForm/index.ts
new file mode 100644
index 0000000..d8d8c41
--- /dev/null
+++ b/src/components/LabelForm/index.ts
@@ -0,0 +1,3 @@
+import LabelForm from './src/LabelForm.vue'
+
+export { LabelForm }
diff --git a/src/components/LabelForm/src/LabelForm.vue b/src/components/LabelForm/src/LabelForm.vue
new file mode 100644
index 0000000..a51ca0c
--- /dev/null
+++ b/src/components/LabelForm/src/LabelForm.vue
@@ -0,0 +1,622 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope2.$index + 1 }}
+
+
+
+
+
+
+
+
+
+ 添加箱
+
+
+ 移出
+
+
+
+
+
+
+
+
+ {{ scope.$index + 1 }}
+
+
+
+
+
+
+
+
+
+
+ 移出
+
+
+
+
+ 添加托
+
+
+
+
+
+
+
+
+
+ {{ scope1.$index + 1 }}
+
+
+
+
+
+
+
+
+
+ 添加箱
+
+
+ 移出
+
+
+
+
+
+
+
+
+
+
+
+ {{ uomLabel(scope.row) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/ListTable/index.ts b/src/components/ListTable/index.ts
new file mode 100644
index 0000000..e95f79c
--- /dev/null
+++ b/src/components/ListTable/index.ts
@@ -0,0 +1,3 @@
+import ListTable from './src/ListTable.vue'
+
+export { ListTable }
diff --git a/src/components/ListTable/src/ListTable.vue b/src/components/ListTable/src/ListTable.vue
new file mode 100644
index 0000000..c542748
--- /dev/null
+++ b/src/components/ListTable/src/ListTable.vue
@@ -0,0 +1,202 @@
+
+
+
+
+
+
diff --git a/src/components/Pagination/index.vue b/src/components/Pagination/index.vue
new file mode 100644
index 0000000..b88997b
--- /dev/null
+++ b/src/components/Pagination/index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
diff --git a/src/components/PreviewPDF/index.vue b/src/components/PreviewPDF/index.vue
new file mode 100644
index 0000000..2432ce2
--- /dev/null
+++ b/src/components/PreviewPDF/index.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Qrcode/index.ts b/src/components/Qrcode/index.ts
new file mode 100644
index 0000000..ce46161
--- /dev/null
+++ b/src/components/Qrcode/index.ts
@@ -0,0 +1,3 @@
+import Qrcode from './src/Qrcode.vue'
+
+export { Qrcode }
diff --git a/src/components/Qrcode/src/Qrcode.vue b/src/components/Qrcode/src/Qrcode.vue
new file mode 100644
index 0000000..f0ce7b7
--- /dev/null
+++ b/src/components/Qrcode/src/Qrcode.vue
@@ -0,0 +1,253 @@
+
+
+
+
+
+
+
diff --git a/src/components/Remarks/index.ts b/src/components/Remarks/index.ts
new file mode 100644
index 0000000..d715496
--- /dev/null
+++ b/src/components/Remarks/index.ts
@@ -0,0 +1,3 @@
+import Remarks from './src/Remarks.vue'
+
+export { Remarks }
diff --git a/src/components/Remarks/src/Remarks.vue b/src/components/Remarks/src/Remarks.vue
new file mode 100644
index 0000000..857d910
--- /dev/null
+++ b/src/components/Remarks/src/Remarks.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ item.nickname }}
+
{{formatDate(item.createTime)}}
+
+
{{ item.remark }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/RouterSearch/index.vue b/src/components/RouterSearch/index.vue
new file mode 100644
index 0000000..a29d5c9
--- /dev/null
+++ b/src/components/RouterSearch/index.vue
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Search/index.ts b/src/components/Search/index.ts
new file mode 100644
index 0000000..fcc6f16
--- /dev/null
+++ b/src/components/Search/index.ts
@@ -0,0 +1,3 @@
+import Search from './src/Search.vue'
+
+export { Search }
diff --git a/src/components/Search/src/Search.vue b/src/components/Search/src/Search.vue
new file mode 100644
index 0000000..81f58b9
--- /dev/null
+++ b/src/components/Search/src/Search.vue
@@ -0,0 +1,392 @@
+
+
+
+
+
+
+
+
+
+
+ {{ t('common.query') }}
+
+
+
+ {{ t('common.reset') }}
+
+
+ {{ t(visible ? 'common.shrink' : 'common.expand') }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SearchHigh/index.ts b/src/components/SearchHigh/index.ts
new file mode 100644
index 0000000..a559d09
--- /dev/null
+++ b/src/components/SearchHigh/index.ts
@@ -0,0 +1,3 @@
+import SearchHigh from './src/SearchHigh.vue'
+
+export { SearchHigh }
diff --git a/src/components/SearchHigh/src/SearchHigh.vue b/src/components/SearchHigh/src/SearchHigh.vue
new file mode 100644
index 0000000..97e5973
--- /dev/null
+++ b/src/components/SearchHigh/src/SearchHigh.vue
@@ -0,0 +1,435 @@
+
+
+
+
+
+
diff --git a/src/components/SearchTable/index.ts b/src/components/SearchTable/index.ts
new file mode 100644
index 0000000..4293a05
--- /dev/null
+++ b/src/components/SearchTable/index.ts
@@ -0,0 +1,3 @@
+import SearchTable from './src/SearchTable.vue'
+
+export { SearchTable}
diff --git a/src/components/SearchTable/src/SearchTable.vue b/src/components/SearchTable/src/SearchTable.vue
new file mode 100644
index 0000000..b32d0d2
--- /dev/null
+++ b/src/components/SearchTable/src/SearchTable.vue
@@ -0,0 +1,312 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/SearchTableCount/index.ts b/src/components/SearchTableCount/index.ts
new file mode 100644
index 0000000..a43f93a
--- /dev/null
+++ b/src/components/SearchTableCount/index.ts
@@ -0,0 +1,3 @@
+import SearchTableCount from './src/SearchTableCount.vue'
+
+export { SearchTableCount }
diff --git a/src/components/SearchTableCount/src/SearchTableCount.vue b/src/components/SearchTableCount/src/SearchTableCount.vue
new file mode 100644
index 0000000..d49c81f
--- /dev/null
+++ b/src/components/SearchTableCount/src/SearchTableCount.vue
@@ -0,0 +1,222 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/SearchTableV2/index.ts b/src/components/SearchTableV2/index.ts
new file mode 100644
index 0000000..655979c
--- /dev/null
+++ b/src/components/SearchTableV2/index.ts
@@ -0,0 +1,3 @@
+import SearchTable from './src/SearchTableV2.vue'
+
+export { SearchTable }
diff --git a/src/components/SearchTableV2/src/SearchTableV2.vue b/src/components/SearchTableV2/src/SearchTableV2.vue
new file mode 100644
index 0000000..cfee305
--- /dev/null
+++ b/src/components/SearchTableV2/src/SearchTableV2.vue
@@ -0,0 +1,187 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Sticky/index.ts b/src/components/Sticky/index.ts
new file mode 100644
index 0000000..5e1de45
--- /dev/null
+++ b/src/components/Sticky/index.ts
@@ -0,0 +1,3 @@
+import Sticky from './src/Sticky.vue'
+
+export { Sticky }
diff --git a/src/components/Sticky/src/Sticky.vue b/src/components/Sticky/src/Sticky.vue
new file mode 100644
index 0000000..b958544
--- /dev/null
+++ b/src/components/Sticky/src/Sticky.vue
@@ -0,0 +1,143 @@
+
+
+
+
diff --git a/src/components/Table/index.ts b/src/components/Table/index.ts
new file mode 100644
index 0000000..689f64a
--- /dev/null
+++ b/src/components/Table/index.ts
@@ -0,0 +1,12 @@
+import Table from './src/Table.vue'
+import { ElTable } from 'element-plus'
+import { TableSetPropsType } from '@/types/table'
+
+export interface TableExpose {
+ setProps: (props: Recordable) => void
+ setColumn: (columnProps: TableSetPropsType[]) => void
+ selections: Recordable[]
+ elTableRef: ComponentRef
+}
+
+export { Table }
diff --git a/src/components/Table/src/Table.vue b/src/components/Table/src/Table.vue
new file mode 100644
index 0000000..e3499a9
--- /dev/null
+++ b/src/components/Table/src/Table.vue
@@ -0,0 +1,467 @@
+
+
+
+
diff --git a/src/components/Table/src/helper.ts b/src/components/Table/src/helper.ts
new file mode 100644
index 0000000..d8b34a8
--- /dev/null
+++ b/src/components/Table/src/helper.ts
@@ -0,0 +1,8 @@
+export const setIndex = (reserveIndex: boolean, index: number, size: number, current: number) => {
+ const newIndex = index + 1
+ if (reserveIndex) {
+ return size * (current - 1) + newIndex
+ } else {
+ return newIndex
+ }
+}
diff --git a/src/components/Table/src/types.ts b/src/components/Table/src/types.ts
new file mode 100644
index 0000000..1c7ff76
--- /dev/null
+++ b/src/components/Table/src/types.ts
@@ -0,0 +1,26 @@
+import { Pagination, TableColumn } from '@/types/table'
+
+export type TableProps = {
+ pageSize?: number
+ currentPage?: number
+ // 是否多选
+ selection?: boolean
+ // 是否所有的超出隐藏,优先级低于schema中的showOverflowTooltip,
+ showOverflowTooltip?: boolean
+ // 表头
+ columns?: TableColumn[]
+ // 是否展示分页
+ pagination?: Pagination | undefined
+ // 仅对 type=selection 的列有效,类型为 Boolean,为 true 则会在数据更新之后保留之前选中的数据(需指定 row-key)
+ reserveSelection?: boolean
+ // 加载状态
+ loading?: boolean
+ // 是否叠加索引
+ reserveIndex?: boolean
+ // 对齐方式
+ align?: 'left' | 'center' | 'right'
+ // 表头对齐方式
+ headerAlign?: 'left' | 'center' | 'right'
+ data?: Recordable
+ expand?: boolean
+} & Recordable
diff --git a/src/components/TableDetail/index.ts b/src/components/TableDetail/index.ts
new file mode 100644
index 0000000..4f05715
--- /dev/null
+++ b/src/components/TableDetail/index.ts
@@ -0,0 +1,3 @@
+import TableDetail from './src/TableDetail.vue'
+
+export { TableDetail }
diff --git a/src/components/TableDetail/src/TableDetail.vue b/src/components/TableDetail/src/TableDetail.vue
new file mode 100644
index 0000000..e4c2d0a
--- /dev/null
+++ b/src/components/TableDetail/src/TableDetail.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/TableForm/index.ts b/src/components/TableForm/index.ts
new file mode 100644
index 0000000..d0456f9
--- /dev/null
+++ b/src/components/TableForm/index.ts
@@ -0,0 +1,3 @@
+import Annex from './src/Annex.vue'
+
+export { Annex }
diff --git a/src/components/TableForm/src/TableForm.vue b/src/components/TableForm/src/TableForm.vue
new file mode 100644
index 0000000..eec0dcf
--- /dev/null
+++ b/src/components/TableForm/src/TableForm.vue
@@ -0,0 +1,819 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/TableFormAdjustment/index.ts b/src/components/TableFormAdjustment/index.ts
new file mode 100644
index 0000000..d078332
--- /dev/null
+++ b/src/components/TableFormAdjustment/index.ts
@@ -0,0 +1,3 @@
+import TableFormAdjustment from './src/TableFormAdjustment.vue'
+
+export { TableFormAdjustment }
diff --git a/src/components/TableFormAdjustment/src/AdjustmentDialog.vue b/src/components/TableFormAdjustment/src/AdjustmentDialog.vue
new file mode 100644
index 0000000..07be011
--- /dev/null
+++ b/src/components/TableFormAdjustment/src/AdjustmentDialog.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/TableFormAdjustment/src/TableFormAdjustment.vue b/src/components/TableFormAdjustment/src/TableFormAdjustment.vue
new file mode 100644
index 0000000..f164a7b
--- /dev/null
+++ b/src/components/TableFormAdjustment/src/TableFormAdjustment.vue
@@ -0,0 +1,455 @@
+
+
+
+
+
+
+
+
+
+
+ 调整事项(减项以负数列示):
+
+
+
+
+
+
+ {{ scope.row[headerItem.field] }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 调整事项(减项以负数列示):
+
+
+
+
+
+
+ {{ scope.row[headerItem.field] }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/TableFormCountPlan/index.ts b/src/components/TableFormCountPlan/index.ts
new file mode 100644
index 0000000..2f51d1a
--- /dev/null
+++ b/src/components/TableFormCountPlan/index.ts
@@ -0,0 +1,3 @@
+import TableFormCountPlan from './src/TableFormCountPlan.vue'
+
+export { TableFormCountPlan }
diff --git a/src/components/TableFormCountPlan/src/TableFormCountPlan.vue b/src/components/TableFormCountPlan/src/TableFormCountPlan.vue
new file mode 100644
index 0000000..7886699
--- /dev/null
+++ b/src/components/TableFormCountPlan/src/TableFormCountPlan.vue
@@ -0,0 +1,285 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/TableHead/index.ts b/src/components/TableHead/index.ts
new file mode 100644
index 0000000..7fc036b
--- /dev/null
+++ b/src/components/TableHead/index.ts
@@ -0,0 +1,3 @@
+import TableHead from './src/TableHead.vue'
+
+export { TableHead }
diff --git a/src/components/TableHead/src/TableHead.vue b/src/components/TableHead/src/TableHead.vue
new file mode 100644
index 0000000..76406f5
--- /dev/null
+++ b/src/components/TableHead/src/TableHead.vue
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Tabs/index.ts b/src/components/Tabs/index.ts
new file mode 100644
index 0000000..d0456f9
--- /dev/null
+++ b/src/components/Tabs/index.ts
@@ -0,0 +1,3 @@
+import Annex from './src/Annex.vue'
+
+export { Annex }
diff --git a/src/components/Tabs/src/Tabs.vue b/src/components/Tabs/src/Tabs.vue
new file mode 100644
index 0000000..57add6c
--- /dev/null
+++ b/src/components/Tabs/src/Tabs.vue
@@ -0,0 +1,66 @@
+
+
+
+
{{ t(`ts.${item.label}`).replace('ts.','') }}
+
+
+
+
+
+
+
diff --git a/src/components/Tooltip/index.ts b/src/components/Tooltip/index.ts
new file mode 100644
index 0000000..ab66ddf
--- /dev/null
+++ b/src/components/Tooltip/index.ts
@@ -0,0 +1,3 @@
+import Tooltip from './src/Tooltip.vue'
+
+export { Tooltip }
diff --git a/src/components/Tooltip/src/Tooltip.vue b/src/components/Tooltip/src/Tooltip.vue
new file mode 100644
index 0000000..7490bd7
--- /dev/null
+++ b/src/components/Tooltip/src/Tooltip.vue
@@ -0,0 +1,17 @@
+
+
+ {{ titel }}
+
+
+
+
diff --git a/src/components/UploadFile/index.ts b/src/components/UploadFile/index.ts
new file mode 100644
index 0000000..97c1d66
--- /dev/null
+++ b/src/components/UploadFile/index.ts
@@ -0,0 +1,5 @@
+import UploadImg from './src/UploadImg.vue'
+import UploadImgs from './src/UploadImgs.vue'
+import UploadFile from './src/UploadFile.vue'
+
+export { UploadImg, UploadImgs, UploadFile }
diff --git a/src/components/UploadFile/src/Preview.vue b/src/components/UploadFile/src/Preview.vue
new file mode 100644
index 0000000..58f5f1c
--- /dev/null
+++ b/src/components/UploadFile/src/Preview.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/UploadFile/src/UploadFile.vue b/src/components/UploadFile/src/UploadFile.vue
new file mode 100644
index 0000000..bb36778
--- /dev/null
+++ b/src/components/UploadFile/src/UploadFile.vue
@@ -0,0 +1,186 @@
+
+
+
+ {{ title }}
+
+
+ {{t('ts.大小不超过')}} {{ fileSize }}MB
+
+
+ {{ t('ts.格式为') }} {{ fileType.join('/') }} {{ t('ts.的文件') }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/UploadFile/src/UploadImg.vue b/src/components/UploadFile/src/UploadImg.vue
new file mode 100644
index 0000000..90a3422
--- /dev/null
+++ b/src/components/UploadFile/src/UploadImg.vue
@@ -0,0 +1,272 @@
+
+
+
+
+
+
+
+
+ {{ t('action.edit') }}
+
+
+
+ {{ t('action.detail') }}
+
+
+
+ {{ t('action.del') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/UploadFile/src/UploadImgs.vue b/src/components/UploadFile/src/UploadImgs.vue
new file mode 100644
index 0000000..bc05efd
--- /dev/null
+++ b/src/components/UploadFile/src/UploadImgs.vue
@@ -0,0 +1,310 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Verifition/index.ts b/src/components/Verifition/index.ts
new file mode 100644
index 0000000..bcfe6d9
--- /dev/null
+++ b/src/components/Verifition/index.ts
@@ -0,0 +1,3 @@
+import Verify from './src/Verify.vue'
+
+export { Verify }
diff --git a/src/components/Verifition/src/Verify.vue b/src/components/Verifition/src/Verify.vue
new file mode 100644
index 0000000..40881e5
--- /dev/null
+++ b/src/components/Verifition/src/Verify.vue
@@ -0,0 +1,442 @@
+
+
+
+
+ {{ t('captcha.verification') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Verifition/src/Verify/VerifyPoints.vue b/src/components/Verifition/src/Verify/VerifyPoints.vue
new file mode 100644
index 0000000..86aff85
--- /dev/null
+++ b/src/components/Verifition/src/Verify/VerifyPoints.vue
@@ -0,0 +1,252 @@
+
+
+
+
+
+
+
+
+
+
+ {{ index + 1 }}
+
+
+
+
+
+ {{ text }}
+
+
+
+
diff --git a/src/components/Verifition/src/Verify/VerifySlide.vue b/src/components/Verifition/src/Verify/VerifySlide.vue
new file mode 100644
index 0000000..eda3f61
--- /dev/null
+++ b/src/components/Verifition/src/Verify/VerifySlide.vue
@@ -0,0 +1,414 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ tipWords }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Verifition/src/Verify/index.ts b/src/components/Verifition/src/Verify/index.ts
new file mode 100644
index 0000000..0daa63a
--- /dev/null
+++ b/src/components/Verifition/src/Verify/index.ts
@@ -0,0 +1,4 @@
+import VerifySlide from './VerifySlide.vue'
+import VerifyPoints from './VerifyPoints.vue'
+
+export { VerifySlide, VerifyPoints }
diff --git a/src/components/Verifition/src/utils/ase.ts b/src/components/Verifition/src/utils/ase.ts
new file mode 100644
index 0000000..d2e6b98
--- /dev/null
+++ b/src/components/Verifition/src/utils/ase.ts
@@ -0,0 +1,14 @@
+import CryptoJS from 'crypto-js'
+/**
+ * @word 要加密的内容
+ * @keyWord String 服务器随机返回的关键字
+ * */
+export function aesEncrypt(word, keyWord = 'XwKsGlMcdPMEhR1B') {
+ const key = CryptoJS.enc.Utf8.parse(keyWord)
+ const srcs = CryptoJS.enc.Utf8.parse(word)
+ const encrypted = CryptoJS.AES.encrypt(srcs, key, {
+ mode: CryptoJS.mode.ECB,
+ padding: CryptoJS.pad.Pkcs7
+ })
+ return encrypted.toString()
+}
diff --git a/src/components/Verifition/src/utils/util.ts b/src/components/Verifition/src/utils/util.ts
new file mode 100644
index 0000000..15c1627
--- /dev/null
+++ b/src/components/Verifition/src/utils/util.ts
@@ -0,0 +1,97 @@
+export function resetSize(vm) {
+ let img_width, img_height, bar_width, bar_height //图片的宽度、高度,移动条的宽度、高度
+ const EmployeeWindow = window as any
+ const parentWidth = vm.$el.parentNode.offsetWidth || EmployeeWindow.offsetWidth
+ const parentHeight = vm.$el.parentNode.offsetHeight || EmployeeWindow.offsetHeight
+ if (vm.imgSize.width.indexOf('%') != -1) {
+ img_width = (parseInt(vm.imgSize.width) / 100) * parentWidth + 'px'
+ } else {
+ img_width = vm.imgSize.width
+ }
+
+ if (vm.imgSize.height.indexOf('%') != -1) {
+ img_height = (parseInt(vm.imgSize.height) / 100) * parentHeight + 'px'
+ } else {
+ img_height = vm.imgSize.height
+ }
+
+ if (vm.barSize.width.indexOf('%') != -1) {
+ bar_width = (parseInt(vm.barSize.width) / 100) * parentWidth + 'px'
+ } else {
+ bar_width = vm.barSize.width
+ }
+
+ if (vm.barSize.height.indexOf('%') != -1) {
+ bar_height = (parseInt(vm.barSize.height) / 100) * parentHeight + 'px'
+ } else {
+ bar_height = vm.barSize.height
+ }
+
+ return { imgWidth: img_width, imgHeight: img_height, barWidth: bar_width, barHeight: bar_height }
+}
+
+export const _code_chars = [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 'a',
+ 'b',
+ 'c',
+ 'd',
+ 'e',
+ 'f',
+ 'g',
+ 'h',
+ 'i',
+ 'j',
+ 'k',
+ 'l',
+ 'm',
+ 'n',
+ 'o',
+ 'p',
+ 'q',
+ 'r',
+ 's',
+ 't',
+ 'u',
+ 'v',
+ 'w',
+ 'x',
+ 'y',
+ 'z',
+ 'A',
+ 'B',
+ 'C',
+ 'D',
+ 'E',
+ 'F',
+ 'G',
+ 'H',
+ 'I',
+ 'J',
+ 'K',
+ 'L',
+ 'M',
+ 'N',
+ 'O',
+ 'P',
+ 'Q',
+ 'R',
+ 'S',
+ 'T',
+ 'U',
+ 'V',
+ 'W',
+ 'X',
+ 'Y',
+ 'Z'
+]
+export const _code_color1 = ['#fffff0', '#f0ffff', '#f0fff0', '#fff0f0']
+export const _code_color2 = ['#FF0033', '#006699', '#993366', '#FF9900', '#66CC66', '#FF33CC']
diff --git a/src/components/XButton/index.ts b/src/components/XButton/index.ts
new file mode 100644
index 0000000..93d03b6
--- /dev/null
+++ b/src/components/XButton/index.ts
@@ -0,0 +1,6 @@
+import XButton from './src/XButton.vue'
+import XTextButton from './src/XTextButton.vue'
+import ButtonBase from './src/ButtonBase.vue'
+import ButtonBaseMore from './src/ButtonBaseMore.vue'
+
+export { XButton, XTextButton, ButtonBase, ButtonBaseMore }
diff --git a/src/components/XButton/src/ButtonBase.vue b/src/components/XButton/src/ButtonBase.vue
new file mode 100644
index 0000000..4aa3d37
--- /dev/null
+++ b/src/components/XButton/src/ButtonBase.vue
@@ -0,0 +1,121 @@
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/XButton/src/ButtonBaseMore.vue b/src/components/XButton/src/ButtonBaseMore.vue
new file mode 100644
index 0000000..f1b7574
--- /dev/null
+++ b/src/components/XButton/src/ButtonBaseMore.vue
@@ -0,0 +1,135 @@
+
+
+
+
+ {{ item.label }}
+
+
+
+ 更多
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/XButton/src/XButton.vue b/src/components/XButton/src/XButton.vue
new file mode 100644
index 0000000..40cba1a
--- /dev/null
+++ b/src/components/XButton/src/XButton.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+ {{ title ? title : '' }}
+
+
+
+
diff --git a/src/components/XButton/src/XTextButton.vue b/src/components/XButton/src/XTextButton.vue
new file mode 100644
index 0000000..b1a922b
--- /dev/null
+++ b/src/components/XButton/src/XTextButton.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+ {{ title ? title : '' }}
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue b/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue
new file mode 100644
index 0000000..885a7ce
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue
@@ -0,0 +1,704 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue b/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue
new file mode 100644
index 0000000..e2cd467
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue
@@ -0,0 +1,635 @@
+
+
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/designer/index.ts b/src/components/bpmnProcessDesigner/package/designer/index.ts
new file mode 100644
index 0000000..8522846
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/index.ts
@@ -0,0 +1,8 @@
+import MyProcessDesigner from './ProcessDesigner.vue'
+
+MyProcessDesigner.install = function (Vue) {
+ Vue.component(MyProcessDesigner.name, MyProcessDesigner)
+}
+
+// 流程图的设计器,可编辑
+export default MyProcessDesigner
diff --git a/src/components/bpmnProcessDesigner/package/designer/index2.ts b/src/components/bpmnProcessDesigner/package/designer/index2.ts
new file mode 100644
index 0000000..ebe8ca7
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/index2.ts
@@ -0,0 +1,8 @@
+import MyProcessViewer from './ProcessViewer.vue'
+
+MyProcessViewer.install = function (Vue) {
+ Vue.component(MyProcessViewer.name, MyProcessViewer)
+}
+
+// 流程图的查看器,不可编辑
+export default MyProcessViewer
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/contentPadProvider.js b/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/contentPadProvider.js
new file mode 100644
index 0000000..8783493
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/contentPadProvider.js
@@ -0,0 +1,423 @@
+import { assign, forEach, isArray } from 'min-dash'
+
+import { is } from 'bpmn-js/lib/util/ModelUtil'
+
+import { isExpanded, isEventSubProcess } from 'bpmn-js/lib/util/DiUtil'
+
+import { isAny } from 'bpmn-js/lib/features/modeling/util/ModelingUtil'
+
+import { getChildLanes } from 'bpmn-js/lib/features/modeling/util/LaneUtil'
+
+import { hasPrimaryModifier } from 'diagram-js/lib/util/Mouse'
+
+/**
+ * A provider for BPMN 2.0 elements context pad
+ */
+export default function ContextPadProvider(
+ config,
+ injector,
+ eventBus,
+ contextPad,
+ modeling,
+ elementFactory,
+ connect,
+ create,
+ popupMenu,
+ canvas,
+ rules,
+ translate
+) {
+ config = config || {}
+
+ contextPad.registerProvider(this)
+
+ this._contextPad = contextPad
+
+ this._modeling = modeling
+
+ this._elementFactory = elementFactory
+ this._connect = connect
+ this._create = create
+ this._popupMenu = popupMenu
+ this._canvas = canvas
+ this._rules = rules
+ this._translate = translate
+
+ if (config.autoPlace !== false) {
+ this._autoPlace = injector.get('autoPlace', false)
+ }
+
+ eventBus.on('create.end', 250, function (event) {
+ const context = event.context,
+ shape = context.shape
+
+ if (!hasPrimaryModifier(event) || !contextPad.isOpen(shape)) {
+ return
+ }
+
+ const entries = contextPad.getEntries(shape)
+
+ if (entries.replace) {
+ entries.replace.action.click(event, shape)
+ }
+ })
+}
+
+ContextPadProvider.$inject = [
+ 'config.contextPad',
+ 'injector',
+ 'eventBus',
+ 'contextPad',
+ 'modeling',
+ 'elementFactory',
+ 'connect',
+ 'create',
+ 'popupMenu',
+ 'canvas',
+ 'rules',
+ 'translate',
+ 'elementRegistry'
+]
+
+ContextPadProvider.prototype.getContextPadEntries = function (element) {
+ const contextPad = this._contextPad,
+ modeling = this._modeling,
+ elementFactory = this._elementFactory,
+ connect = this._connect,
+ create = this._create,
+ popupMenu = this._popupMenu,
+ canvas = this._canvas,
+ rules = this._rules,
+ autoPlace = this._autoPlace,
+ translate = this._translate
+
+ const actions = {}
+
+ if (element.type === 'label') {
+ return actions
+ }
+
+ const businessObject = element.businessObject
+
+ function startConnect(event, element) {
+ connect.start(event, element)
+ }
+
+ function removeElement() {
+ modeling.removeElements([element])
+ }
+
+ function getReplaceMenuPosition(element) {
+ const Y_OFFSET = 5
+
+ const diagramContainer = canvas.getContainer(),
+ pad = contextPad.getPad(element).html
+
+ const diagramRect = diagramContainer.getBoundingClientRect(),
+ padRect = pad.getBoundingClientRect()
+
+ const top = padRect.top - diagramRect.top
+ const left = padRect.left - diagramRect.left
+
+ const pos = {
+ x: left,
+ y: top + padRect.height + Y_OFFSET
+ }
+
+ return pos
+ }
+
+ /**
+ * Create an append action
+ *
+ * @param {string} type
+ * @param {string} className
+ * @param {string} [title]
+ * @param {Object} [options]
+ *
+ * @return {Object} descriptor
+ */
+ function appendAction(type, className, title, options) {
+ if (typeof title !== 'string') {
+ options = title
+ title = translate('Append {type}', { type: type.replace(/^bpmn:/, '') })
+ }
+
+ function appendStart(event, element) {
+ const shape = elementFactory.createShape(assign({ type: type }, options))
+ create.start(event, shape, {
+ source: element
+ })
+ }
+
+ const append = autoPlace
+ ? function (event, element) {
+ const shape = elementFactory.createShape(assign({ type: type }, options))
+
+ autoPlace.append(element, shape)
+ }
+ : appendStart
+
+ return {
+ group: 'model',
+ className: className,
+ title: title,
+ action: {
+ dragstart: appendStart,
+ click: append
+ }
+ }
+ }
+
+ function splitLaneHandler(count) {
+ return function (event, element) {
+ // actual split
+ modeling.splitLane(element, count)
+
+ // refresh context pad after split to
+ // get rid of split icons
+ contextPad.open(element, true)
+ }
+ }
+
+ if (isAny(businessObject, ['bpmn:Lane', 'bpmn:Participant']) && isExpanded(businessObject)) {
+ const childLanes = getChildLanes(element)
+
+ assign(actions, {
+ 'lane-insert-above': {
+ group: 'lane-insert-above',
+ className: 'bpmn-icon-lane-insert-above',
+ title: translate('Add Lane above'),
+ action: {
+ click: function (event, element) {
+ modeling.addLane(element, 'top')
+ }
+ }
+ }
+ })
+
+ if (childLanes.length < 2) {
+ if (element.height >= 120) {
+ assign(actions, {
+ 'lane-divide-two': {
+ group: 'lane-divide',
+ className: 'bpmn-icon-lane-divide-two',
+ title: translate('Divide into two Lanes'),
+ action: {
+ click: splitLaneHandler(2)
+ }
+ }
+ })
+ }
+
+ if (element.height >= 180) {
+ assign(actions, {
+ 'lane-divide-three': {
+ group: 'lane-divide',
+ className: 'bpmn-icon-lane-divide-three',
+ title: translate('Divide into three Lanes'),
+ action: {
+ click: splitLaneHandler(3)
+ }
+ }
+ })
+ }
+ }
+
+ assign(actions, {
+ 'lane-insert-below': {
+ group: 'lane-insert-below',
+ className: 'bpmn-icon-lane-insert-below',
+ title: translate('Add Lane below'),
+ action: {
+ click: function (event, element) {
+ modeling.addLane(element, 'bottom')
+ }
+ }
+ }
+ })
+ }
+
+ if (is(businessObject, 'bpmn:FlowNode')) {
+ if (is(businessObject, 'bpmn:EventBasedGateway')) {
+ assign(actions, {
+ 'append.receive-task': appendAction(
+ 'bpmn:ReceiveTask',
+ 'bpmn-icon-receive-task',
+ translate('Append ReceiveTask')
+ ),
+ 'append.message-intermediate-event': appendAction(
+ 'bpmn:IntermediateCatchEvent',
+ 'bpmn-icon-intermediate-event-catch-message',
+ translate('Append MessageIntermediateCatchEvent'),
+ { eventDefinitionType: 'bpmn:MessageEventDefinition' }
+ ),
+ 'append.timer-intermediate-event': appendAction(
+ 'bpmn:IntermediateCatchEvent',
+ 'bpmn-icon-intermediate-event-catch-timer',
+ translate('Append TimerIntermediateCatchEvent'),
+ { eventDefinitionType: 'bpmn:TimerEventDefinition' }
+ ),
+ 'append.condition-intermediate-event': appendAction(
+ 'bpmn:IntermediateCatchEvent',
+ 'bpmn-icon-intermediate-event-catch-condition',
+ translate('Append ConditionIntermediateCatchEvent'),
+ { eventDefinitionType: 'bpmn:ConditionalEventDefinition' }
+ ),
+ 'append.signal-intermediate-event': appendAction(
+ 'bpmn:IntermediateCatchEvent',
+ 'bpmn-icon-intermediate-event-catch-signal',
+ translate('Append SignalIntermediateCatchEvent'),
+ { eventDefinitionType: 'bpmn:SignalEventDefinition' }
+ )
+ })
+ } else if (
+ isEventType(businessObject, 'bpmn:BoundaryEvent', 'bpmn:CompensateEventDefinition')
+ ) {
+ assign(actions, {
+ 'append.compensation-activity': appendAction(
+ 'bpmn:Task',
+ 'bpmn-icon-task',
+ translate('Append compensation activity'),
+ {
+ isForCompensation: true
+ }
+ )
+ })
+ } else if (
+ !is(businessObject, 'bpmn:EndEvent') &&
+ !businessObject.isForCompensation &&
+ !isEventType(businessObject, 'bpmn:IntermediateThrowEvent', 'bpmn:LinkEventDefinition') &&
+ !isEventSubProcess(businessObject)
+ ) {
+ assign(actions, {
+ 'append.end-event': appendAction(
+ 'bpmn:EndEvent',
+ 'bpmn-icon-end-event-none',
+ translate('Append EndEvent')
+ ),
+ 'append.gateway': appendAction(
+ 'bpmn:ExclusiveGateway',
+ 'bpmn-icon-gateway-none',
+ translate('Append Gateway')
+ ),
+ 'append.append-task': appendAction(
+ 'bpmn:UserTask',
+ 'bpmn-icon-user-task',
+ translate('Append Task')
+ ),
+ 'append.intermediate-event': appendAction(
+ 'bpmn:IntermediateThrowEvent',
+ 'bpmn-icon-intermediate-event-none',
+ translate('Append Intermediate/Boundary Event')
+ )
+ })
+ }
+ }
+
+ if (!popupMenu.isEmpty(element, 'bpmn-replace')) {
+ // Replace menu entry
+ assign(actions, {
+ replace: {
+ group: 'edit',
+ className: 'bpmn-icon-screw-wrench',
+ title: '修改类型',
+ action: {
+ click: function (event, element) {
+ const position = assign(getReplaceMenuPosition(element), {
+ cursor: { x: event.x, y: event.y }
+ })
+
+ popupMenu.open(element, 'bpmn-replace', position)
+ }
+ }
+ }
+ })
+ }
+
+ if (
+ isAny(businessObject, [
+ 'bpmn:FlowNode',
+ 'bpmn:InteractionNode',
+ 'bpmn:DataObjectReference',
+ 'bpmn:DataStoreReference'
+ ])
+ ) {
+ assign(actions, {
+ 'append.text-annotation': appendAction('bpmn:TextAnnotation', 'bpmn-icon-text-annotation'),
+
+ connect: {
+ group: 'connect',
+ className: 'bpmn-icon-connection-multi',
+ title: translate(
+ 'Connect using ' +
+ (businessObject.isForCompensation ? '' : 'Sequence/MessageFlow or ') +
+ 'Association'
+ ),
+ action: {
+ click: startConnect,
+ dragstart: startConnect
+ }
+ }
+ })
+ }
+
+ if (isAny(businessObject, ['bpmn:DataObjectReference', 'bpmn:DataStoreReference'])) {
+ assign(actions, {
+ connect: {
+ group: 'connect',
+ className: 'bpmn-icon-connection-multi',
+ title: translate('Connect using DataInputAssociation'),
+ action: {
+ click: startConnect,
+ dragstart: startConnect
+ }
+ }
+ })
+ }
+
+ if (is(businessObject, 'bpmn:Group')) {
+ assign(actions, {
+ 'append.text-annotation': appendAction('bpmn:TextAnnotation', 'bpmn-icon-text-annotation')
+ })
+ }
+
+ // delete element entry, only show if allowed by rules
+ let deleteAllowed = rules.allowed('elements.delete', { elements: [element] })
+
+ if (isArray(deleteAllowed)) {
+ // was the element returned as a deletion candidate?
+ deleteAllowed = deleteAllowed[0] === element
+ }
+
+ if (deleteAllowed) {
+ assign(actions, {
+ delete: {
+ group: 'edit',
+ className: 'bpmn-icon-trash',
+ title: translate('Remove'),
+ action: {
+ click: removeElement
+ }
+ }
+ })
+ }
+
+ return actions
+}
+
+// helpers /////////
+
+function isEventType(eventBo, type, definition) {
+ const isType = eventBo.$instanceOf(type)
+ let isDefinition = false
+
+ const definitions = eventBo.eventDefinitions || []
+ forEach(definitions, function (def) {
+ if (def.$type === definition) {
+ isDefinition = true
+ }
+ })
+
+ return isType && isDefinition
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/index.js b/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/index.js
new file mode 100644
index 0000000..80009ef
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/content-pad/index.js
@@ -0,0 +1,6 @@
+import CustomContextPadProvider from './contentPadProvider'
+
+export default {
+ __init__: ['contextPadProvider'],
+ contextPadProvider: ['type', CustomContextPadProvider]
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/defaultEmpty.js b/src/components/bpmnProcessDesigner/package/designer/plugins/defaultEmpty.js
new file mode 100644
index 0000000..f3bc894
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/defaultEmpty.js
@@ -0,0 +1,24 @@
+export default (key, name, type) => {
+ if (!type) type = 'camunda'
+ const TYPE_TARGET = {
+ activiti: 'http://activiti.org/bpmn',
+ camunda: 'http://bpmn.io/schema/bpmn',
+ flowable: 'http://flowable.org/bpmn'
+ }
+ return `
+
+
+
+
+
+
+
+`
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/activitiDescriptor.json b/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/activitiDescriptor.json
new file mode 100644
index 0000000..db5e490
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/activitiDescriptor.json
@@ -0,0 +1,994 @@
+{
+ "name": "Activiti",
+ "uri": "http://activiti.org/bpmn",
+ "prefix": "activiti",
+ "xml": {
+ "tagAlias": "lowerCase"
+ },
+ "associations": [],
+ "types": [
+ {
+ "name": "Definitions",
+ "isAbstract": true,
+ "extends": ["bpmn:Definitions"],
+ "properties": [
+ {
+ "name": "diagramRelationId",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "InOutBinding",
+ "superClass": ["Element"],
+ "isAbstract": true,
+ "properties": [
+ {
+ "name": "source",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "sourceExpression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "businessKey",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "local",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "variables",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "In",
+ "superClass": ["InOutBinding"],
+ "meta": {
+ "allowedIn": ["bpmn:CallActivity"]
+ }
+ },
+ {
+ "name": "Out",
+ "superClass": ["InOutBinding"],
+ "meta": {
+ "allowedIn": ["bpmn:CallActivity"]
+ }
+ },
+ {
+ "name": "AsyncCapable",
+ "isAbstract": true,
+ "extends": ["bpmn:Activity", "bpmn:Gateway", "bpmn:Event"],
+ "properties": [
+ {
+ "name": "async",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "asyncBefore",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "asyncAfter",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "exclusive",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": true
+ }
+ ]
+ },
+ {
+ "name": "JobPriorized",
+ "isAbstract": true,
+ "extends": ["bpmn:Process", "activiti:AsyncCapable"],
+ "properties": [
+ {
+ "name": "jobPriority",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "SignalEventDefinition",
+ "isAbstract": true,
+ "extends": ["bpmn:SignalEventDefinition"],
+ "properties": [
+ {
+ "name": "async",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ }
+ ]
+ },
+ {
+ "name": "ErrorEventDefinition",
+ "isAbstract": true,
+ "extends": ["bpmn:ErrorEventDefinition"],
+ "properties": [
+ {
+ "name": "errorCodeVariable",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "errorMessageVariable",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Error",
+ "isAbstract": true,
+ "extends": ["bpmn:Error"],
+ "properties": [
+ {
+ "name": "activiti:errorMessage",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "PotentialStarter",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "resourceAssignmentExpression",
+ "type": "bpmn:ResourceAssignmentExpression"
+ }
+ ]
+ },
+ {
+ "name": "FormSupported",
+ "isAbstract": true,
+ "extends": ["bpmn:StartEvent", "bpmn:UserTask"],
+ "properties": [
+ {
+ "name": "formHandlerClass",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "formKey",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "TemplateSupported",
+ "isAbstract": true,
+ "extends": ["bpmn:Process", "bpmn:FlowElement"],
+ "properties": [
+ {
+ "name": "modelerTemplate",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Initiator",
+ "isAbstract": true,
+ "extends": ["bpmn:StartEvent"],
+ "properties": [
+ {
+ "name": "initiator",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ScriptTask",
+ "isAbstract": true,
+ "extends": ["bpmn:ScriptTask"],
+ "properties": [
+ {
+ "name": "resultVariable",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "resource",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Process",
+ "isAbstract": true,
+ "extends": ["bpmn:Process"],
+ "properties": [
+ {
+ "name": "candidateStarterGroups",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "candidateStarterUsers",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "versionTag",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "historyTimeToLive",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "isStartableInTasklist",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": true
+ },
+ {
+ "name": "executionListener",
+ "isAbstract": true,
+ "type": "Expression"
+ }
+ ]
+ },
+ {
+ "name": "EscalationEventDefinition",
+ "isAbstract": true,
+ "extends": ["bpmn:EscalationEventDefinition"],
+ "properties": [
+ {
+ "name": "escalationCodeVariable",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "FormalExpression",
+ "isAbstract": true,
+ "extends": ["bpmn:FormalExpression"],
+ "properties": [
+ {
+ "name": "resource",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "multiinstance_type",
+ "superClass": ["Element"]
+ },
+ {
+ "name": "multiinstance_condition",
+ "superClass": ["Element"]
+ },
+ {
+ "name": "Assignable",
+ "extends": ["bpmn:UserTask"],
+ "properties": [
+ {
+ "name": "assignee",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "candidateUsers",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "candidateGroups",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "dueDate",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "followUpDate",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "priority",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "multiinstance_condition",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "CallActivity",
+ "extends": ["bpmn:CallActivity"],
+ "properties": [
+ {
+ "name": "calledElementBinding",
+ "isAttr": true,
+ "type": "String",
+ "default": "latest"
+ },
+ {
+ "name": "calledElementVersion",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "calledElementVersionTag",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "calledElementTenantId",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "caseRef",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "caseBinding",
+ "isAttr": true,
+ "type": "String",
+ "default": "latest"
+ },
+ {
+ "name": "caseVersion",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "caseTenantId",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "variableMappingClass",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "variableMappingDelegateExpression",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ServiceTaskLike",
+ "extends": [
+ "bpmn:ServiceTask",
+ "bpmn:BusinessRuleTask",
+ "bpmn:SendTask",
+ "bpmn:MessageEventDefinition"
+ ],
+ "properties": [
+ {
+ "name": "expression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "class",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "delegateExpression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "resultVariable",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "DmnCapable",
+ "extends": ["bpmn:BusinessRuleTask"],
+ "properties": [
+ {
+ "name": "decisionRef",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "decisionRefBinding",
+ "isAttr": true,
+ "type": "String",
+ "default": "latest"
+ },
+ {
+ "name": "decisionRefVersion",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "mapDecisionResult",
+ "isAttr": true,
+ "type": "String",
+ "default": "resultList"
+ },
+ {
+ "name": "decisionRefTenantId",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ExternalCapable",
+ "extends": ["activiti:ServiceTaskLike"],
+ "properties": [
+ {
+ "name": "type",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "topic",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "TaskPriorized",
+ "extends": ["bpmn:Process", "activiti:ExternalCapable"],
+ "properties": [
+ {
+ "name": "taskPriority",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Properties",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["*"]
+ },
+ "properties": [
+ {
+ "name": "values",
+ "type": "Property",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "Property",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "name",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "value",
+ "type": "String",
+ "isAttr": true
+ }
+ ]
+ },
+ {
+ "name": "Connector",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["activiti:ServiceTaskLike"]
+ },
+ "properties": [
+ {
+ "name": "inputOutput",
+ "type": "InputOutput"
+ },
+ {
+ "name": "connectorId",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "InputOutput",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:FlowNode", "activiti:Connector"]
+ },
+ "properties": [
+ {
+ "name": "inputOutput",
+ "type": "InputOutput"
+ },
+ {
+ "name": "connectorId",
+ "type": "String"
+ },
+ {
+ "name": "inputParameters",
+ "isMany": true,
+ "type": "InputParameter"
+ },
+ {
+ "name": "outputParameters",
+ "isMany": true,
+ "type": "OutputParameter"
+ }
+ ]
+ },
+ {
+ "name": "InputOutputParameter",
+ "properties": [
+ {
+ "name": "name",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "isBody": true,
+ "type": "String"
+ },
+ {
+ "name": "definition",
+ "type": "InputOutputParameterDefinition"
+ }
+ ]
+ },
+ {
+ "name": "InputOutputParameterDefinition",
+ "isAbstract": true
+ },
+ {
+ "name": "List",
+ "superClass": ["InputOutputParameterDefinition"],
+ "properties": [
+ {
+ "name": "items",
+ "isMany": true,
+ "type": "InputOutputParameterDefinition"
+ }
+ ]
+ },
+ {
+ "name": "Map",
+ "superClass": ["InputOutputParameterDefinition"],
+ "properties": [
+ {
+ "name": "entries",
+ "isMany": true,
+ "type": "Entry"
+ }
+ ]
+ },
+ {
+ "name": "Entry",
+ "properties": [
+ {
+ "name": "key",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "isBody": true,
+ "type": "String"
+ },
+ {
+ "name": "definition",
+ "type": "InputOutputParameterDefinition"
+ }
+ ]
+ },
+ {
+ "name": "Value",
+ "superClass": ["InputOutputParameterDefinition"],
+ "properties": [
+ {
+ "name": "id",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "name",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "isBody": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Script",
+ "superClass": ["InputOutputParameterDefinition"],
+ "properties": [
+ {
+ "name": "scriptFormat",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "resource",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "isBody": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Field",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": [
+ "activiti:ServiceTaskLike",
+ "activiti:ExecutionListener",
+ "activiti:TaskListener"
+ ]
+ },
+ "properties": [
+ {
+ "name": "name",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "expression",
+ "type": "String"
+ },
+ {
+ "name": "stringValue",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "string",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "InputParameter",
+ "superClass": ["InputOutputParameter"]
+ },
+ {
+ "name": "OutputParameter",
+ "superClass": ["InputOutputParameter"]
+ },
+ {
+ "name": "Collectable",
+ "isAbstract": true,
+ "extends": ["bpmn:MultiInstanceLoopCharacteristics"],
+ "superClass": ["activiti:AsyncCapable"],
+ "properties": [
+ {
+ "name": "collection",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "elementVariable",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "FailedJobRetryTimeCycle",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["activiti:AsyncCapable", "bpmn:MultiInstanceLoopCharacteristics"]
+ },
+ "properties": [
+ {
+ "name": "body",
+ "isBody": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ExecutionListener",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": [
+ "bpmn:Task",
+ "bpmn:ServiceTask",
+ "bpmn:UserTask",
+ "bpmn:BusinessRuleTask",
+ "bpmn:ScriptTask",
+ "bpmn:ReceiveTask",
+ "bpmn:ManualTask",
+ "bpmn:ExclusiveGateway",
+ "bpmn:SequenceFlow",
+ "bpmn:ParallelGateway",
+ "bpmn:InclusiveGateway",
+ "bpmn:EventBasedGateway",
+ "bpmn:StartEvent",
+ "bpmn:IntermediateCatchEvent",
+ "bpmn:IntermediateThrowEvent",
+ "bpmn:EndEvent",
+ "bpmn:BoundaryEvent",
+ "bpmn:CallActivity",
+ "bpmn:SubProcess",
+ "bpmn:Process"
+ ]
+ },
+ "properties": [
+ {
+ "name": "expression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "class",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "delegateExpression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "event",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "script",
+ "type": "Script"
+ },
+ {
+ "name": "fields",
+ "type": "Field",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "TaskListener",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:UserTask"]
+ },
+ "properties": [
+ {
+ "name": "expression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "class",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "delegateExpression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "event",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "script",
+ "type": "Script"
+ },
+ {
+ "name": "fields",
+ "type": "Field",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "FormProperty",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:StartEvent", "bpmn:UserTask"]
+ },
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "name",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "type",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "required",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "readable",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "writable",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "variable",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "expression",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "datePattern",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "default",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "values",
+ "type": "Value",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "FormProperty",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "label",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "type",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "datePattern",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "defaultValue",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "properties",
+ "type": "Properties"
+ },
+ {
+ "name": "validation",
+ "type": "Validation"
+ },
+ {
+ "name": "values",
+ "type": "Value",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "Validation",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "constraints",
+ "type": "Constraint",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "Constraint",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "name",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "config",
+ "type": "String",
+ "isAttr": true
+ }
+ ]
+ },
+ {
+ "name": "ConditionalEventDefinition",
+ "isAbstract": true,
+ "extends": ["bpmn:ConditionalEventDefinition"],
+ "properties": [
+ {
+ "name": "variableName",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "variableEvent",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ }
+ ],
+ "emumerations": []
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/camundaDescriptor.json b/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/camundaDescriptor.json
new file mode 100644
index 0000000..79b86bc
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/camundaDescriptor.json
@@ -0,0 +1,1010 @@
+{
+ "name": "Camunda",
+ "uri": "http://camunda.org/schema/1.0/bpmn",
+ "prefix": "camunda",
+ "xml": {
+ "tagAlias": "lowerCase"
+ },
+ "associations": [],
+ "types": [
+ {
+ "name": "Definitions",
+ "isAbstract": true,
+ "extends": ["bpmn:Definitions"],
+ "properties": [
+ {
+ "name": "diagramRelationId",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "InOutBinding",
+ "superClass": ["Element"],
+ "isAbstract": true,
+ "properties": [
+ {
+ "name": "source",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "sourceExpression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "businessKey",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "local",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "variables",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "In",
+ "superClass": ["InOutBinding"],
+ "meta": {
+ "allowedIn": ["bpmn:CallActivity", "bpmn:SignalEventDefinition"]
+ }
+ },
+ {
+ "name": "Out",
+ "superClass": ["InOutBinding"],
+ "meta": {
+ "allowedIn": ["bpmn:CallActivity"]
+ }
+ },
+ {
+ "name": "AsyncCapable",
+ "isAbstract": true,
+ "extends": ["bpmn:Activity", "bpmn:Gateway", "bpmn:Event"],
+ "properties": [
+ {
+ "name": "async",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "asyncBefore",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "asyncAfter",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "exclusive",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": true
+ }
+ ]
+ },
+ {
+ "name": "JobPriorized",
+ "isAbstract": true,
+ "extends": ["bpmn:Process", "camunda:AsyncCapable"],
+ "properties": [
+ {
+ "name": "jobPriority",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "SignalEventDefinition",
+ "isAbstract": true,
+ "extends": ["bpmn:SignalEventDefinition"],
+ "properties": [
+ {
+ "name": "async",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ }
+ ]
+ },
+ {
+ "name": "ErrorEventDefinition",
+ "isAbstract": true,
+ "extends": ["bpmn:ErrorEventDefinition"],
+ "properties": [
+ {
+ "name": "errorCodeVariable",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "errorMessageVariable",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Error",
+ "isAbstract": true,
+ "extends": ["bpmn:Error"],
+ "properties": [
+ {
+ "name": "camunda:errorMessage",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "PotentialStarter",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "resourceAssignmentExpression",
+ "type": "bpmn:ResourceAssignmentExpression"
+ }
+ ]
+ },
+ {
+ "name": "FormSupported",
+ "isAbstract": true,
+ "extends": ["bpmn:StartEvent", "bpmn:UserTask"],
+ "properties": [
+ {
+ "name": "formHandlerClass",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "formKey",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "TemplateSupported",
+ "isAbstract": true,
+ "extends": ["bpmn:Process", "bpmn:FlowElement"],
+ "properties": [
+ {
+ "name": "modelerTemplate",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "modelerTemplateVersion",
+ "isAttr": true,
+ "type": "Integer"
+ }
+ ]
+ },
+ {
+ "name": "Initiator",
+ "isAbstract": true,
+ "extends": ["bpmn:StartEvent"],
+ "properties": [
+ {
+ "name": "initiator",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ScriptTask",
+ "isAbstract": true,
+ "extends": ["bpmn:ScriptTask"],
+ "properties": [
+ {
+ "name": "resultVariable",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "resource",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Process",
+ "isAbstract": true,
+ "extends": ["bpmn:Process"],
+ "properties": [
+ {
+ "name": "candidateStarterGroups",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "candidateStarterUsers",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "versionTag",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "historyTimeToLive",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "isStartableInTasklist",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": true
+ }
+ ]
+ },
+ {
+ "name": "EscalationEventDefinition",
+ "isAbstract": true,
+ "extends": ["bpmn:EscalationEventDefinition"],
+ "properties": [
+ {
+ "name": "escalationCodeVariable",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "FormalExpression",
+ "isAbstract": true,
+ "extends": ["bpmn:FormalExpression"],
+ "properties": [
+ {
+ "name": "resource",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Assignable",
+ "extends": ["bpmn:UserTask"],
+ "properties": [
+ {
+ "name": "assignee",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "candidateUsers",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "candidateGroups",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "dueDate",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "followUpDate",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "priority",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "CallActivity",
+ "extends": ["bpmn:CallActivity"],
+ "properties": [
+ {
+ "name": "calledElementBinding",
+ "isAttr": true,
+ "type": "String",
+ "default": "latest"
+ },
+ {
+ "name": "calledElementVersion",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "calledElementVersionTag",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "calledElementTenantId",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "caseRef",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "caseBinding",
+ "isAttr": true,
+ "type": "String",
+ "default": "latest"
+ },
+ {
+ "name": "caseVersion",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "caseTenantId",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "variableMappingClass",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "variableMappingDelegateExpression",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ServiceTaskLike",
+ "extends": [
+ "bpmn:ServiceTask",
+ "bpmn:BusinessRuleTask",
+ "bpmn:SendTask",
+ "bpmn:MessageEventDefinition"
+ ],
+ "properties": [
+ {
+ "name": "expression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "class",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "delegateExpression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "resultVariable",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "DmnCapable",
+ "extends": ["bpmn:BusinessRuleTask"],
+ "properties": [
+ {
+ "name": "decisionRef",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "decisionRefBinding",
+ "isAttr": true,
+ "type": "String",
+ "default": "latest"
+ },
+ {
+ "name": "decisionRefVersion",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "mapDecisionResult",
+ "isAttr": true,
+ "type": "String",
+ "default": "resultList"
+ },
+ {
+ "name": "decisionRefTenantId",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ExternalCapable",
+ "extends": ["camunda:ServiceTaskLike"],
+ "properties": [
+ {
+ "name": "type",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "topic",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "TaskPriorized",
+ "extends": ["bpmn:Process", "camunda:ExternalCapable"],
+ "properties": [
+ {
+ "name": "taskPriority",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Properties",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["*"]
+ },
+ "properties": [
+ {
+ "name": "values",
+ "type": "Property",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "Property",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "name",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "value",
+ "type": "String",
+ "isAttr": true
+ }
+ ]
+ },
+ {
+ "name": "Connector",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["camunda:ServiceTaskLike"]
+ },
+ "properties": [
+ {
+ "name": "inputOutput",
+ "type": "InputOutput"
+ },
+ {
+ "name": "connectorId",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "InputOutput",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:FlowNode", "camunda:Connector"]
+ },
+ "properties": [
+ {
+ "name": "inputOutput",
+ "type": "InputOutput"
+ },
+ {
+ "name": "connectorId",
+ "type": "String"
+ },
+ {
+ "name": "inputParameters",
+ "isMany": true,
+ "type": "InputParameter"
+ },
+ {
+ "name": "outputParameters",
+ "isMany": true,
+ "type": "OutputParameter"
+ }
+ ]
+ },
+ {
+ "name": "InputOutputParameter",
+ "properties": [
+ {
+ "name": "name",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "isBody": true,
+ "type": "String"
+ },
+ {
+ "name": "definition",
+ "type": "InputOutputParameterDefinition"
+ }
+ ]
+ },
+ {
+ "name": "InputOutputParameterDefinition",
+ "isAbstract": true
+ },
+ {
+ "name": "List",
+ "superClass": ["InputOutputParameterDefinition"],
+ "properties": [
+ {
+ "name": "items",
+ "isMany": true,
+ "type": "InputOutputParameterDefinition"
+ }
+ ]
+ },
+ {
+ "name": "Map",
+ "superClass": ["InputOutputParameterDefinition"],
+ "properties": [
+ {
+ "name": "entries",
+ "isMany": true,
+ "type": "Entry"
+ }
+ ]
+ },
+ {
+ "name": "Entry",
+ "properties": [
+ {
+ "name": "key",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "isBody": true,
+ "type": "String"
+ },
+ {
+ "name": "definition",
+ "type": "InputOutputParameterDefinition"
+ }
+ ]
+ },
+ {
+ "name": "Value",
+ "superClass": ["InputOutputParameterDefinition"],
+ "properties": [
+ {
+ "name": "id",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "name",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "isBody": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Script",
+ "superClass": ["InputOutputParameterDefinition"],
+ "properties": [
+ {
+ "name": "scriptFormat",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "resource",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "isBody": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Field",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": [
+ "camunda:ServiceTaskLike",
+ "camunda:ExecutionListener",
+ "camunda:TaskListener"
+ ]
+ },
+ "properties": [
+ {
+ "name": "name",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "expression",
+ "type": "String"
+ },
+ {
+ "name": "stringValue",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "string",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "InputParameter",
+ "superClass": ["InputOutputParameter"]
+ },
+ {
+ "name": "OutputParameter",
+ "superClass": ["InputOutputParameter"]
+ },
+ {
+ "name": "Collectable",
+ "isAbstract": true,
+ "extends": ["bpmn:MultiInstanceLoopCharacteristics"],
+ "superClass": ["camunda:AsyncCapable"],
+ "properties": [
+ {
+ "name": "collection",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "elementVariable",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "FailedJobRetryTimeCycle",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["camunda:AsyncCapable", "bpmn:MultiInstanceLoopCharacteristics"]
+ },
+ "properties": [
+ {
+ "name": "body",
+ "isBody": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ExecutionListener",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": [
+ "bpmn:Task",
+ "bpmn:ServiceTask",
+ "bpmn:UserTask",
+ "bpmn:BusinessRuleTask",
+ "bpmn:ScriptTask",
+ "bpmn:ReceiveTask",
+ "bpmn:ManualTask",
+ "bpmn:ExclusiveGateway",
+ "bpmn:SequenceFlow",
+ "bpmn:ParallelGateway",
+ "bpmn:InclusiveGateway",
+ "bpmn:EventBasedGateway",
+ "bpmn:StartEvent",
+ "bpmn:IntermediateCatchEvent",
+ "bpmn:IntermediateThrowEvent",
+ "bpmn:EndEvent",
+ "bpmn:BoundaryEvent",
+ "bpmn:CallActivity",
+ "bpmn:SubProcess",
+ "bpmn:Process"
+ ]
+ },
+ "properties": [
+ {
+ "name": "expression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "class",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "delegateExpression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "event",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "script",
+ "type": "Script"
+ },
+ {
+ "name": "fields",
+ "type": "Field",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "TaskListener",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:UserTask"]
+ },
+ "properties": [
+ {
+ "name": "expression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "class",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "delegateExpression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "event",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "script",
+ "type": "Script"
+ },
+ {
+ "name": "fields",
+ "type": "Field",
+ "isMany": true
+ },
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "eventDefinitions",
+ "type": "bpmn:TimerEventDefinition",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "FormProperty",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:StartEvent", "bpmn:UserTask"]
+ },
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "name",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "type",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "required",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "readable",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "writable",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "variable",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "expression",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "datePattern",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "default",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "values",
+ "type": "Value",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "FormData",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:StartEvent", "bpmn:UserTask"]
+ },
+ "properties": [
+ {
+ "name": "fields",
+ "type": "FormField",
+ "isMany": true
+ },
+ {
+ "name": "businessKey",
+ "type": "String",
+ "isAttr": true
+ }
+ ]
+ },
+ {
+ "name": "FormField",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "label",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "type",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "datePattern",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "defaultValue",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "properties",
+ "type": "Properties"
+ },
+ {
+ "name": "validation",
+ "type": "Validation"
+ },
+ {
+ "name": "values",
+ "type": "Value",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "Validation",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "constraints",
+ "type": "Constraint",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "Constraint",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "name",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "config",
+ "type": "String",
+ "isAttr": true
+ }
+ ]
+ },
+ {
+ "name": "ConditionalEventDefinition",
+ "isAbstract": true,
+ "extends": ["bpmn:ConditionalEventDefinition"],
+ "properties": [
+ {
+ "name": "variableName",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "variableEvents",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ }
+ ],
+ "emumerations": []
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json b/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json
new file mode 100644
index 0000000..7fe7ad1
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json
@@ -0,0 +1,1207 @@
+{
+ "name": "Flowable",
+ "uri": "http://flowable.org/bpmn",
+ "prefix": "flowable",
+ "xml": {
+ "tagAlias": "lowerCase"
+ },
+ "associations": [],
+ "types": [
+ {
+ "name": "InOutBinding",
+ "superClass": ["Element"],
+ "isAbstract": true,
+ "properties": [
+ {
+ "name": "source",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "sourceExpression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "target",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "businessKey",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "local",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "variables",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "In",
+ "superClass": ["InOutBinding"],
+ "meta": {
+ "allowedIn": ["bpmn:CallActivity"]
+ }
+ },
+ {
+ "name": "Out",
+ "superClass": ["InOutBinding"],
+ "meta": {
+ "allowedIn": ["bpmn:CallActivity"]
+ }
+ },
+ {
+ "name": "AsyncCapable",
+ "isAbstract": true,
+ "extends": ["bpmn:Activity", "bpmn:Gateway", "bpmn:Event"],
+ "properties": [
+ {
+ "name": "async",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "asyncBefore",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "asyncAfter",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "exclusive",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": true
+ }
+ ]
+ },
+ {
+ "name": "JobPriorized",
+ "isAbstract": true,
+ "extends": ["bpmn:Process", "flowable:AsyncCapable"],
+ "properties": [
+ {
+ "name": "jobPriority",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "SignalEventDefinition",
+ "isAbstract": true,
+ "extends": ["bpmn:SignalEventDefinition"],
+ "properties": [
+ {
+ "name": "async",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ }
+ ]
+ },
+ {
+ "name": "ErrorEventDefinition",
+ "isAbstract": true,
+ "extends": ["bpmn:ErrorEventDefinition"],
+ "properties": [
+ {
+ "name": "errorCodeVariable",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "errorMessageVariable",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Error",
+ "isAbstract": true,
+ "extends": ["bpmn:Error"],
+ "properties": [
+ {
+ "name": "flowable:errorMessage",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "PotentialStarter",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "resourceAssignmentExpression",
+ "type": "bpmn:ResourceAssignmentExpression"
+ }
+ ]
+ },
+ {
+ "name": "FormSupported",
+ "isAbstract": true,
+ "extends": ["bpmn:StartEvent", "bpmn:UserTask"],
+ "properties": [
+ {
+ "name": "formHandlerClass",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "formKey",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "formType",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "formReadOnly",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": false
+ },
+ {
+ "name": "formInit",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": true
+ }
+ ]
+ },
+ {
+ "name": "TemplateSupported",
+ "isAbstract": true,
+ "extends": ["bpmn:Process", "bpmn:FlowElement"],
+ "properties": [
+ {
+ "name": "modelerTemplate",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Initiator",
+ "isAbstract": true,
+ "extends": ["bpmn:StartEvent"],
+ "properties": [
+ {
+ "name": "initiator",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ScriptTask",
+ "isAbstract": true,
+ "extends": ["bpmn:ScriptTask"],
+ "properties": [
+ {
+ "name": "resultVariable",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "resource",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Process",
+ "isAbstract": true,
+ "extends": ["bpmn:Process"],
+ "properties": [
+ {
+ "name": "candidateStarterGroups",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "candidateStarterUsers",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "versionTag",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "historyTimeToLive",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "isStartableInTasklist",
+ "isAttr": true,
+ "type": "Boolean",
+ "default": true
+ }
+ ]
+ },
+ {
+ "name": "EscalationEventDefinition",
+ "isAbstract": true,
+ "extends": ["bpmn:EscalationEventDefinition"],
+ "properties": [
+ {
+ "name": "escalationCodeVariable",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "FormalExpression",
+ "isAbstract": true,
+ "extends": ["bpmn:FormalExpression"],
+ "properties": [
+ {
+ "name": "resource",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Assignable",
+ "extends": ["bpmn:UserTask"],
+ "properties": [
+ {
+ "name": "assignee",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "candidateUsers",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "candidateGroups",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "dueDate",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "followUpDate",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "priority",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Assignee",
+ "supperClass": "Element",
+ "meta": {
+ "allowedIn": ["*"]
+ },
+ "properties": [
+ {
+ "name": "label",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "viewId",
+ "type": "Number",
+ "isAttr": true
+ }
+ ]
+ },
+ {
+ "name": "CallActivity",
+ "extends": ["bpmn:CallActivity"],
+ "properties": [
+ {
+ "name": "calledElementBinding",
+ "isAttr": true,
+ "type": "String",
+ "default": "latest"
+ },
+ {
+ "name": "calledElementVersion",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "calledElementVersionTag",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "calledElementTenantId",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "caseRef",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "caseBinding",
+ "isAttr": true,
+ "type": "String",
+ "default": "latest"
+ },
+ {
+ "name": "caseVersion",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "caseTenantId",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "variableMappingClass",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "variableMappingDelegateExpression",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ServiceTaskLike",
+ "extends": [
+ "bpmn:ServiceTask",
+ "bpmn:BusinessRuleTask",
+ "bpmn:SendTask",
+ "bpmn:MessageEventDefinition"
+ ],
+ "properties": [
+ {
+ "name": "expression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "class",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "delegateExpression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "resultVariable",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "DmnCapable",
+ "extends": ["bpmn:BusinessRuleTask"],
+ "properties": [
+ {
+ "name": "decisionRef",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "decisionRefBinding",
+ "isAttr": true,
+ "type": "String",
+ "default": "latest"
+ },
+ {
+ "name": "decisionRefVersion",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "mapDecisionResult",
+ "isAttr": true,
+ "type": "String",
+ "default": "resultList"
+ },
+ {
+ "name": "decisionRefTenantId",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ExternalCapable",
+ "extends": ["flowable:ServiceTaskLike"],
+ "properties": [
+ {
+ "name": "type",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "topic",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "TaskPriorized",
+ "extends": ["bpmn:Process", "flowable:ExternalCapable"],
+ "properties": [
+ {
+ "name": "taskPriority",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Properties",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["*"]
+ },
+ "properties": [
+ {
+ "name": "values",
+ "type": "Property",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "Property",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "name",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "value",
+ "type": "String",
+ "isAttr": true
+ }
+ ]
+ },
+ {
+ "name": "Button",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:UserTask"]
+ },
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "name",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "code",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "isHide",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "next",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "sort",
+ "type": "Integer",
+ "isAttr": true
+ }
+ ]
+ },
+ {
+ "name": "Assignee",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:UserTask"]
+ },
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "type",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "value",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "condition",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "operationType",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "sort",
+ "type": "Integer",
+ "isAttr": true
+ }
+ ]
+ },
+ {
+ "name": "Connector",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["flowable:ServiceTaskLike"]
+ },
+ "properties": [
+ {
+ "name": "inputOutput",
+ "type": "InputOutput"
+ },
+ {
+ "name": "connectorId",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "InputOutput",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:FlowNode", "flowable:Connector"]
+ },
+ "properties": [
+ {
+ "name": "inputOutput",
+ "type": "InputOutput"
+ },
+ {
+ "name": "connectorId",
+ "type": "String"
+ },
+ {
+ "name": "inputParameters",
+ "isMany": true,
+ "type": "InputParameter"
+ },
+ {
+ "name": "outputParameters",
+ "isMany": true,
+ "type": "OutputParameter"
+ }
+ ]
+ },
+ {
+ "name": "InputOutputParameter",
+ "properties": [
+ {
+ "name": "name",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "isBody": true,
+ "type": "String"
+ },
+ {
+ "name": "definition",
+ "type": "InputOutputParameterDefinition"
+ }
+ ]
+ },
+ {
+ "name": "InputOutputParameterDefinition",
+ "isAbstract": true
+ },
+ {
+ "name": "List",
+ "superClass": ["InputOutputParameterDefinition"],
+ "properties": [
+ {
+ "name": "items",
+ "isMany": true,
+ "type": "InputOutputParameterDefinition"
+ }
+ ]
+ },
+ {
+ "name": "Map",
+ "superClass": ["InputOutputParameterDefinition"],
+ "properties": [
+ {
+ "name": "entries",
+ "isMany": true,
+ "type": "Entry"
+ }
+ ]
+ },
+ {
+ "name": "Entry",
+ "properties": [
+ {
+ "name": "key",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "isBody": true,
+ "type": "String"
+ },
+ {
+ "name": "definition",
+ "type": "InputOutputParameterDefinition"
+ }
+ ]
+ },
+ {
+ "name": "Value",
+ "superClass": ["InputOutputParameterDefinition"],
+ "properties": [
+ {
+ "name": "id",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "name",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "isBody": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Script",
+ "superClass": ["InputOutputParameterDefinition"],
+ "properties": [
+ {
+ "name": "scriptFormat",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "resource",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "value",
+ "isBody": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Field",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": [
+ "flowable:ServiceTaskLike",
+ "flowable:ExecutionListener",
+ "flowable:TaskListener"
+ ]
+ },
+ "properties": [
+ {
+ "name": "name",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "expression",
+ "type": "String"
+ },
+ {
+ "name": "stringValue",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "string",
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ChildField",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "name",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "type",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "required",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "readable",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "writable",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "variable",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "expression",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "datePattern",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "default",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "values",
+ "type": "Value",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "InputParameter",
+ "superClass": ["InputOutputParameter"]
+ },
+ {
+ "name": "OutputParameter",
+ "superClass": ["InputOutputParameter"]
+ },
+ {
+ "name": "Collectable",
+ "isAbstract": true,
+ "extends": ["bpmn:MultiInstanceLoopCharacteristics"],
+ "superClass": ["flowable:AsyncCapable"],
+ "properties": [
+ {
+ "name": "collection",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "elementVariable",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "FailedJobRetryTimeCycle",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["flowable:AsyncCapable", "bpmn:MultiInstanceLoopCharacteristics"]
+ },
+ "properties": [
+ {
+ "name": "body",
+ "isBody": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "ExecutionListener",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": [
+ "bpmn:Task",
+ "bpmn:ServiceTask",
+ "bpmn:UserTask",
+ "bpmn:BusinessRuleTask",
+ "bpmn:ScriptTask",
+ "bpmn:ReceiveTask",
+ "bpmn:ManualTask",
+ "bpmn:ExclusiveGateway",
+ "bpmn:SequenceFlow",
+ "bpmn:ParallelGateway",
+ "bpmn:InclusiveGateway",
+ "bpmn:EventBasedGateway",
+ "bpmn:StartEvent",
+ "bpmn:IntermediateCatchEvent",
+ "bpmn:IntermediateThrowEvent",
+ "bpmn:EndEvent",
+ "bpmn:BoundaryEvent",
+ "bpmn:CallActivity",
+ "bpmn:SubProcess",
+ "bpmn:Process"
+ ]
+ },
+ "properties": [
+ {
+ "name": "expression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "class",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "delegateExpression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "event",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "script",
+ "type": "Script"
+ },
+ {
+ "name": "fields",
+ "type": "Field",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "TaskListener",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:UserTask"]
+ },
+ "properties": [
+ {
+ "name": "expression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "class",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "delegateExpression",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "event",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "script",
+ "type": "Script"
+ },
+ {
+ "name": "fields",
+ "type": "Field",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "FormProperty",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:StartEvent", "bpmn:UserTask"]
+ },
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "name",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "type",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "required",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "readable",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "writable",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "variable",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "expression",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "datePattern",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "default",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "values",
+ "type": "Value",
+ "isMany": true
+ },
+ {
+ "name": "children",
+ "type": "ChildField",
+ "isMany": true
+ },
+ {
+ "name": "extensionElements",
+ "type": "bpmn:ExtensionElements",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "FormData",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:StartEvent", "bpmn:UserTask"]
+ },
+ "properties": [
+ {
+ "name": "fields",
+ "type": "FormField",
+ "isMany": true
+ },
+ {
+ "name": "businessKey",
+ "type": "String",
+ "isAttr": true
+ }
+ ]
+ },
+ {
+ "name": "FormField",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "label",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "type",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "datePattern",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "defaultValue",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "properties",
+ "type": "Properties"
+ },
+ {
+ "name": "validation",
+ "type": "Validation"
+ },
+ {
+ "name": "values",
+ "type": "Value",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "Validation",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "constraints",
+ "type": "Constraint",
+ "isMany": true
+ }
+ ]
+ },
+ {
+ "name": "Constraint",
+ "superClass": ["Element"],
+ "properties": [
+ {
+ "name": "name",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "config",
+ "type": "String",
+ "isAttr": true
+ }
+ ]
+ },
+ {
+ "name": "ConditionalEventDefinition",
+ "isAbstract": true,
+ "extends": ["bpmn:ConditionalEventDefinition"],
+ "properties": [
+ {
+ "name": "variableName",
+ "isAttr": true,
+ "type": "String"
+ },
+ {
+ "name": "variableEvent",
+ "isAttr": true,
+ "type": "String"
+ }
+ ]
+ },
+ {
+ "name": "Condition",
+ "superClass": ["Element"],
+ "meta": {
+ "allowedIn": ["bpmn:SequenceFlow"]
+ },
+ "properties": [
+ {
+ "name": "id",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "field",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "compare",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "value",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "logic",
+ "type": "String",
+ "isAttr": true
+ },
+ {
+ "name": "sort",
+ "type": "Integer",
+ "isAttr": true
+ }
+ ]
+ }
+ ],
+ "emumerations": []
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/activitiExtension.js b/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/activitiExtension.js
new file mode 100644
index 0000000..56ef38a
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/activitiExtension.js
@@ -0,0 +1,83 @@
+'use strict'
+
+import { some } from 'min-dash'
+
+// const some = require('min-dash').some
+// const some = some
+
+const ALLOWED_TYPES = {
+ FailedJobRetryTimeCycle: [
+ 'bpmn:StartEvent',
+ 'bpmn:BoundaryEvent',
+ 'bpmn:IntermediateCatchEvent',
+ 'bpmn:Activity'
+ ],
+ Connector: ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent'],
+ Field: ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent']
+}
+
+function is(element, type) {
+ return element && typeof element.$instanceOf === 'function' && element.$instanceOf(type)
+}
+
+function exists(element) {
+ return element && element.length
+}
+
+function includesType(collection, type) {
+ return (
+ exists(collection) &&
+ some(collection, function (element) {
+ return is(element, type)
+ })
+ )
+}
+
+function anyType(element, types) {
+ return some(types, function (type) {
+ return is(element, type)
+ })
+}
+
+function isAllowed(propName, propDescriptor, newElement) {
+ const name = propDescriptor.name,
+ types = ALLOWED_TYPES[name.replace(/activiti:/, '')]
+
+ return name === propName && anyType(newElement, types)
+}
+
+function ActivitiModdleExtension(eventBus) {
+ eventBus.on(
+ 'property.clone',
+ function (context) {
+ const newElement = context.newElement,
+ propDescriptor = context.propertyDescriptor
+
+ this.canCloneProperty(newElement, propDescriptor)
+ },
+ this
+ )
+}
+
+ActivitiModdleExtension.$inject = ['eventBus']
+
+ActivitiModdleExtension.prototype.canCloneProperty = function (newElement, propDescriptor) {
+ if (isAllowed('activiti:FailedJobRetryTimeCycle', propDescriptor, newElement)) {
+ return (
+ includesType(newElement.eventDefinitions, 'bpmn:TimerEventDefinition') ||
+ includesType(newElement.eventDefinitions, 'bpmn:SignalEventDefinition') ||
+ is(newElement.loopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics')
+ )
+ }
+
+ if (isAllowed('activiti:Connector', propDescriptor, newElement)) {
+ return includesType(newElement.eventDefinitions, 'bpmn:MessageEventDefinition')
+ }
+
+ if (isAllowed('activiti:Field', propDescriptor, newElement)) {
+ return includesType(newElement.eventDefinitions, 'bpmn:MessageEventDefinition')
+ }
+}
+
+// module.exports = ActivitiModdleExtension;
+export default ActivitiModdleExtension
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/index.js b/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/index.js
new file mode 100644
index 0000000..c22ca34
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/activiti/index.js
@@ -0,0 +1,11 @@
+/*
+ * @author igdianov
+ * address https://github.com/igdianov/activiti-bpmn-moddle
+ * */
+
+import activitiExtension from './activitiExtension'
+
+export default {
+ __init__: ['ActivitiModdleExtension'],
+ ActivitiModdleExtension: ['type', activitiExtension]
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/extension.js b/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/extension.js
new file mode 100644
index 0000000..b8c37a5
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/extension.js
@@ -0,0 +1,151 @@
+'use strict'
+
+import { isFunction, isObject, some } from 'min-dash'
+
+// const isFunction = isFunction,
+// isObject = isObject,
+// some = some
+// const isFunction = require('min-dash').isFunction,
+// isObject = require('min-dash').isObject,
+// some = require('min-dash').some
+
+const WILDCARD = '*'
+
+function CamundaModdleExtension(eventBus) {
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
+ const self = this
+
+ eventBus.on('moddleCopy.canCopyProperty', function (context) {
+ const property = context.property,
+ parent = context.parent
+
+ return self.canCopyProperty(property, parent)
+ })
+}
+
+CamundaModdleExtension.$inject = ['eventBus']
+
+/**
+ * Check wether to disallow copying property.
+ */
+CamundaModdleExtension.prototype.canCopyProperty = function (property, parent) {
+ // (1) check wether property is allowed in parent
+ if (isObject(property) && !isAllowedInParent(property, parent)) {
+ return false
+ }
+
+ // (2) check more complex scenarios
+
+ if (is(property, 'camunda:InputOutput') && !this.canHostInputOutput(parent)) {
+ return false
+ }
+
+ if (isAny(property, ['camunda:Connector', 'camunda:Field']) && !this.canHostConnector(parent)) {
+ return false
+ }
+
+ if (is(property, 'camunda:In') && !this.canHostIn(parent)) {
+ return false
+ }
+}
+
+CamundaModdleExtension.prototype.canHostInputOutput = function (parent) {
+ // allowed in camunda:Connector
+ const connector = getParent(parent, 'camunda:Connector')
+
+ if (connector) {
+ return true
+ }
+
+ // special rules inside bpmn:FlowNode
+ const flowNode = getParent(parent, 'bpmn:FlowNode')
+
+ if (!flowNode) {
+ return false
+ }
+
+ if (isAny(flowNode, ['bpmn:StartEvent', 'bpmn:Gateway', 'bpmn:BoundaryEvent'])) {
+ return false
+ }
+
+ return !(is(flowNode, 'bpmn:SubProcess') && flowNode.get('triggeredByEvent'))
+}
+
+CamundaModdleExtension.prototype.canHostConnector = function (parent) {
+ const serviceTaskLike = getParent(parent, 'camunda:ServiceTaskLike')
+
+ if (is(serviceTaskLike, 'bpmn:MessageEventDefinition')) {
+ // only allow on throw and end events
+ return getParent(parent, 'bpmn:IntermediateThrowEvent') || getParent(parent, 'bpmn:EndEvent')
+ }
+
+ return true
+}
+
+CamundaModdleExtension.prototype.canHostIn = function (parent) {
+ const callActivity = getParent(parent, 'bpmn:CallActivity')
+
+ if (callActivity) {
+ return true
+ }
+
+ const signalEventDefinition = getParent(parent, 'bpmn:SignalEventDefinition')
+
+ if (signalEventDefinition) {
+ // only allow on throw and end events
+ return getParent(parent, 'bpmn:IntermediateThrowEvent') || getParent(parent, 'bpmn:EndEvent')
+ }
+
+ return true
+}
+
+// module.exports = CamundaModdleExtension;
+export default CamundaModdleExtension
+
+// helpers //////////
+
+function is(element, type) {
+ return element && isFunction(element.$instanceOf) && element.$instanceOf(type)
+}
+
+function isAny(element, types) {
+ return some(types, function (t) {
+ return is(element, t)
+ })
+}
+
+function getParent(element, type) {
+ if (!type) {
+ return element.$parent
+ }
+
+ if (is(element, type)) {
+ return element
+ }
+
+ if (!element.$parent) {
+ return
+ }
+
+ return getParent(element.$parent, type)
+}
+
+function isAllowedInParent(property, parent) {
+ // (1) find property descriptor
+ const descriptor = property.$type && property.$model.getTypeDescriptor(property.$type)
+
+ const allowedIn = descriptor && descriptor.meta && descriptor.meta.allowedIn
+
+ if (!allowedIn || isWildcard(allowedIn)) {
+ return true
+ }
+
+ // (2) check wether property has parent of allowed type
+ return some(allowedIn, function (type) {
+ return getParent(parent, type)
+ })
+}
+
+function isWildcard(allowedIn) {
+ return allowedIn.indexOf(WILDCARD) !== -1
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/index.js b/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/index.js
new file mode 100644
index 0000000..1da1bc7
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/camunda/index.js
@@ -0,0 +1,8 @@
+'use strict'
+
+import extension from './extension'
+
+export default {
+ __init__: ['camundaModdleExtension'],
+ camundaModdleExtension: ['type', extension]
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/flowableExtension.js b/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/flowableExtension.js
new file mode 100644
index 0000000..3dcea67
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/flowableExtension.js
@@ -0,0 +1,83 @@
+'use strict'
+
+import { some } from 'min-dash'
+
+// const some = some
+// const some = require('min-dash').some
+
+const ALLOWED_TYPES = {
+ FailedJobRetryTimeCycle: [
+ 'bpmn:StartEvent',
+ 'bpmn:BoundaryEvent',
+ 'bpmn:IntermediateCatchEvent',
+ 'bpmn:Activity'
+ ],
+ Connector: ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent'],
+ Field: ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent']
+}
+
+function is(element, type) {
+ return element && typeof element.$instanceOf === 'function' && element.$instanceOf(type)
+}
+
+function exists(element) {
+ return element && element.length
+}
+
+function includesType(collection, type) {
+ return (
+ exists(collection) &&
+ some(collection, function (element) {
+ return is(element, type)
+ })
+ )
+}
+
+function anyType(element, types) {
+ return some(types, function (type) {
+ return is(element, type)
+ })
+}
+
+function isAllowed(propName, propDescriptor, newElement) {
+ const name = propDescriptor.name,
+ types = ALLOWED_TYPES[name.replace(/flowable:/, '')]
+
+ return name === propName && anyType(newElement, types)
+}
+
+function FlowableModdleExtension(eventBus) {
+ eventBus.on(
+ 'property.clone',
+ function (context) {
+ const newElement = context.newElement,
+ propDescriptor = context.propertyDescriptor
+
+ this.canCloneProperty(newElement, propDescriptor)
+ },
+ this
+ )
+}
+
+FlowableModdleExtension.$inject = ['eventBus']
+
+FlowableModdleExtension.prototype.canCloneProperty = function (newElement, propDescriptor) {
+ if (isAllowed('flowable:FailedJobRetryTimeCycle', propDescriptor, newElement)) {
+ return (
+ includesType(newElement.eventDefinitions, 'bpmn:TimerEventDefinition') ||
+ includesType(newElement.eventDefinitions, 'bpmn:SignalEventDefinition') ||
+ is(newElement.loopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics')
+ )
+ }
+
+ if (isAllowed('flowable:Connector', propDescriptor, newElement)) {
+ return includesType(newElement.eventDefinitions, 'bpmn:MessageEventDefinition')
+ }
+
+ if (isAllowed('flowable:Field', propDescriptor, newElement)) {
+ return includesType(newElement.eventDefinitions, 'bpmn:MessageEventDefinition')
+ }
+}
+
+// module.exports = FlowableModdleExtension;
+export default FlowableModdleExtension
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/index.js b/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/index.js
new file mode 100644
index 0000000..6d59b67
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/extension-moddle/flowable/index.js
@@ -0,0 +1,10 @@
+/*
+ * @author igdianov
+ * address https://github.com/igdianov/activiti-bpmn-moddle
+ * */
+import flowableExtension from './flowableExtension'
+
+export default {
+ __init__: ['FlowableModdleExtension'],
+ FlowableModdleExtension: ['type', flowableExtension]
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js b/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js
new file mode 100644
index 0000000..5e2803b
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/palette/CustomPalette.js
@@ -0,0 +1,221 @@
+import PaletteProvider from 'bpmn-js/lib/features/palette/PaletteProvider'
+import { assign } from 'min-dash'
+
+export default function CustomPalette(
+ palette,
+ create,
+ elementFactory,
+ spaceTool,
+ lassoTool,
+ handTool,
+ globalConnect,
+ translate
+) {
+ PaletteProvider.call(
+ this,
+ palette,
+ create,
+ elementFactory,
+ spaceTool,
+ lassoTool,
+ handTool,
+ globalConnect,
+ translate,
+ 2000
+ )
+}
+
+const F = function () {} // 核心,利用空对象作为中介;
+F.prototype = PaletteProvider.prototype // 核心,将父类的原型赋值给空对象F;
+
+// 利用中介函数重写原型链方法
+F.prototype.getPaletteEntries = function () {
+ const actions = {},
+ create = this._create,
+ elementFactory = this._elementFactory,
+ spaceTool = this._spaceTool,
+ lassoTool = this._lassoTool,
+ handTool = this._handTool,
+ globalConnect = this._globalConnect,
+ translate = this._translate
+
+ function createAction(type, group, className, title, options) {
+ function createListener(event) {
+ const shape = elementFactory.createShape(assign({ type: type }, options))
+
+ if (options) {
+ shape.businessObject.di.isExpanded = options.isExpanded
+ }
+
+ create.start(event, shape)
+ }
+
+ const shortType = type.replace(/^bpmn:/, '')
+
+ return {
+ group: group,
+ className: className,
+ title: title || translate('Create {type}', { type: shortType }),
+ action: {
+ dragstart: createListener,
+ click: createListener
+ }
+ }
+ }
+
+ function createSubprocess(event) {
+ const subProcess = elementFactory.createShape({
+ type: 'bpmn:SubProcess',
+ x: 0,
+ y: 0,
+ isExpanded: true
+ })
+
+ const startEvent = elementFactory.createShape({
+ type: 'bpmn:StartEvent',
+ x: 40,
+ y: 82,
+ parent: subProcess
+ })
+
+ create.start(event, [subProcess, startEvent], {
+ hints: {
+ autoSelect: [startEvent]
+ }
+ })
+ }
+
+ function createParticipant(event) {
+ create.start(event, elementFactory.createParticipantShape())
+ }
+
+ assign(actions, {
+ 'hand-tool': {
+ group: 'tools',
+ className: 'bpmn-icon-hand-tool',
+ title: '激活抓手工具',
+ // title: translate("Activate the hand tool"),
+ action: {
+ click: function (event) {
+ handTool.activateHand(event)
+ }
+ }
+ },
+ 'lasso-tool': {
+ group: 'tools',
+ className: 'bpmn-icon-lasso-tool',
+ title: translate('Activate the lasso tool'),
+ action: {
+ click: function (event) {
+ lassoTool.activateSelection(event)
+ }
+ }
+ },
+ 'space-tool': {
+ group: 'tools',
+ className: 'bpmn-icon-space-tool',
+ title: translate('Activate the create/remove space tool'),
+ action: {
+ click: function (event) {
+ spaceTool.activateSelection(event)
+ }
+ }
+ },
+ 'global-connect-tool': {
+ group: 'tools',
+ className: 'bpmn-icon-connection-multi',
+ title: translate('Activate the global connect tool'),
+ action: {
+ click: function (event) {
+ globalConnect.toggle(event)
+ }
+ }
+ },
+ 'tool-separator': {
+ group: 'tools',
+ separator: true
+ },
+ 'create.start-event': createAction(
+ 'bpmn:StartEvent',
+ 'event',
+ 'bpmn-icon-start-event-none',
+ translate('Create StartEvent')
+ ),
+ 'create.intermediate-event': createAction(
+ 'bpmn:IntermediateThrowEvent',
+ 'event',
+ 'bpmn-icon-intermediate-event-none',
+ translate('Create Intermediate/Boundary Event')
+ ),
+ 'create.end-event': createAction(
+ 'bpmn:EndEvent',
+ 'event',
+ 'bpmn-icon-end-event-none',
+ translate('Create EndEvent')
+ ),
+ 'create.exclusive-gateway': createAction(
+ 'bpmn:ExclusiveGateway',
+ 'gateway',
+ 'bpmn-icon-gateway-none',
+ translate('Create Gateway')
+ ),
+ 'create.user-task': createAction(
+ 'bpmn:UserTask',
+ 'activity',
+ 'bpmn-icon-user-task',
+ translate('Create User Task')
+ ),
+ 'create.data-object': createAction(
+ 'bpmn:DataObjectReference',
+ 'data-object',
+ 'bpmn-icon-data-object',
+ translate('Create DataObjectReference')
+ ),
+ 'create.data-store': createAction(
+ 'bpmn:DataStoreReference',
+ 'data-store',
+ 'bpmn-icon-data-store',
+ translate('Create DataStoreReference')
+ ),
+ 'create.subprocess-expanded': {
+ group: 'activity',
+ className: 'bpmn-icon-subprocess-expanded',
+ title: translate('Create expanded SubProcess'),
+ action: {
+ dragstart: createSubprocess,
+ click: createSubprocess
+ }
+ },
+ 'create.participant-expanded': {
+ group: 'collaboration',
+ className: 'bpmn-icon-participant',
+ title: translate('Create Pool/Participant'),
+ action: {
+ dragstart: createParticipant,
+ click: createParticipant
+ }
+ },
+ 'create.group': createAction(
+ 'bpmn:Group',
+ 'artifact',
+ 'bpmn-icon-group',
+ translate('Create Group')
+ )
+ })
+
+ return actions
+}
+
+CustomPalette.$inject = [
+ 'palette',
+ 'create',
+ 'elementFactory',
+ 'spaceTool',
+ 'lassoTool',
+ 'handTool',
+ 'globalConnect',
+ 'translate'
+]
+
+CustomPalette.prototype = new F() // 核心,将 F的实例赋值给子类;
+CustomPalette.prototype.constructor = CustomPalette // 修复子类CustomPalette的构造器指向,防止原型链的混乱;
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/palette/index.js b/src/components/bpmnProcessDesigner/package/designer/plugins/palette/index.js
new file mode 100644
index 0000000..8e4f3ac
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/palette/index.js
@@ -0,0 +1,22 @@
+// import PaletteModule from "diagram-js/lib/features/palette";
+// import CreateModule from "diagram-js/lib/features/create";
+// import SpaceToolModule from "diagram-js/lib/features/space-tool";
+// import LassoToolModule from "diagram-js/lib/features/lasso-tool";
+// import HandToolModule from "diagram-js/lib/features/hand-tool";
+// import GlobalConnectModule from "diagram-js/lib/features/global-connect";
+// import translate from "diagram-js/lib/i18n/translate";
+//
+// import PaletteProvider from "./paletteProvider";
+//
+// export default {
+// __depends__: [PaletteModule, CreateModule, SpaceToolModule, LassoToolModule, HandToolModule, GlobalConnectModule, translate],
+// __init__: ["paletteProvider"],
+// paletteProvider: ["type", PaletteProvider]
+// };
+
+import CustomPalette from './CustomPalette'
+
+export default {
+ __init__: ['paletteProvider'],
+ paletteProvider: ['type', CustomPalette]
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js b/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js
new file mode 100644
index 0000000..7098981
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/palette/paletteProvider.js
@@ -0,0 +1,213 @@
+import { assign } from 'min-dash'
+
+/**
+ * A palette provider for BPMN 2.0 elements.
+ */
+export default function PaletteProvider(
+ palette,
+ create,
+ elementFactory,
+ spaceTool,
+ lassoTool,
+ handTool,
+ globalConnect,
+ translate
+) {
+ this._palette = palette
+ this._create = create
+ this._elementFactory = elementFactory
+ this._spaceTool = spaceTool
+ this._lassoTool = lassoTool
+ this._handTool = handTool
+ this._globalConnect = globalConnect
+ this._translate = translate
+
+ palette.registerProvider(this)
+}
+
+PaletteProvider.$inject = [
+ 'palette',
+ 'create',
+ 'elementFactory',
+ 'spaceTool',
+ 'lassoTool',
+ 'handTool',
+ 'globalConnect',
+ 'translate'
+]
+
+PaletteProvider.prototype.getPaletteEntries = function () {
+ const actions = {},
+ create = this._create,
+ elementFactory = this._elementFactory,
+ spaceTool = this._spaceTool,
+ lassoTool = this._lassoTool,
+ handTool = this._handTool,
+ globalConnect = this._globalConnect,
+ translate = this._translate
+
+ function createAction(type, group, className, title, options) {
+ function createListener(event) {
+ const shape = elementFactory.createShape(assign({ type: type }, options))
+
+ if (options) {
+ shape.businessObject.di.isExpanded = options.isExpanded
+ }
+
+ create.start(event, shape)
+ }
+
+ const shortType = type.replace(/^bpmn:/, '')
+
+ return {
+ group: group,
+ className: className,
+ title: title || translate('Create {type}', { type: shortType }),
+ action: {
+ dragstart: createListener,
+ click: createListener
+ }
+ }
+ }
+
+ function createSubprocess(event) {
+ const subProcess = elementFactory.createShape({
+ type: 'bpmn:SubProcess',
+ x: 0,
+ y: 0,
+ isExpanded: true
+ })
+
+ const startEvent = elementFactory.createShape({
+ type: 'bpmn:StartEvent',
+ x: 40,
+ y: 82,
+ parent: subProcess
+ })
+
+ create.start(event, [subProcess, startEvent], {
+ hints: {
+ autoSelect: [startEvent]
+ }
+ })
+ }
+
+ function createParticipant(event) {
+ create.start(event, elementFactory.createParticipantShape())
+ }
+
+ assign(actions, {
+ 'hand-tool': {
+ group: 'tools',
+ className: 'bpmn-icon-hand-tool',
+ title: translate('Activate the hand tool'),
+ action: {
+ click: function (event) {
+ handTool.activateHand(event)
+ }
+ }
+ },
+ 'lasso-tool': {
+ group: 'tools',
+ className: 'bpmn-icon-lasso-tool',
+ title: translate('Activate the lasso tool'),
+ action: {
+ click: function (event) {
+ lassoTool.activateSelection(event)
+ }
+ }
+ },
+ 'space-tool': {
+ group: 'tools',
+ className: 'bpmn-icon-space-tool',
+ title: translate('Activate the create/remove space tool'),
+ action: {
+ click: function (event) {
+ spaceTool.activateSelection(event)
+ }
+ }
+ },
+ 'global-connect-tool': {
+ group: 'tools',
+ className: 'bpmn-icon-connection-multi',
+ title: translate('Activate the global connect tool'),
+ action: {
+ click: function (event) {
+ globalConnect.toggle(event)
+ }
+ }
+ },
+ 'tool-separator': {
+ group: 'tools',
+ separator: true
+ },
+ 'create.start-event': createAction(
+ 'bpmn:StartEvent',
+ 'event',
+ 'bpmn-icon-start-event-none',
+ translate('Create StartEvent')
+ ),
+ 'create.intermediate-event': createAction(
+ 'bpmn:IntermediateThrowEvent',
+ 'event',
+ 'bpmn-icon-intermediate-event-none',
+ translate('Create Intermediate/Boundary Event')
+ ),
+ 'create.end-event': createAction(
+ 'bpmn:EndEvent',
+ 'event',
+ 'bpmn-icon-end-event-none',
+ translate('Create EndEvent')
+ ),
+ 'create.exclusive-gateway': createAction(
+ 'bpmn:ExclusiveGateway',
+ 'gateway',
+ 'bpmn-icon-gateway-none',
+ translate('Create Gateway')
+ ),
+ 'create.user-task': createAction(
+ 'bpmn:UserTask',
+ 'activity',
+ 'bpmn-icon-user-task',
+ translate('Create User Task')
+ ),
+ 'create.data-object': createAction(
+ 'bpmn:DataObjectReference',
+ 'data-object',
+ 'bpmn-icon-data-object',
+ translate('Create DataObjectReference')
+ ),
+ 'create.data-store': createAction(
+ 'bpmn:DataStoreReference',
+ 'data-store',
+ 'bpmn-icon-data-store',
+ translate('Create DataStoreReference')
+ ),
+ 'create.subprocess-expanded': {
+ group: 'activity',
+ className: 'bpmn-icon-subprocess-expanded',
+ title: translate('Create expanded SubProcess'),
+ action: {
+ dragstart: createSubprocess,
+ click: createSubprocess
+ }
+ },
+ 'create.participant-expanded': {
+ group: 'collaboration',
+ className: 'bpmn-icon-participant',
+ title: translate('Create Pool/Participant'),
+ action: {
+ dragstart: createParticipant,
+ click: createParticipant
+ }
+ },
+ 'create.group': createAction(
+ 'bpmn:Group',
+ 'artifact',
+ 'bpmn-icon-group',
+ translate('Create Group')
+ )
+ })
+
+ return actions
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/translate/customTranslate.js b/src/components/bpmnProcessDesigner/package/designer/plugins/translate/customTranslate.js
new file mode 100644
index 0000000..c1b99e1
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/translate/customTranslate.js
@@ -0,0 +1,44 @@
+// import translations from "./zh";
+//
+// export default function customTranslate(template, replacements) {
+// replacements = replacements || {};
+//
+// // Translate
+// template = translations[template] || template;
+//
+// // Replace
+// return template.replace(/{([^}]+)}/g, function(_, key) {
+// let str = replacements[key];
+// if (
+// translations[replacements[key]] !== null &&
+// translations[replacements[key]] !== "undefined"
+// ) {
+// // eslint-disable-next-line no-mixed-spaces-and-tabs
+// str = translations[replacements[key]];
+// // eslint-disable-next-line no-mixed-spaces-and-tabs
+// }
+// return str || "{" + key + "}";
+// });
+// }
+
+export default function customTranslate(translations) {
+ return function (template, replacements) {
+ replacements = replacements || {}
+ // Translate
+ template = translations[template] || template
+
+ // Replace
+ return template.replace(/{([^}]+)}/g, function (_, key) {
+ let str = replacements[key]
+ if (
+ translations[replacements[key]] !== null &&
+ translations[replacements[key]] !== undefined
+ ) {
+ // eslint-disable-next-line no-mixed-spaces-and-tabs
+ str = translations[replacements[key]]
+ // eslint-disable-next-line no-mixed-spaces-and-tabs
+ }
+ return str || '{' + key + '}'
+ })
+ }
+}
diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/translate/zh.js b/src/components/bpmnProcessDesigner/package/designer/plugins/translate/zh.js
new file mode 100644
index 0000000..777db3e
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/designer/plugins/translate/zh.js
@@ -0,0 +1,240 @@
+/**
+ * This is a sample file that should be replaced with the actual translation.
+ *
+ * Checkout https://github.com/bpmn-io/bpmn-js-i18n for a list of available
+ * translations and labels to translate.
+ */
+export default {
+ // 添加部分
+ 'Append EndEvent': '追加结束事件',
+ 'Append Gateway': '追加网关',
+ 'Append Task': '追加任务',
+ 'Append Intermediate/Boundary Event': '追加中间抛出事件/边界事件',
+
+ 'Activate the global connect tool': '激活全局连接工具',
+ 'Append {type}': '添加 {type}',
+ 'Add Lane above': '在上面添加道',
+ 'Divide into two Lanes': '分割成两个道',
+ 'Divide into three Lanes': '分割成三个道',
+ 'Add Lane below': '在下面添加道',
+ 'Append compensation activity': '追加补偿活动',
+ 'Change type': '修改类型',
+ 'Connect using Association': '使用关联连接',
+ 'Connect using Sequence/MessageFlow or Association': '使用顺序/消息流或者关联连接',
+ 'Connect using DataInputAssociation': '使用数据输入关联连接',
+ Remove: '移除',
+ 'Activate the hand tool': '激活抓手工具',
+ 'Activate the lasso tool': '激活套索工具',
+ 'Activate the create/remove space tool': '激活创建/删除空间工具',
+ 'Create expanded SubProcess': '创建扩展子过程',
+ 'Create IntermediateThrowEvent/BoundaryEvent': '创建中间抛出事件/边界事件',
+ 'Create Pool/Participant': '创建池/参与者',
+ 'Parallel Multi Instance': '并行多重事件',
+ 'Sequential Multi Instance': '时序多重事件',
+ DataObjectReference: '数据对象参考',
+ DataStoreReference: '数据存储参考',
+ Loop: '循环',
+ 'Ad-hoc': '即席',
+ 'Create {type}': '创建 {type}',
+ Task: '任务',
+ 'Send Task': '发送任务',
+ 'Receive Task': '接收任务',
+ 'User Task': '用户任务',
+ 'Manual Task': '手工任务',
+ 'Business Rule Task': '业务规则任务',
+ 'Service Task': '服务任务',
+ 'Script Task': '脚本任务',
+ 'Call Activity': '调用活动',
+ 'Sub Process (collapsed)': '子流程(折叠的)',
+ 'Sub Process (expanded)': '子流程(展开的)',
+ 'Start Event': '开始事件',
+ StartEvent: '开始事件',
+ 'Intermediate Throw Event': '中间事件',
+ 'End Event': '结束事件',
+ EndEvent: '结束事件',
+ 'Create StartEvent': '创建开始事件',
+ 'Create EndEvent': '创建结束事件',
+ 'Create Task': '创建任务',
+ 'Create User Task': '创建用户任务',
+ 'Create Gateway': '创建网关',
+ 'Create DataObjectReference': '创建数据对象',
+ 'Create DataStoreReference': '创建数据存储',
+ 'Create Group': '创建分组',
+ 'Create Intermediate/Boundary Event': '创建中间/边界事件',
+ 'Message Start Event': '消息开始事件',
+ 'Timer Start Event': '定时开始事件',
+ 'Conditional Start Event': '条件开始事件',
+ 'Signal Start Event': '信号开始事件',
+ 'Error Start Event': '错误开始事件',
+ 'Escalation Start Event': '升级开始事件',
+ 'Compensation Start Event': '补偿开始事件',
+ 'Message Start Event (non-interrupting)': '消息开始事件(非中断)',
+ 'Timer Start Event (non-interrupting)': '定时开始事件(非中断)',
+ 'Conditional Start Event (non-interrupting)': '条件开始事件(非中断)',
+ 'Signal Start Event (non-interrupting)': '信号开始事件(非中断)',
+ 'Escalation Start Event (non-interrupting)': '升级开始事件(非中断)',
+ 'Message Intermediate Catch Event': '消息中间捕获事件',
+ 'Message Intermediate Throw Event': '消息中间抛出事件',
+ 'Timer Intermediate Catch Event': '定时中间捕获事件',
+ 'Escalation Intermediate Throw Event': '升级中间抛出事件',
+ 'Conditional Intermediate Catch Event': '条件中间捕获事件',
+ 'Link Intermediate Catch Event': '链接中间捕获事件',
+ 'Link Intermediate Throw Event': '链接中间抛出事件',
+ 'Compensation Intermediate Throw Event': '补偿中间抛出事件',
+ 'Signal Intermediate Catch Event': '信号中间捕获事件',
+ 'Signal Intermediate Throw Event': '信号中间抛出事件',
+ 'Message End Event': '消息结束事件',
+ 'Escalation End Event': '定时结束事件',
+ 'Error End Event': '错误结束事件',
+ 'Cancel End Event': '取消结束事件',
+ 'Compensation End Event': '补偿结束事件',
+ 'Signal End Event': '信号结束事件',
+ 'Terminate End Event': '终止结束事件',
+ 'Message Boundary Event': '消息边界事件',
+ 'Message Boundary Event (non-interrupting)': '消息边界事件(非中断)',
+ 'Timer Boundary Event': '定时边界事件',
+ 'Timer Boundary Event (non-interrupting)': '定时边界事件(非中断)',
+ 'Escalation Boundary Event': '升级边界事件',
+ 'Escalation Boundary Event (non-interrupting)': '升级边界事件(非中断)',
+ 'Conditional Boundary Event': '条件边界事件',
+ 'Conditional Boundary Event (non-interrupting)': '条件边界事件(非中断)',
+ 'Error Boundary Event': '错误边界事件',
+ 'Cancel Boundary Event': '取消边界事件',
+ 'Signal Boundary Event': '信号边界事件',
+ 'Signal Boundary Event (non-interrupting)': '信号边界事件(非中断)',
+ 'Compensation Boundary Event': '补偿边界事件',
+ 'Exclusive Gateway': '互斥网关',
+ 'Parallel Gateway': '并行网关',
+ 'Inclusive Gateway': '相容网关',
+ 'Complex Gateway': '复杂网关',
+ 'Event based Gateway': '事件网关',
+ Transaction: '转运',
+ 'Sub Process': '子流程',
+ 'Event Sub Process': '事件子流程',
+ 'Collapsed Pool': '折叠池',
+ 'Expanded Pool': '展开池',
+
+ // Errors
+ 'no parent for {element} in {parent}': '在{parent}里,{element}没有父类',
+ 'no shape type specified': '没有指定的形状类型',
+ 'flow elements must be children of pools/participants': '流元素必须是池/参与者的子类',
+ 'out of bounds release': 'out of bounds release',
+ 'more than {count} child lanes': '子道大于{count} ',
+ 'element required': '元素不能为空',
+ 'diagram not part of bpmn:Definitions': '流程图不符合bpmn规范',
+ 'no diagram to display': '没有可展示的流程图',
+ 'no process or collaboration to display': '没有可展示的流程/协作',
+ 'element {element} referenced by {referenced}#{property} not yet drawn':
+ '由{referenced}#{property}引用的{element}元素仍未绘制',
+ 'already rendered {element}': '{element} 已被渲染',
+ 'failed to import {element}': '导入{element}失败',
+ //属性面板的参数
+ Id: '编号',
+ Name: '名称',
+ General: '常规',
+ Details: '详情',
+ 'Message Name': '消息名称',
+ Message: '消息',
+ Initiator: '创建者',
+ 'Asynchronous Continuations': '持续异步',
+ 'Asynchronous Before': '异步前',
+ 'Asynchronous After': '异步后',
+ 'Job Configuration': '工作配置',
+ Exclusive: '排除',
+ 'Job Priority': '工作优先级',
+ 'Retry Time Cycle': '重试时间周期',
+ Documentation: '文档',
+ 'Element Documentation': '元素文档',
+ 'History Configuration': '历史配置',
+ 'History Time To Live': '历史的生存时间',
+ Forms: '表单',
+ 'Form Key': '表单key',
+ 'Form Fields': '表单字段',
+ 'Business Key': '业务key',
+ 'Form Field': '表单字段',
+ ID: '编号',
+ Type: '类型',
+ Label: '名称',
+ 'Default Value': '默认值',
+ 'Default Flow': '默认流转路径',
+ 'Conditional Flow': '条件流转路径',
+ 'Sequence Flow': '普通流转路径',
+ Validation: '校验',
+ 'Add Constraint': '添加约束',
+ Config: '配置',
+ Properties: '属性',
+ 'Add Property': '添加属性',
+ Value: '值',
+ Listeners: '监听器',
+ 'Execution Listener': '执行监听',
+ 'Event Type': '事件类型',
+ 'Listener Type': '监听器类型',
+ 'Java Class': 'Java类',
+ Expression: '表达式',
+ 'Must provide a value': '必须提供一个值',
+ 'Delegate Expression': '代理表达式',
+ Script: '脚本',
+ 'Script Format': '脚本格式',
+ 'Script Type': '脚本类型',
+ 'Inline Script': '内联脚本',
+ 'External Script': '外部脚本',
+ Resource: '资源',
+ 'Field Injection': '字段注入',
+ Extensions: '扩展',
+ 'Input/Output': '输入/输出',
+ 'Input Parameters': '输入参数',
+ 'Output Parameters': '输出参数',
+ Parameters: '参数',
+ 'Output Parameter': '输出参数',
+ 'Timer Definition Type': '定时器定义类型',
+ 'Timer Definition': '定时器定义',
+ Date: '日期',
+ Duration: '持续',
+ Cycle: '循环',
+ Signal: '信号',
+ 'Signal Name': '信号名称',
+ Escalation: '升级',
+ Error: '错误',
+ 'Link Name': '链接名称',
+ Condition: '条件名称',
+ 'Variable Name': '变量名称',
+ 'Variable Event': '变量事件',
+ 'Specify more than one variable change event as a comma separated list.':
+ '多个变量事件以逗号隔开',
+ 'Wait for Completion': '等待完成',
+ 'Activity Ref': '活动参考',
+ 'Version Tag': '版本标签',
+ Executable: '可执行文件',
+ 'External Task Configuration': '扩展任务配置',
+ 'Task Priority': '任务优先级',
+ External: '外部',
+ Connector: '连接器',
+ 'Must configure Connector': '必须配置连接器',
+ 'Connector Id': '连接器编号',
+ Implementation: '实现方式',
+ 'Field Injections': '字段注入',
+ Fields: '字段',
+ 'Result Variable': '结果变量',
+ Topic: '主题',
+ 'Configure Connector': '配置连接器',
+ 'Input Parameter': '输入参数',
+ Assignee: '代理人',
+ 'Candidate Users': '候选用户',
+ 'Candidate Groups': '候选组',
+ 'Due Date': '到期时间',
+ 'Follow Up Date': '跟踪日期',
+ Priority: '优先级',
+ 'The follow up date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':
+ '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00',
+ 'The due date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':
+ '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00',
+ Variables: '变量',
+ 'Candidate Starter Configuration': '候选人起动器配置',
+ 'Candidate Starter Groups': '候选人起动器组',
+ 'This maps to the process definition key.': '这映射到流程定义键。',
+ 'Candidate Starter Users': '候选人起动器的用户',
+ 'Specify more than one user as a comma separated list.': '指定多个用户作为逗号分隔的列表。',
+ 'Tasklist Configuration': 'Tasklist配置',
+ Startable: '启动',
+ 'Specify more than one group as a comma separated list.': '指定多个组作为逗号分隔的列表。'
+}
diff --git a/src/components/bpmnProcessDesigner/package/index.ts b/src/components/bpmnProcessDesigner/package/index.ts
new file mode 100644
index 0000000..ce44a3c
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/index.ts
@@ -0,0 +1,11 @@
+import MyProcessDesigner from './designer'
+import MyProcessPenal from './penal'
+import MyProcessViewer from './designer/index2'
+
+import './theme/index.scss'
+import 'bpmn-js/dist/assets/diagram-js.css'
+import 'bpmn-js/dist/assets/bpmn-font/css/bpmn.css'
+import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css'
+import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css'
+
+export { MyProcessDesigner, MyProcessPenal, MyProcessViewer }
diff --git a/src/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue b/src/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue
new file mode 100644
index 0000000..ba97d96
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue b/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue
new file mode 100644
index 0000000..377592f
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+ 常规
+
+
+
+ 消息与信号
+
+
+
+ 流转条件
+
+
+
+ 表单
+
+ 友情提示:使用
+ 流程表单
+
+ 替代,提供更好的表单设计功能
+
+
+ 任务
+
+
+
+ 多实例
+
+
+
+ 执行监听器
+
+
+
+ 任务监听器
+
+
+
+ 扩展属性
+
+
+
+ 其他
+
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue b/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue
new file mode 100644
index 0000000..6d64b3b
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+ 如何实现实现会签、或签?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue b/src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue
new file mode 100644
index 0000000..345670a
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue
@@ -0,0 +1,191 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue b/src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue
new file mode 100644
index 0000000..da1d1ae
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/form/ElementForm.vue
@@ -0,0 +1,465 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 表单字段
+
+
+
+
+
+
+
+ 编辑
+
+ 移除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 枚举值列表:
+ 添加枚举值
+
+
+
+
+
+
+
+ 编辑
+
+ 移除
+
+
+
+
+
+
+
+
+ 约束条件列表:
+ 添加约束
+
+
+
+
+
+
+
+ 编辑
+
+ 移除
+
+
+
+
+
+
+
+ 字段属性列表:
+ 添加属性
+
+
+
+
+
+
+
+ 编辑
+
+ 移除
+
+
+
+
+
+
+ 取 消
+ 保 存
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取 消
+ 确 定
+
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/index.js b/src/components/bpmnProcessDesigner/package/penal/index.js
new file mode 100644
index 0000000..7fa5617
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/index.js
@@ -0,0 +1,7 @@
+import MyPropertiesPanel from './PropertiesPanel.vue'
+
+MyPropertiesPanel.install = function (Vue) {
+ Vue.component(MyPropertiesPanel.name, MyPropertiesPanel)
+}
+
+export default MyPropertiesPanel
diff --git a/src/components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue b/src/components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue
new file mode 100644
index 0000000..45ee8f9
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/listeners/ElementListeners.vue
@@ -0,0 +1,403 @@
+
+
+
+
+
+
+
+
+ 编辑
+
+ 移除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 注入字段:
+
+
+
+
+
+
+
+
+
+ 编辑
+
+ 移除
+
+
+
+
+
+ 取 消
+ 保 存
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取 消
+ 确 定
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue b/src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue
new file mode 100644
index 0000000..9464883
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/listeners/UserTaskListeners.vue
@@ -0,0 +1,451 @@
+
+
+
+
+
+
+
+
+
+ 编辑
+
+ 移除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 注入字段:
+ 添加字段
+
+
+
+
+
+
+
+
+ 编辑
+
+ 移除
+
+
+
+
+
+ 取 消
+ 保 存
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取 消
+ 确 定
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/listeners/template.js b/src/components/bpmnProcessDesigner/package/penal/listeners/template.js
new file mode 100644
index 0000000..430dc64
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/listeners/template.js
@@ -0,0 +1,178 @@
+export const template = (isTaskListener) => {
+ return `
+
+
+
+
+
+
+
+ 编辑
+
+ 移除
+
+
+
+
+ 添加监听器
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${
+ isTaskListener
+ ? "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ "" +
+ '' +
+ '' +
+ "" +
+ "" +
+ ''
+ : ''
+ }
+
+
+
+ 注入字段:
+ 添加字段
+
+
+
+
+
+
+
+
+ 编辑
+
+ 移除
+
+
+
+
+
+ 取 消
+ 保 存
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取 消
+ 确 定
+
+
+
+ `
+}
diff --git a/src/components/bpmnProcessDesigner/package/penal/listeners/utilSelf.ts b/src/components/bpmnProcessDesigner/package/penal/listeners/utilSelf.ts
new file mode 100644
index 0000000..5f46abd
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/listeners/utilSelf.ts
@@ -0,0 +1,62 @@
+// 初始化表单数据
+export function initListenerForm(listener) {
+ let self = {
+ ...listener
+ }
+ if (listener.script) {
+ self = {
+ ...listener,
+ ...listener.script,
+ scriptType: listener.script.resource ? 'externalScript' : 'inlineScript'
+ }
+ }
+ if (listener.event === 'timeout' && listener.eventDefinitions) {
+ if (listener.eventDefinitions.length) {
+ let k = ''
+ for (const key in listener.eventDefinitions[0]) {
+ console.log(listener.eventDefinitions, key)
+ if (key.indexOf('time') !== -1) {
+ k = key
+ self.eventDefinitionType = key.replace('time', '').toLowerCase()
+ }
+ }
+ console.log(k)
+ self.eventTimeDefinitions = listener.eventDefinitions[0][k].body
+ }
+ }
+ return self
+}
+
+export function initListenerType(listener) {
+ let listenerType
+ if (listener.class) listenerType = 'classListener'
+ if (listener.expression) listenerType = 'expressionListener'
+ if (listener.delegateExpression) listenerType = 'delegateExpressionListener'
+ if (listener.script) listenerType = 'scriptListener'
+ return {
+ ...JSON.parse(JSON.stringify(listener)),
+ ...(listener.script ?? {}),
+ listenerType: listenerType
+ }
+}
+
+export const listenerType = {
+ classListener: 'Java 类',
+ expressionListener: '表达式',
+ delegateExpressionListener: '代理表达式',
+ scriptListener: '脚本'
+}
+
+export const eventType = {
+ create: '创建',
+ assignment: '指派',
+ complete: '完成',
+ delete: '删除',
+ update: '更新',
+ timeout: '超时'
+}
+
+export const fieldType = {
+ string: '字符串',
+ expression: '表达式'
+}
diff --git a/src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue b/src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue
new file mode 100644
index 0000000..28db5aa
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/multi-instance/ElementMultiInstance.vue
@@ -0,0 +1,254 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue b/src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue
new file mode 100644
index 0000000..05532c6
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/other/ElementOtherConfig.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue b/src/components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue
new file mode 100644
index 0000000..494b3d9
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/properties/ElementProperties.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+
+ 移除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取 消
+ 确 定
+
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue b/src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue
new file mode 100644
index 0000000..f38f31c
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue
@@ -0,0 +1,113 @@
+
+
+
+ 消息列表
+
+
+
+
+
+
+
+
+ 信号列表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取 消
+ 保 存
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue b/src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue
new file mode 100644
index 0000000..33a12a7
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue b/src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue
new file mode 100644
index 0000000..83ed24e
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/task/task-components/ReceiveTask.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确 认
+
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue b/src/components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue
new file mode 100644
index 0000000..683fef3
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/task/task-components/ScriptTask.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue b/src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue
new file mode 100644
index 0000000..7b793db
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 友情提示:任务的分配规则,使用
+ 流程模型
+
+ 下的【分配规则】替代,提供指定角色、部门负责人、部门成员、岗位、工作组、自定义脚本等 7
+ 种维护的任务分配维度,更加灵活!
+
+
+
+
diff --git a/src/components/bpmnProcessDesigner/package/theme/element-variables.scss b/src/components/bpmnProcessDesigner/package/theme/element-variables.scss
new file mode 100644
index 0000000..49bd326
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/theme/element-variables.scss
@@ -0,0 +1,70 @@
+/* 改变主题色变量 */
+$--color-primary: #1890ff;
+$--color-danger: #ff4d4f;
+
+/* 改变 icon 字体路径变量,必需 */
+$--font-path: '~element-ui/lib/theme-chalk/fonts';
+
+@import '~element-ui/packages/theme-chalk/src/index';
+
+.el-table td,
+.el-table th {
+ color: #333;
+}
+.el-drawer__header {
+ padding: 16px 16px 8px 16px;
+ margin: 0;
+ line-height: 24px;
+ font-size: 18px;
+ color: #303133;
+ box-sizing: border-box;
+ border-bottom: 1px solid #e8e8e8;
+}
+div[class^='el-drawer']:focus,
+span:focus {
+ outline: none;
+}
+.el-drawer__body {
+ box-sizing: border-box;
+ padding: 16px;
+ width: 100%;
+ overflow-y: auto;
+}
+
+.el-dialog {
+ margin-top: 50vh !important;
+ transform: translateY(-50%);
+ overflow: hidden;
+}
+.el-dialog__wrapper {
+ overflow: hidden;
+ max-height: 100vh;
+}
+.el-dialog__header {
+ padding: 16px 16px 8px 16px;
+ box-sizing: border-box;
+ border-bottom: 1px solid #e8e8e8;
+}
+.el-dialog__body {
+ padding: 16px;
+ max-height: 80vh;
+ box-sizing: border-box;
+ overflow-y: auto;
+}
+.el-dialog__footer {
+ padding: 16px;
+ box-sizing: border-box;
+ border-top: 1px solid #e8e8e8;
+}
+.el-dialog__close {
+ font-weight: 600;
+}
+.el-select {
+ width: 100%;
+}
+.el-divider:not(.el-divider--horizontal) {
+ margin: 0 8px;
+}
+.el-divider.el-divider--horizontal {
+ margin: 16px 0;
+}
diff --git a/src/components/bpmnProcessDesigner/package/theme/index.scss b/src/components/bpmnProcessDesigner/package/theme/index.scss
new file mode 100644
index 0000000..2e60fad
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/theme/index.scss
@@ -0,0 +1,2 @@
+@import './process-designer.scss';
+@import './process-panel.scss';
diff --git a/src/components/bpmnProcessDesigner/package/theme/process-designer.scss b/src/components/bpmnProcessDesigner/package/theme/process-designer.scss
new file mode 100644
index 0000000..6af945d
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/theme/process-designer.scss
@@ -0,0 +1,161 @@
+@import 'bpmn-js-token-simulation/assets/css/bpmn-js-token-simulation.css';
+@import 'bpmn-js-token-simulation/assets/css/font-awesome.min.css';
+@import 'bpmn-js-token-simulation/assets/css/normalize.css';
+
+// 边框被 token-simulation 样式覆盖了
+.djs-palette {
+ background: var(--palette-background-color);
+ border: solid 1px var(--palette-border-color) !important;
+ border-radius: 2px;
+}
+
+.my-process-designer {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ height: 100%;
+ box-sizing: border-box;
+ .my-process-designer__header {
+ width: 100%;
+ min-height: 36px;
+ .el-button {
+ text-align: center;
+ }
+ .el-button-group {
+ margin: 4px;
+ }
+ .el-tooltip__popper {
+ .el-button {
+ width: 100%;
+ text-align: left;
+ padding-left: 8px;
+ padding-right: 8px;
+ }
+ .el-button:hover {
+ background: rgba(64, 158, 255, 0.8);
+ color: #ffffff;
+ }
+ }
+ .align {
+ position: relative;
+ i {
+ &:after {
+ content: '|';
+ position: absolute;
+ // transform: rotate(90deg) translate(200%, 60%);
+ transform: rotate(180deg) translate(271%, -10%);
+ }
+ }
+ }
+ .align.align-left i {
+ transform: rotate(90deg);
+ }
+ .align.align-right i {
+ transform: rotate(-90deg);
+ }
+ .align.align-top i {
+ transform: rotate(180deg);
+ }
+ .align.align-bottom i {
+ transform: rotate(0deg);
+ }
+ .align.align-center i {
+ transform: rotate(0deg);
+ &:after {
+ // transform: rotate(90deg) translate(0, 60%);
+ transform: rotate(0deg) translate(-0%, -5%);
+ }
+ }
+ .align.align-middle i {
+ transform: rotate(-90deg);
+ &:after {
+ // transform: rotate(90deg) translate(0, 60%);
+ transform: rotate(0deg) translate(0, -10%);
+ }
+ }
+ }
+ .my-process-designer__container {
+ display: inline-flex;
+ width: 100%;
+ flex: 1;
+ .my-process-designer__canvas {
+ flex: 1;
+ height: 100%;
+ position: relative;
+ background: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHBhdHRlcm4gaWQ9ImEiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHBhdGggZD0iTTAgMTBoNDBNMTAgMHY0ME0wIDIwaDQwTTIwIDB2NDBNMCAzMGg0ME0zMCAwdjQwIiBmaWxsPSJub25lIiBzdHJva2U9IiNlMGUwZTAiIG9wYWNpdHk9Ii4yIi8+PHBhdGggZD0iTTQwIDBIMHY0MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZTBlMGUwIi8+PC9wYXR0ZXJuPjwvZGVmcz48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2EpIi8+PC9zdmc+')
+ repeat !important;
+ div.toggle-mode {
+ display: none;
+ }
+ }
+ .my-process-designer__property-panel {
+ height: 100%;
+ overflow: scroll;
+ overflow-y: auto;
+ z-index: 10;
+ * {
+ box-sizing: border-box;
+ }
+ }
+ svg {
+ width: 100%;
+ height: 100%;
+ min-height: 100%;
+ overflow: hidden;
+ }
+ }
+}
+
+//侧边栏配置
+// .djs-palette .two-column .open {
+.open {
+ // .djs-palette.open {
+ .djs-palette-entries {
+ div[class^='bpmn-icon-']:before,
+ div[class*='bpmn-icon-']:before {
+ line-height: unset;
+ }
+ div.entry {
+ position: relative;
+ }
+ div.entry:hover {
+ &::after {
+ width: max-content;
+ content: attr(title);
+ vertical-align: text-bottom;
+ position: absolute;
+ right: -10px;
+ top: 0;
+ bottom: 0;
+ overflow: hidden;
+ transform: translateX(100%);
+ font-size: 0.5em;
+ display: inline-block;
+ text-decoration: inherit;
+ font-variant: normal;
+ text-transform: none;
+ background: #fafafa;
+ box-shadow: 0 0 6px #eeeeee;
+ border: 1px solid #cccccc;
+ box-sizing: border-box;
+ padding: 0 16px;
+ border-radius: 4px;
+ z-index: 100;
+ }
+ }
+ }
+}
+pre {
+ margin: 0;
+ height: 100%;
+ overflow: hidden;
+ max-height: calc(80vh - 32px);
+ overflow-y: auto;
+}
+.hljs {
+ word-break: break-word;
+ white-space: pre-wrap;
+}
+.hljs * {
+ font-family: Consolas, Monaco, monospace;
+}
diff --git a/src/components/bpmnProcessDesigner/package/theme/process-panel.scss b/src/components/bpmnProcessDesigner/package/theme/process-panel.scss
new file mode 100644
index 0000000..f840cdd
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/theme/process-panel.scss
@@ -0,0 +1,107 @@
+.process-panel__container {
+ box-sizing: border-box;
+ padding: 0 8px;
+ border-left: 1px solid #eeeeee;
+ box-shadow: 0 0 8px #cccccc;
+ max-height: 100%;
+ overflow-y: scroll;
+}
+.panel-tab__title {
+ font-weight: 600;
+ padding: 0 8px;
+ font-size: 1.1em;
+ line-height: 1.2em;
+ i {
+ margin-right: 8px;
+ font-size: 1.2em;
+ }
+}
+.panel-tab__content {
+ width: 100%;
+ box-sizing: border-box;
+ border-top: 1px solid #eeeeee;
+ padding: 8px 16px;
+ .panel-tab__content--title {
+ display: flex;
+ justify-content: space-between;
+ padding-bottom: 8px;
+ span {
+ flex: 1;
+ text-align: left;
+ }
+ }
+}
+.element-property {
+ width: 100%;
+ display: flex;
+ align-items: flex-start;
+ margin: 8px 0;
+ .element-property__label {
+ display: block;
+ width: 90px;
+ text-align: right;
+ overflow: hidden;
+ padding-right: 12px;
+ line-height: 32px;
+ font-size: 14px;
+ box-sizing: border-box;
+ }
+ .element-property__value {
+ flex: 1;
+ line-height: 32px;
+ }
+ .el-form-item {
+ width: 100%;
+ margin-bottom: 0;
+ padding-bottom: 18px;
+ }
+}
+.list-property {
+ flex-direction: column;
+ .element-listener-item {
+ width: 100%;
+ display: inline-grid;
+ grid-template-columns: 16px auto 32px 32px;
+ grid-column-gap: 8px;
+ }
+ .element-listener-item + .element-listener-item {
+ margin-top: 8px;
+ }
+}
+.listener-filed__title {
+ display: inline-flex;
+ width: 100%;
+ justify-content: space-between;
+ align-items: center;
+ margin-top: 0;
+ span {
+ width: 200px;
+ text-align: left;
+ font-size: 14px;
+ }
+ i {
+ margin-right: 8px;
+ }
+}
+.element-drawer__button {
+ margin-top: 8px;
+ width: 100%;
+ display: inline-flex;
+ justify-content: space-around;
+}
+.element-drawer__button > .el-button {
+ width: 100%;
+}
+
+.el-collapse-item__content {
+ padding-bottom: 0;
+}
+.el-input.is-disabled .el-input__inner {
+ color: #999999;
+}
+.el-form-item.el-form-item--mini {
+ margin-bottom: 0;
+ & + .el-form-item {
+ margin-top: 16px;
+ }
+}
diff --git a/src/components/bpmnProcessDesigner/package/utils.ts b/src/components/bpmnProcessDesigner/package/utils.ts
new file mode 100644
index 0000000..bb6c5d5
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/package/utils.ts
@@ -0,0 +1,77 @@
+import { toRaw } from 'vue'
+const bpmnInstances = () => (window as any)?.bpmnInstances
+// 创建监听器实例
+export function createListenerObject(options, isTask, prefix) {
+ const listenerObj = Object.create(null)
+ listenerObj.event = options.event
+ isTask && (listenerObj.id = options.id) // 任务监听器特有的 id 字段
+ switch (options.listenerType) {
+ case 'scriptListener':
+ listenerObj.script = createScriptObject(options, prefix)
+ break
+ case 'expressionListener':
+ listenerObj.expression = options.expression
+ break
+ case 'delegateExpressionListener':
+ listenerObj.delegateExpression = options.delegateExpression
+ break
+ default:
+ listenerObj.class = options.class
+ }
+ // 注入字段
+ if (options.fields) {
+ listenerObj.fields = options.fields.map((field) => {
+ return createFieldObject(field, prefix)
+ })
+ }
+ // 任务监听器的 定时器 设置
+ if (isTask && options.event === 'timeout' && !!options.eventDefinitionType) {
+ const timeDefinition = bpmnInstances().moddle.create('bpmn:FormalExpression', {
+ body: options.eventTimeDefinitions
+ })
+ const TimerEventDefinition = bpmnInstances().moddle.create('bpmn:TimerEventDefinition', {
+ id: `TimerEventDefinition_${uuid(8)}`,
+ [`time${options.eventDefinitionType.replace(/^\S/, (s) => s.toUpperCase())}`]: timeDefinition
+ })
+ listenerObj.eventDefinitions = [TimerEventDefinition]
+ }
+ return bpmnInstances().moddle.create(
+ `${prefix}:${isTask ? 'TaskListener' : 'ExecutionListener'}`,
+ listenerObj
+ )
+}
+
+// 创建 监听器的注入字段 实例
+export function createFieldObject(option, prefix) {
+ const { name, fieldType, string, expression } = option
+ const fieldConfig = fieldType === 'string' ? { name, string } : { name, expression }
+ return bpmnInstances().moddle.create(`${prefix}:Field`, fieldConfig)
+}
+
+// 创建脚本实例
+export function createScriptObject(options, prefix) {
+ const { scriptType, scriptFormat, value, resource } = options
+ const scriptConfig =
+ scriptType === 'inlineScript' ? { scriptFormat, value } : { scriptFormat, resource }
+ return bpmnInstances().moddle.create(`${prefix}:Script`, scriptConfig)
+}
+
+// 更新元素扩展属性
+export function updateElementExtensions(element, extensionList) {
+ const extensions = bpmnInstances().moddle.create('bpmn:ExtensionElements', {
+ values: extensionList
+ })
+ bpmnInstances().modeling.updateProperties(toRaw(element), {
+ extensionElements: extensions
+ })
+}
+
+// 创建一个id
+export function uuid(length = 8, chars?) {
+ let result = ''
+ const charsString = chars || '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
+ for (let i = length; i > 0; --i) {
+ result += charsString[Math.floor(Math.random() * charsString.length)]
+ }
+ return result
+}
diff --git a/src/components/bpmnProcessDesigner/src/highlight/index.js b/src/components/bpmnProcessDesigner/src/highlight/index.js
new file mode 100644
index 0000000..5df38c9
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/src/highlight/index.js
@@ -0,0 +1,5 @@
+const hljs = require('highlight.js/lib/core')
+hljs.registerLanguage('xml', require('highlight.js/lib/languages/xml'))
+hljs.registerLanguage('json', require('highlight.js/lib/languages/json'))
+
+module.exports = hljs
diff --git a/src/components/bpmnProcessDesigner/src/modules/custom-renderer/CustomRenderer.js b/src/components/bpmnProcessDesigner/src/modules/custom-renderer/CustomRenderer.js
new file mode 100644
index 0000000..e876031
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/src/modules/custom-renderer/CustomRenderer.js
@@ -0,0 +1,14 @@
+import BpmnRenderer from 'bpmn-js/lib/draw/BpmnRenderer'
+
+export default function CustomRenderer(config, eventBus, styles, pathMap, canvas, textRenderer) {
+ BpmnRenderer.call(this, config, eventBus, styles, pathMap, canvas, textRenderer, 2000)
+
+ this.handlers['label'] = function () {
+ return null
+ }
+}
+
+const F = function () {} // 核心,利用空对象作为中介;
+F.prototype = BpmnRenderer.prototype // 核心,将父类的原型赋值给空对象F;
+CustomRenderer.prototype = new F() // 核心,将 F的实例赋值给子类;
+CustomRenderer.prototype.constructor = CustomRenderer // 修复子类CustomRenderer的构造器指向,防止原型链的混乱;
diff --git a/src/components/bpmnProcessDesigner/src/modules/custom-renderer/index.js b/src/components/bpmnProcessDesigner/src/modules/custom-renderer/index.js
new file mode 100644
index 0000000..79d8bd0
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/src/modules/custom-renderer/index.js
@@ -0,0 +1,6 @@
+import CustomRenderer from './CustomRenderer'
+
+export default {
+ __init__: ['customRenderer'],
+ customRenderer: ['type', CustomRenderer]
+}
diff --git a/src/components/bpmnProcessDesigner/src/modules/rules/CustomRules.js b/src/components/bpmnProcessDesigner/src/modules/rules/CustomRules.js
new file mode 100644
index 0000000..9fa1d14
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/src/modules/rules/CustomRules.js
@@ -0,0 +1,16 @@
+import BpmnRules from 'bpmn-js/lib/features/rules/BpmnRules'
+import inherits from 'inherits'
+
+export default function CustomRules(eventBus) {
+ BpmnRules.call(this, eventBus)
+}
+
+inherits(CustomRules, BpmnRules)
+
+CustomRules.prototype.canDrop = function () {
+ return false
+}
+
+CustomRules.prototype.canMove = function () {
+ return false
+}
diff --git a/src/components/bpmnProcessDesigner/src/modules/rules/index.js b/src/components/bpmnProcessDesigner/src/modules/rules/index.js
new file mode 100644
index 0000000..12cf05a
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/src/modules/rules/index.js
@@ -0,0 +1,6 @@
+import CustomRules from './CustomRules'
+
+export default {
+ __init__: ['customRules'],
+ customRules: ['type', CustomRules]
+}
diff --git a/src/components/bpmnProcessDesigner/src/translations.ts b/src/components/bpmnProcessDesigner/src/translations.ts
new file mode 100644
index 0000000..5f9b9a5
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/src/translations.ts
@@ -0,0 +1,25 @@
+/**
+ * This is a sample file that should be replaced with the actual translation.
+ *
+ * Checkout https://github.com/bpmn-io/bpmn-js-i18n for a list of available
+ * translations and labels to translate.
+ */
+export default {
+ 'Exclusive Gateway': 'Exklusives Gateway',
+ 'Parallel Gateway': 'Paralleles Gateway',
+ 'Inclusive Gateway': 'Inklusives Gateway',
+ 'Complex Gateway': 'Komplexes Gateway',
+ 'Event based Gateway': 'Ereignis-basiertes Gateway',
+ 'Message Start Event': '消息启动事件',
+ 'Timer Start Event': '定时启动事件',
+ 'Conditional Start Event': '条件启动事件',
+ 'Signal Start Event': '信号启动事件',
+ 'Error Start Event': '错误启动事件',
+ 'Escalation Start Event': '升级启动事件',
+ 'Compensation Start Event': '补偿启动事件',
+ 'Message Start Event (non-interrupting)': '消息启动事件 (非中断)',
+ 'Timer Start Event (non-interrupting)': '定时启动事件 (非中断)',
+ 'Conditional Start Event (non-interrupting)': '条件启动事件 (非中断)',
+ 'Signal Start Event (non-interrupting)': '信号启动事件 (非中断)',
+ 'Escalation Start Event (non-interrupting)': '升级启动事件 (非中断)'
+}
diff --git a/src/components/bpmnProcessDesigner/src/utils/directive/clickOutSide.js b/src/components/bpmnProcessDesigner/src/utils/directive/clickOutSide.js
new file mode 100644
index 0000000..e0da73e
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/src/utils/directive/clickOutSide.js
@@ -0,0 +1,43 @@
+//outside.js
+
+const ctx = '@@clickoutsideContext'
+
+export default {
+ bind(el, binding, vnode) {
+ const ele = el
+ const documentHandler = (e) => {
+ if (!vnode.context || ele.contains(e.target)) {
+ return false
+ }
+ // 调用指令回调
+ if (binding.expression) {
+ vnode.context[el[ctx].methodName](e)
+ } else {
+ el[ctx].bindingFn(e)
+ }
+ }
+ // 将方法添加到ele
+ ele[ctx] = {
+ documentHandler,
+ methodName: binding.expression,
+ bindingFn: binding.value
+ }
+ let timer
+ timer = setTimeout(() => {
+ document.addEventListener('touchstart', documentHandler) // 为document绑定事件
+ if(timer){
+ clearTimeout(timer)
+ timer = null
+ }
+ })
+ },
+ update(el, binding) {
+ const ele = el
+ ele[ctx].methodName = binding.expression
+ ele[ctx].bindingFn = binding.value
+ },
+ unbind(el) {
+ document.removeEventListener('touchstart', el[ctx].documentHandler) // 解绑
+ delete el[ctx]
+ }
+}
diff --git a/src/components/bpmnProcessDesigner/src/utils/index.js b/src/components/bpmnProcessDesigner/src/utils/index.js
new file mode 100644
index 0000000..7d970ec
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/src/utils/index.js
@@ -0,0 +1,10 @@
+export function debounce(fn, delay = 500) {
+ let timer
+ return function (...args) {
+ if (timer) {
+ clearTimeout(timer)
+ timer = null
+ }
+ timer = setTimeout(fn.bind(this, ...args), delay)
+ }
+}
diff --git a/src/components/bpmnProcessDesigner/src/utils/xml2json.js b/src/components/bpmnProcessDesigner/src/utils/xml2json.js
new file mode 100644
index 0000000..fe1a52f
--- /dev/null
+++ b/src/components/bpmnProcessDesigner/src/utils/xml2json.js
@@ -0,0 +1,50 @@
+function xmlStr2XmlObj(xmlStr) {
+ let xmlObj = {}
+ if (document.all) {
+ const xmlDom = new window.ActiveXObject('Microsoft.XMLDOM')
+ xmlDom.loadXML(xmlStr)
+ xmlObj = xmlDom
+ } else {
+ xmlObj = new DOMParser().parseFromString(xmlStr, 'text/xml')
+ }
+ return xmlObj
+}
+
+function xml2json(xml) {
+ try {
+ let obj = {}
+ if (xml.children.length > 0) {
+ for (let i = 0; i < xml.children.length; i++) {
+ const item = xml.children.item(i)
+ const nodeName = item.nodeName
+ if (typeof obj[nodeName] == 'undefined') {
+ obj[nodeName] = xml2json(item)
+ } else {
+ if (typeof obj[nodeName].push == 'undefined') {
+ const old = obj[nodeName]
+ obj[nodeName] = []
+ obj[nodeName].push(old)
+ }
+ obj[nodeName].push(xml2json(item))
+ }
+ }
+ } else {
+ obj = xml.textContent
+ }
+ return obj
+ } catch (e) {
+ console.log(e.message)
+ }
+}
+
+function xmlObj2json(xml) {
+ const xmlObj = xmlStr2XmlObj(xml)
+ console.log(xmlObj)
+ let jsonObj = {}
+ if (xmlObj.childNodes.length > 0) {
+ jsonObj = xml2json(xmlObj)
+ }
+ return jsonObj
+}
+
+export default xmlObj2json
diff --git a/src/components/iFrame/index.ts b/src/components/iFrame/index.ts
new file mode 100644
index 0000000..9f8cf24
--- /dev/null
+++ b/src/components/iFrame/index.ts
@@ -0,0 +1,3 @@
+import IFrame from './src/IFrame.vue'
+
+export { IFrame }
diff --git a/src/components/iFrame/src/IFrame.vue b/src/components/iFrame/src/IFrame.vue
new file mode 100644
index 0000000..5d2626d
--- /dev/null
+++ b/src/components/iFrame/src/IFrame.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
diff --git a/src/components/index.ts b/src/components/index.ts
new file mode 100644
index 0000000..4d030c3
--- /dev/null
+++ b/src/components/index.ts
@@ -0,0 +1,6 @@
+import type { App } from 'vue'
+import { Icon } from './Icon'
+
+export const setupGlobCom = (app: App): void => {
+ app.component('Icon', Icon)
+}
diff --git a/src/components/rowDrop/index.vue b/src/components/rowDrop/index.vue
new file mode 100644
index 0000000..747f0f3
--- /dev/null
+++ b/src/components/rowDrop/index.vue
@@ -0,0 +1,280 @@
+
+
+
+
{{ t('ts.全部') }}
+
+
+
+ {{element}}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/workstationBind/index.ts b/src/components/workstationBind/index.ts
new file mode 100644
index 0000000..d3fcb5c
--- /dev/null
+++ b/src/components/workstationBind/index.ts
@@ -0,0 +1,3 @@
+import Detail from './src/Detail.vue'
+
+export { Detail }
diff --git a/src/components/workstationBind/src/Detail.vue b/src/components/workstationBind/src/Detail.vue
new file mode 100644
index 0000000..899d5fc
--- /dev/null
+++ b/src/components/workstationBind/src/Detail.vue
@@ -0,0 +1,693 @@
+
+
+
+
+
+ {{ titleValueRef }} {{ titleNameRef }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/config/axios/config.ts b/src/config/axios/config.ts
new file mode 100644
index 0000000..dd112dc
--- /dev/null
+++ b/src/config/axios/config.ts
@@ -0,0 +1,30 @@
+import { getBaseUrl } from '@/utils/systemParam'
+
+const config: {
+ base_url: string
+ result_code: number | string
+ default_headers: AxiosHeaders
+ request_timeout: number
+} = {
+ /**
+ * api请求基础路径
+ */
+ base_url: getBaseUrl() + import.meta.env.VITE_API_URL,
+ /**
+ * 接口成功返回状态码
+ */
+ result_code: 200,
+
+ /**
+ * 接口请求超时时间
+ */
+ request_timeout: 3000000,
+
+ /**
+ * 默认接口请求类型
+ * 可选值:application/x-www-form-urlencoded multipart/form-data
+ */
+ default_headers: 'application/json'
+}
+
+export { config }
diff --git a/src/config/axios/errorCode.ts b/src/config/axios/errorCode.ts
new file mode 100644
index 0000000..94d719f
--- /dev/null
+++ b/src/config/axios/errorCode.ts
@@ -0,0 +1,6 @@
+export default {
+ '401': '认证失败,无法访问系统资源',
+ '403': '当前操作没有权限',
+ '404': '访问资源不存在',
+ default: '系统未知错误,请反馈给管理员'
+}
diff --git a/src/config/axios/index.ts b/src/config/axios/index.ts
new file mode 100644
index 0000000..1c49f58
--- /dev/null
+++ b/src/config/axios/index.ts
@@ -0,0 +1,69 @@
+import { service } from './service'
+
+import { config } from './config'
+import { useCache } from '@/hooks/web/useCache'
+import router from '@/router'
+
+const { default_headers } = config
+const { wsCache } = useCache()
+console.log('lang='+wsCache.get('lang'));
+const language = wsCache.get('lang')
+const request = (option: any) => {
+ const { url, method, params, data, headersType, responseType, ...config } = option
+ return service({
+ url: url,
+ method,
+ params,
+ data,
+ ...config,
+ responseType: responseType,
+ headers: {
+ 'Content-Type': headersType || default_headers,
+ 'language': language,
+ 'Referer1': router.currentRoute.value.fullPath.split('?')[0]
+ }
+ })
+}
+export default {
+ get: async (option: any) => {
+ const res = await request({ method: 'GET', ...option })
+ return res.data as unknown as T
+ },
+ post: async (option: any) => {
+ const res = await request({ method: 'POST', ...option })
+ return res.data as unknown as T
+ },
+ postOriginal: async (option: any) => {
+ const res = await request({ method: 'POST', ...option })
+ return res
+ },
+ delete: async (option: any) => {
+ const res = await request({ method: 'DELETE', ...option })
+ return res.data as unknown as T
+ },
+ enable: async (option: any) => {
+ const res = await request({ method: 'POST', ...option })
+ return res.data as unknown as T
+ },
+ disable: async (option: any) => {
+ const res = await request({ method: 'POST', ...option })
+ return res.data as unknown as T
+ },
+ put: async (option: any) => {
+ const res = await request({ method: 'PUT', ...option })
+ return res.data as unknown as T
+ },
+ download: async (option: any) => {
+ const res = await request({ method: 'GET', responseType: 'blob', ...option })
+ return res as unknown as Promise
+ },
+ downloadPost: async (option: any) => {
+ const res = await request({ method: 'POST', responseType: 'blob', ...option })
+ return res as unknown as Promise
+ },
+ upload: async (option: any) => {
+ option.headersType = 'multipart/form-data'
+ const res = await request({ method: 'POST', ...option })
+ return res as unknown as Promise
+ }
+}
diff --git a/src/config/axios/service.ts b/src/config/axios/service.ts
new file mode 100644
index 0000000..958d2a7
--- /dev/null
+++ b/src/config/axios/service.ts
@@ -0,0 +1,247 @@
+import axios, {
+ AxiosError,
+ AxiosInstance,
+ AxiosRequestHeaders,
+ AxiosResponse,
+ InternalAxiosRequestConfig
+} from 'axios'
+
+import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
+import qs from 'qs'
+import { config } from '@/config/axios/config'
+import { getAccessToken, getRefreshToken, getTenantId, removeToken, setToken } from '@/utils/auth'
+import errorCode from './errorCode'
+
+import { resetRouter } from '@/router'
+import { useCache } from '@/hooks/web/useCache'
+
+const tenantEnable = import.meta.env.VITE_APP_TENANT_ENABLE
+const { result_code, base_url, request_timeout } = config
+
+// 需要忽略的提示。忽略后,自动 Promise.reject('error')
+const ignoreMsgs = [
+ '无效的刷新令牌', // 刷新令牌被删除时,不用提示
+ '刷新令牌已过期' // 使用刷新令牌,刷新获取新的访问令牌时,结果因为过期失败,此时需要忽略。否则,会导致继续 401,无法跳转到登出界面
+]
+// 是否显示重新登录
+export const isRelogin = { show: false }
+// Axios 无感知刷新令牌,参考 https://www.dashingdog.cn/article/11 与 https://segmentfault.com/a/1190000020210980 实现
+// 请求队列
+let requestList: any[] = []
+// 是否正在刷新中
+let isRefreshToken = false
+// 请求白名单,无须token的接口
+const whiteList: string[] = ['/login', '/refresh-token','/queryQualityInspection']
+
+// 创建axios实例
+const service: AxiosInstance = axios.create({
+ baseURL: base_url, // api 的 base_url
+ timeout: request_timeout, // 请求超时时间
+ withCredentials: false // 禁用 Cookie 等信息
+})
+
+// request拦截器
+service.interceptors.request.use(
+ (config: InternalAxiosRequestConfig) => {
+ // 是否需要设置 token
+ let isToken = (config!.headers || {}).isToken === false
+ whiteList.some((v) => {
+ if (config.url) {
+ config.url.indexOf(v) > -1
+ return (isToken = false)
+ }
+ })
+ if (getAccessToken() && !isToken) {
+ ;(config as Recordable).headers.Authorization = 'Bearer ' + getAccessToken() // 让每个请求携带自定义token
+ }
+ // 设置租户
+ if (tenantEnable && tenantEnable === 'true') {
+ const tenantId = getTenantId()
+ if (tenantId) (config as Recordable).headers['tenant-id'] = tenantId
+ }
+ const params = config.params || {}
+ const data = config.data || false
+ if (
+ config.method?.toUpperCase() === 'POST' &&
+ (config.headers as AxiosRequestHeaders)['Content-Type'] ===
+ 'application/x-www-form-urlencoded'
+ ) {
+ config.data = qs.stringify(data)
+ }
+ // get参数编码
+ if (config.method?.toUpperCase() === 'GET' && params) {
+ let url = config.url + '?'
+ for (const propName of Object.keys(params)) {
+ const value = params[propName]
+ if (value !== void 0 && value !== null && typeof value !== 'undefined') {
+ if (typeof value === 'object') {
+ for (const val of Object.keys(value)) {
+ const params = propName + '[' + val + ']'
+ const subPart = encodeURIComponent(params) + '='
+ url += subPart + encodeURIComponent(value[val]) + '&'
+ }
+ } else {
+ url += `${propName}=${encodeURIComponent(value)}&`
+ }
+ }
+ }
+ // 给 get 请求加上时间戳参数,避免从缓存中拿数据
+ // const now = new Date().getTime()
+ // params = params.substring(0, url.length - 1) + `?_t=${now}`
+ url = url.slice(0, -1)
+ config.params = {}
+ config.url = url
+ }
+ return config
+ },
+ (error: AxiosError) => {
+ // Do something with request error
+ console.log(error) // for debug
+ Promise.reject(error)
+ }
+)
+
+// response 拦截器
+service.interceptors.response.use(
+ async (response: AxiosResponse) => {
+ const { data } = response
+ const config = response.config
+ if (!data) {
+ // 返回“[HTTP]请求没有返回值”;
+ throw new Error()
+ }
+ const { t } = useI18n()
+ // 未设置状态码则默认成功状态
+ const code = data.code || result_code
+ // 二进制数据则直接返回
+ if (
+ response.request.responseType === 'blob' ||
+ response.request.responseType === 'arraybuffer'
+ ) {
+ return response.data
+ }
+ // 获取错误信息
+ const msg = data.msg || errorCode[code] || errorCode['default']
+ if (ignoreMsgs.indexOf(msg) !== -1) {
+ // 如果是忽略的错误码,直接返回 msg 异常
+ return Promise.reject(msg)
+ } else if (code === 401) {
+ // 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了
+ if (!isRefreshToken) {
+ isRefreshToken = true
+ // 1. 如果获取不到刷新令牌,则只能执行登出操作
+ if (!getRefreshToken()) {
+ return handleAuthorized()
+ }
+ // 2. 进行刷新访问令牌
+ try {
+ const refreshTokenRes = await refreshToken()
+ // 2.1 刷新成功,则回放队列的请求 + 当前请求
+ setToken((await refreshTokenRes).data.data)
+ config.headers!.Authorization = 'Bearer ' + getAccessToken()
+ requestList.forEach((cb: any) => {
+ cb()
+ })
+ requestList = []
+ return service(config)
+ } catch (e) {
+ // 为什么需要 catch 异常呢?刷新失败时,请求因为 Promise.reject 触发异常。
+ // 2.2 刷新失败,只回放队列的请求
+ requestList.forEach((cb: any) => {
+ cb()
+ })
+ // 提示是否要登出。即不回放当前请求!不然会形成递归
+ return handleAuthorized()
+ } finally {
+ requestList = []
+ isRefreshToken = false
+ }
+ } else {
+ // 添加到队列,等待刷新获取到新的令牌
+ return new Promise((resolve) => {
+ requestList.push(() => {
+ config.headers!.Authorization = 'Bearer ' + getAccessToken() // 让每个请求携带自定义token 请根据实际情况自行修改
+ resolve(service(config))
+ })
+ })
+ }
+ } else if (code === 500) {
+ ElMessage.error(t('sys.api.errMsg500'))
+ return Promise.reject(new Error(msg))
+ } else if (code === 901) {
+ ElMessage.error({
+ offset: 300,
+ dangerouslyUseHTMLString: true,
+ message:
+ '' +
+ t('sys.api.errMsg901') +
+ '
' +
+ '
' +
+ '参考 https://doc.iocoder.cn/ 教程
' +
+ '
' +
+ '5 分钟搭建本地环境
'
+ })
+ return Promise.reject(new Error(msg))
+ } else if (code === 1002000008) {
+ if (msg === '无效的刷新令牌') {
+ // hard coding:忽略这个提示,直接登出
+ console.log(msg)
+ } else {
+ ElNotification.error({ title: msg })
+ }
+ return Promise.reject(data)
+ } else if (code !== 200) {
+ if (msg === '无效的刷新令牌') {
+ // hard coding:忽略这个提示,直接登出
+ console.log(msg)
+ } else {
+ ElNotification.error({ title: msg })
+ }
+ return Promise.reject('error')
+ } else {
+ return data
+ }
+ },
+ (error: AxiosError) => {
+ console.log('err' + error) // for debug
+ let { message } = error
+ const { t } = useI18n()
+ if (message === 'Network Error') {
+ message = t('sys.api.errorMessage')
+ } else if (message.includes('timeout')) {
+ message = t('sys.api.apiTimeoutMessage')
+ } else if (message.includes('Request failed with status code')) {
+ message = t('sys.api.apiRequestFailed') + message.substr(message.length - 3)
+ }
+ ElMessage.error(message)
+ return Promise.reject(error)
+ }
+)
+
+const refreshToken = async () => {
+ axios.defaults.headers.common['tenant-id'] = getTenantId()
+ return await axios.post(base_url + '/system/auth/refresh-token?refreshToken=' + getRefreshToken())
+}
+const handleAuthorized = () => {
+ const { t } = useI18n()
+ if (!isRelogin.show) {
+ isRelogin.show = true
+ ElMessageBox.confirm(t('sys.api.timeoutMessage'), t('common.confirmTitle'), {
+ showCancelButton: false,
+ closeOnClickModal: false,
+ showClose: false,
+ confirmButtonText: t('login.relogin'),
+ type: 'warning'
+ }).then(() => {
+ const { wsCache } = useCache()
+ resetRouter() // 重置静态路由表
+ wsCache.clear()
+ removeToken()
+ isRelogin.show = false
+ // 干掉token后再走一次路由让它过router.beforeEach的校验
+ window.location.href = window.location.href
+ })
+ }
+ return Promise.reject(t('sys.api.timeoutMessage'))
+}
+export { service }
diff --git a/src/directives/index.ts b/src/directives/index.ts
new file mode 100644
index 0000000..a6fa38e
--- /dev/null
+++ b/src/directives/index.ts
@@ -0,0 +1,15 @@
+import type { App } from 'vue'
+import { hasRole } from './permission/hasRole'
+import { hasPermi } from './permission/hasPermi'
+import { clientTable } from './permission/clientTable'
+
+/**
+ * 导出指令:v-xxx
+ * @methods hasRole 用户权限,用法: v-hasRole
+ * @methods hasPermi 按钮权限,用法: v-hasPermi
+ */
+export const setupAuth = (app: App) => {
+ hasRole(app)
+ hasPermi(app)
+ clientTable(app)
+}
diff --git a/src/directives/permission/clientTable.ts b/src/directives/permission/clientTable.ts
new file mode 100644
index 0000000..4654792
--- /dev/null
+++ b/src/directives/permission/clientTable.ts
@@ -0,0 +1,73 @@
+import type { App } from 'vue'
+import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
+
+const { t } = useI18n() // 国际化
+
+export function clientTable(app: App) {
+ app.directive('clientTable', (el, binding) => {
+ nextTick(() => {
+ const top = el.getBoundingClientRect().top
+ ////--top-tool-height:50 --tags-view-height:35
+ const qustionHeight = 20
+ let paginationHeight = 0
+ if(el.children&&el.children.length>1){
+ paginationHeight = 70
+ }
+ const height = window.innerHeight - top - paginationHeight
+ el.style.height = height + 'px'
+ el.firstChild.style.height = '100%'
+ })
+ })
+ app.directive('clientTable450', (el, binding) => {
+ nextTick(() => {
+ el.style.height = '450px'
+ el.firstChild.style.height = '100%'
+ })
+ })
+
+ app.directive('clientSearchTable', (el, binding) => {
+ nextTick(() => {
+ const top = el.getBoundingClientRect().top
+ const qustionHeight = 150
+ let paginationHeight = 0
+ if(el.children&&el.children.length>1){
+ paginationHeight = 70
+ }
+ const height = window.innerHeight - top - paginationHeight - qustionHeight
+ if(el.getBoundingClientRect().height>height){
+ console.log('高度',el.getBoundingClientRect().height)
+ el.style.height = height + 'px'
+ el.firstChild.style.height = '100%'
+ }
+ })
+ })
+ app.directive('clientTableForm', (el, binding) => {
+ nextTick(() => {
+ let {isShowPagination,isShowButton,isFullscreen,fixedScrollHieght} = binding.value
+ if(!fixedScrollHieght&&!isFullscreen){
+ return
+ }
+ let footerHeight = 0
+ let headerHeight = 0
+ el.offsetParent?.children?.forEach(element => {
+ if(element.className=='el-dialog__footer'){
+ footerHeight = element.clientHeight
+ }
+ if(element.className=='el-dialog__header'){
+ headerHeight = element.clientHeight
+ }
+ });
+ let top = el.getBoundingClientRect().top
+ let tableFormTop = top - (el.offsetParent?.offsetTop||0)
+
+ let height = el.offsetParent?.clientHeight - tableFormTop - footerHeight - 30
+ if(isShowPagination){
+ height = height- 34
+ }
+ if(isShowButton){
+ height = height- 50
+ }
+ el.style.height = height + 'px'
+ })
+ })
+}
diff --git a/src/directives/permission/hasPermi.ts b/src/directives/permission/hasPermi.ts
new file mode 100644
index 0000000..d86d2f5
--- /dev/null
+++ b/src/directives/permission/hasPermi.ts
@@ -0,0 +1,27 @@
+import type { App } from 'vue'
+import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
+
+const { t } = useI18n() // 国际化
+
+export function hasPermi(app: App) {
+ app.directive('hasPermi', (el, binding) => {
+ const { wsCache } = useCache()
+ const { value } = binding
+ const all_permission = '*:*:*'
+ const permissions = wsCache.get(CACHE_KEY.USER).permissions
+
+ if (value && value instanceof Array && value.length > 0) {
+ const permissionFlag = value
+
+ const hasPermissions = permissions.some((permission: string) => {
+ return all_permission === permission || permissionFlag.includes(permission)
+ })
+
+ if (!hasPermissions) {
+ el.parentNode && el.parentNode.removeChild(el)
+ }
+ } else {
+ throw new Error(t('permission.hasPermission'))
+ }
+ })
+}
diff --git a/src/directives/permission/hasRole.ts b/src/directives/permission/hasRole.ts
new file mode 100644
index 0000000..ae253cb
--- /dev/null
+++ b/src/directives/permission/hasRole.ts
@@ -0,0 +1,30 @@
+import type { App } from 'vue'
+import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
+
+const { t } = useI18n() // 国际化
+
+export function hasRole(app: App) {
+ app.directive('hasRole', (el, binding) => {
+ const { wsCache } = useCache()
+ const { value } = binding
+ const super_admin = 'admin'
+ let roles = []
+ if(wsCache.get(CACHE_KEY.USER)?.roles){
+ roles = wsCache.get(CACHE_KEY.USER).roles
+ }
+
+ if (value && value instanceof Array && value.length > 0) {
+ const roleFlag = value
+
+ const hasRole = roles.some((role: string) => {
+ return super_admin === role || roleFlag.includes(role)
+ })
+
+ if (!hasRole) {
+ el.parentNode && el.parentNode.removeChild(el)
+ }
+ } else {
+ throw new Error(t('permission.hasRole'))
+ }
+ })
+}
diff --git a/src/hooks/event/useScrollTo.ts b/src/hooks/event/useScrollTo.ts
new file mode 100644
index 0000000..92aec87
--- /dev/null
+++ b/src/hooks/event/useScrollTo.ts
@@ -0,0 +1,60 @@
+export interface ScrollToParams {
+ el: HTMLElement
+ to: number
+ position: string
+ duration?: number
+ callback?: () => void
+}
+
+const easeInOutQuad = (t: number, b: number, c: number, d: number) => {
+ t /= d / 2
+ if (t < 1) {
+ return (c / 2) * t * t + b
+ }
+ t--
+ return (-c / 2) * (t * (t - 2) - 1) + b
+}
+const move = (el: HTMLElement, position: string, amount: number) => {
+ el[position] = amount
+}
+
+export function useScrollTo({
+ el,
+ position = 'scrollLeft',
+ to,
+ duration = 500,
+ callback
+}: ScrollToParams) {
+ const isActiveRef = ref(false)
+ const start = el[position]
+ const change = to - start
+ const increment = 20
+ let currentTime = 0
+
+ function animateScroll() {
+ if (!unref(isActiveRef)) {
+ return
+ }
+ currentTime += increment
+ const val = easeInOutQuad(currentTime, start, change, duration)
+ move(el, position, val)
+ if (currentTime < duration && unref(isActiveRef)) {
+ requestAnimationFrame(animateScroll)
+ } else {
+ if (callback) {
+ callback()
+ }
+ }
+ }
+
+ function run() {
+ isActiveRef.value = true
+ animateScroll()
+ }
+
+ function stop() {
+ isActiveRef.value = false
+ }
+
+ return { start: run, stop }
+}
diff --git a/src/hooks/web/useCache.ts b/src/hooks/web/useCache.ts
new file mode 100644
index 0000000..38b816a
--- /dev/null
+++ b/src/hooks/web/useCache.ts
@@ -0,0 +1,28 @@
+/**
+ * 配置浏览器本地存储的方式,可直接存储对象数组。
+ */
+
+import WebStorageCache from 'web-storage-cache'
+
+type CacheType = 'localStorage' | 'sessionStorage'
+
+export const CACHE_KEY = {
+ IS_DARK: 'isDark',
+ USER: 'user',
+ LANG: 'lang',
+ THEME: 'theme',
+ LAYOUT: 'layout',
+ ROLE_ROUTERS: 'roleRouters',
+ DICT_CACHE: 'dictCache',
+ DEPT: 'dept'
+}
+
+export const useCache = (type: CacheType = 'localStorage') => {
+ const wsCache: WebStorageCache = new WebStorageCache({
+ storage: type
+ })
+
+ return {
+ wsCache
+ }
+}
diff --git a/src/hooks/web/useConfigGlobal.ts b/src/hooks/web/useConfigGlobal.ts
new file mode 100644
index 0000000..afb3db3
--- /dev/null
+++ b/src/hooks/web/useConfigGlobal.ts
@@ -0,0 +1,9 @@
+import { ConfigGlobalTypes } from '@/types/configGlobal'
+
+export const useConfigGlobal = () => {
+ const configGlobal = inject('configGlobal', {}) as ConfigGlobalTypes
+
+ return {
+ configGlobal
+ }
+}
diff --git a/src/hooks/web/useCrudSchemas.ts b/src/hooks/web/useCrudSchemas.ts
new file mode 100644
index 0000000..914091f
--- /dev/null
+++ b/src/hooks/web/useCrudSchemas.ts
@@ -0,0 +1,388 @@
+import { reactive } from 'vue'
+import { AxiosPromise } from 'axios'
+import { findIndex } from '@/utils'
+import { eachTree, filter, treeMap } from '@/utils/tree'
+import { getBoolDictOptions, getDictOptions, getIntDictOptions } from '@/utils/dict'
+
+import { FormSchema } from '@/types/form'
+import { TableColumn } from '@/types/table'
+import { DescriptionsSchema } from '@/types/descriptions'
+import { TableFormColumn } from '@/types/tableForm'
+import { ComponentOptions, ComponentProps } from '@/types/components'
+import { DictTag } from '@/components/DictTag'
+import { cloneDeep, merge } from 'lodash-es'
+
+export type CrudSchema = Omit & {
+ isSearch?: boolean // 是否在查询显示
+ hiddenSearchHigh?: boolean // 是否隐藏高级筛选
+ search?: CrudSearchParams // 查询的详细配置
+ isTable?: boolean // 是否在列表显示
+ table?: CrudTableParams // 列表的详细配置
+ isForm?: boolean // 是否在表单显示
+ form?: CrudFormParams // 表单的详细配置
+ isDetail?: boolean // 是否在详情显示
+ detail?: CrudDescriptionsParams // 详情的详细配置
+ isTableForm?: boolean // 是否在表格嵌套表单显示
+ tableForm?: CrudTableFormParams // 表格嵌套表单的详细配置
+ children?: CrudSchema[]
+ dictType?: string // 字典类型
+ dictClass?: 'string' | 'number' | 'boolean' // 字典数据类型 string | number | boolean
+}
+
+type CrudSearchParams = {
+ // 是否显示在查询项
+ show?: boolean
+ // 接口
+ api?: () => Promise
+ // 搜索字段
+ field?: string
+} & Omit
+
+type CrudTableParams = {
+ // 是否显示表头
+ show?: boolean
+ // 列宽配置
+ width?: number | string
+ // 列是否固定在左侧或者右侧
+ fixed?: 'left' | 'right'
+} & Omit
+type CrudFormParams = {
+ // 是否显示表单项
+ show?: boolean
+ // 接口
+ api?: () => Promise
+} & Omit
+
+type CrudDescriptionsParams = {
+ // 是否显示表单项
+ show?: boolean
+} & Omit
+
+type CrudTableFormParams = {
+ // 是否显示表单项
+ show?: boolean
+} & Omit
+interface AllSchemas {
+ searchSchema: FormSchema[]
+ tableColumns: TableColumn[]
+ formSchema: FormSchema[]
+ detailSchema: DescriptionsSchema[]
+ tableFormColumns: TableFormColumn[]
+ tableMainColumns:TableColumn[]
+}
+
+const { t } = useI18n()
+
+// 过滤所有结构
+export const useCrudSchemas = (
+ crudSchema: CrudSchema[]
+): {
+ allSchemas: AllSchemas
+} => {
+ // 所有结构数据
+ const allSchemas = reactive({
+ searchSchema: [],
+ tableColumns: [],
+ formSchema: [],
+ detailSchema: [],
+ tableFormColumns:[],
+ tableMainColumns:[],
+ })
+
+ const searchSchema = filterSearchSchema(crudSchema, allSchemas)
+ allSchemas.searchSchema = searchSchema || []
+
+
+ const tableColumns = filterTableSchema(crudSchema)
+ allSchemas.tableColumns = tableColumns || []
+ allSchemas.tableMainColumns = tableColumns.filter(item=>!item.hiddenInMain) || []
+
+ const formSchema = filterFormSchema(crudSchema, allSchemas)
+ allSchemas.formSchema = formSchema
+
+ const detailSchema = filterDescriptionsSchema(crudSchema)
+ allSchemas.detailSchema = detailSchema
+
+ const tableFormColumns= filterTableFormSchema(crudSchema)
+ allSchemas.tableFormColumns =tableFormColumns || []
+ return {
+ allSchemas
+ }
+}
+
+// 过滤 Search 结构
+const filterSearchSchema = (crudSchema: CrudSchema[], allSchemas: AllSchemas): FormSchema[] => {
+ const searchSchema: FormSchema[] = []
+
+ // 获取字典列表队列
+ const searchRequestTask: Array<() => Promise> = []
+ eachTree(crudSchema, (schemaItem: CrudSchema) => {
+ // 判断是否显示
+ if (schemaItem?.isSearch || schemaItem.search?.show) {
+ let component = schemaItem?.search?.component || 'Input'
+ const options: ComponentOptions[] = []
+ let comonentProps: ComponentProps = {}
+ if (schemaItem.dictType) {
+ const allOptions: ComponentOptions = { label: '全部', value: '' }
+ options.push(allOptions)
+ getDictOptions(schemaItem.dictType).forEach((dict) => {
+ options.push(dict)
+ })
+ comonentProps = {
+ options: options
+ }
+ if (!schemaItem.search?.component) component = 'Select'
+ }
+
+ // updated by AKing: 解决了当使用默认的dict选项时,form中事件不能触发的问题
+ const searchSchemaItem = merge(
+ {
+ // 默认为 input
+ component,
+ ...schemaItem.search,
+ field: schemaItem.field,
+ label: schemaItem.search?.label || schemaItem.label,
+ sortSearchDefault: schemaItem.sortSearchDefault || 999,
+ },
+ { componentProps: comonentProps }
+ )
+ if (searchSchemaItem.api) {
+ searchRequestTask.push(async () => {
+ const res = await (searchSchemaItem.api as () => AxiosPromise)()
+ if (res) {
+ const index = findIndex(allSchemas.searchSchema, (v: FormSchema) => {
+ return v.field === searchSchemaItem.field
+ })
+ if (index !== -1) {
+ allSchemas.searchSchema[index]!.componentProps!.options = filterOptions(
+ res,
+ searchSchemaItem.componentProps.optionsAlias?.labelField
+ )
+ }
+ }
+ })
+ }
+ // 删除不必要的字段
+ delete searchSchemaItem.show
+
+ searchSchema.push(searchSchemaItem)
+ }
+ })
+ for (const task of searchRequestTask) {
+ task()
+ }
+ return searchSchema
+}
+
+// 过滤 table 结构
+const filterTableSchema = (crudSchema: CrudSchema[]): TableColumn[] => {
+ const tableColumns = treeMap(crudSchema, {
+ conversion: (schema: CrudSchema) => {
+ if (schema?.isTable !== false && schema?.table?.show !== false) {
+ // add by 芋艿:增加对 dict 字典数据的支持
+ if (!schema.formatter && schema.dictType) {
+ schema.formatter = (_: Recordable, __: TableColumn, cellValue: any) => {
+ return h(DictTag, {
+ type: schema.dictType!, // ! 表示一定不为空
+ value: cellValue
+ })
+ }
+ }
+ return {
+ ...schema.table,
+ ...schema
+ }
+ }
+ }
+ })
+
+ // 第一次过滤会有 undefined 所以需要二次过滤
+ return filter(tableColumns as TableColumn[], (data) => {
+ if (data.children === void 0) {
+ delete data.children
+ }
+ return !!data.field
+ })
+}
+// 过滤 tableForm 结构
+const filterTableFormSchema = (crudSchema: CrudSchema[]): TableFormColumn[] => {
+ const tableFormColumns = treeMap(crudSchema, {
+ conversion: (schema: CrudSchema) => {
+ if (schema?.isTableForm !== false && schema?.tableForm?.show !== false) {
+ // add by 芋艿:增加对 dict 字典数据的支持
+ if (!schema.formatter && schema.dictType) {
+ schema.formatter = (_: Recordable, __: TableFormColumn, cellValue: any) => {
+ return h(DictTag, {
+ type: schema.dictType!, // ! 表示一定不为空
+ value: cellValue
+ })
+ }
+ }
+ return {
+ ...schema.tableForm,
+ ...schema
+ }
+ }
+ }
+ })
+
+ // 第一次过滤会有 undefined 所以需要二次过滤
+ return filter(tableFormColumns as TableFormColumn[], (data) => {
+ if (data.children === void 0) {
+ delete data.children
+ }
+ return !!data.field
+ })
+}
+// 过滤 form 结构
+const filterFormSchema = (crudSchema: CrudSchema[], allSchemas: AllSchemas): FormSchema[] => {
+ const formSchema: FormSchema[] = []
+
+ // 获取字典列表队列
+ const formRequestTask: Array<() => Promise> = []
+
+ eachTree(crudSchema, (schemaItem: CrudSchema) => {
+ // 判断是否显示
+ if (schemaItem?.isForm !== false && schemaItem?.form?.show !== false) {
+ let component = schemaItem?.form?.component || 'Input'
+ let defaultValue: any = ''
+ if (schemaItem.form?.value) {
+ defaultValue = schemaItem.form?.value
+ } else {
+ if (component === 'InputNumber') {
+ defaultValue = 0
+ }
+ }
+ let comonentProps: ComponentProps = {}
+ if (schemaItem.dictType) {
+ const options: ComponentOptions[] = []
+ if (schemaItem.dictClass && schemaItem.dictClass === 'number') {
+ getIntDictOptions(schemaItem.dictType).forEach((dict) => {
+ options.push(dict)
+ })
+ } else if (schemaItem.dictClass && schemaItem.dictClass === 'boolean') {
+ getBoolDictOptions(schemaItem.dictType).forEach((dict) => {
+ options.push(dict)
+ })
+ } else {
+ if(schemaItem.dictAllOption){
+ const allOptions: ComponentOptions = { label: '全选', value: schemaItem.dictAllValue||'' }
+ options.push(allOptions)
+ }
+ getDictOptions(schemaItem.dictType).forEach((dict) => {
+ options.push(dict)
+ })
+ }
+ comonentProps = {
+ options: options
+ }
+ // 可编辑字典-下拉框默认选中第一条数据 --喜婷
+ if(options.length>0&&!schemaItem.form?.componentProps?.disabled){
+ defaultValue = options[0].value
+ }
+ if (!(schemaItem.form && schemaItem.form.component)) component = 'Select'
+ }
+
+ // updated by AKing: 解决了当使用默认的dict选项时,form中事件不能触发的问题
+ const formSchemaItem = merge(
+ {
+ // 默认为 input
+ component,
+ value: defaultValue,
+ ...schemaItem.form,
+ field: schemaItem.field,
+ label: schemaItem.form?.label || schemaItem.label
+ },
+ { componentProps: comonentProps }
+ )
+
+ if (formSchemaItem.api) {
+ formRequestTask.push(async () => {
+ const res = await (formSchemaItem.api as () => AxiosPromise)()
+ if (res) {
+ const index = findIndex(allSchemas.formSchema, (v: FormSchema) => {
+ return v.field === formSchemaItem.field
+ })
+ if (index !== -1) {
+ allSchemas.formSchema[index]!.componentProps!.options = filterOptions(
+ res,
+ formSchemaItem.componentProps.optionsAlias?.labelField
+ )
+ }
+ }
+ })
+ }
+
+ // 删除不必要的字段
+ delete formSchemaItem.show
+
+ formSchema.push(formSchemaItem)
+ }
+ })
+
+ for (const task of formRequestTask) {
+ task()
+ }
+ return formSchema
+}
+
+// 过滤 descriptions 结构
+const filterDescriptionsSchema = (crudSchema: CrudSchema[]): DescriptionsSchema[] => {
+ const descriptionsSchema: FormSchema[] = []
+
+ eachTree(crudSchema, (schemaItem: CrudSchema) => {
+ // 判断是否显示
+ if (schemaItem?.isDetail !== false && schemaItem.detail?.show !== false) {
+ const descriptionsSchemaItem = {
+ ...schemaItem.detail,
+ field: schemaItem.field,
+ label: schemaItem.detail?.label || schemaItem.label
+ }
+ if (schemaItem.dictType) {
+ descriptionsSchemaItem.dictType = schemaItem.dictType
+ }
+ if (schemaItem.detail?.dateFormat || schemaItem.formatter == 'formatDate') {
+ // 优先使用 detail 下的配置,如果没有默认为 YYYY-MM-DD HH:mm:ss
+ descriptionsSchemaItem.dateFormat = schemaItem?.detail?.dateFormat
+ ? schemaItem?.detail?.dateFormat
+ : 'YYYY-MM-DD HH:mm:ss'
+ }
+
+ // 删除不必要的字段
+ delete descriptionsSchemaItem.show
+
+ descriptionsSchema.push(descriptionsSchemaItem)
+ }
+ })
+
+ return descriptionsSchema
+}
+
+// 给options添加国际化
+const filterOptions = (options: Recordable, labelField?: string) => {
+ return options?.map((v: Recordable) => {
+ if (labelField) {
+ v['labelField'] = t(v.labelField)
+ } else {
+ v['label'] = t(v.label)
+ }
+ return v
+ })
+}
+
+// 将 tableColumns 指定 fields 放到最前面
+export const sortTableColumns = (tableColumns: TableColumn[], field: string) => {
+ const fieldIndex = tableColumns.findIndex((item) => item.field === field)
+ const fieldColumn = cloneDeep(tableColumns[fieldIndex])
+ tableColumns.splice(fieldIndex, 1)
+ // 添加到开头
+ tableColumns.unshift(fieldColumn)
+}
+// 将 tableColumns 指定 fields 放到最前面
+export const sortTableFormColumns = (tableFormColumns: TableFormColumn[], field: string) => {
+ const fieldIndex = tableFormColumns.findIndex((item) => item.field === field)
+ const fieldColumn = cloneDeep(tableFormColumns[fieldIndex])
+ tableFormColumns.splice(fieldIndex, 1)
+ // 添加到开头
+ tableFormColumns.unshift(fieldColumn)
+}
diff --git a/src/hooks/web/useDesign.ts b/src/hooks/web/useDesign.ts
new file mode 100644
index 0000000..8ee3b38
--- /dev/null
+++ b/src/hooks/web/useDesign.ts
@@ -0,0 +1,18 @@
+import variables from '@/styles/global.module.scss'
+
+export const useDesign = () => {
+ const scssVariables = variables
+
+ /**
+ * @param scope 类名
+ * @returns 返回空间名-类名
+ */
+ const getPrefixCls = (scope: string) => {
+ return `${scssVariables.namespace}-${scope}`
+ }
+
+ return {
+ variables: scssVariables,
+ getPrefixCls
+ }
+}
diff --git a/src/hooks/web/useEmitt.ts b/src/hooks/web/useEmitt.ts
new file mode 100644
index 0000000..d4efea7
--- /dev/null
+++ b/src/hooks/web/useEmitt.ts
@@ -0,0 +1,22 @@
+import mitt from 'mitt'
+
+interface Option {
+ name: string // 事件名称
+ callback: Fn // 回调
+}
+
+const emitter = mitt()
+
+export const useEmitt = (option?: Option) => {
+ if (option) {
+ emitter.on(option.name, option.callback)
+
+ onBeforeUnmount(() => {
+ emitter.off(option.name)
+ })
+ }
+
+ return {
+ emitter
+ }
+}
diff --git a/src/hooks/web/useForm.ts b/src/hooks/web/useForm.ts
new file mode 100644
index 0000000..53a8a94
--- /dev/null
+++ b/src/hooks/web/useForm.ts
@@ -0,0 +1,94 @@
+import type { Form, FormExpose } from '@/components/Form'
+import type { ElForm } from 'element-plus'
+import type { FormProps } from '@/components/Form/src/types'
+import { FormSchema, FormSetPropsType } from '@/types/form'
+
+export const useForm = (props?: FormProps) => {
+ // From实例
+ const formRef = ref()
+
+ // ElForm实例
+ const elFormRef = ref>()
+
+ /**
+ * @param ref Form实例
+ * @param elRef ElForm实例
+ */
+ const register = (ref: typeof Form & FormExpose, elRef: ComponentRef) => {
+ formRef.value = ref
+ elFormRef.value = elRef
+ }
+
+ const getForm = async () => {
+ await nextTick()
+ const form = unref(formRef)
+ if (!form) {
+ console.error('The form is not registered. Please use the register method to register')
+ }
+ return form
+ }
+
+ // 一些内置的方法
+ const methods: {
+ setProps: (props: Recordable) => void
+ setValues: (data: Recordable) => void
+ getFormData: () => Promise
+ setSchema: (schemaProps: FormSetPropsType[]) => void
+ addSchema: (formSchema: FormSchema, index?: number) => void
+ delSchema: (field: string) => void
+ } = {
+ setProps: async (props: FormProps = {}) => {
+ const form = await getForm()
+ form?.setProps(props)
+ if (props.model) {
+ form?.setValues(props.model)
+ }
+ },
+
+ setValues: async (data: Recordable) => {
+ const form = await getForm()
+ form?.setValues(data)
+ },
+
+ /**
+ * @param schemaProps 需要设置的schemaProps
+ */
+ setSchema: async (schemaProps: FormSetPropsType[]) => {
+ const form = await getForm()
+ form?.setSchema(schemaProps)
+ },
+
+ /**
+ * @param formSchema 需要新增数据
+ * @param index 在哪里新增
+ */
+ addSchema: async (formSchema: FormSchema, index?: number) => {
+ const form = await getForm()
+ form?.addSchema(formSchema, index)
+ },
+
+ /**
+ * @param field 删除哪个数据
+ */
+ delSchema: async (field: string) => {
+ const form = await getForm()
+ form?.delSchema(field)
+ },
+
+ /**
+ * @returns form data
+ */
+ getFormData: async (): Promise => {
+ const form = await getForm()
+ return form?.formModel as T
+ }
+ }
+
+ props && methods.setProps(props)
+
+ return {
+ register,
+ elFormRef,
+ methods
+ }
+}
diff --git a/src/hooks/web/useI18n.ts b/src/hooks/web/useI18n.ts
new file mode 100644
index 0000000..9a0ef63
--- /dev/null
+++ b/src/hooks/web/useI18n.ts
@@ -0,0 +1,53 @@
+import { i18n } from '@/plugins/vueI18n'
+
+type I18nGlobalTranslation = {
+ (key: string): string
+ (key: string, locale: string): string
+ (key: string, locale: string, list: unknown[]): string
+ (key: string, locale: string, named: Record): string
+ (key: string, list: unknown[]): string
+ (key: string, named: Record): string
+}
+
+type I18nTranslationRestParameters = [string, any]
+
+const getKey = (namespace: string | undefined, key: string) => {
+ if (!namespace) {
+ return key
+ }
+ if (key.startsWith(namespace)) {
+ return key
+ }
+ return `${namespace}.${key}`
+}
+
+export const useI18n = (
+ namespace?: string
+): {
+ t: I18nGlobalTranslation
+} => {
+ const normalFn = {
+ t: (key: string) => {
+ return getKey(namespace, key)
+ }
+ }
+
+ if (!i18n) {
+ return normalFn
+ }
+
+ const { t, ...methods } = i18n.global
+
+ const tFn: I18nGlobalTranslation = (key: string, ...arg: any[]) => {
+ if (!key) return ''
+ if (!key.includes('.') && !namespace) return key
+ // @ts-ignore
+ return t(getKey(namespace, key), ...(arg as I18nTranslationRestParameters))
+ }
+ return {
+ ...methods,
+ t: tFn
+ }
+}
+
+export const t = (key: string) => key
diff --git a/src/hooks/web/useIcon.ts b/src/hooks/web/useIcon.ts
new file mode 100644
index 0000000..3500204
--- /dev/null
+++ b/src/hooks/web/useIcon.ts
@@ -0,0 +1,8 @@
+import { h } from 'vue'
+import type { VNode } from 'vue'
+import { Icon } from '@/components/Icon'
+import { IconTypes } from '@/types/icon'
+
+export const useIcon = (props: IconTypes): VNode => {
+ return h(Icon, props)
+}
diff --git a/src/hooks/web/useIntro.ts b/src/hooks/web/useIntro.ts
new file mode 100644
index 0000000..7fe0084
--- /dev/null
+++ b/src/hooks/web/useIntro.ts
@@ -0,0 +1,47 @@
+import introJs from 'intro.js'
+import { IntroJs, Step, Options } from 'intro.js'
+import 'intro.js/introjs.css'
+
+import { useDesign } from '@/hooks/web/useDesign'
+
+export const useIntro = (setps?: Step[], options?: Options) => {
+ const { t } = useI18n()
+
+ const { variables } = useDesign()
+
+ const defaultSetps: Step[] = setps || [
+ {
+ element: `#${variables.namespace}-menu`,
+ title: t('common.menu'),
+ intro: t('common.menuDes'),
+ position: 'right'
+ },
+ {
+ element: `#${variables.namespace}-tool-header`,
+ title: t('common.tool'),
+ intro: t('common.toolDes'),
+ position: 'left'
+ },
+ {
+ element: `#${variables.namespace}-tags-view`,
+ title: t('common.tagsView'),
+ intro: t('common.tagsViewDes'),
+ position: 'bottom'
+ }
+ ]
+
+ const defaultOptions: Options = options || {
+ prevLabel: t('common.prevLabel'),
+ nextLabel: t('common.nextLabel'),
+ skipLabel: t('common.skipLabel'),
+ doneLabel: t('common.doneLabel')
+ }
+
+ const introRef: IntroJs = introJs()
+
+ introRef.addSteps(defaultSetps).setOptions(defaultOptions)
+
+ return {
+ introRef
+ }
+}
diff --git a/src/hooks/web/useLocale.ts b/src/hooks/web/useLocale.ts
new file mode 100644
index 0000000..c65070e
--- /dev/null
+++ b/src/hooks/web/useLocale.ts
@@ -0,0 +1,35 @@
+import { i18n } from '@/plugins/vueI18n'
+import { useLocaleStoreWithOut } from '@/store/modules/locale'
+import { setHtmlPageLang } from '@/plugins/vueI18n/helper'
+
+const setI18nLanguage = (locale: LocaleType) => {
+ const localeStore = useLocaleStoreWithOut()
+
+ if (i18n.mode === 'legacy') {
+ i18n.global.locale = locale
+ } else {
+ ;(i18n.global.locale as any).value = locale
+ }
+ localeStore.setCurrentLocale({
+ lang: locale
+ })
+ setHtmlPageLang(locale)
+}
+
+export const useLocale = () => {
+ // Switching the language will change the locale of useI18n
+ // And submit to configuration modification
+ const changeLocale = async (locale: LocaleType) => {
+ const globalI18n = i18n.global
+
+ const langModule = await import(`../../locales/${locale}.ts`)
+
+ globalI18n.setLocaleMessage(locale, langModule.default)
+
+ setI18nLanguage(locale)
+ }
+
+ return {
+ changeLocale
+ }
+}
diff --git a/src/hooks/web/useMessage.ts b/src/hooks/web/useMessage.ts
new file mode 100644
index 0000000..1de1822
--- /dev/null
+++ b/src/hooks/web/useMessage.ts
@@ -0,0 +1,113 @@
+import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
+import { useI18n } from './useI18n'
+export const useMessage = () => {
+ const { t } = useI18n()
+ return {
+ // 消息提示
+ info(content: string) {
+ ElMessage.info(content)
+ },
+ // 错误消息
+ error(content: string) {
+ ElMessage.error(content)
+ },
+ // 成功消息
+ success(content: string) {
+ ElMessage.success(content)
+ },
+ // 警告消息
+ warning(content: string) {
+ ElMessage.warning(content)
+ },
+ // 弹出提示
+ alert(content: string) {
+ ElMessageBox.alert(content, t('common.confirmTitle'))
+ },
+ // 错误提示
+ alertError(content: string) {
+ ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'error' })
+ },
+ // 成功提示
+ alertSuccess(content: string) {
+ ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'success' })
+ },
+ // 警告提示
+ alertWarning(content: string) {
+ ElMessageBox.alert(content, t('common.confirmTitle'), { type: 'warning' })
+ },
+ // 通知提示
+ notify(content: string) {
+ ElNotification.info(content)
+ },
+ // 错误通知
+ notifyError(content: string) {
+ ElNotification.error(content)
+ },
+ // 成功通知
+ notifySuccess(content: string) {
+ ElNotification.success(content)
+ },
+ // 警告通知
+ notifyWarning(content: string) {
+ ElNotification.warning(content)
+ },
+ // 确认窗体
+ confirm(content: string, tip?: string) {
+ return ElMessageBox.confirm(content, tip ? tip : t('common.confirmTitle'), {
+ confirmButtonText: t('common.ok'),
+ cancelButtonText: t('common.cancel'),
+ type: 'warning'
+ })
+ },
+ // 验证窗体
+ confirmPassword(content: string, tip?: string) {
+ return ElMessageBox.confirm(content, tip ? tip : t('common.confirmTitle'), {
+ distinguishCancelAndClose: true,
+ confirmButtonText: t('验证通过'),
+ cancelButtonText: t('验证不通过'),
+ type: 'warning',
+ })
+ },
+ // 审核窗体
+ confirmAudi(content: string, tip?: string) {
+ return ElMessageBox.confirm(content, tip ? tip : t('common.confirmTitle'), {
+ distinguishCancelAndClose: true,
+ confirmButtonText: t('审核通过'),
+ cancelButtonText: t('审核不通过'),
+ type: 'warning'
+ })
+ },
+ // 删除窗体
+ delConfirm(content?: string, tip?: string) {
+ return ElMessageBox.confirm(
+ content ? content : t('common.delMessage'),
+ tip ? tip : t('common.confirmTitle'),
+ {
+ confirmButtonText: t('common.ok'),
+ cancelButtonText: t('common.cancel'),
+ type: 'warning'
+ }
+ )
+ },
+ // 导出窗体
+ exportConfirm(content?: string, tip?: string) {
+ return ElMessageBox.confirm(
+ content ? content : t('common.exportMessage'),
+ tip ? tip : t('common.confirmTitle'),
+ {
+ confirmButtonText: t('common.ok'),
+ cancelButtonText: t('common.cancel'),
+ type: 'warning'
+ }
+ )
+ },
+ // 提交内容
+ prompt(content: string, tip: string) {
+ return ElMessageBox.prompt(content, tip, {
+ confirmButtonText: t('common.ok'),
+ cancelButtonText: t('common.cancel'),
+ type: 'warning'
+ })
+ }
+ }
+}
diff --git a/src/hooks/web/useNProgress.ts b/src/hooks/web/useNProgress.ts
new file mode 100644
index 0000000..6d8c0b9
--- /dev/null
+++ b/src/hooks/web/useNProgress.ts
@@ -0,0 +1,33 @@
+import { useCssVar } from '@vueuse/core'
+import type { NProgressOptions } from 'nprogress'
+import NProgress from 'nprogress'
+import 'nprogress/nprogress.css'
+
+const primaryColor = useCssVar('--el-color-primary', document.documentElement)
+
+export const useNProgress = () => {
+ NProgress.configure({ showSpinner: false } as NProgressOptions)
+
+ const initColor = async () => {
+ await nextTick()
+ const bar = document.getElementById('nprogress')?.getElementsByClassName('bar')[0] as ElRef
+ if (bar) {
+ bar.style.background = unref(primaryColor.value)
+ }
+ }
+
+ initColor()
+
+ const start = () => {
+ NProgress.start()
+ }
+
+ const done = () => {
+ NProgress.done()
+ }
+
+ return {
+ start,
+ done
+ }
+}
diff --git a/src/hooks/web/usePageLoading.ts b/src/hooks/web/usePageLoading.ts
new file mode 100644
index 0000000..bb89457
--- /dev/null
+++ b/src/hooks/web/usePageLoading.ts
@@ -0,0 +1,18 @@
+import { useAppStoreWithOut } from '@/store/modules/app'
+
+const appStore = useAppStoreWithOut()
+
+export const usePageLoading = () => {
+ const loadStart = () => {
+ appStore.setPageLoading(true)
+ }
+
+ const loadDone = () => {
+ appStore.setPageLoading(false)
+ }
+
+ return {
+ loadStart,
+ loadDone
+ }
+}
diff --git a/src/hooks/web/useTable.ts b/src/hooks/web/useTable.ts
new file mode 100644
index 0000000..56f8cfc
--- /dev/null
+++ b/src/hooks/web/useTable.ts
@@ -0,0 +1,242 @@
+import download from '@/utils/download'
+import { Table, TableExpose } from '@/components/Table'
+import { ElMessage, ElMessageBox, ElTable } from 'element-plus'
+import { computed, nextTick, reactive, ref, unref, watch } from 'vue'
+import type { TableProps } from '@/components/Table/src/types'
+
+import { TableSetPropsType } from '@/types/table'
+import { emit } from 'process'
+
+const { t } = useI18n()
+interface ResponseType {
+ list: T[]
+ total?: number
+}
+
+interface UseTableConfig {
+ getListApi: (option: any) => Promise
+ delListApi?: (option: any) => Promise
+ exportListApi?: (option: any) => Promise
+ // 返回数据格式配置
+ response?: ResponseType
+ // 默认传递的参数
+ defaultParams?: Recordable
+ props?: TableProps
+}
+
+interface TableObject {
+ pageSize: number
+ currentPage: number
+ total: number
+ tableList: T[]
+ params: any
+ loading: boolean
+ exportLoading: boolean
+ currentRow: Nullable
+ sort: any
+}
+
+export const useTable = (config?: UseTableConfig) => {
+ const tableObject = reactive>({
+ // 页数
+ pageSize: 20,
+ // 当前页
+ currentPage: 1,
+ // 总条数
+ total: 10,
+ // 表格数据
+ tableList: [],
+ // AxiosConfig 配置
+ params: {
+ ...(config?.defaultParams || {})
+ },
+ // 加载中
+ loading: true,
+ // 导出加载中
+ exportLoading: false,
+ // 当前行的数据
+ currentRow: null,
+ // 排序
+ sort: {
+ order: '', // 排序规则
+ prop: '' // 排序字段
+ },
+ })
+
+ const paramsObj = computed(() => {
+ return {
+ ...tableObject.params,
+ pageSize: tableObject.pageSize,
+ pageNo: tableObject.currentPage,
+ sort: tableObject.sort.prop,
+ by: tableObject.sort.order == 'descending'?'DESC':'ASC'
+ }
+ })
+
+ watch(
+ () => tableObject.currentPage,
+ () => {
+ methods.getList()
+ }
+ )
+
+ watch(
+ () => tableObject.pageSize,
+ () => {
+ // 当前页不为1时,修改页数后会导致多次调用getList方法
+ if (tableObject.currentPage === 1) {
+ methods.getList()
+ } else {
+ tableObject.currentPage = 1
+ methods.getList()
+ }
+ }
+ )
+
+ watch(
+ () => tableObject.sort,
+ () => {
+ methods.getList()
+ }
+ )
+
+ // Table实例
+ const tableRef = ref()
+
+ // ElTable实例
+ const elTableRef = ref>()
+
+ const register = (ref: typeof Table & TableExpose, elRef: ComponentRef) => {
+ tableRef.value = ref
+ elTableRef.value = elRef
+ }
+
+ const getTable = async () => {
+ await nextTick()
+ const table = unref(tableRef)
+ if (!table) {
+ console.error('The table is not registered. Please use the register method to register')
+ }
+ return table
+ }
+
+ const delData = async (ids: string | number | string[] | number[]) => {
+ let idsLength = 1
+ if (ids instanceof Array) {
+ idsLength = ids.length
+ await Promise.all(
+ ids.map(async (id: string | number) => {
+ await (config?.delListApi && config?.delListApi(id))
+ })
+ )
+ } else {
+ await (config?.delListApi && config?.delListApi(ids))
+ }
+ ElMessage.success(t('common.delSuccess'))
+
+ // 计算出临界点
+ tableObject.currentPage =
+ tableObject.total % tableObject.pageSize === idsLength || tableObject.pageSize === 1
+ ? tableObject.currentPage > 1
+ ? tableObject.currentPage - 1
+ : tableObject.currentPage
+ : tableObject.currentPage
+ await methods.getList()
+ }
+
+ const methods = {
+ getList: async () => {
+ tableObject.loading = true
+ const res = await config?.getListApi(unref(paramsObj)).finally(() => {
+ tableObject.loading = false
+ })
+ if (res) {
+ tableObject.tableList = (res as unknown as ResponseType).list
+ tableObject.total = (res as unknown as ResponseType).total ?? 0
+ }
+ },
+ setProps: async (props: TableProps = {}) => {
+ const table = await getTable()
+ table?.setProps(props)
+ },
+ setColumn: async (columnProps: TableSetPropsType[]) => {
+ const table = await getTable()
+ table?.setColumn(columnProps)
+ },
+ getSelections: async () => {
+ const table = await getTable()
+ return (table?.selections || []) as T[]
+ },
+ // 与Search组件结合
+ setSearchParams: (data: Recordable) => {
+ tableObject.params = Object.assign(tableObject.params, {
+ pageSize: tableObject.pageSize,
+ pageNo: 1,
+ ...data
+ })
+ // 查询/重置时,删除筛选相关属性
+ delete tableObject.params.filters
+ delete tableObject.params.isSearch
+ // 页码不等于1时更新页码重新获取数据,页码等于1时重新获取数据
+ if (tableObject.currentPage !== 1) {
+ tableObject.currentPage = 1
+ } else {
+ methods.getList()
+ }
+ },
+ // 删除数据
+ delList: async (
+ ids: string | number | string[] | number[],
+ multiple: boolean,
+ message = true
+ ) => {
+ const tableRef = await getTable()
+ if (multiple) {
+ if (!tableRef?.selections.length) {
+ ElMessage.warning(t('common.delNoData'))
+ return
+ }
+ }
+ if (message) {
+ ElMessageBox.confirm(t('common.delMessage'), t('common.confirmTitle'), {
+ confirmButtonText: t('common.ok'),
+ cancelButtonText: t('common.cancel'),
+ type: 'warning'
+ }).then(async () => {
+ await delData(ids)
+ })
+ } else {
+ await delData(ids)
+ }
+ },
+ // 导出列表
+ exportList: async (fileName: string) => {
+ tableObject.exportLoading = true
+ ElMessageBox.confirm(t('common.exportMessage'), t('common.confirmTitle'), {
+ confirmButtonText: t('common.ok'),
+ cancelButtonText: t('common.cancel'),
+ type: 'warning'
+ })
+ .then(async () => {
+ const res = await config?.exportListApi?.(unref(paramsObj) as unknown as T)
+ if (res) {
+ download.excel(res as unknown as Blob, fileName)
+ }
+ })
+ .finally(() => {
+ tableObject.exportLoading = false
+ })
+ }
+ }
+
+ config?.props && methods.setProps(config.props)
+
+ return {
+ register,
+ elTableRef,
+ tableObject,
+ methods,
+ // add by 芋艿:返回 tableMethods 属性,和 tableObject 更统一
+ tableMethods: methods
+ }
+}
diff --git a/src/hooks/web/useTimeAgo.ts b/src/hooks/web/useTimeAgo.ts
new file mode 100644
index 0000000..a6da281
--- /dev/null
+++ b/src/hooks/web/useTimeAgo.ts
@@ -0,0 +1,49 @@
+import { useTimeAgo as useTimeAgoCore, UseTimeAgoMessages } from '@vueuse/core'
+import { useLocaleStoreWithOut } from '@/store/modules/locale'
+
+const TIME_AGO_MESSAGE_MAP: {
+ 'zh-CN': UseTimeAgoMessages
+ en: UseTimeAgoMessages
+} = {
+ // @ts-ignore
+ 'zh-CN': {
+ justNow: '刚刚',
+ past: (n) => (n.match(/\d/) ? `${n}前` : n),
+ future: (n) => (n.match(/\d/) ? `${n}后` : n),
+ month: (n, past) => (n === 1 ? (past ? '上个月' : '下个月') : `${n} 个月`),
+ year: (n, past) => (n === 1 ? (past ? '去年' : '明年') : `${n} 年`),
+ day: (n, past) => (n === 1 ? (past ? '昨天' : '明天') : `${n} 天`),
+ week: (n, past) => (n === 1 ? (past ? '上周' : '下周') : `${n} 周`),
+ hour: (n) => `${n} 小时`,
+ minute: (n) => `${n} 分钟`,
+ second: (n) => `${n} 秒`
+ },
+ // @ts-ignore
+ en: {
+ justNow: 'just now',
+ past: (n) => (n.match(/\d/) ? `${n} ago` : n),
+ future: (n) => (n.match(/\d/) ? `in ${n}` : n),
+ month: (n, past) =>
+ n === 1 ? (past ? 'last month' : 'next month') : `${n} month${n > 1 ? 's' : ''}`,
+ year: (n, past) =>
+ n === 1 ? (past ? 'last year' : 'next year') : `${n} year${n > 1 ? 's' : ''}`,
+ day: (n, past) => (n === 1 ? (past ? 'yesterday' : 'tomorrow') : `${n} day${n > 1 ? 's' : ''}`),
+ week: (n, past) =>
+ n === 1 ? (past ? 'last week' : 'next week') : `${n} week${n > 1 ? 's' : ''}`,
+ hour: (n) => `${n} hour${n > 1 ? 's' : ''}`,
+ minute: (n) => `${n} minute${n > 1 ? 's' : ''}`,
+ second: (n) => `${n} second${n > 1 ? 's' : ''}`
+ }
+}
+
+export const useTimeAgo = (time: Date | number | string) => {
+ const localeStore = useLocaleStoreWithOut()
+
+ const currentLocale = computed(() => localeStore.getCurrentLocale)
+
+ const timeAgo = useTimeAgoCore(time, {
+ messages: TIME_AGO_MESSAGE_MAP[unref(currentLocale).lang]
+ })
+
+ return timeAgo
+}
diff --git a/src/hooks/web/useTitle.ts b/src/hooks/web/useTitle.ts
new file mode 100644
index 0000000..e531855
--- /dev/null
+++ b/src/hooks/web/useTitle.ts
@@ -0,0 +1,25 @@
+import { watch, ref } from 'vue'
+import { isString } from '@/utils/is'
+import { useAppStoreWithOut } from '@/store/modules/app'
+const { t } = useI18n() // 国际化
+
+const appStore = useAppStoreWithOut()
+
+export const useTitle = (newTitle?: string) => {
+ const { t } = useI18n()
+ const title = ref(
+ newTitle ? `${appStore.getTitle} - ${t(newTitle as string)}` : appStore.getTitle
+ )
+
+ watch(
+ title,
+ (n, o) => {
+ if (isString(n) && n !== o && document) {
+ document.title = n.replace(import.meta.env.VITE_APP_TITLE,t(`ts.${import.meta.env.VITE_APP_TITLE}`))
+ }
+ },
+ { immediate: true }
+ )
+
+ return title
+}
diff --git a/src/hooks/web/useValidator.ts b/src/hooks/web/useValidator.ts
new file mode 100644
index 0000000..0c16fa3
--- /dev/null
+++ b/src/hooks/web/useValidator.ts
@@ -0,0 +1,62 @@
+const { t } = useI18n()
+
+type Callback = (error?: string | Error | undefined) => void
+
+interface LengthRange {
+ min: number
+ max: number
+ message: string
+}
+
+export const useValidator = () => {
+ const required = (message?: string) => {
+ return {
+ required: true,
+ message: message || t('common.required')
+ }
+ }
+
+ const lengthRange = (val: any, callback: Callback, options: LengthRange) => {
+ const { min, max, message } = options
+ if (val.length < min || val.length > max) {
+ callback(new Error(message))
+ } else {
+ callback()
+ }
+ }
+
+ const notSpace = (val: any, callback: Callback, message: string) => {
+ // 用户名不能有空格
+ if (val.indexOf(' ') !== -1) {
+ callback(new Error(message))
+ } else {
+ callback()
+ }
+ }
+
+ const notSpecialCharacters = (val: any, callback: Callback, message: string) => {
+ // 密码不能是特殊字符
+ if (/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/gi.test(val)) {
+ callback(new Error(message))
+ } else {
+ callback()
+ }
+ }
+
+ // 两个字符串是否想等
+ const isEqual = (val1: string, val2: string, callback: Callback, message: string) => {
+ if (val1 === val2) {
+ callback()
+ } else {
+ callback(new Error(message))
+ }
+ }
+
+ return {
+ required,
+ lengthRange,
+ notSpace,
+ notSpecialCharacters,
+ isEqual
+ }
+}
diff --git a/src/hooks/web/useWatermark.ts b/src/hooks/web/useWatermark.ts
new file mode 100644
index 0000000..4a31359
--- /dev/null
+++ b/src/hooks/web/useWatermark.ts
@@ -0,0 +1,55 @@
+const domSymbol = Symbol('watermark-dom')
+
+export function useWatermark(appendEl: HTMLElement | null = document.body) {
+ let func: Fn = () => {}
+ const id = domSymbol.toString()
+ const clear = () => {
+ const domId = document.getElementById(id)
+ if (domId) {
+ const el = appendEl
+ el && el.removeChild(domId)
+ }
+ window.removeEventListener('resize', func)
+ }
+ const createWatermark = (str: string) => {
+ clear()
+
+ const can = document.createElement('canvas')
+ can.width = 300
+ can.height = 240
+
+ const cans = can.getContext('2d')
+ if (cans) {
+ cans.rotate((-20 * Math.PI) / 120)
+ cans.font = '15px Vedana'
+ cans.fillStyle = 'rgba(0, 0, 0, 0.15)'
+ cans.textAlign = 'left'
+ cans.textBaseline = 'middle'
+ cans.fillText(str, can.width / 20, can.height)
+ }
+
+ const div = document.createElement('div')
+ div.id = id
+ div.style.pointerEvents = 'none'
+ div.style.top = '0px'
+ div.style.left = '0px'
+ div.style.position = 'absolute'
+ div.style.zIndex = '100000000'
+ div.style.width = document.documentElement.clientWidth + 'px'
+ div.style.height = document.documentElement.clientHeight + 'px'
+ div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'
+ const el = appendEl
+ el && el.appendChild(div)
+ return id
+ }
+
+ function setWatermark(str: string) {
+ createWatermark(str)
+ func = () => {
+ createWatermark(str)
+ }
+ window.addEventListener('resize', func)
+ }
+
+ return { setWatermark, clear }
+}
diff --git a/src/layout/Layout.vue b/src/layout/Layout.vue
new file mode 100644
index 0000000..420341e
--- /dev/null
+++ b/src/layout/Layout.vue
@@ -0,0 +1,78 @@
+
+
+
diff --git a/src/layout/components/AppView.vue b/src/layout/components/AppView.vue
new file mode 100644
index 0000000..b79f39b
--- /dev/null
+++ b/src/layout/components/AppView.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
diff --git a/src/layout/components/Breadcrumb/index.ts b/src/layout/components/Breadcrumb/index.ts
new file mode 100644
index 0000000..93ffe70
--- /dev/null
+++ b/src/layout/components/Breadcrumb/index.ts
@@ -0,0 +1,3 @@
+import Breadcrumb from './src/Breadcrumb.vue'
+
+export { Breadcrumb }
diff --git a/src/layout/components/Breadcrumb/src/Breadcrumb.vue b/src/layout/components/Breadcrumb/src/Breadcrumb.vue
new file mode 100644
index 0000000..f1a2f65
--- /dev/null
+++ b/src/layout/components/Breadcrumb/src/Breadcrumb.vue
@@ -0,0 +1,128 @@
+
+
+
diff --git a/src/layout/components/Breadcrumb/src/helper.ts b/src/layout/components/Breadcrumb/src/helper.ts
new file mode 100644
index 0000000..fb3ec19
--- /dev/null
+++ b/src/layout/components/Breadcrumb/src/helper.ts
@@ -0,0 +1,31 @@
+import { pathResolve } from '@/utils/routerHelper'
+import type { RouteMeta } from 'vue-router'
+
+export const filterBreadcrumb = (
+ routes: AppRouteRecordRaw[],
+ parentPath = ''
+): AppRouteRecordRaw[] => {
+ const res: AppRouteRecordRaw[] = []
+
+ for (const route of routes) {
+ const meta = route?.meta as RouteMeta
+ if (meta.hidden && !meta.canTo) {
+ continue
+ }
+
+ const data: AppRouteRecordRaw =
+ !meta.alwaysShow && route.children?.length === 1
+ ? { ...route.children[0], path: pathResolve(route.path, route.children[0].path) }
+ : { ...route }
+
+ data.path = pathResolve(parentPath, data.path)
+
+ if (data.children) {
+ data.children = filterBreadcrumb(data.children, data.path)
+ }
+ if (data) {
+ res.push(data)
+ }
+ }
+ return res
+}
diff --git a/src/layout/components/CategoryHeader.vue b/src/layout/components/CategoryHeader.vue
new file mode 100644
index 0000000..e0f6ee0
--- /dev/null
+++ b/src/layout/components/CategoryHeader.vue
@@ -0,0 +1,168 @@
+
+
+
+
+
+
diff --git a/src/layout/components/Collapse/index.ts b/src/layout/components/Collapse/index.ts
new file mode 100644
index 0000000..73f65a3
--- /dev/null
+++ b/src/layout/components/Collapse/index.ts
@@ -0,0 +1,3 @@
+import Collapse from './src/Collapse.vue'
+
+export { Collapse }
diff --git a/src/layout/components/Collapse/src/Collapse.vue b/src/layout/components/Collapse/src/Collapse.vue
new file mode 100644
index 0000000..ecb6890
--- /dev/null
+++ b/src/layout/components/Collapse/src/Collapse.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
diff --git a/src/layout/components/ContextMenu/index.ts b/src/layout/components/ContextMenu/index.ts
new file mode 100644
index 0000000..2a7c1f0
--- /dev/null
+++ b/src/layout/components/ContextMenu/index.ts
@@ -0,0 +1,10 @@
+import ContextMenu from './src/ContextMenu.vue'
+import { ElDropdown } from 'element-plus'
+import type { RouteLocationNormalizedLoaded } from 'vue-router'
+
+export interface ContextMenuExpose {
+ elDropdownMenuRef: ComponentRef
+ tagItem: RouteLocationNormalizedLoaded
+}
+
+export { ContextMenu }
diff --git a/src/layout/components/ContextMenu/src/ContextMenu.vue b/src/layout/components/ContextMenu/src/ContextMenu.vue
new file mode 100644
index 0000000..90eea4c
--- /dev/null
+++ b/src/layout/components/ContextMenu/src/ContextMenu.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+ {{ t(item.label) }}
+
+
+
+
+
diff --git a/src/layout/components/Footer/index.ts b/src/layout/components/Footer/index.ts
new file mode 100644
index 0000000..bd052e0
--- /dev/null
+++ b/src/layout/components/Footer/index.ts
@@ -0,0 +1,3 @@
+import Footer from './src/Footer.vue'
+
+export { Footer }
diff --git a/src/layout/components/Footer/src/Footer.vue b/src/layout/components/Footer/src/Footer.vue
new file mode 100644
index 0000000..bf29e48
--- /dev/null
+++ b/src/layout/components/Footer/src/Footer.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
diff --git a/src/layout/components/LocaleDropdown/index.ts b/src/layout/components/LocaleDropdown/index.ts
new file mode 100644
index 0000000..d02e640
--- /dev/null
+++ b/src/layout/components/LocaleDropdown/index.ts
@@ -0,0 +1,3 @@
+import LocaleDropdown from './src/LocaleDropdown.vue'
+
+export { LocaleDropdown }
diff --git a/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue b/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue
new file mode 100644
index 0000000..95132db
--- /dev/null
+++ b/src/layout/components/LocaleDropdown/src/LocaleDropdown.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
diff --git a/src/layout/components/Logo/index.ts b/src/layout/components/Logo/index.ts
new file mode 100644
index 0000000..1c4224c
--- /dev/null
+++ b/src/layout/components/Logo/index.ts
@@ -0,0 +1,3 @@
+import Logo from './src/Logo.vue'
+
+export { Logo }
diff --git a/src/layout/components/Logo/src/Logo.vue b/src/layout/components/Logo/src/Logo.vue
new file mode 100644
index 0000000..57e6729
--- /dev/null
+++ b/src/layout/components/Logo/src/Logo.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Menu/index.ts b/src/layout/components/Menu/index.ts
new file mode 100644
index 0000000..a6ec696
--- /dev/null
+++ b/src/layout/components/Menu/index.ts
@@ -0,0 +1,3 @@
+import Menu from './src/Menu.vue'
+
+export { Menu }
diff --git a/src/layout/components/Menu/src/Menu.vue b/src/layout/components/Menu/src/Menu.vue
new file mode 100644
index 0000000..c32a4c2
--- /dev/null
+++ b/src/layout/components/Menu/src/Menu.vue
@@ -0,0 +1,325 @@
+
+
+
+
+
diff --git a/src/layout/components/Menu/src/components/useRenderMenuItem.tsx b/src/layout/components/Menu/src/components/useRenderMenuItem.tsx
new file mode 100644
index 0000000..17a520a
--- /dev/null
+++ b/src/layout/components/Menu/src/components/useRenderMenuItem.tsx
@@ -0,0 +1,59 @@
+import { ElSubMenu, ElMenuItem } from 'element-plus'
+import type { RouteMeta } from 'vue-router'
+import { hasOneShowingChild } from '../helper'
+import { isUrl } from '@/utils/is'
+import { useRenderMenuTitle } from './useRenderMenuTitle'
+import { useDesign } from '@/hooks/web/useDesign'
+import { pathResolve } from '@/utils/routerHelper'
+
+export const useRenderMenuItem = (
+ // allRouters: AppRouteRecordRaw[] = [],
+ menuMode: 'vertical' | 'horizontal'
+) => {
+ const renderMenuItem = (routers: AppRouteRecordRaw[], parentPath = '/') => {
+ return routers.map((v) => {
+ const meta = (v.meta ?? {}) as RouteMeta
+ if (!meta.hidden) {
+ const { oneShowingChild, onlyOneChild } = hasOneShowingChild(v.children, v)
+ const fullPath = isUrl(v.path) ? v.path : pathResolve(parentPath, v.path) // getAllParentPath(allRouters, v.path).join('/')
+
+ const { renderMenuTitle } = useRenderMenuTitle()
+
+ if (
+ oneShowingChild &&
+ (!onlyOneChild?.children || onlyOneChild?.noShowingChildren) &&
+ !meta?.alwaysShow
+ ) {
+ return (
+
+ {{
+ default: () => renderMenuTitle(onlyOneChild ? onlyOneChild?.meta : meta)
+ }}
+
+ )
+ } else {
+ const { getPrefixCls } = useDesign()
+
+ const preFixCls = getPrefixCls('menu-popper')
+ return (
+
+ {{
+ title: () => renderMenuTitle(meta),
+ default: () => renderMenuItem(v.children!, fullPath)
+ }}
+
+ )
+ }
+ }
+ })
+ }
+
+ return {
+ renderMenuItem
+ }
+}
diff --git a/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx b/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx
new file mode 100644
index 0000000..cdeb35d
--- /dev/null
+++ b/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx
@@ -0,0 +1,23 @@
+import type { RouteMeta } from 'vue-router'
+import { Icon } from '@/components/Icon'
+
+export const useRenderMenuTitle = () => {
+ const renderMenuTitle = (meta: RouteMeta) => {
+ const { t } = useI18n()
+ const { title = 'Please set title', icon } = meta
+
+ return icon ? (
+ <>
+
+ {/* ellipsis */}
+
+ >
+ ) : (
+
+ )
+ }
+
+ return {
+ renderMenuTitle
+ }
+}
diff --git a/src/layout/components/Menu/src/helper.ts b/src/layout/components/Menu/src/helper.ts
new file mode 100644
index 0000000..c26f5f4
--- /dev/null
+++ b/src/layout/components/Menu/src/helper.ts
@@ -0,0 +1,54 @@
+import type { RouteMeta } from 'vue-router'
+import { findPath } from '@/utils/tree'
+
+type OnlyOneChildType = AppRouteRecordRaw & { noShowingChildren?: boolean }
+
+interface HasOneShowingChild {
+ oneShowingChild?: boolean
+ onlyOneChild?: OnlyOneChildType
+}
+
+export const getAllParentPath = (treeData: T[], path: string) => {
+ const menuList = findPath(treeData, (n) => n.path === path) as AppRouteRecordRaw[]
+ return (menuList || []).map((item) => item.path)
+}
+
+export const hasOneShowingChild = (
+ children: AppRouteRecordRaw[] = [],
+ parent: AppRouteRecordRaw
+): HasOneShowingChild => {
+ const onlyOneChild = ref()
+
+ const showingChildren = children.filter((v) => {
+ const meta = (v.meta ?? {}) as RouteMeta
+ if (meta.hidden) {
+ return false
+ } else {
+ // Temp set(will be used if only has one showing child)
+ onlyOneChild.value = v
+ return true
+ }
+ })
+
+ // When there is only one child router, the child router is displayed by default
+ if (showingChildren.length === 1) {
+ return {
+ oneShowingChild: true,
+ onlyOneChild: unref(onlyOneChild)
+ }
+ }
+
+ // Show parent if there are no child router to display
+ if (!showingChildren.length) {
+ onlyOneChild.value = { ...parent, path: '', noShowingChildren: true }
+ return {
+ oneShowingChild: true,
+ onlyOneChild: unref(onlyOneChild)
+ }
+ }
+
+ return {
+ oneShowingChild: false,
+ onlyOneChild: unref(onlyOneChild)
+ }
+}
diff --git a/src/layout/components/Message/index.ts b/src/layout/components/Message/index.ts
new file mode 100644
index 0000000..dfe0207
--- /dev/null
+++ b/src/layout/components/Message/index.ts
@@ -0,0 +1,3 @@
+import Message from './src/Message.vue'
+
+export { Message }
diff --git a/src/layout/components/Message/src/Message.vue b/src/layout/components/Message/src/Message.vue
new file mode 100644
index 0000000..67ea37a
--- /dev/null
+++ b/src/layout/components/Message/src/Message.vue
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.templateNickname }}:{{ item.templateContent }}
+
+
+ {{ formatDate(item.createTime) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Screenfull/index.ts b/src/layout/components/Screenfull/index.ts
new file mode 100644
index 0000000..faec2d8
--- /dev/null
+++ b/src/layout/components/Screenfull/index.ts
@@ -0,0 +1,3 @@
+import Screenfull from './src/Screenfull.vue'
+
+export { Screenfull }
diff --git a/src/layout/components/Screenfull/src/Screenfull.vue b/src/layout/components/Screenfull/src/Screenfull.vue
new file mode 100644
index 0000000..4c045f2
--- /dev/null
+++ b/src/layout/components/Screenfull/src/Screenfull.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
diff --git a/src/layout/components/Setting/index.ts b/src/layout/components/Setting/index.ts
new file mode 100644
index 0000000..b64c9ad
--- /dev/null
+++ b/src/layout/components/Setting/index.ts
@@ -0,0 +1,3 @@
+import Setting from './src/Setting.vue'
+
+export { Setting }
diff --git a/src/layout/components/Setting/src/Setting.vue b/src/layout/components/Setting/src/Setting.vue
new file mode 100644
index 0000000..e1908b6
--- /dev/null
+++ b/src/layout/components/Setting/src/Setting.vue
@@ -0,0 +1,299 @@
+
+
+
+
+
+
+
+
+
+ {{ t('setting.projectSetting') }}
+
+
+
+
+ {{ t('setting.theme') }}
+
+
+
+ {{ t('setting.layout') }}
+
+
+
+ {{ t('setting.systemTheme') }}
+
+
+
+ {{ t('setting.headerTheme') }}
+
+
+
+
+ {{ t('setting.menuTheme') }}
+
+
+
+
+
+ {{ t('setting.interfaceDisplay') }}
+
+
+
+
+ {{ t('setting.copy') }}
+
+
+
+ {{ t('setting.clearAndReset') }}
+
+
+
+
+
+
diff --git a/src/layout/components/Setting/src/components/ColorRadioPicker.vue b/src/layout/components/Setting/src/components/ColorRadioPicker.vue
new file mode 100644
index 0000000..fcc5e75
--- /dev/null
+++ b/src/layout/components/Setting/src/components/ColorRadioPicker.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/Setting/src/components/InterfaceDisplay.vue b/src/layout/components/Setting/src/components/InterfaceDisplay.vue
new file mode 100644
index 0000000..ebbbf4b
--- /dev/null
+++ b/src/layout/components/Setting/src/components/InterfaceDisplay.vue
@@ -0,0 +1,224 @@
+
+
+
+
+
+ {{ t('setting.breadcrumb') }}
+
+
+
+
+ {{ t('setting.breadcrumbIcon') }}
+
+
+
+
+ {{ t('setting.hamburgerIcon') }}
+
+
+
+
+ {{ t('setting.screenfullIcon') }}
+
+
+
+
+ {{ t('setting.sizeIcon') }}
+
+
+
+
+ {{ t('setting.localeIcon') }}
+
+
+
+
+ {{ t('setting.messageIcon') }}
+
+
+
+
+ {{ t('setting.tagsView') }}
+
+
+
+
+ {{ t('setting.tagsViewIcon') }}
+
+
+
+
+ {{ t('setting.logo') }}
+
+
+
+
+ {{ t('setting.uniqueOpened') }}
+
+
+
+
+ {{ t('setting.fixedHeader') }}
+
+
+
+
+ {{ t('setting.footer') }}
+
+
+
+
+ {{ t('setting.greyMode') }}
+
+
+
+
+ {{ t('setting.fixedMenu') }}
+
+
+
+
+ {{ t('watermark.watermark') }}
+
+
+
+
diff --git a/src/layout/components/Setting/src/components/LayoutRadioPicker.vue b/src/layout/components/Setting/src/components/LayoutRadioPicker.vue
new file mode 100644
index 0000000..801686c
--- /dev/null
+++ b/src/layout/components/Setting/src/components/LayoutRadioPicker.vue
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
diff --git a/src/layout/components/SizeDropdown/index.ts b/src/layout/components/SizeDropdown/index.ts
new file mode 100644
index 0000000..516488d
--- /dev/null
+++ b/src/layout/components/SizeDropdown/index.ts
@@ -0,0 +1,3 @@
+import SizeDropdown from './src/SizeDropdown.vue'
+
+export { SizeDropdown }
diff --git a/src/layout/components/SizeDropdown/src/SizeDropdown.vue b/src/layout/components/SizeDropdown/src/SizeDropdown.vue
new file mode 100644
index 0000000..3e15224
--- /dev/null
+++ b/src/layout/components/SizeDropdown/src/SizeDropdown.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+ {{ t(`size.${item}`) }}
+
+
+
+
+
diff --git a/src/layout/components/TabMenu/index.ts b/src/layout/components/TabMenu/index.ts
new file mode 100644
index 0000000..b5fd71c
--- /dev/null
+++ b/src/layout/components/TabMenu/index.ts
@@ -0,0 +1,3 @@
+import TabMenu from './src/TabMenu.vue'
+
+export { TabMenu }
diff --git a/src/layout/components/TabMenu/src/TabMenu.vue b/src/layout/components/TabMenu/src/TabMenu.vue
new file mode 100644
index 0000000..36c600a
--- /dev/null
+++ b/src/layout/components/TabMenu/src/TabMenu.vue
@@ -0,0 +1,251 @@
+
+
+
diff --git a/src/layout/components/TabMenu/src/helper.ts b/src/layout/components/TabMenu/src/helper.ts
new file mode 100644
index 0000000..cce3932
--- /dev/null
+++ b/src/layout/components/TabMenu/src/helper.ts
@@ -0,0 +1,51 @@
+import { getAllParentPath } from '@/layout/components/Menu/src/helper'
+import type { RouteMeta } from 'vue-router'
+import { isUrl } from '@/utils/is'
+import { cloneDeep } from 'lodash-es'
+
+export type TabMapTypes = {
+ [key: string]: string[]
+}
+
+export const tabPathMap = reactive({})
+
+export const initTabMap = (routes: AppRouteRecordRaw[]) => {
+ for (const v of routes) {
+ const meta = (v.meta ?? {}) as RouteMeta
+ if (!meta?.hidden) {
+ tabPathMap[v.path] = []
+ }
+ }
+}
+
+export const filterMenusPath = (
+ routes: AppRouteRecordRaw[],
+ allRoutes: AppRouteRecordRaw[]
+): AppRouteRecordRaw[] => {
+ const res: AppRouteRecordRaw[] = []
+ for (const v of routes) {
+ let data: Nullable = null
+ const meta = (v.meta ?? {}) as RouteMeta
+ if (!meta.hidden || meta.canTo) {
+ const allParentPath = getAllParentPath(allRoutes, v.path)
+
+ const fullPath = isUrl(v.path) ? v.path : allParentPath.join('/')
+
+ data = cloneDeep(v)
+ data.path = fullPath
+ if (v.children && data) {
+ data.children = filterMenusPath(v.children, allRoutes)
+ }
+
+ if (data) {
+ res.push(data)
+ }
+
+ if (allParentPath.length && Reflect.has(tabPathMap, allParentPath[0])) {
+ tabPathMap[allParentPath[0]].push(fullPath)
+ }
+ }
+ }
+
+ return res
+}
diff --git a/src/layout/components/TagsView/index.ts b/src/layout/components/TagsView/index.ts
new file mode 100644
index 0000000..30e604a
--- /dev/null
+++ b/src/layout/components/TagsView/index.ts
@@ -0,0 +1,3 @@
+import TagsView from './src/TagsView.vue'
+
+export { TagsView }
diff --git a/src/layout/components/TagsView/src/TagsView.vue b/src/layout/components/TagsView/src/TagsView.vue
new file mode 100644
index 0000000..ae4d1c4
--- /dev/null
+++ b/src/layout/components/TagsView/src/TagsView.vue
@@ -0,0 +1,585 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t(`ts.${item?.meta?.title}` as string).replace('ts.','') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layout/components/TagsView/src/helper.ts b/src/layout/components/TagsView/src/helper.ts
new file mode 100644
index 0000000..22f6a50
--- /dev/null
+++ b/src/layout/components/TagsView/src/helper.ts
@@ -0,0 +1,21 @@
+import type { RouteMeta, RouteLocationNormalizedLoaded } from 'vue-router'
+import { pathResolve } from '@/utils/routerHelper'
+
+export const filterAffixTags = (routes: AppRouteRecordRaw[], parentPath = '') => {
+ let tags: RouteLocationNormalizedLoaded[] = []
+ routes.forEach((route) => {
+ const meta = route.meta as RouteMeta
+ const tagPath = pathResolve(parentPath, route.path)
+ if (meta?.affix) {
+ tags.push({ ...route, path: tagPath, fullPath: tagPath } as RouteLocationNormalizedLoaded)
+ }
+ if (route.children) {
+ const tempTags: RouteLocationNormalizedLoaded[] = filterAffixTags(route.children, tagPath)
+ if (tempTags.length >= 1) {
+ tags = [...tags, ...tempTags]
+ }
+ }
+ })
+
+ return tags
+}
diff --git a/src/layout/components/ThemeSwitch/index.ts b/src/layout/components/ThemeSwitch/index.ts
new file mode 100644
index 0000000..823a276
--- /dev/null
+++ b/src/layout/components/ThemeSwitch/index.ts
@@ -0,0 +1,3 @@
+import ThemeSwitch from './src/ThemeSwitch.vue'
+
+export { ThemeSwitch }
diff --git a/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue b/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue
new file mode 100644
index 0000000..39a8cfd
--- /dev/null
+++ b/src/layout/components/ThemeSwitch/src/ThemeSwitch.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/src/layout/components/ToolHeader.vue b/src/layout/components/ToolHeader.vue
new file mode 100644
index 0000000..fc153d3
--- /dev/null
+++ b/src/layout/components/ToolHeader.vue
@@ -0,0 +1,102 @@
+
+
+
diff --git a/src/layout/components/UserInfo/index.ts b/src/layout/components/UserInfo/index.ts
new file mode 100644
index 0000000..c3a34ab
--- /dev/null
+++ b/src/layout/components/UserInfo/index.ts
@@ -0,0 +1,3 @@
+import UserInfo from './src/UserInfo.vue'
+
+export { UserInfo }
diff --git a/src/layout/components/UserInfo/src/UserInfo.vue b/src/layout/components/UserInfo/src/UserInfo.vue
new file mode 100644
index 0000000..2c14ae4
--- /dev/null
+++ b/src/layout/components/UserInfo/src/UserInfo.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('common.profile') }}
+
+
+
+
+ {{ t('common.loginOut') }}
+
+
+
+
+
+
+
diff --git a/src/layout/components/useRenderLayout.tsx b/src/layout/components/useRenderLayout.tsx
new file mode 100644
index 0000000..c9f9b71
--- /dev/null
+++ b/src/layout/components/useRenderLayout.tsx
@@ -0,0 +1,333 @@
+import { computed } from 'vue'
+import { useAppStore } from '@/store/modules/app'
+import { Menu } from '@/layout/components/Menu'
+import { TabMenu } from '@/layout/components/TabMenu'
+import { TagsView } from '@/layout/components/TagsView'
+import { Logo } from '@/layout/components/Logo'
+import AppView from './AppView.vue'
+import ToolHeader from './ToolHeader.vue'
+import CategoryHeader from './CategoryHeader.vue'
+import { ElScrollbar } from 'element-plus'
+import { useDesign } from '@/hooks/web/useDesign'
+import RouterSearch from '@/components/RouterSearch/index.vue'
+
+const { getPrefixCls } = useDesign()
+
+const prefixCls = getPrefixCls('layout')
+
+const appStore = useAppStore()
+
+const pageLoading = computed(() => appStore.getPageLoading)
+
+// 标签页
+const tagsView = computed(() => appStore.getTagsView)
+
+// 菜单折叠
+const collapse = computed(() => appStore.getCollapse)
+
+// logo
+const logo = computed(() => appStore.logo)
+
+// 固定头部
+const fixedHeader = computed(() => appStore.getFixedHeader)
+
+// 是否是移动端
+const mobile = computed(() => appStore.getMobile)
+
+// 固定菜单
+const fixedMenu = computed(() => appStore.getFixedMenu)
+// 搜索图片
+const search = computed(() => appStore.search)
+const scrollBarHeight = computed(() => {
+ return (window.innerHeight - appStore.getCategoryMenuHeight - 35)+'px'
+})
+
+export const useRenderLayout = () => {
+ const renderClassic = () => {
+ return (
+ <>
+
+ {logo.value ? (
+
+ ) : undefined}
+ {appStore.getShowCategoryMenu?():undefined}
+
+
+ {/* {search.value && !appStore.getCollapse? (
) : undefined} */}
+
+
+
+
+
+ {/* */}
+
+ {tagsView.value ? (
+
+ ) : undefined}
+
+
+
+
+
+ >
+ )
+ }
+
+ const renderTopLeft = () => {
+ return (
+ <>
+
+
+
+
+
+ {tagsView.value ? (
+
+ ) : undefined}
+
+
+
+
+
+ >
+ )
+ }
+
+ const renderTop = () => {
+ return (
+ <>
+
+ {logo.value ? : undefined}
+
+
+
+
+
+ {tagsView.value ? (
+
+ ) : undefined}
+
+
+
+
+ >
+ )
+ }
+
+ const renderCutMenu = () => {
+ return (
+ <>
+
+
+
+
+
+ {tagsView.value ? (
+
+ ) : undefined}
+
+
+
+
+
+ >
+ )
+ }
+
+ return {
+ renderClassic,
+ renderTopLeft,
+ renderTop,
+ renderCutMenu
+ }
+}
diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts
new file mode 100644
index 0000000..9d4a6b2
--- /dev/null
+++ b/src/locales/en-US.ts
@@ -0,0 +1,1304 @@
+export default {
+ common: {
+ inputText: 'Please input',
+ selectText: 'Please select',
+ startTimeText: 'Start time',
+ endTimeText: 'End time',
+ login: 'Login',
+ required: 'This is required',
+ loginOut: 'Login out',
+ document: 'Document',
+ profile: 'User Center',
+ reminder: 'Reminder',
+ loginOutMessage: 'Exit the system?',
+ back: 'Back',
+ ok: 'OK',
+ save: 'Save',
+ cancel: 'Cancel',
+ close: 'Close',
+ reload: 'Reload current',
+ success: 'Success',
+ closeTab: 'Close current',
+ closeTheLeftTab: 'Close left',
+ closeTheRightTab: 'Close right',
+ closeOther: 'Close other',
+ closeAll: 'Close all',
+ prevLabel: 'Prev',
+ nextLabel: 'Next',
+ skipLabel: 'Jump',
+ doneLabel: 'End',
+ menu: 'Menu',
+ menuDes: 'Menu bar rendered in routed structure',
+ collapse: 'Collapse',
+ collapseDes: 'Expand and zoom the menu bar',
+ tagsView: 'Tags view',
+ tagsViewDes: 'Used to record routing history',
+ tool: 'Tool',
+ toolDes: 'Used to set up custom systems',
+ query: 'Query',
+ reset: 'Reset',
+ shrink: 'Put away',
+ expand: 'Expand',
+ confirmTitle: 'System Hint',
+ exportMessage: 'Whether to confirm export data item?',
+ importMessage: 'Whether to confirm import data item?',
+ createSuccess: 'Create Success',
+ updateSuccess: 'Update Success',
+ emailSentSuccess: 'Email sent successfully',
+ delMessage: 'Delete the selected data?',
+ delDataMessage: 'Delete the data?',
+ delNoData: 'Please select the data to delete',
+ delSuccess: 'Deleted successfully',
+ index: 'Index',
+ status: 'Status',
+ createTime: 'Create Time',
+ updateTime: 'Update Time',
+ copy: 'Copy',
+ copySuccess: 'Copy Success',
+ copyError: 'Copy Error',
+ closeSuccess: 'Close Success',
+ refusalSuccess: 'Refusal Success',
+ reAddSuccess: 'ReAdd Success',
+ submitSuccess: 'Submit Success',
+ agreeSuccess: 'Agree Success',
+ refusedSuccess: 'Refused Success',
+ handleSuccess: 'Handle Success',
+ publishSuccess: 'Publish Success',
+ acceptSuccess: 'Accept Success',
+ giveupSuccess: 'Giveup Success',
+ dealwithSuccess: 'Dealwith Success',
+ confirmColse: 'Confirm Close?',
+ confirmRefusal: 'Confirm Refusal?',
+ confirmReAdd: 'Confirm ReAdd?',
+ confirmAgree: 'Confirm Agree?',
+ confirmRefused: 'Confirm Refused?',
+ confirmHandle: 'Confirm Handle?',
+ confirmSubmit: 'Confirm Submit?',
+ confirmAccept: 'Confirm Accept',
+ confirmGiveup: 'Confirm Giveup',
+ confirmPublish: 'Confirm Publish',
+ },
+ error: {
+ noPermission: `Sorry, you don't have permission to access this page.`,
+ pageError: 'Sorry, the page you visited does not exist.',
+ networkError: 'Sorry, the server reported an error.',
+ returnToHome: 'Return to home'
+ },
+ permission: {
+ hasPermission: `Please set the operation permission label value`,
+ hasRole: `Please set the role permission tag value`
+ },
+ setting: {
+ projectSetting: 'Project setting',
+ theme: 'Theme',
+ layout: 'Layout',
+ systemTheme: 'System theme',
+ menuTheme: 'Menu theme',
+ interfaceDisplay: 'Interface display',
+ breadcrumb: 'Breadcrumb',
+ breadcrumbIcon: 'Breadcrumb icon',
+ collapseMenu: 'Collapse menu',
+ hamburgerIcon: 'Hamburger icon',
+ screenfullIcon: 'Screenfull icon',
+ sizeIcon: 'Size icon',
+ localeIcon: 'Locale icon',
+ messageIcon: 'Message icon',
+ tagsView: 'Tags view',
+ logo: 'Logo',
+ greyMode: 'Grey mode',
+ fixedHeader: 'Fixed header',
+ headerTheme: 'Header theme',
+ cutMenu: 'Cut Menu',
+ copy: 'Copy',
+ clearAndReset: 'Clear cache and reset',
+ copySuccess: 'Copy success',
+ copyFailed: 'Copy failed',
+ footer: 'Footer',
+ uniqueOpened: 'Unique opened',
+ tagsViewIcon: 'Tags view icon',
+ reExperienced: 'Please exit the login experience again',
+ fixedMenu: 'Fixed menu'
+ },
+ size: {
+ default: 'Default',
+ large: 'Large',
+ small: 'Small'
+ },
+ login: {
+ welcome: 'Welcome to the system',
+ message: 'Backstage management system',
+ tenantname: 'TenantName',
+ username: 'Username',
+ password: 'Password',
+ code: 'verification code',
+ login: 'Sign in',
+ relogin: 'Sign in again',
+ otherLogin: 'Sign in with',
+ register: 'Register',
+ checkPassword: 'Confirm password',
+ remember: 'Remember me',
+ hasUser: 'Existing account? Go to login',
+ forgetPassword: 'Forget password?',
+ tenantNamePlaceholder: 'Please Enter Tenant Name',
+ usernamePlaceholder: 'Please Enter Username',
+ passwordPlaceholder: 'Please Enter Password',
+ codePlaceholder: 'Please Enter Verification Code',
+ mobileTitle: 'Mobile sign in',
+ mobileNumber: 'Mobile Number',
+ mobileNumberPlaceholder: 'Plaease Enter Mobile Number',
+ backLogin: 'back',
+ getSmsCode: 'Get SMS Code',
+ btnMobile: 'Mobile sign in',
+ btnQRCode: 'QR code sign in',
+ qrcode: 'Scan the QR code to log in',
+ btnRegister: 'Sign up',
+ SmsSendMsg: 'code has been sent'
+ },
+ captcha: {
+ verification: 'Please complete security verification',
+ slide: 'Swipe right to complete verification',
+ point: 'Please click',
+ success: 'Verification succeeded',
+ fail: 'verification failed'
+ },
+ router: {
+ login: 'Login',
+ home: 'Home',
+ analysis: 'Analysis',
+ workplace: 'Workplace'
+ },
+ analysis: {
+ newUser: 'New user',
+ unreadInformation: 'Unread information',
+ transactionAmount: 'Transaction amount',
+ totalShopping: 'Total Shopping',
+ monthlySales: 'Monthly sales',
+ userAccessSource: 'User access source',
+ january: 'January',
+ february: 'February',
+ march: 'March',
+ april: 'April',
+ may: 'May',
+ june: 'June',
+ july: 'July',
+ august: 'August',
+ september: 'September',
+ october: 'October',
+ november: 'November',
+ december: 'December',
+ estimate: 'Estimate',
+ actual: 'Actual',
+ directAccess: 'Airect access',
+ mailMarketing: 'Mail marketing',
+ allianceAdvertising: 'Alliance advertising',
+ videoAdvertising: 'Video advertising',
+ searchEngines: 'Search engines',
+ weeklyUserActivity: 'Weekly user activity',
+ activeQuantity: 'Active quantity',
+ monday: 'Monday',
+ tuesday: 'Tuesday',
+ wednesday: 'Wednesday',
+ thursday: 'Thursday',
+ friday: 'Friday',
+ saturday: 'Saturday',
+ sunday: 'Sunday'
+ },
+ workplace: {
+ welcome: 'Hello',
+ happyDay: 'Wish you happy every day!',
+ toady: `It's sunny today`,
+ notice: 'Announcement',
+ project: 'Project',
+ access: 'Project access',
+ toDo: 'To do',
+ introduction: 'A serious introduction',
+ shortcutOperation: 'Quick entry',
+ operation: 'Operation',
+ index: 'Index',
+ personal: 'Personal',
+ team: 'Team',
+ quote: 'Quote',
+ contribution: 'Contribution',
+ hot: 'Hot',
+ yield: 'Yield',
+ dynamic: 'Dynamic',
+ push: 'push',
+ follow: 'Follow'
+ },
+ form: {
+ input: 'Input',
+ inputNumber: 'InputNumber',
+ default: 'Default',
+ icon: 'Icon',
+ mixed: 'Mixed',
+ textarea: 'Textarea',
+ slot: 'Slot',
+ position: 'Position',
+ autocomplete: 'Autocomplete',
+ select: 'Select',
+ selectGroup: 'Select Group',
+ selectV2: 'SelectV2',
+ cascader: 'Cascader',
+ switch: 'Switch',
+ rate: 'Rate',
+ colorPicker: 'Color Picker',
+ transfer: 'Transfer',
+ render: 'Render',
+ radio: 'Radio',
+ button: 'Button',
+ checkbox: 'Checkbox',
+ slider: 'Slider',
+ datePicker: 'Date Picker',
+ shortcuts: 'Shortcuts',
+ today: 'Today',
+ yesterday: 'Yesterday',
+ aWeekAgo: 'A week ago',
+ week: 'Week',
+ year: 'Year',
+ month: 'Month',
+ dates: 'Dates',
+ daterange: 'Date Range',
+ monthrange: 'Month Range',
+ dateTimePicker: 'DateTimePicker',
+ dateTimerange: 'Datetime Range',
+ timePicker: 'Time Picker',
+ timeSelect: 'Time Select',
+ inputPassword: 'input Password',
+ passwordStrength: 'Password Strength',
+ operate: 'operate',
+ change: 'Change',
+ restore: 'Restore',
+ disabled: 'Disabled',
+ disablement: 'Disablement',
+ delete: 'Delete',
+ add: 'Add',
+ setValue: 'Set value',
+ resetValue: 'Reset value',
+ set: 'Set',
+ subitem: 'Subitem',
+ formValidation: 'Form validation',
+ verifyReset: 'Verify reset',
+ remark: 'Remark'
+ },
+ watermark: {
+ watermark: 'Watermark'
+ },
+ table: {
+ table: 'Table',
+ index: 'Index',
+ title: 'Title',
+ author: 'Author',
+ createTime: 'Create time',
+ action: 'Action',
+ pagination: 'pagination',
+ reserveIndex: 'Reserve index',
+ restoreIndex: 'Restore index',
+ showSelections: 'Show selections',
+ hiddenSelections: 'Restore selections',
+ showExpandedRows: 'Show expanded rows',
+ hiddenExpandedRows: 'Hidden expanded rows',
+ header: 'Header'
+ },
+ action: {
+ create: 'Create',
+ add: 'Add',
+ del: 'Delete',
+ delete: 'Delete',
+ edit: 'Edit',
+ update: 'Update',
+ execute: 'Execute',
+ preview: 'Preview',
+ more: 'More',
+ sync: 'Sync',
+ save: 'Save',
+ detail: 'Detail',
+ export: 'Export',
+ import: 'Import',
+ generate: 'Generate',
+ logout: 'Login Out',
+ test: 'Test',
+ typeCreate: 'Dict Type Create',
+ typeUpdate: 'Dict Type Eidt',
+ dataCreate: 'Dict Data Create',
+ dataUpdate: 'Dict Data Eidt',
+ fileUpload: 'File Upload',
+ createLabel: 'create label',
+ viewDetail:'Detailed list',
+ updataRecode:'Updata recode',
+ applyDecision:'Apply Decision',
+ auditing:'Auditing',
+ },
+ dialog: {
+ dialog: 'Dialog',
+ open: 'Open',
+ close: 'Close'
+ },
+ sys: {
+ api: {
+ operationFailed: 'Operation failed',
+ errorTip: 'Error Tip',
+ errorMessage: 'The operation failed, the system is abnormal!',
+ timeoutMessage: 'Login timed out, please log in again!',
+ apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!',
+ apiRequestFailed: 'The interface request failed, please try again later!',
+ networkException: 'network anomaly',
+ networkExceptionMsg:
+ 'Please check if your network connection is normal! The network is abnormal',
+
+ errMsg401: 'The user does not have permission (token, user name, password error)!',
+ errMsg403: 'The user is authorized, but access is forbidden!',
+ errMsg404: 'Network request error, the resource was not found!',
+ errMsg405: 'Network request error, request method not allowed!',
+ errMsg408: 'Network request timed out!',
+ errMsg500: 'Server error, please contact the administrator!',
+ errMsg501: 'The network is not implemented!',
+ errMsg502: 'Network Error!',
+ errMsg503: 'The service is unavailable, the server is temporarily overloaded or maintained!',
+ errMsg504: 'Network timeout!',
+ errMsg505: 'The http version does not support the request!',
+ errMsg901: 'Demo mode, no write operations are possible!'
+ },
+ app: {
+ logoutTip: 'Reminder',
+ logoutMessage: 'Confirm to exit the system?',
+ menuLoading: 'Menu loading...'
+ },
+ exception: {
+ backLogin: 'Back Login',
+ backHome: 'Back Home',
+ subTitle403: "Sorry, you don't have access to this page.",
+ subTitle404: 'Sorry, the page you visited does not exist.',
+ subTitle500: 'Sorry, the server is reporting an error.',
+ noDataTitle: 'No data on the current page.',
+ networkErrorTitle: 'Network Error',
+ networkErrorSubTitle:
+ 'Sorry, Your network connection has been disconnected, please check your network!'
+ },
+ lock: {
+ unlock: 'Click to unlock',
+ alert: 'Lock screen password error',
+ backToLogin: 'Back to login',
+ entry: 'Enter the system',
+ placeholder: 'Please enter the lock screen password or user password'
+ },
+ login: {
+ backSignIn: 'Back sign in',
+ mobileSignInFormTitle: 'Mobile sign in',
+ qrSignInFormTitle: 'Qr code sign in',
+ signInFormTitle: 'Sign in',
+ signUpFormTitle: 'Sign up',
+ forgetFormTitle: 'Reset password',
+
+ signInTitle: 'Backstage management system',
+ signInDesc: 'Enter your personal details and get started!',
+ policy: 'I agree to the xxx Privacy Policy',
+ scanSign: `scanning the code to complete the login`,
+
+ loginButton: 'Sign in',
+ registerButton: 'Sign up',
+ rememberMe: 'Remember me',
+ forgetPassword: 'Forget Password?',
+ otherSignIn: 'Sign in with',
+
+ // notify
+ loginSuccessTitle: 'Login successful',
+ loginSuccessDesc: 'Welcome back',
+
+ // placeholder
+ accountPlaceholder: 'Please input username',
+ passwordPlaceholder: 'Please input password',
+ smsPlaceholder: 'Please input sms code',
+ mobilePlaceholder: 'Please input mobile',
+ policyPlaceholder: 'Register after checking',
+ diffPwd: 'The two passwords are inconsistent',
+
+ userName: 'Username',
+ password: 'Password',
+ confirmPassword: 'Confirm Password',
+ email: 'Email',
+ smsCode: 'SMS code',
+ mobile: 'Mobile'
+ }
+ },
+ profile: {
+ user: {
+ title: 'Personal Information',
+ username: 'User Name',
+ nickname: 'Nick Name',
+ mobile: 'Phone Number',
+ email: 'User Mail',
+ dept: 'Department',
+ posts: 'Position',
+ roles: 'Own Role',
+ sex: 'Sex',
+ man: 'Man',
+ woman: 'Woman',
+ createTime: 'Created Date'
+ },
+ info: {
+ title: 'Basic Information',
+ basicInfo: 'Basic Information',
+ resetPwd: 'Reset Password',
+ userSocial: 'Social Information'
+ },
+ rules: {
+ nickname: 'Please Enter User Nickname',
+ mail: 'Please Input The Email Address',
+ truemail: 'Please Input The Correct Email Address',
+ phone: 'Please Enter The Phone Number',
+ truephone: 'Please Enter The Correct Phone Number'
+ },
+ password: {
+ oldPassword: 'Old PassWord',
+ newPassword: 'New Password',
+ confirmPassword: 'Confirm Password',
+ oldPwdMsg: 'Please Enter Old Password',
+ newPwdMsg: 'Please Enter New Password',
+ cfPwdMsg: 'Please Enter Confirm Password',
+ diffPwd: 'The Passwords Entered Twice No Match'
+ }
+ },
+ cropper: {
+ selectImage: 'Select Image',
+ uploadSuccess: 'Uploaded success!',
+ modalTitle: 'Avatar upload',
+ okText: 'Confirm and upload',
+ btn_reset: 'Reset',
+ btn_rotate_left: 'Counterclockwise rotation',
+ btn_rotate_right: 'Clockwise rotation',
+ btn_scale_x: 'Flip horizontal',
+ btn_scale_y: 'Flip vertical',
+ btn_zoom_in: 'Zoom in',
+ btn_zoom_out: 'Zoom out',
+ preview: 'Preivew'
+ },
+ home:{
+ number_orders: 'Number of orders',
+ number_planned_shipments: 'Number of planned shipments',
+ number_invoices: 'Number of invoices',
+ invoice_trend_month: 'Invoice trend for this month',
+ TOP10_parts_shipped_month: 'TOP10 parts shipped this month',
+ number_open: 'Nmuber of open',
+ number_open_plans: 'Number of Open Plans',
+ number_unreceived_orders: 'Number of Unreceived Orders',
+ number_total_order: 'Total Order Number',
+ number_all_plans: 'Number of All Plans',
+ number_orders_received: 'Number of Orders Received',
+ single: 'Single',
+ latest_news:'Latest News',
+ number:'Number',
+ user_type:'User Type',
+ user_number:'User Number',
+ template_coding:'Template Coding',
+ sender_number:'Sender Number',
+ template_content:'Template Content',
+ template_parameters:'Template Parameters',
+ template_type:'Template Type',
+ read:'Read',
+ read_time:'Read Time',
+ create_time:'Create Time',
+ latest_deduction_details: 'Latest Deduction Details',
+ title: 'Title',
+ publisher: 'Publisher',
+ publish_date: 'Publish Date',
+ month_return_detials:'This month\'s return detials',
+ document_number:'Document number',
+ source_package_number:'Source Package Number',
+ destination_package_number:'Destination Package Number',
+ source_appliance_number:'Source Appliance Number',
+ destination_appliance_number:'Destination Appliance Number',
+ source_batch:'Source Batch',
+ destination_batch:'Destination Batch',
+ replace_batch:'Replace batch',
+ source_location_code:'Source Location Code',
+ destination_location_code:'Destination Location Code',
+ source_location_group_code:'Source Location Group Code',
+ destination_location_group_code:'Destination Location Group Code',
+ source_location_area_code:'Source Location Area Code',
+ destination_location_area_code:'Destination Location Area Code',
+ source_shipper_code:'Source Shipper Code',
+ destination_shipper_code:'Destination Shipper Code',
+ inventory_state:'Inventory State',
+ order_number:'Order Number',
+ order_line:'Order Line',
+ cause:'Cause',
+ unit_price:'Unit Price',
+ money:'Money',
+ material_code:'Material Code',
+ material_name:'Material Name',
+ material_description1:'Material Description1',
+ material_description2:'Material Description2',
+ amount:'Amount',
+ measuring_unit:'Measuring Unit',
+ item_cde:'Item Code',
+ comment:'Comment',
+ creater:'Creater',
+ claim_details_month:'Claim Details for This Month',
+ batch:'Batch',
+ today_arrival_plan_shipped:'Today\'s arrival plan(Shipped)',
+ material_preparation_plan_today_issued: 'Material preparation plan today(Issued)',
+ call_material_today_issued : 'Call for material today(Issued)',
+ pcs:'pcs',
+ free_library_bits_or_total_library_bits:'Free library bits/Total library bits',
+ slack_stock_warning:'Slack stock warning',
+ package_number:'Package Number',
+ appliance_code:'Appliance Code',
+ location_code:'Location Code',
+ warehouse_code:'Warehouse Code',
+ location_group_code:'Location Group Code',
+ location_area_code:'Location Area Code',
+ erp_location_code:'ERP Location Code',
+ arrival_date:'Arrival Date',
+ production_date:'Production Date',
+ expiry_date:'Expiry Date',
+ shipper_code:'Shipper Code',
+ lock_quantity:'Lock Quantity',
+ available_quantity:'Available Quantity',
+ warehouse_entry_time:'Warehouse Entry Time',
+ overstock_warning:'Overstock warning',
+ high_and_low_storage_warning:'High and low storage warning',
+ waiting_tasks:'Waiting Tasks',
+ purchase_return_tasks:'Purchase Return Tasks',
+ product_putway_tasks:'Product Putway Tasks',
+ purchase_and_receive_tasks:'Purchase and Receive Tasks',
+ production_receipt_tasks:'Production Receipt Tasks',
+ production_return_tasks:'Production Return Tasks',
+ supplement_materials_tasks:'Supplement Materials Tasks',
+ product_receiving_tasks:'Product Receiving Tasks',
+ send_materials_tasks:'Send Materials Tasks',
+ today_production_plan:'Today\'s production plan',
+ sequence:'Sequence',
+ workshop:'Workshop',
+ prouduction_line:'Prouduction Line',
+ schedule:'Schedule',
+ teams_and_groups:'Teams and Groups',
+ intended_date:'Intended Date',
+ start_date:'Start Date',
+ ending_date:'Ending Date',
+ business_type:'Business Type',
+ line_side_safety_stock:'Line side safety stock',
+ type:'Type',
+ laneway:'Laneway',
+ goods_shelf:'Goods Shelf',
+ line:'Line',
+ column:'Column',
+ stock_priority:'Stock Priority',
+ maximum_load_bearing:'Maximum Load Bearing',
+ maximum_area:'Maximum Area',
+ maximum_volume:'Maximum Volume',
+ user_group_code:'User Group Code',
+ inventory_of_finished_products_waiting_to_be_putway:'Inventory of finished products waiting to be putway',
+ source_warehouse_code:'Source Warehouse Code',
+ apply_time:'Apply Time',
+ request_cut_off_time:'Request cut-off Time',
+ state:'State',
+ department:'Department',
+ undertaker_user_name:'Undertaker User Name',
+ undertake_time:'Undertake Time',
+ source_location_type_range:'Source Location Type Range',
+ destination_location_type_range:'Destination Location Type Range',
+ destination_warehouse_code:'Destination Warehouse Code',
+ source_location_area_code_range:'Source Location Area Code Range',
+ destination_location_area_code_range:'Destination Location Area Code Range',
+ auto_ccomplete:'Auto-complete',
+ modifiable_location:'Modifiable Location',
+ modifiable_amount:'Modifiable Amount',
+ allow_greater_than_recommended:'Allow greater than recommended',
+ allow_less_than_recommended:'Allow less than recommended',
+ allow_modify_location_state:'Allow modify Location state',
+ allow_continuous_scanning:'Allow continuous scanning',
+ allow_partly_completed:'Allow partly completed',
+ modifiable_batch:'Modifiable Batch',
+ modifiable_casecode:'Modifiable Casecode',
+ expiration_time: 'Expiration Time',
+ effective_time:'Effective Time',
+ code:'Code',
+ name:'Name',
+ },
+
+
+
+
+
+ ts: {
+ 代码:'Code',
+ 全部:'All',
+ 标准:'Standard',
+ 委外:'Out-source',
+ 其它:'Others',
+ 其他:'Others',
+ 是否可用:'Available',
+ 类型:'Type',
+ 名称:'Name',
+ 是:'Yes',
+ 否:'No',
+ 供应商代码:'Supplier Code',
+ 物料代码:'Material Code',
+ 单据号:'Document Number',
+ 订单类型:'Order Type',
+ 状态:'State',
+ 采购订单号:'Purchase order number',
+ 日程:'Schedule',
+ 离散:'Disperse',
+ 准备:'Get ready',
+ 发布:'Punblish',
+ 关闭:'Close',
+ 已完成:'Finished',
+ 发货单号:'Shipment tracking number',
+ 从批次:'Source Batch',
+ 到批次:'Destination Batch',
+ 从包装号:'Source Package Number',
+ 到包装号:'Destination Package Number',
+ 从器具号:'Source Appliance Number',
+ 到器具号:'Destination Appliance Number',
+ 简称: 'Abbreviation',
+ 地址:'Address',
+ 国家:'Country',
+ 城市:'City',
+ 电话:'Phone',
+ 传真:'Fax',
+ 邮编:'Postcode',
+ 联系人:'Contact',
+ 联系人邮件:'Contact Email',
+ 银行:'Bank',
+ 币种:'Currency Kind',
+ 税率:'Tax Rate',
+ '税率(%)':'Tax Rate(%)',
+ 生效时间:'Effective Time',
+ 失效时间:'Expiration Time',
+ 供应商物料代码:'Supplier material code',
+ 供应商计量单位:'Supplier measuring unit',
+ 转换率:'Conversion Rate',
+ 默认收货库位:'Default receiving warehouse location',
+ 创建人:'Creater',
+ 创建者:'Creater',
+ 创建时间:'Create Time',
+ 备注:'Comment',
+ 货币:'Currency',
+ 价格:'Price',
+ 订单日期:'Order Date',
+ 行号:'Line Number',
+ 操作:'Operation',
+ 计量单位:'Measuring Unit',
+ 人民币:'RMB',
+ 美元:'Dollar',
+ 版本号:'Version Number',
+ 发布时间:'Publish Time',
+ 开始时间:'Start Time',
+ 结束时间:'Finish Time',
+ 业务类型:'Business Type',
+ 预测时间类型:'Forecast time type',
+ 预测日期:'Forecast Date',
+ 订单行:'Order Line',
+ 计划数量:'Planned Quantity',
+ 计划数量必须大于0:'The number of plans must be greater than 0',
+ 最后更新时间:'Last update time',
+ 最后更新者:'Last Updater',
+ 要货计划:'Demand plan',
+ 申请单号:'Application Number',
+ 从仓库代码:'Code from the repository',
+ 到仓库代码:'Destination Warehouse Code',
+ 到月台代码:'Destination dock code',
+ 时间窗口:'Time window',
+ 计划到货时间:'Scheduled arrival time',
+ 承运商:'Carriers',
+ 运输方式:'Shipping method',
+ 车牌号:'License plate number',
+ 出库事务类型:'The type of outbound transaction',
+ 入库事务类型:'Inbound transaction type',
+ 执行时间:'Execution time',
+ 申请时间:'Application Time',
+ 截止时间:'Deadline',
+ 部门:'department',
+ 接口类型:'Interface type',
+ 包装号:'Package Number',
+ 订单号:'Order Number',
+ 订单数量:'Order quantity',
+ 数量:'Quantity',
+ 包装数量:'Packing quantity',
+ 供应商计量数量:'The quantity measured by the supplier',
+ 供应商:'Supplier',
+ 从库位代码:'Source Location Area Code',
+ 到库位代码:'Destination Location Area Code',
+ 从库位组代码:'From the bin location group code',
+ 到库位组代码:'to the bin location group code',
+ 从库区代码:'Code from the depot',
+ 到库区代码:'to the depot code',
+ 从货主代码:'Code from the shipper',
+ 到货主代码:'Shipper code',
+ 查看其他包装规格:'See other packaging formats',
+ 查看子包装:'See sub packaging formats',
+ 包装规格:'Packing specifications',
+ 单据打印:'Document printing',
+ 明细列表:'Itemized list',
+ 暂无数据:'No Data',
+ 供应商发货申请:'supplier Shipping Request',
+ 查询字段:'Query Field',
+ 供应商批次:'Supplier Batch',
+ 生产日期:'Production Date',
+ 发货数量:'Number of shipments',
+ 主数据:'Primary data',
+ 要货计划单号:'Cargo Plan Bill Number',
+ 联系人姓名:'Contact name',
+ 联系人电话:'Contact phone',
+ 联系人电子邮件:'Contact email',
+ 供应商发货仓库代码:'Supplier shipments Repository code',
+ 运输方式车牌号:'Shipping method License plate number',
+ 自动提交:'Auto-submit',
+ 自动通过:'Auto-execute',
+ 自动执行:'Automated',
+ 直接生成记录:'Generate records directly',
+ 明细:'Details',
+ 批次:'Batch',
+ 到货日期:'Arrival date',
+ 过期日期:'Expiration date',
+ 物料名称:'Material Name',
+ 物料描述1:'Material Description1',
+ 物料描述2:'Material Description2',
+ 项目代码:'Item Code',
+ 质检明细:'Quality inspection details',
+ 履历表明细:'Details of your resume',
+ 添加附件:'Add Attachment',
+ 变更记录:'Change Record',
+ 添加明细:'Add Detail',
+ 上传质量报告:'Upload quality report',
+ 上传履历表:'Upload your resume',
+ 上传质检报告:'Upload the quality inspection report',
+ 个:'piece',
+ 张:'sheet',
+ 克:'g',
+ 公斤:'kg',
+ 吨:'t',
+ 米:'m',
+ 平方米:'㎡',
+ 生成标签:'Generate label',
+ 重新生成标签:'Regenerate label',
+ 创建标签:'Create label',
+ 包装规格1:'Packing Specification1',
+ 包装规格2:'Package Specification2',
+ 包装数量1:'Package Quantity1',
+ 包装数量2:'Package Quantity2',
+ 物品包装信息:'Item packaging information',
+ 系统提示:'System Prompt',
+ 是否为此数据生成标签:'Do you generate labels for this data?',
+ 是否修改物料包装标包数量:'Do you want to modify the quantity of material packaging?',
+ 包装规格1和包装规格2不能相同:'Package specification 1 and package specification 2 must be different',
+ 是否处理所选中数据:'Do you process the selected data?',
+ 发货:'shipments',
+ 标签信息:'Label information',
+ 采购收货记录:'Purchase receipt record',
+ 表单数据:'Form Data',
+ 任务单号:'Task order number',
+ ERP单据号:'ERP document number',
+ 检验申请单号:'Inspection requisition number',
+ 数据来源:'Data Source',
+ 从库区类型范围:'Source Location Type Range',
+ 到库区类型范围:'Destination Location Type Range',
+ 从库区代码范围:'Source Location Area Code Range',
+ 到库区代码范围:'Destination Location Area Code Range',
+ 生效日期:'Effective Date',
+ 收货明细:'Receipt Detail',
+ 缺货明细:'Stockout Detail',
+ 行类型:'Row Type',
+ 收货数量:'Quantity Received',
+ 库存状态:'Inventory Status',
+ 从库位组:'Source Location Group',
+ 到库位组:'Destination Location Group',
+ 从库区:'Source Location Area',
+ 到库区:'Destination Location Area',
+ 从货主:'Source Shipper',
+ 到货主:'Destination Shipper',
+ 采购退货记录:'Purchase return records',
+ 采购收货记录单号:'Purchase receipt record number',
+ qad采购退货记录单号:'QAD purchase return record number',
+ 从月台代码:'From the dock code',
+ 原因:'Cause',
+ 退货数量:'Number of returns',
+ 单位:'unit',
+ 金额:'Amount',
+ 客户代码:'Customer Code',
+ 供应商发票申请:'Supplier invoice request',
+ 供应商名称:'Supplier Name',
+ 税额:'Tax',
+ 税后金额:'After-tax Amount',
+ 调整价差:'Discount Amount',
+ 调整税额:'Adjusted Tax',
+ 总差额:'Under Coverage',
+ 金税票号:'Gold tax ticket number',
+ 发票日期:'Invoice Date',
+ 过账日期:'Posting Date',
+ 财务审批人:'Financial Approver',
+ 单据类型:'Document Type',
+ 合同价格:'Contract Price',
+ 采购价格:'Orocurement Price',
+ 未税差额:'Untaxed Difference',
+ 含税差额:'Difference including tax',
+ 可开票数量:'Number of tickets available',
+ 可开票数量不能为0:'The amount invogeable cannot be 0',
+ 采购审批人:'Procurement Approver',
+ 采购审批时间:'Purchase approval time',
+ 财务审批时间:'Financial approval time',
+ 供应商发票记录:'Supplier invoice record',
+ 发票号:'Invoice Number',
+ 价税合计:'Total price with tax',
+ 价差:'Margin',
+ 索赔金额:'Claim Amount',
+ 发票时间:'Invoice Time',
+ 差额:'Difference',
+ 收货日期:'Date of taking the delivery',
+ 开票数量:'Invoice Quantity',
+ 财务审批用户名:'Financial approval user name',
+ 物流审核:'Logistics Audit',
+ 供应商送货日期:'Supplier delivery date',
+ 物流收货日期:'Supplier receiving date',
+ 物流单据号:'Logistics document number',
+ 零件号:'Part Number',
+ 供应商用户关联管理:'Supplier user association management',
+ 用户ID:'User ID',
+ 用户账号:'User Account',
+ 用户昵称:'User Nickname',
+ 订单:'Order',
+ 计划:'Plan',
+ 申请:'Request',
+ 任务:'Job',
+ 记录:'Record',
+ 编号:'Number',
+ 库位代码:'Location Code',
+ 库位组代码:'Location Group Code',
+ 库区代码:'Location Area Code',
+ 查询:'Query',
+ 重置:'Reset',
+ 新增:'Add',
+ 导入:'Import',
+ 导出:'Export',
+ 刷新:'Refresh',
+ 筛选:'Filter',
+ 选择当页:'As Page',
+ 反选当页:'Unselect Page',
+ 取消全选:'Deselect All',
+ 设置:'Settings',
+ 确定:'Confirm',
+ '确 定':'Confirm',
+ 取消:'Cancel',
+ '取 消':'Cancel',
+ 编辑:'Edit',
+ 删除:'Delete',
+ 添加筛选条件:'Add Filter',
+ 前往:'Go to',
+ 页:'Page',
+ 共:'Total',
+ 打开:'Open',
+ 保存:'Save',
+ 下一步:'Next',
+ 请选择筛选对象:'Please select filter',
+ 请输入内容:'Please inputr content',
+ 附件:'Attachment',
+ '更新:新增并修改':'Update:Add and modify',
+ '追加:只新增,不修改':'Add:Add,no modify',
+ '覆盖:只修改不新增':'Cover:Modify,not add',
+ 下载模板:'Download Template',
+ 更新:'Update',
+ 追加:'Add',
+ 覆盖:'Cover',
+ 部分保存:'Save Partial',
+ '部分保存:如存在错误数据,正确数据正常导入':'Save Partial :If incorrect data exists, correct data can be imported',
+ '全部保存:全部数据正确,才能导入':'Save All:Import only when all data is correct',
+ '将文件拖到此处,或点击上传':'Drag the file here, or click Upload',
+ '将文件拖到此处,或':'Drag the file here, or',
+ '点击上传':' click Upload',
+ '是否确认导出数据项?':'Are you sure to export data items?',
+ '请选择一条数据!':'Please select a piece of data!',
+ 等于:'Equal to',
+ 不等于:'Not Equal to',
+ 大于:'Greater than',
+ 小于:'Less than',
+ 大于等于:'Greater than or equal to',
+ 小于等于:'Less than or equal to',
+ 模糊:'obscure',
+ 包含:'contain',
+ 不包含:'Not included',
+ 是空:'is empty',
+ 不是空:'not empty',
+ 是空字符串:'is an empty string',
+ 不是空字符串:'Not an empty string',
+ 搜索:'Search',
+ 开始日期:'Start Date',
+ 结束日期:'Ending Date',
+ 序号:'Serial Number',
+ 版本:'Version',
+ 地点:'Place',
+ '影响明细中物料代码,需在供应商物料中维护':'The material code in the details is affected , must be maintained in the supplier\'s material',
+ 是否外部资源:'External resource or not',
+ 注意事项:'Announcements',
+ 导入模式:'Import Mode',
+ 请选择内容:'Please select content',
+ 请选择条件:'Please select condition',
+ 区间:'Interval',
+ '您确定删除吗, 是否继续?':'Are you sure about deleting it? Do you want to continue?',
+ '必须保留一条筛选条件!':'One filter must be preserved!',
+ '请填写供应商代码!':'Please fill in the supplier code!',
+ 供应商信息:'Supplier Integration',
+ 物料基础信息:'Material basic information',
+ 库位信息:'Location Information',
+ 采购订单信息:'Purchase order information',
+ 供应商物料信息:'Supplier material information',
+ 要货计划信息:'Demand plan information',
+ 用户信息:'User Information',
+ 请选择供应商:'Please select a supplier',
+ 请选择供应商代码:'Please select a vendor code',
+ 请选择物料代码:'Please select material code',
+ 请输入供应商物料代码:'Please input the supplier material code',
+ 请选择库位代码:'Please input the location code',
+ ERP库位:'ERP Location Code',
+ 单价:'Unit Price',
+ '是否发布所选中数据?':'Do you publish the selected data?',
+ '是否关闭所选中数据?':'Do you want to close the selected data?',
+ '是否作废所选中数据?':'Do you want to void the selected data?',
+ '是否完成所选中数据?':'Do you want to finish the selected data?',
+ '发布成功!':'Release Successfully!',
+ '是否下架所选中数据?':'Do you want to remove selected data?',
+ '下架成功!':'Removed Successfully!',
+ '采购订单主':'Purchase order master data',
+ '采购订单主导入模版':'The purchase order leads into the template',
+ '是否打开所选中数据?':'Open the selected data?',
+ '打开成功!':'Open Successfully!',
+ '关闭成功!':'Closed Successfully',
+ '作废成功!':'Invalid successfully',
+ '完成成功!':'Finish successfully',
+ '失效时间要大于生效时间':'The expiration time must be longer than the effective time',
+ '供应商导入模版':'Supplier import template',
+ '供应商物料':'Supplier Material',
+ '供应商物料导入模版':'Supplier material import template',
+ '采购价格单':'Purchase price sheet',
+ '采购价格单导入模版':'Purchase price list import template',
+ 已计划数量:'Planned Quantity',
+ 已发货数量:'Shipped Quantity',
+ 已收货数量:'Received Quantity',
+ 已退货数量:'Returned Quantity',
+ 已上架数量:'Stocked Quantity',
+ 启用:'Start Using',
+ 禁用:'Disable',
+ 中止:'Terminate',
+ 领取:'Get',
+ 完成:'Accomplish',
+ 绑定:'Binding',
+ 重新添加:'Readd',
+ 下架:'Sold Out',
+ 修改:'Amend',
+ 不接受:'Reject',
+ 接受:'Accept',
+ 承接:'Undertake',
+ 放弃:'Abandon',
+ 收货:'Receiving',
+ 包装:'Packaging',
+ 打印标签:'print Label',
+ 批量打印:'Bulk Print',
+ 生成采购收货申请:'Generate purchase receipt request',
+ 发送到货检验申请:'Send the arrival inspection request',
+ 生成采购上架申请:'Generate a purchase listing request',
+ 生成采购退货记录:'Generate purchase return records',
+ 生成制品上架申请:'Generate a purchase listing request',
+ 生成盘点调整申请:'Generate inventory adjustment request',
+ 重盘:'New Inventory',
+ 解冻:'Unfreeze',
+ 更新检验记录:'Update inspection record',
+ 使用决策:'Usage Decision',
+ '是否接受所选中数据?':'Do you accept the selected data?',
+ '接受成功!':'Accept Successfully!',
+ '是否驳回所选中数据?':'Do you reject the selected data?',
+ '是否撤回所选中数据?':'Do you revoke the selected data?',
+ '是否提交审核?':'Do you audit the selected data?',
+ '驳回成功!':'Reject Succussfully!',
+ '要货计划主':'Ask for master data of cargo plan',
+ '要货计划数量不得大于订单数量-已计划数量':'The planned quantity of the requested goods shall not be greater than the order quantity - the planned quantity',
+ '子列表数量不能空':'The number of sublists cannot be empty',
+ '要货计划主导入模版':'The request plan leads into the template',
+ 已经存在:'already exists',
+ 驳回:'Refusal',
+ 审批通过:'Approve',
+ 要货预测主:'Demand forecast master data',
+ 要货预测主导入模版:'Demand forecast master data leads into the template',
+ 创建供应商发货申请:'Create a supplier shipping request',
+ '是否重新打开所选中数据?':'Do you want to reopen the selected data?',
+ '请先上传自检报告!':'Please upload the self-test report first!',
+ '提交审批成功!':'Submitted for approval!',
+ '是否提交审批所选中数据?':'Do you want to submit the selected data for approval?',
+ '是否审批通过所选中数据?':'Is the selected data approved?',
+ '审批通过成功!':'Approval is successful!',
+ '是否处理所选中数据?':'Do you process the selected data?',
+ '处理成功!':'Processing success!',
+ 供应商发货申请主:'Supplier delivery request master data',
+ '是否为此数据生成标签?':'Are labels generated for this data?',
+ 创建标签成功:'Label created successfully',
+ 请先选择要打印的数据:'Please first select the data you want to print',
+ 创建标签失败:'Failed to create label',
+ 生产日期不可以大于过期日期:'The production date cannot be longer than the expiration date',
+ '计划到货时间大于':'The planned arrival time is greater than ',
+ '是否继续?':'. Do you want to continue?',
+ '子表明细不能为空!':'Subindicates that the detail cannot be empty!',
+ 采购申请生成成功:'The purchase request was successfully generated',
+ '确认生成采购申请吗?':'Confirm to generate purchase application?',
+ 供应商发货记录主:'Supplier shipment record master data',
+ '确认生成上架申请吗?':'Are you sure to generate a listing application?',
+ 上架申请生成成功:'The listing application was successfully generated',
+ '确认生成到货检验申请吗?':'Is the arrival inspection application confirmed to be generated?',
+ '确认生成采购退货记录吗?':'Are you sure to generate a purchase return record?',
+ 到货检验申请生成成功:'The arrival inspection application was successfully generated',
+ 采购退货记录生成成功:'Purchase return record generated successfully',
+ 采购收货记录主:'Purchase receipt record master data',
+ 采购退货记录主:'Purchase return record master data',
+ 合同附件:'Appendix to the contract',
+ 发票附件:'Invoice Attachment',
+ 货运单附件:'Attachment to the waybill',
+ 其他附件:'Other Attachment',
+ 打印明细:'Print Detail',
+ 打印全部发货单:'Print all invoices',
+ 导出明细:'Export Details',
+ 打印:'Print',
+ 采购通过:'Purchase Approval',
+ 采购驳回:'Purchase Rejection',
+ 供应商确认:'Supplier Confirmation',
+ 财务通过:'Financial Approval',
+ 财务驳回:'Financial Rejection',
+ '是否确认发票寄出选中数据?':'Do you confirm that the invoice is sent out with selected data?',
+ '发票寄出成功!':'Invoice sent successfully!',
+ 供应商发票申请主:'Supplier invoice request master data',
+ 请添明细数据:'Please provide detailed data',
+ 非SCP订单无法打印:'Non SCP orders cannot be printed',
+ '明细数据条数已超过最大数量限制【20000条】':'The number of detailed data items has exceeded the maximum limit [20000 items]',
+ 供应商发货申请主导入模版:'Supplier delivery request is led into the template',
+ 供应商发票申请主导入模板:'Supplier invoice request lead into template',
+ 供应商发票申请明细:'Supplier invoice request details',
+ 供应商发票记录主:'Supplier invoice record master data',
+ '审核通过!':'Pass the audit',
+ '撤回成功!':'Recall successful',
+ 作废:'Cancellation',
+ '是否审批拒绝所选中数据?':'Do you want to approve and reject selected data?',
+ '审批成功!':'Approval is successful!',
+ 待开票:'To be invoiced',
+ 待开票导入模版:'Import template to be invoiced',
+ 采购订单:'purchase order',
+ 要货预测:'Demand forecast',
+ 供应商发货记录:'Supplier shipment record',
+ 供应商发票:'Supplier invoice',
+ 基础数据:'basic data',
+ router: {
+ login: 'Login',
+ home: 'Home',
+ analysis: 'Analysis',
+ workplace: 'Workplace'
+ },
+ '重置后,字段设置将恢复初始设置,是否继续?':'After reset, the field Settings will be restored to the initial Settings. Do you want to continue?',
+ 提示:'Tip',
+ 凭证号:'voucher number',
+ 采购价格审批人:'Purchasing price approver',
+ 供应商发货单号:'Supplier\'s invoice number',
+ 加载中:'loading',
+ '正在上传文件,请稍候':'Please wait while uploading files',
+ 上传成功:'upload successful',
+ 上传文件数量不能超过:'The number of uploaded files cannot exceed',
+ '导入数据失败,请您重新上传':'Failed to import data, please upload again!',
+ 上传文件大小不能超过:'The size of the uploaded file cannot exceed',
+ '文件格式不正确, 请上传':'The file format is incorrect. Please upload it in',
+ 格式:'format',
+ 收货人:'consignee',
+ 联系电话:'phone',
+ 送达日期:'delivery date',
+ 月台代码:'Platform code',
+ 截止日期:'Deadline',
+ 仓库代码:'Warehouse code',
+ 'ERP单据号(无用)':'ERP document number (useless)',
+ 供应商审批人:'Supplier approver',
+ 供应商审批时间:'Supplier approval time',
+ 快递单号:'courier number',
+ 开票日历管理:'Invoicing calendar management',
+ 描述:'description',
+ 批量删除:'Batch delete',
+ 查看质检报告:'Check the quality inspection report',
+ 长春:'ChangChun',
+ 成都:'ChengDu',
+ 富维海拉智慧工厂管理平台:'FAWAY HELLA Smart Factory Management Platform',
+ 采购未收货记录:'Purchase unreceived record',
+ 请选择要货计划单号:'Please select the desired shipment tracking number',
+ 大小不超过:'Not more in size',
+ 格式为:'File in',
+ 的文件:'format',
+ 接收:'Receive',
+ 请输入批次:'Please input batch',
+ 请输入供应商批次:'Please input the supplier batch',
+ 选择日期:'Option Date',
+ 请输入备注:'Please input comment',
+ 请输入包装规格1:'Please input package specification1',
+ 请输入包装数量1:'Please input package quantity1',
+ 请输入包装规格2:'Please input package specification2',
+ 请输入包装数量2:'Please input package quantity2',
+ 提交审批:'submit for approval',
+ // 系统管理:'system management',
+ // 基础设施:'infrastructure',
+ // 报表管理:'report manager',
+ // 报表:'statement',
+ // 富维海拉供应商管理系统:'vendor management system',
+ 请输入用户名:'Please enter your username',
+ 请输入邮箱:'Please enter email',
+ 忘记密码:'Forget Password',
+ 用户名:'User Name',
+ 邮箱:'Mail',
+ 今日:'Today',
+ 请输入驳回原因:'Please enter the reason for rejection',
+ '驳回原因不能为空,且不超过60字':'The reason for rejection cannot be empty and cannot exceed 60 words',
+ 批量发布:'Batch release',
+ '重新生成标签会删除上次生成的标签,是否确认继续?':'Regenerating labels will delete the last generated label. Are you sure you want to continue?',
+ '确 认':'Confirm',
+ 请输入拒收原因:'Please enter the reason for rejection',
+ 查看明细:'View details',
+ 未读:'unread',
+ 已读:'read',
+ 全部已读:'All read',
+ '申请发货数量不能大于 计划数量 - 已发货数量':'The requested quantity cannot be greater than the planned quantity - the quantity shipped',
+ 不允许超发:'Oversend is not allowed',
+ 总数量超出计划数量:'The total quantity exceeds the planned quantity',
+ 导出二维表:'Exporting two-dimensional tables',
+ 要货计划明细:'Detailed requisition plan',
+ 要货计划二维表:'Two dimensional requisition schedule',
+ '要货预测-计划员':'Demand forecast-Planner',
+ '要货预测-供应商':'Demand forecast-Supplier',
+ 全选:'All',
+ 计划员:'Planner',
+ 最小值:'Min',
+ 最大值:'Max',
+ 富维海拉供应商系统:'FAWAY HELLA Supplier System',
+ 系统管理:'System Management',
+ 基础设施:'Infrastructure Construction',
+ 报表管理:'Report Management',
+ 报表:'Report',
+ 物料包装信息:'Material packaging information',
+ 仓库管理:'store management',
+ 库区管理:'reservoir region management',
+ 库位组管理:'Warehouse location group management',
+ 库位管理:'Warehouse location management',
+ 月台管理:'Platform management',
+ 采购计划策略:'Procurement Planning Strategy',
+ 要货预测周期管理:'Demand forecasting cycle management',
+ 价差数据查看:'Spread data view',
+ 待开票数据查询:'Invoicing data query',
+ 待开票单据号:'Document number to be invoiced',
+ 未审核:'unreviewed',
+ 通过:'pass',
+ 已开票:'Invoiced out',
+ 采购审批中:'Under procurement approval',
+ 采购审批通过:'Approval of procurement',
+ 发票寄出:'Send invoice',
+ 采购审批驳回:'Rejection of procurement approval',
+ 财务审批驳回:'Rejection of financial approval',
+ 货运单号:'number of a cargo waybill',
+ 差价范围:'Range of price difference',
+ 供应商创建时间:'Vendor creation time',
+ 未税金额:'Amount not taxed',
+ 价税合计金额:'Total amount of value and tax',
+ 是否有价差:'Is there a price difference',
+ 税额差异:'tax difference',
+ 价税合计差额:'Total difference between price and tax',
+ 系统税额:'System tax amount',
+ 系统价税合计:'Total system price and tax',
+ 系统未税金额:'System untaxed amount',
+ 开票日期:'invoice date',
+ 采购驳回原因:'Reasons for rejection of procurement',
+ 财务驳回原因:'Reasons for financial Rejection',
+ 包装名称:'Name of package',
+ 包装类型:'packaging type',
+ 默认包装规格:'Default packaging specifications',
+ 项:'item',
+ 次:'time',
+ 套:'set',
+ 年:'year',
+ 根:'root',
+ 批:'batch',
+ 默认:'default',
+ 管理精度:'Management accuracy',
+ 是否是功能区:'Is it a functional area',
+ 按数量:'exponential quantity',
+ 按批次:'By batch',
+ 按包装:'By package',
+ 按唯一ID:'By unique ID',
+ 收货待检区:'Receiving goods for inspection area',
+ 原料存储区:'Raw material storage area',
+ 化学品区:'Chemical area',
+ 超市区:'Super urban area',
+ 线边区:'Line edge area',
+ 半成品存储区:'Storage area for semi-finished products',
+ 成品存储区:'Finished product storage area',
+ 发货准备区:'Shipment preparation area',
+ 发货在途区:'The shipment is in transit',
+ 三方库区:'Three party reservoir area',
+ 客户寄售区:'Customer consignment area',
+ 厂内隔离区:'Isolation area inside the factory',
+ 客户退货隔离区:'Customer return quarantine area',
+ 报废区:'Scrap area',
+ 备货区:'storage area',
+ 差异调整:'Difference adjustment',
+ 在途区:'Area in transit',
+ 溢出区:'overflow area',
+ 器具库区:'Appliance warehouse area',
+ 成品器具库区:'Finished equipment warehouse area',
+ 线边器具库区:'Line edge appliance warehouse area',
+ 客户器具库区:'Customer equipment warehouse area',
+ 报废器具库区:'Scrap equipment storage area',
+ ERP库位类型:'ERP location type',
+ QAD库位代码:'QAD library bit code',
+ 巷道:'roadway',
+ 货架:'goods shelf',
+ 行:'line',
+ 列:'column',
+ 备货优先级:'Inventory priority',
+ 最大承重:'maximum load bearing',
+ 最大面积:'maximum area',
+ 最大体积:'maximum volume',
+ 默认库位代码:'Default library bit code',
+ 收货口:'Port of receip',
+ 发货口:'port of dispatch',
+ 星期一:'Monday',
+ 星期二:'Tuesday',
+ 星期三:'Wednesday',
+ 星期四:'Thursday',
+ 星期五:'Friday',
+ 星期六:'Saturday',
+ 星期日:'Sunday',
+ 策略名称:'Policy name',
+ 策略代码:'Policy code',
+ 策略描述:'Policy Description',
+ 优先级:'priority',
+ 请输入策略名称:'Please enter a policy name',
+ 请输入优先级:'Please enter the priority',
+ 规则:'rule',
+ 请输入名称:'Please enter a name',
+ 请输入描述:'Please enter description',
+ 规则条件:'Rule condition',
+ 供应商类型:'supplier type',
+ 请选择供应商类型:'Please select the supplier type',
+ 星期几:'what day',
+ 请输入代码:'Please enter the code',
+ 请选择开始时间:'Please select a start time',
+ 请选择结束时间:'Please select the end time',
+ 仓库:'warehouse',
+ 请选择:'please choose',
+ 月台:'platform',
+ 请选择月台:'Please select the platform',
+ 在途库位:'in transit',
+ 请选择在途库位:'Please select the location in transit',
+ 请输入收货人名称:'Please enter the name of consignee',
+ 规则配置:'Rule configuration',
+ 请输入联系电话:'Please enter a contact number',
+ 请选择范围:'Please enter a name',
+ '确认撤销报工吗?': 'Are you sure to cancel the job application?',
+ '收货数量不可以大于订单数量!': 'The received quantity cannot exceed the order quantity',
+ 撤销报工成功:'Revocation of work report successful',
+ 生产日期不能小于:'The date of production cannot be less than',
+ 生产日期不能大于当前系统日期:'The production date cannot be greater than the current system date',
+ 发票回转:'Return of invoice',
+ 发票回转成功: 'The invoice has been successfully forwarded',
+ 最后更新人: 'Last Updated By',
+ 可开票数量范围是:'The range of invoices is'
+ },
+
+
+}
diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts
new file mode 100644
index 0000000..dc482ff
--- /dev/null
+++ b/src/locales/zh-CN.ts
@@ -0,0 +1,1303 @@
+export default {
+ common: {
+ inputText: '请输入',
+ selectText: '请选择',
+ startTimeText: '开始时间',
+ endTimeText: '结束时间',
+ login: '登录',
+ required: '该项为必填项',
+ loginOut: '退出系统',
+ document: '项目文档',
+ profile: '个人中心',
+ reminder: '温馨提示',
+ loginOutMessage: '是否退出本系统?',
+ back: '返回',
+ ok: '确定',
+ save: '保存',
+ cancel: '取消',
+ close: '关闭',
+ reload: '重新加载',
+ success: '成功',
+ closeTab: '关闭标签页',
+ closeTheLeftTab: '关闭左侧标签页',
+ closeTheRightTab: '关闭右侧标签页',
+ closeOther: '关闭其他标签页',
+ closeAll: '关闭全部标签页',
+ prevLabel: '上一步',
+ nextLabel: '下一步',
+ skipLabel: '跳过',
+ doneLabel: '结束',
+ menu: '菜单',
+ menuDes: '以路由的结构渲染的菜单栏',
+ collapse: '展开缩收',
+ collapseDes: '展开和缩放菜单栏',
+ tagsView: '标签页',
+ tagsViewDes: '用于记录路由历史记录',
+ tool: '工具',
+ toolDes: '用于设置定制系统',
+ query: '查询',
+ reset: '重置',
+ shrink: '收起',
+ expand: '展开',
+ confirmTitle: '系统提示',
+ exportMessage: '是否确认导出数据项?',
+ importMessage: '是否确认导入数据项?',
+ createSuccess: '新增成功',
+ updateSuccess: '修改成功',
+ emailSentSuccess: '邮件发送成功',
+ delMessage: '是否删除所选中数据?',
+ delDataMessage: '是否删除数据?',
+ delNoData: '请选择需要删除的数据',
+ delSuccess: '删除成功',
+ index: '序号',
+ status: '状态',
+ createTime: '创建时间',
+ updateTime: '更新时间',
+ unLockSuccess: '解冻成功',
+ unLockFail: '账号未冻结',
+ copy: '复制',
+ copySuccess: '复制成功',
+ copyError: '复制失败',
+ closeSuccess: '关闭成功',
+ refusalSuccess: '拒收成功',
+ reAddSuccess: '重新添加成功',
+ submitSuccess: '提交成功',
+ agreeSuccess: '审批通过成功',
+ refusedSuccess: '审批驳回成功',
+ handleSuccess: '执行成功',
+ publishSuccess: '发布成功',
+ dealwithSuccess: '处理成功',
+ acceptSuccess: '承接成功',
+ giveupSuccess: '放弃成功',
+ confirmColse: '确认关闭吗?',
+ confirmRefusal: '确认拒收吗?',
+ confirmReAdd: '确认重新添加吗?',
+ confirmAgree: '确认审批通过吗?',
+ confirmRefused: '确认审批驳回吗?',
+ confirmHandle: '确认处理吗?',
+ confirmSubmit: '确认提交吗?',
+ confirmAccept: '确认承接吗?',
+ confirmGiveup: '确认放弃吗?',
+ confirmPublish: '确认发布吗?',
+ },
+ error: {
+ noPermission: `抱歉,您无权访问此页面。`,
+ pageError: '抱歉,您访问的页面不存在',
+ networkError: '抱歉,服务器报告错误。',
+ returnToHome: '返回首页'
+ },
+ permission: {
+ hasPermission: `请设置操作权限标签值`,
+ hasRole: `请设置角色权限标签值`
+ },
+ setting: {
+ projectSetting: '项目配置',
+ theme: '主题',
+ layout: '布局',
+ systemTheme: '系统主题',
+ menuTheme: '菜单主题',
+ interfaceDisplay: '界面显示',
+ breadcrumb: '面包屑',
+ breadcrumbIcon: '面包屑图标',
+ collapseMenu: '折叠菜单',
+ hamburgerIcon: '折叠图标',
+ screenfullIcon: '全屏图标',
+ sizeIcon: '尺寸图标',
+ localeIcon: '多语言图标',
+ messageIcon: '消息图标',
+ tagsView: '标签页',
+ logo: '标志',
+ greyMode: '灰色模式',
+ fixedHeader: '固定头部',
+ headerTheme: '头部主题',
+ cutMenu: '切割菜单',
+ copy: '拷贝',
+ clearAndReset: '清除缓存并且重置',
+ copySuccess: '拷贝成功',
+ copyFailed: '拷贝失败',
+ footer: '页脚',
+ uniqueOpened: '菜单手风琴',
+ tagsViewIcon: '标签页图标',
+ reExperienced: '请重新退出登录体验',
+ fixedMenu: '固定菜单'
+ },
+ size: {
+ default: '默认',
+ large: '大',
+ small: '小'
+ },
+ login: {
+ welcome: '欢迎使用本系统',
+ message: '',
+ tenantname: '租户名称',
+ username: '用户名',
+ password: '密码',
+ code: '验证码',
+ login: '登录',
+ relogin: '重新登录',
+ otherLogin: '其他登录方式',
+ register: '注册',
+ checkPassword: '确认密码',
+ remember: '记住我',
+ hasUser: '已有账号?去登录',
+ forgetPassword: '忘记密码?',
+ tenantNamePlaceholder: '请输入租户名称',
+ usernamePlaceholder: '请输入用户名',
+ passwordPlaceholder: '请输入密码',
+ codePlaceholder: '请输入验证码',
+ mobileTitle: '手机登录',
+ mobileNumber: '手机号码',
+ mobileNumberPlaceholder: '请输入手机号码',
+ backLogin: '返回',
+ getSmsCode: '获取验证码',
+ btnMobile: '手机登录',
+ btnQRCode: '二维码登录',
+ qrcode: '扫描二维码登录',
+ btnRegister: '注册',
+ SmsSendMsg: '验证码已发送'
+ },
+ captcha: {
+ verification: '请完成安全验证',
+ slide: '向右滑动完成验证',
+ point: '请依次点击',
+ success: '验证成功',
+ fail: '验证失败'
+ },
+ router: {
+ login: '登录',
+ home: '首页',
+ analysis: '分析页',
+ workplace: '工作台'
+ },
+ analysis: {
+ newUser: '新增用户',
+ unreadInformation: '未读消息',
+ transactionAmount: '成交金额',
+ totalShopping: '购物总量',
+ monthlySales: '每月销售额',
+ userAccessSource: '用户访问来源',
+ january: '一月',
+ february: '二月',
+ march: '三月',
+ april: '四月',
+ may: '五月',
+ june: '六月',
+ july: '七月',
+ august: '八月',
+ september: '九月',
+ october: '十月',
+ november: '十一月',
+ december: '十二月',
+ estimate: '预计',
+ actual: '实际',
+ directAccess: '直接访问',
+ mailMarketing: '邮件营销',
+ allianceAdvertising: '联盟广告',
+ videoAdvertising: '视频广告',
+ searchEngines: '搜索引擎',
+ weeklyUserActivity: '每周用户活跃量',
+ activeQuantity: '活跃量',
+ monday: '周一',
+ tuesday: '周二',
+ wednesday: '周三',
+ thursday: '周四',
+ friday: '周五',
+ saturday: '周六',
+ sunday: '周日'
+ },
+ workplace: {
+ welcome: '你好',
+ happyDay: '祝你开心每一天!',
+ toady: '今日晴',
+ notice: '通知公告',
+ project: '项目数',
+ access: '项目访问',
+ toDo: '待办',
+ introduction: '一个正经的简介',
+ shortcutOperation: '快捷入口',
+ operation: '操作',
+ index: '指数',
+ personal: '个人',
+ team: '团队',
+ quote: '引用',
+ contribution: '贡献',
+ hot: '热度',
+ yield: '产量',
+ dynamic: '动态',
+ push: '推送',
+ follow: '关注'
+ },
+ form: {
+ input: '输入框',
+ inputNumber: '数字输入框',
+ default: '默认',
+ icon: '图标',
+ mixed: '复合型',
+ textarea: '多行文本',
+ slot: '插槽',
+ position: '位置',
+ autocomplete: '自动补全',
+ select: '选择器',
+ selectGroup: '选项分组',
+ selectV2: '虚拟列表选择器',
+ cascader: '级联选择器',
+ switch: '开关',
+ rate: '评分',
+ colorPicker: '颜色选择器',
+ transfer: '穿梭框',
+ render: '渲染器',
+ radio: '单选框',
+ button: '按钮',
+ checkbox: '多选框',
+ slider: '滑块',
+ datePicker: '日期选择器',
+ shortcuts: '快捷选项',
+ today: '今天',
+ yesterday: '昨天',
+ aWeekAgo: '一周前',
+ week: '周',
+ year: '年',
+ month: '月',
+ dates: '日期',
+ daterange: '日期范围',
+ monthrange: '月份范围',
+ dateTimePicker: '日期时间选择器',
+ dateTimerange: '日期时间范围',
+ timePicker: '时间选择器',
+ timeSelect: '时间选择',
+ inputPassword: '密码输入框',
+ passwordStrength: '密码强度',
+ operate: '操作',
+ change: '更改',
+ restore: '还原',
+ disabled: '禁用',
+ disablement: '解除禁用',
+ delete: '删除',
+ add: '添加',
+ setValue: '设置值',
+ resetValue: '重置值',
+ set: '设置',
+ subitem: '子项',
+ formValidation: '表单验证',
+ verifyReset: '验证重置',
+ remark: '备注'
+ },
+ watermark: {
+ watermark: '水印'
+ },
+ table: {
+ table: '表格',
+ index: '序号',
+ title: '标题',
+ author: '作者',
+ createTime: '创建时间',
+ action: '操作',
+ pagination: '分页',
+ reserveIndex: '叠加序号',
+ restoreIndex: '还原序号',
+ showSelections: '显示多选',
+ hiddenSelections: '隐藏多选',
+ showExpandedRows: '显示展开行',
+ hiddenExpandedRows: '隐藏展开行',
+ header: '头部'
+ },
+ action: {
+ create: '新增',
+ add: '新增',
+ del: '删除',
+ delete: '删除',
+ edit: '编辑',
+ update: '编辑',
+ preview: '预览',
+ execute: '执行',
+ more: '更多',
+ sync: '同步',
+ save: '保存',
+ detail: '详情',
+ export: '导出',
+ import: '导入',
+ generate: '生成',
+ logout: '强制退出',
+ test: '测试',
+ typeCreate: '字典类型新增',
+ typeUpdate: '字典类型编辑',
+ dataCreate: '字典数据新增',
+ dataUpdate: '字典数据编辑',
+ createLabel: '创建标签',
+ viewDetail:'明细列表',
+ updataRecode:'更新记录',
+ applyDecision:'使用决策',
+ auditing:'审核',
+ },
+ dialog: {
+ dialog: '弹窗',
+ open: '打开',
+ close: '关闭'
+ },
+ sys: {
+ api: {
+ operationFailed: '操作失败',
+ errorTip: '错误提示',
+ errorMessage: '操作失败,系统异常!',
+ timeoutMessage: '登录超时,请重新登录!',
+ apiTimeoutMessage: '接口请求超时,请刷新页面重试!',
+ apiRequestFailed: '请求出错,请稍候重试',
+ networkException: '网络异常',
+ networkExceptionMsg: '网络异常,请检查您的网络连接是否正常!',
+ errMsg401: '用户没有权限(令牌、用户名、密码错误)!',
+ errMsg403: '用户得到授权,但是访问是被禁止的。!',
+ errMsg404: '网络请求错误,未找到该资源!',
+ errMsg405: '网络请求错误,请求方法未允许!',
+ errMsg408: '网络请求超时!',
+ errMsg500: '服务器错误,请联系管理员!',
+ errMsg501: '网络未实现!',
+ errMsg502: '网络错误!',
+ errMsg503: '服务不可用,服务器暂时过载或维护!',
+ errMsg504: '网络超时!',
+ errMsg505: 'http版本不支持该请求!',
+ errMsg901: '演示模式,无法进行写操作!'
+ },
+ app: {
+ logoutTip: '温馨提醒',
+ logoutMessage: '是否确认退出系统?',
+ menuLoading: '菜单加载中...'
+ },
+ exception: {
+ backLogin: '返回登录',
+ backHome: '返回首页',
+ subTitle403: '抱歉,您无权访问此页面。',
+ subTitle404: '抱歉,您访问的页面不存在。',
+ subTitle500: '抱歉,服务器报告错误。',
+ noDataTitle: '当前页无数据',
+ networkErrorTitle: '网络错误',
+ networkErrorSubTitle: '抱歉,您的网络连接已断开,请检查您的网络!'
+ },
+ lock: {
+ unlock: '点击解锁',
+ alert: '锁屏密码错误',
+ backToLogin: '返回登录',
+ entry: '进入系统',
+ placeholder: '请输入锁屏密码或者用户密码'
+ },
+ login: {
+ backSignIn: '返回',
+ signInFormTitle: '登录',
+ ssoFormTitle: '三方授权',
+ mobileSignInFormTitle: '手机登录',
+ qrSignInFormTitle: '二维码登录',
+ signUpFormTitle: '注册',
+ forgetFormTitle: '重置密码',
+ signInTitle: '',
+ signInDesc: '输入您的个人详细信息开始使用!',
+ policy: '我同意xxx隐私政策',
+ scanSign: `扫码后点击"确认",即可完成登录`,
+ loginButton: '登录',
+ registerButton: '注册',
+ rememberMe: '记住我',
+ forgetPassword: '忘记密码?',
+ otherSignIn: '其他登录方式',
+ // notify
+ loginSuccessTitle: '登录成功',
+ loginSuccessDesc: '欢迎回来',
+ // placeholder
+ accountPlaceholder: '请输入账号',
+ passwordPlaceholder: '请输入密码',
+ smsPlaceholder: '请输入验证码',
+ mobilePlaceholder: '请输入手机号码',
+ policyPlaceholder: '勾选后才能注册',
+ diffPwd: '两次输入密码不一致',
+ userName: '账号',
+ password: '密码',
+ confirmPassword: '确认密码',
+ email: '邮箱',
+ smsCode: '短信验证码',
+ mobile: '手机号码'
+ }
+ },
+ profile: {
+ user: {
+ title: '个人信息',
+ username: '用户名称',
+ nickname: '用户昵称',
+ mobile: '手机号码',
+ email: '用户邮箱',
+ dept: '所属部门',
+ posts: '所属岗位',
+ roles: '所属角色',
+ sex: '性别',
+ man: '男',
+ woman: '女',
+ createTime: '创建日期'
+ },
+ info: {
+ title: '基本信息',
+ basicInfo: '基本资料',
+ resetPwd: '修改密码',
+ userSocial: '社交信息'
+ },
+ rules: {
+ nickname: '请输入用户昵称',
+ mail: '请输入邮箱地址',
+ truemail: '请输入正确的邮箱地址',
+ phone: '请输入正确的手机号码',
+ truephone: '请输入正确的手机号码'
+ },
+ password: {
+ oldPassword: '旧密码',
+ newPassword: '新密码',
+ confirmPassword: '确认密码',
+ oldPwdMsg: '请输入旧密码',
+ newPwdMsg: '请输入新密码',
+ cfPwdMsg: '请输入确认密码',
+ pwdRules: '长度在 6 到 20 个字符',
+ diffPwd: '两次输入密码不一致'
+ }
+ },
+ cropper: {
+ selectImage: '选择图片',
+ uploadSuccess: '上传成功',
+ modalTitle: '头像上传',
+ okText: '确认并上传',
+ btn_reset: '重置',
+ btn_rotate_left: '逆时针旋转',
+ btn_rotate_right: '顺时针旋转',
+ btn_scale_x: '水平翻转',
+ btn_scale_y: '垂直翻转',
+ btn_zoom_in: '放大',
+ btn_zoom_out: '缩小',
+ preview: '预览'
+ },
+ home:{
+ number_orders: '订单数',
+ number_planned_shipments: '要货计划数',
+ number_invoices: '发货单数',
+ invoice_trend_month: '本月发货单趋势',
+ TOP10_parts_shipped_month: '本月发货零件Top10',
+ number_open: '开放订单数',
+ number_open_plans: '开放计划数',
+ number_unreceived_orders: '未收货订单数',
+ number_total_order: '全部订单数',
+ number_all_plans: '全部计划数',
+ number_orders_received: '已收货订单数',
+ single: '单',
+ latest_news:'最新消息',
+ number:'编号',
+ user_type:'用户类型',
+ user_number:'用户编号',
+ template_coding:'模板编码',
+ sender_number:'发送人名称',
+ template_content:'模板内容',
+ template_parameters:'模板参数',
+ template_type:'模板类型',
+ read:'是否已读',
+ read_time:'阅读时间',
+ create_time:'创建时间',
+
+ latest_deduction_details: '最新扣分明细',
+ title: '标题',
+ publisher: '发布人',
+ publish_date: '发布日期',
+
+
+ month_return_detials:'本月退货明细',
+ document_number:'单据号',
+ source_package_number:'从包装号',
+ destination_package_number:'到包装号',
+ source_appliance_number:'从器具号',
+ destination_appliance_number:'到器具号',
+ source_batch:'从批次',
+ destination_batch:'到批次',
+ replace_batch:'替代批次',
+ source_location_code:'从库位代码',
+ destination_location_code:'到库位代码',
+ source_location_group_code:'从库位组代码',
+ destination_location_group_code:'到库位组代码',
+ source_location_area_code:'从库区代码',
+ destination_location_area_code:'到库区代码',
+ source_shipper_code:'从货主代码',
+ destination_shipper_code:'到货主代码',
+ inventory_state:'库存状态',
+ order_number:'订单号',
+ order_line:'订单行',
+ cause:'原因',
+ unit_price:'单价',
+ money:'金额',
+ material_code:'物料代码',
+ material_name:'物料名称',
+ material_description1:'物料描述1',
+ material_description2:'物料描述2',
+ amount:'数量',
+ measuring_unit:'计量单位',
+ item_code:'项目代码',
+ comment:'备注',
+ creater:'创建者',
+ claim_details_month:'本月索赔明细',
+ batch:'批次',
+
+ today_arrival_plan_shipped:'今日到货计划(已发货)',
+ material_preparation_plan_today_issued:'今日备料计划(已发料)',
+ call_material_today_issued:'今日叫料请求(已发料)',
+ 'pcs':'个',
+ free_library_bits_or_total_library_bits:'空闲库位数/总库位数',
+
+
+
+ slack_stock_warning:'呆滞库存预警',
+ package_number:'包装号',
+ appliance_code:'器具代码',
+ location_code:'库位代码',
+ warehouse_code:'仓库代码',
+ location_group_code:'库位组代码',
+ location_area_code:'库区代码',
+ erp_location_code:'ERP库位代码',
+ arrival_date:'到货日期',
+ production_date:'生产日期',
+ expiry_date:'失效日期',
+ shipper_code:'货主代码',
+ lock_quantity:'锁定数量',
+ available_quantity:'可用数量',
+ warehouse_entry_time:'入库时间',
+
+
+ overstock_warning:'超期库存预警',
+ high_and_low_storage_warning:'高低储预警',
+ waiting_tasks:'待处理任务',
+ purchase_return_tasks:'采购退货任务',
+ product_putway_tasks:'制品上架任务',
+ purchase_and_receive_tasks:'采购收货任务',
+ production_receipt_tasks:'生产收料任务',
+ production_return_tasks:'生产退料',
+ supplement_materials_tasks:'补料任务',
+ product_receiving_tasks:'制品收货任务',
+ send_materials_tasks:'发料任务',
+
+
+ today_production_plan:'今日生产计划',
+ sequence:'顺序',
+ workshop:'车间',
+ prouduction_line:'生产线',
+ schedule:'班次',
+ teams_and_groups:'班组',
+ intended_date:'计划日期',
+ start_date:'开始日期',
+ ending_date:'结束日期',
+ business_type:'业务类型',
+ line_side_safety_stock:'线边安全库存',
+
+ type:'类型',
+ laneway:'巷道',
+ goods_shelf:'货架',
+ line:'行',
+ column:'列',
+ stock_priority:'备货优先级',
+ maximum_load_bearing:'最大承重',
+ maximum_area:'最大面积',
+ maximum_volume:'最大体积',
+ user_group_code:'用户组代码',
+ inventory_of_finished_products_waiting_to_be_putway:'待上架成品库存',
+ source_warehouse_code:'从仓库代码',
+ apply_time:'申请时间',
+ request_cut_off_time:'要求截止时间',
+ state:'状态',
+ department:'部门',
+ undertaker_user_name:'承接人用户名',
+ undertake_time:'承接时间',
+ source_location_type_range:'从库位类型范围',
+ destination_location_type_range:'到库位类型范围',
+ destination_warehouse_code:'到仓库代码',
+ source_location_area_code_range:'从库区代码范围',
+ destination_location_area_code_range:'到库区代码范围',
+ auto_complete:'自动完成',
+ modifiable_location:'允许修改库位',
+ modifiable_amount:'允许修改数量',
+ allow_greater_than_recommended:'允许大于推荐数量',
+ allow_less_than_recommended:'允许小于推荐数量',
+ allow_modify_location_state:'允许修改库存状态',
+ allow_continuous_scanning:'允许连续扫描',
+ allow_partly_completed:'允许部分完成',
+ modifiable_batch:'允许修改批次',
+ modifiable_casecode:'允许修改箱码',
+ expiration_time: '失效时间',
+ effective_time:'生效时间',
+ code:'代码',
+ name:'名称',
+ },
+ ts: {
+ 代码:'代码',
+ 全部 :'全部',
+ 标准:'标准',
+ 委外:'委外',
+ 其它:'其它',
+ 其他:'其他',
+ 是否可用: '是否可用',
+ 类型:'类型',
+ 名称:'名称',
+ 是:'是',
+ 否:'否',
+ 供应商代码: '供应商代码',
+ 物料代码:'物料代码',
+ 单据号:'单据号',
+ 订单类型:'订单类型',
+ 状态:'状态',
+ 采购订单号:'采购订单号',
+ 日程:'日程',
+ 离散:'离散',
+ 准备:'准备',
+ 发布:'发布',
+ 关闭:'关闭',
+ 已完成:'已完成',
+ 发货单号:'发货单号',
+ 从批次:'从批次',
+ 到批次:'到批次',
+ 从包装号:'从包装号',
+ 到包装号:'到包装号',
+ 从器具号:'从器具号',
+ 到器具号:'到器具号',
+ 简称: '简称',
+ 地址:'地址',
+ 国家:'国家',
+ 城市:'城市',
+ 电话:'电话',
+ 传真:'传真',
+ 邮编:'邮编',
+ 联系人:'联系人',
+ 联系人邮件:'联系人邮件',
+ 银行:'银行',
+ 币种:'币种',
+ 税率:'税率',
+ '税率(%)':'税率(%)',
+ 生效时间:'生效时间',
+ 失效时间:'失效时间',
+ 供应商物料代码:'供应商物料代码',
+ 供应商计量单位:'供应商计量单位',
+ 转换率:'转换率',
+ 默认收货库位:'默认收货库位',
+ 创建人:'创建人',
+ 创建者:'创建者',
+ 创建时间:'创建时间',
+ 备注:'备注',
+ 货币:'货币',
+ 价格:'价格',
+ 订单日期:'订单日期',
+ 行号:'行号',
+ 操作:'操作',
+ 计量单位:'计量单位',
+ 人民币:'人民币',
+ 美元:'美元',
+ 版本号:'版本号',
+ 发布时间:'发布时间',
+ 开始时间:'开始时间',
+ 结束时间:'结束时间',
+ 业务类型:'业务类型',
+ 预测时间类型:'预测时间类型',
+ 预测日期:'预测日期',
+ 订单行:'订单行',
+ 计划数量:'计划数量',
+ 计划数量必须大于0:'计划数量必须大于0',
+ 最后更新时间:'最后更新时间',
+ 最后更新者:'最后更新者',
+ 要货计划:'要货计划',
+ 申请单号:'申请单号',
+ 从仓库代码:'从仓库代码',
+ 到仓库代码:'到仓库代码',
+ 到月台代码:'到月台代码',
+ 时间窗口:'时间窗口',
+ 计划到货时间:'计划到货时间',
+ 承运商:'承运商',
+ 运输方式:'运输方式',
+ 车牌号:'车牌号',
+ 出库事务类型:'出库事务类型',
+ 入库事务类型:'入库事务类型',
+ 执行时间:'执行时间',
+ 申请时间:'申请时间',
+ 截止时间:'截止时间',
+ 部门:'部门',
+ 接口类型:'接口类型',
+ 包装号:'包装号',
+ 订单号:'订单号',
+ 订单数量:'订单数量',
+ 数量:'数量',
+ 包装数量:'包装数量',
+ 供应商计量数量:'供应商计量数量',
+ 供应商:'供应商',
+ 从库位代码:'从库位代码',
+ 到库位代码:'到库位代码',
+ 从库位组代码:'从库位组代码',
+ 到库位组代码:'到库位组代码',
+ 从库区代码:'从库区代码',
+ 到库区代码:'到库区代码',
+ 从货主代码:'从货主代码',
+ 到货主代码:'到货主代码',
+ 查看其他包装规格:'查看其他包装规格',
+ 查看子包装:'查看子包装',
+ 包装规格:'包装规格',
+ 单据打印:'单据打印',
+ 明细列表:'明细列表',
+ 暂无数据:'暂无数据',
+ 供应商发货申请:'供应商发货申请',
+ 查询字段:'查询字段',
+ 供应商批次:'供应商批次',
+ 生产日期:'生产日期',
+ 发货数量:'发货数量',
+ 主数据:'主数据',
+ 要货计划单号:'要货计划单号',
+ 联系人姓名:'联系人姓名',
+ 联系人电话:'联系人电话',
+ 联系人电子邮件:'联系人电子邮件',
+ 供应商发货仓库代码:'供应商发货仓库代码',
+ 运输方式车牌号:'运输方式车牌号',
+ 自动提交:'自动提交',
+ 自动通过:'自动通过',
+ 自动执行:'自动执行',
+ 直接生成记录:'直接生成记录',
+ 明细:'明细',
+ 批次:'批次',
+ 到货日期:'到货日期',
+ 过期日期:'过期日期',
+ 物料名称:'物料名称',
+ 物料描述1:'物料描述1',
+ 物料描述2:'物料描述2',
+ 项目代码:'项目代码',
+ 质检明细:'质检明细',
+ 履历表明细:'履历表明细',
+ 添加附件:'添加附件',
+ 变更记录:'变更记录',
+ 添加明细:'添加明细',
+ 上传质量报告:'上传质量报告',
+ 上传履历表:'上传履历表',
+ 上传质检报告:'上传质检报告',
+ 个:'个',
+ 张:'张',
+ 克:'克',
+ 公斤:'公斤',
+ 吨:'吨',
+ 米:'米',
+ 平方米:'平方米',
+ 生成标签:'生成标签',
+ 重新生成标签:'重新生成标签',
+ 创建标签:'创建标签',
+ 包装规格1:'包装规格1',
+ 包装规格2:'包装规格2',
+ 包装数量1:'包装数量1',
+ 包装数量2:'包装数量2',
+ 物品包装信息:'物品包装信息',
+ 系统提示:'系统提示',
+ 是否为此数据生成标签:'是否为此数据生成标签',
+ 是否修改物料包装标包数量:'是否修改物料包装标包数量',
+ 包装规格1和包装规格2不能相同:'包装规格1和包装规格2不能相同',
+ 是否处理所选中数据:'是否处理所选中数据',
+ 发货:'发货',
+ 标签信息:'标签信息',
+ 采购收货记录:'采购收货记录',
+ 表单数据:'表单数据',
+ 任务单号:'任务单号',
+ ERP单据号:'ERP单据号',
+ 检验申请单号:'检验申请单号',
+ 数据来源:'数据来源',
+ 从库区类型范围:'从库区类型范围',
+ 到库区类型范围:'到库区类型范围',
+ 从库区代码范围:'从库区代码范围',
+ 到库区代码范围:'到库区代码范围',
+ 生效日期:'生效日期',
+ 收货明细:'收货明细',
+ 缺货明细:'缺货明细',
+ 行类型:'行类型',
+ 收货数量:'收货数量',
+ 库存状态:'库存状态',
+ 从库位组:'从库位组',
+ 到库位组:'到库位组',
+ 从库区:'从库区',
+ 到库区:'到库区',
+ 从货主:'从货主',
+ 到货主:'到货主',
+ 采购退货记录:'采购退货记录',
+ 采购收货记录单号:'采购收货记录单号',
+ qad采购退货记录单号:'qad采购退货记录单号',
+ 从月台代码:'从月台代码',
+ 原因:'原因',
+ 退货数量:'退货数量',
+ 单位:'单位',
+ 金额:'金额',
+ 客户代码:'客户代码',
+ 供应商发票申请:'供应商发票申请',
+ 供应商名称:'供应商名称',
+ 税额:'税额',
+ 税后金额:'税后金额',
+ 调整价差:'调整价差',
+ 调整税额:'调整税额',
+ 总差额:'总差额',
+ 金税票号:'金税票号',
+ 发票日期:'发票日期',
+ 过账日期:'过账日期',
+ 财务审批人:'财务审批人',
+ 单据类型:'单据类型',
+ 合同价格:'合同价格',
+ 采购价格:'采购价格',
+ 未税差额:'未税差额',
+ 含税差额:'含税差额',
+ 可开票数量:'可开票数量',
+ 可开票数量不能为0:'可开票数量不能为0',
+ 采购审批人:'采购审批人',
+ 采购审批时间:'采购审批时间',
+ 财务审批时间:'财务审批时间',
+ 供应商发票记录:'供应商发票记录',
+ 发票号:'发票号',
+ 价税合计:'价税合计',
+ 价差:'价差',
+ 索赔金额:'索赔金额',
+ 发票时间:'发票时间',
+ 差额:'差额',
+ 收货日期:'收货日期',
+ 开票数量:'开票数量',
+ 财务审批用户名:'财务审批用户名',
+ 物流审核:'物流审核',
+ 供应商送货日期:'供应商送货日期',
+ 物流收货日期:'物流收货日期',
+ 物流单据号:'物流单据号',
+ 零件号:'零件号',
+ 供应商用户关联管理:'供应商用户关联管理',
+ 用户ID:'用户ID',
+ 用户账号:'用户账号',
+ 用户昵称:'用户昵称',
+ 订单:'订单',
+ 计划:'计划',
+ 申请:'申请',
+ 任务:'任务',
+ 记录:'记录',
+ 编号:'编号',
+ 库位代码:'库位代码',
+ 库位组代码:'库位组代码',
+ 库区代码:'库区代码',
+ 查询:'查询',
+ 重置:'重置',
+ 新增:'新增',
+ 导入:'导入',
+ 导出:'导出',
+ 刷新:'刷新',
+ 筛选:'筛选',
+ 选择当页:'选择当页',
+ 反选当页:'反选当页',
+ 取消全选:'取消全选',
+ 设置:'设置',
+ 确定:'确定',
+ '确 定':'确 定',
+ 取消:'取消',
+ '取 消':'取 消',
+ 编辑:'编辑',
+ 删除:'删除',
+ 添加筛选条件:'添加筛选条件',
+ 前往:'前往',
+ 页:'页',
+ 共:'共',
+ 打开:'打开',
+ 保存:'保存',
+ 下一步:'下一步',
+ 请选择筛选对象:'请选择筛选对象',
+ 请输入内容:'请输入内容',
+ 附件:'附件',
+ '更新:新增并修改':'更新:新增并修改',
+ '追加:只新增,不修改':'追加:只新增,不修改',
+ '覆盖:只修改不新增':'覆盖:只修改不新增',
+ 下载模板:'下载模板',
+ 更新:'更新',
+ 追加:'追加',
+ 覆盖:'覆盖',
+ 部分保存:'部分保存',
+ '部分保存:如存在错误数据,正确数据正常导入':'部分保存:如存在错误数据,正确数据正常导入',
+ '全部保存:全部数据正确,才能导入':'全部保存:全部数据正确,才能导入',
+ '将文件拖到此处,或点击上传':'将文件拖到此处,或点击上传',
+ '将文件拖到此处,或':'将文件拖到此处,或',
+ '点击上传':'点击上传',
+ '是否确认导出数据项?':'是否确认导出数据项?',
+ '请选择一条数据!':'请选择一条数据!',
+ 等于:'等于',
+ 不等于:'不等于',
+ 大于:'大于',
+ 小于:'小于',
+ 大于等于:'大于等于',
+ 小于等于:'小于等于',
+ 模糊:'模糊',
+ 包含:'包含',
+ 不包含:'不包含',
+ 是空:'是空',
+ 不是空:'不是空',
+ 是空字符串:'是空字符串',
+ 不是空字符串:'不是空字符串',
+ 搜索:'搜索',
+ 开始日期:'开始日期',
+ 结束日期:'结束日期',
+ 序号:'序号',
+ 版本:'版本',
+ 地点:'地点',
+ '影响明细中物料代码,需在供应商物料中维护':'影响明细中物料代码,需在供应商物料中维护',
+ 是否外部资源:'是否外部资源',
+ 注意事项:'注意事项',
+ 导入模式:'导入模式',
+ 请选择内容:'请选择内容',
+ 请选择条件:'请选择条件',
+ 区间:'区间',
+ '您确定删除吗, 是否继续?':'您确定删除吗, 是否继续?',
+ '必须保留一条筛选条件!':'必须保留一条筛选条件!',
+ '请填写供应商代码!':'请填写供应商代码!',
+ 供应商信息:'供应商信息',
+ 物料基础信息:'物料基础信息',
+ 库位信息:'库位信息',
+ 采购订单信息:'采购订单信息',
+ 供应商物料信息:'供应商物料信息',
+ 要货计划信息:'要货计划信息',
+ 用户信息:'用户信息',
+ 请选择供应商:'请选择供应商',
+ 请选择供应商代码:'请选择供应商代码',
+ 请选择物料代码:'请选择物料代码',
+ 请输入供应商物料代码:'请输入供应商物料代码',
+ 请选择库位代码:'请选择库位代码',
+ ERP库位:'ERP库位',
+ 单价:'单价',
+ '是否发布所选中数据?':'是否发布所选中数据?',
+ '是否关闭所选中数据?':'是否关闭所选中数据?',
+ '是否作废所选中数据?':'是否作废所选中数据?',
+ '是否完成所选中数据?':'是否完成所选中数据?',
+ '发布成功!':'发布成功!',
+ '是否下架所选中数据?':'是否下架所选中数据?',
+ '下架成功!':'下架成功!',
+ '采购订单主':'采购订单主',
+ '采购订单主导入模版':'采购订单主导入模版',
+ '是否打开所选中数据?':'是否打开所选中数据?',
+ '打开成功!':'打开成功!',
+ '关闭成功!':'关闭成功!',
+ '作废成功!':'作废成功!',
+ '完成成功!':'完成成功!',
+ '失效时间要大于生效时间':'失效时间要大于生效时间',
+ '供应商导入模版':'供应商导入模版',
+ '供应商物料':'供应商物料',
+ '供应商物料导入模版':'供应商物料导入模版',
+ '采购价格单':'采购价格单',
+ '采购价格单导入模版':'采购价格单导入模版',
+ 已计划数量:'已计划数量',
+ 已发货数量:'已发货数量',
+ 已收货数量:'已收货数量',
+ 已退货数量:'已退货数量',
+ 已上架数量:'已上架数量',
+ 启用:'启用',
+ 禁用:'禁用',
+ 中止:'中止',
+ 领取:'领取',
+ 完成:'完成',
+ 绑定:'绑定',
+ 重新添加:'重新添加',
+ 下架:'下架',
+ 修改:'修改',
+ 不接受:'不接受',
+ 接受:'接受',
+ 承接:'承接',
+ 放弃:'放弃',
+ 收货:'收货',
+ 包装:'包装',
+ 打印标签:'打印标签',
+ 批量打印:'批量打印',
+ 生成采购收货申请:'生成采购收货申请',
+ 发送到货检验申请:'发送到货检验申请',
+ 生成采购上架申请:'生成采购上架申请',
+ 生成采购退货记录:'生成采购退货记录',
+ 生成制品上架申请:'生成制品上架申请',
+ 生成盘点调整申请:'生成盘点调整申请',
+ 重盘:'重盘',
+ 解冻:'解冻',
+ 更新检验记录:'更新检验记录',
+ 使用决策:'使用决策',
+ '是否接受所选中数据?':'是否接受所选中数据?',
+ '接受成功!':'接受成功!',
+ '是否驳回所选中数据?':'是否驳回所选中数据?',
+ '是否撤回所选中数据?':'是否撤回所选中数据?',
+ '是否提交审核?':'是否提交审核?',
+ '驳回成功!':'驳回成功!',
+ '要货计划主':'要货计划主',
+ '要货计划数量不得大于订单数量-已计划数量':'要货计划数量不得大于订单数量-已计划数量',
+ '子列表数量不能空':'子列表数量不能空',
+ '要货计划主导入模版':'要货计划主导入模版',
+ 已经存在:'已经存在',
+ 驳回:'驳回',
+ 审批通过:'审批通过',
+ 要货预测主:'要货预测主',
+ 要货预测主导入模版:'要货预测主导入模版',
+ 创建供应商发货申请:'创建供应商发货申请',
+ '是否重新打开所选中数据?':'是否重新打开所选中数据?',
+ '请先上传自检报告!':'请先上传自检报告!',
+ '提交审批成功!':'提交审批成功!',
+ '是否提交审批所选中数据?':'是否提交审批所选中数据?',
+ '是否审批通过所选中数据?':'是否审批通过所选中数据?',
+ '审批通过成功!':'审批通过成功!',
+ '是否处理所选中数据?':'是否处理所选中数据?',
+ '处理成功!':'处理成功!',
+ 供应商发货申请主:'供应商发货申请主',
+ '是否为此数据生成标签?':'是否为此数据生成标签?',
+ 创建标签成功:'创建标签成功',
+ 请先选择要打印的数据:'请先选择要打印的数据',
+ 创建标签失败:'创建标签失败',
+ 生产日期不可以大于过期日期:'生产日期不可以大于过期日期',
+ '计划到货时间大于':'计划到货时间大于',
+ '是否继续?':'是否继续?',
+ '子表明细不能为空!':'子表明细不能为空!',
+ 采购申请生成成功:'采购申请生成成功',
+ '确认生成采购申请吗?':'确认生成采购申请吗?',
+ 供应商发货记录主:'供应商发货记录主',
+ '确认生成上架申请吗?':'确认生成上架申请吗?',
+ 上架申请生成成功:'上架申请生成成功',
+ '确认生成到货检验申请吗?':'确认生成到货检验申请吗?',
+ '确认生成采购退货记录吗?':'确认生成采购退货记录吗?',
+ 到货检验申请生成成功:'到货检验申请生成成功',
+ 采购退货记录生成成功:'采购退货记录生成成功',
+ 采购收货记录主:'采购收货记录主',
+ 采购退货记录主:'采购退货记录主',
+ 采购拒收记录主:'采购拒收记录主',
+ 合同附件:'合同附件',
+ 发票附件:'发票附件',
+ 货运单附件:'货运单附件',
+ 其他附件:'其他附件',
+ 打印明细:'打印明细',
+ 打印全部发货单:'打印全部发货单',
+ 导出明细:'导出明细',
+ 打印:'打印',
+ 采购通过:'采购通过',
+ 采购驳回:'采购驳回',
+ 供应商确认:'供应商确认',
+ 财务通过:'财务通过',
+ 财务驳回:'财务驳回',
+ '是否确认发票寄出选中数据?':'是否确认发票寄出选中数据?',
+ '发票寄出成功!':'发票寄出成功!',
+ 供应商发票申请主:'供应商发票申请主',
+ 请添明细数据:'请添明细数据',
+ 非SCP订单无法打印:'非SCP订单无法打印',
+ '明细数据条数已超过最大数量限制【20000条】':'明细数据条数已超过最大数量限制【20000条】',
+ 供应商发货申请主导入模版:'供应商发货申请主导入模版',
+ 供应商发票申请主导入模板:'供应商发票申请主导入模板',
+ 供应商发票申请明细:'供应商发票申请明细',
+ 供应商发票记录主:'供应商发票记录主',
+ '审核通过!':'审核通过!',
+ '撤回成功!':'撤回成功!',
+ 作废:'作废',
+ '是否审批拒绝所选中数据?':'是否审批拒绝所选中数据?',
+ '审批成功!':'审批成功!',
+ 待开票:'待开票',
+ 待开票导入模版:'待开票导入模版',
+ 采购订单:'采购订单',
+ 要货预测:'要货预测',
+ 供应商发货记录:'供应商发货记录',
+ 供应商发票:'供应商发票',
+ 基础数据:'基础数据',
+ router: {
+ login: '登录',
+ home: '首页',
+ analysis: '分析页',
+ workplace: '工作台'
+ },
+ '重置后,字段设置将恢复初始设置,是否继续?':'重置后,字段设置将恢复初始设置,是否继续?',
+ 提示:'提示',
+ 凭证号:'凭证号',
+ 采购价格审批人:'采购价格审批人',
+ 供应商发货单号:'供应商发货单号',
+ 加载中:'加载中',
+ '正在上传文件,请稍候':'正在上传文件,请稍候...',
+ 上传成功:'上传成功',
+ 上传文件数量不能超过:'上传文件数量不能超过',
+ '导入数据失败,请您重新上传':'导入数据失败,请您重新上传!',
+ 上传文件大小不能超过:'上传文件大小不能超过',
+ '文件格式不正确, 请上传':'文件格式不正确, 请上传',
+ 格式:'格式',
+ 收货人:'收货人',
+ 联系电话:'联系电话',
+ 送达日期:'送达日期',
+ 月台代码:'月台代码',
+ 截止日期:'截止日期',
+ 仓库代码:'仓库代码',
+ 'ERP单据号(无用)':'ERP单据号(无用)',
+ 供应商审批人:'供应商审批人',
+ 供应商审批时间:'供应商审批时间',
+ 快递单号:'快递单号',
+ 开票日历管理:'开票日历管理',
+ 描述:'描述',
+ 批量删除:'批量删除',
+ 查看质检报告:'查看质检报告',
+ 长春:'长春',
+ 成都:'成都',
+ 富维海拉智慧工厂管理平台:'富维海拉智慧工厂管理平台',
+ 采购未收货记录:'采购未收货记录',
+ 请选择要货计划单号:'请选择要货计划单号',
+ 大小不超过:'大小不超过',
+ 格式为:'格式为',
+ 的文件:'的文件',
+ 接收:'接收',
+ 请输入批次:'请输入批次',
+ 请输入供应商批次:'请输入供应商批次',
+ 选择日期:'选择日期',
+ 请输入备注:'请输入备注',
+ 请输入包装规格1:'请输入包装规格1',
+ 请输入包装数量1:'请输入包装数量1',
+ 请输入包装规格2:'请输入包装规格2',
+ 请输入包装数量2:'请输入包装数量2',
+ 提交审批:'提交审批',
+ 系统管理:'系统管理',
+ 基础设施:'基础设施',
+ 报表管理:'报表管理',
+ 报表:'报表',
+ 富维海拉供应商管理系统:'富维海拉供应商管理系统',
+ 请输入用户名:'请输入用户名',
+ 请输入邮箱:'请输入邮箱',
+ 忘记密码:'忘记密码',
+ 用户名:'用户名',
+ 邮箱:'邮箱',
+ 今日:'今日',
+ 请输入驳回原因:'请输入驳回原因',
+ '驳回原因不能为空,且不超过60字':'驳回原因不能为空,且不超过60字',
+ 批量发布:'批量发布',
+ '重新生成标签会删除上次生成的标签,是否确认继续?':'重新生成标签会删除上次生成的标签,是否确认继续?',
+ '确 认':'确 认',
+ 请输入拒收原因:'请输入拒收原因',
+ 查看明细:'查看明细',
+ 未读:'未读',
+ 已读:'已读',
+ 全部已读:'全部已读',
+ '申请发货数量不能大于 计划数量 - 已发货数量':'申请发货数量不能大于 计划数量 - 已发货数量',
+ 不允许超发:'不允许超发',
+ 总数量超出计划数量:'总数量超出计划数量',
+ 导出二维表:'导出二维表',
+ 要货计划明细:'要货计划明细',
+ 要货计划二维表:'要货计划二维表',
+ '要货预测-计划员':'要货预测-计划员',
+ '要货预测-供应商':'要货预测-供应商',
+ 全选:'全选',
+ 计划员:'计划员',
+ 最小值:'最小值',
+ 最大值:'最大值',
+ 富维海拉供应商系统:'富维海拉供应商系统',
+ 物料包装信息:'物料包装信息',
+ 仓库管理:'仓库管理',
+ 库区管理:'库区管理',
+ 库位组管理:'库位组管理',
+ 库位管理:'库位管理',
+ 月台管理:'月台管理',
+ 采购计划策略:'采购计划策略',
+ 要货预测周期管理:'要货预测周期管理',
+ 价差数据查看:'价差数据查看',
+ 待开票数据查询:'待开票数据查询',
+ 未审核:'未审核',
+ 通过:'通过',
+ 已开票:'已开票',
+ 采购审批中:'采购审批中',
+ 采购审批通过:'采购审批通过',
+ 发票寄出:'发票寄出',
+ 采购审批驳回:'采购审批驳回',
+ 财务审批驳回:'财务审批驳回',
+ 货运单号:'货运单号',
+ 差价范围:'差价范围',
+ 供应商创建时间:'供应商创建时间',
+ 未税金额:'未税金额',
+ 价税合计金额:'价税合计金额',
+ 是否有价差:'是否有价差',
+ 税额差异:'税额差异',
+ 价税合计差额:'价税合计差额',
+ 系统税额:'系统税额',
+ 系统价税合计:'系统价税合计',
+ 系统未税金额:'系统未税金额',
+ 开票日期:'开票日期',
+ 采购驳回原因:'采购驳回原因',
+ 财务驳回原因:'财务驳回原因',
+ 包装名称:'包装名称',
+ 包装类型:'包装类型',
+ 默认包装规格:'默认包装规格',
+ 项:'项',
+ 次:'次',
+ 套:'套',
+ 年:'年',
+ 根:'根',
+ 批:'批',
+ 默认:'默认',
+ 管理精度:'管理精度',
+ 是否是功能区:'是否是功能区',
+ 按数量:'按数量',
+ 按批次:'按批次',
+ 按包装:'按包装',
+ 按唯一ID:'按唯一ID',
+ 收货待检区:'收货待检区',
+ 原料存储区:'原料存储区',
+ 化学品区:'化学品区',
+ 超市区:'超市区',
+ 线边区:'线边区',
+ 半成品存储区:'半成品存储区',
+ 成品存储区:'成品存储区',
+ 发货准备区:'发货准备区',
+ 发货在途区:'发货在途区',
+ 三方库区:'三方库区',
+ 客户寄售区:'客户寄售区',
+ 厂内隔离区:'厂内隔离区',
+ 客户退货隔离区:'客户退货隔离区',
+ 报废区:'报废区',
+ 备货区:'备货区',
+ 差异调整:'差异调整',
+ 在途区:'在途区',
+ 溢出区:'溢出区',
+ 器具库区:'器具库区',
+ 成品器具库区:'成品器具库区',
+ 线边器具库区:'线边器具库区',
+ 客户器具库区:'客户器具库区',
+ 报废器具库区:'报废器具库区',
+ ERP库位类型:'ERP库位类型',
+ QAD库位代码:'QAD库位代码',
+ 巷道:'巷道',
+ 货架:'货架',
+ 行:'行',
+ 列:'列',
+ 备货优先级:'备货优先级',
+ 最大承重:'最大承重',
+ 最大面积:'最大面积',
+ 最大体积:'最大体积',
+ 默认库位代码:'默认库位代码',
+ 收货口:'收货口',
+ 发货口:'发货口',
+ 星期一:'星期一',
+ 星期二:'星期二',
+ 星期三:'星期三',
+ 星期四:'星期四',
+ 星期五:'星期五',
+ 星期六:'星期六',
+ 星期日:'星期日',
+ 策略名称:'策略名称',
+ 策略代码:'策略代码',
+ 策略描述:'策略描述',
+ 优先级:'优先级',
+ 请输入策略名称:'请输入策略名称',
+ 请输入优先级:'请输入优先级',
+ 规则:'规则',
+ 请输入名称:'请输入名称',
+ 请输入描述:'请输入描述',
+ 规则条件:'规则条件',
+ 供应商类型:'供应商类型',
+ 请选择供应商类型:'请选择供应商类型',
+ 星期几:'星期几',
+ 请输入代码:'请输入代码',
+ 请选择开始时间:'请选择开始时间',
+ 请选择结束时间:'请选择结束时间',
+ 仓库:'仓库',
+ 请选择:'请选择',
+ 月台:'月台',
+ 请选择月台:'请选择月台',
+ 在途库位:'在途库位',
+ 请选择在途库位:'请选择在途库位',
+ 请输入收货人名称:'请输入收货人名称',
+ 规则配置:'规则配置',
+ 请输入联系电话:'请输入联系电话',
+ 请选择范围:'请选择范围',
+ '确认撤销报工吗?': "确认撤销报工吗?",
+ '收货数量不可以大于订单数量!':'收货数量不可以大于订单数量',
+ 撤销报工成功:'撤销报工成功',
+ 生产日期不能小于:'生产日期不能小于',
+ 生产日期不能大于当前系统日期:'生产日期不能大于当前系统日期',
+ 发票回转:'发票回转',
+ 发票回转成功: '发票回转成功',
+ 最后更新人:'最后更新人',
+ 可开票数量范围是:'可开票数量范围是'
+ },
+
+}
+
+
diff --git a/src/main.ts b/src/main.ts
new file mode 100644
index 0000000..419c06d
--- /dev/null
+++ b/src/main.ts
@@ -0,0 +1,86 @@
+// 引入unocss css
+import '@/plugins/unocss'
+
+// 导入全局的svg图标
+import '@/plugins/svgIcon'
+
+// 初始化多语言
+import { setupI18n } from '@/plugins/vueI18n'
+
+// 引入状态管理
+import { setupStore } from '@/store'
+
+// 全局组件
+import { setupGlobCom } from '@/components'
+
+// 引入 element-plus
+import { setupElementPlus } from '@/plugins/elementPlus'
+
+// 引入 form-create
+import { setupFormCreate } from '@/plugins/formCreate'
+
+// 引入全局样式
+import '@/styles/index.scss'
+
+// 引入动画
+import '@/plugins/animate.css'
+
+// 路由
+import router, { setupRouter } from '@/router'
+
+// 权限
+import { setupAuth } from '@/directives'
+
+import { createApp } from 'vue'
+
+import App from './App.vue'
+
+import './permission'
+
+import '@/plugins/tongji' // 百度统计
+import Logger from '@/utils/Logger'
+
+import VueDOMPurifyHTML from 'vue-dompurify-html' // 解决v-html 的安全隐患
+
+import DataVVue3 from '@kjgl77/datav-vue3'
+import { useLocaleStore } from '@/store/modules/locale'
+
+import { vue_next_focus } from "vue-next-focus";
+
+
+// 创建实例
+const setupAll = async () => {
+ const app = createApp(App)
+
+ await setupI18n(app)
+
+ setupStore(app)
+
+ setupGlobCom(app)
+
+ setupElementPlus(app)
+
+ setupFormCreate(app)
+
+ setupRouter(app)
+
+ setupAuth(app)
+
+ await router.isReady()
+
+ app.use(VueDOMPurifyHTML)
+ app.use(DataVVue3)
+ app.use( vue_next_focus )
+
+ app.mount('#app')
+ app.config.warnHandler = () => null;
+}
+// 多语言相关
+const localeStore = useLocaleStore()
+if(localeStore&&localeStore.currentLocale&&localeStore.currentLocale.lang.indexOf('en')>-1&&document.querySelector('#app-loading-title')){
+ document.querySelector('#app-loading-title').innerHTML = 'FAWAY HELLA Smart Factory Management Platform' // 富维海拉智慧工厂管理平台
+}
+
+setupAll()
+
+Logger.prettyPrimary(`欢迎使用`, import.meta.env.VITE_APP_TITLE)
diff --git a/src/permission.ts b/src/permission.ts
new file mode 100644
index 0000000..4ef4671
--- /dev/null
+++ b/src/permission.ts
@@ -0,0 +1,75 @@
+import router from './router'
+import type { RouteRecordRaw } from 'vue-router'
+import { isRelogin } from '@/config/axios/service'
+import { getAccessToken } from '@/utils/auth'
+import { useTitle } from '@/hooks/web/useTitle'
+import { useNProgress } from '@/hooks/web/useNProgress'
+import { usePageLoading } from '@/hooks/web/usePageLoading'
+import { useDictStoreWithOut } from '@/store/modules/dict'
+import { useUserStoreWithOut } from '@/store/modules/user'
+import { usePermissionStoreWithOut } from '@/store/modules/permission'
+
+const { start, done } = useNProgress()
+
+const { loadStart, loadDone } = usePageLoading()
+// 路由不重定向白名单
+const whiteList = [
+ '/login',
+ '/forgetPassword',
+ '/updatePassword',
+ '/updatePasswordNewTips',
+ '/social-login',
+ '/auth-redirect',
+ '/bind',
+ '/register',
+ '/oauthLogin/gitee',
+ '/purchasereceiptReport',
+ '/supplierResume'
+]
+
+// 路由加载前
+router.beforeEach(async (to, from, next) => {
+ start()
+ loadStart()
+ if (getAccessToken()) {
+ if (to.path === '/login') {
+ next({ path: '/' })
+ } else {
+ // 获取所有字典
+ const dictStore = useDictStoreWithOut()
+ const userStore = useUserStoreWithOut()
+ const permissionStore = usePermissionStoreWithOut()
+ if (!dictStore.getIsSetDict) {
+ await dictStore.setDictMap()
+ }
+ if (!userStore.getIsSetUser) {
+ isRelogin.show = true
+ await userStore.setUserInfoAction()
+ isRelogin.show = false
+ // 后端过滤菜单
+ await permissionStore.generateRoutes()
+ permissionStore.getAddRouters.forEach((route) => {
+ router.addRoute(route as unknown as RouteRecordRaw) // 动态添加可访问路由表
+ })
+ const redirectPath = from.query.redirect || to.path
+ const redirect = decodeURIComponent(redirectPath as string)
+ const nextData = to.path === redirect ? { ...to, replace: true } : { path: redirect }
+ next(nextData)
+ } else {
+ next()
+ }
+ }
+ } else {
+ if (whiteList.indexOf(to.path) !== -1) {
+ next()
+ } else {
+ next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
+ }
+ }
+})
+
+router.afterEach((to) => {
+ useTitle(to?.meta?.title as string)
+ done() // 结束Progress
+ loadDone()
+})
diff --git a/src/plugins/animate.css/index.ts b/src/plugins/animate.css/index.ts
new file mode 100644
index 0000000..3e93451
--- /dev/null
+++ b/src/plugins/animate.css/index.ts
@@ -0,0 +1 @@
+import 'animate.css'
diff --git a/src/plugins/echarts/index.ts b/src/plugins/echarts/index.ts
new file mode 100644
index 0000000..bfccbb4
--- /dev/null
+++ b/src/plugins/echarts/index.ts
@@ -0,0 +1,45 @@
+import * as echarts from 'echarts/core'
+
+import {
+ BarChart,
+ LineChart,
+ PieChart,
+ MapChart,
+ PictorialBarChart,
+ RadarChart,
+ GaugeChart
+} from 'echarts/charts'
+
+import {
+ TitleComponent,
+ TooltipComponent,
+ GridComponent,
+ PolarComponent,
+ AriaComponent,
+ ParallelComponent,
+ LegendComponent,
+ ToolboxComponent
+} from 'echarts/components'
+
+import { CanvasRenderer } from 'echarts/renderers'
+
+echarts.use([
+ LegendComponent,
+ TitleComponent,
+ TooltipComponent,
+ ToolboxComponent,
+ GridComponent,
+ PolarComponent,
+ AriaComponent,
+ ParallelComponent,
+ BarChart,
+ LineChart,
+ PieChart,
+ MapChart,
+ CanvasRenderer,
+ PictorialBarChart,
+ RadarChart,
+ GaugeChart
+])
+
+export default echarts
diff --git a/src/plugins/elementPlus/index.ts b/src/plugins/elementPlus/index.ts
new file mode 100644
index 0000000..0ae2a8b
--- /dev/null
+++ b/src/plugins/elementPlus/index.ts
@@ -0,0 +1,17 @@
+import type { App } from 'vue'
+// 需要全局引入一些组件,如ElScrollbar,不然一些下拉项样式有问题
+import { ElLoading, ElScrollbar, ElButton } from 'element-plus'
+
+const plugins = [ElLoading]
+
+const components = [ElScrollbar, ElButton]
+
+export const setupElementPlus = (app: App) => {
+ plugins.forEach((plugin) => {
+ app.use(plugin)
+ })
+
+ components.forEach((component) => {
+ app.component(component.name, component)
+ })
+}
diff --git a/src/plugins/formCreate/index.ts b/src/plugins/formCreate/index.ts
new file mode 100644
index 0000000..a6cb821
--- /dev/null
+++ b/src/plugins/formCreate/index.ts
@@ -0,0 +1,43 @@
+import type { App } from 'vue'
+// 👇使用 form-create 需额外全局引入 element plus 组件
+import {
+ ElAside,
+ ElPopconfirm,
+ ElHeader,
+ ElMain,
+ ElContainer,
+ ElDivider,
+ ElTransfer,
+ ElAlert,
+ ElTabs,
+ ElTable,
+ ElTableColumn,
+ ElTabPane
+} from 'element-plus'
+
+import formCreate from '@form-create/element-ui'
+import install from '@form-create/element-ui/auto-import'
+
+const components = [
+ ElAside,
+ ElPopconfirm,
+ ElHeader,
+ ElMain,
+ ElContainer,
+ ElDivider,
+ ElTransfer,
+ ElAlert,
+ ElTabs,
+ ElTable,
+ ElTableColumn,
+ ElTabPane
+]
+
+// 参考 http://www.form-create.com/v3/element-ui/auto-import.html 文档
+export const setupFormCreate = (app: App) => {
+ components.forEach((component) => {
+ app.component(component.name, component)
+ })
+ formCreate.use(install)
+ app.use(formCreate)
+}
diff --git a/src/plugins/svgIcon/index.ts b/src/plugins/svgIcon/index.ts
new file mode 100644
index 0000000..b5b7f70
--- /dev/null
+++ b/src/plugins/svgIcon/index.ts
@@ -0,0 +1,3 @@
+import 'virtual:svg-icons-register'
+
+import '@purge-icons/generated'
diff --git a/src/plugins/tongji/index.ts b/src/plugins/tongji/index.ts
new file mode 100644
index 0000000..ec261a1
--- /dev/null
+++ b/src/plugins/tongji/index.ts
@@ -0,0 +1,23 @@
+import router from '@/router'
+
+// 用于 router push
+window._hmt = window._hmt || []
+// HM_ID
+const HM_ID = import.meta.env.VITE_APP_BAIDU_CODE
+;(function () {
+ // 有值的时候,才开启
+ if (!HM_ID) {
+ return
+ }
+ const hm = document.createElement('script')
+ hm.src = 'https://hm.baidu.com/hm.js?' + HM_ID
+ const s = document.getElementsByTagName('script')[0]
+ s.parentNode.insertBefore(hm, s)
+})()
+
+router.afterEach(function (to) {
+ if (!HM_ID) {
+ return
+ }
+ _hmt.push(['_trackPageview', to.fullPath])
+})
diff --git a/src/plugins/unocss/index.ts b/src/plugins/unocss/index.ts
new file mode 100644
index 0000000..d366b5a
--- /dev/null
+++ b/src/plugins/unocss/index.ts
@@ -0,0 +1 @@
+import 'virtual:uno.css'
diff --git a/src/plugins/vueI18n/helper.ts b/src/plugins/vueI18n/helper.ts
new file mode 100644
index 0000000..da6bc8c
--- /dev/null
+++ b/src/plugins/vueI18n/helper.ts
@@ -0,0 +1,3 @@
+export const setHtmlPageLang = (locale: LocaleType) => {
+ document.querySelector('html')?.setAttribute('lang', locale)
+}
diff --git a/src/plugins/vueI18n/index.ts b/src/plugins/vueI18n/index.ts
new file mode 100644
index 0000000..f386ea8
--- /dev/null
+++ b/src/plugins/vueI18n/index.ts
@@ -0,0 +1,43 @@
+import type { App } from 'vue'
+import { createI18n } from 'vue-i18n'
+import { useLocaleStoreWithOut } from '@/store/modules/locale'
+import type { I18n, I18nOptions } from 'vue-i18n'
+import { setHtmlPageLang } from './helper'
+
+export let i18n: ReturnType
+
+const createI18nOptions = async (): Promise => {
+ const localeStore = useLocaleStoreWithOut()
+ const locale = localeStore.getCurrentLocale
+ const localeMap = localeStore.getLocaleMap
+ const defaultLocal = await import(`../../locales/${locale.lang}.ts`)
+ const message = defaultLocal.default ?? {}
+
+ setHtmlPageLang(locale.lang)
+
+ localeStore.setCurrentLocale({
+ lang: locale.lang
+ // elLocale: elLocal
+ })
+
+ return {
+ legacy: false,
+ locale: locale.lang,
+ fallbackLocale: locale.lang,
+ messages: {
+ [locale.lang]: message
+ },
+ availableLocales: localeMap.map((v) => v.lang),
+ sync: true,
+ silentTranslationWarn: true,
+ missingWarn: false,
+ fallbackWarn:false,
+ silentFallbackWarn: true
+ }
+}
+
+export const setupI18n = async (app: App) => {
+ const options = await createI18nOptions()
+ i18n = createI18n(options) as I18n
+ app.use(i18n)
+}
diff --git a/src/router/index.ts b/src/router/index.ts
new file mode 100644
index 0000000..8f66ca3
--- /dev/null
+++ b/src/router/index.ts
@@ -0,0 +1,28 @@
+import type { App } from 'vue'
+import type { RouteRecordRaw } from 'vue-router'
+import { createRouter, createWebHistory } from 'vue-router'
+import remainingRouter from './modules/remaining'
+
+// 创建路由实例
+const router = createRouter({
+ history: createWebHistory(), // createWebHashHistory URL带#,createWebHistory URL不带#
+ strict: true,
+ routes: remainingRouter as RouteRecordRaw[],
+ scrollBehavior: () => ({ left: 0, top: 0 })
+})
+
+export const resetRouter = (): void => {
+ const resetWhiteNameList = ['Redirect', 'Login', 'NoFind', 'Root']
+ router.getRoutes().forEach((route) => {
+ const { name } = route
+ if (name && !resetWhiteNameList.includes(name as string)) {
+ router.hasRoute(name) && router.removeRoute(name)
+ }
+ })
+}
+
+export const setupRouter = (app: App) => {
+ app.use(router)
+}
+
+export default router
diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts
new file mode 100644
index 0000000..93b4a8b
--- /dev/null
+++ b/src/router/modules/remaining.ts
@@ -0,0 +1,420 @@
+import { Layout } from '@/utils/routerHelper'
+
+const { t } = useI18n()
+/**
+ * redirect: noredirect 当设置 noredirect 的时候该路由在面包屑导航中不可被点击
+ * name:'router-name' 设定路由的名字,一定要填写不然使用时会出现各种问题
+ * meta : {
+ hidden: true 当设置 true 的时候该路由不会再侧边栏出现 如404,login等页面(默认 false)
+
+ alwaysShow: true 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式,
+ 只有一个时,会将那个子路由当做根路由显示在侧边栏,
+ 若你想不管路由下面的 children 声明的个数都显示你的根路由,
+ 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,
+ 一直显示根路由(默认 false)
+
+ title: 'title' 设置该路由在侧边栏和面包屑中展示的名字
+
+ icon: 'svg-name' 设置该路由的图标
+
+ noCache: true 如果设置为true,则不会被 缓存(默认 false)
+
+ breadcrumb: false 如果设置为false,则不会在breadcrumb面包屑中显示(默认 true)
+
+ affix: true 如果设置为true,则会一直固定在tag项中(默认 false)
+
+ noTagsView: true 如果设置为true,则不会出现在tag中(默认 false)
+
+ activeMenu: '/dashboard' 显示高亮的路由路径
+
+ followAuth: '/dashboard' 跟随哪个路由进行权限过滤
+
+ canTo: true 设置为true即使hidden为true,也依然可以进行路由跳转(默认 false)
+ }
+ **/
+const remainingRouter: AppRouteRecordRaw[] = [
+ {
+ path: '/redirect',
+ component: Layout,
+ name: 'Redirect',
+ children: [
+ {
+ path: '/redirect/:path(.*)',
+ name: 'Redirect',
+ component: () => import('@/views/redirect/redirect.vue'),
+ meta: {}
+ }
+ ],
+ meta: {
+ hidden: true,
+ noTagsView: true
+ }
+ },
+ {
+ path: '/',
+ component: Layout,
+ redirect: '/index',
+ name: 'Home',
+ meta: {},
+ children: [
+ {
+ path: 'index',
+ component: () => import('@/views/home/index.vue'),
+ name: 'Index',
+ meta: {
+ title: t('router.home'),
+ icon: 'ep:home-filled',
+ noCache: false,
+ affix: true
+ }
+ }
+ ]
+ },
+ {
+ path: '/user',
+ component: Layout,
+ name: 'UserInfo',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'profile',
+ component: () => import('@/views/profile/index.vue'),
+ name: 'Profile',
+ meta: {
+ canTo: true,
+ hidden: true,
+ noTagsView: false,
+ icon: 'ep:user',
+ title: t('common.profile')
+ }
+ },
+ {
+ path: 'notify-message',
+ component: () => import('@/views/system/notify/my/index.vue'),
+ name: 'MyNotifyMessage',
+ meta: {
+ canTo: true,
+ hidden: true,
+ noTagsView: false,
+ icon: 'ep:message',
+ title: '我的站内信'
+ }
+ }
+ ]
+ },
+
+ {
+ path: '/dict',
+ component: Layout,
+ name: 'dict',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'type/data/:dictType',
+ component: () => import('@/views/system/dict/data/index.vue'),
+ name: 'SystemDictData',
+ meta: {
+ title: '字典数据',
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ icon: '',
+ activeMenu: '/system/dict'
+ }
+ }
+ ]
+ },
+
+ {
+ path: '/codegen',
+ component: Layout,
+ name: 'CodegenEdit',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'edit',
+ component: () => import('@/views/infra/codegen/editTable.vue'),
+ name: 'InfraCodegenEditTable',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ icon: 'ep:edit',
+ title: '修改生成配置',
+ activeMenu: 'infra/codegen/index'
+ }
+ }
+ ]
+ },
+ {
+ path: '/job',
+ component: Layout,
+ name: 'JobL',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: 'job-log',
+ component: () => import('@/views/infra/job/logger/index.vue'),
+ name: 'InfraJobLog',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ icon: 'ep:edit',
+ title: '调度日志',
+ activeMenu: 'infra/job/index'
+ }
+ }
+ ]
+ },
+ {
+ path: '/login',
+ component: () => import('@/views/login/login.vue'),
+ name: 'Login',
+ meta: {
+ hidden: true,
+ title: t('router.login'),
+ noTagsView: true
+ }
+ },{
+ path: '/forgetPassword',
+ component: () => import('@/views/login/forgetPassword.vue'),
+ name: 'ForgetPassword',
+ meta: {
+ hidden: true,
+ title: t('router.login'),
+ noTagsView: true
+ }
+ },
+ {
+ path: '/updatePassword',
+ component: () => import('@/views/login/updatePassword.vue'),
+ name: 'UpdatePassword',
+ meta: {
+ hidden: true,
+ title: t('router.login'),
+ noTagsView: true
+ }
+ },
+ {
+ path: '/updatePasswordNewTips',
+ component: () => import('@/views/login/updatePasswordNewTips.vue'),
+ name: 'UpdatePasswordNewTips',
+ meta: {
+ hidden: true,
+ title: t('router.login'),
+ noTagsView: true
+ }
+ },
+
+ {
+ path: '/sso',
+ component: () => import('@/views/login/login.vue'),
+ name: 'SSOLogin',
+ meta: {
+ hidden: true,
+ title: t('router.login'),
+ noTagsView: true
+ }
+ },
+ {
+ path: '/403',
+ component: () => import('@/views/error/403.vue'),
+ name: 'NoAccess',
+ meta: {
+ hidden: true,
+ title: '403',
+ noTagsView: true
+ }
+ },
+ {
+ path: '/404',
+ component: () => import('@/views/error/404.vue'),
+ name: 'NoFound',
+ meta: {
+ hidden: true,
+ title: '404',
+ noTagsView: true
+ }
+ },
+ {
+ path: '/500',
+ component: () => import('@/views/error/500.vue'),
+ name: 'Error',
+ meta: {
+ hidden: true,
+ title: '500',
+ noTagsView: true
+ }
+ },
+ {
+ path: '/purchasereceiptReport',
+ component: () => import('@/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptReport/index.vue'),
+ name: 'purchasereceiptReport',
+ meta: {
+ hidden: true,
+ title: t('ts.查看质检报告'),
+ noTagsView: true
+ }
+ },
+ {
+ path: '/supplierResume',
+ component: () => import('@/views/wms/purchasereceiptManage/supplierdeliver/supplierResume/index.vue'),
+ name: 'supplierResume',
+ meta: {
+ hidden: true,
+ title: t('ts.查看履历表'),
+ noTagsView: true
+ }
+ },
+ {
+ path: '/bpm',
+ component: Layout,
+ name: 'bpm',
+ meta: {
+ hidden: true
+ },
+ children: [
+ {
+ path: '/manager/form/edit',
+ component: () => import('@/views/bpm/form/editor/index.vue'),
+ name: 'BpmFormEditor',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '设计流程表单',
+ activeMenu: '/bpm/manager/form'
+ }
+ },
+ {
+ path: '/manager/model/edit',
+ component: () => import('@/views/bpm/model/editor/index.vue'),
+ name: 'BpmModelEditor',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '设计流程',
+ activeMenu: '/bpm/manager/model'
+ }
+ },
+ {
+ path: '/manager/definition',
+ component: () => import('@/views/bpm/definition/index.vue'),
+ name: 'BpmProcessDefinition',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '流程定义',
+ activeMenu: '/bpm/manager/model'
+ }
+ },
+ {
+ path: '/manager/task-assign-rule',
+ component: () => import('@/views/bpm/taskAssignRule/index.vue'),
+ name: 'BpmTaskAssignRuleList',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '任务分配规则'
+ }
+ },
+ {
+ path: '/process-instance/create',
+ component: () => import('@/views/bpm/processInstance/create/index.vue'),
+ name: 'BpmProcessInstanceCreate',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '发起流程',
+ activeMenu: 'bpm/processInstance/create'
+ }
+ },
+ {
+ path: '/process-instance/detail',
+ component: () => import('@/views/bpm/processInstance/detail/index.vue'),
+ name: 'BpmProcessInstanceDetail',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '流程详情',
+ activeMenu: 'bpm/processInstance/detail'
+ }
+ },
+ {
+ path: '/bpm/oa/leave/create',
+ component: () => import('@/views/bpm/oa/leave/create.vue'),
+ name: 'OALeaveCreate',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '发起 OA 请假',
+ activeMenu: '/bpm/oa/leave'
+ }
+ },
+ {
+ path: '/bpm/oa/leave/detail',
+ component: () => import('@/views/bpm/oa/leave/detail.vue'),
+ name: 'OALeaveDetail',
+ meta: {
+ noCache: true,
+ hidden: true,
+ canTo: true,
+ title: '查看 OA 请假',
+ activeMenu: '/bpm/oa/leave'
+ }
+ }
+ ]
+ },
+ {
+ path: '/wms',
+ component: Layout,
+ name: 'wms',
+ meta: {
+ hidden: true
+ },
+ children: [
+ // {
+ // path: '/wms/itembasic-manage/itembasic-detail',
+ // component: () => import('@/views/wms/itembasic/ItembasicDetail.vue'),
+ // name: 'ItembasicDetail',
+ // meta: {
+ // noCache: true,
+ // hidden: true,
+ // canTo: true,
+ // title: '物料详情',
+ // activeMenu: '/wms/itembasic-manage/itembasic'
+ // }
+ // },
+ // {
+ // path: '/wms/itempackaging-manage/itempackaging-detail',
+ // component: () => import('@/views/wms/itempackaging/ItempackagingDetail.vue'),
+ // name: 'ItempackagingDetail',
+ // meta: {
+ // noCache: true,
+ // hidden: true,
+ // canTo: true,
+ // title: '包装详情',
+ // activeMenu: '/wms/itempackaging-manage/itempackaging'
+ // }
+ // }
+
+ ]
+ },
+]
+
+export default remainingRouter
diff --git a/src/store/index.ts b/src/store/index.ts
new file mode 100644
index 0000000..65964ea
--- /dev/null
+++ b/src/store/index.ts
@@ -0,0 +1,10 @@
+import type { App } from 'vue'
+import { createPinia } from 'pinia'
+
+const store = createPinia()
+
+export const setupStore = (app: App) => {
+ app.use(store)
+}
+
+export { store }
diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts
new file mode 100644
index 0000000..8aeea33
--- /dev/null
+++ b/src/store/modules/app.ts
@@ -0,0 +1,294 @@
+import { defineStore } from 'pinia'
+import { store } from '../index'
+import { setCssVar, humpToUnderline } from '@/utils'
+import { ElMessage } from 'element-plus'
+import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
+import { ElementPlusSize } from '@/types/elementPlus'
+import { LayoutType } from '@/types/layout'
+import { ThemeTypes } from '@/types/theme'
+
+const { wsCache } = useCache()
+
+interface AppState {
+ breadcrumb: boolean
+ breadcrumbIcon: boolean
+ collapse: boolean
+ uniqueOpened: boolean
+ hamburger: boolean
+ screenfull: boolean
+ search: boolean
+ size: boolean
+ locale: boolean
+ message: boolean
+ tagsView: boolean
+ tagsViewIcon: boolean
+ logo: boolean
+ fixedHeader: boolean
+ greyMode: boolean
+ pageLoading: boolean
+ layout: LayoutType
+ title: string
+ userInfo: string
+ isDark: boolean
+ currentSize: ElementPlusSize
+ sizeMap: ElementPlusSize[]
+ mobile: boolean
+ footer: boolean
+ theme: ThemeTypes
+ fixedMenu: boolean
+ categoryRoutePath:string
+ showCategoryMenu: boolean
+ categoryMenuHeight:number
+}
+
+export const useAppStore = defineStore('app', {
+ state: (): AppState => {
+ return {
+ userInfo: 'userInfo', // 登录信息存储字段-建议每个项目换一个字段,避免与其他项目冲突
+ sizeMap: ['default', 'large', 'small'],
+ mobile: false, // 是否是移动端
+ title: import.meta.env.VITE_APP_TITLE, // 标题
+ pageLoading: false, // 路由跳转loading
+
+ breadcrumb: true, // 面包屑
+ breadcrumbIcon: true, // 面包屑图标
+ collapse: false, // 折叠菜单
+ uniqueOpened: true, // 是否只保持一个子菜单的展开
+ hamburger: true, // 折叠图标
+ screenfull: true, // 全屏图标
+ search: true, // 搜索图标
+ size: true, // 尺寸图标
+ locale: true, // 多语言图标
+ message: true, // 消息图标
+ tagsView: true, // 标签页
+ tagsViewIcon: true, // 是否显示标签图标
+ logo: true, // logo
+ fixedHeader: true, // 固定toolheader
+ footer: false, // 显示页脚
+ greyMode: false, // 是否开始灰色模式,用于特殊悼念日
+ fixedMenu: wsCache.get('fixedMenu') || false, // 是否固定菜单
+
+ layout: wsCache.get(CACHE_KEY.LAYOUT) || 'classic', // layout布局
+ isDark: wsCache.get(CACHE_KEY.IS_DARK) || false, // 是否是暗黑模式
+ currentSize: wsCache.get('default') || 'default', // 组件尺寸
+ theme: wsCache.get(CACHE_KEY.THEME) || {
+ // 主题色
+ elColorPrimary: '#409eff',
+ // 左侧菜单边框颜色
+ leftMenuBorderColor: 'inherit',
+ // 左侧菜单背景颜色
+ leftMenuBgColor: '#fff',
+ // 左侧菜单浅色背景颜色
+ leftMenuBgLightColor: '#fff',
+ // 左侧菜单选中背景颜色
+ leftMenuBgActiveColor: 'rgb(241,243,244)',
+ // 左侧菜单收起选中背景颜色
+ leftMenuCollapseBgActiveColor: 'var(--el-color-primary)',
+ // 左侧菜单字体颜色
+ leftMenuTextColor: '#666',
+ // 左侧菜单选中字体颜色
+ leftMenuTextActiveColor: '#0069ef',
+ // logo字体颜色
+ logoTitleTextColor: '#fff',
+ // logo边框颜色
+ logoBorderColor: 'inherit',
+ // 头部背景颜色
+ topHeaderBgColor: '#fff',
+ // 头部字体颜色
+ topHeaderTextColor: 'inherit',
+ // 头部悬停颜色
+ topHeaderHoverColor: '#f6f6f6',
+ // 头部边框颜色
+ topToolBorderColor: '#eee'
+ },
+ categoryRoutePath:'',
+ showCategoryMenu:true, // true:顶部展示一级菜单栏 false:只有左侧菜单栏
+ categoryMenuHeight:60 // true:顶部展示一级菜单栏 false:只有左侧菜单栏
+ }
+ },
+ getters: {
+ getBreadcrumb(): boolean {
+ return this.breadcrumb
+ },
+ getBreadcrumbIcon(): boolean {
+ return this.breadcrumbIcon
+ },
+ getCollapse(): boolean {
+ return this.collapse
+ },
+ getUniqueOpened(): boolean {
+ return this.uniqueOpened
+ },
+ getHamburger(): boolean {
+ return this.hamburger
+ },
+ getScreenfull(): boolean {
+ return this.screenfull
+ },
+ getSize(): boolean {
+ return this.size
+ },
+ getLocale(): boolean {
+ return this.locale
+ },
+ getMessage(): boolean {
+ return this.message
+ },
+ getTagsView(): boolean {
+ return this.tagsView
+ },
+ getTagsViewIcon(): boolean {
+ return this.tagsViewIcon
+ },
+ getLogo(): boolean {
+ return this.logo
+ },
+ getFixedHeader(): boolean {
+ return this.fixedHeader
+ },
+ getGreyMode(): boolean {
+ return this.greyMode
+ },
+ getFixedMenu(): boolean {
+ return this.fixedMenu
+ },
+ getPageLoading(): boolean {
+ return this.pageLoading
+ },
+ getLayout(): LayoutType {
+ return this.layout
+ },
+ getTitle(): string {
+ return this.title
+ },
+ getUserInfo(): string {
+ return this.userInfo
+ },
+ getIsDark(): boolean {
+ return this.isDark
+ },
+ getCurrentSize(): ElementPlusSize {
+ return this.currentSize
+ },
+ getSizeMap(): ElementPlusSize[] {
+ return this.sizeMap
+ },
+ getMobile(): boolean {
+ return this.mobile
+ },
+ getTheme(): ThemeTypes {
+ return this.theme
+ },
+ getFooter(): boolean {
+ return this.footer
+ },
+ getCategoryRoutePath():string{
+ return this.categoryRoutePath
+ },
+ getShowCategoryMenu():boolean {
+ return this.showCategoryMenu
+ },
+ getCategoryMenuHeight():number {
+ return this.categoryMenuHeight
+ }
+ },
+ actions: {
+ setBreadcrumb(breadcrumb: boolean) {
+ this.breadcrumb = breadcrumb
+ },
+ setBreadcrumbIcon(breadcrumbIcon: boolean) {
+ this.breadcrumbIcon = breadcrumbIcon
+ },
+ setCollapse(collapse: boolean) {
+ this.collapse = collapse
+ },
+ setUniqueOpened(uniqueOpened: boolean) {
+ this.uniqueOpened = uniqueOpened
+ },
+ setHamburger(hamburger: boolean) {
+ this.hamburger = hamburger
+ },
+ setScreenfull(screenfull: boolean) {
+ this.screenfull = screenfull
+ },
+ setSize(size: boolean) {
+ this.size = size
+ },
+ setLocale(locale: boolean) {
+ this.locale = locale
+ },
+ setMessage(message: boolean) {
+ this.message = message
+ },
+ setTagsView(tagsView: boolean) {
+ this.tagsView = tagsView
+ },
+ setTagsViewIcon(tagsViewIcon: boolean) {
+ this.tagsViewIcon = tagsViewIcon
+ },
+ setLogo(logo: boolean) {
+ this.logo = logo
+ },
+ setFixedHeader(fixedHeader: boolean) {
+ this.fixedHeader = fixedHeader
+ },
+ setGreyMode(greyMode: boolean) {
+ this.greyMode = greyMode
+ },
+ setFixedMenu(fixedMenu: boolean) {
+ wsCache.set('fixedMenu', fixedMenu)
+ this.fixedMenu = fixedMenu
+ },
+ setPageLoading(pageLoading: boolean) {
+ this.pageLoading = pageLoading
+ },
+ setLayout(layout: LayoutType) {
+ if (this.mobile && layout !== 'classic') {
+ ElMessage.warning('移动端模式下不支持切换其他布局')
+ return
+ }
+ this.layout = layout
+ wsCache.set(CACHE_KEY.LAYOUT, this.layout)
+ },
+ setTitle(title: string) {
+ this.title = title
+ },
+ setIsDark(isDark: boolean) {
+ this.isDark = isDark
+ if (this.isDark) {
+ document.documentElement.classList.add('dark')
+ document.documentElement.classList.remove('light')
+ } else {
+ document.documentElement.classList.add('light')
+ document.documentElement.classList.remove('dark')
+ }
+ wsCache.set(CACHE_KEY.IS_DARK, this.isDark)
+ },
+ setCurrentSize(currentSize: ElementPlusSize) {
+ this.currentSize = currentSize
+ wsCache.set('currentSize', this.currentSize)
+ },
+ setMobile(mobile: boolean) {
+ this.mobile = mobile
+ },
+ setTheme(theme: ThemeTypes) {
+ this.theme = Object.assign(this.theme, theme)
+ wsCache.set(CACHE_KEY.THEME, this.theme)
+ },
+ setCssVarTheme() {
+ for (const key in this.theme) {
+ setCssVar(`--${humpToUnderline(key)}`, this.theme[key])
+ }
+ },
+ setFooter(footer: boolean) {
+ this.footer = footer
+ },
+ setCategoryRoutePath(path:string){
+ this.categoryRoutePath = path
+ }
+ }
+})
+
+export const useAppStoreWithOut = () => {
+ return useAppStore(store)
+}
diff --git a/src/store/modules/dict.ts b/src/store/modules/dict.ts
new file mode 100644
index 0000000..73b6121
--- /dev/null
+++ b/src/store/modules/dict.ts
@@ -0,0 +1,108 @@
+import { defineStore } from 'pinia'
+import { store } from '../index'
+// @ts-ignore
+import { DictDataVO } from '@/api/system/dict/types'
+import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
+const { wsCache } = useCache('sessionStorage')
+import { listSimpleDictData } from '@/api/system/dict/dict.data'
+import { getAccessToken } from '@/utils/auth'
+
+export interface DictValueType {
+ value: any
+ label: string
+ clorType?: string
+ cssClass?: string
+}
+export interface DictTypeType {
+ dictType: string
+ dictValue: DictValueType[]
+}
+export interface DictState {
+ dictMap: Map
+ isSetDict: boolean
+}
+
+export const useDictStore = defineStore('dict', {
+ state: (): DictState => ({
+ dictMap: new Map(),
+ isSetDict: false
+ }),
+ getters: {
+ getDictMap(): Recordable {
+ const dictMap = wsCache.get(CACHE_KEY.DICT_CACHE)
+ if (dictMap) {
+ this.dictMap = dictMap
+ }
+ return this.dictMap
+ },
+ getIsSetDict(): boolean {
+ return this.isSetDict
+ }
+ },
+ actions: {
+ async setDictMap() {
+ const dictMap = wsCache.get(CACHE_KEY.DICT_CACHE)
+ if (dictMap) {
+ this.dictMap = dictMap
+ this.isSetDict = true
+ } else {
+ if(!getAccessToken()){
+ return
+ }
+ const res = await listSimpleDictData()
+ // 设置数据
+ const dictDataMap = new Map()
+ res.forEach((dictData: DictDataVO) => {
+ // 获得 dictType 层级
+ const enumValueObj = dictDataMap[dictData.dictType]
+ if (!enumValueObj) {
+ dictDataMap[dictData.dictType] = []
+ }
+ // 处理 dictValue 层级
+ dictDataMap[dictData.dictType].push({
+ value: dictData.value,
+ label: dictData.label,
+ colorType: dictData.colorType,
+ cssClass: dictData.cssClass
+ })
+ })
+ this.dictMap = dictDataMap
+ this.isSetDict = true
+ wsCache.set(CACHE_KEY.DICT_CACHE, dictDataMap, { exp: 60 }) // 60 秒 过期
+ }
+ },
+ getDictByType(type: string) {
+ if (!this.isSetDict) {
+ this.setDictMap()
+ }
+ return this.dictMap[type]
+ },
+ async resetDict() {
+ wsCache.delete(CACHE_KEY.DICT_CACHE)
+ const res = await listSimpleDictData()
+ // 设置数据
+ const dictDataMap = new Map()
+ res.forEach((dictData: DictDataVO) => {
+ // 获得 dictType 层级
+ const enumValueObj = dictDataMap[dictData.dictType]
+ if (!enumValueObj) {
+ dictDataMap[dictData.dictType] = []
+ }
+ // 处理 dictValue 层级
+ dictDataMap[dictData.dictType].push({
+ value: dictData.value,
+ label: dictData.label,
+ colorType: dictData.colorType,
+ cssClass: dictData.cssClass
+ })
+ })
+ this.dictMap = dictDataMap
+ this.isSetDict = true
+ wsCache.set(CACHE_KEY.DICT_CACHE, dictDataMap, { exp: 60 }) // 60 秒 过期
+ }
+ }
+})
+
+export const useDictStoreWithOut = () => {
+ return useDictStore(store)
+}
diff --git a/src/store/modules/locale.ts b/src/store/modules/locale.ts
new file mode 100644
index 0000000..c0a020d
--- /dev/null
+++ b/src/store/modules/locale.ts
@@ -0,0 +1,59 @@
+import { defineStore } from 'pinia'
+import { store } from '../index'
+import zhCn from 'element-plus/es/locale/lang/zh-cn'
+import en from 'element-plus/es/locale/lang/en'
+import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
+import { LocaleDropdownType } from '@/types/localeDropdown'
+
+const { wsCache } = useCache()
+
+const elLocaleMap = {
+ 'zh-CN': zhCn,
+ en: en
+}
+interface LocaleState {
+ currentLocale: LocaleDropdownType
+ localeMap: LocaleDropdownType[]
+}
+
+export const useLocaleStore = defineStore('locales', {
+ state: (): LocaleState => {
+ return {
+ currentLocale: {
+ lang: wsCache.get(CACHE_KEY.LANG) || 'zh-CN',
+ elLocale: elLocaleMap[wsCache.get(CACHE_KEY.LANG) || 'zh-CN']
+ },
+ // 多语言
+ localeMap: [
+ {
+ lang: 'zh-CN',
+ name: '简体中文'
+ },
+ {
+ lang: 'en-US',
+ name: 'English'
+ }
+ ]
+ }
+ },
+ getters: {
+ getCurrentLocale(): LocaleDropdownType {
+ return this.currentLocale
+ },
+ getLocaleMap(): LocaleDropdownType[] {
+ return this.localeMap
+ }
+ },
+ actions: {
+ setCurrentLocale(localeMap: LocaleDropdownType) {
+ // this.locale = Object.assign(this.locale, localeMap)
+ this.currentLocale.lang = localeMap?.lang
+ this.currentLocale.elLocale = elLocaleMap[localeMap?.lang]
+ wsCache.set(CACHE_KEY.LANG, localeMap?.lang)
+ }
+ }
+})
+
+export const useLocaleStoreWithOut = () => {
+ return useLocaleStore(store)
+}
diff --git a/src/store/modules/permission.ts b/src/store/modules/permission.ts
new file mode 100644
index 0000000..84402e8
--- /dev/null
+++ b/src/store/modules/permission.ts
@@ -0,0 +1,76 @@
+import { defineStore } from 'pinia'
+import { store } from '../index'
+import { cloneDeep } from 'lodash-es'
+import remainingRouter from '@/router/modules/remaining'
+import { flatMultiLevelRoutes, generateRoute } from '@/utils/routerHelper'
+import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
+import { getTenantId } from '@/utils/auth'
+
+const { wsCache } = useCache()
+
+export interface PermissionState {
+ routers: AppRouteRecordRaw[]
+ addRouters: AppRouteRecordRaw[]
+ menuTabRouters: AppRouteRecordRaw[]
+}
+
+export const usePermissionStore = defineStore('permission', {
+ state: (): PermissionState => ({
+ routers: [],
+ addRouters: [],
+ menuTabRouters: []
+ }),
+ getters: {
+ getRouters(): AppRouteRecordRaw[] {
+ return this.routers
+ },
+ getAddRouters(): AppRouteRecordRaw[] {
+ return flatMultiLevelRoutes(cloneDeep(this.addRouters))
+ },
+ getMenuTabRouters(): AppRouteRecordRaw[] {
+ return this.menuTabRouters
+ }
+ },
+ actions: {
+ async generateRoutes(): Promise {
+ return new Promise(async (resolve) => {
+ // let names =[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]
+ // let tenant = names.find(item=>item.value == getTenantId())
+ // 获得菜单列表,它在登录的时候,setUserInfoAction 方法中已经进行获取
+ let res: AppCustomRouteRecordRaw[] = []
+ if (wsCache.get(CACHE_KEY.ROLE_ROUTERS)) {
+ res = wsCache.get(CACHE_KEY.ROLE_ROUTERS) as AppCustomRouteRecordRaw[]
+ // res.forEach(item=>{
+ // if(item.name == '富维海拉供应商系统'&&tenant){
+ // item.name = item.name + tenant['text']
+ // }
+ // })
+ }
+ console.log('菜单res',res)
+ const routerMap: AppRouteRecordRaw[] = generateRoute(res)
+ // 动态路由,404一定要放到最后面
+ this.addRouters = routerMap.concat([
+ {
+ path: '/:path(.*)*',
+ redirect: '/404',
+ name: '404Page',
+ meta: {
+ hidden: true,
+ breadcrumb: false
+ }
+ }
+ ])
+ // 渲染菜单的所有路由
+ this.routers = cloneDeep(remainingRouter).concat(routerMap)
+ resolve()
+ })
+ },
+ setMenuTabRouters(routers: AppRouteRecordRaw[]): void {
+ this.menuTabRouters = routers
+ }
+ }
+})
+
+export const usePermissionStoreWithOut = () => {
+ return usePermissionStore(store)
+}
diff --git a/src/store/modules/tagsView.ts b/src/store/modules/tagsView.ts
new file mode 100644
index 0000000..a60d0e4
--- /dev/null
+++ b/src/store/modules/tagsView.ts
@@ -0,0 +1,140 @@
+import router from '@/router'
+import type { RouteLocationNormalizedLoaded } from 'vue-router'
+import { getRawRoute } from '@/utils/routerHelper'
+import { defineStore } from 'pinia'
+import { store } from '../index'
+import { findIndex } from '@/utils'
+
+export interface TagsViewState {
+ visitedViews: RouteLocationNormalizedLoaded[]
+ cachedViews: Set
+}
+
+export const useTagsViewStore = defineStore('tagsView', {
+ state: (): TagsViewState => ({
+ visitedViews: [],
+ cachedViews: new Set()
+ }),
+ getters: {
+ getVisitedViews(): RouteLocationNormalizedLoaded[] {
+ return this.visitedViews
+ },
+ getCachedViews(): string[] {
+ return Array.from(this.cachedViews)
+ }
+ },
+ actions: {
+ // 新增缓存和tag
+ addView(view: RouteLocationNormalizedLoaded): void {
+ this.addVisitedView(view)
+ this.addCachedView()
+ },
+ // 新增tag
+ addVisitedView(view: RouteLocationNormalizedLoaded) {
+ if (this.visitedViews.some((v) => v.path === view.path)) return
+ if (view.meta?.noTagsView) return
+ this.visitedViews.push(
+ Object.assign({}, view, {
+ title: view.meta?.title || 'no-name'
+ })
+ )
+ },
+ // 新增缓存
+ addCachedView() {
+ const cacheMap: Set = new Set()
+ for (const v of this.visitedViews) {
+ const item = getRawRoute(v)
+ const needCache = !item.meta?.noCache
+ if (!needCache) {
+ continue
+ }
+ const name = item.name as string
+ cacheMap.add(name)
+ }
+ if (Array.from(this.cachedViews).sort().toString() === Array.from(cacheMap).sort().toString())
+ return
+ this.cachedViews = cacheMap
+ },
+ // 删除某个
+ delView(view: RouteLocationNormalizedLoaded) {
+ this.delVisitedView(view)
+ this.delCachedView()
+ },
+ // 删除tag
+ delVisitedView(view: RouteLocationNormalizedLoaded) {
+ for (const [i, v] of this.visitedViews.entries()) {
+ if (v.path === view.path) {
+ this.visitedViews.splice(i, 1)
+ break
+ }
+ }
+ },
+ // 删除缓存
+ delCachedView() {
+ const route = router.currentRoute.value
+ const index = findIndex(this.getCachedViews, (v) => v === route.name)
+ if (index > -1) {
+ this.cachedViews.delete(this.getCachedViews[index])
+ }
+ },
+ // 删除所有缓存和tag
+ delAllViews() {
+ this.delAllVisitedViews()
+ this.delCachedView()
+ },
+ // 删除所有tag
+ delAllVisitedViews() {
+ // const affixTags = this.visitedViews.filter((tag) => tag.meta.affix)
+ this.visitedViews = []
+ },
+ // 删除其他
+ delOthersViews(view: RouteLocationNormalizedLoaded) {
+ this.delOthersVisitedViews(view)
+ this.addCachedView()
+ },
+ // 删除其他tag
+ delOthersVisitedViews(view: RouteLocationNormalizedLoaded) {
+ this.visitedViews = this.visitedViews.filter((v) => {
+ return v?.meta?.affix || v.path === view.path
+ })
+ },
+ // 删除左侧
+ delLeftViews(view: RouteLocationNormalizedLoaded) {
+ const index = findIndex(
+ this.visitedViews,
+ (v) => v.path === view.path
+ )
+ if (index > -1) {
+ this.visitedViews = this.visitedViews.filter((v, i) => {
+ return v?.meta?.affix || v.path === view.path || i > index
+ })
+ this.addCachedView()
+ }
+ },
+ // 删除右侧
+ delRightViews(view: RouteLocationNormalizedLoaded) {
+ const index = findIndex(
+ this.visitedViews,
+ (v) => v.path === view.path
+ )
+ if (index > -1) {
+ this.visitedViews = this.visitedViews.filter((v, i) => {
+ return v?.meta?.affix || v.path === view.path || i < index
+ })
+ this.addCachedView()
+ }
+ },
+ updateVisitedView(view: RouteLocationNormalizedLoaded) {
+ for (let v of this.visitedViews) {
+ if (v.path === view.path) {
+ v = Object.assign(v, view)
+ break
+ }
+ }
+ }
+ }
+})
+
+export const useTagsViewStoreWithOut = () => {
+ return useTagsViewStore(store)
+}
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
new file mode 100644
index 0000000..2f54e5e
--- /dev/null
+++ b/src/store/modules/user.ts
@@ -0,0 +1,91 @@
+import { store } from '../index'
+import { defineStore } from 'pinia'
+import { getAccessToken, removeToken } from '@/utils/auth'
+import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
+import { getInfo, loginOut } from '@/api/login'
+import { getUserProfile } from '@/api/system/user/profile'
+
+const { wsCache } = useCache()
+
+interface UserVO {
+ id: number
+ avatar: string
+ nickname: string
+}
+interface UserInfoVO {
+ permissions: string[]
+ roles: string[]
+ isSetUser: boolean
+ user: UserVO
+ userSelfInfo:object
+}
+
+export const useUserStore = defineStore('admin-user', {
+ state: (): UserInfoVO => ({
+ permissions: [],
+ roles: [],
+ isSetUser: false,
+ user: {
+ id: 0,
+ avatar: '',
+ nickname: ''
+ },
+ userSelfInfo:{}
+ }),
+ getters: {
+ getPermissions(): string[] {
+ return this.permissions
+ },
+ getRoles(): string[] {
+ return this.roles
+ },
+ getIsSetUser(): boolean {
+ return this.isSetUser
+ },
+ getUser(): UserVO {
+ return this.user
+ },
+ getUserSelfInfo(): UserVO {
+ return this.userSelfInfo
+ }
+ },
+ actions: {
+ async setUserInfoAction() {
+ if (!getAccessToken()) {
+ this.resetState()
+ return null
+ }
+ let userInfo = wsCache.get(CACHE_KEY.USER)
+ if (!userInfo) {
+ userInfo = await getInfo()
+ }
+ this.userSelfInfo = await getUserProfile()
+ this.permissions = userInfo.permissions
+ this.roles = userInfo.roles
+ this.user = userInfo.user
+ this.isSetUser = true
+ wsCache.set(CACHE_KEY.USER, userInfo)
+ wsCache.set(CACHE_KEY.ROLE_ROUTERS, userInfo.menus)
+ },
+ async loginOut() {
+ await loginOut()
+ removeToken()
+ wsCache.clear()
+ this.resetState()
+ },
+ resetState() {
+ this.permissions = []
+ this.roles = []
+ this.isSetUser = false
+ this.user = {
+ id: 0,
+ avatar: '',
+ nickname: ''
+ }
+ }
+ }
+})
+
+export const useUserStoreWithOut = () => {
+ return useUserStore(store)
+}
diff --git a/src/styles/global.module.scss b/src/styles/global.module.scss
new file mode 100644
index 0000000..8448a92
--- /dev/null
+++ b/src/styles/global.module.scss
@@ -0,0 +1,6 @@
+@import './variables.scss';
+// 导出变量
+:export {
+ namespace: $namespace;
+ elNamespace: $elNamespace;
+}
diff --git a/src/styles/index.scss b/src/styles/index.scss
new file mode 100644
index 0000000..ab4f259
--- /dev/null
+++ b/src/styles/index.scss
@@ -0,0 +1,43 @@
+@import './var.css';
+@import 'element-plus/theme-chalk/dark/css-vars.css';
+
+.reset-margin [class*='el-icon'] + span {
+ margin-left: 2px !important;
+}
+
+// 解决抽屉弹出时,body宽度变化的问题
+.el-popup-parent--hidden {
+ width: 100% !important;
+}
+
+// 解决表格内容超过表格总宽度后,横向滚动条前端顶不到表格边缘的问题
+.el-scrollbar__bar {
+ display: flex;
+ justify-content: flex-start;
+}
+
+/* nprogress 适配 element-plus 的主题色 */
+#nprogress {
+ & .bar {
+ background-color: var(--el-color-primary) !important;
+ }
+
+ & .peg {
+ box-shadow:
+ 0 0 10px var(--el-color-primary),
+ 0 0 5px var(--el-color-primary) !important;
+ }
+
+ & .spinner-icon {
+ border-top-color: var(--el-color-primary);
+ border-left-color: var(--el-color-primary);
+ }
+}
+
+.ellipsis{
+ overflow: hidden;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ word-break: break-all;
+}
diff --git a/src/styles/theme.scss b/src/styles/theme.scss
new file mode 100644
index 0000000..39b03b3
--- /dev/null
+++ b/src/styles/theme.scss
@@ -0,0 +1,6 @@
+// .text-color {
+// color: var(--el-text-color-regular);
+// }
+// .dark .dark\:text-color {
+// color: rgba(255, 255, 255, var(--dark-text-color));
+// }
diff --git a/src/styles/var.css b/src/styles/var.css
new file mode 100644
index 0000000..a81324d
--- /dev/null
+++ b/src/styles/var.css
@@ -0,0 +1,67 @@
+:root {
+ --login-bg-color: #0069ef;
+
+ --left-menu-max-width: 200px;
+
+ --left-menu-min-width: 64px;
+
+ --left-menu-bg-color: #001529;
+
+ --left-menu-bg-light-color: #0f2438;
+
+ --left-menu-bg-active-color: var(--el-color-primary);
+
+ --left-menu-text-color: #bfcbd9;
+
+ --left-menu-text-active-color: #fff;
+
+ --left-menu-collapse-bg-active-color: var(--el-color-primary);
+ /* left menu end */
+
+ /* logo start */
+ --logo-height: 60px;
+
+ --logo-title-text-color: #fff;
+ /* logo end */
+
+ /* header start */
+ --top-header-bg-color: '#fff';
+
+ --top-header-text-color: 'inherit';
+
+ --top-header-hover-color: #f6f6f6;
+
+ --top-tool-height: var(--logo-height);
+ --top-category-height: 60px;
+
+ --top-tool-p-x: 0;
+
+ --tags-view-height: 35px;
+ /* header start */
+
+ /* tab menu start */
+ --tab-menu-max-width: 80px;
+
+ --tab-menu-min-width: 30px;
+
+ --tab-menu-collapse-height: 36px;
+ /* tab menu end */
+
+ --app-content-padding: 20px;
+
+ --app-content-bg-color: #f5f7f9;
+
+ --app-footer-height: 50px;
+
+ --transition-time-02: 0.2s;
+}
+
+.dark {
+ --app-content-bg-color: var(--el-bg-color);
+}
+
+html,
+body {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
diff --git a/src/styles/variables.scss b/src/styles/variables.scss
new file mode 100644
index 0000000..00b66f1
--- /dev/null
+++ b/src/styles/variables.scss
@@ -0,0 +1,4 @@
+// 命名空间
+$namespace: v;
+// el命名空间
+$elNamespace: el;
diff --git a/src/types/components.d.ts b/src/types/components.d.ts
new file mode 100644
index 0000000..8de1f33
--- /dev/null
+++ b/src/types/components.d.ts
@@ -0,0 +1,56 @@
+export type ComponentName =
+ | 'Radio'
+ | 'RadioButton'
+ | 'Checkbox'
+ | 'CheckboxButton'
+ | 'Input'
+ | 'Autocomplete'
+ | 'InputNumber'
+ | 'Select'
+ | 'Cascader'
+ | 'Switch'
+ | 'Slider'
+ | 'TimePicker'
+ | 'DatePicker'
+ | 'Rate'
+ | 'ColorPicker'
+ | 'Transfer'
+ | 'Divider'
+ | 'TimeSelect'
+ | 'SelectV2'
+ | 'TreeSelect'
+ | 'InputPassword'
+ | 'Editor'
+ | 'UploadImg'
+ | 'UploadImgs'
+ | 'UploadFile'
+
+export type ColProps = {
+ span?: number
+ xs?: number
+ sm?: number
+ md?: number
+ lg?: number
+ xl?: number
+ tag?: string
+}
+
+export type ComponentOptions = {
+ label?: string
+ value?: FormValueType
+ disabled?: boolean
+ key?: string | number
+ children?: ComponentOptions[]
+ options?: ComponentOptions[]
+} & Recordable
+
+export type ComponentOptionsAlias = {
+ labelField?: string
+ valueField?: string
+}
+
+export type ComponentProps = {
+ optionsAlias?: ComponentOptionsAlias
+ options?: ComponentOptions[]
+ optionsSlot?: boolean
+} & Recordable
diff --git a/src/types/configGlobal.d.ts b/src/types/configGlobal.d.ts
new file mode 100644
index 0000000..f6d7b3c
--- /dev/null
+++ b/src/types/configGlobal.d.ts
@@ -0,0 +1,4 @@
+import { ElementPlusSize } from './elementPlus'
+export interface ConfigGlobalTypes {
+ size?: ElementPlusSize
+}
diff --git a/src/types/contextMenu.d.ts b/src/types/contextMenu.d.ts
new file mode 100644
index 0000000..0738d0e
--- /dev/null
+++ b/src/types/contextMenu.d.ts
@@ -0,0 +1,7 @@
+export type contextMenuSchema = {
+ disabled?: boolean
+ divided?: boolean
+ icon?: string
+ label: string
+ command?: (item: contextMenuSchema) => void
+}
diff --git a/src/types/descriptions.d.ts b/src/types/descriptions.d.ts
new file mode 100644
index 0000000..62810c7
--- /dev/null
+++ b/src/types/descriptions.d.ts
@@ -0,0 +1,15 @@
+export interface DescriptionsSchema {
+ span?: number // 占多少分
+ field: string // 字段名
+ label?: string // label名
+ width?: string | number
+ minWidth?: string | number
+ align?: 'left' | 'center' | 'right'
+ labelAlign?: 'left' | 'center' | 'right'
+ className?: string
+ labelClassName?: string
+ dateFormat?: string // add by 星语:支持时间的格式化
+ valueFilter?: function // 展示的过滤函数
+ slotFilter?:boolean // 插槽自定义内容
+ dictType?: string // add by 星语:支持 dict 字典数据
+}
diff --git a/src/types/elementPlus.d.ts b/src/types/elementPlus.d.ts
new file mode 100644
index 0000000..2c6b76e
--- /dev/null
+++ b/src/types/elementPlus.d.ts
@@ -0,0 +1,3 @@
+export type ElementPlusSize = 'default' | 'small' | 'large'
+
+export type ElementPlusInfoType = 'success' | 'info' | 'warning' | 'danger'
diff --git a/src/types/form.d.ts b/src/types/form.d.ts
new file mode 100644
index 0000000..4b6eb45
--- /dev/null
+++ b/src/types/form.d.ts
@@ -0,0 +1,46 @@
+import type { CSSProperties } from 'vue'
+import { ColProps, ComponentProps, ComponentName } from '@/types/components'
+import type { AxiosPromise } from 'axios'
+
+export type FormSetPropsType = {
+ field: string
+ path: string
+ value: any
+}
+
+export type FormValueType = string | number | string[] | number[] | boolean | undefined | null
+
+export type FormItemProps = {
+ labelWidth?: string | number
+ required?: boolean
+ rules?: Recordable
+ error?: string
+ showMessage?: boolean
+ inlineMessage?: boolean
+ style?: CSSProperties
+}
+
+export type FormSchema = {
+ // 唯一值
+ field: string
+ // 标题
+ label?: string
+ // 提示
+ labelMessage?: string
+ // col组件属性
+ colProps?: ColProps
+ // 表单组件属性,slots对应的是表单组件的插槽,规则:${field}-xxx,具体可以查看element-plus文档
+ componentProps?: { slots?: Recordable } & ComponentProps
+ // formItem组件属性
+ formItemProps?: FormItemProps
+ // 渲染的组件
+ component?: ComponentName
+ // 初始值
+ value?: FormValueType
+ // 是否隐藏
+ hidden?: boolean
+ //主表中展示子表数据
+ hiddenInMain?: boolean
+ // 远程加载下拉项
+ api?: () => AxiosPromise
+}
diff --git a/src/types/icon.d.ts b/src/types/icon.d.ts
new file mode 100644
index 0000000..d1ffcdb
--- /dev/null
+++ b/src/types/icon.d.ts
@@ -0,0 +1,5 @@
+export interface IconTypes {
+ size?: number
+ color?: string
+ icon: string
+}
diff --git a/src/types/infoTip.d.ts b/src/types/infoTip.d.ts
new file mode 100644
index 0000000..6eff083
--- /dev/null
+++ b/src/types/infoTip.d.ts
@@ -0,0 +1,4 @@
+export interface TipSchema {
+ label: string
+ keys?: string[]
+}
diff --git a/src/types/layout.d.ts b/src/types/layout.d.ts
new file mode 100644
index 0000000..cad3e2a
--- /dev/null
+++ b/src/types/layout.d.ts
@@ -0,0 +1 @@
+export type LayoutType = 'classic' | 'topLeft' | 'top' | 'cutMenu'
diff --git a/src/types/localeDropdown.d.ts b/src/types/localeDropdown.d.ts
new file mode 100644
index 0000000..c749dce
--- /dev/null
+++ b/src/types/localeDropdown.d.ts
@@ -0,0 +1,10 @@
+export interface Language {
+ el: Recordable
+ name: string
+}
+
+export interface LocaleDropdownType {
+ lang: LocaleType
+ name?: string
+ elLocale?: Language
+}
diff --git a/src/types/qrcode.d.ts b/src/types/qrcode.d.ts
new file mode 100644
index 0000000..86cdf0b
--- /dev/null
+++ b/src/types/qrcode.d.ts
@@ -0,0 +1,9 @@
+export interface QrcodeLogo {
+ src?: string
+ logoSize?: number
+ bgColor?: string
+ borderSize?: number
+ crossOrigin?: string
+ borderRadius?: number
+ logoRadius?: number
+}
diff --git a/src/types/table.d.ts b/src/types/table.d.ts
new file mode 100644
index 0000000..9cb4205
--- /dev/null
+++ b/src/types/table.d.ts
@@ -0,0 +1,44 @@
+export type TableColumn = {
+ field: string
+ label?: string
+ width?: number | string
+ fixed?: 'left' | 'right'
+ children?: TableColumn[]
+} & Recordable
+
+export type VxeTableColumn = {
+ field: string
+ title?: string
+ children?: TableColumn[]
+} & Recordable
+
+export type TableSlotDefault = {
+ row: Recordable
+ column: TableColumn
+ $index: number
+} & Recordable
+
+export interface Pagination {
+ small?: boolean
+ background?: boolean
+ pageSize?: number
+ defaultPageSize?: number
+ total?: number
+ pageCount?: number
+ pagerCount?: number
+ currentPage?: number
+ defaultCurrentPage?: number
+ layout?: string
+ pageSizes?: number[]
+ popperClass?: string
+ prevText?: string
+ nextText?: string
+ disabled?: boolean
+ hideOnSinglePage?: boolean
+}
+
+export interface TableSetPropsType {
+ field: string
+ path: string
+ value: any
+}
diff --git a/src/types/tableForm.d.ts b/src/types/tableForm.d.ts
new file mode 100644
index 0000000..598deb8
--- /dev/null
+++ b/src/types/tableForm.d.ts
@@ -0,0 +1,44 @@
+import type { CSSProperties } from 'vue'
+import { ColProps, ComponentProps, ComponentName } from '@/types/components'
+import type { AxiosPromise } from 'axios'
+
+export type TableFormSetPropsType = {
+ field: string
+ path: string
+ value: any
+}
+
+export type TableFormValueType = string | number | string[] | number[] | boolean | undefined | null
+
+export type TableFormItemProps = {
+ labelWidth?: string | number
+ required?: boolean
+ rules?: Recordable
+ error?: string
+ showMessage?: boolean
+ inlineMessage?: boolean
+ style?: CSSProperties
+}
+
+export type TableFormSchema = {
+ // 唯一值
+ field: string
+ // 标题
+ label?: string
+ // 提示
+ labelMessage?: string
+ // col组件属性
+ colProps?: ColProps
+ // 表单组件属性,slots对应的是表单组件的插槽,规则:${field}-xxx,具体可以查看element-plus文档
+ componentProps?: { slots?: Recordable } & ComponentProps
+ // formItem组件属性
+ formItemProps?: FormItemProps
+ // 渲染的组件
+ component?: ComponentName
+ // 初始值
+ value?: FormValueType
+ // 是否隐藏
+ hidden?: boolean
+ // 远程加载下拉项
+ api?: () => AxiosPromise
+}
diff --git a/src/types/theme.d.ts b/src/types/theme.d.ts
new file mode 100644
index 0000000..ad649b0
--- /dev/null
+++ b/src/types/theme.d.ts
@@ -0,0 +1,16 @@
+export type ThemeTypes = {
+ elColorPrimary?: string
+ leftMenuBorderColor?: string
+ leftMenuBgColor?: string
+ leftMenuBgLightColor?: string
+ leftMenuBgActiveColor?: string
+ leftMenuCollapseBgActiveColor?: string
+ leftMenuTextColor?: string
+ leftMenuTextActiveColor?: string
+ logoTitleTextColor?: string
+ logoBorderColor?: string
+ topHeaderBgColor?: string
+ topHeaderTextColor?: string
+ topHeaderHoverColor?: string
+ topToolBorderColor?: string
+}
diff --git a/src/utils/Logger.ts b/src/utils/Logger.ts
new file mode 100644
index 0000000..ca58df2
--- /dev/null
+++ b/src/utils/Logger.ts
@@ -0,0 +1,100 @@
+const isArray = function (obj: any): boolean {
+ return Object.prototype.toString.call(obj) === '[object Array]'
+}
+
+const Logger = () => {}
+
+Logger.typeColor = function (type: string) {
+ let color = ''
+ switch (type) {
+ case 'primary':
+ color = '#2d8cf0'
+ break
+ case 'success':
+ color = '#19be6b'
+ break
+ case 'info':
+ color = '#909399'
+ break
+ case 'warn':
+ color = '#ff9900'
+ break
+ case 'error':
+ color = '#f03f14'
+ break
+ default:
+ color = '#35495E'
+ break
+ }
+ return color
+}
+
+Logger.print = function (type = 'default', text: any, back = false) {
+ if (typeof text === 'object') {
+ // 如果是對象則調用打印對象方式
+ isArray(text) ? console.table(text) : console.dir(text)
+ return
+ }
+ if (back) {
+ // 如果是打印帶背景圖的
+ console.log(
+ `%c ${text} `,
+ `background:${Logger.typeColor(type)}; padding: 2px; border-radius: 4px; color: #fff;`
+ )
+ } else {
+ console.log(
+ `%c ${text} `,
+ `border: 1px solid ${Logger.typeColor(type)};
+ padding: 2px; border-radius: 4px;
+ color: ${Logger.typeColor(type)};`
+ )
+ }
+}
+
+Logger.printBack = function (type = 'primary', text) {
+ this.print(type, text, true)
+}
+
+Logger.pretty = function (type = 'primary', title, text) {
+ if (typeof text === 'object') {
+ console.group('Console Group', title)
+ console.log(
+ `%c ${title}`,
+ `background:${Logger.typeColor(type)};border:1px solid ${Logger.typeColor(type)};
+ padding: 1px; border-radius: 4px; color: #fff;`
+ )
+ isArray(text) ? console.table(text) : console.dir(text)
+ console.groupEnd()
+ return
+ }
+ console.log(
+ `%c ${title} %c ${text} %c`,
+ `background:${Logger.typeColor(type)};border:1px solid ${Logger.typeColor(type)};
+ padding: 1px; border-radius: 4px 0 0 4px; color: #fff;`,
+ `border:1px solid ${Logger.typeColor(type)};
+ padding: 1px; border-radius: 0 4px 4px 0; color: ${Logger.typeColor(type)};`,
+ 'background:transparent'
+ )
+}
+
+Logger.prettyPrimary = function (title, ...text) {
+ text.forEach((t) => this.pretty('primary', title, t))
+}
+
+Logger.prettySuccess = function (title, ...text) {
+ text.forEach((t) => this.pretty('success', title, t))
+}
+
+Logger.prettyWarn = function (title, ...text) {
+ text.forEach((t) => this.pretty('warn', title, t))
+}
+
+Logger.prettyError = function (title, ...text) {
+ text.forEach((t) => this.pretty('error', title, t))
+}
+
+Logger.prettyInfo = function (title, ...text) {
+ text.forEach((t) => this.pretty('info', title, t))
+}
+
+export default Logger
diff --git a/src/utils/auth.ts b/src/utils/auth.ts
new file mode 100644
index 0000000..53cdbd5
--- /dev/null
+++ b/src/utils/auth.ts
@@ -0,0 +1,100 @@
+import { useCache } from '@/hooks/web/useCache'
+import { TokenType } from '@/api/login/types'
+import { decrypt, encrypt } from '@/utils/jsencrypt'
+
+const { wsCache } = useCache()
+
+const AccessTokenKey = 'ACCESS_TOKEN'
+const RefreshTokenKey = 'REFRESH_TOKEN'
+
+// 获取token
+export const getAccessToken = () => {
+ // 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错
+ // return wsCache.get(AccessTokenKey) ? wsCache.get(AccessTokenKey) : wsCache.get('ACCESS_TOKEN')
+ return sessionStorage.getItem(AccessTokenKey) ? sessionStorage.getItem(AccessTokenKey) : sessionStorage.getItem('ACCESS_TOKEN')
+
+}
+
+// 刷新token
+export const getRefreshToken = () => {
+ // return wsCache.get(RefreshTokenKey)
+ return sessionStorage.getItem(RefreshTokenKey)
+
+}
+
+// 设置token
+export const setToken = (token: TokenType) => {
+ // wsCache.set(RefreshTokenKey, token.refreshToken)
+ // wsCache.set(AccessTokenKey, token.accessToken)
+ sessionStorage.setItem(RefreshTokenKey,token.refreshToken)
+ sessionStorage.setItem(AccessTokenKey,token.accessToken)
+}
+
+// 删除token
+export const removeToken = () => {
+ // wsCache.delete(AccessTokenKey)
+ // wsCache.delete(RefreshTokenKey)
+ sessionStorage.removeItem(AccessTokenKey)
+ sessionStorage.removeItem(RefreshTokenKey)
+}
+
+/** 格式化token(jwt格式) */
+export const formatToken = (token: string): string => {
+ return 'Bearer ' + token
+}
+// ========== 账号相关 ==========
+
+const LoginFormKey = 'LOGINFORM'
+
+export type LoginFormType = {
+ tenantName: string
+ username: string
+ password: string
+ rememberMe: boolean
+}
+
+export const getLoginForm = () => {
+ const loginForm: LoginFormType = wsCache.get(LoginFormKey)
+ if (loginForm) {
+ loginForm.password = decrypt(loginForm.password) as string
+ }
+ return loginForm
+}
+
+export const setLoginForm = (loginForm: LoginFormType) => {
+ loginForm.password = encrypt(loginForm.password) as string
+ wsCache.set(LoginFormKey, loginForm, { exp: 30 * 24 * 60 * 60 })
+}
+
+export const removeLoginForm = () => {
+ wsCache.delete(LoginFormKey)
+}
+
+// ========== 租户相关 ==========
+
+const TenantIdKey = 'TENANT_ID'
+const TenantNameKey = 'TENANT_NAME'
+
+export const getTenantName = () => {
+ return wsCache.get(TenantNameKey)
+}
+
+export const setTenantName = (username: string) => {
+ wsCache.set(TenantNameKey, username, { exp: 30 * 24 * 60 * 60 })
+}
+
+export const removeTenantName = () => {
+ wsCache.delete(TenantNameKey)
+}
+
+export const getTenantId = () => {
+ return wsCache.get(TenantIdKey)
+}
+
+export const setTenantId = (username: string) => {
+ wsCache.set(TenantIdKey, username)
+}
+
+export const removeTenantId = () => {
+ wsCache.delete(TenantIdKey)
+}
diff --git a/src/utils/calculate.ts b/src/utils/calculate.ts
new file mode 100644
index 0000000..3723780
--- /dev/null
+++ b/src/utils/calculate.ts
@@ -0,0 +1,105 @@
+
+ // 判断传入的值-是否为整数
+ function isInteger(obj) {
+ return Math.floor(obj) === obj
+ }
+
+ // 将一个浮点数转成整数,返回整数和倍数。如 3.14 >> 314,倍数是 100
+ // @param floatNum { number } 小数
+ // @return { object }
+ // { times: 100, num: 314 }
+
+ // 用于返回整数和倍数
+ function toInteger(floatNum) {
+ // 声明一个对象用来保存倍数和整数
+ const ret = { times: 1, num: 0 }
+ // 第一种情况:是整数
+ if (isInteger(floatNum)) {
+ // 把整数给 ret中的 num
+ ret.num = floatNum
+ return ret // 最后返回 ret
+ }
+
+ // 第二种情况-不是整数,
+ const strfi = floatNum + '' // 转为字符串 "0.1"
+ const dotPos = strfi.indexOf('.') // 查询小数点
+ const len = strfi.substr(dotPos + 1).length; // 获取小数点后的长度
+ const times = Math.pow(10, len) // 放大多少倍
+ const intNum = Number(floatNum.toString().replace('.', '')) // 返回 转为字符串 截取掉小数点 最后转为数字(整数)
+ // 把获取到的倍数和整数存入对象中
+ ret.times = times
+ ret.num = intNum
+ return ret
+ }
+
+
+ // 核心方法,实现加减乘除运算,确保不丢失精度
+ // 思路:把小数放大为整数(乘),进行算术运算,再缩小为小数(除)
+ // @param a { number } 运算数1
+ // @param b { number } 运算数2
+ // @param digits { number } 精度,保留的小数点数,比如 2, 即保留为两位小数
+ // @param op { string } 运算类型,有加减乘除(add / subtract / multiply / divide)
+
+
+
+ function operation(a, b, digits, op) {
+ // 获取倍数和整数的对象
+ const o1 = toInteger(a)
+ const o2 = toInteger(b)
+ // 提取整数
+ const n1 = o1.num
+ const n2 = o2.num
+ // 提取倍数
+ const t1 = o1.times
+ const t2 = o2.times
+
+ // 获取最大倍数
+ const max = t1 > t2 ? t1 : t2
+ let result = 0 //
+
+ switch (op) {
+ case 'add':
+ if (t1 === t2) { // 两个小数位数相同
+ result = n1 + n2 //
+ } else if (t1 > t2) { // o1 小数位 大于 o2
+ result = n1 + n2 * (t1 / t2)
+ } else { // o1 小数位 小于 o2
+ result = n1 * (t2 / t1) + n2
+ }
+ return result / max
+ case 'subtract':
+ if (t1 === t2) {
+ result = n1 - n2
+ } else if (t1 > t2) {
+ result = n1 - n2 * (t1 / t2)
+ } else {
+ result = n1 * (t2 / t1) - n2
+ }
+ return result / max
+ case 'multiply':
+ result = (n1 * n2) / (t1 * t2)
+ return result
+ case 'divide':
+ result = (n1 / n2) * (t2 / t1)
+ return result
+ }
+ }
+
+ // 加减乘除的四个接口
+export function add(a, b, digits) {
+ return operation(a, b, digits, 'add')
+ }
+export function subtract(a, b, digits) {
+ return operation(a, b, digits, 'subtract')
+ }
+export function multiply(a, b, digits) {
+ return operation(a, b, digits, 'multiply')
+ }
+export function divide(a, b, digits) {
+ return operation(a, b, digits, 'divide')
+ }
+
+
+
+// console.log(floatObj.add(0.5, 0.2))
+// console.log(floatObj.add(0.12, 0.3))
diff --git a/src/utils/color.ts b/src/utils/color.ts
new file mode 100644
index 0000000..6888583
--- /dev/null
+++ b/src/utils/color.ts
@@ -0,0 +1,153 @@
+/**
+ * 判断是否 十六进制颜色值.
+ * 输入形式可为 #fff000 #f00
+ *
+ * @param String color 十六进制颜色值
+ * @return Boolean
+ */
+export const isHexColor = (color: string) => {
+ const reg = /^#([0-9a-fA-F]{3}|[0-9a-fA-f]{6})$/
+ return reg.test(color)
+}
+
+/**
+ * RGB 颜色值转换为 十六进制颜色值.
+ * r, g, 和 b 需要在 [0, 255] 范围内
+ *
+ * @return String 类似#ff00ff
+ * @param r
+ * @param g
+ * @param b
+ */
+export const rgbToHex = (r: number, g: number, b: number) => {
+ // tslint:disable-next-line:no-bitwise
+ const hex = ((r << 16) | (g << 8) | b).toString(16)
+ return '#' + new Array(Math.abs(hex.length - 7)).join('0') + hex
+}
+
+/**
+ * Transform a HEX color to its RGB representation
+ * @param {string} hex The color to transform
+ * @returns The RGB representation of the passed color
+ */
+export const hexToRGB = (hex: string, opacity?: number) => {
+ let sHex = hex.toLowerCase()
+ if (isHexColor(hex)) {
+ if (sHex.length === 4) {
+ let sColorNew = '#'
+ for (let i = 1; i < 4; i += 1) {
+ sColorNew += sHex.slice(i, i + 1).concat(sHex.slice(i, i + 1))
+ }
+ sHex = sColorNew
+ }
+ const sColorChange: number[] = []
+ for (let i = 1; i < 7; i += 2) {
+ sColorChange.push(parseInt('0x' + sHex.slice(i, i + 2)))
+ }
+ return opacity
+ ? 'RGBA(' + sColorChange.join(',') + ',' + opacity + ')'
+ : 'RGB(' + sColorChange.join(',') + ')'
+ }
+ return sHex
+}
+
+export const colorIsDark = (color: string) => {
+ if (!isHexColor(color)) return
+ const [r, g, b] = hexToRGB(color)
+ .replace(/(?:\(|\)|rgb|RGB)*/g, '')
+ .split(',')
+ .map((item) => Number(item))
+ return r * 0.299 + g * 0.578 + b * 0.114 < 192
+}
+
+/**
+ * Darkens a HEX color given the passed percentage
+ * @param {string} color The color to process
+ * @param {number} amount The amount to change the color by
+ * @returns {string} The HEX representation of the processed color
+ */
+export const darken = (color: string, amount: number) => {
+ color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color
+ amount = Math.trunc((255 * amount) / 100)
+ return `#${subtractLight(color.substring(0, 2), amount)}${subtractLight(
+ color.substring(2, 4),
+ amount
+ )}${subtractLight(color.substring(4, 6), amount)}`
+}
+
+/**
+ * Lightens a 6 char HEX color according to the passed percentage
+ * @param {string} color The color to change
+ * @param {number} amount The amount to change the color by
+ * @returns {string} The processed color represented as HEX
+ */
+export const lighten = (color: string, amount: number) => {
+ color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color
+ amount = Math.trunc((255 * amount) / 100)
+ return `#${addLight(color.substring(0, 2), amount)}${addLight(
+ color.substring(2, 4),
+ amount
+ )}${addLight(color.substring(4, 6), amount)}`
+}
+
+/* Suma el porcentaje indicado a un color (RR, GG o BB) hexadecimal para aclararlo */
+/**
+ * Sums the passed percentage to the R, G or B of a HEX color
+ * @param {string} color The color to change
+ * @param {number} amount The amount to change the color by
+ * @returns {string} The processed part of the color
+ */
+const addLight = (color: string, amount: number) => {
+ const cc = parseInt(color, 16) + amount
+ const c = cc > 255 ? 255 : cc
+ return c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}`
+}
+
+/**
+ * Calculates luminance of an rgb color
+ * @param {number} r red
+ * @param {number} g green
+ * @param {number} b blue
+ */
+const luminanace = (r: number, g: number, b: number) => {
+ const a = [r, g, b].map((v) => {
+ v /= 255
+ return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4)
+ })
+ return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722
+}
+
+/**
+ * Calculates contrast between two rgb colors
+ * @param {string} rgb1 rgb color 1
+ * @param {string} rgb2 rgb color 2
+ */
+const contrast = (rgb1: string[], rgb2: number[]) => {
+ return (
+ (luminanace(~~rgb1[0], ~~rgb1[1], ~~rgb1[2]) + 0.05) /
+ (luminanace(rgb2[0], rgb2[1], rgb2[2]) + 0.05)
+ )
+}
+
+/**
+ * Determines what the best text color is (black or white) based con the contrast with the background
+ * @param hexColor - Last selected color by the user
+ */
+export const calculateBestTextColor = (hexColor: string) => {
+ const rgbColor = hexToRGB(hexColor.substring(1))
+ const contrastWithBlack = contrast(rgbColor.split(','), [0, 0, 0])
+
+ return contrastWithBlack >= 12 ? '#000000' : '#FFFFFF'
+}
+
+/**
+ * Subtracts the indicated percentage to the R, G or B of a HEX color
+ * @param {string} color The color to change
+ * @param {number} amount The amount to change the color by
+ * @returns {string} The processed part of the color
+ */
+const subtractLight = (color: string, amount: number) => {
+ const cc = parseInt(color, 16) - amount
+ const c = cc < 0 ? 0 : cc
+ return c.toString(16).length > 1 ? c.toString(16) : `0${c.toString(16)}`
+}
diff --git a/src/utils/constants.ts b/src/utils/constants.ts
new file mode 100644
index 0000000..2624d92
--- /dev/null
+++ b/src/utils/constants.ts
@@ -0,0 +1,360 @@
+/**
+ * Created by 闻荫源码
+ *
+ * 枚举类
+ */
+
+// 全局通用状态枚举
+export const CommonStatusEnum = {
+ ENABLE: 0, // 开启
+ DISABLE: 1 // 禁用
+}
+
+/**
+ * 菜单的类型枚举
+ */
+export const SystemMenuTypeEnum = {
+ DIR: 1, // 目录
+ MENU: 2, // 菜单
+ BUTTON: 3 // 按钮
+}
+
+/**
+ * 角色的类型枚举
+ */
+export const SystemRoleTypeEnum = {
+ SYSTEM: 1, // 内置角色
+ CUSTOM: 2 // 自定义角色
+}
+
+/**
+ * 数据权限的范围枚举
+ */
+export const SystemDataScopeEnum = {
+ ALL: 1, // 全部数据权限
+ DEPT_CUSTOM: 2, // 指定部门数据权限
+ DEPT_ONLY: 3, // 部门数据权限
+ DEPT_AND_CHILD: 4, // 部门及以下数据权限
+ DEPT_SELF: 5 // 仅本人数据权限
+}
+
+/**
+ * 代码生成模板类型
+ */
+export const InfraCodegenTemplateTypeEnum = {
+ CRUD: 1, // 基础 CRUD
+ TREE: 2, // 树形 CRUD
+ SUB: 3 // 主子表 CRUD
+}
+
+/**
+ * 任务状态的枚举
+ */
+export const InfraJobStatusEnum = {
+ INIT: 0, // 初始化中
+ NORMAL: 1, // 运行中
+ STOP: 2 // 暂停运行
+}
+
+/**
+ * API 异常数据的处理状态
+ */
+export const InfraApiErrorLogProcessStatusEnum = {
+ INIT: 0, // 未处理
+ DONE: 1, // 已处理
+ IGNORE: 2 // 已忽略
+}
+
+/**
+ * 用户的社交平台的类型枚举
+ */
+export const SystemUserSocialTypeEnum = {
+ DINGTALK: {
+ title: '钉钉',
+ type: 20,
+ source: 'dingtalk',
+ img: 'https://s1.ax1x.com/2022/05/22/OzMDRs.png'
+ },
+ WECHAT_ENTERPRISE: {
+ title: '企业微信',
+ type: 30,
+ source: 'wechat_enterprise',
+ img: 'https://s1.ax1x.com/2022/05/22/OzMrzn.png'
+ }
+}
+
+/**
+ * 支付渠道枚举
+ */
+export const PayChannelEnum = {
+ WX_PUB: {
+ code: 'wx_pub',
+ name: '微信 JSAPI 支付'
+ },
+ WX_LITE: {
+ code: 'wx_lite',
+ name: '微信小程序支付'
+ },
+ WX_APP: {
+ code: 'wx_app',
+ name: '微信 APP 支付'
+ },
+ WX_BAR: {
+ code: 'wx_bar',
+ name: '微信条码支付'
+ },
+ ALIPAY_PC: {
+ code: 'alipay_pc',
+ name: '支付宝 PC 网站支付'
+ },
+ ALIPAY_WAP: {
+ code: 'alipay_wap',
+ name: '支付宝 WAP 网站支付'
+ },
+ ALIPAY_APP: {
+ code: 'alipay_app',
+ name: '支付宝 APP 支付'
+ },
+ ALIPAY_QR: {
+ code: 'alipay_qr',
+ name: '支付宝扫码支付'
+ },
+ ALIPAY_BAR: {
+ code: 'alipay_bar',
+ name: '支付宝条码支付'
+ },
+ MOCK: {
+ code: 'mock',
+ name: '模拟支付'
+ }
+}
+
+/**
+ * 支付的展示模式每局
+ */
+export const PayDisplayModeEnum = {
+ URL: {
+ mode: 'url'
+ },
+ IFRAME: {
+ mode: 'iframe'
+ },
+ FORM: {
+ mode: 'form'
+ },
+ QR_CODE: {
+ mode: 'qr_code'
+ },
+ APP: {
+ mode: 'app'
+ }
+}
+
+/**
+ * 支付类型枚举
+ */
+export const PayType = {
+ WECHAT: 'WECHAT',
+ ALIPAY: 'ALIPAY',
+ MOCK: 'MOCK'
+}
+
+/**
+ * 支付订单状态枚举
+ */
+export const PayOrderStatusEnum = {
+ WAITING: {
+ status: 0,
+ name: '未支付'
+ },
+ SUCCESS: {
+ status: 10,
+ name: '已支付'
+ },
+ CLOSED: {
+ status: 20,
+ name: '未支付'
+ }
+}
+
+/**
+ * 商品 SPU 状态
+ */
+export const ProductSpuStatusEnum = {
+ RECYCLE: {
+ status: -1,
+ name: '回收站'
+ },
+ DISABLE: {
+ status: 0,
+ name: '下架'
+ },
+ ENABLE: {
+ status: 1,
+ name: '上架'
+ }
+}
+
+/**
+ * 优惠劵模板的有限期类型的枚举
+ */
+export const CouponTemplateValidityTypeEnum = {
+ DATE: {
+ type: 1,
+ name: '固定日期可用'
+ },
+ TERM: {
+ type: 2,
+ name: '领取之后可用'
+ }
+}
+
+/**
+ * 优惠劵模板的领取方式的枚举
+ */
+export const CouponTemplateTakeTypeEnum = {
+ USER: {
+ type: 1,
+ name: '直接领取'
+ },
+ ADMIN: {
+ type: 2,
+ name: '指定发放'
+ },
+ REGISTER: {
+ type: 3,
+ name: '新人券'
+ }
+}
+
+/**
+ * 营销的商品范围枚举
+ */
+export const PromotionProductScopeEnum = {
+ ALL: {
+ scope: 1,
+ name: '通用劵'
+ },
+ SPU: {
+ scope: 2,
+ name: '商品劵'
+ },
+ CATEGORY: {
+ scope: 3,
+ name: '品类劵'
+ }
+}
+
+/**
+ * 营销的条件类型枚举
+ */
+export const PromotionConditionTypeEnum = {
+ PRICE: {
+ type: 10,
+ name: '满 N 元'
+ },
+ COUNT: {
+ type: 20,
+ name: '满 N 件'
+ }
+}
+
+/**
+ * 优惠类型枚举
+ */
+export const PromotionDiscountTypeEnum = {
+ PRICE: {
+ type: 1,
+ name: '满减'
+ },
+ PERCENT: {
+ type: 2,
+ name: '折扣'
+ }
+}
+
+/**
+ * 分销关系绑定模式枚举
+ */
+export const BrokerageBindModeEnum = {
+ ANYTIME: {
+ mode: 0,
+ name: '没有推广人'
+ },
+ REGISTER: {
+ mode: 1,
+ name: '新用户'
+ }
+}
+/**
+ * 分佣模式枚举
+ */
+export const BrokerageEnabledConditionEnum = {
+ ALL: {
+ condition: 0,
+ name: '人人分销'
+ },
+ ADMIN: {
+ condition: 1,
+ name: '指定分销'
+ }
+}
+/**
+ * 佣金记录业务类型枚举
+ */
+export const BrokerageRecordBizTypeEnum = {
+ ORDER: {
+ type: 1,
+ name: '获得推广佣金'
+ },
+ WITHDRAW: {
+ type: 2,
+ name: '提现申请'
+ }
+}
+/**
+ * 佣金提现状态枚举
+ */
+export const BrokerageWithdrawStatusEnum = {
+ AUDITING: {
+ status: 0,
+ name: '审核中'
+ },
+ AUDIT_SUCCESS: {
+ status: 10,
+ name: '审核通过'
+ },
+ AUDIT_FAIL: {
+ status: 20,
+ name: '审核不通过'
+ },
+ WITHDRAW_SUCCESS: {
+ status: 11,
+ name: '提现成功'
+ },
+ WITHDRAW_FAIL: {
+ status: 21,
+ name: '提现失败'
+ }
+}
+/**
+ * 佣金提现类型枚举
+ */
+export const BrokerageWithdrawTypeEnum = {
+ WALLET: {
+ type: 1,
+ name: '钱包'
+ },
+ BANK: {
+ type: 2,
+ name: '银行卡'
+ },
+ WECHAT: {
+ type: 3,
+ name: '微信'
+ },
+ ALIPAY: {
+ type: 4,
+ name: '支付宝'
+ }
+}
diff --git a/src/utils/dict.ts b/src/utils/dict.ts
new file mode 100644
index 0000000..e78f797
--- /dev/null
+++ b/src/utils/dict.ts
@@ -0,0 +1,412 @@
+/**
+ * 数据字典工具类
+ */
+import { useDictStoreWithOut } from '@/store/modules/dict'
+import { ElementPlusInfoType } from '@/types/elementPlus'
+
+const dictStore = useDictStoreWithOut()
+
+/**
+ * 获取 dictType 对应的数据字典数组
+ *
+ * @param dictType 数据类型
+ * @returns {*|Array} 数据字典数组
+ */
+export interface DictDataType {
+ dictType: string
+ label: string
+ value: string | number | boolean
+ colorType: ElementPlusInfoType | ''
+ cssClass: string
+}
+
+export const getDictOptions = (dictType: string) => {
+ return dictStore.getDictByType(dictType) || []
+}
+
+export const getIntDictOptions = (dictType: string) => {
+ const dictOption: DictDataType[] = []
+ const dictOptions: DictDataType[] = getDictOptions(dictType)
+ dictOptions.forEach((dict: DictDataType) => {
+ dictOption.push({
+ ...dict,
+ value: parseInt(dict.value + '')
+ })
+ })
+ return dictOption
+}
+
+export const getStrDictOptions = (dictType: string) => {
+ const dictOption: DictDataType[] = []
+ const dictOptions: DictDataType[] = getDictOptions(dictType)
+ dictOptions.forEach((dict: DictDataType) => {
+ dictOption.push({
+ ...dict,
+ value: dict.value + ''
+ })
+ })
+ return dictOption
+}
+
+export const getBoolDictOptions = (dictType: string) => {
+ const dictOption: DictDataType[] = []
+ const dictOptions: DictDataType[] = getDictOptions(dictType)
+ dictOptions.forEach((dict: DictDataType) => {
+ dictOption.push({
+ ...dict,
+ value: dict.value + '' === 'true'
+ })
+ })
+ return dictOption
+}
+
+/**
+ * 获取指定字典类型的指定值对应的字典对象
+ * @param dictType 字典类型
+ * @param value 字典值
+ * @return DictDataType 字典对象
+ */
+export const getDictObj = (dictType: string, value: any): DictDataType | undefined => {
+ const dictOptions: DictDataType[] = getDictOptions(dictType)
+ for (const dict of dictOptions) {
+ if (dict.value === value + '') {
+ return dict
+ }
+ }
+}
+
+/**
+ * 获得字典数据的文本展示
+ *
+ * @param dictType 字典类型
+ * @param value 字典数据的值
+ * @return 字典名称
+ */
+export const getDictLabel = (dictType: string, value: any): string => {
+ const dictOptions: DictDataType[] = getDictOptions(dictType)
+ const dictLabel = ref('')
+ dictOptions.forEach((dict: DictDataType) => {
+ if (dict.value === value + '') {
+ dictLabel.value = dict.label
+ }
+ })
+ return dictLabel.value
+}
+
+export enum DICT_TYPE {
+ USER_TYPE = 'user_type',
+ COMMON_STATUS = 'common_status',
+ SYSTEM_TENANT_PACKAGE_ID = 'system_tenant_package_id',
+ TERMINAL = 'terminal', // 终端
+
+ // ========== SYSTEM 模块 ==========
+ SYSTEM_USER_SEX = 'system_user_sex',
+ SYSTEM_MENU_TYPE = 'system_menu_type',
+ SYSTEM_ROLE_TYPE = 'system_role_type',
+ SYSTEM_DATA_SCOPE = 'system_data_scope',
+ SYSTEM_NOTICE_TYPE = 'system_notice_type',
+ SYSTEM_OPERATE_TYPE = 'system_operate_type',
+ SYSTEM_LOGIN_TYPE = 'system_login_type',
+ SYSTEM_LOGIN_RESULT = 'system_login_result',
+ SYSTEM_SMS_CHANNEL_CODE = 'system_sms_channel_code',
+ SYSTEM_SMS_TEMPLATE_TYPE = 'system_sms_template_type',
+ SYSTEM_SMS_SEND_STATUS = 'system_sms_send_status',
+ SYSTEM_SMS_RECEIVE_STATUS = 'system_sms_receive_status',
+ SYSTEM_ERROR_CODE_TYPE = 'system_error_code_type',
+ SYSTEM_OAUTH2_GRANT_TYPE = 'system_oauth2_grant_type',
+ SYSTEM_MAIL_SEND_STATUS = 'system_mail_send_status',
+ SYSTEM_NOTIFY_TEMPLATE_TYPE = 'system_notify_template_type',
+
+ // ========== INFRA 模块 ==========
+ INFRA_BOOLEAN_STRING = 'infra_boolean_string',
+ INFRA_JOB_STATUS = 'infra_job_status',
+ INFRA_JOB_LOG_STATUS = 'infra_job_log_status',
+ INFRA_API_ERROR_LOG_PROCESS_STATUS = 'infra_api_error_log_process_status',
+ INFRA_CONFIG_TYPE = 'infra_config_type',
+ INFRA_CODEGEN_TEMPLATE_TYPE = 'infra_codegen_template_type',
+ INFRA_CODEGEN_FRONT_TYPE = 'infra_codegen_front_type',
+ INFRA_CODEGEN_SCENE = 'infra_codegen_scene',
+ INFRA_FILE_STORAGE = 'infra_file_storage',
+
+ // ========== BPM 模块 ==========
+ BPM_MODEL_CATEGORY = 'bpm_model_category',
+ BPM_MODEL_FORM_TYPE = 'bpm_model_form_type',
+ BPM_TASK_ASSIGN_RULE_TYPE = 'bpm_task_assign_rule_type',
+ BPM_PROCESS_INSTANCE_STATUS = 'bpm_process_instance_status',
+ BPM_PROCESS_INSTANCE_RESULT = 'bpm_process_instance_result',
+ BPM_TASK_ASSIGN_SCRIPT = 'bpm_task_assign_script',
+ BPM_OA_LEAVE_TYPE = 'bpm_oa_leave_type',
+
+ // ========== PAY 模块 ==========
+ PAY_CHANNEL_CODE = 'pay_channel_code', // 支付渠道编码类型
+ PAY_ORDER_STATUS = 'pay_order_status', // 商户支付订单状态
+ PAY_REFUND_STATUS = 'pay_refund_status', // 退款订单状态
+ PAY_NOTIFY_STATUS = 'pay_notify_status', // 商户支付回调状态
+ PAY_NOTIFY_TYPE = 'pay_notify_type', // 商户支付回调状态
+
+ // ========== MP 模块 ==========
+ MP_AUTO_REPLY_REQUEST_MATCH = 'mp_auto_reply_request_match', // 自动回复请求匹配类型
+ MP_MESSAGE_TYPE = 'mp_message_type', // 消息类型
+
+ // ========== MALL - 会员模块 ==========
+ MEMBER_POINT_BIZ_TYPE = 'member_point_biz_type', // 积分的业务类型
+ MEMBER_EXPERIENCE_BIZ_TYPE = 'member_experience_biz_type', // 会员经验业务类型
+
+ // ========== MALL - 商品模块 ==========
+ PRODUCT_UNIT = 'product_unit', // 商品单位
+ PRODUCT_SPU_STATUS = 'product_spu_status', //商品状态
+
+ // ========== MALL - 交易模块 ==========
+ EXPRESS_CHARGE_MODE = 'trade_delivery_express_charge_mode', //快递的计费方式
+ TRADE_AFTER_SALE_STATUS = 'trade_after_sale_status', // 售后 - 状态
+ TRADE_AFTER_SALE_WAY = 'trade_after_sale_way', // 售后 - 方式
+ TRADE_AFTER_SALE_TYPE = 'trade_after_sale_type', // 售后 - 类型
+ TRADE_ORDER_TYPE = 'trade_order_type', // 订单 - 类型
+ TRADE_ORDER_STATUS = 'trade_order_status', // 订单 - 状态
+ TRADE_ORDER_ITEM_AFTER_SALE_STATUS = 'trade_order_item_after_sale_status', // 订单项 - 售后状态
+ TRADE_DELIVERY_TYPE = 'trade_delivery_type', // 配送方式
+ BROKERAGE_ENABLED_CONDITION = 'brokerage_enabled_condition', // 分佣模式
+ BROKERAGE_BIND_MODE = 'brokerage_bind_mode', // 分销关系绑定模式
+ BROKERAGE_BANK_NAME = 'brokerage_bank_name', // 佣金提现银行
+ BROKERAGE_WITHDRAW_TYPE = 'brokerage_withdraw_type', // 佣金提现类型
+ BROKERAGE_RECORD_BIZ_TYPE = 'brokerage_record_biz_type', // 佣金业务类型
+ BROKERAGE_RECORD_STATUS = 'brokerage_record_status', // 佣金状态
+ BROKERAGE_WITHDRAW_STATUS = 'brokerage_withdraw_status', // 佣金提现状态
+
+ // ========== MALL - 营销模块 ==========
+ PROMOTION_DISCOUNT_TYPE = 'promotion_discount_type', // 优惠类型
+ PROMOTION_PRODUCT_SCOPE = 'promotion_product_scope', // 营销的商品范围
+ PROMOTION_COUPON_TEMPLATE_VALIDITY_TYPE = 'promotion_coupon_template_validity_type', // 优惠劵模板的有限期类型
+ PROMOTION_COUPON_STATUS = 'promotion_coupon_status', // 优惠劵的状态
+ PROMOTION_COUPON_TAKE_TYPE = 'promotion_coupon_take_type', // 优惠劵的领取方式
+ PROMOTION_ACTIVITY_STATUS = 'promotion_activity_status', // 优惠活动的状态
+ PROMOTION_CONDITION_TYPE = 'promotion_condition_type', // 营销的条件类型枚举
+
+ // ========== 业务 - WMS ==========
+ ITEM_STATUS = 'item_status', // 物料状态
+ ITEM_TYPE = 'item_type', // 物料类型
+ UOM = 'uom', // 计量单位
+ REWORK = 'rework', // 返工品
+ IN_BOUND_RST = 'inBoundRst', // 返工品
+ IN_BOUND_FINSH = 'inBoundFinsh', // 返工品
+ ABC_CLASS = 'abc_class', // ABC类
+ TRUE_FALSE = 'true_false', // 是否
+ ALLOWOVERSHIPMENT = 'allow_over_shipment',//是否允许超发
+ FALSE_OR_TRUE = 'false_or_true', // 是否2
+ ITEM_GROUP = 'item_group', // 物料分组
+ ITEM_CATEGORY = 'Item_category', // 物料种类
+ ITEM_COLOR = 'item_color', // 物料颜色
+ ITEM_CONFIGURATION = 'item_configuration', // 物料配置
+ EQ_LEVEL = 'eq_level', // 质量等级
+ CURRENCY = 'currency', // 货币
+ BASIC_CURRENCY = 'basic_currency', // 货币
+ SUPPLIER_TYPE = 'supplier_type', // 供应商类型
+ CUSTOMER_TYPE = 'customer_type', // 客户类型
+ OWNER_TYPE = 'owner_type', // 货主类型
+ CARRIER_TYPE = 'carrier_type', // 承运商类型
+ INSPECT_TYPE = 'inspect_type', // 检验类型
+ INSPECTION_TYPE = 'inspection_type', // 质量管理检验类型
+ INSPECTION_TYPE_NEW = 'inspection_type_new', // 质量管理检验类型
+ NEXT_ACTION = 'next_action', // 下一步检验动作
+ SAMPLE_METHOD = 'sample_method', // 抽检方式
+ WAREHOUSE_TYPE = 'warehouse_type', // 仓库类型
+ DOCK_TYPE = 'dock_type', // 月台类型
+ AREA_TYPE = 'area_type', // 库区类型
+ INVENTORY_STATUS = 'inventory_status', // 库存状态
+ ERP_LOCATION = 'erp_location', // ERP库位
+ LOCATION_TYPE = 'location_type', // 库位类型
+ WORKSHOP_TYPE = 'workshop_type', // 车间类型
+ PRODUCTION_LINE_TYPE = 'production_line_type', // 生产线类型
+ WORK_STATION_TYPE = 'work_station_type', // 工位类型
+ PROCESS_TYPE = 'process_type', // 工序类型
+ LOCATION_SCOPE_TYPE = 'location_scope_type', // 库位维度
+ STORAGE_TYPE = 'storage_type', // 存储类型
+ ITEM_SCOPE_TYPE = 'item_scope_type', // 物料维度
+ BATCH_TYPE = 'batch_type', // 批次类型
+ BATCH_DIRECTION = 'batch_direction', // 批次方向
+ MANAGEMENT_MODE = 'management_mode', // 管理模式
+ DOCUMENT_TYPE = 'document_type', // 单据分类
+ REQEUST_MODE = 'reqeust_mode', // 申请模式
+ TIME_UNIT = 'time_unit', // 时间单位
+ COUNT_TYPE = 'count_type', // 盘点类型
+ COUNT_SPLIT_TYPE = 'count_split_type', // 盘点拆分方式
+ COUNT_SCOPE_TYPE = 'count_scope_type', // 盘点范围类型
+ BARCODE_PREFIX = 'barcode_prefix', // 条码前缀
+ SETTLEMENT_TYPE = 'settlement_type', // 结算类型
+ FROZEN_REASON = 'frozen_reason', // 冻结原因
+ INVENTORY_ACTION = 'inventory_action', // 库存动作
+ EAM_INVENTORY_ACTION = 'EAM_inventory_action', // EAM库存动作
+ EAM_TRANSACTION_TYPE = 'EAM_transaction_Type', // EAM库存类型
+ CONTAINER_TYPE = 'container_type', // 器具类型
+ CONTAINER_CONTENT_TYPE = 'container_content_type', // 器具内容类型
+ RESET_PERIOD = 'reset_period', // 重置周期
+ INTERFACE_TYPE = 'interface_type', // 接口类型
+ PURCHASE_ORDER_TYPE = 'purchase_order_type', // 采购订单类型
+ PURCHASE_ORDER_STATUS = 'purchase_order_status', // 采购订单状态
+ PURCHASE_ORDER_DETAIL_STATUS = 'purchase_order_detail_status', // 采购订单明细状态
+ SALE_ORDER_TYPE = 'sale_order_type', // 销售订单类型
+ SALE_ORDER_STATUS = 'sale_order_status', // 销售订单状态
+ SALE_ORDER_DETAIL_STATUS = 'sale_order_detail_status', // 销售订单明细状态
+ WORK_ORDER_TYPE = 'work_order_type', // 生产订单类型
+ WORK_ORDER_STATUS = 'work_order_status', // 生产订单状态
+ WORK_ORDER_DETAIL_STATUS = 'work_order_detail_status', // 生产订单明细状态
+ PURCHASE_PLAN_STATUS = 'purchase_plan_status', // 要货计划状态
+ PURCHASE_PLAN_DETAIL_STATUS = 'purchase_plan_detail_status', // 要货计划明细状态
+ PLAN_STATUS = 'plan_status', // 计划状态
+ PRODUCTION_PLAN_DETAIL_STATUS = 'production_plan_detail_status', // 计划明细状态
+ // PREPARE_TO_ISSUE_PLAN_STATUS = 'prepare_to_issue_plan_status', // 备料计划状态
+ // PREPARE_TO_ISSUE_PLAN_DETAIL_STATUS = 'prepare_to_issue_plan_detail_status', // 备料计划明细状态
+ // DELIVER_PLAN_STATUS = 'deliver_plan_status', // 发货计划状态
+ // DELIVER_DETAIL_STATUS = 'deliver_detail_status', // 发货计划明细状态
+ // PREPARE_TO_DELIVER_PLAN_STATUS = 'prepare_to_deliver_plan_status', // 备货计划状态
+ // PREPARE_TO_DELIVER_PLAN_DETAIL_STATUS = 'prepare_to_deliver_plan_detail_status', // 备货计划明细状态
+ COUNT_PLAN_STATUS = 'count_plan_status', // 盘点计划状态
+ COUNT_DIMENSION = 'count_dimension', // 盘点维度
+ REQUEST_STATUS = 'request_status', // 申请状态
+ UNPLANNED_RECEIPT_REASON = 'unplanned_receipt_reason', // 计划外入库原因
+ UNPLANNED_ISSUE_REASON = 'unplanned_issue_reason', // 计划外出库原因
+ SCRAP_REASON = 'scrap_reason', // 报废出库原因
+ COUNT_STAGE = 'count_stage', // 盘点阶段
+ JOB_STATUS = 'job_status', // 任务状态
+ RECORD_STATUS = 'record_status', // 记录状态
+ PURCHASE_RETURN_REASON = 'purchase_return_reason', // 采购退货原因
+ INSPECT_FAILED_REASON = 'inspect_failed_reason', // 检验不合格原因
+ INSPECT_RESULT = 'inspect_result', // 检验结果
+ STRATEGY_TYPE = 'strategy_type', // 策略类型
+ STRATEGY_PARAM_OPEARTOR = 'strategy_param_opeartor', // 策略参数操作符
+ DATA_TYPE = 'data_type', // 数据类型
+ PACK_UNIT = 'pack_unit', // 包装单位
+ DETAIL_STATUS = 'detail_status', // 明细状态
+ TRANSFER_MODE = 'transfer_mode', // 运输方式
+ LABEL_TYPE = 'label_type', // 标签类型
+ LABEL_STATUS = 'label_status', // 标签状态
+ BIND_TYPE = 'bind_type', // 器具绑定类型
+ CONTAINER_STATUS = 'container_status', // 容器状态
+ PREDICT_TIME_TYPE = 'predict_time_type', // 预测时间类型
+ PACK_UNIT_TYPE = 'pack_unit_type', // 包装规格类型
+ TRANSFER_REASON = 'transfer_reason', // 调拨出入库原因
+ PURCHASERECEIPT_SOURCE_TYPE = 'purchasereceipt_source_type', //采购收货数据来源
+ PLAN_PRODUCTION_TYPE = 'plan_production_type', // 生产计划类型
+ DELIVER_TYPE = 'deliver_type', //发货类型
+ BILL_TYPE = 'bill_type', // 发票类型
+ CONTAIN_MANAGE_TYPE = 'contain_menage_type', //器具管理类型
+ INVOICE_BALANCE_STATEMENT_STATUS = 'invoice_balance_statement_status', //是否有价差
+ PL_MSTR_TYPE = 'pl_mstr_type', //产品类类型
+ TT_GLTYPE = 'tt_gltype', //账户类型
+ REPLY_STATUS = 'reply_status', //询证函回函状态
+ PRIORITY = 'priority', //优先级
+ ENABLE_STATUS = 'enable_status', //启用状态
+
+ // ========== 业务 - mes ==========
+ MESDO_STATUS = 'mes_do_status', // 工单执行状态
+ MES_PROCESS_STATUS = 'mes_process_status', // 工单工序状态
+ MES_WORKBILL_MODEL = 'mes_workbill_model', // 工单模式 单工单(根据产品数量生成多个工单)、批量工单(一个产品一个工单)
+ MES_TASK_MODE = 'mes_task_mode', //生产模式 派工方式、领工方式
+ MES_PLANDO_STATUS = 'mes_plando_status', //计划执行状
+ PLAN_TYPE_MES = 'plan_type_mes',
+ HOLIDAY_TYPE = 'holiday_type', //节假日类型
+
+ //========== QMS ==========
+ SAMPLING_TYPE = 'sampling_type', // 取样类型
+ EVALUATION_MODE = 'evaluation_mode', // 评估模式
+ INSPECTION_CHARACTERISTICS_FEATURE_TYPE = 'inspection_characteristics_feature_type', // 特征类型
+ INSPECTION_CHARACTERISTICS_RESULT_ENTRY = 'inspection_characteristics_result_entry', // 结果录入方式
+ INSPECTION_SEVERITY = 'inspection_severity', //检验严重性
+ SPLIT_RULES = 'split_rules', // 拆分规则
+ INSPECTION_LEVEL = 'inspection_level', // 检验水平字典
+ BASIC_AQL = 'basic_aql', // aql
+ EVALUATION_CODE = 'evaluation_code', // 评估代码
+ DEFECT_LEVEL = 'defect_level', // 缺陷级别
+ DICTIONARY_CLASS = 'dictionary_class', // 字典分类
+ USAGE_DECISION = 'usage_decision', // 使用决策
+ INSPECTION_BATCH_SOURCE = 'inspection_batch_source', // 检验批来源
+ QUALITY_NOTIFICATION_TYPE = 'quality_notification_type', // 质量通知类型
+ QUALITY_NOTICE_STATUS = 'quality_notice_status', // 质量通知状态
+ QUALITY_TASK_STATUS = 'quality_task_status', // 质量通知任务状态
+ QUALITY_NOTIFICATION_PRIORITY = 'quality_notification_priority', // 质量通知优先级
+ CLAIM_REASON = 'claim_Reason', // 质量通知索赔原因
+ QMS_CODE = 'qms_code', // 质量通知代码
+ QMS_Q1_CODE = 'qms_Q1_code',
+ QMS_Q2_CODE = 'qms_Q2_code',
+ QMS_Q3_CODE = 'qms_Q3_code',
+ DEFECT_LOCATION = 'defect_location', // 质量通知缺陷位置
+ DEFECT_TYPE = 'defect_type', // 质量通知缺陷类型
+ PROBLEM_REASON = 'problem_reason', // 质量通知问题原因
+ QMS_CLAIM_MULTIPLE = 'qms_claim_multiple', //质量通知索赔倍数
+
+ // ========== 业务 - mes -gaojs ==========
+ QUALIFY_STATUS = 'qualify_status', //质检状态
+ QUALIFY_ITEM_DATA_TYPE = 'qualify_item_data_type', //质检项目数据类型
+ QUALIFY_ITEM_VERIFY_MODE = 'qualify_item_verify_mode', //质检项目校验方式
+ QUALIFY_FORM_OPERATION = 'qualify_form_operation', //质检表单操作
+ OPERSTEP_COLLECT_TYPE = 'operstep_collect_type', //操作步骤采集方式
+ REWORK_TYPE = 'rework_type', //工作类型:返工登记、返修登记
+ REWORK_STATUS = 'rework_status', //返工返修状态:待返修,返修中,返修完成
+ REWORK_REPLACE_FLAG = 'rework_replace_flag', //是否有替换件
+ DISMANTLING_BILL_TYPE = 'dismantling_bill_type', //工单类型
+ DISMANTLING_MATERIAL_STATUS = 'dismantling_material_status', //报废拆解物料状态
+ DISMANTLING_MATERIAL_HANDLE_STATUS = 'dismantling_material_handle_status', //报废拆解处理状态
+ MES_REQUEST_TYPE = 'mes_request_type', //生产物料申请类型
+
+ SUPPLIERINVOICE_REQUEST_STATUS = 'supplierinvoice_request_status', //发票申请状态
+ SUPPLIERINVOICE_STATUS = 'supplierinvoice_status', //待开票审核状态
+ INVOICE_REQUEST_STATUS = 'invoice_request_status', //待开票申请状态
+
+ // ========== system - 消息通知优化 - ==========
+ MESSAGE_NOTICE_TABLE = 'message_notice_table', //消息通知表
+ NOTICE_ACTION_TYPE = 'notice_action_type', //消息通知动作类型
+ RECEIVER_TYPE = 'receiver_type', //接收人类型
+
+ BASIC_TEAM_TYPE = 'basic_team_type', //班组类型
+ TAX_RATE_DICT = 'tax_rate_dict', //税率
+ INTERFACE_STATUS = 'interfaceStatus', // 接口调用信息 接口状态
+ SYSTEM_DAY = 'system_day', // 系统天数
+ PURCHASE_INVOICE_ORDER_TYPE = 'purchase_invoice_order_type', // 发票采购订单类型
+ DISCRETE_SUPPLIERINVOICE_READ = 'discrete_supplierinvoice_read', // 采购离散订单查看
+
+ // ========== eam - 业务 - ==========
+ DEVICE_TYPE = 'device_type', // 设备分类
+ EAM_OUT_TYPE = 'eam_out_type', // 出库类型
+ IS_UPDATED = 'is_updated', //是否可修改
+ DATA_SCOPE = 'data_scope', // 数据范围
+ ROLE_STATUS = 'role_status', // 角色状态
+ DEVICE_CLASS = 'device_class', //设备类型
+ DEVICE_STATUS = 'device_status', //设备状态
+ SUBJECT = 'subject', //科目
+ REGION = 'region', //区域
+ PART_CLASS = 'part_class', //备件分类
+ FAILURE_DEGREE = 'failure_degree', // 故障紧急程度
+ FAILURE_REASON = 'failure_reason', //故障类型
+ REPAIR_DEGREE = 'repair_degree', //维修紧急程度
+ REPAIR_LEVEL = 'repair_level', //维修级别
+ IS_COMPLETED = 'is_completed', //是否完成
+ IS_NORMAL = 'is_normal', //正常异常
+ MAINTENANCE_CYCLE = 'maintenance_cycle', // 保养周期
+ INSPECTION_CYCLE = 'inspection_cycle', // 巡检周期
+ SPOTCHECK_CYCLE = 'spotcheck_cycle', // 巡检周期
+ EAM_ORDER_STATUS = 'eam_order_status', // 工单状态
+ TOOL_CLASS = 'tool_class', //工装类型
+ TOOL_OUT_TYPE = 'tool_out_type', //工装出库类型
+ EAM_PLAN_STATUS = 'eam_plan_status', // 保养计划状态
+ EAM_REPAIR_REPORT_STATUS = 'eam_repair_report_status', // 报修状态
+ EAM_MAINTENANCE_SOURCES = 'eam_maintenance_sources', // 维保数据来源
+ EAM_MAINTENANCE_URGENCY = 'eam_maintenance_urgency', // 维保紧急程度
+ EAM_MAINTENANCE_LEVEL = 'eam_maintenance_level', // 维保维修级别
+ EAM_INSPECTION_SOURCES = 'eam_inspection_sources', // 巡检工单数据来源
+ EAM_SPOTCHECK_SOURCES = 'eam_spotcheck_sources', // 点检工单数据来源
+ EAM_BAOYANG_SOURCES = 'eam_baoyang_sources', // 保养工单数据来源
+ EAM_REPAIR_STATUS = 'eam_repair_status', // 维修状态
+ EAM_COMPLETE_RESULT = 'eam_complete_result', // 维修状态
+ OFF_BACK_STATUS = 'off_back_status',
+ SPAREPARTS_APPLY_STATUS_ENUM = 'spareparts_apply_status_enum', // 流程状态
+ EAM_OUT_STATUS = 'eam_out_status', // 出库状态
+ IS_LINE_ITEM = 'is_line_item', // 是否是线边
+ PUT_IN_TYPE = 'put_in_type', // 入库类型
+ PURCHASE_JOB_STATUS = 'purchase_job_status', // 采购收货任务状态
+ PUBLISHE_STATUS = 'publishe_status', // 采购收货任务状态
+ PUBLISHE_STATUS_FIRST_INSPECTION = 'publishe_status_first_inspection', // 首件检验记录发布状态
+ RETURN_REASON_TYPE = 'return_reason_type', // 采购退货原因类型
+ SCRAPPING_REASON = 'scrapping_reason', //制品子件报废原因
+ RECEIVE_STATUS = 'receive_status', // 收货确认状态
+ LINE_SCRAP_REASON = 'Reason_or_scrapping_of_production_line', // 线边报废原因(现场史力维护的字典)
+}
diff --git a/src/utils/disposition/defaultButtons.ts b/src/utils/disposition/defaultButtons.ts
new file mode 100644
index 0000000..73b9680
--- /dev/null
+++ b/src/utils/disposition/defaultButtons.ts
@@ -0,0 +1,1428 @@
+// 页面基础按钮样式
+/**
+ * 如果需要更改配置,格式如:defaultExportBtn({label:'自定义'})
+ * @param {*} option
+ * @returns
+ */
+const { t } = useI18n()
+
+// 新增按钮
+export function defaultAddBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.新增`).replace('ts.', ''),
+ name: 'add',
+ hide: false,
+ type: 'primary',
+ icon: 'ep:plus',
+ color: '',
+ hasPermi: ''
+ })
+}
+
+// 导入按钮
+export function defaultImportBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.导入`).replace('ts.', ''),
+ name: 'import',
+ hide: false,
+ type: 'warning',
+ icon: 'ep:upload',
+ color: '',
+ hasPermi: ''
+ })
+}
+
+// 导出按钮
+export function defaultExportBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.导出`).replace('ts.', ''),
+ name: 'export',
+ hide: false,
+ type: 'success',
+ icon: 'ep:download',
+ color: '',
+ hasPermi: ''
+ })
+}
+// 导出明细按钮
+export function defaultExportDetailsBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.导出明细`).replace('ts.', ''),
+ name: 'export-details',
+ hide: false,
+ type: 'success',
+ icon: 'ep:download',
+ color: '',
+ hasPermi: ''
+ })
+}
+// 导出明细按钮
+export function defaultExportTableBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.导出二维表`).replace('ts.', ''),
+ name: 'export-table',
+ hide: false,
+ type: 'success',
+ icon: 'ep:download',
+ color: '',
+ hasPermi: ''
+ })
+}
+
+
+// 字段设置
+// export function defaultFieldSettingBtn(option:any) {
+// // todo:监听已经配置过的字段按钮更改状态特殊显示
+// const routeName = route.name
+// let _local = localStorage.getItem('tableColumns_' + this.$store.getters.name.userName + '_' + routeName)
+// let _type = ''
+// let _num = 0
+// if(_local){
+// JSON.parse(_local).forEach((item: any) => {
+// if(item.istrue == true){
+// _num ++
+// }
+// });
+// if(_num >= JSON.parse(_local).length){
+// _type = ''
+// }else{
+// _type= 'warning'
+// }
+// }
+// return __defaultBtnOption(option,{
+// type: _type,
+// plain: true,
+// icon: "el-icon-setting",
+// label: "字段设置",
+// name: "field",
+// size: "small",
+// float: 'right',
+// class: "rowDropNotHideItem"
+// })
+// }
+
+// 刷新按钮
+export function defaultFreshBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.刷新`).replace('ts.', ''),
+ name: 'refresh',
+ hide: false,
+ type: 'primary',
+ icon: 'ep:refresh',
+ color: '',
+ float: 'right',
+ hasPermi: ''
+ })
+}
+
+// 重置按钮
+export function defaultResetBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.重置`).replace('ts.', ''),
+ name: 'reset',
+ hide: false,
+ type: 'info',
+ icon: '',
+ color: '',
+ float: 'right',
+ hasPermi: ''
+ })
+}
+
+// 字段设置
+export function defaultSetBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.设置`).replace('ts.', ''),
+ name: 'set',
+ hide: false,
+ type: 'info',
+ icon: 'ep:setting',
+ color: '',
+ float: 'right',
+ hasPermi: ''
+ })
+}
+
+// 筛选按钮
+export function defaultFilterBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.筛选`).replace('ts.', ''),
+ name: 'filtrate',
+ hide: false,
+ type: 'info',
+ icon: 'ep:operation',
+ color: '',
+ float: 'right',
+ hasPermi: ''
+ })
+}
+
+// 筛选——查询按钮
+export function defaultSearchBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.搜索`).replace('ts.', ''),
+ name: 'search',
+ hide: false,
+ type: 'primary',
+ icon: '',
+ color: '',
+ float: 'right',
+ hasPermi: ''
+ })
+}
+
+// 筛选——重置按钮
+export function defaultSearchResetBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.重置`).replace('ts.', ''),
+ name: 'searchReset',
+ hide: false,
+ type: 'info',
+ icon: '',
+ color: '',
+ float: 'right',
+ hasPermi: ''
+ })
+}
+// 选择当页
+export function defaultWhenPageBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.选择当页`).replace('ts.', ''),
+ name: 'WhenPage',
+ hide: false,
+ type: 'primary',
+ color: '',
+ float: 'right',
+ link: false, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 反选当页
+export function defaultUnselectPageBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.反选当页`).replace('ts.', ''),
+ name: 'UnselectPage',
+ hide: false,
+ type: 'primary',
+ color: '',
+ float: 'right',
+ link: false, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 取消全选
+export function defaultDeselectAllBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.取消全选`).replace('ts.', ''),
+ name: 'DeselectAll',
+ hide: false,
+ type: 'primary',
+ color: '',
+ float: 'right',
+ link: false, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// form表单-保存按钮
+export function formSaveBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.保存`).replace('ts.', ''),
+ name: 'save',
+ hide: false,
+ type: 'primary',
+ icon: 'ep:select',
+ color: '',
+ float: 'right',
+ hasPermi: ''
+ })
+}
+
+// form表单-关闭按钮
+export function formCloseBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.关闭`).replace('ts.', ''),
+ name: 'close',
+ hide: false,
+ icon: 'ep:close',
+ color: '',
+ float: 'right',
+ hasPermi: ''
+ })
+}
+
+// form表单-关闭按钮
+export function formStagingBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`btn.暂存`).replace('btn.', ''),
+ name: 'staging',
+ hide: false,
+ color: 'green',
+ float: 'right',
+ hasPermi: ''
+ })
+}
+// form表单-下一步按钮
+export function formNextStepBtn(option:any) {
+ return __defaultBtnOption(option,{
+ label: t(`ts.下一步`).replace('ts.', ''),
+ name: 'nextStep',
+ hide: false,
+ type: 'primary',
+ icon: 'ep:select',
+ color: '',
+ float:'right',
+ hasPermi: ''
+ })
+}
+
+// drawer抽屉头部-编辑按钮
+export function drawerEditBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.编辑`).replace('ts.', ''),
+ name: 'edit',
+ hide: false,
+ type: 'warning',
+ icon: 'ep:editPen',
+ color: '',
+ hasPermi: ''
+ })
+}
+
+// drawer抽屉头部-删除按钮
+export function drawerDeleteBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.删除`).replace('ts.', ''),
+ name: 'delete',
+ hide: false,
+ type: 'danger',
+ icon: 'ep:delete',
+ color: '',
+ hasPermi: ''
+ })
+}
+
+// 主列表-详情按钮
+// export function mainListDetailBtn(option:any) {
+// return __defaultBtnOption(option,{
+// label: '详情',
+// name: 'detail',
+// hide: false,
+// type: 'primary',
+// color: '',
+// link: true, // 文本展现按钮
+// hasPermi: ''
+// })
+// }
+
+// 主列表-编辑按钮
+export function mainListEditBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.编辑`).replace('ts.', ''),
+ name: 'edit',
+ hide: false,
+ type: 'warning',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-删除按钮
+export function mainListDeleteBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.删除`).replace('ts.', ''),
+ name: 'delete',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+export function mainListEnableBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.启用`).replace('ts.', ''),
+ name: 'enable',
+ hide: false,
+ type: 'success',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+export function mainListDisableBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.禁用`).replace('ts.', ''),
+ name: 'disable',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-中止按钮1
+export function mainListSuspend1Btn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.中止`).replace('ts.', ''),
+ name: 'suspend',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-中止按钮2
+export function mainListSuspend2Btn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.中止`).replace('ts.', ''),
+ name: 'suspend',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-领取按钮
+export function mainListReceiveBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.领取`).replace('ts.', ''),
+ name: 'receive',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-接单按钮
+export function mainListReceiveOrderBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.接单`).replace('ts.', ''),
+ name: 'receive',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-执行按钮
+export function mainListExecuteBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.执行`).replace('ts.', ''),
+ name: 'execute',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-转办按钮
+export function mainListTransferBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.转办`).replace('ts.', ''),
+ name: 'transfer',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-完成按钮
+export function mainListFinishBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.完成`).replace('ts.', ''),
+ name: 'finish',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+export function mainListSendBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.发送邮件`).replace('ts.', ''),
+ name: 'send',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-作废按钮
+export function mainListCancelBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.作废`).replace('ts.', ''),
+ name: 'cancel',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-验证按钮
+export function mainListValidateBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.验证`).replace('ts.', ''),
+ name: 'validate',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-报修验证按钮
+export function mainListValidateReportBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.报修验证`).replace('ts.', ''),
+ name: 'validate_report',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-维修验证按钮
+export function mainListValidateRepairBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.维修验证`).replace('ts.', ''),
+ name: 'validate_repair',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-预览按钮
+export function viewBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: '预览',
+ name: 'view',
+ hide: false,
+ type: 'success',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-审核按钮
+export function mainListAuditingBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.审核`).replace('ts.', ''),
+ name: 'auditing',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-审核完成按钮
+export function mainListAuditedBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.审核完成`).replace('ts.', ''),
+ name: 'audited',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-撤回按钮
+export function mainListRevokeBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.撤回`).replace('ts.', ''),
+ name: 'revoke',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-绑定
+export function mainListBindBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.绑定`).replace('ts.', ''),
+ name: 'bind',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-申请流程-关闭按钮
+export function mainListCloseBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.关闭`).replace('ts.', ''),
+ name: 'mainClose',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-申请流程-重新添加按钮
+export function mainListReAddBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.重新添加`).replace('ts.', ''),
+ name: 'mainReAdd',
+ hide: false,
+ type: 'warning',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-申请流程-提交审批按钮
+export function mainListSubmitBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.提交审批`).replace('ts.', ''),
+ name: 'mainSubmit',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-申请流程-驳回按钮
+export function mainListTurnDownBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.驳回`).replace('ts.', ''),
+ name: 'mainTurnDown',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-申请流程-审批通过按钮
+export function mainListApproveBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.审批通过`).replace('ts.', ''),
+ name: 'mainApprove',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-申请流程-处理按钮
+export function mainListHandleBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.处理`).replace('ts.', ''),
+ name: 'mainHandle',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-申请流程-作废按钮
+export function mainListAbortBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.撤销`).replace('ts.', ''),
+ name: 'abort',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-订单流程-发布按钮
+export function mainListOrderPubBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.发布`).replace('ts.', ''),
+ name: 'mainOrderPub',
+ hide: false,
+ type: 'success',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-订单流程-批量发布按钮
+export function mainListSelectionOrderPubBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.批量发布`).replace('ts.', ''),
+ name: 'mainOrderSelectionPub',
+ hide: false,
+ type: 'primary',
+ color: '',
+ float: 'left',
+ link: false, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-订单流程-关闭按钮
+export function mainListOrderCloBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.关闭`).replace('ts.', ''),
+ name: 'mainOrderClo',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-订单流程-打开按钮
+export function mainListOrderOpeBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.打开`).replace('ts.', ''),
+ name: 'mainOrderOpe',
+ hide: false,
+ type: 'warning',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-订单流程-下架按钮
+export function mainListOrderWitBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.下架`).replace('ts.', ''),
+ name: 'mainOrderWit',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-计划流程-打开按钮
+export function mainListPlanOpeBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.打开`).replace('ts.', ''),
+ name: 'mainPlanOpe',
+ hide: false,
+ type: 'warning',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-计划流程-关闭按钮
+export function mainListPlanCloBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.关闭`).replace('ts.', ''),
+ name: 'mainPlanClo',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-上传质量报告
+export function mainListPlanUploadQualityReportBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.上传质量报告`).replace('ts.', ''),
+ name: 'mainPlanUploadQualityReport',
+ hide: false,
+ type: 'primary',
+ width: 86,
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+export function mainListPlanCheckQualityReportBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.查看质检报告`).replace('ts.', ''),
+ name: 'mainPlanCheckQualityReport',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+export function mainListSupplierResumeBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.查看履历表`).replace('ts.', ''),
+ name: 'mainSupplierResume',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-计划流程-提交审批按钮
+export function mainListPlanSubBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.提交审批`).replace('ts.', ''),
+ name: 'mainPlanSub',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-计划流程-驳回按钮
+export function mainListPlanTurBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.驳回`).replace('ts.', ''),
+ name: 'mainPlanTur',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-计划流程-重置按钮
+export function mainListPlanResBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.重置`).replace('ts.', ''),
+ name: 'mainPlanRes',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-计划流程-审批通过按钮
+export function mainListPlanAppBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.审批通过`).replace('ts.', ''),
+ name: 'mainPlanApp',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-计划流程-发布按钮
+export function mainListPlanPubBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.发布`).replace('ts.', ''),
+ name: 'mainPlanPub',
+ hide: false,
+ type: 'success',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-计划流程-执行按钮
+export function mainListPlanComBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.执行`).replace('ts.', ''),
+ name: 'mainPlanCom',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-要货计划流程-修改按钮
+export function mainListPurchasePlanModBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.修改`).replace('ts.', ''),
+ name: 'mainPurPlanMod',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-要货计划流程-下架按钮
+export function mainListPurchasePlanWitBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.下架`).replace('ts.', ''),
+ name: 'mainPurPlanWit',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-要货计划流程-不接受按钮
+export function mainListPurchasePlanRejBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.不接受`).replace('ts.', ''),
+ name: 'mainPurPlanRej',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-要货计划流程-接受按钮
+export function mainListPurchasePlanAccBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.接受`).replace('ts.', ''),
+ name: 'mainPurPlanAcc',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-要货计划流程-发布按钮
+export function mainListPurchasePlanPubBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.发布`).replace('ts.', ''),
+ name: 'mainPurPlanPub',
+ hide: false,
+ type: 'success',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-要货计划流程-关闭按钮
+export function mainListPurchasePlanCloBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.关闭`).replace('ts.', ''),
+ name: 'mainPurPlanClo',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-要货计划流程-打开按钮
+export function mainListPurchasePlanOpeBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.打开`).replace('ts.', ''),
+ name: 'mainPurPlanOpe',
+ hide: false,
+ type: 'warning',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-任务流程-承接按钮
+export function mainListJobAccBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.承接`).replace('ts.', ''),
+ name: 'mainJobAcc',
+ hide: false,
+ type: 'success',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-任务流程-关闭按钮
+export function mainListJobCloBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.关闭`).replace('ts.', ''),
+ name: 'mainJobClo',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-任务流程-放弃按钮
+export function mainListJobAbaBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.取消承接`).replace('ts.', ''),
+ name: 'mainJobAba',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-任务流程-执行按钮
+export function mainListJobExeBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.执行`).replace('ts.', ''),
+ name: 'mainJobExe',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-任务流程-执行按钮(与执行按钮一致 只是名改叫'收货'而已)
+export function mainListJobRecBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.收货`).replace('ts.', ''),
+ name: 'mainJobExe',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-包装按钮
+export function mainListPackageBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.包装`).replace('ts.', ''),
+ name: 'mainPackage',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-供应商对账打印
+export function mainListPrintBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.打印`).replace('ts.', ''),
+ name: 'print',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-供应商对账回函录入
+export function mainListReplyInputBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.回函录入`).replace('ts.', ''),
+ name: 'replyInput',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-打印
+export function mainListPointBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.打印标签`).replace('ts.', ''),
+ name: 'point',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+export function mainListPrintInspectionBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.打印检验指引单`).replace('ts.', ''),
+ name: 'printInspection',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-回收
+export function mainListRecoveryBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.撤销报工`).replace('ts.', ''),
+ name: 'recovery',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-批量打印
+export function mainLisSelectiontPointBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.批量打印`).replace('ts.', ''),
+ name: 'selection_point',
+ hide: false,
+ type: 'primary',
+ icon: 'ep:download',
+ color: '',
+ float: 'left',
+ hasPermi: ''
+ })
+}
+// 主列表-批量删除
+export function mainLisSelectiontDeleteBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.批量删除`).replace('ts.', ''),
+ name: 'selection_delete',
+ hide: false,
+ type: 'primary',
+ icon: 'ep:download',
+ color: '',
+ float: 'left',
+ hasPermi: ''
+ })
+}
+// 主列表-生成采购收货申请
+export function mainListGenerateApplicationBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.生成采购收货申请`).replace('ts.', ''),
+ name: 'generateApplication',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-打印
+export function mainListDocumentPrintBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.单据打印`).replace('ts.', ''),
+ name: 'documentPrint',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-生成到货检验申请
+export function mainInspectRequestBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.发送到货检验申请`).replace('ts.', ''),
+ name: 'inspectRequest',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-生成采购上架申请
+export function mainPutawayRequestBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.生成采购上架申请`).replace('ts.', ''),
+ name: 'putawayRequest',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-生成采购退货记录
+export function mainPurchasereturnRecordBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.生成采购退货记录`).replace('ts.', ''),
+ name: 'purchasereturnRecord',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+
+// 主列表-生成制品上架申请
+export function mainPutawayRequestCpBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.生成制品上架申请`).replace('ts.', ''),
+ name: 'putawayRequest',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-生成盘点调整申请
+export function mainCountAdjustRequesttBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.生成盘点调整申请`).replace('ts.', ''),
+ name: 'countAdjustRequest',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-重盘
+export function mainReCountBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.重盘`).replace('ts.', ''),
+ name: 'mainReCount',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-监盘
+export function mainSuperviseCountBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.监盘`).replace('ts.', ''),
+ name: 'mainSuperviseCount',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-解冻
+export function mainThawRequesttBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.解冻`).replace('ts.', ''),
+ name: 'mainThaw',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-更新检验记录
+export function mainUpdataRecodeBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.更新检验记录`).replace('ts.', ''),
+ name: 'updataRecode',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-使用决策
+export function mainApplyDecisionBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: t(`ts.使用决策`).replace('ts.', ''),
+ name: 'applyDecision',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-复制
+export function mainCopyBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: '复制',
+ name: 'copy',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-部件
+export function componentBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: '关联部件',
+ name: 'component',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-备件
+export function sparePartBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: '关联备件',
+ name: 'sparePart',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-生成维修经验
+export function repairExperienceBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: '生成维修经验',
+ name: 'repairExperience',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-生成保养经验
+export function maintainExperienceBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: '生成保养经验',
+ name: 'maintainExperience',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-撤销
+export function backoutBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: '撤销',
+ name: 'backout',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-盘点导出
+export function mainExport(option: any) {
+ return __defaultBtnOption(option, {
+ label: '导出',
+ name: 'mainExport',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-盘点导入
+export function mainAdjustImport(option: any) {
+ return __defaultBtnOption(option, {
+ label: '导入',
+ name: 'mainAdjustImport',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-备件
+export function replaceLocation(option: any) {
+ return __defaultBtnOption(option, {
+ label: '更换库位',
+ name: 'replaceLocation',
+ hide: false,
+ type: 'primary',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-撤销
+export function approveBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: '审批',
+ name: 'approve',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 主列表-出库
+export function outBtn(option: any) {
+ return __defaultBtnOption(option, {
+ label: '出库',
+ name: 'out',
+ hide: false,
+ type: 'danger',
+ color: '',
+ link: true, // 文本展现按钮
+ hasPermi: ''
+ })
+}
+// 默认按钮规则
+function __defaultBtnOption(option: any, specific: any) {
+ return {
+ type: option && option.type ? option.type : specific.type,
+ disabled: option && option.disabled ? option.disabled : specific.disabled,
+ plain: option && option.plain ? option.plain : specific.plain,
+ icon: option && option.icon ? option.icon : specific.icon,
+ label: option && option.label ? option.label : specific.label,
+ name: option && option.name ? option.name : specific.name,
+ size: option && option.size ? option.size : specific.size,
+ float: option && option.float ? option.float : specific.float || null,
+ url: option && option.url ? option.url : specific.url || null,
+ background: option && option.background ? option.background : specific.background || null,
+ class: option && option.class ? option.class : specific.class,
+ color: option && option.color ? option.color : specific.color,
+ hide: option && option.hide ? option.hide : specific.hide,
+ link: option && option.link ? option.link : specific.link,
+ hasPermi: option && option.hasPermi ? option.hasPermi : specific.hasPermi,
+ width: option && option.width ? option.width : specific.width,
+ ...option
+ }
+}
diff --git a/src/utils/disposition/formFields.ts b/src/utils/disposition/formFields.ts
new file mode 100644
index 0000000..941ce69
--- /dev/null
+++ b/src/utils/disposition/formFields.ts
@@ -0,0 +1,1954 @@
+/**
+ * @returns {Array} 基础物料信息
+ */
+ export const ItemBasic = [
+ { label: "物料代码", prop: 'code' },
+ { label: "物料名称", prop: "name" },
+ { label: "描述1", prop: "desc1" },
+ { label: "描述2", prop: "desc2" },
+ { type: "filter", label: "状态", prop: "status", filters: "itemStatus" },
+ { label: "计量单位", prop: 'basicUom' },
+ { type: "filter", label: "ABC类", prop: 'abcClass', filters: "abcClass" },
+ { type: "filter", label: "制造件", prop: "canMake", filters: "whetherOrNot" },
+ { type: "filter", label: "采购件", prop: "canBuy", filters: "whetherOrNot" },
+ { label: "产品类", prop: 'productLine' },
+ { label: "有效值", prop: "validity" },
+ { type: "filter", label: "有效期", prop: "validityUnit", filters: "validityUnit" },
+ // { type: "filter", label: "管理类型", prop: "manageType", filters: "manageType" },
+ { label: "类型", prop: 'type' },
+ { label: "种类", prop: 'category' },
+ { label: "分组", prop: 'group' },
+ { label: "颜色", prop: 'color' },
+ { label: "配置", prop: 'configuration' },
+ { label: "项目", prop: 'project' },
+ { label: "版本", prop: 'version' },
+ { label: "工程变更", prop: 'eco' },
+ { label: "E-LEVEL等级", prop: 'elevel' },
+ { type: "filter", label: "是否虚拟物料", prop: "isPhantom", filters: "whetherOrNot" },
+ { type: "filter", label: "是否是下线结算件", prop: "isOfflineSettlement", filters: "whetherOrNot" },
+ { type: "filter", label: "是否自动回冲", prop: "isAutoBackFlush", filters: "whetherOrNot" },
+ { label: "特性", prop: 'characteristic' },
+ { label: "管理类型", prop: 'remark' },
+ ]
+
+/**
+ * @returns {Array} 物料质量信息
+ */
+ export const ItemQuality = [
+ { label: "itemCode", prop: "itemCode" },
+ { label: "物料名称", prop: 'name' },
+ { label: "供应商代码", prop: 'supplierCode' },
+ { type: "filter", label: "检验类型", prop: 'inspectType', filters: "inspectType" },
+ { label: "检验周期-按到货频次", prop: 'inspFrequency' },
+ { label: "检验周期天数", prop: 'inspFreqDays' },
+ { type: "filter", label: "按批次选择抽检数量", prop: 'sampleByBatch', filters: "whetherOrNot" },
+ { label: "抽检数量", prop: 'sampleQty' },
+ { type: "filter", label: "状态", prop: "status", filters: "openToClose" },
+ { label: "检验百分比", prop: 'samplePercent' },
+ { type: "filter", label: "是否是破坏性检验", prop: 'destructive', filters: "whetherOrNot" },
+ { type: "filter", label: "退货方法", prop: 'returnMethod', filters: "returnMethodType" },
+ { label: "描述", prop: "description" },
+ ]
+
+/**
+ * @returns {Array} 物料分类信息
+ */
+ export const ItemCategory = [
+ { label: "itemCode", prop: 'itemCode', },
+ { label: "分类编号", prop: "categoryCode", },
+ { label: "分类值", prop: "value", },
+ { label: "备注", prop: 'remark', },
+ ]
+
+/**
+ * @returns {Array} 物料包装
+ */
+ export const ItemPack = [
+ { label: "包装代码", prop: 'packCode', },
+ { label: "包装名称", prop: "packName" },
+ { label: '物料代码', prop: "itemCode", },
+ { label: "是否标准包装", type: "filter", prop: 'isStdPack', filters: "whetherOrNot" },
+ { label: '标包编号', prop: "stdPackCode", },
+ { label: "包装数量",type: "object", prop: "packQty", showProp: "qty" },
+ { label: "物料单位",type: "object", prop: "packQty", showProp: "uom" },
+ { label: "转换率", prop: "conversionRate", },
+ { label: "备注", prop: 'remark', colSpan: 12 },
+ ]
+
+/**
+ * @returns {Array} 物料质检标准
+ */
+ export const AQL = [
+ { label: "itemCode", prop: "itemCode", },
+ { label: "供应商代码", prop: "supplierCode", },
+ { label: "数量上限", prop: 'ceilingQty', },
+ { label: "数量下限", prop: "floorQty", },
+ { type: "filter", label: "使用百分比", prop: 'isUsePercent', filters: "whetherOrNot" },
+ { label: "抽检百分比", prop: 'samplePercent', },
+ { label: "抽检数量", prop: 'sampleQty', },
+ { label: "备注", prop: "remark", },
+ ]
+
+/**
+ * @returns {Array} 物料清单
+ */
+ export const Bom = [
+ { label: "父物料号", prop: "product", },
+ { label: "子物料号", prop: 'component', },
+ { type: "object", label: "子物料用量", prop: 'perQty', showProp: "qty", },
+ { type: "object", label: "子物料用量单位", prop: 'perQty', showProp: "uom", },
+ // { type: "rangeDateTime", label: "时间窗口", prop: "timeRange", startDate: "beginTime", endDate: "endTime", colSpan: 24 },
+ { type: "objectDateTime", label: "开始时间", prop: "timeRange", showProp: "beginTime", },
+ { type: "objectDateTime", label: "结束时间", prop: "timeRange", showProp: "endTime", },
+ { label: "ERP工序", prop: "erpOp", },
+ { label: "制造工序", prop: "mfgOp", },
+ { label: "层级", prop: "layer" },
+ // { type: "input", label: "层级", valueType: Number, prop: "layer", },
+ { type: "filter", label: "配送方式", prop: "distributionType", filters: "distributionType" },
+ { type: "filter", label: "取整方式", prop: "truncType", filters: "truncType" },
+ { type: "filter", label: "计划拆分规则", prop: "plannedSplitRule", filters: "plannedSplitRule" },
+ { label: "备注", prop: 'remark', },
+ ]
+
+/**
+ * @returns {Array} 客户
+ */
+ export const Customer = [
+ { label: "客户代码", prop: "code", },
+ { label: "客户名称", prop: 'name', },
+ { label: "国家", prop: "country", },
+ { label: "城市", prop: "city", },
+ { label: "地址", prop: "address", },
+ { label: "联系人", prop: "contacts", },
+ { label: "电话", prop: "phone", },
+ { label: "传真", prop: "fax", },
+ { label: "邮编", prop: "postID", },
+ { label: "货币", prop: "currency", },
+ { label: "备注", prop: 'remark', },
+ ]
+
+/**
+ * @returns {Array} 客户物料
+ */
+ export const CustomerItem = [
+ { label: "客户代码", prop: 'customerCode', },
+ { label: "itemCode", prop: "itemCode", },
+ { label: "客户物料代码", prop: "customerItemCode", },
+ { label: "版本", prop: "version", },
+ { type: "objectDateTime", label: "开始时间", prop: "timeRange", showProp: "beginTime" },
+ { type: "objectDateTime", label: "结束时间", prop: "timeRange", showProp: "endTime" },
+ { label: "备注", prop: 'remark', },
+ ]
+
+/**
+ * @returns {Array} 客户地址
+ */
+ export const CustomerAddress = [
+ { label: "客户地址代码", prop: "code", },
+ { label: "客户地址名称", prop: 'name', },
+ { label: "客户代码", prop: 'customerCode', },
+ { label: "库位编号", prop: 'locationCode', },
+ { label: "城市", prop: "city", },
+ { label: "地址", prop: "address", },
+ { label: "联系人", prop: "contact", },
+ { label: "描述", prop: "desc", },
+ { label: "备注", prop: 'remark', },
+ ]
+
+/**
+ * @returns {Array} 项目
+ */
+ export const Project = [
+ { label: "客户代码", prop: "customerCode"},
+ { label: "项目代码", prop: "code"},
+ { label: "项目名称", prop: 'name'},
+ { type: "objectDateTime", label: "开始时间", prop: "timeRange", showProp: "beginTime", colSpan: 12 },
+ { type: "objectDateTime", label: "结束时间", prop: "timeRange", showProp: "endTime", colSpan: 12 },
+ { label: "描述", prop: "description", },
+ { label: "备注", prop: 'remark', },
+ ]
+
+/**
+ * @returns {Array} 供应商
+ */
+ export const Supplier = [
+ { label: "供应商代码", prop: "code"},
+ { label: "供应商名称", prop: "name"},
+ { type: "filter",label: "状态", prop: "isActive", filters: "openToCloseBit"},
+ { type: "filter",label: "类型", prop: "type", filters: "supplierType"},
+ { label: "国家", prop: "country"},
+ { label: "城市", prop: "city"},
+ { label: "地址", prop: "address"},
+ { label: "联系人", prop: 'contacts'},
+ { label: "电话", prop: 'phone'},
+ { label: "传真", prop: 'fax'},
+ { label: "邮编", prop: 'postID'},
+ { label: "银行", prop: 'bank'},
+ { label: "货币", prop: 'currency'},
+ { label: "备注", prop: 'remark'},
+ ]
+
+/**
+ * @returns {Array} 供应商物料
+ */
+ export const SupplierItem = [
+ { label: "供应商代码", prop: 'supplierCode' },
+ { label: "itemCode", prop: "itemCode" },
+ { label: "供应商物料代码", prop: "supplierItemCode" },
+ { label: "供应商物料名称", prop: "itemName" },
+ { label: "每托数量", prop: "qtyPerPallet" },
+ { type: "object", label: "包装数量", prop: "supplierPackQty", showProp: "qty" },
+ { type: "object", label: "包装单位", prop: "supplierPackQty", showProp: "uom" },
+ { label: "版本", prop: "version" },
+ { label: "备注", prop: 'remark' },
+ ]
+
+/**
+ * @returns {Array} 供应商时间窗口
+ */
+ export const SupplierTime = [
+ { label: "供应商代码", prop: 'supplierCode', },
+ { label: "供应商名称", prop: 'supplierName', },
+ { label: "时间窗口", prop: "timeSlot", },
+ { label: "当前时间", prop: "week", },
+ { label: "备注", prop: 'remark', },
+ ]
+
+/**
+ * @returns {Array} 分类
+ */
+ export const Category = [
+ { label: "分类编号", prop: "code" },
+ { label: "分类名称", prop: 'name' },
+ { label: "描述", prop: "description" },
+ { label: "备注", prop: 'remark' }
+ ]
+
+/**
+ * @returns {Array} 计量单位
+ */
+ export const Uom = [
+ { label: "计量单位编号", prop: "code", },
+ { label: "计量单位名称", prop: 'name', },
+ { type: "filter", label: "类型", prop: "type", filters: "uomType", },
+ { label: "描述", prop: "description", },
+ { label: "备注", prop: 'remark', },
+ ]
+
+/**
+ * @returns {Array} 收货口
+ */
+ export const Dock = [
+ { label: "收货口编号", prop: "code" },
+ { label: "默认库位编号", prop: "defaultLocationCode" },
+ { label: "收货口名称", prop: 'name' },
+ { label: "描述", prop: "description" },
+ { label: "备注", prop: 'remark' }
+ ]
+
+/**
+ * @returns {Array} 库区
+ */
+ export const Area = [
+ { label: "库区代码", prop: "code", },
+ { label: "库区名称", prop: 'name', },
+ { type: "filter", label: "是否功能区", prop: "isFunctional", filters: "whetherOrNot" },
+ { type: "filter", label: "类型", prop: "areaType", filters: "areaType" },
+ { label: "描述", prop: "description", },
+ { label: "备注", prop: 'remark', },
+ ]
+
+/**
+ * @returns {Array} 库位组
+ */
+ export const LocationGroup = [
+ { label: "库区代码", prop: "areaCode", },
+ { type: "filter", label: "类型", prop: "groupType", filters: "locationType", },
+ { type: "filter", label: "状态", prop: "defaultInventoryStatus", filters: "inventoryStage", },
+ { label: "备货优先级", prop: "pickPriority", },
+ { label: "编号", prop: "code", },
+ { label: "名称", prop: 'name', },
+ { label: "描述", prop: "description", },
+ { label: "溢流库位组", prop: "overflowLocationGroup", },
+ { type: "objectFilter", label: "是否混物料", prop: "locSwitch", showProp: "enableMixItem", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否混批次", prop: "locSwitch", showProp: "enableMixLot", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否混状态", prop: "locSwitch", showProp: "enableMixStatus", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否负库存", prop: "locSwitch", showProp: "enableNegative", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否保留零库存", prop: "locSwitch", showProp: "enableKeepZero", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否机会盘点", prop: "locSwitch", showProp: "enableOpportunityCount", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否领料", prop: "locSwitch", showProp: "enablePick", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否过量领料", prop: "locSwitch", showProp: "enableOverPick", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否整包存储", prop: "locSwitch", showProp: "enableWholeStore", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否散件存储", prop: "locSwitch", showProp: "enableBreakStore", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否发出", prop: "locSwitch", showProp: "enableShip", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否接收", prop: "locSwitch", showProp: "enableReceive", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否退货给供应商", prop: "locSwitch", showProp: "enableReturnToSupplier", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否接收客户退货", prop: "locSwitch", showProp: "enableReturnFromCustomer", filters: "whetherOrNot", },
+ { label: "备注", prop: 'remark', },
+ ]
+
+/**
+ * @returns {Array} 工位组
+ */
+ export const WorkGroup = [
+ { label: "工作组代码", prop: "code" },
+ { label: "工作组名称", prop: 'name' },
+ { label: "描述", prop: "description" },
+ { label: "仓库代码", prop: "warehouseCode" },
+ { label: "备注", prop: 'remark' }
+ ]
+/**
+ * @returns {Array} 库位
+ */
+ export const Location = [
+ { label: "库位代码", prop: "code", },
+ { label: "库位名称", prop: "name", },
+ { label: "库区代码", prop: "areaCode", },
+ { label: "库位组代码", prop: "locationGroupCode", },
+ { label: "工作组代码", prop: "workGroupCode", },
+ { type: "object", label: "库位数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "库位数量单位", prop: "qty", showProp: "uom", },
+ { type: "filter", label: "类型", prop: "type", filters: "locationType", },
+ { label: "行号", prop: "rowCode", },
+ { label: "列号", prop: "columnCode", },
+ { type: "filter", label: "默认库存状态", prop: "defaultInventoryStatus", filters: "inventoryStage", },
+ { label: "备货优先级", prop: "pickPriority", },
+ { label: "备货顺序", prop: "pickOrder", },
+ { label: "货架号", prop: "shelfCode", },
+ { label: "ERP系统库位编号", prop: "erpLocationCode", },
+ { type: "objectFilter", label: "是否混物料", prop: "locSwitch", showProp: "enableMixItem", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否混批次", prop: "locSwitch", showProp: "enableMixLot", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否混状态", prop: "locSwitch", showProp: "enableMixStatus", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否负库存", prop: "locSwitch", showProp: "enableNegative", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否保留零库存", prop: "locSwitch", showProp: "enableKeepZero", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否盘点", prop: "locSwitch", showProp: "enableOpportunityCount", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否领料", prop: "locSwitch", showProp: "enablePick", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否过量领料", prop: "locSwitch", showProp: "enableOverPick", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否整包存储", prop: "locSwitch", showProp: "enableWholeStore", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否散件存储", prop: "locSwitch", showProp: "enableBreakStore", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否发出", prop: "locSwitch", showProp: "enableShip", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否接收", prop: "locSwitch", showProp: "enableReceive", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否退货给供应商", prop: "locSwitch", showProp: "enableReturnToSupplier", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否接收客户退货", prop: "locSwitch", showProp: "enableReturnFromCustomer", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否拆箱", prop: "locSwitch", showProp: "enableSplitBox", filters: "whetherOrNot", },
+ { type: "objectFilter", label: "是否拆托", prop: "locSwitch", showProp: "enableSplitPallet", filters: "whetherOrNot", },
+ { label: "描述", prop: "description", },
+ { label: "备注", prop: 'remark', },
+ ]
+
+ /**
+ * @returns {Array} ERP库位
+ */
+ export const ERPLocation = [
+ { label: "ERP库位代码", prop: "code" },
+ { label: "ERP库位名称", prop: "name" },
+ { label: "仓库代码", prop: "warehouseCode" },
+ { type: "filter", label: "类型", prop: "type", filters: "locationType" },
+]
+
+/**
+ * @returns {Array} 库位零件关系
+ */
+ export const ItemStoreRelation = [
+ { label: "itemCode", prop: "itemCode", options: "itemBasic" },
+ { type: "filter", label: "储存关系类型", prop: "storeRelationType", filters: "storeRelationType", },
+ { type: "filter", label: "是否可用", prop: "enabled", filters: "whetherOrNot", },
+ { type: "filter", label: "是否定制位置", prop: "isFixed", filters: "whetherOrNot", },
+ { label: "主存储容量", prop: "umQty", },
+ { label: "主存储单位", prop: "storeUM", },
+ { label: "次要存储容量", prop: "altUmQty", },
+ { label: "次要存储单位", prop: "altUm", },
+ { type: "filter", label: "存储单位", prop: "pramaryUM", filters: "pramaryUm" },
+ { label: "值", prop: "storeValue", },
+ { label: "备注", prop: 'remark', },
+ ]
+
+/**
+ * @returns {Array} 库位可用容量
+ */
+ export const InventoryLocationCapacity = [
+ { label: "可用容量(%)", prop: "availableCapacity", },
+ { type: "filter", label: "是否无穷大", prop: "isInfinity", filters: "whetherOrNot" },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: 'remark', },
+ ]
+
+ /**
+ * @returns {Array} 物料安全库存
+ */
+ export const ItemSafetyStock = [
+ { label: "物料代码", prop: "itemCode", },
+ { label: "仓库代码", prop: "warehouseCode" },
+ { type: "filter", label: "存储关系类型", prop: "storeRelationType", filters: "storeRelationType", },
+ { label: "值", prop: "storeValue" },
+ { label: "最大库存", prop: "maxStock" },
+ { label: "最小库存", prop: "minStock" },
+ { label: "安全库存", prop: "safetyStock" },
+ { label: "补料点", prop: "feedLine" },
+ { label: "补料数量", prop: "feedQty" },
+ { label: "补料单位", prop: "feedUM" },
+]
+
+/**
+ * @returns {Array} 物料安全库存
+ */
+ export const ItemSafetyStockQuery = [
+ {
+ label: "物料代码",
+ prop: "itemCode",
+ fixed: "left",
+ type: "name",
+ },
+ { label: "仓库代码", prop: "warehouseCode" },
+ { type: "filter", label: "存储关系类型", prop: "storeRelationType", filters: "storeRelationType", },
+ { label: "值", prop: "storeValue" },
+ { label: "最大库存", prop: "maxStock" },
+ { label: "最小库存", prop: "minStock" },
+ { label: "安全库存", prop: "safetyStock" },
+ { label: "补料点", prop: "feedLine" },
+ { label: "补料数量", prop: "feedQty" },
+ { label: "补料单位", prop: "feedUM" },
+]
+
+/**
+ * @returns {Array} 车间
+ */
+ export const Workshop = [
+ { label: "车间代码", prop: "code" },
+ { label: "车间名称", prop: 'name' },
+ { label: "描述", prop: "description" },
+ { label: "备注", prop: 'remark' },
+ ]
+
+/**
+ * @returns {Array} 生产线
+ */
+ export const ProductionLine = [
+ { label: "生产线代码", prop: "code" },
+ { label: "生产线名称", prop: 'name' },
+ { label: "类型", prop: "type" },
+ { label: "车间代码", prop: "workshopCode" },
+ { label: "成品库位", prop: "productLocation" },
+ { label: "描述", prop: "description" },
+ { label: "备注", prop: 'remark' }
+ ]
+/**
+ * @returns {Array} 生产线零件关系
+ */
+ export const ProdLineItem = [
+ { label: "物料代码", prop: "itemCode", },
+ { label: "生产线编号", prop: "prodLineCode", },
+ { label: "生产线名称", prop: "prodLineName", },
+ { label: "车间代码", prop: "workshopCode", },
+ { label: "原料库位", prop: "rawLocation" },
+ { label: "成品ERP库位", prop: "productErpLocationCode" },
+ { label: "备注", prop: "remark", },
+ ]
+/**
+ * @returns {Array} 班组
+ */
+ export const Team = [
+ { label: "班组代码", prop: "code" },
+ { label: "班组名称", prop: 'name' },
+ { label: "成员", prop: "members" },
+ { label: "描述", prop: "description" },
+ { label: "备注", prop: 'remark' },
+ ]
+/**
+ * @returns {Array} 班次
+ */
+ export const Shift = [
+ { type: "input", label: "班次代码", prop: "code", },
+ { type: "input", label: "班次名称", prop: "name", },
+ { type: "filter", label: "结束到下一天", prop: "endAtNextDay", filters: "whetherOrNot", },
+ { label: "描述", prop: "description", },
+ { type: "objectDateTime", label: "开始时间", prop: "timeRange", showProp: "beginTime", },
+ { type: "objectDateTime", label: "结束时间", prop: "timeRange", showProp: "endTime", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 日历
+ */
+ export const Calendar = [
+ { label: "模块", prop: "module", },
+ { type: "filter", label: "状态", prop: "status", filters: "calendarStatus" },
+ { label: "编号", prop: "code", },
+ { label: "名称", prop: 'name', },
+ { label: "描述", prop: "description", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 配置
+ */
+ export const Configuration = [
+ { label: "键", prop: "key", },
+ { label: "值", prop: "value", },
+ { label: "描述", prop: "description", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 采购订单
+ */
+ export const PurchaseOrder = [
+ { label: "采购订单号", prop: 'number' },
+ { label: "供应商编号", prop: "supplierCode", },
+ { label: "仓库", prop: "warehouseCode", },
+ { label: "订单类型", prop: "poType", },
+ { label: "订单状态", prop: "status", },
+ { type: "filter", label: "是否寄存订单", prop: "isConsignment", filters: "whetherOrNot" },
+ { type: "dateTime", label: "订单日期", prop: "orderDate", },
+ { type: "dateTime", label: "截止日期", prop: "dueDate", },
+ { label: "版本", prop: "version", },
+ { label: "税率", prop: "taxRate", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 销售订单
+ */
+ export const SaleOrder = [
+ { label: "销售订单号", prop: "number", },
+ { label: "客户代码", prop: "customerCode", },
+ // { label: "父物料号", prop: "product", },
+ // { label: "子物料号", prop: 'component', },
+ { label: "版本", prop: "version", },
+ { label: "工序", prop: "op", },
+ { label: "层级", prop: "layer", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 供应商发货通知
+ */
+ export const SupplierAsn = [
+ { label: "要货计划单号", prop: "rpNumber" },
+ { label: "供应商代码", prop: "supplierCode" },
+ { label: "状态", prop: "status", type: "filter", filters: "supplierStatus" },
+ { type: "object", label: "客户名称", prop: 'contacts',showProp: 'name' },
+ { label: "车牌号", prop: "truckNumber" },
+ { label: "仓库代码", prop: "warehouseCode" },
+ { label: "收货口代码", prop: "dockCode" },
+ { label: "发货日期", prop: 'shipDate', type:'dateTime' },
+ { label: "到货日期", prop: 'dueDate', type:'dateTime' },
+ { label: "时间窗口", prop: 'timeWindow' },
+ { label: "公司", prop: 'company' },
+ { label: "创建时间", prop: 'createTime', type:'dateTime' },
+ ]
+/**
+ * @returns {Array} 客户发货通知
+ */
+ export const CustomerAsn = [
+ { label: "编号", prop: "id", },
+ { label: "父物料号", prop: "product", },
+ { label: "子物料号", prop: 'component', },
+ { label: "版本", prop: "version", },
+ { label: "工序", prop: "op", },
+ { label: "层级", prop: "layer", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 到货通知
+ */
+ export const ArriveNotice = [
+ { label: "仓库", prop: "warehouseCode" },
+ { label: "收货口", prop: "dockCode" },
+ { label: "到货单号", prop: "number" },
+ { type: "dateTime", label: "到货时间", prop: "arriveTime" },
+ { label: "发货单号", prop: "asnNumber" },
+ { label: "要货计划单号", prop: "rpNumber" },
+ { label: "订单号", prop: "poNumber" },
+ { label: "供应商编号", prop: "supplierCode" },
+ { label: "状态", type: "filter", filters: "arriveNoticeStatus", prop: "status", },
+ { type: "dateTime", label: "创建时间", prop: "createTime" },
+ { label: "备注", prop: "remark" },
+ ]
+ /**
+ * @returns {Array} 采购收货记录
+ */
+ export const PurchaseReceiptNote = [
+ { label: "编号", prop: "id", },
+ { label: "供应商单号", prop: "supplierCode", },
+ { label: "到货单号", prop: 'arriveNoticeNumber', },
+ { label: "发货单号", prop: "asnNumber", },
+ { label: "收货单号", prop: "number", },
+ { label: "要货计划单号", prop: "rpNumber", },
+ { type: "dateTime", label: "收货时间", prop: "receiveTime", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 收货异常记录
+ */
+ export const ReceiptAbnormalNote = [
+ { label: "收货单号", prop: 'receiptNumber', },
+ { label: "发货单号", prop: "asnNumber", },
+ { label: "供应商编号", prop: 'supplierCode', },
+ { label: "箱标签", prop: 'packingCode', },
+ { label: "托标签", prop: 'containerCode',},
+ { label: "异常类型", prop: 'abnormalType', },
+ { label: "itemCode", prop: 'itemCode',},
+ { label: "批次编号", prop: 'batchCode',},
+ { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 采购退货记录
+ */
+ export const PurchaseReturnNote = [
+ { label: "退货单号", prop: "number", },
+ { label: "供应商单号", prop: "supplierCode", },
+ // { label: "到货单号", prop: 'arriveNumber', },
+ // { label: "发货单号", prop: "asnNumber", },
+ // { label: "收货单号", prop: "receiptNumber", },
+ // { label: "要货计划单号", prop: "rpNumber", },
+ // { label: "收货时间", prop: "receiveTime", },
+ { type: "dateTime", label: "退货时间", prop: "returnTime", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 上架记录
+ */
+ export const PutawayNote = [
+ { label: "编号", prop: "id", },
+ { label: "上架记录单号", prop: "number", },
+ { label: "任务ID", prop: 'jobNumber',},
+ // { label: "供应商编号", prop: 'supplierCode',},
+ // { label: "操作员", prop: 'worker',},
+ // { label: "检验单号", prop: 'inspectNumber',},
+ // { label: "收费单号", prop: 'receiptNumber',},
+ // { label: "到货单号", prop: 'arriveNoticeNumber',},
+ // { label: "发货单号", prop: 'asnNumber',},
+ // { label: "要货计划单号", prop: 'rpNumber',},
+ // { label: "完工收货单号", prop: 'productReceiptNumber',},
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: "remark", },
+]
+ /**
+ * @returns {Array} 要料申请
+ */
+ export const MaterialRequest = [
+ { label: "编号", prop: "id", },
+ { label: "要料申请单号", prop: "number", },
+ { label: "车间", prop: "workshop", },
+ { label: "任务状态", type: "filter", filters: "requestStatus", prop: "status", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 发料记录
+ */
+ export const IssueNote = [
+ { label: "编号", prop: "id", },
+ { label: "发料记录单号", prop: "number", },
+ { label: "任务ID", prop: 'jobNumber',},
+ { label: "操作员", prop: 'worker',},
+ { label: "车间", prop: 'workshop',},
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: "remark", },
+]
+ /**
+ * @returns {Array} 计划外入库记录
+ */
+ export const UnplannedReceiptNote = [
+ { type: "input", label: "编号", prop: "id" },
+ // { label: "计划外入库单号", prop: "unplannedReceiptNumber", },
+ { label: "流水单号", prop: "seqNo" },
+ // { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 计划外出库记录
+ */
+ export const UnplannedIssueNote = [
+ { type: "input", label: "编号", prop: "id" },
+ // { label: "计划外出库单号", prop: "unplannedIssueNumber", },
+ { label: "流水单号", prop: "seqNo" },
+ // { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 隔离记录
+ */
+ export const IsolationNote = [
+ { label: "编号", prop: "id", },
+ { label: "隔离记录单号", prop: "number", },
+ { label: "任务ID", prop: "jobNumber",},
+ { label: "操作员", prop: "worker",},
+ { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 工单号维护
+ */
+ export const WorkOrder = [
+ { label: "工单号", prop: "workNumberValue" },
+ { type: "filter", label: "类型", prop: "workOrderType", filters: "workOrderType" },
+ { type: "filter", label: "状态", prop: "status", filters: "workOrderStatus" },
+ { label: "描述", prop: "description" },
+ { label: "备注", prop: 'remark' },
+ ]
+ /**
+ * @returns {Array} 报废记录
+ */
+ export const ScrapNote = [
+ { label: "编号", prop: "id", },
+ { label: "报废记录单号", prop: "number",},
+ // { label: "部门", prop: 'department' },
+ { label: "工单号", prop: 'workOrder' },
+ // { label: "流水号", prop: 'seqNo' },
+ { label: "操作员", prop: "worker",},
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 发货计划
+ */
+ export const DeliverPlan = [
+ { label: "编号", prop: "id", },
+ { label: "客户", prop: "customer", },
+ // { label: "项目", prop: "project", },
+ // { label: "销售订单号", prop: "soNumber", },
+ { type: "dateTime", label: "计划日期", prop: "planDate", },
+ { type: "dateTime", label: "计划时间", prop: "planTime", },
+ { label: "发货计划单号", prop: "number", },
+ { type: "filter", filters: "DeliverPlanStatus", label: "状态", prop: "status", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { type: "filter", label: "发货方式", prop: "shipVia", filters: "DeliverPlanTransport" },
+ { type: "filter", label: "运输方式", prop: "modeOfTransport", filters: "DeliverPlanTransport" },
+ { type: "filter", label: "承运商", prop: "carrier", filters: "DeliverPlanFreightTJ" },
+ // { label: "承运商参考", prop: "carrierShipmentRef" },
+ { label: "车辆", prop: "vehicleID" },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 发货申请
+ */
+ export const DeliverRequest = [
+ { label: "编号", prop: "id", },
+ { label: "发货申请单号", prop: "number", },
+ { label: "客户", prop: "customer", },
+ { label: "任务状态", type: "filter", filters: "requestStatus", prop: "status", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 发货记录
+ */
+export const DeliverNote = [
+ { label: "编号", prop: "id", },
+ { label: "发货记录单号", prop: "number", },
+ { label: "任务ID", prop: 'jobNumber', },
+ { label: "操作员", prop: 'worker',},
+ { label: "客户", prop: 'customer',},
+ { label: "客户地址", prop: 'customerAddressCode',},
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: "remark", },
+]
+
+/**
+ * @returns {Array} 仓库管理-发运管理-发货记录(天津)
+ */
+ export const WareHouseTransferNote = [
+ { label: "ID", prop: "id", },
+ { label: "调拨发货单号", prop: "number", },
+ { label: "操作员", prop: "worker", },
+ { label: "任务ID", prop: "jobNumber", },
+ { label: "供应商编号", prop: "supplierCode", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 发货任务(天津)
+ */
+ export const Shipments = [
+ { label: "发货任务编号", prop: "number", },
+ { label: "器具类型", prop: "position", filters: "InstrumentsLXStatus" , type: "filter" },
+ { label: "器具数量", prop: 'containerQty', },
+ { label: "操作员", prop: 'worker',},
+ { label: "客户", prop: 'customer',},
+ { label: "客户地址", prop: 'customerAddressCode',},
+ { label: "项目", prop: "projectCode", },
+ { label: "计划时间", prop: "planTime", },
+ { label: "备注", prop: "remark", },
+]
+
+/**
+ * @returns {Array} 器具查询(天津)
+ */
+ export const Instruments = [
+ {label: "器具编号",prop: "containerCode"},
+ { label: "排序号", prop: "seqNo"},
+ { type: "filter", label: "状态", prop: "businessStatus", filters: "instrumentsStatus" },
+ { label: "成品库位编号", prop: "locationCode"},
+ { type: "filter", label: "类型", prop: "type", filters: "InstrumentsLXStatus" },
+ { label: "产品数量", prop: "capacity"},
+ { label: "项目编号", prop: "projectCode"},
+ { label: "备注", prop: 'remark' }
+]
+
+/**
+ * @returns {Array} 收货记录(天津)
+ */
+ export const ReceivingRecords = [
+ { label: "ID", prop: "id", },
+ { label: "收货记录单号", prop: "number"},
+ { label: "生产线编码", prop: "prodLine" },
+ { label: "成品库位编码", prop: "locationCode" },
+ { label: "原料库位编码", prop: "rawLocation" },
+ { label: "收货时间", prop: "completeTime", type: "dateTime" },
+ { label: "操作员", prop: "worker" },
+]
+
+/**
+ * @returns {Array} 发货记录(天津)
+ */
+ export const DeliveryRecord = [
+ { label: "ID", prop: "id", },
+ { label: "发货记录单号", prop: "number"},
+ { label: "任务编号", prop: "jobNumber" },
+ { label: "操作员", prop: "worker" },
+ { label: "客户", prop: "customer" },
+ { label: "客户地址", prop: "customerAddressCode"},
+ { label: "项目", prop: "projectCode" },
+ { label: "发货日期", prop: "deliverTime", type: "dateTime" },
+ { label: "备注", prop: "remark" }
+]
+
+/**
+ * @returns {Array} 仓库管理-发运管理-回收记录(天津)
+ */
+ export const JisProductRecycleNote = [
+ {
+ label: "回收单号",
+ prop: "number",
+ fixed: "left",
+ type: "name",
+ width: "300px"
+ },
+ { label: "生产计划单号", prop: "productionPlanNumber"},
+ { label: "操作员", prop: "worker" },
+ { label: "仓库", prop: "warehouseCode"},
+ { label: "收货库位", prop: "locationCode"},
+ { label: "原料库位", prop: "rawLocation"},
+ { label: "生产线", prop: "prodLine"},
+ { label: "车间", prop: "workshop"},
+ { label: "班次", prop: "shift"},
+ { label: "回收时间", prop: "recycleTime", type: "dateTime"},
+ { label: "备注", prop: 'remark' }
+]
+/**
+ * @returns {Array} 仓库管理-发运管理-退库记录(天津)
+ */
+ export const JisProductReturnNote = [
+ {
+ label: "退库单号",
+ prop: "number",
+ fixed: "left",
+ type: "name",
+ width: "300px"
+ },
+ { label: "发货任务编号", prop: "jobNumber" },
+ { label: "客户", prop: "customer"},
+ { label: "从库位", prop: "fromLocationCode"},
+ { label: "到库位", prop: "toLocationCode"},
+ { label: "从仓库", prop: "fromWarehouseCode"},
+ { label: "到仓库", prop: "toWarehouseCode"},
+ { label: "操作员", prop: "worker" },
+ { label: "创建时间", prop: "createTime", type: "dateTime"},
+ { label: "备注", prop: 'remark' }
+]
+/**
+ * @returns {Array} 仓库管理-发运管理-库存调整记录(天津)
+ */
+ export const JisProductTransferNote = [
+ {
+ label: "库存调整单号",
+ prop: "number",
+ fixed: "left",
+ type: "name",
+ width: "300px"
+ },
+ { label: "从库位", prop: "fromLocationCode"},
+ { label: "到库位", prop: "toLocationCode"},
+ { label: "从仓库", prop: "fromWarehouseCode"},
+ { label: "到仓库", prop: "toWarehouseCode"},
+ { label: "操作员", prop: "worker"},
+ { label: "创建时间", prop: "createTime", type: "dateTime"},
+]
+/**
+ * @returns {Array} 盘点计划
+ */
+ export const CountPlan = [
+ { label: "盘点计划单号", prop: "number", },
+ // { type: "filter", filters: "checkType", label: "类型", prop: "type", },
+ // { type: "filter", filters: "checkStage", label: "阶段", prop: "stage", },
+ { type: "filter", filters: "CheckPlanStatus", label: "状态", prop: "status", },
+ { label: "描述", prop: "descrpiton", },
+ { type: "dateTime", label: "开始时间", prop: "beginTime", },
+ { type: "dateTime", label: "结束时间", prop: "endTime", },
+ { label: "地点", prop: "company", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 调整库存
+ */
+ export const CountPlanAdjust = [
+ { label: "盘点报告单号", prop: "number", },
+ { label: "盘点计划单号", prop: "countPlanNumber", },
+ { type: "filter", filters: "CheckPlanStatus", label: "状态", prop: "status", },
+ // { type: "filter", filters: "stageType", label: "阶段", prop: "stage", },
+ { type: "dateTime", label: "开始时间", prop: "beginTime", },
+ { type: "dateTime", label: "结束时间", prop: "endTime", },
+
+]
+
+/**
+ * @returns {Array} 盘点记录
+ */
+ export const CountNote = [
+ { label: "盘点报告单号", prop: "number", },
+ { type: "input", label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 盘点差异调整记录
+ */
+ export const CountAdjustNote = [
+ { label: "盘点差异调整记录单号", prop: "number", },
+ { label: "盘点记录单号", prop: 'countNoteNumber', },
+ { label: "盘点计划单号", prop: 'countPlanNumber', },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: "remark", },
+]
+
+/**
+ * @returns {Array} 库存余额
+ */
+ export const InventoryBalance = [
+ { label: "itemCode", prop: 'itemCode' },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name" },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1" },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2" },
+ { label: "库位代码", prop: "locationCode" },
+ { type: "filter", label: "库存状态", prop: "status", filters: "inventoryStage" },
+ { label: "批次", prop: 'lot' },
+ { label: "箱标签", prop: 'packingCode' },
+ { label: "托盘标签", prop: 'containerCode' },
+ { type: "object", label: "库存数量", prop: "qty", showProp: "qty" },
+ { type: "object", label: "计量单位", prop: "qty", showProp: "uom" },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "object", label: "库区", prop: "location", showProp: "area", },
+ { type: "object", label: "库位组", prop: "location", showProp: "group", },
+ { type: "dateTime", label: "入库时间", prop: "putInTime", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate" },
+ { type: "objectDateTime", label: "过期日期", prop: "batch", showProp: "expireDate" },
+ { type: "dateTime", label: "上次盘点时间", prop: "lastCountTime", },
+ { label: "上次盘点单号", prop: "lastCountPlanNumber", },
+ { label: "上次盘点标签号", prop: "lastCountLabel", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { type: "filter", label: "是否可用", prop: "isActive", filters: "whetherOrNot", },
+]
+
+/**
+* @returns {Array} ERP库存余额
+*/
+export const ERPInventoryBalance = [
+ { label: "itemCode", prop: "itemCode" },
+ { label: "库位代码", prop: "locationCode", },
+ { label: "库存状态", prop: "status", },
+ { label: "批次", prop: "lot", },
+ { type: "object", label: "库存数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "计量单位", prop: "qty", showProp: "uom", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { type: "dateTime", label: "最后修改时间", prop: "lastModificationTime", },
+]
+
+/**
+ * @returns {Array} 库存事务
+ */
+ export const InventoryTransaction = [
+ { label: "事务编号", prop: "transNumber" },
+ { type: "filter", filters: "TransType", label: "事务分类", prop: "transType" },
+ { type: "filter", filters: "TransSubType", label: "事务类型", prop: "transSubType" },
+ { type: "filter", filters: "transInOutStatus", label: "出库/入库", prop: "transInOut" },
+ { type: "object", label: "事务数量", prop: "qty", showProp: "qty" },
+ { label: "批次", prop: "lot" },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch" },
+ { label: "箱标签", prop: "packingCode" },
+ { label: "托标签", prop: "containerCode" },
+ { label: "itemCode", prop: "itemCode", },
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "计量单位", prop: "qty", showProp: "uom" },
+ { type: "filter", filters: "inventoryStage", label: "库存状态", prop: "inventoryStatus" },
+ { label: "仓库代码", prop: "warehouseCode" },
+ { type: "dateTime", label: "事务日期", prop: "transTime" },
+ { type: "dateTime", label: "生效日期", prop: "activeDate" },
+ { label: "操作员", prop: "worker" },
+ { label: "任务编号", prop: "jobNumber" },
+ { label: "单据编号", prop: "docNumber" },
+ { type: "dateTime", label: "上次修改时间", prop: "lastModificationTime" },
+ { label: "库位代码", prop: "locationCode" },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate" },
+ { label: "管理类型", prop: "manageType" }
+]
+
+/**
+ * @returns {Array} 库存快照
+ */
+ export const InventorySnapshot = [
+ { label: "父物料号", prop: "product", },
+ { label: "子物料号", prop: 'component',},
+ { label: "版本", prop: "version", },
+ { label: "工序", prop: "op", },
+ { label: "层级", prop: "layer", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 库存转移日志
+ */
+ export const InventoryTransferLog = [
+ { label: "库存转移编号", prop: "transferNumber", },
+ { label: "操作员", prop: "worker", },
+ { label: "箱标签", prop: "toPackingCode", },
+ { label: "从库位代码", prop: "fromLocationCode", },
+ { label: "到库位代码", prop: "toLocationCode", },
+ { label: "从托盘标签", prop: "fromContainerCode", },
+ { label: "到托盘标签", prop: "toContainerCode", },
+ { type: "filter", filters: "TransType", label: "事务类型", prop: "transType", },
+ { type: "filter", filters: "TransSubType", label: "事务替代类型", prop: "transSubType", },
+ { label: "从事务编号", prop: "formTransNumber", },
+ { label: "到事务编号", prop: "toTransNumber", },
+ { type: "filter", filters: "inventoryStage", label: "从状态", prop: "fromStatus", },
+ { type: "filter", filters: "inventoryStage", label: "到状态", prop: "toStatus", },
+ { label: "itemCode", prop: "itemCode" },
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "到货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "到货单位", prop: "qty", showProp: "uom", },
+ { label: "批次", prop: 'lot', },
+ { type: "object", label: "从批次", prop: "fromBatch", showProp: "supplierBatch", },
+ { type: "object", label: "到批次", prop: "toBatch", showProp: "supplierBatch", },
+ { label: "备注", prop: 'remark', },
+ { type: "dateTime", label: "事务时间", prop: "transferTime", },
+ { type: "dateTime", label: "生效日期", prop: "activeDate", },
+]
+
+/**
+ * @returns {Array} 库存转移记录
+ */
+export const InventoryTransferNote = [
+ {
+ label: "库存转移编号", prop: "number" },
+ { type: "dateTime", label: "创建时间", prop: "createTime" },
+ { label: "操作员", prop: "worker" },
+ { label: "备注", prop: 'remark' },
+]
+
+/**
+ * @returns {Array} 转合格
+ */
+export const InventoryTransferLogHegeZBuHeGe = [
+ { label: "库存转移编号", prop: "transferNumber", },
+ { label: "操作员", prop: "worker", },
+ { label: "箱标签", prop: "toPackingCode", },
+ { label: "从库位代码", prop: "fromLocationCode", },
+ { label: "到库位代码", prop: "toLocationCode", },
+ { label: "从托盘标签", prop: "fromContainerCode", },
+ { label: "到托盘标签", prop: "toContainerCode", },
+ { type: "filter", filters: "TransType", label: "事务类型", prop: "transType", },
+ { type: "filter", filters: "TransSubType", label: "事务替代类型", prop: "transSubType", },
+ { label: "从事务编号", prop: "formTransNumber", },
+ { label: "到事务编号", prop: "toTransNumber", },
+ { type: "filter", filters: "requestStatus", label: "从状态", prop: "fromStatus", },
+ { type: "filter", filters: "requestStatus", label: "到状态", prop: "toStatus", },
+ { label: "itemCode", prop: "itemCode" },
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "到货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "到货单位", prop: "qty", showProp: "uom", },
+ { label: "批次", prop: 'lot', },
+ { type: "object", label: "从批次", prop: "fromBatch", showProp: "supplierBatch", },
+ { type: "object", label: "到批次", prop: "toBatch", showProp: "supplierBatch", },
+ { label: "备注", prop: 'remark', },
+ { type: "dateTime", label: "事务时间", prop: "transferTime", },
+ { type: "dateTime", label: "生效日期", prop: "activeDate", },
+]
+
+/**
+ * @returns {Array} 已占用库存
+ */
+ export const InventoryOccupied = [
+ { label: "itemCode", prop: "itemCode" },
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "任务编号", prop: "jobNumber" },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托标签", prop: "containerCode", },
+ { label: "库位代码", prop: "locationCode", },
+ { type: "object", label: "占用数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "object", label: "仓库编号", prop: "location", showProp: "warehouse" },
+ { type: "object", label: "库位组编号", prop: "location", showProp: "group" },
+ { type: "object", label: "库区代码", prop: "location", showProp: "area" },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { type: "filter", filters: "taskStatus", label: "状态", prop: "status", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 预填充库存
+ */
+ export const InventoryPredictable = [
+ { label: "itemCode", prop: "itemCode", },
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "任务编号", prop: "jobNumber" },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托标签", prop: "containerCode", },
+ { label: "库位代码", prop: "locationCode", },
+ { type: "object", label: "占用数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "object", label: "仓库编号", prop: "location", showProp: "warehouse" },
+ { type: "object", label: "库位组编号", prop: "location", showProp: "group" },
+ { type: "object", label: "库区代码", prop: "location", showProp: "area" },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { type: "filter", filters: "taskStatus", label: "状态", prop: "status", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 生产计划
+ */
+ export const ProductionPlan = [
+ { label: "生产计划单号", prop: "number", },
+ { label: "生产线", prop: "prodLine", },
+ { label: "车间", prop: "workshop", },
+ { label: "班组", prop: "team", },
+ { label: "班次", prop: "shift", },
+ { type: "filter", filters: "ProductionPlanStatus", label: "状态", prop: "status", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { type: "dateTime", label: "计划日期", prop: "planDate", },
+]
+
+/**
+ * @returns {Array} 备料计划
+ */
+ export const PreparationPlan = [
+ { label: "生产计划单号", prop: "productionPlanNumber", },
+ { label: "生产线", prop: "prodLine", },
+ { label: "车间", prop: "workshop", },
+ { label: "班次", prop: "shift", },
+ { label: "班组", prop: "team", },
+ { label: "状态", type: "filter", filters: "requestStatus", prop: "status", },
+ { type: "dateTime", label: "计划时间", prop: "planTime", },
+]
+
+/**
+ * @returns {Array} 退料
+ */
+ export const MaterialReturn = [
+ { label: "库存转移编号", prop: "transferNumber", },
+ { label: "操作员", prop: "worker", },
+ { label: "箱标签", prop: "toPackingCode", },
+ { label: "从库位代码", prop: "fromLocationCode", },
+ { label: "到库位代码", prop: "toLocationCode", },
+ { label: "从托盘标签", prop: "fromContainerCode", },
+ { label: "到托盘标签", prop: "toContainerCode", },
+ { type: "filter", filters: "TransType", label: "事务类型", prop: "transType", },
+ { type: "filter", filters: "TransSubType", label: "事务替代类型", prop: "transSubType", },
+ { label: "从事务编号", prop: "formTransNumber", },
+ { label: "到事务编号", prop: "toTransNumber", },
+ { type: "filter", filters: "requestStatus", label: "从状态", prop: "fromStatus", },
+ { type: "filter", filters: "requestStatus", label: "到状态", prop: "toStatus", },
+ { label: "itemCode", prop: "itemCode" },
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "到货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "到货单位", prop: "qty", showProp: "uom", },
+ { label: "批次", prop: 'lot', },
+ { type: "object", label: "从批次", prop: "fromBatch", showProp: "supplierBatch", },
+ { type: "object", label: "到批次", prop: "toBatch", showProp: "supplierBatch", },
+ { label: "备注", prop: 'remark', },
+ { type: "dateTime", label: "事务时间", prop: "transferTime", },
+ { type: "dateTime", label: "生效日期", prop: "activeDate", },
+]
+
+/**
+ * @returns {Array} 完工收货记录
+ */
+ export const ProductReceiptNote = [
+ { label: "完工收货记录单号", prop: "number", },
+ { label: "生产计划单号", prop: 'productionPlanNumber', },
+ { type: "dateTime", label: "完工时间", prop: 'completeTime', },
+ { label: "车间", prop: 'workShop', },
+ { label: "操作员", prop: 'worker',},
+ { label: "公司", prop: "company", },
+]
+
+/**
+ * @returns {Array} 下线结算记录
+ */
+ export const OfflineSettlementNote = [
+ // { label: "编号", prop: "id", },
+ { label: "下线结算记录单号", prop: "number", },
+ { label: "业务单号", prop: 'productReceiptNumber', },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: "remark", },
+]
+
+/**
+ * @returns {Array} 追溯记录
+ */
+ export const TracebackNote = [
+ // { label: "编号", prop: "id", },
+ { label: "追溯单号", prop: "number" },
+ { label: "物料代码", prop: "itemCode" },
+ { label: "物料名称", type: "object", prop: "item", showProp: "name" },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1" },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2" },
+ { label: "箱标签", prop: "packingCode" },
+ { type: "object", label: "产品数量", prop: "qty", showProp: "qty" },
+ { type: "object", label: "单位", prop: "qty", showProp: "uom" },
+ { label: "批次", prop: "lot" },
+
+ { label: "车间", prop: "workshop", },
+ { label: "生产线", prop: "prodLine", },
+ { label: "班次", prop: "shift", },
+ { label: "库位编号", prop: "locationCode" },
+ // { type: "dateTime", label: "库位编号", prop: "completeTime" },
+ // { type: "object", label: "产品批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 成品回收记录
+ */
+ export const ProductRecycleNote = [
+ { label: "成品回收单号", prop: "number", },
+ { type: "dateTime", label: "回收时间", prop: 'recycleTime', },
+ { label: "车间", prop: 'workshop', },
+ { label: "班次", prop: 'shift', },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: "remark", },
+]
+
+/**
+ * @returns {Array} 退库记录
+ */
+ export const StockReturnNote = [
+ { label: "退库记录单号", prop: "number", },
+ { type: "dateTime", label: "退料时间", prop: 'returnTime', },
+ { label: "车间", prop: 'workshop', },
+ { label: "任务ID", prop: 'jobNumber',},
+ { label: "操作员", prop: 'worker',},
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: "remark", },
+]
+
+/**
+ * @returns {Array} 客户退货记录
+ */
+ export const CustomerReturnNote = [
+ { label: "编号", prop: "id", },
+ { label: "退货记录单号", prop: "number", },
+ { type: "dateTime", label: "退货时间", prop: 'returnTime', },
+ { label: "客户", prop: 'customer', },
+ { label: "任务ID", prop: 'jobNumber',},
+ { label: "操作员", prop: 'worker',},
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: "remark", },
+]
+
+/**
+ * @returns {Array} 返修记录
+ */
+export const ReworkNote = [
+ {
+ label: "工单号",
+ prop: "number",
+ fixed: "left",
+ },
+ { label: "物料代码", prop: 'itemCode' },
+ // { label: "部门", prop: 'department' },
+ // { label: "工单号", prop: 'workOrder' },
+ // { label: "流水号", prop: 'seqNo' },
+ { label: "目标物料代码", prop: 'toItemCode' },
+ { label: "目标物料名称", prop: 'toItemName' },
+ { label: "目标物料描述1", prop: 'toItemDesc1' },
+ { label: "目标物料描述2", prop: 'toItemDesc2' },
+ { label: "目标数量", prop: 'toQtyQty' },
+ { label: "目标单位", prop: 'toQtyUom' },
+ { label: "目标库位", prop: 'toLocationCode' },
+ { label: "目标批次", prop: 'toLot' },
+ { label: "生产线", prop: 'prodLine' },
+ { label: "库位", prop: 'locationCode' },
+ { label: "仓库", prop: 'warehouseCode' },
+ { label: "操作员", prop: 'worker' },
+ { type: "dateTime", label: "创建时间", prop: "createTime",},
+ { label: "备注", prop: "remark",},
+]
+
+/**
+ * @returns {Array} 报检单
+ */
+ export const InspectNotice = [
+ { label: "检验单号", prop: "number", },
+ { label: "操作员", prop: "worker", },
+ { label: "收货单号", prop: "receiptNumber", },
+ { label: "到货单号", prop: "arriveNoticeNumber", },
+ { label: "发货单号", prop: "asnNumber", },
+ { label: "要货计划单号", prop: "rpNumber", },
+ { label: "订单号", prop: "poNumber", },
+ { label: "供应商编号", prop: "supplierCode", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 检验记录
+ */
+ export const InspectNote = [
+ { label: "检验单号", prop: "number", },
+ { label: "收货记录单号", prop: "receiptNumber", },
+ { label: "到货单号", prop: "arriveNoticeNumber", },
+ { label: "发货单号", prop: "asnNumber", },
+ { label: "要货计划单号", prop: "rpNumber", },
+ { label: "供应商代码", prop: "supplierCode", },
+ { label: "操作员", prop: "worker", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+]
+
+/**
+ * @returns {Array} 质量异常记录
+ */
+ export const InspectAbnormalNote = [
+ { label: "编号", prop: "id", },
+ { label: "质量异常记录单号", prop: "number", },
+ { label: "操作员", prop: "worker", },
+ { label: "检验单号", prop: 'inspectNumber', },
+ { label: "收货单号", prop: 'receiptNumber', },
+ { label: "供应商编号", prop: 'supplierCode', },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: "remark", },
+]
+
+/**
+ * @returns {Array} 采购收货任务
+ */
+ export const PurchaseReceiptJob = [
+ { label: "收货任务编号", prop: "number", },
+ { label: "到货单号", prop: "arriveNoticeNumber", },
+ { label: "任务状态", type: "filter", filters: "taskStatus", prop: "jobStatus", },
+ { label: "要货计划单号", prop: "rpNumber", },
+ // { label: "采购订单号", prop: "poNumber", },
+ { label: "供应商代码", prop: "supplierCode" },
+ { label: "供应商名称", prop: "supplierName" },
+ { label: "时间窗口", prop: "timeWindow" },
+ { label: "承接者用户名", prop: "acceptUserName", },
+ { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ { label: "完成者用户名", prop: "completeUserName", },
+ { type: "dateTime", label: "完成时间", prop: "completeTime", },
+ { label: "操作员", prop: "worker", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ // { label: "承接者用户名", prop: "acceptUserName", },
+ // { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ // { label: "完成者用户名", prop: "completeUserName", },
+ // { type: "dateTime", label: "完成时间", prop: "completeTime", },
+ // { label: "到货单号", prop: "arriveNoticeNumber", },
+ // { label: "要货计划单号", prop: "rpNumber", },
+ // { label: "订单号", prop: "poNumber", },
+ // { label: "供应商编号", prop: "supplierCode" },
+ // { label: "供应商名称", prop: "supplierName" },
+ // { label: "时间窗口", prop: "timeWindow" },
+ // { label: "上游任务编号", prop: "upStreamJobNumber",},
+ // { label: "工作组", prop: "workGroupCode",},
+ // { type: "filter", filters: "taskType", label: "任务类型", prop: "jobType", },
+ // { label: "任务状态", type: "filter", filters: "taskStatus", prop: "jobStatus", },
+ // { type: "dateTime", label: "创建时间", prop: "createTime", },
+ // { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 采购退货任务
+ */
+ export const PurchaseReturnJob = [
+ { label: "任务编号", prop: "number", },
+ { label: "承接者用户名", prop: "acceptUserName", },
+ { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ { label: "完成者用户名", prop: "completeUserName", },
+ { type: "dateTime", label: "完成时间", prop: "completeTime", },
+ { type: "filter", filters: "taskType", label: "任务类型", prop: "jobType", },
+ { label: "任务状态", type: "filter", filters: "taskStatus", prop: "jobStatus", },
+ { label: "到货单号", prop: "arriveNoticeNumber", },
+ { label: "收货单号", prop: "purchaseReceiptNumber", },
+ { label: "发货单号", prop: "asnNumber", },
+ { label: "订单号", prop: "poNumber", },
+ { label: "供应商编码", prop: "supplierCode", },
+ { label: "工作组", prop: 'workGroupCode', },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 上架任务
+ */
+ export const PutawayJob = [
+ { label: "任务编号", prop: "number", },
+ { label: "到货单号", prop: "arriveNoticeNumber", },
+ { label: "完工收货单号", prop: "productReceiptNumber", },
+ // { label: "收货单号", prop: "receiptNumber", },
+ { label: "任务状态", type: "filter", filters: "taskStatus", prop: "jobStatus", },
+ // { label: "要货计划单号", prop: "rpNumber", },
+ // { label: "发货单号", prop: "asnNumber", },
+ // { label: "承接者用户名", prop: "acceptUserName", },
+ // { label: "完成者用户名", prop: "completeUserName", },
+ // { label: "供应商代码", prop: "supplierCode" },
+ // { label: "供应商名称", prop: "supplierName" },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ { type: "dateTime", label: "完成时间", prop: "completeTime", },
+
+ // { label: "承接者用户名", prop: "acceptUserName", },
+ // { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ // { label: "完成者用户名", prop: "completeUserName", },
+ // { type: "dateTime", label: "完成时间", prop: "completeTime", },
+ // { type: "filter", filters: "taskType", label: "任务类型", prop: "jobType", },
+ // { label: "任务状态", type: "filter", filters: "taskStatus", prop: "jobStatus", },
+ // { type: "dateTime", label: "创建时间", prop: "createTime", },
+ // { label: "到货单号", prop: "arriveNoticeNumber", },
+ // { label: "收货单号", prop: "receiptNumber", },
+ // { label: "发货单号", prop: "asnNumber", },
+ // { label: "完工收货单号", prop: "productReceiptNumber", },
+ // { label: "要货计划单号", prop: "rpNumber", },
+ // { label: "备注", prop: 'remark', },
+]
+
+
+/**
+ * @returns {Array} 检验任务
+ */
+ export const InspectJob = [
+ { label: "任务编号", prop: "number", },
+ { label: "到货单号", prop: "arriveNoticeNumber", },
+ { label: "检验单号", prop: "inspectNumber", },
+ { label: "任务状态", type: "filter", filters: "taskStatus", prop: "jobStatus", },
+ { label: "承接者用户名", prop: "acceptUserName", },
+ { label: "完成者用户名", prop: "completeUserName", },
+ { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ { type: "dateTime", label: "完成时间", prop: "completeTime", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+
+ // { label: "承接者用户名", prop: "acceptUserName", },
+ // { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ // { label: "完成者用户名", prop: "completeUserName", },
+ // { type: "dateTime", label: "完成时间", prop: "completeTime", },
+ // { type: "filter", filters: "taskType", label: "任务类型", prop: "jobType", },
+ // { label: "任务状态", type: "filter", filters: "taskStatus", prop: "jobStatus", },
+ // { type: "dateTime", label: "创建时间", prop: "createTime", },
+ // { label: "到货单号", prop: "arriveNoticeNumber", },
+ // { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 发料任务
+ */
+ export const IssueJob = [
+ { label: "任务编号", prop: "number", },
+ { label: "任务状态", type: "filter", filters: "taskStatus", prop: "jobStatus", },
+ { label: "要货单号", prop: "materialRequestNumber", },
+ { label: "承接者用户名", prop: "acceptUserName", },
+ { label: "完成者用户名", prop: "completeUserName", },
+ { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ { type: "dateTime", label: "完成时间", prop: "completeTime", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+
+ // { type: "filter", filters: "taskType", label: "任务类型", prop: "jobType", },
+ // { label: "任务状态", type: "filter", filters: "taskStatus", prop: "jobStatus", },
+ // { label: "承接者用户名", prop: "acceptUserName", },
+ // { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ // { label: "完成者用户名", prop: "completeUserName", },
+ // { type: "dateTime", label: "完成时间", prop: "completeTime", },
+ // { label: "工作组", prop: "workGroupCode", },
+ // { label: "生产线", prop: "prodLine", },
+ // { label: "车间", prop: "workshop", },
+ // { label: "要货单号", prop: "materialRequestNumber", },
+ // { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 完工收货任务
+ */
+ export const ProductReceiveJob = [
+ { label: "任务编号", prop: "number", },
+ { label: "承接者用户名", prop: "acceptUserName", },
+ { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ { label: "完成者用户名", prop: "completeUserName", },
+ { type: "dateTime", label: "完成时间", prop: "completeTime", },
+ { type: "filter", filters: "taskType", label: "任务类型", prop: "jobType", },
+ { label: "任务状态", type: "filter", filters: "taskStatus", prop: "jobStatus", },
+ { type: "dateTime", label: "创建时间", prop: "createTime", },
+ { label: "生产计划单号", prop: "productionPlanNumber", },
+ { label: "车间", prop: "workshop", },
+ { label: "班次", prop: "shift", },
+ { label: "工作组", prop: "workGroupCode", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 发货任务
+ */
+ export const DeliverJob = [
+ { label: "任务编号", prop: "number", },
+ { label: "发货计划单号", prop: "deliverPlanNumber" },
+ { type: "dateTime", label: "发货计划时间", prop: "deliverPlanTime" },
+ { label: "承接者用户名", prop: "acceptUserName", },
+ { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ { label: "完成者用户名", prop: "completeUserName", },
+ { type: "dateTime", label: "完成时间", prop: "completeTime", },
+ { type: "filter", filters: "taskStatus", label: "任务状态", prop: "jobStatus", },
+ { type: "filter", filters: "taskType", label: "任务类型", prop: "jobType", },
+ { label: "发货请求单号", prop: "deliverRequestNumber", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 校验任务
+ */
+ export const CheckJob = [
+ { label: "任务编号", prop: "number", },
+ { label: "承接者用户名", prop: "acceptUserName", },
+ { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ { label: "完成者用户名", prop: "completeUserName", },
+ { type: "dateTime", label: "完成时间", prop: "completeTime", },
+ { type: "filter", filters: "taskStatus", label: "任务状态", prop: "jobStatus", },
+ { type: "filter", filters: "taskType", label: "任务类型", prop: "jobType", },
+ { label: "到货单号", prop: "arriveNoticeNumber", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 盘点任务
+ */
+ export const CountJob = [
+ { label: "任务编号", prop: "number", },
+ { label: "承接者用户名", prop: "acceptUserName", },
+ { type: "dateTime", label: "承接者时间", prop: "acceptTime", },
+ { label: "完成者用户名", prop: "completeUserName", },
+ { type: "dateTime", label: "完成时间", prop: "completeTime", },
+ { type: "filter", filters: "taskStatus", label: "任务状态", prop: "jobStatus", },
+ { type: "filter", filters: "taskType", label: "任务类型", prop: "jobType", },
+ // { type: "filter", filters: "checkStage", label: "阶段", prop: "countStage", },
+ { type: "dateTime", label: "承接时间", prop: "acceptTime", },
+ { label: "到货单号", prop: "arriveNoticeNumber", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 消息管理-消息类型
+ */
+ export const MessageType = [
+ { label: "消息类别代码", prop: "messageTypeCode" },
+ { label: "消息类别名称", prop: "messageTypeName" },
+ { label: "备注", prop: 'remark' }
+]
+
+/**
+ * @returns {Array} 供应商考核看板-供应商考核记录
+ */
+ export const SupplierAssessmentNote = [
+ {
+ label: "供应商代码",
+ prop: "supplierCode",
+ fixed: "left",
+ type: "name"
+ },
+ { label: "供应商名称", prop: "supplierName" },
+ { label: "ASN单号", prop: 'asnNumber' },
+ { label: "ASN发货时间", prop: 'asnShippingTime', type:'dateTime' },
+ { type: "filter", label: "考核内容", prop: "reason", filters: "reasonStatus" },
+ { label: "扣分分数", prop: 'scope' },
+ { label: "扣分时间", prop: 'evaluationTime', type:'dateTime' },
+ { label: "备注", prop: 'remark' },
+]
+
+/**
+ * @returns {Array} 供应商考核看板-汇总报表
+ */
+ export const SupplierAssessmentReportForm = [
+ { label: "供应商代码", prop: "supplierCode" },
+ { label: "供应商名称", prop: "supplierName" },
+ { label: "扣分总数", prop: 'summaryOfScores' },
+ { label: "扣分次数", prop: 'countOfScores' },
+ { label: "送货总数", prop: 'countOfAsn' },
+ { label: "出错率", prop: 'errorRate' },
+]
+
+/**
+ * @returns {Array} JIS信息查询
+ */
+ export const JISMessageQuery = [
+ {
+ label: "单据号",
+ prop: "number",
+ fixed: "left",
+ },
+ { label: "产品号", prop: "productNo" },
+ { label: "项目号", prop: 'program' },
+ { label: "位置", prop: 'position' },
+ { label: "FATA", prop: 'fata' },
+ { label: "配置号", prop: 'configuration' },
+ { label: "器具号", prop: 'containerCode' },
+ { label: "完工单号", prop: 'receiptNumber' },
+]
+
+/**
+ * @returns {Array} 鸿翔外库jis发货
+ */
+ export const OuterJisDeliverNote = [
+ { label: "单据号", prop: "number" },
+ { label: "发货单号", prop: "deliverNumber" },
+ { label: "仓库", prop: 'warehouseCode' },
+ { label: "操作员", prop: 'worker' },
+ { label: "创建时间", prop: 'createTime', type:'dateTime' },
+]
+
+/**
+ * @returns {Array} 发货记录
+ */
+export const OuterPillarDeliverNote = [
+ { label: "单据号", prop: "number" },
+ { label: "发货单号", prop: "deliverNumber" },
+ { label: "仓库", prop: 'warehouseCode' },
+ { label: "操作员", prop: 'worker' },
+ { label: "创建时间", prop: 'createTime', type:'dateTime' },
+]
+
+/**
+ * @returns {Array} 鸿翔外库jis换件
+ */
+ export const OuterJisReplaceNote = [
+ {
+ label: "单据号",
+ prop: "number",
+ fixed: "left",
+ type: "name"
+ },
+ { label: "项目号", prop: "projectCode" },
+ { label: "位置", prop: 'position' },
+ { label: "配置号", prop: 'l7Part' },
+ { label: "物料描述", prop: 'itemName' },
+ { label: "备品生产号", prop: 'sparesNumber' },
+ { label: "备品批次", prop: 'sparesLot' },
+ { label: "目标生产号", prop: 'targetNumber' },
+ { label: "目标批次", prop: 'targetLot' },
+ { label: "备品批次", prop: 'sparesLot' },
+ { label: "说明", prop: 'description' },
+ { label: "换件用户", prop: 'replacePeople' },
+ { label: "换件时间", prop: 'replaceDate', type:'dateTime' },
+ { label: "创建时间", prop: 'createTime', type:'dateTime' },
+ { label: "操作员", prop: 'worker' },
+]
+
+
+/**
+ * @returns {Array} 鸿翔外库jis计划外入库
+ */
+ export const OuterJisUnplannedReceiptNote = [
+ {
+ label: "单据号",
+ prop: "number",
+ fixed: "left",
+ type: "name"
+ },
+ { label: "计划外入库单号", prop: "outerUnplannedReceiptNumber" },
+ { label: "仓库", prop: 'warehouseCode' },
+ { label: "创建时间", prop: 'createTime', type:'dateTime' },
+]
+
+/**
+ * @returns {Array} 鸿翔外库jis计划外出库
+ */
+ export const OuterJisUnplannedIssueNote = [
+ {
+ label: "单据号",
+ prop: "number",
+ fixed: "left",
+ type: "name"
+ },
+ { label: "计划外出库单号", prop: "outerUnplannedIssueNumber" },
+ { label: "仓库", prop: 'warehouseCode' },
+ { label: "创建时间", prop: 'createTime', type:'dateTime' },
+]
+
+/**
+ * @returns {Array} 消息收货日志
+ */
+ export const MessageReceiveAppService = [
+ {
+ label: "id",
+ prop: "id",
+ fixed: "left",
+ type: "name"
+ },
+ { label: "创建时间", prop: "createTime", showProp: true },
+ { label: "creatorId", prop: "creatorId", showProp: true },
+ { label: "跟踪编号", prop: "traceId", showProp: true },
+ { label: "errorCode", prop: "errorCode", showProp: true },
+ { label: "电报文件名称", prop: "messageFileName", showProp: true },
+ { label: "文件类型", prop: "messageFileType", showProp: true },
+ { type: "filter", label: "状态", prop: "receiveStatus", filters: "receiveStatus" },
+ { label: "receiveTime", prop: "receiveTime", showProp: true },
+ { label: "lastUpdateTime", prop: "lastUpdateTime", showProp: true },
+ { label: "errorCount", prop: "errorCount", showProp: true },
+ { label: "operateType", prop: "operateType", showProp: true },
+ { label: "报文内容JSON", prop: "messageContent", showProp: true },
+ { label: "errorMessage", prop: "errorMessage", showProp: true },
+]
+
+/**
+ * @returns {Array} Part接口日志
+ */
+ export const PartAppService = [
+ {
+ label: "跟踪编号",
+ prop: "traceId",
+ },
+ { label: "公司", prop: "company" },
+ { label: "工厂", prop: 'site' },
+ { label: "物料号", prop: 'code' },
+ { label: "物流名称", prop: 'name' },
+ { label: "描述1", prop: 'desc1' },
+ { label: "描述2", prop: 'desc2' },
+ { label: "物料状态", prop: 'status' },
+ { label: "允许制造", prop: 'canMake' },
+ { label: "允许采购", prop: 'canBuy' },
+ { label: "计量单位", prop: 'um' },
+ { label: "ABC类", prop: 'abcClass' },
+ { label: "产品类", prop: 'prodKind' },
+ { label: "零件类型", prop: 'partType' },
+ { label: "零件种类", prop: 'partCatalog' },
+ { label: "零件分组", prop: 'partGroup' },
+ { label: "虚零件", prop: 'isPhantom' },
+ { label: "颜色", prop: 'color' },
+ { label: "配置", prop: 'config' },
+ { label: "项目", prop: 'project' },
+ { label: "版本", prop: 'version' },
+ { label: "工程变更通知单", prop: 'eco' },
+ { label: "标包计量单位", prop: 'stdPackUm' },
+ { label: "包装数量", prop: 'packQty' },
+ { label: "替代计量单位", prop: 'extPackUm' },
+ { label: "替代包装数量", prop: 'extPackQty' },
+ { label: "备注", prop: 'remark' },
+]
+
+/**
+ * @returns {Array} WMS&QAD接口日志
+ */
+ export const OutgoingDataAppService = [
+ {
+ label: "id",
+ prop: "id",
+ },
+ { label: "创建时间", prop: "createTime", type:'dateTime', showProp: true },
+ { label: "数据编号", prop: "number", showProp: true },
+ { label: "数据类型", prop: "dataType", showProp: true },
+ { label: "生效日期", prop: "effectiveDate", type:'dateTime', showProp: true },
+ { label: "status", prop: "status", showProp: true },
+ { label: "errorCode", prop: "errorCode", showProp: true },
+ { label: "来源系统", prop: "source", showProp: true },
+ { label: "写入时间", prop: "writeTime", type:'dateTime', showProp: true },
+ { label: "写入者", prop: "writer", showProp: true },
+ { label: "错误信息", prop: "errorMessage", showProp: true },
+ { label: "数据内容", prop: "dataContent", showProp: true },
+]
+
+/**
+ * @returns {Array} WMS&QAD接口历史日志
+ */
+ export const OutgoingDataHistoryAppService = [
+ {
+ label: "id",
+ prop: "id",
+ },
+ { label: "创建时间", prop: "createTime", type:'dateTime', showProp: true },
+ { label: "creatorId", prop: "creatorId", showProp: true },
+ { label: "数据编号", prop: "number", showProp: true },
+ { label: "数据类型", prop: "dataType", showProp: true },
+ { label: "生效日期", prop: "effectiveDate", type:'dateTime', showProp: true },
+ { type: "filter", label: "状态", prop: "status", filters: "OutgoingDataHistoryAppStatus" },
+ { type: "filter", label: "是否错误", prop: "errorCode", filters: "errorCodeStatus" },
+ { label: "错误代码", prop: "errorCode", showProp: true },
+ { label: "来源系统", prop: "source", showProp: true },
+ { label: "写入时间", prop: "writeTime", type:'dateTime', showProp: true },
+ { label: "写入者", prop: "writer", showProp: true },
+ { label: "错误信息", prop: "errorMessage", showProp: true },
+ { label: "数据内容", prop: "dataContent", showProp: true },
+]
+
+/**
+ * @returns {Array} Bom接口日志
+ */
+ export const BomAppService = [
+ {
+ label: "id",
+ prop: "id",
+ },
+ { label: "创建时间", prop: "createTime", type:'dateTime', showProp: true },
+ { label: "creatorId", prop: 'creatorId', showProp: true },
+ { label: "跟踪编号", prop: 'traceId', showProp: true },
+ { label: "errorCode", prop: 'errorCode', showProp: true },
+ { label: "errorMessage", prop: 'errorMessage', showProp: true },
+ { label: "公司", prop: 'company', showProp: true },
+ { label: "父物料号", prop: 'parentCode', showProp: true },
+ { label: "子物料号", prop: 'componentCode', showProp: true },
+ { label: "用量", prop: 'perQty', showProp: true },
+ { label: "参考号", prop: 'reference', showProp: true },
+ { label: "开始日期", prop: 'startDate', type:'dateTime', showProp: true },
+ { label: "结束日期", prop: 'endDate', type:'dateTime', showProp: true },
+ { label: "类型", prop: 'type', showProp: true },
+ { label: "工序", prop: 'op', showProp: true },
+ { label: "废品率", prop: 'scrapPct', showProp: true },
+ { label: "序号", prop: 'seqNumber', showProp: true },
+ { label: "分组", prop: 'optionGroup', showProp: true },
+ { label: "工序", prop: 'process', showProp: true },
+ { label: "备注", prop: 'remark', showProp: true },
+]
+
+/**
+ * @returns {Array} 单块门板-发货记录
+ */
+export const SingleDoorPanelDeliverNote = [
+ { label: "发货记录单号", prop: "number", },
+ { label: "操作员", prop: 'worker' },
+ { label: "仓库", prop: 'warehouseCode' },
+ { label: "任务ID", prop: 'jobNumber' },
+ { label: "客户", prop: 'customer' },
+ { label: "客户地址代码", prop: 'customerAddressCode' },
+ { label: "项目号", prop: "projectCode" },
+ { label: "发货时间", prop: "deliverTime", type: "dateTime" },
+ { label: "到货时间", prop: "arrivalTime", type: "dateTime" },
+ { label: "项目名称", prop: "projectName" },
+ { label: "客户名称", prop: "customerName" },
+ { label: "客户联系人", prop: "customerContact" },
+ { label: "客户电话", prop: "customerPhone" },
+ { label: "包装箱容量/箱", prop: "totalPackCapacity" },
+ { label: "客户地址", prop: "customerAddress" },
+ { label: "发货人姓名", prop: "deliverPeopleName" },
+ { label: "备注", prop: "remark" },
+]
+
+/**
+ * @returns {Array} 单块门板-完工收货记录
+ */
+export const SingleDoorPanelProductReceiptNote = [
+ { label: "完工收货单号", prop: "number", },
+ { label: "生产计划单号", prop: 'productionPlanNumber' },
+ { label: "任务ID", prop: 'jobNumber' },
+ { type: "dateTime", label: "完工时间", prop: 'completeTime' },
+ { label: "车间", prop: 'workshop' },
+ { label: "生产线", prop: 'prodLine' },
+ { label: "收货库位", prop: 'locationCode' },
+ { label: "原料库位", prop: 'rawLocation' },
+ { label: "仓库", prop: 'warehouseCode' },
+ { label: "操作员", prop: 'worker' },
+]
+
+/**
+ * @returns {Array} 单块门板-完工调整记录
+ */
+export const SingleDoorPanelProductAdjust = [
+ { label: "完工调整单号", prop: "number" },
+ { label: "产品号", prop: 'productNo',},
+ { label: "项目号", prop: 'projectCode',},
+ { label: "位置", prop: 'position',},
+ { label: "箱码", prop: 'packingCode',},
+ { label: "配置码", prop: 'itemCode',},
+ { label: "操作员", prop: 'worker',},
+ { label: "任务ID", prop: 'jobNumber',},
+ { label: "生产线", prop: 'prodLine',},
+ { label: "批次", prop: 'lot',},
+ { label: "原料库位", prop: 'rawLocation',},
+ { label: "成品库位", prop: 'productLocation',},
+]
+
+/**
+ * @returns {Array} 单块门板-库移记录
+ */
+export const SingleDoorPanelProductTransferNote = [
+ { label: "转移发货单号", prop: "number", },
+ { label: "来源库位", prop: "fromLocationCode", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { label: "来源仓库", prop: "fromWarehouseCode", },
+ { label: "目标仓库", prop: "toWarehouseCode", },
+ { label: "操作员", prop: "worker", },
+ { label: "任务ID", prop: "jobNumber", },
+ // { label: "供应商编号", prop: "supplierCode", },
+ { label: "备注", prop: "remark",},
+]
+
+/**
+ * @returns {Array} 单块门板-客户退货记录
+ */
+export const SingleDoorPanelCustomerReturnNote = [
+ { label: "客户退货单号", prop: "number" },
+ { label: "收货库位", prop: 'locationCode' },
+ { label: "退货时间", prop: "returnTime", type: "dateTime" },
+ { label: "操作员", prop: 'worker' },
+ { label: "仓库", prop: 'warehouseCode' },
+ // { label: "任务ID", prop: 'jobNumber' },
+ { label: "备注", prop: "remark" },
+]
+
+/**
+ * @returns {Array} 调拨发货记录
+ */
+export const PillarDeliverNote = [
+ { label: "ID", prop: "id", },
+ { label: "调拨发货单号", prop: "number", },
+ { label: "仓库", prop: "warehouseCode", },
+ { label: "操作员", prop: "worker", },
+ { label: "客户", prop: "customer", },
+ { label: "客户地址", prop: "customerAddressCode", },
+ { label: "销售订单号", prop: "soNumber", },
+ { label: "发货方式", prop: "shipVia", },
+ { label: "运输方式", prop: "modeOfTransport", },
+ { label: "承运商", prop: "carrier", },
+ { label: "承运商参考", prop: "carrierShipmentRef", },
+ { label: "车辆", prop: "vehicleID", },
+ { label: "备注", prop: "remark",},
+]
+
+/**
+ * @returns {Array} 标签信息
+ */
+export const labelInfo = [
+ { label: "箱码", prop: "packingCode" },
+ { label: "物料代码", prop: "itemCode" },
+ { label: "物料名称", prop: "item", showProp: 'name', type:'object' },
+ { label: "物料描述1", prop: "item", showProp: 'desc1', type:'object' },
+ { label: "物料描述2", prop: "item", showProp: 'desc2', type:'object' },
+ { label: "批次", prop: "lot" },
+ { label: "数量", prop: "qty", showProp: 'qty', type:'object' },
+ { label: "单位", prop: "qty", showProp: 'uom', type:'object' },
+ { label: "包装数量", prop: "planQty", showProp: 'qty', type:'object' },
+ { label: "完整条码文本", prop: "fullBarcodeString" },
+ { label: "供应商代码", prop: 'supplierCode' },
+ { label: "供应商名称", prop: 'supplierName' },
+ { label: "采购单号", prop: "asnNumber" },
+ { label: "发货单号", prop: "deliverNumber" },
+ { label: "生产线", prop: "prodLine" },
+ { label: "生产计划编号", prop: "productionPlanNumber" },
+ { label: "完工时间", prop: 'completeTime', type: "dateTime" },
+ { label: "流水号", prop: "lsh" },
+ { label: "客户物料号", prop: "customerItemCode" },
+]
diff --git a/src/utils/disposition/tableDetailsColumns.ts b/src/utils/disposition/tableDetailsColumns.ts
new file mode 100644
index 0000000..7db9849
--- /dev/null
+++ b/src/utils/disposition/tableDetailsColumns.ts
@@ -0,0 +1,1431 @@
+/**
+ * @returns {Array} 采购订单
+ */
+ export const PurchaseOrder = [
+ { label: "itemCode", prop: "itemCode", fixed: "left" },
+ { type:"object", label: "物料名称", prop: "item", showProp:"name", },
+ { type:"object", label: "物料描述1", prop: "item", showProp:"desc1", },
+ { type:"object", label: "物料描述2", prop: "item", showProp:"desc2", },
+ { label: "订单号", prop: "number", },
+ { label: "订单行", prop: "poLine", },
+ { type:"object", label: "数量", prop: "qty", showProp:"qty", },
+ { type:"object", label: "单位", prop: "qty", showProp:"uom", },
+ { type:"object", label: "包装数量", prop: "stdPack", showProp:"packQty", },
+ { type:"object", label: "包装规格", prop: "stdPack", showProp:"packUom", },
+ { label: "转换率", prop: 'convertRate', },
+ { type: "filter", label: "是否寄存订单", prop: "isConsignment", filters: "whetherOrNot" },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 销售订单
+ */
+ export const SaleOrder = [
+ { label: "销售订单号", prop: "number", fixed: "left",},
+ { label: "订单行", prop: "soLine", },
+ { label: "itemCode", prop: "itemCode", },
+ { type:"object", label: "物料名称", prop: "item", showProp:"name", },
+ { type:"object", label: "物料描述1", prop: "item", showProp:"desc1", },
+ { type:"object", label: "物料描述2", prop: "item", showProp:"desc2", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 供应商发货通知
+ */
+ export const SupplierAsn = [
+ { label: "订单号", prop: "poNumber", fixed: "left", width: "200px" },
+ { label: "订单行", prop: "poLine", width: "200px" },
+ { label: "箱标签", prop: "packingCode", width: "200px" },
+ { label: "itemCode", prop: "itemCode", width: "200px" },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", width: "200px" },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", width: "200px" },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", width: "200px" },
+ // { type: "object", label: "到货数量", prop: "qty", showProp: "qty", width: "200px" },
+ { type: "object", label: "发货数量", prop: "qty", showProp: "qty", width: "200px" },
+ { type: "object", label: "计量单位", prop: "qty", showProp: "uom", width: "200px" },
+ { label: "托标签", prop: "containerCode", width: "200px" },
+ { label: "批次", prop: "lot", width: "200px" },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", width: "200px" },
+ { label: "E-LEVEL等级", prop: "itemEqLevel", width: "200px" },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", width: "200px" },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", width: "200px" },
+ { type: "object", label: "标包计量单位", prop: "stdPack", showProp: "packUom", width: "200px" },
+ ]
+/**
+ * @returns {Array} 客户发货通知
+ */
+ export const CustomerAsn = [
+ { label: "订单号", prop: "poNumber", fixed: "left", },
+ { label: "订单行", prop: "poLine", },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "itemCode", prop: "itemCode", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "发货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "计量单位", prop: "qty", showProp: "uom", },
+ { label: "托标签", prop: "containerCode", },
+ { label: "批次", prop: "lot", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "object", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "标包计量单位", prop: "stdPack", showProp: "packUom", },
+ ]
+/**
+ * @returns {Array} 到货通知
+ */
+ export const ArriveNotice = [
+ { label: "itemCode", prop: "itemCode",fixed:"left", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", valueType: Number, label: "到货数量", prop: "qty", showProp: "qty", },
+ { type: "object", valueType: Number, label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { label: "每托数量", prop: "qtyPerPallet", },
+ { type: "object", label: "计量单位", prop: "qty", showProp: "uom", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "批次", prop: "lot", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { label: "订单号", prop: "poNumber", },
+ { label: "订单行", prop: "poLine", },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托标签", prop: "containerCode", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 采购收货记录
+ */
+ export const PurchaseReceiptNote = [
+ { label: "itemCode", prop: "itemCode",fixed: "left", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ // { type: "object", label: "到货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "收货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { label: "订单号", prop: "poNumber", },
+ { label: "订单行", prop: "poLine", },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托标签", prop: "containerCode", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "包装单位", prop: "qty", showProp: "uom", },
+ { type: "object", label: "包装规格", prop: "stdPack", showProp: "packUom", },
+ { label: "E-LEVEL等级", prop: "labelEqLevel" },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 收购异常记录
+ */
+ export const ReceiptAbnormalNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ // { type: "object", label: "到货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "收货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "包装单位", prop: "qty", showProp: "uom", },
+ { type: "object", label: "包装规格", prop: "stdPack", showProp: "packUom", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 采购退货记录
+ */
+ export const PurchaseReturnNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "箱标签", prop: "packingCode"},
+ { label: "退货库位", prop: "locationCode"},
+ { label: "发货单号", prop: "asnNumber" },
+ { type: "object", label: "退货数量", prop: "qty", showProp: "qty", },
+ { label: "批次", prop: "lot" },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ // { type: "object", label: "包装单位", prop: "qty", showProp: "uom", },
+ { type: "object", label: "包装规格", prop: "stdPack", showProp: "packUom", },
+ // { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 上架记录
+ */
+ export const PutawayNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left", },
+ { label: "箱标签", prop: "toPackingCode", },
+ { type: "object", valueType: Number, label: "上架数量", prop: "qty", showProp: "qty", },
+ { type: "object", valueType: Number, label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "备料单位", prop: "qty", showProp: "uom", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { label: "来源库位", prop: "fromLocationCode", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 要料申请
+ */
+ export const MaterialRequest = [
+ { label: "itemCode", prop: "itemCode",fixed: "left", },
+ { type: "object", valueType: Number, label: "要料数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "要料单位", prop: "qty", showProp: "uom", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "计量单位", prop: "stdPack", showProp: "packQty", },
+ { label: "请求库位", prop: "requestLocationCode", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { type: "dateTime", label: "过期日期", prop: "expiredTime", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 发料记录
+ */
+ export const IssueNote = [
+ { label: "itemCode", prop: "itemCode",fixed: "left", },
+ // { label: "箱标签", type: "input", prop: "packingCode", },
+ { type: "object", valueType: Number, label: "发料数量", prop: "qty", showProp: "qty", },
+ { type: "object", valueType: Number, label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "发料单位", prop: "qty", showProp: "uom", },
+ { label: "请求库位", prop: "fromRequestLocationCode", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { label: "来源库位", prop: "fromLocationCode", },
+ { type: "dateTime", label: "发料时间", prop: "issueTime", },
+ { type: "dateTime", label: "过期时间", prop: "expiredTime", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "生产线", prop: "prodLine", },
+ { label: "工作中心", prop: "workCenter", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 计划外入库记录
+ */
+ export const UnplannedReceiptNote = [
+ { label: "itemCode", prop: "itemCode",fixed: "left", },
+ // { label: "箱标签", type: "input", prop: "packingCode", },
+ { type: "object", valueType: Number, label: "入库数量", prop: "qty", showProp: "qty", },
+ { type: "object", valueType: Number, label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "入库单位", prop: "qty", showProp: "uom", },
+ { label: "库位编号", prop: "locationCode", },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托标签", prop: "containerCode", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "供应商代码", prop: 'supplierCode', },
+ { label: "原因代码", prop: 'reasonCode', },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 计划外出库记录
+ */
+ export const UnplannedIssueNote = [
+ { label: "itemCode", prop: "itemCode",fixed: "left", },
+ // { label: "箱标签", type: "input", prop: "packingCode", },
+ { type: "object", valueType: Number, label: "出库数量", prop: "qty", showProp: "qty", },
+ { type: "object", valueType: Number, label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "出库单位", prop: "qty", showProp: "uom", },
+ { label: "库位编号", prop: "locationCode", },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托标签", prop: "containerCode", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "供应商代码", prop: 'supplierCode', },
+ { label: "原因代码", prop: 'reasonCode', },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 隔离记录
+ */
+ export const IsolationNote = [
+ { label: "itemCode", prop: "itemCode",fixed: "left", },
+ // { label: "箱标签", type: "input", prop: "packingCode", },
+ { type: "object", valueType: Number, label: "隔离数量", prop: "qty", showProp: "qty", },
+ { type: "object", valueType: Number, label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "隔离单位", prop: "qty", showProp: "uom", },
+ { label: "来源库位", prop: "fromLocationCode", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { label: "来源箱标签", prop: "fromPackingCode", },
+ { label: "目标箱标签", prop: "toPackingCode", },
+ { label: "来源托标签", prop: "fromContainerCode", },
+ { label: "来源托标签", prop: "toContainerCode", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 报废记录
+ */
+ export const ScrapNote = [
+ { label: "itemCode", prop: "itemCode",fixed: "left", },
+ // { label: "箱标签", type: "input", prop: "packingCode", },
+ { type: "object", valueType: Number, label: "报废数量", prop: "qty", showProp: "qty", },
+ { type: "object", valueType: Number, label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "报废单位", prop: "qty", showProp: "uom", },
+ { label: "来源库位", prop: "fromLocationCode", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { label: "来源箱标签", prop: "fromPackingCode", },
+ { label: "目标箱标签", prop: "toPackingCode", },
+ { label: "来源托标签", prop: "fromContainerCode", },
+ { label: "来源托标签", prop: "toContainerCode", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 发货计划
+ */
+ export const DeliverPlan = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ // { type: "object", label: "到货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "发货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "包装单位", prop: "qty", showProp: "uom", },
+ { type: "object", label: "包装规格", prop: "stdPack", showProp: "packUom", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "项目", prop: "project", },
+ { label: "销售订单号", prop: "soNumber", },
+ { label: "订单行", prop: "soLine", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 发货申请
+ */
+ export const DeliverRequest = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "发货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { type: "dateTime", label: "过期时间", prop: "expiredTime", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 发货记录
+ */
+ export const DeliverNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ // { label: "箱标签", type: "input", prop: "packingCode", },
+ { type: "object", valueType: Number, label: "发货数量", prop: "qty", showProp: "qty", },
+ { type: "object", valueType: Number, label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "发货单位", prop: "qty", showProp: "uom", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { label: "来源库位", prop: "fromLocationCode", },
+ { type: "dateTime", label: "发货时间", prop: "deliverTime", },
+ { type: "dateTime", label: "过期时间", prop: "expiredTime", },
+ { label: "来源箱标签", prop: "fromPackingCode", },
+ { label: "目标箱标签", prop: "toPackingCode", },
+ { label: "来源托标签", prop: "fromContainerCode", },
+ { label: "目标托标签", prop: "toContainerCode", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 盘点计划
+ */
+ export const CountPlan = [
+ { label: "itemCode", prop: "itemCode", fixed: "left", },
+ // { type: "filter", filters: "checkStage", label: "阶段", prop: "stage",},
+ // { label: "最终盘点数量", prop: "finalCountQty", },
+ // { type: "object", label: "最终盘点数量单位", prop: "finalCountQty", showProp: "uom", },
+ // { label: "盘点差异数量", prop: "diffQty" },
+ { type: "object", label: "库存数量", prop: "inventoryQty", showProp: "qty", },
+ { type: "object", label: "库存数量单位", prop: "inventoryQty", showProp: "uom", },
+ { type: "filter", label: "库存状态", prop: "inventoryStatus", filters: "inventoryStage", },
+ { label: "库位", prop: "locationCode", },
+ { type: "filter", label: "明细状态", prop: "detailStatus", filters: "DetailStatus", },
+ // { type: "object", label: "初盘数量", prop: "firstCount", showProp: "qty", },
+ // { type: "objectDateTime", label: "初盘时间", prop: "firstCount", showProp: "time", },
+ // { type: "object", label: "重盘数量", prop: "repeatCount", showProp: "qty", },
+ // { type: "objectDateTime", label: "重盘时间", prop: "repeatCount", showProp: "time", },
+ // { type: "object", label: "监盘数量", prop: "auditCount", showProp: "qty", },
+ // { type: "objectDateTime", label: "监盘时间", prop: "auditCount", showProp: "time", },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托盘标签", prop: "palletLabel", },
+ // { label: "盘点标签", prop: "countLabel", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ // { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { label: "批次", prop: "lot", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "备注", prop: 'remark', },
+ ]
+
+ /**
+ * @returns {Array} 调整库存
+ */
+ export const CountPlanAdjust = [
+ { label: "盘点计划单号", prop: "countPlanNumber", fixed: "left", },
+ // { type: "filter", filters: "stageType", label: "阶段", prop: "stage",},
+ { label: "itemCode", prop: "itemCode", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "盘点数量", prop: "finalCountQty" },
+ { label: "盘点差异数量", prop: "diffQty" },
+ { type: "filter", label: "明细状态", prop: "detailStatus", filters: "DetailStatus", },
+ { type: "object", label: "库存数量", prop: "inventoryQty", showProp: "qty", },
+ // { type: "object", label: "初盘数量", prop: "firstCount", showProp: "qty", },
+ // { type: "objectDateTime", label: "初盘时间", prop: "firstCount", showProp: "time", },
+ // { type: "object", label: "重盘数量", prop: "repeatCount", showProp: "qty", },
+ // { type: "objectDateTime", label: "重盘时间", prop: "repeatCount", showProp: "time", },
+ // { type: "object", label: "监盘数量", prop: "auditCount", showProp: "qty", },
+ // { type: "objectDateTime", label: "监盘时间", prop: "auditCount", showProp: "time", },
+ // { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { label: "批次", prop: "lot", },
+ // { label: "盘点标签", prop: "containerCode", },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "库位编号", prop: "locationCode", },
+ { type: "object", label: "库存单位", prop: "inventoryQty", showProp: "uom", },
+ //{ label: "公司", prop: "company", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 盘点记录
+ */
+ export const CountNote = [
+ { label: "盘点计划单号", prop: "countPlanNumber", fixed: "left", },
+ // { type: "filter", filters: "checkStage", label: "阶段", prop: "stage",},
+ { label: "itemCode", prop: "itemCode", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "盘点数量", prop: "finalCountQty" },
+ { label: "盘点差异数量", prop: "diffQty" },
+ { type: "filter", label: "明细状态", prop: "detailStatus", filters: "DetailStatus", },
+ { type: "object", label: "库存数量", prop: "inventoryQty", showProp: "qty", },
+ // { type: "object", label: "初盘数量", prop: "firstCount", showProp: "qty", },
+ // { type: "objectDateTime", label: "初盘时间", prop: "firstCount", showProp: "time", },
+ // { type: "object", label: "重盘数量", prop: "repeatCount", showProp: "qty", },
+ // { type: "objectDateTime", label: "重盘时间", prop: "repeatCount", showProp: "time", },
+ // { type: "object", label: "监盘数量", prop: "auditCount", showProp: "qty", },
+ // { type: "objectDateTime", label: "监盘时间", prop: "auditCount", showProp: "time", },
+ // { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { label: "批次", prop: "lot", },
+ // { label: "盘点标签", prop: "containerCode", },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "库位编号", prop: "locationCode", },
+ { type: "object", label: "库存单位", prop: "inventoryQty", showProp: "uom", },
+ //{ label: "公司", prop: "company", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 盘点差异调整记录
+ */
+ export const CountAdjustNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left", },
+ // { type: "filter", filters: "checkStage", label: "阶段", prop: "stage",},
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", width: "300px" },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", width: "300px" },
+ { label: "库位编号", prop: "locationCode", width: "200px" },
+ // { type: "object", valueType: Number, label: "发货数量", prop: "InventoryQty", showProp: "qty", width: "100px" },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", width: "150px" },
+ // { type: "object", label: "发货单位", prop: "InventoryQty", showProp: "uom", width: "100px" },
+ { label: "盘点差异数量", prop: "diffQty" },
+ // { type: "filter", label: "明细状态", prop: "detailStatus", filters: "DetailStatus", width: "100px" },
+ { label: "批次", prop: "lot", width: "100px" },
+ { label: "库位编号", prop: "locationCode", width: "100px" },
+ { label: "盘点数量", prop: "countQty", width: "100px" },
+ { label: "调整数量", prop: "adjustQty", width: "100px" },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托标签", prop: "containerCode", },
+ // { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "原因编号", prop: "reasonCode", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 生产计划
+ */
+ export const ProductionPlan = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name",},
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", valueType: Number, label: "计划数量", prop: "planQty", showProp: "qty", },
+ // { label: "合格数量", prop: "goodQty", },
+ // { label: "不合格数量", prop: "noGoodQty", },
+ { type: "object", label: "计划单位", prop: "planQty", showProp: "uom", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "object", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "Bom版本", prop: "bomVersion", },
+ // { type: "input", label: "", prop: "bomVersion", },
+ { label: "备注", prop: "remark", },
+ ]
+/**
+ * @returns {Array} 备料计划
+ */
+ export const PreparationPlan = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "备料数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "备料单位", prop: "qty", showProp: "uom", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "qty", },
+ { type: "object", label: "包装规格", prop: "stdPack", showProp: "uom", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { label: "工作中心", prop: "workStation", },
+ { type: "dateTime", label: "最晚时间", prop: "latestTime", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 完工收货记录
+ */
+ export const ProductReceiptNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", width: "150px" },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", width: "300px" },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", width: "300px" },
+ { label: "库位编号", prop: "locationCode", },
+ { label: "原料库位", prop: "rawLocation", width: "100px" },
+ { type: "object", valueType: Number, label: "完工收货数量", prop: "qty", showProp: "qty", width: "100px" },
+ { type: "object", valueType: Number, label: "包装数量", prop: "stdPack", showProp: "packQty", width: "100px" },
+ { type: "object", label: "完工收货单位", prop: "qty", showProp: "uom", width: "100px" },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托标签", prop: "containerCode", },
+ { label: "批次", prop: "lot", width: "100px" },
+ { label: "生产线", prop: "prodLine", width: "100px" },
+ { label: "Bom版本", prop: "bomVersion", width: "100px" },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "原因编号", prop: "reasonCode", width: "100px" },
+ { label: "备注", prop: 'remark', width: "300px" },
+ ]
+/**
+ * @returns {Array} 下线结算记录
+ */
+ export const OfflineSettlementNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name",},
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", valueType: Number, label: "下线结算数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "下线结算单位", prop: "qty", showProp: "uom", },
+ { label: "库位编号", prop: "locationCode", },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托标签", prop: "containerCode", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ // { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ // { type: "dateTime", label: "生产日期", prop: "createTime" },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 追溯记录
+ */
+ export const TracebackNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name",},
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", valueType: Number, label: "消耗数量", prop: "rawQty", showProp: "qty", },
+ { type: "object", label: "包装规格", prop: "rawQty", showProp: "uom", },
+ { label: "来源库位代码", prop: "rawLocation", },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托标签", prop: "rawContainerCode", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ // { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ // { type: "dateTime", label: "生产日期", prop: "createTime", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 成品回收记录
+ */
+ export const ProductRecycleNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "库位编号", prop: "locationCode", },
+ { label: "原料库位编号", prop: "rawLocation", },
+ { type: "object", valueType: Number, label: "成品回收数量", prop: "qty", showProp: "qty", },
+ { type: "object", valueType: Number, label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { label: "批次", prop: "lot", },
+ { type: "object", label: "成品回收单位", prop: "qty", showProp: "uom", },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托标签", prop: "containerCode", },
+ { label: "生产线", prop: "prodLine", },
+ { label: "Bom版本", prop: "bomVersion", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 退库记录
+ */
+ export const StockReturnNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", valueType: Number, label: "退库数量", prop: "qty", showProp: "qty", },
+ { type: "object", valueType: Number, label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "退库单位", prop: "qty", showProp: "uom", },
+ { label: "来源库位", prop: "fromLocationCode", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { label: "来源箱标签", prop: "fromPackingCode", },
+ { label: "目标箱标签", prop: "toPackingCode", },
+ { label: "来源托标签", prop: "fromContainerCode", },
+ { label: "目标托标签", prop: "toContainerCode", },
+ { label: "生产线", prop: "prodLine", },
+ { label: "工作中心", prop: "workCenter", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 客户退库记录
+ */
+ export const CustomerReturnNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", valueType: Number, label: "退货数量", prop: "qty", showProp: "qty", },
+ { type: "object", valueType: Number, label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "退货单位", prop: "qty", showProp: "uom", },
+ { label: "来源库位", prop: "fromLocationCode", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { label: "来源箱标签", prop: "fromPackingCode", },
+ { label: "目标箱标签", prop: "toPackingCode", },
+ { label: "来源托标签", prop: "fromContainerCode", },
+ { label: "目标托标签", prop: "toContainerCode", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "备注", prop: 'remark', },
+ ]
+ /**
+ * @returns {Array} 调拨发货
+ */
+ export const WareHouseTransferNote = [
+ { label: "物料编号", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { label: "来源库位", prop: "fromLocationCode", },
+ { label: "目标仓库", prop: "toWarehouseCode", },
+ { label: "来源仓库", prop: "fromWarehouseCode", },
+ { type: "filter", filters: "requestStatus", label: "从状态", prop: "fromStatus",},
+ { type: "filter", filters: "requestStatus", label: "到状态", prop: "toStatus",},
+ { label: "原因", prop: "reason",},
+]
+
+/**
+ * @returns {Array} 返修记录
+ */
+ export const ReworkNote = [
+ { label: "工单号", prop: "number", fixed: "left" },
+ { label: "物料代码", prop: 'itemCode' },
+ { label: "物料名称", prop: 'item', showProp: 'name', type: "object" },
+ { label: "描述1", prop: 'item', showProp: 'desc1', type: "object" },
+ { label: "描述1", prop: 'item', showProp: 'desc1', type: "object" },
+ { label: "批次", prop: 'lot' },
+ { label: "箱标签", prop: 'packingCode' },
+ { label: "单位", prop: 'qty', showProp: 'uom', type: "object" },
+ { label: "数量", prop: 'qty', showProp: 'qty', type: "object" },
+ { label: "库位代码", prop: 'locationCode' },
+ { label: "仓库", prop: 'warehouseCode' },
+ { label: "操作员", prop: 'worker' },
+ { label: "任务ID", prop: 'jobNumber',},
+ { type: "dateTime", label: "创建时间", prop: "createTime",},
+ { label: "备注", prop: "remark",},
+ ]
+
+/**
+ * @returns {Array} 报检单
+ */
+ export const InspectNotice = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "箱标签", prop: "packingCode",},
+ { label: "托标签", prop: "containerCode",},
+ { label: "批次", prop: "lot" },
+ { label: "库位代码", prop: "locationCode",},
+ // { label: "抽检百分比", prop: "samplePercent",},
+ // { label: "检验数量", prop: "inspectQty",},
+ { type: "object", label: "收货数量", prop: "receiveQty", showProp: "qty", },
+ { type: "object", label: "收货单位", prop: "receiveQty", showProp: "uom",},
+ { type: "filter", filters: "inspectType", label: "检验类型", prop: "inspectType",},
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装规格", prop: "stdPack", showProp: "packUom",},
+ { label: "订单号", prop: "poNumber",},
+ // { label: "订单行", prop: "poLine",},
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ ]
+/**
+ * @returns {Array} 检验记录
+ */
+ export const InspectNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "检验数量", prop: "inspectQty",},
+ { label: "合格数量", prop: "goodQty",},
+ { label: "不合格数量", prop: "failedQty",},
+ { label: "不合格原因", prop: "failedReason",},
+ { label: "破坏数量", prop: "crackQty",},
+ { type: "object", label: "收货数量", prop: "receiveQty", showProp: "qty", },
+ { type: "object", label: "收货单位", prop: "receiveQty", showProp: "uom",},
+ { type: "filter", filters: "taskType", label: "检验类型", prop: "inspectType",},
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装规格", prop: "stdPack", showProp: "packUom",},
+ { label: "库位代码", prop: "locationCode",},
+ { label: "箱标签", prop: "packingCode",},
+ { label: "托标签", prop: "containerCode",},
+ { label: "批次", prop: "lot", },
+ { label: "订单号", prop: "poNumber",},
+ { label: "订单行", prop: "poLine",},
+ { label: "备注", prop: 'remark', },
+ ]
+/**
+ * @returns {Array} 质量异常记录
+ */
+ export const InspectAbnormalNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "质量异常数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { type: "object", label: "质量异常单位", prop: "qty", showProp: "uom", },
+ { label: "异常类型", prop: "abnormalType", },
+ { label: "箱标签", prop: "packingCode",},
+ { label: "托标签", prop: "containerCode",},
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "备注", prop: 'remark', },
+ ]
+ /**
+ * @returns {Array} 采购收货任务
+ */
+ export const PurchaseReceiptJob = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "实际收货数量", prop: "handledQty", showProp: "qty", },
+ { type: "object", label: "推荐收货数量", prop: "recommendQty", showProp: "qty", },
+ { type: "object", label: "收货单位", prop: "recommendQty", showProp: "uom",},
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装规格", prop: "stdPack", showProp: "packUom",},
+ { label: "实际库位", prop: "handledLocationCode",},
+ { label: "推荐库位", prop: "recommendLocationCode",},
+ { label: "实际箱标签", prop: "handledPackingCode", },
+ { label: "推荐箱标签", prop: "recommendPackingCode",},
+ { label: "实际托标签", prop: "handledContainerCode",},
+ { label: "推荐托标签", prop: "recommendContainerCode",},
+ { type: "object", label: "实际供应商批次", prop: "handledBatch", showProp: "supplierBatch",},
+ { type: "object", label: "推荐供应商批次", prop: "recommendBatch", showProp: "supplierBatch",},
+ { label: "订单号", prop: "poNumber",},
+ { label: "订单行", prop: "poLine",},
+ { label: "E-LEVEL等级", prop: "labelEqLevel" },
+ // { label: "备注", prop: 'remark', },
+ // { type: "input", label: "目标库位", prop: "toLocation",},
+]
+ /**
+ * @returns {Array} 采购退货任务
+ */
+ export const PurchaseReturnJob = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { label: "实际箱标签", prop: "handledPackingCode", },
+ { label: "推荐箱标签", prop: "recommendPackingCode",},
+ { type: "object", label: "实际收货数量", prop: "handledQty", showProp: "qty", },
+ { type: "object", label: "推荐收货数量", prop: "recommendQty", showProp: "qty", },
+ { type: "object", label: "收货单位", prop: "recommendQty", showProp: "uom",},
+ { label: "实际库位", prop: "handledLocationCode",},
+ // { type: "input", label: "目标库位", prop: "toLocation",},
+ { label: "推荐库位", prop: "recommendLocationCode",},
+ { label: "实际托标签", prop: "handledContainerCode",},
+ { label: "推荐托标签", prop: "recommendContainerCode",},
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装单位", prop: "stdPack", showProp: "packUom",},
+ { type: "object", label: "实际供应商批次", prop: "handledBatch", showProp: "supplierBatch",},
+ { type: "object", label: "推荐供应商批次", prop: "recommendBatch", showProp: "supplierBatch",},
+ { label: "订单号", prop: "poNumber",},
+ { label: "订单行", prop: "poLine",},
+ { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 上架任务
+ */
+ export const PutawayJob = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "实际箱标签", prop: "handledPackingCode",},
+ { label: "推荐箱标签", prop: "recommendPackingCode",},
+ { label: "实际托标签", prop: "handledContainerCode",},
+ { label: "推荐托标签", prop: "recommendContainerCode",},
+ { type: "object", label: "实际上架数量", prop: "handledQty", showProp: "qty", },
+ { type: "object", label: "推荐上架数量", prop: "recommendQty", showProp: "qty", },
+ { label: "实际库位", prop: "handledLocationCode",},
+ { label: "推荐库位", prop: "recommendLocationCode",},
+ // { type: "object", label: "实际供应商批次", prop: "handledBatch", showProp: "supplierBatch",},
+ // { type: "object", label: "推荐供应商批次", prop: "recommendBatch", showProp: "supplierBatch",},
+ { label: "库存状态", type: "filter", filters: "inventoryStage", prop: "status", },
+ { type: "object", label: "收货单位", prop: "recommendQty", showProp: "uom",},
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装单位", prop: "stdPack", showProp: "packUom",},
+ { label: "订单号", prop: "poNumber",},
+ { label: "订单行", prop: "poLine",},
+ // { label: "从库位", prop: "fromLocationCode",},
+ // { type: "input", label: "目标库位", prop: "toLocation",},
+ // { type: "object", label: "实际收货数量", prop: "handledQty", showProp: "qty", },
+ // { type: "object", label: "推荐收货数量", prop: "recommendQty", showProp: "qty", },
+ // { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 检验任务
+ */
+ export const InspectJob = [
+ { label: "itemCode", prop: "itemCode", fixed:"left", },
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "实际箱标签",prop: "handledPackingCode",},
+ { label: "推荐箱标签", prop: "recommendPackingCode",},
+ { label: "实际托标签", prop: "handledContainerCode",},
+ { label: "推荐托标签", prop: "recommendContainerCode",},
+ { type: "filter", filters: "inspectType", label: "检验类型", prop: "inspectType",},
+ { type: "object", label: "收货数量", prop: "receiveQty", showProp: "qty", },
+ { label: "检验数量", prop: "inspectQty",},
+ { label: "合格数量", prop: "goodQty",},
+ { label: "不合格数量", prop: "failedQty",},
+ { label: "最终不合格数量", prop: "notPassedQty",},
+ { label: "破坏数量", prop: "crackQty",},
+ { type: "object", label: "收货单位", prop: "receiveQty", showProp: "uom",},
+ { label: "实际库位", prop: "handledLocationCode",},
+ { label: "推荐库位", prop: "recommendLocationCode",},
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch",},
+ { label: "备注", prop: 'remark', },
+ // { type: "object", label: "收货单位", prop: "receiveQty", showProp: "uom",},
+ // { label: "箱标签", prop: "packingCode",},
+ // { label: "托标签", prop: "handledContainerCode",},
+ // { label: "不合格原因", prop: "failedReason",},
+ // { type: "object", label: "到货数量", prop: "handledQty", showProp: "qty",},
+ // { type: "object", label: "到货单位", prop: "handledQty", showProp: "uom",},
+ // { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ // { type: "object", label: "包装单位", prop: "stdPack", showProp: "packUom",},
+ // { label: "订单号", prop: "poNumber",},
+ // { label: "订单行", prop: "poLine",},
+
+]
+ /**
+ * @returns {Array} 发料任务
+ */
+ export const IssueJob = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "实际箱标签", prop: "handledPackingCode",},
+ { label: "推荐箱标签", prop: "recommendPackingCode",},
+ { label: "请求库位", prop: "fromRequestLocationCode", },
+ { type: "object", label: "实际数量", prop: "handledQty", showProp: "qty", },
+ { type: "object", label: "实际单位", prop: "handledQty", showProp: "uom",},
+ { type: "object", label: "推荐数量", prop: "recommendQty", showProp: "qty", },
+ { type: "object", label: "推荐单位", prop: "recommendQty", showProp: "uom",},
+ { label: "实际库位", prop: "handledLocationCode",},
+ { label: "到库位", prop: "toLocationCode",},
+ { label: "推荐库位", prop: "recommendLocationCode",},
+ { label: "实际批次", prop: "handledLot",},
+ { label: "推荐批次", prop: "recommendLot",},
+ // { type: "object", label: "实际批次", prop: "handledBatch", showProp: "supplierBatch",},
+ { type: "objectDateTime", label: "实际生产日期", prop: "handledBatch", showProp: "produceDate",},
+ // { type: "object", label: "推荐批次", prop: "recommendBatch", showProp: "supplierBatch",},
+ { type: "objectDateTime", label: "推荐生产日期", prop: "recommendBatch", showProp: "produceDate",},
+ // { label: "箱标签", prop: "packingCode",},
+ { label: "托标签", prop: "containerCode",},
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装单位", prop: "stdPack", showProp: "packUom",},
+ { label: "订单号", prop: "poNumber",},
+ { label: "订单行", prop: "poLine",},
+ { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 收料任务
+ */
+ export const IssueAcceptJob = [
+ { label: "实际箱标签", prop: "handledPackingCode", fixed: "left",},
+ { label: "itemCode", prop: "itemCode",},
+ { label: "推荐箱标签", prop: "recommendPackingCode",},
+ { type: "object", label: "实际库位数量", prop: "handledQty", showProp: "qty", },
+ { type: "object", label: "实际库位单位", prop: "handledQty", showProp: "uom",},
+ { label: "实际库位", prop: "handledLocationCode",},
+ { label: "目标库位", prop: "toLocation",},
+ { label: "推荐库位", prop: "recommendLocationCode",},
+ { label: "托标签", prop: "containerCode",},
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ // { type: "object", label: "到货数量", prop: "handledQty", showProp: "qty",},
+ // { type: "object", label: "到货单位", prop: "handledQty", showProp: "uom",},
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装单位", prop: "stdPack", showProp: "packUom",},
+ { type: "object", label: "批次", prop: "batch", showProp: "supplierBatch",},
+ { label: "订单号", prop: "poNumber",},
+ { label: "订单行", prop: "poLine",},
+ { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 完工收货任务
+ */
+ export const ProductReceiveJob = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { label: "箱标签", prop: "packingCode",},
+ { type: "object", label: "收货数量", prop: "handledQty", showProp: "qty", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ { label: "实际库位", prop: "handledLocationCode",},
+ // { label: "目标库位", prop: "toLocation",},
+ { label: "推荐库位", prop: "recommendLocationCode",},
+ { type: "object", label: "收货单位", prop: "handledQty", showProp: "uom",},
+ // { label: "箱标签", prop: "packingCode",},
+ { label: "托标签", prop: "containerCode",},
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ // { type: "object", label: "到货数量", prop: "handledQty", showProp: "qty",},
+ // { type: "object", label: "到货单位", prop: "handledQty", showProp: "uom",},
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装单位", prop: "stdPack", showProp: "packUom",},
+ { label: "订单号", prop: "poNumber",},
+ { label: "订单行", prop: "poLine",},
+ { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 发货任务
+ */
+ export const DeliverJob = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { label: "实际箱标签", prop: "handledPackingCode", },
+ { label: "推荐箱标签", prop: "recommendPackingCode",},
+ { type: "object", label: "实际数量", prop: "handledQty", showProp: "qty", },
+ { type: "object", label: "实际单位", prop: "handledQty", showProp: "uom",},
+ { type: "object", label: "推荐数量", prop: "recommendQty", showProp: "qty", },
+ // { type: "object", label: "推荐单位", prop: "recomendQty", showProp: "uom",},
+ // { label: "实际库位", prop: "handledLocationCode",},
+ // { label: "推荐库位", prop: "recommendLocationCode",},
+ { label: "从库位", prop: "fromLocationCode",},
+ { type: "object", label: "实际批次", prop: "handledBatch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "实际日期", prop: "handledBatch", showProp: "produceDate",},
+ { type: "object", label: "推荐批次", prop: "recommendBatch", showProp: "supplierBatch", },
+ { type: "object", label: "推荐日期", prop: "recommendBatch", showProp: "produceDate",},
+ { label: "托标签", prop: "containerCode",},
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ // { type: "object", label: "到货数量", prop: "handledQty", showProp: "qty",},
+ // { type: "object", label: "到货单位", prop: "handledQty", showProp: "uom",},
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装单位", prop: "stdPack", showProp: "packUom",},
+ { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 校验任务
+ */
+ export const CheckJob = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { label: "实际箱标签", prop: "packingCode",},
+ { type: "object", label: "库存数量", prop: "inventoryQty", showProp: "qty", },
+ { type: "object", label: "库存单位", prop: "inventoryQty", showProp: "uom",},
+ { label: "实际库位", prop: "locationCode",},
+ { label: "托标签", prop: "containerCode",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装单位", prop: "stdPack", showProp: "packUom",},
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch",},
+ { label: "订单号", prop: "poNumber",},
+ { label: "订单行", prop: "poLine",},
+ { label: "备注", prop: 'remark', },
+]
+ /**
+ * @returns {Array} 盘点任务
+ */
+ export const CountJob = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { label: "箱标签", prop: "packingCode",},
+ { type: "object", label: "实际数量", prop: "countQty", showProp: "qty", },
+ { type: "object", label: "实际单位", prop: "countQty", showProp: "uom",},
+ { type: "object", label: "库存数量", prop: "inventoryQty", showProp: "qty", },
+ { type: "object", label: "库存单位", prop: "inventoryQty", showProp: "uom",},
+ { label: "库位编号", prop: "locationCode",},
+ { type: "filter", label: "库存状态", prop: "status", filters:"inventoryStage"},
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装单位", prop: "stdPack", showProp: "packUom",},
+ { label: "托标签", prop: "containerCode",},
+ //{ label: "物料代码", prop: "itemCode",},
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ // { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch",},
+ { label: "批次", prop: "lot", },
+ { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 仓库管理-发运管理-发货任务(天津)
+ */
+ export const Shipments = [
+ {label: "器具编号",prop: "containerCode", width: "300px"},
+ { label: "产品数量", prop: "itemQty" },
+ { label: "来源库位", prop: "fromLocationCode"},
+ { label: "目标库位", prop: "toLocationCode"},
+ // { type: "filter", label: "发货状态", prop: "status", filters: "ShipmentsTjStatus",},
+ { label: "备注", prop: 'remark' }
+]
+
+/**
+ * @returns {Array} 仓库管理-发运管理-器具查询(天津)
+ */
+ export const Instruments = [
+ {label: "器具编号",prop: "containerCode"},
+ { label: "序号", prop: "seqNo" },
+ { label: "生产线编码", prop: "productNo"},
+ { label: "项目号", prop: "projectCode", },
+ { label: "配置码", prop: "itemCode" },
+ { label: "批次", prop: "lot"},
+ { label: "箱码", prop: "packingCode" },
+ { label: "位置", prop: "position" },
+ { label: "库存状态", type: "filter", filters: "inventoryStage", prop: "status", },
+ { label: "备注", prop: 'remark' }
+]
+
+/**
+ * @returns {Array} 仓库管理-发运管理-收货记录(天津)
+ */
+export const ReceivingRecords = [
+ { label: "序号", prop: "seqNo" },
+ { label: "配置码", prop: "itemCode" },
+ {label: "器具编号",prop: "containerCode", width: "300px"},
+ { type: "object", label: "名称", prop: "item", showProp: "name" },
+ { label: "生产线编码", prop: "prodLine"},
+ { label: "生产码", prop: "productNo", },
+ { label: "项目号", prop: "projectCode", },
+ { label: "批次", prop: "lot"},
+ { label: "收货库位", prop: "locationCode" },
+]
+
+/**
+ * @returns {Array} 仓库管理-发运管理-发货记录(天津)
+ */
+ export const DeliveryRecord = [
+ {label: "器具编号",prop: "toContainerCode", width: "300px"},
+ // { label: "序号", prop: "seqNo" },
+ { label: "配置码", prop: "itemCode" },
+ { type: "object", label: "名称", prop: "item", showProp: "name" },
+ { label: "生产码", prop: "productNo", },
+ { label: "项目号", prop: "projectCode", },
+ { label: "批次", prop: "toLot"},
+ { label: "来源库位", prop: "fromLocationCode" },
+ { label: "目标库位", prop: "toLocationCode" },
+ { label: "备注", prop: 'remark' }
+]
+
+/**
+ * @returns {Array} 仓库管理-发运管理-回收记录(天津)
+ */
+ export const JisProductRecycleNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { label: "箱标签", prop: "packingCode"},
+ { label: "托标签", prop: "containerCode"},
+ { label: "仓库", prop: "warehouseCode"},
+ { label: "库位", prop: "locationCode"},
+ { label: "批次", prop: "lot"},
+ { label: "生产计划单号", prop: "productionPlanNumber"},
+ { label: "产品号", prop: "productNo" },
+ { label: "项目号", prop: "projectCode" },
+ { label: "原料库位", prop: "rawLocation"},
+ { label: "生产线", prop: "prodLine"},
+]
+/**
+ * @returns {Array} 仓库管理-发运管理-退库记录(天津)
+ */
+ export const JisProductReturnNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "数量", prop: "qty", showProp: "qty", },
+ // { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { label: "产品号", prop: "productNo" },
+ { label: "项目号", prop: "projectCode" },
+ { label: "原因", prop: "reason" },
+]
+/**
+ * @returns {Array} 仓库管理-发运管理-库存转移记录(天津)
+ */
+ export const JisProductTransferNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "数量", prop: "qty", showProp: "qty", },
+ { label: "批次", prop: "lot" },
+ { label: "产品号", prop: "productNo" },
+ { label: "项目号", prop: "projectCode" },
+ { label: "原因", prop: "reason" },
+]
+/**
+ * @returns {Array} 供应商考核看板-汇总报表
+ */
+ export const SupplierAssessmentReportForm = [
+ { label: "供应商代码", prop: "supplierCode" },
+ { label: "供应商名称", prop: "supplierName" },
+ { label: "ASN单号", prop: 'asnNumber' },
+ { label: "ASN发货时间", prop: 'asnShippingTime', type:'dateTime' },
+ // { label: "考核内容", prop: 'reason' },
+ { type: "filter", label: "考核内容", prop: "reason", filters: "reasonStatus" },
+ { label: "扣分分数", prop: 'scope' },
+ { label: "扣分时间", prop: 'evaluationTime', type:'dateTime' },
+ { label: "备注", prop: 'remark' },
+]
+
+/**
+ * @returns {Array} JIS信息查询
+ */
+ export const JISMessageQuery = [
+ { label: "物料代码", prop: "itemCode", },
+ { label: "物料名称",type: "object", prop: "item", showProp: "name" },
+ { label: "物料描述",type: "object", prop: "item", showProp: "desc1" },
+ { label: "产品号", prop: "productNo" },
+ { label: "项目号", prop: 'program' },
+ { label: "位置", prop: 'position' },
+ { label: "FATA", prop: 'fata' },
+ { label: "配置号", prop: 'configuration' },
+ { label: "L7零件", prop: 'l7Part' },
+ { type: "filter", label: "是否自动回冲", prop: "isAutoBackFlush", filters: "whetherOrNot" },
+ { label: "数量", prop: 'qty' },
+]
+
+/**
+ * @returns {Array} 鸿翔外库jis发货
+ */
+ export const OuterJisDeliverNote = [
+ { label: "单据号", prop: "number" },
+ { label: "物料代码", prop: "itemCode" },
+ { label: "发货单号", prop: 'deliverNumber' },
+ { label: "生产号", prop: 'productionNumber' },
+ { label: "REV", prop: 'rev' },
+ { label: "配置号", prop: 'l7Part' },
+ { label: "流水号", prop: 'serialNumber' },
+ { label: "物料描述", prop: 'itemName' },
+ { label: "位置", prop: 'position' },
+ { label: "数量", prop: 'qty' },
+ { label: "站别名", prop: 'siteNickName' },
+ { label: "发货用户", prop: 'deliverPeople' },
+ { label: "发货时间", prop: 'deliverDate', type:'dateTime' },
+ { label: "收货方", prop: 'shipToOrDock' },
+ { label: "发货方式", prop: 'shipVia' },
+ { label: "运输方式", prop: 'modeOfTransport' },
+ { label: "承运商", prop: 'carrier' },
+ { label: "承运商参考", prop: 'carrierShipmentRef' },
+ { label: "车辆", prop: 'vehicleID' },
+ { label: "销售订单号", prop: 'order' },
+ { label: "销售订单行", prop: 'line' },
+ { label: "车型年份", prop: 'modelYear' },
+ { label: "客户地址编码", prop: 'customerAddressCode' },
+]
+
+/**
+ * @returns {Array} 发货记录
+ */
+export const OuterPillarDeliverNote = [
+ { label: "单据号", prop: "number" },
+ { label: "物料代码", prop: "itemCode" },
+ { label: "发货单号", prop: 'deliverNumber' },
+ // { label: "生产号", prop: 'productionNumber' },
+ // { label: "REV", prop: 'rev' },
+ // { label: "配置号", prop: 'l7Part' },
+ // { label: "流水号", prop: 'serialNumber' },
+ { label: "物料描述1", prop: 'item', showProp:'desc1', type: "object" },
+ { label: "物料描述2", prop: 'item', showProp:'desc2', type: "object" },
+ { label: "来源库位", prop: 'locationCode' },
+ { label: "发货数量", prop: 'qty', showProp: 'qty', type: 'object' },
+ // { label: "位置", prop: 'position' },
+ // { label: "数量", prop: 'qty' },
+ // { label: "站别名", prop: 'siteNickName' },
+ // { label: "发货用户", prop: 'deliverPeople' },
+ { label: "发货时间", prop: 'deliverDate', type:'dateTime' },
+ { label: "收货方", prop: 'shipToOrDock' },
+ { label: "发货方式", prop: 'shipVia' },
+ { label: "运输方式", prop: 'modeOfTransport' },
+ { label: "承运商", prop: 'carrier' },
+ { label: "承运商参考", prop: 'carrierShipmentRef' },
+ { label: "车辆", prop: 'vehicleID' },
+ { label: "销售订单号", prop: 'order' },
+ { label: "销售订单行", prop: 'line' },
+ // { label: "车型年份", prop: 'modelYear' },
+ { label: "客户地址编码", prop: 'customerAddressCode' },
+]
+
+/**
+ * @returns {Array} 鸿翔外库jis计划外入库
+ */
+ export const OuterJisUnplannedReceiptNote = [
+ { label: "单据号", prop: "number" },
+ { label: "物料代码", prop: "itemCode" },
+ { label: "物料描述", prop: 'itemName' },
+ { label: "计划外入库单号", prop: 'outerUnplannedReceiptNumber' },
+ { label: "单据类型", prop: 'documentType' },
+ { label: "生产号", prop: 'productionNumber' },
+ { label: "REV", prop: 'rev' },
+ { label: "配置号", prop: 'l7Part' },
+ { label: "条码", prop: 'barCode' },
+ { label: "批次", prop: 'lot' },
+ { label: "数量", prop: 'qty' },
+ { label: "库位", prop: 'locationCode' },
+ { label: "用户", prop: 'unplannedReceiptPeople' },
+ { label: "用户姓名", prop: 'unplannedReceiptPeopleName' },
+ { label: "计划外入库时间", prop: 'unplannedReceiptDate', type:'dateTime' },
+]
+
+
+
+/**
+ * @returns {Array} 鸿翔外库jis计划外出库
+ */
+ export const OuterJisUnplannedIssueNote = [
+ { label: "单据号", prop: "number" },
+ { label: "物料代码", prop: "itemCode" },
+ { label: "物料描述", prop: 'itemName' },
+ { label: "计划外出库单号", prop: 'outerUnplannedIssueNumber' },
+ { label: "单据类型", prop: 'documentType' },
+ { label: "生产号", prop: 'productionNumber' },
+ { label: "REV", prop: 'rev' },
+ { label: "配置号", prop: 'l7Part' },
+ { label: "条码", prop: 'barCode' },
+ { label: "批次", prop: 'lot' },
+ { label: "数量", prop: 'qty' },
+ { label: "库位", prop: 'locationCode' },
+ { label: "用户", prop: 'unplannedIssuePeople' },
+ { label: "用户姓名", prop: 'unplannedIssuePeopleName' },
+ { label: "计划外出库时间", prop: 'unplannedIssueDate', type:'dateTime' },
+]
+
+/**
+ * @returns {Array} 单块门板-发货记录
+ */
+export const SingleDoorPanelDeliverNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left" },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name" },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1" },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2" },
+ { label: "目标批次", prop: "toLot" },
+ { label: "来源批次", prop: "fromLot" },
+ { label: "来源箱标签", prop: "fromPackingCode" },
+ { label: "目标箱标签", prop: "toPackingCode" },
+ { label: "来源托标签", prop: "fromContainerCode" },
+ { label: "来源托标签", prop: "toContainerCode" },
+ { type: "object", label: "发货数量", prop: "qty", showProp: "qty" },
+ { type: "object", label: "发货单位", prop: "qty", showProp: "uom" },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty" },
+ { label: "目标库位", prop: "toLocationCode" },
+ { label: "来源库位", prop: "fromLocationCode" },
+ { label: "目标仓库", prop: "toWarehouseCode" },
+ { label: "来源仓库", prop: "fromWarehouseCode" },
+ { type: "dateTime", label: "发货时间", prop: "deliverTime" },
+ { type: "dateTime", label: "过期时间", prop: "expiredTime" },
+ { label: "产品号", prop: "productNo" },
+ { label: "项目号", prop: "projectCode" },
+ { label: "位置", prop: "position" },
+ { label: "包装箱容量/箱", prop: "packCapacity" },
+ { label: "上线类型", prop: "onlineType" },
+ { label: "阶段", prop: "stage" },
+ { label: "用途", prop: "usedFor" },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch" },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate" },
+ { label: "备注", prop: 'remark' },
+]
+
+/**
+ * @returns {Array} 单块门板-完工收货记录
+ */
+export const SingleDoorPanelProductReceiptNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left" },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name" },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1" },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2" },
+ { label: "批次", prop: "lot" },
+ { label: "箱标签", prop: "packingCode" },
+ { label: "托标签", prop: "containerCode" },
+ { type: "object", label: "完工收货数量", prop: "qty", showProp: "qty" },
+ { type: "object", label: "完工单位", prop: "qty", showProp: "uom" },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty" },
+ { type: "object", label: "包装规格", prop: "stdPack", showProp: "packUom" },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch" },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate" },
+ { label: "库位", prop: "locationCode" },
+ { label: "原料库位", prop: "rawLocation" },
+ { label: "生产线", prop: "prodLine" },
+ { label: "Bom版本", prop: "bomVersion" },
+ { label: "产品号", prop: "productNo" },
+ { label: "项目号", prop: "projectCode" },
+ { label: "位置", prop: "position" },
+ { label: "仓库", prop: "warehouseCode", },
+ { label: "备注", prop: 'remark' },
+]
+
+/**
+ * @returns {Array} 单块门板-完工调整记录
+ */
+export const SingleDoorPanelProductAdjust = [
+ { label: "完工调整单号", prop: "number" },
+ { label: "物料代码", prop: 'itemCode',},
+ { label: "批次", prop: 'lot',},
+ { label: "箱标签", prop: 'packingCode',},
+ { label: "托标签", prop: 'containerCode',},
+ { label: "仓库代码", prop: 'warehouseCode',},
+ { label: "数量", prop: 'qty', showProp: 'qty', type: 'object'},
+ { label: "单位", prop: 'qty', showProp: 'uom', type: 'object'},
+ { label: "包装数量", prop: 'stdPack', showProp: 'packQty', type: 'object'},
+ { label: "包装规格", prop: 'stdPack', showProp: 'packUom', type: 'object'},
+ { label: "库位代码", prop: 'locationCode',},
+]
+
+ /**
+ * @returns {Array} 单块门板-库移记录
+ */
+ export const SingleDoorPanelProductTransferNote = [
+ { label: "物料编号", prop: "itemCode", fixed: "left" },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name" },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1" },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2" },
+ { label: "批次", prop: "lot" },
+ { label: "箱标签", prop: "packingCode" },
+ { label: "托标签", prop: "containerCode" },
+ { type: "object", label: "数量", prop: "qty", showProp: "qty" },
+ { type: "object", label: "单位", prop: "qty", showProp: "uom" },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty" },
+ { type: "object", label: "包装规格", prop: "stdPack", showProp: "packUom" },
+ { label: "目标仓库", prop: "toWarehouseCode" },
+ { label: "来源仓库", prop: "fromWarehouseCode" },
+ { label: "产品号", prop: "productNo" },
+ { label: "项目号", prop: "projectCode" },
+ { label: "位置", prop: "position" },
+ { label: "原因", prop: "reason" },
+ ]
+
+ /**
+ * @returns {Array} 单块门板-客户退货记录
+ */
+export const SingleDoorPanelCustomerReturnNote = [
+ { label: "客户退货单号", prop: "number" },
+ { label: "物料代码", prop: 'itemCode' },
+ { label: "批次", prop: 'lot' },
+ { label: "箱标签", prop: 'packingCode' },
+ { label: "托标签", prop: 'containerCode' },
+ { label: "仓库代码", prop: 'warehouseCode' },
+ { label: "数量", prop: 'qty', showProp: 'qty', type: 'object' },
+ { label: "单位", prop: 'qty', showProp: 'uom', type: 'object' },
+ { label: "包装数量", prop: 'stdPack', showProp: 'packQty', type: 'object' },
+ { label: "包装规格", prop: 'stdPack', showProp: 'packUom', type: 'object' },
+ { label: "库位代码", prop: 'locationCode' },
+ // { label: "生产线", prop: 'prodLine' },
+ // { label: "Bom版本", prop: "bomVersion" },
+ { label: "产品号", prop: "productNo" },
+ { label: "项目号", prop: "projectCode" },
+ { label: "位置", prop: "position" },
+]
+
+ /**
+ * @returns {Array} 调拨发货记录
+ */
+ export const PillarDeliverNote = [
+ { label: "物料编号", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { label: "目标批次", prop: "toLot", },
+ { label: "来源批次", prop: "fromLot", },
+ { label: "目标库位", prop: "toLocationCode", },
+ { label: "来源库位", prop: "fromLocationCode", },
+ { label: "目标仓库", prop: "toWarehouseCode", },
+ { label: "来源仓库", prop: "fromWarehouseCode", },
+ { type: "filter", filters: "requestStatus", label: "从状态", prop: "fromStatus",},
+ { type: "filter", filters: "requestStatus", label: "到状态", prop: "toStatus",},
+ { label: "发货时间", prop: "deliverTime", type: "dateTime" },
+ { label: "过期时间", prop: "expiredTime", type: "dateTime" },
+ { label: "销售订单号", prop: "soNumber", },
+ { label: "订单行", prop: "soLine", },
+ { label: "原因", prop: "reason",},
+]
+
+/**
+ * @returns {Array} 库存转移日志
+ */
+export const InventoryTransferNote = [
+ { label: "转移编号", prop: "number", },
+ { label: "从箱标签", prop: "fromPackingCode", },
+ { label: "到箱标签", prop: "toPackingCode", },
+ { label: "从库位代码", prop: "fromLocationCode", },
+ { label: "到库位代码", prop: "toLocationCode", },
+ { label: "从托盘标签", prop: "fromContainerCode", },
+ { label: "到托盘标签", prop: "toContainerCode", },
+ { type: "filter", filters: "inventoryStage", label: "从状态", prop: "fromStatus", },
+ { type: "filter", filters: "inventoryStage", label: "到状态", prop: "toStatus", },
+ { label: "itemCode", prop: "itemCode" },
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "object", label: "到货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "到货单位", prop: "qty", showProp: "uom", },
+ { label: "从批次", prop: "fromLot" },
+ { label: "到批次", prop: "toLot" },
+ { label: "备注", prop: 'remark', },
+ // { type: "filter", filters: "TransType", label: "事务类型", prop: "transType", },
+ // { type: "filter", filters: "TransSubType", label: "事务替代类型", prop: "transSubType", },
+ // { label: "从事务编号", prop: "formTransNumber", },
+ // { label: "到事务编号", prop: "toTransNumber", },
+ // { type: "dateTime", label: "事务时间", prop: "transferTime", },
+ // { type: "dateTime", label: "生效日期", prop: "activeDate", },
+]
diff --git a/src/utils/disposition/tableSummaryColumns.ts b/src/utils/disposition/tableSummaryColumns.ts
new file mode 100644
index 0000000..98d55dc
--- /dev/null
+++ b/src/utils/disposition/tableSummaryColumns.ts
@@ -0,0 +1,100 @@
+ /**
+ * @returns {Array} 检验任务
+ */
+ export const InspectJob = [
+ { label: "itemCode", prop: "itemCode", fixed:"left", },
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { type: "filter", filters: "inspectType", label: "检验类型", prop: "inspectType",},
+ { label: "检验数量", prop: "inspectQty",},
+ { label: "合格数量", prop: "goodQty",},
+ { label: "不合格数量", prop: "failedQty",},
+ { label: "最终不合格数量", prop: "notPassedQty",},
+ { label: "不合格原因", prop: "failedReason",},
+ { label: "破坏数量", prop: "crackQty",},
+ { type: "object", label: "收货数量", prop: "receiveQty", showProp: "qty", },
+ { type: "object", label: "收货单位", prop: "receiveQty", showProp: "uom",},
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装单位", prop: "stdPack", showProp: "packUom",},
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch",},
+ { label: "订单号", prop: "poNumber",},
+ { label: "订单行", prop: "poLine",},
+ // { label: "itemCode", prop: "itemCode",},
+ // { type: "filter", filters: "inspectType", label: "检验类型", prop: "inspectType",},
+ // { label: "检验数量", prop: "inspectQty",},
+ // { label: "合格数量", prop: "goodQty",},
+ // { label: "不合格数量", prop: "failedQty",},
+ // { label: "最终不合格数量", prop: "notPassedQty",},
+ // { label: "实际库位", prop: "handledLocationCode",},
+ // { label: "推荐库位", prop: "recommendLocationCode",},
+ // { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ // { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ // { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ // { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch",},
+ // { label: "备注", prop: 'remark', },
+]
+
+/**
+ * @returns {Array} 报检单
+ */
+ export const InspectNotice = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { label: "物料名称", type: "object", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "批次", prop: "lot" },
+ { label: "抽检百分比", prop: "samplePercent",},
+ { label: "检验数量", prop: "inspectQty",},
+ { type: "object", label: "收货数量", prop: "receiveQty", showProp: "qty", },
+ { type: "object", label: "收货单位", prop: "receiveQty", showProp: "uom",},
+ // { type: "filter", filters: "inspectType", label: "检验类型", prop: "inspectType",},
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装单位", prop: "stdPack", showProp: "packUom",},
+ // { label: "订单号", prop: "poNumber",},
+ // { label: "订单行", prop: "poLine",},
+ // { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "objectDateTime", label: "生产日期", prop: "batch", showProp: "produceDate", },
+ ]
+
+ /**
+ * @returns {Array} 检验记录
+ */
+ export const InspectNote = [
+ { label: "itemCode", prop: "itemCode", fixed: "left",},
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "检验数量", prop: "inspectQty",},
+ { label: "合格数量", prop: "goodQty",},
+ { label: "不合格数量", prop: "failedQty",},
+ { label: "破坏数量", prop: "crackQty",},
+ { type: "object", label: "收货数量", prop: "receiveQty", showProp: "qty", },
+ { type: "object", label: "收货单位", prop: "receiveQty", showProp: "uom",},
+ { type: "filter", filters: "taskType", label: "检验类型", prop: "inspectType",},
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty",},
+ { type: "object", label: "包装规格", prop: "stdPack", showProp: "packUom",},
+ { label: "批次", prop: "lot", },
+ ]
+
+ /**
+ * @returns {Array} 检验记录
+ */
+ export const PurchaseReceiptNote = [
+ { label: "itemCode", prop: "itemCode",fixed: "left", },
+ { type: "object", label: "物料名称", prop: "item", showProp: "name", },
+ { type: "object", label: "物料描述1", prop: "item", showProp: "desc1", },
+ { type: "object", label: "物料描述2", prop: "item", showProp: "desc2", },
+ { label: "总数", prop: "summary" },
+ { type: "object", label: "收货数量", prop: "qty", showProp: "qty", },
+ { type: "object", label: "包装数量", prop: "stdPack", showProp: "packQty", },
+ { label: "订单号", prop: "poNumber", },
+ { label: "订单行", prop: "poLine", },
+ { label: "箱标签", prop: "packingCode", },
+ { label: "托标签", prop: "containerCode", },
+ { type: "object", label: "供应商批次", prop: "batch", showProp: "supplierBatch", },
+ { type: "object", label: "包装单位", prop: "qty", showProp: "uom", },
+ { type: "object", label: "包装规格", prop: "stdPack", showProp: "packUom", },
+ { label: "E-LEVEL等级", prop: "labelEqLevel" },
+ { label: "备注", prop: 'remark', },
+ ]
\ No newline at end of file
diff --git a/src/utils/disposition/tabsList.ts b/src/utils/disposition/tabsList.ts
new file mode 100644
index 0000000..64d82ab
--- /dev/null
+++ b/src/utils/disposition/tabsList.ts
@@ -0,0 +1,46 @@
+// 页面tabs标签
+export const ItemBasicTabsList = [{
+ label: "供应商物料",
+ prop: 'SupplierItems',
+},
+{
+ label: "客户物料",
+ prop: 'CustomerItems',
+},
+{
+ label: "采购订单",
+ prop: 'PurchaseOrder',
+},
+{
+ label: "要货计划",
+ prop: 'PurchasingPlan',
+},
+{
+ label: "库存余额",
+ prop: 'InventoryBalance',
+},
+{
+ label: "预计入库存",
+ prop: 'ExpectedIn',
+},{
+ label: "预计出库存",
+ prop: 'ExpectedOut',
+},
+
+]
+export const PurchasereceiptRequestTabsList = [{
+ label: "收货明细",
+ prop: 'receiptDetail',
+ },
+ {
+ label: "缺货明细",
+ prop: 'scarceGoodsDetail',
+ }
+]
+
+export const PurchasereceiptRefuseRequestTabsList = [{
+ label: "拒收明细",
+ prop: 'receiptDetail',
+}
+]
+
diff --git a/src/utils/domUtils.ts b/src/utils/domUtils.ts
new file mode 100644
index 0000000..dbc1989
--- /dev/null
+++ b/src/utils/domUtils.ts
@@ -0,0 +1,289 @@
+import { isServer } from './is'
+const ieVersion = isServer ? 0 : Number((document as any).documentMode)
+const SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g
+const MOZ_HACK_REGEXP = /^moz([A-Z])/
+
+export interface ViewportOffsetResult {
+ left: number
+ top: number
+ right: number
+ bottom: number
+ rightIncludeBody: number
+ bottomIncludeBody: number
+}
+
+/* istanbul ignore next */
+const trim = function (string: string) {
+ return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '')
+}
+
+/* istanbul ignore next */
+const camelCase = function (name: string) {
+ return name
+ .replace(SPECIAL_CHARS_REGEXP, function (_, __, letter, offset) {
+ return offset ? letter.toUpperCase() : letter
+ })
+ .replace(MOZ_HACK_REGEXP, 'Moz$1')
+}
+
+/* istanbul ignore next */
+export function hasClass(el: Element, cls: string) {
+ if (!el || !cls) return false
+ if (cls.indexOf(' ') !== -1) {
+ throw new Error('className should not contain space.')
+ }
+ if (el.classList) {
+ return el.classList.contains(cls)
+ } else {
+ return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1
+ }
+}
+
+/* istanbul ignore next */
+export function addClass(el: Element, cls: string) {
+ if (!el) return
+ let curClass = el.className
+ const classes = (cls || '').split(' ')
+
+ for (let i = 0, j = classes.length; i < j; i++) {
+ const clsName = classes[i]
+ if (!clsName) continue
+
+ if (el.classList) {
+ el.classList.add(clsName)
+ } else if (!hasClass(el, clsName)) {
+ curClass += ' ' + clsName
+ }
+ }
+ if (!el.classList) {
+ el.className = curClass
+ }
+}
+
+/* istanbul ignore next */
+export function removeClass(el: Element, cls: string) {
+ if (!el || !cls) return
+ const classes = cls.split(' ')
+ let curClass = ' ' + el.className + ' '
+
+ for (let i = 0, j = classes.length; i < j; i++) {
+ const clsName = classes[i]
+ if (!clsName) continue
+
+ if (el.classList) {
+ el.classList.remove(clsName)
+ } else if (hasClass(el, clsName)) {
+ curClass = curClass.replace(' ' + clsName + ' ', ' ')
+ }
+ }
+ if (!el.classList) {
+ el.className = trim(curClass)
+ }
+}
+
+export function getBoundingClientRect(element: Element): DOMRect | number {
+ if (!element || !element.getBoundingClientRect) {
+ return 0
+ }
+ return element.getBoundingClientRect()
+}
+
+/**
+ * 获取当前元素的left、top偏移
+ * left:元素最左侧距离文档左侧的距离
+ * top:元素最顶端距离文档顶端的距离
+ * right:元素最右侧距离文档右侧的距离
+ * bottom:元素最底端距离文档底端的距离
+ * rightIncludeBody:元素最左侧距离文档右侧的距离
+ * bottomIncludeBody:元素最底端距离文档最底部的距离
+ *
+ * @description:
+ */
+export function getViewportOffset(element: Element): ViewportOffsetResult {
+ const doc = document.documentElement
+
+ const docScrollLeft = doc.scrollLeft
+ const docScrollTop = doc.scrollTop
+ const docClientLeft = doc.clientLeft
+ const docClientTop = doc.clientTop
+
+ const pageXOffset = window.pageXOffset
+ const pageYOffset = window.pageYOffset
+
+ const box = getBoundingClientRect(element)
+
+ const { left: retLeft, top: rectTop, width: rectWidth, height: rectHeight } = box as DOMRect
+
+ const scrollLeft = (pageXOffset || docScrollLeft) - (docClientLeft || 0)
+ const scrollTop = (pageYOffset || docScrollTop) - (docClientTop || 0)
+ const offsetLeft = retLeft + pageXOffset
+ const offsetTop = rectTop + pageYOffset
+
+ const left = offsetLeft - scrollLeft
+ const top = offsetTop - scrollTop
+
+ const clientWidth = window.document.documentElement.clientWidth
+ const clientHeight = window.document.documentElement.clientHeight
+ return {
+ left: left,
+ top: top,
+ right: clientWidth - rectWidth - left,
+ bottom: clientHeight - rectHeight - top,
+ rightIncludeBody: clientWidth - left,
+ bottomIncludeBody: clientHeight - top
+ }
+}
+
+/* istanbul ignore next */
+export const on = function (
+ element: HTMLElement | Document | Window,
+ event: string,
+ handler: EventListenerOrEventListenerObject
+): void {
+ if (element && event && handler) {
+ element.addEventListener(event, handler, false)
+ }
+}
+
+/* istanbul ignore next */
+export const off = function (
+ element: HTMLElement | Document | Window,
+ event: string,
+ handler: any
+): void {
+ if (element && event && handler) {
+ element.removeEventListener(event, handler, false)
+ }
+}
+
+/* istanbul ignore next */
+export const once = function (el: HTMLElement, event: string, fn: EventListener): void {
+ const listener = function (this: any, ...args: unknown[]) {
+ if (fn) {
+ // @ts-ignore
+ fn.apply(this, args)
+ }
+ off(el, event, listener)
+ }
+ on(el, event, listener)
+}
+
+/* istanbul ignore next */
+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]
+ }
+ }
+ : 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]
+ }
+ }
+
+/* istanbul ignore next */
+export function setStyle(element: Element | any, styleName: any, value: any) {
+ if (!element || !styleName) return
+
+ if (typeof styleName === 'object') {
+ for (const prop in styleName) {
+ if (Object.prototype.hasOwnProperty.call(styleName, prop)) {
+ setStyle(element, prop, styleName[prop])
+ }
+ }
+ } else {
+ styleName = camelCase(styleName)
+ if (styleName === 'opacity' && ieVersion < 9) {
+ element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')'
+ } else {
+ element.style[styleName] = value
+ }
+ }
+}
+
+/* istanbul ignore next */
+export const isScroll = (el: Element, vertical: any) => {
+ if (isServer) return
+
+ const determinedDirection = vertical !== null || vertical !== undefined
+ const overflow = determinedDirection
+ ? vertical
+ ? getStyle(el, 'overflow-y')
+ : getStyle(el, 'overflow-x')
+ : getStyle(el, 'overflow')
+
+ return overflow.match(/(scroll|auto)/)
+}
+
+/* istanbul ignore next */
+export const getScrollContainer = (el: Element, vertical?: any) => {
+ if (isServer) return
+
+ let parent: any = el
+ while (parent) {
+ if ([window, document, document.documentElement].includes(parent)) {
+ return window
+ }
+ if (isScroll(parent, vertical)) {
+ return parent
+ }
+ parent = parent.parentNode
+ }
+
+ return parent
+}
+
+/* istanbul ignore next */
+export const isInContainer = (el: Element, container: any) => {
+ if (isServer || !el || !container) return false
+
+ const elRect = el.getBoundingClientRect()
+ let containerRect
+
+ if ([window, document, document.documentElement, null, undefined].includes(container)) {
+ containerRect = {
+ top: 0,
+ right: window.innerWidth,
+ bottom: window.innerHeight,
+ left: 0
+ }
+ } else {
+ containerRect = container.getBoundingClientRect()
+ }
+
+ return (
+ elRect.top < containerRect.bottom &&
+ elRect.bottom > containerRect.top &&
+ elRect.right > containerRect.left &&
+ elRect.left < containerRect.right
+ )
+}
diff --git a/src/utils/download.ts b/src/utils/download.ts
new file mode 100644
index 0000000..ab20014
--- /dev/null
+++ b/src/utils/download.ts
@@ -0,0 +1,38 @@
+const download0 = (data: Blob, fileName: string, mineType: string) => {
+ // 创建 blob
+ const blob = new Blob([data], { type: mineType })
+ // 创建 href 超链接,点击进行下载
+ window.URL = window.URL || window.webkitURL
+ const href = URL.createObjectURL(blob)
+ const downA = document.createElement('a')
+ downA.href = href
+ downA.download = fileName
+ downA.click()
+ // 销毁超连接
+ window.URL.revokeObjectURL(href)
+}
+
+const download = {
+ // 下载 Excel 方法
+ excel: (data: Blob, fileName: string) => {
+ download0(data, fileName, 'application/vnd.ms-excel')
+ },
+ // 下载 Word 方法
+ word: (data: Blob, fileName: string) => {
+ download0(data, fileName, 'application/msword')
+ },
+ // 下载 Zip 方法
+ zip: (data: Blob, fileName: string) => {
+ download0(data, fileName, 'application/zip')
+ },
+ // 下载 Html 方法
+ html: (data: Blob, fileName: string) => {
+ download0(data, fileName, 'text/html')
+ },
+ // 下载 Markdown 方法
+ markdown: (data: Blob, fileName: string) => {
+ download0(data, fileName, 'text/markdown')
+ }
+}
+
+export default download
diff --git a/src/utils/filt.ts b/src/utils/filt.ts
new file mode 100644
index 0000000..b1a7b2c
--- /dev/null
+++ b/src/utils/filt.ts
@@ -0,0 +1,157 @@
+export const openWindow = (
+ url: string,
+ opt?: {
+ target?: '_self' | '_blank' | string
+ noopener?: boolean
+ noreferrer?: boolean
+ }
+) => {
+ const { target = '__blank', noopener = true, noreferrer = true } = opt || {}
+ const feature: string[] = []
+
+ noopener && feature.push('noopener=yes')
+ noreferrer && feature.push('noreferrer=yes')
+
+ window.open(url, target, feature.join(','))
+}
+
+/**
+ * @description: base64 to blob
+ */
+export const dataURLtoBlob = (base64Buf: string): Blob => {
+ const arr = base64Buf.split(',')
+ const typeItem = arr[0]
+ const mime = typeItem.match(/:(.*?);/)![1]
+ const bstr = window.atob(arr[1])
+ let n = bstr.length
+ const u8arr = new Uint8Array(n)
+ while (n--) {
+ u8arr[n] = bstr.charCodeAt(n)
+ }
+ return new Blob([u8arr], { type: mime })
+}
+
+/**
+ * img url to base64
+ * @param url
+ */
+export const urlToBase64 = (url: string, mineType?: string): Promise => {
+ return new Promise((resolve, reject) => {
+ let canvas = document.createElement('CANVAS') as Nullable
+ const ctx = canvas!.getContext('2d')
+
+ const img = new Image()
+ img.crossOrigin = ''
+ img.onload = function () {
+ if (!canvas || !ctx) {
+ return reject()
+ }
+ canvas.height = img.height
+ canvas.width = img.width
+ ctx.drawImage(img, 0, 0)
+ const dataURL = canvas.toDataURL(mineType || 'image/png')
+ canvas = null
+ resolve(dataURL)
+ }
+ img.src = url
+ })
+}
+
+/**
+ * Download online pictures
+ * @param url
+ * @param filename
+ * @param mime
+ * @param bom
+ */
+export const downloadByOnlineUrl = (
+ url: string,
+ filename: string,
+ mime?: string,
+ bom?: BlobPart
+) => {
+ urlToBase64(url).then((base64) => {
+ downloadByBase64(base64, filename, mime, bom)
+ })
+}
+
+/**
+ * Download pictures based on base64
+ * @param buf
+ * @param filename
+ * @param mime
+ * @param bom
+ */
+export const downloadByBase64 = (buf: string, filename: string, mime?: string, bom?: BlobPart) => {
+ const base64Buf = dataURLtoBlob(buf)
+ downloadByData(base64Buf, filename, mime, bom)
+}
+
+/**
+ * Download according to the background interface file stream
+ * @param {*} data
+ * @param {*} filename
+ * @param {*} mime
+ * @param {*} bom
+ */
+export const downloadByData = (data: BlobPart, filename: string, mime?: string, bom?: BlobPart) => {
+ const blobData = typeof bom !== 'undefined' ? [bom, data] : [data]
+ const blob = new Blob(blobData, { type: mime || 'application/octet-stream' })
+
+ const blobURL = window.URL.createObjectURL(blob)
+ const tempLink = document.createElement('a')
+ tempLink.style.display = 'none'
+ tempLink.href = blobURL
+ tempLink.setAttribute('download', filename)
+ if (typeof tempLink.download === 'undefined') {
+ tempLink.setAttribute('target', '_blank')
+ }
+ document.body.appendChild(tempLink)
+ tempLink.click()
+ document.body.removeChild(tempLink)
+ window.URL.revokeObjectURL(blobURL)
+}
+
+/**
+ * Download file according to file address
+ * @param {*} sUrl
+ */
+export const downloadByUrl = ({
+ url,
+ target = '_blank',
+ fileName
+}: {
+ url: string
+ target?: '_self' | '_blank'
+ fileName?: string
+}): boolean => {
+ const isChrome = window.navigator.userAgent.toLowerCase().indexOf('chrome') > -1
+ const isSafari = window.navigator.userAgent.toLowerCase().indexOf('safari') > -1
+
+ if (/(iP)/g.test(window.navigator.userAgent)) {
+ console.error('Your browser does not support download!')
+ return false
+ }
+ if (isChrome || isSafari) {
+ const link = document.createElement('a')
+ link.href = url
+ link.target = target
+
+ if (link.download !== undefined) {
+ link.download = fileName || url.substring(url.lastIndexOf('/') + 1, url.length)
+ }
+
+ if (document.createEvent) {
+ const e = document.createEvent('MouseEvents')
+ e.initEvent('click', true, true)
+ link.dispatchEvent(e)
+ return true
+ }
+ }
+ if (url.indexOf('?') === -1) {
+ url += '?download'
+ }
+
+ openWindow(url, { target })
+ return true
+}
diff --git a/src/utils/formCreate.ts b/src/utils/formCreate.ts
new file mode 100644
index 0000000..6d7dbc7
--- /dev/null
+++ b/src/utils/formCreate.ts
@@ -0,0 +1,54 @@
+/**
+ * 针对 https://github.com/xaboy/form-create-designer 封装的工具类
+ */
+
+// 编码表单 Conf
+export const encodeConf = (designerRef: object) => {
+ // @ts-ignore
+ return JSON.stringify(designerRef.value.getOption())
+}
+
+// 编码表单 Fields
+export const encodeFields = (designerRef: object) => {
+ // @ts-ignore
+ const rule = designerRef.value.getRule()
+ const fields: string[] = []
+ rule.forEach((item) => {
+ fields.push(JSON.stringify(item))
+ })
+ return fields
+}
+
+// 解码表单 Fields
+export const decodeFields = (fields: string[]) => {
+ const rule: object[] = []
+ fields.forEach((item) => {
+ rule.push(JSON.parse(item))
+ })
+ return rule
+}
+
+// 设置表单的 Conf 和 Fields
+export const setConfAndFields = (designerRef: object, conf: string, fields: string) => {
+ // @ts-ignore
+ designerRef.value.setOption(JSON.parse(conf))
+ // @ts-ignore
+ designerRef.value.setRule(decodeFields(fields))
+}
+
+// 设置表单的 Conf 和 Fields
+export const setConfAndFields2 = (
+ detailPreview: object,
+ conf: string,
+ fields: string,
+ value?: object
+) => {
+ // @ts-ignore
+ detailPreview.value.option = JSON.parse(conf)
+ // @ts-ignore
+ detailPreview.value.rule = decodeFields(fields)
+ if (value) {
+ // @ts-ignore
+ detailPreview.value.value = value
+ }
+}
diff --git a/src/utils/formRules.ts b/src/utils/formRules.ts
new file mode 100644
index 0000000..2989867
--- /dev/null
+++ b/src/utils/formRules.ts
@@ -0,0 +1,7 @@
+const { t } = useI18n()
+
+// 必填项
+export const required = {
+ required: true,
+ message: t('common.required')
+}
diff --git a/src/utils/formatTime.ts b/src/utils/formatTime.ts
new file mode 100644
index 0000000..db79480
--- /dev/null
+++ b/src/utils/formatTime.ts
@@ -0,0 +1,254 @@
+import dayjs from 'dayjs'
+
+/**
+ * 时间日期转换
+ * @param date 当前时间,new Date() 格式
+ * @param format 需要转换的时间格式字符串
+ * @description format 字符串随意,如 `YYYY-mm、YYYY-mm-dd`
+ * @description format 季度:"YYYY-mm-dd HH:MM:SS QQQQ"
+ * @description format 星期:"YYYY-mm-dd HH:MM:SS WWW"
+ * @description format 几周:"YYYY-mm-dd HH:MM:SS ZZZ"
+ * @description format 季度 + 星期 + 几周:"YYYY-mm-dd HH:MM:SS WWW QQQQ ZZZ"
+ * @returns 返回拼接后的时间字符串
+ */
+export function formatDate(date: Date | number, format?: string): string {
+ // 日期不存在,则返回空
+ if (!date) {
+ return ''
+ }
+ // 日期存在,则进行格式化
+ if (format === undefined) {
+ format = 'YYYY-MM-DD HH:mm:ss'
+ }
+ return dayjs(date).format(format)
+}
+
+/**
+ * 获取当前的日期+时间
+ */
+export function addDay(date: Date | number, addDay: number) {
+ return dayjs(date).add(addDay, 'day')
+}
+
+/**
+ * 获取当前的日期+时间
+ */
+export function getNowDateTime() {
+ return dayjs()
+}
+
+/**
+ * 获取当前日期是第几周
+ * @param dateTime 当前传入的日期值
+ * @returns 返回第几周数字值
+ */
+export function getWeek(dateTime: Date): number {
+ const temptTime = new Date(dateTime.getTime())
+ // 周几
+ const weekday = temptTime.getDay() || 7
+ // 周1+5天=周六
+ temptTime.setDate(temptTime.getDate() - weekday + 1 + 5)
+ let firstDay = new Date(temptTime.getFullYear(), 0, 1)
+ const dayOfWeek = firstDay.getDay()
+ let spendDay = 1
+ if (dayOfWeek != 0) spendDay = 7 - dayOfWeek + 1
+ firstDay = new Date(temptTime.getFullYear(), 0, 1 + spendDay)
+ const d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000)
+ return Math.ceil(d / 7)
+}
+
+/**
+ * 将时间转换为 `几秒前`、`几分钟前`、`几小时前`、`几天前`
+ * @param param 当前时间,new Date() 格式或者字符串时间格式
+ * @param format 需要转换的时间格式字符串
+ * @description param 10秒: 10 * 1000
+ * @description param 1分: 60 * 1000
+ * @description param 1小时: 60 * 60 * 1000
+ * @description param 24小时:60 * 60 * 24 * 1000
+ * @description param 3天: 60 * 60* 24 * 1000 * 3
+ * @returns 返回拼接后的时间字符串
+ */
+export function formatPast(param: string | Date, format = 'YYYY-mm-dd HH:MM:SS'): string {
+ // 传入格式处理、存储转换值
+ let t: any, s: number
+ // 获取js 时间戳
+ let time: number = new Date().getTime()
+ // 是否是对象
+ typeof param === 'string' || 'object' ? (t = new Date(param).getTime()) : (t = param)
+ // 当前时间戳 - 传入时间戳
+ time = Number.parseInt(`${time - t}`)
+ if (time < 10000) {
+ // 10秒内
+ return '刚刚'
+ } else if (time < 60000 && time >= 10000) {
+ // 超过10秒少于1分钟内
+ s = Math.floor(time / 1000)
+ return `${s}秒前`
+ } else if (time < 3600000 && time >= 60000) {
+ // 超过1分钟少于1小时
+ s = Math.floor(time / 60000)
+ return `${s}分钟前`
+ } else if (time < 86400000 && time >= 3600000) {
+ // 超过1小时少于24小时
+ s = Math.floor(time / 3600000)
+ return `${s}小时前`
+ } else if (time < 259200000 && time >= 86400000) {
+ // 超过1天少于3天内
+ s = Math.floor(time / 86400000)
+ return `${s}天前`
+ } else {
+ // 超过3天
+ const date = typeof param === 'string' || 'object' ? new Date(param) : param
+ return formatDate(date, format)
+ }
+}
+
+/**
+ * 时间问候语
+ * @param param 当前时间,new Date() 格式
+ * @description param 调用 `formatAxis(new Date())` 输出 `上午好`
+ * @returns 返回拼接后的时间字符串
+ */
+export function formatAxis(param: Date): string {
+ const hour: number = new Date(param).getHours()
+ if (hour < 6) return '凌晨好'
+ else if (hour < 9) return '早上好'
+ else if (hour < 12) return '上午好'
+ else if (hour < 14) return '中午好'
+ else if (hour < 17) return '下午好'
+ else if (hour < 19) return '傍晚好'
+ else if (hour < 22) return '晚上好'
+ else return '夜里好'
+}
+
+/**
+ * 将毫秒,转换成时间字符串。例如说,xx 分钟
+ *
+ * @param ms 毫秒
+ * @returns {string} 字符串
+ */
+export function formatPast2(ms) {
+ const day = Math.floor(ms / (24 * 60 * 60 * 1000))
+ const hour = Math.floor(ms / (60 * 60 * 1000) - day * 24)
+ const minute = Math.floor(ms / (60 * 1000) - day * 24 * 60 - hour * 60)
+ const second = Math.floor(ms / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60)
+ if (day > 0) {
+ return day + '天' + hour + '小时' + minute + '分钟'
+ }
+ if (hour > 0) {
+ return hour + '小时' + minute + '分钟'
+ }
+ if (minute > 0) {
+ return minute + '分钟'
+ }
+ if (second > 0) {
+ return second + '秒'
+ } else {
+ return 0 + '秒'
+ }
+}
+
+/**
+ * element plus 的时间 Formatter 实现,使用 YYYY-MM-DD HH:mm:ss 格式
+ *
+ * @param row 行数据
+ * @param column 字段
+ * @param cellValue 字段值
+ */
+// @ts-ignore
+export const dateFormatter = (row, column, cellValue) => {
+ if (!cellValue) {
+ return
+ }
+ return formatDate(cellValue)
+}
+/**
+ * element plus 的时间 Formatter 实现,使用 YYYY-MM-DD HH:mm:ss 格式
+ *
+ * @param row 行数据
+ * @param column 字段
+ * @param cellValue 字段值
+ */
+// @ts-ignore
+export const dateFormatter3 = (row, column, cellValue) => {
+ if (!cellValue) {
+ return
+ }
+ let str = formatDate(cellValue).split(' ')[1]
+ return str
+}
+// 获取时间戳
+export const formatGetTime = (row, column, cellValue) => {
+ console.log(cellValue.getTime())
+ // if (!cellValue) {
+ // return
+ // }
+ // const time = new Date(cellValue).getTime()
+ // return time
+}
+
+/**
+ * element plus 的时间 Formatter 实现,使用 YYYY-MM-DD 格式
+ *
+ * @param row 行数据
+ * @param column 字段
+ * @param cellValue 字段值
+ */
+// @ts-ignore
+export const dateFormatter2 = (row, column, cellValue) => {
+ if (!cellValue) {
+ return
+ }
+ return formatDate(cellValue, 'YYYY-MM-DD')
+}
+
+/**
+ * 设置起始日期,时间为00:00:00
+ * @param param 传入日期
+ * @returns 带时间00:00:00的日期
+ */
+export function beginOfDay(param: Date) {
+ return new Date(param.getFullYear(), param.getMonth(), param.getDate(), 0, 0, 0)
+}
+
+/**
+ * 设置结束日期,时间为23:59:59
+ * @param param 传入日期
+ * @returns 带时间23:59:59的日期
+ */
+export function endOfDay(param: Date) {
+ return new Date(param.getFullYear(), param.getMonth(), param.getDate(), 23, 59, 59)
+}
+
+/**
+ * 计算两个日期间隔天数
+ * @param param1 日期1
+ * @param param2 日期2
+ */
+export function betweenDay(param1: Date, param2: Date) {
+ param1 = convertDate(param1)
+ param2 = convertDate(param2)
+ // 计算差值
+ return Math.floor((param2.getTime() - param1.getTime()) / (24 * 3600 * 1000))
+}
+
+/**
+ * 日期计算
+ * @param param1 日期
+ * @param param2 添加的时间
+ */
+export function addTime(param1: Date, param2: number) {
+ param1 = convertDate(param1)
+ return new Date(param1.getTime() + param2)
+}
+
+/**
+ * 日期转换
+ * @param param 日期
+ */
+export function convertDate(param: Date | string) {
+ if (typeof param === 'string') {
+ return new Date(param)
+ }
+ return param
+}
diff --git a/src/utils/formatter.ts b/src/utils/formatter.ts
new file mode 100644
index 0000000..e7e7500
--- /dev/null
+++ b/src/utils/formatter.ts
@@ -0,0 +1,27 @@
+import { fenToYuan } from '@/utils'
+import { TableColumnCtx } from 'element-plus'
+
+// 格式化金额【分转元】
+export const fenToYuanFormat = (
+ row: any,
+ column: TableColumnCtx,
+ cellValue: any,
+ index: number
+) => {
+ return `¥${fenToYuan(cellValue)}`
+}
+export const accountantFormart = (row, column, cellValue) => {
+ if(!cellValue){
+ return ''
+ }
+ cellValue = cellValue + '' || ''
+ cellValue = Number(cellValue).toFixed(2)
+ let x = cellValue.split('.')
+ let x1 = x[0]
+ let x2 = x.length > 1 ? '.' + x[1] : ''
+ const reg = /(\d+)(\d{3})/
+ while(reg.test(x1)){
+ x1 = x1.replace(reg, '$1,$2')
+ }
+ return x1+x2
+}
diff --git a/src/utils/index.ts b/src/utils/index.ts
new file mode 100644
index 0000000..0c00c25
--- /dev/null
+++ b/src/utils/index.ts
@@ -0,0 +1,245 @@
+/**
+ *
+ * @param component 需要注册的组件
+ * @param alias 组件别名
+ * @returns any
+ */
+export const withInstall = (component: T, alias?: string) => {
+ const comp = component as any
+ comp.install = (app: any) => {
+ app.component(comp.name || comp.displayName, component)
+ if (alias) {
+ app.config.globalProperties[alias] = component
+ }
+ }
+ return component as T & Plugin
+}
+
+/**
+ * @param str 需要转下划线的驼峰字符串
+ * @returns 字符串下划线
+ */
+export const humpToUnderline = (str: string): string => {
+ return str.replace(/([A-Z])/g, '-$1').toLowerCase()
+}
+
+/**
+ * @param str 需要转驼峰的下划线字符串
+ * @returns 字符串驼峰
+ */
+export const underlineToHump = (str: string): string => {
+ if (!str) return ''
+ return str.replace(/\-(\w)/g, (_, letter: string) => {
+ return letter.toUpperCase()
+ })
+}
+
+export const setCssVar = (prop: string, val: any, dom = document.documentElement) => {
+ dom.style.setProperty(prop, val)
+}
+
+/**
+ * 查找数组对象的某个下标
+ * @param {Array} ary 查找的数组
+ * @param {Functon} fn 判断的方法
+ */
+// eslint-disable-next-line
+export const findIndex = (ary: Array, fn: Fn): number => {
+ if (ary.findIndex) {
+ return ary.findIndex(fn)
+ }
+ let index = -1
+ ary.some((item: T, i: number, ary: Array) => {
+ const ret: T = fn(item, i, ary)
+ if (ret) {
+ index = i
+ return ret
+ }
+ })
+ return index
+}
+
+export const trim = (str: string) => {
+ return str.replace(/(^\s*)|(\s*$)/g, '')
+}
+
+/**
+ * @param {Date | number | string} time 需要转换的时间
+ * @param {String} fmt 需要转换的格式 如 yyyy-MM-dd、yyyy-MM-dd HH:mm:ss
+ */
+export const formatTime = (time: Date | number | string, fmt: string) => {
+ if (!time) return ''
+ else {
+ const date = new Date(time)
+ const o = {
+ 'M+': date.getMonth() + 1,
+ 'd+': date.getDate(),
+ 'H+': date.getHours(),
+ 'm+': date.getMinutes(),
+ 's+': date.getSeconds(),
+ 'q+': Math.floor((date.getMonth() + 3) / 3),
+ S: date.getMilliseconds()
+ }
+ if (/(y+)/.test(fmt)) {
+ fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
+ }
+ for (const k in o) {
+ if (new RegExp('(' + k + ')').test(fmt)) {
+ fmt = fmt.replace(
+ RegExp.$1,
+ RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
+ )
+ }
+ }
+ return fmt
+ }
+}
+
+/**
+ * 生成随机字符串
+ */
+export const toAnyString = () => {
+ const str: string = 'xxxxx-xxxxx-4xxxx-yxxxx-xxxxx'.replace(/[xy]/g, (c: string) => {
+ const r: number = (Math.random() * 16) | 0
+ const v: number = c === 'x' ? r : (r & 0x3) | 0x8
+ return v.toString()
+ })
+ return str
+}
+
+export const generateUUID = () => {
+ if (typeof crypto === 'object') {
+ if (typeof crypto.randomUUID === 'function') {
+ return crypto.randomUUID()
+ }
+ if (typeof crypto.getRandomValues === 'function' && typeof Uint8Array === 'function') {
+ const callback = (c: any) => {
+ const num = Number(c)
+ return (num ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (num / 4)))).toString(
+ 16
+ )
+ }
+ return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, callback)
+ }
+ }
+ let timestamp = new Date().getTime()
+ let performanceNow =
+ (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
+ let random = Math.random() * 16
+ if (timestamp > 0) {
+ random = (timestamp + random) % 16 | 0
+ timestamp = Math.floor(timestamp / 16)
+ } else {
+ random = (performanceNow + random) % 16 | 0
+ performanceNow = Math.floor(performanceNow / 16)
+ }
+ return (c === 'x' ? random : (random & 0x3) | 0x8).toString(16)
+ })
+}
+
+/**
+ * element plus 的文件大小 Formatter 实现
+ *
+ * @param row 行数据
+ * @param column 字段
+ * @param cellValue 字段值
+ */
+// @ts-ignore
+export const fileSizeFormatter = (row, column, cellValue) => {
+ const fileSize = cellValue
+ const unitArr = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
+ const srcSize = parseFloat(fileSize)
+ const index = Math.floor(Math.log(srcSize) / Math.log(1024))
+ const size = srcSize / Math.pow(1024, index)
+ const sizeStr = size.toFixed(2) //保留的小数位数
+ return sizeStr + ' ' + unitArr[index]
+}
+
+/**
+ * 将值复制到目标对象,且以目标对象属性为准,例:target: {a:1} source:{a:2,b:3} 结果为:{a:2}
+ * @param target 目标对象
+ * @param source 源对象
+ */
+export const copyValueToTarget = (target, source) => {
+ const newObj = Object.assign({}, target, source)
+ // 删除多余属性
+ Object.keys(newObj).forEach((key) => {
+ // 如果不是target中的属性则删除
+ if (Object.keys(target).indexOf(key) === -1) {
+ delete newObj[key]
+ }
+ })
+ // 更新目标对象值
+ Object.assign(target, newObj)
+}
+
+/**
+ * 将一个整数转换为分数保留两位小数
+ * @param num
+ */
+export const formatToFraction = (num: number | string | undefined): number => {
+ if (typeof num === 'undefined') return 0
+ const parsedNumber = typeof num === 'string' ? parseFloat(num) : num
+ return parseFloat((parsedNumber / 100).toFixed(2))
+}
+
+/**
+ * 将一个数转换为 1.00 这样
+ * 数据呈现的时候使用
+ *
+ * @param num 整数
+ */
+export const floatToFixed2 = (num: number | string | undefined): string => {
+ let str = '0.00'
+ if (typeof num === 'undefined') {
+ return str
+ }
+ const f = formatToFraction(num)
+ const decimalPart = f.toString().split('.')[1]
+ const len = decimalPart ? decimalPart.length : 0
+ switch (len) {
+ case 0:
+ str = f.toString() + '.00'
+ break
+ case 1:
+ str = f.toString() + '0'
+ break
+ }
+ return str
+}
+
+/**
+ * 将一个分数转换为整数
+ * @param num
+ */
+export const convertToInteger = (num: number | string | undefined): number => {
+ if (typeof num === 'undefined') return 0
+ const parsedNumber = typeof num === 'string' ? parseFloat(num) : num
+ // TODO 分转元后还有小数则四舍五入
+ return Math.round(parsedNumber * 100)
+}
+
+/**
+ * 元转分
+ */
+export const yuanToFen = (amount: string | number): number => {
+ return Math.round(Number(amount) * 100)
+}
+
+/**
+ * 分转元
+ */
+export const fenToYuan = (amount: string | number): number => {
+ return Number((Number(amount) / 100).toFixed(2))
+}
+
+// el-button 点击后强制失去焦点(颜色不恢复问题处理) 调用位置:绑定在el-button的点击事件
+export function clearButtonBlurHandle (e:any) {
+ if(!e || JSON.stringify(e) == '{}' || !e.target)return
+ let target = e.target;
+ if(target.nodeName == 'SPAN' || target.nodeName == 'I'){
+ target = e.target.parentNode;
+ }
+ target.blur();
+}
\ No newline at end of file
diff --git a/src/utils/is.ts b/src/utils/is.ts
new file mode 100644
index 0000000..c5b9c26
--- /dev/null
+++ b/src/utils/is.ts
@@ -0,0 +1,107 @@
+// copy to vben-admin
+
+const toString = Object.prototype.toString
+
+export const is = (val: unknown, type: string) => {
+ return toString.call(val) === `[object ${type}]`
+}
+
+export const isDef = (val?: T): val is T => {
+ return typeof val !== 'undefined'
+}
+
+export const isUnDef = (val?: T): val is T => {
+ return !isDef(val)
+}
+
+export const isObject = (val: any): val is Record => {
+ return val !== null && is(val, 'Object')
+}
+
+export const isEmpty = (val: T): val is T => {
+ if (isArray(val) || isString(val)) {
+ return val.length === 0
+ }
+
+ if (val instanceof Map || val instanceof Set) {
+ return val.size === 0
+ }
+
+ if (isObject(val)) {
+ return Object.keys(val).length === 0
+ }
+
+ return false
+}
+
+export const isDate = (val: unknown): val is Date => {
+ return is(val, 'Date')
+}
+
+export const isNull = (val: unknown): val is null => {
+ return val === null
+}
+
+export const isNullAndUnDef = (val: unknown): val is null | undefined => {
+ return isUnDef(val) && isNull(val)
+}
+
+export const isNullOrUnDef = (val: unknown): val is null | undefined => {
+ return isUnDef(val) || isNull(val)
+}
+
+export const isNumber = (val: unknown): val is number => {
+ return is(val, 'Number')
+}
+
+export const isPromise = (val: unknown): val is Promise => {
+ return is(val, 'Promise') && isObject(val) && isFunction(val.then) && isFunction(val.catch)
+}
+
+export const isString = (val: unknown): val is string => {
+ return is(val, 'String')
+}
+
+export const isFunction = (val: unknown): val is Function => {
+ return typeof val === 'function'
+}
+
+export const isBoolean = (val: unknown): val is boolean => {
+ return is(val, 'Boolean')
+}
+
+export const isRegExp = (val: unknown): val is RegExp => {
+ return is(val, 'RegExp')
+}
+
+export const isArray = (val: any): val is Array => {
+ return val && Array.isArray(val)
+}
+
+export const isWindow = (val: any): val is Window => {
+ return typeof window !== 'undefined' && is(val, 'Window')
+}
+
+export const isElement = (val: unknown): val is Element => {
+ return isObject(val) && !!val.tagName
+}
+
+export const isMap = (val: unknown): val is Map => {
+ return is(val, 'Map')
+}
+
+export const isServer = typeof window === 'undefined'
+
+export const isClient = !isServer
+
+export const isUrl = (path: string): boolean => {
+ const reg =
+ /(((^https?:(?:\/\/)?)(?:[-:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&%@.\w_]*)#?(?:[\w]*))?)$/
+ const urlPattern = /^(https?|ftp|file):\/\/[-\w]+(\.\w[-\w]*)+(:\d+)?(\/\S*)?$/
+
+ return urlPattern.test(path)
+}
+
+export const isDark = (): boolean => {
+ return window.matchMedia('(prefers-color-scheme: dark)').matches
+}
diff --git a/src/utils/jsencrypt.ts b/src/utils/jsencrypt.ts
new file mode 100644
index 0000000..374d5f6
--- /dev/null
+++ b/src/utils/jsencrypt.ts
@@ -0,0 +1,31 @@
+import { JSEncrypt } from 'jsencrypt'
+
+// 密钥对生成 http://web.chacuo.net/netrsakeypair
+
+const publicKey =
+ 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' +
+ 'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
+
+const privateKey =
+ 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY\n' +
+ '7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKN\n' +
+ 'PuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gA\n' +
+ 'kM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWow\n' +
+ 'cSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99Ecv\n' +
+ 'DQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthh\n' +
+ 'YhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3\n' +
+ 'UP8iWi1Qw0Y='
+
+// 加密
+export const encrypt = (txt: string) => {
+ const encryptor = new JSEncrypt()
+ encryptor.setPublicKey(publicKey) // 设置公钥
+ return encryptor.encrypt(txt) // 对数据进行加密
+}
+
+// 解密
+export const decrypt = (txt: string) => {
+ const encryptor = new JSEncrypt()
+ encryptor.setPrivateKey(privateKey) // 设置私钥
+ return encryptor.decrypt(txt) // 对数据进行解密
+}
diff --git a/src/utils/permission.ts b/src/utils/permission.ts
new file mode 100644
index 0000000..a63ee62
--- /dev/null
+++ b/src/utils/permission.ts
@@ -0,0 +1,45 @@
+import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
+
+const { t } = useI18n() // 国际化
+
+/**
+ * 字符权限校验
+ * @param {Array} value 校验值
+ * @returns {Boolean}
+ */
+export function checkPermi(value: string[]) {
+ if (value && value instanceof Array && value.length > 0) {
+ const { wsCache } = useCache()
+ const permissionDatas = value
+ const all_permission = '*:*:*'
+ const permissions = wsCache.get(CACHE_KEY.USER).permissions
+ const hasPermission = permissions.some((permission) => {
+ return all_permission === permission || permissionDatas.includes(permission)
+ })
+ return !!hasPermission
+ } else {
+ console.error(t('permission.hasPermission'))
+ return false
+ }
+}
+
+/**
+ * 角色权限校验
+ * @param {string[]} value 校验值
+ * @returns {Boolean}
+ */
+export function checkRole(value: string[]) {
+ if (value && value instanceof Array && value.length > 0) {
+ const { wsCache } = useCache()
+ const permissionRoles = value
+ const super_admin = 'admin'
+ const roles = wsCache.get(CACHE_KEY.USER).roles
+ const hasRole = roles.some((role) => {
+ return super_admin === role || permissionRoles.includes(role)
+ })
+ return !!hasRole
+ } else {
+ console.error(t('permission.hasRole'))
+ return false
+ }
+}
diff --git a/src/utils/propTypes.ts b/src/utils/propTypes.ts
new file mode 100644
index 0000000..fb8f84e
--- /dev/null
+++ b/src/utils/propTypes.ts
@@ -0,0 +1,28 @@
+import { createTypes, VueTypesInterface, VueTypeValidableDef } from 'vue-types'
+import { CSSProperties } from 'vue'
+
+// 自定义扩展vue-types
+type PropTypes = VueTypesInterface & {
+ readonly style: VueTypeValidableDef
+}
+
+const propTypes = createTypes({
+ func: undefined,
+ bool: undefined,
+ string: undefined,
+ number: undefined,
+ object: undefined,
+ integer: undefined
+}) as PropTypes
+
+// 需要自定义扩展的类型
+// see: https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#the-extend-method
+// propTypes.extend([
+// {
+// name: 'style',
+// getter: true,
+// type: [String, Object],
+// default: undefined
+// }
+// ])
+export { propTypes }
diff --git a/src/utils/routerHelper.ts b/src/utils/routerHelper.ts
new file mode 100644
index 0000000..a682565
--- /dev/null
+++ b/src/utils/routerHelper.ts
@@ -0,0 +1,238 @@
+import type { RouteLocationNormalized, Router, RouteRecordNormalized } from 'vue-router'
+import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'
+import { isUrl } from '@/utils/is'
+import { cloneDeep, omit } from 'lodash-es'
+
+const modules = import.meta.glob('../views/**/*.{vue,tsx}')
+/**
+ * 注册一个异步组件
+ * @param componentPath 例:/bpm/oa/leave/detail
+ */
+export const registerComponent = (componentPath: string) => {
+ for (const item in modules) {
+ if (item.includes(componentPath)) {
+ // 使用异步组件的方式来动态加载组件
+ // @ts-ignore
+ return defineAsyncComponent(modules[item])
+ }
+ }
+}
+/* Layout */
+export const Layout = () => import('@/layout/Layout.vue')
+
+export const getParentLayout = () => {
+ return () =>
+ new Promise((resolve) => {
+ resolve({
+ name: 'ParentLayout'
+ })
+ })
+}
+
+// 按照路由中meta下的rank等级升序来排序路由
+export const ascending = (arr: any[]) => {
+ arr.forEach((v) => {
+ if (v?.meta?.rank === null) v.meta.rank = undefined
+ if (v?.meta?.rank === 0) {
+ if (v.name !== 'home' && v.path !== '/') {
+ console.warn('rank only the home page can be 0')
+ }
+ }
+ })
+ return arr.sort((a: { meta: { rank: number } }, b: { meta: { rank: number } }) => {
+ return a?.meta?.rank - b?.meta?.rank
+ })
+}
+
+export const getRawRoute = (route: RouteLocationNormalized): RouteLocationNormalized => {
+ if (!route) return route
+ const { matched, ...opt } = route
+ return {
+ ...opt,
+ matched: (matched
+ ? matched.map((item) => ({
+ meta: item.meta,
+ name: item.name,
+ path: item.path
+ }))
+ : undefined) as RouteRecordNormalized[]
+ }
+}
+
+// 后端控制路由生成
+export const generateRoute = (routes: AppCustomRouteRecordRaw[]): AppRouteRecordRaw[] => {
+ const res: AppRouteRecordRaw[] = []
+ const modulesRoutesKeys = Object.keys(modules)
+ for (const route of routes) {
+ const meta = {
+ title: route.name,
+ icon: route.icon,
+ hidden: !route.visible,
+ noCache: !route.keepAlive,
+ alwaysShow:
+ route.children &&
+ route.children.length === 1 &&
+ (route.alwaysShow !== undefined ? route.alwaysShow : true)
+ }
+ // 路由地址转首字母大写驼峰,作为路由名称,适配keepAlive
+ let data: AppRouteRecordRaw = {
+ path: route.path,
+ name:
+ route.componentName && route.componentName.length > 0
+ ? route.componentName
+ : toCamelCase(route.path, true),
+ redirect: route.redirect,
+ meta: meta
+ }
+ //处理顶级非目录路由
+ if (!route.children && route.parentId == 0 && route.component) {
+ data.component = Layout
+ data.meta = {}
+ data.name = toCamelCase(route.path, true) + 'Parent'
+ data.redirect = ''
+ meta.alwaysShow = true
+ const childrenData: AppRouteRecordRaw = {
+ path: '',
+ name: toCamelCase(route.path, true),
+ redirect: route.redirect,
+ meta: meta
+ }
+ const index = route?.component
+ ? modulesRoutesKeys.findIndex((ev) => ev.includes(route.component))
+ : modulesRoutesKeys.findIndex((ev) => ev.includes(route.path))
+ childrenData.component = modules[modulesRoutesKeys[index]]
+ data.children = [childrenData]
+ } else {
+ // 目录
+ if (route.children) {
+ data.component = Layout
+ data.redirect = getRedirect(route.path, route.children)
+ // 外链
+ } else if (isUrl(route.path)) {
+ data = {
+ path: '/external-link',
+ component: Layout,
+ meta: {
+ name: route.name
+ },
+ children: [data]
+ } as AppRouteRecordRaw
+ // 菜单
+ } else {
+ // 对后端传component组件路径和不传做兼容(如果后端传component组件路径,那么path可以随便写,如果不传,component组件路径会根path保持一致)
+ const index = route?.component
+ ? modulesRoutesKeys.findIndex((ev) => ev.includes(route.component))
+ : modulesRoutesKeys.findIndex((ev) => ev.includes(route.path))
+ data.component = modules[modulesRoutesKeys[index]]
+ }
+ if (route.children) {
+ data.children = generateRoute(route.children)
+ }
+ }
+ res.push(data as AppRouteRecordRaw)
+ }
+ return res
+}
+export const getRedirect = (parentPath: string, children: AppCustomRouteRecordRaw[]) => {
+ if (!children || children.length == 0) {
+ return parentPath
+ }
+ const path = generateRoutePath(parentPath, children[0].path)
+ // 递归子节点
+ if (children[0].children) return getRedirect(path, children[0].children)
+}
+const generateRoutePath = (parentPath: string, path: string) => {
+ if (parentPath.endsWith('/')) {
+ parentPath = parentPath.slice(0, -1) // 移除默认的 /
+ }
+ if (!path.startsWith('/')) {
+ path = '/' + path
+ }
+ return parentPath + path
+}
+export const pathResolve = (parentPath: string, path: string) => {
+ if (isUrl(path)) return path
+ const childPath = path.startsWith('/') || !path ? path : `/${path}`
+ return `${parentPath}${childPath}`.replace(/\/\//g, '/')
+}
+
+// 路由降级
+export const flatMultiLevelRoutes = (routes: AppRouteRecordRaw[]) => {
+ const modules: AppRouteRecordRaw[] = cloneDeep(routes)
+ for (let index = 0; index < modules.length; index++) {
+ const route = modules[index]
+ if (!isMultipleRoute(route)) {
+ continue
+ }
+ promoteRouteLevel(route)
+ }
+ return modules
+}
+
+// 层级是否大于2
+const isMultipleRoute = (route: AppRouteRecordRaw) => {
+ if (!route || !Reflect.has(route, 'children') || !route.children?.length) {
+ return false
+ }
+
+ const children = route.children
+
+ let flag = false
+ for (let index = 0; index < children.length; index++) {
+ const child = children[index]
+ if (child.children?.length) {
+ flag = true
+ break
+ }
+ }
+ return flag
+}
+
+// 生成二级路由
+const promoteRouteLevel = (route: AppRouteRecordRaw) => {
+ let router: Router | null = createRouter({
+ routes: [route as RouteRecordRaw],
+ history: createWebHashHistory()
+ })
+
+ const routes = router.getRoutes()
+ addToChildren(routes, route.children || [], route)
+ router = null
+
+ route.children = route.children?.map((item) => omit(item, 'children'))
+}
+
+// 添加所有子菜单
+const addToChildren = (
+ routes: RouteRecordNormalized[],
+ children: AppRouteRecordRaw[],
+ routeModule: AppRouteRecordRaw
+) => {
+ for (let index = 0; index < children.length; index++) {
+ const child = children[index]
+ const route = routes.find((item) => item.name === child.name)
+ if (!route) {
+ continue
+ }
+ routeModule.children = routeModule.children || []
+ if (!routeModule.children.find((item) => item.name === route.name)) {
+ routeModule.children?.push(route as unknown as AppRouteRecordRaw)
+ }
+ if (child.children?.length) {
+ addToChildren(routes, child.children, routeModule)
+ }
+ }
+}
+const toCamelCase = (str: string, upperCaseFirst: boolean) => {
+ str = (str || '')
+ .replace(/-(.)/g, function (group1: string) {
+ return group1.toUpperCase()
+ })
+ .replaceAll('-', '')
+
+ if (upperCaseFirst && str) {
+ str = str.charAt(0).toUpperCase() + str.slice(1)
+ }
+
+ return str
+}
diff --git a/src/utils/systemParam.ts b/src/utils/systemParam.ts
new file mode 100644
index 0000000..9cb51bf
--- /dev/null
+++ b/src/utils/systemParam.ts
@@ -0,0 +1,98 @@
+const baseUrl = ref(import.meta.env.VITE_BASE_URL)
+const uploadUrl = ref(import.meta.env.VITE_UPLOAD_URL)
+const interfaceUrl = ref(import.meta.env.VITE_INTERFACE_URL)
+const jmreportBaseUrl = ref(import.meta.env.VITE_JMREPORT_BASE_URL)
+const reportUrl = ref(import.meta.env.VITE_REPORT_URL)
+const tenant = ref(import.meta.env.VITE_TENANT)
+const systermUpdateAlert = ref(import.meta.env.VITE_SYSTERM_UPDATE_ALERT)
+const systermUpdateUrl = ref(import.meta.env.VITE_SYSTERM_UPDATE_URL)
+const needCode = ref(import.meta.env.VITE_NEED_CODE)
+const pdaUrl = ref(import.meta.env.VITE_PDA_URL)
+
+const mode = ref(import.meta.env.MODE)
+// 获取baseUrl
+export const getBaseUrl = () => {
+ if(mode.value === 'prod') {
+ return systemConfig.baseUrl
+ } else {
+ return baseUrl.value
+ }
+}
+// 获取uploadUrl
+export const getUploadUrl = () => {
+ if(mode.value === 'prod') {
+ return systemConfig.uploadUrl
+ } else {
+ return uploadUrl.value
+ }
+}
+// 获取interfaceUrl
+export const getInterfaceUrl = () => {
+ if(mode.value === 'prod') {
+ return systemConfig.interfaceUrl
+ } else {
+ return interfaceUrl.value
+ }
+}
+// 获取jmreportBaseUrl
+export const getJmreportBaseUrl = () => {
+ if(mode.value === 'prod') {
+ return systemConfig.jmreportBaseUrl
+ } else {
+ return jmreportBaseUrl.value
+ }
+}
+// 获取reportUrl
+export const getReportUrl = () => {
+ if(mode.value === 'prod') {
+ return systemConfig.reportUrl
+ } else {
+ return reportUrl.value
+ }
+}
+// 获取tenant
+export const getTenant = () => {
+ if(mode.value === 'prod') {
+ return systemConfig.tenant
+ } else {
+ return tenant.value
+ }
+}
+
+
+// 获取系统升级是否弹出alert
+export const getSystermUpdateAlert = () => {
+ if(mode.value === 'prod') {
+ return systemConfig.systermUpdateAlert
+ } else {
+ return systermUpdateAlert.value
+ }
+}
+
+// 获取系统升级是否弹出alert地址
+export const getSystermUpdateUrl = () => {
+ if(mode.value === 'prod') {
+ return systemConfig.systermUpdateUrl
+ } else {
+ return systermUpdateUrl.value
+ }
+}
+//是否需要验证码
+export const getNeedCode = () => {
+ if(mode.value === 'prod') {
+ return systemConfig.needCode
+ } else {
+ return needCode.value
+ }
+}
+
+//是否需要PDA下载链接
+export const getPDAUrl = () => {
+ if(mode.value === 'prod') {
+ return systemConfig.pdaUrl
+ } else {
+ return pdaUrl.value
+ }
+}
+
+
diff --git a/src/utils/tree.ts b/src/utils/tree.ts
new file mode 100644
index 0000000..6f3f9bb
--- /dev/null
+++ b/src/utils/tree.ts
@@ -0,0 +1,441 @@
+interface TreeHelperConfig {
+ id: string
+ children: string
+ pid: string
+}
+
+const DEFAULT_CONFIG: TreeHelperConfig = {
+ id: 'id',
+ children: 'children',
+ pid: 'pid'
+}
+export const defaultProps = {
+ children: 'children',
+ label: 'name',
+ value: 'id',
+ isLeaf: 'leaf'
+}
+
+const getConfig = (config: Partial) => Object.assign({}, DEFAULT_CONFIG, config)
+
+// tree from list
+export const listToTree = (list: any[], config: Partial = {}): T[] => {
+ const conf = getConfig(config) as TreeHelperConfig
+ const nodeMap = new Map()
+ const result: T[] = []
+ const { id, children, pid } = conf
+
+ for (const node of list) {
+ node[children] = node[children] || []
+ nodeMap.set(node[id], node)
+ }
+ for (const node of list) {
+ const parent = nodeMap.get(node[pid])
+ ;(parent ? parent.children : result).push(node)
+ }
+ return result
+}
+
+export const treeToList = (tree: any, config: Partial = {}): T => {
+ config = getConfig(config)
+ const { children } = config
+ const result: any = [...tree]
+ for (let i = 0; i < result.length; i++) {
+ if (!result[i][children!]) continue
+ result.splice(i + 1, 0, ...result[i][children!])
+ }
+ return result
+}
+
+export const findNode = (
+ tree: any,
+ func: Fn,
+ config: Partial = {}
+): T | null => {
+ config = getConfig(config)
+ const { children } = config
+ const list = [...tree]
+ for (const node of list) {
+ if (func(node)) return node
+ node[children!] && list.push(...node[children!])
+ }
+ return null
+}
+
+export const findNodeAll = (
+ tree: any,
+ func: Fn,
+ config: Partial = {}
+): T[] => {
+ config = getConfig(config)
+ const { children } = config
+ const list = [...tree]
+ const result: T[] = []
+ for (const node of list) {
+ func(node) && result.push(node)
+ node[children!] && list.push(...node[children!])
+ }
+ return result
+}
+
+export const findPath = (
+ tree: any,
+ func: Fn,
+ config: Partial = {}
+): T | T[] | null => {
+ config = getConfig(config)
+ const path: T[] = []
+ const list = [...tree]
+ const visitedSet = new Set()
+ const { children } = config
+ while (list.length) {
+ const node = list[0]
+ if (visitedSet.has(node)) {
+ path.pop()
+ list.shift()
+ } else {
+ visitedSet.add(node)
+ node[children!] && list.unshift(...node[children!])
+ path.push(node)
+ if (func(node)) {
+ return path
+ }
+ }
+ }
+ return null
+}
+
+export const findPathAll = (tree: any, func: Fn, config: Partial = {}) => {
+ config = getConfig(config)
+ const path: any[] = []
+ const list = [...tree]
+ const result: any[] = []
+ const visitedSet = new Set(),
+ { children } = config
+ while (list.length) {
+ const node = list[0]
+ if (visitedSet.has(node)) {
+ path.pop()
+ list.shift()
+ } else {
+ visitedSet.add(node)
+ node[children!] && list.unshift(...node[children!])
+ path.push(node)
+ func(node) && result.push([...path])
+ }
+ }
+ return result
+}
+
+export const filter = (
+ tree: T[],
+ func: (n: T) => boolean,
+ config: Partial = {}
+): T[] => {
+ config = getConfig(config)
+ const children = config.children as string
+
+ function listFilter(list: T[]) {
+ return list
+ .map((node: any) => ({ ...node }))
+ .filter((node) => {
+ node[children] = node[children] && listFilter(node[children])
+ return func(node) || (node[children] && node[children].length)
+ })
+ }
+
+ return listFilter(tree)
+}
+
+export const forEach = (
+ tree: T[],
+ func: (n: T) => any,
+ config: Partial = {}
+): void => {
+ config = getConfig(config)
+ const list: any[] = [...tree]
+ const { children } = config
+ for (let i = 0; i < list.length; i++) {
+ // func 返回true就终止遍历,避免大量节点场景下无意义循环,引起浏览器卡顿
+ if (func(list[i])) {
+ return
+ }
+ children && list[i][children] && list.splice(i + 1, 0, ...list[i][children])
+ }
+}
+
+/**
+ * @description: Extract tree specified structure
+ */
+export const treeMap = (
+ treeData: T[],
+ opt: { children?: string; conversion: Fn }
+): T[] => {
+ return treeData.map((item) => treeMapEach(item, opt))
+}
+
+/**
+ * @description: Extract tree specified structure
+ */
+export const treeMapEach = (
+ data: any,
+ { children = 'children', conversion }: { children?: string; conversion: Fn }
+) => {
+ const haveChildren = Array.isArray(data[children]) && data[children].length > 0
+ const conversionData = conversion(data) || {}
+ if (haveChildren) {
+ return {
+ ...conversionData,
+ [children]: data[children].map((i: number) =>
+ treeMapEach(i, {
+ children,
+ conversion
+ })
+ )
+ }
+ } else {
+ return {
+ ...conversionData
+ }
+ }
+}
+
+/**
+ * 递归遍历树结构
+ * @param treeDatas 树
+ * @param callBack 回调
+ * @param parentNode 父节点
+ */
+export const eachTree = (treeDatas: any[], callBack: Fn, parentNode = {}) => {
+ treeDatas.forEach((element) => {
+ const newNode = callBack(element, parentNode) || element
+ if (element.children) {
+ eachTree(element.children, callBack, newNode)
+ }
+ })
+}
+
+/**
+ * 构造树型结构数据
+ * @param {*} data 数据源
+ * @param {*} id id字段 默认 'id'
+ * @param {*} parentId 父节点字段 默认 'parentId'
+ * @param {*} children 孩子节点字段 默认 'children'
+ */
+export const handleTree = (data: any[], id?: string, parentId?: string, children?: string) => {
+ if (!Array.isArray(data)) {
+ console.warn('data must be an array')
+ return []
+ }
+ const config = {
+ id: id || 'id',
+ parentId: parentId || 'parentId',
+ childrenList: children || 'children'
+ }
+
+ const childrenListMap = {}
+ const nodeIds = {}
+ const tree: any[] = []
+
+ for (const d of data) {
+ const parentId = d[config.parentId]
+ if (childrenListMap[parentId] == null) {
+ childrenListMap[parentId] = []
+ }
+ nodeIds[d[config.id]] = d
+ childrenListMap[parentId].push(d)
+ }
+
+ for (const d of data) {
+ const parentId = d[config.parentId]
+ if (nodeIds[parentId] == null) {
+ tree.push(d)
+ }
+ }
+
+ for (const t of tree) {
+ adaptToChildrenList(t)
+ }
+
+ function adaptToChildrenList(o) {
+ if (childrenListMap[o[config.id]] !== null) {
+ o[config.childrenList] = childrenListMap[o[config.id]]
+ }
+ if (o[config.childrenList]) {
+ for (const c of o[config.childrenList]) {
+ adaptToChildrenList(c)
+ }
+ }
+ }
+
+ return tree
+}
+
+/**
+ * 构造树型结构数据
+ * @param {*} data 数据源
+ * @param {*} id id字段 默认 'id'
+ * @param {*} parentId 父节点字段 默认 'parentId'
+ * @param {*} children 孩子节点字段 默认 'children'
+ * @param {*} rootId 根Id 默认 0
+ */
+// @ts-ignore
+export const handleTree2 = (data, id, parentId, children, rootId) => {
+ id = id || 'id'
+ parentId = parentId || 'parentId'
+ // children = children || 'children'
+ rootId =
+ rootId ||
+ Math.min(
+ ...data.map((item) => {
+ return item[parentId]
+ })
+ ) ||
+ 0
+ // 对源数据深度克隆
+ const cloneData = JSON.parse(JSON.stringify(data))
+ // 循环所有项
+ const treeData = cloneData.filter((father) => {
+ const branchArr = cloneData.filter((child) => {
+ // 返回每一项的子级数组
+ return father[id] === child[parentId]
+ })
+ branchArr.length > 0 ? (father.children = branchArr) : ''
+ // 返回第一层
+ return father[parentId] === rootId
+ })
+ return treeData !== '' ? treeData : data
+}
+
+/**
+ * 校验选中的节点,是否为指定 level
+ *
+ * @param tree 要操作的树结构数据
+ * @param nodeId 需要判断在什么层级的数据
+ * @param level 检查的级别, 默认检查到二级
+ * @return true 是;false 否
+ */
+export const checkSelectedNode = (tree: any[], nodeId: any, level = 2): boolean => {
+ if (typeof tree === 'undefined' || !Array.isArray(tree) || tree.length === 0) {
+ console.warn('tree must be an array')
+ return false
+ }
+
+ // 校验是否是一级节点
+ if (tree.some((item) => item.id === nodeId)) {
+ return false
+ }
+
+ // 递归计数
+ let count = 1
+
+ // 深层次校验
+ function performAThoroughValidation(arr: any[]): boolean {
+ count += 1
+ for (const item of arr) {
+ if (item.id === nodeId) {
+ return true
+ } else if (typeof item.children !== 'undefined' && item.children.length !== 0) {
+ if (performAThoroughValidation(item.children)) {
+ return true
+ }
+ }
+ }
+ return false
+ }
+
+ for (const item of tree) {
+ count = 1
+ if (performAThoroughValidation(item.children)) {
+ // 找到后对比是否是期望的层级
+ if (count >= level) {
+ return true
+ }
+ }
+ }
+
+ return false
+}
+
+/**
+ * 获取节点的完整结构
+ * @param tree 树数据
+ * @param nodeId 节点 id
+ */
+export const treeToString = (tree: any[], nodeId) => {
+ if (typeof tree === 'undefined' || !Array.isArray(tree) || tree.length === 0) {
+ console.warn('tree must be an array')
+ return ''
+ }
+ // 校验是否是一级节点
+ const node = tree.find((item) => item.id === nodeId)
+ if (typeof node !== 'undefined') {
+ return node.name
+ }
+ let str = ''
+
+ function performAThoroughValidation(arr) {
+ for (const item of arr) {
+ if (item.id === nodeId) {
+ str += `/${item.name}`
+ return true
+ } else if (typeof item.children !== 'undefined' && item.children.length !== 0) {
+ str += `/${item.name}`
+ if (performAThoroughValidation(item.children)) {
+ return true
+ }
+ }
+ }
+ return false
+ }
+
+ for (const item of tree) {
+ str = `${item.name}`
+ if (performAThoroughValidation(item.children)) {
+ break
+ }
+ }
+ return str
+}
+
+
+
+export type FormValueType = string | number | string[] | number[] | boolean | undefined | null
+
+interface Recordable {
+ [key: string]: T;
+}
+
+export type ComponentOptions = {
+ label?: string;
+ value?: FormValueType;
+ disabled?: boolean;
+ key?: string | number;
+ children?: ComponentOptions[];
+ options?: ComponentOptions[];
+} & Recordable;
+
+
+export const handleTreeToComponentOptions = (data: any[], id?: string, parentId?: string, children?: string)=> {
+ const deptTree = handleTree(data, id, parentId, children)
+ return convertFieldToOptions(deptTree)
+}
+
+function convertFieldToOptions(deptTree: any[]): ComponentOptions[] {
+ return deptTree.map((item) => {
+ // 构建当前节点的基本结构
+ const option: ComponentOptions = {
+ label: item.name,
+ value: item.id,
+ key: item.id,
+ disabled: false, // 这里假设所有项默认都是启用的
+ };
+ // 如果存在子部门,递归调用转换函数
+ if (item.children && item.children.length > 0) {
+ const childrenOptions = convertFieldToOptions(item.children);
+ option.children = childrenOptions;
+ option.options = childrenOptions; // 确保 options 也被赋值
+ }
+ return option;
+ });
+}
diff --git a/src/utils/tsxHelper.ts b/src/utils/tsxHelper.ts
new file mode 100644
index 0000000..6087fa3
--- /dev/null
+++ b/src/utils/tsxHelper.ts
@@ -0,0 +1,16 @@
+import { Slots } from 'vue'
+import { isFunction } from '@/utils/is'
+
+export const getSlot = (slots: Slots, slot = 'default', data?: Recordable) => {
+ // Reflect.has 判断一个对象是否存在某个属性
+ if (!slots || !Reflect.has(slots, slot)) {
+ return null
+ }
+ if (!isFunction(slots[slot])) {
+ console.error(`${slot} is not a function!`)
+ return null
+ }
+ const slotFn = slots[slot]
+ if (!slotFn) return null
+ return slotFn(data)
+}
diff --git a/src/utils/validator.ts b/src/utils/validator.ts
new file mode 100644
index 0000000..83e0312
--- /dev/null
+++ b/src/utils/validator.ts
@@ -0,0 +1,852 @@
+//校验学校编码 只能为数字
+export function validateCode(rule, value, callback) {
+ if (!value) {
+ return callback(new Error('学校编码不能为空'))
+ } else {
+ const codeReg = /^[0-9]+$/
+ const codeMax = /^\d{0,5}$/
+ if (codeReg.test(value)) {
+ if (codeMax.test(value)) {
+ callback()
+ } else {
+ callback(new Error('学校编码不能大于5位'))
+ }
+
+ } else {
+ callback(new Error('请输入正确的学校编码,只能是数字'))
+ }
+ }
+}
+
+//校验邮箱
+export function validateEmail(rule, value, callback) {
+ if (value) {
+ const mailReg = /^([a-zA-Z0-9_-]+.)+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+.)+/
+ if (mailReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入正确的邮箱格式'))
+ }
+ } else {
+ callback()
+ }
+}
+
+//校验英文
+export function validateEng(rule, value, callback) {
+ if (value) {
+ const mailReg = /^[A-Za-z\-\&\(\)\Ⅰ\Ⅱ\Ⅲ\Ⅳ\Ⅴ\Ⅵ\Ⅶ\Ⅷ\Ⅸ\Ⅹ\s]+$/;
+ if (mailReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入正确的英文名字'))
+ }
+ } else {
+ callback()
+ }
+}
+
+//校验姓名拼音
+export function validateEngName(rule, value, callback) {
+ if (value) {
+ const EngNameReg = /^[A-Za-z \(\)\s]+$/
+ if (EngNameReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入正确的姓名拼音'))
+ }
+ } else {
+ callback()
+ }
+}
+
+//校验手机号码
+export function validateHanset(rule, value, callback) {
+ if (value) {
+ // const regs =/^[1][3,4,5,6,7,8,9][0-9]{9}$/;
+ // const regs = /^1[3|4|5|7|8][0-9]\d{8}$/
+ const regs = /^1[3-9]\d{9}$/
+ if (regs.test(value)) {
+ callback()
+ } else {
+ return callback(new Error('请输入正确的手机号'))
+ }
+ } else {
+ callback()
+ }
+}
+
+//校验座机电话
+export function validatePhone(rule, value, callback) {
+ if (value) {
+ //const reg = /^1[3|4|5|7|8][0-9]\d{8}$/
+ // const regs = /^([0-9]{3,4}-)?[0-9]{7,8}$/;
+ const regs = /^((0\d{2,3}-\d{7,8}))$/;
+ if (regs.test(value)) {
+ callback()
+ } else {
+ return callback(new Error('请输入正确的座机号'))
+ }
+ } else {
+ callback()
+ }
+}
+
+//校验家庭电话 手机或者座机
+export function validateFamilyPhone(rule, value, callback) {
+ if (value) {
+ const isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/;
+ // const isMob = /^((\+?86)|(\+86))?(13[0123456789][0-9]{8}|15[0123456789][0-9]{8}|17[0123456789][0-9]{8}|18[0123456789][0-9]{8}|147[0-9]{8}|1349[0-9]{7})$/;
+ const isMob = /^1[3-9]\d{9}$/
+ if (isPhone.test(value) || isMob.test(value)) {
+ callback()
+ } else {
+ return callback(new Error('请输入正确的手机或者座机电话'))
+ }
+ } else {
+ callback()
+ }
+}
+
+// 校验只能为中文
+export function validateChinese(rule, value, callback) {
+ if (value) {
+ const chineseReg = /^[\u4E00-\u9FA5]+$/
+ if (chineseReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入简介,只能为中文'))
+ }
+ } else {
+ callback()
+ }
+}
+
+// 校验名称既能为中文也可以为英文
+export function validateName(rule, value, callback) {
+ if (value) {
+ const chineseReg = /^[\u4E00-\u9FA5]+$/
+ const engLish = /^[A-Za-z]+$/
+ if (chineseReg.test(value) || engLish.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入正确的中文或者英文名称'))
+ }
+ } else {
+ callback()
+ }
+}
+
+// 校验负责人既能为中文也可以为英文
+export function validateChargeperson(rule, value, callback) {
+ if (value) {
+ const chineseReg = /^[\u4E00-\u9FA5]+$/
+ const engLish = /^[A-Za-z]+$/
+ if (chineseReg.test(value) || engLish.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入正确的负责人(中英文都可以)'))
+ }
+ } else {
+ callback()
+ }
+}
+
+//校验学校名称不能为空
+export function validateXXMC(rule, value, callback) {
+ if (!value) {
+ return callback(new Error('案例名称不能为空'))
+ } else {
+ const chineseReg = /^[\u4E00-\u9FA5]+$/
+ if (chineseReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入正确的案例名称,只能是汉字'))
+ }
+ }
+}
+
+//校验中英文数字和下划线都可以
+export function validateZYS(rule, value, callback) {
+ if (value) {
+ //const postReg =/^[\u4e00-\u9fa5_a-zA-Z0-9_]{4,10}+$/
+ const Reg = /^[\u4e00-\u9fa5a-zA-Z0-9]+$/
+ if (Reg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入正确的名称'))
+ }
+ } else {
+ callback()
+ }
+}
+
+// 校验邮政编码
+export function validatePostCode(rule, value, callback) {
+ if (value) {
+ const postReg = /^[1-9]\d{5}$/
+ if (postReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入正确的邮政编码'))
+ }
+ } else {
+ callback()
+ }
+}
+
+// 数字
+export function validateNum(rule, value, callback) {
+ if (value) {
+ const numReg = /^[\d]+$/
+ if (numReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入数字'))
+ }
+ } else {
+ callback()
+ }
+}
+
+//数字和小数点
+export function validateNumDot(rule, value, callback) {
+ if (value) {
+ const numReg = /^\d+$|^\d+\.\d+$/g
+ if (numReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入数字或小数点'))
+ }
+ } else {
+ callback()
+ }
+}
+
+// 组织机构代码
+export function validateOrganization(rule, value, callback) {
+ if (value) {
+ const orgReg = /^[A-Za-z0-9]\w{14}$/g
+ if (orgReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入组织机构代码'))
+ }
+ } else {
+ callback()
+ }
+
+}
+
+// 传真
+export function validateFax(rule, value, callback) {
+ if (value) {
+ const faxReg = /^(\d{3,4}-)?\d{7,8}$/
+ if (faxReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入正确的传真'))
+ }
+ } else {
+ callback()
+ }
+}
+
+// 主页地址
+export function validateHome(rule, value, callback) {
+ if (value) {
+ const homeReg = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\*\+,;=.]+$/
+ if (homeReg.test(value)) {
+ callback()
+ } else {
+ return callback(new Error('请输入正确的主页地址'))
+ }
+ } else {
+ callback()
+ }
+}
+
+// 学分 小数,且保留最多三位小数
+export function validateXf(rule, value, callback) {
+ if (!value) {
+ return callback(new Error('学分不能为空'))
+ } else {
+ const numReg = /^[0-9]+\.[0-9]{0,3}$/
+ if (numReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入小数,且小数点后最多三位'))
+ }
+ }
+}
+
+// 数字格式 小数点后一位
+export function validateOneNum(rule, value, callback) {
+ if (value) {
+ const numReg = /^\d+(\.\d+)?$/
+ const numOneReg = /^\d*\.{0,1}\d{0,1}$/
+ if (numReg.test(value)) {
+ if (numOneReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('小数点后最多1位'))
+ }
+ } else {
+ callback(new Error('请输入数字'))
+ }
+ }
+ callback()
+}
+
+// 数字格式 小数点后两位
+export function validateTwoNum(rule, value, callback) {
+ if (value) {
+ const numReg = /^\d+(\.\d+)?$/
+ const numTwoReg = /^\d*\.{0,2}\d{0,2}$/
+ if (numReg.test(value)) {
+ if (numTwoReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('小数点后最多2位'))
+ }
+ } else {
+ callback(new Error('请输入数字'))
+ }
+ }
+ callback()
+}
+// 数字格式 小数点后六位
+export function validateSixNum(rule, value, callback) {
+ if (value) {
+ const numReg = /^\d+(\.\d+)?$/
+ const numTwoReg = /^\d*\.{0,6}\d{0,6}$/
+ if (numReg.test(value)) {
+ if (numTwoReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('小数点后最多6位'))
+ }
+ } else {
+ callback(new Error('请输入数字'))
+ }
+ }
+ callback()
+}
+// 小数点前位数不得大于6位
+export function validateNumSix(rule, value, callback) {
+ if (value) {
+ if (value.split('.')[0].length > 6) {// 校验value值不能大于10000
+ callback(new Error('版本号小数点前位数不得大于6'))
+ }else{
+ callback()
+ }
+ }
+
+ callback()
+}
+
+// 数字格式 小数点后两位 小数点前保留五位
+export function validateTwoNumThree(rule, value, callback) {
+ if (value) {
+ if (Number(value) > 10000) {// 校验value值不能大于10000
+ callback(new Error('数值过大,请重新输入'))
+ }
+
+ const numReg = /^\d+(\.\d+)?$/
+ const numTwoReg = /^\d*\.{0,2}\d{0,2}$/
+ if (numReg.test(value)) {
+ if (numTwoReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('小数点后最多2位'))
+ }
+ } else {
+ callback(new Error('请输入数字'))
+ }
+ }
+
+ callback()
+}
+// 数字格式 数字不可以大于5
+export function validateMaxNumber5(rule, value, callback) {
+ if (parseInt(value) <= 5) {
+ callback()
+ } else {
+ callback(new Error('不能大于5'))
+ }
+
+}
+// 数字格式 小数点后三位
+export function validateThreeNum(rule, value, callback) {
+ if (value) {
+ const numReg = /^\d+(\.\d+)?$/
+ const numTwoReg = /^\d*\.{0,3}\d{0,3}$/
+ if (numReg.test(value)) {
+ if (numTwoReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('小数点后最多3位'))
+ }
+ } else {
+ callback(new Error('请输入数字'))
+ }
+ }
+ callback()
+ // if (!value) {
+ // return callback(new Error('字段不能为空'))
+ // } else {
+ // const numReg = /^\d+(\.\d+)?$/
+ // const numTwoReg = /^\d*\.{0,3}\d{0,3}$/
+ // if (numReg.test(value)) {
+ // if (numTwoReg.test(value)) {
+ // callback()
+ // } else {
+ // callback(new Error('小数点后最多3位'))
+ // }
+ // } else {
+ // callback(new Error('请输入数字'))
+ // }
+ // }
+}
+
+//校验年份必须为4位数字
+export function validateNF(rule, value, callback) {
+ if (value) {
+ const NFReg = /^\d{4}$/
+ if (NFReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入4位数字'))
+ }
+ } else {
+ callback()
+ }
+}
+
+//校验年份必须为4位数字
+export function validateXQ(rule, value, callback) {
+ if (value) {
+ const NFReg = /^\d{5}$/
+ if (NFReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入5位数字'))
+ }
+ } else {
+ callback()
+ }
+}
+
+//校验分数最大值
+export function validateMaxNumber(rule, value, callback) {
+ if (parseInt(value) <= 200) {
+ callback()
+ } else {
+ callback(new Error('分数不能大于200'))
+ }
+
+}
+
+//校验正整数
+export function validateInteger(rule, value, callback) {
+ if (value) {
+ const integerReg = /^[+]{0,1}(\d+)$/
+ if (integerReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入正确的整数'))
+ }
+ } else {
+ callback()
+ }
+}
+
+//校验整数
+export function validateroundNumber(rule, value, callback) {
+ if (value) {
+ const numReg = /^[1-9]\d*$/
+ if (numReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('请输入正确的整数'))
+ }
+ } else {
+ callback()
+ }
+}
+//校验身份证号
+export function validateCard(rule, value, callback) {
+ if (value) {
+ const cardBoolean = IdCardValidate(value);
+ // const cardReg =/(^\d{18}$)|(^\d{17}(\d|X|x)$)/
+ // if (cardReg.test(value)) {
+ if (cardBoolean) {
+ callback()
+ } else {
+ callback(new Error('请输入正确的身份证号'))
+ }
+ } else {
+ callback()
+ }
+}
+
+//身份证:身份证校验
+function IdCardValidate(code) {
+ let tip = "";
+ if (code != "") {
+ const city = {
+ 11: "北京",
+ 12: "天津",
+ 13: "河北",
+ 14: "山西",
+ 15: "内蒙古",
+ 21: "辽宁",
+ 22: "吉林",
+ 23: "黑龙江 ",
+ 31: "上海",
+ 32: "江苏",
+ 33: "浙江",
+ 34: "安徽",
+ 35: "福建",
+ 36: "江西",
+ 37: "山东",
+ 41: "河南",
+ 42: "湖北 ",
+ 43: "湖南",
+ 44: "广东",
+ 45: "广西",
+ 46: "海南",
+ 50: "重庆",
+ 51: "四川",
+ 52: "贵州",
+ 53: "云南",
+ 54: "西藏 ",
+ 61: "陕西",
+ 62: "甘肃",
+ 63: "青海",
+ 64: "宁夏",
+ 65: "新疆",
+ 71: "台湾",
+ 81: "香港",
+ 82: "澳门",
+ 91: "国外 "
+ };
+
+ let pass = true;
+
+ //是否为空
+ if (code === '') {
+ tip = "请输入身份证号,身份证号不能为空";
+ pass = false;
+ }
+ //校验长度,类型
+ else if (isCardNo(code) === false) {
+ tip = "您输入的身份证号码不正确,请重新输入";
+ pass = false;
+ }
+ //检查省份
+ else if (checkProvince(code, city) === false) {
+ tip = "您输入的身份证号码不正确,请重新输入";
+ pass = false;
+ }
+ //校验生日
+ else if (checkBirthday(code) === false) {
+ tip = "您输入的身份证号码生日不正确,请重新输入";
+ pass = false;
+ } else {
+ //18位身份证需要验证最后一位校验位
+ if (code.length == 18) {
+ code = code.split('');
+ //∑(ai×Wi)(mod 11)
+ //加权因子
+ const factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
+ //校验位
+ const parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
+ let sum = 0;
+ let ai = 0;
+ let wi = 0;
+ for (let i = 0; i < 17; i++) {
+ ai = code[i];
+ wi = factor[i];
+ sum += ai * wi;
+ }
+ const last = parity[sum % 11];
+ if (parity[sum % 11] != code[17]) {
+ tip = "身份证格式错误";
+ pass = false;
+ }
+ }
+ }
+ return pass;
+ }
+}
+
+//身份证:检查身份证号码是否符合规范,包括长度,类型
+function isCardNo(card) {
+ //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
+ const reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;
+ if (reg.test(card) === false) {
+ return false;
+ }
+ return true;
+};
+
+//身份证:取身份证前两位,校验省份
+function checkProvince(card, city) {
+ const province = card.substr(0, 2);
+ if (city[province] == undefined) {
+ return false;
+ }
+ return true;
+};
+
+//身份证:检查生日是否正确
+function checkBirthday(card) {
+ const len = card.length;
+ //身份证15位时,次序为省(3位)市(3位)年(2位)月(2位)日(2位)校验位(3位),皆为数字
+ if (len == '15') {
+ const re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;
+ const arr_data = card.match(re_fifteen);
+ const year = arr_data[2];
+ const month = arr_data[3];
+ const day = arr_data[4];
+ const birthday = new Date('19' + year + '/' + month + '/' + day);
+ return verifyBirthday('19' + year, month, day, birthday);
+ }
+ //身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4位),校验位末尾可能为X
+ if (len == '18') {
+ const re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;
+ const arr_data = card.match(re_eighteen);
+ const year = arr_data[2];
+ const month = arr_data[3];
+ const day = arr_data[4];
+ const birthday = new Date(year + '/' + month + '/' + day);
+ return verifyBirthday(year, month, day, birthday);
+ }
+ return false;
+};
+
+//身份证:校验日期
+function verifyBirthday(year, month, day, birthday) {
+ const now = new Date();
+ const now_year = now.getFullYear();
+ //年月日是否合理
+ if (birthday.getFullYear() == year && (birthday.getMonth() + 1) == month && birthday.getDate() == day) {
+ //判断年份的范围(3岁到100岁之间)
+ const time = now_year - year;
+ if (time >= 3 && time <= 100) {
+ return true;
+ }
+ return false;
+ }
+ return false;By18Val
+};
+
+/**
+ * 判断身份证号码为18位时最后的验证位是否正确
+ * @param a_idCard 身份证号码数组
+ * @return
+ */
+function isTrueValidateCodeBy18IdCard(a_idCard) {
+ const By18Val = a_idCard[17].toLowerCase(); // 获取第十八位值
+ const numReg = /^[1-9]\d*$/
+ let numVal = false; // 校验第十八位是否为整数
+ if (numReg.test(Number(By18Val))) {
+ numVal = true
+ } else {
+ numVal = false
+ }
+ if (By18Val == 'x' || By18Val == 'X' || numVal) {
+ return true
+ } else {
+ return false
+ }
+}
+
+/**
+ * 验证身份证号码前两位,省级编码的准确性
+ * @param AddressNum
+ * @constructor
+ */
+function IdCardValidateAddress(AddressNum) {
+ const city = {
+ 11: "北京",
+ 12: "天津",
+ 13: "河北",
+ 14: "山西",
+ 15: "内蒙古",
+ 21: "辽宁",
+ 22: "吉林",
+ 23: "黑龙江 ",
+ 31: "上海",
+ 32: "江苏",
+ 33: "浙江",
+ 34: "安徽",
+ 35: "福建",
+ 36: "江西",
+ 37: "山东",
+ 41: "河南",
+ 42: "湖北 ",
+ 43: "湖南",
+ 44: "广东",
+ 45: "广西",
+ 46: "海南",
+ 50: "重庆",
+ 51: "四川",
+ 52: "贵州",
+ 53: "云南",
+ 54: "西藏 ",
+ 61: "陕西",
+ 62: "甘肃",
+ 63: "青海",
+ 64: "宁夏",
+ 65: "新疆",
+ 71: "台湾",
+ 81: "香港",
+ 82: "澳门",
+ 91: "国外 "
+ };
+ if (city[AddressNum.substr(0, 2)]) {
+ return true
+ } else {
+ return false
+ }
+}
+
+/**
+ * 验证18位数身份证号码中的生日是否是有效生日
+ * @param idCard 18位书身份证字符串
+ * @return
+ */
+function isValidityBrithBy18IdCard(idCard18) {
+ const year = idCard18.substring(6, 10);
+ const month = idCard18.substring(10, 12);
+ const day = idCard18.substring(12, 14);
+ const temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));
+ // 这里用getFullYear()获取年份,避免千年虫问题
+ if (temp_date.getFullYear() != parseFloat(year)
+ || temp_date.getMonth() != parseFloat(month) - 1
+ || temp_date.getDate() != parseFloat(day)) {
+ return false;
+ } else {
+ return true;
+ }
+}
+
+/**
+ * 验证15位数身份证号码中的生日是否是有效生日
+ * @param idCard15 15位书身份证字符串
+ * @return
+ */
+function isValidityBrithBy15IdCard(idCard15) {
+ const year = idCard15.substring(6, 8);
+ const month = idCard15.substring(8, 10);
+ const day = idCard15.substring(10, 12);
+ const temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));
+ // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法
+ if (temp_date.getYear() != parseFloat(year)
+ || temp_date.getMonth() != parseFloat(month) - 1
+ || temp_date.getDate() != parseFloat(day)) {
+ return false;
+ } else {
+ return true;
+ }
+}
+
+/**
+ * 去掉字符串头尾空格
+ * @param str
+ * @returns {*}
+ */
+function trim(str) {
+ return str.replace(/(^\s*)|(\s*$)/g, "");
+}
+
+//校验只可输入大小写字母及数字
+export function validateYS(rule, value, callback) {
+ if (value) {
+ const regs = /^[a-zA-Z0-9-_.]+$/
+ if(regs.test(value)){
+ callback()
+ } else {
+ callback(new Error('只能输入大小写字母及数字'))
+ }
+ }
+ else {
+ callback()
+ }
+}
+//校验只可输入大小写字母、数字、空格
+export function validateYSK(rule, value, callback) {
+ if (value) {
+ const regs = /^[a-zA-Z0-9-_. ]+$/
+ if (regs.test(value)) {
+ callback()
+ } else {
+ callback(new Error('只能输入大小写字母、数字及空格'))
+ }
+ } else {
+ callback()
+ }
+}
+// 校验百分比
+export function validatePercent(rule, value, callback){
+ if (!value) {
+ return callback(new Error('百分比不能为空'))
+ } else {
+ if(value < 0 || value > 100){
+ return callback(new Error('百分比范围 0 ~ 100'))
+ }
+ callback()
+ }
+}
+
+export function validateSampleCode(rule, value, callback){
+ if (value) {
+ const orgReg =/[A-Z]/
+ if (orgReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('样本字码错误'))
+ }
+ } else {
+ callback()
+ }
+}
+
+export default {
+ validateCode,
+ validateEmail,
+ validateEng,
+ validatePhone,
+ validateChinese,
+ validatePostCode,
+ validateNum,
+ validateNumDot,
+ validateZYS,
+ validateOrganization,
+ validateFax,
+ validateHome,
+ validateXXMC,
+ validateXf,
+ validateOneNum,
+ validateMaxNumber,
+ validateTwoNum,
+ validateTwoNumThree,
+ validateThreeNum,
+ validateInteger,
+ validateNF,
+ validateXQ,
+ validateroundNumber,
+ validateEngName,
+ validateCard,
+ validateHanset,
+ validateFamilyPhone,
+ validateName,
+ validateChargeperson,
+ validateYS,
+ validateMaxNumber5,
+ validatePercent,
+ validateNumSix,
+ validateSixNum
+}
diff --git a/src/views/bpm/definition/index.vue b/src/views/bpm/definition/index.vue
new file mode 100644
index 0000000..1c179e7
--- /dev/null
+++ b/src/views/bpm/definition/index.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+ {{ scope.row.name }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.formName }}
+
+
+ {{ scope.row.formCustomCreatePath }}
+
+
+
+
+
+ v{{ scope.row.version }}
+ 未部署
+
+
+
+
+ 激活
+ 挂起
+
+
+
+
+
+
+
+ 分配规则
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/form/editor/index.vue b/src/views/bpm/form/editor/index.vue
new file mode 100644
index 0000000..b7c45ca
--- /dev/null
+++ b/src/views/bpm/form/editor/index.vue
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/form/index.vue b/src/views/bpm/form/index.vue
new file mode 100644
index 0000000..0c9f2f8
--- /dev/null
+++ b/src/views/bpm/form/index.vue
@@ -0,0 +1,165 @@
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+
+ 重置
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+
+ 详情
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/group/UserGroupForm.vue b/src/views/bpm/group/UserGroupForm.vue
new file mode 100644
index 0000000..35d833e
--- /dev/null
+++ b/src/views/bpm/group/UserGroupForm.vue
@@ -0,0 +1,132 @@
+
+
+
+
diff --git a/src/views/bpm/group/index.vue b/src/views/bpm/group/index.vue
new file mode 100644
index 0000000..307df71
--- /dev/null
+++ b/src/views/bpm/group/index.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+ 重置
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ userList.find((user) => user.id === userId)?.nickname }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/model/ModelForm.vue b/src/views/bpm/model/ModelForm.vue
new file mode 100644
index 0000000..0bd5409
--- /dev/null
+++ b/src/views/bpm/model/ModelForm.vue
@@ -0,0 +1,230 @@
+
+
+
+
diff --git a/src/views/bpm/model/ModelImportForm.vue b/src/views/bpm/model/ModelImportForm.vue
new file mode 100644
index 0000000..f007ad3
--- /dev/null
+++ b/src/views/bpm/model/ModelImportForm.vue
@@ -0,0 +1,141 @@
+
+
+
+
diff --git a/src/views/bpm/model/editor/index.vue b/src/views/bpm/model/editor/index.vue
new file mode 100644
index 0000000..76f2160
--- /dev/null
+++ b/src/views/bpm/model/editor/index.vue
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/model/index.vue b/src/views/bpm/model/index.vue
new file mode 100644
index 0000000..a1a609f
--- /dev/null
+++ b/src/views/bpm/model/index.vue
@@ -0,0 +1,314 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+ 重置
+
+
+ 新建流程
+
+
+ 导入流程
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.name }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.formName }}
+
+
+ {{ scope.row.formCustomCreatePath }}
+
+
+
+
+
+
+
+
+
+ v{{ scope.row.processDefinition.version }}
+
+ 未部署
+
+
+
+
+
+
+
+
+
+
+ {{ formatDate(scope.row.processDefinition.deploymentTime) }}
+
+
+
+
+
+
+
+
+ 修改流程
+
+
+
+ 设计流程
+
+
+
+ 分配规则
+
+
+
+ 发布流程
+
+
+
+ 流程定义
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/oa/leave/create.vue b/src/views/bpm/oa/leave/create.vue
new file mode 100644
index 0000000..a47228c
--- /dev/null
+++ b/src/views/bpm/oa/leave/create.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确 定
+
+
+
+
diff --git a/src/views/bpm/oa/leave/detail.vue b/src/views/bpm/oa/leave/detail.vue
new file mode 100644
index 0000000..87036d8
--- /dev/null
+++ b/src/views/bpm/oa/leave/detail.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+ {{ formatDate(detailData.startTime, 'YYYY-MM-DD') }}
+
+
+ {{ formatDate(detailData.endTime, 'YYYY-MM-DD') }}
+
+
+ {{ detailData.reason }}
+
+
+
+
+
diff --git a/src/views/bpm/oa/leave/index.vue b/src/views/bpm/oa/leave/index.vue
new file mode 100644
index 0000000..d232400
--- /dev/null
+++ b/src/views/bpm/oa/leave/index.vue
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+ 重置
+
+
+ 发起请假
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 详情
+
+
+
+ 进度
+
+
+
+ 取消
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/processInstance/create/index.vue b/src/views/bpm/processInstance/create/index.vue
new file mode 100644
index 0000000..a10e020
--- /dev/null
+++ b/src/views/bpm/processInstance/create/index.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ v{{ scope.row.version }}
+
+
+
+
+
+
+ 选择
+
+
+
+
+
+
+
+
+
+
+ 申请信息【{{ selectProcessInstance.name }}】
+
+ 选择其它流程
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceBpmnViewer.vue b/src/views/bpm/processInstance/detail/ProcessInstanceBpmnViewer.vue
new file mode 100644
index 0000000..0a2057d
--- /dev/null
+++ b/src/views/bpm/processInstance/detail/ProcessInstanceBpmnViewer.vue
@@ -0,0 +1,57 @@
+
+
+
+ 流程图
+
+
+
+
+
+
diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceTaskList.vue b/src/views/bpm/processInstance/detail/ProcessInstanceTaskList.vue
new file mode 100644
index 0000000..ec87104
--- /dev/null
+++ b/src/views/bpm/processInstance/detail/ProcessInstanceTaskList.vue
@@ -0,0 +1,97 @@
+
+
+
+ 审批记录
+
+
+
+
+
+ 任务:{{ item.name }}
+
+
+
+
+
+
+
+
+
+ {{ item.reason }}
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/processInstance/detail/TaskReturnDialogForm.vue b/src/views/bpm/processInstance/detail/TaskReturnDialogForm.vue
new file mode 100644
index 0000000..f93bf2c
--- /dev/null
+++ b/src/views/bpm/processInstance/detail/TaskReturnDialogForm.vue
@@ -0,0 +1,90 @@
+
+
+
+
diff --git a/src/views/bpm/processInstance/detail/TaskUpdateAssigneeForm.vue b/src/views/bpm/processInstance/detail/TaskUpdateAssigneeForm.vue
new file mode 100644
index 0000000..6adf1de
--- /dev/null
+++ b/src/views/bpm/processInstance/detail/TaskUpdateAssigneeForm.vue
@@ -0,0 +1,83 @@
+
+
+
+
diff --git a/src/views/bpm/processInstance/detail/index.vue b/src/views/bpm/processInstance/detail/index.vue
new file mode 100644
index 0000000..fbadad4
--- /dev/null
+++ b/src/views/bpm/processInstance/detail/index.vue
@@ -0,0 +1,285 @@
+
+
+
+
+
+ 审批任务【{{ item.name }}】
+
+
+
+
+ {{ processInstance.name }}
+
+
+ {{ processInstance.startUser.nickname }}
+ {{ processInstance.startUser.deptName }}
+
+
+
+
+
+
+
+
+ 通过
+
+
+
+ 不通过
+
+
+
+ 转办
+
+
+
+ 委派
+
+
+
+ 回退
+
+
+
+
+
+
+
+
+ 申请信息【{{ processInstance.name }}】
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/processInstance/index.vue b/src/views/bpm/processInstance/index.vue
new file mode 100644
index 0000000..e2fc270
--- /dev/null
+++ b/src/views/bpm/processInstance/index.vue
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+ 重置
+
+
+ 发起流程
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ task.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 详情
+
+
+
+ 取消
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/task/done/TaskDetail.vue b/src/views/bpm/task/done/TaskDetail.vue
new file mode 100644
index 0000000..5bc06f1
--- /dev/null
+++ b/src/views/bpm/task/done/TaskDetail.vue
@@ -0,0 +1,51 @@
+
+
+
+
diff --git a/src/views/bpm/task/done/index.vue b/src/views/bpm/task/done/index.vue
new file mode 100644
index 0000000..24d62db
--- /dev/null
+++ b/src/views/bpm/task/done/index.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 详情
+
+
+ 流程
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/task/todo/index.vue b/src/views/bpm/task/todo/index.vue
new file mode 100644
index 0000000..5dc164e
--- /dev/null
+++ b/src/views/bpm/task/todo/index.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 激活
+ 挂起
+
+
+
+
+
+ 审批进度
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/bpm/taskAssignRule/TaskAssignRuleForm.vue b/src/views/bpm/taskAssignRule/TaskAssignRuleForm.vue
new file mode 100644
index 0000000..9b215e0
--- /dev/null
+++ b/src/views/bpm/taskAssignRule/TaskAssignRuleForm.vue
@@ -0,0 +1,250 @@
+
+
+
+
diff --git a/src/views/bpm/taskAssignRule/index.vue b/src/views/bpm/taskAssignRule/index.vue
new file mode 100644
index 0000000..0fe9bde
--- /dev/null
+++ b/src/views/bpm/taskAssignRule/index.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getAssignRuleOptionName(scope.row.type, option) }}
+
+
+
+
+
+
+ 修改
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/SparePartsOutLocationRecord/SparePartsOutLocationRecord.data.ts b/src/views/eam/SparePartsOutLocationRecord/SparePartsOutLocationRecord.data.ts
new file mode 100644
index 0000000..b42a040
--- /dev/null
+++ b/src/views/eam/SparePartsOutLocationRecord/SparePartsOutLocationRecord.data.ts
@@ -0,0 +1,230 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+
+import * as ItemAccountsApi from '@/api/eam/itemAccounts'
+import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data'
+
+import { EquipmentAccounts } from '@/views/eam/equipmentAccounts/equipmentAccounts.data'
+import * as EquipmentItemApi from '@/api/eam/equipmentAccounts'
+
+import { dateFormatter } from '@/utils/formatTime'
+
+export const SparePartsOutLocationRecordMain = useCrudSchemas(
+ reactive([
+ {
+ label: '备件编号',
+ field: 'sparePartsCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ table: {
+ width: 180,
+ fixed: 'left'
+ }
+ },
+ {
+ label: '备件名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ table: {
+ width: 110
+ }
+ },
+ {
+ label: '备件名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ table: {
+ width: 110
+ }
+ },
+ {
+ label: '备件类型',
+ field: 'classification',
+ sort: 'custom',
+ dictType: DICT_TYPE.PART_CLASS,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '规格型号',
+ field: 'specifications',
+ sort: 'custom'
+ },
+
+ {
+ label: '存放位置',
+ field: 'locationCode',
+ sort: 'custom'
+ },
+ {
+ label: '计量单位',
+ field: 'uom',
+ sort: 'custom',
+ dictType: DICT_TYPE.UOM,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '生产厂家',
+ field: 'brand',
+ sort: 'custom'
+ },
+ {
+ label: '申请单号',
+ field: 'requestNumber',
+ sort: 'custom'
+ },
+ {
+ label: '申领数量',
+ field: 'applyQty',
+ sort: 'custom'
+ },
+ {
+ label: '出库时问',
+ field: 'createTime',
+ sort: 'custom'
+ }
+ ])
+)
+
+//表单校验
+export const SparePartsOutLocationRecordMainRules = reactive({
+ description: [{ required: true, message: '描述不能为空', trigger: 'change' }]
+})
+/**
+ * @returns {Array} 备件申请子表
+ */
+export const SparePartsOutLocationRecordDetail = useCrudSchemas(
+ reactive([
+ {
+ label: '库位编号',
+ field: 'locationCode',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择库位编号', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '库位信息', // 查询弹窗标题
+
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ },
+ tableForm: {
+ isInpuFocusShow: true,
+ searchListPlaceholder: '请选择备件编号', // 输入框占位文本
+ searchField: 'itemNumber', // 查询弹窗赋值字段
+ searchTitle: '备件信息', // 查询弹窗标题
+
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ },
+ {
+ label: '库区编号',
+ field: 'areaCode',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ tableForm: {
+ disabled: true
+ }
+ },
+ {
+ label: '备件编号',
+ field: 'sparePartsCode',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ tableForm: {
+ disabled: true
+ }
+ },
+ {
+ label: '库存数量',
+ field: 'currentQty',
+ sort: 'custom',
+ isSearch: false,
+ tableForm: {
+ disabled: true
+ },
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ isDetail: false,
+ isTable: false
+ },
+ {
+ label: '申领数量',
+ field: 'applyQty',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ isTableForm: false
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ }
+ ])
+)
+
+//表单校验
+export const SparePartsOutLocationRecordDetailRules = reactive({
+ applyQty: [{ required: true, message: '请输入标包数量', trigger: 'blur' }]
+})
diff --git a/src/views/eam/SparePartsOutLocationRecord/index.vue b/src/views/eam/SparePartsOutLocationRecord/index.vue
new file mode 100644
index 0000000..b222e42
--- /dev/null
+++ b/src/views/eam/SparePartsOutLocationRecord/index.vue
@@ -0,0 +1,374 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/adjustRecord/adjustRecord.data.ts b/src/views/eam/adjustRecord/adjustRecord.data.ts
new file mode 100644
index 0000000..e2f5bb3
--- /dev/null
+++ b/src/views/eam/adjustRecord/adjustRecord.data.ts
@@ -0,0 +1,189 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const Rules = reactive({
+ number: [required],
+ planNumber: [required],
+})
+
+export const AdjustRecordMain = useCrudSchemas(reactive([
+ {
+ label: '调整编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '计划编号',
+ field: 'planNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '任务编号',
+ field: 'jobNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
+
+//表单校验
+export const AdjustRecordMainRules = reactive({
+ name: [
+ { required: true, message: '请填写描述', trigger: 'change' }
+ ],
+ remark: [
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ available: [
+ { required: true, message: '请选择是否可用', trigger: 'change' }
+ ],
+})
+/**
+ * @returns {Array} 备件申请子表
+ */
+export const AdjustRecordDetail = useCrudSchemas(reactive([
+ {
+ label: '任务编号',
+ field: 'number',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ fixed: 'left'
+ },
+ },
+
+ {
+ label: '备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ },
+
+ {
+ label: '库位编号',
+ field: 'locationNumber',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ },
+
+ {
+ label: '库区编号',
+ field: 'areaNumber',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ },
+
+ {
+ label: '库存数量',
+ field: 'qty',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ precision: 2
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 0,
+ precision: 2
+ }
+ },
+ {
+ label: '盘点数量',
+ field: 'countQty',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ precision: 2
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 0,
+ precision: 2
+ }
+ },
+ {
+ label: '差异数量',
+ field: 'differenceQty',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ precision: 2
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 0,
+ precision: 2
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ },
+ isTableForm: false,
+ }
+]))
+
+//表单校验
+export const AdjustRecordDetailRules = reactive({
+ lineNumber: [
+ { required: true, message: '请输入行号', trigger: 'blur' },
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ stdPackQty: [
+ { required: true, message: '请输入标包数量', trigger: 'blur' }
+ ],
+})
diff --git a/src/views/eam/adjustRecord/index.vue b/src/views/eam/adjustRecord/index.vue
new file mode 100644
index 0000000..bd52a27
--- /dev/null
+++ b/src/views/eam/adjustRecord/index.vue
@@ -0,0 +1,323 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/applicationRecord/applicationRecordMain.data.ts b/src/views/eam/applicationRecord/applicationRecordMain.data.ts
new file mode 100644
index 0000000..f36966a
--- /dev/null
+++ b/src/views/eam/applicationRecord/applicationRecordMain.data.ts
@@ -0,0 +1,329 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data'
+import * as ItemAccountsApi from '@/api/eam/itemAccounts'
+//import * as DeviceMoldItemsApi from '@/api/eam/basic/deviceMaintenance'
+import { validateHanset, validateEmail } from '@/utils/validator'
+const { t } = useI18n() // 国际化
+
+/**
+ * @returns {Array} 备件申请主表
+ */
+export const ApplicationRecordMain = useCrudSchemas(reactive([
+ {
+ label: '领用编号',
+ field: 'number',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ fixed: 'left'
+ },
+ },
+ {
+ label: '申领人',
+ field: 'applyId',
+ sort: 'custom',
+ isForm: false,
+ isSearch: false,
+ },
+ {
+ label: '审批人',
+ field: 'approveId',
+ sort: 'custom',
+ isForm: false,
+ isSearch: false,
+ },
+ {
+ label: '出库人',
+ field: 'outId',
+ sort: 'custom',
+ isForm: false,
+ isSearch: false,
+ },
+ {
+ label: '描述',
+ field: 'name',
+ sort: 'custom',
+ },
+ {
+ label: '状态',
+ field: 'status',
+ sort: 'custom',
+ dictType: DICT_TYPE.ITEM_APPLY_STATUS,
+ dictClass: 'string',
+ isSearch: true,
+ isTable: true,
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select',
+ disabled: true
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 200,
+ fixed: 'right'
+ }
+ }
+]))
+
+//表单校验
+export const ApplicationRecordMainRules = reactive({
+ name: [
+ { required: true, message: '请填写描述', trigger: 'change' }
+ ],
+ remark: [
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ available: [
+ { required: true, message: '请选择是否可用', trigger: 'change' }
+ ],
+})
+
+export const DeviceMOLD = useCrudSchemas(reactive([
+ {
+ label: '编号',
+ field: 'number',
+ sort: 'custom',
+ isForm: false,
+ table: {
+ width: 180,
+ fixed: 'left'
+ },
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ },
+ {
+ label: '规格型号',
+ field: 'specification',
+ sort: 'custom',
+ },
+
+]))
+
+/**
+ * @returns {Array} 备件申请子表
+ */
+export const ApplicationRecordDetail = useCrudSchemas(reactive([
+ {
+ label: '备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ isSearch: true,
+ tableForm: {
+ isInpuFocusShow: true,
+ searchListPlaceholder: '请选择备件编号',
+ searchField: 'number',
+ searchTitle: '库区信息',
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ },
+ },
+ {
+ label: '类型',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_MOLD_TYPE,
+ dictClass: 'string',
+ isSearch: true,
+ isTable: true,
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select',
+ disabled: false
+ }
+ },
+
+
+ // {
+ // label: '设备/模具编号',
+ // field: 'deviceNumber',
+ // sort: 'custom',
+ // isSearch: true,
+ // tableForm: {
+ // isInpuFocusShow: true,
+ // searchListPlaceholder: '请选择单号',
+ // searchField: 'number',
+ // searchTitle: '单号信息',
+ // searchAllSchemas: DeviceMOLD.allSchemas, // 查询弹窗所需类
+ // searchPage: DeviceMoldItemsApi.getNumber, // 查询弹窗所需分页方法
+ // searchCondition: [{
+ // key: 'available',
+ // value: "TRUE",
+ // isMainValue: false
+ // }, {
+ // key: 'type',
+ // value: "type",
+ // isMainValue: true
+ // }
+ // ]
+ // },
+ // },
+ {
+ label: '申领数量',
+ field: 'qty',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ precision: 2
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 0,
+ precision: 2
+ }
+ },
+ {
+ label: '库存数量',
+ field: 'currentQty',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ precision: 2
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 0,
+ precision: 2
+ }
+ },
+
+
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: true,
+ isTable: true,
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select',
+ disabled: true
+ }
+ },
+
+
+ {
+ label: '是否以旧换新',
+ field: 'isRadeIn',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: true,
+ isTable: true,
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select',
+ disabled: true
+ }
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ table: {
+ width: 150
+ },
+ },
+
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ },
+ isTableForm: false,
+ }
+]))
+
+//表单校验
+export const ApplicationRecordDetailRules = reactive({
+ lineNumber: [
+ { required: true, message: '请输入行号', trigger: 'blur' },
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ stdPackQty: [
+ { required: true, message: '请输入标包数量', trigger: 'blur' }
+ ],
+ stdPackUnit: [
+ { required: true, message: '请选择标包单位', trigger: 'change' }
+ ],
+ convertRate: [
+ { required: true, message: '请输入转换率', trigger: 'blur' }
+ ],
+ taxRate: [
+ { required: true, message: '请输入税率', trigger: 'blur' }
+ ],
+ shippedQty: [
+ { required: true, message: '请输入已发货数量', trigger: 'blur' }
+ ],
+ receivedQty: [
+ { required: true, message: '请输入已收货数量', trigger: 'blur' }
+ ],
+ returnedQty: [
+ { required: true, message: '请输入已退货数量', trigger: 'blur' }
+ ],
+ putawayQty: [
+ { required: true, message: '请输入已上架数量', trigger: 'blur' }
+ ],
+ overReceivingPercent: [
+ { required: true, message: '请输入超收百分比', trigger: 'blur' }
+ ],
+ orderQty: [
+ { required: true, message: '请输入订单数量', trigger: 'blur' }
+ ],
+ uom: [
+ { required: true, message: '请选择计量单位', trigger: 'change' }
+ ],
+ available: [
+ { required: true, message: '请选择是否可用', trigger: 'change' }
+ ],
+ nuumber: [
+ { required: true, message: '请输入单据号', trigger: 'blur' }
+ ],
+ itemCode: [
+ { required: true, message: '请选择物品代码', trigger: 'change' }
+ ],
+ remark: [
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+})
diff --git a/src/views/eam/applicationRecord/index.vue b/src/views/eam/applicationRecord/index.vue
new file mode 100644
index 0000000..b378aa3
--- /dev/null
+++ b/src/views/eam/applicationRecord/index.vue
@@ -0,0 +1,367 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/basicEamProductionline/basicEamProductionline.data.ts b/src/views/eam/basicEamProductionline/basicEamProductionline.data.ts
new file mode 100644
index 0000000..d4470df
--- /dev/null
+++ b/src/views/eam/basicEamProductionline/basicEamProductionline.data.ts
@@ -0,0 +1,234 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import * as WorkshopApi from "@/api/eam/basicEamWorkshop";
+import {BasicEamWorkshop} from "@/views/eam/basicEamWorkshop/basicEamWorkshop.data";
+
+// 表单校验
+export const BasicEamProductionlineRules = reactive({
+ code: [required],
+ available: [required],
+ concurrencyStamp: [required],
+})
+
+export const BasicEamProductionline = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '生产线编号',
+ field: 'code',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '生产线名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '描述',
+ field: 'description',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '生产线类型',
+ field: 'type',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '车间代码',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: false,
+ required: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '车间', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: BasicEamWorkshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getBasicEamWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '原料库位',
+ field: 'rawLocationCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '成品库位',
+ field: 'fgLocationCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ },
+ {
+ label: '生效时间',
+ field: 'activeTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '失效时间',
+ field: 'expireTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除者ID',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '扩展属性',
+ field: 'extraProperties',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/basicEamProductionline/index.vue b/src/views/eam/basicEamProductionline/index.vue
new file mode 100644
index 0000000..f4f90e6
--- /dev/null
+++ b/src/views/eam/basicEamProductionline/index.vue
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/basicEamWorkshop/basicEamWorkshop.data.ts b/src/views/eam/basicEamWorkshop/basicEamWorkshop.data.ts
new file mode 100644
index 0000000..49809cf
--- /dev/null
+++ b/src/views/eam/basicEamWorkshop/basicEamWorkshop.data.ts
@@ -0,0 +1,199 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const BasicEamWorkshopRules = reactive({
+ code: [required],
+ available: [required],
+ concurrencyStamp: [required],
+})
+
+export const BasicEamWorkshop = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '车间编号',
+ field: 'code',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '车间名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '描述',
+ field: 'description',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '车间类型',
+ field: 'type',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ },
+ {
+ label: '生效时间',
+ field: 'activeTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '失效时间',
+ field: 'expireTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除者ID',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '扩展属性',
+ field: 'extraProperties',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/basicEamWorkshop/index.vue b/src/views/eam/basicEamWorkshop/index.vue
new file mode 100644
index 0000000..20689c6
--- /dev/null
+++ b/src/views/eam/basicEamWorkshop/index.vue
@@ -0,0 +1,308 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/basicFaultCause/basicFaultCause.data.ts b/src/views/eam/basicFaultCause/basicFaultCause.data.ts
new file mode 100644
index 0000000..b2861cc
--- /dev/null
+++ b/src/views/eam/basicFaultCause/basicFaultCause.data.ts
@@ -0,0 +1,159 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const BasicFaultCauseRules = reactive({
+ code: [required],
+ name: [required],
+})
+
+export const BasicFaultCause = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '父id(没有则为0)',
+ field: 'parentId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '编码',
+ field: 'code',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/basicFaultCause/index.vue b/src/views/eam/basicFaultCause/index.vue
new file mode 100644
index 0000000..05904df
--- /dev/null
+++ b/src/views/eam/basicFaultCause/index.vue
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/basicFaultType/basicFaultType.data.ts b/src/views/eam/basicFaultType/basicFaultType.data.ts
new file mode 100644
index 0000000..dd36093
--- /dev/null
+++ b/src/views/eam/basicFaultType/basicFaultType.data.ts
@@ -0,0 +1,146 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const BasicFaultTypeRules = reactive({
+ code: [required],
+ name: [required],
+})
+
+export const BasicFaultType = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '编码',
+ field: 'code',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/basicFaultType/index.vue b/src/views/eam/basicFaultType/index.vue
new file mode 100644
index 0000000..7708345
--- /dev/null
+++ b/src/views/eam/basicFaultType/index.vue
@@ -0,0 +1,293 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/basicInspectionOption/basicInspectionOption.data.ts b/src/views/eam/basicInspectionOption/basicInspectionOption.data.ts
new file mode 100644
index 0000000..dde66e9
--- /dev/null
+++ b/src/views/eam/basicInspectionOption/basicInspectionOption.data.ts
@@ -0,0 +1,201 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import * as ItemApi from "@/api/eam/inspectionItemSelectSet";
+import {
+ InspectionItemSelectSet
+} from "@/views/eam/inspectionItemSelectSet/inspectionItemSelectSet.data";
+import {getInspectionItemSelectSetPage} from "@/api/eam/inspectionItemSelectSet";
+
+// 表单校验
+export const BasicInspectionOptionRules = reactive({
+ code: [required],
+ name: [required],
+ selectId: [required],
+})
+
+export const BasicInspectionOption = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '编号',
+ field: 'code',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '方案名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '选择集',
+ field: 'selectId',
+ sort: 'custom',
+ isDetail: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '巡检选择集信息', // 查询弹窗标题
+ searchAllSchemas: InspectionItemSelectSet.allSchemas, // 查询弹窗所需类
+ searchField: 'name', // 查询弹窗赋值字段
+ searchPage: ItemApi.getInspectionItemSelectSetPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '项是否可修改',
+ field: 'isUpdated',
+ sort: 'custom',
+ dictType: DICT_TYPE.IS_UPDATED,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: true,
+ isTableForm: false,
+ isForm: true,
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ },
+ },
+ // {
+ // label: '巡检项',
+ // field: 'type',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/basicInspectionOption/index.vue b/src/views/eam/basicInspectionOption/index.vue
new file mode 100644
index 0000000..ee06a61
--- /dev/null
+++ b/src/views/eam/basicInspectionOption/index.vue
@@ -0,0 +1,311 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/basicInspectionOption/itemSelectSetForm.vue b/src/views/eam/basicInspectionOption/itemSelectSetForm.vue
new file mode 100644
index 0000000..98b8439
--- /dev/null
+++ b/src/views/eam/basicInspectionOption/itemSelectSetForm.vue
@@ -0,0 +1,387 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/basicMaintenanceOption/basicMaintenanceOption.data.ts b/src/views/eam/basicMaintenanceOption/basicMaintenanceOption.data.ts
new file mode 100644
index 0000000..b3ad015
--- /dev/null
+++ b/src/views/eam/basicMaintenanceOption/basicMaintenanceOption.data.ts
@@ -0,0 +1,204 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import {
+ BasicMaintenanceItemSelectSet
+} from "@/views/eam/maintenanceItemSelectSet/maintenanceItemSelectSet.data";
+import * as ItemApi from "@/api/eam/maintenanceItemSelectSet";
+
+
+// 表单校验
+export const BasicMaintenanceOptionRules = reactive({
+ code: [required],
+ type: [required],
+ name: [required],
+})
+
+export const BasicMaintenanceOption = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '编号',
+ field: 'code',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '方案名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '选择集ID',
+ field: 'selectId',
+ sort: 'custom',
+ isDetail: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '保养选择集信息', // 查询弹窗标题
+ searchAllSchemas: BasicMaintenanceItemSelectSet.allSchemas, // 查询弹窗所需类
+ searchField: 'id', // 查询弹窗赋值字段
+ searchPage: ItemApi.getBasicMaintenanceItemSelectSetPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '项是否可修改',
+ field: 'isUpdated',
+ sort: 'custom',
+ dictType: DICT_TYPE.IS_UPDATED,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: true,
+ isTableForm: false,
+ isForm: true,
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ },
+ },
+ // {
+ // label: '保养项',
+ // field: 'type',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/basicMaintenanceOption/index.vue b/src/views/eam/basicMaintenanceOption/index.vue
new file mode 100644
index 0000000..4efbf93
--- /dev/null
+++ b/src/views/eam/basicMaintenanceOption/index.vue
@@ -0,0 +1,311 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/basicMaintenanceOption/itemSelectSetForm.vue b/src/views/eam/basicMaintenanceOption/itemSelectSetForm.vue
new file mode 100644
index 0000000..11c5fbd
--- /dev/null
+++ b/src/views/eam/basicMaintenanceOption/itemSelectSetForm.vue
@@ -0,0 +1,393 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/basicSpotCheckOption/basicSpotCheckOption.data.ts b/src/views/eam/basicSpotCheckOption/basicSpotCheckOption.data.ts
new file mode 100644
index 0000000..8a97207
--- /dev/null
+++ b/src/views/eam/basicSpotCheckOption/basicSpotCheckOption.data.ts
@@ -0,0 +1,200 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import * as ItemApi from "@/api/eam/spotCheckSelectSet";
+import {BasicSpotCheckSelectSet} from "@/views/eam/spotCheckSelectSet/spotCheckSelectSet.data";
+
+// 表单校验
+export const BasicSpotCheckOptionRules = reactive({
+ code: [required],
+ selectId: [required],
+})
+
+export const BasicSpotCheckOption = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '编号',
+ field: 'code',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '方案名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '选择集ID',
+ field: 'selectId',
+ sort: 'custom',
+ isDetail: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '点检选择集信息', // 查询弹窗标题
+ searchAllSchemas: BasicSpotCheckSelectSet.allSchemas, // 查询弹窗所需类
+ searchField: 'id', // 查询弹窗赋值字段
+ searchPage: ItemApi.getBasicSpotCheckSelectSetPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '项是否可修改',
+ field: 'isUpdated',
+ sort: 'custom',
+ dictType: DICT_TYPE.IS_UPDATED,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: true,
+ isTableForm: false,
+ isForm: true,
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ },
+ },
+ // {
+ // label: '保养项',
+ // field: 'type',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/basicSpotCheckOption/index.vue b/src/views/eam/basicSpotCheckOption/index.vue
new file mode 100644
index 0000000..e6e7e2c
--- /dev/null
+++ b/src/views/eam/basicSpotCheckOption/index.vue
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/basicSpotCheckOption/itemSelectSetForm.vue b/src/views/eam/basicSpotCheckOption/itemSelectSetForm.vue
new file mode 100644
index 0000000..cf6c18e
--- /dev/null
+++ b/src/views/eam/basicSpotCheckOption/itemSelectSetForm.vue
@@ -0,0 +1,396 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/classTypeRole/classTypeRole.data.ts b/src/views/eam/classTypeRole/classTypeRole.data.ts
new file mode 100644
index 0000000..0d6c359
--- /dev/null
+++ b/src/views/eam/classTypeRole/classTypeRole.data.ts
@@ -0,0 +1,191 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import * as deptApi from '@/api/system/dept'
+import * as roleApi from '@/api/system/role'
+import { Role } from '@/views/system/role/role.data'
+import { selectAllFactoryArea } from '@/api/system/dept'
+import * as WorkshopApi from '@/api/wms/workshop'
+import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data'
+
+const roleList = await roleApi.getSimpleRoleList({})
+const workshopList = await WorkshopApi.getWorkshopPage({ pageNo: 1, pageSize: 100 })
+const roleListNoPage = await roleApi.getRoleNoPage({})
+const workshopNoPage = await WorkshopApi.getWorkshopNoPage({ pageNo: 1, pageSize: 100 })
+// 表单校验
+export const ClassTypeRoleRules = reactive({
+ workerRoleId: [required],
+ engineerRoleId: [required],
+ workerRoleName: [required],
+ engineerRoleName: [required],
+ workshopName: [required],
+ type: [required],
+ factoryAreaCode: [required],
+ concurrencyStamp: [required]
+})
+
+export const ClassTypeRole = useCrudSchemas(reactive([
+ {
+ label: '维修工角色',
+ field: 'workerRoleId',
+ sort: 'custom',
+ isSearch: true,
+ isDetail: false,
+ isForm: false,
+ isTable: true,
+ isTableForm: false,
+ search: {
+ component: 'Select',
+ componentProps: {
+ options: roleListNoPage,
+ optionsAlias: {
+ labelField: 'name',
+ valueField: 'id'
+ },
+ filterable: true,
+ }
+ },
+ formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
+ return roleList.find((item) => item.id == cellValue)?.name
+ },
+ },
+ {
+ label: '维修工角色',
+ field: 'workerRoleName',
+ sort: 'custom',
+ isTable: false,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择角色', // 输入框占位文本
+ searchField: 'id', // 查询弹窗赋值字段
+ searchTitle: '维修工角色', // 查询弹窗标题
+ searchAllSchemas: Role.allSchemas, // 查询弹窗所需类
+ searchPage: roleApi.getRolePage, // 查询弹窗所需分页方法
+ searchCondition: []
+ }
+ },
+ },
+ {
+ label: '工程师角色',
+ field: 'engineerRoleId',
+ sort: 'custom',
+ isSearch: true,
+ isDetail: false,
+ isForm: false,
+ isTable: true,
+ isTableForm: false,
+ search: {
+ component: 'Select',
+ componentProps: {
+ options: roleListNoPage,
+ optionsAlias: {
+ labelField: 'name',
+ valueField: 'id'
+ },
+ filterable: true,
+ }
+ },
+ formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
+ return roleList.find((item) => item.id == cellValue)?.name
+ },
+ },
+ {
+ label: '工程师角色',
+ field: 'engineerRoleName',
+ sort: 'custom',
+ isTable: false,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择角色', // 输入框占位文本
+ searchField: 'id', // 查询弹窗赋值字段
+ searchTitle: '工程师角色', // 查询弹窗标题
+ searchAllSchemas: Role.allSchemas, // 查询弹窗所需类
+ searchPage: roleApi.getRolePage, // 查询弹窗所需分页方法
+ searchCondition: []
+ }
+ },
+ },
+ {
+ label: '班组',
+ field: 'type',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.BASIC_TEAM_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ },
+ {
+ label: '车间编号',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: true,
+ isDetail: false,
+ isForm: false,
+ isTable: true,
+ isTableForm: false,
+ search: {
+ component: 'Select',
+ componentProps: {
+ options: workshopNoPage,
+ optionsAlias: {
+ labelField: 'name',
+ valueField: 'code'
+ },
+ filterable: true,
+ }
+ },
+ formatter: (_: Recordable, __: TableColumn, cellValue: string) => {
+ return workshopList.list.find((item) => item.code == cellValue)?.name
+ },
+ },
+ {
+ label: '车间编号',
+ field: 'workshopName',
+ sort: 'custom',
+ isTable: false,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择车间代码', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/classTypeRole/index.vue b/src/views/eam/classTypeRole/index.vue
new file mode 100644
index 0000000..de04660
--- /dev/null
+++ b/src/views/eam/classTypeRole/index.vue
@@ -0,0 +1,313 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/countRecord/countRecord.data.ts b/src/views/eam/countRecord/countRecord.data.ts
new file mode 100644
index 0000000..c6d5c31
--- /dev/null
+++ b/src/views/eam/countRecord/countRecord.data.ts
@@ -0,0 +1,242 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import { validateHanset, validateEmail } from '@/utils/validator'
+const { t } = useI18n() // 国际化
+
+/**
+ * @returns {Array} 备件申领主表
+ */
+export const CountRecordMain = useCrudSchemas(reactive([
+ {
+ label: '任务编号',
+ field: 'number',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ fixed: 'left'
+ },
+ },
+ {
+ label: '工单编号',
+ field: 'jobNumber',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ fixed: 'left'
+ },
+ },
+ {
+ label: '计划编号',
+ field: 'requestNumber',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ fixed: 'left'
+ },
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isForm: false,
+ isSearch: false,
+ },
+ {
+ label: '状态',
+ field: 'status',
+ sort: 'custom',
+ dictType: DICT_TYPE.ADJUST_STATUS,
+ dictClass: 'string',
+ isTable: true,
+ isForm: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 200,
+ fixed: 'right'
+ }
+ }
+]))
+
+//表单校验
+export const CountRecordMainRules = reactive({
+ name: [
+ { required: true, message: '请填写描述', trigger: 'change' }
+ ],
+ remark: [
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ available: [
+ { required: true, message: '请选择是否可用', trigger: 'change' }
+ ],
+})
+
+/**
+ * @returns {Array} 备件申请子表
+ */
+export const CountRecordDetail = useCrudSchemas(reactive([
+ {
+ label: '任务编号',
+ field: 'number',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ fixed: 'left'
+ },
+ },
+
+ {
+ label: '备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ },
+
+
+
+ {
+ label: '库位编号',
+ field: 'locationNumber',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ },
+
+ {
+ label: '库区编号',
+ field: 'areaNumber',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ },
+
+ {
+ label: '库存数量',
+ field: 'qty',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ precision: 2
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 0,
+ precision: 2
+ }
+ },
+ {
+ label: '盘点数量',
+ field: 'countQty',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ precision: 2
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 0,
+ precision: 2
+ }
+ },
+ {
+ label: '差异数量',
+ field: 'differenceQty',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ precision: 2
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 0,
+ precision: 2
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ },
+ isTableForm: false,
+ }
+]))
+
+//表单校验
+export const CountRecordDetailRules = reactive({
+ lineNumber: [
+ { required: true, message: '请输入行号', trigger: 'blur' },
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ stdPackQty: [
+ { required: true, message: '请输入标包数量', trigger: 'blur' }
+ ],
+})
diff --git a/src/views/eam/countRecord/index.vue b/src/views/eam/countRecord/index.vue
new file mode 100644
index 0000000..b9302ac
--- /dev/null
+++ b/src/views/eam/countRecord/index.vue
@@ -0,0 +1,339 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/countadjustPlan/countadjustPlan.data.ts b/src/views/eam/countadjustPlan/countadjustPlan.data.ts
new file mode 100644
index 0000000..4c796b8
--- /dev/null
+++ b/src/views/eam/countadjustPlan/countadjustPlan.data.ts
@@ -0,0 +1,77 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+
+// 表单校验
+export const CountadjustPlanRules = reactive({
+ number: [required],
+ name: [required],
+ classification: [{ required: true, message: '请选择盘点类型', trigger: 'blur' }]
+})
+
+export const CountadjustPlan = useCrudSchemas(
+ reactive([
+ {
+ label: '计划编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '盘点类型',
+ field: 'classification',
+ sort: 'custom',
+ dictType: DICT_TYPE.PART_CLASS,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ isForm: true,
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select',
+ disabled: false
+ }
+ },
+ {
+ label: '是否账内库',
+ field: 'isInAccount',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 140
+ },
+ tableForm: {
+ type: 'Select',
+ inactiveValue: 'FALSE',
+ disabled: true
+ },
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+ ])
+)
diff --git a/src/views/eam/countadjustPlan/index.vue b/src/views/eam/countadjustPlan/index.vue
new file mode 100644
index 0000000..c4b9b5e
--- /dev/null
+++ b/src/views/eam/countadjustPlan/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/countadjustWork/countadjustWork.data.ts b/src/views/eam/countadjustWork/countadjustWork.data.ts
new file mode 100644
index 0000000..2453aa3
--- /dev/null
+++ b/src/views/eam/countadjustWork/countadjustWork.data.ts
@@ -0,0 +1,156 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import { validateHanset, validateEmail } from '@/utils/validator'
+const { t } = useI18n() // 国际化
+
+/**
+ * @returns {Array} 备件申领主表
+ */
+export const CountJobMain = useCrudSchemas(reactive([
+ {
+ label: '计划编号',
+ field: 'number',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ fixed: 'left'
+ },
+ },
+ {
+ label: '工单编号',
+ field: 'jobNumber',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isForm: false,
+ isSearch: false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 200,
+ fixed: 'right'
+ }
+ }
+]))
+
+//表单校验
+export const CountJobMainRules = reactive({
+ name: [
+ { required: true, message: '请填写描述', trigger: 'change' }
+ ],
+ remark: [
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ available: [
+ { required: true, message: '请选择是否可用', trigger: 'change' }
+ ],
+})
+
+/**
+ * @returns {Array} 备件申请子表
+ */
+export const CountJobDetail = useCrudSchemas(reactive([
+ {
+ label: '工单编号',
+ field: 'number',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ fixed: 'left'
+ },
+ },
+
+ {
+ label: '备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ },
+
+ {
+ label: '库位编号',
+ field: 'locationNumber',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ },
+
+ {
+ label: '库区编号',
+ field: 'areaNumber',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ },
+
+ {
+ label: '库存数量',
+ field: 'qty',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ precision: 2
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 0,
+ precision: 2
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ },
+ isTableForm: false,
+ }
+]))
+
+//表单校验
+export const CountJobDetailRules = reactive({
+ lineNumber: [
+ { required: true, message: '请输入行号', trigger: 'blur' },
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ stdPackQty: [
+ { required: true, message: '请输入标包数量', trigger: 'blur' }
+ ],
+})
diff --git a/src/views/eam/countadjustWork/index.vue b/src/views/eam/countadjustWork/index.vue
new file mode 100644
index 0000000..edbe2f6
--- /dev/null
+++ b/src/views/eam/countadjustWork/index.vue
@@ -0,0 +1,361 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/documentType/documentType.data.ts b/src/views/eam/documentType/documentType.data.ts
new file mode 100644
index 0000000..01b7c9f
--- /dev/null
+++ b/src/views/eam/documentType/documentType.data.ts
@@ -0,0 +1,159 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const DocumentTypeRules = reactive({
+ code: [required],
+ name: [required],
+ type: [required],
+ concurrencyStamp: [required],
+})
+
+export const DocumentType = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '设备编码',
+ field: 'code',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '类型设备',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/documentType/index.vue b/src/views/eam/documentType/index.vue
new file mode 100644
index 0000000..4a7226a
--- /dev/null
+++ b/src/views/eam/documentType/index.vue
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/documentTypeSelectSet/documentTypeSelectSet.data.ts b/src/views/eam/documentTypeSelectSet/documentTypeSelectSet.data.ts
new file mode 100644
index 0000000..44c8ed9
--- /dev/null
+++ b/src/views/eam/documentTypeSelectSet/documentTypeSelectSet.data.ts
@@ -0,0 +1,152 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const DocumentTypeSelectSetRules = reactive({
+ name: [required],
+ itemCode: [required],
+})
+
+export const DocumentTypeSelectSet = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '选择集名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '选择集类型',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ isForm: true,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '项编号',
+ field: 'itemCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: true,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/documentTypeSelectSet/index.vue b/src/views/eam/documentTypeSelectSet/index.vue
new file mode 100644
index 0000000..f0c5c0f
--- /dev/null
+++ b/src/views/eam/documentTypeSelectSet/index.vue
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/documentTypeSelectSet/itemSelectSetForm.vue b/src/views/eam/documentTypeSelectSet/itemSelectSetForm.vue
new file mode 100644
index 0000000..5739eef
--- /dev/null
+++ b/src/views/eam/documentTypeSelectSet/itemSelectSetForm.vue
@@ -0,0 +1,301 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentAccounts/ablesForm.vue b/src/views/eam/equipmentAccounts/ablesForm.vue
new file mode 100644
index 0000000..4585930
--- /dev/null
+++ b/src/views/eam/equipmentAccounts/ablesForm.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentAccounts/equipmentAccounts.data.ts b/src/views/eam/equipmentAccounts/equipmentAccounts.data.ts
new file mode 100644
index 0000000..cea15dc
--- /dev/null
+++ b/src/views/eam/equipmentAccounts/equipmentAccounts.data.ts
@@ -0,0 +1,704 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import { TableColumn } from '@/types/table'
+import * as WorkshopApi from '@/api/wms/workshop'
+import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data'
+import { validateHanset, validateNum } from '@/utils/validator'
+import { EquipmentSupplier } from '@/views/eam/equipmentSupplier/equipmentSupplier.data'
+import * as EquipmentSupplierApi from '@/api/eam/equipmentSupplier'
+import { EquipmentManufacturer } from '@/views/eam/equipmentManufacturer/equipmentManufacturer.data'
+import * as EquipmentManufacturerApi from '@/api/eam/equipmentManufacturer'
+import * as ConfigApi from '@/api/infra/config'
+import * as ProductionlineApi from '@/api/wms/productionline'
+import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data'
+import * as UserApi from '@/api/system/user'
+import { handleTreeToComponentOptions } from '@/utils/tree'
+import * as DeptApi from '@/api/system/dept'
+import * as BasicEamWorkshopApi from '@/api/eam/basicEamWorkshop'
+import { BasicEamWorkshop } from '@/views/eam/basicEamWorkshop/basicEamWorkshop.data'
+
+export interface User {
+ id: number,
+ nickname: string
+}
+
+const workshopNoPage = await BasicEamWorkshopApi.getBasicEamWorkshopNoPage({})
+const equipmentManufacturerNoPage = await EquipmentManufacturerApi.getEquipmentManufacturerNoPage({})
+const equipmentSupplierNoPage = await EquipmentSupplierApi.getEquipmentSupplierNoPage({})
+const productionlineNoPage = await ProductionlineApi.getProductionlineNoPage({});
+const autoCodeSwitch = await ConfigApi.getConfigKey('deviceCodeAutoSwitch')
+// ProductionlineApi.getProductionlinePage
+const autoSwitch = ref(false)
+if (autoCodeSwitch == 'TRUE') {
+ autoSwitch.value = true
+}
+const allDeptList = await DeptApi.getSimpleDeptList();
+const deptList = ref([]) // 树形结构
+// 加载部门树(默认格式)
+deptList.value = handleTreeToComponentOptions(allDeptList)
+
+const userList = ref([])
+userList.value = await UserApi.getSimpleUserList()
+
+// 表单校验
+export const EquipmentAccountsRules = reactive({
+ code: [required],
+ name: [required],
+ concurrencyStamp: [required],
+ principalTelephone: [
+ { validator:validateHanset, message: '输入电话格式不正确', trigger: 'blur'}
+ ],
+ power: [
+ { validator:validateNum, message: '输入功率格式不正确', trigger: 'blur'}
+ ],
+ workshopName: [required]
+})
+
+export const EquipmentAccounts = useCrudSchemas(reactive([
+ {
+ label: '设备编号',
+ field: 'code',
+ sort: 'custom',
+ isForm: !autoSwitch.value,
+ isSearch: true,
+ fixed: 'left'
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '设备型号',
+ field: 'specification',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '出厂编号',
+ field: 'factoryCode',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '设备类型',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_CLASS,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '功率(kw)',
+ field: 'power',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '产权',
+ field: 'equity',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '电机',
+ field: 'electricMachine',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '节拍',
+ field: 'beat',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '存放位置',
+ field: 'storageLocation',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '使用部门',
+ field: 'useDept',
+ sort: 'custom',
+ isTable: false,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
+ return allDeptList.find((item) => item.id == cellValue)?.name
+ },
+ form: {
+ component: 'TreeSelect',
+ componentProps: { // 假设deptList是部门数据列表
+ data: deptList,
+ placeholder: "请选择部门",
+ filterable: true,
+ }
+ }
+ },
+ {
+ label: '负责人',
+ field: 'principal',
+ sort: 'custom',
+ isSearch: false,
+ formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
+ return userList.value.find((item) => item.id == cellValue)?.nickname
+ },
+ form: {
+ component: 'Select',
+ componentProps: {
+ options: userList.value,
+ optionsAlias: {
+ labelField: 'nickname',
+ valueField: 'id'
+ },
+ filterable: true,
+ }
+ }
+ },
+ {
+ label: '负责人联系方式',
+ field: 'principalTelephone',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '设备状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.DEVICE_STATUS,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '启用日期',
+ field: 'startDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '供应商',
+ field: 'supplierCode',
+ sort: 'custom',
+ isSearch: true,
+ isDetail: false,
+ isForm: false,
+ isTable: true,
+ isTableForm: false,
+ search: {
+ component: 'Select',
+ componentProps: {
+ options: equipmentSupplierNoPage,
+ optionsAlias: {
+ labelField: 'name',
+ valueField: 'number'
+ },
+ filterable: true,
+ }
+ },
+ formatter: (_: Recordable, __: TableColumn, cellValue: string) => {
+ return equipmentSupplierNoPage.find((item) => item.number == cellValue)?.name
+ },
+ },
+ {
+ label: '供应商',
+ field: 'supplierName',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择供应商', // 输入框占位文本
+ searchField: 'number', // 查询弹窗赋值字段
+ searchTitle: '供应商信息', // 查询弹窗标题
+ searchAllSchemas: EquipmentSupplier.allSchemas, // 查询弹窗所需类
+ searchPage: EquipmentSupplierApi.getEquipmentSupplierPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '采购时间',
+ field: 'purchaseTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '采购部门',
+ field: 'purchaseDept',
+ sort: 'custom',
+ isSearch: false,
+ formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
+ return allDeptList.find((item) => item.id == cellValue)?.name
+ },
+ form: {
+ component: 'TreeSelect',
+ componentProps: { // 假设deptList是部门数据列表
+ data: deptList,
+ placeholder: "请选择部门",
+ filterable: true,
+ }
+ }
+ },
+ {
+ label: '采购人',
+ field: 'purchaser',
+ sort: 'custom',
+ isSearch: false,
+ formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
+ return userList.value.find((item) => item.id == cellValue)?.nickname
+ },
+ form: {
+ component: 'Select',
+ componentProps: {
+ options: userList.value,
+ optionsAlias: {
+ labelField: 'nickname',
+ valueField: 'id'
+ },
+ filterable: true,
+ }
+ }
+ },
+ {
+ label: '出厂日期',
+ field: 'productionDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '生产厂商',
+ field: 'manufactureCode',
+ sort: 'custom',
+ isSearch: true,
+ isDetail: false,
+ isForm: false,
+ isTable: true,
+ isTableForm: false,
+ search: {
+ component: 'Select',
+ componentProps: {
+ options: equipmentManufacturerNoPage,
+ optionsAlias: {
+ labelField: 'name',
+ valueField: 'number'
+ }
+ }
+ },
+ formatter: (_: Recordable, __: TableColumn, cellValue: string) => {
+ return equipmentManufacturerNoPage.find((item) => item.number == cellValue)?.name
+ },
+ },
+ {
+ label: '生产厂商',
+ field: 'manufactureName',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择厂商', // 输入框占位文本
+ searchField: 'number', // 查询弹窗赋值字段
+ searchTitle: '生产厂商', // 查询弹窗标题
+ searchAllSchemas: EquipmentManufacturer.allSchemas, // 查询弹窗所需类
+ searchPage: EquipmentManufacturerApi.getEquipmentManufacturerPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '设备使用寿命',
+ field: 'equipmentLife',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '验收日期',
+ field: 'acceptanceDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '价格',
+ field: 'purchasePrice',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '车间编号',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: true,
+ isDetail: false,
+ isForm: false,
+ isTable: true,
+ isTableForm: false,
+ search: {
+ component: 'Select',
+ componentProps: {
+ options: workshopNoPage,
+ optionsAlias: {
+ labelField: 'name',
+ valueField: 'code'
+ },
+ filterable: true,
+ }
+ },
+ formatter: (_: Recordable, __: TableColumn, cellValue: string) => {
+ return workshopNoPage.find((item) => item.code == cellValue)?.name
+ },
+ },
+ {
+ label: '车间编号',
+ field: 'workshopName',
+ sort: 'custom',
+ isTable: false,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择车间代码', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: BasicEamWorkshop.allSchemas, // 查询弹窗所需类
+ searchPage: BasicEamWorkshopApi.getBasicEamWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ // {
+ // label: '产线编号',
+ // field: 'lineCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // isDetail: false,
+ // isForm: false,
+ // isTable: true,
+ // isTableForm: false,
+ // search: {
+ // component: 'Select',
+ // componentProps: {
+ // options: productionlineNoPage,
+ // optionsAlias: {
+ // labelField: 'name',
+ // valueField: 'code'
+ // },
+ // filterable: true,
+ // }
+ // },
+ // formatter: (_: Recordable, __: TableColumn, cellValue: string) => {
+ // return productionlineNoPage.find((item) => item.code == cellValue)?.name
+ // },
+ // },
+ // {
+ // label: '产线编号',
+ // field: 'lineName',
+ // sort: 'custom',
+ // isSearch: false,
+ // form: {
+ // // labelMessage: '信息提示说明!!!',
+ // componentProps: {
+ // isSearchList: true, // 开启查询弹窗
+ // searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
+ // multiple:true,
+ // searchField: 'code', // 查询弹窗赋值字段
+ // searchTitle: '生产线信息', // 查询弹窗标题
+ // searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类
+ // searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法
+ // searchCondition: [{
+ // key:'workshopCode',
+ // value:'workshopCode',
+ // message: '请填写车间代码!',
+ // isMainValue: true
+ // },{
+ // key: 'available',
+ // value: 'TRUE',
+ // isMainValue: false
+ // }]
+ // }
+ // }
+ // },
+ // {
+ // label: '工序编号',
+ // field: 'processCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // form:{
+ // componentProps: {
+ // isSearchList: true,
+ // searchListPlaceholder: '请选择工序代码',
+ // searchField: 'code',
+ // searchTitle: '工序信息',
+ // searchAllSchemas: Process.allSchemas,
+ // searchPage: ProcessApi.getProcessPage,
+ // searchCondition: [{
+ // key:'productionLineCode',
+ // value:'lineCode',
+ // message: '请填写生产线代码!',
+ // isMainValue: true
+ // },{
+ // key:'workshopCode',
+ // value:'workshopCode',
+ // message: '请填写车间代码!',
+ // isMainValue: true
+ // },{
+ // key: 'available',
+ // value: 'TRUE',
+ // isMainValue: false
+ // }]
+ // }
+ // },
+ // },
+ // {
+ // label: '工位编号',
+ // field: 'workstationCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // form:{
+ // componentProps: {
+ // isSearchList: true, // 开启查询弹窗
+ // searchListPlaceholder: '请选择工位', // 输入框占位文本
+ // searchField: 'code', // 查询弹窗赋值字段
+ // searchTitle: '工位信息', // 查询弹窗标题
+ // searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
+ // searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法
+ // searchCondition: [{
+ // key:'productionLineCode',
+ // value:'lineCode',
+ // message: '请填写生产线代码!',
+ // isMainValue: true
+ // },{
+ // key:'workshopCode',
+ // value:'workshopCode',
+ // message: '请填写车间代码!',
+ // isMainValue: true
+ // },{
+ // key:'available',
+ // value:'TRUE',
+ // isMainValue: false
+ // }]
+ // }
+ // },
+ // },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '平均故障间隔时间',
+ field: 'purchaseInterval',
+ sort: 'custom',
+ isSearch: false,
+ isDetail: false,
+ isTable: true,
+ isForm: false,
+ isTableForm: false,
+ },
+ {
+ label: '总运行时长',
+ field: 'totalRunningTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isDetail: false,
+ isTable: true,
+ isForm: false,
+ isTableForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '保养运行时长',
+ field: 'maintenanceRunningTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isDetail: false,
+ isTable: true,
+ isForm: false,
+ isTableForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '使用次数',
+ field: 'usageTimes',
+ sort: 'custom',
+ isSearch: false,
+ isDetail: false,
+ isTable: true,
+ isForm: false,
+ isTableForm: false,
+ },
+ {
+ label: '上一次检验日期',
+ field: 'lastInspectionDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isDetail: false,
+ isTable: true,
+ isForm: false,
+ isTableForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '设备停机率',
+ field: 'outageRate',
+ sort: 'custom',
+ isSearch: false,
+ isDetail: false,
+ isTable: true,
+ isForm: false,
+ isTableForm: false,
+ },
+ {
+ label: '平均故障恢复时间',
+ field: 'breakdownRecover',
+ sort: 'custom',
+ isSearch: false,
+ isDetail: false,
+ isTable: true,
+ isForm: false,
+ isTableForm: false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 250,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentAccounts/index.vue b/src/views/eam/equipmentAccounts/index.vue
new file mode 100644
index 0000000..c7caba7
--- /dev/null
+++ b/src/views/eam/equipmentAccounts/index.vue
@@ -0,0 +1,549 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentInspectionDetail/equipmentInspectionDetail.data.ts b/src/views/eam/equipmentInspectionDetail/equipmentInspectionDetail.data.ts
new file mode 100644
index 0000000..e2e98ba
--- /dev/null
+++ b/src/views/eam/equipmentInspectionDetail/equipmentInspectionDetail.data.ts
@@ -0,0 +1,235 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import * as ItemApi from "@/api/eam/relationInspectionPlanItem";
+import {
+ RelationInspectionPlanItem
+} from "@/views/eam/equipmentInspectionMain/equipmentInspectionMain.data";
+
+// 表单校验
+export const EquipmentInspectionDetailRules = reactive({
+ number: [required],
+ masterId: [required],
+ name: [required],
+ uncompletedCause:[{
+ required:false ,
+ message:'该项为必填项',
+ tagger:['blur','change']
+ }],
+ result: [
+ {
+ required:false ,
+ message:'该项为必填项',
+ tagger:['blur']
+ }],
+})
+
+export const EquipmentInspectionDetail = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '巡检工单号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ form:{
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ {
+ label: '主表id',
+ field: 'masterId',
+ sort: 'custom',
+ isSearch: true,
+ form:{
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '异常原因',
+ field: 'uncompletedCause',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '结果',
+ field: 'result',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.IS_NORMAL,
+ dictClass: 'string'
+ },
+ {
+ label: '巡检项名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择 非必选巡检项',
+ searchTitle: '非必选巡检项信息', // 查询弹窗标题
+ searchAllSchemas: RelationInspectionPlanItem.allSchemas, // 查询弹窗所需类
+ searchField: 'itemName', // 查询弹窗赋值字段
+ searchPage: ItemApi.getRelationInspectionPlanItemPage, // 查询弹窗所需分页方法
+ searchCondition: []
+ }
+ }
+ },
+ {
+ label: '巡检内容',
+ field: 'content',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ componentProps: {
+ type:"textarea",
+ maxlength:"100"
+ }
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentInspectionDetail/index.vue b/src/views/eam/equipmentInspectionDetail/index.vue
new file mode 100644
index 0000000..c72492e
--- /dev/null
+++ b/src/views/eam/equipmentInspectionDetail/index.vue
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentInspectionMain/InspectionOrderDetail.vue b/src/views/eam/equipmentInspectionMain/InspectionOrderDetail.vue
new file mode 100644
index 0000000..de05139
--- /dev/null
+++ b/src/views/eam/equipmentInspectionMain/InspectionOrderDetail.vue
@@ -0,0 +1,1055 @@
+
+
+
+
+
+ {{ titleValueRef }} {{ t(`ts.${titleNameRef}`).replace('ts.','') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentInspectionMain/equipmentInspectionMain.data.ts b/src/views/eam/equipmentInspectionMain/equipmentInspectionMain.data.ts
new file mode 100644
index 0000000..a5d413d
--- /dev/null
+++ b/src/views/eam/equipmentInspectionMain/equipmentInspectionMain.data.ts
@@ -0,0 +1,699 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts.data";
+import * as EquipmentItemApi from "@/api/eam/equipmentAccounts";
+import {Workshop} from "@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data";
+import * as WorkshopApi from "@/api/wms/workshop";
+import {BasicFaultType} from "@/views/eam/basicFaultType/basicFaultType.data";
+import * as BasicFaultTypeApi from "@/api/eam/basicFaultType";
+
+// 表单校验
+export const EquipmentInspectionMainRules = reactive({
+ type: [required],
+ number: [required],
+ sources: [required],
+ equipmentCode: [required],
+ planNumber: [required],
+ planStartTime: [required],
+ planEndTime: [required],
+ startTime: [required],
+ endTime: [required],
+ status: [required],
+ workshopCode: [required],
+})
+
+export const EquipmentInspectionMain = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '巡检工单',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm:false,
+ },
+ {
+ label: '来源字典',
+ field: 'sources',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_INSPECTION_SOURCES,
+ dictClass: 'string',
+ isSearch: false,
+ isForm:false,
+ },
+ {
+ label: '描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '设备类别',
+ field: 'type',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '设备编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择 设备编号', // 输入框占位文本
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '是否拍照',
+ field: 'isPictures',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ dictType: DICT_TYPE.FALSE_OR_TRUE,
+ dictClass: 'string',
+ form: {
+ component: 'Radio'
+ },
+ },
+ {
+ label: '巡检计划工单号',
+ field: 'planNumber',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ },
+ {
+ label: '计划开始时间',
+ field: 'planStartTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '计划结束时间',
+ field: 'planEndTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '巡检开始时间',
+ field: 'startTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '巡检结束时间',
+ field: 'endTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '班组',
+ field: 'classType',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '验证人',
+ field: 'verifyer',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '验证内容',
+ field: 'verifyContent',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '验证时间',
+ field: 'verifyTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '巡检人id',
+ field: 'maintenancer',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '巡检人电话',
+ field: 'maintenancePhone',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '巡检时间',
+ field: 'maintenanceTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.EAM_ORDER_STATUS,
+ dictClass: 'string',
+ },
+ {
+ label: '自动接单',
+ field: 'autoOrder',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '自动执行',
+ field: 'autoPerform',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '自动验证',
+ field: 'autoVerify',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '故障类型枚举',
+ field: 'faultType',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择故障类型', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '故障类型信息', // 查询弹窗标题
+ searchAllSchemas: BasicFaultType.allSchemas, // 查询弹窗所需类
+ searchPage: BasicFaultTypeApi.getBasicFaultTypePage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '所属厂区编号',
+ field: 'factoryAreaCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '车间编号',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: false,
+ required: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '车间', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '产线编号',
+ field: 'lineCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '工序编号',
+ field: 'processCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '工位编号',
+ field: 'workstationCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
+
+// 表单校验
+export const RelationInspectionPlanItemRules = reactive({
+ planNumber: [required],
+ itemCode: [required],
+ itemName: [required],
+ concurrencyStamp: [required],
+})
+
+export const RelationInspectionPlanItem = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '计划编号',
+ field: 'planNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '项编号',
+ field: 'itemCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '巡检项名称',
+ field: 'itemName',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '是否必选',
+ field: 'isSelectd',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.FALSE_OR_TRUE,
+ dictClass: 'string',
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentInspectionMain/finishForm1.vue b/src/views/eam/equipmentInspectionMain/finishForm1.vue
new file mode 100644
index 0000000..c9722f5
--- /dev/null
+++ b/src/views/eam/equipmentInspectionMain/finishForm1.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentInspectionMain/finishForm2.vue b/src/views/eam/equipmentInspectionMain/finishForm2.vue
new file mode 100644
index 0000000..1755c28
--- /dev/null
+++ b/src/views/eam/equipmentInspectionMain/finishForm2.vue
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentInspectionMain/index.vue b/src/views/eam/equipmentInspectionMain/index.vue
new file mode 100644
index 0000000..60d1163
--- /dev/null
+++ b/src/views/eam/equipmentInspectionMain/index.vue
@@ -0,0 +1,550 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentInspectionRecordDetail/equipmentInspectionRecordDetail.data.ts b/src/views/eam/equipmentInspectionRecordDetail/equipmentInspectionRecordDetail.data.ts
new file mode 100644
index 0000000..d4d0eef
--- /dev/null
+++ b/src/views/eam/equipmentInspectionRecordDetail/equipmentInspectionRecordDetail.data.ts
@@ -0,0 +1,118 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const EquipmentInspectionRecordDetailRules = reactive({
+ number: [required],
+ masterId: [required],
+ name: [required],
+ concurrencyStamp: [required]
+})
+
+export const EquipmentInspectionRecordDetail = useCrudSchemas(reactive([
+ {
+ label: '巡检工单号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '主表',
+ field: 'masterId',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '未完成原因',
+ field: 'uncompletedCause',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '结果枚举',
+ field: 'result',
+ sort: 'custom',
+ dictType: DICT_TYPE.IS_COMPLETED,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ }
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '巡检内容',
+ field: 'content',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Editor',
+ componentProps: {
+ valueHtml: '',
+ height: 200
+ }
+ }
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentInspectionRecordDetail/index.vue b/src/views/eam/equipmentInspectionRecordDetail/index.vue
new file mode 100644
index 0000000..61e5e42
--- /dev/null
+++ b/src/views/eam/equipmentInspectionRecordDetail/index.vue
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentInspectionRecordMain/equipmentInspectionRecordMain.data.ts b/src/views/eam/equipmentInspectionRecordMain/equipmentInspectionRecordMain.data.ts
new file mode 100644
index 0000000..ceeed38
--- /dev/null
+++ b/src/views/eam/equipmentInspectionRecordMain/equipmentInspectionRecordMain.data.ts
@@ -0,0 +1,376 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const EquipmentInspectionRecordMainRules = reactive({
+ number: [required],
+ equipmentCode: [required],
+ planNumber: [required],
+ planStartTime: [required],
+ planEndTime: [required],
+ startTime: [required],
+ endTime: [required],
+ concurrencyStamp: [required]
+})
+
+export const EquipmentInspectionRecordMain = useCrudSchemas(reactive([
+ {
+ label: '巡检工单编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '类型',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ }
+ },
+ {
+ label: '设备编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true
+ },
+
+ {
+ label: '是否拍照',
+ field: 'isPictures',
+ sort: 'custom',
+ dictType: DICT_TYPE.INFRA_BOOLEAN_STRING,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'Radio'
+ }
+ },
+ {
+ label: '巡检计划工单号',
+ field: 'planNumber',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '计划开始时间',
+ field: 'planStartTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '计划结束时间',
+ field: 'planEndTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '巡检开始时间',
+ field: 'startTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '巡检结束时间',
+ field: 'endTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '班组',
+ field: 'classType',
+ sort: 'custom',
+ dictType: DICT_TYPE.BASIC_TEAM_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ }
+ },
+ {
+ label: '验证人',
+ field: 'verifyer',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '验证内容',
+ field: 'verifyContent',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'Editor',
+ componentProps: {
+ valueHtml: '',
+ height: 200
+ }
+ }
+ },
+ {
+ label: '验证时间',
+ field: 'verifyTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '巡检人',
+ field: 'maintenancer',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '保养时间',
+ field: 'maintenanceTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_ORDER_STATUS,
+ dictClass: 'string',
+ isSearch: true,
+ form: {
+ component: 'Radio'
+ }
+ },
+ {
+ label: '自动接单',
+ field: 'autoOrder',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '自动执行',
+ field: 'autoPerform',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '自动验证',
+ field: 'autoVerify',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '故障类型枚举',
+ field: 'faultType',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '所属厂区编号',
+ field: 'factoryAreaCode',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '车间编号',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '工段编号',
+ field: 'workshopSectionCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentInspectionRecordMain/index.vue b/src/views/eam/equipmentInspectionRecordMain/index.vue
new file mode 100644
index 0000000..ea1b474
--- /dev/null
+++ b/src/views/eam/equipmentInspectionRecordMain/index.vue
@@ -0,0 +1,255 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentMainPart/equipmentMainPart.data.ts b/src/views/eam/equipmentMainPart/equipmentMainPart.data.ts
new file mode 100644
index 0000000..04decb1
--- /dev/null
+++ b/src/views/eam/equipmentMainPart/equipmentMainPart.data.ts
@@ -0,0 +1,154 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const EquipmentMainPartRules = reactive({
+ name: [required],
+ code: [required],
+ type: [required]
+})
+
+export const EquipmentMainPart = useCrudSchemas(
+ reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '编码',
+ field: 'code',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '类型',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '是否启用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+ ])
+)
diff --git a/src/views/eam/equipmentMainPart/index.vue b/src/views/eam/equipmentMainPart/index.vue
new file mode 100644
index 0000000..5c0d507
--- /dev/null
+++ b/src/views/eam/equipmentMainPart/index.vue
@@ -0,0 +1,294 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentMaintenanceMain/MaintenanceOrderDetail.vue b/src/views/eam/equipmentMaintenanceMain/MaintenanceOrderDetail.vue
new file mode 100644
index 0000000..7626c06
--- /dev/null
+++ b/src/views/eam/equipmentMaintenanceMain/MaintenanceOrderDetail.vue
@@ -0,0 +1,1086 @@
+
+
+
+
+
+ {{ titleValueRef }} {{ t(`ts.${titleNameRef}`).replace('ts.','') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentMaintenanceMain/equipmentMaintenanceMain.data.ts b/src/views/eam/equipmentMaintenanceMain/equipmentMaintenanceMain.data.ts
new file mode 100644
index 0000000..a0573e9
--- /dev/null
+++ b/src/views/eam/equipmentMaintenanceMain/equipmentMaintenanceMain.data.ts
@@ -0,0 +1,825 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts.data";
+import * as EquipmentItemApi from "@/api/eam/equipmentAccounts";
+import {BasicEamWorkshop} from "@/views/eam/basicEamWorkshop/basicEamWorkshop.data";
+import * as WorkshopApi from "@/api/eam/basicEamWorkshop";
+import {RelationMaintenancePlanItem} from "@/views/eam/maintenance/maintenance.data";
+import * as ItemApi from "@/api/eam/relationMaintenancePlanItem";
+import {validateroundNumber} from "@/utils/validator";
+import {BasicFaultType} from "@/views/eam/basicFaultType/basicFaultType.data";
+import * as BasicFaultTypeApi from "@/api/eam/basicFaultType";
+import {BasicMaintenanceOption} from "@/views/eam/basicMaintenanceOption/basicMaintenanceOption.data";
+import * as BasicMaintenanceOptionApi from "@/api/eam/basicMaintenanceOption";
+
+
+// 表单校验
+export const EquipmentMaintenanceMainRules = reactive({
+ number: [required],
+ sources: [required],
+ optionCode:[required],
+ equipmentCode: [required],
+ type: [required],
+ planStartTime: [required],
+ planEndTime: [required],
+ status: [required],
+ workshopCode: [required],
+})
+
+export const EquipmentMaintenanceMain = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '保养工单编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ },
+ {
+ label: '来源字典',
+ field: 'sources',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_BAOYANG_SOURCES,
+ dictClass: 'string',
+ isSearch: false,
+ isForm: true,
+ },
+ {
+ label: '设备类别',
+ field: 'type',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string',
+ sort: 'custom',
+ isSearch: true,
+ isSearch: false,
+ },
+ {
+ label: '设备编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择 设备编号', // 输入框占位文本
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '故障类型',
+ field: 'faultType',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择故障类型', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '故障类型信息', // 查询弹窗标题
+ searchAllSchemas: BasicFaultType.allSchemas, // 查询弹窗所需类
+ searchPage: BasicFaultTypeApi.getBasicFaultTypePage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '保养方案',
+ field: 'optionCode',
+ sort: 'custom',
+ isSearch: true,
+ isTable: false,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择保养方案', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '保养方案信息', // 查询弹窗标题
+ searchAllSchemas: BasicMaintenanceOption.allSchemas, // 查询弹窗所需类
+ searchPage: BasicMaintenanceOptionApi.getBasicMaintenanceOptionPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '保养计划工单号',
+ field: 'planNumber',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ },
+ {
+ label: '计划开始时间',
+ field: 'planStartTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '计划结束时间',
+ field: 'planEndTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '保养开始时间',
+ field: 'startTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '保养结束时间',
+ field: 'endTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '保养班组',
+ field: 'classType',
+ sort: 'custom',
+ isSearch: false,
+ isForm:false,
+ },
+ {
+ label: '验证人',
+ field: 'verifyer',
+ sort: 'custom',
+ isSearch: false,
+ isForm:false,
+ },
+ {
+ label: '验证内容',
+ field: 'verifyContent',
+ sort: 'custom',
+ isSearch: false,
+ isForm:false,
+ },
+ {
+ label: '验证时间',
+ field: 'verifyTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '保养人id',
+ field: 'maintenancer',
+ sort: 'custom',
+ isSearch: false,
+ isForm:false,
+ },
+ {
+ label: '保养人联系电话',
+ field: 'maintenancePhone',
+ sort: 'custom',
+ isSearch: false,
+ isForm:false,
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ // {
+ // label: '保养时间',
+ // field: 'maintenanceTime',
+ // sort: 'custom',
+ // formatter: dateFormatter,
+ // isSearch: true,
+ // search: {
+ // component: 'DatePicker',
+ // componentProps: {
+ // valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ // type: 'daterange',
+ // defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ // }
+ // },
+ // form: {
+ // component: 'DatePicker',
+ // componentProps: {
+ // type: 'datetime',
+ // valueFormat: 'x'
+ // }
+ // },
+ // },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.EAM_ORDER_STATUS,
+ dictClass: 'string',
+ },
+ // {
+ // label: '自动接单',
+ // field: 'autoOrder',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ // {
+ // label: '自动执行',
+ // field: 'autoPerform',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ // {
+ // label: '自动验证',
+ // field: 'autoVerify',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '所属厂区编号',
+ field: 'factoryAreaCode',
+ sort: 'custom',
+ isSearch: false,
+ isForm:false,
+ },
+ {
+ label: '车间代码',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ required: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '车间', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: BasicEamWorkshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getBasicEamWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
+
+
+
+export const EquipmentMaintenanceDetailRules = reactive({
+ number: [required],
+ masterId: [required],
+ peoples: [
+ {
+ required:false ,
+ message:'该项为必填项',
+ tagger:['blur']
+ },
+ {
+ validator:validateroundNumber,
+ message: '请输入正确的正整数',
+ trigger: 'blur'}],
+ estimatedMinutes: [
+ {
+ required:false ,
+ message:'该项为必填项',
+ tagger:['blur']
+ },
+ {
+ validator:validateroundNumber,
+ message: '请输入正确的正整数',
+ trigger: 'blur'}],
+ actualMinutes: [
+ {
+ required:false ,
+ message:'该项为必填项',
+ tagger:['blur']
+ },
+ {
+ validator:validateroundNumber,
+ message: '请输入正确的正整数',
+ trigger: 'blur'}],
+ // completionTime: [
+ // {
+ // required:false ,
+ // message:'该项为必填项',
+ // tagger:['blur']
+ // }],
+ result: [
+ {
+ required:false ,
+ message:'该项为必填项',
+ tagger:['blur']
+ }],
+ name: [required],
+ uncompletedCause:[{
+ required:false ,
+ message:'该项为必填项',
+ tagger:['blur','change']
+ }]
+})
+
+export const EquipmentMaintenanceDetail = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '保养工单号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ form:{
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ {
+ label: '主表id',
+ field: 'masterId',
+ sort: 'custom',
+ isSearch: true,
+ form:{
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ {
+ label: '人数',
+ field: 'peoples',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '预计分钟',
+ field: 'estimatedMinutes',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+
+ },
+ {
+ label: '实际分钟',
+ field: 'actualMinutes',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '责任人多选',
+ field: 'chargePeoples',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '未完成原因',
+ field: 'uncompletedCause',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '结果枚举',
+ field: 'result',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.IS_COMPLETED,
+ dictClass: 'string',
+ },
+ {
+ label: '保养项名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择 非必选保养项',
+ searchTitle: '非必选保养项信息', // 查询弹窗标题
+ searchAllSchemas: RelationMaintenancePlanItem.allSchemas, // 查询弹窗所需类
+ searchField: 'itemName', // 查询弹窗赋值字段
+ searchPage: ItemApi.getRelationMaintenancePlanItemPage, // 查询弹窗所需分页方法
+ searchCondition: []
+ }
+ }
+ },
+ // {
+ // label: '保养内容',
+ // field: 'content',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ // {
+ // label: '保养部位',
+ // field: 'equipmentParts',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentMaintenanceMain/finishForm1.vue b/src/views/eam/equipmentMaintenanceMain/finishForm1.vue
new file mode 100644
index 0000000..7562df2
--- /dev/null
+++ b/src/views/eam/equipmentMaintenanceMain/finishForm1.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentMaintenanceMain/finishForm2.vue b/src/views/eam/equipmentMaintenanceMain/finishForm2.vue
new file mode 100644
index 0000000..d62716a
--- /dev/null
+++ b/src/views/eam/equipmentMaintenanceMain/finishForm2.vue
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentMaintenanceMain/index.vue b/src/views/eam/equipmentMaintenanceMain/index.vue
new file mode 100644
index 0000000..bacf190
--- /dev/null
+++ b/src/views/eam/equipmentMaintenanceMain/index.vue
@@ -0,0 +1,576 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentMaintenanceRecordDetail/equipmentMaintenanceRecordDetail.data.ts b/src/views/eam/equipmentMaintenanceRecordDetail/equipmentMaintenanceRecordDetail.data.ts
new file mode 100644
index 0000000..ba6b45f
--- /dev/null
+++ b/src/views/eam/equipmentMaintenanceRecordDetail/equipmentMaintenanceRecordDetail.data.ts
@@ -0,0 +1,161 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const EquipmentMaintenanceRecordDetailRules = reactive({
+ number: [required],
+ masterId: [required],
+ name: [required],
+ equipmentParts: [required],
+ concurrencyStamp: [required]
+})
+
+export const EquipmentMaintenanceRecordDetail = useCrudSchemas(reactive([
+ {
+ label: '保养工单号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '主表',
+ field: 'masterId',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '人数',
+ field: 'peoples',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '预计分钟',
+ field: 'estimatedMinutes',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '实际分钟',
+ field: 'actualMinutes',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '责任人多选',
+ field: 'chargePeoples',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '未完成原因',
+ field: 'uncompletedCause',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '结果枚举',
+ field: 'result',
+ sort: 'custom',
+ dictType: DICT_TYPE.IS_COMPLETED,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ }
+ },
+ {
+ label: '保养名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '保养要求',
+ field: 'content',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Editor',
+ componentProps: {
+ valueHtml: '',
+ height: 200
+ }
+ }
+ },
+ {
+ label: '保养部位',
+ field: 'equipmentParts',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentMaintenanceRecordDetail/index.vue b/src/views/eam/equipmentMaintenanceRecordDetail/index.vue
new file mode 100644
index 0000000..ba11747
--- /dev/null
+++ b/src/views/eam/equipmentMaintenanceRecordDetail/index.vue
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentMaintenanceRecordMain/equipmentMaintenanceRecordMain.data.ts b/src/views/eam/equipmentMaintenanceRecordMain/equipmentMaintenanceRecordMain.data.ts
new file mode 100644
index 0000000..e0692e1
--- /dev/null
+++ b/src/views/eam/equipmentMaintenanceRecordMain/equipmentMaintenanceRecordMain.data.ts
@@ -0,0 +1,425 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const EquipmentMaintenanceRecordMainRules = reactive({
+ number: [required],
+ sources: [required],
+ equipmentCode: [required],
+ type: [required],
+ planStartTime: [required],
+ planEndTime: [required],
+ startTime: [required],
+ endTime: [required],
+})
+
+export const EquipmentMaintenanceRecordMain = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isForm: false,
+ },
+ {
+ label: '记录编号',
+ field: 'recordNo',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '保养工单',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '来源字典',
+ field: 'sources',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '设备编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '故障类型枚举',
+ field: 'faultType',
+ sort: 'custom',
+ isSearch: false,
+
+ },
+ {
+ label: '工装或设备字典',
+ field: 'type',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string',
+ },
+ {
+ label: '保养计划工单号',
+ field: 'planNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '计划开始时间',
+ field: 'planStartTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '计划结束时间',
+ field: 'planEndTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '保养开始时间',
+ field: 'startTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '保养结束时间',
+ field: 'endTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '保养班组',
+ field: 'classType',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '验证人',
+ field: 'verifyer',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '验证内容',
+ field: 'verifyContent',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'Editor',
+ componentProps: {
+ valueHtml: '',
+ height: 200
+ }
+ },
+ },
+ {
+ label: '验证时间',
+ field: 'verifyTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '保养人id',
+ field: 'maintenancer',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '保养人联系电话',
+ field: 'maintenancePhone',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ // {
+ // label: '保养时间',
+ // field: 'maintenanceTime',
+ // sort: 'custom',
+ // formatter: dateFormatter,
+ // isSearch: true,
+ // search: {
+ // component: 'DatePicker',
+ // componentProps: {
+ // valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ // type: 'daterange',
+ // defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ // }
+ // },
+ // form: {
+ // component: 'DatePicker',
+ // componentProps: {
+ // type: 'datetime',
+ // valueFormat: 'x'
+ // }
+ // },
+ // },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.EAM_ORDER_STATUS,
+ dictClass: 'string',
+ },
+ {
+ label: '保养经验',
+ field: 'isExperience',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ },
+ // {
+ // label: '自动接单',
+ // field: 'autoOrder',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ // {
+ // label: '自动执行',
+ // field: 'autoPerform',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ // {
+ // label: '自动验证',
+ // field: 'autoVerify',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '所属厂区编号',
+ field: 'factoryAreaCode',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '车间编号',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentMaintenanceRecordMain/index.vue b/src/views/eam/equipmentMaintenanceRecordMain/index.vue
new file mode 100644
index 0000000..49ef347
--- /dev/null
+++ b/src/views/eam/equipmentMaintenanceRecordMain/index.vue
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.recordNo }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentManufacturer/equipmentManufacturer.data.ts b/src/views/eam/equipmentManufacturer/equipmentManufacturer.data.ts
new file mode 100644
index 0000000..ac4ea82
--- /dev/null
+++ b/src/views/eam/equipmentManufacturer/equipmentManufacturer.data.ts
@@ -0,0 +1,153 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import { handleTreeToComponentOptions } from '@/utils/tree'
+import * as DeptApi from '@/api/system/dept'
+import * as UserApi from '@/api/system/user'
+
+export interface User {
+ id: number,
+ nickname: string
+}
+const allDeptList = await DeptApi.getSimpleDeptList();
+const deptList = ref([]) // 树形结构
+const userList = ref([])
+userList.value = await UserApi.getSimpleUserList()
+
+// 加载部门树(默认格式)
+deptList.value = handleTreeToComponentOptions(allDeptList)
+
+// 表单校验
+export const EquipmentManufacturerRules = reactive({
+ number: [required],
+ name: [required],
+ concurrencyStamp: [required]
+})
+
+export const EquipmentManufacturer = useCrudSchemas(reactive([
+
+ {
+ label: '生产商编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ fixed: 'left',
+ isForm: false,
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '简称',
+ field: 'shortName',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '地址',
+ field: 'address',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '国家',
+ field: 'country',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '城市',
+ field: 'city',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '电话',
+ field: 'phone',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '传真',
+ field: 'fax',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '邮编',
+ field: 'postId',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '联系人',
+ field: 'contacts',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Select',
+ componentProps: {
+ options: userList.value,
+ optionsAlias: {
+ labelField: 'nickname',
+ valueField: 'id'
+ },
+ filterable: true,
+ }
+ }
+ },
+ {
+ label: '部门',
+ field: 'departmentCode',
+ sort: 'custom',
+ isTable: false,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ form: {
+ component: 'TreeSelect',
+ componentProps: { // 假设deptList是部门数据列表
+ data: deptList,
+ placeholder: "请选择部门",
+ filterable: true,
+ // multiple: true,
+ }
+ }
+ },
+ {
+ label: '是否启用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Input',
+ componentProps: {
+ type: 'textarea'
+ }
+ }
+ },
+
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentManufacturer/index.vue b/src/views/eam/equipmentManufacturer/index.vue
new file mode 100644
index 0000000..ee6d8ab
--- /dev/null
+++ b/src/views/eam/equipmentManufacturer/index.vue
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentRepairJobDetail/equipmentRepairJobDetail.data.ts b/src/views/eam/equipmentRepairJobDetail/equipmentRepairJobDetail.data.ts
new file mode 100644
index 0000000..cae967c
--- /dev/null
+++ b/src/views/eam/equipmentRepairJobDetail/equipmentRepairJobDetail.data.ts
@@ -0,0 +1,145 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const EquipmentRepairJobDetailRules = reactive({
+ number: [required],
+ masterId: [required],
+ concurrencyStamp: [required],
+})
+
+export const EquipmentRepairJobDetail = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isForm: false,
+ },
+ {
+ label: '维修工单号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '主表id',
+ field: 'masterId',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '故障描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '故障原因关联基础数据',
+ field: 'faultCause',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '解决措施',
+ field: 'workOut',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '维修人员字符串多个',
+ field: 'maintenances',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentRepairJobDetail/index.vue b/src/views/eam/equipmentRepairJobDetail/index.vue
new file mode 100644
index 0000000..4f2733a
--- /dev/null
+++ b/src/views/eam/equipmentRepairJobDetail/index.vue
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentRepairJobMain/EquipmentRepairJobDetail.vue b/src/views/eam/equipmentRepairJobMain/EquipmentRepairJobDetail.vue
new file mode 100644
index 0000000..7626c06
--- /dev/null
+++ b/src/views/eam/equipmentRepairJobMain/EquipmentRepairJobDetail.vue
@@ -0,0 +1,1086 @@
+
+
+
+
+
+ {{ titleValueRef }} {{ t(`ts.${titleNameRef}`).replace('ts.','') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentRepairJobMain/equipmentRepairJobMain.data.ts b/src/views/eam/equipmentRepairJobMain/equipmentRepairJobMain.data.ts
new file mode 100644
index 0000000..cccee5d
--- /dev/null
+++ b/src/views/eam/equipmentRepairJobMain/equipmentRepairJobMain.data.ts
@@ -0,0 +1,822 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts.data";
+import * as EquipmentItemApi from "@/api/eam/equipmentAccounts";
+import {BasicFaultCause} from "@/views/eam/basicFaultCause/basicFaultCause.data";
+import * as ItemApi from "@/api/eam/basicFaultCause";
+import {BasicEamWorkshop} from "@/views/eam/basicEamWorkshop/basicEamWorkshop.data";
+import * as WorkshopApi from "@/api/eam/basicEamWorkshop";
+import {BasicFaultType} from "@/views/eam/basicFaultType/basicFaultType.data";
+import * as BasicFaultTypeApi from "@/api/eam/basicFaultType";
+
+// 表单校验
+export const EquipmentRepairJobMainRules = reactive({
+ number: [required],
+ type: [required],
+ sources: [required],
+ urgency: [required],
+ level: [required],
+ equipmentCode: [required],
+ faultType: [required],
+ status: [required],
+ shutDown:[required],
+})
+
+export const EquipmentRepairJobMain = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '维修工单号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '设备类别',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string',
+ isSearch: true,
+ },
+ {
+ label: '报修工单号',
+ field: 'repairNumber',
+ sort: 'custom',
+ isSearch: true,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '来源',
+ field: 'sources',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_MAINTENANCE_SOURCES,
+ dictClass: 'string',
+ isSearch: false,
+ isForm: true,
+ },
+ {
+ label: '维修描述',
+ field: 'maintenanceDesc',
+ sort: 'custom',
+ isSearch: true,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '紧急程度',
+ field: 'urgency',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_MAINTENANCE_URGENCY,
+ dictClass: 'string',
+ isSearch: true,
+ },
+ {
+ label: '维修级别',
+ field: 'level',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_MAINTENANCE_LEVEL,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '设备编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择 设备编号', // 输入框占位文本
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '是否停机',
+ field: 'shutDown',
+ sort: 'custom',
+ dictType: DICT_TYPE.INFRA_BOOLEAN_STRING,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'Radio'
+ }
+ },
+ {
+ label: '维修开始时间',
+ field: 'startTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '维修结束时间',
+ field: 'endTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '维修时长',
+ field: 'totalMinutes',
+ sort: 'custom',
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '维修验证人',
+ field: 'verifyerRepair',
+ sort: 'custom',
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '维修验证内容',
+ field: 'verifyContentRepair',
+ sort: 'custom',
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '维修验证时间',
+ field: 'verifyTimeRepair',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '报修验证人',
+ field: 'verifyerReport',
+ sort: 'custom',
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '报修验证内容',
+ field: 'verifyContentReport',
+ sort: 'custom',
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '报修验证时间',
+ field: 'verifyTimeReport',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '执行人',
+ field: 'maintenancer',
+ sort: 'custom',
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '维修人联系电话',
+ field: 'maintenancePhone',
+ sort: 'custom',
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '结果',
+ field: 'completeResult',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_COMPLETE_RESULT,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '执行时间',
+ field: 'maintenanceTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '报修时间',
+ field: 'repairTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '报修人',
+ field: 'repairer',
+ sort: 'custom',
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '故障类型',
+ field: 'faultType',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择故障类型', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '故障类型信息', // 查询弹窗标题
+ searchAllSchemas: BasicFaultType.allSchemas, // 查询弹窗所需类
+ searchPage: BasicFaultTypeApi.getBasicFaultTypePage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '故障描述',
+ field: 'faultDesc',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_REPAIR_STATUS,
+ dictClass: 'string',
+ isSearch: true,
+ },
+ // {
+ // label: '自动接单',
+ // field: 'autoOrder',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ // {
+ // label: '自动执行',
+ // field: 'autoPerform',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ // {
+ // label: '自动验证',
+ // field: 'autoVerify',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '班组类型',
+ field: 'classType',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ // {
+ // label: '所属厂区编号',
+ // field: 'factoryAreaCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ {
+ label: '车间代码',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ required: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '车间', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: BasicEamWorkshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getBasicEamWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+
+ // {
+ // label: '产线编号',
+ // field: 'lineCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ // {
+ // label: '工序编号',
+ // field: 'processCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ // {
+ // label: '工位编号',
+ // field: 'workstationCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
+
+// 表单校验
+export const EquipmentRepairJobDetailRules = reactive({
+ number: [required],
+ masterId: [required],
+ describing:[required],
+ faultCause:[required],
+ workOut:[required],
+ maintenances:[required],
+})
+
+export const EquipmentRepairJobDetail = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '维修工单号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ form:{
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ {
+ label: '主表id',
+ field: 'masterId',
+ sort: 'custom',
+ isSearch: true,
+ form:{
+ componentProps: {
+ disabled: true
+ }
+ },
+ },
+ {
+ label: '故障描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '故障原因',
+ field: 'faultCause',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择 故障原因',
+ searchTitle: '故障原因', // 查询弹窗标题
+ searchAllSchemas: BasicFaultCause.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: ItemApi.getBasicFaultCausePage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '解决措施',
+ field: 'workOut',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '维修人员',
+ field: 'maintenances',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentRepairJobMain/finishForm1.vue b/src/views/eam/equipmentRepairJobMain/finishForm1.vue
new file mode 100644
index 0000000..4f42c44
--- /dev/null
+++ b/src/views/eam/equipmentRepairJobMain/finishForm1.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentRepairJobMain/finishForm2.vue b/src/views/eam/equipmentRepairJobMain/finishForm2.vue
new file mode 100644
index 0000000..dec383f
--- /dev/null
+++ b/src/views/eam/equipmentRepairJobMain/finishForm2.vue
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentRepairJobMain/finishForm3.vue b/src/views/eam/equipmentRepairJobMain/finishForm3.vue
new file mode 100644
index 0000000..32e06d5
--- /dev/null
+++ b/src/views/eam/equipmentRepairJobMain/finishForm3.vue
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentRepairJobMain/index.vue b/src/views/eam/equipmentRepairJobMain/index.vue
new file mode 100644
index 0000000..ec50181
--- /dev/null
+++ b/src/views/eam/equipmentRepairJobMain/index.vue
@@ -0,0 +1,627 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentRepairJobMain/transferForm.vue b/src/views/eam/equipmentRepairJobMain/transferForm.vue
new file mode 100644
index 0000000..e6fe8bf
--- /dev/null
+++ b/src/views/eam/equipmentRepairJobMain/transferForm.vue
@@ -0,0 +1,344 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentRepairRecordDetail/equipmentRepairRecordDetail.data.ts b/src/views/eam/equipmentRepairRecordDetail/equipmentRepairRecordDetail.data.ts
new file mode 100644
index 0000000..bff6d68
--- /dev/null
+++ b/src/views/eam/equipmentRepairRecordDetail/equipmentRepairRecordDetail.data.ts
@@ -0,0 +1,82 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const EquipmentRepairRecordDetailRules = reactive({
+ number: [required],
+ concurrencyStamp: [required]
+})
+
+export const EquipmentRepairRecordDetail = useCrudSchemas(reactive([
+ {
+ label: '维修工单号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '主表',
+ field: 'masterId',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '故障描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '故障真因',
+ field: 'faultCause',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '解决措施',
+ field: 'workOut',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '维修人员字符串多个',
+ field: 'maintenances',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentRepairRecordDetail/index.vue b/src/views/eam/equipmentRepairRecordDetail/index.vue
new file mode 100644
index 0000000..56f4ec0
--- /dev/null
+++ b/src/views/eam/equipmentRepairRecordDetail/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentRepairRecordMain/equipmentRepairRecordMain.data.ts b/src/views/eam/equipmentRepairRecordMain/equipmentRepairRecordMain.data.ts
new file mode 100644
index 0000000..31ac33e
--- /dev/null
+++ b/src/views/eam/equipmentRepairRecordMain/equipmentRepairRecordMain.data.ts
@@ -0,0 +1,419 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts.data";
+import * as EquipmentItemApi from "@/api/eam/equipmentAccounts";
+
+// 表单校验
+export const EquipmentRepairRecordMainRules = reactive({
+ number: [required],
+ type: [required],
+ sources: [required],
+ urgency: [required],
+ level: [required],
+ equipmentCode: [required],
+ totalMinutes: [required],
+ faultType: [required],
+})
+
+export const EquipmentRepairRecordMain = useCrudSchemas(reactive([
+ {
+ label: '维修编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '类型',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ },
+ {
+ label: '报修工单号',
+ field: 'repairNumber',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '来源字典',
+ field: 'sources',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_MAINTENANCE_SOURCES,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ },
+ {
+ label: '维修描述',
+ field: 'maintenanceDesc',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '紧急程度',
+ field: 'urgency',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_MAINTENANCE_URGENCY,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ },
+ {
+ label: '维修级别',
+ field: 'level',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_MAINTENANCE_LEVEL,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ },
+ {
+ label: '设备编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择 设备编号', // 输入框占位文本
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '是否停机',
+ field: 'shutDown',
+ sort: 'custom',
+ dictType: DICT_TYPE.INFRA_BOOLEAN_STRING,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Radio'
+ }
+ },
+ {
+ label: '维修开始时间',
+ field: 'startTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '维修结束时间',
+ field: 'endTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '维修时间',
+ field: 'totalMinutes',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '验证人',
+ field: 'verifyer',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '验证内容',
+ field: 'verifyContent',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'Editor',
+ componentProps: {
+ valueHtml: '',
+ height: 200
+ }
+ }
+ },
+ {
+ label: '验证时间',
+ field: 'verifyTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '执行人',
+ field: 'maintenancer',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '维修人联系电话',
+ field: 'maintenancePhone',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '结果枚举',
+ field: 'completeResult',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_COMPLETE_RESULT,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '执行时间',
+ field: 'maintenanceTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '报修时间',
+ field: 'repairTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '报修人',
+ field: 'repairer',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '故障类型',
+ field: 'faultType',
+ sort: 'custom',
+ dictType: DICT_TYPE.FAILURE_REASON,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_REPAIR_STATUS,
+ dictClass: 'string',
+ isSearch: true,
+ },
+ {
+ label: '维修经验',
+ field: 'isExperience',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ },
+ {
+ label: '自动接单',
+ field: 'autoOrder',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '自动执行',
+ field: 'autoPerform',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '自动验证',
+ field: 'autoVerify',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '班组类型',
+ field: 'classType',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '所属厂区编号',
+ field: 'factoryAreaCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '车间编号',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '工段编号',
+ field: 'workshopSectionCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentRepairRecordMain/index.vue b/src/views/eam/equipmentRepairRecordMain/index.vue
new file mode 100644
index 0000000..b7ca3b3
--- /dev/null
+++ b/src/views/eam/equipmentRepairRecordMain/index.vue
@@ -0,0 +1,327 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentReportRepairRequest/audiForm.vue b/src/views/eam/equipmentReportRepairRequest/audiForm.vue
new file mode 100644
index 0000000..cdbeb22
--- /dev/null
+++ b/src/views/eam/equipmentReportRepairRequest/audiForm.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentReportRepairRequest/equipmentReportRepairRequest.data.ts b/src/views/eam/equipmentReportRepairRequest/equipmentReportRepairRequest.data.ts
new file mode 100644
index 0000000..6973d79
--- /dev/null
+++ b/src/views/eam/equipmentReportRepairRequest/equipmentReportRepairRequest.data.ts
@@ -0,0 +1,268 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts.data";
+import * as EquipmentItemApi from "@/api/eam/equipmentAccounts";
+import {BasicEamWorkshop} from "@/views/eam/basicEamWorkshop/basicEamWorkshop.data";
+import * as WorkshopApi from "@/api/eam/basicEamWorkshop";
+import {dateFormatter} from '@/utils/formatTime'
+import {BasicFaultType} from "@/views/eam/basicFaultType/basicFaultType.data";
+import * as BasicFaultTypeApi from "@/api/eam/basicFaultType";
+
+// 表单校验
+export const EquipmentReportRepairRequestRules = reactive({
+ number: [required],
+ type: [required],
+ equipmentCode: [required],
+ urgency: [required],
+ repairmaner: [required],
+ status: [required],
+ shutDown:[required],
+ repairPhone:[required],
+ available:[required],
+ workshopCode:[required],
+ faultType:[required],
+})
+
+export const EquipmentReportRepairRequest = useCrudSchemas(reactive([
+ {
+ label: '报修编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '类型',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ },
+ {
+ label: '设备工装编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择 设备编号', // 输入框占位文本
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '紧急程度',
+ field: 'urgency',
+ sort: 'custom',
+ dictType: DICT_TYPE.FAILURE_DEGREE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true
+ },
+ {
+ label: '故障类型枚举',
+ field: 'faultType',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择故障类型', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '故障类型信息', // 查询弹窗标题
+ searchAllSchemas: BasicFaultType.allSchemas, // 查询弹窗所需类
+ searchPage: BasicFaultTypeApi.getBasicFaultTypePage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '故障描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '是否停机',
+ field: 'shutDown',
+ sort: 'custom',
+ dictType: DICT_TYPE.INFRA_BOOLEAN_STRING,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'Radio'
+ }
+ },
+ {
+ label: '报修图片',
+ field: 'images',
+ sort: 'custom',
+ isSearch: false,
+ isForm: true,
+ isTable: true,
+ isDetail: false,
+ form: {
+ component: 'UploadImgs',
+ componentProps: {
+ limit:3,
+ upData:{
+ tableId:'1',
+ tableName:'request_equipment_report_repair'
+ }
+ }
+ }
+ },
+ // {
+ // label: '所属厂区编号',
+ // field: 'factoryAreaCode',
+ // sort: 'custom',
+ // isSearch: false,
+ // },
+ {
+ label: '车间代码',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ required: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '车间', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: BasicEamWorkshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getBasicEamWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '报修人',
+ field: 'repairmaner',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '报修人联系电话',
+ field: 'repairPhone',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '报修状态',
+ field: 'status',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_REPAIR_REPORT_STATUS,
+ dictClass: 'string',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '审核人',
+ field: 'approver',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '审核内容',
+ field: 'approveContent',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '审核时间',
+ field: 'approveTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ // {
+ // label: '自动审核',
+ // field: 'autoExamine',
+ // sort: 'custom',
+ // isSearch: true
+ // },
+ // {
+ // label: '自动通过',
+ // field: 'autoAgree',
+ // sort: 'custom',
+ // isSearch: true
+ // },
+ // {
+ // label: '自动确认',
+ // field: 'autoVerify',
+ // sort: 'custom',
+ // isSearch: true
+ // },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ isForm: false
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentReportRepairRequest/index.vue b/src/views/eam/equipmentReportRepairRequest/index.vue
new file mode 100644
index 0000000..b9a65fb
--- /dev/null
+++ b/src/views/eam/equipmentReportRepairRequest/index.vue
@@ -0,0 +1,438 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentShutdown/equipmentShutdown.data.ts b/src/views/eam/equipmentShutdown/equipmentShutdown.data.ts
new file mode 100644
index 0000000..37180f9
--- /dev/null
+++ b/src/views/eam/equipmentShutdown/equipmentShutdown.data.ts
@@ -0,0 +1,267 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import * as UserApi from '@/api/system/user'
+import { EquipmentAccounts,EquipmentAccountsRules } from '../equipmentAccounts/equipmentAccounts.data'
+import * as EquipmentAccountsApi from '@/api/eam/equipmentAccounts'
+import * as ProductionlineApi from '@/api/wms/productionline'
+import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data'
+import * as WorkshopApi from '@/api/wms/workshop'
+import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data'
+import * as ProcessApi from '@/api/wms/process'
+import { Process } from '@/views/wms/basicDataManage/factoryModeling/process/process.data'
+import * as WorkStationApi from '@/api/wms/workstation'
+import { Workstation } from '@/views/wms/basicDataManage/factoryModeling/workstation/workstation.data'
+
+export interface User {
+ id: number,
+ nickname: string
+}
+
+const userList = ref([])
+userList.value = await UserApi.getSimpleUserList()
+// 表单校验
+export const EquipmentShutdownRules = reactive({
+ equipmentCode: [required],
+ operationDate: [required],
+ concurrencyStamp: [required]
+})
+
+export const EquipmentShutdown = useCrudSchemas(reactive([
+ {
+ label: '设备编码',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择设备', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: EquipmentAccountsApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '操作日期',
+ field: 'operationDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '操作人',
+ field: 'operationer',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Select',
+ componentProps: { // 假设deptList是部门数据列表
+ options: userList.value,
+ optionsAlias: {
+ valueField: 'id',
+ labelField: 'nickname'
+ },
+ disabled: false,
+ placeholder: "请选择操作人",
+ filterable: true,
+ multiple: false,
+ }
+ }
+ },
+ // {
+ // label: '所属厂区编号',
+ // field: 'factoryAreaCode',
+ // sort: 'custom',
+ // isSearch: true
+ // },
+ {
+ label: '车间编号',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择车间代码', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '产线编号',
+ field: 'lineCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
+ multiple:true,
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '生产线信息', // 查询弹窗标题
+ searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类
+ searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key:'workshopCode',
+ value:'workshopCode',
+ message: '请填写车间代码!',
+ isMainValue: true
+ },{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ // {
+ // label: '工序编号',
+ // field: 'processCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // form:{
+ // componentProps: {
+ // isSearchList: true,
+ // searchListPlaceholder: '请选择工序代码',
+ // searchField: 'code',
+ // searchTitle: '工序信息',
+ // searchAllSchemas: Process.allSchemas,
+ // searchPage: ProcessApi.getProcessPage,
+ // searchCondition: [{
+ // key:'productionLineCode',
+ // value:'lineCode',
+ // message: '请填写生产线代码!',
+ // isMainValue: true
+ // },{
+ // key:'workshopCode',
+ // value:'workshopCode',
+ // message: '请填写车间代码!',
+ // isMainValue: true
+ // },{
+ // key: 'available',
+ // value: 'TRUE',
+ // isMainValue: false
+ // }]
+ // }
+ // },
+ // },
+ // {
+ // label: '工位编号',
+ // field: 'workstationCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // form:{
+ // componentProps: {
+ // isSearchList: true, // 开启查询弹窗
+ // searchListPlaceholder: '请选择工位', // 输入框占位文本
+ // searchField: 'code', // 查询弹窗赋值字段
+ // searchTitle: '工位信息', // 查询弹窗标题
+ // searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
+ // searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法
+ // searchCondition: [{
+ // key:'productionLineCode',
+ // value:'lineCode',
+ // message: '请填写生产线代码!',
+ // isMainValue: true
+ // },{
+ // key:'workshopCode',
+ // value:'workshopCode',
+ // message: '请填写车间代码!',
+ // isMainValue: true
+ // },{
+ // key:'available',
+ // value:'TRUE',
+ // isMainValue: false
+ // }]
+ // }
+ // },
+ // },
+ {
+ label: '是否停机',
+ field: 'status',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ form: {
+ component: 'Radio'
+ }
+ },
+ {
+ label: '设备停机原因',
+ field: 'shutdownCause',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'Input',
+ componentProps: {
+ type: 'textarea'
+ }
+ }
+
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false
+ },
+ // {
+ // label: '是否可用',
+ // field: 'available',
+ // sort: 'custom',
+ // dictType: DICT_TYPE.TRUE_FALSE,
+ // dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ // isSearch: true,
+ // form: {
+ // component: 'Switch',
+ // value: 'TRUE',
+ // componentProps: {
+ // inactiveValue: 'FALSE',
+ // activeValue: 'TRUE'
+ // }
+ // }
+ // },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentShutdown/index.vue b/src/views/eam/equipmentShutdown/index.vue
new file mode 100644
index 0000000..b8879f1
--- /dev/null
+++ b/src/views/eam/equipmentShutdown/index.vue
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentSigning/equipmentSigning.data.ts b/src/views/eam/equipmentSigning/equipmentSigning.data.ts
new file mode 100644
index 0000000..61756c1
--- /dev/null
+++ b/src/views/eam/equipmentSigning/equipmentSigning.data.ts
@@ -0,0 +1,469 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import { handleTreeToComponentOptions } from '@/utils/tree'
+import * as DeptApi from '@/api/system/dept'
+import * as UserApi from '@/api/system/user'
+import { EquipmentAccounts,EquipmentAccountsRules } from '../equipmentAccounts/equipmentAccounts.data'
+import * as EquipmentAccountsApi from '@/api/eam/equipmentAccounts'
+import * as EquipmentSupplierApi from '@/api/eam/equipmentSupplier'
+import * as BasicEamWorkshopApi from '@/api/eam/basicEamWorkshop'
+export interface User {
+ id: number,
+ nickname: string
+}
+
+const workshopList = await BasicEamWorkshopApi.getBasicEamWorkshopNoPage({})
+const equipmentSupplierList = await EquipmentSupplierApi.getEquipmentSupplierNoPage({})
+const allDeptList = await DeptApi.getSimpleDeptList()
+const deptList = ref([]) // 树形结构
+const userList = ref([])
+userList.value = await UserApi.getSimpleUserList()
+// 加载部门树(默认格式)
+deptList.value = handleTreeToComponentOptions(allDeptList)
+
+// 表单校验
+export const EquipmentSigningRules = reactive({
+ equipmentCode: [required],
+ operationDate: [required],
+ operationer: [required],
+ operationDept: [required],
+ status: [required],
+ storageLocation: [required],
+ concurrencyStamp: [required],
+ workshopCode: [required]
+})
+
+export const EquipmentSigning = useCrudSchemas(reactive([
+ {
+ label: '设备编码',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择设备', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: EquipmentAccountsApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ searchCondition:
+ [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ },{
+ key: 'status',
+ value: 'TOACCEPT',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '验收日期',
+ field: 'operationDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '验收人部门',
+ field: 'operationDept',
+ sort: 'custom',
+ isSearch: true,
+ formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
+ return allDeptList.find((item) => item.id == cellValue)?.name
+ },
+ form: {
+ component: 'TreeSelect',
+ componentProps: { // 假设deptList是部门数据列表
+ data: deptList.value,
+ disabled: false,
+ placeholder: "请选择部门",
+ filterable: true,
+ multiple: false,
+ }
+ }
+ },
+ {
+ label: '验收人',
+ field: 'operationer',
+ sort: 'custom',
+ isSearch: true,
+ formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
+ return userList.value.find((item) => item.id == cellValue)?.nickname
+ },
+ form: {
+ component: 'Select',
+ componentProps: { // 假设deptList是部门数据列表
+ options: userList.value,
+ optionsAlias: {
+ valueField: 'id',
+ labelField: 'nickname'
+ },
+ disabled: false,
+ placeholder: "请先选择部门",
+ filterable: true,
+ multiple: false,
+ }
+ }
+ },
+ {
+ label: '验收人联系方式',
+ field: 'telephone',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '供应商编号',
+ field: 'supplierCode',
+ sort: 'custom',
+ isSearch: false,
+ isForm: true,
+ isDetail: false,
+ isTable: false,
+ isTableForm: false,
+ form: {
+ component: 'Select',
+ componentProps: {
+ options: equipmentSupplierList,
+ optionsAlias: {
+ labelField: 'name',
+ valueField: 'number'
+ },
+ filterable: true,
+ disabled: true,
+ }
+ }
+ },
+ // {
+ // label: '供应商编号',
+ // field: 'supplierName',
+ // sort: 'custom',
+ // isSearch: false,
+ // isForm: true,
+ // isDetail: false,
+ // isTable: false,
+ // isTableForm: false,
+ // form: {
+ // component: 'Input',
+ // componentProps: {
+ // disabled: true
+ // }
+ // }
+ // },
+ {
+ label: '供应商联系人',
+ field: 'supplierPeople',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Select',
+ componentProps: {
+ options: userList.value,
+ optionsAlias: {
+ labelField: 'nickname',
+ valueField: 'id'
+ },
+ disabled: true,
+ }
+ }
+ },
+ {
+ label: '供应商联系方式',
+ field: 'supplierTelephone',
+ sort: 'custom',
+ isSearch: false,
+ isForm: true,
+ form: {
+ component: 'Input',
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ // {
+ // label: '流程状态',
+ // field: 'status',
+ // sort: 'custom',
+ // isSearch: true,
+ // dictType: DICT_TYPE.JOB_STATUS,
+ // dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ // form: {
+ // component: 'Select'
+ // }
+ // },
+ // {
+ // label: '审核人',
+ // field: 'approver',
+ // sort: 'custom',
+ // isSearch: true,
+ // form: {
+ // component: 'InputNumber',
+ // value: 0
+ // }
+ // },
+ // {
+ // label: '审核内容',
+ // field: 'approveContent',
+ // sort: 'custom',
+ // isSearch: false,
+ // form: {
+ // component: 'Input',
+ // componentProps: {
+ // type: 'textarea',
+ // valueHtml: '',
+ // height: 200
+ // }
+ // }
+ // },
+ // {
+ // label: '审核时间',
+ // field: 'approveTime',
+ // sort: 'custom',
+ // formatter: dateFormatter,
+ // isSearch: false,
+ // search: {
+ // component: 'DatePicker',
+ // componentProps: {
+ // valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ // type: 'daterange',
+ // defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ // }
+ // },
+ // form: {
+ // component: 'DatePicker',
+ // componentProps: {
+ // type: 'datetime',
+ // valueFormat: 'x'
+ // }
+ // }
+ // },
+ // {
+ // label: '自动审核',
+ // field: 'autoExamine',
+ // sort: 'custom',
+ // dictType: DICT_TYPE.TRUE_FALSE,
+ // dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ // isSearch: false,
+ // form: {
+ // component: 'Switch',
+ // value: 'TRUE',
+ // componentProps: {
+ // inactiveValue: 'FALSE',
+ // activeValue: 'TRUE'
+ // }
+ // }
+ // },
+ // {
+ // label: '自动通过',
+ // field: 'autoAgree',
+ // sort: 'custom',
+ // dictType: DICT_TYPE.TRUE_FALSE,
+ // dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ // isSearch: false,
+ // form: {
+ // component: 'Switch',
+ // value: 'TRUE',
+ // componentProps: {
+ // inactiveValue: 'FALSE',
+ // activeValue: 'TRUE'
+ // }
+ // }
+ // },
+ // {
+ // label: '直接生成记录',
+ // field: 'directCreateRecord',
+ // sort: 'custom',
+ // dictType: DICT_TYPE.TRUE_FALSE,
+ // dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ // isSearch: false,
+ // form: {
+ // component: 'Switch',
+ // value: 'TRUE',
+ // componentProps: {
+ // inactiveValue: 'FALSE',
+ // activeValue: 'TRUE'
+ // }
+ // }
+ // },
+ {
+ label: '存放位置描述',
+ field: 'storageLocation',
+ sort: 'custom',
+ isSearch: false,
+ isForm: true,
+ form: {
+ component: 'Input',
+ componentProps: {
+ type: 'textarea',
+ placeholder: '请输入存放位置描述'
+ }
+ }
+ },
+ // {
+ // label: '所属厂区编号',
+ // field: 'factoryAreaCode',
+ // sort: 'custom',
+ // isSearch: false
+ // },
+ {
+ label: '车间编号',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ formatter: (_: Recordable, __: TableColumn, cellValue: string) => {
+ return workshopList.find((item) => item.code == cellValue)?.name
+ },
+ form: {
+ component: 'Select',
+ componentProps: {
+ options: workshopList,
+ placeholder: '请选择车间编号',
+ optionsAlias: {
+ valueField: 'code',
+ labelField: 'name'
+ }
+ }
+ }
+ },
+ // {
+ // label: '产线编号',
+ // field: 'lineCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // form: {
+ // // labelMessage: '信息提示说明!!!',
+ // componentProps: {
+ // isSearchList: true, // 开启查询弹窗
+ // searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
+ // multiple:true,
+ // searchField: 'code', // 查询弹窗赋值字段
+ // searchTitle: '生产线信息', // 查询弹窗标题
+ // searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类
+ // searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法
+ // searchCondition: [{
+ // key:'workshopCode',
+ // value:'workshopCode',
+ // message: '请填写车间代码!',
+ // isMainValue: true
+ // },{
+ // key: 'available',
+ // value: 'TRUE',
+ // isMainValue: false
+ // }]
+ // }
+ // }
+ // },
+ // {
+ // label: '工序编号',
+ // field: 'processCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // form:{
+ // componentProps: {
+ // isSearchList: true,
+ // searchListPlaceholder: '请选择工序代码',
+ // searchField: 'code',
+ // searchTitle: '工序信息',
+ // searchAllSchemas: Process.allSchemas,
+ // searchPage: ProcessApi.getProcessPage,
+ // searchCondition: [{
+ // key:'productionLineCode',
+ // value:'lineCode',
+ // message: '请填写生产线代码!',
+ // isMainValue: true
+ // },{
+ // key:'workshopCode',
+ // value:'workshopCode',
+ // message: '请填写车间代码!',
+ // isMainValue: true
+ // },{
+ // key: 'available',
+ // value: 'TRUE',
+ // isMainValue: false
+ // }]
+ // }
+ // },
+ // },
+ // {
+ // label: '工位编号',
+ // field: 'workstationCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // form:{
+ // componentProps: {
+ // isSearchList: true, // 开启查询弹窗
+ // searchListPlaceholder: '请选择工位', // 输入框占位文本
+ // searchField: 'code', // 查询弹窗赋值字段
+ // searchTitle: '工位信息', // 查询弹窗标题
+ // searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
+ // searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法
+ // searchCondition: [{
+ // key:'productionLineCode',
+ // value:'lineCode',
+ // message: '请填写生产线代码!',
+ // isMainValue: true
+ // },{
+ // key:'workshopCode',
+ // value:'workshopCode',
+ // message: '请填写车间代码!',
+ // isMainValue: true
+ // },{
+ // key:'available',
+ // value:'TRUE',
+ // isMainValue: false
+ // }]
+ // }
+ // },
+ // },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false
+ },
+ // {
+ // label: '是否可用',
+ // field: 'available',
+ // sort: 'custom',
+ // dictType: DICT_TYPE.TRUE_FALSE,
+ // dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ // isSearch: true,
+ // form: {
+ // component: 'Switch',
+ // value: 'TRUE',
+ // componentProps: {
+ // inactiveValue: 'FALSE',
+ // activeValue: 'TRUE'
+ // }
+ // }
+ // },
+ // {
+ // label: '操作',
+ // field: 'action',
+ // isForm: false,
+ // table: {
+ // width: 150,
+ // fixed: 'right'
+ // }
+ // }
+]))
diff --git a/src/views/eam/equipmentSigning/index.vue b/src/views/eam/equipmentSigning/index.vue
new file mode 100644
index 0000000..6ca9e21
--- /dev/null
+++ b/src/views/eam/equipmentSigning/index.vue
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentSpotCheckDetail/equipmentSpotCheckDetail.data.ts b/src/views/eam/equipmentSpotCheckDetail/equipmentSpotCheckDetail.data.ts
new file mode 100644
index 0000000..b08f305
--- /dev/null
+++ b/src/views/eam/equipmentSpotCheckDetail/equipmentSpotCheckDetail.data.ts
@@ -0,0 +1,257 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import * as ItemApi from "@/api/eam/relationSpotCheckPlanItem"
+import {
+ RelationSpotCheckPlanItem
+} from "@/views/eam/equipmentSpotCheckMain/equipmentSpotCheckMain.data";
+
+// 表单校验
+export const EquipmentSpotCheckDetailRules = reactive({
+ number: [required],
+ masterId: [required],
+ name: [required],
+ uncompletedCause:[{
+ required: false,
+ message:'该项为必填项',
+ tagger:['blur','change']
+ }],
+ result: [
+ {
+ required:false ,
+ message:'该项为必填项',
+ tagger:['blur']
+ }],
+})
+
+export const EquipmentSpotCheckDetail = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '点检工单号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ form:{
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ {
+ label: '主表id',
+ field: 'masterId',
+ sort: 'custom',
+ isSearch: true,
+ form:{
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '异常原因',
+ field: 'uncompletedCause',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '结果',
+ field: 'result',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.IS_NORMAL,
+ dictClass: 'string'
+ },
+ {
+ label: '点检项名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择 非必选点检项',
+ searchTitle: '非必选点检项信息', // 查询弹窗标题
+ searchAllSchemas: RelationSpotCheckPlanItem.allSchemas, // 查询弹窗所需类
+ searchField: 'itemName', // 查询弹窗赋值字段
+ searchPage: ItemApi.getRelationSpotCheckPlanItemPage, // 查询弹窗所需分页方法
+ searchCondition: []
+ }
+ }
+ },
+ {
+ label: '点检内容自动带出',
+ field: 'content',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'Editor',
+ componentProps: {
+ valueHtml: '',
+ height: 200
+ }
+ },
+ },
+ {
+ label: '点检部位自动带出',
+ field: 'equipmentParts',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '点检方法自动带出',
+ field: 'methods',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentSpotCheckDetail/index.vue b/src/views/eam/equipmentSpotCheckDetail/index.vue
new file mode 100644
index 0000000..f84a3ee
--- /dev/null
+++ b/src/views/eam/equipmentSpotCheckDetail/index.vue
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentSpotCheckMain/SpotCheckOrderDetail.vue b/src/views/eam/equipmentSpotCheckMain/SpotCheckOrderDetail.vue
new file mode 100644
index 0000000..a32c352
--- /dev/null
+++ b/src/views/eam/equipmentSpotCheckMain/SpotCheckOrderDetail.vue
@@ -0,0 +1,1055 @@
+
+
+
+
+
+ {{ titleValueRef }} {{ t(`ts.${titleNameRef}`).replace('ts.','') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentSpotCheckMain/equipmentSpotCheckMain.data.ts b/src/views/eam/equipmentSpotCheckMain/equipmentSpotCheckMain.data.ts
new file mode 100644
index 0000000..f4a4f08
--- /dev/null
+++ b/src/views/eam/equipmentSpotCheckMain/equipmentSpotCheckMain.data.ts
@@ -0,0 +1,703 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts.data";
+import * as EquipmentItemApi from "@/api/eam/equipmentAccounts";
+import {BasicFaultType} from "@/views/eam/basicFaultType/basicFaultType.data";
+import * as BasicFaultTypeApi from "@/api/eam/basicFaultType";
+import {Workshop} from "@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data";
+import * as WorkshopApi from "@/api/wms/workshop";
+
+// 表单校验
+export const EquipmentSpotCheckMainRules = reactive({
+ type: [required],
+ number: [required],
+ equipmentCode: [required],
+ planNumber: [required],
+ planStartTime: [required],
+ planEndTime: [required],
+ status: [required],
+ workshopCode: [required],
+})
+
+export const EquipmentSpotCheckMain = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '点检工单',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm:false,
+ },
+ {
+ label: '来源字典',
+ field: 'sources',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_SPOTCHECK_SOURCES,
+ dictClass: 'string',
+ isSearch: false,
+ isForm:false,
+ },
+ {
+ label: '点检描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '设备类别',
+ field: 'type',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '设备编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择 设备编号', // 输入框占位文本
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '点检计划工单号',
+ field: 'planNumber',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ },
+ {
+ label: '计划开始时间',
+ field: 'planStartTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '计划结束时间',
+ field: 'planEndTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '点检开始时间',
+ field: 'startTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '点检结束时间',
+ field: 'endTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '故障类型枚举',
+ field: 'faultType',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择故障类型', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '故障类型信息', // 查询弹窗标题
+ searchAllSchemas: BasicFaultType.allSchemas, // 查询弹窗所需类
+ searchPage: BasicFaultTypeApi.getBasicFaultTypePage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '验证人',
+ field: 'verifyer',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '验证内容',
+ field: 'verifyContent',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '验证时间',
+ field: 'verifyTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '点检人id',
+ field: 'maintenancer',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '点检人电话',
+ field: 'maintenancePhone',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '点检时间',
+ field: 'maintenanceTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '是否拍照',
+ field: 'isPictures',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ dictType: DICT_TYPE.FALSE_OR_TRUE,
+ dictClass: 'string',
+ },
+ {
+ label: '是否需要维修',
+ field: 'isRepair',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.FALSE_OR_TRUE,
+ dictClass: 'string',
+ },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.EAM_ORDER_STATUS,
+ dictClass: 'string',
+ },
+ {
+ label: '自动接单',
+ field: 'autoOrder',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '自动执行',
+ field: 'autoPerform',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '自动验证',
+ field: 'autoVerify',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '班组类型',
+ field: 'classType',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '所属厂区编号',
+ field: 'factoryAreaCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '车间编号',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: false,
+ required: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '车间', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '产线编号',
+ field: 'lineCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '工序编号',
+ field: 'processCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '工位编号',
+ field: 'workstationCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
+
+
+export const RelationSpotCheckPlanItemRules = reactive({
+ planNumber: [required],
+ itemCode: [required],
+ itemName: [required],
+ concurrencyStamp: [required],
+})
+
+export const RelationSpotCheckPlanItem = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '计划编号',
+ field: 'planNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '项编号',
+ field: 'itemCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '项名称',
+ field: 'itemName',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '是否必选',
+ field: 'isSelectd',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.FALSE_OR_TRUE,
+ dictClass: 'string',
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentSpotCheckMain/finishForm1.vue b/src/views/eam/equipmentSpotCheckMain/finishForm1.vue
new file mode 100644
index 0000000..7e96adf
--- /dev/null
+++ b/src/views/eam/equipmentSpotCheckMain/finishForm1.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentSpotCheckMain/finishForm2.vue b/src/views/eam/equipmentSpotCheckMain/finishForm2.vue
new file mode 100644
index 0000000..b9bf155
--- /dev/null
+++ b/src/views/eam/equipmentSpotCheckMain/finishForm2.vue
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentSpotCheckMain/index.vue b/src/views/eam/equipmentSpotCheckMain/index.vue
new file mode 100644
index 0000000..6637bd8
--- /dev/null
+++ b/src/views/eam/equipmentSpotCheckMain/index.vue
@@ -0,0 +1,562 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentSpotCheckRecordDetail/equipmentSpotCheckRecordDetail.data.ts b/src/views/eam/equipmentSpotCheckRecordDetail/equipmentSpotCheckRecordDetail.data.ts
new file mode 100644
index 0000000..96ac8c2
--- /dev/null
+++ b/src/views/eam/equipmentSpotCheckRecordDetail/equipmentSpotCheckRecordDetail.data.ts
@@ -0,0 +1,127 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const EquipmentSpotCheckRecordDetailRules = reactive({
+ number: [required],
+ masterId: [required],
+ name: [required],
+ concurrencyStamp: [required]
+})
+
+export const EquipmentSpotCheckRecordDetail = useCrudSchemas(reactive([
+ {
+ label: '点检工单号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true
+ },
+ // {
+ // label: '主表',
+ // field: 'masterId',
+ // sort: 'custom',
+ // isSearch: false,
+ // form: {
+ // component: 'InputNumber',
+ // value: 0
+ // }
+ // },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '未完成原因',
+ field: 'uncompletedCause',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '结果枚举',
+ field: 'result',
+ sort: 'custom',
+ dictType: DICT_TYPE.IS_COMPLETED,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '点检内容',
+ field: 'content',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'Editor',
+ componentProps: {
+ valueHtml: '',
+ height: 200
+ }
+ }
+ },
+ {
+ label: '点检部位',
+ field: 'equipmentParts',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '点检方法',
+ field: 'methods',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentSpotCheckRecordDetail/index.vue b/src/views/eam/equipmentSpotCheckRecordDetail/index.vue
new file mode 100644
index 0000000..b5159e5
--- /dev/null
+++ b/src/views/eam/equipmentSpotCheckRecordDetail/index.vue
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentSpotCheckRecordMain/equipmentSpotCheckRecordMain.data.ts b/src/views/eam/equipmentSpotCheckRecordMain/equipmentSpotCheckRecordMain.data.ts
new file mode 100644
index 0000000..880f9de
--- /dev/null
+++ b/src/views/eam/equipmentSpotCheckRecordMain/equipmentSpotCheckRecordMain.data.ts
@@ -0,0 +1,362 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const EquipmentSpotCheckRecordMainRules = reactive({
+ number: [required],
+ equipmentCode: [required],
+ planNumber: [required],
+ planStartTime: [required],
+ planEndTime: [required],
+ startTime: [required],
+ endTime: [required],
+ concurrencyStamp: [required]
+})
+
+export const EquipmentSpotCheckRecordMain = useCrudSchemas(reactive([
+ {
+ label: '点检编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '描述',
+ field: 'describing',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '设备工装编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '类型设备或工装',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ },
+ {
+ label: '计划工单号',
+ field: 'planNumber',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '计划开始时间',
+ field: 'planStartTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '计划结束时间',
+ field: 'planEndTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '点检开始时间',
+ field: 'startTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '点检结束时间',
+ field: 'endTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '故障类型枚举',
+ field: 'faultType',
+ sort: 'custom',
+ dictType: DICT_TYPE.FAILURE_REASON,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ form: {
+ component: 'SelectV2'
+ }
+ },
+ {
+ label: '验证人',
+ field: 'verifyer',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '验证内容',
+ field: 'verifyContent',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'Editor',
+ componentProps: {
+ valueHtml: '',
+ height: 200
+ }
+ }
+ },
+ {
+ label: '验证时间',
+ field: 'verifyTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '点检人',
+ field: 'maintenancer',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '完成时间',
+ field: 'completionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '点检时间',
+ field: 'maintenanceTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '是否拍照',
+ field: 'isPictures',
+ sort: 'custom',
+ dictType: DICT_TYPE.INFRA_BOOLEAN_STRING,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'Radio'
+ }
+ },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_ORDER_STATUS,
+ dictClass: 'string',
+ isSearch: false,
+ form: {
+ component: 'Radio'
+ }
+ },
+ {
+ label: '自动接单',
+ field: 'autoOrder',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '自动执行',
+ field: 'autoPerform',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '自动验证',
+ field: 'autoVerify',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '班组类型',
+ field: 'classType',
+ sort: 'custom',
+ dictType: DICT_TYPE.BASIC_TEAM_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ },
+ {
+ label: '所属厂区编号',
+ field: 'factoryAreaCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '车间编号',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentSpotCheckRecordMain/index.vue b/src/views/eam/equipmentSpotCheckRecordMain/index.vue
new file mode 100644
index 0000000..b3a57a9
--- /dev/null
+++ b/src/views/eam/equipmentSpotCheckRecordMain/index.vue
@@ -0,0 +1,258 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentSupplier/equipmentSupplier.data.ts b/src/views/eam/equipmentSupplier/equipmentSupplier.data.ts
new file mode 100644
index 0000000..0f2f471
--- /dev/null
+++ b/src/views/eam/equipmentSupplier/equipmentSupplier.data.ts
@@ -0,0 +1,158 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import { validateHanset,validateNumDot, validateEmail } from '@/utils/validator'
+import { handleTreeToComponentOptions } from '@/utils/tree'
+import * as DeptApi from '@/api/system/dept'
+import * as UserApi from '@/api/system/user'
+
+export interface User {
+ id: number,
+ nickname: string
+}
+
+const deptList = ref([]) // 树形结构
+// 加载部门树(默认格式)
+deptList.value = handleTreeToComponentOptions(await DeptApi.getSimpleDeptList())
+const userList = ref([])
+userList.value = await UserApi.getSimpleUserList()
+
+// 表单校验
+export const EquipmentSupplierRules = reactive({
+ number: [required],
+ name: [required],
+ concurrencyStamp: [required],
+ phone: [
+ { validator:validateHanset, message: '手机号格式不正确', trigger: 'blur'}
+ ],
+ postId: [
+ {validator:validateNumDot, message: '邮编格式不正确', trigger: 'blur'}
+ ]
+})
+
+export const EquipmentSupplier = useCrudSchemas(reactive([
+ {
+ label: '供应商编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ fixed: 'left',
+ isForm: false,
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '简称',
+ field: 'shortName',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '地址',
+ field: 'address',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '国家',
+ field: 'country',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '城市',
+ field: 'city',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '电话',
+ field: 'phone',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '传真',
+ field: 'fax',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '邮编',
+ field: 'postId',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '联系人',
+ field: 'contacts',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Select',
+ componentProps: {
+ options: userList.value,
+ optionsAlias: {
+ labelField: 'nickname',
+ valueField: 'id'
+ },
+ filterable: true,
+ }
+ }
+ },
+ {
+ label: '部门',
+ field: 'departmentCode',
+ sort: 'custom',
+ isTable: false,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ form: {
+ component: 'TreeSelect',
+ componentProps: { // 假设deptList是部门数据列表
+ data: deptList,
+ placeholder: "请选择部门",
+ filterable: true,
+ // multiple: true,
+ }
+ }
+ },
+ {
+ label: '是否启用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Input',
+ componentProps: {
+ type: 'textarea'
+ }
+ }
+ },
+
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentSupplier/index.vue b/src/views/eam/equipmentSupplier/index.vue
new file mode 100644
index 0000000..19ca01f
--- /dev/null
+++ b/src/views/eam/equipmentSupplier/index.vue
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentToolSparePart/equipmentToolSparePart.data.ts b/src/views/eam/equipmentToolSparePart/equipmentToolSparePart.data.ts
new file mode 100644
index 0000000..77ff8cb
--- /dev/null
+++ b/src/views/eam/equipmentToolSparePart/equipmentToolSparePart.data.ts
@@ -0,0 +1,135 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const EquipmentToolSparePartRules = reactive({
+ sparePartCode: [required],
+ equipmentToolCode: [required],
+ type: [required],
+ concurrencyStamp: [required]
+})
+
+export const EquipmentToolSparePart = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isForm: false
+ },
+ {
+ label: '备件编号',
+ field: 'sparePartCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '设备编码',
+ field: 'equipmentToolCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '类型',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ }
+ },
+ {
+ label: '使用部位',
+ field: 'usePosition',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentToolSparePart/index.vue b/src/views/eam/equipmentToolSparePart/index.vue
new file mode 100644
index 0000000..07f7923
--- /dev/null
+++ b/src/views/eam/equipmentToolSparePart/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/equipmentTransferRecord/equipmentTransferRecord.data.ts b/src/views/eam/equipmentTransferRecord/equipmentTransferRecord.data.ts
new file mode 100644
index 0000000..74eaf65
--- /dev/null
+++ b/src/views/eam/equipmentTransferRecord/equipmentTransferRecord.data.ts
@@ -0,0 +1,368 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import * as UserApi from '@/api/system/user'
+import { EquipmentAccounts,EquipmentAccountsRules } from '../equipmentAccounts/equipmentAccounts.data'
+import * as EquipmentAccountsApi from '@/api/eam/equipmentAccounts'
+import * as ProductionlineApi from '@/api/wms/productionline'
+import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data'
+import * as WorkshopApi from '@/api/wms/workshop'
+import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data'
+import * as ProcessApi from '@/api/wms/process'
+import { Process } from '@/views/wms/basicDataManage/factoryModeling/process/process.data'
+import * as WorkStationApi from '@/api/wms/workstation'
+import { Workstation } from '@/views/wms/basicDataManage/factoryModeling/workstation/workstation.data'
+
+export interface User {
+ id: number,
+ nickname: string
+}
+
+const userList = ref([])
+userList.value = await UserApi.getSimpleUserList()
+// 表单校验
+export const EquipmentTransferRecordRules = reactive({
+ equipmentCode: [required],
+ concurrencyStamp: [required]
+})
+
+export const EquipmentTransferRecord = useCrudSchemas(reactive([
+ {
+ label: '设备编码',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ colProps: {
+ span: 24
+ },
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择设备', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: EquipmentAccountsApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ // {
+ // label: '操作人',
+ // field: 'operationer',
+ // sort: 'custom',
+ // isSearch: true,
+ // formatter: (_: Recordable, __: TableColumn, cellValue: number) => {
+ // return userList.value.find((item) => item.id == cellValue)?.nickname
+ // },
+ // form: {
+ // component: 'Select',
+ // componentProps: { // 假设deptList是部门数据列表
+ // options: userList.value,
+ // optionsAlias: {
+ // valueField: 'id',
+ // labelField: 'nickname'
+ // },
+ // disabled: false,
+ // placeholder: "请选择操作人",
+ // filterable: true,
+ // multiple: false,
+ // }
+ // }
+ // },
+ // {
+ // label: '原所属厂区编号',
+ // field: 'beforeFactoryAreaCode',
+ // sort: 'custom',
+ // isSearch: false
+ // },
+ {
+ label: '原地点',
+ field: 'beforeLocation',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '新地点',
+ field: 'nowLocation',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '原车间编号',
+ field: 'beforeWorkshopCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择车间代码', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '新车间编号',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择车间代码', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '原产线编号',
+ field: 'beforeLineCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
+ multiple:true,
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '生产线信息', // 查询弹窗标题
+ searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类
+ searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key:'workshopCode',
+ value:'beforeWorkshopCode',
+ message: '请填写车间代码!',
+ isMainValue: true
+ },{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '新产线编号',
+ field: 'lineCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择生产线代码', // 输入框占位文本
+ multiple:true,
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '生产线信息', // 查询弹窗标题
+ searchAllSchemas: Productionline.allSchemas, // 查询弹窗所需类
+ searchPage: ProductionlineApi.getProductionlinePage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key:'workshopCode',
+ value:'workshopCode',
+ message: '请填写车间代码!',
+ isMainValue: true
+ },{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ // {
+ // label: '操作日期',
+ // field: 'operationDate',
+ // sort: 'custom',
+ // formatter: dateFormatter,
+ // isSearch: false,
+ // search: {
+ // component: 'DatePicker',
+ // componentProps: {
+ // valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ // type: 'daterange',
+ // defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ // }
+ // },
+ // form: {
+ // component: 'DatePicker',
+ // componentProps: {
+ // type: 'datetime',
+ // valueFormat: 'x'
+ // }
+ // }
+ // },
+ // {
+ // label: '原工序编号',
+ // field: 'beforeProcessCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // form:{
+ // componentProps: {
+ // isSearchList: true,
+ // searchListPlaceholder: '请选择工序代码',
+ // searchField: 'code',
+ // searchTitle: '工序信息',
+ // searchAllSchemas: Process.allSchemas,
+ // searchPage: ProcessApi.getProcessPage,
+ // searchCondition: [{
+ // key:'productionLineCode',
+ // value:'lineCode',
+ // message: '请填写生产线代码!',
+ // isMainValue: true
+ // },{
+ // key:'workshopCode',
+ // value:'workshopCode',
+ // message: '请填写车间代码!',
+ // isMainValue: true
+ // },{
+ // key: 'available',
+ // value: 'TRUE',
+ // isMainValue: false
+ // }]
+ // }
+ // },
+ // },
+ // {
+ // label: '新工序编号',
+ // field: 'processCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // form:{
+ // componentProps: {
+ // isSearchList: true,
+ // searchListPlaceholder: '请选择工序代码',
+ // searchField: 'code',
+ // searchTitle: '工序信息',
+ // searchAllSchemas: Process.allSchemas,
+ // searchPage: ProcessApi.getProcessPage,
+ // searchCondition: [{
+ // key:'productionLineCode',
+ // value:'lineCode',
+ // message: '请填写生产线代码!',
+ // isMainValue: true
+ // },{
+ // key:'workshopCode',
+ // value:'workshopCode',
+ // message: '请填写车间代码!',
+ // isMainValue: true
+ // },{
+ // key: 'available',
+ // value: 'TRUE',
+ // isMainValue: false
+ // }]
+ // }
+ // },
+ // },
+ // {
+ // label: '原工位编号',
+ // field: 'beforeWorkstationCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // form:{
+ // componentProps: {
+ // isSearchList: true, // 开启查询弹窗
+ // searchListPlaceholder: '请选择工位', // 输入框占位文本
+ // searchField: 'code', // 查询弹窗赋值字段
+ // searchTitle: '工位信息', // 查询弹窗标题
+ // searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
+ // searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法
+ // searchCondition: [{
+ // key:'productionLineCode',
+ // value:'lineCode',
+ // message: '请填写生产线代码!',
+ // isMainValue: true
+ // },{
+ // key:'workshopCode',
+ // value:'workshopCode',
+ // message: '请填写车间代码!',
+ // isMainValue: true
+ // },{
+ // key:'available',
+ // value:'TRUE',
+ // isMainValue: false
+ // }]
+ // }
+ // },
+ // },
+
+
+ // {
+ // label: '新工位编号',
+ // field: 'workstationCode',
+ // sort: 'custom',
+ // isSearch: true,
+ // form:{
+ // componentProps: {
+ // isSearchList: true, // 开启查询弹窗
+ // searchListPlaceholder: '请选择工位', // 输入框占位文本
+ // searchField: 'code', // 查询弹窗赋值字段
+ // searchTitle: '工位信息', // 查询弹窗标题
+ // searchAllSchemas: Workstation.allSchemas, // 查询弹窗所需类
+ // searchPage: WorkStationApi.getWorkstationPage, // 查询弹窗所需分页方法
+ // searchCondition: [{
+ // key:'productionLineCode',
+ // value:'lineCode',
+ // message: '请填写生产线代码!',
+ // isMainValue: true
+ // },{
+ // key:'workshopCode',
+ // value:'workshopCode',
+ // message: '请填写车间代码!',
+ // isMainValue: true
+ // },{
+ // key:'available',
+ // value:'TRUE',
+ // isMainValue: false
+ // }]
+ // }
+ // },
+ // },
+ // {
+ // label: '是否可用',
+ // field: 'available',
+ // sort: 'custom',
+ // dictType: DICT_TYPE.TRUE_FALSE,
+ // dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ // isSearch: false,
+ // form: {
+ // component: 'Switch',
+ // value: 'TRUE',
+ // componentProps: {
+ // inactiveValue: 'FALSE',
+ // activeValue: 'TRUE'
+ // }
+ // }
+ // },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/equipmentTransferRecord/index.vue b/src/views/eam/equipmentTransferRecord/index.vue
new file mode 100644
index 0000000..fa7a9b4
--- /dev/null
+++ b/src/views/eam/equipmentTransferRecord/index.vue
@@ -0,0 +1,267 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/inspectionItem/index.vue b/src/views/eam/inspectionItem/index.vue
new file mode 100644
index 0000000..65d1b94
--- /dev/null
+++ b/src/views/eam/inspectionItem/index.vue
@@ -0,0 +1,280 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/inspectionItem/inspectionItem.data.ts b/src/views/eam/inspectionItem/inspectionItem.data.ts
new file mode 100644
index 0000000..225954f
--- /dev/null
+++ b/src/views/eam/inspectionItem/inspectionItem.data.ts
@@ -0,0 +1,130 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import { handleTreeToComponentOptions } from '@/utils/tree'
+import * as DeptApi from '@/api/system/dept'
+const deptList = ref([]) // 树形结构
+
+// 加载部门树(默认格式)
+deptList.value = handleTreeToComponentOptions(await DeptApi.getSimpleDeptList())
+
+// 表单校验
+export const InspectionItemRules = reactive({
+ content: [required],
+ serialNumber: [required],
+ type: [required],
+ name: [required],
+})
+
+export const InspectionItem = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '序号',
+ field: 'serialNumber',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ fixed: 'left',
+ form: {
+ component:'InputNumber'
+ },
+ },
+ {
+ label: '巡检名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '巡检内容',
+ field: 'content',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Input',
+ componentProps: {
+ type: 'textarea'
+ }
+ }
+ },
+ {
+ label: '巡检部位',
+ field: 'equipmentParts',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '类别',
+ field: 'category',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '来源于类型配置',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '部门',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'TreeSelect',
+ componentProps: { // 假设deptList是部门数据列表
+ data: deptList,
+ placeholder: "请选择部门",
+ filterable: true,
+ // multiple: true,
+ }
+ }
+ },
+ {
+ label: '是否启用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/inspectionItemSelectSet/index.vue b/src/views/eam/inspectionItemSelectSet/index.vue
new file mode 100644
index 0000000..b334f7a
--- /dev/null
+++ b/src/views/eam/inspectionItemSelectSet/index.vue
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/inspectionItemSelectSet/inspectionItemSelectSet.data.ts b/src/views/eam/inspectionItemSelectSet/inspectionItemSelectSet.data.ts
new file mode 100644
index 0000000..86c1251
--- /dev/null
+++ b/src/views/eam/inspectionItemSelectSet/inspectionItemSelectSet.data.ts
@@ -0,0 +1,141 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const InspectionItemSelectSetRules = reactive({
+ name: [required],
+ itemCode: [required],
+ concurrencyStamp: [required],
+})
+
+export const InspectionItemSelectSet = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '选择集名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '项编号',
+ field: 'itemCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: true,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/inspectionItemSelectSet/itemSelectSetForm.vue b/src/views/eam/inspectionItemSelectSet/itemSelectSetForm.vue
new file mode 100644
index 0000000..217708e
--- /dev/null
+++ b/src/views/eam/inspectionItemSelectSet/itemSelectSetForm.vue
@@ -0,0 +1,280 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/item/index.vue b/src/views/eam/item/index.vue
new file mode 100644
index 0000000..b18fe42
--- /dev/null
+++ b/src/views/eam/item/index.vue
@@ -0,0 +1,345 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/item/item.data.ts b/src/views/eam/item/item.data.ts
new file mode 100644
index 0000000..09f5da4
--- /dev/null
+++ b/src/views/eam/item/item.data.ts
@@ -0,0 +1,336 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const ItemRules = reactive({
+ name: [
+ { required: true, message: '请输入备件名称', trigger: 'blur' },
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ uom: [
+ { required: true, message: '请选择备件单位', trigger: 'blur' },
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ classification: [{ required: true, message: '请选择备件分类', trigger: 'blur' }]
+})
+
+export const Item = useCrudSchemas(
+ reactive([
+ {
+ label: '备件编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ table: {
+ width: 180,
+ fixed: 'left'
+ }
+ },
+ {
+ label: '备件名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ table: {
+ width: 110
+ }
+ },
+ {
+ label: '规格',
+ field: 'specifications',
+ sort: 'custom'
+ },
+ {
+ label: '是否常储',
+ field: 'isConstant',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 110
+ },
+ tableForm: {
+ type: 'Select',
+ inactiveValue: 'FALSE',
+ disabled: true
+ },
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '科目',
+ field: 'subject',
+ sort: 'custom',
+ dictType: DICT_TYPE.SUBJECT,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+
+ {
+ label: '科目代码',
+ field: 'subjectCode',
+ sort: 'custom',
+ isTable: true
+ },
+ {
+ label: '单位',
+ field: 'uom',
+ sort: 'custom',
+ dictType: DICT_TYPE.UOM,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '类别',
+ field: 'category',
+ sort: 'custom',
+ dictType: DICT_TYPE.ITEM_CATEGORY,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '备件分类',
+ field: 'classification',
+ sort: 'custom',
+ dictType: DICT_TYPE.PART_CLASS,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '区域',
+ field: 'region',
+ sort: 'custom',
+ dictType: DICT_TYPE.REGION,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '重采购点',
+ field: 'reprocurement',
+ sort: 'custom',
+ table: {
+ width: 110
+ },
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '安全库存',
+ field: 'safetyStock',
+ sort: 'custom',
+ table: {
+ width: 110
+ },
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '成本中心',
+ field: 'cost',
+ sort: 'custom',
+ table: {
+ width: 110
+ }
+ },
+ {
+ label: '采购员',
+ field: 'purchaser',
+ sort: 'custom',
+ table: {
+ width: 100
+ }
+ },
+ {
+ label: '财务',
+ field: 'financer',
+ sort: 'custom'
+ },
+ {
+ label: '是否以旧换新',
+ field: 'isRadeIn',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 140
+ },
+ tableForm: {
+ type: 'Select',
+ inactiveValue: 'FALSE',
+ disabled: true
+ },
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '是否框架协议',
+ field: 'isFramework',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 140
+ },
+ tableForm: {
+ type: 'Select',
+ inactiveValue: 'FALSE',
+ disabled: true
+ },
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ // {
+ // label: '是否可用',
+ // field: 'available',
+ // dictType: DICT_TYPE.TRUE_FALSE,
+ // dictClass: 'string',
+ // isSearch: false,
+ // isTable: true,
+ // sort: 'custom',
+ // table: {
+ // width: 150
+ // },
+ // tableForm: {
+ // type: 'Select',
+ // inactiveValue: 'FALSE',
+ // disabled: true
+ // },
+ // form: {
+ // component: 'Switch',
+ // value: 'TRUE',
+ // componentProps: {
+ // inactiveValue: 'FALSE',
+ // activeValue: 'TRUE'
+ // }
+ // }
+ // },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isForm: false,
+ table: {
+ width: 170
+ }
+ },
+ {
+ label: '描述',
+ field: 'describes',
+ sort: 'custom'
+ },
+ {
+ label: '图片',
+ field: 'upload',
+ isTable: true
+ },
+ {
+ label: '文件',
+ field: 'filePathListView',
+ sort: 'custom',
+ isTable: false,
+ table: {},
+ form: {
+ component: 'UploadFile',
+ componentProps: {}
+ }
+ },
+ {
+ label: '文件',
+ field: 'filePathList',
+ sort: 'custom',
+ isTable: false,
+ isForm: false,
+ table: {},
+ form: {
+ component: 'UploadFile',
+ componentProps: {}
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 180,
+ fixed: 'right'
+ }
+ }
+ ])
+)
+
+export const ItemSearchTable = useCrudSchemas(
+ reactive([
+ {
+ label: '备件编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ table: {
+ fixed: 'left'
+ }
+ },
+ {
+ label: '备件名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ table: {}
+ },
+ {
+ label: '数量',
+ field: 'qty',
+ sort: 'custom'
+ }
+ ])
+)
diff --git a/src/views/eam/itemAccounts/index.vue b/src/views/eam/itemAccounts/index.vue
new file mode 100644
index 0000000..e4e220c
--- /dev/null
+++ b/src/views/eam/itemAccounts/index.vue
@@ -0,0 +1,411 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.itemNumber }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/itemAccounts/itemAccounts.data.ts b/src/views/eam/itemAccounts/itemAccounts.data.ts
new file mode 100644
index 0000000..4e1e37a
--- /dev/null
+++ b/src/views/eam/itemAccounts/itemAccounts.data.ts
@@ -0,0 +1,356 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+import * as ItemApi from '@/api/eam/item'
+import { Item } from '../item/item.data'
+
+import * as LocationApi from '@/api/eam/location'
+import { Location } from '../location/location.data'
+
+// 表单校验
+export const ItemAccountsRules = reactive({
+ itemNumber: [required],
+ locationNumber: [required],
+ singlePrice: [required],
+ qty: [required]
+})
+
+export const ItemAccounts = useCrudSchemas(
+ reactive([
+ {
+ label: '备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ isSearch: true,
+ table: {
+ width: 200
+ },
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择备件编号', // 输入框占位文本
+ searchField: 'number', // 查询弹窗赋值字段
+ searchTitle: '备件信息', // 查询弹窗标题
+ searchAllSchemas: Item.allSchemas, // 查询弹窗所需类
+ searchPage: ItemApi.getItemPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ }
+ },
+ {
+ label: '备件名称',
+ field: 'name',
+ sort: 'custom',
+ table: {
+ width: 110
+ },
+ isSearch: false
+ },
+ {
+ label: '库位编号',
+ field: 'locationNumber',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择库区编号', // 输入框占位文本
+ searchField: 'number', // 查询弹窗赋值字段
+ searchTitle: '库区信息', // 查询弹窗标题
+ searchAllSchemas: Location.allSchemas, // 查询弹窗所需类
+ searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ }
+ },
+ {
+ label: '库区编号',
+ field: 'areaNumber',
+ sort: 'custom',
+ required: true,
+ table: {
+ width: 110
+ }
+ },
+ {
+ label: '单价',
+ field: 'singlePrice',
+ sort: 'custom'
+ },
+ {
+ label: '库存数量',
+ field: 'qty',
+ sort: 'custom',
+ table: {
+ width: 110
+ }
+ },
+ {
+ label: '规格',
+ field: 'specifications',
+ sort: 'custom'
+ },
+ {
+ label: '是否账内库',
+ field: 'isInAccount',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 130
+ },
+ tableForm: {
+ type: 'Select',
+ inactiveValue: 'FALSE',
+ disabled: true
+ },
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+
+ {
+ label: '是否常储',
+ field: 'isConstant',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 110
+ },
+ tableForm: {
+ type: 'Select',
+ inactiveValue: 'FALSE',
+ disabled: true
+ },
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '科目',
+ field: 'subject',
+ sort: 'custom',
+ dictType: DICT_TYPE.SUBJECT,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+
+ {
+ label: '科目代码',
+ field: 'subjectCode',
+ sort: 'custom',
+ isTable: true
+ },
+ {
+ label: '单位',
+ field: 'uom',
+ sort: 'custom',
+ dictType: DICT_TYPE.UOM,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '类别',
+ field: 'category',
+ sort: 'custom',
+ dictType: DICT_TYPE.ITEM_CATEGORY,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '备件分类',
+ field: 'classification',
+ sort: 'custom',
+ dictType: DICT_TYPE.PART_CLASS,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '区域',
+ field: 'region',
+ sort: 'custom',
+ dictType: DICT_TYPE.REGION,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+
+ {
+ label: '重采购点',
+ field: 'reprocurement',
+ sort: 'custom',
+ table: {
+ width: 110
+ },
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '安全库存',
+ field: 'safetyStock',
+ sort: 'custom',
+ table: {
+ width: 110
+ },
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '成本中心',
+ field: 'cost',
+ sort: 'custom',
+ table: {
+ width: 110
+ }
+ },
+ {
+ label: '采购员',
+ field: 'purchaser',
+ sort: 'custom',
+ table: {
+ width: 100
+ }
+ },
+ {
+ label: '财务',
+ field: 'financer',
+ sort: 'custom'
+ },
+ {
+ label: '是否以旧换新',
+ field: 'isRadeIn',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 140
+ },
+ tableForm: {
+ type: 'Select',
+ inactiveValue: 'FALSE',
+ disabled: true
+ },
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '是否框架协议',
+ field: 'isFramework',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 140
+ },
+ tableForm: {
+ type: 'Select',
+ inactiveValue: 'FALSE',
+ disabled: true
+ },
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select',
+ inactiveValue: 'FALSE',
+ disabled: true
+ },
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 180,
+ fixed: 'right'
+ }
+ }
+ ])
+)
diff --git a/src/views/eam/itemApplyMain/index.vue b/src/views/eam/itemApplyMain/index.vue
new file mode 100644
index 0000000..4e943ce
--- /dev/null
+++ b/src/views/eam/itemApplyMain/index.vue
@@ -0,0 +1,363 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/itemApplyMain/itemApplyMain.data.ts b/src/views/eam/itemApplyMain/itemApplyMain.data.ts
new file mode 100644
index 0000000..91f96cf
--- /dev/null
+++ b/src/views/eam/itemApplyMain/itemApplyMain.data.ts
@@ -0,0 +1,337 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data'
+import * as ItemAccountsApi from '@/api/eam/itemAccounts'
+//import * as DeviceMoldItemsApi from '@/api/eam/basic/deviceMaintenance'
+import { validateHanset, validateEmail } from '@/utils/validator'
+const { t } = useI18n() // 国际化
+
+/**
+ * @returns {Array} 备件申领主表
+ */
+export const ItemApplyMain = useCrudSchemas(reactive([
+ {
+ label: '领用编号',
+ field: 'number',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 180,
+ fixed: 'left'
+ },
+ },
+ {
+ label: '申领人',
+ field: 'applyId',
+ sort: 'custom',
+ isForm: false,
+ isSearch: false,
+ },
+ {
+ label: '审批人',
+ field: 'approveId',
+ sort: 'custom',
+ isForm: false,
+ isSearch: false,
+ },
+ {
+ label: '出库人',
+ field: 'outId',
+ sort: 'custom',
+ isForm: false,
+ isSearch: false,
+ },
+
+// {
+// label: '状态',
+// field: 'status',
+// sort: 'custom',
+// dictType: DICT_TYPE.ITEM_APPLY_STATUS,
+// dictClass: 'string',
+// isSearch: true,
+// isTable: true,
+// isForm: false,
+// table: {
+// width: 150
+// },
+// tableForm: {
+// type: 'Select',
+// disabled: false
+// }
+// },
+ {
+ label: '描述',
+ field: 'name',
+ sort: 'custom',
+ },
+
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 200,
+ fixed: 'right'
+ }
+ }
+]))
+
+//表单校验
+export const ItemApplyMainRules = reactive({
+ name: [
+ { required: true, message: '请填写描述', trigger: 'change' }
+ ],
+ remark: [
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ available: [
+ { required: true, message: '请选择是否可用', trigger: 'change' }
+ ],
+})
+
+
+export const DeviceMOLD = useCrudSchemas(reactive([
+ {
+ label: '编号',
+ field: 'number',
+ sort: 'custom',
+ isForm: false,
+ table: {
+ width: 180,
+ fixed: 'left'
+ },
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ },
+ {
+ label: '规格型号',
+ field: 'specification',
+ sort: 'custom',
+ },
+
+]))
+
+/**
+ * @returns {Array} 备件申请子表
+ */
+export const ItemApplyDetail = useCrudSchemas(reactive([
+ {
+ label: '备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ isSearch: true,
+ tableForm: {
+ isInpuFocusShow: true,
+ searchListPlaceholder: '请选择备件编号',
+ searchField: 'number',
+ searchTitle: '备件信息',
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ },
+ ]
+ },
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true,
+ searchListPlaceholder: '请选择备件编号',
+ searchField: 'number',
+ searchTitle: '备件信息',
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ },]
+ }
+ }
+ },
+ // {
+ // label: '类型',
+ // field: 'type',
+ // sort: 'custom',
+ // dictType: DICT_TYPE.DEVICE_MOLD_TYPE,
+ // dictClass: 'string',
+ // isSearch: true,
+ // isTable: true,
+ // table: {
+ // width: 150
+ // },
+ // tableForm: {
+ // type: 'Select',
+ // disabled: false
+ // }
+ // },
+ // {
+ // label: '设备/模具编号',
+ // field: 'deviceNumber',
+ // sort: 'custom',
+ // isSearch: true,
+ // tableForm: {
+ // isInpuFocusShow: true,
+ // searchListPlaceholder: '请选择单号',
+ // searchField: 'number',
+ // searchTitle: '单号信息',
+ // searchAllSchemas: DeviceMOLD.allSchemas, // 查询弹窗所需类
+ // searchPage: DeviceMoldItemsApi.getNumber, // 查询弹窗所需分页方法
+ // searchCondition: [{
+ // key: 'available',
+ // value: "TRUE",
+ // isMainValue: false
+ // }, {
+ // key: 'type',
+ // value: "type",
+ // isMainValue: true
+ // }
+ // ]
+ // },
+ // form: {
+ // // labelMessage: '信息提示说明!!!',
+ // componentProps: {
+ // isSearchList: true,
+ // searchListPlaceholder: '请选择单号',
+ // searchField: 'number',
+ // searchTitle: '单号信息',
+ // searchAllSchemas: DeviceMOLD.allSchemas, // 查询弹窗所需类
+ // searchPage: DeviceMoldItemsApi.getNumber, // 查询弹窗所需分页方法
+ // searchCondition: [{
+ // key: 'available',
+ // value: "TRUE",
+ // isMainValue: false
+ // }, {
+ // key: 'type',
+ // value: "type",
+ // isMainValue: true
+ // }]
+ // }
+ // }
+ // },
+ {
+ label: '申领数量',
+ field: 'qty',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 0,
+ precision: 2
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 0,
+ precision: 2
+ }
+ },
+ {
+ label: '库存数量',
+ field: 'currentQty',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ disabled: true,
+ min: 0,
+ precision: 2
+ }
+ },
+ tableForm: {
+ disabled: true,
+ type: 'InputNumber',
+ min: 0,
+ precision: 2
+ }
+ },
+ // {
+ // label: '是否账内库',
+ // field: 'isInAccount',
+ // sort: 'custom',
+ // dictType: DICT_TYPE.TRUE_FALSE,
+ // dictClass: 'string',
+ // isSearch: true,
+ // isTable: true,
+ // table: {
+ // width: 150
+ // },
+ // tableForm: {
+ // type: 'Select',
+ // disabled: true
+ // },
+ // form: {
+ // componentProps: {
+ // disabled: true,
+ // }
+ // },
+ // },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: true,
+ isTable: true,
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select',
+ disabled: true
+ }
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ table: {
+ width: 150
+ },
+ },
+
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ },
+ isTableForm: false,
+ }
+]))
+
+//表单校验
+export const ItemApplyDetailRules = reactive({
+ itemNumber: [
+ { required: true, message: '请选择备件编号', trigger: 'change' }
+ ],
+ type: [
+ { required: true, message: '请选择类型', trigger: 'change' }
+ ],
+ deviceNumber: [
+ { required: true, message: '请选择设备模具编号', trigger: 'change' }
+ ],
+ qty: [
+ { required: true, message: '请输入申领数量', trigger: 'change' }
+ ],
+ available: [
+ { required: true, message: '请选择是否可用', trigger: 'change' }
+ ],
+
+})
diff --git a/src/views/eam/itemDelete/index.vue b/src/views/eam/itemDelete/index.vue
new file mode 100644
index 0000000..776e247
--- /dev/null
+++ b/src/views/eam/itemDelete/index.vue
@@ -0,0 +1,401 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/itemDelete/itemAccounts.data.ts b/src/views/eam/itemDelete/itemAccounts.data.ts
new file mode 100644
index 0000000..0f12841
--- /dev/null
+++ b/src/views/eam/itemDelete/itemAccounts.data.ts
@@ -0,0 +1,352 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+
+import * as LocationApi from '@/api/wms/location'
+import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data'
+
+import * as SparePartApi from '@/api/eam/sparePart'
+import { SparePart } from '@/views/eam/sparePart/sparePart.data'
+
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const ItemAccountsRules = reactive({
+ itemNumber: [required],
+ singlePrice: [required],
+ locationNumber: [required],
+ qty: [required]
+})
+
+export const ItemAccounts = useCrudSchemas(
+ reactive([
+ {
+ label: '备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ table: {
+ width: 180,
+ fixed: 'left'
+ },
+ isSearch: false,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择备件编号', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '编号信息', // 查询弹窗标题
+ searchAllSchemas: SparePart.allSchemas, // 查询弹窗所需类
+ searchPage: SparePartApi.getSparePartPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ // {
+ // key: 'warehouseCode',
+ // value: 'warehouseCode',
+ // message: '请填写仓库代码!',
+ // isMainValue: true
+ // },
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ }
+ },
+
+ {
+ label: '备件名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ table: {
+ width: 150
+ },
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ {
+ label: '备件分类',
+ field: 'classification',
+ sort: 'custom',
+ dictType: DICT_TYPE.PART_CLASS,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ form: {
+ component: 'Select',
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ {
+ label: '单价',
+ field: 'singlePrice',
+ sort: 'custom',
+ isTable: false,
+ isSearch: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '规格型号',
+ field: 'specifications',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ {
+ label: '存放位置',
+ field: 'locationNumber',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ isSearch: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择库位编号', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '库位信息', // 查询弹窗标题
+ searchAllSchemas: Location.allSchemas, // 查询弹窗所需类
+ searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ // {
+ // key: 'warehouseCode',
+ // value: 'warehouseCode',
+ // message: '请填写仓库代码!',
+ // isMainValue: true
+ // },
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ }
+ },
+ {
+ label: '库区编号',
+ field: 'areaNumber',
+ sort: 'custom',
+ isTable: false,
+ isSearch: true,
+ table: {
+ width: 180
+ },
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ {
+ label: '库存数量',
+ field: 'qty',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+
+ // {
+ // label: '品牌',
+ // field: 'brand',
+ // sort: 'custom',
+ // isSearch: false,
+ // form: {
+ // componentProps: {
+ // disabled: true
+ // }
+ // }
+ // },
+
+ // {
+ // label: '是否全局',
+ // field: 'isOverall',
+ // sort: 'custom',
+ // dictType: DICT_TYPE.TRUE_FALSE,
+ // dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ // isSearch: false,
+ // form: {
+ // component: 'Switch',
+ // value: 'TRUE',
+ // componentProps: {
+ // inactiveValue: 'FALSE',
+ // activeValue: 'TRUE',
+ // disabled: true
+ // }
+ // }
+ // },
+ // {
+ // label: '科目',
+ // field: 'subject',
+ // sort: 'custom',
+ // dictType: DICT_TYPE.SUBJECT,
+ // dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ // isSearch: false,
+ // form: {
+ // component: 'Select',
+ // componentProps: {
+ // disabled: true
+ // }
+ // }
+ // },
+ // {
+ // label: '科目代码',
+ // field: 'subjectCode',
+ // sort: 'custom',
+ // isSearch: false,
+ // form: {
+ // componentProps: {
+ // disabled: true
+ // }
+ // }
+ // },
+ // {
+ // label: '类别',
+ // field: 'type',
+ // sort: 'custom',
+ // isSearch: false,
+ // form: {
+ // componentProps: {
+ // disabled: true
+ // }
+ // }
+ // },
+ // {
+ // label: '区域',
+ // field: 'region',
+ // sort: 'custom',
+ // dictType: DICT_TYPE.REGION,
+ // dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ // isSearch: false,
+ // form: {
+ // component: 'Select',
+ // componentProps: {
+ // disabled: true
+ // }
+ // }
+ // },
+
+ {
+ label: '计量单位',
+ field: 'uom',
+ sort: 'custom',
+ dictType: DICT_TYPE.UOM,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+
+ {
+ label: '生产厂家',
+ field: 'manufacturer',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ }
+ },
+ // {
+ // label: '库存下限',
+ // field: 'minInventory',
+ // sort: 'custom',
+ // isSearch: false,
+ // form: {
+ // component: 'InputNumber',
+ // value: 0,
+ // componentProps: {
+ // disabled: true
+ // }
+ // }
+ // },
+ // {
+ // label: '库存上限',
+ // field: 'maxInventory',
+ // sort: 'custom',
+ // isSearch: false,
+ // form: {
+ // component: 'InputNumber',
+ // value: 0,
+ // componentProps: {
+ // disabled: true
+ // }
+ // }
+ // },
+ // {
+ // label: '更换周期',
+ // field: 'replacementCycle',
+ // sort: 'custom',
+ // isSearch: false,
+ // form: {
+ // component: 'InputNumber',
+ // value: 0,
+ // componentProps: {
+ // disabled: true
+ // }
+ // }
+ // },
+ // {
+ // label: '存放位置描述',
+ // field: 'storageLocation',
+ // sort: 'custom',
+ // isSearch: false,
+ // form: {
+ // componentProps: {
+ // disabled: true
+ // }
+ // }
+ // },
+ // {
+ // label: '备注',
+ // field: 'remark',
+ // sort: 'custom',
+ // isSearch: false,
+ // componentProps: {
+ // disabled: true
+ // }
+ // },
+ // {
+ // label: '是否可用',
+ // field: 'available',
+ // sort: 'custom',
+ // isSearch: false,
+ // isTable: false,
+ // isForm: false,
+ // isDetail: false,
+ // componentProps: {
+ // disabled: true
+ // }
+ // },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+ ])
+)
diff --git a/src/views/eam/itemInLocation/index.vue b/src/views/eam/itemInLocation/index.vue
new file mode 100644
index 0000000..58ce72b
--- /dev/null
+++ b/src/views/eam/itemInLocation/index.vue
@@ -0,0 +1,225 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/itemInLocation/itemInLocation.data.ts b/src/views/eam/itemInLocation/itemInLocation.data.ts
new file mode 100644
index 0000000..4aef77d
--- /dev/null
+++ b/src/views/eam/itemInLocation/itemInLocation.data.ts
@@ -0,0 +1,53 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+
+// 表单校验
+export const ItemInLocationRules = reactive({
+ number: [required],
+ itemNumber: [required],
+ locationNumber: [required],
+})
+
+export const ItemInLocation = useCrudSchemas(reactive([
+ {
+ label: '入库编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '库位编号',
+ field: 'locationNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '入库类型',
+ field: 'type',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'Select'
+ },
+ },
+ {
+ label: '数量',
+ field: 'qty',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/itemLocationReplace/index.vue b/src/views/eam/itemLocationReplace/index.vue
new file mode 100644
index 0000000..05effa5
--- /dev/null
+++ b/src/views/eam/itemLocationReplace/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/itemLocationReplace/itemLocationReplace.data.ts b/src/views/eam/itemLocationReplace/itemLocationReplace.data.ts
new file mode 100644
index 0000000..75ed8da
--- /dev/null
+++ b/src/views/eam/itemLocationReplace/itemLocationReplace.data.ts
@@ -0,0 +1,55 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const ItemLocationReplaceRules = reactive({
+ locationNumber: [required],
+ oldItemNumber: [required],
+ itemNumber: [required],
+})
+
+export const ItemLocationReplace = useCrudSchemas(reactive([
+ {
+ label: '库位编号',
+ field: 'locationNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+
+ {
+ label: '变更前备件编号',
+ field: 'oldItemNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '变更后备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '变更时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/itemMaintenance/index.vue b/src/views/eam/itemMaintenance/index.vue
new file mode 100644
index 0000000..1f36700
--- /dev/null
+++ b/src/views/eam/itemMaintenance/index.vue
@@ -0,0 +1,243 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/itemMaintenance/itemMaintenance.data.ts b/src/views/eam/itemMaintenance/itemMaintenance.data.ts
new file mode 100644
index 0000000..b72ca4d
--- /dev/null
+++ b/src/views/eam/itemMaintenance/itemMaintenance.data.ts
@@ -0,0 +1,110 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const ItemMaintenanceRules = reactive({
+ number: [required],
+ itemNumber: [required],
+ qty: [required],
+ concurrencyStamp: [required],
+})
+
+export const ItemMaintenance = useCrudSchemas(reactive([
+ {
+ label: '维修工单编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '数量',
+ field: 'qty',
+ sort: 'custom',
+ },
+ {
+ label: '事务类型',
+ field: 'result',
+ dictType: DICT_TYPE.RESULT,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select',
+ inactiveValue: 'FALSE',
+ disabled: true
+ },
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '维修原因',
+ field: 'reasons',
+ sort: 'custom',
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select',
+ inactiveValue: 'FALSE',
+ disabled: true
+ },
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/itemOrderMain/index.vue b/src/views/eam/itemOrderMain/index.vue
new file mode 100644
index 0000000..22e9519
--- /dev/null
+++ b/src/views/eam/itemOrderMain/index.vue
@@ -0,0 +1,304 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/itemOrderMain/itemOrderMain.data.ts b/src/views/eam/itemOrderMain/itemOrderMain.data.ts
new file mode 100644
index 0000000..2c127f9
--- /dev/null
+++ b/src/views/eam/itemOrderMain/itemOrderMain.data.ts
@@ -0,0 +1,310 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter2 } from '@/utils/formatTime'
+import { SparePart } from '@/views/eam/sparePart/sparePart.data'
+import * as ItemApi from '@/api/eam/sparePart'
+import { validateHanset, validateEmail } from '@/utils/validator'
+const { t } = useI18n() // 国际化
+
+/**
+ * @returns {Array} 备件申请主表
+ */
+export const ItemOrderMain = useCrudSchemas(reactive([
+ {
+ label: '采购订单编号',
+ field: 'number',
+ sort: 'custom',
+ isForm: false,
+ isSearch: true,
+ table: {
+ width: 150,
+ fixed: 'left'
+ },
+ },
+ {
+ label: '电话',
+ field: 'phone',
+ sort: 'custom',
+ },
+ {
+ label: '传真',
+ field: 'fax',
+ sort: 'custom',
+ },
+ {
+ label: '采购员',
+ field: 'purchaser',
+ sort: 'custom',
+ },
+ {
+ label: '供应商编号',
+ field: 'supplierNumber',
+ sort: 'custom',
+ },
+ {
+ label: '供应商名称',
+ field: 'supplierName',
+ sort: 'custom',
+ },
+ {
+ label: '供应商地址',
+ field: 'supplierAddress',
+ sort: 'custom',
+ },
+ {
+ label: '发货至',
+ field: 'shipTo',
+ sort: 'custom',
+ },
+ {
+ label: '开票至',
+ field: 'invoiceTo',
+ sort: 'custom',
+ },
+ {
+ label: '联系人',
+ field: 'contacts',
+ sort: 'custom',
+ },
+ {
+ label: '联系电话',
+ field: 'contactsPhone',
+ sort: 'custom',
+ },
+ {
+ label: '付款方式',
+ field: 'paymentType',
+ sort: 'custom',
+ form: {
+ component: 'Select'
+ },
+ },
+ {
+ label: '注册地',
+ field: 'registLocation',
+ sort: 'custom',
+ },
+ {
+ label: '开户行',
+ field: 'bank',
+ sort: 'custom',
+ },
+ {
+ label: '账号',
+ field: 'account',
+ sort: 'custom',
+ },
+ {
+ label: '税号',
+ field: 'dutyParagraph',
+ sort: 'custom',
+ },
+ // {
+ // label: '是否关闭',
+ // field: 'available',
+ // dictType: DICT_TYPE.TRUE_FALSE,
+ // dictClass: 'string',
+ // isSearch: false,
+ // isTable: true,
+ // sort: 'custom',
+ // table: {
+ // width: 150
+ // },
+ // tableForm: {
+ // type: 'Select',
+ // inactiveValue: 'FALSE',
+ // disabled: true
+ // },
+ // form: {
+ // component: 'Switch',
+ // value: 'FALSE',
+ // componentProps: {
+ // inactiveValue: 'FALSE',
+ // activeValue: 'TRUE'
+ // }
+ // }
+ // },
+ {
+ label: '状态',
+ field: 'status',
+ sort: 'custom',
+ dictType: DICT_TYPE.IS_COMPLETE,
+ dictClass: 'string',
+ isTable: true,
+ isForm: true,
+ tableForm: {
+ type: 'Select'
+ },
+ form: {
+ value: 'INCOMPLETE',
+ componentProps: {
+ disabled: true,
+ }
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 200,
+ fixed: 'right'
+ }
+ }
+]))
+
+//表单校验
+export const ItemOrderMainRules = reactive({
+ available: [
+ { required: true, message: '请选择是否关闭', trigger: 'change' }
+ ],
+})
+
+/**
+ * @returns {Array} 备件申请子表
+ */
+export const ItemOrderDetail = useCrudSchemas(reactive([
+ {
+ label: '备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ isSearch: true,
+ tableForm: {
+ isInpuFocusShow: true,
+ searchListPlaceholder: '请选择备件编号',
+ searchField: 'number',
+ searchTitle: '备件信息',
+ searchAllSchemas: SparePart.allSchemas, // 查询弹窗所需类
+ searchPage: ItemApi.getItemPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ },
+ },
+ {
+ label: '备件名称',
+ field: 'itemName',
+ sort: 'custom',
+ isSearch: true,
+ table: {
+ width: 110,
+ },
+ tableForm: {
+ disabled: true
+ }
+ },
+ {
+ label: '单位',
+ field: 'uom',
+ sort: 'custom',
+ dictType: DICT_TYPE.UOM,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select',
+ disabled: true
+ }
+ },
+ {
+ label: '单价',
+ field: 'singlePrice',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 1,
+ precision: 6
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 1,
+ precision: 6
+ }
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: true,
+ isTable: true,
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select',
+ disabled: true
+ }
+ },
+ {
+ label: '是否以旧换新',
+ field: 'isRadeIn',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: true,
+ isTable: true,
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select',
+ disabled: true
+ }
+ },
+ {
+ label: '库存数量',
+ field: 'qty',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ component: 'InputNumber',
+ componentProps: {
+ min: 1,
+ precision: 6
+ }
+ },
+ tableForm: {
+ type: 'InputNumber',
+ min: 1,
+ precision: 6
+ }
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ table: {
+ width: 150
+ },
+ },
+
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ },
+ isTableForm: false,
+ }
+]))
+
+//表单校验
+export const ItemOrderDetailRules = reactive({
+ singlePrice: [
+ { required: true, message: '请输入备件单价', trigger: 'blur' },
+ ],
+})
diff --git a/src/views/eam/itemOutLocation/index.vue b/src/views/eam/itemOutLocation/index.vue
new file mode 100644
index 0000000..91ec605
--- /dev/null
+++ b/src/views/eam/itemOutLocation/index.vue
@@ -0,0 +1,243 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/itemOutLocation/itemOutLocation.data.ts b/src/views/eam/itemOutLocation/itemOutLocation.data.ts
new file mode 100644
index 0000000..ac28903
--- /dev/null
+++ b/src/views/eam/itemOutLocation/itemOutLocation.data.ts
@@ -0,0 +1,53 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+
+// 表单校验
+export const ItemOutLocationRules = reactive({
+ number: [required],
+ itemNumber: [required],
+ locationNumber: [required],
+})
+
+export const ItemOutLocation = useCrudSchemas(reactive([
+ {
+ label: '出库编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '库位编号',
+ field: 'locationNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '出库类型',
+ field: 'type',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'Select'
+ },
+ },
+ {
+ label: '数量',
+ field: 'qty',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
\ No newline at end of file
diff --git a/src/views/eam/location/index.vue b/src/views/eam/location/index.vue
new file mode 100644
index 0000000..b3e96a4
--- /dev/null
+++ b/src/views/eam/location/index.vue
@@ -0,0 +1,269 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/location/location.data.ts b/src/views/eam/location/location.data.ts
new file mode 100644
index 0000000..c03e452
--- /dev/null
+++ b/src/views/eam/location/location.data.ts
@@ -0,0 +1,152 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+import * as LocationAreaApi from '@/api/eam/locationArea'
+import { LocationArea } from '../locationArea/locationArea.data'
+
+// 表单校验
+export const LocationRules = reactive({
+ number: [
+ { required: true, message: '请输入库位编号', trigger: 'blur' },
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ name: [
+ { required: true, message: '请输入库位名称', trigger: 'blur' },
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ areaNumber: [{ required: true, message: '请选择库区编号', trigger: 'blur' }]
+})
+
+export const Location = useCrudSchemas(
+ reactive([
+ {
+ label: '库位编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ table: {
+ width: 180,
+ fixed: 'left'
+ }
+ },
+ {
+ label: '库位名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '库区编号',
+ field: 'areaNumber',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择库区编号', // 输入框占位文本
+ searchField: 'number', // 查询弹窗赋值字段
+ searchTitle: '库区信息', // 查询弹窗标题
+ searchAllSchemas: LocationArea.allSchemas, // 查询弹窗所需类
+ searchPage: LocationAreaApi.getLocationAreaPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ }
+ },
+ {
+ label: '类型',
+ field: 'type',
+ dictType: DICT_TYPE.AREA_TYPE,
+ dictClass: 'string',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '是否为账内',
+ field: 'isInAccount',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select',
+ inactiveValue: 'FALSE',
+ disabled: true
+ },
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ // {
+ // label: '是否可用',
+ // field: 'available',
+ // dictType: DICT_TYPE.TRUE_FALSE,
+ // dictClass: 'string',
+ // isSearch: false,
+ // isTable: true,
+ // sort: 'custom',
+ // table: {
+ // width: 150
+ // },
+ // tableForm: {
+ // type: 'Select',
+ // inactiveValue: 'FALSE',
+ // disabled: true
+ // },
+ // form: {
+ // component: 'Switch',
+ // value: 'TRUE',
+ // componentProps: {
+ // inactiveValue: 'FALSE',
+ // activeValue: 'TRUE'
+ // }
+ // }
+ // },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isForm: false,
+ table: {
+ width: 170
+ }
+ },
+ {
+ label: '描述',
+ field: 'description',
+ sort: 'custom',
+ table: {
+ width: 150
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 180,
+ fixed: 'right'
+ }
+ }
+ ])
+)
diff --git a/src/views/eam/locationArea/index.vue b/src/views/eam/locationArea/index.vue
new file mode 100644
index 0000000..f9453be
--- /dev/null
+++ b/src/views/eam/locationArea/index.vue
@@ -0,0 +1,220 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/locationArea/locationArea.data.ts b/src/views/eam/locationArea/locationArea.data.ts
new file mode 100644
index 0000000..ecc0dec
--- /dev/null
+++ b/src/views/eam/locationArea/locationArea.data.ts
@@ -0,0 +1,77 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const LocationAreaRules = reactive({
+ number: [
+ { required: true, message: '请输入库区编号', trigger: 'blur' },
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ],
+ name: [
+ { required: true, message: '请输入库区名称', trigger: 'blur' },
+ { max: 50, message: '不得超过50个字符', trigger: 'blur' }
+ ]
+})
+
+export const LocationArea = useCrudSchemas(
+ reactive([
+ {
+ label: '库区编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ table: {
+ width: 180,
+ fixed: 'left'
+ }
+ },
+ {
+ label: '库区名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+
+ {
+ label: '类型',
+ field: 'type',
+ dictType: DICT_TYPE.AREA_TYPE,
+ dictClass: 'string',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isForm: false,
+ table: {
+ width: 170
+ }
+ },
+
+ {
+ label: '描述',
+ field: 'description',
+ sort: 'custom',
+ table: {
+ width: 150
+ }
+ },
+
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+ ])
+)
diff --git a/src/views/eam/maintainExperience/index.vue b/src/views/eam/maintainExperience/index.vue
new file mode 100644
index 0000000..0f88560
--- /dev/null
+++ b/src/views/eam/maintainExperience/index.vue
@@ -0,0 +1,256 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/maintainExperience/maintainExperience.data.ts b/src/views/eam/maintainExperience/maintainExperience.data.ts
new file mode 100644
index 0000000..f79a891
--- /dev/null
+++ b/src/views/eam/maintainExperience/maintainExperience.data.ts
@@ -0,0 +1,91 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const MaintainExperienceRules = reactive({
+ name: [required],
+ maintainNumber: [required]
+})
+
+export const MaintainExperience = useCrudSchemas(
+ reactive([
+ {
+ label: '经验标题',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '经验内容',
+ field: 'content',
+ sort: 'custom',
+ isTable: true,
+ form: {
+ componentProps: {
+ type: 'textarea',
+ height: 200
+ }
+ }
+ },
+
+ {
+ label: '保养工单编号',
+ field: 'maintainNumber',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false
+ },
+ {
+ label: '工单类型',
+ field: 'orderType',
+ sort: 'custom',
+ isForm: false,
+ isTable: false,
+ form: {
+ component: 'SelectV2'
+ }
+ },
+ {
+ label: '来源字典',
+ field: 'sources',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_MAINTENANCE_SOURCES,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isForm: false
+ },
+ {
+ label: '保养类型',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isForm: false
+ },
+ {
+ label: '设备/工装编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false
+ },
+ {
+ label: '设备/工装名称',
+ field: 'equipmentName',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isForm: false,
+ detail: {
+ dateFormat: 'YYYY-MM-DD HH:mm:ss'
+ }
+ }
+ ])
+)
diff --git a/src/views/eam/maintenance/audiForm.vue b/src/views/eam/maintenance/audiForm.vue
new file mode 100644
index 0000000..1e657de
--- /dev/null
+++ b/src/views/eam/maintenance/audiForm.vue
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/maintenance/index.vue b/src/views/eam/maintenance/index.vue
new file mode 100644
index 0000000..b9416c6
--- /dev/null
+++ b/src/views/eam/maintenance/index.vue
@@ -0,0 +1,420 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/maintenance/maintenance.data.ts b/src/views/eam/maintenance/maintenance.data.ts
new file mode 100644
index 0000000..49dc8b6
--- /dev/null
+++ b/src/views/eam/maintenance/maintenance.data.ts
@@ -0,0 +1,533 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import { EquipmentAccounts } from '@/views/eam/equipmentAccounts/equipmentAccounts.data'
+import * as EquipmentItemApi from '@/api/eam/equipmentAccounts'
+import { BasicMaintenanceOption } from '@/views/eam/basicMaintenanceOption/basicMaintenanceOption.data'
+import * as MaintenanceOptionApi from '@/api/eam/basicMaintenanceOption'
+import { BasicEamWorkshop } from '@/views/eam/basicEamWorkshop/basicEamWorkshop.data'
+import * as WorkshopApi from '@/api/eam/basicEamWorkshop'
+
+// 表单校验
+export const MaintenanceRules = reactive({
+ name: [required],
+ type: [required],
+ equipmentCode: [required],
+ optionCode: [required],
+ cycle: [required],
+ startTime: [required],
+ endTime: [required],
+ workshopCode: [required]
+})
+
+export const Maintenance = useCrudSchemas(
+ reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '计划编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ isDetail: true
+ },
+ {
+ label: '计划名称1',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '设备类别',
+ field: 'type',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '设备工装编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择 设备编号', // 输入框占位文本
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ multiple: true,
+ searchCondition: [
+ {
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }
+ ]
+ }
+ }
+ },
+ {
+ label: '方案编号',
+ field: 'optionCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '保养方案信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择保养方案', // 输入框占位文本
+ searchAllSchemas: BasicMaintenanceOption.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: MaintenanceOptionApi.getBasicMaintenanceOptionPage, // 查询弹窗所需分页方法
+ multiple: true,
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }
+ ]
+ }
+ }
+ },
+ {
+ label: '周期',
+ field: 'cycle',
+ dictType: DICT_TYPE.MAINTENANCE_CYCLE,
+ dictClass: 'string',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '计划开始时间',
+ field: 'startTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '计划结束时间',
+ field: 'endTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.EAM_PLAN_STATUS,
+ dictClass: 'string'
+ },
+ {
+ label: '审核人',
+ field: 'approver',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false
+ },
+ {
+ label: '审核内容',
+ field: 'approveContent',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false
+ },
+ {
+ label: '审核时间',
+ field: 'approveTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '自动审核',
+ field: 'autoExamine',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '自动通过',
+ field: 'autoAgree',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '所属厂区编号',
+ field: 'factoryAreaCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '车间代码',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: false,
+ required: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '车间', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: BasicEamWorkshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getBasicEamWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: true,
+ isTableForm: false,
+ isForm: false
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+ ])
+)
+
+// 表单校验
+export const RelationMaintenancePlanItemRules = reactive({
+ planNumber: [required],
+ itemCode: [required],
+ itemName: [required]
+})
+
+export const RelationMaintenancePlanItem = useCrudSchemas(
+ reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '计划编号',
+ field: 'planNumber',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '项编号',
+ field: 'itemCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '保养名称',
+ field: 'itemName',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '是否必选',
+ field: 'isSelectd',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.FALSE_OR_TRUE,
+ dictClass: 'string'
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+ ])
+)
diff --git a/src/views/eam/maintenanceItem/index.vue b/src/views/eam/maintenanceItem/index.vue
new file mode 100644
index 0000000..2d7512a
--- /dev/null
+++ b/src/views/eam/maintenanceItem/index.vue
@@ -0,0 +1,268 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/maintenanceItem/maintenanceItem.data.ts b/src/views/eam/maintenanceItem/maintenanceItem.data.ts
new file mode 100644
index 0000000..4232aa2
--- /dev/null
+++ b/src/views/eam/maintenanceItem/maintenanceItem.data.ts
@@ -0,0 +1,124 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { handleTreeToComponentOptions } from '@/utils/tree'
+import * as DeptApi from '@/api/system/dept'
+const deptList = ref([]) // 树形结构
+
+// 加载部门树(默认格式)
+deptList.value = handleTreeToComponentOptions(await DeptApi.getSimpleDeptList())
+
+// 表单校验
+export const MaintenanceItemRules = reactive({
+ content: [required],
+ serialNumber: [required],
+ name: [required],
+})
+
+export const MaintenanceItem = useCrudSchemas(reactive([
+
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '序号',
+ field: 'serialNumber',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ fixed: 'left',
+ form: {
+ component:'InputNumber'
+ },
+ },
+ {
+ label: '保养名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '保养要求',
+ field: 'content',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Input',
+ componentProps: {
+ type: 'textarea',
+ rows: 4
+ },
+ colProps: {
+ span: 24
+ }
+ }
+ },
+ {
+ label: '保养部位',
+ field: 'equipmentParts',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '部门',
+ field: 'departmentCode',
+ sort: 'custom',
+ isTable: false,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ form: {
+ component: 'TreeSelect',
+ componentProps: { // 假设deptList是部门数据列表
+ data: deptList,
+ placeholder: "请选择部门",
+ filterable: true,
+ // multiple: true,
+ }
+ }
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Input',
+ componentProps: {
+ type: 'textarea',
+ rows: 4
+ },
+ colProps: {
+ span: 24
+ }
+ }
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: false,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/maintenanceItemSelectSet/index.vue b/src/views/eam/maintenanceItemSelectSet/index.vue
new file mode 100644
index 0000000..2928f06
--- /dev/null
+++ b/src/views/eam/maintenanceItemSelectSet/index.vue
@@ -0,0 +1,289 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/maintenanceItemSelectSet/itemSelectSetForm.vue b/src/views/eam/maintenanceItemSelectSet/itemSelectSetForm.vue
new file mode 100644
index 0000000..dfe3606
--- /dev/null
+++ b/src/views/eam/maintenanceItemSelectSet/itemSelectSetForm.vue
@@ -0,0 +1,280 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/maintenanceItemSelectSet/maintenanceItemSelectSet.data.ts b/src/views/eam/maintenanceItemSelectSet/maintenanceItemSelectSet.data.ts
new file mode 100644
index 0000000..ba8d146
--- /dev/null
+++ b/src/views/eam/maintenanceItemSelectSet/maintenanceItemSelectSet.data.ts
@@ -0,0 +1,141 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const BasicMaintenanceItemSelectSetRules = reactive({
+ name: [required],
+ itemCode: [required],
+ concurrencyStamp: [required],
+})
+
+export const BasicMaintenanceItemSelectSet = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: true,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '选择集名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '项编号',
+ field: 'itemCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: true,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/planInspection/audiForm.vue b/src/views/eam/planInspection/audiForm.vue
new file mode 100644
index 0000000..fde8bdc
--- /dev/null
+++ b/src/views/eam/planInspection/audiForm.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/planInspection/index.vue b/src/views/eam/planInspection/index.vue
new file mode 100644
index 0000000..51585ec
--- /dev/null
+++ b/src/views/eam/planInspection/index.vue
@@ -0,0 +1,419 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/planInspection/planInspection.data.ts b/src/views/eam/planInspection/planInspection.data.ts
new file mode 100644
index 0000000..5befab5
--- /dev/null
+++ b/src/views/eam/planInspection/planInspection.data.ts
@@ -0,0 +1,404 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts.data";
+import * as EquipmentItemApi from "@/api/eam/equipmentAccounts";
+import * as BasicInspectionApi from "@/api/eam/basicInspectionOption";
+import {BasicInspectionOption} from "@/views/eam/basicInspectionOption/basicInspectionOption.data";
+import {BasicEamWorkshop} from "@/views/eam/basicEamWorkshop/basicEamWorkshop.data";
+import * as WorkshopApi from "@/api/eam/basicEamWorkshop";
+
+// 表单校验
+export const PlanInspectionRules = reactive({
+ type: [required],
+ number: [required],
+ name: [required],
+ equipmentCode: [required],
+ optionCode: [required],
+ cycle: [required],
+ startTime: [required],
+ endTime: [required],
+ workshopCode: [required],
+})
+
+export const PlanInspection = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '计划编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '计划名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '设备类别',
+ field: 'type',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '设备工装编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择 设备编号', // 输入框占位文本
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '方案编号',
+ field: 'optionCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '巡检方案信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择巡检方案', // 输入框占位文本
+ searchAllSchemas: BasicInspectionOption.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: BasicInspectionApi.getBasicInspectionOptionPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '计划类型',
+ field: 'cycle',
+ dictType: DICT_TYPE.INSPECTION_CYCLE,
+ dictClass: 'string',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '计划开始时间',
+ field: 'startTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '计划结束时间',
+ field: 'endTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.EAM_PLAN_STATUS,
+ dictClass: 'string',
+ },
+ {
+ label: '审核人',
+ field: 'approver',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '审核内容',
+ field: 'approveContent',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '审核时间',
+ field: 'approveTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '自动审核',
+ field: 'autoExamine',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '自动通过',
+ field: 'autoAgree',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '所属厂区编号',
+ field: 'factoryAreaCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '车间代码',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: false,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '车间', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: BasicEamWorkshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getBasicEamWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '产线编号',
+ field: 'lineCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '工序编号',
+ field: 'processCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '工位编号',
+ field: 'workstationCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: true,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/planSpotCheck/audiForm.vue b/src/views/eam/planSpotCheck/audiForm.vue
new file mode 100644
index 0000000..1d2e366
--- /dev/null
+++ b/src/views/eam/planSpotCheck/audiForm.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/planSpotCheck/index.vue b/src/views/eam/planSpotCheck/index.vue
new file mode 100644
index 0000000..ba92375
--- /dev/null
+++ b/src/views/eam/planSpotCheck/index.vue
@@ -0,0 +1,423 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/planSpotCheck/planSpotCheck.data.ts b/src/views/eam/planSpotCheck/planSpotCheck.data.ts
new file mode 100644
index 0000000..d852ff5
--- /dev/null
+++ b/src/views/eam/planSpotCheck/planSpotCheck.data.ts
@@ -0,0 +1,397 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import {EquipmentAccounts} from "@/views/eam/equipmentAccounts/equipmentAccounts.data";
+import * as EquipmentItemApi from "@/api/eam/equipmentAccounts";
+import * as SpotCheckOptionApi from "@/api/eam/basicSpotCheckOption";
+import {BasicSpotCheckOption} from "@/views/eam/basicSpotCheckOption/basicSpotCheckOption.data";
+import {BasicEamWorkshop} from "@/views/eam/basicEamWorkshop/basicEamWorkshop.data";
+import * as WorkshopApi from "@/api/eam/basicEamWorkshop";
+
+// 表单校验
+export const PlanSpotCheckRules = reactive({
+ type: [required],
+ number: [required],
+ name: [required],
+ equipmentCode: [required],
+ optionCode: [required],
+ cycle: [required],
+ startTime: [required],
+ endTime: [required],
+ workshopCode: [required],
+})
+
+export const PlanSpotCheck = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '计划编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ isDetail:true,
+ },
+ {
+ label: '计划名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '设备类别',
+ field: 'type',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '设备工装编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择 设备编号', // 输入框占位文本
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '方案编号',
+ field: 'optionCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '点检方案信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择点检方案', // 输入框占位文本
+ searchAllSchemas: BasicSpotCheckOption.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: SpotCheckOptionApi.getBasicSpotCheckOptionPage, // 查询弹窗所需分页方法
+ multiple:true,
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }]
+ }
+ }
+ },
+ {
+ label: '计划类型',
+ field: 'cycle',
+ dictType: DICT_TYPE.SPOTCHECK_CYCLE,
+ dictClass: 'string',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '计划开始时间',
+ field: 'startTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '计划结束时间',
+ field: 'endTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: true,
+ dictType: DICT_TYPE.EAM_PLAN_STATUS,
+ dictClass: 'string',
+ },
+ {
+ label: '审核人',
+ field: 'approver',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '审核内容',
+ field: 'approveContent',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ },
+ {
+ label: '审核时间',
+ field: 'approveTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '自动审核',
+ field: 'autoExamine',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '自动通过',
+ field: 'autoAgree',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '所属厂区编号',
+ field: 'factoryAreaCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '车间代码',
+ field: 'workshopCode',
+ sort: 'custom',
+ isSearch: false,
+ required: true,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '车间', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '车间信息', // 查询弹窗标题
+ searchAllSchemas: BasicEamWorkshop.allSchemas, // 查询弹窗所需类
+ searchPage: WorkshopApi.getBasicEamWorkshopPage, // 查询弹窗所需分页方法
+ searchCondition: [{
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }]
+ }
+ },
+ },
+ {
+ label: '产线编号',
+ field: 'lineCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '工序编号',
+ field: 'processCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '工位编号',
+ field: 'workstationCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isTable: true,
+ isDetail: false,
+ isSearch: true,
+ isTableForm: false,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/recordDeviceChanged/index.vue b/src/views/eam/recordDeviceChanged/index.vue
new file mode 100644
index 0000000..7e78b8e
--- /dev/null
+++ b/src/views/eam/recordDeviceChanged/index.vue
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/recordDeviceChanged/recordDeviceChanged.data.ts b/src/views/eam/recordDeviceChanged/recordDeviceChanged.data.ts
new file mode 100644
index 0000000..3a587c4
--- /dev/null
+++ b/src/views/eam/recordDeviceChanged/recordDeviceChanged.data.ts
@@ -0,0 +1,181 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const RecordDeviceChangedRules = reactive({
+ code: [required],
+ name: [required],
+})
+
+export const RecordDeviceChanged = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isForm: false,
+ },
+ {
+ label: '设备编号',
+ field: 'code',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '变更前状态',
+ field: 'statusBefore',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_STATUS,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ },
+ {
+ label: '变更后状态',
+ field: 'statusAfter',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_STATUS,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ },
+ {
+ label: '操作人',
+ field: 'operator',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '操作时间',
+ field: 'operateTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/relationMainPart/index.vue b/src/views/eam/relationMainPart/index.vue
new file mode 100644
index 0000000..9e605b3
--- /dev/null
+++ b/src/views/eam/relationMainPart/index.vue
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/relationMainPart/relationMainPart.data.ts b/src/views/eam/relationMainPart/relationMainPart.data.ts
new file mode 100644
index 0000000..b1d1ae5
--- /dev/null
+++ b/src/views/eam/relationMainPart/relationMainPart.data.ts
@@ -0,0 +1,122 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+
+// 表单校验
+export const RelationMainPartRules = reactive({
+ mainPartCode: [required],
+ equipmentCode: [required],
+ type: [required],
+ concurrencyStamp: [required]
+})
+
+export const RelationMainPart = useCrudSchemas(reactive([
+ {
+ label: '主要零件编号',
+ field: 'mainPartCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '编码',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '类别',
+ field: 'type',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false
+ },
+ {
+ label: '部门',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '地点',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '删除人',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/repairExperience/index.vue b/src/views/eam/repairExperience/index.vue
new file mode 100644
index 0000000..c8d8a68
--- /dev/null
+++ b/src/views/eam/repairExperience/index.vue
@@ -0,0 +1,259 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/repairExperience/repairExperience.data.ts b/src/views/eam/repairExperience/repairExperience.data.ts
new file mode 100644
index 0000000..0582461
--- /dev/null
+++ b/src/views/eam/repairExperience/repairExperience.data.ts
@@ -0,0 +1,112 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const RepairExperienceRules = reactive({
+ name: [required],
+ repairNumber: [required]
+})
+
+export const RepairExperience = useCrudSchemas(
+ reactive([
+ {
+ label: '经验标题',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '维修工单编号',
+ field: 'repairNumber',
+ sort: 'custom',
+ isSearch: true,
+
+ isForm: false
+ },
+ {
+ label: '经验内容',
+ field: 'content',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'Input',
+ componentProps: {
+ type: 'textarea',
+ valueHtml: '',
+ height: 200
+ }
+ }
+ },
+
+ {
+ label: '来源字典',
+ field: 'sources',
+ sort: 'custom',
+ dictType: DICT_TYPE.EAM_MAINTENANCE_SOURCES,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isForm: false
+ },
+ {
+ label: '报修类型',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.DEVICE_TYPE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: false,
+ isForm: false
+ },
+ {
+ label: '设备/工装编号',
+ field: 'equipmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false
+ },
+ {
+ label: '设备/工装名称',
+ field: 'equipmentName',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false
+ },
+ {
+ label: '故障时间',
+ field: 'faultTime',
+ formatter: dateFormatter,
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ detail: {
+ dateFormat: 'YYYY-MM-DD HH:mm:ss'
+ }
+ },
+ {
+ label: '故障类型',
+ field: 'faultType',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false
+ },
+ {
+ label: '创建人',
+ field: 'createTime',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+ isTable: false,
+ isDetail: false
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isForm: false,
+ isSearch: false,
+ detail: {
+ dateFormat: 'YYYY-MM-DD HH:mm:ss'
+ }
+ }
+ ])
+)
diff --git a/src/views/eam/repairSparePartsRecord/index.vue b/src/views/eam/repairSparePartsRecord/index.vue
new file mode 100644
index 0000000..2700a26
--- /dev/null
+++ b/src/views/eam/repairSparePartsRecord/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/repairSparePartsRecord/repairSparePartsRecord.data.ts b/src/views/eam/repairSparePartsRecord/repairSparePartsRecord.data.ts
new file mode 100644
index 0000000..b5ce90d
--- /dev/null
+++ b/src/views/eam/repairSparePartsRecord/repairSparePartsRecord.data.ts
@@ -0,0 +1,238 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const RepairSparePartsRecordRules = reactive({
+ number: [required],
+ sparePartsCode: [required],
+ qty: [required],
+ areaCode: [required],
+ locationCode: [required],
+ status: [required],
+ result: [required],
+ applyer: [required],
+ concurrencyStamp: [required]
+})
+
+export const RepairSparePartsRecord = useCrudSchemas(reactive([
+ {
+ label: '单号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '备件编号',
+ field: 'sparePartsCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '数量',
+ field: 'qty',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '库区编号',
+ field: 'areaCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '库位编号',
+ field: 'locationCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Radio'
+ }
+ },
+ {
+ label: '结果状态',
+ field: 'result',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '申请人',
+ field: 'applyer',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '审核人',
+ field: 'approver',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '审核内容',
+ field: 'approveContent',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Editor',
+ componentProps: {
+ valueHtml: '',
+ height: 200
+ }
+ }
+ },
+ {
+ label: '审核时间',
+ field: 'approveTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '自动审核',
+ field: 'autoExamine',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '自动通过',
+ field: 'autoAgree',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false
+ },
+ {
+ label: '部门',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '地点',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '删除人',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/repairSparePartsRequest/index.vue b/src/views/eam/repairSparePartsRequest/index.vue
new file mode 100644
index 0000000..fc48102
--- /dev/null
+++ b/src/views/eam/repairSparePartsRequest/index.vue
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/repairSparePartsRequest/repairSparePartsRequest.data.ts b/src/views/eam/repairSparePartsRequest/repairSparePartsRequest.data.ts
new file mode 100644
index 0000000..d64c8d8
--- /dev/null
+++ b/src/views/eam/repairSparePartsRequest/repairSparePartsRequest.data.ts
@@ -0,0 +1,251 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const RepairSparePartsRequestRules = reactive({
+ number: [required],
+ sparePartsCode: [required],
+ qty: [required],
+ areaCode: [required],
+ locationCode: [required],
+ status: [required],
+ result: [required],
+ applyer: [required],
+ concurrencyStamp: [required],
+ repairCause: [required]
+})
+
+export const RepairSparePartsRequest = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isForm: false
+ },
+ {
+ label: '单号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '备件编号',
+ field: 'sparePartsCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '数量',
+ field: 'qty',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '库区编号',
+ field: 'areaCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ }
+ },
+ {
+ label: '库位编号',
+ field: 'locationCode',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ }
+ },
+ {
+ label: '流程状态枚举0:待审核1:已撤回3:审核中4:已通过5:已驳回6:已完成',
+ field: 'status',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Radio'
+ }
+ },
+ {
+ label: '结果状态枚举:0待维修,1已废弃,2已修好',
+ field: 'result',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ }
+ },
+ {
+ label: '申请人',
+ field: 'applyer',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '审核人',
+ field: 'approver',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '审核内容',
+ field: 'approveContent',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Editor',
+ componentProps: {
+ valueHtml: '',
+ height: 200
+ }
+ }
+ },
+ {
+ label: '审核时间',
+ field: 'approveTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '自动审核',
+ field: 'autoExamine',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '自动通过',
+ field: 'autoAgree',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false
+ },
+ {
+ label: '部门',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '地点',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '是否可用--默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '删除人',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '维修原因',
+ field: 'repairCause',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/sparePart/index.vue b/src/views/eam/sparePart/index.vue
new file mode 100644
index 0000000..e939939
--- /dev/null
+++ b/src/views/eam/sparePart/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/sparePart/sparePart.data.ts b/src/views/eam/sparePart/sparePart.data.ts
new file mode 100644
index 0000000..86f74f2
--- /dev/null
+++ b/src/views/eam/sparePart/sparePart.data.ts
@@ -0,0 +1,290 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+import * as ConfigApi from '@/api/infra/config'
+const autoCodeSwitch = await ConfigApi.getConfigKey('sparePartCodeAutoSwitch')
+const autoSwitch = ref(false)
+if (autoCodeSwitch == 'TRUE') {
+ autoSwitch.value = true
+}
+
+// 表单校验
+export const SparePartRules = reactive({
+ code: [required],
+ name: [required],
+ isOverall: [required],
+ images: [required],
+ uom: [required],
+})
+
+export const SparePart = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false
+ },
+ {
+ label: '备件编号',
+ field: 'code',
+ sort: 'custom',
+ isForm: !autoSwitch.value,
+ isSearch: true,
+ fixed: 'left'
+ },
+ {
+ label: '名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '品牌',
+ field: 'brand',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '规格型号',
+ field: 'specifications',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '是否全局',
+ field: 'isOverall',
+ sort: 'custom',
+ dictType: DICT_TYPE.TRUE_FALSE,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Switch',
+ value: 'TRUE',
+ componentProps: {
+ inactiveValue: 'FALSE',
+ activeValue: 'TRUE'
+ }
+ }
+ },
+ {
+ label: '科目',
+ field: 'subject',
+ sort: 'custom',
+ dictType: DICT_TYPE.SUBJECT,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '科目代码',
+ field: 'subjectCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '类别',
+ field: 'type',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '图片',
+ field: 'images',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '区域',
+ field: 'region',
+ sort: 'custom',
+ dictType: DICT_TYPE.REGION,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '备件分类',
+ field: 'classification',
+ sort: 'custom',
+ dictType: DICT_TYPE.PART_CLASS,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '计量单位字典',
+ field: 'uom',
+ sort: 'custom',
+ dictType: DICT_TYPE.UOM,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ },
+ {
+ label: '单价',
+ field: 'singlePrice',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '生产厂家字符',
+ field: 'manufacturer',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '库存下限',
+ field: 'minInventory',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '库存上限',
+ field: 'maxInventory',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '更换周期',
+ field: 'replacementCycle',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '存放位置描述',
+ field: 'storageLocation',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ },
+ {
+ label: '部门id',
+ field: 'departmentCode',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '是否可用默认TRUE',
+ field: 'available',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '删除人id',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/sparePartsApplyMain/SparePartsApply.data.ts b/src/views/eam/sparePartsApplyMain/SparePartsApply.data.ts
new file mode 100644
index 0000000..aee2c49
--- /dev/null
+++ b/src/views/eam/sparePartsApplyMain/SparePartsApply.data.ts
@@ -0,0 +1,364 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+
+import * as ItemAccountsApi from '@/api/eam/itemAccounts'
+import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data'
+
+import { EquipmentAccounts } from '@/views/eam/equipmentAccounts/equipmentAccounts.data'
+import * as EquipmentItemApi from '@/api/eam/equipmentAccounts'
+
+import { dateFormatter } from '@/utils/formatTime'
+
+export const SparePartsApplyMain = useCrudSchemas(
+ reactive([
+ {
+ label: '申请编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false
+ },
+ {
+ label: '出库类型',
+ field: 'outType',
+ dictType: DICT_TYPE.EAM_OUT_TYPE,
+ dictClass: 'string',
+ isTable: true,
+ sort: 'custom',
+ isSearch: false,
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '关联工单',
+ field: 'workNumber',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择 设备编号', // 输入框占位文本
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ multiple: true,
+ searchCondition: [
+ {
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }
+ ]
+ }
+ },
+ tableForm: {
+ isInpuFocusShow: true,
+ searchListPlaceholder: '请选择备件编号', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '备件信息', // 查询弹窗标题
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }
+ ]
+ }
+ },
+
+ {
+ label: '出库主题',
+ field: 'theme',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '描述',
+ field: 'description',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '申领备件总价',
+ field: 'sumVal',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ dictType: DICT_TYPE.SPAREPARTS_APPLY_STATUS_ENUM,
+ dictClass: 'string', // 默认都是字符串类型其他暂不考虑
+ isSearch: true,
+ isTable: true,
+ isForm: false,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '申请人',
+ field: 'applyer',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '审核人',
+ field: 'approver',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '审核内容',
+ field: 'approveContent',
+ sort: 'custom',
+ isSearch: true,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '审核时间',
+ field: 'approveTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '自动审核',
+ field: 'autoExamine',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '自动通过',
+ field: 'autoAgree',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 180,
+ fixed: 'right'
+ }
+ }
+ ])
+)
+
+//表单校验
+export const SparePartsApplyMainRules = reactive({
+ outType: [{ required: true, message: '请输入出库类型', trigger: 'blur' }],
+ theme: [{ required: true, message: '请输入出库主题', trigger: 'blur' }]
+})
+/**
+ * @returns {Array} 备件申请子表
+ */
+export const SparePartsApplyDetail = useCrudSchemas(
+ reactive([
+ {
+ label: '库位编号',
+ field: 'locationCode',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择库位编号', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '库位信息', // 查询弹窗标题
+
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ },
+ tableForm: {
+ isInpuFocusShow: true,
+ searchListPlaceholder: '请选择备件编号', // 输入框占位文本
+ searchField: 'itemNumber', // 查询弹窗赋值字段
+ searchTitle: '备件信息', // 查询弹窗标题
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ },
+ {
+ label: '库区编号',
+ field: 'areaCode',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ tableForm: {
+ disabled: true
+ }
+ },
+ {
+ label: '备件编号',
+ field: 'sparePartsCode',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ tableForm: {
+ disabled: true
+ }
+ },
+ {
+ label: '库存数量',
+ field: 'currentQty',
+ sort: 'custom',
+ isSearch: false,
+ tableForm: {
+ disabled: true
+ },
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ isDetail: false,
+ isTable: false
+ },
+ {
+ label: '申领数量',
+ field: 'applyQty',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ },
+ isTableForm: false
+ }
+ ])
+)
+
+//表单校验
+export const SparePartsApplyDetailRules = reactive({
+ applyQty: [{ required: true, message: '请输入标包数量', trigger: 'blur' }]
+})
+
+// 审核完成字段
+export const SparePartsApplyExamine = useCrudSchemas(
+ reactive([
+ {
+ label: '审核内容',
+ field: 'approveContent',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'Input',
+ componentProps: {
+ type: 'textarea'
+ }
+ }
+ }
+ ])
+)
diff --git a/src/views/eam/sparePartsApplyMain/index.vue b/src/views/eam/sparePartsApplyMain/index.vue
new file mode 100644
index 0000000..aaf5fb3
--- /dev/null
+++ b/src/views/eam/sparePartsApplyMain/index.vue
@@ -0,0 +1,511 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/sparePartsInLocationRecord/index.vue b/src/views/eam/sparePartsInLocationRecord/index.vue
new file mode 100644
index 0000000..981c0e3
--- /dev/null
+++ b/src/views/eam/sparePartsInLocationRecord/index.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/sparePartsInLocationRecord/sparePartsInLocationRecordMain.data.ts b/src/views/eam/sparePartsInLocationRecord/sparePartsInLocationRecordMain.data.ts
new file mode 100644
index 0000000..44e521d
--- /dev/null
+++ b/src/views/eam/sparePartsInLocationRecord/sparePartsInLocationRecordMain.data.ts
@@ -0,0 +1,230 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import * as ItemAccountsApi from '@/api/eam/itemAccounts'
+import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data'
+
+// 表单校验
+export const SparePartsInLocationRecordMainRules = reactive({
+ number: [required],
+ theme: [required],
+ type: [required]
+})
+// 备件入库主表
+export const SparePartsInLocationRecordMain = useCrudSchemas(
+ reactive([
+ {
+ label: '备件编号',
+ field: 'sparePartsCode',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ table: {
+ width: 180,
+ fixed: 'left'
+ }
+ },
+ {
+ label: '备件名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ table: {
+ width: 110
+ }
+ },
+ {
+ label: '备件名称',
+ field: 'name',
+ sort: 'custom',
+ isSearch: true,
+ table: {
+ width: 110
+ }
+ },
+ {
+ label: '备件类型',
+ field: 'classification',
+ sort: 'custom',
+ dictType: DICT_TYPE.PART_CLASS,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+
+ {
+ label: '规格型号',
+ field: 'specifications',
+ sort: 'custom'
+ },
+
+ {
+ label: '存放位置',
+ field: 'locationCode',
+ sort: 'custom'
+ },
+ {
+ label: '计量单位',
+ field: 'uom',
+ sort: 'custom',
+ dictType: DICT_TYPE.UOM,
+ dictClass: 'string',
+ isSearch: false,
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '生产厂家',
+ field: 'brand',
+ sort: 'custom'
+ },
+ {
+ label: '申请单号',
+ field: 'requestNumber',
+ sort: 'custom'
+ },
+ {
+ label: '申领数量',
+ field: 'applyQty',
+ sort: 'custom'
+ },
+ {
+ label: '出库时问',
+ field: 'createTime',
+ sort: 'custom'
+ }
+ ])
+)
+// 备件入库子表
+export const SparePartsInLocationRecordDetailRules = reactive({
+ number: [required],
+ masterId: [required],
+ locationCode: [required],
+ areaCode: [required],
+ sparePartsCode: [required],
+ applyQty: [required]
+})
+
+export const SparePartsInLocationRecordDetail = useCrudSchemas(
+ reactive([
+ {
+ label: '库位编号',
+ field: 'locationCode',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择库位编号', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '库位信息', // 查询弹窗标题
+
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ },
+ tableForm: {
+ isInpuFocusShow: true,
+ searchListPlaceholder: '请选择备件编号', // 输入框占位文本
+ searchField: 'itemNumber', // 查询弹窗赋值字段
+ searchTitle: '备件信息', // 查询弹窗标题
+
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ },
+ {
+ label: '库区编号',
+ field: 'areaCode',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ tableForm: {
+ disabled: true
+ }
+ },
+ {
+ label: '备件编号',
+ field: 'sparePartsCode',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ tableForm: {
+ disabled: true
+ }
+ },
+ {
+ label: '库存数量',
+ field: 'currentQty',
+ sort: 'custom',
+ isSearch: false,
+ tableForm: {
+ disabled: true
+ },
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ isDetail: false,
+ isTable: false
+ },
+ {
+ label: '申领数量',
+ field: 'applyQty',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ isTableForm: false
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true
+ }
+ ])
+)
diff --git a/src/views/eam/sparepartsinlocation/index.vue b/src/views/eam/sparepartsinlocation/index.vue
new file mode 100644
index 0000000..e9059f6
--- /dev/null
+++ b/src/views/eam/sparepartsinlocation/index.vue
@@ -0,0 +1,467 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.number }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts b/src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts
new file mode 100644
index 0000000..eef186d
--- /dev/null
+++ b/src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts
@@ -0,0 +1,298 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+import * as ItemAccountsApi from '@/api/eam/itemAccounts'
+import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data'
+
+
+// 表单校验
+export const SparePartsInLocationMainRules = reactive({
+ number: [required],
+ theme: [required],
+ type: [required],
+})
+// 备件入库主表
+export const SparePartsInLocationMain = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ isDetail:false,
+ },
+ {
+ label: '编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false,
+ },
+ {
+ label: '入库主题',
+ field: 'theme',
+ sort: 'custom',
+ isSearch: true,
+ },{
+ label: '入库类型',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.PUT_IN_TYPE,
+ dictClass: 'string',
+
+ },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: false,
+ isForm:false,
+
+ dictType: DICT_TYPE.SPAREPARTS_APPLY_STATUS_ENUM,
+ dictClass: 'string',
+
+ },
+ {
+ label: '入库申请人',
+ field: 'applyer',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '审核人',
+ field: 'approver',
+ sort: 'custom',
+ isSearch: false,
+ isForm:false
+ },
+ {
+ label: '审核内容',
+ field: 'approveContent',
+ sort: 'custom',
+ isSearch: false,
+ isForm:false
+ },
+ {
+ label: '审核时间',
+ field: 'approveTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isForm:false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ detail: {
+ dateFormat: 'YYYY-MM-DD HH:mm:ss'
+ },
+ },
+ {
+ label: '入库时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ detail: {
+ dateFormat: 'YYYY-MM-DD HH:mm:ss'
+ },
+ },
+
+
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false,
+ },
+
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 220,
+ fixed: 'right'
+ },
+ isDetail:false
+ }
+]))
+// 备件入库子表
+export const SparePartsInLocationDetailRules = reactive({
+ number: [required],
+ masterId: [required],
+ locationCode: [required],
+ areaCode: [required],
+ sparePartsCode: [required],
+ applyQty: [required],
+})
+
+export const SparePartsInLocationDetail = useCrudSchemas(reactive([
+ {
+ label: '库位编号',
+ field: 'locationCode',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择库位编号', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '库位信息', // 查询弹窗标题
+
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ },
+ tableForm: {
+ isInpuFocusShow: true,
+ searchListPlaceholder: '请选择备件编号', // 输入框占位文本
+ searchField: 'itemNumber', // 查询弹窗赋值字段
+ searchTitle: '备件信息', // 查询弹窗标题
+
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ },
+ {
+ label: '库区编号',
+ field: 'areaCode',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ tableForm:{
+ disabled: true
+ }
+ },
+ {
+ label: '备件编号',
+ field: 'sparePartsCode',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ tableForm:{
+ disabled: true
+ }
+ },
+ {
+ label: '库存数量',
+ field: 'currentQty',
+ sort: 'custom',
+ isSearch: false,
+ tableForm: {
+ disabled: true
+ },
+ form:{
+ componentProps:{
+ disabled: true
+ }
+ },
+ isDetail:false,
+ isTable:false
+ },
+ {
+ label: '申领数量',
+ field: 'applyQty',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ isTableForm:false
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ },
+ isTableForm:false,
+
+ }
+]))
+export const SparePartsInLocationExamineRules = reactive({
+ approver: [required],
+ approveContent: [required],
+ sparePartsCode: [required],
+})
+// 审核完成字段
+export const SparePartsInLocationExamine = useCrudSchemas(reactive([
+ {
+ label: '审核内容',
+ field: 'approveContent',
+ sort: 'custom',
+ isSearch: false,
+ form:{
+ component: 'Input',
+ componentProps: {
+ type: 'textarea'
+ }
+ }
+ },
+]))
+
diff --git a/src/views/eam/sparepartsoutlocation/SparePartsOutLocation.data.ts b/src/views/eam/sparepartsoutlocation/SparePartsOutLocation.data.ts
new file mode 100644
index 0000000..2041ab5
--- /dev/null
+++ b/src/views/eam/sparepartsoutlocation/SparePartsOutLocation.data.ts
@@ -0,0 +1,344 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+
+import * as ItemAccountsApi from '@/api/eam/itemAccounts'
+import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data'
+
+import { EquipmentAccounts } from '@/views/eam/equipmentAccounts/equipmentAccounts.data'
+import * as EquipmentItemApi from '@/api/eam/equipmentAccounts'
+
+import { dateFormatter } from '@/utils/formatTime'
+
+export const SparePartsOutLocationMain = useCrudSchemas(
+ reactive([
+ {
+ label: '编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false
+ },
+ {
+ label: '申请编号',
+ field: 'applyNumber',
+ sort: 'custom',
+ isSearch: true,
+ isForm: false
+ },
+ {
+ label: '出库类型',
+ field: 'outType',
+ dictType: DICT_TYPE.EAM_OUT_TYPE,
+ dictClass: 'string',
+ isTable: true,
+ sort: 'custom',
+ isSearch: false,
+ table: {
+ width: 150
+ },
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '关联工单',
+ field: 'workNumber',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ // labelMessage: '信息提示说明!!!',
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchTitle: '设备信息', // 查询弹窗标题
+ searchListPlaceholder: '请选择 设备编号', // 输入框占位文本
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchField: 'code', // 查询弹窗赋值字段
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ multiple: true,
+ searchCondition: [
+ {
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }
+ ]
+ }
+ },
+ tableForm: {
+ isInpuFocusShow: true,
+ searchListPlaceholder: '请选择备件编号', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '备件信息', // 查询弹窗标题
+ searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'status',
+ value: 'NORMAL',
+ action: '==',
+ isSearch: true,
+ isMainValue: false
+ }
+ ]
+ }
+ },
+
+ {
+ label: '出库主题',
+ field: 'theme',
+ sort: 'custom',
+ isSearch: true
+ },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+
+ dictType: DICT_TYPE.EAM_OUT_STATUS,
+ dictClass: 'string'
+ },
+ {
+ label: '申请人',
+ field: 'applyer',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '审核人',
+ field: 'approver',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ }
+ },
+ {
+ label: '审核内容',
+ field: 'approveContent',
+ sort: 'custom',
+ isSearch: true,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '审核时间',
+ field: 'approveTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ isForm: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ }
+ },
+ {
+ label: '自动审核',
+ field: 'autoExamine',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '自动通过',
+ field: 'autoAgree',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '直接生成记录',
+ field: 'directCreateRecord',
+ sort: 'custom',
+ isSearch: false,
+ isTable: false,
+ isForm: false
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable: false,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+ ])
+)
+
+//表单校验
+export const SparePartsOutLocationMainRules = reactive({
+ description: [{ required: true, message: '描述不能为空', trigger: 'change' }]
+})
+/**
+ * @returns {Array} 备件申请子表
+ */
+export const SparePartsOutLocationDetail = useCrudSchemas(
+ reactive([
+ {
+ label: '库位编号',
+ field: 'locationCode',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ componentProps: {
+ isSearchList: true, // 开启查询弹窗
+ searchListPlaceholder: '请选择库位编号', // 输入框占位文本
+ searchField: 'code', // 查询弹窗赋值字段
+ searchTitle: '库位信息', // 查询弹窗标题
+
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ },
+ tableForm: {
+ isInpuFocusShow: true,
+ searchListPlaceholder: '请选择备件编号', // 输入框占位文本
+ searchField: 'itemNumber', // 查询弹窗赋值字段
+ searchTitle: '备件信息', // 查询弹窗标题
+
+ searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类
+ searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法
+ searchCondition: [
+ {
+ key: 'available',
+ value: 'TRUE',
+ isMainValue: false
+ }
+ ]
+ }
+ },
+ {
+ label: '库区编号',
+ field: 'areaCode',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ tableForm: {
+ disabled: true
+ }
+ },
+ {
+ label: '备件编号',
+ field: 'sparePartsCode',
+ sort: 'custom',
+ table: {
+ width: 150
+ },
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ tableForm: {
+ disabled: true
+ }
+ },
+ {
+ label: '库存数量',
+ field: 'currentQty',
+ sort: 'custom',
+ isSearch: false,
+ tableForm: {
+ disabled: true
+ },
+ form: {
+ componentProps: {
+ disabled: true
+ }
+ },
+ isDetail: false,
+ isTable: false
+ },
+ {
+ label: '申领数量',
+ field: 'applyQty',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '流程状态',
+ field: 'status',
+ sort: 'custom',
+ isSearch: false,
+ isForm: false,
+
+ dictType: DICT_TYPE.EAM_OUT_STATUS,
+ dictClass: 'string'
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ isSearch: false
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isDetail: false,
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ },
+ isTableForm: false
+ }
+ ])
+)
+
+//表单校验
+export const SparePartsOutLocationDetailRules = reactive({
+ applyQty: [{ required: true, message: '请输入标包数量', trigger: 'blur' }]
+})
diff --git a/src/views/eam/sparepartsoutlocation/index.vue b/src/views/eam/sparepartsoutlocation/index.vue
new file mode 100644
index 0000000..e9532a1
--- /dev/null
+++ b/src/views/eam/sparepartsoutlocation/index.vue
@@ -0,0 +1,399 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+