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 @@ + + + + + + + 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 @@ + + + + + + + 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 @@ + + + + + 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 @@ + + + + + + + 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 @@ + + + \ 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + + 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 @@ + + + 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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + + 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 @@ + + + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + \ 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 @@ + + + + + + + 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 @@ + + + + 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 @@ + + + + \ 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 @@ + + + + + + + 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 @@ + + 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 @@ + + + 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 @@ + + + + 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 @@ + + + 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 @@ + + 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 @@ + + 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 @@ + + + \ 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 @@ + + + \ 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 @@ + + + + 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 @@ + + + + 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 @@ + + + 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 @@ + + + \ 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 @@ + + + + + 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 @@ + + + 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 @@ + + + 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 */} + {t(`ts.${title}` as string).replace('ts.','')} + + ) : ( + {t(`ts.${title}` as string).replace('ts.','')} + ) + } + + 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 @@ + + + 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 @@ + + + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + + + 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 @@ + + + + + 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 ( + <> +
+ {logo.value ? : undefined} + + +
+
+ +
+ + {tagsView.value ? ( + + ) : undefined} + + + +
+
+ + ) + } + + const renderTop = () => { + return ( + <> +
+ {logo.value ? : undefined} + + +
+
+ + {tagsView.value ? ( + + ) : undefined} + + + +
+ + ) + } + + const renderCutMenu = () => { + return ( + <> +
+ {logo.value ? : undefined} + + +
+
+ +
+ + {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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + 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 @@ + + 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 @@ + + 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 @@ + + 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 @@ + + 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 @@ + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + + 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 @@ + + + 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 @@ + + + + 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 @@ + + + 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 @@ + + + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + diff --git a/src/views/eam/spotCheckItem/index.vue b/src/views/eam/spotCheckItem/index.vue new file mode 100644 index 0000000..1241028 --- /dev/null +++ b/src/views/eam/spotCheckItem/index.vue @@ -0,0 +1,269 @@ + + + diff --git a/src/views/eam/spotCheckItem/spotCheckItem.data.ts b/src/views/eam/spotCheckItem/spotCheckItem.data.ts new file mode 100644 index 0000000..7ed9e58 --- /dev/null +++ b/src/views/eam/spotCheckItem/spotCheckItem.data.ts @@ -0,0 +1,123 @@ +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 SpotCheckItemRules = reactive({ + content: [required], + serialNumber: [required], + type: [required], + name: [required], +}) + +export const SpotCheckItem = 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: '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/spotCheckSelectSet/index.vue b/src/views/eam/spotCheckSelectSet/index.vue new file mode 100644 index 0000000..d27df84 --- /dev/null +++ b/src/views/eam/spotCheckSelectSet/index.vue @@ -0,0 +1,287 @@ + + + diff --git a/src/views/eam/spotCheckSelectSet/itemSelectSetForm.vue b/src/views/eam/spotCheckSelectSet/itemSelectSetForm.vue new file mode 100644 index 0000000..50848b9 --- /dev/null +++ b/src/views/eam/spotCheckSelectSet/itemSelectSetForm.vue @@ -0,0 +1,287 @@ + + + + diff --git a/src/views/eam/spotCheckSelectSet/spotCheckSelectSet.data.ts b/src/views/eam/spotCheckSelectSet/spotCheckSelectSet.data.ts new file mode 100644 index 0000000..a0344e5 --- /dev/null +++ b/src/views/eam/spotCheckSelectSet/spotCheckSelectSet.data.ts @@ -0,0 +1,147 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const BasicSpotCheckSelectSetRules = reactive({ + name: [required], + describing: [required], + concurrencyStamp: [required], +}) + +export const BasicSpotCheckSelectSet = 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: 'describing', + 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/tableDataExtendedAttribute/index.vue b/src/views/eam/tableDataExtendedAttribute/index.vue new file mode 100644 index 0000000..4eb9243 --- /dev/null +++ b/src/views/eam/tableDataExtendedAttribute/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/eam/tableDataExtendedAttribute/tableDataExtendedAttribute.data.ts b/src/views/eam/tableDataExtendedAttribute/tableDataExtendedAttribute.data.ts new file mode 100644 index 0000000..332bedd --- /dev/null +++ b/src/views/eam/tableDataExtendedAttribute/tableDataExtendedAttribute.data.ts @@ -0,0 +1,106 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const TableDataExtendedAttributeRules = reactive({ + tableName: [required], + dataId: [required], + fieldName: [required], + concurrencyStamp: [required] +}) + +export const TableDataExtendedAttribute = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isForm: false + }, + { + label: '表名称', + field: 'tableName', + sort: 'custom', + isSearch: true + }, + { + label: '数据', + field: 'dataId', + sort: 'custom', + isSearch: true + }, + { + label: '字段名称', + field: 'fieldName', + sort: 'custom', + isSearch: true + }, + { + label: '字段值', + field: 'fieldVal', + 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: 'siteId', + sort: 'custom', + isSearch: true + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '备注', + field: 'remark', + 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/toolAccounts/index.vue b/src/views/eam/toolAccounts/index.vue new file mode 100644 index 0000000..55d7eb7 --- /dev/null +++ b/src/views/eam/toolAccounts/index.vue @@ -0,0 +1,557 @@ + + + diff --git a/src/views/eam/toolAccounts/toolAccounts.data.ts b/src/views/eam/toolAccounts/toolAccounts.data.ts new file mode 100644 index 0000000..0fd56a2 --- /dev/null +++ b/src/views/eam/toolAccounts/toolAccounts.data.ts @@ -0,0 +1,724 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as ConfigApi from '@/api/infra/config' +import * as WorkshopApi from '@/api/wms/workshop' +import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data' +import * as EquipmentSupplierApi from '@/api/eam/equipmentSupplier' +import { EquipmentSupplier } from '@/views/eam/equipmentSupplier/equipmentSupplier.data' +import * as EquipmentManufacturerApi from '@/api/eam/equipmentManufacturer' +import { EquipmentManufacturer } from '@/views/eam/equipmentManufacturer/equipmentManufacturer.data' +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('toolCodeAutoSwitch') + + +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 ToolAccountsRules = reactive({ + code: [required], + name: [required], + concurrencyStamp: [required] +}) + +export const ToolAccounts = useCrudSchemas(reactive([ + { + label: '工装编号', + field: 'code', + sort: 'custom', + isSearch: true, + isForm: !autoSwitch.value, + fixed: 'left' + }, + { + label: '名称', + field: 'name', + sort: 'custom', + isSearch: true + }, + { + label: '型号', + field: 'specification', + sort: 'custom', + isSearch: true + }, + { + label: '类型', + field: 'type', + sort: 'custom', + isSearch: false, + dictType: DICT_TYPE.TOOL_CLASS, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + form: { + component: 'Select' + } + }, + { + label: '产权', + field: 'equity', + sort: 'custom', + isSearch: false + }, + { + label: '电机', + field: 'electricMachine', + sort: 'custom', + isSearch: false + }, + { + label: '是否客户资质', + field: 'isCustomerAptitude', + sort: 'custom', + isSearch: false, + dictType: DICT_TYPE.INFRA_BOOLEAN_STRING, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + form: { + component: 'Radio' + } + }, + { + label: '客户', + field: 'customerId', + 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: false, + 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: true, + 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: true, + 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: 'factoryAreaCode', + // sort: 'custom', + // isSearch: true + // }, + { + 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, // 查询弹窗所需分页方法 + disable:true, + 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: 'departmentCode', + // 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, + // form: { + // component: 'Switch', + // value: 'TRUE', + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: '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: 300, + fixed: 'right' + } + } +])) diff --git a/src/views/eam/toolChangedRecord/index.vue b/src/views/eam/toolChangedRecord/index.vue new file mode 100644 index 0000000..12886c6 --- /dev/null +++ b/src/views/eam/toolChangedRecord/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/eam/toolChangedRecord/toolChangedRecord.data.ts b/src/views/eam/toolChangedRecord/toolChangedRecord.data.ts new file mode 100644 index 0000000..b300175 --- /dev/null +++ b/src/views/eam/toolChangedRecord/toolChangedRecord.data.ts @@ -0,0 +1,110 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as UserApi from '@/api/system/user' + +export interface User { + id: number, + nickname: string +} +// 表单校验 +export const ToolChangedRecordRules = reactive({ + code: [required], + name: [required], + concurrencyStamp: [required] +}) + +const userList = ref([]) +userList.value = await UserApi.getSimpleUserList() + +export const ToolChangedRecord = useCrudSchemas(reactive([ + { + label: '工装编号', + field: 'code', + sort: 'custom', + isSearch: true, + fixed: 'left' + }, + { + label: '工装名称', + field: 'name', + sort: 'custom', + isSearch: true + }, + { + label: '变更前状态', + field: 'statusBefore', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.DEVICE_STATUS, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + form: { + component: 'Select' + } + }, + { + label: '变更后状态', + field: 'statusAfter', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.DEVICE_STATUS, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + form: { + component: 'Select', + } + }, + { + label: '操作人', + field: 'operator', + sort: 'custom', + isSearch: true, + search: { + component: 'Select', + componentProps: { + options: userList.value, + optionsAlias: { + valueField: 'id', + labelField: 'nickname' + }, + filterable: true, + clearable: 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: 'remark', + sort: 'custom', + isSearch: true + }, + // { + // label: '操作', + // field: 'action', + // isForm: false, + // table: { + // width: 150, + // fixed: 'right' + // } + // } +])) diff --git a/src/views/eam/toolEquipmentIn/index.vue b/src/views/eam/toolEquipmentIn/index.vue new file mode 100644 index 0000000..648ea32 --- /dev/null +++ b/src/views/eam/toolEquipmentIn/index.vue @@ -0,0 +1,291 @@ + + + diff --git a/src/views/eam/toolEquipmentIn/toolEquipmentIn.data.ts b/src/views/eam/toolEquipmentIn/toolEquipmentIn.data.ts new file mode 100644 index 0000000..6178bec --- /dev/null +++ b/src/views/eam/toolEquipmentIn/toolEquipmentIn.data.ts @@ -0,0 +1,350 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as WorkshopApi from '@/api/wms/workshop' +import { Workshop } from '@/views/wms/basicDataManage/factoryModeling/workshop/workshop.data' +import * as ProductionlineApi from '@/api/wms/productionline' +import { Productionline } from '@/views/wms/basicDataManage/factoryModeling/productionline/productionline.data' +import { ToolAccounts} from '../toolAccounts/toolAccounts.data' +import * as ToolAccountsApi from '@/api/eam/toolAccounts' + +const workshopNoPage = await WorkshopApi.getWorkshopNoPage({}) +const productionlineNoPage = await ProductionlineApi.getProductionlineNoPage({}); +const toolAccountsListNoPage = await ToolAccountsApi.getToolAccountsNoPage({}); + +// 表单校验 +export const ToolEquipmentInRules = reactive({ + toolCode: [required], + status: [required] +}) + +export const ToolEquipmentIn = useCrudSchemas(reactive([ + { + label: '工装', + field: 'toolCode', + sort: 'custom', + isSearch: true, + isDetail: false, + isForm: false, + isTable: true, + isTableForm: false, + search: { + component: 'Select', + componentProps: { + options: toolAccountsListNoPage, + optionsAlias: { + labelField: 'name', + valueField: 'code' + }, + filterable: true, + } + }, + formatter: (_: Recordable, __: TableColumn, cellValue: string) => { + return toolAccountsListNoPage.find((item) => item.code == cellValue)?.name + }, + }, + { + label: '工装', + field: 'toolName', + sort: 'custom', + isSearch: false, + isDetail: false, + isForm: true, + isTable: false, + isTableForm: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择工装', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '工装信息', // 查询弹窗标题 + searchAllSchemas: ToolAccounts.allSchemas, // 查询弹窗所需类 + searchPage: ToolAccountsApi.getToolAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + }, + { + label: '入库信息描述', + field: 'describing', + sort: 'custom', + isSearch: true, + form: { + component: 'Input', + componentProps: { + type: 'textarea', + } + } + }, + { + label: '入库审核状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.JOB_STATUS, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: true, + 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', + } + } + }, + { + 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: 'factoryAreaCode', + // sort: 'custom', + // isSearch: true + // }, + { + 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', + isSearch: false, + isDetail: false, + isForm: true, + isTable: false, + isTableForm: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择车间代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '车间信息', // 查询弹窗标题 + searchAllSchemas: Workshop.allSchemas, // 查询弹窗所需类 + searchPage: WorkshopApi.getWorkshopPage, // 查询弹窗所需分页方法 + disable:true, + 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, + isDetail: false, + isForm: true, + isTable: false, + isTableForm: 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: false, + form: { + component: 'Input', + componentProps: { + type: 'textarea', + } + } + }, + // { + // 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/toolEquipmentOut/index.vue b/src/views/eam/toolEquipmentOut/index.vue new file mode 100644 index 0000000..7bad038 --- /dev/null +++ b/src/views/eam/toolEquipmentOut/index.vue @@ -0,0 +1,254 @@ + + + diff --git a/src/views/eam/toolEquipmentOut/toolEquipmentOut.data.ts b/src/views/eam/toolEquipmentOut/toolEquipmentOut.data.ts new file mode 100644 index 0000000..ceb0b8f --- /dev/null +++ b/src/views/eam/toolEquipmentOut/toolEquipmentOut.data.ts @@ -0,0 +1,230 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { ToolAccounts} from '../toolAccounts/toolAccounts.data' +import * as ToolAccountsApi from '@/api/eam/toolAccounts' +import * as UserApi from '@/api/system/user' +const toolAccountsListNoPage = await ToolAccountsApi.getToolAccountsNoPage({}); +const userListNoPage = await UserApi.getSimpleUserList(); + +// 表单校验 +export const ToolEquipmentOutRules = reactive({ + theme: [required], + toolCode: [required], + type: [required], + qty: [required], + status: [required], + applyer: [required], + concurrencyStamp: [required] +}) + +export const ToolEquipmentOut = useCrudSchemas(reactive([ + { + label: '工装', + field: 'toolCode', + sort: 'custom', + isSearch: true, + isDetail: false, + isForm: false, + isTable: true, + isTableForm: false, + search: { + component: 'Select', + componentProps: { + options: toolAccountsListNoPage, + optionsAlias: { + labelField: 'name', + valueField: 'code' + }, + filterable: true, + } + }, + formatter: (_: Recordable, __: TableColumn, cellValue: string) => { + return toolAccountsListNoPage.find((item) => item.code == cellValue)?.name + }, + }, + { + label: '工装', + field: 'toolName', + sort: 'custom', + isSearch: false, + isDetail: false, + isForm: true, + isTable: false, + isTableForm: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择工装', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '工装信息', // 查询弹窗标题 + searchAllSchemas: ToolAccounts.allSchemas, // 查询弹窗所需类 + searchPage: ToolAccountsApi.getToolAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + }, + { + label: '出库主题', + field: 'theme', + sort: 'custom', + isSearch: true + }, + { + label: '出库类型', + field: 'type', + sort: 'custom', + dictType: DICT_TYPE.TOOL_OUT_TYPE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: true, + form: { + component: 'Select' + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '流程状态', + field: 'status', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.JOB_STATUS, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + form: { + component: 'Select', + } + }, + { + label: '出库申请人', + field: 'applyer', + sort: 'custom', + isSearch: true, + form: { + component: 'Select', + componentProps: { + options: userListNoPage, + optionsAlias: { + labelField: 'nickname', + valueField: 'id' + } + } + }, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userListNoPage.find((item) => item.id == cellValue)?.nickname + }, + }, + { + label: '审核人', + field: 'approver', + sort: 'custom', + isSearch: true, + form: { + component: 'Select', + componentProps: { + options: userListNoPage, + optionsAlias: { + labelField: 'nickname', + valueField: 'id' + } + } + }, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userListNoPage.find((item) => item.id == cellValue)?.nickname + }, + }, + { + label: '审核内容', + field: 'approveContent', + sort: 'custom', + isSearch: false, + form: { + component: 'Input', + componentProps: { + type: 'textarea', + } + } + }, + { + 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', + isForm: false, + }, + { + label: '自动通过', + field: 'autoAgree', + sort: 'custom', + isForm: false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + form: { + component: 'Input', + componentProps: { + type: 'textarea', + } + } + }, + // { + // 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/toolMod/index.vue b/src/views/eam/toolMod/index.vue new file mode 100644 index 0000000..68a68b3 --- /dev/null +++ b/src/views/eam/toolMod/index.vue @@ -0,0 +1,286 @@ + + + diff --git a/src/views/eam/toolMod/operateForm.vue b/src/views/eam/toolMod/operateForm.vue new file mode 100644 index 0000000..df62405 --- /dev/null +++ b/src/views/eam/toolMod/operateForm.vue @@ -0,0 +1,318 @@ + + + + diff --git a/src/views/eam/toolMod/toolMod.data.ts b/src/views/eam/toolMod/toolMod.data.ts new file mode 100644 index 0000000..77e4a63 --- /dev/null +++ b/src/views/eam/toolMod/toolMod.data.ts @@ -0,0 +1,156 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import {Itembasic} from "@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data"; +import * as ItembasicApi from "@/api/wms/itembasic"; +import { ToolAccounts,ToolAccountsRules } from '../toolAccounts/toolAccounts.data' +import * as ToolAccountsApi from '@/api/eam/toolAccounts' + +// 表单校验 +export const ToolModRules = reactive({ + modCode: [required], + toolCode: [required], + type: [required], + concurrencyStamp: [required] +}) + +export const ToolMod = useCrudSchemas(reactive([ + { + label: '类型', + field: 'type', + sort: 'custom', + dictType: DICT_TYPE.DEVICE_TYPE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: true, + form: { + component: 'Select', + } + }, + { + label: '工装编码', + field: 'toolCode', + sort: 'custom', + isSearch: false, + isDetail: false, + isForm: false, + isTable: true, + isTableForm: false, + }, + // { + // label: '工装编码', + // field: 'toolCodeShow', + // sort: 'custom', + // isSearch: true, + // form: { + // componentProps: { + // isSearchList: true, + // searchListPlaceholder: '请选择工装代码', + // searchField: 'toolCodeShow', + // searchTitle: '客户物料基础信息', + // searchAllSchemas: ToolAccounts.allSchemas, + // searchPage: ToolAccountsApi.getToolAccountsPage, + // searchCondition: [{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // }] + // } + // }, + // search: { + // componentProps: { + // isSearchList: true, + // searchListPlaceholder: '请选择工装代码', + // searchField: 'toolCodeShow', + // searchTitle: '客户物料基础信息', + // searchAllSchemas: ToolAccounts.allSchemas, + // searchPage: ToolAccountsApi.getToolAccountsPage, + // searchCondition: [{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // }] + // } + // } + // }, + { + label: '物料编号', + field: 'modCode', + sort: 'custom', + isSearch: false, + isDetail: false, + isForm: false, + isTable: true, + isTableForm: false, + }, + // { + // label: '物料编号', + // field: 'modCodeShow', + // sort: 'custom', + // isSearch: true, + // form: { + // componentProps: { + // isSearchList: true, + // searchListPlaceholder: '请选择物料代码', + // searchField: 'modCodeShow', + // searchTitle: '客户物料基础信息', + // multiple:true, + // searchAllSchemas: Itembasic.allSchemas, + // searchPage: ItembasicApi.getItembasicPage, + // searchCondition: [{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // }] + // } + // }, + // search: { + // componentProps: { + // isSearchList: true, + // searchListPlaceholder: '请选择物料代码', + // searchField: 'modCodeShow', + // searchTitle: '客户物料基础信息', + // multiple: true, + // searchAllSchemas: Itembasic.allSchemas, + // searchPage: ItembasicApi.getItembasicPage, + // searchCondition: [{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // }] + // } + // } + // }, + + // { + // label: '部门', + // field: 'departmentCode', + // sort: 'custom', + // isSearch: true + // }, + { + 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/toolSigning/index.vue b/src/views/eam/toolSigning/index.vue new file mode 100644 index 0000000..f99335c --- /dev/null +++ b/src/views/eam/toolSigning/index.vue @@ -0,0 +1,280 @@ + + + diff --git a/src/views/eam/toolSigning/toolSigning.data.ts b/src/views/eam/toolSigning/toolSigning.data.ts new file mode 100644 index 0000000..32b8c32 --- /dev/null +++ b/src/views/eam/toolSigning/toolSigning.data.ts @@ -0,0 +1,487 @@ +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 { ToolAccounts,ToolAccountsRules } from '../toolAccounts/toolAccounts.data' +import * as ToolAccountsApi from '@/api/eam/toolAccounts' +import * as EquipmentSupplierApi from '@/api/eam/equipmentSupplier' +import * as BasicEamWorkshopApi from '@/api/eam/basicEamWorkshop' + + +export interface User { + id: number, + nickname: string +} + +const toolList = await ToolAccountsApi.getToolAccountsNoPage({}) +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 ToolSigningRules = reactive({ + toolCode: [required], + operationDate: [required], + operationer: [required], + operationDept: [required], + storageLocation: [required], + concurrencyStamp: [required] +}) + +export const ToolSigning = useCrudSchemas(reactive([ + { + label: '工装', + field: 'toolCode', + sort: 'custom', + isSearch: true, + isTable: true, + isForm: false, + isDetail: false, + isTableForm: false, + formatter: (_: Recordable, __: TableColumn, cellValue: string) => { + return toolList.find((item) => item.code == cellValue)?.name + }, + }, + { + label: '工装', + field: 'toolName', + sort: 'custom', + isSearch: false, + isTable: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择设备', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '设备信息', // 查询弹窗标题 + searchAllSchemas: ToolAccounts.allSchemas, // 查询弹窗所需类 + searchPage: ToolAccountsApi.getToolAccountsPage, // 查询弹窗所需分页方法 + 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, + 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' + }, + 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/transaction/index.vue b/src/views/eam/transaction/index.vue new file mode 100644 index 0000000..c7ff4f0 --- /dev/null +++ b/src/views/eam/transaction/index.vue @@ -0,0 +1,252 @@ + + + diff --git a/src/views/eam/transaction/transaction.data.ts b/src/views/eam/transaction/transaction.data.ts new file mode 100644 index 0000000..5f14a5a --- /dev/null +++ b/src/views/eam/transaction/transaction.data.ts @@ -0,0 +1,96 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +// 表单校验 +export const Rules = reactive({ + itemNumber: [required], + locationNumber: [required], + inventoryAction: [required], + businessType: [required], + uom: [required] +}) + +export const Transaction = useCrudSchemas( + reactive([ + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true + }, + { + label: '库位编码', + field: 'locationNumber', + sort: 'custom', + isSearch: true + }, + { + label: '事务类型', + field: 'transactionType', + sort: 'custom', + dictType: DICT_TYPE.EAM_TRANSACTION_TYPE, + dictClass: 'string', + isSearch: false, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '库存动作', + field: 'inventoryAction', + sort: 'custom', + dictType: DICT_TYPE.EAM_INVENTORY_ACTION, + dictClass: 'string', + isSearch: false, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + sort: 'custom', + isSearch: false, + form: { + component: 'Radio' + } + }, + { + label: '关联单号', + field: 'associatedNumber', + sort: 'custom', + isSearch: false, + form: { + component: 'Radio' + } + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + isSearch: false + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: false + } + // { + // label: '操作', + // field: 'action', + // isForm: false, + // table: { + // width: 150, + // fixed: 'right' + // } + // } + ]) +) diff --git a/src/views/error/403.vue b/src/views/error/403.vue new file mode 100644 index 0000000..a3ec487 --- /dev/null +++ b/src/views/error/403.vue @@ -0,0 +1,8 @@ + + diff --git a/src/views/error/404.vue b/src/views/error/404.vue new file mode 100644 index 0000000..f6a08de --- /dev/null +++ b/src/views/error/404.vue @@ -0,0 +1,7 @@ + + diff --git a/src/views/error/500.vue b/src/views/error/500.vue new file mode 100644 index 0000000..998487d --- /dev/null +++ b/src/views/error/500.vue @@ -0,0 +1,7 @@ + + diff --git a/src/views/home/Index copy.vue b/src/views/home/Index copy.vue new file mode 100644 index 0000000..121ec6a --- /dev/null +++ b/src/views/home/Index copy.vue @@ -0,0 +1,381 @@ + + diff --git a/src/views/home/Index2.vue b/src/views/home/Index2.vue new file mode 100644 index 0000000..c9429ab --- /dev/null +++ b/src/views/home/Index2.vue @@ -0,0 +1,319 @@ + + + + diff --git a/src/views/home/components/material.vue b/src/views/home/components/material.vue new file mode 100644 index 0000000..03aac63 --- /dev/null +++ b/src/views/home/components/material.vue @@ -0,0 +1,428 @@ + + + + diff --git a/src/views/home/components/produce.vue b/src/views/home/components/produce.vue new file mode 100644 index 0000000..d05a6b7 --- /dev/null +++ b/src/views/home/components/produce.vue @@ -0,0 +1,373 @@ + + + + diff --git a/src/views/home/components/product.vue b/src/views/home/components/product.vue new file mode 100644 index 0000000..d6e5558 --- /dev/null +++ b/src/views/home/components/product.vue @@ -0,0 +1,319 @@ + + + + diff --git a/src/views/home/components/supplierIndex.vue b/src/views/home/components/supplierIndex.vue new file mode 100644 index 0000000..731a44c --- /dev/null +++ b/src/views/home/components/supplierIndex.vue @@ -0,0 +1,331 @@ + + + + diff --git a/src/views/home/components/supplierIndex供应商发票空白页,暂时去掉部分模块.vue b/src/views/home/components/supplierIndex供应商发票空白页,暂时去掉部分模块.vue new file mode 100644 index 0000000..9fc7345 --- /dev/null +++ b/src/views/home/components/supplierIndex供应商发票空白页,暂时去掉部分模块.vue @@ -0,0 +1,510 @@ + + + + diff --git a/src/views/home/echarts-data.ts b/src/views/home/echarts-data.ts new file mode 100644 index 0000000..15c7b4a --- /dev/null +++ b/src/views/home/echarts-data.ts @@ -0,0 +1,286 @@ +import { EChartsOption } from 'echarts' + +const { t } = useI18n() + +export const lineOptions: EChartsOption = { + + xAxis: { + data: [ 1, 2, 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 + ], + boundaryGap: false, + axisTick: { + show: false + } + }, + grid: { + left: 20, + right: 20, + bottom: 20, + top: 50, + containLabel: true + }, + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'cross' + }, + padding: [5, 10] + }, + yAxis: { + axisTick: { + show: false + } + }, + legend: { + data: ['销售','哈哈'], + top: 20 + }, + series: [ + { + name: '销售', + smooth: true, + type: 'line', + data: [100, 120, 161, 134, 105, 160, 165, 114, 163, 185, 118, 123], + animationDuration: 2800, + animationEasing: 'cubicInOut' + }, + { + name: '哈哈', + smooth: true, + type: 'line', + itemStyle: {}, + data: [120, 82, 91, 154, 162, 140, 145, 250, 134, 56, 99, 123], + animationDuration: 2800, + animationEasing: 'quadraticOut' + } + ] +} + +export const pieOptions: EChartsOption = { + // title: { + // text: t('analysis.userAccessSource'), + // left: 'center' + // }, + tooltip: { + trigger: 'item', + formatter: '{a}
{b} : {c} ({d}%)' + }, + legend: { + orient: 'vertical', + left: 'left', + top:20, + data: [ + t('analysis.directAccess'), + t('analysis.mailMarketing'), + t('analysis.allianceAdvertising'), + t('analysis.videoAdvertising'), + t('analysis.searchEngines') + ] + }, + series: [ + { + name: t('analysis.userAccessSource'), + type: 'pie', + radius: '55%', + center: ['50%', '60%'], + data: [ + { value: 335, name: t('analysis.directAccess') }, + { value: 310, name: t('analysis.mailMarketing') }, + { value: 234, name: t('analysis.allianceAdvertising') }, + { value: 135, name: t('analysis.videoAdvertising') }, + { value: 1548, name: t('analysis.searchEngines') } + ] + } + ] +} + +export const barOptions: EChartsOption = { + title: { + text: '', + left: 'center' + }, + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + grid: { + left: 50, + right: 20, + bottom: 20 + }, + xAxis: { + type: 'category', + data: [], + axisTick: { + alignWithLabel: true + } + }, + yAxis: { + type: 'value' + }, + series: [ + { + name: t('analysis.activeQuantity'), + data: [], + type: 'bar' + } + ] +} + +export const radarOption: EChartsOption = { + legend: { + data: [t('workplace.personal'), t('workplace.team')] + }, + radar: { + // shape: 'circle', + indicator: [ + { name: t('workplace.quote'), max: 65 }, + { name: t('workplace.contribution'), max: 160 }, + { name: t('workplace.hot'), max: 300 }, + { name: t('workplace.yield'), max: 130 }, + { name: t('workplace.follow'), max: 100 } + ] + }, + series: [ + { + name: `xxx${t('workplace.index')}`, + type: 'radar', + data: [ + { + value: [42, 30, 20, 35, 80], + name: t('workplace.personal') + }, + { + value: [50, 140, 290, 100, 90], + name: t('workplace.team') + } + ] + } + ] +} + +export const wordOptions = { + series: [ + { + type: 'wordCloud', + gridSize: 2, + sizeRange: [12, 50], + rotationRange: [-90, 90], + shape: 'pentagon', + width: 600, + height: 400, + drawOutOfBound: true, + textStyle: { + color: function () { + return ( + 'rgb(' + + [ + Math.round(Math.random() * 160), + Math.round(Math.random() * 160), + Math.round(Math.random() * 160) + ].join(',') + + ')' + ) + } + }, + emphasis: { + textStyle: { + shadowBlur: 10, + shadowColor: '#333' + } + }, + data: [ + { + name: 'Sam S Club', + value: 10000, + textStyle: { + color: 'black' + }, + emphasis: { + textStyle: { + color: 'red' + } + } + }, + { + name: 'Macys', + value: 6181 + }, + { + name: 'Amy Schumer', + value: 4386 + }, + { + name: 'Jurassic World', + value: 4055 + }, + { + name: 'Charter Communications', + value: 2467 + }, + { + name: 'Chick Fil A', + value: 2244 + }, + { + name: 'Planet Fitness', + value: 1898 + }, + { + name: 'Pitch Perfect', + value: 1484 + }, + { + name: 'Express', + value: 1112 + }, + { + name: 'Home', + value: 965 + }, + { + name: 'Johnny Depp', + value: 847 + }, + { + name: 'Lena Dunham', + value: 582 + }, + { + name: 'Lewis Hamilton', + value: 555 + }, + { + name: 'KXAN', + value: 550 + }, + { + name: 'Mary Ellen Mark', + value: 462 + }, + { + name: 'Farrah Abraham', + value: 366 + }, + { + name: 'Rita Ora', + value: 360 + }, + { + name: 'Serena Williams', + value: 282 + }, + { + name: 'NCAA baseball tournament', + value: 273 + }, + { + name: 'Point Break', + value: 265 + } + ] + } + ] +} diff --git a/src/views/home/index.vue b/src/views/home/index.vue new file mode 100644 index 0000000..39f28f6 --- /dev/null +++ b/src/views/home/index.vue @@ -0,0 +1,19 @@ + + diff --git a/src/views/home/types.ts b/src/views/home/types.ts new file mode 100644 index 0000000..e6313d3 --- /dev/null +++ b/src/views/home/types.ts @@ -0,0 +1,55 @@ +export type WorkplaceTotal = { + project: number + access: number + todo: number +} + +export type Project = { + name: string + icon: string + message: string + personal: string + time: Date | number | string +} + +export type Notice = { + title: string + type: string + keys: string[] + date: Date | number | string +} + +export type Shortcut = { + name: string + icon: string + url: string +} + +export type RadarData = { + personal: number + team: number + max: number + name: string +} +export type AnalysisTotalTypes = { + users: number + messages: number + moneys: number + shoppings: number +} + +export type UserAccessSource = { + value: number + name: string +} + +export type WeeklyUserActivity = { + value: number + name: string +} + +export type MonthlySales = { + name: string + estimate: number + actual: number +} diff --git a/src/views/infra/apiAccessLog/ApiAccessLogDetail.vue b/src/views/infra/apiAccessLog/ApiAccessLogDetail.vue new file mode 100644 index 0000000..43a34dc --- /dev/null +++ b/src/views/infra/apiAccessLog/ApiAccessLogDetail.vue @@ -0,0 +1,67 @@ + + + diff --git a/src/views/infra/apiAccessLog/index.vue b/src/views/infra/apiAccessLog/index.vue new file mode 100644 index 0000000..e937d58 --- /dev/null +++ b/src/views/infra/apiAccessLog/index.vue @@ -0,0 +1,168 @@ + + diff --git a/src/views/infra/apiErrorLog/ApiErrorLogDetail.vue b/src/views/infra/apiErrorLog/ApiErrorLogDetail.vue new file mode 100644 index 0000000..7340ca8 --- /dev/null +++ b/src/views/infra/apiErrorLog/ApiErrorLogDetail.vue @@ -0,0 +1,81 @@ + + diff --git a/src/views/infra/apiErrorLog/index.vue b/src/views/infra/apiErrorLog/index.vue new file mode 100644 index 0000000..281b9ff --- /dev/null +++ b/src/views/infra/apiErrorLog/index.vue @@ -0,0 +1,250 @@ + + + diff --git a/src/views/infra/build/index.vue b/src/views/infra/build/index.vue new file mode 100644 index 0000000..11bfc99 --- /dev/null +++ b/src/views/infra/build/index.vue @@ -0,0 +1,143 @@ + + diff --git a/src/views/infra/codegen/PreviewCode.vue b/src/views/infra/codegen/PreviewCode.vue new file mode 100644 index 0000000..b04775e --- /dev/null +++ b/src/views/infra/codegen/PreviewCode.vue @@ -0,0 +1,222 @@ + + + diff --git a/src/views/infra/codegen/components/BasicInfoForm.vue b/src/views/infra/codegen/components/BasicInfoForm.vue new file mode 100644 index 0000000..1859300 --- /dev/null +++ b/src/views/infra/codegen/components/BasicInfoForm.vue @@ -0,0 +1,87 @@ + + diff --git a/src/views/infra/codegen/components/ColumInfoForm.vue b/src/views/infra/codegen/components/ColumInfoForm.vue new file mode 100644 index 0000000..737c2e2 --- /dev/null +++ b/src/views/infra/codegen/components/ColumInfoForm.vue @@ -0,0 +1,153 @@ + + diff --git a/src/views/infra/codegen/components/GenerateInfoForm.vue b/src/views/infra/codegen/components/GenerateInfoForm.vue new file mode 100644 index 0000000..744edfe --- /dev/null +++ b/src/views/infra/codegen/components/GenerateInfoForm.vue @@ -0,0 +1,391 @@ + + diff --git a/src/views/infra/codegen/components/index.ts b/src/views/infra/codegen/components/index.ts new file mode 100644 index 0000000..1634a76 --- /dev/null +++ b/src/views/infra/codegen/components/index.ts @@ -0,0 +1,4 @@ +import BasicInfoForm from './BasicInfoForm.vue' +import ColumInfoForm from './ColumInfoForm.vue' +import GenerateInfoForm from './GenerateInfoForm.vue' +export { BasicInfoForm, ColumInfoForm, GenerateInfoForm } diff --git a/src/views/infra/codegen/editTable.vue b/src/views/infra/codegen/editTable.vue new file mode 100644 index 0000000..9c4e765 --- /dev/null +++ b/src/views/infra/codegen/editTable.vue @@ -0,0 +1,83 @@ + + diff --git a/src/views/infra/codegen/importTable.vue b/src/views/infra/codegen/importTable.vue new file mode 100644 index 0000000..6cd4610 --- /dev/null +++ b/src/views/infra/codegen/importTable.vue @@ -0,0 +1,151 @@ + + diff --git a/src/views/infra/codegen/index.vue b/src/views/infra/codegen/index.vue new file mode 100644 index 0000000..3018fb0 --- /dev/null +++ b/src/views/infra/codegen/index.vue @@ -0,0 +1,258 @@ + + diff --git a/src/views/infra/config/ConfigForm.vue b/src/views/infra/config/ConfigForm.vue new file mode 100644 index 0000000..1326a1c --- /dev/null +++ b/src/views/infra/config/ConfigForm.vue @@ -0,0 +1,159 @@ + + diff --git a/src/views/infra/config/index.vue b/src/views/infra/config/index.vue new file mode 100644 index 0000000..46893f4 --- /dev/null +++ b/src/views/infra/config/index.vue @@ -0,0 +1,186 @@ + + diff --git a/src/views/infra/customInterface/index.vue b/src/views/infra/customInterface/index.vue new file mode 100644 index 0000000..404bf1c --- /dev/null +++ b/src/views/infra/customInterface/index.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/views/qms/inspectionJob/inspectionJob.vue b/src/views/qms/inspectionJob/inspectionJob.vue new file mode 100644 index 0000000..d56f366 --- /dev/null +++ b/src/views/qms/inspectionJob/inspectionJob.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/views/qms/inspectionJob/inspectionJobMain.data.ts b/src/views/qms/inspectionJob/inspectionJobMain.data.ts new file mode 100644 index 0000000..2dbdc47 --- /dev/null +++ b/src/views/qms/inspectionJob/inspectionJobMain.data.ts @@ -0,0 +1,885 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter2 } from '@/utils/formatTime' +import { validateHanset, validateEmail } from '@/utils/validator' +import { dateFormatter } from '@/utils/formatTime' +import { validateTwoNum, validateSixNum } from '@/utils/validator' +const { t } = useI18n() // 国际化 +import { DICT_TYPE, getStrDictOptions } from '@/utils/dict' +const resultEntryMethodList = getStrDictOptions(DICT_TYPE.INSPECTION_CHARACTERISTICS_RESULT_ENTRY) +const featureTypeList = getStrDictOptions(DICT_TYPE.INSPECTION_CHARACTERISTICS_FEATURE_TYPE) +const isCanUpdateList = [ + { + label: '是', + value: true + }, + { + label: '否', + value: false + } +] + +/** + * @returns {Array} 检验任务主表 + */ +export const InspectionJobMain = useCrudSchemas( + reactive([ + { + label: '编码', + field: 'number', + sort: 'custom', + isSearch: true, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 200, + fixed: 'left' + } + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + isSearch: true, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 200 + } + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + isSearch: true, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 180 + } + }, + { + label: '供应商编码', + field: 'supplierCode', + sort: 'custom', + isSearch: true, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 175 + } + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + isSearch: false, + table: { + width: 175 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料编码', + field: 'itemCode', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + isSearch: false, + table: { + width: 175 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料批次', + field: 'batch', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '参考订单号', + field: 'referenceOrderCode', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '参考订单行', + field: 'referenceOrderRow', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '参考凭证号', + field: 'referenceCertificateCode', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '参考凭证行', + field: 'referenceCertificateRow', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '检验方案编码', + field: 'inspectionSchemeCode', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 200 + } + }, + { + label: '批次', + field: 'inspectionBatch', + sort: 'custom', + isSearch: false, + isDetail: true, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '供应商批次', + field: 'supplierBatch', + sort: 'custom', + isSearch: false, + isDetail: true, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '检验批数量', + field: 'inspectionBatchAmount', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + // { + // label: '采样总数量', + // field: 'sampleTotalAmount', + // sort: 'custom', + // isSearch: false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // table: { + // width: 150 + // } + // }, + { + label: '检验类型', + field: 'inspectionType', + sort: 'custom', + dictType: DICT_TYPE.INSPECTION_TYPE, + dictClass: 'string', + isSearch: true, + form: { + component: 'Select', + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '完成人', + field: 'completeUser', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isTable: false, + isDetail: false, + isSearch: false, + isTableForm: false, + isForm: false + }, + // { + // label: '检验批来源', + // field: 'inspectionBatchSource', + // sort: 'custom', + // isSearch: false, + // dictType: DICT_TYPE.INSPECTION_BATCH_SOURCE, + // dictClass: 'string', + // form:{ + // componentProps:{ + // disabled:true + // } + // }, + // table: { + // width: 150 + // } + // }, + { + label: '检验阶段', + field: 'inspectionStage', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '检验严格性', + field: 'inspectionStringency', + sort: 'custom', + isSearch: false, + dictType: DICT_TYPE.INSPECTION_SEVERITY, + dictClass: 'string', + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + 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', + disabled: true + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + { + 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', + disabled: true + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + { + label: '检验水平', + field: 'inspectionLevel', + sort: 'custom', + isSearch: false, + dictType: DICT_TYPE.INSPECTION_LEVEL, + dictClass: 'string', + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: 'AQL值', + field: 'aqlValue', + sort: 'custom', + isSearch: false, + dictType: DICT_TYPE.BASIC_AQL, + dictClass: 'string', + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + // { + // label: '使用决策', + // field: 'usageDecision', + // sort: 'custom', + // isSearch: false, + // dictType: DICT_TYPE.USAGE_DECISION, + // form:{ + // componentProps:{ + // } + // } + // }, + // { + // label: '是否可用', + // field: 'available', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'Switch', + // value: 'TRUE', + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE', + // disabled:true + // } + // } + // }, + { + label: '承接人', + field: 'acceptUserName', + table: { + width: 130 + }, + isForm: false, + isTable: false, + isDetail: true + }, + { + label: '承接时间', + field: 'acceptTime', + isForm: false, + table: { + width: 180 + }, + isTable: false, + isDetail: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + + { + label: '收货时间', + field: 'deliveryTime', + 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' + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + + { + label: '完成人', + field: 'completeUserName', + table: { + width: 130 + }, + isForm: false, + isTable: true, + isDetail: true + }, + { + label: '完成时间', + field: 'completeTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.JOB_STATUS, + dictClass: 'string', + isForm: false, + isTable: true, + isSearch: true, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + search: { + value: 'TRUE' + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + table: { + width: 110 + } + }, + { + label: '包装号', + field: 'packageCode', + sort: 'custom', + isSearch: true, + isTable: false, + isForm: false, + tableForm: { + disabled: false + } + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 390, + fixed: 'right' + } + } + ]) +) + +//表单校验 +export const InspectionJobMainRules = reactive({ + // usageDecision: [required], +}) + +/** + * @returns {Array} 检验任务子表 + */ +export const InspectionJobDetail = useCrudSchemas( + reactive([ + { + label: '编码', + field: 'number', + sort: 'custom', + isSearch: true + }, + { + label: '检验方案模板编码', + field: 'inspectionCode', + sort: 'custom', + isSearch: true + }, + { + label: '描述', + field: 'processDescribe', + sort: 'custom', + isSearch: true + }, + { + label: '顺序号', + field: 'sequenceCode', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '检验特性编号', + field: 'inspectionCharCode', + sort: 'custom', + isSearch: true + }, + { + label: '检验特性编码', + field: 'inspectionJobCharacteristicsRespVO.number', + sort: 'custom' + }, + { + label: '检验特性描述', + field: 'inspectionJobCharacteristicsRespVO.description', + sort: 'custom' + }, + { + label: '检验方法', + field: 'inspectionJobCharacteristicsRespVO.inspectionMethodCode', + sort: 'custom' + }, + { + label: '采样过程编码', + field: 'inspectionJobCharacteristicsRespVO.samplingProcessCode', + sort: 'custom' + }, + { + label: '动态修改规则编码', + field: 'inspectionJobCharacteristicsRespVO.dynamicUpdateCode', + sort: 'custom' + }, + { + label: '是否允许修改特征值', + field: 'inspectionJobCharacteristicsRespVO.isCanUpdate', + sort: 'custom', + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return isCanUpdateList.find((account) => account.value == cellValue)?.label + } + }, + { + label: '结果录入方式', + field: 'inspectionJobCharacteristicsRespVO.resultEntryMethod', + sort: 'custom', + // dictType: DICT_TYPE.INSPECTION_CHARACTERISTICS_RESULT_ENTRY, + // dictClass: 'string', + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return resultEntryMethodList.find((account) => account.value == cellValue)?.label + } + }, + { + label: '特征类型', + field: 'inspectionJobCharacteristicsRespVO.featureType', + sort: 'custom', + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return featureTypeList.find((account) => account.value == cellValue)?.label + } + } + ]) +) + +//表单校验 +export const InspectionJobDetailRules = reactive({ + taskCode: [required], + processCode: [required], + sequenceCode: [required], + available: [required] +}) +/** + * @returns {Array} 检验任务包装 + */ +export const InspectionJobPackage = useCrudSchemas( + reactive([ + { + label: '编码', + field: 'number', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true + }, + table: { + width: 200 + } + }, + { + label: '包装号', + field: 'packageCode', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true + }, + table: { + width: 200 + } + }, + { + label: '包装规格', + field: 'packageSpecificationCode', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true + }, + table: { + width: 180 + } + }, + { + label: '数量', + field: 'amount', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + tableForm: { + disabled: true + }, + table: { + width: 150 + } + }, + { + label: '计量单位', + field: 'measuringUnit', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true + }, + table: { + width: 150 + } + }, + { + label: '采样数量', + field: 'sampleAmount', + sort: 'custom', + isSearch: true, + isTable: false, + table: { + width: 150 + } + } + ]) +) +//表单校验 +export const InspectionJobPackageRules = reactive({ + sampleAmount: [required, { validator: validateSixNum, trigger: 'blur' }] +}) diff --git a/src/views/qms/inspectionJob/inspectionJobProduction.vue b/src/views/qms/inspectionJob/inspectionJobProduction.vue new file mode 100644 index 0000000..0bbb67e --- /dev/null +++ b/src/views/qms/inspectionJob/inspectionJobProduction.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/views/qms/inspectionJob/inspectionJobPurchase.vue b/src/views/qms/inspectionJob/inspectionJobPurchase.vue new file mode 100644 index 0000000..0098067 --- /dev/null +++ b/src/views/qms/inspectionJob/inspectionJobPurchase.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/views/qms/inspectionMethod/index.vue b/src/views/qms/inspectionMethod/index.vue new file mode 100644 index 0000000..dc1dca7 --- /dev/null +++ b/src/views/qms/inspectionMethod/index.vue @@ -0,0 +1,345 @@ + + + diff --git a/src/views/qms/inspectionMethod/inspectionMethod.data.ts b/src/views/qms/inspectionMethod/inspectionMethod.data.ts new file mode 100644 index 0000000..e08d24a --- /dev/null +++ b/src/views/qms/inspectionMethod/inspectionMethod.data.ts @@ -0,0 +1,161 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const InspectionMethodRules = reactive({ + description: [required] +}) + +export const InspectionMethod = useCrudSchemas( + reactive([ + { + label: '编码', + field: 'code', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + fixed: 'left' + } + }, + { + label: '描述', + field: 'description', + sort: 'custom' + }, + { + label: '版本', + field: 'version', + sort: 'custom' + }, + { + label: '操作指导', + field: 'operationGuidance', + sort: 'custom' + }, + { + label: '文件', + field: 'videoAddress', + sort: 'custom', + isTable: false, + table: {}, + form: { + component: 'UploadFile', + componentProps: { + upData: { + tableName: 'basicInspectionMethod', + tableId: '' + }, + fileType: ['doc', 'xls', 'ppt', 'txt'], + modelValue: [] + } + } + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true, + isForm: false, + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + search: { + value: 'TRUE' + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + table: { + width: 110 + } + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: true, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 150, + fixed: 'right' + } + } + ]) +) diff --git a/src/views/qms/inspectionQ1/index.vue b/src/views/qms/inspectionQ1/index.vue new file mode 100644 index 0000000..b2a5b19 --- /dev/null +++ b/src/views/qms/inspectionQ1/index.vue @@ -0,0 +1,413 @@ + + + diff --git a/src/views/qms/inspectionQ1/inspectionQ1.data.ts b/src/views/qms/inspectionQ1/inspectionQ1.data.ts new file mode 100644 index 0000000..1faeb77 --- /dev/null +++ b/src/views/qms/inspectionQ1/inspectionQ1.data.ts @@ -0,0 +1,495 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +import * as CustomerApi from '@/api/wms/customer' +import { Customer } from '@/views/wms/basicDataManage/customerManage/customer/customer.data' + +import * as CustomeritemApi from '@/api/wms/customeritem' +import { Customeritem } from '@/views/wms/basicDataManage/customerManage/customeritem/customeritem.data' + +import * as QadCostcentreApi from '@/api/wms/qadCostcentre' +import { QadCostcentre } from '@/views/wms/basicDataManage/subject/qadCostcentre/qadCostcentre.data' + +import { useUserStore } from '@/store/modules/user' +const userStore = useUserStore() +const validateNumber = (rule: any, value: any, callback: any) => { + if (!value) { + callback(); + } else { + + const codeReg = /^[-+]?[0-9]*\.?[0-9]+$/ + if (codeReg.test(value)) { + callback() + } else { + callback(new Error('订单号只能是数字')) + } + } +} +// 表单校验 +export const Q1Rules = reactive({ + itemCode: [{ required: true, message: '请选择物料代码', trigger: 'change' }], + customerCode: [{ required: true, message: '请选择客户代码', trigger: 'change' }], + qty: [{ required: true, message: '请输入数量', trigger: 'change' }, + { validator:validateNumber, message: '数量必须是数值类型', trigger: 'change'} + ], + claimAmount: [{ required: true, message: '请输入索赔金额', trigger: 'change' }, + { validator:validateNumber, message: '索赔金额必须是数值类型', trigger: 'change'} + ], + code: [{ required: true, message: '请选择缺陷代码', trigger: 'change' }], + priority: [{ required: true, message: '请选择优先级', trigger: 'change' }], + costCode: [{ required: true, message: '请选择选择成本中心代码', trigger: 'change' }], + claimTime: [{ required: true, message: '请选择选择索赔日期', trigger: 'change' }], + handleTime: [{ required: true, message: '请选择选择处理时间', trigger: 'change' }], + claimReason: [{ required: true, message: '请选择选择索赔原因', trigger: 'change' }] +}) + +export const Q1 = useCrudSchemas( + reactive([ + { + label: '通知单号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 150, + fixed: 'left' + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'itemCode', // 查询弹窗赋值字段 + searchTitle: '客户物料信息', // 查询弹窗标题 + searchAllSchemas: Customeritem.allSchemas, // 查询弹窗所需类 + searchPage: CustomeritemApi.getCustomeritemPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'itemCode', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + dictClass: 'string', + isSearch: false, + isTable: true, + tableForm: { + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '客户代码', + field: 'customerCode', + sort: 'custom', + dictClass: 'string', + isSearch: false, + isTable: true, + tableForm: { + disabled: true + }, + form: { + component: 'Select', + componentProps: { + options: [], + optionsAlias: { + labelField: 'customerCode', + valueField: 'customerCode' + }, + filterable: true + } + } + }, + { + label: '客户名称', + field: 'customerName', + sort: 'custom', + dictClass: 'string', + isSearch: false, + isTable: true, + tableForm: { + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isTable: true, + isSearch: false, + table: { + width: 150 + }, + form: { + // component: 'InputNumber', + // componentProps: { + // min: 0, + // precision: 2 + // } + } + }, + { + label: '单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: false, + isTable: true, + tableForm: { + type: 'Select', + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '标准成本价格', + field: 'standardCostPrice', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled: true + } + } + }, + { + label: '索赔金额', + field: 'claimAmount', + sort: 'custom', + isTable: false, + isSearch: false, + table: { + width: 150 + }, + form: { + // component: 'InputNumber', + // componentProps: { + // min: 0, + // precision: 2 + // } + } + }, + { + label: '缺陷编码', + field: 'code', + sort: 'custom', + dictType: DICT_TYPE.QMS_Q1_CODE, + dictClass: 'string', + isSearch: false, + isTable: true, + table: { + width: 180 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '优先级', + field: 'priority', + sort: 'custom', + dictType: DICT_TYPE.QUALITY_NOTIFICATION_PRIORITY, + dictClass: 'string', + isSearch: false, + isTable: false, + tableForm: { + type: 'Select' + } + }, + + { + label: '成本中心代码', + field: 'costCode', + sort: 'custom', + isSearch: false, + isTable: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择成本中心代码', // 输入框占位文本 + searchField: 'costcentreCode', // 查询弹窗赋值字段 + searchTitle: '成本中心信息', // 查询弹窗标题 + searchAllSchemas: QadCostcentre.allSchemas, // 查询弹窗所需类 + searchPage: QadCostcentreApi.getQadCostcentrePage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'costcentreCode', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '索赔原因', + field: 'claimReason', + sort: 'custom', + dictType: DICT_TYPE.CLAIM_REASON, + dictClass: 'string', + isSearch: false, + isTable: false, + tableForm: { + type: 'Select' + } + }, + { + label: '索赔日期', + field: 'claimTime', + isSearch: false, + isTable: true, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '负责用户', + field: 'responUser', + sort: 'custom', + isSearch: false, + isForm: true, + form: { + componentProps: { + value: userStore.getUser.nickname, + disabled: true + } + } + }, + { + label: '处理时间', + field: 'handleTime', + isSearch: false, + isTable: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.PUBLISHE_STATUS, + dictClass: 'string', + isForm: false, + isSearch: false, + tableForm: { + type: 'Select', + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '描述', + field: 'desc', + sort: 'custom', + isSearch: false, + table: { + width: '150' + }, + form: { + component: 'Input', + componentProps: { + type: 'textarea' + } + } + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + isSearch: false, + isForm: false, + isTable: false, + isDetail: false, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + search: { + value: 'TRUE' + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + table: { + width: 110 + } + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: true, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 150, + fixed: 'right' + } + } + ]) +) diff --git a/src/views/qms/inspectionQ2/index.vue b/src/views/qms/inspectionQ2/index.vue new file mode 100644 index 0000000..acdb4c3 --- /dev/null +++ b/src/views/qms/inspectionQ2/index.vue @@ -0,0 +1,870 @@ + + + diff --git a/src/views/qms/inspectionQ2/inspectionQ2.data.ts b/src/views/qms/inspectionQ2/inspectionQ2.data.ts new file mode 100644 index 0000000..1270b59 --- /dev/null +++ b/src/views/qms/inspectionQ2/inspectionQ2.data.ts @@ -0,0 +1,878 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +import * as QadCostcentreApi from '@/api/wms/qadCostcentre' +import { QadCostcentre } from '@/views/wms/basicDataManage/subject/qadCostcentre/qadCostcentre.data' + +import * as InspectionQ1Api from '@/api/qms/inspectionQ1' +import { Q1 } from '@/views/qms/inspectionQ1/inspectionQ1.data' + +import * as SupplieritemApi from '@/api/wms/supplieritem' +import { Supplieritem } from '@/views/wms/basicDataManage/supplierManage/supplieritem/supplieritem.data' + +import * as PurchasereturnRequestDetailApi from '@/api/wms/purchasereturnRequestDetail' + +import * as ItembasicApi from '@/api/wms/itembasic' +import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' + +import { useUserStore } from '@/store/modules/user' +const userStore = useUserStore() + +// 表单校验 +export const Q2Rules = reactive({ + itemCode: [{ required: true, message: '请选择供应商物料代码', trigger: 'change' }], + supplierCode: [{ required: true, message: '请选择供应商代码', trigger: 'change' }], + purchaseReceiptNumber: [ + // { required: true, message: '请选择采购收货单号', trigger: 'change' }, + { max: 255, message: '不得超过255个字符', trigger: 'blur' } + ], + claimTime: [{ required: true, message: '请选择索赔日期', trigger: 'change' }], + lightQty: [{ required: true, message: '请选择数量', trigger: 'change' }], + code: [{ required: true, message: '请选择缺陷代码', trigger: 'change' }], + priority: [{ required: true, message: '请选择优先级', trigger: 'change' }], + claimMultiple: [{ required: true, message: '请选择索赔倍数', trigger: 'change' }], + claimAmount: [{ required: true, message: '请输入索赔金额', trigger: 'change' }], + costCode: [{ required: true, message: '请选择选择成本中心代码', trigger: 'change' }], + cashierEmail: [{ required: true, message: '请选择选择出纳邮件地址', trigger: 'change' }], + handleTime: [{ required: true, message: '请选择选择处理时间', trigger: 'change' }] +}) + +export const Q2result = useCrudSchemas( + reactive([ + { + label: '收货日期', + field: 'currentDeliveryDate', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '收货单号', + field: 'receiptNumber', + sort: 'custom', + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + } + ]) +) + +export const Q2 = useCrudSchemas( + reactive([ + { + label: '通知单号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 150, + fixed: 'left' + } + }, + { + label: '供应商物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'itemCode', // 查询弹窗赋值字段 + searchTitle: '供应商物料信息', // 查询弹窗标题 + searchAllSchemas: Supplieritem.allSchemas, // 查询弹窗所需类 + searchPage: SupplieritemApi.getSupplieritemPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'type', + value: 'Q2', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'itemCode', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '供应商物料名称', + field: 'itemName', + sort: 'custom', + dictClass: 'string', + isSearch: false, + isTable: true, + tableForm: { + disabled: true + }, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + dictClass: 'string', + isSearch: false, + isTable: true, + tableForm: { + disabled: true + }, + table: { + width: 120 + }, + form: { + component: 'Select', + componentProps: { + options: [], + optionsAlias: { + labelField: 'supplierCode', + valueField: 'supplierCode' + }, + filterable: true + } + } + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + dictClass: 'string', + isSearch: false, + isTable: true, + table: { + width: 180 + }, + tableForm: { + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '采购收货单号', + field: 'purchaseReceiptNumber', + sort: 'custom', + isTable: true, + table: { + width: 180 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled: true, + multiple: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择采购收货记录单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: '采购收货记录', // 查询弹窗标题 + searchAllSchemas: Q2result.allSchemas, // 查询弹窗所需类 + searchPage: PurchasereturnRequestDetailApi.getPurchasereturnPurchasereceiptRecordByItemCode, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'supplierCode', + value: 'supplierCode', + isMainValue: true + }, + { + key: 'itemCode', + value: 'itemCode', + isMainValue: true + } + ] + } + } + }, + { + label: '索赔日期', + field: 'claimTime', + isTable: true, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '整灯/分总成物料代码', + field: 'lightItemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择整灯/分总成物料代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '物料基础信息', // 查询弹窗标题 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'typeQ2', + value: 'CCP,BCP', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '整灯/分总成物料名称', + field: 'lightItemName', + sort: 'custom', + dictClass: 'string', + isSearch: false, + isTable: true, + table: { + width: 150 + }, + tableForm: { + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '数量', + field: 'lightQty', + sort: 'custom', + isTable: true, + isSearch: false, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + } + }, + { + label: '缺陷编码', + field: 'code', + sort: 'custom', + dictType: DICT_TYPE.QMS_Q2_CODE, + dictClass: 'string', + isSearch: false, + isTable: true, + table: { + width: 180 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '优先级', + field: 'priority', + sort: 'custom', + dictType: DICT_TYPE.QUALITY_NOTIFICATION_PRIORITY, + dictClass: 'string', + isSearch: false, + isTable: true, + tableForm: { + type: 'Select' + } + }, + { + label: '索赔倍数', + field: 'claimMultiple', + sort: 'custom', + dictType: DICT_TYPE.QMS_CLAIM_MULTIPLE, + dictClass: 'string', + isTable: true, + isSearch: false, + table: { + width: 100 + }, + tableForm: { + type: 'Select', + disabled: true + }, + form: { + componentProps: {} + } + }, + { + label: '销售价格', + field: 'standardCostPrice', + sort: 'custom', + isSearch: false, + isTable: true, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled: true + } + } + }, + { + label: '索赔金额', + field: 'claimAmount', + sort: 'custom', + isTable: true, + isSearch: false, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + } + }, + + { + label: '其他索赔描述', + field: 'otherClaimDesc', + sort: 'custom', + isSearch: false, + isTable: true, + table: { + width: '150' + }, + form: { + component: 'Input', + componentProps: {} + } + }, + { + label: '其他索赔金额', + field: 'otherClaimAmount', + sort: 'custom', + isSearch: false, + isTable: true, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + } + }, + { + label: '汇总金额', + field: 'summaryAmount', + sort: 'custom', + isSearch: false, + isTable: true, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled: true + } + } + }, + { + label: '抛账金额', + field: 'disbursementAmount', + sort: 'custom', + isSearch: false, + isTable: true, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled: true + } + } + }, + { + label: '剩余金额', + field: 'remainingAmount', + sort: 'custom', + isSearch: false, + isTable: true, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled: true + } + } + }, + { + label: 'Q1通知单号', + field: 'q1Number', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择Q1通知单', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: 'Q1通知单', // 查询弹窗标题 + searchAllSchemas: Q1.allSchemas, // 查询弹窗所需类 + searchPage: InspectionQ1Api.getQ1Page, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'status', + value: '0', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + }, + isSearch: true + }, + { + label: '成本中心代码', + field: 'costCode', + sort: 'custom', + isSearch: false, + isTable: true, + isForm: true, + table: { + width: '120' + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择成本中心', // 输入框占位文本 + searchField: 'costcentreCode', // 查询弹窗赋值字段 + searchTitle: '成本中心信息', // 查询弹窗标题 + searchAllSchemas: QadCostcentre.allSchemas, // 查询弹窗所需类 + searchPage: QadCostcentreApi.getQadCostcentrePage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'costcentreCode', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '出纳邮件地址', + field: 'cashierEmail', + sort: 'custom', + isSearch: false, + isTable: false, + table: { + width: '150' + }, + form: { + component: 'Input', + componentProps: {} + } + }, + + { + label: '负责用户', + field: 'responUser', + sort: 'custom', + isSearch: false, + isTable: true, + isForm: true, + table: { + width: 120 + }, + form: { + componentProps: { + value: userStore.getUser.nickname, + disabled: true + } + } + }, + { + label: '处理时间', + field: 'handleTime', + isTable: true, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + + { + label: '索赔单附件', + field: 'claimAddressName', + sort: 'custom', + isSearch: false, + isForm: false, + isTable: true, + isDetail: false, + table: { + width: 150 + } + }, + + { + label: '索赔单附件', + field: 'claimAddress', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + form: { + component: 'UploadFile', + componentProps: { + upData: { + tableName: 'basicInspectionQ2', + tableId: '' + }, + fileType: ['doc', 'xls', 'ppt', 'txt', 'pdf'], + modelValue: [] + } + } + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.PUBLISHE_STATUS, + dictClass: 'string', + isForm: false, + isTable: true, + isSearch: false, + tableForm: { + type: 'Select', + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '描述', + field: 'desc', + sort: 'custom', + isSearch: false, + isTable: true, + table: { + width: '150' + }, + form: { + component: 'Input', + componentProps: { + type: 'textarea' + } + } + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: false, + isForm: false, + isTable: false, + isDetail: false + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + isTable: true, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: true, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 230, + fixed: 'right' + } + } + ]) +) + + diff --git a/src/views/qms/inspectionQ3/index.vue b/src/views/qms/inspectionQ3/index.vue new file mode 100644 index 0000000..a444caf --- /dev/null +++ b/src/views/qms/inspectionQ3/index.vue @@ -0,0 +1,489 @@ + + + diff --git a/src/views/qms/inspectionQ3/inspectionQ3.data.ts b/src/views/qms/inspectionQ3/inspectionQ3.data.ts new file mode 100644 index 0000000..23d415a --- /dev/null +++ b/src/views/qms/inspectionQ3/inspectionQ3.data.ts @@ -0,0 +1,549 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +import * as InspectionQ1Api from '@/api/qms/inspectionQ1' +import { Q1 } from '@/views/qms/inspectionQ1/inspectionQ1.data' + +import * as ItembasicApi from '@/api/wms/itembasic' +import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' + +import * as ProductionlineitemApi from '@/api/wms/productionlineitem' +import { Productionlineitem } from '@/views/wms/basicDataManage/itemManage/productionlineitem/productionlineitem.data' + +import * as QadCostcentreApi from '@/api/wms/qadCostcentre' +import { QadCostcentre } from '@/views/wms/basicDataManage/subject/qadCostcentre/qadCostcentre.data' + +const { t } = useI18n() // 国际化 + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize: 10, + pageNo: 1, + code: 'IssueRequest' +} + +// 获取当前操作人的部门 +import { useUserStore } from '@/store/modules/user' +import { TableColumn } from '@/types/table' +import { fa } from 'element-plus/es/locale' +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept +// id 转str 否则form回显匹配不到 +userDept.id = userDept.id.toString() +const userDeptArray: any = [userDept] + +/** + * @returns {Array} 发料申请主表 + */ +export const InspectionQ3Main = useCrudSchemas( + reactive([ + { + label: '通知单号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 150, + fixed: 'left' + } + }, + + { + label: '负责用户', + field: 'responUser', + sort: 'custom', + isSearch: false, + table: { + width: 120 + }, + form: { + componentProps: { + value: userStore.getUser.nickname, + disabled: true + } + } + }, + { + label: '优先级', + field: 'priority', + sort: 'custom', + dictType: DICT_TYPE.QUALITY_NOTIFICATION_PRIORITY, + dictClass: 'string', + isSearch: false, + isTable: true, + tableForm: { + type: 'Select' + } + }, + { + label: '处理时间', + field: 'handleTime', + isSearch: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '汇总金额', + field: 'summaryAmount', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled: true + } + } + }, + { + label: 'Q1通知单号', + field: 'q1Number', + sort: 'custom', + isSearch: true, + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择Q1通知单', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: 'Q1通知单', // 查询弹窗标题 + searchAllSchemas: Q1.allSchemas, // 查询弹窗所需类 + searchPage: InspectionQ1Api.getQ1Page, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'status', + value: '0', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '描述', + field: 'desc', + sort: 'custom', + isSearch: false, + table: { + width: '150' + }, + form: { + component: 'Input', + componentProps: { + type: 'textarea' + } + } + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.PUBLISHE_STATUS, + dictClass: 'string', + isSearch: false, + isForm: false, + tableForm: { + type: 'Select', + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: false, + isForm: false, + isTable: false, + isDetail: false + }, + { + label: '创建时间', + field: 'createTime', + isTable: true, + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + } + } + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: true, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 230, + fixed: 'right' + } + } + ]) +) + +export const InspectionQ3MainRules = reactive({ + priority: [{ required: true, message: '请选择优先级', trigger: 'change' }], + handleTime: [{ required: true, message: '请选择处理时间', trigger: 'change' }], + desc: [{ max: 50, message: '不得超过50个字符', trigger: 'blur' }] +}) + +/** + * @returns {Array} 发料申请子表 + */ +export const InspectionQ3Detail = useCrudSchemas( + reactive([ + { + label: '通知单号', + field: 'number', + sort: 'custom', + isSearch: false, + isTable: false, + isTableForm: false + }, + { + label: '物料号', + field: 'itemCode', + sort: 'custom', + isTable: true, + isDetail: true, + isSearch: false, + table: { + width: 150 + }, + tableForm: { + isInpuFocusShow: false, + disabled: true, + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'itemCode', // 查询弹窗赋值字段 + searchTitle: '物料信息', // 查询弹窗标题 + searchAllSchemas: Productionlineitem.allSchemas, // 查询弹窗所需类 + searchPage: ProductionlineitemApi.getProductionlineitemPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationPage: ProductionlineitemApi.getProductionLineCodelistByCodes, // tableForm下方输入框校验失去焦点之后是否正确的方法 + isShowTableFormSearch: true, //tableForm下方是否出现输入框 + isRepeat: true, //tableForm下方输入框是否可以重复添加该条数据 + // 失去焦点校验参数 + verificationParams: [ + { + key: 'itemCode', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true + } + ] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '物料基础信息', // 查询弹窗标题 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: false, + isTable: true, + + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: false, + isTable: true, + tableForm: { + type: 'Select', + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '单价', + field: 'price', + sort: 'custom', + isTable: true, + isSearch: false, + tableForm: { + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + isSearch: false, + isTable: true, + isForm: false, + tableForm: { + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '成本中心代码', + field: 'costCode', + sort: 'custom', + isSearch: false, + isTable: true, + isForm: true, + tableForm: { + isInpuFocusShow: true, + enterSearch: true, + searchListPlaceholder: '请选择成本中心', // 输入框占位文本 + searchField: 'costcentreCode', // 查询弹窗赋值字段 + searchTitle: '成本中心信息', // 查询弹窗标题 + searchAllSchemas: QadCostcentre.allSchemas, // 查询弹窗所需类 + searchPage: QadCostcentreApi.getQadCostcentrePage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'costcentreCode', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + }, + { + label: '缺陷编码', + field: 'defectCode', + sort: 'custom', + dictType: DICT_TYPE.QMS_Q3_CODE, + dictClass: 'string', + isSearch: true, + isTable: true, + tableForm: { + type: 'Select' + } + }, + { + label: '缺陷位置', + field: 'defectLocation', + sort: 'custom', + dictClass: 'string', + isSearch: false, + isTable: true, + form: { + component: 'Select', + componentProps: { + filterable: true, + options: [], + optionsAlias: { + labelField: 'code', + valueField: 'code' + } + } + }, + tableForm: { + type: 'Select', + filterable: true, + labelField: 'code', + valueField: 'code' + } + }, + { + label: '缺陷类型', + field: 'defectType', + sort: 'custom', + isSearch: false, + isTable: true, + form: { + component: 'Select' + } + }, + { + label: '问题原因', + field: 'problemReason', + hiddenInMain: true, + sort: 'custom', + isSearch: false, + isTable: true, + form: { + component: 'Select' + } + } + // { + // label: '操作', + // field: 'action', + // hiddenInMain: true, + // isDetail: false, + // isForm: false, + // table: { + // width: 200, + // fixed: 'right' + // }, + // isTableForm: false + // } + ]) +) + +//表单校验 +export const InspectionQ3DetailRules = reactive({ + itemCode: [{ required: true, message: '请选择物料代码', trigger: 'change' }], + qty: [{ required: true, message: '请输入数量', trigger: 'change' }], + price: [{ required: true, message: '请选择单价', trigger: 'change' }], + amount: [{ required: true, message: '请选择金额', trigger: 'change' }], + costCode: [{ required: true, message: '请选择成本中心编码', trigger: 'change' }], + defectLocation: [{ required: true, message: '请选择缺陷位置', trigger: 'change' }], + defectType: [{ required: true, message: '请输入缺陷类型', trigger: 'change' }], + problemReason: [{ required: true, message: '请输入问题原因', trigger: 'change' }], + defectCode: [{ required: true, message: '请选择缺陷编码', trigger: 'change' }] +}) diff --git a/src/views/qms/inspectionRecord/addForm.vue b/src/views/qms/inspectionRecord/addForm.vue new file mode 100644 index 0000000..7b26739 --- /dev/null +++ b/src/views/qms/inspectionRecord/addForm.vue @@ -0,0 +1,1571 @@ + + + + diff --git a/src/views/qms/inspectionRecord/detail.vue b/src/views/qms/inspectionRecord/detail.vue new file mode 100644 index 0000000..107b2b1 --- /dev/null +++ b/src/views/qms/inspectionRecord/detail.vue @@ -0,0 +1,477 @@ + + + + + diff --git a/src/views/qms/inspectionRecord/index.vue b/src/views/qms/inspectionRecord/index.vue new file mode 100644 index 0000000..30c69f3 --- /dev/null +++ b/src/views/qms/inspectionRecord/index.vue @@ -0,0 +1,547 @@ + + + diff --git a/src/views/qms/inspectionRecord/inspectionRecord.vue b/src/views/qms/inspectionRecord/inspectionRecord.vue new file mode 100644 index 0000000..59c7d25 --- /dev/null +++ b/src/views/qms/inspectionRecord/inspectionRecord.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/views/qms/inspectionRecord/inspectionRecordMain.data.ts b/src/views/qms/inspectionRecord/inspectionRecordMain.data.ts new file mode 100644 index 0000000..45aaf76 --- /dev/null +++ b/src/views/qms/inspectionRecord/inspectionRecordMain.data.ts @@ -0,0 +1,964 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter2 } from '@/utils/formatTime' +import { validateHanset, validateEmail } from '@/utils/validator' +import { dateFormatter } from '@/utils/formatTime' +import { validateTwoNum, validateSixNum } from '@/utils/validator' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 检验任务主表 + */ +export const InspectionRecordMain = useCrudSchemas( + reactive([ + { + label: '记录编码', + field: 'number', + sort: 'custom', + isSearch: true, + table: { + width: 200, + fixed: 'left' + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '申请编码', + field: 'requestNumber', + sort: 'custom', + isSearch: true, + table: { + width: 200 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '任务编码', + field: 'jobNumber', + sort: 'custom', + isSearch: false, + table: { + width: 200 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + isSearch: true, + isForm: false, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 180 + } + }, + { + label: '供应商编码', + field: 'supplierCode', + sort: 'custom', + isSearch: false, + table: { + width: 200 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + isSearch: false, + table: { + width: 200 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料编码', + field: 'itemCode', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + isSearch: false, + table: { + width: 200 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '供应商批次', + field: 'supplierBatch', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '检验方案编码', + field: 'inspectionSchemeCode', + sort: 'custom', + isSearch: false, + table: { + width: 200 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '检验批次', + field: 'inspectionBatch', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '检验批数量', + field: 'inspectionBatchAmount', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + // { + // label: '采样总数量', + // field: 'sampleTotalAmount', + // sort: 'custom', + // isSearch: false, + // isForm:false, + // table: { + // width: 150 + // } + // }, + { + label: '检验类型', + field: 'inspectionType', + dictType: DICT_TYPE.INSPECTION_TYPE, + sort: 'custom', + isSearch: false, + form: { + component: 'Select', + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '参考订单号', + field: 'referenceOrderCode', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '参考订单行', + field: 'referenceOrderRow', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '参考凭证号', + field: 'referenceCertificateCode', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + // reference_certificate_row + label: '参考凭证行', + field: 'referenceCertificateRow', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '检验阶段', + field: 'inspectionStage', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + disabled: true + } + }, + table: { + width: 150 + } + }, + { + label: '检验严格性', + field: 'inspectionStringency', + dictType: DICT_TYPE.INSPECTION_SEVERITY, + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: 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', + disabled: true + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + { + 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', + disabled: true + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + { + label: '实际开始时间', + field: 'realStartTime', + 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', + disabled: true + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + { + label: '实际结束时间', + field: 'realEndTime', + 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', + disabled: true + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + + { + label: '收货时间', + field: 'deliveryTime', + 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' + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + { + label: '检验水平', + field: 'inspectionLevel', + dictType: DICT_TYPE.INSPECTION_LEVEL, + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: 'AQL值', + field: 'aqlValue', + dictType: DICT_TYPE.BASIC_AQL, + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '使用决策', + field: 'useDecision', + sort: 'custom', + isSearch: false, + dictType: DICT_TYPE.USAGE_DECISION, + table: { + width: 150 + }, + isForm: false + }, + { + label: '执行结果', + field: 'estimateCode', + dictType: DICT_TYPE.EVALUATION_CODE, + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '包装号', + field: 'packageCode', + sort: 'custom', + isSearch: true, + isTable: false, + isForm: false, + tableForm: { + disabled: false + } + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + } + } + }, + { + label: '创建者', + field: 'creatorName', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 430, + fixed: 'right' + } + } + ]) +) + +//表单校验 +export const InspectionRecordMainRules = reactive({ + useDecision: [required], + +}) + +/** + * @returns {Array} 检验任务子表 + */ +export const InspectionRecordDetail = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isTable: false, + isSearch: false, + isForm: false, + }, + { + label: '记录编码', + field: 'recordCode', + sort: 'custom', + isSearch: false, + }, + { + label: '工序编码', + field: 'processCode', + sort: 'custom', + isSearch: false, + }, + { + label: '工序描述', + field: 'processDescribe', + sort: 'custom', + isSearch: false, + }, + { + label: '顺序号', + field: 'sequenceCode', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '是否破坏性检验', + field: 'isDestroyInspection', + sort: 'custom', + isSearch: false, + form: { + component: 'Radio' + }, + }, + { + label: '检验开始时间', + field: 'inspectionStartTime', + 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: 'inspectionEndTime', + 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: 'inspectionOperator', + sort: 'custom', + isSearch: false, + }, + { + label: '检验特性编码', + field: 'inspectionFeaturesCode', + sort: 'custom', + isSearch: false, + }, + // { + // label: '是否可用', + // field: 'available', + // 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: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const InspectionRecordDetailRules = reactive({ + recordCode: [required], + processCode: [required], + sequenceCode: [required], + isDestroyInspection: [required], + available: [required], +}) + +/** + * @returns {Array} 检验记录包装 + */ +export const InspectionRecordPackage = useCrudSchemas(reactive([ + { + label: '编码', + field: 'number', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true, + width: 200 + }, + table: { + width: 150 + } + }, + { + label: '包装号', + field: 'packageCode', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true, + width: 160 + }, + table: { + width: 150 + } + }, + { + label: '包装规格', + field: 'packageSpecificationCode', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true, + width: 150 + }, + table: { + width: 150 + } + }, + { + label: '数量', + field: 'amount', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + tableForm: { + disabled: true, + width: 120 + }, + table: { + width: 150 + } + }, + { + label: '计量单位', + field: 'measuringUnit', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true, + width: 120 + }, + table: { + width: 150 + } + }, + { + label: '采样数量', + field: 'sampleAmount', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true, + width: 100 + }, + table: { + width: 150 + } + }, + { + label: '合格数量', + field: 'qualifiedAmount', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true, + width: 100 + }, + table: { + width: 150 + } + }, + { + label: '不合格数量', + field: 'noQualifiedAmount', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true, + width: 100 + }, + table: { + width: 150 + } + }, + { + label: '破坏数量', + field: 'destroyAmount', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true, + width: 100 + }, + table: { + width: 150 + } + }, + { + label: '冻结数量', + field: 'frozenAmount', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true, + width: 100 + }, + table: { + width: 150 + } + } +])) + +//表单校验 +export const InspectionRecordPackageRules = reactive({ + qualifiedAmount: [ + required, + { validator: validateSixNum, message: '小数点后最多6位', trigger: 'blur' } + ], + frozenAmount: [ + required, + { validator: validateSixNum, message: '小数点后最多6位', trigger: 'blur' } + ], + destroyAmount: [ + required, + { validator: validateSixNum, message: '小数点后最多6位', trigger: 'blur' } + ], + noQualifiedAmount: [ + required, + { validator: validateSixNum, message: '小数点后最多6位', trigger: 'blur' } + ], +}) + + +//表单校验 +export const InspectionRecordUserRules = reactive({ + useDecision: [required], + +}) + +/** + * @returns {Array} 检验任务子表 + */ +export const InspectionRecordUser = useCrudSchemas(reactive([ + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + isSearch: true, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 180 + } + }, + { + label: '使用决策', + field: 'useDecision', + sort: 'custom', + isSearch: false, + dictType: DICT_TYPE.USAGE_DECISION, + table: { + width: 150 + } + }, +])) diff --git a/src/views/qms/inspectionRecord/inspectionRecordProduction.vue b/src/views/qms/inspectionRecord/inspectionRecordProduction.vue new file mode 100644 index 0000000..1e353a1 --- /dev/null +++ b/src/views/qms/inspectionRecord/inspectionRecordProduction.vue @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/views/qms/inspectionRecord/inspectionRecordPurchase.vue b/src/views/qms/inspectionRecord/inspectionRecordPurchase.vue new file mode 100644 index 0000000..83f1384 --- /dev/null +++ b/src/views/qms/inspectionRecord/inspectionRecordPurchase.vue @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/src/views/qms/inspectionRecord/useAddForm.vue b/src/views/qms/inspectionRecord/useAddForm.vue new file mode 100644 index 0000000..d6e9dbd --- /dev/null +++ b/src/views/qms/inspectionRecord/useAddForm.vue @@ -0,0 +1,312 @@ + + + + + diff --git a/src/views/qms/inspectionRecordFirst/addForm.vue b/src/views/qms/inspectionRecordFirst/addForm.vue new file mode 100644 index 0000000..bd88637 --- /dev/null +++ b/src/views/qms/inspectionRecordFirst/addForm.vue @@ -0,0 +1,1680 @@ + + + + diff --git a/src/views/qms/inspectionRecordFirst/detail.vue b/src/views/qms/inspectionRecordFirst/detail.vue new file mode 100644 index 0000000..107b2b1 --- /dev/null +++ b/src/views/qms/inspectionRecordFirst/detail.vue @@ -0,0 +1,477 @@ + + + + + diff --git a/src/views/qms/inspectionRecordFirst/index.vue b/src/views/qms/inspectionRecordFirst/index.vue new file mode 100644 index 0000000..4003984 --- /dev/null +++ b/src/views/qms/inspectionRecordFirst/index.vue @@ -0,0 +1,357 @@ + + + diff --git a/src/views/qms/inspectionRecordFirst/inspectionRecordFirstMain.data.ts b/src/views/qms/inspectionRecordFirst/inspectionRecordFirstMain.data.ts new file mode 100644 index 0000000..1d75b6b --- /dev/null +++ b/src/views/qms/inspectionRecordFirst/inspectionRecordFirstMain.data.ts @@ -0,0 +1,493 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter2 } from '@/utils/formatTime' +import { validateHanset, validateEmail } from '@/utils/validator' +import { dateFormatter } from '@/utils/formatTime' +import { validateTwoNum, validateSixNum } from '@/utils/validator' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 检验任务主表 + */ +export const InspectionRecordMain = useCrudSchemas( + reactive([ + { + label: '记录编码', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 200, + fixed: 'left' + } + }, + { + label: '状态', + field: 'isPublished', + dictType: DICT_TYPE.PUBLISHE_STATUS_FIRST_INSPECTION, + sort: 'custom', + isSearch: false, + table: { + width: 150 + } + }, + { + label: '物料编码', + field: 'itemCode', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 200 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '检验批次', + field: 'inspectionBatch', + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 150 + } + }, + { + label: '检验方案编码', + field: 'inspectionSchemeCode', + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 200 + } + }, + + { + label: '检验人', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: false, + isSearch: false + }, + { + label: '检验人', + field: 'creatorName', + table: { + width: 130 + }, + isForm: false, + isTable: true, + isSearch: true + }, + { + label: '检验时间', + field: 'inspectionTime', + sort: 'custom', + isDetail: true, + isSearch: true, + isForm: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + search: { + component: 'DatePicker', + componentProps: { + type: 'daterange', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD' + } + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + // { + // label: '包装号', + // field: 'packageCode', + // sort: 'custom', + // isSearch: false, + // isTable: false, + // isForm: false, + // tableForm: { + // disabled: false + // } + // }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + isSearch: true, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 180 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 300, + fixed: 'right' + } + } + ]) +) + +//表单校验 +export const InspectionRecordMainRules = reactive({ + useDecision: [required], + +}) + +/** + * @returns {Array} 检验任务子表 + */ +export const InspectionRecordDetail = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isTable: false, + isSearch: false, + isForm: false, + }, + { + label: '记录编码', + field: 'recordCode', + sort: 'custom', + isSearch: false, + }, + { + label: '工序编码', + field: 'processCode', + sort: 'custom', + isSearch: false, + }, + { + label: '工序描述', + field: 'processDescribe', + sort: 'custom', + isSearch: false, + }, + { + label: '顺序号', + field: 'sequenceCode', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '是否破坏性检验', + field: 'isDestroyInspection', + sort: 'custom', + isSearch: false, + form: { + component: 'Radio' + }, + }, + { + label: '检验开始时间', + field: 'inspectionStartTime', + 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: 'inspectionEndTime', + 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: 'inspectionOperator', + sort: 'custom', + isSearch: false, + }, + { + label: '检验特性编码', + field: 'inspectionFeaturesCode', + sort: 'custom', + isSearch: false, + }, + // { + // label: '是否可用', + // field: 'available', + // sort: 'custom', + // isSearch: false, + // }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isTable: true, + table: { + width: 180, + }, + 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: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const InspectionRecordDetailRules = reactive({ + recordCode: [required], + processCode: [required], + sequenceCode: [required], + isDestroyInspection: [required], + available: [required], +}) + +/** + * @returns {Array} 检验记录包装 + */ +export const InspectionRecordPackage = useCrudSchemas(reactive([ + { + label: '编码', + field: 'number', + sort: 'custom', + isSearch: true, + tableForm:{ + disabled:true, + width:200 + }, + table:{ + width:150 + } + }, + { + label: '包装号', + field: 'packageCode', + sort: 'custom', + isSearch: true, + tableForm:{ + disabled:true, + width:160 + }, + table:{ + width:150 + } + }, + { + label: '包装规格', + field: 'packageSpecificationCode', + sort: 'custom', + isSearch: true, + tableForm:{ + disabled:true, + width:150 + }, + table:{ + width:150 + } + }, + { + label: '数量', + field: 'amount', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + tableForm:{ + disabled:true, + width:120 + }, + table:{ + width:150 + } + }, + { + label: '计量单位', + field: 'measuringUnit', + sort: 'custom', + isSearch: true, + tableForm:{ + disabled:true, + width:120 + }, + table:{ + width:150 + } + }, + { + label: '采样数量', + field: 'sampleAmount', + sort: 'custom', + isSearch: true, + tableForm:{ + disabled:true, + width:100 + }, + table:{ + width:150 + } + }, + { + label: '合格数量', + field: 'qualifiedAmount', + sort: 'custom', + isSearch: true, + tableForm:{ + disabled:true, + width:100 + }, + table:{ + width:150 + } + }, + { + label: '不合格数量', + field: 'noQualifiedAmount', + sort: 'custom', + isSearch: true, + tableForm:{ + disabled:true, + width:100 + }, + table:{ + width:150 + } + }, + { + label: '破坏数量', + field: 'destroyAmount', + sort: 'custom', + isSearch: true, + tableForm:{ + disabled:true, + width:100 + }, + table:{ + width:150 + } + }, + { + label: '冻结数量', + field: 'frozenAmount', + sort: 'custom', + isSearch: true, + tableForm:{ + disabled:true, + width:100 + }, + table:{ + width:150 + } + } +])) + +//表单校验 +export const InspectionRecordPackageRules = reactive({ + qualifiedAmount: [ + required, + { validator:validateSixNum, message: '小数点后最多6位', trigger: 'blur'} + ], + frozenAmount: [ + required, + { validator:validateSixNum, message: '小数点后最多6位', trigger: 'blur'} + ], + destroyAmount: [ + required, + { validator:validateSixNum, message: '小数点后最多6位', trigger: 'blur'} + ], + noQualifiedAmount: [ + required, + { validator:validateSixNum, message: '小数点后最多6位', trigger: 'blur'} + ], +}) diff --git a/src/views/qms/inspectionRecordFirst/useAddForm.vue b/src/views/qms/inspectionRecordFirst/useAddForm.vue new file mode 100644 index 0000000..c430495 --- /dev/null +++ b/src/views/qms/inspectionRecordFirst/useAddForm.vue @@ -0,0 +1,312 @@ + + + + + diff --git a/src/views/qms/inspectionRequest/index.vue b/src/views/qms/inspectionRequest/index.vue new file mode 100644 index 0000000..ef2dd8b --- /dev/null +++ b/src/views/qms/inspectionRequest/index.vue @@ -0,0 +1,530 @@ + + + diff --git a/src/views/qms/inspectionRequest/inspectionRequestMain.data.ts b/src/views/qms/inspectionRequest/inspectionRequestMain.data.ts new file mode 100644 index 0000000..167cc34 --- /dev/null +++ b/src/views/qms/inspectionRequest/inspectionRequestMain.data.ts @@ -0,0 +1,658 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' +import * as ItemApi from '@/api/wms/itembasic' +import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' +import * as SupplierApi from '@/api/wms/supplier' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import { validateInteger, validateTwoNum } from '@/utils/validator' + +// 表单校验 +export const InspectionMainRules = reactive({ + requestStartTime: [required], + itemCode: [required], + requestEndTime: [required], + batch: [required, { validator: validateInteger, message: '请输入正确的整数', trigger: 'blur' }], + requestInspectionNum: [ + required, + { validator: validateTwoNum, message: '小数点后最多2位', trigger: 'blur' } + ], + referenceCertificateRow: [ + { validator: validateInteger, message: '请输入正确的整数', trigger: 'blur' } + ], + inspectionType: [required], + minPackageQty: [required] +}) + +export const InspectionMain = useCrudSchemas( + reactive([ + { + label: '申请编码', + field: 'number', + sort: 'custom', + isSearch: true, + table: { + width: 200, + fixed: 'left' + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + isSearch: true, + isForm: false, + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 180 + } + }, + { + label: '申请日期', + field: 'applicationDate', + sort: 'custom', + formatter: dateFormatter2, + 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, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + table: { + width: 120 + }, + detail: { + dateFormat: 'YYYY-MM-DD' + } + }, + { + label: '申请时间', + field: 'applicationTime', + 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, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + { + label: '要求开始时间', + field: 'requestStartTime', + 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' + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + { + label: '要求结束时间', + field: 'requestEndTime', + 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' + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + { + label: '收货时间', + field: 'deliveryTime', + 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' + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + { + label: '完成时间', + field: 'finishTime', + 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' + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 175 + } + }, + { + label: '供应商编码', + field: 'supplierCode', + sort: 'custom', + isSearch: false, + table: { + width: 175 + }, + form: { + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchTitle: '供应商信息', // 查询弹窗标题 + searchListPlaceholder: '请选择供应商', // 输入框占位文本 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchField: 'code', // 查询弹窗赋值字段 + searchPage: SupplierApi.getSupplierPage, // 查询弹窗所需分页方法 + multiple: false, + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + isSearch: false, + table: { + width: 175 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料编码', + field: 'itemCode', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchTitle: '物料信息', // 查询弹窗标题 + searchListPlaceholder: '请选择物料', // 输入框占位文本 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchField: 'code', // 查询弹窗赋值字段 + searchPage: ItemApi.getItembasicPage, // 查询弹窗所需分页方法 + multiple: false, + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '检验批次', + field: 'batch', + sort: 'custom', + isSearch: false, + table: { + width: 150 + } + }, + { + label: '供应商批次', + field: 'supplierBatch', + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 150 + } + }, + { + label: '待检数量', + field: 'requestInspectionNum', + sort: 'custom', + isSearch: false, + table: { + width: 150 + } + }, + { + label: '参考订单号', + field: 'referenceOrderCode', + sort: 'custom', + isSearch: false, + table: { + width: 150 + } + }, + { + label: '参考订单行', + field: 'referenceOrderRow', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0 + }, + table: { + width: 150 + } + }, + { + label: '参考凭证号', + field: 'referenceCertificateCode', + sort: 'custom', + isSearch: false, + table: { + width: 150 + } + }, + { + label: '参考凭证行', + field: 'referenceCertificateRow', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0 + }, + table: { + width: 150 + } + }, + { + label: '检验类型', + field: 'inspectionType', + sort: 'custom', + isSearch: false, + dictType: DICT_TYPE.INSPECTION_TYPE, + dictClass: 'string', + form: { + componentProps: {} + }, + table: { + width: 175 + } + }, + { + label: '小包装数', + field: 'minPackageQty', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0 + }, + table: { + width: 150 + } + }, + { + label: '检验水平', + field: 'inspectionLevel', + sort: 'custom', + dictType: DICT_TYPE.INSPECTION_LEVEL, + dictClass: 'string', + table: { + width: 150 + }, + isSearch: true + }, + { + label: 'AQL值', + field: 'aqlValue', + sort: 'custom', + dictType: DICT_TYPE.BASIC_AQL, + dictClass: 'string', + table: { + width: 150 + } + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isForm: false, + isTable: true, + isSearch: true, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + search: { + value: 'TRUE' + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + table: { + width: 110 + } + }, + + { + label: '包装号', + field: 'packageCode', + sort: 'custom', + isSearch: true, + isTable: false, + isForm: false, + tableForm: { + disabled: false + } + }, + + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 390, + fixed: 'right' + } + } + ]) +) + +// 表单校验 +export const InspectionRequestPackageRules = reactive({ + // packageCode: [required], + // packageSpecificationCode: [required], + amount: [required, { validator: validateTwoNum, message: '小数点后最多2位', trigger: 'blur' }], + measuringUnit: [required] +}) + +/** + * @returns {Array} 检验申请包装 + */ +export const InspectionRequestPackage = useCrudSchemas( + reactive([ + { + label: '编码', + field: 'number', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: true + }, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '包装号', + field: 'packageCode', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: false + } + }, + { + label: '包装规格', + field: 'packageSpecificationCode', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: false + } + }, + { + label: '数量', + field: 'amount', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0 + }, + tableForm: { + disabled: false + } + }, + { + label: '计量单位', + field: 'measuringUnit', + sort: 'custom', + isSearch: true, + tableForm: { + disabled: false + }, + table: { + width: 150 + } + } + ]) +) diff --git a/src/views/qms/inspectionScheme/addForm.vue b/src/views/qms/inspectionScheme/addForm.vue new file mode 100644 index 0000000..0586ae2 --- /dev/null +++ b/src/views/qms/inspectionScheme/addForm.vue @@ -0,0 +1,1631 @@ + + + + + diff --git a/src/views/qms/inspectionScheme/detail.vue b/src/views/qms/inspectionScheme/detail.vue new file mode 100644 index 0000000..15a7af3 --- /dev/null +++ b/src/views/qms/inspectionScheme/detail.vue @@ -0,0 +1,432 @@ + + + + diff --git a/src/views/qms/inspectionScheme/index.vue b/src/views/qms/inspectionScheme/index.vue new file mode 100644 index 0000000..723f776 --- /dev/null +++ b/src/views/qms/inspectionScheme/index.vue @@ -0,0 +1,337 @@ + + + diff --git a/src/views/qms/inspectionScheme/inspectionScheme.data.ts b/src/views/qms/inspectionScheme/inspectionScheme.data.ts new file mode 100644 index 0000000..9d8f3e6 --- /dev/null +++ b/src/views/qms/inspectionScheme/inspectionScheme.data.ts @@ -0,0 +1,269 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 + +export const InspectionTemplateRules = reactive({ + description: [{ required: true, message: '请填写描述', trigger: 'blur' }], + version: [{ required: true, message: '请填写版本', trigger: 'blur' }], + inspectionCode: [{ required: true, message: '请选择检验方案模板编码', trigger: 'blur' }], + sequenceCode: [{ required: true, message: '请填写顺序号', trigger: 'blur' }], + inspectionCharCode: [{ required: true, message: '请选择检验特性编码', trigger: 'blur' }], + describe: [{ required: true, message: '请填写描述', trigger: 'blur' }], + inspectionMethodCode: [{ required: true, message: '请选择检验方法编码', trigger: 'blur' }], + dynamicUpdateCode: [{ required: true, message: '请选择采样过程编码', trigger: 'blur' }], + inspectionMethod: [{ required: true, message: '请选择动态修改规则编码', trigger: 'blur' }], + isCanUpdate: [{ required: true, message: '请选择是否允许修改特征值', trigger: 'blur' }], + isDestructionInspection: [{ required: true, message: '请选择是否破坏性检验', trigger: 'blur' }], + resultEntryMethod: [{ required: true, message: '请选择结果录入方式', trigger: 'blur' }], + featureType: [{ required: true, message: '请选择特征类型', trigger: 'blur' }], + quantifyIsCapping: [{ required: true, message: '请选择是否设定上限', trigger: 'blur' }], + quantifyIsLowlimit: [{ required: true, message: '请选择是否设定下限', trigger: 'blur' }], + quantifyTarget: [{ required: true, message: '请输入目标值', trigger: 'blur' }], + quantifyCapping: [{ required: true, message: '请输入上限值', trigger: 'blur' }], + quantifyLowlimit: [{ required: true, message: '请输入下限值', trigger: 'blur' }], + quantifyquantifyUomLowlimit: [{ required: true, message: '请选择计量单位', trigger: 'blur' }], + quantifyDecimal: [{ required: true, message: '请输入小数位', trigger: 'blur' }], + quantifyQuantifyCode: [{ required: true, message: '请输入选择集编码', trigger: 'blur' }] +}) +export const InspectionSchemeMain = useCrudSchemas( + reactive([ + { + label: '编码', + field: 'code', + sort: 'custom', + table: { + width: 220, + fixed: 'left' + }, + isSearch: true, + form: { + componentProps: { + disabled: true, + placeholder: '系统自动获取' + } + } + }, + { + label: '物料编码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 200 + }, + isSearch: true + }, + + { + label: '方案描述', + field: 'description', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '版本', + field: 'version', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '检验类型', + field: 'inspectionType', + dictType: DICT_TYPE.INSPECTION_TYPE, + dictClass: 'string', + sort: 'custom', + isSearch: true, + table: { + width: 175 + } + }, + { + label: '检验模板编码', + field: 'programmeTemplateCode', + sort: 'custom', + table: { + width: 175 + } + }, + + { + label: '动态修改规则', + field: 'dynamicUpdateCode', + sort: 'custom', + table: { + width: 175 + } + }, + { + label: '每份样品量', + field: 'samplePieceSize', + sort: 'custom', + table: { + width: 140 + } + }, + + { + label: '生效时间', + field: 'effectiveDate', + sort: 'custom', + formatter: dateFormatter, + isForm: false, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + table: { + width: 175 + } + }, + { + label: '失效时间', + field: 'expirationDate', + sort: 'custom', + formatter: dateFormatter, + isForm: false, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + table: { + width: 175 + } + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + search: { + value: 'TRUE' + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + table: { + width: 110 + } + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: true, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 180, + fixed: 'right' + } + } + ]) +) diff --git a/src/views/qms/inspectionStage/index.vue b/src/views/qms/inspectionStage/index.vue new file mode 100644 index 0000000..d5aa0b0 --- /dev/null +++ b/src/views/qms/inspectionStage/index.vue @@ -0,0 +1,267 @@ + + + diff --git a/src/views/qms/inspectionStage/inspectionStage.data.ts b/src/views/qms/inspectionStage/inspectionStage.data.ts new file mode 100644 index 0000000..1fbab38 --- /dev/null +++ b/src/views/qms/inspectionStage/inspectionStage.data.ts @@ -0,0 +1,159 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +const trueFalse = [{ + label: '是', + value: true +}, { + label: '否', + value: false +}] + +// 表单校验 +export const InspectionStageRules = reactive({ + description: [ + required, + { max: 1024, message: '不得超过1024个字符', trigger: 'blur' }, + ], + okTimes: [required], + okTimeStage: [required], + noOkTimes: [required], + noOkTimeStage: [required], + isStartStage: [required], + skipInspection: [required], + inspectionStringency: [required], +}) + +export const InspectionStage = useCrudSchemas(reactive([ + + { + label: '描述', + field: 'description', + sort: 'custom', + isSearch: true + }, + { + label: '阶段', + field: 'stage', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + tableForm: { + type: 'InputNumber', + } + }, + { + label: 'OK次数', + field: 'okTimes', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + tableForm: { + type: 'InputNumber', + } + }, + { + label: 'OK次数后的阶段', + field: 'okTimeStage', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + tableForm: { + type: 'InputNumber', + } + }, + { + label: 'NOK次数', + field: 'noOkTimes', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + tableForm: { + type: 'InputNumber', + } + }, + { + label: 'NOK次数后的阶段', + field: 'noOkTimeStage', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + tableForm: { + type: 'InputNumber', + } + }, + { + label: '是否是起始阶段', + field: 'isStartStage', + sort: 'custom', + isSearch: true, + formatter: (_: Recordable, __: TableColumn, cellValue: boolean) => { + return trueFalse.find((account) => account.value == cellValue)?.label + }, + form: { + component: 'Switch', + value:true + }, + tableForm: { + type: 'Switch', + default: true + }, + }, + { + label: '是否略过检验', + field: 'skipInspection', + sort: 'custom', + isSearch: true, + formatter: (_: Recordable, __: TableColumn, cellValue: boolean) => { + return trueFalse.find((account) => account.value == cellValue)?.label + }, + form: { + component: 'Switch', + value:true + }, + tableForm: { + type: 'Switch', + default: true + } + }, + { + label: '检验严格性', + field: 'inspectionStringency', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.INSPECTION_SEVERITY, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + form: { + component: 'Select' + }, + tableForm: { + type: 'Select' + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 300, + fixed: 'right' + }, + isTableForm: false, + } +])) + diff --git a/src/views/qms/inspectionTemplate/addForm.vue b/src/views/qms/inspectionTemplate/addForm.vue new file mode 100644 index 0000000..9c8d1a8 --- /dev/null +++ b/src/views/qms/inspectionTemplate/addForm.vue @@ -0,0 +1,1300 @@ + + + + + diff --git a/src/views/qms/inspectionTemplate/detail.vue b/src/views/qms/inspectionTemplate/detail.vue new file mode 100644 index 0000000..509c20c --- /dev/null +++ b/src/views/qms/inspectionTemplate/detail.vue @@ -0,0 +1,423 @@ + + + + diff --git a/src/views/qms/inspectionTemplate/index.vue b/src/views/qms/inspectionTemplate/index.vue new file mode 100644 index 0000000..1ba2289 --- /dev/null +++ b/src/views/qms/inspectionTemplate/index.vue @@ -0,0 +1,307 @@ + + + diff --git a/src/views/qms/inspectionTemplate/inspectionTemplate.data.ts b/src/views/qms/inspectionTemplate/inspectionTemplate.data.ts new file mode 100644 index 0000000..6bc8f4d --- /dev/null +++ b/src/views/qms/inspectionTemplate/inspectionTemplate.data.ts @@ -0,0 +1,351 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 + +export const InspectionTemplateRules = reactive({ + description: [{ required: true, message: '请填写描述', trigger: 'blur' }], + version: [{ required: true, message: '请填写版本', trigger: 'blur' }], + inspectionCode: [{ required: true, message: '请选择检验方案模板编码', trigger: 'blur' }], + sequenceCode: [{ required: true, message: '请填写顺序号', trigger: 'blur' }], + inspectionCharCode: [{ required: true, message: '请选择检验特性编码', trigger: 'blur' }], + describe: [{ required: true, message: '请填写描述', trigger: 'blur' }], + inspectionMethodCode: [{ required: true, message: '请选择检验方法编码', trigger: 'blur' }], + dynamicUpdateCode: [{ required: true, message: '请选择采样过程编码', trigger: 'blur' }], + inspectionMethod: [{ required: true, message: '请选择动态修改规则编码', trigger: 'blur' }], + isCanUpdate: [{ required: true, message: '请选择是否允许修改特征值', trigger: 'blur' }], + isDestructionInspection: [{ required: true, message: '请选择是否破坏性检验', trigger: 'blur' }], + resultEntryMethod: [{ required: true, message: '请选择结果录入方式', trigger: 'blur' }], + featureType: [{ required: true, message: '请选择特征类型', trigger: 'blur' }], + quantifyIsCapping: [{ required: true, message: '请选择是否设定上限', trigger: 'blur' }], + quantifyIsLowlimit: [{ required: true, message: '请选择是否设定下限', trigger: 'blur' }], + quantifyTarget: [{ required: true, message: '请输入目标值', trigger: 'blur' }], + quantifyCapping: [{ required: true, message: '请输入上限值', trigger: 'blur' }], + quantifyLowlimit: [{ required: true, message: '请输入下限值', trigger: 'blur' }], + quantifyquantifyUomLowlimit: [{ required: true, message: '请选择计量单位', trigger: 'blur' }], + quantifyDecimal: [{ required: true, message: '请输入小数位', trigger: 'blur' }], + quantifyQuantifyCode: [{ required: true, message: '请输入选择集编码', trigger: 'blur' }] +}) +export const InspectionTemplateMain = useCrudSchemas( + reactive([ + { + label: '编码', + field: 'code', + sort: 'custom', + isSearch: true, + form: { + componentProps: { + disabled: true, + placeholder: '系统自动获取' + } + } + }, + { + label: '描述', + field: 'description', + sort: 'custom' + }, + { + label: '动态修改规则', + field: 'dynamicUpdateName', + sort: 'custom' + }, + { + label: '版本', + field: 'version', + sort: 'custom' + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + search: { + value: 'TRUE' + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + table: { + width: 110 + } + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: true, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 180, + fixed: 'right' + } + } + ]) +) +export const InspectionTemplateProcess = useCrudSchemas(reactive([ + { + label: '编码', + field: 'code', + sort: 'custom', + form:{ + componentProps:{ + disabled:true, + placeholder:'系统自动获取' + } + } + }, + { + label: '描述', + field: 'description', + sort: 'custom', + isForm:false + },{ + label: '检验方案模板编码', + field: 'inspectionCode', + sort: 'custom', + },{ + label: '顺序号', + field: 'sequenceCode', + },{ + label: '检验特性编码', + field: 'inspectionCharCode', + sort: 'custom', + }, + { + label: '动态修改规则编码', + field: 'dynamicUpdateCode', + sort: 'custom', + }, +])) +export const InspectionTemplateFeatures= useCrudSchemas(reactive([ + { + label: '编码', + field: 'code', + sort: 'custom', + form:{ + componentProps:{ + disabled:true, + placeholder:'系统自动获取' + } + } + }, + { + label: '描述', + field: 'describe', + sort: 'custom', + },{ + label: '检验方法编码', + field: 'inspectionMethodCode', + sort: 'custom', + },{ + label: '采样过程编码', + field: 'inspectionMethod', + sort: 'custom', + },{ + label: '是否允许修改特征值', + field: 'isCanUpdate', + sort: 'custom', + + form:{ + component:'Select', + api: () => [{ + value:0, + label:'是' + },{ + value:1, + label:'否' + }], + componentProps:{ + optionsAlias: { + labelField: 'label', + valueField: 'value' + } + } + } + },{ + label: '是否破坏性检验', + field: 'isDestructionInspection', + sort: 'custom', + form:{ + component:'Select', + api: () => [{ + value:0, + label:'是' + },{ + value:1, + label:'否' + }], + componentProps:{ + optionsAlias: { + labelField: 'label', + valueField: 'value' + } + } + } + },{ + label: '结果录入方式', + field: 'resultEntryMethod', + sort: 'custom', + dictType: DICT_TYPE.INSPECTION_CHARACTERISTICS_RESULT_ENTRY, + dictClass: 'string', + table: { + width: 150 + }, + },{ + label: '特征类型', + field: 'featureType', + sort: 'custom', + dictType: DICT_TYPE.INSPECTION_CHARACTERISTICS_FEATURE_TYPE, + dictClass: 'string', + table: { + width: 150 + }, + },{ + label: '是否设定上限', + field: 'quantifyIsCapping', + sort: 'custom', + form:{ + component:'Select', + api: () => [{ + value:0, + label:'是' + },{ + value:1, + label:'否' + }], + componentProps:{ + optionsAlias: { + labelField: 'label', + valueField: 'value' + } + } + } + },{ + label: '是否设定下限', + field: 'quantifyIsLowlimit', + sort: 'custom', + form:{ + component:'Select', + api: () => [{ + value:0, + label:'是' + },{ + value:1, + label:'否' + }], + componentProps:{ + optionsAlias: { + labelField: 'label', + valueField: 'value' + } + } + } + },{ + label: '目标值', + field: 'quantifyTarget', + sort: 'custom', + },{ + label: '上限值', + field: 'quantifyCapping', + sort: 'custom', + },{ + label: '下限值', + field: 'quantifyLowlimit', + sort: 'custom', + },{ + label: '计量单位', + field: 'quantifyUom', + sort: 'custom', + },{ + label: '小数位', + field: 'quantifyDecimal', + sort: 'custom', + },{ + label: '选择集编码', + field: 'quantifyQuantifyCode', + sort: 'custom', + form:{ + component:'Select' + } + } +])) diff --git a/src/views/qms/qualityNotice/addForm.vue b/src/views/qms/qualityNotice/addForm.vue new file mode 100644 index 0000000..d72630f --- /dev/null +++ b/src/views/qms/qualityNotice/addForm.vue @@ -0,0 +1,438 @@ + + + + diff --git a/src/views/qms/qualityNotice/components/notaicType.vue b/src/views/qms/qualityNotice/components/notaicType.vue new file mode 100644 index 0000000..463f788 --- /dev/null +++ b/src/views/qms/qualityNotice/components/notaicType.vue @@ -0,0 +1,214 @@ + + + diff --git a/src/views/qms/qualityNotice/components/qualityBatch.vue b/src/views/qms/qualityNotice/components/qualityBatch.vue new file mode 100644 index 0000000..ce7799e --- /dev/null +++ b/src/views/qms/qualityNotice/components/qualityBatch.vue @@ -0,0 +1,673 @@ + + + diff --git a/src/views/qms/qualityNotice/components/qualityNotice.vue b/src/views/qms/qualityNotice/components/qualityNotice.vue new file mode 100644 index 0000000..3d23da8 --- /dev/null +++ b/src/views/qms/qualityNotice/components/qualityNotice.vue @@ -0,0 +1,196 @@ + + + diff --git a/src/views/qms/qualityNotice/index.vue b/src/views/qms/qualityNotice/index.vue new file mode 100644 index 0000000..56a0ff6 --- /dev/null +++ b/src/views/qms/qualityNotice/index.vue @@ -0,0 +1,239 @@ + + + diff --git a/src/views/qms/qualityNotice/qualityNoticeMain.data.ts b/src/views/qms/qualityNotice/qualityNoticeMain.data.ts new file mode 100644 index 0000000..c5e1104 --- /dev/null +++ b/src/views/qms/qualityNotice/qualityNoticeMain.data.ts @@ -0,0 +1,422 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter2 } from '@/utils/formatTime' +import { validateHanset, validateEmail } from '@/utils/validator' +import { dateFormatter } from '@/utils/formatTime' +import { validateTwoNum } from '@/utils/validator' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array}质量通知主表 + */ +export const QualityNoticeMain = useCrudSchemas( + reactive([ + { + label: '编码', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 200, + fixed: 'left' + } + }, + { + label: '类型', + field: 'type', + dictType: DICT_TYPE.QUALITY_NOTIFICATION_TYPE, + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 150 + } + }, + { + label: '描述', + field: 'description', + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 200 + } + }, + { + label: '详情', + field: 'detail', + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 200 + } + }, + { + label: '优先级', + field: 'priority', + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '状态', + field: 'status', + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '报告人', + field: 'reporter', + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '报告时间', + field: 'reportTime', + 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' + }, + table: { + width: 175 + } + }, + { + label: '要求开始时间', + field: 'requestStartTime', + 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' + }, + table: { + width: 175 + } + }, + { + label: '要求结束时间', + field: 'requestEndTime', + 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' + }, + table: { + width: 175 + } + }, + { + label: '是否造成停机', + field: 'whetherCausesMachineHalt', + dictType: DICT_TYPE.FALSE_OR_TRUE, + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 150 + } + }, + { + label: '停机开始时间', + field: 'machineHaltStartTime', + 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' + }, + table: { + width: 175 + } + }, + { + label: '停机结束时间', + field: 'machineHaltEndTime', + 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' + }, + table: { + width: 175 + } + }, + { + label: '协调人', + field: 'coordinator', + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 150 + } + }, + { + label: '任务模板编号', + field: 'taskTemplateCode', + sort: 'custom', + isSearch: false, + isForm: false, + table: { + width: 150 + } + }, + { + label: '完成时间', + field: 'finishTime', + 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' + }, + table: { + width: 175 + } + }, + { + // reference_certificate_row + label: '参考通知编号', + field: 'referenceNoticeCode', + sort: 'custom', + isSearch: false, + isForm: false, + form: { + component: 'InputNumber', + value: 0 + }, + table: { + width: 175 + } + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + search: { + value: 'TRUE' + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + table: { + width: 110 + } + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 150, + fixed: 'right' + } + } + ]) +) + +//表单校验 +export const QualityNoticeMainRules = reactive({ + useDecision: [required], +}) diff --git a/src/views/qms/sampleCode/index.vue b/src/views/qms/sampleCode/index.vue new file mode 100644 index 0000000..1820429 --- /dev/null +++ b/src/views/qms/sampleCode/index.vue @@ -0,0 +1,332 @@ + + + diff --git a/src/views/qms/sampleCode/sampleCode.data.ts b/src/views/qms/sampleCode/sampleCode.data.ts new file mode 100644 index 0000000..a8baaf5 --- /dev/null +++ b/src/views/qms/sampleCode/sampleCode.data.ts @@ -0,0 +1,207 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { getSamplingScheme } from '@/api/qms/sampleCode/index' +import { validateNum } from '@/utils/validator' + +// 表单校验 +export const SampleCodeRules = reactive({ + code: [required], + batchLowLimiting: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }], + batchUpperLimiting: [ + { required: true, message: '该项为必填', trigger: 'blur' }, + { validator: validateNum, message: '请输入整数', trigger: 'blur' } + ], + s1: [required], + s2: [required], + s3: [required], + s4: [required], + g1: [required], + g2: [required], + g3: [required] +}) +const samplingSchemeList = await getSamplingScheme() +export const SampleCode = useCrudSchemas( + reactive([ + { + label: '采样方案编码', + field: 'code', + sort: 'custom', + isSearch: true, + form: { + component: 'Select', + componentProps: { + options: samplingSchemeList, + optionsAlias: { + labelField: 'code', + valueField: 'code' + } + } + }, + table: { + width: 175, + fixed: 'left' + } + }, + { + label: '批量下限', + field: 'batchLowLimiting', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '批量上限', + field: 'batchUpperLimiting', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: 's1', + field: 's1', + sort: 'custom' + }, + { + label: 's2', + field: 's2', + sort: 'custom' + }, + { + label: 's3', + field: 's3', + sort: 'custom' + }, + { + label: 's4', + field: 's4', + sort: 'custom' + }, + { + label: 'g1', + field: 'g1', + sort: 'custom' + }, + { + label: 'g2', + field: 'g2', + sort: 'custom' + }, + { + label: 'g3', + field: 'g3', + sort: 'custom' + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + isSearch: true, + isForm: false, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + search: { + value: 'TRUE' + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + table: { + width: 110 + } + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + }, + }, + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: true, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 150, + fixed: 'right' + } + } + ]) +) diff --git a/src/views/qms/samplingProcess/index.vue b/src/views/qms/samplingProcess/index.vue new file mode 100644 index 0000000..9301068 --- /dev/null +++ b/src/views/qms/samplingProcess/index.vue @@ -0,0 +1,396 @@ + + + diff --git a/src/views/qms/samplingProcess/samplingProcess.data.ts b/src/views/qms/samplingProcess/samplingProcess.data.ts new file mode 100644 index 0000000..bec35a6 --- /dev/null +++ b/src/views/qms/samplingProcess/samplingProcess.data.ts @@ -0,0 +1,190 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { getSamplingScheme } from '@/api/qms/samplingProcess' +import { validateInteger, validateTwoNum } from '@/utils/validator' + +// 表单校验 +export const SamplingProcessRules = reactive({ + sampleType: [required], + evaluationMode: [required], + description: [required], + sampleQty: [ + { required: true, message: '该项为必填项', trigger: 'blur' }, + { validator: validateTwoNum, message: '小数点后最多2位', trigger: 'blur' } + ], + sampleProgCode: [{ required: true, message: '该项为必填项', trigger: 'blur' }], + inspectionQty: [ + required, + { validator: validateInteger, message: '请输入正确的整数', trigger: 'blur' } + ] +}) +const samplingSchemeList = await getSamplingScheme() +export const SamplingProcess = useCrudSchemas( + reactive([ + { + label: '编码', + field: 'code', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 175, + fixed: 'left' + } + }, + { + label: '描述', + field: 'description', + sort: 'custom', + isSearch: true + }, + { + label: '取样类型', + field: 'sampleType', + sort: 'custom', + dictType: DICT_TYPE.SAMPLING_TYPE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: true, + form: { + component: 'Select' + } + }, + { + label: '评估模式', + field: 'evaluationMode', + sort: 'custom', + dictType: DICT_TYPE.EVALUATION_MODE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + form: { + component: 'Select' + } + }, + { + label: '样品份数', + field: 'sampleQty', + sort: 'custom' + }, + { + label: '采样方案编码', + field: 'sampleProgCode', + sort: 'custom', + form: { + component: 'Select', + componentProps: { + options: samplingSchemeList, + optionsAlias: { + labelField: 'description', + valueField: 'code' + } + } + } + }, + + { + label: '是否可用', + field: 'available', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + isSearch: true, + isForm: false, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + search: { + value: 'TRUE' + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + table: { + width: 110 + } + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: true, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 150, + fixed: 'right' + } + } + ]) +) diff --git a/src/views/qms/samplingScheme/index.vue b/src/views/qms/samplingScheme/index.vue new file mode 100644 index 0000000..41b0308 --- /dev/null +++ b/src/views/qms/samplingScheme/index.vue @@ -0,0 +1,313 @@ + + + diff --git a/src/views/qms/samplingScheme/samplingScheme.data.ts b/src/views/qms/samplingScheme/samplingScheme.data.ts new file mode 100644 index 0000000..af0d71b --- /dev/null +++ b/src/views/qms/samplingScheme/samplingScheme.data.ts @@ -0,0 +1,134 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const SamplingSchemeRules = reactive({ + description: [required] +}) + +export const SamplingScheme = useCrudSchemas( + reactive([ + { + label: '编码', + field: 'code', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + fixed: 'left' + } + }, + { + label: '描述', + field: 'description', + sort: 'custom', + isSearch: true + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch:true, + isForm: false, + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + search: { + value: 'TRUE', + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + table: { + width: 110 + } + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + }, + }, + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: true, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 150, + fixed: 'right' + } + } + ]) +) diff --git a/src/views/qms/selectedProject/index.vue b/src/views/qms/selectedProject/index.vue new file mode 100644 index 0000000..37d449f --- /dev/null +++ b/src/views/qms/selectedProject/index.vue @@ -0,0 +1,266 @@ + + + diff --git a/src/views/qms/selectedProject/selectedProject.data.ts b/src/views/qms/selectedProject/selectedProject.data.ts new file mode 100644 index 0000000..3127a57 --- /dev/null +++ b/src/views/qms/selectedProject/selectedProject.data.ts @@ -0,0 +1,81 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as DictTypeApi from '@/api/system/dict/dict.type' + + + +// 表单校验 +export const SelectedProjectRules = reactive({ + // code: [required], + // dictionaryTypeAndCode: [required], + estimateCode: [required], + defectLevel: [required], + dictionaryValue: [required] +}) + +export const SelectedProject = useCrudSchemas(reactive([ + + { + label: '编码', + field: 'code', + sort: 'custom', + isTableForm: false, + isSearch: true, + fixed: 'left', + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '项', + field: 'dictionaryValue', + sort: 'custom', + isSearch: true, + isTableForm: true, + isDetail: true, + isTable: true, + isForm: true, + }, + { + label: '评估代码', + field: 'estimateCode', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.EVALUATION_CODE, + dictClass: 'string', + tableForm: { + type: 'Select', + }, + form: { + component: 'Select', + } + }, + // { + // label: '缺陷级别', + // field: 'defectLevel', + // sort: 'custom', + // isSearch: true, + // dictType: DICT_TYPE.DEFECT_LEVEL, + // dictClass: 'string', + // tableForm: { + // type: 'Select', + // }, + // form: { + // component: 'Select', + // } + // }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + + diff --git a/src/views/qms/selectedSet/index.vue b/src/views/qms/selectedSet/index.vue new file mode 100644 index 0000000..08d1a9d --- /dev/null +++ b/src/views/qms/selectedSet/index.vue @@ -0,0 +1,489 @@ + + + diff --git a/src/views/qms/selectedSet/selectedSet.data.ts b/src/views/qms/selectedSet/selectedSet.data.ts new file mode 100644 index 0000000..9043d23 --- /dev/null +++ b/src/views/qms/selectedSet/selectedSet.data.ts @@ -0,0 +1,136 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import * as DictTypeApi from '@/api/system/dict/dict.type' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const SelectedSetRules = reactive({ + description: [required], + code: [required], + available: [required], + concurrencyStamp: [required] +}) + +export const SelectedSet = useCrudSchemas( + reactive([ + { + label: '编码', + field: 'code', + sort: 'custom', + isForm: false, + isSearch: true, + fixed: 'left' + }, + { + label: '描述', + field: 'description', + sort: 'custom', + isSearch: true + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true, + isForm: false, + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + search: { + value: 'TRUE' + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + table: { + width: 110 + } + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: true, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + isDetail: false, + table: { + width: 150, + fixed: 'right' + } + } + ]) +) diff --git a/src/views/redirect/redirect.vue b/src/views/redirect/redirect.vue new file mode 100644 index 0000000..f7717ce --- /dev/null +++ b/src/views/redirect/redirect.vue @@ -0,0 +1,28 @@ + + diff --git a/src/views/report/goview/index.vue b/src/views/report/goview/index.vue new file mode 100644 index 0000000..1bac286 --- /dev/null +++ b/src/views/report/goview/index.vue @@ -0,0 +1,10 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/purchasereceiptJobMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/purchasereceiptJobMain.data.ts new file mode 100644 index 0000000..940d6f7 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptJobMain/purchasereceiptJobMain.data.ts @@ -0,0 +1,1590 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' +import { fa } from 'element-plus/es/locale' +import { DICT_TYPE } from '@/utils/dict' + +/** + * @returns {Array} 采购收货任务主表 + */ +export const PurchasereceiptJobMain = useCrudSchemas( + reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: true, + sortSearchDefault: 1 + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch: false, + sortTableDefault: 2 + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 3, + isSearch: true + }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + isTable: false, + table: { + width: 180 + } + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault: 2 + }, + { + label: '到月台代码', + field: 'toDockCode', + sort: 'custom', + isTable: false, + table: { + width: 150 + } + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010 + }, + { + label: '数据来源', + field: 'sourceType', + dictType: DICT_TYPE.PURCHASERECEIPT_SOURCE_TYPE, + sort: 'custom', + table: { + width: 150 + }, + form: { + value: 'ASN_ExternalReceipt', + componentProps: { + disabled: true + } + }, + isSearch: true, + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1011 + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1012 + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + isTable: false, + table: { + width: 150 + } + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '申请时间', + field: 'requestTime', + sort: 'custom', + isTable: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '要求截止时间', + field: 'requestDueTime', + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.PURCHASE_JOB_STATUS, + dictClass: 'string', + isSearch: false, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 6 + }, + { + label: '过期时间', + field: 'expiredTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + // { + // label: '状态', + // field: 'jobStageStatus', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '优先级', + field: 'priority', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber' + } + }, + { + label: '优先级增量', + field: 'priorityIncrement', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber' + } + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '岗位', + field: 'userPositionCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '承接人', + field: 'acceptUserName', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '承接时间', + field: 'acceptTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '完成人', + field: 'completeUserName', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '完成时间', + field: 'completeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + } + }, + }, + { + label: '自动完成', + field: 'autoComplete', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '允许修改库位', + field: 'allowModifyLocation', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '允许修改数量', + field: 'allowModifyQty', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '允许大于推荐数量', + field: 'allowBiggerQty', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '允许小于推荐数量', + field: 'allowSmallerQty', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '允许修改库存状态', + field: 'allowModifyInventoryStatus', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '允许连续扫描', + field: 'allowContinuousScanning', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '允许部分完成', + field: 'allowPartialComplete', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '允许修改批次', + field: 'allowModifyBatch', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '允许修改箱码', + field: 'allowModifyPackingNumber', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 250, + fixed: 'right' + } + }, + { + label: '批次', // 实际是子表的到批次,为了不影响页面,单独放上面 + field: 'batch', + sort: 'custom', + isForm: false, + isTableForm: false, + table: { + width: 150 + }, + sortTableDefault: 1001 + }, + { + label: '包装号', // 实际是子表的到包装号,为了不影响页面,单独放上面 + field: 'packingNumber', + sort: 'custom', + isForm: false, + isTableForm: false, + table: { + width: 150 + }, + sortTableDefault: 1001 + }, + + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + isTable:false, + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + } + ]) +) + +//表单校验 +export const PurchasereceiptJobMainRules = reactive({ + requestNumber: [{ required: true, message: '请选择申请单号', trigger: 'change' }], + supplierCode: [{ required: true, message: '请选择供应商代码', trigger: 'change' }], + toWarehouseCode: [{ required: true, message: '请选择到仓库代码', trigger: 'change' }], + toAreaTypes: [{ required: true, message: '请选择到库区类型范围', trigger: 'change' }], + requestTime: [{ required: true, message: '请输入申请时间', trigger: 'change' }], + requestDueTime: [{ required: true, message: '请输入要求截止时间', trigger: 'change' }], + status: [{ required: true, message: '请选择状态', trigger: 'change' }], + // jobStageStatus: [ + // { required: true, message: '请选择阶段状态', trigger: 'change' } + // ], + priority: [{ required: true, message: '请输入优先级', trigger: 'blur' }], + priorityIncrement: [{ required: true, message: '请输入优先级增量', trigger: 'blur' }], + departmentCode: [{ required: true, message: '请输入部门', trigger: 'blur' }], + userPositionCode: [{ required: true, message: '请输入岗位', trigger: 'blur' }], + number: [{ required: true, message: '请输入单据号', trigger: 'blur' }], + businessType: [{ required: true, message: '请输入业务类型', trigger: 'blur' }], + createTime: [{ required: true, message: '请输入创建时间', trigger: 'blur' }], + creator: [{ required: true, message: '请输入创建者', trigger: 'blur' }] +}) + +/** + * @returns {Array} 采购收货任务子表 + */ +export const PurchasereceiptJobDetail = useCrudSchemas( + reactive([ + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + hiddenInMain: true, + sortTableDefault: 1002, + sortSearchDefault: 1002 + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1002 + }, + { + label: '包装数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber' + }, + sortTableDefault: 1002 + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // hiddenInMain: true, + // table: { + // width: 150 + // }, + // isTable: false + // }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault: 1000, + isSearch: true, + hiddenInMain: true, + sortTableDefault: 8 + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // hiddenInMain: true + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 1005, + hiddenInMain: true, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x' + } + } + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 1005, + hiddenInMain: true, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x' + } + } + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 1005, + hiddenInMain: true, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x' + } + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + sortTableDefault: 1006 + }, + // { + // label: '来源库位', + // field: 'fromLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1007 + // }, + { + label: '目标库位', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1007 + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault: 6 + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 6 + }, + { + label: '行类型', + field: 'poLineType', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 6, + hiddenInMain: true, + isForm: false, + tableForm: { + disabled: true + } + }, + + { + label: '供应商计量数量', + field: 'supplierQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1009, + hiddenInMain: true, + form: { + component: 'InputNumber' + } + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1009, + hiddenInMain: true + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber' + }, + sortTableDefault: 1009, + hiddenInMain: true + }, + { + label: '从货主', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + sortTableDefault: 1008 + }, + { + label: '到货主', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + sortTableDefault: 1008 + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 7, + isSearch: true + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 7 + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + sortTableDefault: 7 + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + sortTableDefault: 7 + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + sortTableDefault: 1010 + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1004 + }, + { + label: '订单数量', + field: 'orderQty', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + sortTableDefault: 1004 + }, + { + label: '收货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + sortTableDefault: 1004 + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber' + }, + sortTableDefault: 1004 + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: true, + sortTableDefault: 1011 + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1012, + hiddenInMain: true + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + hiddenInMain: false, + sortTableDefault: 1012 + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: false, + sortTableDefault: 1012 + }, + { + label: '操作', + hiddenInMain: true, + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 180, + fixed: 'right' + }, + isTableForm: true + } + ]) +) + +//表单校验 +export const PurchasereceiptJobDetailRules = reactive({ + packingNumber: [{ required: true, message: '请选择包装号', trigger: 'change' }], + batch: [{ required: true, message: '请输入批次', trigger: 'blur' }], + arriveDate: [{ required: true, message: '请输入到货日期', trigger: 'change' }], + produceDate: [{ required: true, message: '请输入生产日期', trigger: 'change' }], + expireDate: [{ required: true, message: '请输入过期日期', trigger: 'change' }], + inventoryStatus: [{ required: true, message: '请选择库存状态', trigger: 'change' }], + poNumber: [{ required: true, message: '请选择订单号', trigger: 'change' }], + poLine: [{ required: true, message: '请输入订单行', trigger: 'blur' }], + packQty: [{ required: true, message: '请输入包装数量', trigger: 'blur' }], + packUnit: [{ required: true, message: '请选择包装规格', trigger: 'change' }], + convertRate: [{ required: true, message: '请输入转换率', trigger: 'blur' }], + toLocationCode: [{ required: true, message: '请选择到库位代码', trigger: 'change' }], + number: [{ required: true, message: '请输入单据号', trigger: 'blur' }], + itemCode: [{ required: true, message: '请选择物料代码', trigger: 'change' }], + createTime: [{ required: true, message: '请输入创建时间', trigger: 'blur' }], + creator: [{ required: true, message: '请输入创建者', trigger: 'blur' }] +}) + +/** + * @returns {Array} 采购收货任务子表 + */ +export const PurchasereceiptJobDetailPackingNumber = useCrudSchemas( + reactive([ + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm: { + disabled: true + } + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled: true + // } + // }, + // tableForm: { + // disabled: true + // } + // }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm: { + disabled: true + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled: true + // } + // }, + // tableForm: { + // disabled: true + // } + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: { width: '100%' }, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x' + } + }, + tableForm: { + disabled: true + } + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x' + } + }, + tableForm: { + disabled: true, + type: 'FormDate', + valueFormat: 'x' + } + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x' + } + }, + tableForm: { + disabled: true, + type: 'FormDate', + valueFormat: 'x' + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber' + }, + tableForm: { + disabled: true + } + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '供应商计量数量', + field: 'supplierQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber' + }, + tableForm: { + disabled: true + } + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber' + }, + tableForm: { + disabled: true + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber' + }, + tableForm: { + disabled: true + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + tableForm: { + disabled: true + } + }, + { + label: '备注', + fiield: 'remark', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + tableForm: { + disabled: true, + type: 'FormDate', + valueFormat: 'x' + } + } + ]) +) diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMTypeMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMTypeMain/index.vue new file mode 100644 index 0000000..0f08e0c --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMTypeMain/index.vue @@ -0,0 +1,395 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMTypeMain/purchasereceiptRecordMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMTypeMain/purchasereceiptRecordMain.data.ts new file mode 100644 index 0000000..4ba2f83 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMTypeMain/purchasereceiptRecordMain.data.ts @@ -0,0 +1,2028 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' + + + +/** + * @returns {Array} 采购收货记录主表 + */ +export const PurchasereceiptRecordMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: true, + sortSearchDefault:1, + sortTableDefault:1 + + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:2 + }, + { + label: '任务单号', + field: 'jobNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:3 + }, + { + label: '备注', + field: 'mainRemark', + sort: 'custom', + table: { + width: 180 + }, + isSearch: false, + sortTableDefault:3 + }, + { + label: '明细备注', + field: 'remark', + sort: 'custom', + table: { + width: 180 + }, + isSearch: false, + sortTableDefault:3 + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:4, + isSearch: true + }, + { + label: 'ERP单据号(无用)', + field: 'erpNumber', + isTable:false, + isTableForm:false, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: 'ERP单据号', + field: 'qadNumber', + sort: 'custom', + table: { + width: 200 + }, + sortTableDefault:5, + }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + isTable:false + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault:2, + isTable:false + }, + { + label: '到月台代码', + field: 'toDockCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '数据来源', + field: 'sourceType', + dictType: DICT_TYPE.PURCHASERECEIPT_SOURCE_TYPE, + sort: 'custom', + table: { + width: 150 + }, + form: { + value: 'ASN_ExternalReceipt', + componentProps: { + disabled: true + } + }, + isSearch: false, + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '出库事务类型', + field: 'outTransaction', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '入库事务类型', + field: 'inTransaction', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '执行时间', + field: 'executeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '生效日期', + field: 'activeDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + // { + // label: '备注', + // field: 'mainRemark', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:true, + // }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + 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', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + // { + // label: '操作', + // field: 'action', + // isDetail: false, + // isForm: false, + // table: { + // width: 400, + // fixed: 'right' + // }, + // }, + { + label: '批次', // 实际是子表的从批次,为了不影响页面,单独放上面 + field: 'fromBatch', + sort: 'custom', + isForm:false, + isTableForm:false, + table: { + width: 150 + }, + sortTableDefault:12, + }, + { + label: '包装号', // 实际是子表的从包装号,为了不影响页面,单独放上面 + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:16, + }, + // { + // label: '检验申请单号', + // field: 'inspectNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:6, + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:12, + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat : 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, +])) + +// 表单校验 +export const PurchasereceiptRecordMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + toWarehouseCode: [ + { required: true, message: '请选择到仓库代码', trigger: 'change' } + ], + toAreaTypes: [ + { required: true, message: '请选择到库位类型服务', trigger: 'change' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'change' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'change' } + ], + available: [ + { required: true, message: '请输入是否可用', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请选择创建时间', trigger: 'change' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购收货记录子表 + */ +export const PurchasereceiptRecordDetail = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + }, + sortTableDefault:1998, + hiddenInMain:true + }, + { + label: '检验申请单号', + field: 'inspectNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + sortTableDefault:6, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault:5, + sortTableDefault:7, + isSearch: true + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault:5, + sortTableDefault:8, + }, + { + label: '行类型', + field: 'poLineType', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:9, + hiddenInMain:true, + isForm: false, + tableForm:{ + disabled: true + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + isSearch: true + }, + { + label: '是否已发送检验申请', + field: 'inspectRequestFlag', + dictType: DICT_TYPE.TRUE_FALSE, + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isTableForm:false, + isForm:false, + form: { + value: 'ALL', + componentProps: { + disabled: true + } + }, + isSearch: false, + }, + { + label: '是否已生成上架申请', + field: 'putawayRequestFlag', + dictType: DICT_TYPE.TRUE_FALSE, + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isTableForm:false, + isForm:false, + form: { + value: 'ALL', + componentProps: { + disabled: true + } + }, + isSearch: false, + }, + { + label: '物料类型', + field: 'itemType', + sort: 'custom', + dictType: DICT_TYPE.ITEM_TYPE, + dictClass: 'string', + isSearch: true, + isTable:false, + isDetail:false, + search:{ + componentProps:{ + multiple:true, + } + } + + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + hiddenInMain:true + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + hiddenInMain:true + }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:14, + hiddenInMain:true + }, + { + label: '到批次', + field: 'toBatch', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:14, + hiddenInMain:true + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true + // }, + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:15, + hiddenInMain:true + }, + { + label: '到包装号', + field: 'toPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:15, + hiddenInMain:true + }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true + // }, + { + label: '订单数量', + field: 'orderQty', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true, + sortTableDefault:1004 + }, + { + label: '收货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:12, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + form: { + component: 'InputNumber', + }, + sortTableDefault:12, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:16, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + tableForm: { + disabled: true, + }, + isForm:false, + sortTableDefault:16, + }, + { + label: '供应商计量数量', + field: 'supplierQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + sortTableDefault:24, + hiddenInMain:true + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:24, + hiddenInMain:true + }, + + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:18, + hiddenInMain:true + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:18, + + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:18, + }, + { + label: '从库位组', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:19, + hiddenInMain:true + }, + { + label: '到库位组', + field: 'toLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:19, + hiddenInMain:true + }, + { + label: '从库区', + field: 'fromAreaCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:22, + hiddenInMain:true, + }, + { + label: '到库区', + field: 'toAreaCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:22, + hiddenInMain:true + }, + { + label: '从货主', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:23, + hiddenInMain:true + }, + { + label: '到货主', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:23, + hiddenInMain:true + }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + sortTableDefault:17, + hiddenInMain:true + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + sortTableDefault:17, + hiddenInMain:true + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + sortTableDefault:17, + hiddenInMain:true + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + sortTableDefault:1997, + hiddenInMain:true + }, + { + label: '目检结果', + field: 'visualInspectResult', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true + }, + { + label: '目检照片', + field: 'visualInspectPhotos', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true + }, + { + label: '不合格原因', + field: 'failedReason', + dictType: DICT_TYPE.PURCHASE_RETURN_REASON, + dictClass: 'string', + isTable:false, + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + isTable:false, + hiddenInMain:true + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + isTable:false, + hiddenInMain:true + }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1998, + hiddenInMain:true + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true + }, + // { + // label: '备注', + // field: 'remark', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // sortTableDefault:2000, + // }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:2000, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + sortTableDefault:2000, + }, + // + // { + // label: '操作', + // hiddenInMain:true, + // field: 'action', + // isDetail: false, + // isForm: false , + // table: { + // width: 150, + // fixed: 'right' + // }, + // isTableForm:true, + // } +])) + +// 表单校验 +export const PurchasereceiptRecordDetailRules = reactive({ + fromPackingNumber: [ + { required: true, message: '请选择从包装号', trigger: 'change' } + ], + toPackingNumber: [ + { required: true, message: '请选择到包装号', trigger: 'change' } + ], + fromBatch: [ + { required: true, message: '请输入从批次', trigger: 'blur' } + ], + toBatch: [ + { required: true, message: '请输入到批次', trigger: 'blur' } + ], + arriveDate: [ + { required: true, message: '请选择到货日期', trigger: 'change' } + ], + produceDate: [ + { required: true, message: '请选择生产日期', trigger: 'change' } + ], + expireDate: [ + { required: true, message: '请选择过期日期', trigger: 'change' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + toLocationCode: [ + { required: true, message: '请选择到库位代码', trigger: 'change' } + ], + toLocationGroupCode: [ + { required: true, message: '请选择到库位组代码', trigger: 'change' } + ], + toAreaCodes: [ + { required: true, message: '请选择到库区代码', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请选择订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请选择订单行', trigger: 'change' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'blur' } + ], + packUnit: [ + { required: true, message: '请选择包装规格', trigger: 'change' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + visualInspectResult: [ + { required: true, message: '请选择目检结果', trigger: 'change' } + ], +}) + + +/** + * @returns {Array} 采购收货记录子表-子包装数据 + */ +export const PurchasereceiptRecordDetailPackingNumber = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + hiddenInMain:true, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到批次', + field: 'toBatch', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到包装号', + field: 'toPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + + }, + { + label: '供应商计量数量', + field: 'supplierQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从库位组代码', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + sortTableDefault:21, + tableForm: { + disabled: true, + } + }, + { + label: '到库位组代码', + field: 'toLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + sortTableDefault:21, + tableForm: { + disabled: true, + } + }, + { + label: '从库区代码', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到库区代码', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + disabled: true, + type:'FormDate', + valueFormat: 'x', + } + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + disabled: true, + type:'FormDate', + valueFormat: 'x', + } + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + disabled: true, + type:'FormDate', + valueFormat: 'x', + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '目检结果', + field: 'visualInspectResult', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '目检照片', + field: 'visualInspectPhotos', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '不合格原因', + field: 'failedReason', + dictType: DICT_TYPE.PURCHASE_RETURN_REASON, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + // { + // label: '备注', + // field: 'remark', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // } +])) diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue new file mode 100644 index 0000000..e5f926a --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/index.vue @@ -0,0 +1,410 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts new file mode 100644 index 0000000..6ff6650 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data.ts @@ -0,0 +1,2028 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' + + + +/** + * @returns {Array} 采购收货记录主表 + */ +export const PurchasereceiptRecordMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: true, + sortSearchDefault:1, + sortTableDefault:1 + + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:2 + }, + { + label: '任务单号', + field: 'jobNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:3 + }, + { + label: '备注', + field: 'mainRemark', + sort: 'custom', + table: { + width: 180 + }, + isSearch: false, + sortTableDefault:3 + }, + { + label: '明细备注', + field: 'remark', + sort: 'custom', + table: { + width: 180 + }, + isSearch: false, + sortTableDefault:3 + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:4, + isSearch: true + }, + { + label: 'ERP单据号(无用)', + field: 'erpNumber', + isTable:false, + isTableForm:false, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: 'ERP单据号', + field: 'qadNumber', + sort: 'custom', + table: { + width: 200 + }, + sortTableDefault:5, + }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + isTable:false + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault:2, + isTable:false + }, + { + label: '到月台代码', + field: 'toDockCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '数据来源', + field: 'sourceType', + dictType: DICT_TYPE.PURCHASERECEIPT_SOURCE_TYPE, + sort: 'custom', + table: { + width: 150 + }, + form: { + value: 'ASN_ExternalReceipt', + componentProps: { + disabled: true + } + }, + isSearch: false, + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '出库事务类型', + field: 'outTransaction', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '入库事务类型', + field: 'inTransaction', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '执行时间', + field: 'executeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '生效日期', + field: 'activeDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + // { + // label: '备注', + // field: 'mainRemark', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:true, + // }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + 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', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 400, + fixed: 'right' + }, + }, + { + label: '批次', // 实际是子表的从批次,为了不影响页面,单独放上面 + field: 'fromBatch', + sort: 'custom', + isForm:false, + isTableForm:false, + table: { + width: 150 + }, + sortTableDefault:12, + }, + { + label: '包装号', // 实际是子表的从包装号,为了不影响页面,单独放上面 + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:16, + }, + { + label: '检验申请单号', + field: 'inspectNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:6, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:12, + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat : 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, +])) + +// 表单校验 +export const PurchasereceiptRecordMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + toWarehouseCode: [ + { required: true, message: '请选择到仓库代码', trigger: 'change' } + ], + toAreaTypes: [ + { required: true, message: '请选择到库位类型服务', trigger: 'change' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'change' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'change' } + ], + available: [ + { required: true, message: '请输入是否可用', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请选择创建时间', trigger: 'change' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购收货记录子表 + */ +export const PurchasereceiptRecordDetail = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + }, + sortTableDefault:1998, + hiddenInMain:true + }, + { + label: '检验申请单号', + field: 'inspectNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + sortTableDefault:6, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault:5, + sortTableDefault:7, + isSearch: true + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault:5, + sortTableDefault:8, + }, + { + label: '行类型', + field: 'poLineType', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:9, + hiddenInMain:true, + isForm: false, + tableForm:{ + disabled: true + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + isSearch: true + }, + { + label: '是否已发送检验申请', + field: 'inspectRequestFlag', + dictType: DICT_TYPE.TRUE_FALSE, + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isTableForm:false, + isForm:false, + form: { + value: 'ALL', + componentProps: { + disabled: true + } + }, + isSearch: true, + }, + { + label: '是否已生成上架申请', + field: 'putawayRequestFlag', + dictType: DICT_TYPE.TRUE_FALSE, + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isTableForm:false, + isForm:false, + form: { + value: 'ALL', + componentProps: { + disabled: true + } + }, + isSearch: true, + }, + { + label: '物料类型', + field: 'itemType', + sort: 'custom', + dictType: DICT_TYPE.ITEM_TYPE, + dictClass: 'string', + isSearch: true, + isTable:false, + isDetail:false, + search:{ + componentProps:{ + multiple:true, + } + } + + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + hiddenInMain:true + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + hiddenInMain:true + }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:14, + hiddenInMain:true + }, + { + label: '到批次', + field: 'toBatch', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:14, + hiddenInMain:true + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true + // }, + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:15, + hiddenInMain:true + }, + { + label: '到包装号', + field: 'toPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:15, + hiddenInMain:true + }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true + // }, + { + label: '订单数量', + field: 'orderQty', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true, + sortTableDefault:1004 + }, + { + label: '收货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:12, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + form: { + component: 'InputNumber', + }, + sortTableDefault:12, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:16, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + tableForm: { + disabled: true, + }, + isForm:false, + sortTableDefault:16, + }, + { + label: '供应商计量数量', + field: 'supplierQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + sortTableDefault:24, + hiddenInMain:true + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:24, + hiddenInMain:true + }, + + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:18, + hiddenInMain:true + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:18, + + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:18, + }, + { + label: '从库位组', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:19, + hiddenInMain:true + }, + { + label: '到库位组', + field: 'toLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:19, + hiddenInMain:true + }, + { + label: '从库区', + field: 'fromAreaCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:22, + hiddenInMain:true, + }, + { + label: '到库区', + field: 'toAreaCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:22, + hiddenInMain:true + }, + { + label: '从货主', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:23, + hiddenInMain:true + }, + { + label: '到货主', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:23, + hiddenInMain:true + }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + sortTableDefault:17, + hiddenInMain:true + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + sortTableDefault:17, + hiddenInMain:true + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + sortTableDefault:17, + hiddenInMain:true + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + sortTableDefault:1997, + hiddenInMain:true + }, + { + label: '目检结果', + field: 'visualInspectResult', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true + }, + { + label: '目检照片', + field: 'visualInspectPhotos', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true + }, + { + label: '不合格原因', + field: 'failedReason', + dictType: DICT_TYPE.PURCHASE_RETURN_REASON, + dictClass: 'string', + isTable:false, + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + isTable:false, + hiddenInMain:true + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + isTable:false, + hiddenInMain:true + }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1998, + hiddenInMain:true + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true + }, + // { + // label: '备注', + // field: 'remark', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // sortTableDefault:2000, + // }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:2000, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + sortTableDefault:2000, + }, + + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:true, + } +])) + +// 表单校验 +export const PurchasereceiptRecordDetailRules = reactive({ + fromPackingNumber: [ + { required: true, message: '请选择从包装号', trigger: 'change' } + ], + toPackingNumber: [ + { required: true, message: '请选择到包装号', trigger: 'change' } + ], + fromBatch: [ + { required: true, message: '请输入从批次', trigger: 'blur' } + ], + toBatch: [ + { required: true, message: '请输入到批次', trigger: 'blur' } + ], + arriveDate: [ + { required: true, message: '请选择到货日期', trigger: 'change' } + ], + produceDate: [ + { required: true, message: '请选择生产日期', trigger: 'change' } + ], + expireDate: [ + { required: true, message: '请选择过期日期', trigger: 'change' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + toLocationCode: [ + { required: true, message: '请选择到库位代码', trigger: 'change' } + ], + toLocationGroupCode: [ + { required: true, message: '请选择到库位组代码', trigger: 'change' } + ], + toAreaCodes: [ + { required: true, message: '请选择到库区代码', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请选择订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请选择订单行', trigger: 'change' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'blur' } + ], + packUnit: [ + { required: true, message: '请选择包装规格', trigger: 'change' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + visualInspectResult: [ + { required: true, message: '请选择目检结果', trigger: 'change' } + ], +}) + + +/** + * @returns {Array} 采购收货记录子表-子包装数据 + */ +export const PurchasereceiptRecordDetailPackingNumber = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + hiddenInMain:true, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到批次', + field: 'toBatch', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到包装号', + field: 'toPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + + }, + { + label: '供应商计量数量', + field: 'supplierQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从库位组代码', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + sortTableDefault:21, + tableForm: { + disabled: true, + } + }, + { + label: '到库位组代码', + field: 'toLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + sortTableDefault:21, + tableForm: { + disabled: true, + } + }, + { + label: '从库区代码', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到库区代码', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + disabled: true, + type:'FormDate', + valueFormat: 'x', + } + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + disabled: true, + type:'FormDate', + valueFormat: 'x', + } + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + disabled: true, + type:'FormDate', + valueFormat: 'x', + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '目检结果', + field: 'visualInspectResult', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '目检照片', + field: 'visualInspectPhotos', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '不合格原因', + field: 'failedReason', + dictType: DICT_TYPE.PURCHASE_RETURN_REASON, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + // { + // label: '备注', + // field: 'remark', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // } +])) diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordRefuseMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordRefuseMain/index.vue new file mode 100644 index 0000000..9e8c619 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordRefuseMain/index.vue @@ -0,0 +1,335 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordRefuseMain/purchasereceiptRecordMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordRefuseMain/purchasereceiptRecordMain.data.ts new file mode 100644 index 0000000..e5b3871 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRecordRefuseMain/purchasereceiptRecordMain.data.ts @@ -0,0 +1,1989 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import { t } from '@wangeditor/editor' + + + +/** + * @returns {Array} 采购收货记录主表 + */ +export const PurchasereceiptRecordMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: true, + sortSearchDefault:1, + sortTableDefault:1 + + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:2 + }, + { + label: '任务单号', + field: 'jobNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:3 + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:4, + isSearch: true + }, + { + label: '拒收时间', + field: 'refuseTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '拒收原因', + field: 'refuseReason', + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '拒收人', + field: 'refuseUpdater', + sort: 'custom', + table: { + width: 150 + }, + }, + // { + // label: 'ERP单据号(无用)', + // field: 'erpNumber', + // isTable:false, + // isTableForm:false, + // sort: 'custom', + // table: { + // width: 180 + // }, + // }, + // { + // label: 'ERP单据号', + // field: 'qadNumber', + // sort: 'custom', + // table: { + // width: 200 + // }, + // sortTableDefault:5, + // }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + isTable:false + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault:2, + isTable:false + }, + { + label: '到月台代码', + field: 'toDockCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '数据来源', + field: 'sourceType', + dictType: DICT_TYPE.PURCHASERECEIPT_SOURCE_TYPE, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + isSearch: false, + isTable:false + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '出库事务类型', + field: 'outTransaction', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '入库事务类型', + field: 'inTransaction', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '执行时间', + field: 'executeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '生效日期', + field: 'activeDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + } + }, + }, + { + + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + // { + // label: '操作', + // field: 'action', + // isDetail: false, + // isForm: false, + // table: { + // width: 400, + // fixed: 'right' + // }, + // }, + { + label: '批次', // 实际是子表的从批次,为了不影响页面,单独放上面 + field: 'fromBatch', + sort: 'custom', + isForm:false, + isTableForm:false, + table: { + width: 150 + }, + sortTableDefault:12, + }, + { + label: '包装号', // 实际是子表的从包装号,为了不影响页面,单独放上面 + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:16, + }, + // { + // label: '检验申请单号', + // field: 'inspectNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:6, + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:12, + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat : 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, +])) + +// 表单校验 +export const PurchasereceiptRecordMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + toWarehouseCode: [ + { required: true, message: '请选择到仓库代码', trigger: 'change' } + ], + toAreaTypes: [ + { required: true, message: '请选择到库位类型服务', trigger: 'change' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'change' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'change' } + ], + available: [ + { required: true, message: '请输入是否可用', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请选择创建时间', trigger: 'change' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购收货记录子表 + */ +export const PurchasereceiptRecordDetail = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + }, + sortTableDefault:1998, + hiddenInMain:true + }, + { + label: '检验申请单号', + field: 'inspectNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + sortTableDefault:6, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault:5, + sortTableDefault:7, + isSearch: true + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault:5, + sortTableDefault:8, + }, + { + label: '行类型', + field: 'poLineType', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:9, + hiddenInMain:true, + isForm: false, + tableForm:{ + disabled: true + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + isSearch: true + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + hiddenInMain:true + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + hiddenInMain:true + }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:14, + hiddenInMain:true + }, + { + label: '到批次', + field: 'toBatch', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:14, + hiddenInMain:true + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true + // }, + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:15, + hiddenInMain:true + }, + { + label: '到包装号', + field: 'toPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:15, + hiddenInMain:true + }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true + // }, + { + label: '订单数量', + field: 'orderQty', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true, + sortTableDefault:1004 + }, + { + label: '拒收数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:12, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + form: { + component: 'InputNumber', + }, + sortTableDefault:12, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:16, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + tableForm: { + disabled: true, + }, + isForm:false, + sortTableDefault:16, + }, + { + label: '供应商计量数量', + field: 'supplierQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + sortTableDefault:24, + hiddenInMain:true + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:24, + hiddenInMain:true + }, + + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:18, + hiddenInMain:true + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:18, + + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:18, + }, + { + label: '从库位组', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:19, + hiddenInMain:true + }, + { + label: '到库位组', + field: 'toLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:19, + hiddenInMain:true + }, + { + label: '从库区', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:22, + hiddenInMain:true, + }, + { + label: '到库区', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:22, + hiddenInMain:true + }, + { + label: '从货主', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:23, + hiddenInMain:true + }, + { + label: '到货主', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:23, + hiddenInMain:true + }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + sortTableDefault:17, + hiddenInMain:true + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + sortTableDefault:17, + hiddenInMain:true + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + sortTableDefault:17, + hiddenInMain:true + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + sortTableDefault:1997, + hiddenInMain:true + }, + { + label: '目检结果', + field: 'visualInspectResult', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true + }, + { + label: '目检照片', + field: 'visualInspectPhotos', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true + }, + { + label: '不合格原因', + field: 'failedReason', + dictType: DICT_TYPE.PURCHASE_RETURN_REASON, + dictClass: 'string', + isTable:false, + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + isTable:false, + hiddenInMain:true + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + isTable:false, + hiddenInMain:true + }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1998, + hiddenInMain:true + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:2000, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:2000, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + sortTableDefault:2000, + }, + // { + // label: '操作', + // hiddenInMain:true, + // field: 'action', + // isDetail: false, + // isForm: false , + // table: { + // width: 150, + // fixed: 'right' + // }, + // isTableForm:true, + // } +])) + +// 表单校验 +export const PurchasereceiptRecordDetailRules = reactive({ + fromPackingNumber: [ + { required: true, message: '请选择从包装号', trigger: 'change' } + ], + toPackingNumber: [ + { required: true, message: '请选择到包装号', trigger: 'change' } + ], + fromBatch: [ + { required: true, message: '请输入从批次', trigger: 'blur' } + ], + toBatch: [ + { required: true, message: '请输入到批次', trigger: 'blur' } + ], + arriveDate: [ + { required: true, message: '请选择到货日期', trigger: 'change' } + ], + produceDate: [ + { required: true, message: '请选择生产日期', trigger: 'change' } + ], + expireDate: [ + { required: true, message: '请选择过期日期', trigger: 'change' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + toLocationCode: [ + { required: true, message: '请选择到库位代码', trigger: 'change' } + ], + toLocationGroupCode: [ + { required: true, message: '请选择到库位组代码', trigger: 'change' } + ], + toAreaCodes: [ + { required: true, message: '请选择到库区代码', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请选择订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请选择订单行', trigger: 'change' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'blur' } + ], + packUnit: [ + { required: true, message: '请选择包装规格', trigger: 'change' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + visualInspectResult: [ + { required: true, message: '请选择目检结果', trigger: 'change' } + ], +}) + + +/** + * @returns {Array} 采购收货记录子表-子包装数据 + */ +export const PurchasereceiptRecordDetailPackingNumber = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + hiddenInMain:true, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到批次', + field: 'toBatch', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到包装号', + field: 'toPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + + }, + { + label: '供应商计量数量', + field: 'supplierQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从库位组代码', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + sortTableDefault:21, + tableForm: { + disabled: true, + } + }, + { + label: '到库位组代码', + field: 'toLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + sortTableDefault:21, + tableForm: { + disabled: true, + } + }, + { + label: '从库区代码', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到库区代码', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + disabled: true, + type:'FormDate', + valueFormat: 'x', + } + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + disabled: true, + type:'FormDate', + valueFormat: 'x', + } + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + disabled: true, + type:'FormDate', + valueFormat: 'x', + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '目检结果', + field: 'visualInspectResult', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '目检照片', + field: 'visualInspectPhotos', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '不合格原因', + field: 'failedReason', + dictType: DICT_TYPE.PURCHASE_RETURN_REASON, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + } +])) diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptReport/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptReport/index.vue new file mode 100644 index 0000000..61b9e43 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptReport/index.vue @@ -0,0 +1,157 @@ + + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue new file mode 100644 index 0000000..1a18428 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/index.vue @@ -0,0 +1,1094 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/purchasereceiptRequestMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/purchasereceiptRequestMain.data.ts new file mode 100644 index 0000000..dee8a1a --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestMain/purchasereceiptRequestMain.data.ts @@ -0,0 +1,2519 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import * as SupplierApi from '@/api/wms/supplier' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as PurchaseMainApi from '@/api/wms/purchaseMain' +import * as PurchaseDetailApi from '@/api/wms/purchaseDetail' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' +import { PurchaseDetail, PurchaseMain } from '../../supplierdeliver/purchaseMain/purchaseMain.data' +import { useUserStore } from '@/store/modules/user' + + +const { t } = useI18n() // 国际化 +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize:10, + pageNo:1, + code:'PurchaseReceiptRequest' +} +const data = await getRequestsettingApi.getRequestsettingPage(queryParams) +const requestsettingData =data?.list[0]||{} + + +// 获取当前操作人的部门 +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept +// id 转str 否则form回显匹配不到 +userDept.id = userDept.id.toString() +const userDeptArray:any = [userDept] + +/** + * @returns {Array} 采购收货申请主表 + */ +export const PurchasereceiptRequestMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + sortSearchDefault:1, + isForm: false, + isSearch: true, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch:true, + sortTableDefault:4, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择采购订单', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: '采购订单信息', // 查询弹窗标题 + isConcatDetailSchemas:true,//是否是主子表合并 默认false + searchDetailSchemas:PurchaseDetail.allSchemas, + searchAllSchemas: PurchaseMain.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPageWMS, // 查询弹窗所需分页方法 + isEnter:true, + searchCondition: [{ + key:'status', + value:'2', + message: '已发布状态', + isMainValue: false + }, + { + key: 'status', // 查询列表中字段 + value: '2', // 指查询具体值 + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用 + }], + verificationParams: [{ + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + }, + isForm: true, + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch:true, + sortSearchDefault:3, + isForm: true, + sortTableDefault:2 + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + sortTableDefault:1, + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault:2, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled: true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPage // 查询弹窗所需分页方法 + } + } + }, + // { + // label: '要货计划单号', + // field: 'ppNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择要货计划单号', // 输入框占位文本 + // searchField: 'number', // 查询弹窗赋值字段 + // searchTitle: '要货计划信息', // 查询弹窗标题 + // searchAllSchemas: PurchasePlanMain.allSchemas, // 查询弹窗所需类 + // searchPage: PurchasePlanMainApi.getPurchasePlanMainPage, // 查询弹窗所需分页方法 + // searchCondition: [ + // { + // key: 'supplierCode', + // value: 'supplierCode', + // message: '请填写供应商代码!', + // isMainValue: true + // }, + // { + // key: 'status', + // value: 4, + // isMainValue: false + // }, + // { + // key: 'available', + // value: "TRUE", + // isMainValue: false + // }] + // } + // }, + // isForm: true, + // }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + isSearch: false, + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '数据来源', + field: 'sourceType', + dictType: DICT_TYPE.PURCHASERECEIPT_SOURCE_TYPE, + sort: 'custom', + table: { + width: 150 + }, + form: { + value: 'ASN_ExternalReceipt', + componentProps: { + disabled: true + } + }, + isSearch: true, + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到月台代码', + field: 'toDockCode', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + form: { + value: 'PurchaseReceipt', + componentProps: { + disabled: true + } + }, + isForm: false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat : 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + } + }, + + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false, + isTable: false, + }, + // { + // label: '截止时间', + // field: 'dueTime', + // formatter: dateFormatter, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width:'100%'}, + // type: 'datetime', + // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'x', + // } + // }, + // }, + // { + // label: '部门', + // field: 'departmentCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + // return userDeptArray.find((account) => account.id == cellValue)?.name + // }, + // form: { + // value: userDept.id, + // component: 'Select', + // api: () => userDeptArray, + // componentProps: { + // disabled: true, + // optionsAlias: { + // labelField: 'name', + // valueField: 'id' + // } + // } + // } + // }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isSearch: false, + isTable: true, + sortTableDefault:3, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'FALSE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'FALSE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'FALSE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isForm: false, + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.directCreateRecord, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '标签状态', + field: 'labelStatus', + sort: 'custom', + dictType: DICT_TYPE.LABEL_STATUS, + dictClass: 'string', + table: { + width: 150 + }, + isForm: false, + isTable: false, + isSearch: false, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 400, + fixed: 'right' + }, + } +])) + +//表单校验 +export const PurchasereceiptRequestMainRules = reactive({ + ppNumber: [ + { required: true, message: '请输入采购订单', trigger: 'blur' } + ], + poNumber: [ + { required: true, message: '请选择采购订单号', trigger: 'blur' } + ], + toWarehouseCode: [ + { required: true, message: '请输入到仓库代码', trigger: 'blur' } + ], + toAreaTypes: [ + { required: true, message: '请输入到库区类型范围', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + directCreateRecord: [ + { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购收货申请子表 + */ +export const PurchasereceiptRequestDetail = useCrudSchemas(reactive([ + + { + label: '订单号', + field: 'poNumber', + hiddenInMain:true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + tableForm:{ + isInpuFocusShow: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + isConcatDetailSchemas:true,//是否是主子表合并 默认false + searchDetailSchemas:PurchaseDetail.allSchemas, + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPageWMS, + searchCondition: [ + { + key:'number', + value:'poNumber', + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isFormModel:true, + required:true, + message:'请选择采购订单号', + isMainValue: false + }, + { + key: 'status', // 查询列表中字段 + value: '2', // 指查询具体值 + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用 + }] + }, + form: { + labelMessage: '该订单号会影响订单行的选择', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchDetailSchemas:PurchaseDetail.allSchemas, + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPageWMS, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + } + } + }, + { + label: '订单类型', + field: 'type', + dictType: DICT_TYPE.WORK_ORDER_TYPE, + dictClass: 'string', + isSearch: false, + isTable: false, + isTableForm: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isForm: false, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + tableForm:{ + multiple:true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + { + label: '行类型', + field: 'poLineType', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:5, + hiddenInMain:true, + isForm: false, + tableForm:{ + disabled: true + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + sortTableDefault:6, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + isTableForm: false, + isForm: false + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // isTable:false, + // isTableForm: false, + // isForm: false + // }, + // { + // 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: 'orderQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + hiddenInMain: true, + sortTableDefault:9, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '收货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:9, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + tableForm: { + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + hiddenInMain:true, + sortTableDefault:11, + isForm: false + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + isTableForm: false, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + sortTableDefault:11, + tableForm:{ + disabled:true + }, + isForm: true + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + form: { + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: false, + isForm: true + }, + { + label: '到库位代码', + field: 'defaultToLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.selectBusinessTypeToLocation, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key: 'businessType', + value: 'PurchaseReceipt', + isMainValue: false + },{ + key: 'isIn', + value: 'in', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + }, + tableForm: { + enterSearch: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.selectBusinessTypeToLocation, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key: 'businessType', + value: 'PurchaseReceipt', + isMainValue: false + },{ + key: 'isIn', + value: 'in', + isMainValue: false + }], + isRepeat: true,//tableForm下方输入框是否可以重复添加该条数据 + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + }, + isTableForm: true, + isForm: false + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '供应商计量数量', + field: 'supplierPackQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '供应商计量单位', + field: 'supplierPackUnit', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + hiddenInMain:true, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 0 + }, + }, + isTableForm: false, + isForm: false + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:11, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + type:'FormDate', + placeholder: '请选择到货日期', + valueFormat: 'x', + }, + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + sortTableDefault:11, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + sortTableDefault:8, + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + sortTableDefault:11, + table: { + width: 180 + }, + isTable:true, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + // tableForm:{ + // type:'FormDate', + // placeholder: '请选择过期日期', + // valueFormat: 'x', + // }, + tableForm:{ + type: 'slot', + disabled: true + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:12, + hiddenInMain:true, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + // { + // label: '从库位代码', + // field: 'fromLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:12, + // isTableForm: false, + // isForm: false + // }, + + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTableForm: false, + isForm: false + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false, + } +])) + +//表单校验 +export const PurchasereceiptRequestDetailRules = reactive({ + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' } + ], + produceDate: [ + { required: true, message: '请输入生产日期', trigger: 'change' } + ], + arriveDate: [ + { required: true, message: '请输入到货日期', trigger: 'change' } + ], + expireDate: [ + { required: true, message: '请输入过期日期', trigger: 'change' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请输入订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请输入订单行', trigger: 'change' } + ], + packUnit: [ + { required: true, message: '请选择包装规格', trigger: 'change' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'change' } + ], +}) + +/** + * @returns {Array} 采购收货申请子表--子包装号 + */ +export const PurchasereceiptRequestDetailPackingNumber = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + }, + form: { + labelMessage: '该订单号会影响订单行的选择', + componentProps: { + disabled:true, + isSearchList: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled: true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '默认到库位代码', + field: 'defaultToLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + tableForm:{ + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择到货日期', + valueFormat: 'x', + }, + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择过期日期', + valueFormat: 'x', + }, + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select', + disabled: true, + } + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: true + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + isForm: true + }, + { + label: '供应商计量数量', + field: 'supplierPackQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + isTableForm: false, + isForm: false + }, + { + label: '供应商计量单位', + field: 'supplierPackUnit', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0 + }, + }, + tableForm: { + disabled: true, + }, + isTableForm: false, + isForm: false + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTableForm: false, + isForm: false + } +])) + + +export const PurchasereceiptRequestDetailLabel = useCrudSchemas(reactive([ + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + }, + form: { + labelMessage: '该订单号会影响订单行的选择', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '默认到库位代码', + field: 'defaultToLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择到货日期', + valueFormat: 'x', + }, + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择过期日期', + valueFormat: 'x', + }, + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '箱规格', + field: 'packUnit', + isTable: true, + sort: 'custom', + form: { + }, + tableForm: { + type: 'Select', + labelField: 'packName', + valueField: 'packUnit', + initOptions: [{ + label: '', + value: '' + }] + } + },{ + label: '箱规格数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + } + }, + tableForm: { + disabled:true + } + }, + { + label: '托规格', + field: 'secondPackUnit', + isTable: true, + sort: 'custom', + form: { + }, + tableForm: { + type: 'Select', + labelField: 'packName', + valueField: 'packUnit', + initOptions: [{ + label: '', + value: '' + }] + } + }, + { + label: '托规格数量', + field: 'secondPackQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + } + }, + tableForm: { + disabled:true + } + }, + { + label: '供应商计量数量', + field: 'supplierPackQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 1, + precision: 6 + }, + }, + isTableForm: false, + isForm: false + }, + { + label: '供应商计量单位', + field: 'supplierPackUnit', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0 + }, + }, + isTableForm: false, + isForm: false + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + }, +])) diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue new file mode 100644 index 0000000..55bc94e --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/index.vue @@ -0,0 +1,827 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts new file mode 100644 index 0000000..f5554a8 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereceipt/purchasereceiptRequestOrderMTypeMain/purchasereceiptRequestMain.data.ts @@ -0,0 +1,2524 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import * as SupplierApi from '@/api/wms/supplier' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as PurchaseMainApi from '@/api/wms/purchaseMain' +import * as PurchaseDetailApi from '@/api/wms/purchaseDetail' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' +import { PurchaseDetail, PurchaseMain } from '../../supplierdeliver/purchaseMain/purchaseMain.data' +import { useUserStore } from '@/store/modules/user' + + +const { t } = useI18n() // 国际化 +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize:10, + pageNo:1, + code:'PurchaseReceiptRequest' +} +const data = await getRequestsettingApi.getRequestsettingPage(queryParams) +const requestsettingData =data?.list[0]||{} + + +// 获取当前操作人的部门 +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept +// id 转str 否则form回显匹配不到 +userDept.id = userDept.id.toString() +const userDeptArray:any = [userDept] + +/** + * @returns {Array} 采购收货申请主表 + */ +export const PurchasereceiptRequestMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + sortSearchDefault:1, + isForm: false, + isSearch: true, + }, + { + label: 'M型采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch:true, + sortTableDefault:4, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择采购订单', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: '采购订单信息', // 查询弹窗标题 + isConcatDetailSchemas:true,//是否是主子表合并 默认false + searchDetailSchemas:PurchaseDetail.allSchemas, + searchAllSchemas: PurchaseMain.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPageWMS, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'status', + value:'2', + message: '已发布状态', + isMainValue: false + }, + { + key: 'status', // 查询列表中字段 + value: '2', // 指查询具体值 + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用 + },{ + key: 'po_line_type', // 查询列表中字段 + value: 'M', // 指查询具体值 + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用 + }], + verificationParams: [{ + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + }, + isForm: true, + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch:true, + sortSearchDefault:3, + isForm: true, + sortTableDefault:2 + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + sortTableDefault:1, + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault:2, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled: true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPage // 查询弹窗所需分页方法 + } + } + }, + // { + // label: '要货计划单号', + // field: 'ppNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择要货计划单号', // 输入框占位文本 + // searchField: 'number', // 查询弹窗赋值字段 + // searchTitle: '要货计划信息', // 查询弹窗标题 + // searchAllSchemas: PurchasePlanMain.allSchemas, // 查询弹窗所需类 + // searchPage: PurchasePlanMainApi.getPurchasePlanMainPage, // 查询弹窗所需分页方法 + // searchCondition: [ + // { + // key: 'supplierCode', + // value: 'supplierCode', + // message: '请填写供应商代码!', + // isMainValue: true + // }, + // { + // key: 'status', + // value: 4, + // isMainValue: false + // }, + // { + // key: 'available', + // value: "TRUE", + // isMainValue: false + // }] + // } + // }, + // isForm: true, + // }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + isSearch: false, + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '数据来源', + field: 'sourceType', + dictType: DICT_TYPE.PURCHASERECEIPT_SOURCE_TYPE, + sort: 'custom', + table: { + width: 150 + }, + form: { + value: 'ASN_ExternalReceipt', + componentProps: { + disabled: true + } + }, + isSearch: true, + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到月台代码', + field: 'toDockCode', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + form: { + value: 'PurchaseReceipt', + componentProps: { + disabled: true + } + }, + isForm: false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat : 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + } + }, + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false, + isTable: false, + }, + // { + // label: '截止时间', + // field: 'dueTime', + // formatter: dateFormatter, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width:'100%'}, + // type: 'datetime', + // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'x', + // } + // }, + // }, + // { + // label: '部门', + // field: 'departmentCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + // return userDeptArray.find((account) => account.id == cellValue)?.name + // }, + // form: { + // value: userDept.id, + // component: 'Select', + // api: () => userDeptArray, + // componentProps: { + // disabled: true, + // optionsAlias: { + // labelField: 'name', + // valueField: 'id' + // } + // } + // } + // }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isSearch: false, + isTable: true, + sortTableDefault:3, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'FALSE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'FALSE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'FALSE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isForm: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: "TRUE", + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled:true + } + } + }, + { + label: '标签状态', + field: 'labelStatus', + sort: 'custom', + dictType: DICT_TYPE.LABEL_STATUS, + dictClass: 'string', + table: { + width: 150 + }, + isForm: false, + isTable: false, + isSearch: false, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 400, + fixed: 'right' + }, + } +])) +function validateQty(rule, value, callback) { + if (value>0) { + callback() + }else{ + callback(new Error('数量必须大于0')) + } +} +//表单校验 +export const PurchasereceiptRequestMainRules = reactive({ + ppNumber: [ + { required: true, message: '请输入采购订单', trigger: 'blur' } + ], + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + toWarehouseCode: [ + { required: true, message: '请输入到仓库代码', trigger: 'blur' } + ], + toAreaTypes: [ + { required: true, message: '请输入到库区类型范围', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ] +}) + +/** + * @returns {Array} 采购收货申请子表 + */ +export const PurchasereceiptRequestDetail = useCrudSchemas(reactive([ + + { + label: '订单号', + field: 'poNumber', + hiddenInMain:true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + tableForm:{ + isInpuFocusShow: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + isConcatDetailSchemas:true,//是否是主子表合并 默认false + searchDetailSchemas:PurchaseDetail.allSchemas, + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPageWMSTypeM, + searchCondition: [ + { + key:'number', + value:'poNumber', + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isFormModel:true, + required:true, + message:'请选择M型采购订单号', + isMainValue: false + }, + { + key: 'status', // 查询列表中字段 + value: '2', // 指查询具体值 + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用 + }] + }, + form: { + labelMessage: '该订单号会影响订单行的选择', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchDetailSchemas:PurchaseDetail.allSchemas, + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPageWMSTypeM, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + } + } + }, + { + label: '订单类型', + field: 'type', + dictType: DICT_TYPE.WORK_ORDER_TYPE, + dictClass: 'string', + isSearch: false, + isTable: false, + isTableForm: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isForm: false, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + tableForm:{ + multiple:true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + { + label: '行类型', + field: 'poLineType', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:5, + hiddenInMain:true, + isForm: false, + tableForm:{ + disabled: true + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + sortTableDefault:6, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + isTableForm: false, + isForm: false + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // isTable:false, + // isTableForm: false, + // isForm: false + // }, + // { + // 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: 'orderQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + sortTableDefault:9, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '收货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:9, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + }, + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + hiddenInMain:true, + sortTableDefault:11, + isForm: false + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + isTableForm: false, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + sortTableDefault:11, + tableForm:{ + disabled:true + }, + isForm: true + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + form: { + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: false, + isForm: true + }, + { + label: '到库位代码', + field: 'defaultToLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + }, + tableForm: { + enterSearch: false, + isInpuFocusShow: true, + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationMPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + }, + isTableForm: true, + isForm: false + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '供应商计量数量', + field: 'supplierPackQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '供应商计量单位', + field: 'supplierPackUnit', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + hiddenInMain:true, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 0 + }, + }, + isTableForm: false, + isForm: false + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:11, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + type:'FormDate', + placeholder: '请选择到货日期', + valueFormat: 'x', + }, + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + sortTableDefault:11, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + sortTableDefault:8, + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + sortTableDefault:11, + table: { + width: 180 + }, + isTable:true, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + // tableForm:{ + // type:'FormDate', + // placeholder: '请选择过期日期', + // valueFormat: 'x', + // }, + tableForm:{ + type: 'slot', + disabled: true + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:12, + hiddenInMain:true, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:12, + isTableForm: false, + isForm: false + }, + + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTableForm: false, + isForm: false + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false, + } +])) + +//表单校验 +export const PurchasereceiptRequestDetailRules = reactive({ + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' } + ], + produceDate: [ + { required: true, message: '请输入生产日期', trigger: 'change' } + ], + arriveDate: [ + { required: true, message: '请输入到货日期', trigger: 'change' } + ], + expireDate: [ + { required: true, message: '请输入过期日期', trigger: 'change' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'blur' } + ], + poNumber: [ + { required: true, message: '请输入订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请输入订单行', trigger: 'change' } + ], + packUnit: [ + { required: true, message: '请选择包装规格', trigger: 'change' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'change' } + ], + qty:[ + { validator:validateQty, message: '收货数量必须大于0', trigger: 'change'} + ] +}) + +/** + * @returns {Array} 采购收货申请子表--子包装号 + */ +export const PurchasereceiptRequestDetailPackingNumber = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + }, + form: { + labelMessage: '该订单号会影响订单行的选择', + componentProps: { + disabled:true, + isSearchList: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled: true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '默认到库位代码', + field: 'defaultToLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + tableForm:{ + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择到货日期', + valueFormat: 'x', + }, + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择过期日期', + valueFormat: 'x', + }, + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select', + disabled: true, + } + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: true + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + isForm: true + }, + { + label: '供应商计量数量', + field: 'supplierPackQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + isTableForm: false, + isForm: false + }, + { + label: '供应商计量单位', + field: 'supplierPackUnit', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0 + }, + }, + tableForm: { + disabled: true, + }, + isTableForm: false, + isForm: false + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTableForm: false, + isForm: false + } +])) + + +export const PurchasereceiptRequestDetailLabel = useCrudSchemas(reactive([ + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + }, + form: { + labelMessage: '该订单号会影响订单行的选择', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '默认到库位代码', + field: 'defaultToLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + { + label: '替代批次', + field: 'altBatch', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择到货日期', + valueFormat: 'x', + }, + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择过期日期', + valueFormat: 'x', + }, + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true, + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isTableRowValue: true, //查询当前searchTable表中行数据的值 + isMainValue: false + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isTableRowValue: true, //查询当前searchTable表中行数据的值 + isMainValue: false + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: true + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + isForm: true + }, + { + label: '供应商计量数量', + field: 'supplierPackQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 1, + precision: 6 + }, + }, + isTableForm: false, + isForm: false + }, + { + label: '供应商计量单位', + field: 'supplierPackUnit', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0 + }, + }, + isTableForm: false, + isForm: false + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + }, +])) diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/index.vue new file mode 100644 index 0000000..8facc3d --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/index.vue @@ -0,0 +1,263 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/purchasereturnJobMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/purchasereturnJobMain.data.ts new file mode 100644 index 0000000..af7e744 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnJobMain/purchasereturnJobMain.data.ts @@ -0,0 +1,1089 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +import * as InspectionQ2Api from '@/api/qms/inspectionQ2' +import { Q2 } from '@/views/qms/inspectionQ2/inspectionQ2.data' + +/** + * @returns {Array} 采购退货任务主表 + */ +export const PurchasereturnJobMain = useCrudSchemas( + reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: true, + sortSearchDefault: 1 + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 1 + }, + { + label: '采购收货记录单号', + field: 'purchaseReceiptRecordNumber', + sort: 'custom', + isSearch: true, + table: { + width: 180 + }, + sortTableDefault: 4, + sortSearchDefault: 4 + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch: true, + sortTableDefault: 3, + sortSearchDefault: 3 + }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + isTable: false + }, + { + label: 'Q2通知单号', + field: 'q2Number', + sort: 'custom', + isSearch: false, + isDetail: true, + sortTableDefault: 5, + sortSearchDefault: 5, + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + // multiple: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择Q2通知单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: 'Q2通知单号', // 查询弹窗标题 + searchAllSchemas: Q2.allSchemas, // 查询弹窗所需类 + searchPage: InspectionQ2Api.getQ2Page, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'status', + value: '0', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault: 2, + sortSearchDefault: 2 + }, + { + label: '发货月台', + field: 'deliverDock', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isSearch: false, + isTable: false, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + isTable: false, + table: { + width: 150 + } + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + isTable: false, + table: { + width: 150 + } + }, + { + label: '从月台代码', + field: 'fromDockCode', + sort: 'custom', + isTable: false, + table: { + width: 150 + } + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '要求截止时间', + field: 'requestDueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.JOB_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1 + }, + // { + // label: '状态', + // field: 'jobStageStatus', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '过期时间', + field: 'expiredTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '优先级', + field: 'priority', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber' + } + }, + { + label: '优先级增量', + field: 'priorityIncrement', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber' + } + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '承接人', + field: 'acceptUserName', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '承接时间', + field: 'acceptTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '完成人', + field: 'completeUserName', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '完成时间', + field: 'completeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '自动完成', + field: 'autoComplete', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许修改库位', + field: 'allowModifyLocation', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许修改数量', + field: 'allowModifyQty', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许大于推荐数量', + field: 'allowBiggerQty', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许小于推荐数量', + field: 'allowSmallerQty', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许修改库存状态', + field: 'allowModifyInventoryStatus', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许连续扫描', + field: 'allowContinuousScanning', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许部分完成', + field: 'allowPartialComplete', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许修改批次', + field: 'allowModifyBatch', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许修改箱码', + field: 'allowModifyPackingNumber', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTable: true + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + }, + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 120, + fixed: 'right' + } + } + ]) +) + +//表单校验 +export const PurchasereturnJobMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + fromWarehouseCode: [ + { required: true, message: '请选择从仓库代码', trigger: 'change' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + requestTime: [ + { required: true, message: '请输入申请时间', trigger: 'change' } + ], + requestDueTime: [ + { required: true, message: '请输入要求截止时间', trigger: 'change' } + ], + status: [ + { required: true, message: '请选择状态', trigger: 'change' } + ], + // jobStageStatus: [ + // { required: true, message: '请选择阶段状态', trigger: 'change' } + // ], + priority: [ + { required: true, message: '请输入优先级', trigger: 'blur' } + ], + priorityIncrement: [ + { required: true, message: '请输入优先级增量', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + userPositionCode: [ + { required: true, message: '请输入岗位', trigger: 'blur' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购退货任务子表 + */ +export const PurchasereturnJobDetail = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isSearch: false, + sortTableDefault: 10, + }, + { + label: '包装规格', + field: 'packUnit', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isSearch: false, + sortTableDefault: 10, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 10, + hiddenInMain:true, + isTableForm: false, + isForm: false, + isTable:false, + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true, + // }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault: 9, + sortSearchDefault: 6 + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true, + // }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 15, + hiddenInMain:true, + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 15, + hiddenInMain:true, + }, + // { + // label: '到库位代码', + // field: 'toLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 15, + // hiddenInMain:true, + // }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 16, + hiddenInMain:true, + isTable:false, + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 16, + hiddenInMain:true, + isTable:false, + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 5, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 6, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault: 7, + sortSearchDefault: 5 + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 7, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault: 8, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault: 8, + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 18, + hiddenInMain:true, + }, + // { + // label: '数量', + // field: 'qty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // }, + // sortTableDefault: 12, + // }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + sortTableDefault: 11, + hiddenInMain:true, + isForm:false, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6, + disabled:false + } + }, + { + label: '退货原因', + field: 'reasonType', + dictType: DICT_TYPE.RETURN_REASON_TYPE, + dictClass: 'string', + // isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + type: 'Select', + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '退货原因描述', + field: 'reason', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 12, + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 20, + hiddenInMain:true, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + sortTableDefault: 20, + hiddenInMain:true, + }, + { + label: '原因', + field: 'reason', + dictType: DICT_TYPE.PURCHASE_RETURN_REASON, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 20, + hiddenInMain:true, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 20, + hiddenInMain:true, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 20, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + +])) + +//表单校验 +export const PurchasereturnJobDetailRules = reactive({ + packingNumber: [ + { required: true, message: '请选择包装号', trigger: 'change' } + ], + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请选择订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请输入订单行', trigger: 'blur' } + ], + reason: [ + { required: true, message: '请选择原因', trigger: 'change' } + ], + fromLocationCode: [ + { required: true, message: '请选择从库位代码', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请选择物料代码', trigger: 'change' } + ], + createTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMOrderTypeMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMOrderTypeMain/index.vue new file mode 100644 index 0000000..0f06827 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMOrderTypeMain/index.vue @@ -0,0 +1,203 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMOrderTypeMain/purchasereturnRecordMOrderTypeMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMOrderTypeMain/purchasereturnRecordMOrderTypeMain.data.ts new file mode 100644 index 0000000..ed6c014 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMOrderTypeMain/purchasereturnRecordMOrderTypeMain.data.ts @@ -0,0 +1,994 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' + +import * as InspectionQ2Api from '@/api/qms/inspectionQ2' +import { Q2 } from '@/views/qms/inspectionQ2/inspectionQ2.data' + +/** + * @returns {Array} 采购退货记录主表 + */ +export const PurchasereturnRecordMOrderTypeMain = useCrudSchemas( + reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + sortTableDefault: 1012, + sortSearchDefault: 1, + isSearch: true + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 1 + }, + { + label: '任务单号', + field: 'jobNumber', + sort: 'custom', + isTable:false, + table: { + width: 180 + }, + + sortTableDefault: 1 + }, + { + label: '采购收货记录单号', + field: 'purchaseReceiptRecordNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch: false, + isTable:false, + sortTableDefault: 3, + sortSearchDefault: 5 + }, + { + label: 'qad采购退货记录单号', + field: 'qadPurchaseReturnRecordCode', + sort: 'custom', + table: { + width: 180 + }, + sortSearchDefault: 3, + sortTableDefault: 4, + isTable: true + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + sortSearchDefault: 3, + isSearch: false, + isTable:false, + sortTableDefault: 2 + }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + isTable: false + }, + { + label: 'Q2通知单号', + field: 'q2Number', + sort: 'custom', + isSearch: false, + isDetail: false, + isTable:false, + sortTableDefault: 4, + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + // multiple: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择Q2通知单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: 'Q2通知单号', // 查询弹窗标题 + searchAllSchemas: Q2.allSchemas, // 查询弹窗所需类 + searchPage: InspectionQ2Api.getQ2Page, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'status', + value: '0', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1, + sortSearchDefault: 2, + isSearch: true + }, + { + label: '从月台代码', + field: 'fromDockCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '出库事务类型', + field: 'outTransactionType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '入库事务类型', + field: 'inTransactionType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '执行时间', + field: 'executeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '生效日期', + field: 'activeDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x' + } + } + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + } + }, + // { + // label: '原因', + // field: 'available', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: true, + // }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + }, + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTable:false, + } + ]) +) + +//表单校验 +export const PurchasereturnRecordMOrderTypeMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + fromWarehouseCode: [ + { required: true, message: '请选择从仓库代码', trigger: 'change' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'change' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'change' } + ], + available: [ + { required: true, message: '请输入是否可用', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请选择创建时间', trigger: 'change' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购退货记录子表 + */ +export const PurchasereturnRecordMOrderTypeDetail = useCrudSchemas(reactive([ + + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: false, + isTable:false, + sortTableDefault: 1001, + sortSearchDefault: 1001, + }, + { + label: '到包装号', + field: 'toPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: false, + isTable:false, + hiddenInMain: true, + sortSearchDefault: 1002, + sortTableDefault: 1001, + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1004, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + sortTableDefault: 1004, + form: { + component: 'InputNumber', + } + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + sortTableDefault: 1004, + hiddenInMain:false, + isForm:false, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6, + disabled:false + } + }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain: true + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain: true + // }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault: 1000, + }, + { + label: '到批次', + field: 'toBatch', + sort: 'custom', + table: { + width: 150 + }, + isSearch: false, + sortTableDefault: 1000, + hiddenInMain: true + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain: true + // }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1009, + hiddenInMain: true + }, + // { + // label: '到库位代码', + // field: 'toLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1009, + // hiddenInMain: true + // }, + { + label: '从库位组代码', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010, + hiddenInMain: true + }, + // { + // label: '到库位组代码', + // field: 'toLocationGroupCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1010, + // hiddenInMain: true + // }, + { + label: '从库区代码', + field: 'fromAreaCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010, + hiddenInMain: true + }, + // { + // label: '到库区代码', + // field: 'toAreaCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1010, + // hiddenInMain: true + // }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010, + hiddenInMain: true + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010, + hiddenInMain: true + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1008, + hiddenInMain: true + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 4, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 5, + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + }, + sortTableDefault: 1013, + hiddenInMain: true, + isSearch: false + }, + + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault: 6, + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + sortSearchDefault: 6, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault: 7, + hiddenInMain: true + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault: 7, + hiddenInMain: true + }, + // { + // label: '数量', + // field: 'qty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:true, + // sortTableDefault: 1005, + // form: { + // component: 'InputNumber', + // } + // }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sortTableDefault: 1006, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault: 1006, + form: { + component: 'InputNumber', + } + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault: 1006, + form: { + component: 'InputNumber', + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1011, + hiddenInMain: true + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true + }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '退货原因', + field: 'reasonType', + dictType: DICT_TYPE.RETURN_REASON_TYPE, + dictClass: 'string', + // isSearch: true, + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + type: 'Select', + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '退货原因描述', + field: 'reason', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1007, + hiddenInMain: true + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: false, + sortTableDefault: 1014, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1014, + hiddenInMain: false, + }, + +])) + +//表单校验 +export const PurchasereturnRecordMOrderTypeDetailRules = reactive({ + fromPackingNumber: [ + { required: true, message: '请选择从包装号', trigger: 'change' } + ], + toPackingNumber: [ + { required: true, message: '请选择到包装号', trigger: 'change' } + ], + fromBatch: [ + { required: true, message: '请输入从批次', trigger: 'blur' } + ], + toBatch: [ + { required: true, message: '请输入到批次', trigger: 'blur' } + ], + reason: [ + { required: true, message: '请选择原因', trigger: 'change' } + ], + fromLocationCode: [ + { required: true, message: '请选择从库位代码', trigger: 'change' } + ], + fromLocationGroupCode: [ + { required: true, message: '请选择从库位组代码', trigger: 'change' } + ], + fromAreaCode: [ + { required: true, message: '请选择从库区代码', trigger: 'change' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请选择订单号', trigger: 'change' } + ], + poline: [ + { required: true, message: '请选择订单行', trigger: 'change' } + ], +}) diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/index.vue new file mode 100644 index 0000000..8dfa917 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/index.vue @@ -0,0 +1,203 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/purchasereturnRecordMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/purchasereturnRecordMain.data.ts new file mode 100644 index 0000000..f501172 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRecordMain/purchasereturnRecordMain.data.ts @@ -0,0 +1,984 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' + +import * as InspectionQ2Api from '@/api/qms/inspectionQ2' +import { Q2 } from '@/views/qms/inspectionQ2/inspectionQ2.data' + +/** + * @returns {Array} 采购退货记录主表 + */ +export const PurchasereturnRecordMain = useCrudSchemas( + reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + sortTableDefault: 1012, + sortSearchDefault: 1, + isSearch: true + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 1 + }, + { + label: '任务单号', + field: 'jobNumber', + sort: 'custom', + table: { + width: 180 + }, + + sortTableDefault: 1 + }, + { + label: '采购收货记录单号', + field: 'purchaseReceiptRecordNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch: true, + sortTableDefault: 3, + sortSearchDefault: 5 + }, + { + label: 'qad采购退货记录单号', + field: 'qadPurchaseReturnRecordCode', + sort: 'custom', + table: { + width: 180 + }, + sortSearchDefault: 3, + sortTableDefault: 4, + isTable: true + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + sortSearchDefault: 3, + isSearch: true, + sortTableDefault: 2 + }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + isTable: false + }, + { + label: 'Q2通知单号', + field: 'q2Number', + sort: 'custom', + isSearch: false, + isDetail: true, + sortTableDefault: 4, + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + // multiple: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择Q2通知单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: 'Q2通知单号', // 查询弹窗标题 + searchAllSchemas: Q2.allSchemas, // 查询弹窗所需类 + searchPage: InspectionQ2Api.getQ2Page, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'status', + value: '0', + isMainValue: false + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1, + sortSearchDefault: 2, + isSearch: true + }, + { + label: '从月台代码', + field: 'fromDockCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '出库事务类型', + field: 'outTransactionType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '入库事务类型', + field: 'inTransactionType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '执行时间', + field: 'executeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '生效日期', + field: 'activeDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x' + } + } + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + } + }, + // { + // label: '原因', + // field: 'available', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: true, + // }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + }, + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTable: true + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } + ]) +) + +//表单校验 +export const PurchasereturnRecordMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + fromWarehouseCode: [ + { required: true, message: '请选择从仓库代码', trigger: 'change' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'change' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'change' } + ], + available: [ + { required: true, message: '请输入是否可用', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请选择创建时间', trigger: 'change' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购退货记录子表 + */ +export const PurchasereturnRecordDetail = useCrudSchemas(reactive([ + + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault: 1001, + sortSearchDefault: 1001, + }, + { + label: '到包装号', + field: 'toPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + hiddenInMain: true, + sortSearchDefault: 1002, + sortTableDefault: 1001, + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1004, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1004, + form: { + component: 'InputNumber', + } + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + sortTableDefault: 1004, + hiddenInMain:false, + isForm:false, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6, + disabled:false + } + }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain: true + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain: true + // }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault: 1000, + }, + { + label: '到批次', + field: 'toBatch', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault: 1000, + hiddenInMain: true + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain: true + // }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1009, + hiddenInMain: true + }, + // { + // label: '到库位代码', + // field: 'toLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1009, + // hiddenInMain: true + // }, + { + label: '从库位组代码', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010, + hiddenInMain: true + }, + // { + // label: '到库位组代码', + // field: 'toLocationGroupCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1010, + // hiddenInMain: true + // }, + { + label: '从库区代码', + field: 'fromAreaCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010, + hiddenInMain: true + }, + // { + // label: '到库区代码', + // field: 'toAreaCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1010, + // hiddenInMain: true + // }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010, + hiddenInMain: true + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010, + hiddenInMain: true + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1008, + hiddenInMain: true + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 4, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 5, + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + }, + sortTableDefault: 1013, + hiddenInMain: true, + isSearch: false + }, + + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault: 6, + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault: 6, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault: 7, + hiddenInMain: true + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault: 7, + hiddenInMain: true + }, + // { + // label: '数量', + // field: 'qty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:true, + // sortTableDefault: 1005, + // form: { + // component: 'InputNumber', + // } + // }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sortTableDefault: 1006, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault: 1006, + form: { + component: 'InputNumber', + } + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault: 1006, + form: { + component: 'InputNumber', + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1011, + hiddenInMain: true + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true + }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '退货原因', + field: 'reasonType', + dictType: DICT_TYPE.RETURN_REASON_TYPE, + dictClass: 'string', + // isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + type: 'Select', + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '退货原因描述', + field: 'reason', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1007, + hiddenInMain: true + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: false, + sortTableDefault: 1014, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1014, + hiddenInMain: false, + }, + +])) + +//表单校验 +export const PurchasereturnRecordDetailRules = reactive({ + fromPackingNumber: [ + { required: true, message: '请选择从包装号', trigger: 'change' } + ], + toPackingNumber: [ + { required: true, message: '请选择到包装号', trigger: 'change' } + ], + fromBatch: [ + { required: true, message: '请输入从批次', trigger: 'blur' } + ], + toBatch: [ + { required: true, message: '请输入到批次', trigger: 'blur' } + ], + reason: [ + { required: true, message: '请选择原因', trigger: 'change' } + ], + fromLocationCode: [ + { required: true, message: '请选择从库位代码', trigger: 'change' } + ], + fromLocationGroupCode: [ + { required: true, message: '请选择从库位组代码', trigger: 'change' } + ], + fromAreaCode: [ + { required: true, message: '请选择从库区代码', trigger: 'change' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请选择订单号', trigger: 'change' } + ], + poline: [ + { required: true, message: '请选择订单行', trigger: 'change' } + ], +}) diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/index.vue new file mode 100644 index 0000000..7bf47d7 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/index.vue @@ -0,0 +1,1140 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/purchasereturnRequestMOrderTypeMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/purchasereturnRequestMOrderTypeMain.data.ts new file mode 100644 index 0000000..aa8b29e --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/purchasereturnRequestMOrderTypeMain.data.ts @@ -0,0 +1,1711 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import * as SupplierApi from '@/api/wms/supplier' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as PurchaseMainApi from '@/api/wms/purchaseMain' +import * as PurchaseDetailApi from '@/api/wms/purchaseDetail' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' +import { PurchaseDetail, PurchaseMain } from '../../supplierdeliver/purchaseMain/purchaseMain.data' +import { useUserStore } from '@/store/modules/user' + + +const { t } = useI18n() // 国际化 +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize:10, + pageNo:1, + code:'PurchaseReceiptRequest' +} +const data = await getRequestsettingApi.getRequestsettingPage(queryParams) +const requestsettingData =data?.list[0]||{} + + +// 获取当前操作人的部门 +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept +// id 转str 否则form回显匹配不到 +userDept.id = userDept.id.toString() +const userDeptArray:any = [userDept] + +/** + * @returns {Array} 采购收货申请主表 + */ +export const PurchasereceiptRequestMain = useCrudSchemas(reactive([ + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch:true, + sortTableDefault:4, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择采购订单', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: '采购订单信息', // 查询弹窗标题 + isConcatDetailSchemas:true,//是否是主子表合并 默认false + searchDetailSchemas:PurchaseDetail.allSchemas, + searchAllSchemas: PurchaseMain.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPageWMSMOrderType, // 查询弹窗所需分页方法 + isEnter:true, + searchCondition: [{ + key:'poLineType', + value:'M', + action: '==', + message: 'M型的采购订单', + isSearch: true, + isMainValue: false + }, + { + key: 'status', // 查询列表中字段 + value: '2', // 指查询具体值 + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用 + }], + verificationParams: [{ + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + }, + isForm: true, + }, +])) + +//表单校验 +export const PurchasereceiptRequestMainRules = reactive({ + poNumber: [ + { required: true, message: '请选择采购订单号', trigger: 'blur' } + ] +}) + +/** + * @returns {Array} 采购收货申请子表 + */ +export const PurchasereceiptRequestDetail = useCrudSchemas(reactive([ + + { + label: '订单号', + field: 'poNumber', + hiddenInMain:true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + tableForm:{ + isInpuFocusShow: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + isConcatDetailSchemas:true,//是否是主子表合并 默认false + searchDetailSchemas:PurchaseDetail.allSchemas, + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPageWMSMOrderType, + searchCondition: [ + { + key:'number', + value:'poNumber', + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isFormModel:true, + required:true, + message:'请选择采购订单号', + isMainValue: false + }, + { + key: 'status', // 查询列表中字段 + value: '2', // 指查询具体值 + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用 + }] + }, + form: { + labelMessage: '该订单号会影响订单行的选择', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchDetailSchemas:PurchaseDetail.allSchemas, + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPageWMSMOrderType, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + } + } + }, + { + label: '订单类型', + field: 'type', + dictType: DICT_TYPE.WORK_ORDER_TYPE, + dictClass: 'string', + isSearch: false, + isTable: false, + isTableForm: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isForm: false, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + tableForm:{ + multiple:true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + { + label: '行类型', + field: 'poLineType', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:5, + hiddenInMain:true, + isForm: false, + tableForm:{ + disabled: true + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + sortTableDefault:6, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + + { + label: '订单数量', + field: 'orderQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + hiddenInMain: true, + sortTableDefault:9, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '收货数量', + field: 'receivedQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:9, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + }, + }, + tableForm: { + disabled: true, + type: 'InputNumber', + min: 0, + precision: 6 + } + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:9, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + }, + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '到库位代码', + field: 'defaultToLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.selectBusinessTypeToLocation, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key: 'businessType', + value: 'PurchaseReceipt', + isMainValue: false + },{ + key: 'isIn', + value: 'in', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + }, + tableForm: { + enterSearch: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.selectBusinessTypeToLocation, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key: 'businessType', + value: 'PurchaseReceipt', + isMainValue: false + },{ + key: 'isIn', + value: 'in', + isMainValue: false + }], + isRepeat: true,//tableForm下方输入框是否可以重复添加该条数据 + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + }, + isTable:false, + isDetail:false, + isTableForm: false, + isForm: false + }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:11, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + type:'FormDate', + placeholder: '请选择到货日期', + valueFormat: 'x', + }, + isTable:false, + isDetail:false, + isTableForm: false, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + sortTableDefault:11, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + isTable:false, + isDetail:false, + isTableForm: false, + isForm: false + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + sortTableDefault:8, + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + isTable:false, + isDetail:false, + isTableForm: false, + isForm: false + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + sortTableDefault:11, + table: { + width: 180 + }, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + // tableForm:{ + // type:'FormDate', + // placeholder: '请选择过期日期', + // valueFormat: 'x', + // }, + tableForm:{ + type: 'slot', + disabled: true + }, + isTable:false, + isDetail:false, + isTableForm: false, + isForm: false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, +])) + +//表单校验 +export const PurchasereceiptRequestDetailRules = reactive({ + qty: [ + { required: true, message: '请输入退货数量', trigger: 'blur' } + ], + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' } + ], + produceDate: [ + { required: true, message: '请输入生产日期', trigger: 'change' } + ], + arriveDate: [ + { required: true, message: '请输入到货日期', trigger: 'change' } + ], + expireDate: [ + { required: true, message: '请输入过期日期', trigger: 'change' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请输入订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请输入订单行', trigger: 'change' } + ], + packUnit: [ + { required: true, message: '请选择包装规格', trigger: 'change' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'change' } + ], +}) + +/** + * @returns {Array} 采购收货申请子表--子包装号 + */ +export const PurchasereceiptRequestDetailPackingNumber = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + }, + form: { + labelMessage: '该订单号会影响订单行的选择', + componentProps: { + disabled:true, + isSearchList: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled: true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '默认到库位代码', + field: 'defaultToLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + tableForm:{ + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择到货日期', + valueFormat: 'x', + }, + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择过期日期', + valueFormat: 'x', + }, + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select', + disabled: true, + } + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: true + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + isForm: true + }, + { + label: '供应商计量数量', + field: 'supplierPackQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + isTableForm: false, + isForm: false + }, + { + label: '供应商计量单位', + field: 'supplierPackUnit', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0 + }, + }, + tableForm: { + disabled: true, + }, + isTableForm: false, + isForm: false + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTableForm: false, + isForm: false + } +])) + + +export const PurchasereceiptRequestDetailLabel = useCrudSchemas(reactive([ + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + }, + form: { + labelMessage: '该订单号会影响订单行的选择', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '默认到库位代码', + field: 'defaultToLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择到货日期', + valueFormat: 'x', + }, + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择过期日期', + valueFormat: 'x', + }, + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true, + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isTableRowValue: true, //查询当前searchTable表中行数据的值 + isMainValue: false + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isTableRowValue: true, //查询当前searchTable表中行数据的值 + isMainValue: false + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: true + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + isForm: true + }, + { + label: '供应商计量数量', + field: 'supplierPackQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 1, + precision: 6 + }, + }, + isTableForm: false, + isForm: false + }, + { + label: '供应商计量单位', + field: 'supplierPackUnit', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0 + }, + }, + isTableForm: false, + isForm: false + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + }, +])) diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/purchasereturnRequestMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/purchasereturnRequestMain.data.ts new file mode 100644 index 0000000..69d9a94 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/purchasereturnRequestMain.data.ts @@ -0,0 +1,1891 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' +const { t } = useI18n() // 国际化 +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import { + PurchasereceiptRecordDetail, + PurchasereceiptRecordMain +} from '../../purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data' +import * as PurchasereceiptRecordDetailApi from '@/api/wms/purchasereceiptRecordDetail' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as SupplierApi from '@/api/wms/supplier' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import * as BalanceApi from '@/api/wms/balance' +import { Balance } from '@/views/wms/inventoryManage/balance/balance.data' + +import * as InspectionQ2Api from '@/api/qms/inspectionQ2' +import { Q2 } from '@/views/qms/inspectionQ2/inspectionQ2.data' + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize: 10, + pageNo: 1, + code: 'PurchaseReturnRequest' +} +const data = await getRequestsettingApi.getRequestsettingPage(queryParams) +const requestsettingData = data?.list[0] || {} + +// 获取当前操作人的部门 +import { useUserStore } from '@/store/modules/user' +import { TableColumn } from '@/types/table' +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept +// id 转str 否则form回显匹配不到 +userDept.id = userDept.id.toString() +const userDeptArray: any = [userDept] + +// 采购收货记录展示列 +export const PurchasereceiptRecordMain1 = useCrudSchemas( + reactive([ + { + label: '物料代码', + field: 'itemCode', + fixed: 'left', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '采购收货记录单号', + field: 'number', + fixed: 'left', + sort: 'custom', + table: { + width: 200 + }, + isSearch: true + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + isTable:false, + table: { + width: 180 + }, + sortTableDefault: 2, + isSearch: false + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + } + }, + + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '批次', // 实际是子表的从批次,为了不影响页面,单独放上面 + field: 'fromBatch', + sort: 'custom', + isForm: false, + isTableForm: false, + table: { + width: 150 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + } + }, + // { + // label: '包装规格', + // field: 'packUnit', + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + // { + // label: '从库位代码', + // field: 'fromLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // + // }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + } + } + ]) +) + +/** + * @returns {Array} 采购退货申请主表 + */ +export const PurchasereturnRequestMain = useCrudSchemas( + reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isForm: false, + isSearch: true + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1, + isSearch: true, + form: { + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPage, // 查询弹窗所需分页方法 + verificationParams: [ + { + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + + { + // label: '采购收货记录单号', + // field: 'purchaseReceiptRecordNumber', + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + disabled: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择发货单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: '采购收货记录', // 查询弹窗标题 + searchAllSchemas: PurchasereceiptRecordMain1.allSchemas, // 查询弹窗所需类 + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPageReturn, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'supplierCode', + value: 'supplierCode', + isMainValue: true + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + // { + // label: '发货单号', + // field: 'asnNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isForm: false, + // sortTableDefault: 2 + // }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + isTable: false + }, + { + label: 'Q2通知单号', + field: 'q2Number', + sort: 'custom', + isSearch: false, + isDetail: false, + isTable:false, + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + // multiple: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择Q2通知单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: 'Q2通知单号', // 查询弹窗标题 + searchAllSchemas: Q2.allSchemas, // 查询弹窗所需类 + searchPage: InspectionQ2Api.getQ2Page, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'status', + value: '0', + isMainValue: false + }, + { + key: 'supplierCode', + value: 'supplierCode', + isMainValue: true + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '运输方式', + field: 'transferMode', + sort: 'custom', + dictType: DICT_TYPE.TRANSFER_MODE, + dictClass: 'string', + table: { + width: 150 + }, + isTable: false + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + isTable: false + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm: false + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false, + isTableForm: false + }, + { + label: '从月台代码', + field: 'fromDockCode', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + form: { + value: 'PurchaseReturn', + componentProps: { + disabled: true + } + }, + isForm: false, + isTable: false + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + isForm: false, + isTable: false + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + isForm: false, + table: { + width: 150 + }, + isTable: false, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userDeptArray.find((account) => account.id == cellValue)?.name + }, + form: { + value: userDept.id, + component: 'Select', + api: () => userDeptArray, + componentProps: { + disabled: true, + optionsAlias: { + labelField: 'name', + valueField: 'id' + } + } + } + }, + + { + label: '原因', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + }, + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoCommit, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoAgree, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoExecute, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isForm: false, + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.directCreateRecord, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + } + } + ]) +) + +//表单校验 +export const PurchasereturnRequestMainRules = reactive({ + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + dueTime: [ + { required: true, message: '请选择截止时间', trigger: 'blur' } + ], + purchaseReceiptRecordNumber: [ + { required: true, message: '请输入采购收货记录单号', trigger: 'blur' } + ], + carrierCode: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + ], + vehiclePlateNumber: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + fromWarehouseCode: [ + { required: true, message: '请输入从仓库代码', trigger: 'blur' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + directCreateRecord: [ + { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购退货申请子表 + */ +export const PurchasereturnRequestDetail = useCrudSchemas(reactive([ + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + isInpuFocusShow: false, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '采购收货记录信息', + searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPage, + searchCondition: [{ + key: 'number', + value: 'purchaseReceiptRecordNumber', + message: '请填写采购收货记录号!', + isMainValue: true + }] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: false, + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '采购收货记录信息', + searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPage, + searchCondition: [{ + key: 'number', + value: 'purchaseReceiptRecordNumber', + message: '请填写采购收货记录号!', + isMainValue: true + }] + } + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + // labelMessage: '信息提示说明!!!', + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '采购收货记录信息', + searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPageBySupplierCode, + searchCondition: [{ + key: 'supplierCode', + value: 'supplierCode', + message: '请填写采购收货记录号!', + isMainValue: true + }] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: true, + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '采购收货记录信息', + searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPageBySupplierCode, + searchCondition: [{ + key: 'supplierCode', + value: 'supplierCode', + message: '请填写采购收货记录号!', + isMainValue: true + }] + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + isTableForm:false, + isTable:false, + hiddenInMain: true, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm:false, + isTable:false, + hiddenInMain: true, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain: true, + // isTableForm: false, + // isTable: false, + // isForm: false, + // tableForm:{ + // disabled:true + // }, + // form: { + // componentProps:{ + // disabled:true + // } + // } + // }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain: true, + // tableForm:{ + // disabled:true + // }, + // isTableForm: false, + // isTable: false, + // isForm: false, + // form: { + // componentProps:{ + // disabled:true + // } + // } + // }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + // isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + type: 'Select', + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + isTable:false, + isTableForm:false, + tableForm:{ + disabled:true, + type:'InputNumber', + min:0, + precision: 6 + } + }, + // { //与国强联调的时候发现退货数量用的是qty + // label: '退货数量', + // field: 'returnedQty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // min: 0, + // precision: 6, + // disabled:false + // } + // }, + // isTable: false, + // isTableForm: false, + // isForm:false, + // tableForm:{ + // type:'InputNumber', + // min:0, + // precision: 6, + // disabled:false + // } + // }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + // tableForm: { + // enterSearch: true, + // // labelMessage: '信息提示说明!!!', + // isInpuFocusShow: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择从库位代码', + // searchField: 'code', + // searchTitle: '库位代码信息', + // searchAllSchemas: Location.allSchemas, + // searchPage: LocationApi.getLocationListByAreaAndBusinesstype, + // searchCondition: [{ + // key: 'businessType', + // value: 'PurchaseReturn', + // message: '请填写业务类型', + // isMainValue: false + // },{ + // key: 'isIn', + // value: 'out', + // message: '', + // isMainValue: false + // }], + // verificationParams: [{ + // key: 'code', + // action: '==', + // value: '', + // isMainValue: false, + // isSearch: true, + // isFormModel: true, + // }], // 失去焦点校验参数 + // }, + form: { + componentProps:{ + disabled:true + } + }, + // form:{ + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // enterSearch: true, + // isSearchList: true, + // searchListPlaceholder: '请选择从库位代码', + // searchField: 'code', + // searchTitle: '库位代码信息', + // searchAllSchemas: Location.allSchemas, + // searchPage: LocationApi.getLocationListByAreaAndBusinesstype, + // searchCondition: [{ + // key: 'businessType', + // value: 'PurchaseReturn', + // message: '请填写业务类型', + // isMainValue: false + // },{ + // key: 'isIn', + // value: 'out', + // message: '', + // isMainValue: false + // }], + // verificationParams: [{ + // key: 'code', + // action: '==', + // value: '', + // isMainValue: false, + // isSearch: true, + // isFormModel: true, + // }], // 失去焦点校验参数 + // } + // }, + hiddenInMain: true, + isTable: false, + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + isTable: false, + // form: { + // componentProps:{ + // disabled: true, + // } + // }, + form: { + componentProps: { + enterSearch: true, + isSearchList: true, + searchListPlaceholder: '请选择包装号', + searchField: 'packingNumber', + searchTitle: '库存余额信息', // 查询弹窗标题 + searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类 + searchPage: BalanceApi.getBalancePageReturn, + searchCondition: [{ + key: 'itemCode', + value: 'itemCode', + message: '请填写物料代码', + isTableRowValue: true, //查询当前searchTable表中行数据的值 + required:true, + isMainValue:true + }, + // { + // key: 'batch', + // value: 'batch', + // message: '请填写批次', + // isTableRowValue: true, //查询当前searchTable表中行数据的值 + // // required:true, + // isMainValue:true + // } + ], + verificationParams: [{ + key: 'packingNumber', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + }, + tableForm: { + enterSearch: true, + multiple: true, + // labelMessage: '信息提示说明!!!', + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码、批次、从库位代码', + searchField: 'packingNumber', + searchTitle: '库存余额信息', // 查询弹窗标题 + searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类 + searchPage: BalanceApi.getBalancePageReturn, + searchCondition: [{ + key: 'itemCode', + value: 'itemCode', + message: '请填写物料代码', + isTableRowValue: true, //查询当前searchTable表中行数据的值 + required:true, + isMainValue:false + }, + // { + // key: 'batch', + // value: 'batch', + // message: '请填写批次', + // isTableRowValue: true, //查询当前searchTable表中行数据的值 + // required:true, + // isMainValue:false + // } + ], + verificationParams: [{ + key: 'packingNumber', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + }, + }, + { + label: '库存余额', + field: 'inventoryBalance', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 6 + } + }, + tableForm:{ + hidden:false,//控制列是否展示 + type:'InputNumber', + min:0, + precision: 6 + }, + hiddenInMain: true, + isTable: false, + isDetail: false, + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + }, + isForm:false, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6 + } + }, + { + label: '退货原因', + field: 'reasonType', + dictType: DICT_TYPE.RETURN_REASON_TYPE, + dictClass: 'string', + // isSearch: true, + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + type: 'Select', + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '退货原因描述', + field: 'reason', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isSearch: false, + hiddenInMain: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + type: 'Select', + }, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + // { + // label: '到货日期', + // field: 'arriveDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // hiddenInMain: true, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // }, + // isTableForm: false + // }, + // { + // label: '生产日期', + // field: 'produceDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // hiddenInMain: true, + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // disabled: true, + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // format: 'YYYY-MM-DD', + // valueFormat: 'x', + // }, + // isTableForm: false + // }, + // { + // label: '过期日期', + // field: 'expireDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // hiddenInMain: true, + // form: { + // component: 'DatePicker', + // componentProps: { + // disabled: true, + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // isTableForm: false, + // isTable: false, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // format: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // isTableForm:false, + // hiddenInMain: true, + // isForm:false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isForm: false, + isTableForm: false, + isTable: false, + hiddenInMain: true, + form: { + componentProps:{ + disabled:true + } + }, + }, + + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: true, + tableForm:{ + disabled:true + }, + isForm: false, + isTableForm:false, + }, + // { + // label: '接口类型', + // field: 'interfaceType', + // dictType: DICT_TYPE.INTERFACE_TYPE, + // dictClass: 'string', + // isSearch: true, + // isTable: true, + // hiddenInMain: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // isForm:false, + // isTableForm:false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: false, + isTable: false, + hiddenInMain: true, + isForm: false, + form: { + componentProps:{ + disabled:true + } + }, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true + }, + isTableForm:false, + isForm:false + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm:false, + isForm:false + }, + { + label: '原因', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + // { + // label: '操作', + // hiddenInMain:true, + // field: 'action', + // isDetail: false, + // isForm: false , + // table: { + // width: 150, + // fixed: 'right' + // }, + // isTableForm:false, + // } +])) + +//表单校验 +export const PurchasereturnRequestDetailRules = reactive({ + // packingNumber: [ + // { required: true, message: '请输入包装号', trigger: 'blur' } + // ], + // batch: [ + // { required: true, message: '请输入批次', trigger: 'blur' } + // ], + // inventoryStatus: [ + // { required: true, message: '请选择库存状态', trigger: 'change' } + // ], + // poNumber: [ + // { required: true, message: '请输入订单号', trigger: 'blur' } + // ], + // poLine: [ + // { required: true, message: '请输入订单行', trigger: 'blur' } + // ], + // reason: [ + // { required: true, message: '请选择原因', trigger: 'change' } + // ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'blur' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) + +export const PurchasereReturnRequestDetailLabel = useCrudSchemas(reactive([ + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isTableForm: false, + isForm: false + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码1', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true, + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: true + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + isForm: true + }, +])) + diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/purchasereturnRequestMainNew.data.ts b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/purchasereturnRequestMainNew.data.ts new file mode 100644 index 0000000..13c1625 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMOrderTypeMain/purchasereturnRequestMainNew.data.ts @@ -0,0 +1,597 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' +const { t } = useI18n() // 国际化 +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import { + PurchasereceiptRecordDetail, + PurchasereceiptRecordMain +} from '../../purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data' +import * as PurchasereceiptRecordDetailApi from '@/api/wms/purchasereceiptRecordDetail' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as SupplierApi from '@/api/wms/supplier' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import * as BalanceApi from '@/api/wms/balance' +import { Balance } from '@/views/wms/inventoryManage/balance/balance.data' + +import * as InspectionQ2Api from '@/api/qms/inspectionQ2' +import { Q2 } from '@/views/qms/inspectionQ2/inspectionQ2.data' + +import * as ItembasicApi from '@/api/wms/itembasic' +import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' + +let locationList = await LocationApi.selectBusinessTypeOutLocationAll({ + businessType:'PurchaseReturn', + isIn:'out' +}) +locationList = locationList.list.map(item=>({ + label :item.code, + value :item.code +})) + +console.log('locationList',locationList) + + +// 获取当前操作人的部门 +import { useUserStore } from '@/store/modules/user' +import { TableColumn } from '@/types/table' +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept +// id 转str 否则form回显匹配不到 +userDept.id = userDept.id.toString() +const userDeptArray: any = [userDept] + +/** + * @returns {Array} 采购退货申请主表 + */ +export const PurchasereturnRequestMainNew = useCrudSchemas( + reactive([ + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + isSearch: true, + table:{ + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch:true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '物料基础信息', // 查询弹窗标题 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + action: '==', + isSearch: true, + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true + }], // 失去焦点校验参数 + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '供应商', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Select', + componentProps: { + options: [], + optionsAlias: { + labelField: 'supplierCode', + valueField: 'supplierCode' + }, + filterable: true, + } + } + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + table: { + width: 180, + }, + isForm: true, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: ' ', + field: 'hahaha', + table: { + width: 180 + }, + isTable:false, + isDetail:false, + form: { + componentProps: { + type: 'slot', + } + }, + }, + { + label: ' ', + field: 'hehehe', + table: { + width: 180 + }, + isTable:false, + isDetail:false, + form: { + componentProps: { + type: 'slot', + } + }, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '采购订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '收货单号', + field: 'receiptNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '退货库位', + field: 'locationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Select', + value:locationList[0]['value'], + componentProps: { + options: locationList + } + } + }, + { + label: 'Q2通知单号', + field: 'q2Number', + sort: 'custom', + isSearch: false, + isDetail: true, + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + // multiple: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择Q2通知单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: 'Q2通知单号', // 查询弹窗标题 + searchAllSchemas: Q2.allSchemas, // 查询弹窗所需类 + searchPage: InspectionQ2Api.getQ2Page, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'status', + value: '0', + isMainValue: false + }, + { + key: 'supplierCode', + value: 'supplierCode', + isMainValue: true + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + } + } + ]) +) +//表单校验 +export const PurchasereturnRequestMainRulesNew = reactive({ + itemCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + poNumber: [ + { required: true, message: '请选择采购订单号', trigger: 'blur' } + ], + poLine: [ + { required: true, message: '请选择订单行', trigger: 'blur' } + ], + locationCode: [ + { required: true, message: '请选择收货单明细', trigger: 'blur' } + ] +}) + +export const PurchasereturnPurchasereceiptRecordNew = useCrudSchemas( + reactive([ + { + label: '收货日期', + field: 'currentDeliveryDate', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '收货单号', + field: 'receiptNumber', + sort: 'custom', + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + } + ]) +) + + + +/** + * @returns {Array} 采购退货申请子表 + */ +export const PurchasereturnRequestDetailNew = useCrudSchemas(reactive([ + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + type: 'Select', + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '隔离库存数量', + field: 'inventoryBalance', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 6 + } + }, + tableForm:{ + disabled:true, + hidden:false,//控制列是否展示 + type:'InputNumber', + min:0, + precision: 6 + }, + hiddenInMain: true, + isTable: false, + isDetail: false, + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + isTable:false, + isTableForm:true, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6 + } + }, + { + label: '退货原因', + field: 'reasonType', + dictType: DICT_TYPE.RETURN_REASON_TYPE, + dictClass: 'string', + // isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + type: 'Select', + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '退货原因描述', + field: 'reason', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false, + } +])) + +//表单校验 +export const PurchasereturnRequestDetailRulesNew = reactive({ +}) + + diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue new file mode 100644 index 0000000..02e5672 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/index.vue @@ -0,0 +1,1093 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts new file mode 100644 index 0000000..03fec37 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMain/purchasereturnRequestMain.data.ts @@ -0,0 +1,1861 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' +const { t } = useI18n() // 国际化 +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import { + PurchasereceiptRecordDetail, + PurchasereceiptRecordMain +} from '../../purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data' +import * as PurchasereceiptRecordDetailApi from '@/api/wms/purchasereceiptRecordDetail' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as SupplierApi from '@/api/wms/supplier' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import * as BalanceApi from '@/api/wms/balance' +import { Balance } from '@/views/wms/inventoryManage/balance/balance.data' + +import * as InspectionQ2Api from '@/api/qms/inspectionQ2' +import { Q2 } from '@/views/qms/inspectionQ2/inspectionQ2.data' + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize: 10, + pageNo: 1, + code: 'PurchaseReturnRequest' +} +const data = await getRequestsettingApi.getRequestsettingPage(queryParams) +const requestsettingData = data?.list[0] || {} + +// 获取当前操作人的部门 +import { useUserStore } from '@/store/modules/user' +import { TableColumn } from '@/types/table' +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept +// id 转str 否则form回显匹配不到 +userDept.id = userDept.id.toString() +const userDeptArray: any = [userDept] + +// 采购收货记录展示列 +export const PurchasereceiptRecordMain1 = useCrudSchemas( + reactive([ + { + label: '物料代码', + field: 'itemCode', + fixed: 'left', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '采购收货记录单号', + field: 'number', + fixed: 'left', + sort: 'custom', + table: { + width: 200 + }, + isSearch: true + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 2, + isSearch: true + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + } + }, + + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '批次', // 实际是子表的从批次,为了不影响页面,单独放上面 + field: 'fromBatch', + sort: 'custom', + isForm: false, + isTableForm: false, + table: { + width: 150 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + } + }, + // { + // label: '包装规格', + // field: 'packUnit', + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + // { + // label: '从库位代码', + // field: 'fromLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // + // }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + } + } + ]) +) + +/** + * @returns {Array} 采购退货申请主表 + */ +export const PurchasereturnRequestMain = useCrudSchemas( + reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isForm: false, + isSearch: true + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1, + isSearch: true, + form: { + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPage, // 查询弹窗所需分页方法 + verificationParams: [ + { + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + + { + // label: '采购收货记录单号', + // field: 'purchaseReceiptRecordNumber', + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + disabled: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择发货单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: '采购收货记录', // 查询弹窗标题 + searchAllSchemas: PurchasereceiptRecordMain1.allSchemas, // 查询弹窗所需类 + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPageReturn, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'supplierCode', + value: 'supplierCode', + isMainValue: true + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + // { + // label: '发货单号', + // field: 'asnNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isForm: false, + // sortTableDefault: 2 + // }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + isTable: false + }, + { + label: 'Q2通知单号', + field: 'q2Number', + sort: 'custom', + isSearch: false, + isDetail: true, + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + // multiple: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择Q2通知单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: 'Q2通知单号', // 查询弹窗标题 + searchAllSchemas: Q2.allSchemas, // 查询弹窗所需类 + searchPage: InspectionQ2Api.getQ2Page, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'status', + value: '0', + isMainValue: false + }, + { + key: 'supplierCode', + value: 'supplierCode', + isMainValue: true + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '运输方式', + field: 'transferMode', + sort: 'custom', + dictType: DICT_TYPE.TRANSFER_MODE, + dictClass: 'string', + table: { + width: 150 + }, + isTable: false + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + isTable: false + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm: false + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false, + isTableForm: false + }, + { + label: '从月台代码', + field: 'fromDockCode', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + form: { + value: 'PurchaseReturn', + componentProps: { + disabled: true + } + }, + isForm: false, + isTable: false + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + isForm: false, + isTable: false + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + isForm: false, + table: { + width: 150 + }, + isTable: false, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userDeptArray.find((account) => account.id == cellValue)?.name + }, + form: { + value: userDept.id, + component: 'Select', + api: () => userDeptArray, + componentProps: { + disabled: true, + optionsAlias: { + labelField: 'name', + valueField: 'id' + } + } + } + }, + + { + label: '原因', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + }, + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoCommit, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoAgree, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoExecute, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isForm: false, + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.directCreateRecord, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + } + } + ]) +) + +//表单校验 +export const PurchasereturnRequestMainRules = reactive({ + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + asnNumber: [ + { required: true, message: '请输入发货单号', trigger: 'blur' } + ], + dueTime: [ + { required: true, message: '请选择截止时间', trigger: 'blur' } + ], + purchaseReceiptRecordNumber: [ + { required: true, message: '请输入采购收货记录单号', trigger: 'blur' } + ], + carrierCode: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + ], + vehiclePlateNumber: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + fromWarehouseCode: [ + { required: true, message: '请输入从仓库代码', trigger: 'blur' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + directCreateRecord: [ + { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购退货申请子表 + */ +export const PurchasereturnRequestDetail = useCrudSchemas(reactive([ + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + isInpuFocusShow: false, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '采购收货记录信息', + searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPage, + searchCondition: [{ + key: 'number', + value: 'purchaseReceiptRecordNumber', + message: '请填写采购收货记录号!', + isMainValue: true + }] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: false, + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '采购收货记录信息', + searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPage, + searchCondition: [{ + key: 'number', + value: 'purchaseReceiptRecordNumber', + message: '请填写采购收货记录号!', + isMainValue: true + }] + } + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + // labelMessage: '信息提示说明!!!', + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '采购收货记录信息', + searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPageBySupplierCode, + searchCondition: [{ + key: 'supplierCode', + value: 'supplierCode', + message: '请填写采购收货记录号!', + isMainValue: true + }] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: true, + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '采购收货记录信息', + searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPageBySupplierCode, + searchCondition: [{ + key: 'supplierCode', + value: 'supplierCode', + message: '请填写采购收货记录号!', + isMainValue: true + }] + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + isTableForm:false, + isTable:false, + hiddenInMain: true, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm:false, + isTable:false, + hiddenInMain: true, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain: true, + // isTableForm: false, + // isTable: false, + // isForm: false, + // tableForm:{ + // disabled:true + // }, + // form: { + // componentProps:{ + // disabled:true + // } + // } + // }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain: true, + // tableForm:{ + // disabled:true + // }, + // isTableForm: false, + // isTable: false, + // isForm: false, + // form: { + // componentProps:{ + // disabled:true + // } + // } + // }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + // isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + type: 'Select', + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + isTable:false, + isTableForm:false, + tableForm:{ + disabled:true, + type:'InputNumber', + min:0, + precision: 6 + } + }, + // { //与国强联调的时候发现退货数量用的是qty + // label: '退货数量', + // field: 'returnedQty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // min: 0, + // precision: 6, + // disabled:false + // } + // }, + // isTable: false, + // isTableForm: false, + // isForm:false, + // tableForm:{ + // type:'InputNumber', + // min:0, + // precision: 6, + // disabled:false + // } + // }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + // tableForm: { + // enterSearch: true, + // // labelMessage: '信息提示说明!!!', + // isInpuFocusShow: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择从库位代码', + // searchField: 'code', + // searchTitle: '库位代码信息', + // searchAllSchemas: Location.allSchemas, + // searchPage: LocationApi.getLocationListByAreaAndBusinesstype, + // searchCondition: [{ + // key: 'businessType', + // value: 'PurchaseReturn', + // message: '请填写业务类型', + // isMainValue: false + // },{ + // key: 'isIn', + // value: 'out', + // message: '', + // isMainValue: false + // }], + // verificationParams: [{ + // key: 'code', + // action: '==', + // value: '', + // isMainValue: false, + // isSearch: true, + // isFormModel: true, + // }], // 失去焦点校验参数 + // }, + form: { + componentProps:{ + disabled:true + } + }, + // form:{ + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // enterSearch: true, + // isSearchList: true, + // searchListPlaceholder: '请选择从库位代码', + // searchField: 'code', + // searchTitle: '库位代码信息', + // searchAllSchemas: Location.allSchemas, + // searchPage: LocationApi.getLocationListByAreaAndBusinesstype, + // searchCondition: [{ + // key: 'businessType', + // value: 'PurchaseReturn', + // message: '请填写业务类型', + // isMainValue: false + // },{ + // key: 'isIn', + // value: 'out', + // message: '', + // isMainValue: false + // }], + // verificationParams: [{ + // key: 'code', + // action: '==', + // value: '', + // isMainValue: false, + // isSearch: true, + // isFormModel: true, + // }], // 失去焦点校验参数 + // } + // }, + hiddenInMain: true, + isTable: false, + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + isTable: false, + // form: { + // componentProps:{ + // disabled: true, + // } + // }, + form: { + componentProps: { + enterSearch: true, + isSearchList: true, + searchListPlaceholder: '请选择包装号', + searchField: 'packingNumber', + searchTitle: '库存余额信息', // 查询弹窗标题 + searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类 + searchPage: BalanceApi.getBalancePageReturn, + searchCondition: [{ + key: 'itemCode', + value: 'itemCode', + message: '请填写物料代码', + isTableRowValue: true, //查询当前searchTable表中行数据的值 + required:true, + isMainValue:true + }, + // { + // key: 'batch', + // value: 'batch', + // message: '请填写批次', + // isTableRowValue: true, //查询当前searchTable表中行数据的值 + // // required:true, + // isMainValue:true + // } + ], + verificationParams: [{ + key: 'packingNumber', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + }, + tableForm: { + enterSearch: true, + multiple: true, + // labelMessage: '信息提示说明!!!', + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码、批次、从库位代码', + searchField: 'packingNumber', + searchTitle: '库存余额信息', // 查询弹窗标题 + searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类 + searchPage: BalanceApi.getBalancePageReturn, + searchCondition: [{ + key: 'itemCode', + value: 'itemCode', + message: '请填写物料代码', + isTableRowValue: true, //查询当前searchTable表中行数据的值 + required:true, + isMainValue:false + }, + // { + // key: 'batch', + // value: 'batch', + // message: '请填写批次', + // isTableRowValue: true, //查询当前searchTable表中行数据的值 + // required:true, + // isMainValue:false + // } + ], + verificationParams: [{ + key: 'packingNumber', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + }, + }, + { + label: '库存余额', + field: 'inventoryBalance', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 6 + } + }, + tableForm:{ + hidden:false,//控制列是否展示 + type:'InputNumber', + min:0, + precision: 6 + }, + hiddenInMain: true, + isTable: false, + isDetail: false, + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + }, + isForm:false, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6 + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isSearch: true, + hiddenInMain: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + type: 'Select', + }, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + // { + // label: '到货日期', + // field: 'arriveDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // hiddenInMain: true, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // }, + // isTableForm: false + // }, + // { + // label: '生产日期', + // field: 'produceDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // hiddenInMain: true, + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // disabled: true, + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // format: 'YYYY-MM-DD', + // valueFormat: 'x', + // }, + // isTableForm: false + // }, + // { + // label: '过期日期', + // field: 'expireDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // hiddenInMain: true, + // form: { + // component: 'DatePicker', + // componentProps: { + // disabled: true, + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // isTableForm: false, + // isTable: false, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // format: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // isTableForm:false, + // hiddenInMain: true, + // isForm:false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isForm: false, + isTableForm: false, + isTable: false, + hiddenInMain: true, + form: { + componentProps:{ + disabled:true + } + }, + }, + + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: true, + tableForm:{ + disabled:true + }, + isForm: false, + isTableForm:false, + }, + // { + // label: '接口类型', + // field: 'interfaceType', + // dictType: DICT_TYPE.INTERFACE_TYPE, + // dictClass: 'string', + // isSearch: true, + // isTable: true, + // hiddenInMain: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // isForm:false, + // isTableForm:false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: false, + isTable: false, + hiddenInMain: true, + isForm: false, + form: { + componentProps:{ + disabled:true + } + }, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true + }, + isTableForm:false, + isForm:false + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm:false, + isForm:false + }, + { + label: '原因', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false, + } +])) + +//表单校验 +export const PurchasereturnRequestDetailRules = reactive({ + // packingNumber: [ + // { required: true, message: '请输入包装号', trigger: 'blur' } + // ], + // batch: [ + // { required: true, message: '请输入批次', trigger: 'blur' } + // ], + // inventoryStatus: [ + // { required: true, message: '请选择库存状态', trigger: 'change' } + // ], + // poNumber: [ + // { required: true, message: '请输入订单号', trigger: 'blur' } + // ], + // poLine: [ + // { required: true, message: '请输入订单行', trigger: 'blur' } + // ], + // reason: [ + // { required: true, message: '请选择原因', trigger: 'change' } + // ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'blur' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) + +export const PurchasereReturnRequestDetailLabel = useCrudSchemas(reactive([ + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isTableForm: false, + isForm: false + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码1', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true, + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: true + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + isForm: true + }, +])) + diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMainNew/index.vue b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMainNew/index.vue new file mode 100644 index 0000000..cf11e26 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMainNew/index.vue @@ -0,0 +1,1161 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMainNew/purchasereturnRequestMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMainNew/purchasereturnRequestMain.data.ts new file mode 100644 index 0000000..3f63b07 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMainNew/purchasereturnRequestMain.data.ts @@ -0,0 +1,1886 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' +const { t } = useI18n() // 国际化 +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import { + PurchasereceiptRecordDetail, + PurchasereceiptRecordMain +} from '../../purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data' +import * as PurchasereceiptRecordDetailApi from '@/api/wms/purchasereceiptRecordDetail' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as SupplierApi from '@/api/wms/supplier' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import * as BalanceApi from '@/api/wms/balance' +import { Balance } from '@/views/wms/inventoryManage/balance/balance.data' + +import * as InspectionQ2Api from '@/api/qms/inspectionQ2' +import { Q2 } from '@/views/qms/inspectionQ2/inspectionQ2.data' + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize: 10, + pageNo: 1, + code: 'PurchaseReturnRequest' +} +const data = await getRequestsettingApi.getRequestsettingPage(queryParams) +const requestsettingData = data?.list[0] || {} + +// 获取当前操作人的部门 +import { useUserStore } from '@/store/modules/user' +import { TableColumn } from '@/types/table' +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept +// id 转str 否则form回显匹配不到 +userDept.id = userDept.id.toString() +const userDeptArray: any = [userDept] + +// 采购收货记录展示列 +export const PurchasereceiptRecordMain1 = useCrudSchemas( + reactive([ + { + label: '物料代码', + field: 'itemCode', + fixed: 'left', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '采购收货记录单号', + field: 'number', + fixed: 'left', + sort: 'custom', + table: { + width: 200 + }, + isSearch: true + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 2, + isSearch: true + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + } + }, + + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '批次', // 实际是子表的从批次,为了不影响页面,单独放上面 + field: 'fromBatch', + sort: 'custom', + isForm: false, + isTableForm: false, + table: { + width: 150 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + } + }, + // { + // label: '包装规格', + // field: 'packUnit', + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + // { + // label: '从库位代码', + // field: 'fromLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // + // }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + } + } + ]) +) + +/** + * @returns {Array} 采购退货申请主表 + */ +export const PurchasereturnRequestMain = useCrudSchemas( + reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isForm: false, + isSearch: true + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1, + isSearch: true, + form: { + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPage, // 查询弹窗所需分页方法 + verificationParams: [ + { + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + + { + // label: '采购收货记录单号', + // field: 'purchaseReceiptRecordNumber', + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + disabled: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择发货单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: '采购收货记录', // 查询弹窗标题 + searchAllSchemas: PurchasereceiptRecordMain1.allSchemas, // 查询弹窗所需类 + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPageReturn, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'supplierCode', + value: 'supplierCode', + isMainValue: true + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + // { + // label: '发货单号', + // field: 'asnNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isForm: false, + // sortTableDefault: 2 + // }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + isTable: false + }, + { + label: 'Q2通知单号', + field: 'q2Number', + sort: 'custom', + isSearch: false, + isDetail: true, + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + // multiple: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择Q2通知单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: 'Q2通知单号', // 查询弹窗标题 + searchAllSchemas: Q2.allSchemas, // 查询弹窗所需类 + searchPage: InspectionQ2Api.getQ2Page, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'status', + value: '0', + isMainValue: false + }, + { + key: 'supplierCode', + value: 'supplierCode', + isMainValue: true + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '运输方式', + field: 'transferMode', + sort: 'custom', + dictType: DICT_TYPE.TRANSFER_MODE, + dictClass: 'string', + table: { + width: 150 + }, + isTable: false + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + isTable: false + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm: false + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false, + isTableForm: false + }, + { + label: '从月台代码', + field: 'fromDockCode', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + form: { + value: 'PurchaseReturn', + componentProps: { + disabled: true + } + }, + isForm: false, + isTable: false + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + isForm: false, + isTable: false + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + isForm: false, + table: { + width: 150 + }, + isTable: false, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userDeptArray.find((account) => account.id == cellValue)?.name + }, + form: { + value: userDept.id, + component: 'Select', + api: () => userDeptArray, + componentProps: { + disabled: true, + optionsAlias: { + labelField: 'name', + valueField: 'id' + } + } + } + }, + + { + label: '原因', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + }, + 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')] + }, + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x' + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoCommit, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoAgree, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoExecute, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isForm: false, + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.directCreateRecord, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + } + } + ]) +) + +//表单校验 +export const PurchasereturnRequestMainRules = reactive({ + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + dueTime: [ + { required: true, message: '请选择截止时间', trigger: 'blur' } + ], + purchaseReceiptRecordNumber: [ + { required: true, message: '请输入采购收货记录单号', trigger: 'blur' } + ], + carrierCode: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + ], + vehiclePlateNumber: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + fromWarehouseCode: [ + { required: true, message: '请输入从仓库代码', trigger: 'blur' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + directCreateRecord: [ + { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购退货申请子表 + */ +export const PurchasereturnRequestDetail = useCrudSchemas(reactive([ + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + isInpuFocusShow: false, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '采购收货记录信息', + searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPage, + searchCondition: [{ + key: 'number', + value: 'purchaseReceiptRecordNumber', + message: '请填写采购收货记录号!', + isMainValue: true + }] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: false, + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '采购收货记录信息', + searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPage, + searchCondition: [{ + key: 'number', + value: 'purchaseReceiptRecordNumber', + message: '请填写采购收货记录号!', + isMainValue: true + }] + } + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + // labelMessage: '信息提示说明!!!', + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '采购收货记录信息', + searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPageBySupplierCode, + searchCondition: [{ + key: 'supplierCode', + value: 'supplierCode', + message: '请填写采购收货记录号!', + isMainValue: true + }] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: true, + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '采购收货记录信息', + searchAllSchemas: PurchasereceiptRecordDetail.allSchemas, + searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPageBySupplierCode, + searchCondition: [{ + key: 'supplierCode', + value: 'supplierCode', + message: '请填写采购收货记录号!', + isMainValue: true + }] + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + isTableForm:false, + isTable:false, + hiddenInMain: true, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm:false, + isTable:false, + hiddenInMain: true, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain: true, + // isTableForm: false, + // isTable: false, + // isForm: false, + // tableForm:{ + // disabled:true + // }, + // form: { + // componentProps:{ + // disabled:true + // } + // } + // }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain: true, + // tableForm:{ + // disabled:true + // }, + // isTableForm: false, + // isTable: false, + // isForm: false, + // form: { + // componentProps:{ + // disabled:true + // } + // } + // }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + // isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + type: 'Select', + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + isTable:false, + isTableForm:false, + tableForm:{ + disabled:true, + type:'InputNumber', + min:0, + precision: 6 + } + }, + // { //与国强联调的时候发现退货数量用的是qty + // label: '退货数量', + // field: 'returnedQty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // min: 0, + // precision: 6, + // disabled:false + // } + // }, + // isTable: false, + // isTableForm: false, + // isForm:false, + // tableForm:{ + // type:'InputNumber', + // min:0, + // precision: 6, + // disabled:false + // } + // }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + // tableForm: { + // enterSearch: true, + // // labelMessage: '信息提示说明!!!', + // isInpuFocusShow: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择从库位代码', + // searchField: 'code', + // searchTitle: '库位代码信息', + // searchAllSchemas: Location.allSchemas, + // searchPage: LocationApi.getLocationListByAreaAndBusinesstype, + // searchCondition: [{ + // key: 'businessType', + // value: 'PurchaseReturn', + // message: '请填写业务类型', + // isMainValue: false + // },{ + // key: 'isIn', + // value: 'out', + // message: '', + // isMainValue: false + // }], + // verificationParams: [{ + // key: 'code', + // action: '==', + // value: '', + // isMainValue: false, + // isSearch: true, + // isFormModel: true, + // }], // 失去焦点校验参数 + // }, + form: { + componentProps:{ + disabled:true + } + }, + // form:{ + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // enterSearch: true, + // isSearchList: true, + // searchListPlaceholder: '请选择从库位代码', + // searchField: 'code', + // searchTitle: '库位代码信息', + // searchAllSchemas: Location.allSchemas, + // searchPage: LocationApi.getLocationListByAreaAndBusinesstype, + // searchCondition: [{ + // key: 'businessType', + // value: 'PurchaseReturn', + // message: '请填写业务类型', + // isMainValue: false + // },{ + // key: 'isIn', + // value: 'out', + // message: '', + // isMainValue: false + // }], + // verificationParams: [{ + // key: 'code', + // action: '==', + // value: '', + // isMainValue: false, + // isSearch: true, + // isFormModel: true, + // }], // 失去焦点校验参数 + // } + // }, + hiddenInMain: true, + isTable: false, + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + isTable: false, + // form: { + // componentProps:{ + // disabled: true, + // } + // }, + form: { + componentProps: { + enterSearch: true, + isSearchList: true, + searchListPlaceholder: '请选择包装号', + searchField: 'packingNumber', + searchTitle: '库存余额信息', // 查询弹窗标题 + searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类 + searchPage: BalanceApi.getBalancePageReturn, + searchCondition: [{ + key: 'itemCode', + value: 'itemCode', + message: '请填写物料代码', + isTableRowValue: true, //查询当前searchTable表中行数据的值 + required:true, + isMainValue:true + }, + // { + // key: 'batch', + // value: 'batch', + // message: '请填写批次', + // isTableRowValue: true, //查询当前searchTable表中行数据的值 + // // required:true, + // isMainValue:true + // } + ], + verificationParams: [{ + key: 'packingNumber', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + }, + tableForm: { + enterSearch: true, + multiple: true, + // labelMessage: '信息提示说明!!!', + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码、批次、从库位代码', + searchField: 'packingNumber', + searchTitle: '库存余额信息', // 查询弹窗标题 + searchAllSchemas: Balance.allSchemas, // 查询弹窗所需类 + searchPage: BalanceApi.getBalancePageReturn, + searchCondition: [{ + key: 'itemCode', + value: 'itemCode', + message: '请填写物料代码', + isTableRowValue: true, //查询当前searchTable表中行数据的值 + required:true, + isMainValue:false + }, + // { + // key: 'batch', + // value: 'batch', + // message: '请填写批次', + // isTableRowValue: true, //查询当前searchTable表中行数据的值 + // required:true, + // isMainValue:false + // } + ], + verificationParams: [{ + key: 'packingNumber', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + }, + }, + { + label: '库存余额', + field: 'inventoryBalance', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 6 + } + }, + tableForm:{ + hidden:false,//控制列是否展示 + type:'InputNumber', + min:0, + precision: 6 + }, + hiddenInMain: true, + isTable: false, + isDetail: false, + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + }, + isForm:false, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6 + } + }, + { + label: '退货原因', + field: 'reasonType', + dictType: DICT_TYPE.RETURN_REASON_TYPE, + dictClass: 'string', + // isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + type: 'Select', + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '退货原因描述', + field: 'reason', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isSearch: true, + hiddenInMain: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + type: 'Select', + }, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + // { + // label: '到货日期', + // field: 'arriveDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // hiddenInMain: true, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // }, + // isTableForm: false + // }, + // { + // label: '生产日期', + // field: 'produceDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // hiddenInMain: true, + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // disabled: true, + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // format: 'YYYY-MM-DD', + // valueFormat: 'x', + // }, + // isTableForm: false + // }, + // { + // label: '过期日期', + // field: 'expireDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // hiddenInMain: true, + // form: { + // component: 'DatePicker', + // componentProps: { + // disabled: true, + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // isTableForm: false, + // isTable: false, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // format: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // isTableForm:false, + // hiddenInMain: true, + // isForm:false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isForm: false, + isTableForm: false, + isTable: false, + hiddenInMain: true, + form: { + componentProps:{ + disabled:true + } + }, + }, + + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: true, + tableForm:{ + disabled:true + }, + isForm: false, + isTableForm:false, + }, + // { + // label: '接口类型', + // field: 'interfaceType', + // dictType: DICT_TYPE.INTERFACE_TYPE, + // dictClass: 'string', + // isSearch: true, + // isTable: true, + // hiddenInMain: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // isForm:false, + // isTableForm:false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: false, + isTable: false, + hiddenInMain: true, + isForm: false, + form: { + componentProps:{ + disabled:true + } + }, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true + }, + isTableForm:false, + isForm:false + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm:false, + isForm:false + }, + { + label: '原因', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + // { + // label: '操作', + // hiddenInMain:true, + // field: 'action', + // isDetail: false, + // isForm: false , + // table: { + // width: 150, + // fixed: 'right' + // }, + // isTableForm:false, + // } +])) + +//表单校验 +export const PurchasereturnRequestDetailRules = reactive({ + // packingNumber: [ + // { required: true, message: '请输入包装号', trigger: 'blur' } + // ], + // batch: [ + // { required: true, message: '请输入批次', trigger: 'blur' } + // ], + // inventoryStatus: [ + // { required: true, message: '请选择库存状态', trigger: 'change' } + // ], + // poNumber: [ + // { required: true, message: '请输入订单号', trigger: 'blur' } + // ], + // poLine: [ + // { required: true, message: '请输入订单行', trigger: 'blur' } + // ], + // reason: [ + // { required: true, message: '请选择原因', trigger: 'change' } + // ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'blur' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) + +export const PurchasereReturnRequestDetailLabel = useCrudSchemas(reactive([ + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isTableForm: false, + isForm: false + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码1', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true, + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: true + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + isForm: true + }, +])) + diff --git a/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMainNew/purchasereturnRequestMainNew.data.ts b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMainNew/purchasereturnRequestMainNew.data.ts new file mode 100644 index 0000000..13c1625 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturn/purchasereturnRequestMainNew/purchasereturnRequestMainNew.data.ts @@ -0,0 +1,597 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' +const { t } = useI18n() // 国际化 +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import { + PurchasereceiptRecordDetail, + PurchasereceiptRecordMain +} from '../../purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data' +import * as PurchasereceiptRecordDetailApi from '@/api/wms/purchasereceiptRecordDetail' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as SupplierApi from '@/api/wms/supplier' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import * as BalanceApi from '@/api/wms/balance' +import { Balance } from '@/views/wms/inventoryManage/balance/balance.data' + +import * as InspectionQ2Api from '@/api/qms/inspectionQ2' +import { Q2 } from '@/views/qms/inspectionQ2/inspectionQ2.data' + +import * as ItembasicApi from '@/api/wms/itembasic' +import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' + +let locationList = await LocationApi.selectBusinessTypeOutLocationAll({ + businessType:'PurchaseReturn', + isIn:'out' +}) +locationList = locationList.list.map(item=>({ + label :item.code, + value :item.code +})) + +console.log('locationList',locationList) + + +// 获取当前操作人的部门 +import { useUserStore } from '@/store/modules/user' +import { TableColumn } from '@/types/table' +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept +// id 转str 否则form回显匹配不到 +userDept.id = userDept.id.toString() +const userDeptArray: any = [userDept] + +/** + * @returns {Array} 采购退货申请主表 + */ +export const PurchasereturnRequestMainNew = useCrudSchemas( + reactive([ + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + isSearch: true, + table:{ + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch:true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '物料基础信息', // 查询弹窗标题 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + action: '==', + isSearch: true, + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true + }], // 失去焦点校验参数 + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '供应商', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Select', + componentProps: { + options: [], + optionsAlias: { + labelField: 'supplierCode', + valueField: 'supplierCode' + }, + filterable: true, + } + } + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + table: { + width: 180, + }, + isForm: true, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: ' ', + field: 'hahaha', + table: { + width: 180 + }, + isTable:false, + isDetail:false, + form: { + componentProps: { + type: 'slot', + } + }, + }, + { + label: ' ', + field: 'hehehe', + table: { + width: 180 + }, + isTable:false, + isDetail:false, + form: { + componentProps: { + type: 'slot', + } + }, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '采购订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '收货单号', + field: 'receiptNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '退货库位', + field: 'locationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Select', + value:locationList[0]['value'], + componentProps: { + options: locationList + } + } + }, + { + label: 'Q2通知单号', + field: 'q2Number', + sort: 'custom', + isSearch: false, + isDetail: true, + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + // multiple: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择Q2通知单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: 'Q2通知单号', // 查询弹窗标题 + searchAllSchemas: Q2.allSchemas, // 查询弹窗所需类 + searchPage: InspectionQ2Api.getQ2Page, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + }, + { + key: 'status', + value: '0', + isMainValue: false + }, + { + key: 'supplierCode', + value: 'supplierCode', + isMainValue: true + } + ], + verificationParams: [ + { + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true + } + ] // 失去焦点校验参数 + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + } + } + ]) +) +//表单校验 +export const PurchasereturnRequestMainRulesNew = reactive({ + itemCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + poNumber: [ + { required: true, message: '请选择采购订单号', trigger: 'blur' } + ], + poLine: [ + { required: true, message: '请选择订单行', trigger: 'blur' } + ], + locationCode: [ + { required: true, message: '请选择收货单明细', trigger: 'blur' } + ] +}) + +export const PurchasereturnPurchasereceiptRecordNew = useCrudSchemas( + reactive([ + { + label: '收货日期', + field: 'currentDeliveryDate', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '收货单号', + field: 'receiptNumber', + sort: 'custom', + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + } + ]) +) + + + +/** + * @returns {Array} 采购退货申请子表 + */ +export const PurchasereturnRequestDetailNew = useCrudSchemas(reactive([ + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + type: 'Select', + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '隔离库存数量', + field: 'inventoryBalance', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 6 + } + }, + tableForm:{ + disabled:true, + hidden:false,//控制列是否展示 + type:'InputNumber', + min:0, + precision: 6 + }, + hiddenInMain: true, + isTable: false, + isDetail: false, + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + isTable:false, + isTableForm:true, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6 + } + }, + { + label: '退货原因', + field: 'reasonType', + dictType: DICT_TYPE.RETURN_REASON_TYPE, + dictClass: 'string', + // isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + type: 'Select', + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '退货原因描述', + field: 'reason', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false, + } +])) + +//表单校验 +export const PurchasereturnRequestDetailRulesNew = reactive({ +}) + + diff --git a/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRecordSpareMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRecordSpareMain/index.vue new file mode 100644 index 0000000..1e60303 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRecordSpareMain/index.vue @@ -0,0 +1,201 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRecordSpareMain/purchasereturnRecordSpareMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRecordSpareMain/purchasereturnRecordSpareMain.data.ts new file mode 100644 index 0000000..2d573ff --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRecordSpareMain/purchasereturnRecordSpareMain.data.ts @@ -0,0 +1,905 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' + +/** + * @returns {Array} 采购退货记录主表 + */ +export const PurchasereturnRecordMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 190, + fixed: 'left' + }, + sortTableDefault: 1012, + sortSearchDefault:1, + isSearch: true + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 190 + }, + isTable: true + }, + // { + // label: '任务单号', + // field: 'jobNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable: false + // }, + // { + // label: '采购收货记录单号', + // field: 'purchaseReceiptRecordNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isSearch: true, + // sortTableDefault: 3, + // sortSearchDefault: 5, + // }, + // { + // label: 'qad采购退货记录单号', + // field: 'qadPurchaseReturnRecordCode', + // sort: 'custom', + // table: { + // width: 180 + // }, + // sortSearchDefault:3, + // sortTableDefault: 4, + // isTable: false + // }, + // { + // label: '发货单号', + // field: 'asnNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // sortSearchDefault:3, + // isSearch: false, + // sortTableDefault: 2 + // }, + // { + // label: '要货计划单号', + // field: 'ppNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable: false + // }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + }, + // { + // label: '从月台代码', + // field: 'fromDockCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false + // }, + // { + // label: '承运商', + // field: 'carrierCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false + // }, + // { + // label: '运输方式', + // field: 'transferMode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false + // }, + // { + // label: '车牌号', + // field: 'vehiclePlateNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false + // }, + // { + // label: '从仓库代码', + // field: 'fromWarehouseCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false + // }, + // { + // label: '到仓库代码', + // field: 'toWarehouseCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false + // }, + { + label: '出库事务类型', + field: 'outTransactionType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '入库事务类型', + field: 'inTransactionType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + // { + // label: '执行时间', + // field: 'executeTime', + // formatter: dateFormatter, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable: false, + // form: { + // component: 'DatePicker', + // componentProps: { + // type: 'datetime', + // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'x', + // } + // }, + // }, + // { + // label: '生效日期', + // field: 'activeDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable: false, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + // { + // label: '接口类型', + // field: 'interfaceType', + // dictType: DICT_TYPE.INTERFACE_TYPE, + // dictClass: 'string', + // isTable: false, + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '退货原因', + field: 'mainRemark', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + }, + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + // { + // label: '操作', + // field: 'action', + // isDetail: false, + // isForm: false, + // table: { + // width: 150, + // fixed: 'right' + // }, + // } +])) + +//表单校验 +export const PurchasereturnRecordMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + fromWarehouseCode: [ + { required: true, message: '请选择从仓库代码', trigger: 'change' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'change' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'change' } + ], + available: [ + { required: true, message: '请输入是否可用', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请选择创建时间', trigger: 'change' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购退货记录子表 + */ +export const PurchasereturnRecordDetail = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + }, + sortTableDefault: 1013, + hiddenInMain: true, + isSearch: false + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault: 6, + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault: 6, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault: 7, + hiddenInMain: true + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault: 7, + hiddenInMain: true + }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault: 1000, + }, + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: false, + sortTableDefault: 1001, + sortSearchDefault: 1001, + }, + // { + // label: '到包装号', + // field: 'toPackingNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isSearch: true, + // hiddenInMain: true, + // sortSearchDefault: 1002, + // sortTableDefault: 1001, + // }, + // { + // label: '包装规格', + // field: 'packUnit', + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1004, + // }, + // { + // label: '包装数量', + // field: 'packQty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1004, + // form: { + // component: 'InputNumber', + // } + // }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + sortTableDefault: 1004, + isForm:false, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6, + disabled:false + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1008, + hiddenInMain: true + }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain: true + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain: true + // }, + + // { + // label: '到批次', + // field: 'toBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isSearch: true, + // sortTableDefault: 1000, + // hiddenInMain: true + // }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain: true + // }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1009, + hiddenInMain: true + }, + // { + // label: '到库位代码', + // field: 'toLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1009, + // hiddenInMain: true + // }, + { + label: '从库位组代码', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010, + hiddenInMain: true + }, + // { + // label: '到库位组代码', + // field: 'toLocationGroupCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1010, + // hiddenInMain: true + // }, + { + label: '从库区代码', + field: 'fromAreaCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1010, + hiddenInMain: true + }, + // { + // label: '到库区代码', + // field: 'toAreaCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1010, + // hiddenInMain: true + // }, + // { + // label: '从货主代码', + // field: 'fromOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1010, + // hiddenInMain: true + // }, + // { + // label: '到货主代码', + // field: 'toOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1010, + // hiddenInMain: true + // }, + + // { + // label: '原因', + // field: 'reason', + // dictType: DICT_TYPE.PURCHASE_RETURN_REASON, + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1013, + // hiddenInMain: true + // }, + // { + // label: '数量', + // field: 'qty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:true, + // sortTableDefault: 1005, + // form: { + // component: 'InputNumber', + // } + // }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sortTableDefault: 1006, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault: 1006, + form: { + component: 'InputNumber', + } + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault: 1006, + form: { + component: 'InputNumber', + } + }, + // { + // label: '项目代码', + // field: 'projectCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault: 1011, + // hiddenInMain: true + // }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true + }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1007, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1014, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 1014, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, +])) + +//表单校验 +export const PurchasereturnRecordDetailRules = reactive({ + fromPackingNumber: [ + { required: true, message: '请选择从包装号', trigger: 'change' } + ], + toPackingNumber: [ + { required: true, message: '请选择到包装号', trigger: 'change' } + ], + fromBatch: [ + { required: true, message: '请输入从批次', trigger: 'blur' } + ], + toBatch: [ + { required: true, message: '请输入到批次', trigger: 'blur' } + ], + reason: [ + { required: true, message: '请选择原因', trigger: 'change' } + ], + fromLocationCode: [ + { required: true, message: '请选择从库位代码', trigger: 'change' } + ], + fromLocationGroupCode: [ + { required: true, message: '请选择从库位组代码', trigger: 'change' } + ], + fromAreaCode: [ + { required: true, message: '请选择从库区代码', trigger: 'change' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请选择订单号', trigger: 'change' } + ], + poline: [ + { required: true, message: '请选择订单行', trigger: 'change' } + ], +}) diff --git a/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/index.vue b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/index.vue new file mode 100644 index 0000000..260f220 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/index.vue @@ -0,0 +1,1034 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/purchasereturnRequestSpareMain.data.ts b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/purchasereturnRequestSpareMain.data.ts new file mode 100644 index 0000000..c4db35d --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/purchasereturnRequestSpareMain.data.ts @@ -0,0 +1,1661 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +const { t } = useI18n() // 国际化 +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' +import * as LocationApi from "@/api/wms/location"; +import {Location} from "@/views/wms/basicDataManage/factoryModeling/location/location.data"; +import * as BalanceApi from '@/api/wms/balance' +import { Balance } from '@/views/wms/inventoryManage/balance/balance.data' + + + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize:10, + pageNo:1, + code:'PurchaseReturnRequest' +} + const data = await getRequestsettingApi.getRequestsettingPage(queryParams) + const requestsettingData =data?.list[0]||{} + + // 获取当前操作人的部门 + import { useUserStore } from '@/store/modules/user' + import { TableColumn } from '@/types/table' + const userStore = useUserStore() + const userDept = userStore.userSelfInfo.dept + // id 转str 否则form回显匹配不到 + userDept.id = userDept.id.toString() + const userDeptArray:any = [userDept] + + +// 采购收货记录展示列 +export const PurchasereceiptRecordMain1 = useCrudSchemas(reactive([ + { + label: '物料代码', + field: 'itemCode', + fixed: 'left', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '采购收货记录单号', + field: 'number', + fixed: 'left', + sort: 'custom', + table: { + width: 200 + }, + isSearch: true + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch: true + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + }, + + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '批次', // 实际是子表的从批次,为了不影响页面,单独放上面 + field: 'fromBatch', + sort: 'custom', + isForm:false, + isTableForm:false, + table: { + width: 150 + }, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + // { + // label: '包装规格', + // field: 'packUnit', + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + // { + // label: '从库位代码', + // field: 'fromLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // + // }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + }, + + +])) + +/** + * @returns {Array} 采购退货申请主表 + */ +export const PurchasereturnRequestMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isForm: false, + isSearch: true, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + }, + // { + // label: '供应商代码', + // field: 'supplierCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:1, + // isSearch: true, + // form:{ + // componentProps:{ + // enterSearch: true, + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + // searchField: 'code', // 查询弹窗赋值字段 + // searchTitle: '供应商信息', // 查询弹窗标题 + // searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + // searchPage: SupplierApi.getSupplierPage, // 查询弹窗所需分页方法 + // verificationParams: [{ + // key: 'code', + // action: '==', + // value: '', + // isMainValue: false, + // isSearch: true, + // isFormModel: true, + // }], // 失去焦点校验参数 + // } + // } + // }, + // { + // label: '维修备件收货记录单号', + // field: 'purchaseReceiptRecordNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // enterSearch: true, + // disabled:true, + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择采购收货记录单号', // 输入框占位文本 + // searchField: 'number', // 查询弹窗赋值字段 + // searchTitle: '采购收货记录', // 查询弹窗标题 + // searchAllSchemas: PurchasereceiptRecordMain1.allSchemas, // 查询弹窗所需类 + // searchPage: PurchasereceiptRecordDetailApi.getPurchasereceiptRecordDetailPageReturn, // 查询弹窗所需分页方法 + // searchCondition: [ + // { + // key: 'supplierCode', + // value: 'supplierCode', + // isMainValue: true + // }], + // verificationParams: [{ + // key: 'number', + // action: '==', + // value: '', + // isMainValue: false, + // isSearch: true, + // isFormModel: true, + // }], // 失去焦点校验参数 + // } + // } + // }, + // { + // label: '发货单号', + // field: 'asnNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isForm: false, + // sortTableDefault:2 + // }, + // { + // label: '要货计划单号', + // field: 'ppNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isForm: false, + // isTable: false, + // }, + // { + // label: '承运商', + // field: 'carrierCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // }, + // { + // label: '运输方式', + // field: 'transferMode', + // sort: 'custom', + // dictType: DICT_TYPE.TRANSFER_MODE, + // dictClass: 'string', + // table: { + // width: 150 + // }, + // isTable: false, + // }, + // { + // label: '车牌号', + // field: 'vehiclePlateNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // }, + // { + // label: '从仓库代码', + // field: 'fromWarehouseCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // isTable: false, + // }, + // { + // label: '到仓库代码', + // field: 'toWarehouseCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm:false, + // isForm: false, + // isTable: false, + // }, + // { + // label: '从库区类型范围', + // field: 'fromAreaTypes', + // dictType: DICT_TYPE.AREA_TYPE, + // dictClass: 'string', + // isTable: false, + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // }, + // { + // label: '到库区类型范围', + // field: 'toAreaTypes', + // dictType: DICT_TYPE.AREA_TYPE, + // dictClass: 'string', + // isTable: false, + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm:false, + // isForm: false, + // }, + // { + // label: '从库区代码范围', + // field: 'fromAreaCodes', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // isTable: false, + // }, + // { + // label: '到库区代码范围', + // field: 'toAreaCodes', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // isTable: false, + // isTableForm:false, + // }, + // { + // label: '从月台代码', + // field: 'fromDockCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // isTable: false, + + // }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + form: { + value: 'PurchaseReturn', + componentProps: { + disabled: true + } + }, + isForm: false, + isTable: false, + }, + // { + // label: '申请时间', + // field: 'requestTime', + // formatter: dateFormatter, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width:'100%'}, + // type: 'datetime', + // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'x', + // } + // }, + // isForm: false, + // isTable: false, + // }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm:false, + isTableForm:false, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + isForm:false, + table: { + width: 150 + }, + isTable: false, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userDeptArray.find((account) => account.id == cellValue)?.name + }, + form: { + value: userDept.id, + component: 'Select', + api: () => userDeptArray, + componentProps: { + disabled: true, + optionsAlias: { + labelField: 'name', + valueField: 'id' + } + } + } + }, + { + label: '退货原因', + field: 'mainRemark', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat : 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTable:false, + 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')] + }, + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: false + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoCommit, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoAgree, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoExecute, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isForm: false, + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.directCreateRecord, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + }, + } +])) + +//表单校验 +export const PurchasereturnRequestMainRules = reactive({ + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + dueTime: [ + { required: true, message: '请选择截止时间', trigger: 'blur' } + ], + purchaseReceiptRecordNumber: [ + { required: true, message: '请输入采购收货记录单号', trigger: 'blur' } + ], + carrierCode: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + ], + vehiclePlateNumber: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + fromWarehouseCode: [ + { required: true, message: '请输入从仓库代码', trigger: 'blur' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + directCreateRecord: [ + { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购退货申请子表 + */ +export const PurchasereturnRequestDetail = useCrudSchemas(reactive([ + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + multiple:true, + disabled:true, + // isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择包装号', + searchField: 'packingNumber', + searchTitle: '库存余额信息', + searchAllSchemas: Balance.allSchemas, + searchPage: BalanceApi.getBalancePageSpare, + searchCondition: [{ + key: 'available', + value: 'TRUE', + action: '==', + isSearch: true, + isMainValue: false + },{ + key: 'businessType', + value: 'PurchaseReturnSpare', + action: '==', + isSearch: true, + isMainValue: false + },{ + key: 'inOrOut', + value: 'out', + action: '==', + isSearch: true, + isMainValue: false + }] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择包装号', + searchField: 'packingNumber', + searchTitle: '库存余额信息', + searchAllSchemas: Balance.allSchemas, + searchPage: BalanceApi.getBalancePageSpare, + searchCondition: [{ + key: 'available', + value: 'TRUE', + action: '==', + isSearch: true, + isMainValue: false + },{ + key: 'businessType', + value: 'PurchaseReturnSpare', + action: '==', + isSearch: true, + isMainValue: false + },{ + key: 'inOrOut', + value: 'out', + action: '==', + isSearch: true, + isMainValue: false + }] + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + isTableForm:false, + isTable:false, + hiddenInMain: true, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm:false, + isTable:false, + hiddenInMain: true, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain: true, + // isTableForm: false, + // isTable: false, + // isForm: false, + // tableForm:{ + // disabled:true + // }, + // form: { + // componentProps:{ + // disabled:true + // } + // } + // }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain: true, + // tableForm:{ + // disabled:true + // }, + // isTableForm: false, + // isTable: false, + // isForm: false, + // form: { + // componentProps:{ + // disabled:true + // } + // } + // }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + // isSearch: true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + type: 'Select', + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + isTable:false, + isTableForm:false, + tableForm:{ + disabled:true, + type:'InputNumber', + min:0, + precision: 6 + } + }, + // { //与国强联调的时候发现退货数量用的是qty + // label: '退货数量', + // field: 'returnedQty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // min: 0, + // precision: 6, + // disabled:false + // } + // }, + // isTable: false, + // isTableForm: false, + // isForm:false, + // tableForm:{ + // type:'InputNumber', + // min:0, + // precision: 6, + // disabled:false + // } + // }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '库存余额', + field: 'inventoryBalance', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 6 + } + }, + tableForm:{ + hidden:false,//控制列是否展示 + type:'InputNumber', + min:0, + precision: 6, + disabled:true, + }, + hiddenInMain: true, + isTable: false, + isDetail: false, + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + }, + isForm:false, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6 + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isSearch: true, + hiddenInMain: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + type: 'Select', + }, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + hiddenInMain: true, + isTableForm: false, + isTable: false, + isForm: false, + form: { + componentProps:{ + disabled:true + } + } + }, + // { + // label: '到货日期', + // field: 'arriveDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // hiddenInMain: true, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // }, + // isTableForm: false + // }, + // { + // label: '生产日期', + // field: 'produceDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // hiddenInMain: true, + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // disabled: true, + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // format: 'YYYY-MM-DD', + // valueFormat: 'x', + // }, + // isTableForm: false + // }, + // { + // label: '过期日期', + // field: 'expireDate', + // formatter: dateFormatter2, + // detail: { + // dateFormat: 'YYYY-MM-DD' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // hiddenInMain: true, + // form: { + // component: 'DatePicker', + // componentProps: { + // disabled: true, + // style: {width: '100%'}, + // type: 'date', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // isTableForm: false, + // isTable: false, + // tableForm:{ + // disabled:true, + // type: 'FormDate', + // format: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + // }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // isTableForm:false, + // hiddenInMain: true, + // isForm:false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isForm: false, + isTableForm: false, + isTable: false, + hiddenInMain: true, + form: { + componentProps:{ + disabled:true + } + }, + }, + + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: true, + tableForm:{ + disabled:true + }, + isForm: false, + isTableForm:false, + }, + // { + // label: '接口类型', + // field: 'interfaceType', + // dictType: DICT_TYPE.INTERFACE_TYPE, + // dictClass: 'string', + // isSearch: true, + // isTable: true, + // hiddenInMain: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // isForm:false, + // isTableForm:false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // }, + // { + // label: '备注', + // field: 'remark', + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // isTableForm: false, + // isTable: false, + // hiddenInMain: true, + // isForm: false, + // form: { + // componentProps:{ + // disabled:true + // } + // }, + // }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm:false, + isForm:false + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true + }, + isTableForm:false, + isForm:false + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false, + } +])) + +//表单校验 +export const PurchasereturnRequestDetailRules = reactive({ + // packingNumber: [ + // { required: true, message: '请输入包装号', trigger: 'blur' } + // ], + // batch: [ + // { required: true, message: '请输入批次', trigger: 'blur' } + // ], + // inventoryStatus: [ + // { required: true, message: '请选择库存状态', trigger: 'change' } + // ], + // poNumber: [ + // { required: true, message: '请输入订单号', trigger: 'blur' } + // ], + // poLine: [ + // { required: true, message: '请输入订单行', trigger: 'blur' } + // ], + // reason: [ + // { required: true, message: '请选择原因', trigger: 'change' } + // ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'blur' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) + +export const PurchasereReturnRequestDetailLabel = useCrudSchemas(reactive([ + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isTableForm: false, + isForm: false + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码1', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true, + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: true + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + isForm: true + }, +])) + diff --git a/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/purchasereturnRequestSpareMainNew.data.ts b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/purchasereturnRequestSpareMainNew.data.ts new file mode 100644 index 0000000..9d48382 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/purchasereturnspare/purchasereturnRequestSpareMain/purchasereturnRequestSpareMainNew.data.ts @@ -0,0 +1,767 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' +const { t } = useI18n() // 国际化 +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import { + PurchasereceiptRecordDetail, + PurchasereceiptRecordMain +} from '../../purchasereceipt/purchasereceiptRecordMain/purchasereceiptRecordMain.data' +import * as PurchasereceiptRecordDetailApi from '@/api/wms/purchasereceiptRecordDetail' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as SupplierApi from '@/api/wms/supplier' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import * as BalanceApi from '@/api/wms/balance' +import { Balance } from '@/views/wms/inventoryManage/balance/balance.data' + +import * as InspectionQ2Api from '@/api/qms/inspectionQ2' +import { Q2 } from '@/views/qms/inspectionQ2/inspectionQ2.data' + +import * as ItembasicApi from '@/api/wms/itembasic' +import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' + +// let locationList = await LocationApi.selectBusinessTypeOutLocationAll({ +// businessType:'PurchaseReturn', +// isIn:'out' +// }) +// locationList = locationList.list.map(item=>({ +// label :item.code, +// value :item.code +// })) + +// console.log('locationList',locationList) + + +// 获取当前操作人的部门 +import { useUserStore } from '@/store/modules/user' +import { TableColumn } from '@/types/table' +const userStore = useUserStore() +const userDept = userStore.userSelfInfo.dept +// id 转str 否则form回显匹配不到 +userDept.id = userDept.id.toString() +const userDeptArray: any = [userDept] + +/** + * @returns {Array} 采购退货申请主表 + */ +export const PurchasereturnRequestMainNew = useCrudSchemas( + reactive([ + // { + // label: '物料代码', + // field: 'itemCode', + // sort: 'custom', + // isSearch: true, + // table:{ + // width: 150 + // }, + // form: { + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // enterSearch:true, + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + // searchField: 'code', // 查询弹窗赋值字段 + // searchTitle: '物料基础信息', // 查询弹窗标题 + // searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + // searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + // searchCondition: [{ + // key: 'available', + // value: 'TRUE', + // action: '==', + // isSearch: true, + // isMainValue: false + // }], + // verificationParams: [{ + // key: 'code', + // action: '==', + // value: '', + // isMainValue: false, + // isSearch: 'true', + // isFormModel: true + // }], // 失去焦点校验参数 + // } + // } + // }, + // { + // label: '物料名称', + // field: 'itemName', + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // form: { + // componentProps:{ + // disabled:true + // } + // } + // }, + { + label: '供应商', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + + }, + // form: { + // component: 'Select', + // componentProps: { + // options: [], + // optionsAlias: { + // labelField: 'supplierCode', + // valueField: 'supplierCode' + // }, + // filterable: true, + // } + // } + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch:true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + action: '==', + isSearch: false, + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true + }], // 失去焦点校验参数 + } + } + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + table: { + width: 180, + }, + isForm: true, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: ' ', + field: 'hahaha', + table: { + width: 180 + }, + isTable:false, + isDetail:false, + form: { + componentProps: { + type: 'slot', + } + }, + }, + { + label: ' ', + field: 'hehehe', + table: { + width: 180 + }, + isTable:false, + isDetail:false, + form: { + componentProps: { + type: 'slot', + } + }, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + // { + // label: '采购订单行', + // field: 'poLine', + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm:{ + // disabled:true + // }, + // form: { + // componentProps:{ + // disabled:true + // } + // } + // }, + { + label: '收货单号', + field: 'receiptNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + isForm: false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault: 1, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '退货库位', + field: 'locationCode', + sort: 'custom', + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.selectBusinessTypeToLocation, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key: 'businessType', + value: 'PurchaseReceiptSpare', + isMainValue: false + },{ + key: 'isIn', + value: 'in', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + }, + tableForm: { + enterSearch: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.selectBusinessTypeToLocation, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key: 'businessType', + value: 'PurchaseReceiptSpare', + isMainValue: false + },{ + key: 'isIn', + value: 'in', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + }, + }, + { + label: '退货原因', + field: 'mainRemark', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + } + } + ]) +) +//表单校验 +export const PurchasereturnRequestMainRulesNew = reactive({ + // itemCode: [ + // { required: true, message: '请输入供应商代码', trigger: 'blur' } + // ], + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + poNumber: [ + { required: true, message: '请选择采购订单号', trigger: 'blur' } + ], + // poLine: [ + // { required: true, message: '请选择订单行', trigger: 'blur' } + // ], + locationCode: [ + { required: true, message: '请选择退货库位', trigger: 'blur' } + ] +}) + + + + + +/** + * @returns {Array} 采购退货申请子表 + */ +export const PurchasereturnRequestDetailNew = useCrudSchemas(reactive([ + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + // tableForm:{ + // multiple:true, + // disabled:true, + // // isInpuFocusShow: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择包装号', + // searchField: 'packingNumber', + // searchTitle: '库存余额信息', + // searchAllSchemas: Balance.allSchemas, + // searchPage: BalanceApi.getBalancePageSpare, + // searchCondition: [{ + // key: 'available', + // value: 'TRUE', + // action: '==', + // isSearch: true, + // isMainValue: false + // },{ + // key: 'businessType', + // value: 'PurchaseReturnSpare', + // action: '==', + // isSearch: true, + // isMainValue: false + // },{ + // key: 'inOrOut', + // value: 'out', + // action: '==', + // isSearch: true, + // isMainValue: false + // }] + // }, + // form: { + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // disabled:true, + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择包装号', + // searchField: 'packingNumber', + // searchTitle: '库存余额信息', + // searchAllSchemas: Balance.allSchemas, + // searchPage: BalanceApi.getBalancePageSpare, + // searchCondition: [{ + // key: 'available', + // value: 'TRUE', + // action: '==', + // isSearch: true, + // isMainValue: false + // },{ + // key: 'businessType', + // value: 'PurchaseReturnSpare', + // action: '==', + // isSearch: true, + // isMainValue: false + // },{ + // key: 'inOrOut', + // value: 'out', + // action: '==', + // isSearch: true, + // isMainValue: false + // }] + // } + // } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + isTableForm:true, + isTable:false, + hiddenInMain: true, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm:true, + isTable:false, + hiddenInMain: true, + isForm: false, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + type: 'Select', + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '库存数量', + field: 'balanceQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 6 + } + }, + tableForm:{ + disabled:true, + hidden:false,//控制列是否展示 + type:'InputNumber', + min:0, + precision: 6 + }, + hiddenInMain: true, + isTable: false, + isDetail: false, + }, + { + label: '退货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + disabled:false + } + }, + isTable:false, + isTableForm:true, + tableForm:{ + type:'InputNumber', + min:0, + precision: 6 + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false, + } +])) + +//表单校验 +export const PurchasereturnRequestDetailRulesNew = reactive({ +}) + + + +export const PurchasereturnPurchasereceiptRecordNew = useCrudSchemas( + reactive([ + { + label: '收货日期', + field: 'currentDeliveryDate', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '收货单号', + field: 'receiptNumber', + sort: 'custom', + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + form: { + componentProps:{ + disabled:true + } + } + } + ]) +) + diff --git a/src/views/wms/purchasereceiptManage/putaway/putawayJobMain/index.vue b/src/views/wms/purchasereceiptManage/putaway/putawayJobMain/index.vue new file mode 100644 index 0000000..bfaaf20 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/putaway/putawayJobMain/index.vue @@ -0,0 +1,374 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/putaway/putawayJobMain/putawayJobMain.data.ts b/src/views/wms/purchasereceiptManage/putaway/putawayJobMain/putawayJobMain.data.ts new file mode 100644 index 0000000..065224b --- /dev/null +++ b/src/views/wms/purchasereceiptManage/putaway/putawayJobMain/putawayJobMain.data.ts @@ -0,0 +1,1311 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +/** + * @returns {Array} 上架任务主表 + */ +export const PutawayJobMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + sortSearchDefault:1, + isSearch: true, + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 1, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTable: false, + }, + { + label: '要求截止时间', + field: 'requestDueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTable: false, + }, + // { + // label: '状态', + // field: 'jobStageStatus', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '过期时间', + field: 'expiredTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.JOB_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1, + }, + { + label: '优先级', + field: 'priority', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber', + } + }, + { + label: '优先级增量', + field: 'priorityIncrement', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber', + } + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '承接人', + field: 'acceptUserName', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '承接时间', + field: 'acceptTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '完成人', + field: 'completeUserName', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '完成时间', + field: 'completeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat : 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + }, + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + // { + // label: '到仓库代码', + // field: 'toWarehouseCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // }, + // { + // label: '从库区代码范围', + // field: 'fromAreaCodes', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // }, + // { + // label: '到库区代码范围', + // field: 'toAreaCodes', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // }, + { + label: '自动完成', + field: 'autoComplete', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许修改库位', + field: 'allowModifyLocation', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许修改数量', + field: 'allowModifyQty', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许大于推荐数量', + field: 'allowBiggerQty', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许小于推荐数量', + field: 'allowSmallerQty', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许修改库存状态', + field: 'allowModifyInventoryStatus', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许连续扫描', + field: 'allowContinuousScanning', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许部分完成', + field: 'allowPartialComplete', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许修改批次', + field: 'allowModifyBatch', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '允许修改箱码', + field: 'allowModifyPackingNumber', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + // { + // label: '物料号', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // }, + { + label: '来源库位', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '目标库位', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + // { + // label: '单位', + // field: 'unit', + // sort: 'custom', + // dictType: DICT_TYPE.PACK_UNIT, + // dictClass: 'string', + // isSearch: false, + // table: { + // width: 150 + // }, + // isTable: false, + // }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 180, + fixed: 'right' + }, + } +])) + +//表单校验 +export const PutawayJobMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + fromWarehouseCode: [ + { required: true, message: '请选择从仓库代码', trigger: 'change' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + toWarehouseCode: [ + { required: true, message: '请选择到仓库代码', trigger: 'change' } + ], + toAreaTypes: [ + { required: true, message: '请选择到库区类型范围', trigger: 'change' } + ], + requestTime: [ + { required: true, message: '请输入申请时间', trigger: 'change' } + ], + requestDueTime: [ + { required: true, message: '请输入要求截止时间', trigger: 'change' } + ], + status: [ + { required: true, message: '请选择状态', trigger: 'change' } + ], + // jobStageStatus: [ + // { required: true, message: '请选择阶段状态', trigger: 'change' } + // ], + priority: [ + { required: true, message: '请输入优先级', trigger: 'blur' } + ], + priorityIncrement: [ + { required: true, message: '请输入优先级增量', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + userPositionCode: [ + { required: true, message: '请输入岗位', trigger: 'blur' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 上架任务子表 + */ +export const PutawayJobDetail = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault:5, + }, + { + label: '包装规格', + field: 'packUnit', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain: true, + // isTable:false, + // }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault:3, + sortTableDefault:4, + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:2, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:2, + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault:2, + isSearch: true, + sortTableDefault:3, + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:3, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + }, + { + label: '物料描述2', + field: 'itemdesc2', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + }, + // { + // label: '项目代码', + // field: 'projectCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain: true, + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + hiddenInMain: true, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:6, + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: true, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + }, + // { + // label: '从货主代码', + // field: 'fromOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain: true, + // }, + // { + // label: '到货主代码', + // field: 'toOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain: true, + // }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain: true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain: true, + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:true, + } +])) + +//表单校验 +export const PutawayJobDetailRules = reactive({ + packingNumber: [ + { required: true, message: '请选择包装号', trigger: 'change' } + ], + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + fromLocationCode: [ + { required: true, message: '请选择从库位代码', trigger: 'change' } + ], + toLocationCode: [ + { required: true, message: '请选择到库位代码', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请选择物料代码', trigger: 'change' } + ], + createTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + + +/** + * @returns {Array} 上架任务子表 + */ +export const PutawayJobDetailPackingNumber = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料描述2', + field: 'itemdesc2', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + tableForm: { + disabled: true, + type:'FormDateTime', + format:'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, +])) diff --git a/src/views/wms/purchasereceiptManage/putaway/putawayRecordMain/index.vue b/src/views/wms/purchasereceiptManage/putaway/putawayRecordMain/index.vue new file mode 100644 index 0000000..333dc62 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/putaway/putawayRecordMain/index.vue @@ -0,0 +1,237 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/putaway/putawayRecordMain/putawayRecordMain.data.ts b/src/views/wms/purchasereceiptManage/putaway/putawayRecordMain/putawayRecordMain.data.ts new file mode 100644 index 0000000..7a0c13f --- /dev/null +++ b/src/views/wms/purchasereceiptManage/putaway/putawayRecordMain/putawayRecordMain.data.ts @@ -0,0 +1,1306 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' + +/** + * @returns {Array} 上架记录主表 + */ +export const PutawayRecordMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + sortSearchDefault:1, + isSearch: true + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 1, + }, + { + label: '任务单号', + field: 'jobNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault: 1, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '出库事务类型', + field: 'outTransactionType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '入库事务类型', + field: 'inTransactionType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + + }, + { + label: '执行时间', + field: 'executeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '生效日期', + field: 'activeDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + isTable: false, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat : 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + }, + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '包装号', // 子表数据 只是为了展示 + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:6, + }, + { + label: '批次', // 子表数据 只是为了展示 + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + }, +])) + +//表单校验 +export const PutawayRecordMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + fromWarehouseCode: [ + { required: true, message: '请选择从仓库代码', trigger: 'change' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + toWarehouseCode: [ + { required: true, message: '请选择到仓库代码', trigger: 'change' } + ], + toAreaTypes: [ + { required: true, message: '请选择到库区类型范围', trigger: 'change' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'change' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'change' } + ], + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 上架记录子表 + */ +export const PutawayRecordDetail = useCrudSchemas(reactive([ + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + hiddenInMain: true + }, + { + label: '到包装号', + field: 'toPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + hiddenInMain: true + }, + { + label: '包装规格', + field: 'packUnit', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:8, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:8, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:9, + }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault:3, + isSearch: true, + hiddenInMain: true + }, + { + label: '到批次', + field: 'toBatch', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault:4, + isSearch: true, + hiddenInMain: true + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:2, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:3, + }, + // { + // label: '从货主代码', + // field: 'fromOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + }, + { + label: '从库位组代码', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, + { + label: '从库区代码', + field: 'fromAreaCode', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, + // { + // label: '到货主代码', + // field: 'toOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + }, + { + label: '到库位组代码', + field: 'toLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, + { + label: '到库区代码', + field: 'toAreaCode', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault:2, + sortTableDefault:4, + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:4, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, + // { + // label: '项目代码', + // field: 'projectCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + } + }, + + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + // { + // label: '接口类型', + // field: 'interfaceType', + // dictType: DICT_TYPE.INTERFACE_TYPE, + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:true, + } +])) + +//表单校验 +export const PutawayRecordDetailRules = reactive({ + fromPackingNumber: [ + { required: true, message: '请选择从包装号', trigger: 'change' } + ], + toPackingNumber: [ + { required: true, message: '请选择到包装号', trigger: 'change' } + ], + fromBatch: [ + { required: true, message: '请输入从批次', trigger: 'blur' } + ], + toBatch: [ + { required: true, message: '请输入到批次', trigger: 'blur' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + fromLocationCode: [ + { required: true, message: '请选择从库位代码', trigger: 'change' } + ], + fromLocationGroupCode: [ + { required: true, message: '请选择从库位组代码', trigger: 'change' } + ], + fromAreaCode: [ + { required: true, message: '请选择从库区代码', trigger: 'change' } + ], + toLocationCode: [ + { required: true, message: '请选择到库位代码', trigger: 'change' } + ], + toLocationGroupCode: [ + { required: true, message: '请选择到库位组代码', trigger: 'change' } + ], + toAreaCode: [ + { required: true, message: '请选择到库区代码', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请选择物料代码', trigger: 'change' } + ], + createTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + + +/** + * @returns {Array} 上架记录子表--子包装展示 + */ +export const PutawayRecordDetailChildPackingNumber = useCrudSchemas(reactive([ + { + label: '从包装号', + field: 'fromPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到包装号', + field: 'toPackingNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到批次', + field: 'toBatch', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从库位组代码', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '从库区代码', + field: 'fromAreaCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到库位组代码', + field: 'toLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到库区代码', + field: 'toAreaCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + tableForm: { + disabled: true, + type:'FormDateTime', + format:'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, +])) diff --git a/src/views/wms/purchasereceiptManage/putaway/putawayRequestMain/index.vue b/src/views/wms/purchasereceiptManage/putaway/putawayRequestMain/index.vue new file mode 100644 index 0000000..761f37e --- /dev/null +++ b/src/views/wms/purchasereceiptManage/putaway/putawayRequestMain/index.vue @@ -0,0 +1,502 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/putaway/putawayRequestMain/putawayRequestMain.data.ts b/src/views/wms/purchasereceiptManage/putaway/putawayRequestMain/putawayRequestMain.data.ts new file mode 100644 index 0000000..f68e002 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/putaway/putawayRequestMain/putawayRequestMain.data.ts @@ -0,0 +1,1326 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +const { t } = useI18n() // 国际化 +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' + +import * as SupplierApi from '@/api/wms/supplier' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as InspectRequestMainApi from '@/api/wms/inspectRequestMain' +import { InspectRequestMain } from '@/views/wms/purchasereceiptManage/inspect/inspectRequestMain/inspectRequestMain.data' + +import * as ItembasicApi from '@/api/wms/itembasic' +import { Itembasic } from '@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data' + +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' + +import * as PurchaseDetail from '@/api/wms/purchaseMain' +import * as PurchaseDetailApi from '@/api/wms/purchaseDetail' + +import * as PurchaseMain from '@/api/wms/purchaseMain' +import * as PurchaseMainApi from '@/api/wms/purchaseMain' + + +import * as BalanceApi from '@/api/wms/balance' +import { Balance } from '@/views/wms/inventoryManage/balance/balance.data' + +import { Warehouse } from "@/views/wms/basicDataManage/factoryModeling/warehouse/warehouse.data"; +import * as WarehouseApi from "@/api/wms/warehouse"; + + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize: 10, + pageNo: 1, + code: 'MaterialPutawayRequest' +} +const data = await getRequestsettingApi.getRequestsettingPage(queryParams) +const requestsettingData = data?.list[0] || {} + + // 获取当前操作人的部门 + import { useUserStore } from '@/store/modules/user' + import { TableColumn } from '@/types/table' + const userStore = useUserStore() + const userDept = userStore.userSelfInfo.dept + // id 转str 否则form回显匹配不到 + userDept.id = userDept.id.toString() + const userDeptArray:any = [userDept] + +/** + * @returns {Array} 上架申请主表 + */ +export const PutawayRequestMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isForm: false, + isSearch: true, + sortSearchDefault:1, + }, + // { + // label: '从仓库代码', + // field: 'fromWarehouseCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isForm: false, + // }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + isForm: false, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPage // 查询弹窗所需分页方法 + } + } + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + tableForm: { + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择仓库代码', + searchField: 'code', + searchTitle: '仓库信息', + searchAllSchemas: Warehouse.allSchemas, + searchPage: WarehouseApi.getWarehousePage, + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择仓库代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '仓库信息', // 查询弹窗标题 + searchAllSchemas: Warehouse.allSchemas, // 查询弹窗所需类 + searchPage: WarehouseApi.getWarehousePage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } + }, + + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + tableForm: { + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择仓库代码', + searchField: 'code', + searchTitle: '仓库信息', + searchAllSchemas: Warehouse.allSchemas, + searchPage: WarehouseApi.getWarehousePage, + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择仓库代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '仓库信息', // 查询弹窗标题 + searchAllSchemas: Warehouse.allSchemas, // 查询弹窗所需类 + searchPage: WarehouseApi.getWarehousePage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } + }, + + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat : 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + }, + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + }, + value: new Date().getTime() + }, + isForm: false, + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable: false, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userDeptArray.find((account) => account.id == cellValue)?.name + }, + form: { + value: userDept.id, + component: 'Select', + api: () => userDeptArray, + componentProps: { + disabled: true, + optionsAlias: { + labelField: 'name', + valueField: 'id' + } + } + } + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + isForm: false, + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoCommit, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoAgree, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoExecute, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isForm: false, + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.directCreateRecord, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + }, + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isSearch: true, + sortSearchDefault:6, + sortTableDefault:1100, + }, + { + label: '包装规格', + field: 'packUnit', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:8, + }, +])) + +//表单校验 +export const PutawayRequestMainRules = reactive({ + fromWarehouseCode: [ + { required: true, message: '请输入从仓库代码', trigger: 'blur' } + ], + fromAreaTypes: [ + { required: true, message: '请选择从库区类型范围', trigger: 'change' } + ], + toWarehouseCode: [ + { required: true, message: '请输入到仓库代码', trigger: 'blur' } + ], + toAreaTypes: [ + { required: true, message: '请选择到库区类型范围', trigger: 'change' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + directCreateRecord: [ + { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 上架申请子表 + */ +export const PutawayRequestDetail = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + isSearch: true, + sortTableDefault:6, + sortSearchDefault:4, + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false, + // isTable:false, + // hiddenInMain:true, + // }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortTableDefault:5, + sortSearchDefault:3, + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + sortSearchDefault:2, + sortTableDefault:3, + tableForm: { + disabled: true, + isInpuFocusShow: true, + earchListPlaceholder: '请选择包装号', + searchField: 'packingNumber', + searchTitle: '库存余额信息', + searchAllSchemas: Balance.allSchemas, + searchPage: BalanceApi.getBalancePagePutaway, + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }, { + key: 'workshopCode', + value: 'workshopCode', + isMainValue: true + }] + }, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:9, + tableForm: { + type: 'Select' + } + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseDetail.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseMainPage + } + }, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseDetail.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:2, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择订单行', + searchField: 'lineNumber', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseDetail.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPage + } + }, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择订单行', + searchField: 'lineNumber', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseDetail.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPage + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault:5, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择从库位代码', + searchField: 'code', + searchTitle: '库位基础信息', + searchAllSchemas: Location.allSchemas, + searchPage: LocationApi.getLocationPage + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择从库位代码', + searchField: 'code', + searchTitle: '库位基础信息', + searchAllSchemas: Location.allSchemas, + searchPage: LocationApi.getLocationPage + } + } + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + }, + hiddenInMain:true, + }, + + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:4, + isTableForm: false, + isForm: false + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + // { + // label: '项目代码', + // field: 'projectCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // isTableForm: false, + // isForm: false + // }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + tableForm: { + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + + // { + // label: '从货主代码', + // field: 'fromOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false, + // hiddenInMain:true, + // }, + // { + // label: '到货主代码', + // field: 'toOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // isTableForm: false, + // isForm: false + // }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: true, + } +])) + +//表单校验 +export const PutawayRequestDetailRules = reactive({ + packingNumber: [ + { required: true, message: '请输入包装号', trigger: 'blur' } + ], + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + fromLocationCode: [ + { required: true, message: '请输入从库位代码', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'blur' } + ], +}) + + +/** + * @returns {Array} 上架申请子表--子包装展示 + */ +export const PutawayRequestDetailChildPackingNumber = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false, + // form: { + // componentProps: { + // disabled:true + // } + // }, + // tableForm: { + // disabled: true, + // } + // }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true, + type: 'Select' + }, + form: { + componentProps: { + disabled:true + } + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true, + isInpuFocusShow: false, + earchListPlaceholder: '请选择包装号', + searchField: 'packingNumber', + searchTitle: '库存余额信息', + searchAllSchemas: Balance.allSchemas, + searchPage: BalanceApi.getBalancePagePutaway, + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }, { + key: 'workshopCode', + value: 'workshopCode', + isMainValue: true + }] + }, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true, + type: 'Select' + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseDetail.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseMainPage + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseDetail.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: false, + searchListPlaceholder: '请选择订单行', + searchField: 'lineNumber', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseDetail.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPage + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单行', + searchField: 'lineNumber', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseDetail.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPage + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择从库位代码', + searchField: 'code', + searchTitle: '库位基础信息', + searchAllSchemas: Location.allSchemas, + searchPage: LocationApi.getLocationPage + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled: true, + isSearchList: false, + searchListPlaceholder: '请选择从库位代码', + searchField: 'code', + searchTitle: '库位基础信息', + searchAllSchemas: Location.allSchemas, + searchPage: LocationApi.getLocationPage + } + } + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + }, + tableForm: { + disabled: true, + } + }, + + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTableForm: false, + isForm: false, + tableForm: { + disabled: true, + type:'FormDateTime', + format:'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled: true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + form: { + componentProps: { + disabled:true + } + }, + tableForm: { + disabled: true, + } + } +])) diff --git a/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptJobMain/index.vue b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptJobMain/index.vue new file mode 100644 index 0000000..ae96d00 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptJobMain/index.vue @@ -0,0 +1,285 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptJobMain/sparereceiptJobMain.data.ts b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptJobMain/sparereceiptJobMain.data.ts new file mode 100644 index 0000000..05d0259 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptJobMain/sparereceiptJobMain.data.ts @@ -0,0 +1,1176 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' + +/** + * @returns {Array} 采购收货任务主表 + */ +export const PurchasereceiptJobMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: true, + sortSearchDefault:1 + + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:2, + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:3, + isSearch: true + }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + isTable:false + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault:2 + }, + { + label: '到月台代码', + field: 'toDockCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1010 + }, + { + label: '数据来源', + field: 'sourceType', + dictType: DICT_TYPE.PURCHASERECEIPT_SOURCE_TYPE, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + isSearch: false, + sortTableDefault:5, + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1011 + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1012 + + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '申请时间', + field: 'requestTime', + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '要求截止时间', + field: 'requestDueTime', + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.JOB_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:6 + }, + { + label: '过期时间', + field: 'expiredTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + // { + // label: '状态', + // field: 'jobStageStatus', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '优先级', + field: 'priority', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + form: { + component: 'InputNumber', + } + }, + { + label: '优先级增量', + field: 'priorityIncrement', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + form: { + component: 'InputNumber', + } + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '岗位', + field: 'userPositionCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '承接人', + field: 'acceptUserName', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '承接时间', + field: 'acceptTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '完成人', + field: 'completeUserName', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '完成时间', + field: 'completeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable:false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable:false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTable:true, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + } + }, + }, + { + label: '自动完成', + field: 'autoComplete', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '允许修改库位', + field: 'allowModifyLocation', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '允许修改数量', + field: 'allowModifyQty', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '允许大于推荐数量', + field: 'allowBiggerQty', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '允许小于推荐数量', + field: 'allowSmallerQty', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '允许修改库存状态', + field: 'allowModifyInventoryStatus', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '允许连续扫描', + field: 'allowContinuousScanning', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '允许部分完成', + field: 'allowPartialComplete', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '允许修改批次', + field: 'allowModifyBatch', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '允许修改箱码', + field: 'allowModifyPackingNumber', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + }, + { + label: '批次', // 实际是子表的到批次,为了不影响页面,单独放上面 + field: 'batch', + sort: 'custom', + isForm:false, + isTableForm:false, + table: { + width: 150 + }, + sortTableDefault:1001, + }, + // { + // label: '包装号', // 实际是子表的到包装号,为了不影响页面,单独放上面 + // field: 'toPackingNumber', + // sort: 'custom', + // isForm:false, + // isTableForm:false, + // table: { + // width: 150 + // }, + // sortTableDefault:1001, + // }, +])) + +//表单校验 +export const PurchasereceiptJobMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + toWarehouseCode: [ + { required: true, message: '请选择到仓库代码', trigger: 'change' } + ], + toAreaTypes: [ + { required: true, message: '请选择到库区类型范围', trigger: 'change' } + ], + requestTime: [ + { required: true, message: '请输入申请时间', trigger: 'change' } + ], + requestDueTime: [ + { required: true, message: '请输入要求截止时间', trigger: 'change' } + ], + status: [ + { required: true, message: '请选择状态', trigger: 'change' } + ], + // jobStageStatus: [ + // { required: true, message: '请选择阶段状态', trigger: 'change' } + // ], + priority: [ + { required: true, message: '请输入优先级', trigger: 'blur' } + ], + priorityIncrement: [ + { required: true, message: '请输入优先级增量', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + userPositionCode: [ + { required: true, message: '请输入岗位', trigger: 'blur' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购收货任务子表 + */ +export const PurchasereceiptJobDetail = useCrudSchemas(reactive([ + // { + // label: '包装号', + // field: 'packingNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isSearch:true, + // hiddenInMain:true, + // sortTableDefault:1002, + // sortSearchDefault:1002 + // }, + // { + // label: '包装规格', + // field: 'packUnit', + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:1002 + // }, + { + label: '包装数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + sortTableDefault:1002 + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // hiddenInMain:true, + // table: { + // width: 150 + // }, + // isTable:false, + // }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault:1000, + isSearch:true, + hiddenInMain:true, + sortTableDefault:8, + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true, + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:1005, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:1005, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:1005, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:1006, + }, + // { + // label: '来源库位', + // field: 'fromLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:1007, + // }, + { + label: '目标库位', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1007, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + sortTableDefault:6, + + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:6, + }, + { + label: '行类型', + field: 'poLineType', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:6, + hiddenInMain:true, + isForm: false, + tableForm:{ + disabled: true + } + }, + + { + label: '供应商计量数量', + field: 'supplierQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1009, + hiddenInMain:true, + form: { + component: 'InputNumber', + } + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1009, + hiddenInMain:true, + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + sortTableDefault:1009, + hiddenInMain:true, + }, + // { + // label: '从货主', + // field: 'fromOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // sortTableDefault:1008, + // }, + // { + // label: '到货主', + // field: 'toOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // sortTableDefault:1008, + // }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + isSearch:true + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:7, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:7, + }, + // { + // label: '项目代码', + // field: 'projectCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // sortTableDefault:1010, + // }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1004 + }, + { + label: '订单数量', + field: 'orderQty', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:1004 + }, + { + label: '收货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:1004 + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + form: { + component: 'InputNumber', + }, + sortTableDefault:1004 + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + sortTableDefault:1011, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1012, + hiddenInMain:true, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:1012 + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + hiddenInMain:true, + sortTableDefault:1012 + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:true, + }, + +])) + +//表单校验 +export const PurchasereceiptJobDetailRules = reactive({ + packingNumber: [ + { required: true, message: '请选择包装号', trigger: 'change' } + ], + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' } + ], + arriveDate: [ + { required: true, message: '请输入到货日期', trigger: 'change' } + ], + produceDate: [ + { required: true, message: '请输入生产日期', trigger: 'change' } + ], + expireDate: [ + { required: true, message: '请输入过期日期', trigger: 'change' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请选择订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请输入订单行', trigger: 'blur' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'blur' } + ], + packUnit: [ + { required: true, message: '请选择包装规格', trigger: 'change' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + toLocationCode: [ + { required: true, message: '请选择到库位代码', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请选择物料代码', trigger: 'change' } + ], + createTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) diff --git a/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRecordMain/index.vue b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRecordMain/index.vue new file mode 100644 index 0000000..45110c5 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRecordMain/index.vue @@ -0,0 +1,197 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRecordMain/sparereceiptRecordMain.data.ts b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRecordMain/sparereceiptRecordMain.data.ts new file mode 100644 index 0000000..65c83c2 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRecordMain/sparereceiptRecordMain.data.ts @@ -0,0 +1,1156 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' + + + +/** + * @returns {Array} 采购收货记录主表 + */ +export const PurchasereceiptRecordMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: true, + sortSearchDefault:1, + sortTableDefault:1 + + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:2 + }, + { + label: '任务单号', + field: 'jobNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:3 + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:4, + isSearch: true + }, + { + label: 'ERP单据号(无用)', + field: 'erpNumber', + isTable:false, + isTableForm:false, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: 'ERP单据号', + field: 'qadNumber', + sort: 'custom', + table: { + width: 200 + }, + sortTableDefault:5, + }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + isTable:false + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault:2, + isTable:false + }, + { + label: '到月台代码', + field: 'toDockCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '数据来源', + field: 'sourceType', + dictType: DICT_TYPE.PURCHASERECEIPT_SOURCE_TYPE, + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + isSearch: false, + isTable:false + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '出库事务类型', + field: 'outTransaction', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '入库事务类型', + field: 'inTransaction', + sort: 'custom', + table: { + width: 150 + }, + isTable:false + }, + { + label: '执行时间', + field: 'executeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '生效日期', + field: 'activeDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTable:true, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + } + } + }, + { + + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + }, + }, + { + label: '批次', // 实际是子表的从批次,为了不影响页面,单独放上面 + field: 'fromBatch', + sort: 'custom', + isForm:false, + isTableForm:false, + table: { + width: 150 + }, + sortTableDefault:12, + }, + // { + // label: '包装号', // 实际是子表的从包装号,为了不影响页面,单独放上面 + // field: 'fromPackingNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:16, + // }, + { + label: '检验申请单号', + field: 'inspectNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:6, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:12, + }, +])) + +// 表单校验 +export const PurchasereceiptRecordMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + toWarehouseCode: [ + { required: true, message: '请选择到仓库代码', trigger: 'change' } + ], + toAreaTypes: [ + { required: true, message: '请选择到库位类型服务', trigger: 'change' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'change' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'change' } + ], + available: [ + { required: true, message: '请输入是否可用', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请选择创建时间', trigger: 'change' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购收货记录子表 + */ +export const PurchasereceiptRecordDetail = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + }, + sortTableDefault:1998, + hiddenInMain:true + }, + { + label: '检验申请单号', + field: 'inspectNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + sortTableDefault:6, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault:5, + sortTableDefault:7, + isSearch: true + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortSearchDefault:5, + sortTableDefault:8, + }, + { + label: '行类型', + field: 'poLineType', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:9, + hiddenInMain:true, + isForm: false, + tableForm:{ + disabled: true + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + isSearch: true + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + hiddenInMain:true + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + hiddenInMain:true + }, + { + label: '从批次', + field: 'fromBatch', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:14, + hiddenInMain:true + }, + // { + // label: '到批次', + // field: 'toBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:14, + // hiddenInMain:true + // }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true + // }, + // { + // label: '从包装号', + // field: 'fromPackingNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:15, + // hiddenInMain:true + // }, + // { + // label: '到包装号', + // field: 'toPackingNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:15, + // hiddenInMain:true + // }, + // { + // label: '从器具号', + // field: 'fromContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true + // }, + // { + // label: '到器具号', + // field: 'toContainerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable:false, + // hiddenInMain:true + // }, + { + label: '订单数量', + field: 'orderQty', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true, + sortTableDefault:1004 + }, + { + label: '收货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:12, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + form: { + component: 'InputNumber', + }, + sortTableDefault:12, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + }, + // { + // label: '包装规格', + // field: 'packUnit', + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:16, + // }, + // { + // label: '包装数量', + // field: 'packQty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // }, + // tableForm: { + // disabled: true, + // }, + // isForm:false, + // sortTableDefault:16, + // }, + { + label: '供应商计量数量', + field: 'supplierQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + sortTableDefault:24, + hiddenInMain:true + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:24, + hiddenInMain:true + }, + + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:18, + hiddenInMain:true + }, + // { + // label: '从库位代码', + // field: 'fromLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:18, + + // }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:18, + }, + // { + // label: '从库位组', + // field: 'fromLocationGroupCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:19, + // hiddenInMain:true + // }, + { + label: '到库位组', + field: 'toLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:19, + hiddenInMain:true + }, + // { + // label: '从库区', + // field: 'fromAreaCodes', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:22, + // hiddenInMain:true, + // }, + { + label: '到库区', + field: 'toAreaCodes', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:22, + hiddenInMain:true + }, + // { + // label: '从货主', + // field: 'fromOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:23, + // hiddenInMain:true + // }, + { + label: '到货主', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:23, + hiddenInMain:true + }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + sortTableDefault:17, + hiddenInMain:true + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + sortTableDefault:17, + hiddenInMain:true + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + sortTableDefault:17, + hiddenInMain:true + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + sortTableDefault:1997, + hiddenInMain:true + }, + { + label: '目检结果', + field: 'visualInspectResult', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true + }, + { + label: '目检照片', + field: 'visualInspectPhotos', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + hiddenInMain:true + }, + { + label: '不合格原因', + field: 'failedReason', + dictType: DICT_TYPE.PURCHASE_RETURN_REASON, + dictClass: 'string', + isTable:false, + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + isTable:false, + hiddenInMain:true + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + }, + isTable:false, + hiddenInMain:true + }, + // { + // label: '任务明细ID', + // field: 'jobDetailId', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + + // { + // label: '项目代码', + // field: 'projectCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:1998, + // hiddenInMain:true + // }, + // { + // label: '代码', + // field: 'code', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:2000, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + sortTableDefault:2000, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + sortTableDefault:2000, + }, + + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:true, + } +])) + +// 表单校验 +export const PurchasereceiptRecordDetailRules = reactive({ + fromPackingNumber: [ + { required: true, message: '请选择从包装号', trigger: 'change' } + ], + toPackingNumber: [ + { required: true, message: '请选择到包装号', trigger: 'change' } + ], + fromBatch: [ + { required: true, message: '请输入从批次', trigger: 'blur' } + ], + toBatch: [ + { required: true, message: '请输入到批次', trigger: 'blur' } + ], + arriveDate: [ + { required: true, message: '请选择到货日期', trigger: 'change' } + ], + produceDate: [ + { required: true, message: '请选择生产日期', trigger: 'change' } + ], + expireDate: [ + { required: true, message: '请选择过期日期', trigger: 'change' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + toLocationCode: [ + { required: true, message: '请选择到库位代码', trigger: 'change' } + ], + toLocationGroupCode: [ + { required: true, message: '请选择到库位组代码', trigger: 'change' } + ], + toAreaCodes: [ + { required: true, message: '请选择到库区代码', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请选择订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请选择订单行', trigger: 'change' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'blur' } + ], + packUnit: [ + { required: true, message: '请选择包装规格', trigger: 'change' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + visualInspectResult: [ + { required: true, message: '请选择目检结果', trigger: 'change' } + ], +}) diff --git a/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue new file mode 100644 index 0000000..e70bcc3 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/index.vue @@ -0,0 +1,682 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/sparereceiptRequestMain.data.ts b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/sparereceiptRequestMain.data.ts new file mode 100644 index 0000000..9542597 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/sparereceipt/sparereceiptRequestMain/sparereceiptRequestMain.data.ts @@ -0,0 +1,1956 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import * as SupplierApi from '@/api/wms/supplier' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as PurchaseMainApi from '@/api/wms/purchaseMain' +import * as PurchaseDetailApi from '@/api/wms/purchaseDetail' +import * as PurchasePlanMainApi from '@/api/wms/purchasePlanMain' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import { PurchasePlanMain } from '../../supplierdeliver/purchasePlanMain/purchasePlanMain.data' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' + +const { t } = useI18n() // 国际化 + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize:10, + pageNo:1, + code:'PurchaseReceiptSpareRequest' +} + const data = await getRequestsettingApi.getRequestsettingPage(queryParams) + const requestsettingData =data?.list[0]||{} + +import { PurchaseDetail, PurchaseMain } from '../../supplierdeliver/purchaseMain/purchaseMain.data' + +// 获取当前操作人的部门 + import { useUserStore } from '@/store/modules/user' + import { TableColumn } from '@/types/table' + const userStore = useUserStore() + const userDept = userStore.userSelfInfo.dept + // id 转str 否则form回显匹配不到 + userDept.id = userDept.id.toString() + const userDeptArray:any = [userDept] + + +/** + * @returns {Array} 采购收货申请主表 + */ +export const PurchasereceiptRequestMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + sortSearchDefault:1, + isForm: false, + isSearch: true, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch:true, + sortTableDefault:4, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择采购订单', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: '采购订单信息', // 查询弹窗标题 + isConcatDetailSchemas:true,//是否是主子表合并 默认false + searchDetailSchemas:PurchaseDetail.allSchemas, + searchAllSchemas: PurchaseMain.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPageWMSSpare, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'status', + value:'2', + message: '已发布状态', + isMainValue: false + }, + { + key: 'status', // 查询列表中字段 + value: '2', // 指查询具体值 + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用 + }, + { + key: 'poLineType', // 查询列表中字段 + value: '', // 指查询具体值 + action: 'isNull', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用 + }], + verificationParams: [{ + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + }, + isForm: true, + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch:true, + sortSearchDefault:3, + isForm: true, + sortTableDefault:2 + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + sortTableDefault:1, + table: { + width: 150 + }, + isSearch: true, + sortSearchDefault:2, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled: true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPage // 查询弹窗所需分页方法 + } + } + }, + // { + // label: '要货计划单号', + // field: 'ppNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // isSearchList: true, // 开启查询弹窗 + // searchListPlaceholder: '请选择要货计划单号', // 输入框占位文本 + // searchField: 'number', // 查询弹窗赋值字段 + // searchTitle: '要货计划信息', // 查询弹窗标题 + // searchAllSchemas: PurchasePlanMain.allSchemas, // 查询弹窗所需类 + // searchPage: PurchasePlanMainApi.getPurchasePlanMainPage, // 查询弹窗所需分页方法 + // searchCondition: [ + // { + // key: 'supplierCode', + // value: 'supplierCode', + // message: '请填写供应商代码!', + // isMainValue: true + // }, + // { + // key: 'status', + // value: 4, + // isMainValue: false + // }, + // { + // key: 'available', + // value: "TRUE", + // isMainValue: false + // }] + // } + // }, + // isForm: true, + // }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + isSearch: false, + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + }, + // { + // label: '数据来源', + // field: 'sourceType', + // dictType: DICT_TYPE.PURCHASERECEIPT_SOURCE_TYPE, + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // value: 'ASN_ExternalReceipt', + // componentProps: { + // disabled: true + // } + // }, + // isSearch: false, + // }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '从库区类型范围', + field: 'fromAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到库区类型范围', + field: 'toAreaTypes', + dictType: DICT_TYPE.AREA_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + }, + { + label: '从库区代码范围', + field: 'fromAreaCodes', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到库区代码范围', + field: 'toAreaCodes', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '到月台代码', + field: 'toDockCode', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + isTable: false, + table: { + width: 150 + }, + form: { + value: 'PurchaseReceipt', + componentProps: { + disabled: true + } + }, + isForm: false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false, + isTable: false, + }, + // { + // label: '截止时间', + // field: 'dueTime', + // formatter: dateFormatter, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width:'100%'}, + // type: 'datetime', + // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'x', + // } + // }, + // }, + // { + // label: '部门', + // field: 'departmentCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + // return userDeptArray.find((account) => account.id == cellValue)?.name + // }, + // form: { + // value: userDept.id, + // component: 'Select', + // api: () => userDeptArray, + // componentProps: { + // disabled: true, + // optionsAlias: { + // labelField: 'name', + // valueField: 'id' + // } + // } + // } + // }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isSearch: false, + isTable: true, + sortTableDefault:3, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'FALSE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'FALSE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: 'FALSE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isForm: true, + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.directCreateRecord, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + } + } + }, + { + label: '标签状态', + field: 'labelStatus', + sort: 'custom', + dictType: DICT_TYPE.LABEL_STATUS, + dictClass: 'string', + table: { + width: 150 + }, + isForm: false, + isTable: false, + isSearch: false, + }, + { + label: '创建时间', + field: 'createTime', + isForm: false, + table: { + width: 180 + }, + formatter: dateFormatter, + detail: { + dateFormat : 'YYYY-MM-DD HH:mm:ss' + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + } + }, + }, + { + label: '创建者', + field: 'creator', + table: { + width: 130 + }, + isForm: false, + isTable: true + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isDetail: true, + isForm: false, + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '最后更新者', + field: 'updater', + isDetail: true, + isForm: false, + isTable: false, + table: { + width: 150 + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + }, + } +])) + +//表单校验 +export const PurchasereceiptRequestMainRules = reactive({ + ppNumber: [ + { required: true, message: '请输入采购订单', trigger: 'blur' } + ], + poNumber: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + toWarehouseCode: [ + { required: true, message: '请输入到仓库代码', trigger: 'blur' } + ], + toAreaTypes: [ + { required: true, message: '请输入到库区类型范围', trigger: 'blur' } + ], + // departmentCode: [ + // { required: true, message: '请输入部门', trigger: 'blur' } + // ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + directCreateRecord: [ + { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购收货申请子表 + */ +export const PurchasereceiptRequestDetail = useCrudSchemas(reactive([ + + { + label: '订单号', + field: 'poNumber', + hiddenInMain:true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + tableForm:{ + multiple:true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + isConcatDetailSchemas:true,//是否是主子表合并 默认false + searchDetailSchemas:PurchaseDetail.allSchemas, + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPageWMS, + searchCondition: [ + { + key:'number', + value:'poNumber', + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isFormModel:true, + isMainValue: false + }, + { + key: 'status', // 查询列表中字段 + value: '2', // 指查询具体值 + action: '==', // 查询拼接条件 + isSearch: true, // 使用自定义拼接条件 + isMainValue: false // 拼接条件必须要 false 同时不能与 isMainValue: true 同用 + }] + }, + form: { + labelMessage: '该订单号会影响订单行的选择', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + } + } + }, + { + label: '订单类型', + field: 'type', + dictType: DICT_TYPE.WORK_ORDER_TYPE, + dictClass: 'string', + isSearch: false, + isTable: false, + isTableForm: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isForm: false, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + tableForm:{ + multiple:true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + { + label: '行类型', + field: 'poLineType', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:5, + hiddenInMain:true, + isForm: false, + tableForm:{ + disabled: true + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + sortTableDefault:6, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + isTableForm: false, + isForm: false + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + hiddenInMain:true, + isTableForm: true, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + hiddenInMain:true, + isTableForm: true, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + // { + // label: '器具号', + // field: 'containerNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // isTable:false, + // isTableForm: false, + // isForm: false + // }, + // { + // 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: 'orderQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + sortTableDefault:9, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '收货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:9, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + tableForm: { + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + tableForm: { + type: 'Select', + disabled: true + } + }, + // { + // label: '包装号', + // field: 'packingNumber', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // hiddenInMain:true, + // sortTableDefault:11, + // isForm: false + // }, + // { + // label: '包装规格', + // field: 'packUnit', + // dictClass: 'string', + // isTable: true, + // isTableForm: false, + // sort: 'custom', + // table: { + // width: 150, + // componentProps: { + // disabled: true + // } + // }, + // sortTableDefault:11, + // tableForm:{ + // disabled:true + // }, + // isForm: true + // }, + // { + // label: '包装数量', + // field: 'packQty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:11, + // form: { + // componentProps: { + // isSearchList: true, + // searchListPlaceholder: '请选择包装', + // searchField: 'packQty', + // searchTitle: '物品包装信息', + // searchAllSchemas: Itempackaging.allSchemas, + // searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + // searchCondition: [ + // { + // key: 'itemCode', + // value: 'itemCode', + // message: '请选择订单行', + // isMainValue: true + // }, + // { + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // } + + // ] + // } + // }, + // tableForm: { + // isInpuFocusShow: true, + // searchListPlaceholder: '请选择包装', + // searchField: 'packQty', + // searchTitle: '物品包装信息', + // searchAllSchemas: Itempackaging.allSchemas, + // searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + // searchCondition: [ + // { + // key: 'itemCode', + // value: 'itemCode', + // message: '请选择订单行', + // isMainValue: true + // }, + // { + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // }] + // }, + // isTableForm: false, + // isForm: true + // }, + { + label: '到库位代码', + field: 'defaultToLocationCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.selectBusinessTypeToLocation, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key: 'businessType', + value: 'PurchaseReceiptSpare', + isMainValue: false + },{ + key: 'isIn', + value: 'in', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + } + }, + tableForm: { + enterSearch: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.selectBusinessTypeToLocation, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key: 'businessType', + value: 'PurchaseReceiptSpare', + isMainValue: false + },{ + key: 'isIn', + value: 'in', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: true, + isFormModel: true, + }], // 失去焦点校验参数 + }, + isTableForm: true, + isForm: false + }, + // { + // label: '从货主代码', + // field: 'fromOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:13, + // hiddenInMain:true, + // isTableForm: false, + // isForm: false + // }, + // { + // label: '到货主代码', + // field: 'toOwnerCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:13, + // hiddenInMain:true, + // isTableForm: false, + // isForm: false + // }, + { + label: '供应商计量数量', + field: 'supplierPackQty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '供应商计量单位', + field: 'supplierPackUnit', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + hiddenInMain:true, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:13, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 0 + }, + }, + isTableForm: false, + isForm: false + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:11, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + type:'FormDate', + placeholder: '请选择到货日期', + valueFormat: 'x', + }, + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + sortTableDefault:11, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + sortTableDefault:8, + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + sortTableDefault:11, + table: { + width: 180 + }, + isTable:true, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + // tableForm:{ + // type:'FormDate', + // placeholder: '请选择过期日期', + // valueFormat: 'x', + // }, + tableForm:{ + type: 'slot', + disabled: true + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:12, + hiddenInMain:true, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + // { + // label: '从库位代码', + // field: 'fromLocationCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:12, + // isTableForm: false, + // isForm: false + // }, + + // { + // label: '项目代码', + // field: 'projectCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // isTableForm: false, + // isForm: false + // }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + hiddenInMain:true, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTableForm: false, + isForm: false + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false, + } +])) + +//表单校验 +export const PurchasereceiptRequestDetailRules = reactive({ + packingNumber: [ + { required: true, message: '请输入包装号', trigger: 'blur' } + ], + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' } + ], + produceDate: [ + { required: true, message: '请输入生产日期', trigger: 'change' } + ], + arriveDate: [ + { required: true, message: '请输入到货日期', trigger: 'change' } + ], + expireDate: [ + { required: true, message: '请输入过期日期', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请输入订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请输入订单行', trigger: 'change' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + inventoryStatus: [ + { required: true, message: '请选择库存状态', trigger: 'change' } + ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'change' } + ], + qty: [ + { required: true, message: '请输入收货数量', trigger: 'change' } + ], + defaultToLocationCode: [ + { required: true, message: '请选择到库位代码', trigger: 'blur' } + ], +}) + + + +export const PurchasereceiptRequestDetailLabel = useCrudSchemas(reactive([ + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + }, + form: { + labelMessage: '该订单号会影响订单行的选择', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请选择供应商!', + isMainValue: true + }] + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单行', // 输入框占位文本 + searchField: 'lineNumber', // 查询弹窗赋值字段 + searchTitle: '订单信息', // 查询弹窗标题 + searchAllSchemas: PurchaseDetail.allSchemas, // 查询弹窗所需类 + searchPage: PurchaseDetailApi.getPurchaseDetailPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key:'number', + value:'poNumber', + message: '请填写订单号!', + isMainValue: true + }] + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '器具号', + field: 'containerNumber', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 1, + precision: 6 + }, + }, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '默认到库位代码', + field: 'defaultToLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: false, // 开启查询弹窗 + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + tableForm:{ + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择库位代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: false + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled:true, + type:'FormDate', + placeholder: '请选择生产日期', + valueFormat: 'x', + }, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择到货日期', + valueFormat: 'x', + }, + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true, + type:'FormDate', + placeholder: '请选择过期日期', + valueFormat: 'x', + }, + }, + { + label: '库存状态', + field: 'inventoryStatus', + dictType: DICT_TYPE.INVENTORY_STATUS, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true, + isSearchList: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled: true, + isInpuFocusShow: true, + searchListPlaceholder: '请选择包装', + searchField: 'packQty', + searchTitle: '物品包装信息', + searchAllSchemas: Itempackaging.allSchemas, + searchPage: ItemPackageApi.getItempackagingPageBySupplierdeliver, + searchCondition: [ + { + key: 'itemCode', + value: 'itemCode', + message: '请选择订单行', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + }, + isTableForm: true, + isForm: true + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150, + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled:true + }, + isTableForm: true, + isForm: true + }, + { + label: '供应商计量数量', + field: 'supplierPackQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 1, + precision: 6 + }, + }, + isTableForm: false, + isForm: false + }, + { + label: '供应商计量单位', + field: 'supplierPackUnit', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0 + }, + }, + isTableForm: false, + isForm: false + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + }, +])) diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/demandforecastingMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/demandforecastingMain.data.ts new file mode 100644 index 0000000..ee80b26 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/demandforecastingMain.data.ts @@ -0,0 +1,503 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import * as SupplierApi from '@/api/wms/supplier' +import * as SupplieritemApi from '@/api/wms/supplieritem' +import { Supplier} from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' + +import { Supplieritem } from '@/views/wms/basicDataManage/supplierManage/supplieritem/supplieritem.data' +import * as ItembasicApi from '@/api/wms/itembasic' +import {Itembasic} from "@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data"; +import * as PurchaseMainApi from '@/api/wms/purchaseMain' +import * as PurchaseDetailApi from '@/api/wms/purchaseDetail' +import { PurchaseDetail, PurchaseMain } from '../purchaseMain/purchaseMain.data' +import * as DemandforecastingMainApi from '@/api/wms/demandforecastingMain' +import * as DemandforecastingDetailApi from '@/api/wms/demandforecastingDetail' +import dayjs from 'dayjs' + +const { t } = useI18n() // 国际化 +let planerList = [] +try { + planerList = await DemandforecastingMainApi.queryUserPlanerList() + if(planerList.length>0){ + planerList.unshift({ + planerId:'ALL', + planerNickname:t('ts.全选'), + planerUsername:t('ts.全选'), + }) + } + console.log('planerList',planerList) +} catch (error) { + +} + +/** + * @returns {Array} 要货预测主表 + */ +Supplieritem.allSchemas.searchSchema = Supplieritem.allSchemas.searchSchema.filter(item=>item.field!="allowOverShipment") + +export const Supplier1 = useCrudSchemas(reactive([ + { + label: '用户名称', + field: 'userName', + sort: 'custom', + isSearch:true, + + }, + { + label: '用户昵称', + field: 'nickName', + sort: 'custom', + + }, + { + label: '供应商代码', + field: 'supplierCode', + isSearch:true, + sort: 'custom', + + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + + } +])) +export const Version = useCrudSchemas(reactive([ + { + label: '供应商代码', + field: 'supplierCodes', + sort: 'custom', + isSearch:true, + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + isSearch:true, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + }, + { + label: '物料代码', + field: 'itemCode', + isSearch:true, + sort: 'custom', + }, + { + label: '子表版本', + field: 'detailVersion', + sort: 'custom', + } +])) +export const DemandforecastingMain = useCrudSchemas(reactive([ + { + label: '计划员', + field: 'planerId', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isForm: false, + isSearch:true, + search:{ + component:'Select', + value:planerList.length>1?[planerList[1]['planerId']]:[], + componentProps: { + showAll:true,// 备用做全选 + multiple:true, + emptyValues:[null, undefined], + valueOnClear:null, + options:planerList.length>0?planerList.map(item=>({ + label:item.planerUsername, + value:item.planerId + })):[] + } + }, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150, + }, + isSearch: true, + search: { + componentProps: { + dialogWidth:'700px',//搜索出来弹窗的宽度 + multiple: true, + enterSearch:true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'supplierCode', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier1.allSchemas, // 查询弹窗所需类 + searchPage: DemandforecastingMainApi.querySupplierList, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'planers', + value: 'planerId', + message: '请选择计划员!', + isMainValue: true, + isCSV:true,//是否用逗号分隔参数 + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + isTable:true, + isForm: false, + search: { + // labelMessage: '信息提示说明!!!', + componentProps: { + multiple: true, + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'itemCode', // 查询弹窗赋值字段 + searchTitle: '物料基础信息', // 查询弹窗标题 + searchAllSchemas: Supplieritem.allSchemas, // 查询弹窗所需类 + searchPage: SupplieritemApi.getSupplieritemPageSCP, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'supplierCodes', + value: 'supplierCode', + message: '请填写供应商代码!', + isMainValue: true, + isCSV:true,//是否用逗号分隔参数 + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } + }, + { + label: '版本号', + field: 'version', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + search: { + // labelMessage: '信息提示说明!!!', + componentProps: { + multiple: true, + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择版本号', // 输入框占位文本 + searchField: 'detailVersion', // 查询弹窗赋值字段 + searchTitle: '版本号', // 查询弹窗标题 + searchAllSchemas: Version.allSchemas, // 查询弹窗所需类 + searchPage: DemandforecastingDetailApi.queryVersion, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'supplierCodes', + value: 'supplierCode', + message: '请填写供应商代码!', + isMainValue: true, + isCSV:true,//是否用逗号分隔参数 + },{ + key: 'itemCodes', + value: 'itemCode', + message: '请填写物料代码!', + isMainValue: true, + isCSV:true,//是否用逗号分隔参数 + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } + }, + { + label: '到货日期', + field: 'dueDate', + formatter: dateFormatter, + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + isTable:false, + isForm: false, + search: { + component: 'DatePicker', + value: [dayjs(), dayjs().subtract(-3,'month')], + componentProps: { + valueFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 '), new Date('1 ')] + } + }, + } +])) + +//表单校验 +export const DemandforecastingMainRules = reactive({ + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + version: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 要货预测子表 + */ +export const DemandforecastingDetail = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + hiddenInMain:true, + form: { + componentProps: { + disbaled: true + } + } + }, + { + label: '预测时间类型', + field: 'predictTimeType', + dictType: DICT_TYPE.PREDICT_TIME_TYPE, + sort: 'custom', + dictClass: 'string', + isTable: false, + table: { + width: 150 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '预测日期', + field: 'predictTime', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + type: 'FormDate', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + + { + label: '计量单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '计划数量', + field: 'planQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + tableForm: { + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTableForm: false, + isForm: false, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + { + label: '最后更新时间', + field: 'updateTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTableForm: false, + isForm: false, + }, + { + label: '最后更新者', + field: 'updater', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const DemandforecastingDetailRules = reactive({ + predictTimeType: [ + { required: true, message: '请选择预测时间类型', trigger: 'change' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + predictTime: [ + { required: true, message: '请输入预测时间', trigger: 'change' } + ], + planQty: [ + { required: true, message: '请输入计划数量', trigger: 'blur' } + ], + uom: [ + { required: true, message: '请选择计量单位', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请选择物料代码', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + poLine: [{required:true, message: '请选择订单行', trigger: 'blur'}] +}) diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue new file mode 100644 index 0000000..d36758d --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingMain/index.vue @@ -0,0 +1,232 @@ + + + + \ No newline at end of file diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/demandforecastingMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/demandforecastingMain.data.ts new file mode 100644 index 0000000..2ffc917 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/demandforecastingMain.data.ts @@ -0,0 +1,399 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import * as SupplierApi from '@/api/wms/supplier' +import { Supplier} from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as SupplieritemApi from '@/api/wms/supplieritem' +import { Supplieritem } from '@/views/wms/basicDataManage/supplierManage/supplieritem/supplieritem.data' +import * as ItembasicApi from '@/api/wms/itembasic' +import {Itembasic} from "@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data"; +import * as PurchaseMainApi from '@/api/wms/purchaseMain' +import * as PurchaseDetailApi from '@/api/wms/purchaseDetail' +import { PurchaseDetail, PurchaseMain } from '../purchaseMain/purchaseMain.data' +import * as DemandforecastingMainApi from '@/api/wms/demandforecastingMain' +import * as DemandforecastingDetailApi from '@/api/wms/demandforecastingDetail' +import dayjs from 'dayjs' + +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 要货预测主表 + */ +Supplieritem.allSchemas.searchSchema = Supplieritem.allSchemas.searchSchema.filter(item=>item.field!="allowOverShipment") +export const Version = useCrudSchemas(reactive([ + { + label: '供应商代码', + field: 'supplerCodes', + sort: 'custom', + isSearch:true, + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + isSearch:true, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + }, + { + label: '物料代码', + field: 'itemCode', + isSearch:true, + sort: 'custom', + }, + { + label: '子表版本', + field: 'detailVersion', + sort: 'custom', + } +])) +export const DemandforecastingMain = useCrudSchemas(reactive([ + { + label: '是否已读', + field: 'isRead', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + isTable:true, + isForm: false, + search: { + // labelMessage: '信息提示说明!!!', + componentProps: { + multiple: true, + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'itemCode', // 查询弹窗赋值字段 + searchTitle: '物料基础信息', // 查询弹窗标题 + searchAllSchemas: Supplieritem.allSchemas, // 查询弹窗所需类 + searchPage: SupplieritemApi.getSupplieritemPageSCP, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'supplierCodes', + value: 'supplierCode', + message: '请填写供应商代码!', + isMainValue: true, + isCSV:true,//是否用逗号分隔参数 + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } + }, + { + label: '版本号', + field: 'version', + sort: 'custom', + table: { + width: 150 + }, + isSearch:false, + search: { + // labelMessage: '信息提示说明!!!', + componentProps: { + multiple: true, + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择版本号', // 输入框占位文本 + searchField: 'detailVersion', // 查询弹窗赋值字段 + searchTitle: '版本号', // 查询弹窗标题 + searchAllSchemas: Version.allSchemas, // 查询弹窗所需类 + searchPage: DemandforecastingDetailApi.queryVersion, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'supplierCodes', + value: 'supplierCode', + message: '请填写供应商代码!', + isMainValue: true, + isCSV:true,//是否用逗号分隔参数 + },{ + key: 'itemCodes', + value: 'itemCode', + message: '请填写物料代码!', + isMainValue: true, + isCSV:true,//是否用逗号分隔参数 + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } + }, + { + label: '到货日期', + field: 'dueDate', + formatter: dateFormatter, + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + isTable:false, + isForm: false, + search: { + value: [dayjs(), dayjs().subtract(-3,'month')], + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 '), new Date('1 ')] + } + }, + } +])) + +//表单校验 +export const DemandforecastingMainRules = reactive({ + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + version: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 要货预测子表 + */ +export const DemandforecastingDetail = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + hiddenInMain:true, + form: { + componentProps: { + disbaled: true + } + } + }, + { + label: '预测时间类型', + field: 'predictTimeType', + dictType: DICT_TYPE.PREDICT_TIME_TYPE, + sort: 'custom', + dictClass: 'string', + isTable: false, + table: { + width: 150 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '预测日期', + field: 'predictTime', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + type: 'FormDate', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + + { + label: '计量单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '计划数量', + field: 'planQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + tableForm: { + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTableForm: false, + isForm: false, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + { + label: '最后更新时间', + field: 'updateTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isTableForm: false, + isForm: false, + }, + { + label: '最后更新者', + field: 'updater', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const DemandforecastingDetailRules = reactive({ + predictTimeType: [ + { required: true, message: '请选择预测时间类型', trigger: 'change' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + predictTime: [ + { required: true, message: '请输入预测时间', trigger: 'change' } + ], + planQty: [ + { required: true, message: '请输入计划数量', trigger: 'blur' } + ], + uom: [ + { required: true, message: '请选择计量单位', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请选择物料代码', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + poLine: [{required:true, message: '请选择订单行', trigger: 'blur'}] +}) diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/index.vue new file mode 100644 index 0000000..49eb20d --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/demandforecastingSupplierMain/index.vue @@ -0,0 +1,293 @@ + + + + \ No newline at end of file diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue new file mode 100644 index 0000000..78e70f6 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue @@ -0,0 +1,611 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts new file mode 100644 index 0000000..d58f418 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/purchaseMain.data.ts @@ -0,0 +1,969 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import * as SupplierApi from '@/api/wms/supplier' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as SupplieritemApi from '@/api/wms/supplieritem' +import { Supplieritem } from '@/views/wms/basicDataManage/supplierManage/supplieritem/supplieritem.data' +import { validateHanset, validateEmail } from '@/utils/validator' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 采购订单主表 + */ +export const PurchaseMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + isSearch: true, + table: { + width: 150 + }, + form: { + labelMessage: '影响明细中物料代码,需在供应商物料中维护', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPageSCP, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true + }], // 失去焦点校验参数 + } + } + }, + { + label: '订单类型', + field: 'type', + dictType: DICT_TYPE.PURCHASE_ORDER_TYPE, + dictClass: 'string', + isTable: true, + isSearch: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '行类型', + field: 'poLineType', + isTable: true, + isSearch: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.PURCHASE_ORDER_STATUS, + dictClass: 'string', + isTable: true, + isForm:false, + isSearch: true, + sortSearchDefault:1000, + sort: 'custom', + table: { + width: 150 + }, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '订单日期', + field: 'orderDate', + isTable: true, + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + }, + value: new Date().getTime() + }, + }, + { + label: '截止日期', + field: 'dueDate', + isTable: false, + isForm: false, + formatter: dateFormatter2, + detail:{ + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '税率', + field: 'taxRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + style: {width:'100%'}, + min: 0, + max: 1, + precision: 6, + } + } + }, + { + label: '版本', + field: 'version', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '当前阶段', + field: 'currentStage', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + style: {width:'100%'}, + min: 0 + } + }, + isTableForm: false, + isForm: false, + isTable:false, + }, + { + label: '是否寄存订单', + field: 'isConsignment', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + }, + }, + { + label: '联系人姓名', + field: 'contactName', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '联系人电话', + field: 'contactPhone', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '联系人电子邮件', + field: 'contactEmail', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false, + form: { + value: 'PurchaseReceipt', + componentProps: { + disabled: true + } + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + isForm: false, + isTable:false, + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + isTable:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + isForm: false, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + } + }, + }, + { + label: '最后更新者', + field: 'updater', + sort: 'custom', + isForm: false, + isTable:false, + table: { + width: 150 + }, + }, + { + label: '最后更新时间', + field: 'updateTime', + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + isForm: false, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '备注', + field: 'remark', + isTable: false, + table: { + width: 150 + }, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) + +//表单校验 +export const PurchaseMainRules = reactive({ + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'change' } + ], + type: [ + { required: true, message: '请选择订单类型', trigger: 'change' } + ], + status: [ + { required: true, message: '请选择状态', trigger: 'change' } + ], + orderDate: [ + { required: true, message: '请输入订单日期', trigger: 'change' } + ], + taxRate: [ + { required: true, message: '请输入税率', trigger: 'blur' } + ], + version: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + contactName: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + contactPhone: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + { validator:validateHanset, message: '请输入正确的手机号', trigger: 'blur'} + ], + contactEmail: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + { validator:validateEmail, message: '请输入正确的邮箱格式', trigger: 'blur'} + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], +}) + +/** + * @returns {Array} 采购订单子表 + */ +export const PurchaseDetail = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + isTableForm: false, + hiddenInMain:true, + table: { + width: 180 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '行号', + field: 'lineNumber', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + isSearchList: true, // 开启查询弹窗 + } + }, + { + label: '物料代码', + field: 'itemCode', + isSearch: true, + table: { + width: 150 + }, + tableForm:{ + disabled:true, + multiple:true,//多选 + isInpuFocusShow: true, + searchListPlaceholder: '请选择供应商物料', + searchField: 'itemCode', + searchTitle: '供应商物料信息', + searchAllSchemas: Supplieritem.allSchemas, + searchPage: SupplieritemApi.selectItembasicTypeToSupplieritem, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请填写供应商代码!', + isMainValue: true + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }], + verificationPage: SupplieritemApi.getSupplierItemListByCodes, // tableForm下方输入框校验失去焦点之后是否正确的方法 + isShowTableFormSearch: true, //tableForm下方是否出现输入框 + isRepeat: true,//tableForm下方输入框是否可以重复添加该条数据 + // 失去焦点校验参数 + verificationParams: [{ + key: 'itemCode', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true, + }] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择供应商物料', + searchField: 'itemCode', + searchTitle: '供应商物料信息', + searchAllSchemas: Supplieritem.allSchemas, + searchPage: SupplieritemApi.selectItembasicTypeToSupplieritem, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请填写供应商代码!', + isMainValue: true + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }], + // 失去焦点校验参数 + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true, + }] + } + } + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + isTableForm:true, + form:{ + componentProps: { + disabled:true + } + }, + tableForm:{ + disabled: true, + type:'Select', + }, + table: { + width: 150 + }, + }, + { + label: '订单数量', + field: 'orderQty', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:false, + min: 1, + precision: 6 + } + }, + tableForm: { + disabled:false, + hidden:false, + type: 'InputNumber', + min: 1, + precision: 6 + }, + }, + // { + // label: 'ERP库位', + // field: 'erpLocationCode', + // dictType : DICT_TYPE.ERP_LOCATION, + // dictClass: 'string', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // isTableForm: false, + // isForm: false, + // }, + { + label: '项目代码', + field: 'projectCode', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false, + }, + { + label: '包装数量', + field: 'packQty', + hiddenInMain:true, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false, + }, + { + label: '包装规格', + hiddenInMain:true, + field: 'packUnit', + // dictType: DICT_TYPE.PACK_UNIT, + // dictClass: 'string', + isTable: true, + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + { + label: '供应商计量数量', + field: 'supplierQty', + hiddenInMain:true, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false, + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + hiddenInMain:true, + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + { + label: '转换率', + field: 'convertRate', + form: { + component: 'InputNumber', + componentProps: { + min: 0 + } + }, + hiddenInMain:true, + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + // { + // label: t('ts.已计划数量'), + // field: 'plannedQty', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // form: { + // component: 'InputNumber', + // componentProps: { + // min: 1, + // precision: 6 + // }, + // value: 1 + // }, + // isTableForm: false, + // isForm: false, + // }, + { + label: t('ts.已发货数量'), + field: 'shippedQty', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + value: 1 + }, + isTableForm: false, + isForm: false, + }, + { + label: t('ts.已收货数量'), + field: 'receivedQty', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false + }, + { + label: t('ts.已退货数量'), + field: 'returnedQty', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false + }, + { + label: t('ts.已上架数量'), + field: 'putawayQty', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + value: 1, + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false + }, + { + label: t('ts.单价'), + field: 'singlePrice', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false + }, + { + label: '金额', + field: 'amount', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: true, + table: { + width: 150 + }, + hiddenInMain:true, + tableForm:{ + type:'Select', + default: 'TRUE', + inactiveValue: 'FALSE', + activeValue: 'TRUE' + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '超收百分比', + field: 'overReceivingPercent', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 0 + } + }, + isTable:false, + isTableForm:false, + tableForm: { + type: 'InputNumber', + min: 0 + } + }, + { + label: '创建时间', + field: 'createTime', + isTable: true, + isTableForm: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + hiddenInMain:false, + isForm: false, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '创建者', + field: 'creator', + isTableForm: false, + table: { + width: 150 + }, + hiddenInMain:false, + isForm: false, + }, + // { + // label: '最后更新时间', + // field: 'updateTime', + // isTableForm: false, + // isTable: true, + // hiddenInMain:false, + // formatter: dateFormatter, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // table: { + // width: 150 + // }, + // isForm: false, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width:'100%'}, + // type: 'datetime', + // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'x', + // } + // } + // }, + // { + // label: '最后更新者', + // field: 'updater', + // isTableForm: false, + // table: { + // width: 150 + // }, + // hiddenInMain:false, + // isForm: false, + // // form: { + // // component: 'DatePicker', + // // componentProps: { + // // style: {width:'100%'}, + // // type: 'datetime', + // // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // // valueFormat: 'x', + // // } + // // } + // }, + { + label: '备注', + hiddenInMain:true, + field: 'remark', + table: { + width: 150 + }, + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false, + } +])) + +//表单校验 +export const PurchaseDetailRules = reactive({ + lineNumber: [ + { required: true, message: '请输入行号', trigger: 'blur' }, + // { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'blur' } + ], + packUnit: [ + { 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/wms/purchasereceiptManage/supplierdeliver/purchaseMainWms/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMainWms/index.vue new file mode 100644 index 0000000..adc3670 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMainWms/index.vue @@ -0,0 +1,615 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMainWms/purchaseMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMainWms/purchaseMain.data.ts new file mode 100644 index 0000000..25ce89d --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMainWms/purchaseMain.data.ts @@ -0,0 +1,974 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import * as SupplierApi from '@/api/wms/supplier' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as SupplieritemApi from '@/api/wms/supplieritem' +import { Supplieritem } from '@/views/wms/basicDataManage/supplierManage/supplieritem/supplieritem.data' +import { validateHanset, validateEmail } from '@/utils/validator' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 采购订单主表 + */ +export const PurchaseMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + isSearch: true, + table: { + width: 150 + }, + form: { + labelMessage: '影响明细中物料代码,需在供应商物料中维护', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPageSCP, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true + }], // 失去焦点校验参数 + } + } + }, + { + label: '订单类型', + field: 'type', + dictType: DICT_TYPE.PURCHASE_ORDER_TYPE, + dictClass: 'string', + isTable: true, + isSearch: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '物料类型', + field: 'itemTypeList', + dictType: DICT_TYPE.ITEM_TYPE, + dictClass: 'string', + isTable: false, + isForm: false, + isSearch: true, + sort: 'custom', + search: { + componentProps: { + multiple: true,//多选 + } + } + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.PURCHASE_ORDER_STATUS, + dictClass: 'string', + isTable: true, + isForm:false, + isSearch: true, + sortSearchDefault:1000, + sort: 'custom', + table: { + width: 150 + }, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '订单日期', + field: 'orderDate', + isTable: true, + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + }, + value: new Date().getTime() + }, + }, + { + label: '截止日期', + field: 'dueDate', + isTable: false, + isForm: false, + formatter: dateFormatter2, + detail:{ + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '税率', + field: 'taxRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + style: {width:'100%'}, + min: 0, + max: 1, + precision: 6, + } + } + }, + { + label: '版本', + field: 'version', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '当前阶段', + field: 'currentStage', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + style: {width:'100%'}, + min: 0 + } + }, + isTableForm: false, + isForm: false, + isTable:false, + }, + { + label: '是否寄存订单', + field: 'isConsignment', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm:false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + }, + }, + { + label: '联系人姓名', + field: 'contactName', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '联系人电话', + field: 'contactPhone', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '联系人电子邮件', + field: 'contactEmail', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable: false, + form: { + value: 'PurchaseReceipt', + componentProps: { + disabled: true + } + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + isForm: false, + isTable:false, + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + isTable:true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + isForm: false, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + } + }, + }, + { + label: '最后更新者', + field: 'updater', + sort: 'custom', + isForm: false, + isTable:false, + table: { + width: 150 + }, + }, + { + label: '最后更新时间', + field: 'updateTime', + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + isForm: false, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '备注', + field: 'remark', + isTable: false, + table: { + width: 150 + }, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) + +//表单校验 +export const PurchaseMainRules = reactive({ + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'change' } + ], + type: [ + { required: true, message: '请选择订单类型', trigger: 'change' } + ], + status: [ + { required: true, message: '请选择状态', trigger: 'change' } + ], + orderDate: [ + { required: true, message: '请输入订单日期', trigger: 'change' } + ], + taxRate: [ + { required: true, message: '请输入税率', trigger: 'blur' } + ], + version: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + contactName: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + contactPhone: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + { validator:validateHanset, message: '请输入正确的手机号', trigger: 'blur'} + ], + contactEmail: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + { validator:validateEmail, message: '请输入正确的邮箱格式', trigger: 'blur'} + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], +}) + +/** + * @returns {Array} 采购订单子表 + */ +export const PurchaseDetail = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + isTableForm: false, + hiddenInMain:true, + table: { + width: 180 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '行号', + field: 'lineNumber', + table: { + width: 150 + }, + tableForm:{ + disabled:true, + isSearchList: true, // 开启查询弹窗 + } + }, + { + label: '物料代码', + field: 'itemCode', + isSearch: true, + table: { + width: 150 + }, + tableForm:{ + disabled:true, + multiple:true,//多选 + isInpuFocusShow: true, + searchListPlaceholder: '请选择供应商物料', + searchField: 'itemCode', + searchTitle: '供应商物料信息', + searchAllSchemas: Supplieritem.allSchemas, + searchPage: SupplieritemApi.selectItembasicTypeToSupplieritem, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请填写供应商代码!', + isMainValue: true + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }], + verificationPage: SupplieritemApi.getSupplierItemListByCodes, // tableForm下方输入框校验失去焦点之后是否正确的方法 + isShowTableFormSearch: true, //tableForm下方是否出现输入框 + isRepeat: true,//tableForm下方输入框是否可以重复添加该条数据 + // 失去焦点校验参数 + verificationParams: [{ + key: 'itemCode', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true, + }] + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, + searchListPlaceholder: '请选择供应商物料', + searchField: 'itemCode', + searchTitle: '供应商物料信息', + searchAllSchemas: Supplieritem.allSchemas, + searchPage: SupplieritemApi.selectItembasicTypeToSupplieritem, + searchCondition: [{ + key:'supplierCode', + value:'supplierCode', + message: '请填写供应商代码!', + isMainValue: true + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }], + // 失去焦点校验参数 + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true, + }] + } + } + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + isTableForm:true, + form:{ + componentProps: { + disabled:true + } + }, + tableForm:{ + disabled: true, + type:'Select', + }, + table: { + width: 150 + }, + }, + { + label: '订单数量', + field: 'orderQty', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:false, + min: 1, + precision: 6 + } + }, + tableForm: { + disabled:false, + hidden:false, + type: 'InputNumber', + min: 1, + precision: 6 + }, + }, + // { + // label: 'ERP库位', + // field: 'erpLocationCode', + // dictType : DICT_TYPE.ERP_LOCATION, + // dictClass: 'string', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // isTableForm: false, + // isForm: false, + // }, + { + label: '项目代码', + field: 'projectCode', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false, + }, + { + label: '包装数量', + field: 'packQty', + hiddenInMain:true, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false, + }, + { + label: '包装规格', + hiddenInMain:true, + field: 'packUnit', + // dictType: DICT_TYPE.PACK_UNIT, + // dictClass: 'string', + isTable: true, + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + { + label: '供应商计量数量', + field: 'supplierQty', + hiddenInMain:true, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false, + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + hiddenInMain:true, + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + { + label: '转换率', + field: 'convertRate', + form: { + component: 'InputNumber', + componentProps: { + min: 0 + } + }, + hiddenInMain:true, + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + }, + // { + // label: t('ts.已计划数量'), + // field: 'plannedQty', + // table: { + // width: 150 + // }, + // hiddenInMain:true, + // form: { + // component: 'InputNumber', + // componentProps: { + // min: 1, + // precision: 6 + // }, + // value: 1 + // }, + // isTableForm: false, + // isForm: false, + // }, + { + label: t('ts.已发货数量'), + field: 'shippedQty', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + }, + value: 1 + }, + isTableForm: false, + isForm: false, + }, + { + label: t('ts.已收货数量'), + field: 'receivedQty', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false + }, + { + label: t('ts.已退货数量'), + field: 'returnedQty', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false + }, + { + label: t('ts.已上架数量'), + field: 'putawayQty', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + value: 1, + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false + }, + { + label: t('ts.单价'), + field: 'singlePrice', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false + }, + { + label: '金额', + field: 'amount', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: true, + table: { + width: 150 + }, + hiddenInMain:true, + tableForm:{ + type:'Select', + default: 'TRUE', + inactiveValue: 'FALSE', + activeValue: 'TRUE' + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '超收百分比', + field: 'overReceivingPercent', + table: { + width: 150 + }, + hiddenInMain:true, + form: { + component: 'InputNumber', + componentProps: { + min: 0 + } + }, + isTable:false, + isTableForm:false, + tableForm: { + type: 'InputNumber', + min: 0 + } + }, + { + label: '创建者', + field: 'creator', + isTableForm: false, + table: { + width: 150 + }, + hiddenInMain:true, + isForm: false, + }, + { + label: '创建时间', + field: 'createTime', + isTable: true, + isTableForm: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + hiddenInMain:true, + isForm: false, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '最后更新者', + field: 'updater', + isTableForm: false, + table: { + width: 150 + }, + hiddenInMain:true, + isForm: false, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: {width:'100%'}, + // type: 'datetime', + // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'x', + // } + // } + }, + { + label: '最后更新时间', + field: 'updateTime', + isTableForm: false, + isTable: true, + hiddenInMain:true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 150 + }, + isForm: false, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '备注', + hiddenInMain:true, + field: 'remark', + table: { + width: 150 + }, + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false, + } +])) + +//表单校验 +export const PurchaseDetailRules = reactive({ + lineNumber: [ + { required: true, message: '请输入行号', trigger: 'blur' }, + // { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'blur' } + ], + packUnit: [ + { 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/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue new file mode 100644 index 0000000..bf4d22b --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/index.vue @@ -0,0 +1,946 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts new file mode 100644 index 0000000..f44468c --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts @@ -0,0 +1,929 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import * as SupplierApi from '@/api/wms/supplier' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as PurchaseMainApi from '@/api/wms/purchaseMain' +import * as PurchaseDetailApi from '@/api/wms/purchaseDetail' +import { PurchaseDetail, PurchaseMain } from '../purchaseMain/purchaseMain.data' +import {getPurchaseDetailPagePoNumber} from "@/api/wms/purchaseDetail"; +import * as ItembasicApi from '@/api/wms/itembasic' +import {Itembasic} from "@/views/wms/basicDataManage/itemManage/itembasic/itembasic.data"; +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 要货计划主表 + */ +export const PurchasePlanMain = useCrudSchemas(reactive([ + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150, + fixed: 'left' + }, + isSearch: true, + sortTableDefault:1, + sortSearchDefault:1, + form: { + labelMessage: '影响明细中物料代码,需在供应商物料中维护', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPageSCP, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }], + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true + }], // 失去焦点校验参数 + } + }, + search: { + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPageSCP, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } + }, + //仅是主列表页面的筛选搜索条件 + { + label: '送达日期', + field: 'deliveryDate', + sort: 'custom', + isDetail:false, + isTable: false, + isForm:false, + isTableForm:false, + isSearch:true, + sortSearchDefault:3, + formatter: dateFormatter2, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + // type: 'datetimerange', + type: 'daterange', + defaultTime: [new Date('1 '), new Date('1 ')] + } + }, + }, + + { + label: '要货计划单号', + field: 'number', + sort: 'custom', + isForm: false, + table: { + width: 180, + }, + sortTableDefault:8, + sortSearchDefault:4, + isSearch: true + }, + + { + label: '采购订单', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch:true, + dialogWidth:'1085px',//搜索出来弹窗的宽度 + isSearchList: true, + searchListPlaceholder: '请选择采购订单', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key: 'type', + value: 'SCHEDULE', + isMainValue: false + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key: 'supplierCode', + value: 'supplierCode', + message: '请填写供应商代码!', + isMainValue: true + },{ + key: 'status', + value: 2, + isMainValue: false + }], + verificationParams: [{ + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true + }], // 失去焦点校验参数 + } + } + }, + { + label: '送达日期', + field: 'deliveryDate', + table: { + width: 180 + }, + formatter: dateFormatter2, + sortTableDefault:2, + form: { + component: 'DatePicker', + componentProps: { + type: 'date', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + }, + { + label: '采购订单类型', + field: 'type', + sort: 'custom', + dictType: DICT_TYPE.PURCHASE_ORDER_TYPE, + dictClass: 'string', + isTable: true, + isForm:true, + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled: true + } + } + }, + { + label: '收货人', + field: 'contacts', + isTable:false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: false + } + } + }, + { + label: '联系电话', + field: 'phone', + isTable:false, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: false + } + } + }, + + { + label: '时间窗口', + field: 'timeWindow', + table: { + width: 150 + }, + isTable:false, + isForm: false + }, + { + label: '开始时间', + field: 'beginTime', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isForm:false, + isDetail:false, + form:{ + component:"TimePicker", + componentProps: { + format:"HH:mm", + } + } + }, + { + label: '结束时间', + field: 'endTime', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isForm:false, + isDetail:false, + form:{ + component:"TimePicker", + componentProps: { + format:"HH:mm", + } + } + }, + { + label: '仓库代码', + field: 'warehouseCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isForm: false, + }, + { + label: '月台代码', + field: 'dockCode', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable:false, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + isForm: false, + isTable:false, + form: { + value: 'PurchaseReceipt', + componentProps: { + disabled: true + } + } + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.PURCHASE_PLAN_STATUS, + dictClass: 'string', + isTable: true, + isForm:false, + isSearch: true, + table: { + width: 150 + }, + sortTableDefault:13, + sortSearchDefault:6, + search:{ + value:[], + componentProps: { + multiple:true + } + }, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + + // { + // label: '自动发布', + // field: 'autoPublish', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'Switch', + // value: "TRUE", + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE' + // } + // } + // }, + // { + // label: '自动接收', + // field: 'autoAccept', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'Switch', + // value: "TRUE", + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE' + // } + // } + // }, + // { + // label: '是否可用', + // field: 'available', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // component: 'Switch', + // value: 'TRUE', + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE', + // disabled: true + // } + // }, + // isSearch: true, + // }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + isForm: false, + isTable:false, + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + isTable:true, + isForm: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + } + }, + }, + { + label: '最后更新者', + field: 'updater', + sort: 'custom', + isForm: false, + isTable:false, + table: { + width: 150 + }, + }, + { + label: '最后更新时间', + field: 'updateTime', + isTable: false, + isForm: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 250, + fixed: 'right' + } + } +])) + +//表单校验 +export const PurchasePlanMainRules = reactive({ + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + poNumber: [ + { required: true, message: '请选择采购订单号', trigger: 'change' } + ], + deliveryDate: [ + { required: true, message: '请选择送达时间', trigger: 'change' } + ], + status: [ + { required: true, message: '请选择状态', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 要货计划子表 + */ +export const PurchasePlanDetail = useCrudSchemas(reactive([ + { + label: '要货计划单号', + field: 'number', + sort: 'custom', + isTableForm: false, + hiddenInMain:true, + table: { + width: 180 + }, + form: { + componentProps: { + disabled: true + } + } + }, + + { + label: '采购订单号', + field: 'poNumber', + isSearch:true, + isTable:true, + sortTableDefault:9, + sortSearchDefault:2, + isForm:false, + isTableForm:false, + table: { + width: 150 + }, + search: { + // labelMessage: '信息提示说明!!!', + componentProps: { + dialogWidth:'1085px',//搜索出来弹窗的宽度 + isSearchList: true, + enterSearch: true, + searchListPlaceholder: '请选择采购订单', + searchField: 'number', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseMain.allSchemas, + searchPage: PurchaseMainApi.getPurchaseMainPage, + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + },{ + key: 'supplierCode', + value: 'supplierCode', + message: '请填写供应商代码!', + isMainValue: true + },{ + key: 'status', + value: 2, + isMainValue: false + }] + } + } + }, + // { + // label: '订单号', + // field: 'poNumber', + // sort: 'custom', + // table: { + // width: 180 + // }, + // hiddenInMain:true, + // isTableForm:false, + // tableForm: { + // disabled: true, + // isInpuFocusShow: false, + // searchListPlaceholder: '请选择订单号', + // searchField: 'number', + // searchTitle: '采购订单信息', + // searchAllSchemas: PurchaseMain.allSchemas, + // searchPage: PurchaseMainApi.getPurchaseMainPage, + // searchCondition: [{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // }, { + // key: 'supplierCode', + // value: 'supplierCode', + // message: '请填写供应商代码!', + // isMainValue: true + // }, { + // key: 'status', + // value: 2, + // isMainValue: false + // } + // ] + // }, + // form: { + // // labelMessage: '信息提示说明!!!', + // componentProps: { + // disabled: true, + // isSearchList: false, + // searchListPlaceholder: '请选择订单号', + // searchField: 'number', + // searchTitle: '采购订单信息', + // searchAllSchemas: PurchaseMain.allSchemas, + // searchPage: PurchaseMainApi.getPurchaseMainPage, + // searchCondition: [{ + // key: 'available', + // value: 'TRUE', + // isMainValue: false + // },{ + // key: 'supplierCode', + // value: 'supplierCode', + // message: '请填写供应商代码!', + // isMainValue: true + // },{ + // key: 'status', + // value: 2, + // isMainValue: false + // }] + // } + // } + // }, + { + label: '计划数量', + field: 'planQty', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'InputNumber', + precision: 6 + }, + sortTableDefault:4, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:10, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled: true, + isSearchList: false, + searchListPlaceholder: '请选择订单行', + searchField: 'lineNumber', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseDetail.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPagePoNumber, + searchCondition: [{ + key: 'number', + value: 'poNumber', + message: '请填写订单号!', + isMainValue: true + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + tableForm: { + multiple:true, + disabled: true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单行', + searchField: 'lineNumber', + searchTitle: '采购订单信息', + searchAllSchemas: PurchaseDetail.allSchemas, + searchPage: PurchaseDetailApi.getPurchaseDetailPagePoNumber, + searchCondition: [{ + key: 'number', + value: 'poNumber', + message: '请填写订单号!', + isMainValue: true + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:3, + sortSearchDefault:5, + isSearch:true, + form: { + componentProps: { + disabled: true + } + }, + tableForm: { + disabled: true + }, + search: { + // labelMessage: '信息提示说明!!!', + componentProps: { + multiple: true, + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择物料代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '物料基础信息', // 查询弹窗标题 + searchAllSchemas: Itembasic.allSchemas, // 查询弹窗所需类 + searchPage: ItembasicApi.getItembasicPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'supplierCode', + value: 'supplierCode', + message: '请填写供应商代码!', + isMainValue: true, + },{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } + }, + { + label: '订单数量', + field: 'orderQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + sortTableDefault:11, + tableForm: { + disabled: true + } + + }, + + { + label: '已发货数量', + field: 'shippedQty', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + sortTableDefault:5, + }, + { + label: '已收货数量', + field: 'receivedQty', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + sortTableDefault:6, + }, + { + label: '在途数量', + field: 'notReceiveQty', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + sortTableDefault:7, + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + table: { + width: 150 + }, + sortTableDefault:12, + form: { + componentProps: { + disabled: true + } + }, + tableForm: { + type: 'Select', + disabled:true, + } + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: true, + isTableForm:false, + isForm:false, + hiddenInMain: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: 'updater', + sort: 'custom', + isTableForm: false, + hiddenInMain:true, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '最后更新时间', + field: 'updateTime', + sort: 'custom', + isTableForm: false, + hiddenInMain:true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + isForm: false, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + hiddenInMain:true, + isTableForm:false, + table: { + width: 150 + }, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + hiddenInMain:true, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) +const validatePlanQty = (rule, value, callback) => { + console.log('validatePlanQty',value) + const numReg = /^[\d]+$/ + if (numReg.test(value)&&value>=0) { + callback() + } else { + callback(new Error('计划数量不能小于0')) + } +} +//表单校验 +export const PurchasePlanDetailRules = reactive({ + // available: [ + // { required: true, message: '请选择是否可用', trigger: 'change' } + // ], + shippedQty: [ + { required: true, message: '请输入已发货数量', trigger: 'blur' } + ], + uom: [ + { required: true, message: '请选择计量单位', trigger: 'change' } + ], + planQty: [ + { required: true, message: '请输入计划数量', trigger: 'blur' }, + { validator:validatePlanQty, message: '计划数量不能小于0', trigger: 'blur'} + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierPackage/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierPackage/index.vue new file mode 100644 index 0000000..0c5fc47 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierPackage/index.vue @@ -0,0 +1,279 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierPackage/supplierPackage.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierPackage/supplierPackage.data.ts new file mode 100644 index 0000000..5a2caee --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierPackage/supplierPackage.data.ts @@ -0,0 +1,424 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' + +// 表单校验 +export const PackageRules = reactive({ + number: [required], + itemCode: [required], + itemName: [required], +}) +export const Package2 = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'number', + sort: 'custom', + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, +])) +export const Package = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'number', + sort: 'custom', + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + isSearch: true, + table: { + width: 150, + }, + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '批次', + field: 'batch', + sort: 'custom', + isSearch: true, + table: { + width: 150, + }, + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150, + // }, + // }, + { + label: '生产日期', + field: 'produceDate', + sort: 'custom', + formatter: dateFormatter2, + search: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + valueFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + table: { + width: 180, + }, + }, + { + label: '有效期(日)', + field: 'validityDays', + sort: 'custom', + form: { + component: 'InputNumber', + componentProps: { + min: 0 + }, + value: 0 + }, + table: { + width: 150, + }, + }, + { + label: '失效日期', + field: 'expireDate', + sort: 'custom', + formatter: dateFormatter2, + search: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + valueFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + table: { + width: 180, + }, + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + form: { + component: 'SelectV2' + }, + table: { + width: 150, + }, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '替代计量单位', + field: 'altUom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + form: { + component: 'SelectV2' + }, + table: { + width: 150, + }, + }, + { + label: '替代数量', + field: 'altQty', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '包装规格', + field: 'packUnit', + sort: 'custom', + // dictType: DICT_TYPE.PACK_UNIT, + // dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + // form: { + // component: 'SelectV2' + // }, + table: { + width: 150, + }, + }, + { + label: '仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '月台代码', + field: 'toDockCode', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '供应商物料代码', + field: 'supplierItemCode', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '采购订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '采购计划单号', + field: 'rpNumber', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 182, + }, + }, + { + label: '生产订单号', + field: 'woNumber', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '生产订单行', + field: 'woLine', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '生产线代码', + field: 'productionLineCode', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '班组代码', + field: 'teamCode', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '班次代码', + field: 'shiftCode', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '客户代码', + field: 'customerCode', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '客户月台代码', + field: 'customerDockCode', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '客户物料代码', + field: 'customerItemCode', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '销售订单号', + field: 'soNumber', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '销售订单行', + field: 'soLine', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '质量等级', + field: 'eqLevel', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '货主代码', + field: 'ownerCode', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '重量', + field: 'weight', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '面积', + field: 'area', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '体积', + field: 'volume', + sort: 'custom', + table: { + width: 150, + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierResume/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierResume/index.vue new file mode 100644 index 0000000..9326606 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierResume/index.vue @@ -0,0 +1,42 @@ + + + + diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverInspectionDetail/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverInspectionDetail/index.vue new file mode 100644 index 0000000..20848b9 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverInspectionDetail/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverInspectionDetail/supplierdeliverInspectionDetail.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverInspectionDetail/supplierdeliverInspectionDetail.data.ts new file mode 100644 index 0000000..ab2006e --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverInspectionDetail/supplierdeliverInspectionDetail.data.ts @@ -0,0 +1,190 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +export const SupplierdeliverInspectionDetail = useCrudSchemas(reactive([ + { + label: '上传质量报告', + field: 'uploadFile', + sort: 'custom', + isTable:false, + isTableForm:false, + form: { + component: 'UploadFile', + componentProps: { + upData:{ + tableId: '', + tableName: 'SupplierdeliverInspectionDetail', + }, + fileType:['pdf'], + fileSize:100, + limit:20000 + } + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + isForm:false, + isSearch: true, + form: { + componentProps: { + disabled: true + } + }, + tableForm: { + disabled: true + } + }, + { + label: '供应商批次', + field: 'batch', + sort: 'custom', + isForm:false, + isSearch: true, + form: { + componentProps: { + disabled: true + } + }, + tableForm: { + disabled: true + } + }, + { + label: '发货数量', + field: 'planQty', + sort: 'custom', + isForm:false, + isSearch: true, + form: { + componentProps: { + disabled: true + } + }, + tableForm: { + disabled: true, + type: 'InputNumber', + min: 0, + precision: 6 + }, + + + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: true + }, + form: { + componentProps: { + disabled: true + } + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isForm:false, + isTable: false, + isTableForm: false, + 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')] + } + }, + isTableForm: false, + isForm: false, + }, + { + label: '扩展属性', + field: 'extraProperties', + sort: 'custom', + isSearch: true, + isForm: false, + isTable: false, + isTableForm: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + isTable: false, + isTableForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) + + +//表单校验 +export const SupplierdeliverInspectionDetailRules = reactive({ + uploadFile: [ + { required: true, message: '请上传文件', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'blur' } + ], + uom: [ + { required: true, message: '请输入计量单位', trigger: 'blur' } + ], + batch: [ + { required: true, message: '请输入供应商批次', trigger: 'blur' } + ], + planQty: [ + { required: true, message: '请输入发货数量', trigger: 'blur' } + ], +}) + + +export const CurriculumVitae = useCrudSchemas(reactive([ + { + label: '上传履历表', + field: 'uploadFile', + sort: 'custom', + isTable:false, + isTableForm:false, + form: { + component: 'UploadFile', + componentProps: { + upData:{ + tableId: '', + tableName: 'SupplierdeliverInspectionDetail', + }, + fileType:['pdf'], + fileSize:100, + limit:20000 + } + }, + } +])) +//表单校验 +export const CurriculumVitaeRules = reactive({ + uploadFile: [ + { required: true, message: '请上传文件', trigger: 'blur' } + ] +}) diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/index.vue new file mode 100644 index 0000000..cb270d6 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/index.vue @@ -0,0 +1,312 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/supplierdeliverRecordMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/supplierdeliverRecordMain.data.ts new file mode 100644 index 0000000..91c16db --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/supplierdeliverRecordMain.data.ts @@ -0,0 +1,1379 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' + +/** + * @returns {Array} 供应商发货记录主表 + */ +export const SupplierdeliverRecordMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: true + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch: true + }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch: true + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '联系人姓名', + field: 'contactName', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '联系人电话', + field: 'contactPhone', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '联系人电子邮件', + field: 'contactEmail', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '从仓库代码', + field: 'fromWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到月台代码', + field: 'toDockCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '时间窗口', + field: 'timeWindow', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '计划到货时间', + field: 'planArriveTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '出库事务类型', + field: 'outTransaction', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '入库事务类型', + field: 'inTransaction', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '执行时间', + field: 'executeTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '生效日期', + field: 'activeDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '业务类型', + field: 'businessType', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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')] + } + }, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + }, + } +])) + +//表单校验 +export const SupplierdeliverRecordMainRules = reactive({ + requestNumber: [ + { required: true, message: '请输入申请单号', trigger: 'blur' } + ], + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + fromWarehouseCode: [ + { required: true, message: '请输入从仓库代码', trigger: 'blur' } + ], + toWarehouseCode: [ + { required: true, message: '请输入到仓库代码', trigger: 'blur' } + ], + toDockCode: [ + { required: true, message: '请输入到月台代码', trigger: 'blur' } + ], + planArriveTime: [ + { required: true, message: '请输入计划到货时间', trigger: 'blur' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'blur' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'blur' } + ], + available: [ + { required: true, message: '请输入是否可用', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 供应商发货记录子表 + */ +export const SupplierdeliverRecordDetail = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '订单数量', + field: 'orderQty', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 6 + } + }, + tableForm: { + disabled: true, + type: 'InputNumber', + min: 0, + precision: 6 + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '包装名称', + field: 'packName', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '供应商计量数量', + field: 'supplierQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + }, + + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '从库位组代码', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到库位组代码', + field: 'toLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '从库区代码', + field: 'fromAreaCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到库区代码', + field: 'toAreaCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + }, + + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + }, + + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + hiddenInMain:true, + table: { + width: 180 + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + }, + // { + // label: '最后操作时间', + // field: 'updateTime', + // formatter: dateFormatter, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // type: 'datetime', + // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'x', + // } + // }, + // }, + // { + // label: '最后操作人', + // field: 'updater', + // sort: 'custom', + // table: { + // width: 150 + // }, + // }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:true, + } +])) + +//表单校验 +export const SupplierdeliverRecordDetailRules = reactive({ + fromPackingNumber: [ + { required: true, message: '请输入从包装号', trigger: 'blur' } + ], + toPackingNumber: [ + { required: true, message: '请输入到包装号', trigger: 'blur' } + ], + fromBatch: [ + { required: true, message: '请输入从批次', trigger: 'blur' } + ], + toBatch: [ + { required: true, message: '请输入到批次', trigger: 'blur' } + ], + arriveDate: [ + { required: true, message: '请输入到货日期', trigger: 'blur' } + ], + produceDate: [ + { required: true, message: '请输入生产日期', trigger: 'blur' } + ], + expireDate: [ + { required: true, message: '请输入到货日期', trigger: 'blur' } + ], + poNumber: [ + { required: true, message: '请输入订单号', trigger: 'blur' } + ], + poLine: [ + { required: true, message: '请输入订单行', trigger: 'blur' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'blur' } + ], + packUnit: [ + { required: true, message: '请选择包装规格', trigger: 'blur' } + ], + toLocationCode: [ + { required: true, message: '请输入到库位代码', trigger: 'blur' } + ], + toLocationGroupCode: [ + { required: true, message: '请输入到库位组代码', trigger: 'change' } + ], + toAreaCode: [ + { required: true, message: '请输入到库区代码', trigger: 'blur' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + + +/** + * @returns {Array} 供应商发货记录子表根据包装号展示 + */ +export const SupplierdeliverRecordDetailPickingNumer = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'packingNumber', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '订单数量', + field: 'orderQty', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 6 + } + }, + tableForm: { + disabled: true, + type: 'InputNumber', + min: 0, + precision: 6 + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '包装数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '包装规格', + field: 'packUnit', + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '供应商计量数量', + field: 'supplierQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '供应商计量单位', + field: 'supplierUom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true + } + }, + + { + label: '从库位代码', + field: 'fromLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '到库位代码', + field: 'toLocationCode', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '从库位组代码', + field: 'fromLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '到库位组代码', + field: 'toLocationGroupCode', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '从库区代码', + field: 'fromAreaCode', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '到库区代码', + field: 'toAreaCode', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + form:{ + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + } +])) \ No newline at end of file diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue new file mode 100644 index 0000000..14d3475 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue @@ -0,0 +1,1336 @@ + + + diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/labelForm.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/labelForm.vue new file mode 100644 index 0000000..256066d --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/labelForm.vue @@ -0,0 +1,621 @@ + + + \ No newline at end of file diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverBasicForm.vue b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverBasicForm.vue new file mode 100644 index 0000000..c06b073 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverBasicForm.vue @@ -0,0 +1,471 @@ + + + \ No newline at end of file diff --git a/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts new file mode 100644 index 0000000..6f9d599 --- /dev/null +++ b/src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts @@ -0,0 +1,1825 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import * as SupplierApi from '@/api/wms/supplier' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import * as PurchasePlanDetailApi from '@/api/wms/purchasePlanDetail' +import { PurchasePlanDetail, PurchasePlanMain } from '../purchasePlanMain/purchasePlanMain.data' +import { validateHanset, validateEmail } from '@/utils/validator' +import { Itempackaging } from '@/views/wms/basicDataManage/itemManage/itempackage/itempackage.data' +import * as ItemPackageApi from '@/api/wms/itempackage/index' +import { cloneDeep } from 'lodash-es' + +import {validateInteger} from '@/utils/validator' +const { t } = useI18n() // 国际化 + + +let PurchasePlanDetailSchemas = cloneDeep(PurchasePlanDetail.allSchemas) +if(PurchasePlanDetailSchemas?.tableColumns){ + PurchasePlanDetailSchemas.tableColumns.splice(2, 0, { + label: '送达日期', + field: 'deliveryDate', + table: { + width: 180 + }, + width: 180, + formatter: dateFormatter2, + sortTableDefault:2 + }); +} + + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize: 10, + pageNo: 1, + code: 'SupplierDeliverRequest' +} +const data = await getRequestsettingApi.getRequestsettingPage(queryParams) +const requestsettingData = data?.list[0] || {} + + // 获取当前操作人的部门 +import { useUserStore } from '@/store/modules/user' +import { TableColumn } from '@/types/table' +import { tr } from 'element-plus/es/locale' + const userStore = useUserStore() + const userDept = userStore.userSelfInfo.dept + // id 转str 否则form回显匹配不到 + userDept.id = userDept.id.toString() + const userDeptArray:any = [userDept] + +/** + * @returns {Array} 供应商发货申请主表 + */ +export const SupplierdeliverRequestMain = useCrudSchemas(reactive([ + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: true, + isForm: false + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isTable:false, + isForm: false, + isSearch: true, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch: true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPageSCP, // 查询弹窗所需分页方法 + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true + }], // 失去焦点校验参数 + } + } + }, + + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + isTable:true, + table: { + width: 150 + }, + sortTableDefault:9, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + enterSearch:true, + dialogWidth:'1055px',//搜索出来弹窗的宽度 + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择要货计划单号', // 输入框占位文本 + searchField: 'number', // 查询弹窗赋值字段 + searchTitle: '要货计划信息', // 查询弹窗标题 + searchAllSchemas: PurchasePlanDetailSchemas, // 查询弹窗所需类 + searchPage: PurchasePlanDetailApi.getPurchasePlanDetailPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'supplierCode', + value: 'supplierCode', + message: '请填写供应商代码!', + isMainValue: true + }, + { + key: 'status', + value: 4, + isMainValue: false + }, + { + key: 'flag', + value: 1, + isMainValue: false + }, + { + key: 'available', + value: "TRUE", + isMainValue: false + }], + verificationParams: [{ + key: 'number', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true + }], // 失去焦点校验参数 + } + } + }, + { + label: '要求到货时间', + field: 'arriveTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '采购订单', + field: 'poNumber', + isForm:true, + isTable:false, + isTableForm:false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled: true, + } + } + }, + { + label: '计划到货时间', + field: 'planArriveTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:true, + sortTableDefault:6, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '发货联系人姓名', + field: 'contactName', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '发货联系人电话', + field: 'contactPhone', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + // { + // label: '联系人电子邮件', + // field: 'contactEmail', + // sort: 'custom', + // isTable:false, + // table: { + // width: 150 + // }, + // }, + // { + // label: '供应商发货仓库代码', + // field: 'fromWarehouseCode', + // sort: 'custom', + // isTable:false, + // table: { + // width: 150 + // }, + // form: { + // componentProps: { + // disbaled: true + // } + // }, + // isForm: true + // }, + { + label: '到仓库代码', + field: 'toWarehouseCode', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + isForm: false + }, + { + label: '到月台代码', + field: 'toDockCode', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + isForm: false + }, + { + label: '时间窗口', + field: 'timeWindow', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + isForm: false + }, + + { + label: '承运商', + field: 'carrierCode', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '运输方式', + field: 'transferMode', + dictType: DICT_TYPE.TRANSFER_MODE, + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '车牌号', + field: 'vehiclePlateNumber', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + // { + // label: '业务类型', + // field: 'businessType', + // sort: 'custom', + // table: { + // width: 150 + // }, + // form: { + // value: 'SupplierDeliver', + // componentProps: { + // disabled: true, + // } + // } + // }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isTable: false + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + isTable:false, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + 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: 'creator', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + isForm: false + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + isTable:false, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + detaul: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + isTable:false, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false + }, + // { + // label: '部门', + // field: 'departmentCode', + // sort: 'custom', + // table: { + // width: 150 + // }, + // formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + // return userDeptArray.find((account) => account.id == cellValue)?.name + // }, + // form: { + // value: userDept.id, + // component: 'Select', + // api: () => userDeptArray, + // componentProps: { + // disabled: true, + // optionsAlias: { + // labelField: 'name', + // valueField: 'id' + // } + // } + // } + // }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isTable: true, + isForm:false, + isSearch: false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:2, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '最后更新时间', + field: 'updateTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + isTable:false, + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + isForm: false + }, + { + label: '最后更新者', + field: 'updater', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isForm: false + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable:false, + sort: 'custom', + isForm:false, + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoCommit, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm:false, + form: { + component: 'Switch', + value: requestsettingData.autoAgree, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + isForm:false, + form: { + component: 'Switch', + value: requestsettingData.autoExecute, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isForm: false, + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.directCreateRecord, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 320, + fixed: 'right' + }, + } +])) + +//表单校验 +export const SupplierdeliverRequestMainRules = reactive({ + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'blur' } + ], + ppNumber: [ + { required: true, message: '请输入要货计划单号', trigger: 'blur' } + ], + asnNumber: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + contactName: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + contactPhone: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + { validator: validateHanset, message: '请输入正确的手机号', trigger: 'blur' } + ], + contactEmail: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + { validator: validateEmail, message: '请输入正确的邮箱地址', trigger: 'blur' } + ], + carrierCode: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + transferMode: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + vehiclePlateNumber: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + planArriveTime: [ + { required: true, message: '请输入计划到货时间', trigger: 'blur' } + ], + // departmentCode: [ + // { required: true, message: '请输入部门', trigger: 'blur' } + // ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + directCreateRecord: [ + { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } + ], + // businessType: [ + // { required: true, message: '请输入业务类型', trigger: 'blur' } + // ], +}) + +/** + * @returns {Array} 供应商发货申请子表 + */ +export const SupplierdeliverRequestDetail = useCrudSchemas(reactive([ + + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm: { + disabled: true + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + isSearch:true, + table: { + width: 150 + }, + sortTableDefault:3, + form: { + componentProps: { + disabled: true + } + }, + tableForm: { + disabled: true + } + }, + { + label: '申请发货数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:4, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 6 + } + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:7, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + type: 'FormDate', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + { + label: '供应商批次', + field: 'supplierBatch', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:8, + tableForm: { + disabled: false + } + }, + { + label: '发货批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + tableForm: { + disabled: true + } + }, + { + label: '计划数量', + field: 'planQty', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + tableForm: { + disabled: true, + type: 'InputNumber', + precision: 6 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + } + }, + { + label: '已发货数量', + field: 'shippedQty', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true, + type: 'InputNumber', + precision: 6 + }, + isTable: false, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6 + } + } + }, + + + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + hiddenInMain:true, + table: { + width: 180 + }, + isForm: false, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + + isTableForm: false, + tableForm: { + type: 'FormDate', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + { + label: '过期日期', + hiddenInMain:true, + field: 'expireDate', + formatter: dateFormatter2, + isTableForm:false, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + // tableForm: { + // type: 'FormDate', + // dateFormat: 'YYYY-MM-DD', + // valueFormat: 'x', + // } + tableForm:{ + type: 'slot', + disabled: true + } + }, + // { + // label: '发货数量', + // field: 'qty', + // sort: 'custom', + // table: { + // width: 150 + // }, + // sortTableDefault:2, + // form: { + // component: 'InputNumber', + // componentProps: { + // min: 1, + // precision: 6 + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 1, + // precision: 6 + // } + // }, + { + label: '订单数量', + field: 'orderQty', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 6 + } + }, + tableForm: { + disabled: true, + type: 'InputNumber', + min: 0, + precision: 6 + } + }, + + { + label: '供应商计量数量', + field: 'supplierPackQty', + sort: 'custom', + hiddenInMain:true, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '供应商计量单位', + field: 'supplierPackUnit', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + hiddenInMain:true, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'Select' + } + }, + { + label: '转换率', + hiddenInMain:true, + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0 + } + }, + isTableForm: false, + isForm: false, + tableForm: { + type: 'InputNumber', + min: 0 + } + }, + { + label: '单据号', + hiddenInMain:true, + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + + { + label: '计量单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sortTableDefault:5, + table: { + width: 150 + }, + tableForm: { + disabled: true, + type: 'Select' + } + }, + { + label: '采购订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch:true, + sortTableDefault:10, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + // isSearchList: true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '要货计划信息', + searchAllSchemas: PurchasePlanDetail.allSchemas, + searchPage: PurchasePlanDetailApi.getPurchasePlanDetailPageClcik, + searchCondition: [ + { + key: 'number', + value: 'ppNumber', + message: '请填写要货计划单号!', + isMainValue: true + }, + { + key: 'flag', + value: 1, + isMainValue: false + }, + { + key: 'isAll', + value: '1', + isMainValue: false + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + disabled:true, + isInpuFocusShow: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '要货计划信息', + searchAllSchemas: PurchasePlanDetail.allSchemas, + searchPage: PurchasePlanDetailApi.getPurchasePlanDetailPageClcik, + searchCondition: [ + { + key: 'number', + value: 'ppNumber', + message: '请填写要货计划单号!', + isMainValue: true + }, + { + key: 'flag', + value: 1, + isMainValue: false + }, + { + key: 'isAll', + value: '1', + isMainValue: false + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + { + label: '从货主代码', + field: 'fromOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '到货主代码', + field: 'toOwnerCode', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:true, + isTableForm: false, + isForm: false + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + hiddenInMain:false, + form: { + component: 'DatePicker', + componentProps: { + style: { width: '100%' }, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + isForm: false, + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + }, + hiddenInMain:false, + isTableForm: false, + isForm: false, + }, + // { + // label: '最后更新时间', + // field: 'updateTime', + // formatter: dateFormatter, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // style: { width: '100%' }, + // type: 'datetime', + // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'x', + // } + // }, + // hiddenInMain:false, + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTableForm: false, + // isForm: false, + // }, + // { + // label: '最后更新者', + // field: 'updater', + // sort: 'custom', + // table: { + // width: 150 + // }, + // hiddenInMain:false, + // isTableForm: false, + // isForm: false, + // }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isTable: false, + hiddenInMain:true, + table: { + width: 150 + }, + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 180, + fixed: 'right' + }, + isTableForm: false, + } +])) + +// 批次校验 +const validateBatch = (rule: any, value: any, callback: any) => { + const reg = /^[_a-zA-Z0-9]+$/; + if (value == '' || value == undefined || value == null) { + callback(); + } else { + if (!reg.test(value)) { + callback(new Error('英文字母、数字或下划线')); + } else { + callback(); + } + } +} + +const validateQty = (rule: any, value: any, callback: any,a,b) => { + console.log('validateQty',rule, value,a,b) + if (!value) { + callback(new Error('发货数量必须大于0')); + } else { + callback(); + } +} +//表单校验 +export const SupplierdeliverRequestDetailRules = reactive({ + // packingNumber: [ + // { required: true, message: '请输入包装号', trigger: 'blur' } + // ], + qty:[ + { required: true, message: '请输入发货数量', trigger: 'change' }, + { validator: validateQty, trigger: 'change' }, + ], + supplierBatch: [ + { required: true, message: '请输入供应商批次', trigger: 'blur' } + ], + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' }, + { validator: validateBatch, trigger: 'change' } + ], + produceDate: [ + { required: true, message: '请输入生产日期', trigger: 'blur' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'blur' }, + // { validator: validateInteger, message: '请输入正确的整数', trigger: 'blur' } + ], + poNumber: [ + { required: true, message: '请选择订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请选择订单行', trigger: 'change' } + ], + packUnit: [ + { required: true, message: '请选择包装规格', trigger: 'change' } + ], + secondPackUnit: [ + { required: false, message: '请选择包装规格2', trigger: 'change' } + ], + secondPackQty: [ + { required: false, message: '请输入包装数量2', trigger: 'blur' }, + // { validator: validateInteger, message: '请输入正确的整数', trigger: 'blur' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请选择物料代码', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + // secondPackQty:[{ validator:validateInteger, message: '请输入正确的整数', trigger: 'blur'}] +}) + +export const SupplierdeliverRequestDetailLabel = useCrudSchemas(reactive([ + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + disabled: true + } + }, + { + label: '生产日期', + field: 'produceDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + + } + }, + tableForm: { + disabled:true, + type: 'FormDate', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + // { + // label: '替代批次', + // field: 'altBatch', + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTableForm: false, + // isForm: false, + // tableForm:{ + // disabled:true + // } + // }, + { + label: '到货日期', + field: 'arriveDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + isTableForm: false, + tableForm: { + disabled:true, + type: 'FormDate', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + { + label: '过期日期', + field: 'expireDate', + formatter: dateFormatter2, + detail: { + dateFormat: 'YYYY-MM-DD', + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + disabled:true, + style: {width: '100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + tableForm: { + disabled:true, + type: 'FormDate', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + disabled:true, + isSearchList: false, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '要货计划信息', + searchAllSchemas: PurchasePlanDetail.allSchemas, + searchPage: PurchasePlanDetailApi.getPurchasePlanDetailPage, + searchCondition: [ + { + key: 'number', + value: 'ppNumber', + message: '请填写要货计划单号!', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + + ] + } + }, + tableForm: { + isInpuFocusShow: false, + disabled:true, + searchListPlaceholder: '请选择订单号', + searchField: 'number', + searchTitle: '要货计划信息', + searchAllSchemas: PurchasePlanDetail.allSchemas, + searchPage: PurchasePlanDetailApi.getPurchasePlanDetailPage, + searchCondition: [ + { + key: 'number', + value: 'ppNumber', + message: '请填写要货计划单号!', + isMainValue: true + }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm: { + disabled: true + } + }, + { + label: '订单数量', + field: 'orderQty', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 6 + } + }, + tableForm: { + disabled: true, + type: 'InputNumber', + min: 0, + precision: 6 + } + }, + + { + label: '供应商计量数量', + field: 'supplierPackQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 1, + precision: 6 + } + }, + isTableForm: false, + isForm: false, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '供应商计量单位', + field: 'supplierPackUnit', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false, + tableForm: { + disabled:true, + type: 'Select' + } + }, + { + label: '转换率', + field: 'convertRate', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0 + } + }, + isTableForm: false, + isForm: false, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 0 + } + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + }, + isTableForm: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm: { + disabled: true + } + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: true, + isTable: true, + table: { + width: 150 + }, + tableForm: { + disabled:true, + type: 'Select' + } + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled:true, + min: 0, + precision: 6 + } + }, + tableForm: { + disabled:true, + type: 'InputNumber', + min: 0, + precision: 6 + } + }, + { + label: '箱规格', + field: 'packUnit', + isTable: true, + sort: 'custom', + form: { + }, + tableForm: { + type: 'Select', + labelField: 'packName', + valueField: 'packUnit', + initOptions: [{ + label: '', + value: '' + }] + } + },{ + label: '箱规格数量', + field: 'packQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + } + }, + tableForm: { + disabled:true + } + }, + { + label: '托规格', + field: 'secondPackUnit', + isTable: true, + sort: 'custom', + form: { + }, + tableForm: { + type: 'Select', + labelField: 'packName', + valueField: 'packUnit', + initOptions: [{ + label: '', + value: '' + }] + } + }, + { + label: '托规格数量', + field: 'secondPackQty', + sort: 'custom', + table: { + width: 150 + }, + form: { + componentProps: { + } + }, + tableForm: { + disabled:true + } + }, + + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '物料描述1', + field: 'itemDesc1', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '物料描述2', + field: 'itemDesc2', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, + { + label: '项目代码', + field: 'projectCode', + sort: 'custom', + table: { + width: 150 + }, + isTableForm: false, + isForm: false + }, +])) + +export const SupplierdeliverRequestPackage = useCrudSchemas(reactive([ + { + label: '包装号', + field: 'number', + sort: 'custom', + isSearch: true, + table: { + fixed: 'left' + }, + }, +{ + label: '物料代码', + field: 'itemCode', + sort: 'custom', + isSearch: true, + table: { + }, + }, +{ + label: '批次', + field: 'batch', + sort: 'custom', + isSearch: true, + table: { + }, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + table: { + }, + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + form: { + component: 'SelectV2' + }, + table: { + }, + }, + +])) diff --git a/src/views/wms/reportList/index.vue b/src/views/wms/reportList/index.vue new file mode 100644 index 0000000..d5e2868 --- /dev/null +++ b/src/views/wms/reportList/index.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/views/wms/supplierManage/invoicingcalendar/index.vue b/src/views/wms/supplierManage/invoicingcalendar/index.vue new file mode 100644 index 0000000..700eeb1 --- /dev/null +++ b/src/views/wms/supplierManage/invoicingcalendar/index.vue @@ -0,0 +1,254 @@ + + + diff --git a/src/views/wms/supplierManage/invoicingcalendar/invoicingcalendar.data.ts b/src/views/wms/supplierManage/invoicingcalendar/invoicingcalendar.data.ts new file mode 100644 index 0000000..6884ce3 --- /dev/null +++ b/src/views/wms/supplierManage/invoicingcalendar/invoicingcalendar.data.ts @@ -0,0 +1,117 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { fa } from 'element-plus/es/locale' + +// 表单校验 +export const InvoicingcalendarRules = reactive({ + beginDay: [required], + endDay: [required], + concurrencyStamp: [required], +}) + +export const Invoicingcalendar = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isForm: false, + isTable: false + }, + { + label: '开始日期', + field: 'beginDay', + sort: 'custom', + dictType: DICT_TYPE.SYSTEM_DAY, + dictClass: 'string', + }, + { + label: '结束日期', + field: 'endDay', + sort: 'custom', + dictType: DICT_TYPE.SYSTEM_DAY, + dictClass: 'string', + }, + { + label: '描述', + field: 'descriiption', + sort: 'custom', + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + }, + { + label: '扩展属性', + field: 'extraProperties', + sort: 'custom', + isTable: false, + isForm:false, + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isTable: false, + isForm:false, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '地点ID', + field: 'siteId', + sort: 'custom', + isTable: false, + isForm:false, + }, + { + 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')] + } + }, + isForm: false, + isTable: true, + }, + { + label: '创建人', + field: 'creator', + sort: 'custom', + isTable: true, + isForm:false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/wms/supplierManage/purchaseDiscreteOrder/purchaseDiscreteOrderMain/index.vue b/src/views/wms/supplierManage/purchaseDiscreteOrder/purchaseDiscreteOrderMain/index.vue new file mode 100644 index 0000000..23e035f --- /dev/null +++ b/src/views/wms/supplierManage/purchaseDiscreteOrder/purchaseDiscreteOrderMain/index.vue @@ -0,0 +1,464 @@ + + + + + \ No newline at end of file diff --git a/src/views/wms/supplierManage/purchaseDiscreteOrder/purchaseDiscreteOrderMain/purchaseDiscreteOrderMain.data.ts b/src/views/wms/supplierManage/purchaseDiscreteOrder/purchaseDiscreteOrderMain/purchaseDiscreteOrderMain.data.ts new file mode 100644 index 0000000..47515e8 --- /dev/null +++ b/src/views/wms/supplierManage/purchaseDiscreteOrder/purchaseDiscreteOrderMain/purchaseDiscreteOrderMain.data.ts @@ -0,0 +1,1863 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import { accountantFormart } from '@/utils/formatter' + +/** + * @returns {Array} 供应商发票记录主表 + */ +export const SupplierinvoiceRecordMain = useCrudSchemas(reactive([ + { + label: '单据号', + field:'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: false + }, + { + label: '发票申请单号', + field:'requestNumber', + sort: 'custom', + table: { + width: 180, + }, + sortSearchDefault:1, + sortTableDefault:1, + isSearch: true + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1, + isSearch: true + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + table: { + width: 180, + }, + sortTableDefault:2, + isForm: false, + isSearch:true + }, + { + label: '税率', + field: 'taxRate', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:3, + form: { + component: 'InputNumber', + } + }, + + { + label: '价差合计', + field: 'differencePriceTotalMain', + formatter: accountantFormart, + table: { + width: 100 + }, + sortTableDefault: 3, + isForm: false, + isTable: true, + isSearch: false, + isDetail: true, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.SUPPLIERINVOICE_REQUEST_STATUS, + dictClass: 'string', + isTable: true, + sortTableDefault:7, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + search: { + componentProps: { + multiple: true, + collapseTags: true, + collapseTagsTooltip: true, + } + }, + isSearch: true, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + { + label: '已读状态', + field: 'isRead', + dictType: DICT_TYPE.DISCRETE_SUPPLIERINVOICE_READ, + dictClass: 'string', + isTable: true, + sortTableDefault:7, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + search: { + componentProps: { + collapseTags: true, + collapseTagsTooltip: true, + } + }, + isSearch: true, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + + // { + // label: '申请单号', + // field: 'requestNumber', + // sort: 'custom', + // table: { + // width: 180, + // }, + // isTable: false, + // isSearch: true + // }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '金税票号',//金税票号 + field: 'goldenTaxInvoiceNumber', + sort: 'custom', + table: { + width: 200 + }, + sortTableDefault:5, + isSearch: true + }, + { + label: '未税尾差', + field: 'beforeTaxDiffAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + isForm:false, + isTableForm:false + }, + { + label: '税额尾差', + field: 'taxAmountDiff', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + isForm:false, + isTableForm:false + }, + { + label: '价税合计尾差', + field: 'totalTaxDiffAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + isForm:false, + isTableForm:false + }, + + { + label: '供应商维护税额', + field: 'taxAmount', + formatter: accountantFormart, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:8, + form: { + component: 'InputNumber', + } + }, + { + label: '发票未税金额', + field: 'beforeTaxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:3, + isForm:false, + isTableForm:false + }, + { + label: '发票税额', + field: 'totalTaxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:3, + isForm:false, + isTableForm:false + }, + { + label: '发票价税合计', + field: 'adTaxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:3, + isForm:false, + isTableForm:false + }, + { + label: '是否有价差', + field: 'balanceStatementStatus', + dictType: DICT_TYPE.INVOICE_BALANCE_STATEMENT_STATUS, + dictClass: 'string', + isTable: true, + isForm:false, + isSearch:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:3, + }, + + { + label: '价差说明', + field: 'balanceStatement', + isTable: false, + isForm:false, + isSearch:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + }, + { + label: '供应商维护价税合计',//税后金额 + field: 'afterTaxAmount', + formatter: accountantFormart, + sort: 'custom', + table: { + width: 160 + }, + sortTableDefault:9, + form: { + component: 'InputNumber', + } + }, + + { + label: '价差',//总差额 + field: 'totalDifference', + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 6, + } + }, + + { + label: '供应商维护未税金额', + field: 'amount', + formatter: accountantFormart, + sort: 'custom', + table: { + width: 160 + }, + sortTableDefault:8, + form: { + component: 'InputNumber', + } + }, + + + + { + label: '索赔金额', + field: 'claimAmount', + formatter: accountantFormart, + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber', + } + }, + { + label: '调整价差', + field: 'discountAmount', + formatter: accountantFormart, + sort: 'custom', + table: { + width: 150 + }, + isDetail:false, + isTable: false, + form: { + component: 'InputNumber', + } + }, + { + label: '调整税额', + field: 'adjustingTaxAmount', + formatter: accountantFormart, + sort: 'custom', + isDetail:false, + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber', + } + }, + + { + label: '未税差额', + field: 'untaxedDifference', + formatter: accountantFormart, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + } + }, + isTable: false, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 6, + } + }, + { + label: '含税差额', + field: 'taxInclusiveDifference', + formatter: accountantFormart, + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 6, + } + }, + { + label: '快递单号', + field: 'expressTrackingNumber', + sort: 'custom', + isTable:false, + isForm:false, + isSearch:false, + table: { + width: 150 + }, + }, + { + label: '开票日期', + field: 'invoiceTime', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + sortTableDefault:4, + sort: 'custom', + table: { + width: 180 + }, + }, + // { + // label: '采购审批人', + // field: 'procurementCreatorName', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable:true, + // isDetail: true, + // isTableForm: false, + // isForm:false, + // isSearch:false, + // sortTableDefault:10 + // }, + { + label: '过账日期', + field: 'postingDate', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + isTable: true, + sortTableDefault:6, + sort: 'custom', + table: { + width: 180 + }, + isSearch: true, + search: { + value:[], + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + dateFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 '), new Date('1 ')] + } + }, + }, + //子表数据,仅是查询条件 + { + label: '货运单号', + field: 'asnBillNum', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isTableForm:false, + isTable:false, + isDetail:false, + isSearch: true, + isForm: false, + }, + { + label: '财务凭证号', + field: 'voucherNumber', + sort: 'custom', + table: { + width: 200, + }, + isTable:true, + sortTableDefault:6, + isForm: false + }, + + { + label: '业务类型', + field:'businessType', + sort: 'custom', + isTable:false, + isTableForm:false, + isDetail:false, + table: { + width: 150 + }, + }, + { + label: '出库事务类型', + field: 'outTransactionType', + sort: 'custom', + isTable:false, + isTableForm:false, + isDetail:false, + table: { + width: 150 + }, + }, + { + label: '入库事务类型', + field: 'inTransactionType', + isTable:false, + isTableForm:false, + isDetail:false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '执行时间', + field: 'executeTime', + isTable:false, + isTableForm:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '生效日期', + field: 'activeDate', + isTable:false, + isTableForm:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '申请时间', + field: 'requestTime', + isTable:false, + isTableForm:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '截止时间', + field: 'dueTime', + isTable:false, + isTableForm:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '部门', + field: 'departmentCode', + isTable:false, + isTableForm:false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '代码', + field: 'code', + isTable:false, + isTableForm:false, + isDetail:false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable:false, + isDetail:false, + isTableForm:false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + isTable:false, + isTableForm:false, + dictClass: 'string', + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + sortTableDefault:1000, + isTable: false, + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + isDetail: false, + isTableForm: false, + isTable: true, + 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')] + } + }, + }, + { + label: '供应商创建时间', + field: 'requestTime', + isTable: true, + sortTableDefault:1001, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + }, + // { + // label: '采购审批人', + // field: 'procurementCreatorName', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable:true, + // isDetail: true, + // isTableForm: false, + // isForm:false, + // isSearch:false, + // sortTableDefault:10 + // }, + // { + // label: '采购审批人代码', + // field: 'procurementCreator', + // sortTableDefault:1002, + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // isForm: false, + // }, + + { + label: '回转日期', + field: 'reversepostingdate', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + }, + { + label: '说明',//回转说明 + field: 'tcCInvoiceRemark', + sortTableDefault:11, + table: { + width: 150 + }, + }, + { + label: '回转凭证号', + field: 'transferNumber', + sort: 'custom', + table: { + width: 200, + }, + sortTableDefault:11, + isTable:true, + isForm: false + }, + // { + // label: '冲销日记帐', + // field: 'reverseInvoiceJournal', + // sortTableDefault:11, + // table: { + // width: 150 + // }, + // }, + // { + // label: '调整账代码', + // field: 'adjustmentJournal', + // sortTableDefault:11, + // table: { + // width: 150 + // }, + // }, + + { + label: '采购审批时间', + field: 'procurementCreateTime', + sortTableDefault:11, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '采购价格审批人', + field: 'procurementCreatorName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:12, + isForm: false, + }, + { + label: '财务审批人', + field: 'financialCreatorName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:12, + isForm: false, + }, + + { + label: '财务审批时间', + field: 'financialCreateTime', + sortTableDefault:13, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + // { + // label: '采购驳回原因', + // field: 'purchaseRejectCause', + // table: { + // width: 180 + // }, + // sortTableDefault:14, + // isTable: true, + // isSearch: false, + // isForm: false, + // isDetail:false, + // }, + // { + // label: '财务驳回原因', + // field: 'financeRejectCause', + // table: { + // width: 180 + // }, + // sortTableDefault:15, + // isTable: true, + // isSearch: false, + // isForm: false, + // isDetail:false, + // }, + { + label: '供应商审批人', + field: 'supplierCreatorName', + sort: 'custom', + isTable:false, + isTableForm:false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '供应商审批时间', + field: 'supplierCreateTime', + isTable:false, + isTableForm:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '凭证描述', + field: 'voucherNumberRemark', + isTable:true, + isTableForm:false, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + }, + } +])) +/** + * @returns {Array} 供应商发票在详情展示的主表字段 + */ +export const SupplierinvoiceRecordDetailMain = useCrudSchemas(reactive([ + { + label: '汇总信息', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: true, + }, + { + label: '供应商信息', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: true, + }, + { + label: '价差', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: 'SCP系统数据', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: false, + }, + + { + label: '单据号', + field: 'number', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '系统未税金额', + field: 'purchaseAmountTotalMain', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '财务凭证号', + field: 'voucherNumber', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '价差合计', + field: 'differencePriceTotalMain', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商创建时间', + field: 'requestTime', + sort: 'custom', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '订单类型', + field: 'orderType', + dictType: DICT_TYPE.PURCHASE_INVOICE_ORDER_TYPE, + dictClass: 'string', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.SUPPLIERINVOICE_REQUEST_STATUS, + dictClass: 'string', + sort: 'custom', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票号码', + field: 'goldenTaxInvoiceNumber', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + // { + // label: '尾差', + // field: 'totalDifference', + // sortTableDefault: 6, + // isForm: false, + // isTable: false, + // isSearch: false, + // isDetail: false, + // }, + { + label: '尾差', + field: '', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + + { + label: '采购价格审批人', + field: 'procurementCreatorName', + sortTableDefault: 1003, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '开票日期', + field: 'invoiceTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商维护价税合计', + field: 'afterTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '采购价格审批时间', + field: 'procurementCreateTime', + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 1003, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '税率(%)', + field: 'taxRate', + dictType: DICT_TYPE.TAX_RATE_DICT, + dictClass: 'string', + sortTableDefault: 3, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '供应商维护未税金额', + field: 'amount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '价差通过说明', + field: 'balanceStatement', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票价税合计', + field: 'adTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商维护税额', + field: 'taxAmount', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '财务审批人', + field: 'financialCreatorName', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票未税金额', + field: 'beforeTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '财务审批时间', + field: 'financialCreateTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票税额', + field: 'totalTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '价税合计尾差', + field: 'totalTaxDiffAmount', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + detail:{ + slotFilter: true + } + }, + { + label: '财务过账日期', + field: 'postingDate', + isTable: true, + sortTableDefault: 15, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + + }, + { + label: '返利未税金额',//折扣金额 + field: 'discountAmount1', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '未税尾差', + field: 'beforeTaxDiffAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + detail:{ + slotFilter: true + } + }, + { + label: '回转凭证号', + field: 'transferNumber', + sort: 'custom', + }, + { + label: '工厂地点', + field: 'siteId', + sort: 'custom', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '税额尾差', + field: 'taxAmountDiff', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + detail:{ + slotFilter: true + } + }, + + { + label: '回转日期', + field: 'reversepostingdate', + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + }, + { + label: '', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '说明', //回转说明 + field: 'tcCInvoiceRemark', + }, + { + label: '', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '参考凭证描述', + field: 'voucherNumberRemark', + sort: 'custom', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + // detail:{ + // span:2 + // } + }, + { + label: '', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + + +])) +//表单校验 +export const SupplierinvoiceRecordMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'blur' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'blur' } + ], + available: [ + { required: true, message: '请输入是否可用', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + requestTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 供应商发票记录子表 + */ +export const SupplierinvoiceRecordDetail = useCrudSchemas(reactive([ + { + label: '项目编号', + field: 'projectCode', + isTable:false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '采购收货记录单号', + field: 'qadNumber', + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '单据类型', + field: 'billType', + dictType: DICT_TYPE.BILL_TYPE, + dictClass: 'string', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '待开票单据号', + field: 'recvBillNum', + table: { + width: 150 + }, + sortTableDefault:9, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '单据号', + field: 'number', + hiddenInMain:true, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '供应商发货单号', + field: 'asnBillNum', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:8, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + sortTableDefault:3, + table: { + width: 150 + }, + }, + { + label: '物料描述', + field: 'itemDesc', + table: { + width: 150 + }, + sortTableDefault:4, + isForm:false, + isTableForm:false, + isDetail: false, + isTable: true, + }, + { + label: '到货时间', + field: 'planArriveTime', + table: { + width: 150 + }, + formatter: dateFormatter2, + sortTableDefault:5, + isForm:false, + isTableForm:false, + isDetail: false, + isTable: true, + }, + { + label: '到货数量', + field: 'arrivalQty', + table: { + width: 150 + }, + sortTableDefault:6, + isForm:false, + isTableForm:false, + isDetail: false, + isTable: true, + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '货币', + field: 'currency', + sort: 'custom', + dictType: DICT_TYPE.CURRENCY, + dictClass: 'string', + table: { + width: 150 + }, + tableForm:{ + type:'Select', + disabled: true + } + }, + { + label: '合同价格', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, + { + label: '采购价格', + field: 'purchasePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, + { + label: '合同金额', + field: 'contractAmountTotal', + table: { + width: 150 + }, + isForm:false, + tableForm:{ + disabled: true + } + }, + { + label: '采购金额', + field: 'purchaseAmontTotal', + table: { + width: 150 + }, + isForm:false, + tableForm:{ + disabled: true + } + }, + { + label: '总差额', + field: 'differencePriceTotal', + table: { + width: 150 + }, + isForm:false, + tableForm:{ + disabled: true + } + }, + { + label: '单价差额', + field: 'differencePrice', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + type: 'slot', + disabled: true + } + }, + // { + // label: '未税差额', + // field: 'untaxedDifference', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // min: 0, + // precision: 6, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 6, + // } + // }, + // { + // label: '含税差额', + // field: 'taxInclusiveDifference', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // min: 0, + // precision: 6, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 6, + // } + // }, + { + label: '收货日期', + field: 'deliveryDate', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '开票数量', + field: 'invoicableQuantity', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, + { + label: '财务凭证号', + field: 'voucherNumber', + sort: 'custom', + table: { + width: 200 + } + }, + { + label: '参考凭证描述', + field: 'voucherNumberRemark', + sort: 'custom', + table: { + width: 150 + }, + }, +])) + +//表单校验 +export const SupplierinvoiceRecordDetailRules = reactive({ + packingNumber: [ + { required: true, message: '请输入包装号', trigger: 'blur' } + ], + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' } + ], + poNumber: [ + { required: true, message: '请输入订单号', trigger: 'blur' } + ], + poLine: [ + { required: true, message: '请输入订单行', trigger: 'blur' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'blur' } + ], + packUnit: [ + { required: true, message: '请输入包装规格', trigger: 'blur' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'blur' } + ], + requestTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + + +// 发票回转 +export const SupplierinvoiceRecordMainTransfer = useCrudSchemas(reactive([ + { + label: '冲销日记帐', + field: 'reverseInvoiceJournal', + form: { + componentProps: { + value:'APINVCOR', + disabled: true, + } + }, + }, + { + label: '调整账代码', + field: 'adjustmentJournal', + form: { + componentProps: { + value:'APADJ', + disabled: true, + } + }, + }, + { + label: '回转日期', + field: 'reversepostingdate', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:11, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '说明', + field: 'tcCInvoiceRemark', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: true, + isDetail:false, + form: { + componentProps: { + type:"textarea", + maxlength:50, + showWordLimit:true + } + } + } +])) + + +//表单校验 +export const SupplierinvoiceRecordMainTransferRules = reactive({ + reversepostingdate: [ + { required: true, message: '请选择过账日期', trigger: 'change' } + ] +}) + diff --git a/src/views/wms/supplierManage/purchaseclaim/purchaseclaimRecordMain/index.vue b/src/views/wms/supplierManage/purchaseclaim/purchaseclaimRecordMain/index.vue new file mode 100644 index 0000000..b40d491 --- /dev/null +++ b/src/views/wms/supplierManage/purchaseclaim/purchaseclaimRecordMain/index.vue @@ -0,0 +1,182 @@ + + + diff --git a/src/views/wms/supplierManage/purchaseclaim/purchaseclaimRecordMain/purchaseclaimRecordMain.data.ts b/src/views/wms/supplierManage/purchaseclaim/purchaseclaimRecordMain/purchaseclaimRecordMain.data.ts new file mode 100644 index 0000000..8da8759 --- /dev/null +++ b/src/views/wms/supplierManage/purchaseclaim/purchaseclaimRecordMain/purchaseclaimRecordMain.data.ts @@ -0,0 +1,382 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' + +/** + * @returns {Array} 采购索赔记录主表 + */ +export const PurchaseclaimRecordMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: true + }, + { + label: '申请单号', + field: 'requestNumber', + sort: 'custom', + table: { + width: 180 + }, + isSearch: true + }, + { + label: '发货单号', + field: 'asnNumber', + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '要货计划单号', + field: 'ppNumber', + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true + }, + { + label: '出库事务类型', + field: 'outTransactionType', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '入库事务类型', + field: 'inTransactionType', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '执行时间', + field: 'executeTime', + isTable: true, + formatter: dateFormatter, + deatil: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '生效日期', + field: 'activeDate', + isTable: true, + formatter: dateFormatter2, + deatil: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '申请时间', + field: 'requestTime', + isTable: true, + formatter: dateFormatter, + deatil: { + dateFormatter: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '截止时间', + field: 'dueTime', + isTable: true, + formatter: dateFormatter, + deatil: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '代码', + field: 'code', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable: true, + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isSearch: true, + isTable: true, + table: { + width: 150 + }, + form:{ + component:'Switch', + componentProps:{ + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + // { + // label: '创建者', + // field: 'creator', + // sort: 'custom', + // table: { + // width: 150 + // } + // }, + // { + // label: '创建时间', + // field: 'createTime', + // isTable: true, + // formatter: dateFormatter, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // sort: 'custom', + // table: { + // width: 180 + // } + // }, +])) + +//表单校验 +export const PurchaseclaimRecordMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'blur' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'blur' } + ], + available: [ + { required: true, message: '请输入是否可用', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + createTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购索赔记录子表 + */ +export const PurchaseclaimRecordDetail = useCrudSchemas(reactive([ + { + label: '批次', + field: 'batch', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '原因', + field: 'reason', + isTable: true, + dictClass: 'string', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180 + } + }, + { + label: '代码', + field: 'code', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: true, + table: { + width: 150 + }, + form:{ + component:'Switch', + componentProps:{ + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + table: { + width: 150 + } + }, + { + label: '创建时间', + field: 'createTime', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + 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')] + }, + }, + }, +])) + +//表单校验 +export const PurchaseclaimRecordDetailRules = reactive({ + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' } + ], + poNumber: [ + { required: true, message: '请选择订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请输入订单行', trigger: 'blur' } + ], + reason: [ + { required: true, message: '请输入原因', trigger: 'blur' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请选择物料代码', trigger: 'change' } + ], + createTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) diff --git a/src/views/wms/supplierManage/purchaseclaim/purchaseclaimRequestMain/index.vue b/src/views/wms/supplierManage/purchaseclaim/purchaseclaimRequestMain/index.vue new file mode 100644 index 0000000..7e1ca9c --- /dev/null +++ b/src/views/wms/supplierManage/purchaseclaim/purchaseclaimRequestMain/index.vue @@ -0,0 +1,518 @@ + + + + diff --git a/src/views/wms/supplierManage/purchaseclaim/purchaseclaimRequestMain/purchaseclaimRequestMain.data.ts b/src/views/wms/supplierManage/purchaseclaim/purchaseclaimRequestMain/purchaseclaimRequestMain.data.ts new file mode 100644 index 0000000..d5d984b --- /dev/null +++ b/src/views/wms/supplierManage/purchaseclaim/purchaseclaimRequestMain/purchaseclaimRequestMain.data.ts @@ -0,0 +1,597 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' + +import * as supplierdeliverRecordMainApi from '@/api/wms/supplierdeliverRecordMain' +import * as supplierdeliverRecordDetailApi from '@/api/wms/supplierdeliverRecordDetail' +import { SupplierdeliverRecordMain, SupplierdeliverRecordDetail } from '@/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRecordMain/supplierdeliverRecordMain.data' + + + +const { t } = useI18n() // 国际化 + + // 获取当前操作人的部门 + import { useUserStore } from '@/store/modules/user' + import { TableColumn } from '@/types/table' + const userStore = useUserStore() + const userDept = userStore.userSelfInfo.dept + // id 转str 否则form回显匹配不到 + userDept.id = userDept.id.toString() + const userDeptArray:any = [userDept] + + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize:10, + pageNo:1, + code:'PurchaseClaimRequest' +} + const data = await getRequestsettingApi.getRequestsettingPage(queryParams) + const requestsettingData =data?.list[0]||{} + +/** + * @returns {Array} 采购索赔申请主表 + */ +export const PurchaseclaimRequestMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + isForm:false, + table: { + width: 180, + fixed: 'left' + }, + isSearch: true, + }, + { + label: '发货单号', + field: 'asnNumber', + table: { + width: 180 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择发货单号', // 输入框占位文本 + searchField: 'asnNumber', // 查询弹窗赋值字段 + searchTitle: '供应商发货记录', // 查询弹窗标题 + searchAllSchemas: SupplierdeliverRecordMain.allSchemas, // 查询弹窗所需类 + searchPage: supplierdeliverRecordMainApi.getSupplierdeliverRecordMainPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + }] + } + } + }, + { + label: '要货计划单号', + field: 'ppNumber', + form:{ + componentProps:{ + disabled:true, + } + }, + table: { + width: 180 + } + }, + { + label: '供应商代码', + field: 'supplierCode', + form:{ + componentProps:{ + disabled:true, + } + }, + table: { + width: 150 + }, + isSearch: true, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.REQUEST_STATUS, + dictClass: 'string', + isSearch: true, + isTable: true, + isForm:false, + form: { + value:'1', + componentProps:{ + disabled:true, + } + }, + table: { + width: 100 + } + }, + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + } + }, + { + label: '截止时间', + field: 'dueTime', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + } + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userDeptArray.find((account) => account.id == cellValue)?.name + }, + form: { + value: userDept.id, + component: 'Select', + api: () => userDeptArray, + componentProps: { + disabled: true, + optionsAlias: { + labelField: 'name', + valueField: 'id' + } + } + } + }, + { + label: '业务类型', + field: 'businessType', + form:{ + value:'PurchaseClaim', + componentProps:{ + disabled:true, + } + }, + table: { + width: 130 + } + }, + { + label: '备注', + field: 'remark', + isTable: false + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: true, + isForm:false, + table: { + width: 100 + }, + form:{ + component:'Switch', + value:requestsettingData.autoCommit, + componentProps:{ + disabled:true, + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: true, + isForm:false, + table: { + width: 100 + }, + form:{ + component:'Switch', + value:requestsettingData.autoAgree, + componentProps:{ + disabled:true, + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: true, + isForm:false, + table: { + width: 100 + }, + form:{ + component:'Switch', + value:requestsettingData.autoExecute, + componentProps:{ + disabled:true, + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isSearch: false, + isForm: false, + isTable: false, + table: { + width: 120 + }, + form:{ + component:'Switch', + value:requestsettingData.available, + componentProps:{ + disabled:true, + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '创建者', + field: 'creator', + isForm:false, + table: { + width: 120 + } + }, + { + label: '创建时间', + field: 'createTime', + isTable: true, + formatter: dateFormatter, + isForm:false, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + }, + 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')] + }, + }, + }, + { + label: '最后更新者', + field: 'updater', + isForm:false, + isTable: false, + table: { + width: 120 + } + }, + { + label: '最后更新时间', + field: 'updateTime', + isTable: false, + formatter: dateFormatter, + isForm:false, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + table: { + width: 180 + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 300, + fixed: 'right' + } + } +])) +// 表单校验 +export const PurchaseclaimRequestMainRules = reactive({ + asnNumber: [ + { required: true, message: '请输入发货单号', trigger: 'blur' } + ], + ppNumber: [ + { required: true, message: '请输入要货计划单号', trigger: 'blur' } + ], + supplierCode: [ + { required: true, message: '请输入供应商代码', trigger: 'change' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'change' } + ], + requestTime: [ + { required: true, message: '请选择申请时间', trigger: 'change' } + ], + // dueTime: [ + // { required: true, message: '请选择截止时间', trigger: 'change' } + // ], + departmentCode: [ + { required: true, message: '请选择部门', trigger: 'change' } + ], + status: [ + { required: true, message: '请选择状态', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 采购索赔申请子表 + */ +export const PurchaseclaimRequestDetail = useCrudSchemas(reactive([ + { + label: '订单号', + field: 'poNumber', + tableForm:{ + isInpuFocusShow: true, // 开启查询弹窗 + searchListPlaceholder: '请选择订单号', + searchField: 'poNumber', + searchTitle: '供应商发货记录', + searchAllSchemas: SupplierdeliverRecordDetail.allSchemas, + searchPage: supplierdeliverRecordDetailApi.getSupplierdeliverRecordDetailPage + }, + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择订单号', + searchField: 'poNumber', + searchTitle: '供应商发货记录', + searchAllSchemas: SupplierdeliverRecordDetail.allSchemas, + searchPage: supplierdeliverRecordDetailApi.getSupplierdeliverRecordDetailPage + } + } + }, + { + label: '订单行', + field: 'poLine', + table: { + width: 150 + }, + }, + { + label: '批次', + field: 'batch', + table: { + width: 150 + }, + }, + { + label: '物料代码', + field: 'itemCode', + table: { + width: 150 + }, + + }, + { + label: '物料名称', + field: 'itemName', + table: { + width: 150 + }, + }, + { + label: '数量', + field: 'qty', + table: { + width: 150 + }, + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: true, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '单价', + field: 'singlePrice', + table: { + width: 150 + }, + }, + { + label: '金额', + field: 'amount', + table: { + width: 150 + }, + }, + { + label: '原因', + field: 'reason', + // dictType: DICT_TYPE.PURCHASE_RETURN_REASON, + dictClass: 'string', + table: { + width: 150 + }, + }, + + { + label: '单据号', + field: 'number', + table: { + width: 180 + }, + form:{ + componentProps:{ + disabled:true, + } + }, + isTableForm:false, + // tableForm:{ + // disabled:true, + // } + }, + + { + label: '备注', + field: 'remark', + table: { + width: 150 + }, + }, + { + label: '创建者', + field: 'creator', + isTableForm:false, + table: { + width: 150 + }, + isForm:false + }, + { + label: '创建时间', + field: 'createTime', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + isTableForm:false, + table: { + width: 150 + }, + isForm:false + }, + { + label: '最后更新者', + field: 'updater', + isTableForm:false, + table: { + width: 150 + }, + isForm:false + }, + { + label: '最后更新时间', + field: 'updateTime', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + isTableForm:false, + table: { + width: 150 + }, + isForm:false + }, + { + label: '操作', + hiddenInMain:true, + field: 'action', + isDetail: false, + isForm: false , + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false, + } +])) + +// 表单校验 +export const PurchaseclaimRequestDetailRules = reactive({ + poNumber: [ + { required: true, message: '请输入订单号', trigger: 'change' } + ], + poLine: [ + { required: true, message: '请输入订单行', trigger: 'change' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + qty: [ + { required: true, message: '请输入数量', trigger: 'blur' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + uom: [ + { required: true, message: '请输入计量单位', trigger: 'change' } + ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'change' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + itemName: [ + { required: true, message: '请输入物料名称', trigger: 'blur' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + + singlePrice: [ + { required: true, message: '请输入单价', trigger: 'change' } + ], + amount: [ + { required: true, message: '请输入金额', trigger: 'change' } + ], + reason: [ + { required: true, message: '请输入原因', trigger: 'change' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], +}) diff --git a/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceDetail/index.vue b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceDetail/index.vue new file mode 100644 index 0000000..1139a2c --- /dev/null +++ b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceDetail/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceDetail/supplierApbalanceDetail.data.ts b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceDetail/supplierApbalanceDetail.data.ts new file mode 100644 index 0000000..4c1af65 --- /dev/null +++ b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceDetail/supplierApbalanceDetail.data.ts @@ -0,0 +1,298 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const SupplierApbalanceDetailRules = reactive({ + ttSupplier: [required], + ttGltype: [required], + concurrencyStamp: [required], +}) + +export const SupplierApbalanceDetail = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '供应商代码', + field: 'ttSupplier', + sort: 'custom', + isSearch: true, + }, + { + label: '供应商名称', + field: 'ttSupplierName', + sort: 'custom', + isSearch: true, + }, + { + label: '科目代码', + field: 'ttGlcode', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '年度', + field: 'ttYear', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '凭证号', + field: 'ttVoucher', + sort: 'custom', + isSearch: true, + }, + { + label: '发票号', + field: 'ttReference', + sort: 'custom', + isSearch: true, + }, + // { + // label: '完整凭证号', + // field: 'ttInvoiceno', + // sort: 'custom', + // isSearch: true, + // }, + { + label: '发票TC原始金额', + field: 'ttTcAmt', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '发票BC原始金额', + field: 'ttBcAmt', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '发票TC余额', + field: 'ttTcbal', + sort: 'custom', + }, + { + label: '发票BC余额', + field: 'ttBcbal', + sort: 'custom', + }, + { + label: '货币', + field: 'ttCurr', + sort: 'custom', + }, + { + label: '到期日期', + field: 'ttDueDate', + 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: 'ttInvDate', + 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: 'ttEffDate', + 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: 'ttCreditTerm', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '账户类型', + field: 'ttGltype', + sort: 'custom', + dictType: DICT_TYPE.TT_GLTYPE, + dictClass: 'string', + }, + { + label: '父ID', + field: 'masterId', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + 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: '备注', + 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/wms/supplierManage/supplierApbalance/supplierApbalanceMain/index.vue b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/index.vue new file mode 100644 index 0000000..459b323 --- /dev/null +++ b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/index.vue @@ -0,0 +1,305 @@ + + + diff --git a/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/supplierApbalanceMain.data.ts b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/supplierApbalanceMain.data.ts new file mode 100644 index 0000000..0641ff6 --- /dev/null +++ b/src/views/wms/supplierManage/supplierApbalance/supplierApbalanceMain/supplierApbalanceMain.data.ts @@ -0,0 +1,273 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const SupplierApbalanceMainRules = reactive({ + ttCompany: [required], + ttSupplier: [required], + ttGltype: [required], + ttCustorsupp: [required], + ttSupplierType: [required], + ttGenerateTime: [required], + concurrencyStamp: [required], +}) + +export const SupplierApbalanceMain = useCrudSchemas(reactive([ + { + label: 'ID', + field: 'id', + sort: 'custom', + isForm: false, + }, + { + label: '状态', + field: 'replyStatus', + sort: 'custom', + isSearch: true, + dictType: DICT_TYPE.REPLY_STATUS, + dictClass: 'string', + }, + { + label: '公司代码', + field: 'ttCompany', + sort: 'custom', + isSearch: true, + }, + { + label: '供应商代码', + field: 'ttSupplier', + sort: 'custom', + isSearch: true, + }, + // { + // label: '账户类型', + // field: 'ttGltype', + // sort: 'custom', + // isSearch: true, + // // dictType: DICT_TYPE.TT_GLTYPE, + // // dictClass: 'string', + // }, + { + label: '类型固定值', + field: 'ttCustorsupp', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '供应商类型', + field: 'ttSupplierType', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + form: { + component: 'SelectV2' + }, + }, + { + label: '名称1', + field: 'ttName1', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '名称2', + field: 'ttName2', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '名称3', + field: 'ttName3', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '供应商名称', + field: 'ttSupplierName', + sort: 'custom', + isSearch: false, + }, + // { + // label: '生成时间', + // field: 'ttGenerateTime', + // 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')] + // } + // }, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // form: { + // component: 'DatePicker', + // componentProps: { + // type: 'datetime', + // valueFormat: 'x' + // } + // }, + // }, + { + label: '应付挂账金额', + field: 'ttAccountAp', + sort: 'custom', + isSearch: false, + }, + { + label: '其他应付金额', + field: 'ttAccountOthap', + sort: 'custom', + isSearch: false, + }, + { + label: '预付金额', + field: 'ttAccountPrepay', + sort: 'custom', + isSearch: false, + }, + { + label: '付款周期', + field: 'ttCreditTerm', + sort: 'custom', + isSearch: false, + isTable: false, + isForm:false, + isDetail:false, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isTable: true, + 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: '创建人', + field: 'creator', + sort: 'custom', + isSearch: false, + isTable: true, + 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, + }, + { + 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, + isDetail:false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/index.vue b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/index.vue new file mode 100644 index 0000000..e356190 --- /dev/null +++ b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/index.vue @@ -0,0 +1,450 @@ + + + + diff --git a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/supplierinvoiceRecordMain.data.ts b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/supplierinvoiceRecordMain.data.ts new file mode 100644 index 0000000..3f55194 --- /dev/null +++ b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRecordMain/supplierinvoiceRecordMain.data.ts @@ -0,0 +1,1879 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import { accountantFormart } from '@/utils/formatter' + +/** + * @returns {Array} 供应商发票记录主表 + */ +export const SupplierinvoiceRecordMain = useCrudSchemas(reactive([ + { + label: '单据号', + field:'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: false + }, + { + label: '发票申请单号', + field:'requestNumber', + sort: 'custom', + table: { + width: 180, + }, + sortSearchDefault:1, + sortTableDefault:1, + isSearch: true + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1, + isSearch: true + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + table: { + width: 180, + }, + sortTableDefault:2, + isForm: false, + isSearch:true + }, + { + label: '税率', + field: 'taxRate', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:3, + form: { + component: 'InputNumber', + } + }, + + { + label: '价差合计', + field: 'differencePriceTotalMain', + formatter: accountantFormart, + table: { + width: 100 + }, + sortTableDefault: 3, + isForm: false, + isTable: true, + isSearch: false, + isDetail: true, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.SUPPLIERINVOICE_REQUEST_STATUS, + dictClass: 'string', + isTable: true, + sortTableDefault:7, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + search: { + componentProps: { + multiple: true, + collapseTags: true, + collapseTagsTooltip: true, + } + }, + isSearch: true, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + + // { + // label: '申请单号', + // field: 'requestNumber', + // sort: 'custom', + // table: { + // width: 180, + // }, + // isTable: false, + // isSearch: true + // }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + isTable:false, + table: { + width: 150 + }, + }, + { + label: '金税票号',//金税票号 + field: 'goldenTaxInvoiceNumber', + sort: 'custom', + table: { + width: 200 + }, + sortTableDefault:5, + isSearch: true + }, + { + label: '未税尾差', + field: 'beforeTaxDiffAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + isForm:false, + isTableForm:false + }, + { + label: '税额尾差', + field: 'taxAmountDiff', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + isForm:false, + isTableForm:false + }, + { + label: '价税合计尾差', + field: 'totalTaxDiffAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + isForm:false, + isTableForm:false + }, + + { + label: '供应商维护税额', + field: 'taxAmount', + formatter: accountantFormart, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:8, + form: { + component: 'InputNumber', + } + }, + { + label: '发票未税金额', + field: 'beforeTaxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:3, + isForm:false, + isTableForm:false + }, + { + label: '发票税额', + field: 'totalTaxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:3, + isForm:false, + isTableForm:false + }, + { + label: '发票价税合计', + field: 'adTaxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:3, + isForm:false, + isTableForm:false + }, + { + label: '是否有价差', + field: 'balanceStatementStatus', + dictType: DICT_TYPE.INVOICE_BALANCE_STATEMENT_STATUS, + dictClass: 'string', + isTable: true, + isForm:false, + isSearch:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:3, + }, + + { + label: '价差说明', + field: 'balanceStatement', + isTable: false, + isForm:false, + isSearch:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + }, + { + label: '供应商维护价税合计',//税后金额 + field: 'afterTaxAmount', + formatter: accountantFormart, + sort: 'custom', + table: { + width: 160 + }, + sortTableDefault:9, + form: { + component: 'InputNumber', + } + }, + + { + label: '价差',//总差额 + field: 'totalDifference', + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 6, + } + }, + + { + label: '供应商维护未税金额', + field: 'amount', + formatter: accountantFormart, + sort: 'custom', + table: { + width: 160 + }, + sortTableDefault:8, + form: { + component: 'InputNumber', + } + }, + + + + { + label: '索赔金额', + field: 'claimAmount', + formatter: accountantFormart, + sort: 'custom', + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber', + } + }, + { + label: '调整价差', + field: 'discountAmount', + formatter: accountantFormart, + sort: 'custom', + table: { + width: 150 + }, + isDetail:false, + isTable: false, + form: { + component: 'InputNumber', + } + }, + { + label: '调整税额', + field: 'adjustingTaxAmount', + formatter: accountantFormart, + sort: 'custom', + isDetail:false, + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber', + } + }, + + { + label: '未税差额', + field: 'untaxedDifference', + formatter: accountantFormart, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + } + }, + isTable: false, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 6, + } + }, + { + label: '含税差额', + field: 'taxInclusiveDifference', + formatter: accountantFormart, + table: { + width: 150 + }, + isTable: false, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 6, + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 6, + } + }, + { + label: '快递单号', + field: 'expressTrackingNumber', + sort: 'custom', + isTable:false, + isForm:false, + isSearch:false, + table: { + width: 150 + }, + }, + { + label: '开票日期', + field: 'invoiceTime', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + sortTableDefault:4, + sort: 'custom', + table: { + width: 180 + }, + }, + // { + // label: '采购审批人', + // field: 'procurementCreatorName', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable:true, + // isDetail: true, + // isTableForm: false, + // isForm:false, + // isSearch:false, + // sortTableDefault:10 + // }, + { + label: '过账日期', + field: 'postingDate', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + isTable: true, + sortTableDefault:6, + sort: 'custom', + table: { + width: 180 + }, + isSearch: true, + search: { + value:[], + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + dateFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 '), new Date('1 ')] + } + }, + }, + + //子表数据,仅是查询条件 + { + label: '货运单号', + field: 'asnBillNum', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isTableForm:false, + isTable:false, + isDetail:false, + isSearch: true, + isForm: false, + }, + { + label: '财务凭证号', + field: 'voucherNumber', + sort: 'custom', + table: { + width: 200, + }, + isTable:true, + sortTableDefault:6, + isForm: false + }, + + { + label: '业务类型', + field:'businessType', + sort: 'custom', + isTable:false, + isTableForm:false, + isDetail:false, + table: { + width: 150 + }, + }, + { + label: '出库事务类型', + field: 'outTransactionType', + sort: 'custom', + isTable:false, + isTableForm:false, + isDetail:false, + table: { + width: 150 + }, + }, + { + label: '入库事务类型', + field: 'inTransactionType', + isTable:false, + isTableForm:false, + isDetail:false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '执行时间', + field: 'executeTime', + isTable:false, + isTableForm:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '生效日期', + field: 'activeDate', + isTable:false, + isTableForm:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '申请时间', + field: 'requestTime', + isTable:false, + isTableForm:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '截止时间', + field: 'dueTime', + isTable:false, + isTableForm:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '部门', + field: 'departmentCode', + isTable:false, + isTableForm:false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '代码', + field: 'code', + isTable:false, + isTableForm:false, + isDetail:false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '接口类型', + field: 'interfaceType', + dictType: DICT_TYPE.INTERFACE_TYPE, + dictClass: 'string', + isTable:false, + isDetail:false, + isTableForm:false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + isTable:false, + isTableForm:false, + dictClass: 'string', + }, + { + label: '创建者', + field: 'creator', + sort: 'custom', + sortTableDefault:1000, + isTable: false, + table: { + width: 150 + }, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + isDetail: false, + isTableForm: false, + isTable: true, + 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')] + } + }, + }, + { + label: '供应商创建时间', + field: 'requestTime', + isTable: true, + sortTableDefault:1001, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + }, + // { + // label: '采购审批人', + // field: 'procurementCreatorName', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable:true, + // isDetail: true, + // isTableForm: false, + // isForm:false, + // isSearch:false, + // sortTableDefault:10 + // }, + // { + // label: '采购审批人代码', + // field: 'procurementCreator', + // sortTableDefault:1002, + // sort: 'custom', + // table: { + // width: 150 + // }, + // isTable: false, + // isForm: false, + // }, + + { + label: '回转日期', + field: 'reversepostingdate', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:11, + }, + { + label: '说明',//回转说明 + field: 'tcCInvoiceRemark', + sortTableDefault:11, + table: { + width: 150 + }, + }, + { + label: '财务驳回原因', + field: 'reasonFinancialRejection', + sort: 'custom', + isSearch: false, + isForm: true, + isDetail:false, + sortTableDefault:11, + table: { + width: 150 + }, + form: { + componentProps: { + style: { 'padding-bottom': '20px'}, + type:"textarea", + maxlength:50, + showWordLimit:true + } + } + }, + { + label: '回转凭证号', + field: 'transferNumber', + sort: 'custom', + table: { + width: 200, + }, + sortTableDefault:11, + isTable:true, + isForm: false + }, + // { + // label: '冲销日记帐', + // field: 'reverseInvoiceJournal', + // sortTableDefault:11, + // table: { + // width: 150 + // }, + // }, + // { + // label: '调整账代码', + // field: 'adjustmentJournal', + // sortTableDefault:11, + // table: { + // width: 150 + // }, + // }, + + { + label: '采购审批时间', + field: 'procurementCreateTime', + sortTableDefault:11, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '采购价格审批人', + field: 'procurementCreatorName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:12, + isForm: false, + }, + { + label: '财务审批人', + field: 'financialCreatorName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:12, + isForm: false, + }, + + { + label: '财务审批时间', + field: 'financialCreateTime', + sortTableDefault:13, + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + // { + // label: '采购驳回原因', + // field: 'purchaseRejectCause', + // table: { + // width: 180 + // }, + // sortTableDefault:14, + // isTable: true, + // isSearch: false, + // isForm: false, + // isDetail:false, + // }, + // { + // label: '财务驳回原因', + // field: 'financeRejectCause', + // table: { + // width: 180 + // }, + // sortTableDefault:15, + // isTable: true, + // isSearch: false, + // isForm: false, + // isDetail:false, + // }, + { + label: '供应商审批人', + field: 'supplierCreatorName', + sort: 'custom', + isTable:false, + isTableForm:false, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '供应商审批时间', + field: 'supplierCreateTime', + isTable:false, + isTableForm:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '凭证描述', + field: 'voucherNumberRemark', + isTable:true, + isTableForm:false, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + }, + } +])) +/** + * @returns {Array} 供应商发票在详情展示的主表字段 + */ +export const SupplierinvoiceRecordDetailMain = useCrudSchemas(reactive([ + { + label: '汇总信息', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: true, + }, + { + label: '供应商信息', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: true, + }, + { + label: '价差', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: 'SCP系统数据', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: false, + }, + + { + label: '单据号', + field: 'number', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '系统未税金额', + field: 'purchaseAmountTotalMain', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '财务凭证号', + field: 'voucherNumber', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '价差合计', + field: 'differencePriceTotalMain', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商创建时间', + field: 'requestTime', + sort: 'custom', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '订单类型', + field: 'orderType', + dictType: DICT_TYPE.PURCHASE_INVOICE_ORDER_TYPE, + dictClass: 'string', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.SUPPLIERINVOICE_REQUEST_STATUS, + dictClass: 'string', + sort: 'custom', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票号码', + field: 'goldenTaxInvoiceNumber', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + // { + // label: '尾差', + // field: 'totalDifference', + // sortTableDefault: 6, + // isForm: false, + // isTable: false, + // isSearch: false, + // isDetail: false, + // }, + { + label: '尾差', + field: '', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + + { + label: '采购价格审批人', + field: 'procurementCreatorName', + sortTableDefault: 1003, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '开票日期', + field: 'invoiceTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商维护价税合计', + field: 'afterTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '采购价格审批时间', + field: 'procurementCreateTime', + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 1003, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '税率(%)', + field: 'taxRate', + dictType: DICT_TYPE.TAX_RATE_DICT, + dictClass: 'string', + sortTableDefault: 3, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '供应商维护未税金额', + field: 'amount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '价差通过说明', + field: 'balanceStatement', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票价税合计', + field: 'adTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商维护税额', + field: 'taxAmount', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '财务审批人', + field: 'financialCreatorName', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票未税金额', + field: 'beforeTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '财务审批时间', + field: 'financialCreateTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票税额', + field: 'totalTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '价税合计尾差', + field: 'totalTaxDiffAmount', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + detail:{ + slotFilter: true + } + }, + { + label: '财务过账日期', + field: 'postingDate', + isTable: true, + sortTableDefault: 15, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + + }, + { + label: '返利未税金额',//折扣金额 + field: 'discountAmount1', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '未税尾差', + field: 'beforeTaxDiffAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + detail:{ + slotFilter: true + } + }, + { + label: '回转凭证号', + field: 'transferNumber', + sort: 'custom', + }, + { + label: '工厂地点', + field: 'siteId', + sort: 'custom', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '税额尾差', + field: 'taxAmountDiff', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + detail:{ + slotFilter: true + } + }, + + { + label: '回转日期', + field: 'reversepostingdate', + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + }, + { + label: '', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '说明', //回转说明 + field: 'tcCInvoiceRemark', + }, + { + label: '', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '参考凭证描述', + field: 'voucherNumberRemark', + sort: 'custom', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + // detail:{ + // span:2 + // } + }, + { + label: '', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + + +])) +//表单校验 +export const SupplierinvoiceRecordMainRules = reactive({ + requestNumber: [ + { required: true, message: '请选择申请单号', trigger: 'change' } + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + outTransaction: [ + { required: true, message: '请输入出库事务类型', trigger: 'blur' } + ], + inTransaction: [ + { required: true, message: '请输入入库事务类型', trigger: 'blur' } + ], + executeTime: [ + { required: true, message: '请输入执行时间', trigger: 'blur' } + ], + activeDate: [ + { required: true, message: '请输入生效日期', trigger: 'blur' } + ], + available: [ + { required: true, message: '请输入是否可用', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + interfaceType: [ + { required: true, message: '请选择接口类型', trigger: 'change' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + requestTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + +/** + * @returns {Array} 供应商发票记录子表 + */ +export const SupplierinvoiceRecordDetail = useCrudSchemas(reactive([ + { + label: '项目编号', + field: 'projectCode', + isTable:false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '采购收货记录单号', + field: 'qadNumber', + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '单据类型', + field: 'billType', + dictType: DICT_TYPE.BILL_TYPE, + dictClass: 'string', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:7, + }, + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '待开票单据号', + field: 'recvBillNum', + table: { + width: 150 + }, + sortTableDefault:9, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '单据号', + field: 'number', + hiddenInMain:true, + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '供应商发货单号', + field: 'asnBillNum', + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:8, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 180 + }, + }, + { + label: '物料代码', + field: 'itemCode', + sort: 'custom', + sortTableDefault:3, + table: { + width: 150 + }, + }, + { + label: '物料描述', + field: 'itemDesc', + table: { + width: 150 + }, + sortTableDefault:4, + isForm:false, + isTableForm:false, + isDetail: false, + isTable: true, + }, + { + label: '到货时间', + field: 'planArriveTime', + table: { + width: 150 + }, + formatter: dateFormatter2, + sortTableDefault:5, + isForm:false, + isTableForm:false, + isDetail: false, + isTable: true, + }, + { + label: '到货数量', + field: 'arrivalQty', + table: { + width: 150 + }, + sortTableDefault:6, + isForm:false, + isTableForm:false, + isDetail: false, + isTable: true, + }, + { + label: '物料名称', + field: 'itemName', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '货币', + field: 'currency', + sort: 'custom', + dictType: DICT_TYPE.CURRENCY, + dictClass: 'string', + table: { + width: 150 + }, + tableForm:{ + type:'Select', + disabled: true + } + }, + { + label: '合同价格', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, + { + label: '采购价格', + field: 'purchasePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, + { + label: '合同金额', + field: 'contractAmountTotal', + table: { + width: 150 + }, + isForm:false, + tableForm:{ + disabled: true + } + }, + { + label: '采购金额', + field: 'purchaseAmontTotal', + table: { + width: 150 + }, + isForm:false, + tableForm:{ + disabled: true + } + }, + { + label: '总差额', + field: 'differencePriceTotal', + table: { + width: 150 + }, + isForm:false, + tableForm:{ + disabled: true + } + }, + { + label: '单价差额', + field: 'differencePrice', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + type: 'slot', + disabled: true + } + }, + // { + // label: '未税差额', + // field: 'untaxedDifference', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // min: 0, + // precision: 6, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 6, + // } + // }, + // { + // label: '含税差额', + // field: 'taxInclusiveDifference', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // min: 0, + // precision: 6, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 6, + // } + // }, + { + label: '收货日期', + field: 'deliveryDate', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + } + }, + { + label: '开票数量', + field: 'invoicableQuantity', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + } + }, + { + label: '财务凭证号', + field: 'voucherNumber', + sort: 'custom', + table: { + width: 200 + } + }, + { + label: '参考凭证描述', + field: 'voucherNumberRemark', + sort: 'custom', + table: { + width: 150 + }, + }, +])) + +//表单校验 +export const SupplierinvoiceRecordDetailRules = reactive({ + packingNumber: [ + { required: true, message: '请输入包装号', trigger: 'blur' } + ], + batch: [ + { required: true, message: '请输入批次', trigger: 'blur' } + ], + poNumber: [ + { required: true, message: '请输入订单号', trigger: 'blur' } + ], + poLine: [ + { required: true, message: '请输入订单行', trigger: 'blur' } + ], + packQty: [ + { required: true, message: '请输入包装数量', trigger: 'blur' } + ], + packUnit: [ + { required: true, message: '请输入包装规格', trigger: 'blur' } + ], + convertRate: [ + { required: true, message: '请输入转换率', trigger: 'blur' } + ], + number: [ + { required: true, message: '请输入单据号', trigger: 'blur' } + ], + itemCode: [ + { required: true, message: '请输入物料代码', trigger: 'blur' } + ], + requestTime: [ + { required: true, message: '请输入创建时间', trigger: 'blur' } + ], + creator: [ + { required: true, message: '请输入创建者', trigger: 'blur' } + ], +}) + + +// 发票回转 +export const SupplierinvoiceRecordMainTransfer = useCrudSchemas(reactive([ + { + label: '冲销日记帐', + field: 'reverseInvoiceJournal', + form: { + componentProps: { + value:'APINVCOR', + disabled: true, + } + }, + }, + { + label: '调整账代码', + field: 'adjustmentJournal', + form: { + componentProps: { + value:'APADJ', + disabled: true, + } + }, + }, + { + label: '回转日期', + field: 'reversepostingdate', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:11, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'date', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '说明', + field: 'tcCInvoiceRemark', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: true, + isDetail:false, + form: { + componentProps: { + style: { 'padding-bottom': '20px'}, + type:"textarea", + maxlength:50, + showWordLimit:true + } + } + }, + { + label: '财务驳回原因', + field: 'reasonFinancialRejection', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: true, + isDetail:false, + form: { + componentProps: { + style: { 'padding-bottom': '20px'}, + type:"textarea", + maxlength:50, + showWordLimit:true + } + } + } +])) + + +//表单校验 +export const SupplierinvoiceRecordMainTransferRules = reactive({ + reversepostingdate: [ + { required: true, message: '请选择过账日期', trigger: 'change' } + ], + reasonFinancialRejection: [ + { required: true, message: '请输入财务驳回原因', trigger: 'change' } + ] +}) + diff --git a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue new file mode 100644 index 0000000..da7d1e0 --- /dev/null +++ b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/index.vue @@ -0,0 +1,1591 @@ + + + + diff --git a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts new file mode 100644 index 0000000..c2f80bf --- /dev/null +++ b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMain/supplierinvoiceRequestMain.data.ts @@ -0,0 +1,2242 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import { accountantFormart } from '@/utils/formatter' + +import * as SupplierApi from '@/api/wms/supplier' +import * as SupplierinvoiceRequestMainApi from '@/api/wms/supplierinvoiceRequestMain' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +const { t } = useI18n() // 国际化 + +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import * as supplierinvoiceRequestDetailApi from '@/api/wms/supplierinvoiceRequestDetail' + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize: 10, + pageNo: 1, + code: 'PurchaseInvoiceRequest' +} +console.log(34343) +const data = await getRequestsettingApi.getRequestsettingPage(queryParams) +const requestsettingData = data?.list[0] || {} + + // 获取当前操作人的部门 + import { useUserStore } from '@/store/modules/user' + import { TableColumn } from '@/types/table' + const userStore = useUserStore() + const userDept = userStore.userSelfInfo.dept + // id 转str 否则form回显匹配不到 + userDept.id = userDept.id.toString() + const userDeptArray:any = [userDept] + +// const procurementCreators = await SupplierinvoiceRequestMainApi.queryUserInfoByRoleCode({ roleCode: 'purchase',pageSize: 1000,pageNo: 1,sort: '',by: 'ASC' }) +/** + * @returns {Array} 采购员列表 + */ +export const PurchaseMemberInfo = useCrudSchemas(reactive([ + { + label: '用户编号', + field: 'id', + table: { + width: 180, + }, + }, + { + label: '用户名称', + field: 'username', + table: { + width: 180, + }, + }, + { + label: '用户昵称', + field: 'nickname', + table: { + width: 180, + }, + } +])) + +/** + * @returns {Array} 采购订单或者采购退货单 + */ +export const PurchaseReceiptOrReturnRecordDetail = useCrudSchemas(reactive([ + { + label: '单据类型', + field: 'billType' + }, + { + label: '收货日期', + field: 'deliveryDate', + sort: 'custom', + isDetail:false, + isTable: true, + isForm:false, + isTableForm:false, + isSearch:true, + formatter: dateFormatter2, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 '), new Date('1 ')] + } + }, + }, + { + label: '待开票单据号', + field: 'recvBillNum', + table: { + width: 180, + }, + }, + { + label: '供应商发货单号', + field: 'asnBillNum', + table: { + width: 180, + }, + }, + { + label: '供应商代码', + field: 'supplierCode' + }, + { + label: '订单号', + field: 'poNumber' + }, + { + label: '订单行', + field: 'poLine' + }, + { + label: '采购价格', + field: 'purchasePrice' + }, + { + label: '可开票数量', + field: 'invoicableQuantity' + }, + { + label: '货币', + field: 'currency', + }, + { + label: '物料代码', + field: 'itemCode' + }, + { + label: '创建时间', + field: 'createTime', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + isTableForm: false, + isForm: false + } +])) + + +/** + * @returns {Array} 供应商发票申请主表 + */ +export const SupplierinvoiceRequestMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: true, + isForm: false + }, + + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1, + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: {     + enterSearch:true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPageSCP, // 查询弹窗所需分页方法 + verificationParams: [{ + key: 'code', + action: '==', + value: '', + isMainValue: false, + isSearch: 'true', + isFormModel: true + }], // 失去焦点校验参数 + } + } + }, + { + label: '订单类型', + field: 'orderType', + dictType: DICT_TYPE.PURCHASE_INVOICE_ORDER_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + isSearch:true, + table: { + width: 180, + }, + sortTableDefault:2, + isForm: false + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.SUPPLIERINVOICE_REQUEST_STATUS, + dictClass: 'string', + isTable: true, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:9, + isSearch: true, + search: { + componentProps: { + multiple: true, + collapseTags: true, + collapseTagsTooltip: true, + } + }, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + //子表数据,仅是查询条件 + { + label: '货运单号', + field: 'asnBillNum', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isTableForm:false, + isTable:false, + isDetail:false, + isSearch: true, + isForm: false, + }, + { + label: '供应商维护未税金额', + field: 'amount', + formatter: accountantFormart, + table: { + width: 160 + }, + sortTableDefault:8, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + precision: 2, + } + }, + { + label: '税率(%)', + field: 'taxRate', + dictType: DICT_TYPE.TAX_RATE_DICT, + dictClass: 'string', + sortTableDefault:3, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '价差合计', + field: 'differencePriceTotalMain', + formatter: accountantFormart, + table: { + width: 100 + }, + sortTableDefault: 3, + isForm: false, + isTable: true, + isSearch: false, + isDetail: true, + }, + // { + // label: '未税金额', + // field: 'beforeTaxAmount', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // sortTableDefault:3, + // isForm:false, + // isTableForm:false + // }, + // { + // label: '税额', + // field: 'totalTaxAmount', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // sortTableDefault:3, + // isForm:false, + // isTableForm:false + // }, + // { + // label: '发票价税合计', + // field: 'adTaxAmount', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // sortTableDefault:3, + // isForm:false, + // isTableForm:false + // }, + { + label: '供应商维护税额', + field: 'taxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:6, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + precision: 2, + } + }, + { + label: '供应商维护价税合计', + field: 'afterTaxAmount', + formatter: accountantFormart, + table: { + width: 160 + }, + sortTableDefault:7, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2, + disabled: true, + } + }, + { + label: '索赔金额', + field: 'claimAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + isTable:false, + isTableForm:false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2, + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2, + } + }, + // { + // label: '调整价差', + // field: 'discountAmount', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // isTable:false, + // form: { + // component: 'InputNumber', + // componentProps: { + // precision: 2, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 2, + // } + // }, + // { + // label: '调整税额', + // field: 'adjustingTaxAmount', + // table: { + // width: 150 + // }, + // isTable:false, + // form: { + // component: 'InputNumber', + // componentProps: { + // precision: 2, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 2, + // } + // }, + { + label: '返利未税金额', + field: 'discountAmount1', + formatter: accountantFormart, + table: { + width: 150 + }, + isTable:false, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2, + } + }, + { + label: '发票未税金额', + field: 'beforeTaxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:3, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + isTableForm:false, + }, + { + label: '返利税额', + field: 'rebateTax', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:4, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + isTableForm:false, + }, + { + label: '返利价税合计', + field: 'rebateTotal', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:4, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + isTableForm:false, + }, + { + label: '发票税额', + field: 'totalTaxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:4, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + isTableForm:false, + }, + { + label: '发票价税合计', + field: 'adTaxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + isTableForm:false, + }, + { + label: '是否有价差', + field: 'balanceStatementStatus', + dictType: DICT_TYPE.INVOICE_BALANCE_STATEMENT_STATUS, + dictClass: 'string', + isTable: true, + isForm:false, + isSearch:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + }, + { + label: '价差说明', + field: 'balanceStatement', + isTable: false, + isForm:false, + isSearch:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + }, + { + label: '未税尾差', + field: 'beforeTaxDiffAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + isTableForm:false, + }, + { + label: '税额尾差', + field: 'taxAmountDiff', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + isTableForm:false, + }, + { + label: '价税合计尾差', + field: 'totalTaxDiffAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + isTableForm:false, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + } + }, + + // { + // label: '总差额', + // field: 'totalDifference', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // isTable:false, + // form: { + // component: 'InputNumber', + // componentProps: { + // precision: 2, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 2, + // } + // }, + { + label: '金税票号', + field: 'goldenTaxInvoiceNumber', + table: { + width: 200, + }, + sortTableDefault:10, + form:{ + componentProps: { + maxlength:20, + showWordLimit:true + } + } + }, + { + label: '快递单号', + field: 'expressTrackingNumber', + isTable:false, + isForm:false, + table: { + width: 150 + }, + }, + { + label: '开票日期', + field: 'invoiceTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:11, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + // { + // label: '采购审批人', + // field: 'procurementCreatorName', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable:true, + // isDetail: true, + // isTableForm: false, + // isForm:false, + // isSearch:false, + // sortTableDefault:12 + // }, + { + label: '过账日期', + field: 'postingDate', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + isDetail:false, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + + { + label: '申请时间', + field: 'requestTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + isForm:false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isTableForm:false, + isForm:false, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userDeptArray.find((account) => account.id == cellValue)?.name + }, + form: { + value: userDept.id, + component: 'Select', + api: () => userDeptArray, + componentProps: { + disabled: true, + optionsAlias: { + labelField: 'name', + valueField: 'id' + } + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 150 + }, + isTable:false, + sortTableDefault:1001, + isForm: false, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + isDetail: false, + isTableForm: false, + isTable: true, + 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')] + } + }, + }, + { + label: '供应商创建时间', + field: 'requestTime', + isTable:true, + formatter: dateFormatter, + sortTableDefault:1000, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '最后更新者', + field: 'updater', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isForm: false, + }, + { + label: '最后更新时间', + field: 'updateTime', + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '采购价格审批人', + field: 'procurementCreator', + table: { + width: 150 + }, + sortTableDefault:14, + isForm: true, + isTable:false, + isDetail:false, + form: { + component: 'Select', + // api: () => procurementCreators.list, + componentProps: { + options:[], + optionsAlias: { + labelField: 'nickname', + valueField: 'id' + } + }, + // labelMessage: '信息提示说明!!!', + // componentProps: { + // isSearchList: true, // 开启查询弹窗 + // hiddenFilterButton:true,//是否隐藏筛选按钮 + // dialogWidth:'665px',//搜索出来弹窗的宽度 + // searchListPlaceholder: '请选择采购员', // 输入框占位文本 + // searchField: 'id', // 查询弹窗赋值字段 + // searchTitle: '采购员信息', // 查询弹窗标题 + // searchAllSchemas: PurchaseMemberInfo.allSchemas, // 查询弹窗所需类 + // searchPage: SupplierinvoiceRequestMainApi.queryUserInfoByRoleCode, // 查询弹窗所需分页方法 + // searchCondition: [{ + // key: 'roleCode', // 查询列表中字段 + // value: 'purchase', // 指查询具体值 + // isMainValue: false // 表示查询条件不是主表的字段的值 + // }] + // } + } + }, + { + label: '采购价格审批人', + field: 'procurementCreatorName', + table: { + width: 150 + }, + sortTableDefault:14, + isForm: false, + isTable:true, + isDetail:false, + form: { + component: 'Select', + api: () => procurementCreators.list, + componentProps: { + optionsAlias: { + labelField: 'nickname', + valueField: 'id' + } + }, + } + }, + // { + // label: '采购审批人', + // field: 'procurementCreatorName', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable:true, + // isDetail: true, + // isTableForm: false, + // isForm:false, + // isSearch:false, + // sortTableDefault:12 + // }, + + { + label: '采购审批时间', + field: 'procurementCreateTime', + isTable: true, + sortTableDefault:13, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '财务审批人', + field: 'financialCreatorName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:14, + isForm: false, + }, + { + label: '采购驳回原因', + field: 'purchaseRejectCause', + table: { + width: 180 + }, + sortTableDefault:16, + isTable: true, + isSearch: false, + isForm: false, + isDetail:false, + }, + { + label: '财务驳回原因', + field: 'financeRejectCause', + table: { + width: 180 + }, + sortTableDefault:17, + isTable: true, + isSearch: false, + isForm: false, + isDetail:false, + }, + { + label: '财务审批时间', + field: 'financialCreateTime', + isTable: true, + sortTableDefault:15, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '供应商审批人', + field: 'supplierCreator', + sort: 'custom', + isTable:false, + isDetail:false, + sortTableDefault:1006, + table: { + width: 180 + }, + isForm: false, + }, + { + label: '供应商审批人', + field: 'supplierCreatorName', + sort: 'custom', + isTable:false, + isDetail:true, + sortTableDefault:1006, + table: { + width: 180 + }, + isForm: false, + }, + { + label: '供应商审批时间', + field: 'supplierCreateTime', + isTable:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '参考凭证描述', + field: 'voucherNumberRemark', + sort: 'custom', + table: { + width: 150 + }, + isForm:false, + isTable: false, + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + isTableForm:false, + isDetail:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoCommit, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + isTableForm:false, + isDetail:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoAgree, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + isTableForm:false, + isDetail:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoExecute, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '跳过任务生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + isTableForm:false, + isDetail:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.directCreateRecord, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 300, + fixed: 'right' + }, + } +])) +/** + * @returns {Array} 供应商发票在详情展示的主表字段 + */ +export const SupplierinvoiceRequestDetailMain = useCrudSchemas(reactive([ + { + label: '汇总信息', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: true, + }, + { + label: '供应商信息', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: true, + }, + { + label: '价差', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: true, + }, + { + label: 'SCP系统数据', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: false, + }, + + { + label: '单据号', + field: 'number', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '系统未税金额', + field: 'purchaseAmountTotalMain', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '财务凭证号', + field: 'voucherNumber', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '价差合计', + field: 'differencePriceTotalMain', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商创建时间', + field: 'requestTime', + sort: 'custom', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '订单类型', + field: 'orderType', + dictType: DICT_TYPE.PURCHASE_INVOICE_ORDER_TYPE, + dictClass: 'string', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.SUPPLIERINVOICE_REQUEST_STATUS, + dictClass: 'string', + sort: 'custom', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票号码', + field: 'goldenTaxInvoiceNumber', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '尾差', + field: '', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + // { + // label: '尾差', + // field: 'totalDifference', + // sortTableDefault: 6, + // isForm: false, + // isTable: false, + // isSearch: false, + // isDetail: false, + // }, + { + label: '采购价格审批人', + field: 'procurementCreatorName', + sortTableDefault: 1003, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '开票日期', + field: 'invoiceTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商维护价税合计', + field: 'afterTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '采购价格审批时间', + field: 'procurementCreateTime', + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 1003, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '税率(%)', + field: 'taxRate', + dictType: DICT_TYPE.TAX_RATE_DICT, + dictClass: 'string', + sortTableDefault: 3, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '供应商维护未税金额', + field: 'amount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '价差通过说明', + field: 'balanceStatement', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票价税合计', + field: 'adTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商维护税额', + field: 'taxAmount', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '财务审批人', + field: 'financialCreatorName', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票未税金额', + field: 'beforeTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '财务审批时间', + field: 'financialCreateTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票税额', + field: 'totalTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '价税合计尾差', + field: 'totalTaxDiffAmount', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + detail:{ + slotFilter: true + } + }, + { + label: '财务过账日期', + field: 'postingDate', + isTable: true, + sortTableDefault: 15, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + + }, + { + label: '返利未税金额', + field: 'discountAmount1', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '未税尾差', + field: 'beforeTaxDiffAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + detail:{ + slotFilter: true + } + }, + + { + label: '参考凭证描述', + field: 'voucherNumberRemark', + sort: 'custom', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + // detail:{ + // span:2 + // } + }, + { + label: '工厂地点', + field: 'siteId', + sort: 'custom', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '税额尾差', + field: 'taxAmountDiff', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + detail:{ + slotFilter: true + } + }, + + +])) + +const singlePriceFormart = (row, column, cellValue) => { + cellValue= Number(cellValue).toFixed(5) + cellValue = cellValue + '' || '' + + 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 +} + +function validateTaxRate(rule, value, callback) { + if (value>0) { + callback() + }else{ + callback(new Error('税率必须大于0')) + } +} + +const validateGoldenTaxInvoiceNumber = (rule, value, callback) => { + console.log('金税票号',value) + const reg = /^[0-9]*$/ + if (value==null||value==''||reg.test(value)) { + callback() + }else{ + callback(new Error('只能是数字')) + } +} + + +//表单校验 +export const SupplierinvoiceRequestMainRules = reactive({ + taxRate: [ + required, + // { validator:validateTaxRate, message: '税率必须大于0', trigger: 'blur'} + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + invoiceTime:[ + { required: false, message: '请选择发票日期', trigger: 'blur' } + ], + goldenTaxInvoiceNumber:[ + { required: false, message: '请输入金税票号', trigger: 'blur' }, + // { validator:validateGoldenTaxInvoiceNumber, message: '金税票号只能是数字', trigger: 'blur'} + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + directCreateRecord: [ + { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + procurementCreator: [ + { required: true, message: '请选择采购员', trigger: 'change' } + ], + beforeTaxAmount: [ + { required: true, message: '请输入未税金额', trigger: 'change' } + ], + totalTaxAmount: [ + { required: true, message: '请输入税额', trigger: 'change' } + ], +}) + +export const SupplierinvoiceRequestFinance = useCrudSchemas(reactive([ + { + label: '过账日期', + field: 'postingDate', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '凭证描述', + field: 'voucherNumberRemark', + sort: 'custom', + isTable:false, + form: { + component: 'Input', + componentProps:{ + type: 'textarea' + } + }, + }, +])) + +export const SupplierinvoiceRequestFinanceRules = reactive({ + postingDate: [ + { required: true, message: '请选择过账日期', trigger: 'change' } + ], + // voucherNumberRemark: [ + // { max: 50, message: '不得超过40个字符', trigger: 'blur' } + // ], +}) +/** + * @returns {Array} 供应商发票申请子表 + */ +export const SupplierinvoiceRequestDetail = useCrudSchemas(reactive([ + { + label: '物料代码', + field: 'itemCode', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '物料名称', + field: 'itemName', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '物料描述', + field: 'itemDesc', + table: { + width: 150 + }, + isForm:false, + isTableForm:false, + isDetail: false, + isTable: true, + }, + + //仅是主列表页面的筛选搜索条件 + { + label: '收货日期', + field: 'deliveryDate', + sort: 'custom', + isDetail:false, + isTable: false, + isForm:false, + isTableForm:false, + isSearch:true, + formatter: dateFormatter, + search: { + value:[], + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 '), new Date('1 ')] + } + }, + }, + { + label: '收货日期', + field: 'deliveryDate', + table: { + width: 150 + }, + formatter: dateFormatter2, + isForm:false, + isTableForm:true, + isDetail: false, + isTable: true, + tableForm:{ + disabled:true + } + }, + { + label: '可开票数量', + field: 'invoicableQuantity', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: false, + precision: 5, + } + }, + tableForm:{ + type: 'InputNumber', + disabled: false, + precision: 5, + } + }, + { + label: '合同价格', + field: 'singlePrice', + formatter: singlePriceFormart, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 5, + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 5, + } + }, + { + label: '采购价格', + field: 'purchasePrice', + formatter: singlePriceFormart, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 5, + } + }, + tableForm:{ + type: 'InputNumber', + disabled: true, + min: 0, + precision: 5, + } + }, + { + label: '合同金额', + field: 'contractAmountTotal', + table: { + width: 150 + }, + isForm:false, + tableForm:{ + disabled: true + } + }, + { + label: '采购金额', + field: 'purchaseAmontTotal', + table: { + width: 150 + }, + isForm:false, + tableForm:{ + disabled: true + } + }, + { + label: '总差额', + field: 'differencePriceTotal', + table: { + width: 150 + }, + isForm:false, + tableForm:{ + disabled: true + } + }, + { + label: '单价差额', + field: 'differencePrice', + formatter: singlePriceFormart, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true, + min: 0, + precision: 5, + } + }, + tableForm:{ + type: 'slot', + disabled: true, + min: 0, + precision: 5, + } + }, + { + label: '到货数量', + field: 'arrivalQty', + table: { + width: 150 + }, + isForm:false, + isTableForm:true, + isDetail: false, + isTable: true, + tableForm:{ + disabled:true + } + }, + { + label: '订单号', + field: 'poNumber', + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + { + label: '订单行', + field: 'poLine', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + multiple:true,//多选 + isSearchList: true, + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '待开票列表', + searchAllSchemas: PurchaseReceiptOrReturnRecordDetail.allSchemas, + searchPage: supplierinvoiceRequestDetailApi.getPoNumberPoLineInfo, + searchCondition: [ + { + key: 'supplierCode', + value: 'supplierCode', + message: '请填供应商信息!', + isMainValue: true + },{ + key: 'orderType', + value: 'orderType', + message: '请填订单类型!', + isMainValue: true + } + ] + } + }, + tableForm: { + multiple:true,//多选 + isInpuFocusShow: true, + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '待开票列表', + searchAllSchemas: PurchaseReceiptOrReturnRecordDetail.allSchemas, + searchPage: supplierinvoiceRequestDetailApi.getPoNumberPoLineInfo, + searchCondition: [ + { + key: 'supplierCode', + value: 'supplierCode', + message: '请填供应商信息!', + isMainValue: true + }, + { + key: 'orderType', + value: 'orderType', + message: '请填订单类型!', + isMainValue: true + } + ], + // verificationPage: supplierinvoiceRequestDetailApi.getSupplierinvoiceRequestDetailByCodes, // tableForm下方输入框校验失去焦点之后是否正确的方法 + // isShowTableFormSearch: true, //tableForm下方是否出现输入框 + // isRepeat: true,//tableForm下方输入框是否可以重复添加该条数据 + // // 失去焦点校验参数 + // verificationParams: [{ + // key: 'recvBillNum', + // action: '==', + // value: '', + // isMainValue: false, + // isSearch: 'true', + // isFormModel: true, + // }] + } + }, + { + label: '待开票单据号', + field: 'recvBillNum', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '单据类型', + field: 'billType', + dictType: DICT_TYPE.BILL_TYPE, + dictClass: 'string', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '供应商发货单号', + field: 'asnBillNum', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '供应商代码', + field: 'supplierCode', + hiddenInMain:true, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + + // { + // label: '未税差额',//子表数据 + // field: 'untaxedDifference', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // precision: 2, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 2, + // } + // }, + // { + // label: '含税差额', + // field: 'taxInclusiveDifference', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // precision: 2, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 2, + // } + // }, + + + //仅是主列表页面的筛选搜索条件 + { + label: '供应商创建时间', + field: 'requestTime', + sort: 'custom', + isDetail:false, + isTable: false, + isForm:false, + isTableForm:false, + isSearch:true, + formatter: dateFormatter, + search: { + value:[], + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'datetimerange', + defaultTime: [new Date('1 '), new Date('1 ')] + } + }, + + }, + { + label: '货币', + field: 'currency', + dictType: DICT_TYPE.CURRENCY, + dictClass: 'string', + isTableForm:true, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + type:'Select', + disabled: true + } + }, + { + label: '备注', + field: 'remark', + hiddenInMain:true, + }, + { + label: '供应商创建时间', + field: 'requestTime', + hiddenInMain:true, + isTable: false, + table: { + width: 150 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + isTableForm: false, + isForm: false + }, + { + label: '创建者', + field: 'creator', + hiddenInMain:true, + isTableForm: false, + isTable:false, + isForm: false, + table: { + width: 150 + }, + }, + + + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 250, + fixed: 'right' + }, + hiddenInMain:true, + isTableForm: false, + } +])) + +// 批次校验 +const validateSinglePrice = (rule: any, value: any, callback: any) => { + if (Number(value)>0) { + callback(); + } else { + callback(new Error('请输入合同价格')); + } +} +//表单校验 +export const SupplierinvoiceRequestDetailRules = reactive({ + singlePrice: [ + { required: true, message: '请输入合同价格', trigger: 'change' }, + { validator: validateSinglePrice, trigger: 'change' } + ], +}) +// 采购通过 +export const PurchasePass = useCrudSchemas(reactive([ + { + label: '价差通过说明', + field: 'balanceStatement', + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + componentProps:{ + type:'textarea' + } + }, + }, +])) +//表单校验 +export const PurchasePassRules = reactive({ + balanceStatement: [ + { required: true, message: '请输入价差通过说明', trigger: 'blur'}, + { max: 100, message: '最多100字符', trigger: 'blur'} + ], +}) diff --git a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMainDifference/index.vue b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMainDifference/index.vue new file mode 100644 index 0000000..b5ea4f9 --- /dev/null +++ b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMainDifference/index.vue @@ -0,0 +1,504 @@ + + + + diff --git a/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMainDifference/supplierinvoiceRequestMainDifference.data.ts b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMainDifference/supplierinvoiceRequestMainDifference.data.ts new file mode 100644 index 0000000..569bfbc --- /dev/null +++ b/src/views/wms/supplierManage/supplierinvoice/supplierinvoiceRequestMainDifference/supplierinvoiceRequestMainDifference.data.ts @@ -0,0 +1,2167 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' +import { accountantFormart } from '@/utils/formatter' + +import * as SupplierApi from '@/api/wms/supplier' +import * as SupplierinvoiceRequestMainApi from '@/api/wms/supplierinvoiceRequestMain' +import { Supplier } from '@/views/wms/basicDataManage/supplierManage/supplier/supplier.data' +const { t } = useI18n() // 国际化 + +import * as getRequestsettingApi from '@/api/wms/requestsetting/index' +import * as supplierinvoiceRequestDetailApi from '@/api/wms/supplierinvoiceRequestDetail' + +// 获取自动提交自动通过自动执行,跳过任务直接删生成记录的默认值 +const queryParams = { + pageSize: 10, + pageNo: 1, + code: 'PurchaseInvoiceRequest' +} +const data = await getRequestsettingApi.getRequestsettingPage(queryParams) +const requestsettingData = data?.list[0] || {} + + // 获取当前操作人的部门 + import { useUserStore } from '@/store/modules/user' + import { TableColumn } from '@/types/table' + const userStore = useUserStore() + const userDept = userStore.userSelfInfo.dept + // id 转str 否则form回显匹配不到 + userDept.id = userDept.id.toString() + const userDeptArray:any = [userDept] + +const procurementCreators = await SupplierinvoiceRequestMainApi.queryUserInfoByRoleCode({ roleCode: 'purchase',pageSize: 1000,pageNo: 1,sort: '',by: 'ASC' }) +/** + * @returns {Array} 采购员列表 + */ +export const PurchaseMemberInfo = useCrudSchemas(reactive([ + { + label: '用户编号', + field: 'id', + table: { + width: 180, + }, + }, + { + label: '用户名称', + field: 'username', + table: { + width: 180, + }, + }, + { + label: '用户昵称', + field: 'nickname', + table: { + width: 180, + }, + } +])) + +/** + * @returns {Array} 采购订单或者采购退货单 + */ +export const PurchaseReceiptOrReturnRecordDetail = useCrudSchemas(reactive([ + { + label: '单据类型', + field: 'billType' + }, + { + label: '收货日期', + field: 'deliveryDate', + sort: 'custom', + isDetail:false, + isTable: true, + isForm:false, + isTableForm:false, + isSearch:true, + formatter: dateFormatter2, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 '), new Date('1 ')] + } + }, + }, + { + label: '待开票单据号', + field: 'recvBillNum', + table: { + width: 180, + }, + }, + { + label: '供应商发货单号', + field: 'asnBillNum', + table: { + width: 180, + }, + }, + { + label: '供应商代码', + field: 'supplierCode' + }, + { + label: '订单号', + field: 'poNumber' + }, + { + label: '订单行', + field: 'poLine' + }, + { + label: '采购价格', + field: 'purchasePrice' + }, + { + label: '可开票数量', + field: 'invoicableQuantity' + }, + { + label: '货币', + field: 'currency', + }, + { + label: '物料代码', + field: 'itemCode' + }, + { + label: '创建时间', + field: 'createTime', + isTable: true, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + isTableForm: false, + isForm: false + } +])) + + +/** + * @returns {Array} 供应商发票申请主表 + */ +export const SupplierinvoiceRequestMain = useCrudSchemas(reactive([ + { + label: '单据号', + field: 'number', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: true, + isForm: false + }, + + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:1, + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: {     + enterSearch:true, + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择供应商代码', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '供应商信息', // 查询弹窗标题 + searchAllSchemas: Supplier.allSchemas, // 查询弹窗所需类 + searchPage: SupplierApi.getSupplierPageSCP // 查询弹窗所需分页方法 + } + } + }, + { + label: '订单类型', + field: 'orderType', + dictType: DICT_TYPE.PURCHASE_INVOICE_ORDER_TYPE, + dictClass: 'string', + isTable: false, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + table: { + width: 180, + }, + sortTableDefault:2, + isSearch: true, + isForm: false + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.SUPPLIERINVOICE_REQUEST_STATUS, + dictClass: 'string', + isTable: true, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:9, + isSearch: true, + search: { + componentProps: { + multiple: true, + collapseTags: true, + collapseTagsTooltip: true, + } + }, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + //子表数据,仅是查询条件 + { + label: '货运单号', + field: 'asnBillNum', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isTableForm:false, + isTable:false, + isDetail:false, + isSearch: true, + isForm: false, + }, + { + label: '供应商维护未税金额', + field: 'amount', + formatter: accountantFormart, + table: { + width: 160 + }, + sortTableDefault:8, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + precision: 2, + } + }, + { + label: '税率(%)', + field: 'taxRate', + dictType: DICT_TYPE.TAX_RATE_DICT, + dictClass: 'string', + sortTableDefault:3, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '价差合计', + field: 'differencePriceTotalMain', + formatter: accountantFormart, + table: { + width: 100 + }, + sortTableDefault: 3, + isForm: false, + isTable: true, + isSearch: false, + isDetail: true, + }, + + // { + // label: '未税金额', + // field: 'beforeTaxAmount', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // sortTableDefault:3, + // isForm:false, + // isTableForm:false + // }, + // { + // label: '发票税额', + // field: 'totalTaxAmount', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // sortTableDefault:3, + // isForm:false, + // isTableForm:false + // }, + // { + // label: '发票价税合计', + // field: 'adTaxAmount', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // sortTableDefault:3, + // isForm:false, + // isTableForm:false + // }, + { + label: '供应商维护税额', + field: 'taxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:6, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + precision: 2, + } + }, + { + label: '供应商维护价税合计', + field: 'afterTaxAmount', + formatter: accountantFormart, + table: { + width: 160 + }, + sortTableDefault:7, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2, + disabled: true, + } + }, + { + label: '索赔金额', + field: 'claimAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + isTable:false, + isTableForm:false, + isForm:false, + isDetail:false, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2, + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2, + } + }, + // { + // label: '调整价差', + // field: 'discountAmount', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // isTable:false, + // form: { + // component: 'InputNumber', + // componentProps: { + // precision: 2, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 2, + // } + // }, + // { + // label: '调整税额', + // field: 'adjustingTaxAmount', + // table: { + // width: 150 + // }, + // isTable:false, + // form: { + // component: 'InputNumber', + // componentProps: { + // precision: 2, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 2, + // } + // }, + { + label: '返利未税金额', + field: 'discountAmount1', + formatter: accountantFormart, + table: { + width: 150 + }, + isTable:false, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2, + } + }, + { + label: '发票未税金额', + field: 'beforeTaxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:3, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + isTableForm:false, + }, + { + label: '发票税额', + field: 'totalTaxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:4, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + isTableForm:false, + }, + { + label: '发票价税合计', + field: 'adTaxAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + isTableForm:false, + }, + { + label: '是否有价差', + field: 'balanceStatementStatus', + dictType: DICT_TYPE.INVOICE_BALANCE_STATEMENT_STATUS, + dictClass: 'string', + isTable: true, + isForm:false, + isSearch:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + }, + + { + label: '价差说明', + field: 'balanceStatement', + isTable: false, + isForm:false, + isSearch:false, + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:5, + }, + { + label: '未税尾差', + field: 'beforeTaxDiffAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + isTableForm:false, + }, + { + label: '税额尾差', + field: 'taxAmountDiff', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + isTableForm:false, + }, + { + label: '价税合计尾差', + field: 'totalTaxDiffAmount', + formatter: accountantFormart, + table: { + width: 150 + }, + sortTableDefault:5, + isTableForm:false, + form: { + component: 'InputNumber', + componentProps: { + precision: 2, + disabled: true, + } + }, + }, + + // { + // label: '总差额', + // field: 'totalDifference', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // isTable:false, + // form: { + // component: 'InputNumber', + // componentProps: { + // precision: 2, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 2, + // } + // }, + { + label: '金税票号', + field: 'goldenTaxInvoiceNumber', + table: { + width: 200, + }, + sortTableDefault:10, + form:{ + componentProps: { + maxlength:20, + showWordLimit:true + } + } + }, + { + label: '快递单号', + field: 'expressTrackingNumber', + isTable:false, + isForm:false, + table: { + width: 150 + }, + }, + { + label: '开票日期', + field: 'invoiceTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + sortTableDefault:11, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + // { + // label: '采购审批人', + // field: 'procurementCreatorName', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable:true, + // isDetail: true, + // isTableForm: false, + // isForm:false, + // isSearch:false, + // sortTableDefault:12 + // }, + { + label: '过账日期', + field: 'postingDate', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + isDetail:false, + form: { + component: 'DatePicker', + componentProps: { + disabled: true, + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + + // { + // label: '申请时间', + // field: 'requestTime', + // formatter: dateFormatter, + // detail: { + // dateFormat: 'YYYY-MM-DD HH:mm:ss' + // }, + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable:false, + // isForm:false, + // form: { + // component: 'DatePicker', + // componentProps: { + // type: 'datetime', + // dateFormat: 'YYYY-MM-DD HH:mm:ss', + // valueFormat: 'x', + // } + // }, + // }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isTableForm:false, + isForm:false, + formatter: (_: Recordable, __: TableColumn, cellValue: number) => { + return userDeptArray.find((account) => account.id == cellValue)?.name + }, + form: { + value: userDept.id, + component: 'Select', + api: () => userDeptArray, + componentProps: { + disabled: true, + optionsAlias: { + labelField: 'name', + valueField: 'id' + } + } + } + }, + { + label: '创建者', + field: 'creator', + table: { + width: 150 + }, + isTable:false, + sortTableDefault:1001, + isForm: false, + }, + { + label: '创建时间', + field: 'createTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + isDetail: false, + isTableForm: false, + isTable: true, + 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')] + } + }, + }, + { + label: '差价范围', + field: 'cha', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isTableForm:false, + isTable:false, + isDetail:false, + isSearch: true, + isForm: false, + }, + { + label: '供应商创建时间', + field: 'requestTime', + isTable:true, + formatter: dateFormatter, + sortTableDefault:1000, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + isSearch: true, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetimerange', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + search: { + value:[], + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'datetimerange', + defaultTime: [new Date('1 '), new Date('1 ')] + } + }, + }, + { + label: '最后更新者', + field: 'updater', + sort: 'custom', + table: { + width: 150 + }, + isTable:false, + isForm: false, + }, + { + label: '最后更新时间', + field: 'updateTime', + isTable: false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '采购价格审批人', + field: 'procurementCreator', + table: { + width: 150 + }, + sortTableDefault:14, + isForm: true, + isTable:false, + isDetail:false, + form: { + component: 'Select', + api: () => procurementCreators.list, + componentProps: { + optionsAlias: { + labelField: 'nickname', + valueField: 'id' + } + }, + // labelMessage: '信息提示说明!!!', + // componentProps: { + // isSearchList: true, // 开启查询弹窗 + // hiddenFilterButton:true,//是否隐藏筛选按钮 + // dialogWidth:'665px',//搜索出来弹窗的宽度 + // searchListPlaceholder: '请选择采购员', // 输入框占位文本 + // searchField: 'id', // 查询弹窗赋值字段 + // searchTitle: '采购员信息', // 查询弹窗标题 + // searchAllSchemas: PurchaseMemberInfo.allSchemas, // 查询弹窗所需类 + // searchPage: SupplierinvoiceRequestMainApi.queryUserInfoByRoleCode, // 查询弹窗所需分页方法 + // searchCondition: [{ + // key: 'roleCode', // 查询列表中字段 + // value: 'purchase', // 指查询具体值 + // isMainValue: false // 表示查询条件不是主表的字段的值 + // }] + // } + } + }, + { + label: '采购价格审批人', + field: 'procurementCreatorName', + table: { + width: 150 + }, + sortTableDefault:14, + isForm: false, + isTable:true, + isDetail:false, + form: { + component: 'Select', + api: () => procurementCreators.list, + componentProps: { + optionsAlias: { + labelField: 'nickname', + valueField: 'id' + } + }, + } + }, + // { + // label: '采购审批人', + // field: 'procurementCreatorName', + // sort: 'custom', + // table: { + // width: 180 + // }, + // isTable:true, + // isDetail: true, + // isTableForm: false, + // isForm:false, + // isSearch:false, + // sortTableDefault:12 + // }, + + { + label: '采购审批时间', + field: 'procurementCreateTime', + isTable: true, + sortTableDefault:13, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '财务审批人', + field: 'financialCreatorName', + sort: 'custom', + table: { + width: 150 + }, + sortTableDefault:14, + isForm: false, + }, + { + label: '采购驳回原因', + field: 'purchaseRejectCause', + table: { + width: 180 + }, + sortTableDefault:16, + isTable: true, + isSearch: false, + isForm: false, + isDetail:false, + }, + { + label: '财务驳回原因', + field: 'financeRejectCause', + table: { + width: 180 + }, + sortTableDefault:17, + isTable: true, + isSearch: false, + isForm: false, + isDetail:false, + }, + { + label: '财务审批时间', + field: 'financialCreateTime', + isTable: true, + sortTableDefault:15, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '供应商审批人', + field: 'supplierCreator', + sort: 'custom', + isTable:false, + isDetail:false, + sortTableDefault:1006, + table: { + width: 180 + }, + isForm: false, + }, + { + label: '供应商审批人', + field: 'supplierCreatorName', + sort: 'custom', + isTable:false, + isDetail:true, + sortTableDefault:1006, + table: { + width: 180 + }, + isForm: false, + }, + { + label: '供应商审批时间', + field: 'supplierCreateTime', + isTable:false, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + form:{ + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss',//YYYY-MM-DD + valueFormat: 'x',//数据转成时间戳 + } + }, + sort: 'custom', + table: { + width: 180 + }, + isForm: false, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + isForm:false, + isTable: false, + }, + { + label: '自动提交', + field: 'autoCommit', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + isTableForm:false, + isDetail:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoCommit, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '自动通过', + field: 'autoAgree', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + isTableForm:false, + isDetail:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoAgree, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '自动执行', + field: 'autoExecute', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + isTableForm:false, + isDetail:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.autoExecute, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + }, + { + label: '跳过任务生成记录', + field: 'directCreateRecord', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isTable: false, + isForm:false, + isTableForm:false, + isDetail:false, + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'Switch', + value: requestsettingData.directCreateRecord, + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true, + } + } + } +])) +/** + * @returns {Array} 供应商发票在详情展示的主表字段 + */ +export const SupplierinvoiceRequestDetailMain = useCrudSchemas(reactive([ + { + label: '汇总信息', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: true, + }, + { + label: '供应商信息', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: true, + }, + { + label: '价差', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: true, + }, + { + label: 'SCP系统数据', + field: '', + sort: 'custom', + isForm: false, + isSearch: false, + isTable: false, + isDetail: false, + }, + + { + label: '单据号', + field: 'number', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '系统未税金额', + field: 'purchaseAmountTotalMain', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '财务凭证号', + field: 'voucherNumber', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '价差合计', + field: 'differencePriceTotalMain', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商创建时间', + field: 'requestTime', + sort: 'custom', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '订单类型', + field: 'orderType', + dictType: DICT_TYPE.PURCHASE_INVOICE_ORDER_TYPE, + dictClass: 'string', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.SUPPLIERINVOICE_REQUEST_STATUS, + dictClass: 'string', + sort: 'custom', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票号码', + field: 'goldenTaxInvoiceNumber', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '尾差', + field: '', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + // { + // label: '尾差', + // field: 'totalDifference', + // sortTableDefault: 6, + // isForm: false, + // isTable: false, + // isSearch: false, + // isDetail: false, + // }, + { + label: '采购价格审批人', + field: 'procurementCreatorName', + sortTableDefault: 1003, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '开票日期', + field: 'invoiceTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商维护价税合计', + field: 'afterTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '采购价格审批时间', + field: 'procurementCreateTime', + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 1003, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '税率(%)', + field: 'taxRate', + dictType: DICT_TYPE.TAX_RATE_DICT, + dictClass: 'string', + sortTableDefault: 3, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '供应商维护未税金额', + field: 'amount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '价差通过说明', + field: 'balanceStatement', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票价税合计', + field: 'adTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '供应商维护税额', + field: 'taxAmount', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '财务审批人', + field: 'financialCreatorName', + sort: 'custom', + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票未税金额', + field: 'beforeTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '', + field: '', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '财务审批时间', + field: 'financialCreateTime', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '发票税额', + field: 'totalTaxAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '价税合计尾差', + field: 'totalTaxDiffAmount', + formatter: accountantFormart, + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + detail:{ + slotFilter: true + } + }, + { + label: '财务过账日期', + field: 'postingDate', + isTable: true, + sortTableDefault: 15, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + + }, + { + label: '返利未税金额', + field: 'discountAmount1', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '未税尾差', + field: 'beforeTaxDiffAmount', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + detail:{ + slotFilter: true + } + }, + { + label: '参考凭证描述', + field: 'voucherNumberRemark', + sort: 'custom', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + // detail:{ + // span:2 + // } + }, + { + label: '工厂地点', + field: 'siteId', + sort: 'custom', + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + }, + { + label: '税额尾差', + field: 'taxAmountDiff', + formatter: accountantFormart, + + sortTableDefault: 6, + isForm: false, + isTable: false, + isSearch: false, + isDetail: true, + detail:{ + slotFilter: true + } + }, + + +])) +const singlePriceFormart = (row, column, cellValue) => { + cellValue= Number(cellValue).toFixed(4) + cellValue = cellValue + '' || '' + + 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 +} + +function validateTaxRate(rule, value, callback) { + if (value>0) { + callback() + }else{ + callback(new Error('税率必须大于0')) + } +} + +//表单校验 +export const SupplierinvoiceRequestMainRules = reactive({ + taxRate: [ + required, + // { validator:validateTaxRate, message: '税率必须大于0', trigger: 'blur'} + ], + supplierCode: [ + { required: true, message: '请选择供应商代码', trigger: 'change' } + ], + invoiceTime:[ + { required: false, message: '请选择发票日期', trigger: 'blur' } + ], + goldenTaxInvoiceNumber:[ + { required: false, message: '请输入金税票号', trigger: 'blur' } + ], + departmentCode: [ + { required: true, message: '请输入部门', trigger: 'blur' } + ], + autoCommit: [ + { required: true, message: '请选择是否自动提交', trigger: 'change' } + ], + autoAgree: [ + { required: true, message: '请选择是否自动通过', trigger: 'change' } + ], + autoExecute: [ + { required: true, message: '请选择是否自动执行', trigger: 'change' } + ], + directCreateRecord: [ + { required: true, message: '请选择是否跳过任务直接生成记录', trigger: 'change' } + ], + businessType: [ + { required: true, message: '请输入业务类型', trigger: 'blur' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + procurementCreator: [ + { required: true, message: '请选择采购员', trigger: 'change' } + ], + beforeTaxAmount: [ + { required: true, message: '请输入未税金额', trigger: 'change' } + ], + totalTaxAmount: [ + { required: true, message: '请输入税额', trigger: 'change' } + ], +}) + +export const SupplierinvoiceRequestFinance = useCrudSchemas(reactive([ + { + label: '过账日期', + field: 'postingDate', + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + }, + { + label: '凭证描述', + field: 'voucherNumberRemark', + sort: 'custom', + isTable:false, + form: { + component: 'Input', + componentProps:{ + type: 'textarea' + } + }, + }, +])) + +export const SupplierinvoiceRequestFinanceRules = reactive({ + postingDate: [ + { required: true, message: '请选择过账日期', trigger: 'change' } + ], + // voucherNumberRemark: [ + // { max: 50, message: '不得超过40个字符', trigger: 'blur' } + // ], +}) +/** + * @returns {Array} 供应商发票申请子表 + */ +export const SupplierinvoiceRequestDetail = useCrudSchemas(reactive([ + { + label: '物料代码', + field: 'itemCode', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '物料名称', + field: 'itemName', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '物料描述', + field: 'itemDesc', + table: { + width: 150 + }, + isForm:false, + isTableForm:false, + isDetail: false, + isTable: true, + }, + + //仅是主列表页面的筛选搜索条件 + { + label: '收货日期', + field: 'deliveryDate', + sort: 'custom', + isDetail:false, + isTable: false, + isForm:false, + isTableForm:false, + isSearch:true, + formatter: dateFormatter, + search: { + value:[], + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 '), new Date('1 ')] + } + }, + }, + { + label: '收货日期', + field: 'deliveryDate', + table: { + width: 150 + }, + formatter: dateFormatter2, + isForm:false, + isTableForm:true, + isDetail: false, + isTable: true, + tableForm:{ + disabled:true + } + }, + { + label: '可开票数量', + field: 'invoicableQuantity', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '合同价格', + field: 'singlePrice', + formatter: singlePriceFormart, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2, + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2, + } + }, + { + label: '采购价格', + field: 'purchasePrice', + formatter: singlePriceFormart, + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + disabled: true, + min: 0, + precision: 4, + } + }, + tableForm:{ + type: 'InputNumber', + disabled: true, + min: 0, + precision: 4, + } + }, + { + label: '合同金额', + field: 'contractAmountTotal', + table: { + width: 150 + }, + isForm:false, + tableForm:{ + disabled: true + } + }, + { + label: '采购金额', + field: 'purchaseAmontTotal', + table: { + width: 150 + }, + isForm:false, + tableForm:{ + disabled: true + } + }, + { + label: '总差额', + field: 'differencePriceTotal', + table: { + width: 150 + }, + isForm:false, + tableForm:{ + disabled: true + } + }, + { + label: '单价差额', + field: 'differencePrice', + formatter: singlePriceFormart, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true, + min: 0, + precision: 4, + } + }, + tableForm:{ + type: 'slot', + disabled: true, + min: 0, + precision: 4, + } + }, + { + label: '到货数量', + field: 'arrivalQty', + table: { + width: 150 + }, + isForm:false, + isTableForm:true, + isDetail: false, + isTable: true, + tableForm:{ + disabled:true + } + }, + { + label: '订单号', + field: 'poNumber', + form: { + componentProps: { + disabled: true + } + }, + table: { + width: 150 + }, + tableForm:{ + disabled: true + } + }, + { + label: '订单行', + field: 'poLine', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + multiple:true,//多选 + isSearchList: true, + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '待开票列表', + searchAllSchemas: PurchaseReceiptOrReturnRecordDetail.allSchemas, + searchPage: supplierinvoiceRequestDetailApi.getPoNumberPoLineInfo, + searchCondition: [ + { + key: 'supplierCode', + value: 'supplierCode', + message: '请填供应商信息!', + isMainValue: true + },{ + key: 'orderType', + value: 'orderType', + message: '请填订单类型!', + isMainValue: true + } + ] + } + }, + tableForm: { + multiple:true,//多选 + isInpuFocusShow: true, + searchListPlaceholder: '请选择订单行', + searchField: 'poLine', + searchTitle: '待开票列表', + searchAllSchemas: PurchaseReceiptOrReturnRecordDetail.allSchemas, + searchPage: supplierinvoiceRequestDetailApi.getPoNumberPoLineInfo, + searchCondition: [ + { + key: 'supplierCode', + value: 'supplierCode', + message: '请填供应商信息!', + isMainValue: true + }, + { + key: 'orderType', + value: 'orderType', + message: '请填订单类型!', + isMainValue: true + } + ] + } + }, + { + label: '待开票单据号', + field: 'recvBillNum', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '单据类型', + field: 'billType', + dictType: DICT_TYPE.BILL_TYPE, + dictClass: 'string', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '供应商发货单号', + field: 'asnBillNum', + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + { + label: '供应商代码', + field: 'supplierCode', + hiddenInMain:true, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + disabled: true + } + }, + + // { + // label: '未税差额',//子表数据 + // field: 'untaxedDifference', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // precision: 2, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 2, + // } + // }, + // { + // label: '含税差额', + // field: 'taxInclusiveDifference', + // formatter: accountantFormart, + // table: { + // width: 150 + // }, + // form: { + // component: 'InputNumber', + // componentProps: { + // precision: 2, + // } + // }, + // tableForm: { + // type: 'InputNumber', + // min: 0, + // precision: 2, + // } + // }, + + { + label: '货币', + field: 'currency', + dictType: DICT_TYPE.CURRENCY, + dictClass: 'string', + isTableForm:true, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + }, + tableForm:{ + type:'Select', + disabled: true + } + }, + { + label: '备注', + field: 'remark', + hiddenInMain:true, + }, + { + label: '创建时间', + field: 'createTime', + hiddenInMain:true, + isTable: false, + table: { + width: 150 + }, + formatter: dateFormatter, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + isTableForm: false, + isForm: false + }, + { + label: '创建者', + field: 'creator', + hiddenInMain:true, + isTableForm: false, + isTable:false, + isForm: false, + table: { + width: 150 + }, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 250, + fixed: 'right' + }, + hiddenInMain:true, + isTableForm: false, + } +])) +// 批次校验 +const validateSinglePrice = (rule: any, value: any, callback: any) => { + if (Number(value)>0) { + callback(); + } else { + callback(new Error('请输入合同价格')); + } +} +//表单校验 +export const SupplierinvoiceRequestDetailRules = reactive({ + singlePrice: [ + { required: true, message: '请输入合同价格', trigger: 'change' }, + { validator: validateSinglePrice, trigger: 'change' } + ], +}) +// 采购通过 +export const PurchasePass = useCrudSchemas(reactive([ + { + label: '价差通过说明', + field: 'balanceStatement', + sort: 'custom', + table: { + width: 180 + }, + isTable:false, + form: { + componentProps:{ + type:'textarea' + } + }, + }, +])) +//表单校验 +export const PurchasePassRules = reactive({ + balanceStatement: [ + { required: true, message: '请输入价差通过说明', trigger: 'blur'}, + { max: 100, message: '最多100字符', trigger: 'blur'} + ], +}) diff --git a/src/views/wms/supplierManage/supplierinvoiceInvoicedDiscrete/index.vue b/src/views/wms/supplierManage/supplierinvoiceInvoicedDiscrete/index.vue new file mode 100644 index 0000000..6796b9b --- /dev/null +++ b/src/views/wms/supplierManage/supplierinvoiceInvoicedDiscrete/index.vue @@ -0,0 +1,314 @@ + + + diff --git a/src/views/wms/supplierManage/supplierinvoiceInvoicedDiscrete/supplierinvoiceInvoiced.data.ts b/src/views/wms/supplierManage/supplierinvoiceInvoicedDiscrete/supplierinvoiceInvoiced.data.ts new file mode 100644 index 0000000..51a2037 --- /dev/null +++ b/src/views/wms/supplierManage/supplierinvoiceInvoicedDiscrete/supplierinvoiceInvoiced.data.ts @@ -0,0 +1,284 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' + +// 表单校验 +export const SupplierinvoiceInvoicedRules = reactive({ + supplierCode: [required], + poNumber: [required], + currency: [required], + concurrencyStamp: [required], +}) + +export const SupplierinvoiceInvoiced = useCrudSchemas(reactive([ + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + isSearch: true, + table: { + width: 150 + }, + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '待开票单据号', + field: 'recvBillNum', + sort: 'custom', + isSearch: true, + table: { + width: 150 + }, + }, + { + label: '发货单号', + field: 'asnBillNum', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '供应商送货日期', + field: 'supplierDeliveryTime', + sort: 'custom', + formatter: dateFormatter2, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '收货日期', + field: 'prhRcpDate', + sort: 'custom', + isSearch: true, + formatter: dateFormatter2, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '项目编码', + field: 'projectCode', + sort: 'custom', + isTable:false, + isTableForm:false, + table: { + width: 150 + }, + }, + { + label: '单据类型', + field: 'billType', + dictType: DICT_TYPE.BILL_TYPE, + dictClass: 'string', + sort: 'custom', + form: { + component: 'SelectV2' + }, + table: { + width: 150 + }, + }, + + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.SUPPLIERINVOICE_STATUS, + dictClass: 'string', + isTable: true, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + + // { + // label: '发票申请状态', + // field: 'requestStatus', + // dictType: DICT_TYPE.INVOICE_REQUEST_STATUS, + // dictClass: 'string', + // isTable: true, + // isForm:false, + // sort: 'custom', + // table: { + // width: 150 + // }, + // isSearch: false, + // form: { + // value: '1', + // componentProps: { + // disabled: true + // } + // } + // }, + + + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '采购价格', + field: 'purchasePrice', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '票据总数', + field: 'invoicableQuantity', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '实际开票数量', + field: 'issuedInvoicableQuantity', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '可开票数量', + field: 'invoiceAvailableQuantity', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '零件号', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '货币', + field: 'currency', + sort: 'custom', + dictType: DICT_TYPE.CURRENCY, + dictClass: 'string', + table: { + width: 150 + }, + tableForm:{ + type:'Select', + disabled: true + } + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + table: { + width: 150 + }, + isForm: false, + 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')] + } + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) diff --git a/src/views/wms/supplierManage/supplierinvoiceInvoicedSchedule/index.vue b/src/views/wms/supplierManage/supplierinvoiceInvoicedSchedule/index.vue new file mode 100644 index 0000000..caebb31 --- /dev/null +++ b/src/views/wms/supplierManage/supplierinvoiceInvoicedSchedule/index.vue @@ -0,0 +1,314 @@ + + + diff --git a/src/views/wms/supplierManage/supplierinvoiceInvoicedSchedule/supplierinvoiceInvoiced.data.ts b/src/views/wms/supplierManage/supplierinvoiceInvoicedSchedule/supplierinvoiceInvoiced.data.ts new file mode 100644 index 0000000..51a2037 --- /dev/null +++ b/src/views/wms/supplierManage/supplierinvoiceInvoicedSchedule/supplierinvoiceInvoiced.data.ts @@ -0,0 +1,284 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter,dateFormatter2 } from '@/utils/formatTime' + +// 表单校验 +export const SupplierinvoiceInvoicedRules = reactive({ + supplierCode: [required], + poNumber: [required], + currency: [required], + concurrencyStamp: [required], +}) + +export const SupplierinvoiceInvoiced = useCrudSchemas(reactive([ + { + label: '供应商代码', + field: 'supplierCode', + sort: 'custom', + isSearch: true, + table: { + width: 150 + }, + }, + { + label: '订单号', + field: 'poNumber', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '待开票单据号', + field: 'recvBillNum', + sort: 'custom', + isSearch: true, + table: { + width: 150 + }, + }, + { + label: '发货单号', + field: 'asnBillNum', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '供应商送货日期', + field: 'supplierDeliveryTime', + sort: 'custom', + formatter: dateFormatter2, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD', + valueFormat: 'x', + } + }, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '收货日期', + field: 'prhRcpDate', + sort: 'custom', + isSearch: true, + formatter: dateFormatter2, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + table: { + width: 150 + }, + isForm: false, + }, + { + label: '项目编码', + field: 'projectCode', + sort: 'custom', + isTable:false, + isTableForm:false, + table: { + width: 150 + }, + }, + { + label: '单据类型', + field: 'billType', + dictType: DICT_TYPE.BILL_TYPE, + dictClass: 'string', + sort: 'custom', + form: { + component: 'SelectV2' + }, + table: { + width: 150 + }, + }, + + { + label: '状态', + field: 'status', + dictType: DICT_TYPE.SUPPLIERINVOICE_STATUS, + dictClass: 'string', + isTable: true, + isForm:false, + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + form: { + value: '1', + componentProps: { + disabled: true + } + } + }, + + // { + // label: '发票申请状态', + // field: 'requestStatus', + // dictType: DICT_TYPE.INVOICE_REQUEST_STATUS, + // dictClass: 'string', + // isTable: true, + // isForm:false, + // sort: 'custom', + // table: { + // width: 150 + // }, + // isSearch: false, + // form: { + // value: '1', + // componentProps: { + // disabled: true + // } + // } + // }, + + + { + label: '订单行', + field: 'poLine', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '采购价格', + field: 'purchasePrice', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '票据总数', + field: 'invoicableQuantity', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '实际开票数量', + field: 'issuedInvoicableQuantity', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '可开票数量', + field: 'invoiceAvailableQuantity', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '零件号', + field: 'itemCode', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '计量单位', + field: 'uom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '货币', + field: 'currency', + sort: 'custom', + dictType: DICT_TYPE.CURRENCY, + dictClass: 'string', + table: { + width: 150 + }, + tableForm:{ + type:'Select', + disabled: true + } + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + style: {width:'100%'}, + type: 'datetime', + dateFormat: 'YYYY-MM-DD HH:mm:ss', + valueFormat: 'x', + } + }, + table: { + width: 150 + }, + isForm: false, + 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')] + } + }, + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + table: { + width: 150 + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) diff --git a/stylelint.config.js b/stylelint.config.js new file mode 100644 index 0000000..b970bd2 --- /dev/null +++ b/stylelint.config.js @@ -0,0 +1,233 @@ +module.exports = { + root: true, + plugins: ['stylelint-order'], + customSyntax: 'postcss-html', + extends: ['stylelint-config-standard'], + rules: { + 'selector-pseudo-class-no-unknown': [ + true, + { + ignorePseudoClasses: ['global', 'deep'] + } + ], + 'at-rule-no-unknown': [ + true, + { + ignoreAtRules: ['function', 'if', 'each', 'include', 'mixin'] + } + ], + // 命名规范 + "selector-class-pattern": null, + 'no-empty-source': null, + 'named-grid-areas-no-invalid': null, + 'unicode-bom': 'never', + 'no-descending-specificity': null, + 'font-family-no-missing-generic-family-keyword': null, + 'declaration-colon-space-after': 'always-single-line', + 'declaration-colon-space-before': 'never', + 'declaration-block-trailing-semicolon': null, + 'rule-empty-line-before': [ + 'always', + { + ignore: ['after-comment', 'first-nested'] + } + ], + 'unit-no-unknown': [ + true, + { + ignoreUnits: ['rpx'] + } + ], + 'order/order': [ + [ + 'dollar-variables', + 'custom-properties', + 'at-rules', + 'declarations', + { + type: 'at-rule', + name: 'supports' + }, + { + type: 'at-rule', + name: 'media' + }, + 'rules' + ], + { + severity: 'warning' + } + ], + // Specify the alphabetical order of the attributes in the declaration block + 'order/properties-order': [ + 'position', + 'top', + 'right', + 'bottom', + 'left', + 'z-index', + 'display', + 'float', + 'width', + 'height', + 'max-width', + 'max-height', + 'min-width', + 'min-height', + 'padding', + 'padding-top', + 'padding-right', + 'padding-bottom', + 'padding-left', + 'margin', + 'margin-top', + 'margin-right', + 'margin-bottom', + 'margin-left', + 'margin-collapse', + 'margin-top-collapse', + 'margin-right-collapse', + 'margin-bottom-collapse', + 'margin-left-collapse', + 'overflow', + 'overflow-x', + 'overflow-y', + 'clip', + 'clear', + 'font', + 'font-family', + 'font-size', + 'font-smoothing', + 'osx-font-smoothing', + 'font-style', + 'font-weight', + 'hyphens', + 'src', + 'line-height', + 'letter-spacing', + 'word-spacing', + 'color', + 'text-align', + 'text-decoration', + 'text-indent', + 'text-overflow', + 'text-rendering', + 'text-size-adjust', + 'text-shadow', + 'text-transform', + 'word-break', + 'word-wrap', + 'white-space', + 'vertical-align', + 'list-style', + 'list-style-type', + 'list-style-position', + 'list-style-image', + 'pointer-events', + 'cursor', + 'background', + 'background-attachment', + 'background-color', + 'background-image', + 'background-position', + 'background-repeat', + 'background-size', + 'border', + 'border-collapse', + 'border-top', + 'border-right', + 'border-bottom', + 'border-left', + 'border-color', + 'border-image', + 'border-top-color', + 'border-right-color', + 'border-bottom-color', + 'border-left-color', + 'border-spacing', + 'border-style', + 'border-top-style', + 'border-right-style', + 'border-bottom-style', + 'border-left-style', + 'border-width', + 'border-top-width', + 'border-right-width', + 'border-bottom-width', + 'border-left-width', + 'border-radius', + 'border-top-right-radius', + 'border-bottom-right-radius', + 'border-bottom-left-radius', + 'border-top-left-radius', + 'border-radius-topright', + 'border-radius-bottomright', + 'border-radius-bottomleft', + 'border-radius-topleft', + 'content', + 'quotes', + 'outline', + 'outline-offset', + 'opacity', + 'filter', + 'visibility', + 'size', + 'zoom', + 'transform', + 'box-align', + 'box-flex', + 'box-orient', + 'box-pack', + 'box-shadow', + 'box-sizing', + 'table-layout', + 'animation', + 'animation-delay', + 'animation-duration', + 'animation-iteration-count', + 'animation-name', + 'animation-play-state', + 'animation-timing-function', + 'animation-fill-mode', + 'transition', + 'transition-delay', + 'transition-duration', + 'transition-property', + 'transition-timing-function', + 'background-clip', + 'backface-visibility', + 'resize', + 'appearance', + 'user-select', + 'interpolation-mode', + 'direction', + 'marks', + 'page', + 'set-link-source', + 'unicode-bidi', + 'speak' + ] + }, + ignoreFiles: ['**/*.js', '**/*.jsx', '**/*.tsx', '**/*.ts'], + overrides: [ + { + files: ['*.vue', '**/*.vue', '*.html', '**/*.html'], + extends: ['stylelint-config-recommended', 'stylelint-config-html'], + rules: { + 'keyframes-name-pattern': null, + 'selector-pseudo-class-no-unknown': [ + true, + { + ignorePseudoClasses: ['deep', 'global'] + } + ], + 'selector-pseudo-element-no-unknown': [ + true, + { + ignorePseudoElements: ['v-deep', 'v-global', 'v-slotted'] + } + ] + } + } + ] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..6b7f85d --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,45 @@ +{ + "compilerOptions": { + "target": "esnext", + "useDefineForClassFields": true, + "module": "esnext", + "moduleResolution": "node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "lib": ["esnext", "dom"], + "baseUrl": "./", + "allowJs": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true, + "strictFunctionTypes": false, + "noUnusedLocals": true, + "noUnusedParameters": true, + "experimentalDecorators": true, + "noImplicitAny": false, + "skipLibCheck": true, + "paths": { + "@/*": ["src/*"] + }, + "types": [ + "@intlify/unplugin-vue-i18n/types", + "vite/client", + "element-plus/global", + "@types/intro.js", + "@types/qrcode", + "vite-plugin-svg-icons/client" + ], + "outDir": "target", // 请保留这个属性,防止tsconfig.json文件报错 + "typeRoots": ["./node_modules/@types/", "./types"] + }, + "include": [ + "src/**/**/*.vue", + "src/**/**/*", + "types/**/*.d.ts", + "src/types/auto-imports.d.ts", + "src/types/auto-components.d.ts" + ], + "exclude": ["dist", "target", "node_modules"] +} diff --git a/types/components.d.ts b/types/components.d.ts new file mode 100644 index 0000000..9d0ba09 --- /dev/null +++ b/types/components.d.ts @@ -0,0 +1,8 @@ +declare module 'vue' { + export interface GlobalComponents { + Icon: typeof import('@/components/Icon')['Icon'] + DictTag: typeof import('@/components/DictTag')['DictTag'] + } +} + +export {} diff --git a/types/custom-types.d.ts b/types/custom-types.d.ts new file mode 100644 index 0000000..3ef553c --- /dev/null +++ b/types/custom-types.d.ts @@ -0,0 +1,27 @@ +import { SlateDescendant } from '@wangeditor/editor' + +declare module 'slate' { + interface CustomTypes { + // 扩展 text + Text: { + text: string + bold?: boolean + italic?: boolean + code?: boolean + through?: boolean + underline?: boolean + sup?: boolean + sub?: boolean + color?: string + bgColor?: string + fontSize?: string + fontFamily?: string + } + + // 扩展 Element 的 type 属性 + Element: { + type: string + children: SlateDescendant[] + } + } +} diff --git a/types/env.d.ts b/types/env.d.ts new file mode 100644 index 0000000..e5861e3 --- /dev/null +++ b/types/env.d.ts @@ -0,0 +1,32 @@ +/// + +declare module '*.vue' { + import { DefineComponent } from 'vue' + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types + const component: DefineComponent<{}, {}, any> + export default component +} + +interface ImportMetaEnv { + readonly VITE_APP_TITLE: string + readonly VITE_PORT: number + readonly VITE_OPEN: string + readonly VITE_DEV: string + readonly VITE_APP_CAPTCHA_ENABLE: string + readonly VITE_APP_TENANT_ENABLE: string + readonly VITE_BASE_URL: string + readonly VITE_UPLOAD_URL: string + readonly VITE_API_BASEPATH: string + readonly VITE_API_URL: string + readonly VITE_BASE_PATH: string + readonly VITE_DROP_DEBUGGER: string + readonly VITE_DROP_CONSOLE: string + readonly VITE_SOURCEMAP: string + readonly VITE_OUT_DIR: string +} + +declare global { + interface ImportMeta { + readonly env: ImportMetaEnv + } +} diff --git a/types/global.d.ts b/types/global.d.ts new file mode 100644 index 0000000..5e29268 --- /dev/null +++ b/types/global.d.ts @@ -0,0 +1,50 @@ +export {} +declare global { + interface Fn { + (...arg: T[]): T + } + + type Nullable = T | null + + type ElRef = Nullable + + type Recordable = Record + + type ComponentRef = InstanceType + + type LocaleType = 'zh-CN' | 'en' + + type AxiosHeaders = + | 'application/json' + | 'application/x-www-form-urlencoded' + | 'multipart/form-data' + + type AxiosMethod = 'get' | 'post' | 'delete' | 'put' | 'GET' | 'POST' | 'DELETE' | 'PUT' + + type AxiosResponseType = 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream' + + interface AxiosConfig { + params?: any + data?: any + url?: string + method?: AxiosMethod + headersType?: string + responseType?: AxiosResponseType + } + + interface IResponse { + code: string + data: T extends any ? T : T & any + } + + interface PageParam { + pageSize?: number + pageNo?: number + } + + interface Tree { + id: number + name: string + children?: Tree[] | any[] + } +} diff --git a/types/router.d.ts b/types/router.d.ts new file mode 100644 index 0000000..9b08b80 --- /dev/null +++ b/types/router.d.ts @@ -0,0 +1,81 @@ +import type { RouteRecordRaw } from 'vue-router' +import { defineComponent } from 'vue' + +/** +* 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: '/home' 显示高亮的路由路径 + + followAuth: '/home' 跟随哪个路由进行权限过滤 + + canTo: true 设置为true即使hidden为true,也依然可以进行路由跳转(默认 false) + } +**/ +declare module 'vue-router' { + interface RouteMeta extends Record { + hidden?: boolean + alwaysShow?: boolean + title?: string + icon?: string + noCache?: boolean + breadcrumb?: boolean + affix?: boolean + activeMenu?: string + noTagsView?: boolean + followAuth?: string + canTo?: boolean + } +} + +type Component = + | ReturnType + | (() => Promise) + | (() => Promise) + +declare global { + interface AppRouteRecordRaw extends Omit { + name: string + meta: RouteMeta + component?: Component | string + children?: AppRouteRecordRaw[] + props?: Recordable + fullPath?: string + keepAlive?: boolean + } + + interface AppCustomRouteRecordRaw extends Omit { + icon: any + name: string + meta: RouteMeta + component: string + componentName?: string + path: string + redirect: string + children?: AppCustomRouteRecordRaw[] + keepAlive?: boolean + visible?: boolean + parentId?: number + alwaysShow?: boolean + } +} diff --git a/uno.config.ts b/uno.config.ts new file mode 100644 index 0000000..0645fe6 --- /dev/null +++ b/uno.config.ts @@ -0,0 +1,105 @@ +import { defineConfig, toEscapedSelector as e, presetUno } from 'unocss' +import transformerVariantGroup from '@unocss/transformer-variant-group' + +export default defineConfig({ + // ...UnoCSS options + rules: [ + [ + /^custom-hover$/, + ([], { rawSelector }) => { + const selector = e(rawSelector) + return ` +${selector} { + display: flex; + height: 100%; + padding: 1px 10px 0; + cursor: pointer; + align-items: center; + transition: background var(--transition-time-02); +} +/* you can have multiple rules */ +${selector}:hover { + background-color: var(--top-header-hover-color); +} +.dark ${selector}:hover { + background-color: var(--el-bg-color-overlay); +} +` + } + ], + [ + /^layout-border__left$/, + ([], { rawSelector }) => { + const selector = e(rawSelector) + return ` +${selector}:before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 1px; + height: 100%; + background-color: var(--el-border-color); + z-index: 3; +} +` + } + ], + [ + /^layout-border__right$/, + ([], { rawSelector }) => { + const selector = e(rawSelector) + return ` +${selector}:after { + content: ""; + position: absolute; + top: 0; + right: 0; + width: 1px; + height: 100%; + background-color: var(--el-border-color); + z-index: 3; +} +` + } + ], + [ + /^layout-border__top$/, + ([], { rawSelector }) => { + const selector = e(rawSelector) + return ` +${selector}:before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 1px; + background-color: var(--el-border-color); + z-index: 3; +} +` + } + ], + [ + /^layout-border__bottom$/, + ([], { rawSelector }) => { + const selector = e(rawSelector) + return ` +${selector}:after { + content: ""; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 1px; + background-color: var(--el-border-color); + z-index: 3; +} +` + } + ] + ], + presets: [presetUno({ dark: 'class', attributify: false })], + transformers: [transformerVariantGroup()] +}) diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..fe2d713 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,81 @@ +import { resolve } from 'path' +import { loadEnv } from 'vite' +import type { UserConfig, ConfigEnv } from 'vite' +import { createVitePlugins } from './build/vite' +import { include, exclude } from "./build/vite/optimize" +// 当前执行node命令时文件夹的地址(工作目录) +const root = process.cwd() + +// 路径查找 +function pathResolve(dir: string) { + return resolve(root, '.', dir) +} + +// https://vitejs.dev/config/ +export default ({ command, mode }: ConfigEnv): UserConfig => { + let env = {} as any + const isBuild = command === 'build' + if (!isBuild) { + env = loadEnv((process.argv[3] === '--mode' ? process.argv[4] : process.argv[3]), root) + } else { + env = loadEnv(mode, root) + } + return { + base: env.VITE_BASE_PATH, + root: root, + // 服务端渲染 + server: { + // 是否开启 https + https: false, + // 端口号 + port: env.VITE_PORT, + host: "0.0.0.0", + open: env.VITE_OPEN === 'true', + // 本地跨域代理. 目前注释的原因:暂时没有用途,server 端已经支持跨域 + // proxy: { + // ['/admin-api']: { + // target: env.VITE_BASE_URL, + // ws: false, + // changeOrigin: true, + // rewrite: (path) => path.replace(new RegExp(`^/admin-api`), ''), + // }, + // }, + }, + // 项目使用的vite插件。 单独提取到build/vite/plugin中管理 + plugins: createVitePlugins(), + css: { + preprocessorOptions: { + scss: { + additionalData: '@import "./src/styles/variables.scss";', + javascriptEnabled: true + } + } + }, + resolve: { + extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.scss', '.css'], + alias: [ + { + find: 'vue-i18n', + replacement: 'vue-i18n/dist/vue-i18n.cjs.js' + }, + { + find: /\@\//, + replacement: `${pathResolve('src')}/` + } + ] + }, + build: { + minify: 'terser', + outDir: env.VITE_OUT_DIR || 'dist', + sourcemap: env.VITE_SOURCEMAP === 'true' ? 'inline' : false, + // brotliSize: false, + terserOptions: { + compress: { + drop_debugger: env.VITE_DROP_DEBUGGER === 'true', + drop_console: env.VITE_DROP_CONSOLE === 'true' + } + } + }, + optimizeDeps: { include, exclude } + } +}