commit
1bdf2d0fe5
455 changed files with 46376 additions and 0 deletions
@ -0,0 +1,21 @@ |
|||||
|
# 告诉EditorConfig插件,这是根文件,不用继续往上查找 |
||||
|
root = true |
||||
|
|
||||
|
# 匹配全部文件 |
||||
|
[*] |
||||
|
# 缩进风格,可选space、tab |
||||
|
indent_style = space |
||||
|
# 缩进的空格数 |
||||
|
indent_size = 2 |
||||
|
# 设置字符集 |
||||
|
charset = utf-8 |
||||
|
# 结尾换行符,可选lf、cr、crlf |
||||
|
end_of_line = lf |
||||
|
# 在文件结尾插入新行 |
||||
|
trim_trailing_whitespace = true |
||||
|
# 删除一行中的前后空格 |
||||
|
insert_final_newline = true |
||||
|
|
||||
|
[*.md] |
||||
|
insert_final_newline = false |
||||
|
trim_trailing_whitespace = false |
@ -0,0 +1,35 @@ |
|||||
|
# 页面标题 |
||||
|
VITE_APP_TITLE = 合同审核系统 |
||||
|
|
||||
|
# 开发环境配置 |
||||
|
VITE_APP_ENV = 'development' |
||||
|
|
||||
|
# 开发环境 |
||||
|
VITE_APP_BASE_API = '/dev-api' |
||||
|
|
||||
|
# 应用访问路径 例如使用前缀 /admin/ |
||||
|
VITE_APP_CONTEXT_PATH = '/' |
||||
|
|
||||
|
# 监控地址 |
||||
|
VITE_APP_MONITOR_ADMIN = 'http://localhost:9090/admin/applications' |
||||
|
|
||||
|
# SnailJob 控制台地址 |
||||
|
VITE_APP_SNAILJOB_ADMIN = 'http://localhost:8800/snail-job' |
||||
|
|
||||
|
VITE_APP_PORT = 80 |
||||
|
|
||||
|
# 接口加密功能开关(如需关闭 后端也必须对应关闭) |
||||
|
VITE_APP_ENCRYPT = true |
||||
|
# 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换 |
||||
|
VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' |
||||
|
# 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换 |
||||
|
VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE=' |
||||
|
|
||||
|
# 客户端id |
||||
|
VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' |
||||
|
|
||||
|
# websocket 开关 默认使用sse推送 |
||||
|
VITE_APP_WEBSOCKET = false |
||||
|
|
||||
|
# sse 开关 |
||||
|
VITE_APP_SSE = true |
@ -0,0 +1,38 @@ |
|||||
|
# 页面标题 |
||||
|
VITE_APP_TITLE = 合同审核系统 |
||||
|
|
||||
|
# 生产环境配置 |
||||
|
VITE_APP_ENV = 'production' |
||||
|
|
||||
|
# 应用访问路径 例如使用前缀 /admin/ |
||||
|
VITE_APP_CONTEXT_PATH = '/' |
||||
|
|
||||
|
# 监控地址 |
||||
|
VITE_APP_MONITOR_ADMIN = '/admin/applications' |
||||
|
|
||||
|
# SnailJob 控制台地址 |
||||
|
VITE_APP_SNAILJOB_ADMIN = '/snail-job' |
||||
|
|
||||
|
# 生产环境 |
||||
|
VITE_APP_BASE_API = '/prod-api' |
||||
|
|
||||
|
# 是否在打包时开启压缩,支持 gzip 和 brotli |
||||
|
VITE_BUILD_COMPRESS = gzip |
||||
|
|
||||
|
VITE_APP_PORT = 80 |
||||
|
|
||||
|
# 接口加密功能开关(如需关闭 后端也必须对应关闭) |
||||
|
VITE_APP_ENCRYPT = true |
||||
|
# 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换 |
||||
|
VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' |
||||
|
# 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换 |
||||
|
VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE=' |
||||
|
|
||||
|
# 客户端id |
||||
|
VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' |
||||
|
|
||||
|
# websocket 开关 默认使用sse推送 |
||||
|
VITE_APP_WEBSOCKET = false |
||||
|
|
||||
|
# sse 开关 |
||||
|
VITE_APP_SSE = true |
@ -0,0 +1,17 @@ |
|||||
|
*.sh |
||||
|
node_modules |
||||
|
*.md |
||||
|
*.woff |
||||
|
*.ttf |
||||
|
.vscode |
||||
|
.idea |
||||
|
dist |
||||
|
/public |
||||
|
/docs |
||||
|
.husky |
||||
|
.local |
||||
|
/bin |
||||
|
.eslintrc.cjs |
||||
|
prettier.config.js |
||||
|
src/assets |
||||
|
tailwind.config.js |
@ -0,0 +1,320 @@ |
|||||
|
{ |
||||
|
"globals": { |
||||
|
"Component": true, |
||||
|
"ComponentPublicInstance": true, |
||||
|
"ComputedRef": true, |
||||
|
"DirectiveBinding": true, |
||||
|
"EffectScope": true, |
||||
|
"ElLoading": true, |
||||
|
"ElMessage": true, |
||||
|
"ElMessageBox": true, |
||||
|
"ElNotification": true, |
||||
|
"ExtractDefaultPropTypes": true, |
||||
|
"ExtractPropTypes": true, |
||||
|
"ExtractPublicPropTypes": true, |
||||
|
"InjectionKey": true, |
||||
|
"MaybeRef": true, |
||||
|
"MaybeRefOrGetter": true, |
||||
|
"PropType": true, |
||||
|
"Ref": true, |
||||
|
"VNode": true, |
||||
|
"WritableComputedRef": true, |
||||
|
"acceptHMRUpdate": 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, |
||||
|
"createPinia": true, |
||||
|
"createReactiveFn": true, |
||||
|
"createReusableTemplate": true, |
||||
|
"createSharedComposable": true, |
||||
|
"createTemplatePromise": true, |
||||
|
"createUnrefFn": true, |
||||
|
"customRef": true, |
||||
|
"debouncedRef": true, |
||||
|
"debouncedWatch": true, |
||||
|
"defineAsyncComponent": true, |
||||
|
"defineComponent": true, |
||||
|
"defineStore": true, |
||||
|
"eagerComputed": true, |
||||
|
"effectScope": true, |
||||
|
"extendRef": true, |
||||
|
"getActivePinia": true, |
||||
|
"getCurrentInstance": true, |
||||
|
"getCurrentScope": true, |
||||
|
"h": true, |
||||
|
"ignorableWatch": true, |
||||
|
"inject": true, |
||||
|
"injectLocal": true, |
||||
|
"isDefined": true, |
||||
|
"isProxy": true, |
||||
|
"isReactive": true, |
||||
|
"isReadonly": true, |
||||
|
"isRef": true, |
||||
|
"makeDestructurable": true, |
||||
|
"mapActions": true, |
||||
|
"mapGetters": true, |
||||
|
"mapState": true, |
||||
|
"mapStores": true, |
||||
|
"mapWritableState": true, |
||||
|
"markRaw": true, |
||||
|
"nextTick": true, |
||||
|
"onActivated": true, |
||||
|
"onBeforeMount": true, |
||||
|
"onBeforeRouteLeave": true, |
||||
|
"onBeforeRouteUpdate": true, |
||||
|
"onBeforeUnmount": true, |
||||
|
"onBeforeUpdate": true, |
||||
|
"onClickOutside": true, |
||||
|
"onDeactivated": true, |
||||
|
"onElementRemoval": true, |
||||
|
"onErrorCaptured": true, |
||||
|
"onKeyStroke": true, |
||||
|
"onLongPress": true, |
||||
|
"onMounted": true, |
||||
|
"onRenderTracked": true, |
||||
|
"onRenderTriggered": true, |
||||
|
"onScopeDispose": true, |
||||
|
"onServerPrefetch": true, |
||||
|
"onStartTyping": true, |
||||
|
"onUnmounted": true, |
||||
|
"onUpdated": true, |
||||
|
"onWatcherCleanup": true, |
||||
|
"pausableWatch": true, |
||||
|
"provide": true, |
||||
|
"provideLocal": 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, |
||||
|
"setActivePinia": true, |
||||
|
"setMapStoreSuffix": true, |
||||
|
"shallowReactive": true, |
||||
|
"shallowReadonly": true, |
||||
|
"shallowRef": true, |
||||
|
"storeToRefs": true, |
||||
|
"syncRef": true, |
||||
|
"syncRefs": true, |
||||
|
"templateRef": true, |
||||
|
"throttledRef": true, |
||||
|
"throttledWatch": true, |
||||
|
"toRaw": true, |
||||
|
"toReactive": true, |
||||
|
"toRef": true, |
||||
|
"toRefs": true, |
||||
|
"toValue": true, |
||||
|
"triggerRef": true, |
||||
|
"tryOnBeforeMount": true, |
||||
|
"tryOnBeforeUnmount": true, |
||||
|
"tryOnMounted": true, |
||||
|
"tryOnScopeDispose": true, |
||||
|
"tryOnUnmounted": true, |
||||
|
"unref": true, |
||||
|
"unrefElement": true, |
||||
|
"until": true, |
||||
|
"useActiveElement": true, |
||||
|
"useAnimate": true, |
||||
|
"useArrayDifference": true, |
||||
|
"useArrayEvery": true, |
||||
|
"useArrayFilter": true, |
||||
|
"useArrayFind": true, |
||||
|
"useArrayFindIndex": true, |
||||
|
"useArrayFindLast": true, |
||||
|
"useArrayIncludes": true, |
||||
|
"useArrayJoin": true, |
||||
|
"useArrayMap": true, |
||||
|
"useArrayReduce": true, |
||||
|
"useArraySome": true, |
||||
|
"useArrayUnique": true, |
||||
|
"useAsyncQueue": true, |
||||
|
"useAsyncState": true, |
||||
|
"useAttrs": true, |
||||
|
"useBase64": true, |
||||
|
"useBattery": true, |
||||
|
"useBluetooth": true, |
||||
|
"useBreakpoints": true, |
||||
|
"useBroadcastChannel": true, |
||||
|
"useBrowserLocation": true, |
||||
|
"useCached": true, |
||||
|
"useClipboard": true, |
||||
|
"useClipboardItems": true, |
||||
|
"useCloned": true, |
||||
|
"useColorMode": true, |
||||
|
"useConfirmDialog": true, |
||||
|
"useCountdown": 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, |
||||
|
"useId": true, |
||||
|
"useIdle": true, |
||||
|
"useImage": true, |
||||
|
"useInfiniteScroll": true, |
||||
|
"useIntersectionObserver": true, |
||||
|
"useInterval": true, |
||||
|
"useIntervalFn": true, |
||||
|
"useKeyModifier": true, |
||||
|
"useLastChanged": true, |
||||
|
"useLink": true, |
||||
|
"useLocalStorage": true, |
||||
|
"useMagicKeys": true, |
||||
|
"useManualRefHistory": true, |
||||
|
"useMediaControls": true, |
||||
|
"useMediaQuery": true, |
||||
|
"useMemoize": true, |
||||
|
"useMemory": true, |
||||
|
"useModel": 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, |
||||
|
"useParentElement": true, |
||||
|
"usePerformanceObserver": true, |
||||
|
"usePermission": true, |
||||
|
"usePointer": true, |
||||
|
"usePointerLock": true, |
||||
|
"usePointerSwipe": true, |
||||
|
"usePreferredColorScheme": true, |
||||
|
"usePreferredContrast": true, |
||||
|
"usePreferredDark": true, |
||||
|
"usePreferredLanguages": true, |
||||
|
"usePreferredReducedMotion": true, |
||||
|
"usePreferredReducedTransparency": true, |
||||
|
"usePrevious": true, |
||||
|
"useRafFn": true, |
||||
|
"useRefHistory": true, |
||||
|
"useResizeObserver": true, |
||||
|
"useRoute": true, |
||||
|
"useRouter": true, |
||||
|
"useSSRWidth": true, |
||||
|
"useScreenOrientation": true, |
||||
|
"useScreenSafeArea": true, |
||||
|
"useScriptTag": true, |
||||
|
"useScroll": true, |
||||
|
"useScrollLock": true, |
||||
|
"useSessionStorage": true, |
||||
|
"useShare": true, |
||||
|
"useSlots": true, |
||||
|
"useSorted": true, |
||||
|
"useSpeechRecognition": true, |
||||
|
"useSpeechSynthesis": true, |
||||
|
"useStepper": true, |
||||
|
"useStorage": true, |
||||
|
"useStorageAsync": true, |
||||
|
"useStyleTag": true, |
||||
|
"useSupported": true, |
||||
|
"useSwipe": true, |
||||
|
"useTemplateRef": 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, |
||||
|
"useToNumber": true, |
||||
|
"useToString": 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, |
||||
|
"watchDeep": true, |
||||
|
"watchEffect": true, |
||||
|
"watchIgnorable": true, |
||||
|
"watchImmediate": true, |
||||
|
"watchOnce": true, |
||||
|
"watchPausable": true, |
||||
|
"watchPostEffect": true, |
||||
|
"watchSyncEffect": true, |
||||
|
"watchThrottled": true, |
||||
|
"watchTriggerable": true, |
||||
|
"watchWithFilter": true, |
||||
|
"whenever": true |
||||
|
} |
||||
|
} |
@ -0,0 +1,51 @@ |
|||||
|
module.exports = { |
||||
|
env: { |
||||
|
browser: true, |
||||
|
node: true, |
||||
|
es6: true |
||||
|
}, |
||||
|
parser: 'vue-eslint-parser', |
||||
|
extends: [ |
||||
|
'plugin:vue/vue3-recommended', |
||||
|
'./.eslintrc-auto-import.json', |
||||
|
'plugin:@typescript-eslint/recommended', |
||||
|
'prettier', |
||||
|
'plugin:prettier/recommended' |
||||
|
], |
||||
|
parserOptions: { |
||||
|
ecmaVersion: '2020', |
||||
|
sourceType: 'module', |
||||
|
project: './tsconfig.*.json', |
||||
|
parser: '@typescript-eslint/parser' |
||||
|
}, |
||||
|
plugins: ['vue', '@typescript-eslint', 'import', 'promise', 'node', 'prettier'], |
||||
|
rules: { |
||||
|
'@typescript-eslint/no-empty-function': 'off', |
||||
|
'@typescript-eslint/no-explicit-any': 'off', |
||||
|
'@typescript-eslint/no-unused-vars': 'off', |
||||
|
'@typescript-eslint/no-this-alias': 'off', |
||||
|
|
||||
|
// vue |
||||
|
'vue/multi-word-component-names': 'off', |
||||
|
'vue/valid-define-props': 'off', |
||||
|
'vue/no-v-model-argument': 'off', |
||||
|
'prefer-rest-params': 'off', |
||||
|
// prettier |
||||
|
'prettier/prettier': 'error', |
||||
|
'@typescript-eslint/ban-types': [ |
||||
|
'error', |
||||
|
{ |
||||
|
// 关闭空类型检查 {} |
||||
|
extendDefaults: true, |
||||
|
types: { |
||||
|
'{}': false, |
||||
|
Function: false |
||||
|
} |
||||
|
} |
||||
|
] |
||||
|
}, |
||||
|
globals: { |
||||
|
DialogOption: 'readonly', |
||||
|
OptionType: 'readonly' |
||||
|
} |
||||
|
}; |
@ -0,0 +1,29 @@ |
|||||
|
.DS_Store |
||||
|
.history |
||||
|
node_modules/ |
||||
|
dist/ |
||||
|
npm-debug.log* |
||||
|
yarn-debug.log* |
||||
|
yarn-error.log* |
||||
|
**/*.log |
||||
|
|
||||
|
tests/**/coverage/ |
||||
|
tests/e2e/reports |
||||
|
selenium-debug.log |
||||
|
|
||||
|
# Editor directories and files |
||||
|
.idea |
||||
|
.vscode |
||||
|
*.suo |
||||
|
*.ntvs* |
||||
|
*.njsproj |
||||
|
*.sln |
||||
|
*.local |
||||
|
|
||||
|
package-lock.json |
||||
|
yarn.lock |
||||
|
pnpm-lock.yaml |
||||
|
|
||||
|
# 编译生成的文件 |
||||
|
auto-imports.d.ts |
||||
|
components.d.ts |
@ -0,0 +1,9 @@ |
|||||
|
/dist/* |
||||
|
.local |
||||
|
.output.js |
||||
|
/node_modules/** |
||||
|
|
||||
|
**/*.svg |
||||
|
**/*.sh |
||||
|
|
||||
|
/public/* |
@ -0,0 +1,20 @@ |
|||||
|
{ |
||||
|
"printWidth": 150, |
||||
|
"tabWidth": 2, |
||||
|
"useTabs": false, |
||||
|
"semi": true, |
||||
|
"singleQuote": true, |
||||
|
"quoteProps": "preserve", |
||||
|
"jsxSingleQuote": false, |
||||
|
"bracketSameLine": false, |
||||
|
"trailingComma": "none", |
||||
|
"bracketSpacing": true, |
||||
|
"embeddedLanguageFormatting": "auto", |
||||
|
"arrowParens": "always", |
||||
|
"requirePragma": false, |
||||
|
"insertPragma": false, |
||||
|
"proseWrap": "preserve", |
||||
|
"htmlWhitespaceSensitivity": "css", |
||||
|
"vueIndentScriptAndStyle": false, |
||||
|
"endOfLine": "auto" |
||||
|
} |
@ -0,0 +1,20 @@ |
|||||
|
The MIT License (MIT) |
||||
|
|
||||
|
Copyright (c) 2019 RuoYi-Vue-Plus |
||||
|
|
||||
|
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. |
@ -0,0 +1,76 @@ |
|||||
|
## 平台简介 |
||||
|
|
||||
|
- 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [TS](https://www.typescriptlang.org/) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。 |
||||
|
- 成员项目: 基于 vben5(ant-design-vue) 的前端项目 [ruoyi-plus-vben5](https://gitee.com/dapppp/ruoyi-plus-vben5) |
||||
|
- 配套后端代码仓库地址 |
||||
|
- [RuoYi-Vue-Plus 5.X(注意版本号)](https://gitee.com/dromara/RuoYi-Vue-Plus) |
||||
|
- [RuoYi-Cloud-Plus 2.X(注意版本号)](https://gitee.com/dromara/RuoYi-Cloud-Plus) |
||||
|
|
||||
|
## 前端运行 |
||||
|
|
||||
|
```bash |
||||
|
# 克隆项目 |
||||
|
git clone https://gitee.com/JavaLionLi/plus-ui.git |
||||
|
|
||||
|
# 安装依赖 |
||||
|
npm install --registry=https://registry.npmmirror.com |
||||
|
|
||||
|
# 启动服务 |
||||
|
npm run dev |
||||
|
|
||||
|
# 构建生产环境 |
||||
|
npm run build:prod |
||||
|
|
||||
|
# 前端访问地址 http://localhost:80 |
||||
|
``` |
||||
|
|
||||
|
## 本框架与RuoYi的业务差异 |
||||
|
|
||||
|
| 业务 | 功能说明 | 本框架 | RuoYi | |
||||
|
| ------------ | ------------------------------------------------------------- | ------ | ----------------------------- | |
||||
|
| 租户管理 | 系统内租户的管理 如:租户套餐、过期时间、用户数量、企业信息等 | 支持 | 无 | |
||||
|
| 租户套餐管理 | 系统内租户所能使用的套餐管理 如:套餐内所包含的菜单等 | 支持 | 无 | |
||||
|
| 用户管理 | 用户的管理配置 如:新增用户、分配用户所属部门、角色、岗位等 | 支持 | 支持 | |
||||
|
| 部门管理 | 配置系统组织机构(公司、部门、小组) 树结构展现支持数据权限 | 支持 | 支持 | |
||||
|
| 岗位管理 | 配置系统用户所属担任职务 | 支持 | 支持 | |
||||
|
| 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等 | 支持 | 支持 | |
||||
|
| 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | 支持 | 支持 | |
||||
|
| 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | 支持 | 支持 | |
||||
|
| 参数管理 | 对系统动态配置常用参数 | 支持 | 支持 | |
||||
|
| 通知公告 | 系统通知公告信息发布维护 | 支持 | 支持 | |
||||
|
| 操作日志 | 系统正常操作日志记录和查询 系统异常信息日志记录和查询 | 支持 | 支持 | |
||||
|
| 登录日志 | 系统登录日志记录查询包含登录异常 | 支持 | 支持 | |
||||
|
| 文件管理 | 系统文件展示、上传、下载、删除等管理 | 支持 | 无 | |
||||
|
| 文件配置管理 | 系统文件上传、下载所需要的配置信息动态添加、修改、删除等管理 | 支持 | 无 | |
||||
|
| 在线用户管理 | 已登录系统的在线用户信息监控与强制踢出操作 | 支持 | 支持 | |
||||
|
| 定时任务 | 运行报表、任务管理(添加、修改、删除)、日志管理、执行器管理等 | 支持 | 仅支持任务与日志管理 | |
||||
|
| 代码生成 | 多数据源前后端代码的生成(java、html、xml、sql)支持CRUD下载 | 支持 | 仅支持单数据源 | |
||||
|
| 系统接口 | 根据业务代码自动生成相关的api接口文档 | 支持 | 支持 | |
||||
|
| 服务监控 | 监视集群系统CPU、内存、磁盘、堆栈、在线日志、Spring相关配置等 | 支持 | 仅支持单机CPU、内存、磁盘监控 | |
||||
|
| 缓存监控 | 对系统的缓存信息查询,命令统计等。 | 支持 | 支持 | |
||||
|
| 在线构建器 | 拖动表单元素生成相应的HTML代码。 | 支持 | 支持 | |
||||
|
| 使用案例 | 系统的一些功能案例 | 支持 | 不支持 | |
||||
|
|
||||
|
## 演示图例 |
||||
|
|
||||
|
| | | |
||||
|
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
||||
|
|  |  | |
@ -0,0 +1,12 @@ |
|||||
|
@echo off |
||||
|
echo. |
||||
|
echo [信息] 打包Web工程,生成dist文件。 |
||||
|
echo. |
||||
|
|
||||
|
%~d0 |
||||
|
cd %~dp0 |
||||
|
|
||||
|
cd .. |
||||
|
yarn build:prod |
||||
|
|
||||
|
pause |
@ -0,0 +1,12 @@ |
|||||
|
@echo off |
||||
|
echo. |
||||
|
echo [信息] 安装Web工程,生成node_modules文件。 |
||||
|
echo. |
||||
|
|
||||
|
%~d0 |
||||
|
cd %~dp0 |
||||
|
|
||||
|
cd .. |
||||
|
yarn --registry=https://registry.npmmirror.com |
||||
|
|
||||
|
pause |
@ -0,0 +1,12 @@ |
|||||
|
@echo off |
||||
|
echo. |
||||
|
echo [信息] 使用 Vite 命令运行 Web 工程。 |
||||
|
echo. |
||||
|
|
||||
|
%~d0 |
||||
|
cd %~dp0 |
||||
|
|
||||
|
cd .. |
||||
|
yarn dev |
||||
|
|
||||
|
pause |
@ -0,0 +1,44 @@ |
|||||
|
import pluginVue from 'eslint-plugin-vue'; |
||||
|
import globals from 'globals'; |
||||
|
import prettier from 'eslint-plugin-prettier'; |
||||
|
import { defineConfigWithVueTs, vueTsConfigs } from '@vue/eslint-config-typescript'; |
||||
|
import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'; |
||||
|
|
||||
|
export default defineConfigWithVueTs( |
||||
|
{ |
||||
|
name: 'app/files-to-lint', |
||||
|
files: ['**/*.{js,cjs,ts,mts,tsx,vue}'] |
||||
|
}, |
||||
|
|
||||
|
{ |
||||
|
name: 'app/files-to-ignore', |
||||
|
ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'] |
||||
|
}, |
||||
|
{ |
||||
|
languageOptions: { |
||||
|
globals: globals.browser |
||||
|
} |
||||
|
}, |
||||
|
pluginVue.configs['flat/essential'], |
||||
|
vueTsConfigs.recommended, |
||||
|
skipFormatting, |
||||
|
{ |
||||
|
plugins: { prettier }, |
||||
|
rules: { |
||||
|
'@typescript-eslint/no-empty-function': 'off', |
||||
|
'@typescript-eslint/no-explicit-any': 'off', |
||||
|
'@typescript-eslint/no-unused-vars': 'off', |
||||
|
'@typescript-eslint/no-this-alias': 'off', |
||||
|
// vue
|
||||
|
'vue/multi-word-component-names': 'off', |
||||
|
'vue/valid-define-props': 'off', |
||||
|
'vue/no-v-model-argument': 'off', |
||||
|
'prefer-rest-params': 'off', |
||||
|
// prettier
|
||||
|
'prettier/prettier': 'error', |
||||
|
// 允许使用空Object类型 {}
|
||||
|
'@typescript-eslint/no-empty-object-type': 'off', |
||||
|
'@typescript-eslint/no-unused-expressions': 'off' |
||||
|
} |
||||
|
} |
||||
|
); |
File diff suppressed because one or more lines are too long
@ -0,0 +1,213 @@ |
|||||
|
<!doctype html> |
||||
|
<html> |
||||
|
<head> |
||||
|
<meta charset="utf-8" /> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> |
||||
|
<meta name="renderer" content="webkit" /> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /> |
||||
|
<title>合同审核系统</title> |
||||
|
<!--[if lt IE 11 |
||||
|
]><script> |
||||
|
window.location.href = '/html/ie.html'; |
||||
|
</script><! |
||||
|
[endif]--> |
||||
|
<style> |
||||
|
html, |
||||
|
body, |
||||
|
#app { |
||||
|
height: 100%; |
||||
|
margin: 0px; |
||||
|
padding: 0px; |
||||
|
} |
||||
|
|
||||
|
.chromeframe { |
||||
|
margin: 0.2em 0; |
||||
|
background: #ccc; |
||||
|
color: #000; |
||||
|
padding: 0.2em 0; |
||||
|
} |
||||
|
|
||||
|
#loader-wrapper { |
||||
|
position: fixed; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
z-index: 999999; |
||||
|
} |
||||
|
|
||||
|
#loader { |
||||
|
display: block; |
||||
|
position: relative; |
||||
|
left: 50%; |
||||
|
top: 50%; |
||||
|
width: 150px; |
||||
|
height: 150px; |
||||
|
margin: -75px 0 0 -75px; |
||||
|
border-radius: 50%; |
||||
|
border: 3px solid transparent; |
||||
|
border-top-color: #fff; |
||||
|
-webkit-animation: spin 2s linear infinite; |
||||
|
-ms-animation: spin 2s linear infinite; |
||||
|
-moz-animation: spin 2s linear infinite; |
||||
|
-o-animation: spin 2s linear infinite; |
||||
|
animation: spin 2s linear infinite; |
||||
|
z-index: 1001; |
||||
|
} |
||||
|
|
||||
|
#loader:before { |
||||
|
content: ''; |
||||
|
position: absolute; |
||||
|
top: 5px; |
||||
|
left: 5px; |
||||
|
right: 5px; |
||||
|
bottom: 5px; |
||||
|
border-radius: 50%; |
||||
|
border: 3px solid transparent; |
||||
|
border-top-color: #fff; |
||||
|
-webkit-animation: spin 3s linear infinite; |
||||
|
-moz-animation: spin 3s linear infinite; |
||||
|
-o-animation: spin 3s linear infinite; |
||||
|
-ms-animation: spin 3s linear infinite; |
||||
|
animation: spin 3s linear infinite; |
||||
|
} |
||||
|
|
||||
|
#loader:after { |
||||
|
content: ''; |
||||
|
position: absolute; |
||||
|
top: 15px; |
||||
|
left: 15px; |
||||
|
right: 15px; |
||||
|
bottom: 15px; |
||||
|
border-radius: 50%; |
||||
|
border: 3px solid transparent; |
||||
|
border-top-color: #fff; |
||||
|
-moz-animation: spin 1.5s linear infinite; |
||||
|
-o-animation: spin 1.5s linear infinite; |
||||
|
-ms-animation: spin 1.5s linear infinite; |
||||
|
-webkit-animation: spin 1.5s linear infinite; |
||||
|
animation: spin 1.5s linear infinite; |
||||
|
} |
||||
|
|
||||
|
@-webkit-keyframes spin { |
||||
|
0% { |
||||
|
-webkit-transform: rotate(0deg); |
||||
|
-ms-transform: rotate(0deg); |
||||
|
transform: rotate(0deg); |
||||
|
} |
||||
|
|
||||
|
100% { |
||||
|
-webkit-transform: rotate(360deg); |
||||
|
-ms-transform: rotate(360deg); |
||||
|
transform: rotate(360deg); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@keyframes spin { |
||||
|
0% { |
||||
|
-webkit-transform: rotate(0deg); |
||||
|
-ms-transform: rotate(0deg); |
||||
|
transform: rotate(0deg); |
||||
|
} |
||||
|
|
||||
|
100% { |
||||
|
-webkit-transform: rotate(360deg); |
||||
|
-ms-transform: rotate(360deg); |
||||
|
transform: rotate(360deg); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
#loader-wrapper .loader-section { |
||||
|
position: fixed; |
||||
|
top: 0; |
||||
|
width: 51%; |
||||
|
height: 100%; |
||||
|
background: #7171c6; |
||||
|
z-index: 1000; |
||||
|
-webkit-transform: translateX(0); |
||||
|
-ms-transform: translateX(0); |
||||
|
transform: translateX(0); |
||||
|
} |
||||
|
|
||||
|
#loader-wrapper .loader-section.section-left { |
||||
|
left: 0; |
||||
|
} |
||||
|
|
||||
|
#loader-wrapper .loader-section.section-right { |
||||
|
right: 0; |
||||
|
} |
||||
|
|
||||
|
.loaded #loader-wrapper .loader-section.section-left { |
||||
|
-webkit-transform: translateX(-100%); |
||||
|
-ms-transform: translateX(-100%); |
||||
|
transform: translateX(-100%); |
||||
|
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); |
||||
|
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); |
||||
|
} |
||||
|
|
||||
|
.loaded #loader-wrapper .loader-section.section-right { |
||||
|
-webkit-transform: translateX(100%); |
||||
|
-ms-transform: translateX(100%); |
||||
|
transform: translateX(100%); |
||||
|
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); |
||||
|
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); |
||||
|
} |
||||
|
|
||||
|
.loaded #loader { |
||||
|
opacity: 0; |
||||
|
-webkit-transition: all 0.3s ease-out; |
||||
|
transition: all 0.3s ease-out; |
||||
|
} |
||||
|
|
||||
|
.loaded #loader-wrapper { |
||||
|
visibility: hidden; |
||||
|
-webkit-transform: translateY(-100%); |
||||
|
-ms-transform: translateY(-100%); |
||||
|
transform: translateY(-100%); |
||||
|
-webkit-transition: all 0.3s 1s ease-out; |
||||
|
transition: all 0.3s 1s ease-out; |
||||
|
} |
||||
|
|
||||
|
.no-js #loader-wrapper { |
||||
|
display: none; |
||||
|
} |
||||
|
|
||||
|
.no-js h1 { |
||||
|
color: #222222; |
||||
|
} |
||||
|
|
||||
|
#loader-wrapper .load_title { |
||||
|
font-family: 'Open Sans'; |
||||
|
color: #fff; |
||||
|
font-size: 19px; |
||||
|
width: 100%; |
||||
|
text-align: center; |
||||
|
z-index: 9999999999999; |
||||
|
position: absolute; |
||||
|
top: 60%; |
||||
|
opacity: 1; |
||||
|
line-height: 30px; |
||||
|
} |
||||
|
|
||||
|
#loader-wrapper .load_title span { |
||||
|
font-weight: normal; |
||||
|
font-style: italic; |
||||
|
font-size: 13px; |
||||
|
color: #fff; |
||||
|
opacity: 0.5; |
||||
|
} |
||||
|
</style> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<div id="app"> |
||||
|
<div id="loader-wrapper"> |
||||
|
<div id="loader"></div> |
||||
|
<div class="loader-section section-left"></div> |
||||
|
<div class="loader-section section-right"></div> |
||||
|
<div class="load_title">正在加载系统资源,请耐心等待</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<script type="module" src="/src/main.ts"></script> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,109 @@ |
|||||
|
{ |
||||
|
"name": "ruoyi-vue-plus", |
||||
|
"version": "5.2.0", |
||||
|
"description": "合同审核系统", |
||||
|
"author": "LionLi", |
||||
|
"license": "MIT", |
||||
|
"type": "module", |
||||
|
"scripts": { |
||||
|
"dev": "vite serve --mode development", |
||||
|
"build:prod": "vite build --mode production", |
||||
|
"build:dev": "vite build --mode development", |
||||
|
"preview": "vite preview", |
||||
|
"lint:eslint": "eslint --fix --ext .ts,.js,.vue ./src ", |
||||
|
"prettier": "prettier --write ." |
||||
|
}, |
||||
|
"repository": { |
||||
|
"type": "git", |
||||
|
"url": "https://gitee.com/JavaLionLi/plus-ui.git" |
||||
|
}, |
||||
|
"dependencies": { |
||||
|
"@ant-design/icons-vue": "^7.0.1", |
||||
|
"@babel/preset-env": "7.26.9", |
||||
|
"@babel/runtime": "^7.27.0", |
||||
|
"@babel/runtime-corejs3": "7.27.0", |
||||
|
"@element-plus/icons-vue": "2.3.1", |
||||
|
"@rollup/plugin-babel": "6.0.4", |
||||
|
"@vitejs/plugin-legacy": "5.3.2", |
||||
|
"@vue-office/pdf": "^2.0.10", |
||||
|
"@vueup/vue-quill": "1.2.0", |
||||
|
"@vueuse/core": "10.9.0", |
||||
|
"animate.css": "4.1.1", |
||||
|
"ant-design-vue": "^4.2.6", |
||||
|
"await-to-js": "3.0.0", |
||||
|
"axios": "1.6.8", |
||||
|
"bpmn-js": "16.4.0", |
||||
|
"core-js": "3", |
||||
|
"crypto-js": "4.2.0", |
||||
|
"diagram-js": "12.3.0", |
||||
|
"didi": "9.0.2", |
||||
|
"echarts": "5.5.0", |
||||
|
"element-plus": "2.7.5", |
||||
|
"file-saver": "2.0.5", |
||||
|
"fuse.js": "7.0.0", |
||||
|
"image-conversion": "^2.1.1", |
||||
|
"js-cookie": "3.0.5", |
||||
|
"jsencrypt": "3.3.2", |
||||
|
"lodash-es": "^4.17.21", |
||||
|
"min-dash": "4.2.3", |
||||
|
"nprogress": "0.2.0", |
||||
|
"pinia": "2.1.7", |
||||
|
"ruoyi-vue-plus": "link:", |
||||
|
"screenfull": "6.0.2", |
||||
|
"tiny-svg": "4.1.3", |
||||
|
"vue": "3.4.25", |
||||
|
"vue-cropper": "1.1.1", |
||||
|
"vue-i18n": "9.10.2", |
||||
|
"vue-router": "4.3.2", |
||||
|
"vue-types": "5.1.1", |
||||
|
"vxe-table": "4.5.22" |
||||
|
}, |
||||
|
"devDependencies": { |
||||
|
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", |
||||
|
"@babel/plugin-proposal-optional-chaining": "^7.21.0", |
||||
|
"@babel/plugin-transform-regenerator": "^7.27.0", |
||||
|
"@babel/plugin-transform-runtime": "7.26.10", |
||||
|
"@iconify/json": "2.2.201", |
||||
|
"@intlify/unplugin-vue-i18n": "3.0.1", |
||||
|
"@types/crypto-js": "4.2.2", |
||||
|
"@types/file-saver": "2.0.7", |
||||
|
"@types/js-cookie": "3.0.6", |
||||
|
"@types/node": "18.18.2", |
||||
|
"@types/nprogress": "0.2.3", |
||||
|
"@typescript-eslint/eslint-plugin": "7.3.1", |
||||
|
"@typescript-eslint/parser": "7.3.1", |
||||
|
"@unocss/preset-attributify": "0.58.6", |
||||
|
"@unocss/preset-icons": "0.58.6", |
||||
|
"@unocss/preset-uno": "0.58.6", |
||||
|
"@vitejs/plugin-vue": "5.0.4", |
||||
|
"@vue/compiler-sfc": "3.4.23", |
||||
|
"autoprefixer": "10.4.18", |
||||
|
"eslint": "8.57.0", |
||||
|
"eslint-config-prettier": "9.1.0", |
||||
|
"eslint-define-config": "2.1.0", |
||||
|
"eslint-plugin-import": "2.29.1", |
||||
|
"eslint-plugin-node": "11.1.0", |
||||
|
"eslint-plugin-prettier": "5.1.3", |
||||
|
"eslint-plugin-promise": "6.1.1", |
||||
|
"eslint-plugin-vue": "9.23.0", |
||||
|
"fast-glob": "3.3.2", |
||||
|
"postcss": "8.4.36", |
||||
|
"prettier": "3.2.5", |
||||
|
"sass": "1.72.0", |
||||
|
"typescript": "5.4.5", |
||||
|
"unocss": "0.58.6", |
||||
|
"unplugin-auto-import": "0.17.5", |
||||
|
"unplugin-icons": "0.18.5", |
||||
|
"unplugin-vue-components": "0.26.0", |
||||
|
"unplugin-vue-setup-extend-plus": "1.0.1", |
||||
|
"vite": "5.2.10", |
||||
|
"vite-plugin-compression": "0.5.1", |
||||
|
"vite-plugin-svg-icons": "2.0.1", |
||||
|
"vite-plugin-svg-icons-ng": "^1.3.1", |
||||
|
"vite-plugin-vue-devtools": "^7.7.2", |
||||
|
"vitest": "1.5.0", |
||||
|
"vue-eslint-parser": "9.4.2", |
||||
|
"vue-json-pretty": "^2.4.0", |
||||
|
"vue-tsc": "2.0.13" |
||||
|
} |
||||
|
} |
After Width: | Height: | Size: 7.9 KiB |
@ -0,0 +1 @@ |
|||||
|
|
@ -0,0 +1,20 @@ |
|||||
|
<template> |
||||
|
<el-config-provider :locale="appStore.locale" :size="appStore.size"> |
||||
|
<router-view /> |
||||
|
</el-config-provider> |
||||
|
</template> |
||||
|
|
||||
|
<script setup lang="ts"> |
||||
|
import { useSettingsStore } from '@/store/modules/settings'; |
||||
|
import { handleThemeStyle } from '@/utils/theme'; |
||||
|
import { useAppStore } from '@/store/modules/app'; |
||||
|
|
||||
|
const appStore = useAppStore(); |
||||
|
|
||||
|
onMounted(() => { |
||||
|
nextTick(() => { |
||||
|
// 初始化主题样式 |
||||
|
handleThemeStyle(useSettingsStore().theme); |
||||
|
}); |
||||
|
}); |
||||
|
</script> |
@ -0,0 +1,48 @@ |
|||||
|
// 前缀
|
||||
|
const animatePrefix = 'animate__animated '; |
||||
|
// 开启随机动画 随机动画值
|
||||
|
const animateList: string[] = [ |
||||
|
animatePrefix + 'animate__pulse', |
||||
|
animatePrefix + 'animate__rubberBand', |
||||
|
animatePrefix + 'animate__bounceIn', |
||||
|
animatePrefix + 'animate__bounceInLeft', |
||||
|
animatePrefix + 'animate__fadeIn', |
||||
|
animatePrefix + 'animate__fadeInLeft', |
||||
|
animatePrefix + 'animate__fadeInDown', |
||||
|
animatePrefix + 'animate__fadeInUp', |
||||
|
animatePrefix + 'animate__flipInX', |
||||
|
animatePrefix + 'animate__lightSpeedInLeft', |
||||
|
animatePrefix + 'animate__rotateInDownLeft', |
||||
|
animatePrefix + 'animate__rollIn', |
||||
|
animatePrefix + 'animate__rotateInDownLeft', |
||||
|
animatePrefix + 'animate__zoomIn', |
||||
|
animatePrefix + 'animate__zoomInDown', |
||||
|
animatePrefix + 'animate__slideInLeft', |
||||
|
animatePrefix + 'animate__lightSpeedIn' |
||||
|
]; |
||||
|
// 关闭随机动画后的默认效果
|
||||
|
const defaultAnimate = animatePrefix + 'animate__fadeIn'; |
||||
|
// 搜索隐藏显示动画
|
||||
|
const searchAnimate = { |
||||
|
enter: '', |
||||
|
leave: '' |
||||
|
}; |
||||
|
|
||||
|
// 菜单搜索动画
|
||||
|
const menuSearchAnimate = { |
||||
|
enter: animatePrefix + 'animate__fadeIn', |
||||
|
leave: animatePrefix + 'animate__fadeOut' |
||||
|
}; |
||||
|
// logo动画
|
||||
|
const logoAnimate = { |
||||
|
enter: animatePrefix + 'animate__fadeIn', |
||||
|
leave: animatePrefix + 'animate__fadeOut' |
||||
|
}; |
||||
|
|
||||
|
export default { |
||||
|
animateList, |
||||
|
defaultAnimate, |
||||
|
searchAnimate, |
||||
|
menuSearchAnimate, |
||||
|
logoAnimate |
||||
|
}; |
@ -0,0 +1,25 @@ |
|||||
|
|
||||
|
export type ID = string | number; |
||||
|
export type IDS = (string | number)[]; |
||||
|
|
||||
|
export interface BaseEntity { |
||||
|
createBy?: any; |
||||
|
createDept?: any; |
||||
|
createTime?: string; |
||||
|
updateBy?: any; |
||||
|
updateTime?: any; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 分页查询参数 |
||||
|
* @param pageNum 当前页 |
||||
|
* @param pageSize 每页大小 |
||||
|
* @param orderByColumn 排序字段 |
||||
|
* @param isAsc 是否升序 |
||||
|
*/ |
||||
|
export interface PageQuery { |
||||
|
pageNum?: number; |
||||
|
pageSize?: number; |
||||
|
orderByColumn?: string; |
||||
|
isAsc?: boolean; |
||||
|
} |
@ -0,0 +1,84 @@ |
|||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import request from '@/utils/request'; |
||||
|
import { ContractualAuditConfigVO, ContractualAuditConfigForm, ContractualAuditConfigQuery } from './model'; |
||||
|
import { ID, IDS } from '@/api/base'; |
||||
|
|
||||
|
/** |
||||
|
* 查询合同审核配置列表 |
||||
|
*/ |
||||
|
export const listContractualAuditConfig = (query?: ContractualAuditConfigQuery): AxiosPromise<ContractualAuditConfigVO[]> => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualAuditConfig/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 导出合同审核配置列表 |
||||
|
*/ |
||||
|
export const exportContractualAuditConfig = (query?: ContractualAuditConfigQuery) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualAuditConfig/export', |
||||
|
method: 'get', |
||||
|
params: query, |
||||
|
responseType: 'blob' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询合同审核配置详细 |
||||
|
*/ |
||||
|
export const getContractualAuditConfig = (id: ID): AxiosPromise<ContractualAuditConfigVO> => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualAuditConfig/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增合同审核配置 |
||||
|
*/ |
||||
|
export const addContractualAuditConfig = (data: ContractualAuditConfigForm) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualAuditConfig', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改合同审核配置 |
||||
|
*/ |
||||
|
export const updateContractualAuditConfig = (data: ContractualAuditConfigForm) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualAuditConfig', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除合同审核配置 |
||||
|
*/ |
||||
|
export const delContractualAuditConfig = (id: ID | IDS) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualAuditConfig/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 获取需求类型字典 |
||||
|
*/ |
||||
|
export const getRequirementTypeDict = () => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualAuditConfig/getRequirementTypeDict', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
export default { |
||||
|
listContractualAuditConfig, |
||||
|
getContractualAuditConfig |
||||
|
}; |
@ -0,0 +1,92 @@ |
|||||
|
export interface ContractualAuditConfigVO { |
||||
|
/** |
||||
|
* 主键ID |
||||
|
*/ |
||||
|
id: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 规则名称 |
||||
|
*/ |
||||
|
auditElement: string; |
||||
|
|
||||
|
/** |
||||
|
* 规则ID |
||||
|
*/ |
||||
|
requirementId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 规则描述 |
||||
|
*/ |
||||
|
requirementDescription: string; |
||||
|
|
||||
|
/** |
||||
|
* 是否表单,0-否,1-是 |
||||
|
*/ |
||||
|
isForm: number; |
||||
|
/** |
||||
|
* CPU/OS/数据库规则配置 |
||||
|
*/ |
||||
|
requirementCpuosdatabase?: any[]; |
||||
|
|
||||
|
/** |
||||
|
* 实体规则配置 |
||||
|
*/ |
||||
|
requirementEntity?: any[]; |
||||
|
|
||||
|
/** |
||||
|
* 产品属性规则配置 |
||||
|
*/ |
||||
|
requirementProductAttribute?: any[]; |
||||
|
|
||||
|
/** |
||||
|
* 普通合同规则配置 |
||||
|
*/ |
||||
|
requirementContractualNormal?: any[]; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export interface ContractualAuditConfigForm extends BaseEntity { |
||||
|
/** |
||||
|
* 主键ID |
||||
|
*/ |
||||
|
id?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 规则名称 |
||||
|
*/ |
||||
|
auditElement?: string; |
||||
|
|
||||
|
/** |
||||
|
* 规则ID |
||||
|
*/ |
||||
|
requirementId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 规则描述 |
||||
|
*/ |
||||
|
requirementDescription?: string; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export interface ContractualAuditConfigQuery extends PageQuery { |
||||
|
|
||||
|
/** |
||||
|
* 规则名称 |
||||
|
*/ |
||||
|
auditElement?: string; |
||||
|
|
||||
|
/** |
||||
|
* 规则ID |
||||
|
*/ |
||||
|
requirementId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 规则描述 |
||||
|
*/ |
||||
|
requirementDescription?: string; |
||||
|
|
||||
|
/** |
||||
|
* 日期范围参数 |
||||
|
*/ |
||||
|
params?: any; |
||||
|
} |
@ -0,0 +1,74 @@ |
|||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import request from '@/utils/request'; |
||||
|
import { ContractualInfoVO, ContractualInfoForm, ContractualInfoQuery } from './model'; |
||||
|
import { ID, IDS } from '@/api/base'; |
||||
|
|
||||
|
/** |
||||
|
* 查询合同信息列表 |
||||
|
*/ |
||||
|
export const listContractualInfo = (query?: ContractualInfoQuery): AxiosPromise<ContractualInfoVO[]> => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualInfo/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 导出合同信息列表 |
||||
|
*/ |
||||
|
export const exportContractualInfo = (query?: ContractualInfoQuery) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualInfo/export', |
||||
|
method: 'get', |
||||
|
params: query, |
||||
|
responseType: 'blob' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询合同信息详细 |
||||
|
*/ |
||||
|
export const getContractualInfo = (id: ID): AxiosPromise<ContractualInfoVO> => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualInfo/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增合同信息 |
||||
|
*/ |
||||
|
export const addContractualInfo = (data: ContractualInfoForm) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualInfo', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改合同信息 |
||||
|
*/ |
||||
|
export const updateContractualInfo = (data: ContractualInfoForm) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualInfo', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除合同信息 |
||||
|
*/ |
||||
|
export const delContractualInfo = (id: ID | IDS) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualInfo/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
export default { |
||||
|
listContractualInfo, |
||||
|
getContractualInfo |
||||
|
}; |
@ -0,0 +1,88 @@ |
|||||
|
export interface ContractualInfoVO { |
||||
|
/** |
||||
|
* 合同名称 |
||||
|
*/ |
||||
|
fileName: string; |
||||
|
|
||||
|
/** |
||||
|
* 采购人名称 |
||||
|
*/ |
||||
|
purchaserName: string; |
||||
|
|
||||
|
/** |
||||
|
* 供应商名称或姓名 |
||||
|
*/ |
||||
|
supplierName: string; |
||||
|
|
||||
|
/** |
||||
|
* 合同签订时间 |
||||
|
*/ |
||||
|
signDate: string; |
||||
|
|
||||
|
/** |
||||
|
* 合同金额 |
||||
|
*/ |
||||
|
contractAmount: string; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export interface ContractualInfoForm extends BaseEntity { |
||||
|
/** |
||||
|
* 合同名称 |
||||
|
*/ |
||||
|
fileName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 采购人名称 |
||||
|
*/ |
||||
|
purchaserName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 供应商名称或姓名 |
||||
|
*/ |
||||
|
supplierName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 合同签订时间 |
||||
|
*/ |
||||
|
signDate?: string; |
||||
|
|
||||
|
/** |
||||
|
* 合同金额 |
||||
|
*/ |
||||
|
contractAmount?: string; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export interface ContractualInfoQuery extends PageQuery { |
||||
|
|
||||
|
/** |
||||
|
* 合同名称 |
||||
|
*/ |
||||
|
fileName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 采购人名称 |
||||
|
*/ |
||||
|
purchaserName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 供应商名称或姓名 |
||||
|
*/ |
||||
|
supplierName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 合同签订时间 |
||||
|
*/ |
||||
|
signDate?: string; |
||||
|
|
||||
|
/** |
||||
|
* 合同金额 |
||||
|
*/ |
||||
|
contractAmount?: string; |
||||
|
|
||||
|
/** |
||||
|
* 日期范围参数 |
||||
|
*/ |
||||
|
params?: any; |
||||
|
} |
@ -0,0 +1,98 @@ |
|||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import request from '@/utils/request'; |
||||
|
import { ContractualProductInfoVO, ContractualProductInfoForm, ContractualProductInfoQuery } from './model'; |
||||
|
import { ID, IDS } from '@/api/base'; |
||||
|
|
||||
|
/** |
||||
|
* 查询合同产品信息列表 |
||||
|
*/ |
||||
|
export const listContractualProductInfo = (query?: ContractualProductInfoQuery): AxiosPromise<ContractualProductInfoVO[]> => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualProductInfo/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 导出合同产品信息列表 |
||||
|
*/ |
||||
|
export const exportContractualProductInfo = (query?: ContractualProductInfoQuery) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualProductInfo/export', |
||||
|
method: 'get', |
||||
|
params: query, |
||||
|
responseType: 'blob' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询合同产品信息详细 |
||||
|
*/ |
||||
|
export const getContractualProductInfo = (id: ID): AxiosPromise<ContractualProductInfoVO> => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualProductInfo/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增合同产品信息 |
||||
|
*/ |
||||
|
export const addContractualProductInfo = (data: ContractualProductInfoForm) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualProductInfo', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改合同产品信息 |
||||
|
*/ |
||||
|
export const updateContractualProductInfo = (data: ContractualProductInfoForm) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualProductInfo', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除合同产品信息 |
||||
|
*/ |
||||
|
export const delContractualProductInfo = (id: ID | IDS) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualProductInfo/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询合同产品统计列表 |
||||
|
*/ |
||||
|
export const listContractualProductSummaryPage = (query?: any) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualProductInfo/listContractualProductSummaryPage', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 获取产品统计数据 |
||||
|
*/ |
||||
|
export const getProductStatistics = (type: string) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualProductInfo/getProductStatistics', |
||||
|
method: 'get', |
||||
|
params: { type } |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
export default { |
||||
|
listContractualProductInfo, |
||||
|
getContractualProductInfo, |
||||
|
listContractualProductSummaryPage, |
||||
|
getProductStatistics |
||||
|
}; |
@ -0,0 +1,158 @@ |
|||||
|
export interface ContractualProductInfoVO { |
||||
|
/** |
||||
|
* 主键ID |
||||
|
*/ |
||||
|
id: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 任务ID |
||||
|
*/ |
||||
|
taskId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 文件名称 |
||||
|
*/ |
||||
|
fileName: string; |
||||
|
|
||||
|
/** |
||||
|
* 品牌 |
||||
|
*/ |
||||
|
brand: string; |
||||
|
|
||||
|
/** |
||||
|
* 版本号 |
||||
|
*/ |
||||
|
versionStr: string; |
||||
|
|
||||
|
/** |
||||
|
* 单价 |
||||
|
*/ |
||||
|
unitPrice: number; |
||||
|
|
||||
|
/** |
||||
|
* 价格单位 |
||||
|
*/ |
||||
|
priceUnit: string; |
||||
|
|
||||
|
/** |
||||
|
* 数量 |
||||
|
*/ |
||||
|
quantity: number; |
||||
|
|
||||
|
/** |
||||
|
* 总价 |
||||
|
*/ |
||||
|
totalPrice: number; |
||||
|
|
||||
|
/** |
||||
|
* 类型 |
||||
|
*/ |
||||
|
type: string; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export interface ContractualProductInfoForm extends BaseEntity { |
||||
|
/** |
||||
|
* 主键ID |
||||
|
*/ |
||||
|
id?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 任务ID |
||||
|
*/ |
||||
|
taskId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 文件名称 |
||||
|
*/ |
||||
|
fileName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 品牌 |
||||
|
*/ |
||||
|
brand?: string; |
||||
|
|
||||
|
/** |
||||
|
* 版本号 |
||||
|
*/ |
||||
|
versionStr?: string; |
||||
|
|
||||
|
/** |
||||
|
* 单价 |
||||
|
*/ |
||||
|
unitPrice?: number; |
||||
|
|
||||
|
/** |
||||
|
* 价格单位 |
||||
|
*/ |
||||
|
priceUnit?: string; |
||||
|
|
||||
|
/** |
||||
|
* 数量 |
||||
|
*/ |
||||
|
quantity?: number; |
||||
|
|
||||
|
/** |
||||
|
* 总价 |
||||
|
*/ |
||||
|
totalPrice?: number; |
||||
|
|
||||
|
/** |
||||
|
* 类型 |
||||
|
*/ |
||||
|
type?: string; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export interface ContractualProductInfoQuery extends PageQuery { |
||||
|
|
||||
|
/** |
||||
|
* 任务ID |
||||
|
*/ |
||||
|
taskId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 文件名称 |
||||
|
*/ |
||||
|
fileName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 品牌 |
||||
|
*/ |
||||
|
brand?: string; |
||||
|
|
||||
|
/** |
||||
|
* 版本号 |
||||
|
*/ |
||||
|
versionStr?: string; |
||||
|
|
||||
|
/** |
||||
|
* 单价 |
||||
|
*/ |
||||
|
unitPrice?: number; |
||||
|
|
||||
|
/** |
||||
|
* 价格单位 |
||||
|
*/ |
||||
|
priceUnit?: string; |
||||
|
|
||||
|
/** |
||||
|
* 数量 |
||||
|
*/ |
||||
|
quantity?: number; |
||||
|
|
||||
|
/** |
||||
|
* 总价 |
||||
|
*/ |
||||
|
totalPrice?: number; |
||||
|
|
||||
|
/** |
||||
|
* 类型 |
||||
|
*/ |
||||
|
type?: string; |
||||
|
|
||||
|
/** |
||||
|
* 日期范围参数 |
||||
|
*/ |
||||
|
params?: any; |
||||
|
} |
@ -0,0 +1,74 @@ |
|||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import request from '@/utils/request'; |
||||
|
import { ContractualTasksVO, ContractualTasksForm, ContractualTasksQuery } from './model'; |
||||
|
import { ID, IDS } from '@/api/base'; |
||||
|
|
||||
|
/** |
||||
|
* 查询合同任务列表 |
||||
|
*/ |
||||
|
export const listContractualTasks = (query?: ContractualTasksQuery): AxiosPromise<ContractualTasksVO[]> => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualTasks/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 导出合同任务列表 |
||||
|
*/ |
||||
|
export const exportContractualTasks = (query?: ContractualTasksQuery) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualTasks/export', |
||||
|
method: 'get', |
||||
|
params: query, |
||||
|
responseType: 'blob' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询合同任务详细 |
||||
|
*/ |
||||
|
export const getContractualTasks = (id: ID): AxiosPromise<ContractualTasksVO> => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualTasks/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增合同任务 |
||||
|
*/ |
||||
|
export const addContractualTasks = (data: ContractualTasksForm) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualTasks', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改合同任务 |
||||
|
*/ |
||||
|
export const updateContractualTasks = (data: ContractualTasksForm) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualTasks', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除合同任务 |
||||
|
*/ |
||||
|
export const delContractualTasks = (id: ID | IDS) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/ContractualTasks/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
export default { |
||||
|
listContractualTasks, |
||||
|
getContractualTasks |
||||
|
}; |
@ -0,0 +1,114 @@ |
|||||
|
|
||||
|
export interface ContractualTasksVO { |
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
id: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 模型所属行业 |
||||
|
*/ |
||||
|
taskIndustry: string; |
||||
|
|
||||
|
/** |
||||
|
* 模型所属区域 |
||||
|
*/ |
||||
|
taskRegion: string; |
||||
|
|
||||
|
/** |
||||
|
* 合同任务名称 |
||||
|
*/ |
||||
|
contractTaskName: string; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
documentName: string; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
ossId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
progressStatus: string; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export interface ContractualTasksForm extends BaseEntity { |
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
id?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 模型所属行业 |
||||
|
*/ |
||||
|
taskIndustry?: string; |
||||
|
|
||||
|
/** |
||||
|
* 模型所属区域 |
||||
|
*/ |
||||
|
taskRegion?: string; |
||||
|
|
||||
|
/** |
||||
|
* 合同任务名称 |
||||
|
*/ |
||||
|
contractTaskName?: string; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
documentName?: string; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
ossId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
progressStatus?: string; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export interface ContractualTasksQuery extends PageQuery { |
||||
|
|
||||
|
/** |
||||
|
* 模型所属行业 |
||||
|
*/ |
||||
|
taskIndustry?: string; |
||||
|
|
||||
|
/** |
||||
|
* 模型所属区域 |
||||
|
*/ |
||||
|
taskRegion?: string; |
||||
|
|
||||
|
/** |
||||
|
* 合同任务名称 |
||||
|
*/ |
||||
|
contractTaskName?: string; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
documentName?: string; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
ossId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
progressStatus?: string; |
||||
|
|
||||
|
/** |
||||
|
* 日期范围参数 |
||||
|
*/ |
||||
|
params?: any; |
||||
|
} |
@ -0,0 +1,156 @@ |
|||||
|
import { AxiosPromise, AxiosProgressEvent } from 'axios'; |
||||
|
import request from '@/utils/request'; |
||||
|
import { JyjcontractualTaskBatchVO, JyjcontractualTaskBatchForm, JyjcontractualTaskBatchQuery } from './model'; |
||||
|
import { ID, IDS } from '@/api/base'; |
||||
|
// import { UploadFileParams } from '#/axios';
|
||||
|
|
||||
|
/** |
||||
|
* 查询合同批处理记录列表 |
||||
|
*/ |
||||
|
export const listJyjcontractualTaskBatch = (query?: JyjcontractualTaskBatchQuery): AxiosPromise<JyjcontractualTaskBatchVO[]> => { |
||||
|
return request({ |
||||
|
url: '/productManagement/JyjcontractualTaskBatch/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 导出合同批处理记录列表 |
||||
|
*/ |
||||
|
export const exportJyjcontractualTaskBatch = (query?: JyjcontractualTaskBatchQuery) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/JyjcontractualTaskBatch/export', |
||||
|
method: 'get', |
||||
|
params: query, |
||||
|
responseType: 'blob' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询合同批处理记录详细 |
||||
|
*/ |
||||
|
export const getJyjcontractualTaskBatch = (id: ID): AxiosPromise<JyjcontractualTaskBatchVO> => { |
||||
|
return request({ |
||||
|
url: '/productManagement/JyjcontractualTaskBatch/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增合同批处理记录 |
||||
|
*/ |
||||
|
export const addJyjcontractualTaskBatch = (data: JyjcontractualTaskBatchForm) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/JyjcontractualTaskBatch', |
||||
|
method: 'post', |
||||
|
data: data, |
||||
|
timeout: 1000 * 60 * 10 |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改合同批处理记录 |
||||
|
*/ |
||||
|
export const updateJyjcontractualTaskBatch = (data: JyjcontractualTaskBatchForm) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/JyjcontractualTaskBatch', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除合同批处理记录 |
||||
|
*/ |
||||
|
export const delJyjcontractualTaskBatch = (id: ID | IDS) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/JyjcontractualTaskBatch/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// /**
|
||||
|
// * 上传合同文件
|
||||
|
// */
|
||||
|
// export const uploadContractual = (data: UploadFileParams, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void) => {
|
||||
|
// return request({
|
||||
|
// url: '/productManagement/JyjcontractualTaskBatch/back/upload',
|
||||
|
// method: 'post',
|
||||
|
// data: data,
|
||||
|
// timeout: 1000 * 60 * 10,
|
||||
|
// onUploadProgress
|
||||
|
// });
|
||||
|
// };
|
||||
|
|
||||
|
/** |
||||
|
* 根据id获取合同的审查结果 |
||||
|
*/ |
||||
|
export const getContractualResultById = (id: ID) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/JyjcontractualTaskBatch/getContractulResultById/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 获取PDF文件流 |
||||
|
*/ |
||||
|
export const getPdfFile = (id: Number) => { |
||||
|
return request({ |
||||
|
url: `/productManagement/JyjcontractualTaskBatch/getContractulPdf/${id}`, |
||||
|
method: 'get', |
||||
|
responseType: 'blob', |
||||
|
timeout: 1000 * 60 * 10, |
||||
|
headers: { |
||||
|
Accept: 'application/pdf' |
||||
|
}, |
||||
|
isReturnNativeResponse: true |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 根据id获取合同内容 |
||||
|
*/ |
||||
|
export const getContractulContent = (id: ID) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/JyjcontractualTaskBatch/getContractulContent/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
export const exportJyjcontractualTaskBatchResult = (documentName: string, batchName: string, resultType: string, problemPoint?: string) => { |
||||
|
return request({ |
||||
|
url: `/productManagement/JyjcontractualTaskBatch/export`, |
||||
|
method: 'get', |
||||
|
params: { |
||||
|
documentName, |
||||
|
batchName, |
||||
|
resultType, |
||||
|
problemPoint |
||||
|
}, |
||||
|
responseType: 'blob' |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 合并批次 |
||||
|
*/ |
||||
|
export const mergeBatches = (data: { ids: string[] | number[], documentName: string, batchName: string }) => { |
||||
|
return request({ |
||||
|
url: '/productManagement/JyjcontractualTaskBatch/merge', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
|
||||
|
export default { |
||||
|
listJyjcontractualTaskBatch, |
||||
|
getJyjcontractualTaskBatch, |
||||
|
getContractualResultById, |
||||
|
getContractulContent, |
||||
|
exportJyjcontractualTaskBatchResult, |
||||
|
mergeBatches |
||||
|
}; |
@ -0,0 +1,159 @@ |
|||||
|
|
||||
|
export interface JyjcontractualTaskBatchVO { |
||||
|
/** |
||||
|
* 任务名称 |
||||
|
*/ |
||||
|
taskName: string; |
||||
|
|
||||
|
/** |
||||
|
* 任务类型 |
||||
|
*/ |
||||
|
taskType: string; |
||||
|
|
||||
|
/** |
||||
|
* 文档名称 |
||||
|
*/ |
||||
|
documentName: string; |
||||
|
|
||||
|
/** |
||||
|
* OSS文件ID |
||||
|
*/ |
||||
|
ossId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 进度状态 |
||||
|
*/ |
||||
|
progressStatus: string; |
||||
|
|
||||
|
/** |
||||
|
* 列队任务id |
||||
|
*/ |
||||
|
groupId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 合同总数 |
||||
|
*/ |
||||
|
totalContracts: number; |
||||
|
|
||||
|
/** |
||||
|
* 已审批总数 |
||||
|
*/ |
||||
|
approvedCount: number; |
||||
|
|
||||
|
/** |
||||
|
* 审核通过数量 |
||||
|
*/ |
||||
|
passCount: number; |
||||
|
|
||||
|
/** |
||||
|
* 审核不通过数量 |
||||
|
*/ |
||||
|
rejectCount: number; |
||||
|
|
||||
|
/** |
||||
|
* 非审查范围数量 |
||||
|
*/ |
||||
|
irrelevantCount: number; |
||||
|
|
||||
|
/** |
||||
|
* 进度(百分比) |
||||
|
*/ |
||||
|
progress: number; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export interface JyjcontractualTaskBatchForm extends BaseEntity { |
||||
|
/** |
||||
|
* 任务名称 |
||||
|
*/ |
||||
|
taskName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 任务类型 |
||||
|
*/ |
||||
|
taskType?: string; |
||||
|
|
||||
|
/** |
||||
|
* 文档名称 |
||||
|
*/ |
||||
|
documentName?: string; |
||||
|
|
||||
|
/** |
||||
|
* OSS文件ID |
||||
|
*/ |
||||
|
ossId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 进度状态 |
||||
|
*/ |
||||
|
progressStatus?: string; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export interface JyjcontractualTaskBatchQuery extends PageQuery { |
||||
|
|
||||
|
/** |
||||
|
* 任务名称 |
||||
|
*/ |
||||
|
taskName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 任务类型 |
||||
|
*/ |
||||
|
taskType?: string; |
||||
|
|
||||
|
/** |
||||
|
* 文档名称 |
||||
|
*/ |
||||
|
documentName?: string; |
||||
|
|
||||
|
/** |
||||
|
* OSS文件ID |
||||
|
*/ |
||||
|
ossId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 进度状态 |
||||
|
*/ |
||||
|
progressStatus?: string; |
||||
|
|
||||
|
/** |
||||
|
* 列队任务id |
||||
|
*/ |
||||
|
groupId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 合同总数 |
||||
|
*/ |
||||
|
totalContracts?: number; |
||||
|
|
||||
|
/** |
||||
|
* 已审批总数 |
||||
|
*/ |
||||
|
approvedCount?: number; |
||||
|
|
||||
|
/** |
||||
|
* 审核通过数量 |
||||
|
*/ |
||||
|
passCount?: number; |
||||
|
|
||||
|
/** |
||||
|
* 审核不通过数量 |
||||
|
*/ |
||||
|
rejectCount?: number; |
||||
|
|
||||
|
/** |
||||
|
* 非审查范围数量 |
||||
|
*/ |
||||
|
irrelevantCount?: number; |
||||
|
|
||||
|
/** |
||||
|
* 进度(百分比) |
||||
|
*/ |
||||
|
progress?: number; |
||||
|
|
||||
|
/** |
||||
|
* 日期范围参数 |
||||
|
*/ |
||||
|
params?: any; |
||||
|
} |
@ -0,0 +1,62 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { DemoVO, DemoForm, DemoQuery } from '@/api/demo/demo/types'; |
||||
|
|
||||
|
/** |
||||
|
* 查询测试单列表 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
export const listDemo = (query?: DemoQuery): AxiosPromise<DemoVO[]> => { |
||||
|
return request({ |
||||
|
url: '/demo/demo/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询测试单详细 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const getDemo = (id: string | number): AxiosPromise<DemoVO> => { |
||||
|
return request({ |
||||
|
url: '/demo/demo/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增测试单 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const addDemo = (data: DemoForm) => { |
||||
|
return request({ |
||||
|
url: '/demo/demo', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改测试单 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const updateDemo = (data: DemoForm) => { |
||||
|
return request({ |
||||
|
url: '/demo/demo', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除测试单 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const delDemo = (id: string | number | Array<string | number>) => { |
||||
|
return request({ |
||||
|
url: '/demo/demo/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,90 @@ |
|||||
|
export interface DemoVO { |
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
id: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 部门id |
||||
|
*/ |
||||
|
deptId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 用户id |
||||
|
*/ |
||||
|
userId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 排序号 |
||||
|
*/ |
||||
|
orderNum: number; |
||||
|
|
||||
|
/** |
||||
|
* key键 |
||||
|
*/ |
||||
|
testKey: string; |
||||
|
|
||||
|
/** |
||||
|
* 值 |
||||
|
*/ |
||||
|
value: string; |
||||
|
} |
||||
|
|
||||
|
export interface DemoForm extends BaseEntity { |
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
id?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 部门id |
||||
|
*/ |
||||
|
deptId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 用户id |
||||
|
*/ |
||||
|
userId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 排序号 |
||||
|
*/ |
||||
|
orderNum?: number; |
||||
|
|
||||
|
/** |
||||
|
* key键 |
||||
|
*/ |
||||
|
testKey?: string; |
||||
|
|
||||
|
/** |
||||
|
* 值 |
||||
|
*/ |
||||
|
value?: string; |
||||
|
} |
||||
|
|
||||
|
export interface DemoQuery extends PageQuery { |
||||
|
/** |
||||
|
* 部门id |
||||
|
*/ |
||||
|
deptId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 用户id |
||||
|
*/ |
||||
|
userId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 排序号 |
||||
|
*/ |
||||
|
orderNum?: number; |
||||
|
|
||||
|
/** |
||||
|
* key键 |
||||
|
*/ |
||||
|
testKey?: string; |
||||
|
|
||||
|
/** |
||||
|
* 值 |
||||
|
*/ |
||||
|
value?: string; |
||||
|
} |
@ -0,0 +1,62 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { TreeVO, TreeForm, TreeQuery } from '@/api/demo/tree/types'; |
||||
|
|
||||
|
/** |
||||
|
* 查询测试树列表 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
export const listTree = (query?: TreeQuery): AxiosPromise<TreeVO[]> => { |
||||
|
return request({ |
||||
|
url: '/demo/tree/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询测试树详细 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const getTree = (id: string | number): AxiosPromise<TreeVO> => { |
||||
|
return request({ |
||||
|
url: '/demo/tree/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增测试树 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const addTree = (data: TreeForm) => { |
||||
|
return request({ |
||||
|
url: '/demo/tree', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改测试树 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const updateTree = (data: TreeForm) => { |
||||
|
return request({ |
||||
|
url: '/demo/tree', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除测试树 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const delTree = (id: string | number | Array<string | number>) => { |
||||
|
return request({ |
||||
|
url: '/demo/tree/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,80 @@ |
|||||
|
export interface TreeVO { |
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
id: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 父id |
||||
|
*/ |
||||
|
parentId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 部门id |
||||
|
*/ |
||||
|
deptId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 用户id |
||||
|
*/ |
||||
|
userId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 值 |
||||
|
*/ |
||||
|
treeName: string; |
||||
|
|
||||
|
/** |
||||
|
* 子对象 |
||||
|
*/ |
||||
|
children: TreeVO[]; |
||||
|
} |
||||
|
|
||||
|
export interface TreeForm extends BaseEntity { |
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
id?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 父id |
||||
|
*/ |
||||
|
parentId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 部门id |
||||
|
*/ |
||||
|
deptId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 用户id |
||||
|
*/ |
||||
|
userId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 值 |
||||
|
*/ |
||||
|
treeName?: string; |
||||
|
} |
||||
|
|
||||
|
export interface TreeQuery { |
||||
|
/** |
||||
|
* 父id |
||||
|
*/ |
||||
|
parentId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 部门id |
||||
|
*/ |
||||
|
deptId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 用户id |
||||
|
*/ |
||||
|
userId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 值 |
||||
|
*/ |
||||
|
treeName?: string; |
||||
|
} |
@ -0,0 +1,191 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { ID, IDS, } from '@/api/base'; |
||||
|
import { DocumentTaskResultsVO, DocumentTaskResultsForm, DocumentTaskResultsQuery } from './model'; |
||||
|
import { message } from 'ant-design-vue'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
interface DownloadOptions { |
||||
|
filename?: string; |
||||
|
mimeType?: string; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 通用文件下载函数 |
||||
|
* @param url 下载地址 |
||||
|
* @param onError 错误处理回调 |
||||
|
* @returns Promise<boolean> 下载是否成功 |
||||
|
*/ |
||||
|
export async function useDownload( |
||||
|
url: string, |
||||
|
onError?: (error: any) => void |
||||
|
): Promise<boolean> { |
||||
|
try { |
||||
|
const response = await request({ |
||||
|
url, |
||||
|
method: 'get', |
||||
|
responseType: 'blob', |
||||
|
timeout: 60000, // 设置较长的超时时间
|
||||
|
isReturnNativeResponse: true, |
||||
|
}); |
||||
|
|
||||
|
// 检查响应类型
|
||||
|
const contentType = response.headers['content-type']; |
||||
|
if (contentType && contentType.includes('application/json')) { |
||||
|
// 如果返回的是JSON(通常是错误信息),转换并抛出
|
||||
|
const reader = new FileReader(); |
||||
|
reader.onload = () => { |
||||
|
const error = JSON.parse(reader.result as string); |
||||
|
message.error(error.message || '下载失败'); |
||||
|
onError?.(error); |
||||
|
}; |
||||
|
reader.readAsText(response.data); |
||||
|
return false; |
||||
|
} |
||||
|
|
||||
|
// 获取文件名
|
||||
|
const contentDisposition = response.headers['content-disposition']; |
||||
|
let fileName = ''; |
||||
|
|
||||
|
if (contentDisposition) { |
||||
|
const matches = contentDisposition.match(/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/); |
||||
|
if (matches && matches[1]) { |
||||
|
fileName = decodeURIComponent(matches[1].replace(/['"]/g, '')); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 创建Blob对象
|
||||
|
const blob = new Blob([response.data], { |
||||
|
type: contentType || 'application/octet-stream' |
||||
|
}); |
||||
|
|
||||
|
// 现代浏览器的处理
|
||||
|
const url = window.URL.createObjectURL(blob); |
||||
|
const link = document.createElement('a'); |
||||
|
link.href = url; |
||||
|
link.download = fileName; |
||||
|
link.style.display = 'none'; |
||||
|
document.body.appendChild(link); |
||||
|
link.click(); |
||||
|
document.body.removeChild(link); |
||||
|
window.URL.revokeObjectURL(url); |
||||
|
|
||||
|
return true; |
||||
|
} catch (error: any) { |
||||
|
console.error('下载失败:', error); |
||||
|
message.error(error.message || '下载失败,请稍后重试'); |
||||
|
onError?.(error); |
||||
|
return false; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询文档任务结果列表 |
||||
|
* @param params |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTaskResultsList(params?: DocumentTaskResultsQuery): AxiosPromise<DocumentTaskResultsVO[]> { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTaskResults/list', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 导出文档任务结果列表 |
||||
|
* @param params |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTaskResultsExport(params?: DocumentTaskResultsQuery) { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTaskResults/export', |
||||
|
method: 'get', |
||||
|
params: params || {}, |
||||
|
responseType: 'blob' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询文档任务结果详细 |
||||
|
* @param id id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTaskResultsInfo(id: string | number): AxiosPromise<DocumentTaskResultsVO> { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTaskResults/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 根据任务id查询文档任务结果详细 |
||||
|
* @param id id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTaskResultsInfoByTaskId(id: string | number): AxiosPromise<DocumentTaskResultsVO> { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTaskResults/task/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 新增文档任务结果 |
||||
|
* @param data |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTaskResultsAdd(data: DocumentTaskResultsForm) { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTaskResults', |
||||
|
method: 'post', |
||||
|
data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 更新文档任务结果 |
||||
|
* @param data |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTaskResultsUpdate(data: DocumentTaskResultsForm) { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTaskResults', |
||||
|
method: 'put', |
||||
|
data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除文档任务结果 |
||||
|
* @param id id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTaskResultsRemove(id: string | number | (string | number)[]) { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTaskResults/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 下载文档任务结果 |
||||
|
* @param id id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTaskResultDownload(id: string | number | (string | number)[]) { |
||||
|
return useDownload(`/productManagement/DocumentTaskResults/downloadResult/${id}`); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 新增合同任务 |
||||
|
* @param documentTaskId 任务ID |
||||
|
* @param contractualRes 合同评审数据 |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function modifyContractReview(documentTaskId: string | number, contractualRes: any) { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTaskResults/modifyContractReview/' + documentTaskId, |
||||
|
method: 'put', |
||||
|
data: contractualRes |
||||
|
}); |
||||
|
} |
@ -0,0 +1,34 @@ |
|||||
|
import { BaseEntity, PageQuery } from '@/api/base'; |
||||
|
|
||||
|
export interface DocumentTaskResultsVO { |
||||
|
/** |
||||
|
* 任务结果 |
||||
|
*/ |
||||
|
result?: string; |
||||
|
} |
||||
|
|
||||
|
export interface DocumentTaskResultsForm extends BaseEntity { |
||||
|
} |
||||
|
|
||||
|
export interface DocumentTaskResultsQuery extends PageQuery { |
||||
|
|
||||
|
/** |
||||
|
* id |
||||
|
*/ |
||||
|
id?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 任务id |
||||
|
*/ |
||||
|
documentTaskId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 任务结果 |
||||
|
*/ |
||||
|
result?: string; |
||||
|
|
||||
|
/** |
||||
|
* 日期范围参数 |
||||
|
*/ |
||||
|
params?: any; |
||||
|
} |
@ -0,0 +1,111 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { ID, IDS, } from '@/api/base'; |
||||
|
import { DocumentTasksVO, DocumentTasksForm, DocumentTasksQuery } from './model'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
/** |
||||
|
* 查询文档任务列表 |
||||
|
* @param params |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTasksList(params?: DocumentTasksQuery): AxiosPromise<DocumentTasksVO[]> { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTasks/list', |
||||
|
method: 'get', |
||||
|
params |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 导出文档任务列表 |
||||
|
* @param params |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTasksExport(params?: DocumentTasksQuery) { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTasks/export', |
||||
|
method: 'get', |
||||
|
params: params || {}, |
||||
|
responseType: 'blob' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询文档任务详细 |
||||
|
* @param id id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTasksInfo(id: string | number): AxiosPromise<DocumentTasksVO> { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTasks/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 新增文档任务 |
||||
|
* @param data |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTasksAdd(data: DocumentTasksForm) { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTasks', |
||||
|
method: 'post', |
||||
|
data, |
||||
|
timeout: 1000 * 60 * 10 |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 更新文档任务 |
||||
|
* @param data |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTasksUpdate(data: DocumentTasksForm) { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTasks', |
||||
|
method: 'put', |
||||
|
data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除文档任务 |
||||
|
* @param id id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function DocumentTasksRemove(id: string | number | (string | number)[]) { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTasks/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 停止任务 |
||||
|
*/ |
||||
|
export function DocumentTasksStop(id: string | number | (string | number)[]) { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTasks/stopTask/' + id, |
||||
|
method: 'put' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 上传文档 |
||||
|
* @param formData 表单数据 |
||||
|
* @param onProgress 进度回调函数 |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function uploadDocument(formData: FormData, onProgress?: (progressEvent: any) => void) { |
||||
|
return request({ |
||||
|
url: '/productManagement/DocumentTasks/back/upload', |
||||
|
method: 'post', |
||||
|
data: formData, |
||||
|
headers: { |
||||
|
'Content-Type': 'multipart/form-data' |
||||
|
}, |
||||
|
timeout: 1000 * 60 * 10, |
||||
|
onUploadProgress: onProgress |
||||
|
}); |
||||
|
} |
@ -0,0 +1,76 @@ |
|||||
|
import { BaseEntity, PageQuery } from '@/api/base'; |
||||
|
|
||||
|
export interface DocumentTasksVO { |
||||
|
id: string | number; |
||||
|
/** |
||||
|
* 任务名称 |
||||
|
*/ |
||||
|
taskName: string; |
||||
|
|
||||
|
/** |
||||
|
* 文档名称 |
||||
|
*/ |
||||
|
documentName: string; |
||||
|
|
||||
|
/** |
||||
|
* 预计时间 |
||||
|
*/ |
||||
|
estimatedCompletionTime: string; |
||||
|
|
||||
|
/** |
||||
|
* 状态 |
||||
|
*/ |
||||
|
progressStatus: string; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export interface DocumentTasksForm extends BaseEntity { |
||||
|
/** |
||||
|
* 任务名称 |
||||
|
*/ |
||||
|
taskName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 文档名称 |
||||
|
*/ |
||||
|
documentName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 预计时间 |
||||
|
*/ |
||||
|
estimatedCompletionTime?: string; |
||||
|
|
||||
|
/** |
||||
|
* 状态 |
||||
|
*/ |
||||
|
progressStatus?: string; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
export interface DocumentTasksQuery extends PageQuery { |
||||
|
|
||||
|
/** |
||||
|
* 任务名称 |
||||
|
*/ |
||||
|
taskName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 文档名称 |
||||
|
*/ |
||||
|
documentName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 预计时间 |
||||
|
*/ |
||||
|
estimatedCompletionTime?: string; |
||||
|
|
||||
|
/** |
||||
|
* 状态 |
||||
|
*/ |
||||
|
progressStatus?: string; |
||||
|
|
||||
|
/** |
||||
|
* 日期范围参数 |
||||
|
*/ |
||||
|
params?: any; |
||||
|
} |
@ -0,0 +1,113 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { LoginData, LoginResult, VerifyCodeResult, TenantInfo } from './types'; |
||||
|
import { UserInfo } from '@/api/system/user/types'; |
||||
|
|
||||
|
// pc端固定客户端授权id
|
||||
|
const clientId = import.meta.env.VITE_APP_CLIENT_ID; |
||||
|
|
||||
|
/** |
||||
|
* @param data {LoginData} |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function login(data: LoginData): AxiosPromise<LoginResult> { |
||||
|
const params = { |
||||
|
...data, |
||||
|
clientId: data.clientId || clientId, |
||||
|
grantType: data.grantType || 'password' |
||||
|
}; |
||||
|
return request({ |
||||
|
url: '/auth/login', |
||||
|
headers: { |
||||
|
isToken: false, |
||||
|
isEncrypt: true, |
||||
|
repeatSubmit: false |
||||
|
}, |
||||
|
method: 'post', |
||||
|
data: params |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 注册方法
|
||||
|
export function register(data: any) { |
||||
|
const params = { |
||||
|
...data, |
||||
|
clientId: clientId, |
||||
|
grantType: 'password' |
||||
|
}; |
||||
|
return request({ |
||||
|
url: '/auth/register', |
||||
|
headers: { |
||||
|
isToken: false, |
||||
|
isEncrypt: true, |
||||
|
repeatSubmit: false |
||||
|
}, |
||||
|
method: 'post', |
||||
|
data: params |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 注销 |
||||
|
*/ |
||||
|
export function logout() { |
||||
|
if (import.meta.env.VITE_APP_SSE === 'true') { |
||||
|
request({ |
||||
|
url: '/resource/sse/close', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
return request({ |
||||
|
url: '/auth/logout', |
||||
|
method: 'post' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取验证码 |
||||
|
*/ |
||||
|
export function getCodeImg(): AxiosPromise<VerifyCodeResult> { |
||||
|
return request({ |
||||
|
url: '/auth/code', |
||||
|
headers: { |
||||
|
isToken: false |
||||
|
}, |
||||
|
method: 'get', |
||||
|
timeout: 20000 |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 第三方登录 |
||||
|
*/ |
||||
|
export function callback(data: LoginData): AxiosPromise<any> { |
||||
|
const LoginData = { |
||||
|
...data, |
||||
|
clientId: clientId, |
||||
|
grantType: 'social' |
||||
|
}; |
||||
|
return request({ |
||||
|
url: '/auth/social/callback', |
||||
|
method: 'post', |
||||
|
data: LoginData |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 获取用户详细信息
|
||||
|
export function getInfo(): AxiosPromise<UserInfo> { |
||||
|
return request({ |
||||
|
url: '/system/user/getInfo', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 获取租户列表
|
||||
|
export function getTenantList(isToken: boolean): AxiosPromise<TenantInfo> { |
||||
|
return request({ |
||||
|
url: '/auth/tenant/list', |
||||
|
headers: { |
||||
|
isToken: isToken |
||||
|
}, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,11 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { RouteRecordRaw } from 'vue-router'; |
||||
|
|
||||
|
// 获取路由
|
||||
|
export function getRouters(): AxiosPromise<RouteRecordRaw[]> { |
||||
|
return request({ |
||||
|
url: '/system/menu/getRouters', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,59 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { CacheVO } from './types'; |
||||
|
|
||||
|
// 查询缓存详细
|
||||
|
export function getCache(): AxiosPromise<CacheVO> { |
||||
|
return request({ |
||||
|
url: '/monitor/cache', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询缓存名称列表
|
||||
|
export function listCacheName() { |
||||
|
return request({ |
||||
|
url: '/monitor/cache/getNames', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询缓存键名列表
|
||||
|
export function listCacheKey(cacheName: string) { |
||||
|
return request({ |
||||
|
url: '/monitor/cache/getKeys/' + cacheName, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询缓存内容
|
||||
|
export function getCacheValue(cacheName: string, cacheKey: string) { |
||||
|
return request({ |
||||
|
url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 清理指定名称缓存
|
||||
|
export function clearCacheName(cacheName: string) { |
||||
|
return request({ |
||||
|
url: '/monitor/cache/clearCacheName/' + cacheName, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 清理指定键名缓存
|
||||
|
export function clearCacheKey(cacheName: string, cacheKey: string) { |
||||
|
return request({ |
||||
|
url: '/monitor/cache/clearCacheKey/' + cacheName + '/' + cacheKey, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 清理全部缓存
|
||||
|
export function clearCacheAll() { |
||||
|
return request({ |
||||
|
url: '/monitor/cache/clearCacheAll', |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,7 @@ |
|||||
|
export interface CacheVO { |
||||
|
commandStats: Array<{ name: string; value: string }>; |
||||
|
|
||||
|
dbSize: number; |
||||
|
|
||||
|
info: { [key: string]: string }; |
||||
|
} |
@ -0,0 +1,36 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { LoginInfoQuery, LoginInfoVO } from './types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
// 查询登录日志列表
|
||||
|
export function list(query: LoginInfoQuery): AxiosPromise<LoginInfoVO[]> { |
||||
|
return request({ |
||||
|
url: '/monitor/logininfor/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 删除登录日志
|
||||
|
export function delLoginInfo(infoId: string | number | Array<string | number>) { |
||||
|
return request({ |
||||
|
url: '/monitor/logininfor/' + infoId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 解锁用户登录状态
|
||||
|
export function unlockLoginInfo(userName: string | Array<string>) { |
||||
|
return request({ |
||||
|
url: '/monitor/logininfor/unlock/' + userName, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 清空登录日志
|
||||
|
export function cleanLoginInfo() { |
||||
|
return request({ |
||||
|
url: '/monitor/logininfor/clean', |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,20 @@ |
|||||
|
export interface LoginInfoVO { |
||||
|
infoId: string | number; |
||||
|
tenantId: string | number; |
||||
|
userName: string; |
||||
|
status: string; |
||||
|
ipaddr: string; |
||||
|
loginLocation: string; |
||||
|
browser: string; |
||||
|
os: string; |
||||
|
msg: string; |
||||
|
loginTime: string; |
||||
|
} |
||||
|
|
||||
|
export interface LoginInfoQuery extends PageQuery { |
||||
|
ipaddr: string; |
||||
|
userName: string; |
||||
|
status: string; |
||||
|
orderByColumn: string; |
||||
|
isAsc: string; |
||||
|
} |
@ -0,0 +1,36 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { OnlineQuery, OnlineVO } from './types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
// 查询在线用户列表
|
||||
|
export function list(query: OnlineQuery): AxiosPromise<OnlineVO[]> { |
||||
|
return request({ |
||||
|
url: '/monitor/online/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 强退用户
|
||||
|
export function forceLogout(tokenId: string) { |
||||
|
return request({ |
||||
|
url: '/monitor/online/' + tokenId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 获取当前用户登录在线设备
|
||||
|
export function getOnline() { |
||||
|
return request({ |
||||
|
url: '/monitor/online', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 删除当前在线设备
|
||||
|
export function delOnline(tokenId: string) { |
||||
|
return request({ |
||||
|
url: '/monitor/online/myself/' + tokenId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
export interface OnlineQuery extends PageQuery { |
||||
|
ipaddr: string; |
||||
|
userName: string; |
||||
|
} |
||||
|
|
||||
|
export interface OnlineVO extends BaseEntity { |
||||
|
tokenId: string; |
||||
|
deptName: string; |
||||
|
userName: string; |
||||
|
ipaddr: string; |
||||
|
loginLocation: string; |
||||
|
browser: string; |
||||
|
os: string; |
||||
|
loginTime: number; |
||||
|
} |
@ -0,0 +1,28 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { OperLogQuery, OperLogVO } from './types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
// 查询操作日志列表
|
||||
|
export function list(query: OperLogQuery): AxiosPromise<OperLogVO[]> { |
||||
|
return request({ |
||||
|
url: '/monitor/operlog/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 删除操作日志
|
||||
|
export function delOperlog(operId: string | number | Array<string | number>) { |
||||
|
return request({ |
||||
|
url: '/monitor/operlog/' + operId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 清空操作日志
|
||||
|
export function cleanOperlog() { |
||||
|
return request({ |
||||
|
url: '/monitor/operlog/clean', |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,53 @@ |
|||||
|
export interface OperLogQuery extends PageQuery { |
||||
|
operIp: string; |
||||
|
title: string; |
||||
|
operName: string; |
||||
|
businessType: string; |
||||
|
status: string; |
||||
|
orderByColumn: string; |
||||
|
isAsc: string; |
||||
|
} |
||||
|
|
||||
|
export interface OperLogVO extends BaseEntity { |
||||
|
operId: string | number; |
||||
|
tenantId: string; |
||||
|
title: string; |
||||
|
businessType: number; |
||||
|
businessTypes: number[] | undefined; |
||||
|
method: string; |
||||
|
requestMethod: string; |
||||
|
operatorType: number; |
||||
|
operName: string; |
||||
|
deptName: string; |
||||
|
operUrl: string; |
||||
|
operIp: string; |
||||
|
operLocation: string; |
||||
|
operParam: string; |
||||
|
jsonResult: string; |
||||
|
status: number; |
||||
|
errorMsg: string; |
||||
|
operTime: string; |
||||
|
costTime: number; |
||||
|
} |
||||
|
|
||||
|
export interface OperLogForm { |
||||
|
operId: number | string | undefined; |
||||
|
tenantId: string | number | undefined; |
||||
|
title: string; |
||||
|
businessType: number; |
||||
|
businessTypes: number[] | undefined; |
||||
|
method: string; |
||||
|
requestMethod: string; |
||||
|
operatorType: number; |
||||
|
operName: string; |
||||
|
deptName: string; |
||||
|
operUrl: string; |
||||
|
operIp: string; |
||||
|
operLocation: string; |
||||
|
operParam: string; |
||||
|
jsonResult: string; |
||||
|
status: number; |
||||
|
errorMsg: string; |
||||
|
operTime: string; |
||||
|
costTime: number; |
||||
|
} |
@ -0,0 +1,80 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { ClientVO, ClientForm, ClientQuery } from '@/api/system/client/types'; |
||||
|
|
||||
|
/** |
||||
|
* 查询客户端管理列表 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
|
||||
|
export const listClient = (query?: ClientQuery): AxiosPromise<ClientVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/client/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询客户端管理详细 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const getClient = (id: string | number): AxiosPromise<ClientVO> => { |
||||
|
return request({ |
||||
|
url: '/system/client/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增客户端管理 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const addClient = (data: ClientForm) => { |
||||
|
return request({ |
||||
|
url: '/system/client', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改客户端管理 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const updateClient = (data: ClientForm) => { |
||||
|
return request({ |
||||
|
url: '/system/client', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除客户端管理 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const delClient = (id: string | number | Array<string | number>) => { |
||||
|
return request({ |
||||
|
url: '/system/client/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 状态修改 |
||||
|
* @param clientId 客户端id |
||||
|
* @param status 状态 |
||||
|
*/ |
||||
|
export function changeStatus(clientId: string, status: string) { |
||||
|
const data = { |
||||
|
clientId, |
||||
|
status |
||||
|
}; |
||||
|
return request({ |
||||
|
url: '/system/client/changeStatus', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
@ -0,0 +1,135 @@ |
|||||
|
export interface ClientVO { |
||||
|
/** |
||||
|
* id |
||||
|
*/ |
||||
|
id: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 客户端id |
||||
|
*/ |
||||
|
clientId: string; |
||||
|
|
||||
|
/** |
||||
|
* 客户端key |
||||
|
*/ |
||||
|
clientKey: string; |
||||
|
|
||||
|
/** |
||||
|
* 客户端秘钥 |
||||
|
*/ |
||||
|
clientSecret: string; |
||||
|
|
||||
|
/** |
||||
|
* 授权类型 |
||||
|
*/ |
||||
|
grantTypeList: string[]; |
||||
|
|
||||
|
/** |
||||
|
* 设备类型 |
||||
|
*/ |
||||
|
deviceType: string; |
||||
|
|
||||
|
/** |
||||
|
* token活跃超时时间 |
||||
|
*/ |
||||
|
activeTimeout: number; |
||||
|
|
||||
|
/** |
||||
|
* token固定超时 |
||||
|
*/ |
||||
|
timeout: number; |
||||
|
|
||||
|
/** |
||||
|
* 状态(0正常 1停用) |
||||
|
*/ |
||||
|
status: string; |
||||
|
} |
||||
|
|
||||
|
export interface ClientForm extends BaseEntity { |
||||
|
/** |
||||
|
* id |
||||
|
*/ |
||||
|
id?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 客户端id |
||||
|
*/ |
||||
|
clientId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 客户端key |
||||
|
*/ |
||||
|
clientKey?: string; |
||||
|
|
||||
|
/** |
||||
|
* 客户端秘钥 |
||||
|
*/ |
||||
|
clientSecret?: string; |
||||
|
|
||||
|
/** |
||||
|
* 授权类型 |
||||
|
*/ |
||||
|
grantTypeList?: string[]; |
||||
|
|
||||
|
/** |
||||
|
* 设备类型 |
||||
|
*/ |
||||
|
deviceType?: string; |
||||
|
|
||||
|
/** |
||||
|
* token活跃超时时间 |
||||
|
*/ |
||||
|
activeTimeout?: number; |
||||
|
|
||||
|
/** |
||||
|
* token固定超时 |
||||
|
*/ |
||||
|
timeout?: number; |
||||
|
|
||||
|
/** |
||||
|
* 状态(0正常 1停用) |
||||
|
*/ |
||||
|
status?: string; |
||||
|
} |
||||
|
|
||||
|
export interface ClientQuery extends PageQuery { |
||||
|
/** |
||||
|
* 客户端id |
||||
|
*/ |
||||
|
clientId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 客户端key |
||||
|
*/ |
||||
|
clientKey?: string; |
||||
|
|
||||
|
/** |
||||
|
* 客户端秘钥 |
||||
|
*/ |
||||
|
clientSecret?: string; |
||||
|
|
||||
|
/** |
||||
|
* 授权类型 |
||||
|
*/ |
||||
|
grantType?: string; |
||||
|
|
||||
|
/** |
||||
|
* 设备类型 |
||||
|
*/ |
||||
|
deviceType?: string; |
||||
|
|
||||
|
/** |
||||
|
* token活跃超时时间 |
||||
|
*/ |
||||
|
activeTimeout?: number; |
||||
|
|
||||
|
/** |
||||
|
* token固定超时 |
||||
|
*/ |
||||
|
timeout?: number; |
||||
|
|
||||
|
/** |
||||
|
* 状态(0正常 1停用) |
||||
|
*/ |
||||
|
status?: string; |
||||
|
} |
@ -0,0 +1,74 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { ConfigForm, ConfigQuery, ConfigVO } from './types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
// 查询参数列表
|
||||
|
export function listConfig(query: ConfigQuery): AxiosPromise<ConfigVO[]> { |
||||
|
return request({ |
||||
|
url: '/system/config/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询参数详细
|
||||
|
export function getConfig(configId: string | number): AxiosPromise<ConfigVO> { |
||||
|
return request({ |
||||
|
url: '/system/config/' + configId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 根据参数键名查询参数值
|
||||
|
export function getConfigKey(configKey: string): AxiosPromise<string> { |
||||
|
return request({ |
||||
|
url: '/system/config/configKey/' + configKey, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 新增参数配置
|
||||
|
export function addConfig(data: ConfigForm) { |
||||
|
return request({ |
||||
|
url: '/system/config', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 修改参数配置
|
||||
|
export function updateConfig(data: ConfigForm) { |
||||
|
return request({ |
||||
|
url: '/system/config', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 修改参数配置
|
||||
|
export function updateConfigByKey(key: string, value: any) { |
||||
|
return request({ |
||||
|
url: '/system/config/updateByKey', |
||||
|
method: 'put', |
||||
|
data: { |
||||
|
configKey: key, |
||||
|
configValue: value |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 删除参数配置
|
||||
|
export function delConfig(configId: string | number | Array<string | number>) { |
||||
|
return request({ |
||||
|
url: '/system/config/' + configId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 刷新参数缓存
|
||||
|
export function refreshCache() { |
||||
|
return request({ |
||||
|
url: '/system/config/refreshCache', |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,23 @@ |
|||||
|
export interface ConfigVO extends BaseEntity { |
||||
|
configId: number | string; |
||||
|
configName: string; |
||||
|
configKey: string; |
||||
|
configValue: string; |
||||
|
configType: string; |
||||
|
remark: string; |
||||
|
} |
||||
|
|
||||
|
export interface ConfigForm { |
||||
|
configId: number | string | undefined; |
||||
|
configName: string; |
||||
|
configKey: string; |
||||
|
configValue: string; |
||||
|
configType: string; |
||||
|
remark: string; |
||||
|
} |
||||
|
|
||||
|
export interface ConfigQuery extends PageQuery { |
||||
|
configName: string; |
||||
|
configKey: string; |
||||
|
configType: string; |
||||
|
} |
@ -0,0 +1,73 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import {DeptForm, DeptQuery, DeptTreeVO, DeptVO} from './types'; |
||||
|
|
||||
|
// 查询部门列表
|
||||
|
export const listDept = (query?: DeptQuery) => { |
||||
|
return request({ |
||||
|
url: '/system/dept/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 通过deptIds查询部门 |
||||
|
* @param deptIds |
||||
|
*/ |
||||
|
export const optionSelect = (deptIds: (number | string)[]): AxiosPromise<DeptVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/dept/optionselect?deptIds=' + deptIds, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 查询部门列表(排除节点)
|
||||
|
export const listDeptExcludeChild = (deptId: string | number): AxiosPromise<DeptVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/dept/list/exclude/' + deptId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 查询部门详细
|
||||
|
export const getDept = (deptId: string | number): AxiosPromise<DeptVO> => { |
||||
|
return request({ |
||||
|
url: '/system/dept/' + deptId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 查询部门下拉树结构
|
||||
|
export const treeselect = (): AxiosPromise<DeptTreeVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/dept/treeselect', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 新增部门
|
||||
|
export const addDept = (data: DeptForm) => { |
||||
|
return request({ |
||||
|
url: '/system/dept', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 修改部门
|
||||
|
export const updateDept = (data: DeptForm) => { |
||||
|
return request({ |
||||
|
url: '/system/dept', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 删除部门
|
||||
|
export const delDept = (deptId: number | string) => { |
||||
|
return request({ |
||||
|
url: '/system/dept/' + deptId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,60 @@ |
|||||
|
/** |
||||
|
* 部门查询参数 |
||||
|
*/ |
||||
|
export interface DeptQuery extends PageQuery { |
||||
|
deptName?: string; |
||||
|
deptCategory?: string; |
||||
|
status?: number; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 部门类型 |
||||
|
*/ |
||||
|
export interface DeptVO extends BaseEntity { |
||||
|
id: number | string; |
||||
|
parentName: string; |
||||
|
parentId: number | string; |
||||
|
children: DeptVO[]; |
||||
|
deptId: number | string; |
||||
|
deptName: string; |
||||
|
deptCategory: string; |
||||
|
orderNum: number; |
||||
|
leader: string; |
||||
|
phone: string; |
||||
|
email: string; |
||||
|
status: string; |
||||
|
delFlag: string; |
||||
|
ancestors: string; |
||||
|
menuId: string | number; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 部门类型 |
||||
|
*/ |
||||
|
export interface DeptTreeVO extends BaseEntity { |
||||
|
id: number | string; |
||||
|
label: string; |
||||
|
parentId: number | string; |
||||
|
weight: number; |
||||
|
children: DeptTreeVO[]; |
||||
|
disabled: boolean; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 部门表单类型 |
||||
|
*/ |
||||
|
export interface DeptForm { |
||||
|
parentName?: string; |
||||
|
parentId?: number | string; |
||||
|
children?: DeptForm[]; |
||||
|
deptId?: number | string; |
||||
|
deptName?: string; |
||||
|
deptCategory?: string; |
||||
|
orderNum?: number; |
||||
|
leader?: string; |
||||
|
phone?: string; |
||||
|
email?: string; |
||||
|
status?: string; |
||||
|
delFlag?: string; |
||||
|
ancestors?: string; |
||||
|
} |
@ -0,0 +1,53 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { DictDataForm, DictDataQuery, DictDataVO } from './types'; |
||||
|
// 根据字典类型查询字典数据信息
|
||||
|
export function getDicts(dictType: string): AxiosPromise<DictDataVO[]> { |
||||
|
return request({ |
||||
|
url: '/system/dict/data/type/' + dictType, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询字典数据列表
|
||||
|
export function listData(query: DictDataQuery): AxiosPromise<DictDataVO[]> { |
||||
|
return request({ |
||||
|
url: '/system/dict/data/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询字典数据详细
|
||||
|
export function getData(dictCode: string | number): AxiosPromise<DictDataVO> { |
||||
|
return request({ |
||||
|
url: '/system/dict/data/' + dictCode, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 新增字典数据
|
||||
|
export function addData(data: DictDataForm) { |
||||
|
return request({ |
||||
|
url: '/system/dict/data', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 修改字典数据
|
||||
|
export function updateData(data: DictDataForm) { |
||||
|
return request({ |
||||
|
url: '/system/dict/data', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 删除字典数据
|
||||
|
export function delData(dictCode: string | number | Array<string | number>) { |
||||
|
return request({ |
||||
|
url: '/system/dict/data/' + dictCode, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,26 @@ |
|||||
|
export interface DictDataQuery extends PageQuery { |
||||
|
dictName: string; |
||||
|
dictType: string; |
||||
|
dictLabel: string; |
||||
|
} |
||||
|
|
||||
|
export interface DictDataVO extends BaseEntity { |
||||
|
dictCode: string; |
||||
|
dictLabel: string; |
||||
|
dictValue: string; |
||||
|
cssClass: string; |
||||
|
listClass: ElTagType; |
||||
|
dictSort: number; |
||||
|
remark: string; |
||||
|
} |
||||
|
|
||||
|
export interface DictDataForm { |
||||
|
dictType?: string; |
||||
|
dictCode: string | undefined; |
||||
|
dictLabel: string; |
||||
|
dictValue: string; |
||||
|
cssClass: string; |
||||
|
listClass: ElTagType; |
||||
|
dictSort: number; |
||||
|
remark: string; |
||||
|
} |
@ -0,0 +1,62 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { DictTypeForm, DictTypeVO, DictTypeQuery } from './types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
// 查询字典类型列表
|
||||
|
export function listType(query: DictTypeQuery): AxiosPromise<DictTypeVO[]> { |
||||
|
return request({ |
||||
|
url: '/system/dict/type/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询字典类型详细
|
||||
|
export function getType(dictId: number | string): AxiosPromise<DictTypeVO> { |
||||
|
return request({ |
||||
|
url: '/system/dict/type/' + dictId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 新增字典类型
|
||||
|
export function addType(data: DictTypeForm) { |
||||
|
return request({ |
||||
|
url: '/system/dict/type', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 修改字典类型
|
||||
|
export function updateType(data: DictTypeForm) { |
||||
|
return request({ |
||||
|
url: '/system/dict/type', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 删除字典类型
|
||||
|
export function delType(dictId: string | number | Array<string | number>) { |
||||
|
return request({ |
||||
|
url: '/system/dict/type/' + dictId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 刷新字典缓存
|
||||
|
export function refreshCache() { |
||||
|
return request({ |
||||
|
url: '/system/dict/type/refreshCache', |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 获取字典选择框列表
|
||||
|
export function optionselect(): AxiosPromise<DictTypeVO[]> { |
||||
|
return request({ |
||||
|
url: '/system/dict/type/optionselect', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,18 @@ |
|||||
|
export interface DictTypeVO extends BaseEntity { |
||||
|
dictId: number | string; |
||||
|
dictName: string; |
||||
|
dictType: string; |
||||
|
remark: string; |
||||
|
} |
||||
|
|
||||
|
export interface DictTypeForm { |
||||
|
dictId: number | string | undefined; |
||||
|
dictName: string; |
||||
|
dictType: string; |
||||
|
remark: string; |
||||
|
} |
||||
|
|
||||
|
export interface DictTypeQuery extends PageQuery { |
||||
|
dictName: string; |
||||
|
dictType: string; |
||||
|
} |
@ -0,0 +1,70 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { MenuQuery, MenuVO, MenuForm, MenuTreeOption, RoleMenuTree } from './types'; |
||||
|
|
||||
|
// 查询菜单列表
|
||||
|
export const listMenu = (query?: MenuQuery): AxiosPromise<MenuVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/menu/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 查询菜单详细
|
||||
|
export const getMenu = (menuId: string | number): AxiosPromise<MenuVO> => { |
||||
|
return request({ |
||||
|
url: '/system/menu/' + menuId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 查询菜单下拉树结构
|
||||
|
export const treeselect = (): AxiosPromise<MenuTreeOption[]> => { |
||||
|
return request({ |
||||
|
url: '/system/menu/treeselect', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 根据角色ID查询菜单下拉树结构
|
||||
|
export const roleMenuTreeselect = (roleId: string | number): AxiosPromise<RoleMenuTree> => { |
||||
|
return request({ |
||||
|
url: '/system/menu/roleMenuTreeselect/' + roleId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 根据角色ID查询菜单下拉树结构
|
||||
|
export const tenantPackageMenuTreeselect = (packageId: string | number): AxiosPromise<RoleMenuTree> => { |
||||
|
return request({ |
||||
|
url: '/system/menu/tenantPackageMenuTreeselect/' + packageId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 新增菜单
|
||||
|
export const addMenu = (data: MenuForm) => { |
||||
|
return request({ |
||||
|
url: '/system/menu', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 修改菜单
|
||||
|
export const updateMenu = (data: MenuForm) => { |
||||
|
return request({ |
||||
|
url: '/system/menu', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 删除菜单
|
||||
|
export const delMenu = (menuId: string | number) => { |
||||
|
return request({ |
||||
|
url: '/system/menu/' + menuId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,69 @@ |
|||||
|
import { MenuTypeEnum } from '@/enums/MenuTypeEnum'; |
||||
|
|
||||
|
/** |
||||
|
* 菜单树形结构类型 |
||||
|
*/ |
||||
|
export interface MenuTreeOption { |
||||
|
id: string | number; |
||||
|
label: string; |
||||
|
parentId: string | number; |
||||
|
weight: number; |
||||
|
children?: MenuTreeOption[]; |
||||
|
} |
||||
|
|
||||
|
export interface RoleMenuTree { |
||||
|
menus: MenuTreeOption[]; |
||||
|
checkedKeys: string[]; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 菜单查询参数类型 |
||||
|
*/ |
||||
|
export interface MenuQuery { |
||||
|
keywords?: string; |
||||
|
menuName?: string; |
||||
|
status?: string; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 菜单视图对象类型 |
||||
|
*/ |
||||
|
export interface MenuVO extends BaseEntity { |
||||
|
parentName: string; |
||||
|
parentId: string | number; |
||||
|
children: MenuVO[]; |
||||
|
menuId: string | number; |
||||
|
menuName: string; |
||||
|
orderNum: number; |
||||
|
path: string; |
||||
|
component: string; |
||||
|
queryParam: string; |
||||
|
isFrame: string; |
||||
|
isCache: string; |
||||
|
menuType: MenuTypeEnum; |
||||
|
visible: string; |
||||
|
status: string; |
||||
|
icon: string; |
||||
|
remark: string; |
||||
|
} |
||||
|
|
||||
|
export interface MenuForm { |
||||
|
parentName?: string; |
||||
|
parentId?: string | number; |
||||
|
children?: MenuForm[]; |
||||
|
menuId?: string | number; |
||||
|
menuName: string; |
||||
|
orderNum: number; |
||||
|
path: string; |
||||
|
component?: string; |
||||
|
queryParam?: string; |
||||
|
isFrame?: string; |
||||
|
isCache?: string; |
||||
|
menuType?: MenuTypeEnum; |
||||
|
visible?: string; |
||||
|
status?: string; |
||||
|
icon?: string; |
||||
|
remark?: string; |
||||
|
query?: string; |
||||
|
perms?: string; |
||||
|
} |
@ -0,0 +1,45 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { NoticeForm, NoticeQuery, NoticeVO } from './types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
// 查询公告列表
|
||||
|
export function listNotice(query: NoticeQuery): AxiosPromise<NoticeVO[]> { |
||||
|
return request({ |
||||
|
url: '/system/notice/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询公告详细
|
||||
|
export function getNotice(noticeId: string | number): AxiosPromise<NoticeVO> { |
||||
|
return request({ |
||||
|
url: '/system/notice/' + noticeId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 新增公告
|
||||
|
export function addNotice(data: NoticeForm) { |
||||
|
return request({ |
||||
|
url: '/system/notice', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 修改公告
|
||||
|
export function updateNotice(data: NoticeForm) { |
||||
|
return request({ |
||||
|
url: '/system/notice', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 删除公告
|
||||
|
export function delNotice(noticeId: string | number | Array<string | number>) { |
||||
|
return request({ |
||||
|
url: '/system/notice/' + noticeId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,26 @@ |
|||||
|
export interface NoticeVO extends BaseEntity { |
||||
|
noticeId: number; |
||||
|
noticeTitle: string; |
||||
|
noticeType: string; |
||||
|
noticeContent: string; |
||||
|
status: string; |
||||
|
remark: string; |
||||
|
createByName: string; |
||||
|
} |
||||
|
|
||||
|
export interface NoticeQuery extends PageQuery { |
||||
|
noticeTitle: string; |
||||
|
createByName: string; |
||||
|
status: string; |
||||
|
noticeType: string; |
||||
|
} |
||||
|
|
||||
|
export interface NoticeForm { |
||||
|
noticeId: number | string | undefined; |
||||
|
noticeTitle: string; |
||||
|
noticeType: string; |
||||
|
noticeContent: string; |
||||
|
status: string; |
||||
|
remark: string; |
||||
|
createByName: string; |
||||
|
} |
@ -0,0 +1,28 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { OssQuery, OssVO } from './types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
// 查询OSS对象存储列表
|
||||
|
export function listOss(query: OssQuery): AxiosPromise<OssVO[]> { |
||||
|
return request({ |
||||
|
url: '/resource/oss/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询OSS对象基于id串
|
||||
|
export function listByIds(ossId: string | number): AxiosPromise<OssVO[]> { |
||||
|
return request({ |
||||
|
url: '/resource/oss/listByIds/' + ossId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 删除OSS对象存储
|
||||
|
export function delOss(ossId: string | number | Array<string | number>) { |
||||
|
return request({ |
||||
|
url: '/resource/oss/' + ossId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
export interface OssVO extends BaseEntity { |
||||
|
ossId: string | number; |
||||
|
fileName: string; |
||||
|
originalName: string; |
||||
|
fileSuffix: string; |
||||
|
url: string; |
||||
|
createByName: string; |
||||
|
service: string; |
||||
|
} |
||||
|
|
||||
|
export interface OssQuery extends PageQuery { |
||||
|
fileName: string; |
||||
|
originalName: string; |
||||
|
fileSuffix: string; |
||||
|
createTime: string; |
||||
|
service: string; |
||||
|
orderByColumn: string; |
||||
|
isAsc: string; |
||||
|
} |
||||
|
export interface OssForm { |
||||
|
file: undefined | string; |
||||
|
} |
@ -0,0 +1,60 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { OssConfigForm, OssConfigQuery, OssConfigVO } from './types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
// 查询对象存储配置列表
|
||||
|
export function listOssConfig(query: OssConfigQuery): AxiosPromise<OssConfigVO[]> { |
||||
|
return request({ |
||||
|
url: '/resource/oss/config/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询对象存储配置详细
|
||||
|
export function getOssConfig(ossConfigId: string | number): AxiosPromise<OssConfigVO> { |
||||
|
return request({ |
||||
|
url: '/resource/oss/config/' + ossConfigId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 新增对象存储配置
|
||||
|
export function addOssConfig(data: OssConfigForm) { |
||||
|
return request({ |
||||
|
url: '/resource/oss/config', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 修改对象存储配置
|
||||
|
export function updateOssConfig(data: OssConfigForm) { |
||||
|
return request({ |
||||
|
url: '/resource/oss/config', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 删除对象存储配置
|
||||
|
export function delOssConfig(ossConfigId: string | number | Array<string | number>) { |
||||
|
return request({ |
||||
|
url: '/resource/oss/config/' + ossConfigId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 对象存储状态修改
|
||||
|
export function changeOssConfigStatus(ossConfigId: string | number, status: string, configKey: string) { |
||||
|
const data = { |
||||
|
ossConfigId, |
||||
|
status, |
||||
|
configKey |
||||
|
}; |
||||
|
return request({ |
||||
|
url: '/resource/oss/config/changeStatus', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
@ -0,0 +1,38 @@ |
|||||
|
export interface OssConfigVO extends BaseEntity { |
||||
|
ossConfigId: number | string; |
||||
|
configKey: string; |
||||
|
accessKey: string; |
||||
|
secretKey: string; |
||||
|
bucketName: string; |
||||
|
prefix: string; |
||||
|
endpoint: string; |
||||
|
domain: string; |
||||
|
isHttps: string; |
||||
|
region: string; |
||||
|
status: string; |
||||
|
ext1: string; |
||||
|
remark: string; |
||||
|
accessPolicy: string; |
||||
|
} |
||||
|
|
||||
|
export interface OssConfigQuery extends PageQuery { |
||||
|
configKey: string; |
||||
|
bucketName: string; |
||||
|
status: string; |
||||
|
} |
||||
|
|
||||
|
export interface OssConfigForm { |
||||
|
ossConfigId: string | number | undefined; |
||||
|
configKey: string; |
||||
|
accessKey: string; |
||||
|
secretKey: string; |
||||
|
bucketName: string; |
||||
|
prefix: string; |
||||
|
endpoint: string; |
||||
|
domain: string; |
||||
|
isHttps: string; |
||||
|
accessPolicy: string; |
||||
|
region: string; |
||||
|
status: string; |
||||
|
remark: string; |
||||
|
} |
@ -0,0 +1,58 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { PostForm, PostQuery, PostVO } from './types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
// 查询岗位列表
|
||||
|
export function listPost(query: PostQuery): AxiosPromise<PostVO[]> { |
||||
|
return request({ |
||||
|
url: '/system/post/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询岗位详细
|
||||
|
export function getPost(postId: string | number): AxiosPromise<PostVO> { |
||||
|
return request({ |
||||
|
url: '/system/post/' + postId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 获取岗位选择框列表
|
||||
|
export function optionselect(deptId?: number | string, postIds?: (number | string)[]): AxiosPromise<PostVO[]> { |
||||
|
return request({ |
||||
|
url: '/system/post/optionselect', |
||||
|
method: 'get', |
||||
|
params: { |
||||
|
postIds: postIds, |
||||
|
deptId: deptId |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 新增岗位
|
||||
|
export function addPost(data: PostForm) { |
||||
|
return request({ |
||||
|
url: '/system/post', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 修改岗位
|
||||
|
export function updatePost(data: PostForm) { |
||||
|
return request({ |
||||
|
url: '/system/post', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 删除岗位
|
||||
|
export function delPost(postId: string | number | (string | number)[]) { |
||||
|
return request({ |
||||
|
url: '/system/post/' + postId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,31 @@ |
|||||
|
export interface PostVO extends BaseEntity { |
||||
|
postId: number | string; |
||||
|
deptId: number | string; |
||||
|
postCode: string; |
||||
|
postName: string; |
||||
|
postCategory: string; |
||||
|
deptName: string; |
||||
|
postSort: number; |
||||
|
status: string; |
||||
|
remark: string; |
||||
|
} |
||||
|
|
||||
|
export interface PostForm { |
||||
|
postId: number | string | undefined; |
||||
|
deptId: number | string | undefined; |
||||
|
postCode: string; |
||||
|
postName: string; |
||||
|
postCategory: string; |
||||
|
postSort: number; |
||||
|
status: string; |
||||
|
remark: string; |
||||
|
} |
||||
|
|
||||
|
export interface PostQuery extends PageQuery { |
||||
|
deptId: number | string; |
||||
|
belongDeptId: number | string; |
||||
|
postCode: string; |
||||
|
postName: string; |
||||
|
postCategory: string; |
||||
|
status: string; |
||||
|
} |
@ -0,0 +1,160 @@ |
|||||
|
import { UserVO } from '@/api/system/user/types'; |
||||
|
import { UserQuery } from '@/api/system/user/types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { RoleQuery, RoleVO, RoleDeptTree } from './types'; |
||||
|
import request from '@/utils/request'; |
||||
|
|
||||
|
export const listRole = (query: RoleQuery): AxiosPromise<RoleVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/role/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 通过roleIds查询角色 |
||||
|
* @param roleIds |
||||
|
*/ |
||||
|
export const optionSelect = (roleIds: (number | string)[]): AxiosPromise<RoleVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/role/optionselect?roleIds=' + roleIds, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询角色详细 |
||||
|
*/ |
||||
|
export const getRole = (roleId: string | number): AxiosPromise<RoleVO> => { |
||||
|
return request({ |
||||
|
url: '/system/role/' + roleId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增角色 |
||||
|
*/ |
||||
|
export const addRole = (data: any) => { |
||||
|
return request({ |
||||
|
url: '/system/role', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改角色 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const updateRole = (data: any) => { |
||||
|
return request({ |
||||
|
url: '/system/role', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 角色数据权限 |
||||
|
*/ |
||||
|
export const dataScope = (data: any) => { |
||||
|
return request({ |
||||
|
url: '/system/role/dataScope', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 角色状态修改 |
||||
|
*/ |
||||
|
export const changeRoleStatus = (roleId: string | number, status: string) => { |
||||
|
const data = { |
||||
|
roleId, |
||||
|
status |
||||
|
}; |
||||
|
return request({ |
||||
|
url: '/system/role/changeStatus', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除角色 |
||||
|
*/ |
||||
|
export const delRole = (roleId: Array<string | number> | string | number) => { |
||||
|
return request({ |
||||
|
url: '/system/role/' + roleId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询角色已授权用户列表 |
||||
|
*/ |
||||
|
export const allocatedUserList = (query: UserQuery): AxiosPromise<UserVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/role/authUser/allocatedList', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询角色未授权用户列表 |
||||
|
*/ |
||||
|
export const unallocatedUserList = (query: UserQuery): AxiosPromise<UserVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/role/authUser/unallocatedList', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 取消用户授权角色 |
||||
|
*/ |
||||
|
export const authUserCancel = (data: any) => { |
||||
|
return request({ |
||||
|
url: '/system/role/authUser/cancel', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 批量取消用户授权角色 |
||||
|
*/ |
||||
|
export const authUserCancelAll = (data: any) => { |
||||
|
return request({ |
||||
|
url: '/system/role/authUser/cancelAll', |
||||
|
method: 'put', |
||||
|
params: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 授权用户选择 |
||||
|
*/ |
||||
|
export const authUserSelectAll = (data: any) => { |
||||
|
return request({ |
||||
|
url: '/system/role/authUser/selectAll', |
||||
|
method: 'put', |
||||
|
params: data |
||||
|
}); |
||||
|
}; |
||||
|
// 根据角色ID查询部门树结构
|
||||
|
export const deptTreeSelect = (roleId: string | number): AxiosPromise<RoleDeptTree> => { |
||||
|
return request({ |
||||
|
url: '/system/role/deptTree/' + roleId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
export default { |
||||
|
optionSelect, |
||||
|
listRole |
||||
|
}; |
@ -0,0 +1,52 @@ |
|||||
|
/** |
||||
|
* 菜单树形结构类型 |
||||
|
*/ |
||||
|
export interface DeptTreeOption { |
||||
|
id: string; |
||||
|
label: string; |
||||
|
parentId: string; |
||||
|
weight: number; |
||||
|
children?: DeptTreeOption[]; |
||||
|
} |
||||
|
|
||||
|
export interface RoleDeptTree { |
||||
|
checkedKeys: string[]; |
||||
|
depts: DeptTreeOption[]; |
||||
|
} |
||||
|
|
||||
|
export interface RoleVO extends BaseEntity { |
||||
|
roleId: string | number; |
||||
|
roleName: string; |
||||
|
roleKey: string; |
||||
|
roleSort: number; |
||||
|
dataScope: string; |
||||
|
menuCheckStrictly: boolean; |
||||
|
deptCheckStrictly: boolean; |
||||
|
status: string; |
||||
|
delFlag: string; |
||||
|
remark?: any; |
||||
|
flag: boolean; |
||||
|
menuIds?: Array<string | number>; |
||||
|
deptIds?: Array<string | number>; |
||||
|
admin: boolean; |
||||
|
} |
||||
|
|
||||
|
export interface RoleQuery extends PageQuery { |
||||
|
roleName: string; |
||||
|
roleKey: string; |
||||
|
status: string; |
||||
|
} |
||||
|
|
||||
|
export interface RoleForm { |
||||
|
roleName: string; |
||||
|
roleKey: string; |
||||
|
roleSort: number; |
||||
|
status: string; |
||||
|
menuCheckStrictly: boolean; |
||||
|
deptCheckStrictly: boolean; |
||||
|
remark: string; |
||||
|
dataScope?: string; |
||||
|
roleId: string | undefined; |
||||
|
menuIds: Array<string | number>; |
||||
|
deptIds: Array<string | number>; |
||||
|
} |
@ -0,0 +1,28 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
|
||||
|
// 绑定账号
|
||||
|
export function authBinding(source: string, tenantId: string) { |
||||
|
return request({ |
||||
|
url: '/auth/binding/' + source, |
||||
|
method: 'get', |
||||
|
params: { |
||||
|
tenantId: tenantId, |
||||
|
domain: window.location.host |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 解绑账号
|
||||
|
export function authUnlock(authId: string) { |
||||
|
return request({ |
||||
|
url: '/auth/unlock/' + authId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
//获取授权列表
|
||||
|
export function getAuthList() { |
||||
|
return request({ |
||||
|
url: '/system/social/list', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,101 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { TenantForm, TenantQuery, TenantVO } from './types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
// 查询租户列表
|
||||
|
export function listTenant(query: TenantQuery): AxiosPromise<TenantVO[]> { |
||||
|
return request({ |
||||
|
url: '/system/tenant/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询租户详细
|
||||
|
export function getTenant(id: string | number): AxiosPromise<TenantVO> { |
||||
|
return request({ |
||||
|
url: '/system/tenant/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 新增租户
|
||||
|
export function addTenant(data: TenantForm) { |
||||
|
return request({ |
||||
|
url: '/system/tenant', |
||||
|
method: 'post', |
||||
|
headers: { |
||||
|
isEncrypt: true, |
||||
|
repeatSubmit: false |
||||
|
}, |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 修改租户
|
||||
|
export function updateTenant(data: TenantForm) { |
||||
|
return request({ |
||||
|
url: '/system/tenant', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 租户状态修改
|
||||
|
export function changeTenantStatus(id: string | number, tenantId: string | number, status: string) { |
||||
|
const data = { |
||||
|
id, |
||||
|
tenantId, |
||||
|
status |
||||
|
}; |
||||
|
return request({ |
||||
|
url: '/system/tenant/changeStatus', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 删除租户
|
||||
|
export function delTenant(id: string | number | Array<string | number>) { |
||||
|
return request({ |
||||
|
url: '/system/tenant/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 动态切换租户
|
||||
|
export function dynamicTenant(tenantId: string | number) { |
||||
|
return request({ |
||||
|
url: '/system/tenant/dynamic/' + tenantId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 清除动态租户
|
||||
|
export function dynamicClear() { |
||||
|
return request({ |
||||
|
url: '/system/tenant/dynamic/clear', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 同步租户套餐
|
||||
|
export function syncTenantPackage(tenantId: string | number, packageId: string | number) { |
||||
|
const data = { |
||||
|
tenantId, |
||||
|
packageId |
||||
|
}; |
||||
|
return request({ |
||||
|
url: '/system/tenant/syncTenantPackage', |
||||
|
method: 'get', |
||||
|
params: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 同步租户字典
|
||||
|
export function syncTenantDict() { |
||||
|
return request({ |
||||
|
url: '/system/tenant/syncTenantDict', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,46 @@ |
|||||
|
export interface TenantVO extends BaseEntity { |
||||
|
id: number | string; |
||||
|
tenantId: number | string; |
||||
|
username: string; |
||||
|
contactUserName: string; |
||||
|
contactPhone: string; |
||||
|
companyName: string; |
||||
|
licenseNumber: string; |
||||
|
address: string; |
||||
|
domain: string; |
||||
|
intro: string; |
||||
|
remark: string; |
||||
|
packageId: string | number; |
||||
|
expireTime: string; |
||||
|
accountCount: number; |
||||
|
status: string; |
||||
|
} |
||||
|
|
||||
|
export interface TenantQuery extends PageQuery { |
||||
|
tenantId: string | number; |
||||
|
|
||||
|
contactUserName: string; |
||||
|
|
||||
|
contactPhone: string; |
||||
|
|
||||
|
companyName: string; |
||||
|
} |
||||
|
|
||||
|
export interface TenantForm { |
||||
|
id: number | string | undefined; |
||||
|
tenantId: number | string | undefined; |
||||
|
username: string; |
||||
|
password: string; |
||||
|
contactUserName: string; |
||||
|
contactPhone: string; |
||||
|
companyName: string; |
||||
|
licenseNumber: string; |
||||
|
domain: string; |
||||
|
address: string; |
||||
|
intro: string; |
||||
|
remark: string; |
||||
|
packageId: string | number; |
||||
|
expireTime: string; |
||||
|
accountCount: number; |
||||
|
status: string; |
||||
|
} |
@ -0,0 +1,67 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { TenantPkgForm, TenantPkgQuery, TenantPkgVO } from './types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
// 查询租户套餐列表
|
||||
|
export function listTenantPackage(query?: TenantPkgQuery): AxiosPromise<TenantPkgVO[]> { |
||||
|
return request({ |
||||
|
url: '/system/tenant/package/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询租户套餐下拉选列表
|
||||
|
export function selectTenantPackage(): AxiosPromise<TenantPkgVO[]> { |
||||
|
return request({ |
||||
|
url: '/system/tenant/package/selectList', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 查询租户套餐详细
|
||||
|
export function getTenantPackage(packageId: string | number): AxiosPromise<TenantPkgVO> { |
||||
|
return request({ |
||||
|
url: '/system/tenant/package/' + packageId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 新增租户套餐
|
||||
|
export function addTenantPackage(data: TenantPkgForm) { |
||||
|
return request({ |
||||
|
url: '/system/tenant/package', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 修改租户套餐
|
||||
|
export function updateTenantPackage(data: TenantPkgForm) { |
||||
|
return request({ |
||||
|
url: '/system/tenant/package', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 租户套餐状态修改
|
||||
|
export function changePackageStatus(packageId: number | string, status: string) { |
||||
|
const data = { |
||||
|
packageId, |
||||
|
status |
||||
|
}; |
||||
|
return request({ |
||||
|
url: '/system/tenant/package/changeStatus', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 删除租户套餐
|
||||
|
export function delTenantPackage(packageId: string | number | Array<string | number>) { |
||||
|
return request({ |
||||
|
url: '/system/tenant/package/' + packageId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
@ -0,0 +1,20 @@ |
|||||
|
export interface TenantPkgVO extends BaseEntity { |
||||
|
packageId: string | number; |
||||
|
packageName: string; |
||||
|
menuIds: string; |
||||
|
remark: string; |
||||
|
menuCheckStrictly: boolean; |
||||
|
status: string; |
||||
|
} |
||||
|
|
||||
|
export interface TenantPkgQuery extends PageQuery { |
||||
|
packageName: string; |
||||
|
} |
||||
|
|
||||
|
export interface TenantPkgForm { |
||||
|
packageId: string | number | undefined; |
||||
|
packageName: string; |
||||
|
menuIds: string; |
||||
|
remark: string; |
||||
|
menuCheckStrictly: boolean; |
||||
|
} |
@ -0,0 +1,229 @@ |
|||||
|
import {DeptTreeVO, DeptVO} from './../dept/types'; |
||||
|
import { RoleVO } from '@/api/system/role/types'; |
||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { UserForm, UserQuery, UserVO, UserInfoVO } from './types'; |
||||
|
import { parseStrEmpty } from '@/utils/ruoyi'; |
||||
|
|
||||
|
/** |
||||
|
* 查询用户列表 |
||||
|
* @param query |
||||
|
*/ |
||||
|
export const listUser = (query: UserQuery): AxiosPromise<UserVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/user/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 通过用户ids查询用户 |
||||
|
* @param userIds |
||||
|
*/ |
||||
|
export const optionSelect = (userIds: (number | string)[]): AxiosPromise<UserVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/user/optionselect?userIds=' + userIds, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 获取用户详情 |
||||
|
* @param userId |
||||
|
*/ |
||||
|
export const getUser = (userId?: string | number): AxiosPromise<UserInfoVO> => { |
||||
|
return request({ |
||||
|
url: '/system/user/' + parseStrEmpty(userId), |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增用户 |
||||
|
*/ |
||||
|
export const addUser = (data: UserForm) => { |
||||
|
return request({ |
||||
|
url: '/system/user', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改用户 |
||||
|
*/ |
||||
|
export const updateUser = (data: UserForm) => { |
||||
|
return request({ |
||||
|
url: '/system/user', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除用户 |
||||
|
* @param userId 用户ID |
||||
|
*/ |
||||
|
export const delUser = (userId: Array<string | number> | string | number) => { |
||||
|
return request({ |
||||
|
url: '/system/user/' + userId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 用户密码重置 |
||||
|
* @param userId 用户ID |
||||
|
* @param password 密码 |
||||
|
*/ |
||||
|
export const resetUserPwd = (userId: string | number, password: string) => { |
||||
|
const data = { |
||||
|
userId, |
||||
|
password |
||||
|
}; |
||||
|
return request({ |
||||
|
url: '/system/user/resetPwd', |
||||
|
method: 'put', |
||||
|
headers: { |
||||
|
isEncrypt: true, |
||||
|
repeatSubmit: false |
||||
|
}, |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 用户状态修改 |
||||
|
* @param userId 用户ID |
||||
|
* @param status 用户状态 |
||||
|
*/ |
||||
|
export const changeUserStatus = (userId: number | string, status: string) => { |
||||
|
const data = { |
||||
|
userId, |
||||
|
status |
||||
|
}; |
||||
|
return request({ |
||||
|
url: '/system/user/changeStatus', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询用户个人信息 |
||||
|
*/ |
||||
|
export const getUserProfile = (): AxiosPromise<UserInfoVO> => { |
||||
|
return request({ |
||||
|
url: '/system/user/profile', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改用户个人信息 |
||||
|
* @param data 用户信息 |
||||
|
*/ |
||||
|
export const updateUserProfile = (data: UserForm) => { |
||||
|
return request({ |
||||
|
url: '/system/user/profile', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 用户密码重置 |
||||
|
* @param oldPassword 旧密码 |
||||
|
* @param newPassword 新密码 |
||||
|
*/ |
||||
|
export const updateUserPwd = (oldPassword: string, newPassword: string) => { |
||||
|
const data = { |
||||
|
oldPassword, |
||||
|
newPassword |
||||
|
}; |
||||
|
return request({ |
||||
|
url: '/system/user/profile/updatePwd', |
||||
|
method: 'put', |
||||
|
headers: { |
||||
|
isEncrypt: true, |
||||
|
repeatSubmit: false |
||||
|
}, |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 用户头像上传 |
||||
|
* @param data 头像文件 |
||||
|
*/ |
||||
|
export const uploadAvatar = (data: FormData) => { |
||||
|
return request({ |
||||
|
url: '/system/user/profile/avatar', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询授权角色 |
||||
|
* @param userId 用户ID |
||||
|
*/ |
||||
|
export const getAuthRole = (userId: string | number): AxiosPromise<{ user: UserVO; roles: RoleVO[] }> => { |
||||
|
return request({ |
||||
|
url: '/system/user/authRole/' + userId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 保存授权角色 |
||||
|
* @param data 用户ID |
||||
|
*/ |
||||
|
export const updateAuthRole = (data: { userId: string; roleIds: string }) => { |
||||
|
return request({ |
||||
|
url: '/system/user/authRole', |
||||
|
method: 'put', |
||||
|
params: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询当前部门的所有用户信息 |
||||
|
* @param deptId |
||||
|
*/ |
||||
|
export const listUserByDeptId = (deptId: string | number): AxiosPromise<UserVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/user/list/dept/' + deptId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询部门下拉树结构 |
||||
|
*/ |
||||
|
export const deptTreeSelect = (): AxiosPromise<DeptTreeVO[]> => { |
||||
|
return request({ |
||||
|
url: '/system/user/deptTree', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
export default { |
||||
|
listUser, |
||||
|
getUser, |
||||
|
optionSelect, |
||||
|
addUser, |
||||
|
updateUser, |
||||
|
delUser, |
||||
|
resetUserPwd, |
||||
|
changeUserStatus, |
||||
|
getUserProfile, |
||||
|
updateUserProfile, |
||||
|
updateUserPwd, |
||||
|
uploadAvatar, |
||||
|
getAuthRole, |
||||
|
updateAuthRole, |
||||
|
deptTreeSelect, |
||||
|
listUserByDeptId |
||||
|
}; |
@ -0,0 +1,85 @@ |
|||||
|
import { RoleVO } from '@/api/system/role/types'; |
||||
|
import { PostVO } from '@/api/system/post/types'; |
||||
|
|
||||
|
/** |
||||
|
* 用户信息 |
||||
|
*/ |
||||
|
export interface UserInfo { |
||||
|
user: UserVO; |
||||
|
roles: string[]; |
||||
|
permissions: string[]; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 用户查询对象类型 |
||||
|
*/ |
||||
|
export interface UserQuery extends PageQuery { |
||||
|
userName?: string; |
||||
|
phonenumber?: string; |
||||
|
status?: string; |
||||
|
deptId?: string | number; |
||||
|
roleId?: string | number; |
||||
|
userIds?: string; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 用户返回对象 |
||||
|
*/ |
||||
|
export interface UserVO extends BaseEntity { |
||||
|
userId: string | number; |
||||
|
tenantId: string; |
||||
|
deptId: number; |
||||
|
userName: string; |
||||
|
nickName: string; |
||||
|
userType: string; |
||||
|
email: string; |
||||
|
phonenumber: string; |
||||
|
sex: string; |
||||
|
avatar: string; |
||||
|
status: string; |
||||
|
delFlag: string; |
||||
|
loginIp: string; |
||||
|
loginDate: string; |
||||
|
remark: string; |
||||
|
deptName: string; |
||||
|
roles: RoleVO[]; |
||||
|
roleIds: any; |
||||
|
postIds: any; |
||||
|
roleId: any; |
||||
|
admin: boolean; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 用户表单类型 |
||||
|
*/ |
||||
|
export interface UserForm { |
||||
|
id?: string; |
||||
|
userId?: string; |
||||
|
deptId?: number; |
||||
|
userName: string; |
||||
|
nickName?: string; |
||||
|
password: string; |
||||
|
phonenumber?: string; |
||||
|
email?: string; |
||||
|
sex?: string; |
||||
|
status: string; |
||||
|
remark?: string; |
||||
|
postIds: string[]; |
||||
|
roleIds: string[]; |
||||
|
} |
||||
|
|
||||
|
export interface UserInfoVO { |
||||
|
user: UserVO; |
||||
|
roles: RoleVO[]; |
||||
|
roleIds: string[]; |
||||
|
posts: PostVO[]; |
||||
|
postIds: string[]; |
||||
|
roleGroup: string; |
||||
|
postGroup: string; |
||||
|
} |
||||
|
|
||||
|
export interface ResetPwdForm { |
||||
|
oldPassword: string; |
||||
|
newPassword: string; |
||||
|
confirmPassword: string; |
||||
|
} |
@ -0,0 +1,86 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { DbTableQuery, DbTableVO, TableQuery, TableVO, GenTableVO, DbTableForm } from './types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
// 查询生成表数据
|
||||
|
export const listTable = (query: TableQuery): AxiosPromise<TableVO[]> => { |
||||
|
return request({ |
||||
|
url: '/tool/gen/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
// 查询db数据库列表
|
||||
|
export const listDbTable = (query: DbTableQuery): AxiosPromise<DbTableVO[]> => { |
||||
|
return request({ |
||||
|
url: '/tool/gen/db/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 查询表详细信息
|
||||
|
export const getGenTable = (tableId: string | number): AxiosPromise<GenTableVO> => { |
||||
|
return request({ |
||||
|
url: '/tool/gen/' + tableId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 修改代码生成信息
|
||||
|
export const updateGenTable = (data: DbTableForm): AxiosPromise<GenTableVO> => { |
||||
|
return request({ |
||||
|
url: '/tool/gen', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 导入表
|
||||
|
export const importTable = (data: { tables: string; dataName: string }): AxiosPromise<GenTableVO> => { |
||||
|
return request({ |
||||
|
url: '/tool/gen/importTable', |
||||
|
method: 'post', |
||||
|
params: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 预览生成代码
|
||||
|
export const previewTable = (tableId: string | number) => { |
||||
|
return request({ |
||||
|
url: '/tool/gen/preview/' + tableId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 删除表数据
|
||||
|
export const delTable = (tableId: string | number | Array<string | number>) => { |
||||
|
return request({ |
||||
|
url: '/tool/gen/' + tableId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 生成代码(自定义路径)
|
||||
|
export const genCode = (tableId: string | number) => { |
||||
|
return request({ |
||||
|
url: '/tool/gen/genCode/' + tableId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 同步数据库
|
||||
|
export const synchDb = (tableId: string | number) => { |
||||
|
return request({ |
||||
|
url: '/tool/gen/synchDb/' + tableId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
// 获取数据源名称
|
||||
|
export const getDataNames = () => { |
||||
|
return request({ |
||||
|
url: '/tool/gen/getDataNames', |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,180 @@ |
|||||
|
export interface TableVO extends BaseEntity { |
||||
|
createDept: number | string; |
||||
|
tableId: string | number; |
||||
|
dataName: string; |
||||
|
tableName: string; |
||||
|
tableComment: string; |
||||
|
subTableName?: any; |
||||
|
subTableFkName?: any; |
||||
|
className: string; |
||||
|
tplCategory: string; |
||||
|
packageName: string; |
||||
|
moduleName: string; |
||||
|
businessName: string; |
||||
|
functionName: string; |
||||
|
functionAuthor: string; |
||||
|
genType: string; |
||||
|
genPath: string; |
||||
|
pkColumn?: any; |
||||
|
columns?: any; |
||||
|
options?: any; |
||||
|
remark?: any; |
||||
|
treeCode?: any; |
||||
|
treeParentCode?: any; |
||||
|
treeName?: any; |
||||
|
menuIds?: any; |
||||
|
parentMenuId?: any; |
||||
|
parentMenuName?: any; |
||||
|
tree: boolean; |
||||
|
crud: boolean; |
||||
|
} |
||||
|
|
||||
|
export interface TableQuery extends PageQuery { |
||||
|
tableName: string; |
||||
|
tableComment: string; |
||||
|
dataName: string; |
||||
|
} |
||||
|
|
||||
|
export interface DbColumnVO extends BaseEntity { |
||||
|
createDept?: any; |
||||
|
columnId?: any; |
||||
|
tableId?: any; |
||||
|
columnName?: any; |
||||
|
columnComment?: any; |
||||
|
columnType?: any; |
||||
|
javaType?: any; |
||||
|
javaField?: any; |
||||
|
isPk?: any; |
||||
|
isIncrement?: any; |
||||
|
isRequired?: any; |
||||
|
isInsert?: any; |
||||
|
isEdit?: any; |
||||
|
isList?: any; |
||||
|
isQuery?: any; |
||||
|
queryType?: any; |
||||
|
htmlType?: any; |
||||
|
dictType?: any; |
||||
|
sort?: any; |
||||
|
increment: boolean; |
||||
|
capJavaField?: any; |
||||
|
usableColumn: boolean; |
||||
|
superColumn: boolean; |
||||
|
list: boolean; |
||||
|
pk: boolean; |
||||
|
insert: boolean; |
||||
|
edit: boolean; |
||||
|
query: boolean; |
||||
|
required: boolean; |
||||
|
} |
||||
|
|
||||
|
export interface DbTableVO { |
||||
|
createDept?: any; |
||||
|
tableId?: any; |
||||
|
tableName: string; |
||||
|
tableComment: string; |
||||
|
subTableName?: any; |
||||
|
subTableFkName?: any; |
||||
|
className?: any; |
||||
|
tplCategory?: any; |
||||
|
packageName?: any; |
||||
|
moduleName?: any; |
||||
|
businessName?: any; |
||||
|
functionName?: any; |
||||
|
functionAuthor?: any; |
||||
|
genType?: any; |
||||
|
genPath?: any; |
||||
|
pkColumn?: any; |
||||
|
columns: DbColumnVO[]; |
||||
|
options?: any; |
||||
|
remark?: any; |
||||
|
treeCode?: any; |
||||
|
treeParentCode?: any; |
||||
|
treeName?: any; |
||||
|
menuIds?: any; |
||||
|
parentMenuId?: any; |
||||
|
parentMenuName?: any; |
||||
|
tree: boolean; |
||||
|
crud: boolean; |
||||
|
} |
||||
|
|
||||
|
export interface DbTableQuery extends PageQuery { |
||||
|
dataName: string; |
||||
|
tableName: string; |
||||
|
tableComment: string; |
||||
|
} |
||||
|
|
||||
|
export interface GenTableVO { |
||||
|
info: DbTableVO; |
||||
|
rows: DbColumnVO[]; |
||||
|
tables: DbTableVO[]; |
||||
|
} |
||||
|
|
||||
|
export interface DbColumnForm extends BaseEntity { |
||||
|
createDept: number; |
||||
|
columnId: string; |
||||
|
tableId: string; |
||||
|
columnName: string; |
||||
|
columnComment: string; |
||||
|
columnType: string; |
||||
|
javaType: string; |
||||
|
javaField: string; |
||||
|
isPk: string; |
||||
|
isIncrement: string; |
||||
|
isRequired: string; |
||||
|
isInsert?: any; |
||||
|
isEdit: string; |
||||
|
isList: string; |
||||
|
isQuery?: any; |
||||
|
queryType: string; |
||||
|
htmlType: string; |
||||
|
dictType: string; |
||||
|
sort: number; |
||||
|
increment: boolean; |
||||
|
capJavaField: string; |
||||
|
usableColumn: boolean; |
||||
|
superColumn: boolean; |
||||
|
list: boolean; |
||||
|
pk: boolean; |
||||
|
insert: boolean; |
||||
|
edit: boolean; |
||||
|
query: boolean; |
||||
|
required: boolean; |
||||
|
} |
||||
|
|
||||
|
export interface DbParamForm { |
||||
|
treeCode?: any; |
||||
|
treeName?: any; |
||||
|
treeParentCode?: any; |
||||
|
parentMenuId: string; |
||||
|
} |
||||
|
|
||||
|
export interface DbTableForm extends BaseEntity { |
||||
|
createDept?: any; |
||||
|
tableId: string | string; |
||||
|
tableName: string; |
||||
|
tableComment: string; |
||||
|
subTableName?: any; |
||||
|
subTableFkName?: any; |
||||
|
className: string; |
||||
|
tplCategory: string; |
||||
|
packageName: string; |
||||
|
moduleName: string; |
||||
|
businessName: string; |
||||
|
functionName: string; |
||||
|
functionAuthor: string; |
||||
|
genType: string; |
||||
|
genPath: string; |
||||
|
pkColumn?: any; |
||||
|
columns: DbColumnForm[]; |
||||
|
options: string; |
||||
|
remark?: any; |
||||
|
treeCode?: any; |
||||
|
treeParentCode?: any; |
||||
|
treeName?: any; |
||||
|
menuIds?: any; |
||||
|
parentMenuId: string; |
||||
|
parentMenuName?: any; |
||||
|
tree: boolean; |
||||
|
crud: boolean; |
||||
|
params: DbParamForm; |
||||
|
} |
@ -0,0 +1,59 @@ |
|||||
|
/** |
||||
|
* 注册 |
||||
|
*/ |
||||
|
export type RegisterForm = { |
||||
|
tenantId: string; |
||||
|
username: string; |
||||
|
password: string; |
||||
|
confirmPassword?: string; |
||||
|
code?: string; |
||||
|
uuid?: string; |
||||
|
userType?: string; |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 登录请求 |
||||
|
*/ |
||||
|
export interface LoginData { |
||||
|
tenantId?: string; |
||||
|
username?: string; |
||||
|
password?: string; |
||||
|
rememberMe?: boolean; |
||||
|
socialCode?: string; |
||||
|
socialState?: string; |
||||
|
source?: string; |
||||
|
code?: string; |
||||
|
uuid?: string; |
||||
|
clientId: string; |
||||
|
grantType: string; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 登录响应 |
||||
|
*/ |
||||
|
export interface LoginResult { |
||||
|
access_token: string; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 验证码返回 |
||||
|
*/ |
||||
|
export interface VerifyCodeResult { |
||||
|
captchaEnabled: boolean; |
||||
|
uuid?: string; |
||||
|
img?: string; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 租户 |
||||
|
*/ |
||||
|
export interface TenantVO { |
||||
|
companyName: string; |
||||
|
domain: any; |
||||
|
tenantId: string; |
||||
|
} |
||||
|
|
||||
|
export interface TenantInfo { |
||||
|
tenantEnabled: boolean; |
||||
|
voList: TenantVO[]; |
||||
|
} |
@ -0,0 +1,76 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { CategoryVO, CategoryForm, CategoryQuery, CategoryTreeVO } from '@/api/workflow/category/types'; |
||||
|
|
||||
|
/** |
||||
|
* 查询流程分类列表 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
|
||||
|
export const listCategory = (query?: CategoryQuery): AxiosPromise<CategoryVO[]> => { |
||||
|
return request({ |
||||
|
url: '/workflow/category/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询流程分类详细 |
||||
|
* @param categoryId |
||||
|
*/ |
||||
|
export const getCategory = (categoryId: string | number): AxiosPromise<CategoryVO> => { |
||||
|
return request({ |
||||
|
url: '/workflow/category/' + categoryId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增流程分类 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const addCategory = (data: CategoryForm) => { |
||||
|
return request({ |
||||
|
url: '/workflow/category', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改流程分类 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const updateCategory = (data: CategoryForm) => { |
||||
|
return request({ |
||||
|
url: '/workflow/category', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除流程分类 |
||||
|
* @param categoryId |
||||
|
*/ |
||||
|
export const delCategory = (categoryId: string | number | Array<string | number>) => { |
||||
|
return request({ |
||||
|
url: '/workflow/category/' + categoryId, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 获取流程分类树列表 |
||||
|
* @param query 流程实例id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const categoryTree = (query?: CategoryForm): AxiosPromise<CategoryTreeVO[]> => { |
||||
|
return request({ |
||||
|
url: `/workflow/category/categoryTree`, |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,67 @@ |
|||||
|
export interface CategoryTreeVO { |
||||
|
id: number | string; |
||||
|
label: string; |
||||
|
parentId: number | string; |
||||
|
weight: number; |
||||
|
children: CategoryTreeVO[]; |
||||
|
} |
||||
|
export interface CategoryVO { |
||||
|
/** |
||||
|
* 流程分类ID |
||||
|
*/ |
||||
|
categoryId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 父级id |
||||
|
*/ |
||||
|
parentId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 流程分类名称 |
||||
|
*/ |
||||
|
categoryName: string; |
||||
|
|
||||
|
/** |
||||
|
* 显示顺序 |
||||
|
*/ |
||||
|
orderNum: number; |
||||
|
|
||||
|
/** |
||||
|
* 创建时间 |
||||
|
*/ |
||||
|
createTime: string; |
||||
|
|
||||
|
/** |
||||
|
* 子对象 |
||||
|
*/ |
||||
|
children: CategoryVO[]; |
||||
|
} |
||||
|
|
||||
|
export interface CategoryForm extends BaseEntity { |
||||
|
/** |
||||
|
* 流程分类ID |
||||
|
*/ |
||||
|
categoryId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 流程分类名称 |
||||
|
*/ |
||||
|
categoryName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 父流程分类id |
||||
|
*/ |
||||
|
parentId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 显示顺序 |
||||
|
*/ |
||||
|
orderNum?: number; |
||||
|
} |
||||
|
|
||||
|
export interface CategoryQuery { |
||||
|
/** |
||||
|
* 流程分类名称 |
||||
|
*/ |
||||
|
categoryName?: string; |
||||
|
} |
@ -0,0 +1,170 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { FlowDefinitionQuery, definitionXmlVO, FlowDefinitionForm, FlowDefinitionVo } from '@/api/workflow/definition/types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
/** |
||||
|
* 获取流程定义列表 |
||||
|
* @param query 流程实例id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const listDefinition = (query: FlowDefinitionQuery): AxiosPromise<FlowDefinitionVo[]> => { |
||||
|
return request({ |
||||
|
url: `/workflow/definition/list`, |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询未发布的流程定义列表 |
||||
|
* @param query 流程实例id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const unPublishList = (query: FlowDefinitionQuery): AxiosPromise<FlowDefinitionVo[]> => { |
||||
|
return request({ |
||||
|
url: `/workflow/definition/unPublishList`, |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 通过流程定义id获取xml |
||||
|
* @param definitionId 流程定义id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const definitionXml = (definitionId: string): AxiosPromise<definitionXmlVO> => { |
||||
|
return request({ |
||||
|
url: `/workflow/definition/definitionXml/${definitionId}`, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除流程定义 |
||||
|
* @param id 流程定义id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const deleteDefinition = (id: string | string[]) => { |
||||
|
return request({ |
||||
|
url: `/workflow/definition/${id}`, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 挂起/激活 |
||||
|
* @param definitionId 流程定义id |
||||
|
* @param activityStatus 状态 |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const active = (definitionId: string, activityStatus: boolean) => { |
||||
|
return request({ |
||||
|
url: `/workflow/definition/active/${definitionId}`, |
||||
|
method: 'put', |
||||
|
params: { |
||||
|
active: activityStatus |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 通过zip或xml部署流程定义 |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function importDef(data: any) { |
||||
|
return request({ |
||||
|
url: '/workflow/definition/importDef', |
||||
|
method: 'post', |
||||
|
data: data, |
||||
|
headers: { |
||||
|
repeatSubmit: false |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 发布流程定义 |
||||
|
* @param id 流程定义id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const publish = (id: string) => { |
||||
|
return request({ |
||||
|
url: `/workflow/definition/publish/${id}`, |
||||
|
method: 'put' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 取消发布流程定义 |
||||
|
* @param id 流程定义id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const unPublish = (id: string) => { |
||||
|
return request({ |
||||
|
url: `/workflow/definition/unPublish/${id}`, |
||||
|
method: 'put' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 获取流程定义xml字符串 |
||||
|
* @param id 流程定义id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const xmlString = (id: string) => { |
||||
|
return request({ |
||||
|
url: `/workflow/definition/xmlString/${id}`, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增 |
||||
|
* @param data 参数 |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const add = (data: FlowDefinitionForm) => { |
||||
|
return request({ |
||||
|
url: `/workflow/definition`, |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改 |
||||
|
* @param data 参数 |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const edit = (data: FlowDefinitionForm) => { |
||||
|
return request({ |
||||
|
url: `/workflow/definition`, |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询详情 |
||||
|
* @param id 参数 |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const getInfo = (id: number | string) => { |
||||
|
return request({ |
||||
|
url: `/workflow/definition/${id}`, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 复制流程定义 |
||||
|
* @param id 流程定义id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const copy = (id: string) => { |
||||
|
return request({ |
||||
|
url: `/workflow/definition/copy/${id}`, |
||||
|
method: 'post' |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,31 @@ |
|||||
|
export interface FlowDefinitionQuery extends PageQuery { |
||||
|
flowCode?: string; |
||||
|
flowName?: string; |
||||
|
category: string | number; |
||||
|
isPublish?: number; |
||||
|
} |
||||
|
|
||||
|
export interface FlowDefinitionVo { |
||||
|
id: string; |
||||
|
flowName: string; |
||||
|
flowCode: string; |
||||
|
formPath: string; |
||||
|
version: string; |
||||
|
isPublish: number; |
||||
|
activityStatus: number; |
||||
|
createTime: Date; |
||||
|
updateTime: Date; |
||||
|
} |
||||
|
|
||||
|
export interface FlowDefinitionForm { |
||||
|
id: string; |
||||
|
flowName: string; |
||||
|
flowCode: string; |
||||
|
category: string; |
||||
|
formPath: string; |
||||
|
} |
||||
|
|
||||
|
export interface definitionXmlVO { |
||||
|
xml: string[]; |
||||
|
xmlStr: string; |
||||
|
} |
@ -0,0 +1,49 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { DefinitionConfigVO, DefinitionConfigForm } from '@/api/workflow/definitionConfig/types'; |
||||
|
|
||||
|
/** |
||||
|
* 查询表单配置详细 |
||||
|
* @param definitionId |
||||
|
*/ |
||||
|
export const getByDefId = (definitionId: string | number): AxiosPromise<DefinitionConfigVO> => { |
||||
|
return request({ |
||||
|
url: '/workflow/definitionConfig/getByDefId/' + definitionId, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增表单配置 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const saveOrUpdate = (data: DefinitionConfigForm) => { |
||||
|
return request({ |
||||
|
url: '/workflow/definitionConfig/saveOrUpdate', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除表单配置 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const deldefinitionConfig = (id: string | number | Array<string | number>) => { |
||||
|
return request({ |
||||
|
url: '/workflow/definitionConfig/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询流程定义配置排除当前查询的流程定义 |
||||
|
* @param tableName |
||||
|
* @param definitionId |
||||
|
*/ |
||||
|
export const getByTableNameNotDefId = (tableName: string, definitionId: string | number) => { |
||||
|
return request({ |
||||
|
url: `/workflow/definitionConfig/getByTableNameNotDefId/${tableName}/${definitionId}`, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,102 @@ |
|||||
|
import { FormManageVO } from '@/api/workflow/formManage/types'; |
||||
|
|
||||
|
export interface DefinitionConfigVO { |
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
id: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 表名 |
||||
|
*/ |
||||
|
tableName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 流程定义ID |
||||
|
*/ |
||||
|
definitionId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 流程KEY |
||||
|
*/ |
||||
|
processKey: string; |
||||
|
|
||||
|
/** |
||||
|
* 流程版本 |
||||
|
*/ |
||||
|
version?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 备注 |
||||
|
*/ |
||||
|
remark: string; |
||||
|
|
||||
|
/** |
||||
|
* 表单管理 |
||||
|
*/ |
||||
|
wfFormManageVo: FormManageVO; |
||||
|
} |
||||
|
|
||||
|
export interface DefinitionConfigForm extends BaseEntity { |
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
id?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 表名 |
||||
|
*/ |
||||
|
tableName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 流程定义ID |
||||
|
*/ |
||||
|
definitionId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 流程KEY |
||||
|
*/ |
||||
|
processKey?: string; |
||||
|
|
||||
|
/** |
||||
|
* 流程版本 |
||||
|
*/ |
||||
|
version?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 备注 |
||||
|
*/ |
||||
|
remark?: string; |
||||
|
|
||||
|
/** |
||||
|
* 表单管理 |
||||
|
*/ |
||||
|
wfFormManageVo?: FormManageVO; |
||||
|
} |
||||
|
|
||||
|
export interface DefinitionConfigQuery extends PageQuery { |
||||
|
/** |
||||
|
* 表名 |
||||
|
*/ |
||||
|
tableName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 流程定义ID |
||||
|
*/ |
||||
|
definitionId?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 流程KEY |
||||
|
*/ |
||||
|
processKey?: string; |
||||
|
|
||||
|
/** |
||||
|
* 流程版本 |
||||
|
*/ |
||||
|
version?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 表单管理 |
||||
|
*/ |
||||
|
wfFormManageVo: FormManageVO; |
||||
|
} |
@ -0,0 +1,76 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { FormManageVO, FormManageForm, FormManageQuery } from '@/api/workflow/formManage/types'; |
||||
|
|
||||
|
/** |
||||
|
* 查询表单管理列表 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
|
||||
|
export const listFormManage = (query?: FormManageQuery): AxiosPromise<FormManageVO[]> => { |
||||
|
return request({ |
||||
|
url: '/workflow/formManage/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询表单管理列表 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
|
||||
|
export const selectListFormManage = (): AxiosPromise<FormManageVO[]> => { |
||||
|
return request({ |
||||
|
url: '/workflow/formManage/list/selectList', |
||||
|
method: 'get', |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询表单管理详细 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const getFormManage = (id: string | number): AxiosPromise<FormManageVO> => { |
||||
|
return request({ |
||||
|
url: '/workflow/formManage/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增表单管理 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const addFormManage = (data: FormManageForm) => { |
||||
|
return request({ |
||||
|
url: '/workflow/formManage', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改表单管理 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const updateFormManage = (data: FormManageForm) => { |
||||
|
return request({ |
||||
|
url: '/workflow/formManage', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除表单管理 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const delFormManage = (id: string | number | Array<string | number>) => { |
||||
|
return request({ |
||||
|
url: '/workflow/formManage/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,69 @@ |
|||||
|
export interface FormManageVO { |
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
id: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 表单名称 |
||||
|
*/ |
||||
|
formName: string; |
||||
|
|
||||
|
/** |
||||
|
* 表单类型 |
||||
|
*/ |
||||
|
formType: string; |
||||
|
/** |
||||
|
* 表单类型名称 |
||||
|
*/ |
||||
|
formTypeName: string; |
||||
|
|
||||
|
/** |
||||
|
* 路由地址/表单ID |
||||
|
*/ |
||||
|
router: string; |
||||
|
|
||||
|
/** |
||||
|
* 备注 |
||||
|
*/ |
||||
|
remork: string; |
||||
|
} |
||||
|
|
||||
|
export interface FormManageForm extends BaseEntity { |
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
id?: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 表单名称 |
||||
|
*/ |
||||
|
formName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 表单类型 |
||||
|
*/ |
||||
|
formType?: string; |
||||
|
|
||||
|
/** |
||||
|
* 路由地址/表单ID |
||||
|
*/ |
||||
|
router?: string; |
||||
|
|
||||
|
/** |
||||
|
* 备注 |
||||
|
*/ |
||||
|
remork?: string; |
||||
|
} |
||||
|
|
||||
|
export interface FormManageQuery extends PageQuery { |
||||
|
/** |
||||
|
* 表单名称 |
||||
|
*/ |
||||
|
formName?: string; |
||||
|
|
||||
|
/** |
||||
|
* 表单类型 |
||||
|
*/ |
||||
|
formType?: string; |
||||
|
} |
@ -0,0 +1,101 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { FlowInstanceQuery, FlowInstanceVO } from '@/api/workflow/instance/types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
/** |
||||
|
* 查询运行中实例列表 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
export const pageByRunning = (query: FlowInstanceQuery): AxiosPromise<FlowInstanceVO[]> => { |
||||
|
return request({ |
||||
|
url: '/workflow/instance/pageByRunning', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询已完成实例列表 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
export const pageByFinish = (query: FlowInstanceQuery): AxiosPromise<FlowInstanceVO[]> => { |
||||
|
return request({ |
||||
|
url: '/workflow/instance/pageByFinish', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 通过业务id获取历史流程图 |
||||
|
*/ |
||||
|
export const flowImage = (businessId: string | number) => { |
||||
|
return request({ |
||||
|
url: `/workflow/instance/flowImage/${businessId}` + '?t' + Math.random(), |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 分页查询当前登录人单据 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
export const pageByCurrent = (query: FlowInstanceQuery): AxiosPromise<FlowInstanceVO[]> => { |
||||
|
return request({ |
||||
|
url: '/workflow/instance/pageByCurrent', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 撤销流程 |
||||
|
* @param data 参数 |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const cancelProcessApply = (data: any) => { |
||||
|
return request({ |
||||
|
url: `/workflow/instance/cancelProcessApply`, |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 获取流程变量 |
||||
|
* @param instanceId 实例id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const instanceVariable = (instanceId: string | number) => { |
||||
|
return request({ |
||||
|
url: `/workflow/instance/instanceVariable/${instanceId}`, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除 |
||||
|
* @param instanceIds 流程实例id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const deleteByInstanceIds = (instanceIds: Array<string | number> | string | number) => { |
||||
|
return request({ |
||||
|
url: `/workflow/instance/deleteByInstanceIds/${instanceIds}`, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
/** |
||||
|
* 作废流程 |
||||
|
* @param data 参数 |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const invalid = (data: any) => { |
||||
|
return request({ |
||||
|
url: `/workflow/instance/invalid`, |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,26 @@ |
|||||
|
import { FlowTaskVO } from '@/api/workflow/task/types'; |
||||
|
|
||||
|
export interface FlowInstanceQuery extends PageQuery { |
||||
|
category?: string | number; |
||||
|
nodeName?: string; |
||||
|
flowCode?: string; |
||||
|
flowName?: string; |
||||
|
createByIds?: string[] | number[]; |
||||
|
businessId?: string; |
||||
|
} |
||||
|
|
||||
|
export interface FlowInstanceVO extends BaseEntity { |
||||
|
id: string | number; |
||||
|
definitionId: string; |
||||
|
flowName: string; |
||||
|
flowCode: string; |
||||
|
version: string; |
||||
|
businessId: string; |
||||
|
activityStatus: number; |
||||
|
tenantId: string; |
||||
|
createTime: string; |
||||
|
createBy: string; |
||||
|
flowStatus: string; |
||||
|
flowStatusName: string; |
||||
|
flowTaskList: FlowTaskVO[]; |
||||
|
} |
@ -0,0 +1,63 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { LeaveVO, LeaveQuery, LeaveForm } from '@/api/workflow/leave/types'; |
||||
|
|
||||
|
/** |
||||
|
* 查询请假列表 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
|
||||
|
export const listLeave = (query?: LeaveQuery): AxiosPromise<LeaveVO[]> => { |
||||
|
return request({ |
||||
|
url: '/workflow/leave/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询请假详细 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const getLeave = (id: string | number): AxiosPromise<LeaveVO> => { |
||||
|
return request({ |
||||
|
url: '/workflow/leave/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增请假 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const addLeave = (data: LeaveForm): AxiosPromise<LeaveVO> => { |
||||
|
return request({ |
||||
|
url: '/workflow/leave', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改请假 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const updateLeave = (data: LeaveForm): AxiosPromise<LeaveVO> => { |
||||
|
return request({ |
||||
|
url: '/workflow/leave', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除请假 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const delLeave = (id: string | number | Array<string | number>) => { |
||||
|
return request({ |
||||
|
url: '/workflow/leave/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,24 @@ |
|||||
|
export interface LeaveVO { |
||||
|
id: string | number; |
||||
|
leaveType: string; |
||||
|
startDate: string; |
||||
|
endDate: string; |
||||
|
leaveDays: number; |
||||
|
remark: string; |
||||
|
status?: string; |
||||
|
} |
||||
|
|
||||
|
export interface LeaveForm extends BaseEntity { |
||||
|
id?: string | number; |
||||
|
leaveType?: string; |
||||
|
startDate?: string; |
||||
|
endDate?: string; |
||||
|
leaveDays?: number; |
||||
|
remark?: string; |
||||
|
status?: string; |
||||
|
} |
||||
|
|
||||
|
export interface LeaveQuery extends PageQuery { |
||||
|
startLeaveDays?: number; |
||||
|
endLeaveDays?: number; |
||||
|
} |
@ -0,0 +1,104 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { ModelForm, ModelQuery, ModelVO } from '@/api/workflow/model/types'; |
||||
|
|
||||
|
/** |
||||
|
* 查询模型列表 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
export const listModel = (query: ModelQuery): AxiosPromise<ModelVO[]> => { |
||||
|
return request({ |
||||
|
url: '/workflow/model/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询模型信息 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
export const getInfo = (id: string): AxiosPromise<ModelForm> => { |
||||
|
return request({ |
||||
|
url: '/workflow/model/getInfo/'+id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增模型 |
||||
|
* @param data |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
export const addModel = (data: ModelForm): AxiosPromise<void> => { |
||||
|
return request({ |
||||
|
url: '/workflow/model/save', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改模型信息 |
||||
|
* @param data |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
export function update(data: ModelForm): AxiosPromise<void> { |
||||
|
return request({ |
||||
|
url: '/workflow/model/update', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改模型信息 |
||||
|
* @param data |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
export function editModelXml(data: ModelForm): AxiosPromise<void> { |
||||
|
return request({ |
||||
|
url: '/workflow/model/editModelXml', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 按id删除模型 |
||||
|
* @returns {*} |
||||
|
* @param id 模型id |
||||
|
*/ |
||||
|
export function delModel(id: string | string[]): AxiosPromise<void> { |
||||
|
return request({ |
||||
|
url: '/workflow/model/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 模型部署 |
||||
|
* @returns {*} |
||||
|
* @param id 模型id |
||||
|
*/ |
||||
|
export const modelDeploy = (id: string): AxiosPromise<void> => { |
||||
|
return request({ |
||||
|
url: `/workflow/model/modelDeploy/${id}`, |
||||
|
method: 'post' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 复制模型 |
||||
|
* @param data |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
export const copyModel = (data: ModelForm): AxiosPromise<void> => { |
||||
|
return request({ |
||||
|
url: '/workflow/model/copyModel', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,66 @@ |
|||||
|
export interface ModelForm { |
||||
|
id: string, |
||||
|
name: string; |
||||
|
key: string; |
||||
|
categoryCode: string; |
||||
|
xml:string, |
||||
|
svg:string, |
||||
|
description: string; |
||||
|
} |
||||
|
|
||||
|
export interface ModelQuery extends PageQuery { |
||||
|
name?: string; |
||||
|
key?: string; |
||||
|
categoryCode?: string; |
||||
|
} |
||||
|
|
||||
|
export interface OriginalPersistentState { |
||||
|
metaInfo: string; |
||||
|
editorSourceValueId: string; |
||||
|
createTime: string; |
||||
|
deploymentId?: string; |
||||
|
name: string; |
||||
|
tenantId: string; |
||||
|
category?: string; |
||||
|
version: number; |
||||
|
editorSourceExtraValueId?: string; |
||||
|
key: string; |
||||
|
lastUpdateTime: string; |
||||
|
} |
||||
|
|
||||
|
export interface PersistentState { |
||||
|
metaInfo: string; |
||||
|
editorSourceValueId: string; |
||||
|
createTime: string; |
||||
|
deploymentId?: string; |
||||
|
name: string; |
||||
|
tenantId: string; |
||||
|
category?: string; |
||||
|
version: number; |
||||
|
editorSourceExtraValueId?: string; |
||||
|
key: string; |
||||
|
lastUpdateTime: string; |
||||
|
} |
||||
|
|
||||
|
export interface ModelVO { |
||||
|
id: string; |
||||
|
revision: number; |
||||
|
originalPersistentState: OriginalPersistentState; |
||||
|
name: string; |
||||
|
key: string; |
||||
|
category?: string; |
||||
|
createTime: string; |
||||
|
lastUpdateTime: string; |
||||
|
version: number; |
||||
|
metaInfo: string; |
||||
|
deploymentId?: string; |
||||
|
editorSourceValueId: string; |
||||
|
editorSourceExtraValueId?: string; |
||||
|
tenantId: string; |
||||
|
persistentState: PersistentState; |
||||
|
revisionNext: number; |
||||
|
idPrefix: string; |
||||
|
inserted: boolean; |
||||
|
updated: boolean; |
||||
|
deleted: boolean; |
||||
|
} |
@ -0,0 +1,63 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
import { NodeConfigVO, NodeConfigForm, NodeConfigQuery } from '@/api/workflow/nodeConfig/types'; |
||||
|
|
||||
|
/** |
||||
|
* 查询节点配置列表 |
||||
|
* @param query |
||||
|
* @returns {*} |
||||
|
*/ |
||||
|
|
||||
|
export const listNodeConfig = (query?: NodeConfigQuery): AxiosPromise<NodeConfigVO[]> => { |
||||
|
return request({ |
||||
|
url: '/workflow/nodeConfig/list', |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 查询节点配置详细 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const getNodeConfig = (id: string | number): AxiosPromise<NodeConfigVO> => { |
||||
|
return request({ |
||||
|
url: '/workflow/nodeConfig/' + id, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 新增节点配置 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const addNodeConfig = (data: NodeConfigForm) => { |
||||
|
return request({ |
||||
|
url: '/workflow/nodeConfig', |
||||
|
method: 'post', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 修改节点配置 |
||||
|
* @param data |
||||
|
*/ |
||||
|
export const updateNodeConfig = (data: NodeConfigForm) => { |
||||
|
return request({ |
||||
|
url: '/workflow/nodeConfig', |
||||
|
method: 'put', |
||||
|
data: data |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除节点配置 |
||||
|
* @param id |
||||
|
*/ |
||||
|
export const delNodeConfig = (id: string | number | Array<string | number>) => { |
||||
|
return request({ |
||||
|
url: '/workflow/nodeConfig/' + id, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,43 @@ |
|||||
|
import { FormManageVO } from '@/api/workflow/formManage/types'; |
||||
|
|
||||
|
export interface NodeConfigVO { |
||||
|
/** |
||||
|
* 主键 |
||||
|
*/ |
||||
|
id: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 表单id |
||||
|
*/ |
||||
|
formId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 表单类型 |
||||
|
*/ |
||||
|
formType: string; |
||||
|
|
||||
|
/** |
||||
|
* 节点名称 |
||||
|
*/ |
||||
|
nodeName: string; |
||||
|
|
||||
|
/** |
||||
|
* 节点id |
||||
|
*/ |
||||
|
nodeId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 流程定义id |
||||
|
*/ |
||||
|
definitionId: string | number; |
||||
|
|
||||
|
/** |
||||
|
* 表单管理 |
||||
|
*/ |
||||
|
wfFormManageVo: FormManageVO; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
@ -0,0 +1,114 @@ |
|||||
|
import request from '@/utils/request'; |
||||
|
import { ProcessDefinitionQuery, ProcessDefinitionVO, definitionXmlVO } from '@/api/workflow/processDefinition/types'; |
||||
|
import { AxiosPromise } from 'axios'; |
||||
|
|
||||
|
/** |
||||
|
* 获取流程定义列表 |
||||
|
* @param query 流程实例id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const listProcessDefinition = (query: ProcessDefinitionQuery): AxiosPromise<ProcessDefinitionVO[]> => { |
||||
|
return request({ |
||||
|
url: `/workflow/processDefinition/list`, |
||||
|
method: 'get', |
||||
|
params: query |
||||
|
}); |
||||
|
}; |
||||
|
/** |
||||
|
* 按照流程定义key获取流程定义 |
||||
|
* @param processInstanceId 流程实例id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const getListByKey = (key: string) => { |
||||
|
return request({ |
||||
|
url: `/workflow/processDefinition/getListByKey/${key}`, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 通过流程定义id获取流程图 |
||||
|
*/ |
||||
|
export const definitionImage = (processDefinitionId: string): AxiosPromise<any> => { |
||||
|
return request({ |
||||
|
url: `/workflow/processDefinition/definitionImage/${processDefinitionId}` + '?t' + Math.random(), |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 通过流程定义id获取xml |
||||
|
* @param processDefinitionId 流程定义id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const definitionXml = (processDefinitionId: string): AxiosPromise<definitionXmlVO> => { |
||||
|
return request({ |
||||
|
url: `/workflow/processDefinition/definitionXml/${processDefinitionId}`, |
||||
|
method: 'get' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 删除流程定义 |
||||
|
* @param deploymentId 部署id |
||||
|
* @param processDefinitionId 流程定义id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const deleteProcessDefinition = (deploymentId: string | string[], processDefinitionId: string | string[]) => { |
||||
|
return request({ |
||||
|
url: `/workflow/processDefinition/${deploymentId}/${processDefinitionId}`, |
||||
|
method: 'delete' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 挂起/激活 |
||||
|
* @param processDefinitionId 流程定义id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const updateDefinitionState = (processDefinitionId: string) => { |
||||
|
return request({ |
||||
|
url: `/workflow/processDefinition/updateDefinitionState/${processDefinitionId}`, |
||||
|
method: 'put' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 流程定义转换为模型 |
||||
|
* @param processDefinitionId 流程定义id |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const convertToModel = (processDefinitionId: string) => { |
||||
|
return request({ |
||||
|
url: `/workflow/processDefinition/convertToModel/${processDefinitionId}`, |
||||
|
method: 'put' |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
/** |
||||
|
* 通过zip或xml部署流程定义 |
||||
|
* @returns |
||||
|
*/ |
||||
|
export function deployProcessFile(data: any) { |
||||
|
return request({ |
||||
|
url: '/workflow/processDefinition/deployByFile', |
||||
|
method: 'post', |
||||
|
data: data, |
||||
|
headers: { |
||||
|
repeatSubmit: false |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 迁移流程 |
||||
|
* @param currentProcessDefinitionId |
||||
|
* @param fromProcessDefinitionId |
||||
|
* @returns |
||||
|
*/ |
||||
|
export const migrationDefinition = (currentProcessDefinitionId: string, fromProcessDefinitionId: string) => { |
||||
|
return request({ |
||||
|
url: `/workflow/processDefinition/migrationDefinition/${currentProcessDefinitionId}/${fromProcessDefinitionId}`, |
||||
|
method: 'put' |
||||
|
}); |
||||
|
}; |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue