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..2308eb6 --- /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.development b/.env.development new file mode 100644 index 0000000..78976cd --- /dev/null +++ b/.env.development @@ -0,0 +1,37 @@ +# 开发环境 +NODE_ENV=development + +VITE_DEV=false + +# 请求路径 +VITE_BASE_URL='http://localhost:12080' + +# 上传路径 +VITE_UPLOAD_URL='http://localhost:12080/admin-api/infra/file/upload' + +# 接口前缀 +VITE_API_BASEPATH=/dev-api + +# 接口地址 +VITE_API_URL=/admin-api + +# 打包路径 +VITE_BASE_PATH=/ + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=false + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 输出路径 +VITE_OUT_DIR=dist + +# 自定义接口路径 +VITE_INTERFACE_URL='http://localhost:12080/magic/web/index.html' + +# 积木报表请求路径 +VITE_JMREPORT_BASE_URL='http://localhost:12080' \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..e439126 --- /dev/null +++ b/.env.production @@ -0,0 +1,37 @@ +# 生产环境 +NODE_ENV=test + +VITE_DEV=false + +# 请求路径 +VITE_BASE_URL='http://10.62.193.15:25100/api' + +# 上传路径 +VITE_UPLOAD_URL='http://10.62.193.15:25100/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=dist-test + +# 自定义接口路径 +VITE_INTERFACE_URL='http://dev.ccwin-in.com:25110/magic/web/index.html' + +# 积木报表请求路径 +VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:25110' diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..84edcdf --- /dev/null +++ b/.env.test @@ -0,0 +1,37 @@ +# 生产环境 +NODE_ENV=test + +VITE_DEV=false + +# 请求路径 +VITE_BASE_URL='http://dev.ccwin-in.com:25100/api' + +# 上传路径 +VITE_UPLOAD_URL='http://dev.ccwin-in.com:25100/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=dist-test + +# 自定义接口路径 +VITE_INTERFACE_URL='http://dev.ccwin-in.com:25110/magic/web/index.html' + +# 积木报表请求路径 +VITE_JMREPORT_BASE_URL='http://dev.ccwin-in.com:25110' 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..3e4af63 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,72 @@ +// @ts-check +const { defineConfig } = require('eslint-define-config') +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: { + '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..0f033cc --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local +/dist* +*-lock.* +pnpm-debug +auto-*.d.ts +.idea +.history 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/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..0206710 --- /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..2fe32f5 --- /dev/null +++ b/index.html @@ -0,0 +1,152 @@ + + + + + + + + + + + %VITE_APP_TITLE% + + +
+ +
+
+
+ +
%VITE_APP_TITLE%
+
+
+
+
+
+
+
+
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..cf2eff1 --- /dev/null +++ b/package.json @@ -0,0 +1,134 @@ +{ + "name": "yudao-ui-admin-vue3", + "version": "1.8.2-snapshot", + "description": "基于vue3、vite4、element-plus、typesScript", + "author": "xingyu", + "private": false, + "scripts": { + "dev": "vite", + "test": "vite build --mode test", + "prod": "vite build --mode production", + "preview": "vite preview", + "lint": "eslint --fix --ext .js,.vue src" + }, + "dependencies": { + "@element-plus/icons-vue": "^2.1.0", + "@form-create/designer": "^3.1.3", + "@form-create/element-ui": "^3.1.24", + "@iconify/iconify": "^3.1.1", + "@kjgl77/datav-vue3": "^1.7.1", + "@videojs-player/vue": "^1.0.0", + "@vueuse/core": "^10.4.1", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^5.1.10", + "@zxcvbn-ts/core": "^3.0.4", + "animate.css": "^4.1.1", + "axios": "^1.5.0", + "benz-amr-recorder": "^1.1.5", + "bpmn-js-token-simulation": "^0.10.0", + "camunda-bpmn-moddle": "^7.0.1", + "cropperjs": "^1.6.1", + "crypto-js": "^4.1.1", + "dayjs": "^1.11.10", + "diagram-js": "^12.3.0", + "echarts": "^5.4.3", + "echarts-wordcloud": "^2.1.0", + "element-plus": "2.3.14", + "fast-xml-parser": "^4.3.0", + "highlight.js": "^11.8.0", + "intro.js": "^7.2.0", + "jsencrypt": "^3.3.2", + "lodash-es": "^4.17.21", + "min-dash": "^4.1.1", + "mitt": "^3.0.1", + "nprogress": "^0.2.0", + "pinia": "^2.1.6", + "qrcode": "^1.5.3", + "qs": "^6.11.2", + "sortablejs": "^1.15.0", + "steady-xml": "^0.1.0", + "url": "^0.11.3", + "video.js": "^7.21.5", + "vue": "^3.3.4", + "vue-dompurify-html": "^4.1.4", + "vue-i18n": "^9.4.1", + "vue-router": "^4.2.5", + "vue-types": "^5.1.1", + "vuedraggable": "^4.1.0", + "web-storage-cache": "^1.1.1", + "xml-js": "^1.6.11" + }, + "devDependencies": { + "@commitlint/cli": "^17.7.1", + "@commitlint/config-conventional": "^17.7.0", + "@iconify/json": "^2.2.119", + "@intlify/unplugin-vue-i18n": "^1.2.0", + "@purge-icons/generated": "^0.9.0", + "@types/intro.js": "^5.1.1", + "@types/lodash-es": "^4.17.9", + "@types/node": "^20.6.0", + "@types/nprogress": "^0.2.0", + "@types/qrcode": "^1.5.2", + "@types/qs": "^6.9.8", + "@typescript-eslint/eslint-plugin": "^6.7.2", + "@typescript-eslint/parser": "^6.7.2", + "@unocss/eslint-config": "^0.56.1", + "@unocss/transformer-variant-group": "^0.56.1", + "@vitejs/plugin-legacy": "^4.1.1", + "@vitejs/plugin-vue": "^4.3.4", + "@vitejs/plugin-vue-jsx": "^3.0.2", + "@vue-macros/volar": "^0.14.3", + "autoprefixer": "^10.4.16", + "bpmn-js": "8.9.0", + "bpmn-js-properties-panel": "0.46.0", + "consola": "^3.2.3", + "eslint": "^8.49.0", + "eslint-config-prettier": "^9.0.0", + "eslint-define-config": "^1.23.0", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-vue": "^9.17.0", + "lint-staged": "^14.0.1", + "postcss": "^8.4.30", + "postcss-html": "^1.5.0", + "postcss-scss": "^4.0.8", + "prettier": "^3.0.3", + "rimraf": "^5.0.1", + "rollup": "^3.29.2", + "sass": "^1.68.0", + "stylelint": "^15.10.3", + "stylelint-config-html": "^1.1.0", + "stylelint-config-recommended": "^13.0.0", + "stylelint-config-standard": "^34.0.0", + "stylelint-order": "^6.0.3", + "terser": "^5.20.0", + "typescript": "5.2.2", + "unocss": "^0.56.1", + "unplugin-auto-import": "^0.16.6", + "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.6.4", + "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.3.1", + "vue-eslint-parser": "^9.3.1", + "vue-tsc": "^1.8.13" + }, + "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/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/home/index.ts b/src/api/home/index.ts new file mode 100644 index 0000000..aa8cb13 --- /dev/null +++ b/src/api/home/index.ts @@ -0,0 +1,22 @@ +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` }) +} + 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..5ef59f3 --- /dev/null +++ b/src/api/infra/config/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +export interface ConfigVO { + id: number | undefined + category: string + name: string + key: string + value: string + type: number + visible: boolean + remark: string + createTime: Date +} + +// 查询参数列表 +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 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..444f0f2 --- /dev/null +++ b/src/api/login/index.ts @@ -0,0 +1,72 @@ +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 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 }) +} + +// 滑动或者点选验证 +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 + }}) +} \ No newline at end of file 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/index.ts b/src/api/mes/index.ts new file mode 100644 index 0000000..e69de29 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..87e7dce --- /dev/null +++ b/src/api/system/dict/dict.data.ts @@ -0,0 +1,49 @@ +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 getDictData = (id: number) => { + 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..ed2969f --- /dev/null +++ b/src/api/system/dict/dict.type.ts @@ -0,0 +1,44 @@ +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 }) +} 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..fb7ce5e --- /dev/null +++ b/src/api/system/mail/template/index.ts @@ -0,0 +1,50 @@ +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 }) +} 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/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..cd0e122 --- /dev/null +++ b/src/api/system/notify/template/index.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +export interface NotifyTemplateVO { + id?: number + name: string + nickname: string + code: string + content: string + type: number + params: string + status: number + remark: string +} + +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 }) +} 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/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..93636ff --- /dev/null +++ b/src/api/system/role/index.ts @@ -0,0 +1,61 @@ +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 + }) +} 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..35cb489 --- /dev/null +++ b/src/api/system/sms/smsTemplate/index.ts @@ -0,0 +1,60 @@ +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 +} + +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 }) +} diff --git a/src/api/system/sysconfig/index.ts b/src/api/system/sysconfig/index.ts new file mode 100644 index 0000000..148748e --- /dev/null +++ b/src/api/system/sysconfig/index.ts @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +// 查询参数列表 +export function listConfig(query) { + return request({ + url: '/system/config/list', + method: 'get', + params: query + }) +} + +// 查询参数详细 +export function getConfig(configId) { + return request({ + url: '/system/config/' + configId, + method: 'get' + }) +} + +// 根据参数键名查询参数值 +export function getConfigKey(configKey) { + return request({ + url: '/system/config/configKey/' + configKey, + method: 'get' + }) +} + +// 新增参数配置 +export function addConfig(data) { + return request({ + url: '/system/config', + method: 'post', + data: data + }) +} + +// 修改参数配置 +export function updateConfig(data) { + return request({ + url: '/system/config', + method: 'put', + data: data + }) +} + +// 删除参数配置 +export function delConfig(configId) { + return request({ + url: '/system/config/' + configId, + method: 'delete' + }) +} + +// 刷新参数缓存 +export function refreshCache() { + return request({ + url: '/system/config/refreshCache', + method: 'delete' + }) +} \ 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..176c375 --- /dev/null +++ b/src/api/system/tenant/index.ts @@ -0,0 +1,62 @@ +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) => { + 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..6224f0e --- /dev/null +++ b/src/api/system/user/index.ts @@ -0,0 +1,76 @@ +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 +} + +// 查询用户管理列表 +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 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' }) +} 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/areabasic/index.ts b/src/api/wms/areabasic/index.ts new file mode 100644 index 0000000..b0e97ff --- /dev/null +++ b/src/api/wms/areabasic/index.ts @@ -0,0 +1,63 @@ +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 getAreaList = async (params) => { + return await request.get({ url: `/wms/areabasic/list`, 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' }) +} \ 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..9e4d26d --- /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/backflush-request-detailb/senior', data }) + } else { + return await request.get({ url: `/wms/backflush-request-detailb/page`, params }) + } +} + +// 查询制品收货申请子详情 +export const getBackflushRequestDetailb = async (id: number) => { + return await request.get({ url: `/wms/backflush-request-detailb/get?id=` + id }) +} + +// 新增制品收货申请子 +export const createBackflushRequestDetailb = async (data: BackflushRequestDetailbVO) => { + return await request.post({ url: `/wms/backflush-request-detailb/create`, data }) +} + +// 修改制品收货申请子 +export const updateBackflushRequestDetailb = async (data: BackflushRequestDetailbVO) => { + return await request.put({ url: `/wms/backflush-request-detailb/update`, data }) +} + +// 删除制品收货申请子 +export const deleteBackflushRequestDetailb = async (id: number) => { + return await request.delete({ url: `/wms/backflush-request-detailb/delete?id=` + id }) +} + +// 导出制品收货申请子 Excel +export const exportBackflushRequestDetailb = async (params) => { + return await request.download({ url: `/wms/backflush-request-detailb/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/backflush-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..9040f08 --- /dev/null +++ b/src/api/wms/balance/index.ts @@ -0,0 +1,114 @@ +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 getBalancePageReturn= 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/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 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) => { + return await request.download({ url: `/wms/balance/export-excel`, 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}) + } +} diff --git a/src/api/wms/barbasic/index.ts b/src/api/wms/barbasic/index.ts new file mode 100644 index 0000000..e5a2379 --- /dev/null +++ b/src/api/wms/barbasic/index.ts @@ -0,0 +1,56 @@ +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) => { + return await request.download({ url: `/wms/barbasic/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/barbasic/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/barcode/index.ts b/src/api/wms/barcode/index.ts new file mode 100644 index 0000000..8073903 --- /dev/null +++ b/src/api/wms/barcode/index.ts @@ -0,0 +1,59 @@ +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) => { + return await request.download({ url: `/label/barcode/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/label/barcode/get-import-template' }) +} \ No newline at end of file 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..0a7a861 --- /dev/null +++ b/src/api/wms/bomDismantle/index.ts @@ -0,0 +1,26 @@ +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 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/businesstype/index.ts b/src/api/wms/businesstype/index.ts new file mode 100644 index 0000000..58d9723 --- /dev/null +++ b/src/api/wms/businesstype/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface BusinesstypeVO { + code: string + name: string + description: string + itemTypes: string + itemStatuses: string + outLocationTypes: string + inLocationTypes: 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' }) +} \ No newline at end of file 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..7fa35ac --- /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 + fromLocationTypes: string + toLocationTypes: 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/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..0c9c565 --- /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 + fromLocationTypes: string + toLocationTypes: 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/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..82fbc55 --- /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 + fromLocationTypes: string + toLocationTypes: 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..4e6849c --- /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 + fromLocationTypes: string + toLocationTypes: 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..48ce991 --- /dev/null +++ b/src/api/wms/countJobMain/index.ts @@ -0,0 +1,87 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + 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.download({ url: '/wms/count-job-main/close?id=' + id }) +} 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..b62d130 --- /dev/null +++ b/src/api/wms/countPlanMain/index.ts @@ -0,0 +1,104 @@ +import request from '@/config/axios' + +export interface CountPlanMainVO { + type: string + crontab: string + dimension: string + limitedValue: number + ignoreListOfItem: string + ignoreListOfLocation: string + scopeList: 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) => { + 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 }) +} \ No newline at end of file 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..e4b43a0 --- /dev/null +++ b/src/api/wms/countRecordMain/index.ts @@ -0,0 +1,70 @@ +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) => { + 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}) +} \ No newline at end of file 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..cf6c522 --- /dev/null +++ b/src/api/wms/countRequestMain/index.ts @@ -0,0 +1,112 @@ +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) => { + 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 }) +} \ No newline at end of file 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..c07af7f --- /dev/null +++ b/src/api/wms/countadjustRecordMain/index.ts @@ -0,0 +1,63 @@ +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) => { + 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' }) +} \ No newline at end of file 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..57ae5ee --- /dev/null +++ b/src/api/wms/countadjustRequestMain/index.ts @@ -0,0 +1,93 @@ +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) => { + 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..7cc1830 --- /dev/null +++ b/src/api/wms/customer/index.ts @@ -0,0 +1,71 @@ +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' }) +} diff --git a/src/api/wms/customerdock/index.ts b/src/api/wms/customerdock/index.ts new file mode 100644 index 0000000..5a5d1db --- /dev/null +++ b/src/api/wms/customerdock/index.ts @@ -0,0 +1,64 @@ +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 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' }) +} diff --git a/src/api/wms/customeritem/index.ts b/src/api/wms/customeritem/index.ts new file mode 100644 index 0000000..b906a86 --- /dev/null +++ b/src/api/wms/customeritem/index.ts @@ -0,0 +1,64 @@ +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' }) +} \ No newline at end of file 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..f759818 --- /dev/null +++ b/src/api/wms/customerreceiptRecordMain/index.ts @@ -0,0 +1,74 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + 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..0704cd0 --- /dev/null +++ b/src/api/wms/customerreceiptRequestMain/index.ts @@ -0,0 +1,98 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + 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..ae00479 --- /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 + fromLocationTypes: string + toLocationTypes: 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..d714111 --- /dev/null +++ b/src/api/wms/customerreturnRecordMain/index.ts @@ -0,0 +1,76 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + 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' }) +} \ 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..6f42a56 --- /dev/null +++ b/src/api/wms/customerreturnRequestMain/index.ts @@ -0,0 +1,110 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: 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 }) +} \ No newline at end of file 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..34fcd2e --- /dev/null +++ b/src/api/wms/customersettleRecordMain/index.ts @@ -0,0 +1,67 @@ +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 + fromLocationTypes: 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) => { + 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' }) +} \ No newline at end of file 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..5b9a042 --- /dev/null +++ b/src/api/wms/customersettleRequestMain/index.ts @@ -0,0 +1,96 @@ +import request from '@/config/axios' + +export interface CustomersettleRequestMainVO { + deliverRecordNumber: string + deliverPlanNumber: string + customerCode: string + fromWarehouseCode: string + fromLocationTypes: 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) => { + 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..a539279 --- /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 + fromLocationTypes: string + toLocationTypes: 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..33aeffd --- /dev/null +++ b/src/api/wms/deliverPlanDetail/index.ts @@ -0,0 +1,53 @@ +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) => { + 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..ea2a799 --- /dev/null +++ b/src/api/wms/deliverPlanMain/index.ts @@ -0,0 +1,93 @@ +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) => { + 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 }) +} \ No newline at end of file diff --git a/src/api/wms/deliverRecordDetail/index.ts b/src/api/wms/deliverRecordDetail/index.ts new file mode 100644 index 0000000..2c6eaa2 --- /dev/null +++ b/src/api/wms/deliverRecordDetail/index.ts @@ -0,0 +1,76 @@ +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 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' }) +} \ 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..52c36d0 --- /dev/null +++ b/src/api/wms/deliverRecordMain/index.ts @@ -0,0 +1,76 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toLocationTypes: 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) => { + 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' }) +} \ No newline at end of file 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..47ae568 --- /dev/null +++ b/src/api/wms/deliverRequestMain/index.ts @@ -0,0 +1,103 @@ +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 + fromLocationTypes: 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 + toLocationTypes: 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) => { + 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 }) +} \ No newline at end of file diff --git a/src/api/wms/demandforecastingDetail/index.ts b/src/api/wms/demandforecastingDetail/index.ts new file mode 100644 index 0000000..bfed743 --- /dev/null +++ b/src/api/wms/demandforecastingDetail/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +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 +} + +// 查询要货预测子列表 +export const getDemandforecastingDetailPage = async (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 }) +} diff --git a/src/api/wms/demandforecastingMain/index.ts b/src/api/wms/demandforecastingMain/index.ts new file mode 100644 index 0000000..16cda3e --- /dev/null +++ b/src/api/wms/demandforecastingMain/index.ts @@ -0,0 +1,59 @@ +import request from '@/config/axios' + +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 }) +} + +// 导出要货预测主 Excel +export const exportDemandforecastingMain = async (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' }) +} \ No newline at end of file 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..2c4d729 --- /dev/null +++ b/src/api/wms/expectin/index.ts @@ -0,0 +1,55 @@ +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 }) +} + +// 导出预计入库存 Excel +export const exportExpectin = async (params) => { + return await request.download({ url: `/wms/expectin/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/expectin/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/expectout/index.ts b/src/api/wms/expectout/index.ts new file mode 100644 index 0000000..0ebab0b --- /dev/null +++ b/src/api/wms/expectout/index.ts @@ -0,0 +1,56 @@ +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 }) +} + +// 导出预计出库存 Excel +export const exportExpectout = async (params) => { + return await request.download({ url: `/wms/expectout/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/expectout/get-import-template' }) +} \ No newline at end of file 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..03bf0b7 --- /dev/null +++ b/src/api/wms/inspectJobMain/index.ts @@ -0,0 +1,96 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + 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..2e1d233 --- /dev/null +++ b/src/api/wms/inspectRecordMain/index.ts @@ -0,0 +1,82 @@ +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 + fromLocationTypes: string +} + +// 查询检验记录主列表 +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) => { + 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' }) +} \ 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..d9b833a --- /dev/null +++ b/src/api/wms/inspectRequestMain/index.ts @@ -0,0 +1,106 @@ +import request from '@/config/axios' + +export interface InspectRequestMainVO { + purchaseReceiptRecordNumber: string + supplierCode: string + number: string + businessType: string + fromWarehouseCode: string + fromAreaCodes: string + fromLocationTypes: 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) => { + 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/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..407132f --- /dev/null +++ b/src/api/wms/inventorychangeRecordMain/index.ts @@ -0,0 +1,62 @@ +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) => { + 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' }) +} \ No newline at end of file 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..a046201 --- /dev/null +++ b/src/api/wms/inventorychangeRequestMain/index.ts @@ -0,0 +1,91 @@ +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) => { + 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 }) +} \ No newline at end of file diff --git a/src/api/wms/inventoryinitRecordDetail/index.ts b/src/api/wms/inventoryinitRecordDetail/index.ts new file mode 100644 index 0000000..5d16c26 --- /dev/null +++ b/src/api/wms/inventoryinitRecordDetail/index.ts @@ -0,0 +1,75 @@ +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 + stdPackQty: number + stdPackUnit: 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' }) +} \ 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..70a7d11 --- /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 + stdPackQty: number + stdPackUnit: 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..c683800 --- /dev/null +++ b/src/api/wms/inventorymoveJobMain/index.ts @@ -0,0 +1,103 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + 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}) +} \ No newline at end of file diff --git a/src/api/wms/inventorymoveRecordDetail/index.ts b/src/api/wms/inventorymoveRecordDetail/index.ts new file mode 100644 index 0000000..4a3928c --- /dev/null +++ b/src/api/wms/inventorymoveRecordDetail/index.ts @@ -0,0 +1,76 @@ +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' }) +} \ No newline at end of file diff --git a/src/api/wms/inventorymoveRecordMain/index.ts b/src/api/wms/inventorymoveRecordMain/index.ts new file mode 100644 index 0000000..e6c017f --- /dev/null +++ b/src/api/wms/inventorymoveRecordMain/index.ts @@ -0,0 +1,69 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: 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/create`, 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) => { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/inventorymoveRequestDetail/index.ts b/src/api/wms/inventorymoveRequestDetail/index.ts new file mode 100644 index 0000000..ad896ce --- /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' }) +} \ No newline at end of file diff --git a/src/api/wms/inventorymoveRequestMain/index.ts b/src/api/wms/inventorymoveRequestMain/index.ts new file mode 100644 index 0000000..e2dde21 --- /dev/null +++ b/src/api/wms/inventorymoveRequestMain/index.ts @@ -0,0 +1,97 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: 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) => { + 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 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 }) +} \ 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..1d9974a --- /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 + stdPackQty: number + stdPackUnit: 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..0c4f542 --- /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 + fromLocationTypes: string + toLocationTypes: 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.get({ url: `/wms/issue-job-main/accept?id=` + id }) +} + +// 放弃发料任务 +export const abandonIssueMain = async (id) => { + return await request.get({ url: `/wms/issue-job-main/abandon?id=` + id }) +} + +// 关闭发料任务 +export const closeIssueMain = async (id) => { + return await request.get({ 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..3d5a553 --- /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 + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: 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..11bec6a --- /dev/null +++ b/src/api/wms/issueRequestMain/index.ts @@ -0,0 +1,103 @@ +import request from '@/config/axios' + +export interface IssueRequestMainVO { + workshopCode: string + fromWarehouseCode: string + toWarehouseCode: string + fromLocationTypes: string + toLocationTypes: 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 }) +} + +// 修改发料申请主 +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 }) +} + +// 导出发料申请主 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/itembasic/index.ts b/src/api/wms/itembasic/index.ts new file mode 100644 index 0000000..1575fd5 --- /dev/null +++ b/src/api/wms/itembasic/index.ts @@ -0,0 +1,80 @@ +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) { + const data = {...params} + return 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' diff --git a/src/api/wms/itempackaging/index.ts b/src/api/wms/itempackaging/index.ts new file mode 100644 index 0000000..d7ab494 --- /dev/null +++ b/src/api/wms/itempackaging/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface ItempackagingVO { + itemCode: string + uom: string + stdPackUnit: string + stdPackQty: 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 request.post({ url: '/wms/itempackaging/senior', data }) + } else { + return await request.get({ url: `/wms/itempackaging/page`, params }) + } +} + +// 查询物品包装信息 详情 +export const getItempackaging = async (id: number) => { + return await request.get({ url: `/wms/itempackaging/get?id=` + id }) +} + +// 新增物品包装信息 +export const createItempackaging = async (data: ItempackagingVO) => { + return await request.post({ url: `/wms/itempackaging/create`, data }) +} + +// 修改物品包装信息 +export const updateItempackaging = async (data: ItempackagingVO) => { + return await request.put({ url: `/wms/itempackaging/update`, data }) +} + +// 删除物品包装信息 +export const deleteItempackaging = async (id: number) => { + return await request.delete({ url: `/wms/itempackaging/delete?id=` + id }) +} + +// 导出物品包装信息 Excel +export const exportItempackaging = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/itempackaging/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/itempackaging/export-excel`, params }) + } +} +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/itempackaging/get-import-template' }) +} 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..2165af0 --- /dev/null +++ b/src/api/wms/location/index.ts @@ -0,0 +1,80 @@ +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 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 }) +} + +// 导出库位 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) => { + return request.get({ url: `/wms/location/pageBusinessTypeToLocation`, 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..40df8ca --- /dev/null +++ b/src/api/wms/locationcapacity/index.ts @@ -0,0 +1,51 @@ +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) => { + return await request.download({ url: `/wms/locationcapacity/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/locationcapacity/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/locationgroup/index.ts b/src/api/wms/locationgroup/index.ts new file mode 100644 index 0000000..3aa976b --- /dev/null +++ b/src/api/wms/locationgroup/index.ts @@ -0,0 +1,63 @@ +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 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' }) +} \ 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..f93eabe --- /dev/null +++ b/src/api/wms/offlinesettlementRecordMain/index.ts @@ -0,0 +1,62 @@ +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) => { + 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..ccdeb8d --- /dev/null +++ b/src/api/wms/offlinesettlementRequestMain/index.ts @@ -0,0 +1,62 @@ +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) => { + 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..bacbd72 --- /dev/null +++ b/src/api/wms/onlinesettlementRecordMain/index.ts @@ -0,0 +1,62 @@ +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) => { + 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..1190787 --- /dev/null +++ b/src/api/wms/onlinesettlementRequestMain/index.ts @@ -0,0 +1,62 @@ +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) => { + 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..64ccb44 --- /dev/null +++ b/src/api/wms/owner/index.ts @@ -0,0 +1,71 @@ +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' }) +} \ 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..9de36a2 --- /dev/null +++ b/src/api/wms/package/index.ts @@ -0,0 +1,96 @@ +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 + stdPackQty: number + stdPackUnit: 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.download({ 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 }) +} 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/packageoverDetail/index.ts b/src/api/wms/packageoverDetail/index.ts new file mode 100644 index 0000000..52a9f97 --- /dev/null +++ b/src/api/wms/packageoverDetail/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-detail/senior', data }) + } else { + return await request.get({ url: `/wms/packageover-detail/page`, params }) + } +} + +// 查询翻包记录子详情 +export const getPackageoverDetail = async (id: number) => { + return await request.get({ url: '/wms/packageover-detail/get?id=' + id }) +} + +// 新增翻包记录子 +export const createPackageoverDetail = async (data: PackageoverDetailVO) => { + return await request.post({ url: '/wms/packageover-detail/create', data }) +} + +// 修改翻包记录子 +export const updatePackageoverDetail = async (data: PackageoverDetailVO) => { + return await request.put({ url: '/wms/packageover-detail/update', data }) +} + +// 删除翻包记录子 +export const deletePackageoverDetail = async (id: number) => { + return await request.delete({ url: '/wms/packageover-detail/delete?id=' + id }) +} + +// 导出翻包记录子 Excel +export const exportPackageoverDetailApi = async (params) => { + return await request.download({ url: '/wms/packageover-detail/export-excel', params }) +} diff --git a/src/api/wms/packageoverMain/index.ts b/src/api/wms/packageoverMain/index.ts new file mode 100644 index 0000000..2950c3b --- /dev/null +++ b/src/api/wms/packageoverMain/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface PackageoverMainVO { + 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 getPackageoverMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/packageover-main/senior', data }) + } else { + return await request.get({ url: `/wms/packageover-main/page`, params }) + } +} + +// 查询翻包记录主详情 +export const getPackageoverMain = async (id: number) => { + return await request.get({ url: '/wms/packageover-main/get?id=' + id }) +} + +// 新增翻包记录主 +export const createPackageoverMain = async (data: PackageoverMainVO) => { + return await request.post({ url: '/wms/packageover-main/create', data }) +} + +// 修改翻包记录主 +export const updatePackageoverMain = async (data: PackageoverMainVO) => { + return await request.put({ url: '/wms/packageover-main/update', data }) +} + +// 删除翻包记录主 +export const deletePackageoverMain = async (id: number) => { + return await request.delete({ url: '/wms/packageover-main/delete?id=' + id }) +} + +// 导出翻包记录主 Excel +export const exportPackageoverMainApi = async (params) => { + if (params.isSearch) { + const data = {...params} + return await request.downloadPost({ url: `/wms/packageover-main/export-excel-senior`, data }) + } else { + return await request.download({ url: `/wms/packageover-main/export-excel`, params }) + } +} 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/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..1528337 --- /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..3f52ed8 --- /dev/null +++ b/src/api/wms/pickJobMain/index.ts @@ -0,0 +1,81 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/pickRecordDetail/index.ts b/src/api/wms/pickRecordDetail/index.ts new file mode 100644 index 0000000..f18fb3f --- /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..97ea9ce --- /dev/null +++ b/src/api/wms/pickRecordMain/index.ts @@ -0,0 +1,68 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: 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) => { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/pickRequestDetail/index.ts b/src/api/wms/pickRequestDetail/index.ts new file mode 100644 index 0000000..143edf1 --- /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..5344d4d --- /dev/null +++ b/src/api/wms/pickRequestMain/index.ts @@ -0,0 +1,66 @@ +import request from '@/config/axios' + +export interface PickRequestMainVO { + fromWarehouseCode: string + fromLocationTypes: 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 + toLocationTypes: 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) => { + 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/preparetoissueDetail/index.ts b/src/api/wms/preparetoissueDetail/index.ts new file mode 100644 index 0000000..44655ff --- /dev/null +++ b/src/api/wms/preparetoissueDetail/index.ts @@ -0,0 +1,47 @@ +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) => { + 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..b86b6fc --- /dev/null +++ b/src/api/wms/preparetoissueMain/index.ts @@ -0,0 +1,109 @@ +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 }) +} diff --git a/src/api/wms/process/index.ts b/src/api/wms/process/index.ts new file mode 100644 index 0000000..c89f7e1 --- /dev/null +++ b/src/api/wms/process/index.ts @@ -0,0 +1,60 @@ +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' }) +} \ No newline at end of file diff --git a/src/api/wms/productdismantleJobDetail/index.ts b/src/api/wms/productdismantleJobDetail/index.ts new file mode 100644 index 0000000..8f9289f --- /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 + stdPackQty: number + stdPackUnit: 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..353653c --- /dev/null +++ b/src/api/wms/productdismantleJobMain/index.ts @@ -0,0 +1,82 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + 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..b5de742 --- /dev/null +++ b/src/api/wms/productdismantleRecordMain/index.ts @@ -0,0 +1,67 @@ +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 + fromLocationTypes: 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) => { + 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..6e079cd --- /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 + stdPackQty: number + stdPackUnit: 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..1319d18 --- /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 + fromLocationTypes: 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..313ecbb --- /dev/null +++ b/src/api/wms/productionDetail/index.ts @@ -0,0 +1,47 @@ +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) => { + 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..9b134c1 --- /dev/null +++ b/src/api/wms/productionMain/index.ts @@ -0,0 +1,111 @@ +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) => { + 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 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) => { + 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 }) +} + + + + + + + diff --git a/src/api/wms/productionline/index.ts b/src/api/wms/productionline/index.ts new file mode 100644 index 0000000..050c8a0 --- /dev/null +++ b/src/api/wms/productionline/index.ts @@ -0,0 +1,61 @@ +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' }) +} \ 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..6b109f4 --- /dev/null +++ b/src/api/wms/productionlineitem/index.ts @@ -0,0 +1,69 @@ +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 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' }) +} 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..471ddba --- /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 + fromLocationTypes: string + toLocationTypes: 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.get({ url: `/wms/productionreceipt-job-main/accept?id=` + id }) +} + +// 放弃发料任务 +export const abandonIssueMain = async (id) => { + return await request.get({ url: `/wms/productionreceipt-job-main/abandon?id=` + id }) +} + +// 关闭发料任务 +export const closeIssueMain = async (id) => { + return await request.get({ 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..ebc176e --- /dev/null +++ b/src/api/wms/productionreceiptRecordMain/index.ts @@ -0,0 +1,70 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: 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) => { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/productionreturnJobDetail/index.ts b/src/api/wms/productionreturnJobDetail/index.ts new file mode 100644 index 0000000..f2bd6d5 --- /dev/null +++ b/src/api/wms/productionreturnJobDetail/index.ts @@ -0,0 +1,66 @@ +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 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..79c2f96 --- /dev/null +++ b/src/api/wms/productionreturnJobMain/index.ts @@ -0,0 +1,107 @@ +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 + fromLocationTypes: string + toLocationTypes: 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 }) + } +} + +// 下载用户导入模板 +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..f9ffcd4 --- /dev/null +++ b/src/api/wms/productionreturnRecordDetail/index.ts @@ -0,0 +1,76 @@ +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 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..2615d1a --- /dev/null +++ b/src/api/wms/productionreturnRecordMain/index.ts @@ -0,0 +1,69 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: 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) => { + return await request.download({ url: `/wms/productionreturn-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/productionreturn-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/productionreturnRequestDetail/index.ts b/src/api/wms/productionreturnRequestDetail/index.ts new file mode 100644 index 0000000..0b7bdd7 --- /dev/null +++ b/src/api/wms/productionreturnRequestDetail/index.ts @@ -0,0 +1,72 @@ +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) => { + 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..66dd592 --- /dev/null +++ b/src/api/wms/productionreturnRequestDetailNo/index.ts @@ -0,0 +1,67 @@ +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) => { + 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..e6e47d9 --- /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 + fromLocationTypes: 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 + toLocationTypes: 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..8f369cd --- /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 + fromLocationTypes: 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 + toLocationTypes: 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' }) +} + +// 关闭 +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/productputawayJobDetail/index.ts b/src/api/wms/productputawayJobDetail/index.ts new file mode 100644 index 0000000..0265d3f --- /dev/null +++ b/src/api/wms/productputawayJobDetail/index.ts @@ -0,0 +1,66 @@ +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) => { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/productputawayJobMain/index.ts b/src/api/wms/productputawayJobMain/index.ts new file mode 100644 index 0000000..c70270a --- /dev/null +++ b/src/api/wms/productputawayJobMain/index.ts @@ -0,0 +1,107 @@ +import request from '@/config/axios' + +export interface ProductputawayJobMainVO { + requestNumber: string + supplierCode: string + fromWarehouseCode: string + toWarehouseCode: string + fromAreaCodes: string + toAreaCodes: string + fromLocationTypes: string + toLocationTypes: 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) => { + 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) => { + 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..2ab8e2d --- /dev/null +++ b/src/api/wms/productputawayRecordDetail/index.ts @@ -0,0 +1,76 @@ +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) => { + if (params.isSearch) { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/productputawayRecordMain/index.ts b/src/api/wms/productputawayRecordMain/index.ts new file mode 100644 index 0000000..ea3fcb6 --- /dev/null +++ b/src/api/wms/productputawayRecordMain/index.ts @@ -0,0 +1,70 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: string + toAreaCodes: string + ruleUserId: number + available: string +} + +// 查询制品上架记录主列表 +export const getProductputawayRecordMainPage = async (params) => { + 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) => { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/productputawayRequestDetail/index.ts b/src/api/wms/productputawayRequestDetail/index.ts new file mode 100644 index 0000000..0f3a061 --- /dev/null +++ b/src/api/wms/productputawayRequestDetail/index.ts @@ -0,0 +1,67 @@ +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) => { + 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..72640c6 --- /dev/null +++ b/src/api/wms/productputawayRequestMain/index.ts @@ -0,0 +1,104 @@ +import request from '@/config/axios' + +export interface ProductputawayRequestMainVO { + id: number + supplierCode: string + fromWarehouseCode: string + toWarehouseCode: string + fromLocationTypes: string + toLocationTypes: 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) => { + 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) => { + if (params.isSearch) { + 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 }) +} \ No newline at end of file diff --git a/src/api/wms/productreceiptJobDetail/index.ts b/src/api/wms/productreceiptJobDetail/index.ts new file mode 100644 index 0000000..5b864f7 --- /dev/null +++ b/src/api/wms/productreceiptJobDetail/index.ts @@ -0,0 +1,71 @@ +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 + stdPackQty: number + stdPackUnit: 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) => { + 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..b22dae6 --- /dev/null +++ b/src/api/wms/productreceiptJobMain/index.ts @@ -0,0 +1,109 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + 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) => { + 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}) +} \ No newline at end of file diff --git a/src/api/wms/productreceiptRecordDetail/index.ts b/src/api/wms/productreceiptRecordDetail/index.ts new file mode 100644 index 0000000..766ae08 --- /dev/null +++ b/src/api/wms/productreceiptRecordDetail/index.ts @@ -0,0 +1,76 @@ +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 + stdPackQty: number + stdPackUnit: 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) => { + 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..acd8667 --- /dev/null +++ b/src/api/wms/productreceiptRecordMain/index.ts @@ -0,0 +1,69 @@ +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 + toLocationTypes: string + toAreaCodes: string + available: string +} + +// 查询制品收货记录主列表 +export const getProductreceiptRecordMainPage = async (params) => { + 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) => { + 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' }) +} \ 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..6f11ce7 --- /dev/null +++ b/src/api/wms/productreceiptRequestDetail/index.ts @@ -0,0 +1,77 @@ +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 + stdPackQty: number + stdPackUnit: 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) => { + 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..3934a81 --- /dev/null +++ b/src/api/wms/productreceiptRequestMain/index.ts @@ -0,0 +1,102 @@ +import request from '@/config/axios' + +export interface ProductreceiptRequestMainVO { + productionPlanNumber: string + workshopCode: string + team: string + shift: string + toWarehouseCode: string + toLocationTypes: 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) => { + 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) => { + 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 }) +} \ No newline at end of file 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..6f3e66a --- /dev/null +++ b/src/api/wms/productrepairRecordMain/index.ts @@ -0,0 +1,67 @@ +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 + fromLocationTypes: 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) => { + 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' }) +} \ No newline at end of file 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..17eb6d6 --- /dev/null +++ b/src/api/wms/productrepairRequestMain/index.ts @@ -0,0 +1,101 @@ +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 + fromLocationTypes: 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) => { + 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..49f7758 --- /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 + fromLocationTypes: string + toLocationTypes: 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..7d415ea --- /dev/null +++ b/src/api/wms/productscrapRecordMain/index.ts @@ -0,0 +1,66 @@ +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 + fromLocationTypes: 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) => { + 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' }) +} \ 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..3a468e4 --- /dev/null +++ b/src/api/wms/productscrapRequestMain/index.ts @@ -0,0 +1,98 @@ +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 + fromLocationTypes: 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) => { + 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 }) +} 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..bf16cec --- /dev/null +++ b/src/api/wms/purchaseDetail/index.ts @@ -0,0 +1,72 @@ +import request from '@/config/axios' + +export interface PurchaseDetailVO { + lineNumber: string + erpLocationCode: string + projectCode: string + stdPackQty: number + stdPackUnit: 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 +} + +// 查询采购订单子列表 +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 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' }) +} \ No newline at end of file diff --git a/src/api/wms/purchaseMain/index.ts b/src/api/wms/purchaseMain/index.ts new file mode 100644 index 0000000..a833a54 --- /dev/null +++ b/src/api/wms/purchaseMain/index.ts @@ -0,0 +1,81 @@ +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) => { + 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/purchasePlanDetail/index.ts b/src/api/wms/purchasePlanDetail/index.ts new file mode 100644 index 0000000..3c1cb27 --- /dev/null +++ b/src/api/wms/purchasePlanDetail/index.ts @@ -0,0 +1,52 @@ +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 +} + +// 查询要货计划子列表 +export const getPurchasePlanDetailPage = async (params) => { + return await request.get({ url: `/wms/purchase-plan-detail/page`, 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 }) +} diff --git a/src/api/wms/purchasePlanMain/index.ts b/src/api/wms/purchasePlanMain/index.ts new file mode 100644 index 0000000..df18a82 --- /dev/null +++ b/src/api/wms/purchasePlanMain/index.ts @@ -0,0 +1,87 @@ +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) => { + 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' }) +} 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..392f873 --- /dev/null +++ b/src/api/wms/purchaseclaimRequestMain/index.ts @@ -0,0 +1,86 @@ +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) => { + 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..cf24386 --- /dev/null +++ b/src/api/wms/purchaseprice/index.ts @@ -0,0 +1,58 @@ +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 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 }) + } +} + +// 下载用户导入模板 +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..6201fbe --- /dev/null +++ b/src/api/wms/purchasereceiptJobDetail/index.ts @@ -0,0 +1,75 @@ +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 + stdPackQty: number + stdPackUnit: 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 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' }) +} \ 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..3e2f9a2 --- /dev/null +++ b/src/api/wms/purchasereceiptJobMain/index.ts @@ -0,0 +1,99 @@ +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 + fromLocationTypes: string + toLocationTypes: 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 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 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 }) +} diff --git a/src/api/wms/purchasereceiptRecordDetail/index.ts b/src/api/wms/purchasereceiptRecordDetail/index.ts new file mode 100644 index 0000000..b326094 --- /dev/null +++ b/src/api/wms/purchasereceiptRecordDetail/index.ts @@ -0,0 +1,103 @@ +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 + stdPackQty: number + stdPackUnit: 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 +} + +// 查询采购收货记录子列表 +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 getPurchasereceiptRecordDetailList = async (params) => { + return await request.get({ url: `/wms/purchasereceipt-record-detail/list`, 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 }) + } +} \ No newline at end of file diff --git a/src/api/wms/purchasereceiptRecordMain/index.ts b/src/api/wms/purchasereceiptRecordMain/index.ts new file mode 100644 index 0000000..7c61327 --- /dev/null +++ b/src/api/wms/purchasereceiptRecordMain/index.ts @@ -0,0 +1,80 @@ +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 + fromLocationTypes: string + toLocationTypes: string + fromAreaCodes: string + toAreaCodes: string + available: 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 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 }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereceipt-record-main/get-import-template' }) +} \ 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..20f40f6 --- /dev/null +++ b/src/api/wms/purchasereceiptRequestDetail/index.ts @@ -0,0 +1,78 @@ +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 + stdPackQty: number + stdPackUnit: 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 +} + +// 查询采购收货申请子列表 +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 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' }) +} \ 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..4aa84e5 --- /dev/null +++ b/src/api/wms/purchasereceiptRequestMain/index.ts @@ -0,0 +1,108 @@ +import request from '@/config/axios' + +export interface PurchasereceiptRequestMainVO { + asnNumber: string + ppNumber: string + supplierCode: string + carrierCode: string + transferMode: string + fromWarehouseCode: string + toWarehouseCode: string + fromLocationTypes: string + toLocationTypes: 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 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 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 }) + } +} + +// 下载用户导入模板 +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 }) +} 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..ec925e9 --- /dev/null +++ b/src/api/wms/purchasereturnJobMain/index.ts @@ -0,0 +1,95 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + 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 }) +} diff --git a/src/api/wms/purchasereturnRecordDetail/index.ts b/src/api/wms/purchasereturnRecordDetail/index.ts new file mode 100644 index 0000000..f136685 --- /dev/null +++ b/src/api/wms/purchasereturnRecordDetail/index.ts @@ -0,0 +1,80 @@ +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 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..47b793b --- /dev/null +++ b/src/api/wms/purchasereturnRecordMain/index.ts @@ -0,0 +1,76 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + return await request.download({ url: `/wms/purchasereturn-record-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereturn-record-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/purchasereturnRequestDetail/index.ts b/src/api/wms/purchasereturnRequestDetail/index.ts new file mode 100644 index 0000000..a50d8fc --- /dev/null +++ b/src/api/wms/purchasereturnRequestDetail/index.ts @@ -0,0 +1,69 @@ +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 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' }) +} \ 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..bcdfbd6 --- /dev/null +++ b/src/api/wms/purchasereturnRequestMain/index.ts @@ -0,0 +1,104 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + fromDockCode: string + toLocationTypes: 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 updatePurchasereturnRequestMain = async (data: PurchasereturnRequestMainVO) => { + return await request.put({ url: `/wms/purchasereturn-request-main/update`, 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) => { + return await request.download({ url: `/wms/purchasereturn-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/purchasereturn-request-main/get-import-template' }) +} + +// 关闭采购退货申请主 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 }) +} diff --git a/src/api/wms/putawayJobDetail/index.ts b/src/api/wms/putawayJobDetail/index.ts new file mode 100644 index 0000000..af3a173 --- /dev/null +++ b/src/api/wms/putawayJobDetail/index.ts @@ -0,0 +1,66 @@ +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' }) +} \ 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..6437b86 --- /dev/null +++ b/src/api/wms/putawayJobMain/index.ts @@ -0,0 +1,88 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + 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 }) +} diff --git a/src/api/wms/putawayRecordDetail/index.ts b/src/api/wms/putawayRecordDetail/index.ts new file mode 100644 index 0000000..af8a433 --- /dev/null +++ b/src/api/wms/putawayRecordDetail/index.ts @@ -0,0 +1,76 @@ +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' }) +} \ 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..6f5924d --- /dev/null +++ b/src/api/wms/putawayRecordMain/index.ts @@ -0,0 +1,69 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: 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) => { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/putawayRequestDetail/index.ts b/src/api/wms/putawayRequestDetail/index.ts new file mode 100644 index 0000000..3d2f27a --- /dev/null +++ b/src/api/wms/putawayRequestDetail/index.ts @@ -0,0 +1,67 @@ +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' }) +} \ 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..e8f454d --- /dev/null +++ b/src/api/wms/putawayRequestMain/index.ts @@ -0,0 +1,97 @@ +import request from '@/config/axios' + +export interface PutawayRequestMainVO { + supplierCode: string + fromWarehouseCode: string + fromLocationTypes: 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 + toLocationTypes: 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) => { + 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/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/remark/index.ts b/src/api/wms/remark/index.ts new file mode 100644 index 0000000..7a1ac36 --- /dev/null +++ b/src/api/wms/remark/index.ts @@ -0,0 +1,14 @@ +import request from '@/config/axios' +// 查询备注列表 +export const getRemarkPage = async (params) => { + 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) => { + return await request.get({ url: `/infra/trends/list`, params }) +} 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..7be585c --- /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 + fromLocationTypes: string + toLocationTypes: 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..b1557d5 --- /dev/null +++ b/src/api/wms/repleinshRecordMain/index.ts @@ -0,0 +1,68 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: 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) => { + 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' }) +} \ No newline at end of file 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..5a30d78 --- /dev/null +++ b/src/api/wms/repleinshRequestMain/index.ts @@ -0,0 +1,102 @@ +import request from '@/config/axios' + +export interface RepleinshRequestMainVO { + fomWarehouseCode: string + fromLocationTypes: 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 + toLocationTypes: 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..52b279f --- /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' }) +} \ No newline at end of file diff --git a/src/api/wms/saleDetail/index.ts b/src/api/wms/saleDetail/index.ts new file mode 100644 index 0000000..a197299 --- /dev/null +++ b/src/api/wms/saleDetail/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface SaleDetailVO { + lineNumber: string + projectCode: string + stdPackQty: number + stdPackUnit: 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) => { + 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 }) +} diff --git a/src/api/wms/saleMain/index.ts b/src/api/wms/saleMain/index.ts new file mode 100644 index 0000000..75b3ca1 --- /dev/null +++ b/src/api/wms/saleMain/index.ts @@ -0,0 +1,63 @@ +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) => { + return await request.download({ url: `/wms/sale-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/sale-main/get-import-template' }) +} \ No newline at end of file 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..3cc50a9 --- /dev/null +++ b/src/api/wms/scrapJobMain/index.ts @@ -0,0 +1,79 @@ +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 + fromLocationTypes: string + toLocationTypes: 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 }) +} + +// 导出报废出库任务主 Excel +export const exportScrapJobMain = async (params) => { + 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' }) +} \ No newline at end of file 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..57f2a8b --- /dev/null +++ b/src/api/wms/scrapRecordMain/index.ts @@ -0,0 +1,65 @@ +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 + fromLocationTypes: 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) => { + 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' }) +} \ No newline at end of file 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..6a6ef1f --- /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 + fromLocationTypes: 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..b7e3be1 --- /dev/null +++ b/src/api/wms/stdcostprice/index.ts @@ -0,0 +1,58 @@ +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' }) +} diff --git a/src/api/wms/strategy/index.ts b/src/api/wms/strategy/index.ts new file mode 100644 index 0000000..a4e235b --- /dev/null +++ b/src/api/wms/strategy/index.ts @@ -0,0 +1,41 @@ +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) => { + 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) => { + return await request.download({ url: `/wms/strategy/export-excel`, params }) +} diff --git a/src/api/wms/supplier/index.ts b/src/api/wms/supplier/index.ts new file mode 100644 index 0000000..805a416 --- /dev/null +++ b/src/api/wms/supplier/index.ts @@ -0,0 +1,72 @@ +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 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 }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/supplier/get-import-template' }) +} diff --git a/src/api/wms/supplierUser/index.ts b/src/api/wms/supplierUser/index.ts new file mode 100644 index 0000000..bdb7c5b --- /dev/null +++ b/src/api/wms/supplierUser/index.ts @@ -0,0 +1,54 @@ +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) => { + 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/supplierdeliverRecordDetail/index.ts b/src/api/wms/supplierdeliverRecordDetail/index.ts new file mode 100644 index 0000000..d346cbb --- /dev/null +++ b/src/api/wms/supplierdeliverRecordDetail/index.ts @@ -0,0 +1,87 @@ +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 + stdPackQty: number + stdPackUnit: 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' }) +} diff --git a/src/api/wms/supplierdeliverRecordMain/index.ts b/src/api/wms/supplierdeliverRecordMain/index.ts new file mode 100644 index 0000000..1b1fce2 --- /dev/null +++ b/src/api/wms/supplierdeliverRecordMain/index.ts @@ -0,0 +1,75 @@ +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 +} + +// 查询供应商发货记录主列表 +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) => { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/supplierdeliverRequestDetail/index.ts b/src/api/wms/supplierdeliverRequestDetail/index.ts new file mode 100644 index 0000000..e029b88 --- /dev/null +++ b/src/api/wms/supplierdeliverRequestDetail/index.ts @@ -0,0 +1,74 @@ +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 + stdPackQty: number + stdPackUnit: 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 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..82ac6b9 --- /dev/null +++ b/src/api/wms/supplierdeliverRequestMain/index.ts @@ -0,0 +1,103 @@ +import request from '@/config/axios' + +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 +} + +// 查询供应商发货申请主列表 +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 genLabel = async (id) => { + return await request.post({ url: `/wms/supplierdeliver-request-main/genLabel?id=` + id }) +} +// 生成记录 +export const genRecordsSupplierdeliverRequestMain = async (id) => { + return await request.post({ url: `/wms/supplierdeliver-request-main/genRecords?id=` + id }) +} +// 导出供应商发货申请主 Excel +export const exportSupplierdeliverRequestMain = async (params) => { + 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' }) +} + diff --git a/src/api/wms/supplierinvoiceRecordDeatil/index.ts b/src/api/wms/supplierinvoiceRecordDeatil/index.ts new file mode 100644 index 0000000..f797d2f --- /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 + stdPackQty: number + stdPackUnit: 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..4f04bde --- /dev/null +++ b/src/api/wms/supplierinvoiceRecordMain/index.ts @@ -0,0 +1,63 @@ +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 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 }) +} + +// 导出供应商发票记录主 Excel +export const exportSupplierinvoiceRecordMain = async (params) => { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/supplierinvoiceRequestDetail/index.ts b/src/api/wms/supplierinvoiceRequestDetail/index.ts new file mode 100644 index 0000000..8633e63 --- /dev/null +++ b/src/api/wms/supplierinvoiceRequestDetail/index.ts @@ -0,0 +1,70 @@ +import request from '@/config/axios' + +export interface SupplierinvoiceRequestDetailVO { + recordNumber: string + ownerCode: string + packingNumber: string + containerNumber: string + batch: string + altBatch: string + poNumber: string + poLine: string + stdPackQty: number + stdPackUnit: 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 getSupplierinvoiceRequestDetail = async (id: number) => { + return await request.get({ url: `/wms/supplierinvoice-request-detail/get?id=` + id }) +} + +// 新增供应商发票申请子 +export const createSupplierinvoiceRequestDetail = async (data: SupplierinvoiceRequestDetailVO) => { + 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..62d9231 --- /dev/null +++ b/src/api/wms/supplierinvoiceRequestMain/index.ts @@ -0,0 +1,86 @@ +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 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) => { + return await request.post({ url: `/wms/supplierinvoice-request-main/app?id=` + id }) +} +// 驳回供应商发货申请主 +export const rejSupplierinvoiceRequestMain = async (id: number) => { + return await request.post({ url: `/wms/supplierinvoice-request-main/rej?id=` + id }) +} +// 生成记录 +export const genRecordsSupplierinvoiceRequestMain = async (id) => { + return await request.post({ url: `/wms/supplierinvoice-request-main/genRecords?id=` + id }) +} +// 导出供应商发票申请主 Excel +export const exportSupplierinvoiceRequestMain = async (params) => { + return await request.download({ url: `/wms/supplierinvoice-request-main/export-excel`, params }) +} diff --git a/src/api/wms/supplieritem/index.ts b/src/api/wms/supplieritem/index.ts new file mode 100644 index 0000000..387777a --- /dev/null +++ b/src/api/wms/supplieritem/index.ts @@ -0,0 +1,67 @@ +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 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 updateSupplieritem = async (data: SupplieritemVO) => { + return await request.put({ url: `/wms/supplieritem/update`, data }) +} + +// 删除供应商物品 +export const deleteSupplieritem = async (id: number) => { + return await request.delete({ url: `/wms/supplieritem/delete?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 }) + } +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/supplieritem/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/switch/index.ts b/src/api/wms/switch/index.ts new file mode 100644 index 0000000..aeb11a1 --- /dev/null +++ b/src/api/wms/switch/index.ts @@ -0,0 +1,50 @@ +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 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/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..6c978a4 --- /dev/null +++ b/src/api/wms/team/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface TeamVO { + code: string + name: string + description: string + members: string + activeTime: Date + expireTime: Date + remark: string + available: 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 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' }) +} \ No newline at end of file diff --git a/src/api/wms/transaction/index.ts b/src/api/wms/transaction/index.ts new file mode 100644 index 0000000..e4b38fc --- /dev/null +++ b/src/api/wms/transaction/index.ts @@ -0,0 +1,71 @@ +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) => { + return await request.download({ url: `/wms/transaction/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transaction/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/transactiontype/index.ts b/src/api/wms/transactiontype/index.ts new file mode 100644 index 0000000..88c259b --- /dev/null +++ b/src/api/wms/transactiontype/index.ts @@ -0,0 +1,55 @@ +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 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) => { + 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..53e7e32 --- /dev/null +++ b/src/api/wms/transferissueJobMain/index.ts @@ -0,0 +1,101 @@ +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 + fromLocationTypes: string + toLocationTypes: 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) => { + 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.download({ url: '/wms/transferissue-job-main/close?id=' + id }) +} + +// 承接-调拨出库任务主 +export const acceptTransferissueJobMain = (id: number) => { + return request.download({ url: '/wms/transferissue-job-main/accept?id=' + id }) +} + +// 放弃-调拨出库任务主 +export const abandonTransferissueJobMain = (id: number) => { + return request.download({ 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..7433ba3 --- /dev/null +++ b/src/api/wms/transferissueRecordMain/index.ts @@ -0,0 +1,72 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toLocationTypes: 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) => { + 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..06092fb --- /dev/null +++ b/src/api/wms/transferissueRequestDetail/index.ts @@ -0,0 +1,66 @@ +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 +} + +// 查询调拨出库申请子列表 +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..2842541 --- /dev/null +++ b/src/api/wms/transferissueRequestMain/index.ts @@ -0,0 +1,100 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: 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) => { + 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..43d8cbe --- /dev/null +++ b/src/api/wms/transferlog/index.ts @@ -0,0 +1,80 @@ +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) => { + return await request.download({ url: `/wms/transferlog/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/transferlog/get-import-template' }) +} \ No newline at end of file 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..d2538c3 --- /dev/null +++ b/src/api/wms/transferreceiptJobMain/index.ts @@ -0,0 +1,85 @@ +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 + fromLocationTypes: string + toLocationTypes: 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 }) +} + +// 导出调拨入库任务主 Excel +export const exportTransferreceiptJobMain = async (params) => { + 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..ec41b42 --- /dev/null +++ b/src/api/wms/transferreceiptRecordMain/index.ts @@ -0,0 +1,73 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toDockCode: string + toLocationTypes: 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) => { + 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..dcf0e53 --- /dev/null +++ b/src/api/wms/transferreceiptRequestMain/index.ts @@ -0,0 +1,100 @@ +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 + fromLocationTypes: string + fromAreaCodes: string + toWarehouseCode: string + toLocationTypes: 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) => { + 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..ce835fe --- /dev/null +++ b/src/api/wms/unplannedissueJobMain/index.ts @@ -0,0 +1,79 @@ +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 + fromLocationTypes: string + toLocationTypes: 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 }) +} + +// 导出计划外出库任务主 Excel +export const exportUnplannedissueJobMain = async (params) => { + 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..a8dd317 --- /dev/null +++ b/src/api/wms/unplannedissueRecordDetail/index.ts @@ -0,0 +1,70 @@ +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} + return await request.post({ url: '/wms/unplannedissue-record-detail/senior', data }) + } else { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedissueRecordMain/index.ts b/src/api/wms/unplannedissueRecordMain/index.ts new file mode 100644 index 0000000..c0544e0 --- /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 + fromLocationTypes: string + fromAreaCodes: string + fromDockCode: string + available: string +} + +// 查询计划外出库记录主列表 +export const getUnplannedissueRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/unplannedissue-record-main/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedissue-record-main/page`, params }) + } +} + +// 查询计划外出库记录主详情 +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) => { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedissueRequestDetail/index.ts b/src/api/wms/unplannedissueRequestDetail/index.ts new file mode 100644 index 0000000..e5105fc --- /dev/null +++ b/src/api/wms/unplannedissueRequestDetail/index.ts @@ -0,0 +1,65 @@ +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} + return await request.post({ url: '/wms/unplannedissue-request-detail/senior', data }) + } else { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedissueRequestMain/index.ts b/src/api/wms/unplannedissueRequestMain/index.ts new file mode 100644 index 0000000..b0a4f09 --- /dev/null +++ b/src/api/wms/unplannedissueRequestMain/index.ts @@ -0,0 +1,99 @@ +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 + fromLocationTypes: 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} + return await request.post({ url: '/wms/unplannedissue-request-main/senior', data }) + } else { + 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 }) +} 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..88e2f8e --- /dev/null +++ b/src/api/wms/unplannedreceiptJobMain/index.ts @@ -0,0 +1,79 @@ +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 + fromLocationTypes: string + toLocationTypes: 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 }) +} + +// 导出计划外入库任务主 Excel +export const exportUnplannedreceiptJobMain = async (params) => { + 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..458ebab --- /dev/null +++ b/src/api/wms/unplannedreceiptRecordDetail/index.ts @@ -0,0 +1,74 @@ +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} + return await request.post({ url: '/wms/unplannedreceipt-record-detail/senior', data }) + } else { + 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' }) +} \ No newline at end of file diff --git a/src/api/wms/unplannedreceiptRecordMain/index.ts b/src/api/wms/unplannedreceiptRecordMain/index.ts new file mode 100644 index 0000000..e54a19f --- /dev/null +++ b/src/api/wms/unplannedreceiptRecordMain/index.ts @@ -0,0 +1,65 @@ +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 + toLocationTypes: 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) => { + 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' }) +} \ 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..c62a7e1 --- /dev/null +++ b/src/api/wms/unplannedreceiptRequestDetail/index.ts @@ -0,0 +1,74 @@ +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} + return await request.post({ url: '/wms/unplannedreceipt-request-detail/senior', data }) + } else { + return await request.get({ url: `/wms/unplannedreceipt-request-detail/page`, 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..30b0243 --- /dev/null +++ b/src/api/wms/unplannedreceiptRequestMain/index.ts @@ -0,0 +1,98 @@ +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 + toLocationTypes: 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 }) +} diff --git a/src/api/wms/warehouse/index.ts b/src/api/wms/warehouse/index.ts new file mode 100644 index 0000000..882fac2 --- /dev/null +++ b/src/api/wms/warehouse/index.ts @@ -0,0 +1,61 @@ +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 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' }) +} \ 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..7272534 --- /dev/null +++ b/src/api/wms/workshop/index.ts @@ -0,0 +1,58 @@ +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' }) +} \ 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..40e5dd6 --- /dev/null +++ b/src/api/wms/workstation/index.ts @@ -0,0 +1,67 @@ +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 importTemplate = () => { + return request.download({ url: '/wms/workstation/get-import-template' }) +} 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/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..572b2e0 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/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..4cae5c2 --- /dev/null +++ b/src/components/Annex/src/Annex.vue @@ -0,0 +1,127 @@ + + + + + + + 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..2bc0c4d --- /dev/null +++ b/src/components/BasicForm/src/BasicForm.vue @@ -0,0 +1,568 @@ + + + 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..a7de4f9 --- /dev/null +++ b/src/components/ChangeRecord/src/ChangeRecord.vue @@ -0,0 +1,128 @@ + + + + + + + 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..90b40b2 --- /dev/null +++ b/src/components/Crontab/src/Crontab.vue @@ -0,0 +1,1011 @@ + + + + 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..56540d6 --- /dev/null +++ b/src/components/Descriptions/src/Descriptions.vue @@ -0,0 +1,186 @@ + + + + + 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..a013d31 --- /dev/null +++ b/src/components/Detail/src/Detail.vue @@ -0,0 +1,659 @@ + + + + + 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..b09facb --- /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..a1eb550 --- /dev/null +++ b/src/components/Dialog/src/Dialog.vue @@ -0,0 +1,140 @@ + + + + + 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..af34c98 --- /dev/null +++ b/src/components/DictTag/src/DictTag.vue @@ -0,0 +1,84 @@ + 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..ec40bca --- /dev/null +++ b/src/components/Editor/src/Editor.vue @@ -0,0 +1,202 @@ + + + + + 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..16a4a10 --- /dev/null +++ b/src/components/Form/src/Form.vue @@ -0,0 +1,363 @@ + + + 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..59b72e6 --- /dev/null +++ b/src/components/Form/src/components/useRenderSelect.tsx @@ -0,0 +1,57 @@ +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' + +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 + + 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..cdfc8ca --- /dev/null +++ b/src/components/Form/src/helper.ts @@ -0,0 +1,148 @@ +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'] + if (textMap.includes(schema?.component as string)) { + return { + placeholder: t('common.inputText') + schema.label + } + } + 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') + schema.label + } + } + } + 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 !== 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/HeaderSearch/index.vue b/src/components/HeaderSearch/index.vue new file mode 100644 index 0000000..86d9cff --- /dev/null +++ b/src/components/HeaderSearch/index.vue @@ -0,0 +1,190 @@ + + + + + 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/ImportForm.vue b/src/components/ImportForm/src/ImportForm.vue new file mode 100644 index 0000000..15369c6 --- /dev/null +++ b/src/components/ImportForm/src/ImportForm.vue @@ -0,0 +1,329 @@ + + + + + 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/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/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..f73c66c --- /dev/null +++ b/src/components/Remarks/src/Remarks.vue @@ -0,0 +1,119 @@ + + + + + + + diff --git a/src/components/RouterSearch/index.vue b/src/components/RouterSearch/index.vue new file mode 100644 index 0000000..c12385a --- /dev/null +++ b/src/components/RouterSearch/index.vue @@ -0,0 +1,76 @@ + + + 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..78865ac --- /dev/null +++ b/src/components/Search/src/Search.vue @@ -0,0 +1,186 @@ + + + + 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..be0dba4 --- /dev/null +++ b/src/components/SearchHigh/src/SearchHigh.vue @@ -0,0 +1,342 @@ + + + \ No newline at end of file diff --git a/src/components/SearchTable/index.ts b/src/components/SearchTable/index.ts new file mode 100644 index 0000000..2828959 --- /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..299c107 --- /dev/null +++ b/src/components/SearchTable/src/SearchTable.vue @@ -0,0 +1,167 @@ + + + \ 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/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..74896e9 --- /dev/null +++ b/src/components/Table/src/Table.vue @@ -0,0 +1,337 @@ + + 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/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..7a37be9 --- /dev/null +++ b/src/components/TableForm/src/TableForm.vue @@ -0,0 +1,468 @@ + + + + + + + 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..d46d462 --- /dev/null +++ b/src/components/TableFormCountPlan/src/TableFormCountPlan.vue @@ -0,0 +1,203 @@ + + + + + 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..e994268 --- /dev/null +++ b/src/components/TableHead/src/TableHead.vue @@ -0,0 +1,160 @@ + + + \ 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..8c66168 --- /dev/null +++ b/src/components/Tabs/src/Tabs.vue @@ -0,0 +1,59 @@ + + + + + + + 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..ed92c4c --- /dev/null +++ b/src/components/UploadFile/src/UploadFile.vue @@ -0,0 +1,177 @@ + + + diff --git a/src/components/UploadFile/src/UploadImg.vue b/src/components/UploadFile/src/UploadImg.vue new file mode 100644 index 0000000..100736b --- /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..7470c9b --- /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..b7b5048 --- /dev/null +++ b/src/components/Verifition/src/Verify.vue @@ -0,0 +1,441 @@ + + + diff --git a/src/components/Verifition/src/Verify/VerifyPoints.vue b/src/components/Verifition/src/Verify/VerifyPoints.vue new file mode 100644 index 0000000..9d04f29 --- /dev/null +++ b/src/components/Verifition/src/Verify/VerifyPoints.vue @@ -0,0 +1,250 @@ + + diff --git a/src/components/Verifition/src/Verify/VerifySlide.vue b/src/components/Verifition/src/Verify/VerifySlide.vue new file mode 100644 index 0000000..8b448b0 --- /dev/null +++ b/src/components/Verifition/src/Verify/VerifySlide.vue @@ -0,0 +1,376 @@ + + 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..d573b85 --- /dev/null +++ b/src/components/XButton/index.ts @@ -0,0 +1,5 @@ +import XButton from './src/XButton.vue' +import XTextButton from './src/XTextButton.vue' +import ButtonBase from './src/ButtonBase.vue' + +export { XButton, XTextButton, ButtonBase } diff --git a/src/components/XButton/src/ButtonBase.vue b/src/components/XButton/src/ButtonBase.vue new file mode 100644 index 0000000..15f9979 --- /dev/null +++ b/src/components/XButton/src/ButtonBase.vue @@ -0,0 +1,97 @@ + + + \ 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..639c1cb --- /dev/null +++ b/src/components/bpmnProcessDesigner/package/penal/base/ElementBaseInfo.vue @@ -0,0 +1,184 @@ + + 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..bb71d44 --- /dev/null +++ b/src/components/bpmnProcessDesigner/src/utils/directive/clickOutSide.js @@ -0,0 +1,39 @@ +//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 + } + + setTimeout(() => { + document.addEventListener('touchstart', documentHandler) // 为document绑定事件 + }) + }, + 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..85b3e3c --- /dev/null +++ b/src/components/iFrame/src/IFrame.vue @@ -0,0 +1,68 @@ + + 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..72c2fb4 --- /dev/null +++ b/src/components/rowDrop/index.vue @@ -0,0 +1,236 @@ + + + \ No newline at end of file diff --git a/src/config/axios/config.ts b/src/config/axios/config.ts new file mode 100644 index 0000000..8116508 --- /dev/null +++ b/src/config/axios/config.ts @@ -0,0 +1,28 @@ +const config: { + base_url: string + result_code: number | string + default_headers: AxiosHeaders + request_timeout: number +} = { + /** + * api请求基础路径 + */ + base_url: import.meta.env.VITE_BASE_URL + import.meta.env.VITE_API_URL, + /** + * 接口成功返回状态码 + */ + result_code: 200, + + /** + * 接口请求超时时间 + */ + request_timeout: 30000, + + /** + * 默认接口请求类型 + * 可选值: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..69c5e72 --- /dev/null +++ b/src/config/axios/index.ts @@ -0,0 +1,59 @@ +import { service } from './service' + +import { config } from './config' +import { useCache } from '@/hooks/web/useCache' + +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 + } + }) +} +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 + }, + 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..1a4741b --- /dev/null +++ b/src/config/axios/service.ts @@ -0,0 +1,239 @@ +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'] + +// 创建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 !== 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..89cc8ba --- /dev/null +++ b/src/directives/index.ts @@ -0,0 +1,13 @@ +import type { App } from 'vue' +import { hasRole } from './permission/hasRole' +import { hasPermi } from './permission/hasPermi' + +/** + * 导出指令:v-xxx + * @methods hasRole 用户权限,用法: v-hasRole + * @methods hasPermi 按钮权限,用法: v-hasPermi + */ +export const setupAuth = (app: App) => { + hasRole(app) + hasPermi(app) +} 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..6d2a931 --- /dev/null +++ b/src/hooks/web/useCache.ts @@ -0,0 +1,27 @@ +/** + * 配置浏览器本地存储的方式,可直接存储对象数组。 + */ + +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' +} + +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..b39d045 --- /dev/null +++ b/src/hooks/web/useCrudSchemas.ts @@ -0,0 +1,374 @@ +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 // 是否在查询显示 + 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[] +} + +const { t } = useI18n() + +// 过滤所有结构 +export const useCrudSchemas = ( + crudSchema: CrudSchema[] +): { + allSchemas: AllSchemas +} => { + // 所有结构数据 + const allSchemas = reactive({ + searchSchema: [], + tableColumns: [], + formSchema: [], + detailSchema: [], + tableFormColumns:[] + }) + + const searchSchema = filterSearchSchema(crudSchema, allSchemas) + allSchemas.searchSchema = searchSchema || [] + + const tableColumns = filterTableSchema(crudSchema) + allSchemas.tableColumns = tableColumns || [] + + 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 + }, + { 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 { + getDictOptions(schemaItem.dictType).forEach((dict) => { + options.push(dict) + }) + } + comonentProps = { + options: options + } + 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..d1ab70f --- /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..ac2b552 --- /dev/null +++ b/src/hooks/web/useMessage.ts @@ -0,0 +1,95 @@ +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' + }) + }, + // 删除窗体 + 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..53cd83c --- /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: 10, + // 当前页 + 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..020a9b7 --- /dev/null +++ b/src/hooks/web/useTitle.ts @@ -0,0 +1,24 @@ +import { watch, ref } from 'vue' +import { isString } from '@/utils/is' +import { useAppStoreWithOut } from '@/store/modules/app' + +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 + } + }, + { 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..ffdf11f --- /dev/null +++ b/src/layout/components/AppView.vue @@ -0,0 +1,61 @@ + + + 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..de03665 --- /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/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..c350e38 --- /dev/null +++ b/src/layout/components/Footer/src/Footer.vue @@ -0,0 +1,24 @@ + + + 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..474388d --- /dev/null +++ b/src/layout/components/Logo/src/Logo.vue @@ -0,0 +1,88 @@ + + + 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..9033616 --- /dev/null +++ b/src/layout/components/Menu/src/Menu.vue @@ -0,0 +1,290 @@ + + + + + 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..fc30b90 --- /dev/null +++ b/src/layout/components/Menu/src/components/useRenderMenuTitle.tsx @@ -0,0 +1,22 @@ +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 ? ( + <> + + {t(title as string)} + + ) : ( + {t(title as string)} + ) + } + + 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..28f796b --- /dev/null +++ b/src/layout/components/Message/src/Message.vue @@ -0,0 +1,125 @@ + + + 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..c4f63a3 --- /dev/null +++ b/src/layout/components/TabMenu/src/TabMenu.vue @@ -0,0 +1,240 @@ + + + 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..7db0cf6 --- /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..1a8cbc7 --- /dev/null +++ b/src/layout/components/ToolHeader.vue @@ -0,0 +1,91 @@ + + + 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..3c03ea7 --- /dev/null +++ b/src/layout/components/UserInfo/src/UserInfo.vue @@ -0,0 +1,78 @@ + + + diff --git a/src/layout/components/useRenderLayout.tsx b/src/layout/components/useRenderLayout.tsx new file mode 100644 index 0000000..46a1e60 --- /dev/null +++ b/src/layout/components/useRenderLayout.tsx @@ -0,0 +1,306 @@ +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 { ElScrollbar } from 'element-plus' +import { useDesign } from '@/hooks/web/useDesign' + +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) + +export const useRenderLayout = () => { + const renderClassic = () => { + return ( + <> +
+ {logo.value ? ( + + ) : 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..75bd2a2 --- /dev/null +++ b/src/locales/en-US.ts @@ -0,0 +1,459 @@ +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', + 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', + reAddSuccess: 'ReAdd Success', + submitSuccess: 'Submit Success', + agreeSuccess: 'Agree Success', + refusedSuccess: 'Refused Success', + handleSuccess: 'Handle Success', + confirmColse: 'Confirm Close?', + confirmReAdd: 'Confirm ReAdd?', + confirmAgree: 'Confirm Agree?', + confirmRefused: 'Confirm Refused?', + confirmHandle: 'Confirm Handle?', + confirmSubmit: 'Confirm Submit?', + }, + 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', + 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' + }, + 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' + } +} diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts new file mode 100644 index 0000000..7de6a05 --- /dev/null +++ b/src/locales/zh-CN.ts @@ -0,0 +1,452 @@ +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: '修改成功', + delMessage: '是否删除所选中数据?', + delDataMessage: '是否删除数据?', + delNoData: '请选择需要删除的数据', + delSuccess: '删除成功', + index: '序号', + status: '状态', + createTime: '创建时间', + updateTime: '更新时间', + copy: '复制', + copySuccess: '复制成功', + copyError: '复制失败', + closeSuccess: '关闭成功', + reAddSuccess: '重新添加成功', + submitSuccess: '提交成功', + agreeSuccess: '审批通过成功', + refusedSuccess: '审批驳回成功', + handleSuccess: '执行成功', + confirmColse: '确认关闭吗?', + confirmReAdd: '确认重新添加吗?', + confirmAgree: '确认审批通过吗?', + confirmRefused: '确认审批驳回吗?', + confirmHandle: '确认处理吗?', + confirmSubmit: '确认提交吗?', + }, + 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: '预览', + more: '更多', + sync: '同步', + save: '保存', + detail: '详情', + export: '导出', + import: '导入', + generate: '生成', + logout: '强制退出', + test: '测试', + typeCreate: '字典类型新增', + typeUpdate: '字典类型编辑', + dataCreate: '字典数据新增', + dataUpdate: '字典数据编辑' + }, + 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: '预览' + } +} diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..5ba59e5 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,76 @@ +// 引入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' + +// 创建实例 +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.mount('#app') + app.config.warnHandler = () => null; +} + +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..0698dc8 --- /dev/null +++ b/src/permission.ts @@ -0,0 +1,70 @@ +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', + '/social-login', + '/auth-redirect', + '/bind', + '/register', + '/oauthLogin/gitee' +] + +// 路由加载前 +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..f845b13 --- /dev/null +++ b/src/plugins/vueI18n/index.ts @@ -0,0 +1,42 @@ +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, + 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..2bdf987 --- /dev/null +++ b/src/router/modules/remaining.ts @@ -0,0 +1,370 @@ +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: '/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: '/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..b06b659 --- /dev/null +++ b/src/store/modules/app.ts @@ -0,0 +1,274 @@ +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 + 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 +} + +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, // 全屏图标 + 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: '#001529', + // 左侧菜单浅色背景颜色 + leftMenuBgLightColor: '#0f2438', + // 左侧菜单选中背景颜色 + leftMenuBgActiveColor: 'var(--el-color-primary)', + // 左侧菜单收起选中背景颜色 + leftMenuCollapseBgActiveColor: 'var(--el-color-primary)', + // 左侧菜单字体颜色 + leftMenuTextColor: '#bfcbd9', + // 左侧菜单选中字体颜色 + leftMenuTextActiveColor: '#fff', + // logo字体颜色 + logoTitleTextColor: '#fff', + // logo边框颜色 + logoBorderColor: 'inherit', + // 头部背景颜色 + topHeaderBgColor: '#fff', + // 头部字体颜色 + topHeaderTextColor: 'inherit', + // 头部悬停颜色 + topHeaderHoverColor: '#f6f6f6', + // 头部边框颜色 + topToolBorderColor: '#eee' + } + } + }, + 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 + } + }, + 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 + } + } +}) + +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..822547b --- /dev/null +++ b/src/store/modules/dict.ts @@ -0,0 +1,104 @@ +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' + +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 { + 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..c729cea --- /dev/null +++ b/src/store/modules/permission.ts @@ -0,0 +1,67 @@ +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' + +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) => { + // 获得菜单列表,它在登录的时候,setUserInfoAction 方法中已经进行获取 + let res: AppCustomRouteRecordRaw[] = [] + if (wsCache.get(CACHE_KEY.ROLE_ROUTERS)) { + res = wsCache.get(CACHE_KEY.ROLE_ROUTERS) as AppCustomRouteRecordRaw[] + } + 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..0952bd0 --- /dev/null +++ b/src/styles/index.scss @@ -0,0 +1,35 @@ +@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); + } +} 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..63459ba --- /dev/null +++ b/src/styles/var.css @@ -0,0 +1,66 @@ +:root { + --login-bg-color: #293146; + + --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: 50px; + + --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-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..35c0b81 --- /dev/null +++ b/src/types/descriptions.d.ts @@ -0,0 +1,13 @@ +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 星语:支持时间的格式化 + 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..980c8cc --- /dev/null +++ b/src/types/form.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 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 + // 远程加载下拉项 + 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..7da49b0 --- /dev/null +++ b/src/utils/auth.ts @@ -0,0 +1,92 @@ +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') +} + +// 刷新token +export const getRefreshToken = () => { + return wsCache.get(RefreshTokenKey) +} + +// 设置token +export const setToken = (token: TokenType) => { + wsCache.set(RefreshTokenKey, token.refreshToken) + wsCache.set(AccessTokenKey, token.accessToken) +} + +// 删除token +export const removeToken = () => { + wsCache.delete(AccessTokenKey) + wsCache.delete(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/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..dabd5d4 --- /dev/null +++ b/src/utils/dict.ts @@ -0,0 +1,275 @@ +/** + * 数据字典工具类 + */ +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', // 计量单位 + ABC_CLASS = 'abc_class', // ABC类 + TRUE_FALSE = 'true_false', // 是否 + 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', // 检验类型 + 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_SCOPE_TYPE = 'count_scope_type', // 盘点范围类型 + BARCODE_PREFIX = 'barcode_prefix', // 条码前缀 + SETTLEMENT_TYPE = 'settlement_type', // 结算类型 + FROZEN_REASON = 'frozen_reason', // 冻结原因 + INVENTORY_ACTION = 'inventory_action', // 库存动作 + 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', // 容器状态 +} diff --git a/src/utils/disposition/defaultButtons.ts b/src/utils/disposition/defaultButtons.ts new file mode 100644 index 0000000..006205d --- /dev/null +++ b/src/utils/disposition/defaultButtons.ts @@ -0,0 +1,759 @@ +// 页面基础按钮样式 +/** + * 如果需要更改配置,格式如:defaultExportBtn({label:'自定义'}) + * @param {*} option + * @returns + */ + +// 新增按钮 +export function defaultAddBtn(option:any) { + return __defaultBtnOption(option,{ + label: '新增', + name: 'add', + hide: false, + type: 'primary', + icon: 'ep:plus', + color: '', + hasPermi: '' + }) +} + +// 导入按钮 +export function defaultImportBtn(option:any) { + return __defaultBtnOption(option,{ + label: '导入', + name: 'import', + hide: false, + type: 'warning', + icon: 'ep:upload', + color: '', + hasPermi: '' + }) +} + +// 导出按钮 +export function defaultExportBtn(option:any) { + return __defaultBtnOption(option,{ + label: '导出', + name: 'export', + 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: '刷新', + name: 'refresh', + hide: false, + type: 'primary', + icon: 'ep:refresh', + color: '', + float:'right', + hasPermi: '' + }) +} + +// 重置按钮 +export function defaultResetBtn(option:any) { + return __defaultBtnOption(option,{ + label: '重置', + name: 'reset', + hide: false, + type: 'info', + icon: '', + color: '', + float:'right', + hasPermi: '' + }) +} + +// 字段设置 +export function defaultSetBtn(option:any) { + return __defaultBtnOption(option,{ + label: '设置', + name: 'set', + hide: false, + type: 'info', + icon: 'ep:setting', + color: '', + float:'right', + hasPermi: '' + }) +} + +// 筛选按钮 +export function defaultFilterBtn(option:any) { + return __defaultBtnOption(option,{ + label: '筛选', + name: 'filtrate', + hide: false, + type: 'info', + icon: 'ep:operation', + color: '', + float:'right', + hasPermi: '' + }) +} + +// 筛选——查询按钮 +export function defaultSearchBtn(option:any) { + return __defaultBtnOption(option,{ + label: '搜索', + name: 'search', + hide: false, + type: 'primary', + icon: '', + color: '', + float:'right', + hasPermi: '' + }) +} + +// 筛选——重置按钮 +export function defaultSearchResetBtn(option:any) { + return __defaultBtnOption(option,{ + label: '重置', + name: 'searchReset', + hide: false, + type: 'info', + icon: '', + color: '', + float:'right', + hasPermi: '' + }) +} + +// form表单-保存按钮 +export function formSaveBtn(option:any) { + return __defaultBtnOption(option,{ + label: '保存', + name: 'save', + hide: false, + type: 'primary', + icon: 'ep:select', + color: '', + float:'right', + hasPermi: '' + }) +} + +// form表单-关闭按钮 +export function formCloseBtn(option:any) { + return __defaultBtnOption(option,{ + label: '关闭', + name: 'close', + hide: false, + icon: 'ep:close', + color: '', + float:'right', + hasPermi: '' + }) +} + +// drawer抽屉头部-编辑按钮 +export function drawerEditBtn(option:any) { + return __defaultBtnOption(option,{ + label: '编辑', + name: 'edit', + hide: false, + type: 'warning', + icon: 'ep:editPen', + color: '', + hasPermi: '' + }) +} + +// drawer抽屉头部-删除按钮 +export function drawerDeleteBtn(option:any) { + return __defaultBtnOption(option,{ + label: '删除', + 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: '编辑', + name: 'edit', + hide: false, + type: 'warning', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-删除按钮 +export function mainListDeleteBtn(option:any) { + return __defaultBtnOption(option,{ + label: '删除', + name: 'delete', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-申请流程-关闭按钮 +export function mainListCloseBtn(option:any) { + return __defaultBtnOption(option,{ + label: '关闭', + name: 'mainClose', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-申请流程-重新添加按钮 +export function mainListReAddBtn(option:any) { + return __defaultBtnOption(option,{ + label: '重新添加', + name: 'mainReAdd', + hide: false, + type: 'warning', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-申请流程-提交审批按钮 +export function mainListSubmitBtn(option:any) { + return __defaultBtnOption(option,{ + label: '提交审批', + name: 'mainSubmit', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-申请流程-驳回按钮 +export function mainListTurnDownBtn(option:any) { + return __defaultBtnOption(option,{ + label: '驳回', + name: 'mainTurnDown', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-申请流程-审批通过按钮 +export function mainListApproveBtn(option:any) { + return __defaultBtnOption(option,{ + label: '审批通过', + name: 'mainApprove', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-申请流程-处理按钮 +export function mainListHandleBtn(option:any) { + return __defaultBtnOption(option,{ + label: '处理', + name: 'mainHandle', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-订单流程-发布按钮 +export function mainListOrderPubBtn(option:any) { + return __defaultBtnOption(option,{ + label: '发布', + name: 'mainOrderPub', + hide: false, + type: 'success', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-订单流程-关闭按钮 +export function mainListOrderCloBtn(option:any) { + return __defaultBtnOption(option,{ + label: '关闭', + name: 'mainOrderClo', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-订单流程-打开按钮 +export function mainListOrderOpeBtn(option:any) { + return __defaultBtnOption(option,{ + label: '打开', + name: 'mainOrderOpe', + hide: false, + type: 'warning', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-订单流程-下架按钮 +export function mainListOrderWitBtn(option:any) { + return __defaultBtnOption(option,{ + label: '下架', + name: 'mainOrderWit', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-计划流程-打开按钮 +export function mainListPlanOpeBtn(option:any) { + return __defaultBtnOption(option,{ + label: '打开', + name: 'mainPlanOpe', + hide: false, + type: 'warning', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-计划流程-关闭按钮 +export function mainListPlanCloBtn(option:any) { + return __defaultBtnOption(option,{ + label: '关闭', + name: 'mainPlanClo', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-计划流程-提交审批按钮 +export function mainListPlanSubBtn(option:any) { + return __defaultBtnOption(option,{ + label: '提交审批', + name: 'mainPlanSub', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-计划流程-驳回按钮 +export function mainListPlanTurBtn(option:any) { + return __defaultBtnOption(option,{ + label: '驳回', + name: 'mainPlanTur', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-计划流程-重置按钮 +export function mainListPlanResBtn(option:any) { + return __defaultBtnOption(option,{ + label: '重置', + name: 'mainPlanRes', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-计划流程-审批通过按钮 +export function mainListPlanAppBtn(option:any) { + return __defaultBtnOption(option,{ + label: '审批通过', + name: 'mainPlanApp', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-计划流程-发布按钮 +export function mainListPlanPubBtn(option:any) { + return __defaultBtnOption(option,{ + label: '发布', + name: 'mainPlanPub', + hide: false, + type: 'success', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-计划流程-执行按钮 +export function mainListPlanComBtn(option:any) { + return __defaultBtnOption(option,{ + label: '执行', + name: 'mainPlanCom', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-要货计划流程-修改按钮 +export function mainListPurchasePlanModBtn(option:any) { + return __defaultBtnOption(option,{ + label: '修改', + name: 'mainPurPlanMod', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-要货计划流程-下架按钮 +export function mainListPurchasePlanWitBtn(option:any) { + return __defaultBtnOption(option,{ + label: '下架', + name: 'mainPurPlanWit', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-要货计划流程-不接受按钮 +export function mainListPurchasePlanRejBtn(option:any) { + return __defaultBtnOption(option,{ + label: '不接受', + name: 'mainPurPlanRej', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-要货计划流程-接受按钮 +export function mainListPurchasePlanAccBtn(option:any) { + return __defaultBtnOption(option,{ + label: '接受', + name: 'mainPurPlanAcc', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-要货计划流程-发布按钮 +export function mainListPurchasePlanPubBtn(option:any) { + return __defaultBtnOption(option,{ + label: '发布', + name: 'mainPurPlanPub', + hide: false, + type: 'success', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-要货计划流程-关闭按钮 +export function mainListPurchasePlanCloBtn(option:any) { + return __defaultBtnOption(option,{ + label: '关闭', + name: 'mainPurPlanClo', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-要货计划流程-打开按钮 +export function mainListPurchasePlanOpeBtn(option:any) { + return __defaultBtnOption(option,{ + label: '打开', + name: 'mainPurPlanOpe', + hide: false, + type: 'warning', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-任务流程-承接按钮 +export function mainListJobAccBtn(option:any) { + return __defaultBtnOption(option,{ + label: '承接', + name: 'mainJobAcc', + hide: false, + type: 'success', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-任务流程-关闭按钮 +export function mainListJobCloBtn(option:any) { + return __defaultBtnOption(option,{ + label: '关闭', + name: 'mainJobClo', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-任务流程-放弃按钮 +export function mainListJobAbaBtn(option:any) { + return __defaultBtnOption(option,{ + label: '放弃', + name: 'mainJobAba', + hide: false, + type: 'danger', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} + +// 主列表-任务流程-执行按钮 +export function mainListJobExeBtn(option:any) { + return __defaultBtnOption(option,{ + label: '执行', + name: 'mainJobExe', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} +// 主列表-打印 +export function mainListPointBtn(option:any) { + return __defaultBtnOption(option,{ + label: '标签打印', + name: 'point', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} +// 主列表-生成采购收货申请 +export function mainListGenerateApplicationBtn(option:any) { + return __defaultBtnOption(option,{ + label: '生成采购收货申请', + name: 'generateApplication', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} +// 主列表-打印 +export function mainListDocumentPrintBtn(option:any) { + return __defaultBtnOption(option,{ + label: '单据打印', + name: 'documentPrint', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} +// 主列表-生成到货检验申请 +export function mainInspectRequestBtn(option:any) { + return __defaultBtnOption(option,{ + label: '生成到货检验申请', + name: 'inspectRequest', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} +// 主列表-生成采购上架申请 +export function mainPutawayRequestBtn(option:any) { + return __defaultBtnOption(option,{ + label: '生成采购上架申请', + name: 'putawayRequest', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} +// 主列表-生成盘点调整申请 +export function mainCountAdjustRequesttBtn(option:any) { + return __defaultBtnOption(option,{ + label: '生成盘点调整申请', + name: 'countAdjustRequest', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} +// 主列表-重盘 +export function mainReCountBtn(option:any) { + return __defaultBtnOption(option,{ + label: '重盘', + name: 'mainReCount', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} +// 主列表-监盘 +export function mainSuperviseCountBtn(option:any) { + return __defaultBtnOption(option,{ + label: '监盘', + name: 'mainSuperviseCount', + hide: false, + type: 'primary', + color: '', + link: true, // 文本展现按钮 + hasPermi: '' + }) +} +// 主列表-解冻 +export function mainThawRequesttBtn(option:any) { + return __defaultBtnOption(option,{ + label: '解冻', + name: 'mainThaw', + hide: false, + type: 'primary', + 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, + ...option + } +} + diff --git a/src/utils/disposition/formFields.ts b/src/utils/disposition/formFields.ts new file mode 100644 index 0000000..82d62b9 --- /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: 'stdPackQty' }, + { 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..ce19853 --- /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..580b2f7 --- /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..96c2fa0 --- /dev/null +++ b/src/utils/disposition/tabsList.ts @@ -0,0 +1,40 @@ +// 页面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', + } +] + 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..e2b0e59 --- /dev/null +++ b/src/utils/formatTime.ts @@ -0,0 +1,232 @@ +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 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) +} +// 获取时间戳 +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..7c6e39f --- /dev/null +++ b/src/utils/formatter.ts @@ -0,0 +1,12 @@ +import { fenToYuan } from '@/utils' +import { TableColumnCtx } from 'element-plus' + +// 格式化金额【分转元】 +export const fenToYuanFormat = ( + row: any, + column: TableColumnCtx, + cellValue: any, + index: number +) => { + return `¥${fenToYuan(cellValue)}` +} 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..3752985 --- /dev/null +++ b/src/utils/is.ts @@ -0,0 +1,105 @@ +// 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]*))?)$/ + return reg.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/tree.ts b/src/utils/tree.ts new file mode 100644 index 0000000..c8503f5 --- /dev/null +++ b/src/utils/tree.ts @@ -0,0 +1,399 @@ +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 +} 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..60671f7 --- /dev/null +++ b/src/utils/validator.ts @@ -0,0 +1,775 @@ +//校验学校编码 只能为数字 +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 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() +} + +// 数字格式 小数点后三位 +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 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 +} 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/Index.vue b/src/views/Home/Index.vue new file mode 100644 index 0000000..1cc81ac --- /dev/null +++ b/src/views/Home/Index.vue @@ -0,0 +1,14 @@ + + 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..83aadaa --- /dev/null +++ b/src/views/Home/components/material.vue @@ -0,0 +1,336 @@ + + + + diff --git a/src/views/Home/components/produce.vue b/src/views/Home/components/produce.vue new file mode 100644 index 0000000..c289ec0 --- /dev/null +++ b/src/views/Home/components/produce.vue @@ -0,0 +1,286 @@ + + + + diff --git a/src/views/Home/components/product.vue b/src/views/Home/components/product.vue new file mode 100644 index 0000000..5124d9c --- /dev/null +++ b/src/views/Home/components/product.vue @@ -0,0 +1,313 @@ + + + + diff --git a/src/views/Home/components/supplierIndex.vue b/src/views/Home/components/supplierIndex.vue new file mode 100644 index 0000000..7610f97 --- /dev/null +++ b/src/views/Home/components/supplierIndex.vue @@ -0,0 +1,452 @@ + + + + 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/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/Login/Login.vue b/src/views/Login/Login.vue new file mode 100644 index 0000000..a0025ab --- /dev/null +++ b/src/views/Login/Login.vue @@ -0,0 +1,104 @@ + + + + diff --git a/src/views/Login/components/LoginForm.vue b/src/views/Login/components/LoginForm.vue new file mode 100644 index 0000000..9499f49 --- /dev/null +++ b/src/views/Login/components/LoginForm.vue @@ -0,0 +1,278 @@ + + + + diff --git a/src/views/Login/components/LoginFormTitle.vue b/src/views/Login/components/LoginFormTitle.vue new file mode 100644 index 0000000..cdf4fac --- /dev/null +++ b/src/views/Login/components/LoginFormTitle.vue @@ -0,0 +1,26 @@ + + diff --git a/src/views/Login/components/MobileForm.vue b/src/views/Login/components/MobileForm.vue new file mode 100644 index 0000000..ebb36b8 --- /dev/null +++ b/src/views/Login/components/MobileForm.vue @@ -0,0 +1,225 @@ + + + + diff --git a/src/views/Login/components/QrCodeForm.vue b/src/views/Login/components/QrCodeForm.vue new file mode 100644 index 0000000..31d2845 --- /dev/null +++ b/src/views/Login/components/QrCodeForm.vue @@ -0,0 +1,30 @@ + + diff --git a/src/views/Login/components/RegisterForm.vue b/src/views/Login/components/RegisterForm.vue new file mode 100644 index 0000000..23b3bd4 --- /dev/null +++ b/src/views/Login/components/RegisterForm.vue @@ -0,0 +1,142 @@ + + diff --git a/src/views/Login/components/SSOLogin.vue b/src/views/Login/components/SSOLogin.vue new file mode 100644 index 0000000..f31ab0e --- /dev/null +++ b/src/views/Login/components/SSOLogin.vue @@ -0,0 +1,199 @@ + + diff --git a/src/views/Login/components/index.ts b/src/views/Login/components/index.ts new file mode 100644 index 0000000..204ad73 --- /dev/null +++ b/src/views/Login/components/index.ts @@ -0,0 +1,8 @@ +import LoginForm from './LoginForm.vue' +import MobileForm from './MobileForm.vue' +import LoginFormTitle from './LoginFormTitle.vue' +import RegisterForm from './RegisterForm.vue' +import QrCodeForm from './QrCodeForm.vue' +import SSOLoginVue from './SSOLogin.vue' + +export { LoginForm, MobileForm, LoginFormTitle, RegisterForm, QrCodeForm, SSOLoginVue } diff --git a/src/views/Login/components/useLogin.ts b/src/views/Login/components/useLogin.ts new file mode 100644 index 0000000..b4a02f8 --- /dev/null +++ b/src/views/Login/components/useLogin.ts @@ -0,0 +1,42 @@ +import { Ref } from 'vue' + +export enum LoginStateEnum { + LOGIN, + REGISTER, + RESET_PASSWORD, + MOBILE, + QR_CODE, + SSO +} + +const currentState = ref(LoginStateEnum.LOGIN) + +export function useLoginState() { + function setLoginState(state: LoginStateEnum) { + currentState.value = state + } + const getLoginState = computed(() => currentState.value) + + function handleBackLogin() { + setLoginState(LoginStateEnum.LOGIN) + } + + return { + setLoginState, + getLoginState, + handleBackLogin + } +} + +export function useFormValid(formRef: Ref) { + async function validForm() { + const form = unref(formRef) + if (!form) return + const data = await form.validate() + return data as T + } + + return { + validForm + } +} diff --git a/src/views/Profile/Index.vue b/src/views/Profile/Index.vue new file mode 100644 index 0000000..e813f04 --- /dev/null +++ b/src/views/Profile/Index.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/views/Profile/components/BasicInfo.vue b/src/views/Profile/components/BasicInfo.vue new file mode 100644 index 0000000..e2189b1 --- /dev/null +++ b/src/views/Profile/components/BasicInfo.vue @@ -0,0 +1,92 @@ + + diff --git a/src/views/Profile/components/ProfileUser.vue b/src/views/Profile/components/ProfileUser.vue new file mode 100644 index 0000000..b493499 --- /dev/null +++ b/src/views/Profile/components/ProfileUser.vue @@ -0,0 +1,99 @@ + + + + diff --git a/src/views/Profile/components/ResetPwd.vue b/src/views/Profile/components/ResetPwd.vue new file mode 100644 index 0000000..477be91 --- /dev/null +++ b/src/views/Profile/components/ResetPwd.vue @@ -0,0 +1,73 @@ + + diff --git a/src/views/Profile/components/UserAvatar.vue b/src/views/Profile/components/UserAvatar.vue new file mode 100644 index 0000000..c20168f --- /dev/null +++ b/src/views/Profile/components/UserAvatar.vue @@ -0,0 +1,39 @@ + + + + diff --git a/src/views/Profile/components/UserSocial.vue b/src/views/Profile/components/UserSocial.vue new file mode 100644 index 0000000..2f021ab --- /dev/null +++ b/src/views/Profile/components/UserSocial.vue @@ -0,0 +1,94 @@ + + diff --git a/src/views/Profile/components/index.ts b/src/views/Profile/components/index.ts new file mode 100644 index 0000000..9e1883c --- /dev/null +++ b/src/views/Profile/components/index.ts @@ -0,0 +1,7 @@ +import BasicInfo from './BasicInfo.vue' +import ProfileUser from './ProfileUser.vue' +import ResetPwd from './ResetPwd.vue' +import UserAvatarVue from './UserAvatar.vue' +import UserSocial from './UserSocial.vue' + +export { BasicInfo, ProfileUser, ResetPwd, UserAvatarVue, UserSocial } 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/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..74f10ff --- /dev/null +++ b/src/views/bpm/model/ModelImportForm.vue @@ -0,0 +1,140 @@ + + diff --git a/src/views/bpm/model/editor/index.vue b/src/views/bpm/model/editor/index.vue new file mode 100644 index 0000000..f5c0ec6 --- /dev/null +++ b/src/views/bpm/model/editor/index.vue @@ -0,0 +1,105 @@ + + + + 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/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/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..245f433 --- /dev/null +++ b/src/views/infra/apiAccessLog/index.vue @@ -0,0 +1,167 @@ + + 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..6836755 --- /dev/null +++ b/src/views/infra/apiErrorLog/index.vue @@ -0,0 +1,249 @@ + + + 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..4f99ce8 --- /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..19b5bf1 --- /dev/null +++ b/src/views/infra/config/ConfigForm.vue @@ -0,0 +1,131 @@ + + diff --git a/src/views/infra/config/index.vue b/src/views/infra/config/index.vue new file mode 100644 index 0000000..85b4fc9 --- /dev/null +++ b/src/views/infra/config/index.vue @@ -0,0 +1,169 @@ + + diff --git a/src/views/infra/customInterface/index.vue b/src/views/infra/customInterface/index.vue new file mode 100644 index 0000000..9359223 --- /dev/null +++ b/src/views/infra/customInterface/index.vue @@ -0,0 +1,21 @@ +