Browse Source

初始化所有

lwx_v1
超级管理员 2 years ago
parent
commit
ade88dd724
  1. 14
      .editorconfig
  2. 10
      .env.development
  3. 6
      .env.production
  4. 6
      .env.staging
  5. 14
      .eslintignore
  6. 269
      .eslintrc-auto-import.json
  7. 32
      .eslintrc.cjs
  8. 4
      .husky/commit-msg
  9. 4
      .husky/pre-commit
  10. 10
      .prettierignore
  11. 36
      .prettierrc.cjs
  12. 10
      .stylelintignore
  13. 43
      .stylelintrc.cjs
  14. 20
      CHANGELOG.md
  15. 93
      commitlint.config.cjs
  16. 18
      index.html
  17. 102
      package.json
  18. BIN
      public/favicon.ico
  19. 11
      src/App.vue
  20. 56
      src/api/auth/index.ts
  21. 72
      src/api/auth/types.ts
  22. 77
      src/api/dept/index.ts
  23. 71
      src/api/dept/types.ts
  24. 217
      src/api/dict/index.ts
  25. 151
      src/api/dict/types.ts
  26. 34
      src/api/file/index.ts
  27. 7
      src/api/file/types.ts
  28. 63
      src/api/handle.ts
  29. 83
      src/api/hr/duties/index.ts
  30. 72
      src/api/hr/duties/type.ts
  31. 103
      src/api/hr/org/index.ts
  32. 130
      src/api/hr/org/type.ts
  33. 550
      src/api/hr/people/datacont.ts
  34. 346
      src/api/hr/people/index.ts
  35. 544
      src/api/hr/people/type.ts
  36. 53
      src/api/hr/post/index.ts
  37. 69
      src/api/hr/post/type.ts
  38. 128
      src/api/menu/index.ts
  39. 125
      src/api/menu/types.ts
  40. 62
      src/api/publicapi.ts
  41. 112
      src/api/role/index.ts
  42. 78
      src/api/role/types.ts
  43. 83
      src/api/system/roleapi/postrole.ts
  44. 94
      src/api/system/roleapi/rolecont.ts
  45. 267
      src/api/system/roleapi/types.ts
  46. 159
      src/api/user/index.ts
  47. 111
      src/api/user/types.ts
  48. BIN
      src/assets/401_images/401.gif
  49. BIN
      src/assets/404_images/404.png
  50. BIN
      src/assets/404_images/404_cloud.png
  51. BIN
      src/assets/appimages/1.png
  52. BIN
      src/assets/appimages/10.png
  53. BIN
      src/assets/appimages/11.png
  54. BIN
      src/assets/appimages/12.png
  55. BIN
      src/assets/appimages/13.png
  56. BIN
      src/assets/appimages/14.png
  57. BIN
      src/assets/appimages/15.png
  58. BIN
      src/assets/appimages/16.png
  59. BIN
      src/assets/appimages/17.png
  60. BIN
      src/assets/appimages/18.png
  61. BIN
      src/assets/appimages/19.png
  62. BIN
      src/assets/appimages/2.png
  63. BIN
      src/assets/appimages/20.png
  64. BIN
      src/assets/appimages/21.png
  65. BIN
      src/assets/appimages/22.png
  66. BIN
      src/assets/appimages/23.png
  67. BIN
      src/assets/appimages/24.png
  68. BIN
      src/assets/appimages/25.png
  69. BIN
      src/assets/appimages/26.png
  70. BIN
      src/assets/appimages/27.png
  71. BIN
      src/assets/appimages/28.png
  72. BIN
      src/assets/appimages/29.png
  73. BIN
      src/assets/appimages/3.png
  74. BIN
      src/assets/appimages/30.png
  75. BIN
      src/assets/appimages/31.png
  76. BIN
      src/assets/appimages/32.png
  77. BIN
      src/assets/appimages/33.png
  78. BIN
      src/assets/appimages/34.png
  79. BIN
      src/assets/appimages/4.png
  80. BIN
      src/assets/appimages/5.png
  81. BIN
      src/assets/appimages/6.png
  82. BIN
      src/assets/appimages/7.png
  83. BIN
      src/assets/appimages/8.png
  84. BIN
      src/assets/appimages/9.png
  85. 1
      src/assets/icons/0117- dg.svg
  86. 1
      src/assets/icons/0209-jtbzp.svg
  87. 1
      src/assets/icons/0213-lmp.svg
  88. 1
      src/assets/icons/0215lbtcc_.svg
  89. 1
      src/assets/icons/0303gczsp.svg
  90. 1
      src/assets/icons/0309rxjrjc_.svg
  91. 1
      src/assets/icons/0407jtzy.svg
  92. 1
      src/assets/icons/0601-zdwx.svg
  93. 1
      src/assets/icons/110kv.svg
  94. 1
      src/assets/icons/AI.svg
  95. 1
      src/assets/icons/APIjr.svg
  96. 1
      src/assets/icons/APIsc.svg
  97. 1
      src/assets/icons/APPkf.svg
  98. 1
      src/assets/icons/BMP.svg
  99. 1
      src/assets/icons/DOC.svg
  100. 1
      src/assets/icons/GIF.svg

14
.editorconfig

@ -0,0 +1,14 @@
# http://editorconfig.org
root = true
# 表示所有文件适用
[*]
charset = utf-8 # 设置文件字符集为 utf-8
end_of_line = lf # 控制换行类型(lf | cr | crlf)
indent_style = tab # 缩进风格(tab | space)
insert_final_newline = true # 始终在文件末尾插入一个新行
# 表示仅 md 文件适用以下规则
[*.md]
max_line_length = off # 关闭最大行长度限制
trim_trailing_whitespace = false # 关闭末尾空格修剪

10
.env.development

@ -0,0 +1,10 @@
## 开发环境
# 变量必须以 VITE_ 为前缀才能暴露给外部读取
NODE_ENV='development'
VITE_APP_TITLE = 'vue3-element-admin'
VITE_APP_PORT = 9999
VITE_APP_BASE_API = '/dev-api'
VITE_APP_BASE_URL = 'http://myvuetest.net'
VITE_APP_TOKEN_KEY = 'offlineAccessSystemAppToken'

6
.env.production

@ -0,0 +1,6 @@
## 生产环境
VITE_APP_TITLE = '数通智联化工云平台'
VITE_APP_PORT = 17777
VITE_APP_BASE_API = ''
VITE_APP_TOKEN_KEY = 'onlineAccessSystemAppToken'

6
.env.staging

@ -0,0 +1,6 @@
## 模拟环境
NODE_ENV='staging'
VITE_APP_TITLE = '数通智联化工云平台'
VITE_APP_PORT = 3000
VITE_APP_BASE_API = '/prod--api'

14
.eslintignore

@ -0,0 +1,14 @@
dist
node_modules
public
.husky
.vscode
.idea
*.sh
*.md
src/assets
.eslintrc.cjs
.prettierrc.cjs
.stylelintrc.cjs

269
.eslintrc-auto-import.json

@ -0,0 +1,269 @@
{
"globals": {
"EffectScope": true,
"ElForm": true,
"ElMessage": true,
"ElMessageBox": true,
"ElTree": true,
"asyncComputed": true,
"autoResetRef": true,
"computed": true,
"computedAsync": true,
"computedEager": true,
"computedInject": true,
"computedWithControl": true,
"controlledComputed": true,
"controlledRef": true,
"createApp": true,
"createEventHook": true,
"createGlobalState": true,
"createInjectionState": true,
"createReactiveFn": true,
"createSharedComposable": true,
"createUnrefFn": true,
"customRef": true,
"debouncedRef": true,
"debouncedWatch": true,
"defineAsyncComponent": true,
"defineComponent": true,
"eagerComputed": true,
"effectScope": true,
"extendRef": true,
"getCurrentInstance": true,
"getCurrentScope": true,
"h": true,
"ignorableWatch": true,
"inject": true,
"isDefined": true,
"isProxy": true,
"isReactive": true,
"isReadonly": true,
"isRef": true,
"makeDestructurable": true,
"markRaw": true,
"nextTick": true,
"onActivated": true,
"onBeforeMount": true,
"onBeforeUnmount": true,
"onBeforeUpdate": true,
"onClickOutside": true,
"onDeactivated": true,
"onErrorCaptured": true,
"onKeyStroke": true,
"onLongPress": true,
"onMounted": true,
"onRenderTracked": true,
"onRenderTriggered": true,
"onScopeDispose": true,
"onServerPrefetch": true,
"onStartTyping": true,
"onUnmounted": true,
"onUpdated": true,
"pausableWatch": true,
"provide": true,
"reactify": true,
"reactifyObject": true,
"reactive": true,
"reactiveComputed": true,
"reactiveOmit": true,
"reactivePick": true,
"readonly": true,
"ref": true,
"refAutoReset": true,
"refDebounced": true,
"refDefault": true,
"refThrottled": true,
"refWithControl": true,
"resolveComponent": true,
"resolveDirective": true,
"resolveRef": true,
"resolveUnref": true,
"shallowReactive": true,
"shallowReadonly": true,
"shallowRef": true,
"syncRef": true,
"syncRefs": true,
"templateRef": true,
"throttledRef": true,
"throttledWatch": true,
"toRaw": true,
"toReactive": true,
"toRef": true,
"toRefs": true,
"triggerRef": true,
"tryOnBeforeMount": true,
"tryOnBeforeUnmount": true,
"tryOnMounted": true,
"tryOnScopeDispose": true,
"tryOnUnmounted": true,
"unref": true,
"unrefElement": true,
"until": true,
"useActiveElement": true,
"useArrayEvery": true,
"useArrayFilter": true,
"useArrayFind": true,
"useArrayFindIndex": true,
"useArrayFindLast": 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,
"useCloned": true,
"useColorMode": true,
"useConfirmDialog": true,
"useCounter": true,
"useCssModule": true,
"useCssVar": true,
"useCssVars": true,
"useCurrentElement": true,
"useCycleList": true,
"useDark": true,
"useDateFormat": true,
"useDebounce": true,
"useDebounceFn": true,
"useDebouncedRefHistory": true,
"useDeviceMotion": true,
"useDeviceOrientation": true,
"useDevicePixelRatio": true,
"useDevicesList": true,
"useDisplayMedia": true,
"useDocumentVisibility": true,
"useDraggable": true,
"useDropZone": true,
"useElementBounding": true,
"useElementByPoint": true,
"useElementHover": true,
"useElementSize": true,
"useElementVisibility": true,
"useEventBus": true,
"useEventListener": true,
"useEventSource": true,
"useEyeDropper": true,
"useFavicon": true,
"useFetch": true,
"useFileDialog": true,
"useFileSystemAccess": true,
"useFocus": true,
"useFocusWithin": true,
"useFps": true,
"useFullscreen": true,
"useGamepad": true,
"useGeolocation": true,
"useIdle": true,
"useImage": true,
"useInfiniteScroll": true,
"useIntersectionObserver": true,
"useInterval": true,
"useIntervalFn": true,
"useKeyModifier": true,
"useLastChanged": true,
"useLocalStorage": true,
"useMagicKeys": true,
"useManualRefHistory": true,
"useMediaControls": true,
"useMediaQuery": true,
"useMemoize": true,
"useMemory": true,
"useMounted": true,
"useMouse": true,
"useMouseInElement": true,
"useMousePressed": true,
"useMutationObserver": true,
"useNavigatorLanguage": true,
"useNetwork": true,
"useNow": true,
"useObjectUrl": true,
"useOffsetPagination": true,
"useOnline": true,
"usePageLeave": true,
"useParallax": true,
"usePermission": true,
"usePointer": true,
"usePointerLock": true,
"usePointerSwipe": true,
"usePreferredColorScheme": true,
"usePreferredContrast": true,
"usePreferredDark": true,
"usePreferredLanguages": true,
"usePreferredReducedMotion": true,
"usePrevious": true,
"useRafFn": true,
"useRefHistory": true,
"useResizeObserver": 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,
"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,
"watchEffect": true,
"watchIgnorable": true,
"watchOnce": true,
"watchPausable": true,
"watchPostEffect": true,
"watchSyncEffect": true,
"watchThrottled": true,
"watchTriggerable": true,
"watchWithFilter": true,
"whenever": true
}
}

32
.eslintrc.cjs

@ -0,0 +1,32 @@
module.exports = {
env: {
browser: true,
es2021: true,
node: true,
},
parser: "vue-eslint-parser",
extends: [
// 参考vuejs官方的eslint配置: https://eslint.vuejs.org/user-guide/#usage
"plugin:vue/vue3-recommended",
"./.eslintrc-auto-import.json",
"prettier",
],
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
parser: "@typescript-eslint/parser",
},
plugins: ["vue", "@typescript-eslint"],
rules: {
"vue/multi-word-component-names": "off", // 关闭组件名必须多字: https://eslint.vuejs.org/rules/multi-word-component-names.html
"@typescript-eslint/no-empty-function": "off", // 关闭空方法检查
"@typescript-eslint/no-explicit-any": "off", // 关闭any类型的警告
"vue/no-v-model-argument": "off",
"@typescript-eslint/no-non-null-assertion": "off",
},
// https://eslint.org/docs/latest/use/configure/language-options#specifying-globals
globals: {
DialogOption: "readonly",
OptionType: "readonly",
},
};

4
.husky/commit-msg

@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no-install commitlint --edit $1

4
.husky/pre-commit

@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npm run lint:lint-staged

10
.prettierignore

@ -0,0 +1,10 @@
dist
node_modules
public
.husky
.vscode
.idea
*.sh
*.md
src/assets

36
.prettierrc.cjs

@ -0,0 +1,36 @@
module.exports = {
// (x)=>{},单个参数箭头函数是否显示小括号。(always:始终显示;avoid:省略括号。默认:always)
arrowParens: "always",
// 开始标签的右尖括号是否跟随在最后一行属性末尾,默认false
bracketSameLine: false,
// 对象字面量的括号之间打印空格 (true - Example: { foo: bar } ; false - Example: {foo:bar})
bracketSpacing: true,
// 是否格式化一些文件中被嵌入的代码片段的风格(auto|off;默认auto)
embeddedLanguageFormatting: "auto",
// 指定 HTML 文件的空格敏感度 (css|strict|ignore;默认css)
htmlWhitespaceSensitivity: "css",
// 当文件已经被 Prettier 格式化之后,是否会在文件顶部插入一个特殊的 @format 标记,默认false
insertPragma: false,
// 在 JSX 中使用单引号替代双引号,默认false
jsxSingleQuote: false,
// 每行最多字符数量,超出换行(默认80)
printWidth: 80,
// 超出打印宽度 (always | never | preserve )
proseWrap: "preserve",
// 对象属性是否使用引号(as-needed | consistent | preserve;默认as-needed:对象的属性需要加引号才添加;)
quoteProps: "as-needed",
// 是否只格式化在文件顶部包含特定注释(@prettier| @format)的文件,默认false
requirePragma: false,
// 结尾添加分号
semi: true,
// 使用单引号 (true:单引号;false:双引号)
singleQuote: false,
// 缩进空格数,默认2个空格
tabWidth: 2,
// 元素末尾是否加逗号,默认es5: ES5中的 objects, arrays 等会添加逗号,TypeScript 中的 type 后不加逗号
trailingComma: "es5",
// 指定缩进方式,空格或tab,默认false,即使用空格
useTabs: false,
// vue 文件中是否缩进 <style> 和 <script> 标签,默认 false
vueIndentScriptAndStyle: false,
};

10
.stylelintignore

@ -0,0 +1,10 @@
dist
node_modules
public
.husky
.vscode
.idea
*.sh
*.md
src/assets

43
.stylelintrc.cjs

@ -0,0 +1,43 @@
module.exports = {
// 继承推荐规范配置
extends: [
"stylelint-config-standard",
"stylelint-config-recommended-scss",
"stylelint-config-recommended-vue/scss",
"stylelint-config-html/vue",
"stylelint-config-recess-order",
],
// 指定不同文件对应的解析器
overrides: [
{
files: ["**/*.{vue,html}"],
customSyntax: "postcss-html",
},
{
files: ["**/*.{css,scss}"],
customSyntax: "postcss-scss",
},
],
// 自定义规则
rules: {
"import-notation": "string", // 指定导入CSS文件的方式("string"|"url")
"selector-class-pattern": null, // 选择器类名命名规则
"custom-property-pattern": null, // 自定义属性命名规则
"keyframes-name-pattern": null, // 动画帧节点样式命名规则
"no-descending-specificity": null, // 允许无降序特异性
// 允许 global 、export 、deep伪类
"selector-pseudo-class-no-unknown": [
true,
{
ignorePseudoClasses: ["global", "export", "deep"],
},
],
// 允许未知属性
"property-no-unknown": [
true,
{
ignoreProperties: ["menuBg", "menuText", "menuActiveText"],
},
],
},
};

20
CHANGELOG.md

@ -0,0 +1,20 @@
# 2.3.0 (2023/5/12)
### 📦️ build
- vue 版本升级 3.2.45 → 3.3.1 ([CHANGELOG](https://github.com/vuejs/core/blob/main/CHANGELOG.md))
- vite 版本升级 4.3.1 → 4.3.5
### ♻️ refactor
- 使用 vue 3.3 版本新特性 `defineOptions``setup` 定义组件名称,移除重复的 `script` 标签
# 2.2.2 (2023/5/11)
### ✨ feat
- 用户新增提交添加 `vueUse``useDebounceFn` 函数实现按钮防抖节流
# 2.2.1 (2023/4/25)
### 🐛 fix
- 图标选择器组件使用 `onClickOutside` 未排除下拉弹出框元素导致无法输入搜索。

93
commitlint.config.cjs

@ -0,0 +1,93 @@
module.exports = {
// 继承的规则
extends: ["@commitlint/config-conventional"],
// 自定义规则
rules: {
// @see https://commitlint.js.org/#/reference-rules
// 提交类型枚举,git提交type必须是以下类型
"type-enum": [
2,
"always",
[
"feat", // 新增功能
"fix", // 修复缺陷
"docs", // 文档变更
"style", // 代码格式(不影响功能,例如空格、分号等格式修正)
"refactor", // 代码重构(不包括 bug 修复、功能新增)
"perf", // 性能优化
"test", // 添加疏漏测试或已有测试改动
"build", // 构建流程、外部依赖变更(如升级 npm 包、修改 webpack 配置等)
"ci", // 修改 CI 配置、脚本
"revert", // 回滚 commit
"chore", // 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)
],
],
"subject-case": [0], // subject大小写不做校验
},
prompt: {
messages: {
type: "选择你要提交的类型 :",
scope: "选择一个提交范围(可选):",
customScope: "请输入自定义的提交范围 :",
subject: "填写简短精炼的变更描述 :\n",
body: '填写更加详细的变更描述(可选)。使用 "|" 换行 :\n',
breaking: '列举非兼容性重大的变更(可选)。使用 "|" 换行 :\n',
footerPrefixesSelect: "选择关联issue前缀(可选):",
customFooterPrefix: "输入自定义issue前缀 :",
footer: "列举关联issue (可选) 例如: #31, #I3244 :\n",
generatingByAI: "正在通过 AI 生成你的提交简短描述...",
generatedSelectByAI: "选择一个 AI 生成的简短描述:",
confirmCommit: "是否提交或修改commit ?",
},
// prettier-ignore
types: [
{ value: "feat", name: "特性: ✨ 新增功能", emoji: ":sparkles:" },
{ value: "fix", name: "修复: 🐛 修复缺陷", emoji: ":bug:" },
{ value: "docs", name: "文档: 📝 文档变更", emoji: ":memo:" },
{ value: "style", name: "格式: 💄 代码格式(不影响功能,例如空格、分号等格式修正)", emoji: ":lipstick:" },
{ value: "refactor", name: "重构: ♻️ 代码重构(不包括 bug 修复、功能新增)", emoji: ":recycle:" },
{ value: "perf", name: "性能: ⚡️ 性能优化", emoji: ":zap:" },
{ value: "test", name: "测试: ✅ 添加疏漏测试或已有测试改动", emoji: ":white_check_mark:"},
{ value: "build", name: "构建: 📦️ 构建流程、外部依赖变更(如升级 npm 包、修改 vite 配置等)", emoji: ":package:"},
{ value: "ci", name: "集成: 🎡 修改 CI 配置、脚本", emoji: ":ferris_wheel:"},
{ value: "revert", name: "回退: ⏪️ 回滚 commit",emoji: ":rewind:"},
{ value: "chore", name: "其他: 🔨 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)", emoji: ":hammer:"},
],
useEmoji: true,
emojiAlign: "center",
useAI: false,
aiNumber: 1,
themeColorCode: "",
scopes: [],
allowCustomScopes: true,
allowEmptyScopes: true,
customScopesAlign: "bottom",
customScopesAlias: "custom",
emptyScopesAlias: "empty",
upperCaseSubject: false,
markBreakingChangeMode: false,
allowBreakingChanges: ["feat", "fix"],
breaklineNumber: 100,
breaklineChar: "|",
skipQuestions: [],
issuePrefixes: [
{ value: "closed", name: "closed: ISSUES has been processed" },
],
customIssuePrefixAlign: "top",
emptyIssuePrefixAlias: "skip",
customIssuePrefixAlias: "custom",
allowCustomIssuePrefix: true,
allowEmptyIssuePrefix: true,
confirmColorize: true,
maxHeaderLength: Infinity,
maxSubjectLength: Infinity,
minSubjectLength: 0,
scopeOverrides: undefined,
defaultBody: "",
defaultIssues: "",
defaultScope: "",
defaultSubject: "",
},
};

18
index.html

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="数通智联化工云平台" />
<meta name="keywords" content="数通智联化工云平台" />
<title>数通智联化工云平台</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

102
package.json

@ -0,0 +1,102 @@
{
"name": "appsys",
"private": true,
"version": "2.3.0",
"type": "module",
"scripts": {
"dev": "vite serve --mode development",
"build:prod": "vite build --mode production &&vue-tsc --noEmit",
"prepare": "husky install",
"lint:eslint": "eslint --fix --ext .ts,.js,.vue ./src ",
"lint:prettier": "prettier --write \"**/*.{js,cjs,ts,json,tsx,css,less,scss,vue,html,md}\"",
"lint:stylelint": "stylelint \"**/*.{css,scss,vue}\" --fix",
"lint:lint-staged": "lint-staged",
"commit": "git-cz"
},
"config": {
"commitizen": {
"path": "node_modules/cz-git"
}
},
"lint-staged": {
"*.{js,ts}": [
"eslint --fix",
"prettier --write"
],
"*.{cjs,json}": [
"prettier --write"
],
"*.{vue,html}": [
"eslint --fix",
"prettier --write",
"stylelint --fix"
],
"*.{scss,css}": [
"stylelint --fix",
"prettier --write"
],
"*.md": [
"prettier --write"
]
},
"dependencies": {
"@vitejs/plugin-vue": "^4.2.3",
"@vueuse/core": "^10.1.2",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "5.1.10",
"@wecom/jssdk": "^1.3.2",
"axios": "^1.4.0",
"echarts": "^5.2.2",
"element-plus": "^2.3.4",
"nprogress": "^0.2.0",
"path-browserify": "^1.0.1",
"path-to-regexp": "^6.2.0",
"pinia": "^2.0.33",
"screenfull": "^6.0.0",
"vue": "^3.3.1",
"vue-i18n": "9.2.2",
"vue-router": "^4.2.0"
},
"devDependencies": {
"@commitlint/cli": "^17.6.3",
"@commitlint/config-conventional": "^17.6.3",
"@iconify-json/ep": "^1.1.10",
"@types/nprogress": "^0.2.0",
"@types/path-browserify": "^1.0.0",
"@typescript-eslint/eslint-plugin": "^5.59.6",
"@typescript-eslint/parser": "^5.59.6",
"autoprefixer": "^10.4.14",
"commitizen": "^4.3.0",
"cz-git": "^1.6.1",
"eslint": "^8.40.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-vue": "^9.13.0",
"fast-glob": "^3.2.11",
"husky": "^8.0.3",
"lint-staged": "^13.2.2",
"postcss": "^8.4.23",
"postcss-html": "^1.5.0",
"postcss-scss": "^4.0.6",
"prettier": "^2.8.8",
"sass": "^1.58.3",
"stylelint": "^15.5.0",
"stylelint-config-html": "^1.1.0",
"stylelint-config-recess-order": "^4.0.0",
"stylelint-config-recommended-scss": "11.0.0 ",
"stylelint-config-recommended-vue": "^1.4.0",
"stylelint-config-standard": "^33.0.0",
"stylelint-config-standard-scss": "^9.0.0",
"typescript": "^5.0.4",
"unocss": "^0.51.13",
"unplugin-auto-import": "^0.15.3",
"unplugin-icons": "^0.16.1",
"unplugin-vue-components": "^0.24.1",
"vite": "^4.3.5",
"vite-plugin-svg-icons": "^2.0.1",
"vue-tsc": "^1.6.5 "
},
"repository": "",
"author": "",
"license": "MIT"
}

BIN
public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

11
src/App.vue

@ -0,0 +1,11 @@
<script setup lang="ts">
import { ElConfigProvider } from 'element-plus';
import { useAppStore } from '@/store/modules/app';
const appStore = useAppStore();
</script>
<template>
<el-config-provider :locale="appStore.locale" :size="appStore.size">
<router-view />
</el-config-provider>
</template>

56
src/api/auth/index.ts

@ -0,0 +1,56 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { CaptchaResult, LoginData, LoginResult } from './types';
/**
* API
*
* @param data {LoginData}
* @returns
*/
export function loginApi(data: LoginData): AxiosPromise<LoginResult> {
return request({
url: '/api/v1/auth/login',
method: 'post',
params: data
});
}
export function loginApiIng(data: LoginData): AxiosPromise<LoginResult> {
return request({
url: "/kpiapi/base/login",
method: "post",
data: data,
});
}
/**
* API
*/
export function logoutApiOld() {
return request({
url: '/api/v1/auth/logout',
method: 'delete'
});
}
export function logoutApi() {
return request({
url: "/kpiapi/base/signout",
method: "post",
});
}
/**
*
*/
export function getCaptchaApi(): AxiosPromise<CaptchaResult> {
return request({
url: '/api/v1/auth/captcha',
method: 'get'
});
}
export function getCaptchaApiIng(): AxiosPromise<CaptchaResult> {
return request({
url: "/kpiapi/base/captcha",
method: "post",
});
}

72
src/api/auth/types.ts

@ -0,0 +1,72 @@
/**
*
*/
export interface LoginData {
/**
*
*/
username?: string;
/**
*
*/
password?: string;
/**
* key
*/
verifyCodeKey?: string;
/**
*
*/
verifyCode?: string;
captcha?: string;
captchaId?: string;
}
/**
*
*/
export interface LoginResult {
/**
* 访token
*/
accessToken?: string;
/**
* ()
*/
expires?: number;
/**
* token
*/
refreshToken?: string;
/**
* token
*/
tokenType?: string;
key?: string;
token?: string;
}
/**
*
*/
export interface CaptchaResult {
/**
* key
*/
verifyCodeKey: string;
/**
* Base64字符串
*/
verifyCodeBase64: string;
/**
* key
*/
captchaid: string;
/**
* Base64字符串
*/
picPath: string;
}

77
src/api/dept/index.ts

@ -0,0 +1,77 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DeptForm, DeptQuery, DeptVO } from './types';
/**
*
*
* @param queryParams
*/
export function listDepts(queryParams?: DeptQuery): AxiosPromise<DeptVO[]> {
return request({
url: '/api/v1/dept',
method: 'get',
params: queryParams
});
}
/**
*
*/
export function listDeptOptions(): AxiosPromise<[]> {
return request({
url: '/api/v1/dept/options',
method: 'get'
});
}
/**
*
*
* @param id
*/
export function getDeptForm(id: number): AxiosPromise<DeptForm> {
return request({
url: '/api/v1/dept/' + id + '/form',
method: 'get'
});
}
/**
*
*
* @param data
*/
export function addDept(data: DeptForm) {
return request({
url: '/api/v1/dept',
method: 'post',
data: data
});
}
/**
*
*
* @param id
* @param data
*/
export function updateDept(id: number, data: DeptForm) {
return request({
url: '/api/v1/dept/' + id,
method: 'put',
data: data
});
}
/**
*
*
* @param ids
*/
export function deleteDept(ids: string) {
return request({
url: '/api/v1/dept/' + ids,
method: 'delete'
});
}

71
src/api/dept/types.ts

@ -0,0 +1,71 @@
/**
*
*/
export interface DeptQuery {
keywords?: string;
status?: number;
}
/**
*
*/
export interface DeptVO {
/**
*
*/
children?: DeptVO[];
/**
*
*/
createTime?: Date;
/**
* ID
*/
id?: number;
/**
*
*/
name?: string;
/**
* ID
*/
parentId?: number;
/**
*
*/
sort?: number;
/**
* (1:启用0:禁用)
*/
status?: number;
/**
*
*/
updateTime?: Date;
}
/**
*
*/
export interface DeptForm {
/**
* ID()
*/
id?: number;
/**
*
*/
name?: string;
/**
* ID
*/
parentId: number;
/**
*
*/
sort?: number;
/**
* (1:启用0)
*/
status?: number;
}

217
src/api/dict/index.ts

@ -0,0 +1,217 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
DictTypeQuery,
DictTypePageResult,
DictTypeForm,
DictQuery,
DictForm,
DictPageResult,
dictId
} from './types';
/**
*
*
* @param queryParams
*/
export function getDictTypePageOld(
queryParams: DictTypeQuery
): AxiosPromise<DictTypePageResult> {
return request({
url: '/api/v1/dict/types/page',
method: 'get',
params: queryParams
});
}
export function getDictTypePage(
queryParams: DictTypeQuery
): AxiosPromise<DictTypePageResult> {
return request({
url: '/systemapi/dict/dict_type_list',
method: 'post',
data: queryParams
});
}
/**
*
*
* @param id
*/
export function getDictTypeFormOld(id: number): AxiosPromise<DictTypeForm> {
return request({
url: '/api/v1/dict/types/' + id + '/form',
method: 'get'
});
}
export function getDictTypeForm(id: number): AxiosPromise<DictTypeForm> {
return request({
url: '/systemapi/dict/get_dict_type_cont?id=' + id,
method: 'get'
});
}
/**
*
*
* @param data
*/
export function addDictTypeOld(data: DictTypeForm) {
return request({
url: '/api/v1/dict/types',
method: 'post',
data: data
});
}
export function addDictType(data: DictTypeForm) {
return request({
url: '/systemapi/dict/add_dict_type',
method: 'post',
data: data
});
}
/**
*
*
* @param id
* @param data
*/
export function updateDictTypeOld(id: number, data: DictTypeForm) {
return request({
url: '/api/v1/dict/types/' + id,
method: 'put',
data: data
});
}
export function updateDictType(data: DictTypeForm) {
return request({
url: '/systemapi/dict/edit_dict_type_cont',
method: 'post',
data: data
});
}
/**
*
*/
export function deleteDictTypesOld(ids: string) {
return request({
url: '/api/v1/dict/types/' + ids,
method: 'delete'
});
}
export function deleteDictTypes(data: dictId) {
return request({
url: '/systemapi/dict/del_dict_type_cont',
method: 'post',
data:data
});
}
/**
*
*
* @param typeCode
*/
export function getDictOptions(typeCode: string): AxiosPromise<OptionType[]> {
return request({
url: '/api/v1/dict/types/' + typeCode + '/items',
method: 'get'
});
}
/**
*
*/
export function getDictPageOld(
queryParams: DictQuery
): AxiosPromise<DictPageResult> {
return request({
url: '/api/v1/dict/page',
method: 'get',
params: queryParams
});
}
export function getDictPage(
queryParams: DictQuery
): AxiosPromise<DictPageResult> {
return request({
url: '/systemapi/dict/get_dictionary',
method: 'post',
data: queryParams
});
}
/**
*
*
* @param id
*/
export function getDictFormDataOld(id: number): AxiosPromise<DictForm> {
return request({
url: '/api/v1/dict/' + id + '/form',
method: 'get'
});
}
export function getDictFormData(id: number): AxiosPromise<DictForm> {
return request({
url: '/systemapi/dict/get_dictionary_cont?id=' + id,
method: 'get'
});
}
/**
*
*
* @param data
*/
export function addDictOld(data: DictForm) {
return request({
url: '/api/v1/dict',
method: 'post',
data: data
});
}
export function addDict(data: DictForm) {
return request({
url: '/systemapi/dict/add_dictionary_cont',
method: 'post',
data: data
});
}
/**
*
*
* @param id
* @param data
*/
export function updateDictOld(id: number, data: DictForm) {
return request({
url: '/api/v1/dict/' + id,
method: 'put',
data: data
});
}
export function updateDict(data: DictForm) {
return request({
url: '/systemapi/dict/edit_dictionary_cont',
method: 'post',
data: data
});
}
/**
*
*
* @param ids ID(,)
*/
export function deleteDictOld(ids: string) {
return request({
url: '/api/v1/dict/' + ids,
method: 'delete'
});
}
export function deleteDict(data: dictId) {
return request({
url: '/systemapi/dict/del_dictionary_cont',
method: 'post',
data:data
});
}

151
src/api/dict/types.ts

@ -0,0 +1,151 @@
/**
*
*/
export interface DictTypeQuery extends PageQuery {
/**
* (/)
*/
keywords?: string;
}
/**
*
*/
export interface DictTypePageVO {
/**
* ID
*/
id: number;
/**
*
*/
code: string;
/**
*
*/
name: string;
/**
* (1:启用;0:禁用)
*/
status?: number;
/**
*
*/
remark?: string;
/**
*
*/
codekey: string;
}
/**
*
*/
export type DictTypePageResult = PageResult<DictTypePageVO[]>;
/**
*
*/
export interface DictTypeForm {
/**
* ID
*/
id?: number|string;
/**
*
*/
name?: string;
/**
*
*/
code?: string;
/**
* 1:启用;0:禁用
*/
status: number;
/**
*
*/
remark?: string;
}
/**
*
*/
export interface DictQuery extends PageQuery {
/**
*
*/
keywords?: string;
/**
*
*/
codetype?: string;
}
/**
*
*/
export interface DictPageVO {
/**
* ID
*/
id?: number;
/**
*
*/
name?: string;
/**
* (1:启用;0:禁用)
*/
status?: number;
/**
*
*/
value?: string;
}
/**
*
*/
export type DictPageResult = PageResult<DictPageVO[]>;
/**
*
*/
export interface DictForm {
/**
* ID
*/
id?: number;
/**
*
*/
name?: string;
/**
*
*/
sort?: number;
/**
* (1:启用;0:禁用)
*/
status?: number;
/**
*
*/
typeCode?: string;
/**
*
*/
value?: string;
/**
*
*/
remark?: string;
}
//删除字典类型
export interface dictId {
id?:string[]
}

34
src/api/file/index.ts

@ -0,0 +1,34 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { FileInfo } from './types';
/**
*
*
* @param file
*/
export function uploadFileApi(file: File): AxiosPromise<FileInfo> {
const formData = new FormData();
formData.append('file', file);
return request({
url: '/api/v1/files',
method: 'post',
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
});
}
/**
*
*
* @param filePath
*/
export function deleteFileApi(filePath?: string) {
return request({
url: '/api/v1/files',
method: 'delete',
params: { filePath: filePath }
});
}

7
src/api/file/types.ts

@ -0,0 +1,7 @@
/**
* API类型声明
*/
export interface FileInfo {
name: string;
url: string;
}

63
src/api/handle.ts

@ -0,0 +1,63 @@
export const haveDateTime =(dateStr:string,num:number,type:boolean) =>{
let monthnum = 0;
if(typeof(num) == 'string'){
monthnum = parseInt(num);
}else{
monthnum = num
}
let tadycont = new Date(dateStr)
//获取原日
let day = tadycont.getDate();
//获取原月份
let month=tadycont.getMonth();
//设置增加月份
tadycont.setMonth(tadycont.getMonth() + (monthnum*1), 1);
//获取增加的后的月份
let Jmonth = tadycont.getMonth()+1;
//获取增加的后的年份
let Jyear=tadycont.getFullYear();
if(Jmonth == 4 || Jmonth == 6 || Jmonth == 9 || Jmonth == 11) {
//小月
if (day > 30) {
day = 30;
}
}else if (Jmonth == 2) {
//2月判断是否闰年
if(((Jyear % 4) == 0) && ((Jyear % 100) != 0) || ((Jyear % 400) == 0)){
if (day > 29) {
day = 29;
}
}else{
if (day > 28) {
day = 28
}
}
}else{
//大月
if (day > 31) {
day = 31;
}
}
let tHours = tadycont.getHours();
let tMinutes = tadycont.getMinutes();
let tSeconds = tadycont.getSeconds();
let Jmonthstr = doHandleMonth(Jmonth);
let daystr = doHandleMonth(day);
if(!type){
return Jyear+"-"+Jmonthstr+"-"+daystr;
}
return Jyear+"-"+Jmonthstr+"-"+daystr+" "+tHours+":"+tMinutes+":"+tSeconds;
}
/**
* 0
* @param month
* @returns {string}
*/
function doHandleMonth(month:number):string {
let m = month.toString();
if(month.toString().length == 1){
m = "0" + month;
}
return m;
}

83
src/api/hr/duties/index.ts

@ -0,0 +1,83 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { searchDuties,dutiesClassList,editDutiesCalssStrcue,editDutiesTypeEditOrDel,searchDutiesCont,dutiesList,dutiesInfo } from './type';
/**
*
*/
export function getDutiesCalssContList(data: searchDuties): AxiosPromise<dutiesClassList>{
return request({
url: '/hrapi/org/utiesclasslist',
method: 'post',
data: data
});
}
/**
*
*/
export function addDutiesCalssContApi(data: editDutiesCalssStrcue){
return request({
url: '/hrapi/org/adddutiesclass',
method: 'post',
data: data
});
}
/**
*
*/
export function editDutiesCalssContApi(data: editDutiesCalssStrcue){
return request({
url: '/hrapi/org/neweiteutiesclassinfo',
method: 'post',
data: data
});
}
/**
*
*/
export function dutiesCalssEditOrDel(data: editDutiesTypeEditOrDel){
return request({
url: '/hrapi/org/editdutiesclassstatus',
method: 'post',
data: data
});
}
/**
*
*/
export function getDuitesList(data: searchDutiesCont): AxiosPromise<dutiesList>{
return request({
url: '/hrapi/org/dutieslist',
method: 'post',
data: data
});
}
/**
*
*/
export function addDutiesInfo(data: dutiesInfo){
return request({
url: '/hrapi/org/adddutiescont',
method: 'post',
data: data
});
}
/**
*
*/
export function editDutiesInfo(data: dutiesInfo){
return request({
url: '/hrapi/org/eitedutiescont',
method: 'post',
data: data
});
}
/**
*
*/
export function editOrDelDutiesInfo(data: editDutiesTypeEditOrDel){
return request({
url: '/hrapi/org/editordeldutiesstatus',
method: 'post',
data: data
});
}

72
src/api/hr/duties/type.ts

@ -0,0 +1,72 @@
/**
*
*/
export interface searchDuties extends PageQuery{
keywords?: string;
}
export type dutiesClassList = PageResult<dutiesClassListCont[]>
/**
*
*/
export interface dutiesClassListCont{
id: string;
name?: string;
kingdeeid?:string;
state?:number;
status?:boolean;
}
/**
*
*/
export interface editDutiesCalssStrcue{
id?: number;
name?: string;
}
/**
*
*/
export interface editDutiesTypeEditOrDel{
id:string[];
status?: number;
istrue?: number;
}
/**
*
*/
export interface searchDutiesCont extends PageQuery{
name?: string;
jobid?: string;
}
/**
*
*/
export interface dutiesCont{
id: number;
name: string;
number: string;
jobtype: number;
dutiesclassname: string;
kingdeeid: string;
kingdeenum: string;
state: number;
time: number;
weight: number;
status:boolean;
}
/**
*
*/
export type dutiesList = PageResult<dutiesCont[]>
/**
* /
*/
export interface dutiesInfo{
id?: number;
name?: string;
number?: string;
jobtype?: string|number;
weight?: number;
}

103
src/api/hr/org/index.ts

@ -0,0 +1,103 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { searchFormTitle,orgClassListCont,addOrgTypesCont,orgClassCont,editOrgTypeEditOrDel,searchOrgCont,orgInfo,addOrgInfo,editOrgDel,searchTeamList,orgTeamListCont } from './type';
/**
*
*/
export function getRolePage(data?: searchFormTitle): AxiosPromise<orgClassListCont> {
return request({
url: '/hrapi/org/govclasslist',
method: 'post',
data: data
});
}
/**
*
*/
export function getOrgClassAllPage(data?: addOrgTypesCont) {
return request({
url: '/hrapi/org/govclassalllist',
method: 'post',
data: data
});
}
/**
*
*/
export function addOrgClassInfo(data: addOrgTypesCont){
return request({
url: '/hrapi/org/addgovclass',
method: 'post',
data: data
});
}
/**
*
*/
export function editOrgClassInfo(data: orgClassCont){
return request({
url: '/hrapi/org/eitegovclasscont',
method: 'post',
data: data
});
}
/**
*
*/
export function editOrgClassStatus(data: editOrgTypeEditOrDel){
return request({
url: '/hrapi/org/base_edit_orgclass_status',
method: 'post',
data: data
});
}
/**
*
*/
export function getOrgTreeList(data: searchOrgCont): AxiosPromise<orgInfo[]>{
return request({
url: '/hrapi/org/govnewthreeing',
method: 'post',
data: data
});
}
/**
*
*/
export function addOrgInfoApi(data: addOrgInfo){
return request({
url: '/hrapi/org/newaddgovcont',
method: 'post',
data: data
});
}
/**
*
*/
export function editOrgInfoApi(data: addOrgInfo){
return request({
url: '/hrapi/org/neweitegovcont',
method: 'post',
data: data
});
}
/**
*
*/
export function editOrgStatusApi(data: editOrgDel){
return request({
url: '/hrapi/org/neweitegovstateordel',
method: 'post',
data: data
});
}
/**
*
*/
export function getTeamListCont(data: searchTeamList): AxiosPromise<orgTeamListCont>{
return request({
url: '/hrapi/org/teamcontlist',
method: 'post',
data: data
});
}

130
src/api/hr/org/type.ts

@ -0,0 +1,130 @@
/**
*
*/
export interface searchFormTitle extends PageQuery{
name?: string;
level?: number;
}
/**
*
*/
export type orgClassListCont = PageResult<orgClassCont[]>
/**
*
*/
export interface orgClassCont {
id?: number;
kingdeeid?: string
level?: number;
name?: string
state?: number;
time?: number;
status?: boolean;
}
export interface orgClassInfor {
id: number;
kingdeeid?: string
level?: number;
name?: string
state?: number;
time?: number;
status?: boolean;
}
/**
*
*/
export interface addOrgTypesCont{
name?: string;
level?: number;
}
/**
*
*/
export interface editOrgTypeInfo{
id: string;
name: string;
level?: number;
}
/**
*
*/
export interface editOrgTypeEditOrDel{
id:string[];
status?: number;
istrue?: number;
}
/**
*
*/
export interface searchOrgCont{
orgid?:number;
keywords?: string;
class?: number;
}
/**
*
*/
export interface orgInfo{
id?:number;
number?: string,
name?: string,
superior?: number,
organizationtype?: number,
abbreviation?: string,
time?: number,
state?: number,
wechatorganizationid?: number,
superiorsun?: string,
schoole?: number,
kingdeeid?: string,
ispower?: number,
sort?: number,
typeName?: string,
level?: number,
status?: true,
child?:orgInfo[];
}
/**
*
*/
export type sendOrgTreeList = PageResult<orgInfo[]>
/**
*
*/
export interface addOrgInfo{
id?:number;
name?: string, //全称
number?: string, //编号
superior?: number|string, //上级
govclass?: string, //分类
abbreviation?: string, //简称
wechatid?: string //企业微信对照吗
kingdeeid?: string //金蝶对照码
}
/**
*
*/
export interface editOrgDel{
id?:number;
status?: number;
istrue?: number;
}
/**
*
*/
export interface searchTeamList extends PageQuery{
name?: string;
}
/**
*
*/
export type orgTeamListCont = PageResult<teamInfo[]>
/**
*
*/
export interface teamInfo{
id:number;
name?: string;
time?:number;
state?:number;
}

550
src/api/hr/people/datacont.ts

@ -0,0 +1,550 @@
/**
* 1:临时工 , 2:编外人员 ;3:实习&;4567891011退1213退14',
`company` ',
*/
export const emptypeOptions =[
{
id:1,
name:"临时工"
},
{
id:2,
name:"编外人员"
},
{
id:3,
name:"实习&实习生"
},
{
id:4,
name:"试用员工"
},
{
id:5,
name:"待分配"
},
{
id:6,
name:"待岗"
},
{
id:7,
name:"临时调入"
},
{
id:8,
name:"正式员工"
},
{
id:9,
name:"长期病假"
},
{
id:10,
name:"停薪留职"
}
];
export const emptypeOptionsFalse = [
{
id:11,
name:"退休"
},
{
id:12,
name:"辞职"
},
{
id:13,
name:"辞退"
},
{
id:14,
name:"离职"
}
];
/**
*
*/
export const userGender = [
{
id:1,
name:"男"
},
{
id:2,
name:"女"
},
{
id:3,
name:"中性"
}
];
export const healthStates = [
{
id:1,
name:"良好"
},
{
id:2,
name:"一般"
},
{
id:3,
name:"较弱"
},
{
id:4,
name:"有生理缺陷"
},
{
id:5,
name:"残废"
}
];
/**
*
*/
export const userMaritalstatus = [
{
id:1,
name:"未婚"
},
{
id:2,
name:"已婚"
},
{
id:3,
name:"丧偶"
},
{
id:4,
name:"离异"
}
];
/**
*
*/
export const userPoliticaloutloo =[
{
id:1,
name:"群众"
},
{
id:2,
name:"无党派"
},
{
id:3,
name:"台盟会员"
},
{
id:4,
name:"九三社员"
},
{
id:5,
name:"致公党员"
},
{
id:6,
name:"农工党员"
},
{
id:7,
name:"民进会员"
},
{
id:8,
name:"民建会员"
},
{
id:9,
name:"民盟盟员"
},
{
id:10,
name:"民革会员"
},
{
id:11,
name:"共青团员"
},
{
id:12,
name:"预备党员"
},
{
id:13,
name:"中共党员"
}
];
/**
*
*/
export const userConstellationing =[
{
id:1,
name:"白羊座"
},
{
id:2,
name:"金牛座"
},
{
id:3,
name:"双子座"
},
{
id:4,
name:"巨蟹座"
},
{
id:5,
name:"狮子座"
},
{
id:6,
name:"处女座"
},
{
id:7,
name:"天枰座"
},
{
id:8,
name:"天蝎座"
},
{
id:9,
name:"射手座"
},
{
id:10,
name:"摩羯座"
},
{
id:11,
name:"水瓶座"
},
{
id:12,
name:"双鱼座"
}
];
/**
*
*/
export const userHireclass = [
{
id:1,
name:"雇佣入职"
},
{
id:2,
name:"再入职"
}
];
/**
* 1:临时工 , 2:编外人员 ;3:实习&;4567891011退1213退14',
`company` ',
*/
export const emptypeOptionsAll =[
{
id:1,
name:"临时工"
},
{
id:2,
name:"编外人员"
},
{
id:3,
name:"实习&实习生"
},
{
id:4,
name:"试用员工"
},
{
id:5,
name:"待分配"
},
{
id:6,
name:"待岗"
},
{
id:7,
name:"临时调入"
},
{
id:8,
name:"正式员工"
},
{
id:9,
name:"长期病假"
},
{
id:10,
name:"停薪留职"
},
{
id:11,
name:"退休"
},
{
id:12,
name:"辞职"
},
{
id:13,
name:"辞退"
},
{
id:14,
name:"离职"
}
];
/**
*
*/
export const yesOrno = [
{
id:1,
name:"是"
},
{
id:2,
name:"否"
}
];
/**
*
*/
export const education =[
{
id:1,
name:'初中及以下'
},
{
id:2,
name:'中专'
},
{
id:3,
name:'高中'
},
{
id:4,
name:'中技'
},
{
id:5,
name:'高技'
},
{
id:6,
name:'函数专科'
},
{
id:7,
name:'大学专科'
},
{
id:8,
name:'函数本科'
},
{
id:9,
name:'大学本科'
},
{
id:10,
name:'硕士研究生'
},
{
id:11,
name:'博士研究生'
},
{
id:12,
name:'专家、教授'
},
];
//入职等级
export const positiongrade = [
{
id:10000,
name:'无'
},
{
id:1,
name:'一级'
},
{
id:2,
name:'二级'
},
{
id:3,
name:'三级'
}
];
//学位
export const academicDegree = [
{
id:1,
name:'无'
},
{
id:2,
name:'学士'
},
{
id:3,
name:'硕士'
},
{
id:4,
name:'博士'
},
{
id:5,
name:'教育学学位'
}
];
//主职与兼职
export const mainAndPartTimeJobs = [
{
id:1,
name:'主职'
},
{
id:2,
name:'兼职'
}
];
// 职位变动类型
export const postChangeType=[
{
id:1,
name:'预入职'
},
{
id:2,
name:'雇佣入职'
},
{
id:3,
name:'转正'
},
{
id:4,
name:'晋升'
},
{
id:5,
name:'降级'
},
{
id:6,
name:'职等调整'
},
{
id:7,
name:'调动调入'
},
{
id:8,
name:'跨公司调动调入'
},
{
id:9,
name:'借调'
},
{
id:10,
name:'平调'
},
{
id:11,
name:'兼职'
},
{
id:12,
name:'预离职'
},
{
id:13,
name:'离职'
},
{
id:14,
name:'退休'
},
{
id:15,
name:'返聘'
},
{
id:16,
name:'员工初始化'
},
{
id:17,
name:'擅自离职'
},
{
id:18,
name:'即辞即走'
},
{
id:19,
name:'组织调整'
},
{
id:20,
name:'辞退'
},
{
id:21,
name:'跨公司借调调出'
},
{
id:22,
name:'跨公司借调调入'
},
{
id:23,
name:'培训期间离职'
},
{
id:24,
name:'合同到期'
},
{
id:25,
name:'实习结束'
}
];
/**
*
*/
export const xuliClass = [
{
id:1,
name:"普通"
},
{
id:2,
name:"第一学历"
},
{
id:3,
name:"最高学历"
}
]

346
src/api/hr/people/index.ts

@ -0,0 +1,346 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
archivesList,
searchCriteriaForPeople,
contId,
editPwdCont,
contIdes,
userManOrFucont,
emergencyContactAdd,
emergencyContactInfo,
delJjlxr,
doubleWorkCont,
familyMembersContAdd,
familyMembersContEdit,
addEducExpInfoing,
editEducExpInfoing,
editGroupExternalWorkCont,
addGroupExternalWorkCont,
groupInnerWorkCont,
editUserIcon,
editUserAboutOrg,
teamClassQueay
} from './type';
/**
*
*/
export function getArchivesListPage(data?: searchCriteriaForPeople): AxiosPromise<archivesList> {
return request({
url: '/hrapi/staff/archiveslistcont',
method: 'post',
data: data
});
}
/**
*
*/
export function getPeopleAboutOrg(data?: contId) {
return request({
url: '/hrapi/staff/useraboutorglist',
method: 'post',
data: data
});
}
/**
*
*/
export function getEmergencyContact(data?: contId) {
return request({
url: '/hrapi/staff/emergencycontactlist',
method: 'post',
data: data
});
}
/**
*
*/
export function getWorkingCouple(data?: contId) {
return request({
url: '/hrapi/staff/doubleworkerlist',
method: 'post',
data: data
});
}
/**
*
*/
export function getFamilyMembers(data?: contId) {
return request({
url: '/hrapi/staff/familymemberslist',
method: 'post',
data: data
});
}
/**
*
*/
export function getEducationalExperience(data?: contId) {
return request({
url: '/hrapi/staff/personneleducationlist',
method: 'post',
data: data
});
}
/**
*
*/
export function getInnerWork(data?: contId) {
return request({
url: '/hrapi/staff/getinsideworkhistorylist',
method: 'post',
data: data
});
}
/**
*
*/
export function getoOutsideWork(data?: contId) {
return request({
url: '/hrapi/staff/workhistorylist',
method: 'post',
data: data
});
}
/**
*
*/
export function editUserPwd(data?: editPwdCont) {
return request({
url: '/hrapi/staff/editpassword',
method: 'post',
data: data
});
}
/**
*
*/
export function getMyInfoing(data?: contIdes) {
return request({
url: '/hrapi/staff/get_archives_cont',
method: 'post',
data: data
});
}
/**
*
*/
export function editMyInfoIcon(data: editUserIcon) {
return request({
url: '/hrapi/staff/edit_people_icon',
method: 'post',
data: data
});
}
/**
*
*/
export function editMyOrgUndertake(data: editUserAboutOrg) {
return request({
url: '/hrapi/staff/edit_man_org_cont',
method: 'post',
data: data
});
}
/**
*
*/
export function editMyInfoing(data?: userManOrFucont) {
return request({
url: '/hrapi/staff/edit_manmain_cont',
method: 'post',
data: data
});
}
/**
*
*/
export function addEmergencyContactInfo(data?: emergencyContactAdd) {
return request({
url: '/hrapi/staff/addemercycall',
method: 'post',
data: data
});
}
/**
*
*/
export function editEmergencyContactInfo(data?: emergencyContactInfo) {
return request({
url: '/hrapi/staff/editemercycall',
method: 'post',
data: data
});
}
/**
*
*/
export function editEmergencyContactState(data?: delJjlxr) {
return request({
url: '/hrapi/staff/editemercycallstate',
method: 'post',
data: data
});
}
/**
*
*/
export function addDoubleWorkCont(data?: doubleWorkCont) {
return request({
url: '/hrapi/staff/adddoubleworker',
method: 'post',
data: data
});
}
/**
*
*/
export function editDoubleWorkCont(data?: doubleWorkCont) {
return request({
url: '/hrapi/staff/eidtdoubleworker',
method: 'post',
data: data
});
}
/**
*
*/
export function editDoubleWorkState(data?: delJjlxr) {
return request({
url: '/hrapi/staff/eidtdoubleworkerstate',
method: 'post',
data: data
});
}
/**
*
*/
export function addFamilyMembersCont(data?: familyMembersContAdd) {
return request({
url: '/hrapi/staff/addfamilymembers',
method: 'post',
data: data
});
}
/**
*
*/
export function editFamilyMembersCont(data?: familyMembersContEdit) {
return request({
url: '/hrapi/staff/editfamilymembers',
method: 'post',
data: data
});
}
/**
*
*/
export function editFamilyMembersContState(data?: delJjlxr) {
return request({
url: '/hrapi/staff/editfamilymemberssatte',
method: 'post',
data: data
});
}
/**
*
*/
export function addEducExpCont(data?: addEducExpInfoing) {
return request({
url: '/hrapi/staff/addeducationalexperience',
method: 'post',
data: data
});
}
/**
*
*/
export function editEducExpCont(data?: editEducExpInfoing) {
return request({
url: '/hrapi/staff/editeducationalexperience',
method: 'post',
data: data
});
}
/**
*
*/
export function editEducExpState(data?: delJjlxr) {
return request({
url: '/hrapi/staff/editeduexpstate',
method: 'post',
data: data
});
}
/**
*
*/
export function addGroupExternalWork(data?: addGroupExternalWorkCont) {
return request({
url: '/hrapi/staff/addworkhistorycont',
method: 'post',
data: data
});
}
/**
*
*/
export function editGroupExternalWork(data?: editGroupExternalWorkCont) {
return request({
url: '/hrapi/staff/editworkhistorycont',
method: 'post',
data: data
});
}
/**
*
*/
export function editGroupExternalWorkState(data?: delJjlxr) {
return request({
url: '/hrapi/staff/editworkhistorystate',
method: 'post',
data: data
});
}
/**
*
*/
export function addGroupInnerWork(data?: groupInnerWorkCont) {
return request({
url: '/hrapi/staff/addinsidehistory',
method: 'post',
data: data
});
}
/**
*
*/
export function editGroupInnerWork(data?: groupInnerWorkCont) {
return request({
url: '/hrapi/staff/eidtinsidehistoryworkcont',
method: 'post',
data: data
});
}
/**
*
*/
export function editGroupInnerWorkState(data?: delJjlxr) {
return request({
url: '/hrapi/staff/editordelinsideworkhistorystate',
method: 'post',
data: data
});
}
/**
*
*/
export function haveTeamTimeList(data: teamClassQueay) {
return request({
url: '/hrapi/rostering/team_time_list',
method: 'post',
data: data
});
}

544
src/api/hr/people/type.ts

@ -0,0 +1,544 @@
/**
*
*/
export interface searchCriteriaForPeople extends PageQuery{
keywords?:string; //关键字
adminorg?:number; //行政组织
emptype?:number[]; //用工关系
}
/**
*
*/
export interface archivesCont{
id?:number //2909;
number?:string //"201218";
name?:string //"苏振";
icon?:string //"";
hireclass?:number //1;
emptype?:number //8;
company?:number //296;
maindeparment?:number //32;
sunmaindeparment?:number //0;
deparment?:string //"";
adminorg?:number //32;
teamid?:number//0;
position?:number //117;
jobclass?:number //3;
jobid?:number //25;
jobleve?:number //0;
time?:number //1657002602;
eitetime?:number //1657002602;
wechat?:string //"";
workwechat?:string //"";
state?:number //1;
key?:number //4929995352838144;
isadmin?:number //0;
password?:string //"8d135342fcc70ab05332f560031a6112";
role?:string //"";
idcardno?:string //"370481197603084270";
passportno?:string //"";
globalroaming?:string //"";
mobilephone?:string //"15020711996";
email?:string //"";
gender?:number //1;
birthday?:number //195062400;
myfolk?:string //"汉族";
nativeplace?:string //"济宁高新区恒信公馆";
idcardstartdate?:number //1173801600;
idcardenddate?:number //1804953600;
idcardaddress?:string //"";
idcardIssued?:string //"";
health?:number //1;
maritalstatus?:number //2;
internaltelephone?:string //"";
currentresidence?:string //"滕州市西岗镇柴里矿生活去10排8号";
constellationing?:number //12;
isdoubleworker?:number //2;
isveterans?:number //2;
veteransnumber?:string //"";
jobstartdate?:number //825609600;
entrydate?:number //0;
probationperiod:number //0;
planformaldate?:number //0;
politicaloutlook?:number //1;
nameusedbefore?:string //"";
ruleid?:number //0;
iconphoto?:string //"";
responsibledepartment?:string //"";
responsibledepartmentjson?:string //"";
companyname?:string //"山东荣信集团有限公司";
maindeparmentname?:string //"甲醇分厂";
sunmaindeparmentname?:string //"";
workpostname?:string //"";
positionname?:string //"副厂长";
keystr?:string //"4929995352838144";
teamname?:string //"";
personincharge?:number // 2
}
/**
*
*/
export type archivesList = PageResult<archivesCont[]>
/**
* id
*/
export interface contId {
id:string
}
/**
*
*/
export interface peopleAboutOrg{
id?:number
key?:number
group?:number
company?:number
department?:number
workshop?:number
workshopsection?:number
position?:number
gradepositions?:number
starttime?:number
endtime?:number
team?:number
changetype?:number
time?:number
state?:number
assigntype?:number
jobid?:number
orgallname?:string
postname?:string
starttimeing?:string
endtimeing?:string
}
/**
*
*/
export type peopleAboutOrgList = PageResult<peopleAboutOrg[]>
/**
*
*/
export interface emergencyContact{
id:number
number?:string
name?:string
relationship?:string
tel?:string
time?:number
state?:number
key?:number
}
/**
*
*/
export interface shuangzhigong{
id:number
number?:string
name?:string
company?:string
department?:string
position?:string
tel?:string
time?:number
state?:number
key?:number
}
/**
*
*/
export interface jiatingchengyuan{
id:number
number?:string
relationship?:string
name?:string
company?:string
deparment?:string
postnme?:string
tel?:string
politicaloutlook?:number
time?:number
key?:number
state?:number
politicaloutlookcn?:string
}
/**
*
*/
export interface jiaoyujingli{
id:number
number?:string
education?:number
graduationschool?:string
subject?:string
admissiontime?:number
graduationtime?:number
time?:number
level?:number
academicdegree?:number
key?:number
state?:number
academicdegreecn?:string
educationcn?:string
admissiontimestr?:string
graduationtimestr?:string
}
/**
*
*/
export interface innerWorkCont{
id:string
starttimg?:string
endtimg?:string
allorgname?:string
orgid?:number
postid?:number
postname?:string
postnlevel?:number
teamid?:number
teamname?:string
changetype?:number
changetypename?:string
assigntype?:number
superiorpostname?:string
superiormanname?:null
subordinatescount?:number
jobid?:number
jobname?:string
}
/**
*
*/
export interface outsideWork{
id:number
number:string
key:number
company:string
deparment:string
job:string
entrytime:number
leavedate:number
witness:string
witnesstel:string
remarks:string
time:number
state:number
starttimg:string
endtimg:string
}
/**
*
*/
export interface editPwdCont extends contId{
pwd:string
pwdes:string
}
/**
*
*/
export interface myinfostruct{
id?:number //78,
number?:string //"300450",
name?:string //"秦东",
icon?:string //"https://wework.qpic.cn/wwhead/duc2TvpEgSTPk74IwG7BswsATgrfz6BGVPpX5QU5uvaCiaxk3ReIlRhdUwIeiaBBazzCLiaHI8VuA4/0",
hireclass?:number //1,
emptype?:number //8,
company?:number //309,
maindeparment?:number //102,
sunmaindeparment?:number //272,
deparment?:string //"",
adminorg?:number //272,
teamid?:number //1,
position?:number //2184,
jobclass?:number //5,
jobid?:number //36,
jobleve?:number //3,
time?:number //1656984567,
eitetime?:number //1671160648,
wechat?:string //"",
workwechat?:string //"KaiXinGuo",
state?:number //1,
key?:number //15993815826844528,
isadmin?:number //4,
password?:string //"ecffe8715d2d3c2743bab6abc90e1331",
role?:string //"1",
idcardno?:string //"370921198810151515",
passportno?:string //"",
globalroaming?:string //"",
mobilephone?:string //"15069130853",
email?:string //"",
gender?:number //1,
birthday?:number //592848000,
myfolk?:string //"汉族",
nativeplace?:string //"山东省宁阳县华丰镇白土厂村15号",
idcardstartdate?:number //0,
idcardenddate?:number //0,
idcardaddress?: string//"",
idcardIssued?:string //"",
health?:number //2,
maritalstatus?:number //2,
internaltelephone?:string //"",
currentresidence?:string //"山东省宁阳县华丰镇矿区花园小区1号楼1单元302室",
constellationing?:number //1,
isdoubleworker?:number //2,
isveterans?:number //2,
veteransnumber?:string //"",
jobstartdate?:number //0,
entrydate?:number //0,
probationperiod:number //0,
planformaldate?:number //0,
politicaloutlook?:number //1,
nameusedbefore?:string //"",
iconphoto?:string //"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAB4AGQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiuK8afE3RfBhEM+65vCM+RERkfU9q8s1L9ojUpfMXTtLtoBkbTIS5Az+A9aAPoiivnSy/aJ1aIQrdaTbTgMfMcMVZhnjHYHHtXVJ+0LoTzqg0m9CFsFyy8DjnH50WA9horN0fX9L161W50y9huI2GfkbkfUda0qACiiigAooooAKKKKACvNfi94/n8IaRFaad5f268DDeSCYk6E4znPPB6cGvSq+N/G+pX3iXxxfzzyO7GYxxgrjYgOFAHYYoA5ue5utQuGklkeWRjyTyTWtp/g/Vb6MSCHYh6F+K6/QfDUNqql0DMeQxFd9Y28SxqCOg5riqYuztE76eDuryPJofhvrMr4xGBjPLVU1TwPrWmAu1uZYx1aPkV77FEkZGBjj0qd7VHjJOMnsalYqZTwsD578KeI77wrrkN/b8SRHlWHUHqK+uPDmvWviXQ7bVLQ/u5l5U9VYdRXhPj7wnFc6c19bRKlzB8x2jG9e4rq/gLqvm6Pf6UyyboHEoJOVw3B7cHj1NddKqqkbo46tJ03Y9gooorQyCiiigAooooARlDKVPQjBr5BuNOksfGd/ZlQGguJFYAYxhiK+v68I+IPh5NJ+Icmp7D9m1FFkzjgOMhh/I/jUVHaLNKSvNGfbXq+XFFDH5jg9DwK37N7yKbzJ7B44iP9YrBl/H0rmpNAu7jUVnspmjhOPuqCf1rq9Pt7rT7SQ3OpTz5J2q4TGMcDgfrXm8sbHqXka0d1HcQwsqEDndx6VKNQjuUEcNtI7DrjA/nVbQZPO0l4jgsSV3d6zIdH1a01PdFqckaDO5PKVt47cnkU4aikjWmiS8tpYnjIyCCrDmsr4K2Mtvq2vuMeRGwh6dWDHv8AQH8xW7bi5SLF08byAfeRSufwya3PAelHTdHupGUA3d5LOP8AdLYH6DP4104bRuxyYnZHU0UUV1nGFFFFABRRRQAV598WkB0GxkI+7dYz6ZU/4V6DXMfEGxS+8FagGdEaBPPRnIABXnGT6jI/Gk1dFRdpJnEaA6yW6bSOnftTPFp+xadCsQIeeUIZOy9//rfjWJ4Xvz5WD9a19V1xY0XzxhG+VQR1NeW0k7WPYTbsyx4VvbRdHbdMdyNhmxkA5xW+syysY5gN6n5Hx1FYGj6qsdoqi2mWIdcQnn3rZe7tryJfKcM6Y5HUZ7GrtbUmSd9S7MuWVVHLcV2kUawxJGgAVQAAK47SUa51GBOysGb8Oa7SurD7NnDinqkFFFFdByhRRRQAUVxHi74oaL4R1A6fNFcXV4FDPHCBhM9AxJ6kc8Zrz7Xvj1fywGLRNKjtXPWa4fzCPouAPzzVKDZLkke8V4n8cPHWmS6B/wAI3pt3Hc3M8qtcmF9yxopyFJHGS2OO2Oe1eXan4/8AFWs20i3mt3jRygrJGj7EI9Nq4GKwYrYSISRnNWqbuS6iOl8IeINsqRTPyDg5r0GWKDV5FBfKg5BU9DXjCWksM6ywN8wPavR/D8d9NBHcRo+GGC0RHOPVT3+lcOJw7i+Y9DC4hSXKeiafZFAsf2mQADocY/lU17tgdW+UMBjPqKyrCK8chSbgkdyuKzfG2pLpFglmj7tRvPlUA58tP4nJ+nT3rmUJTaijpnVUU5M1tE+Iul6VrFzFeRSNBsCrPGN2GzyMenTn2rvtK8a+HNaYJZavbNIeBE7bHJ/3WwT+FfNKjaKy5gY7n5eAen+Fe59VjCKSPB+tSnNtn2RRXyhpfi7X9ElX7Fql1HH2TeWX8VPBr0XQvjVdwsket2aXEXea3G1x7leh/Ss5UJLY0VaL3PaqKxdN8W6Dq1kl3a6pbeW3aSQIwPoQcGisrM05kfIs11dX80l1dzyTzync8srFmY+5PJpChwM0sC/IvsKsrGGBY/QV2qOhyOWpmonzTJjjINX7H/j3Q+oNQop+1Sj2FSQsLe2w5IKgnCjtmiKswbuiyAI8kDJNbHh3xNd6BeCSIGWFiBNAeVcf0Poa57z2kl8qNQMrnc57UtqUcEku/ue/07CiVpaCjeOqPoOPxT4e/sX+1fNxEB8y7TuVv7pA715JretSa7qz6i/yRE7YkIxtXt9TVDw/fxWupRSXFrHcWzHDQOThsMP16DPoTTL+2A1GZmVkyxGw9vQYrKlRUamhtWrOULMeD19KozkNNjsT+VKAUkZQxA9M8Uq88jrnqa7HqcaViAf6xoz+GakUlVKn8aimB87d6c1YADrkelSkU2S29w8MWwdM0VGvA60VauiXYu+FfD48QySILkQBV4YrnJOT0z6A1rzeCryGKIrPAyyIXG7K44Bx068iiivmcXmFejiXCL006eR6EKMJRuzOTwlfC5EjtAEc7PkYsQOTnp/+skVe1HwlCunyPDLIJo0LfvMFXwCSOBx90469KKKKWPrVEm2enh8DRlRnOS1V/wAFc4ooyQq+MvCSpHqP/wBVWUdTHmMDDDOR3oor30eEy1p8e61RyM7ZSD9Dx/hXUeIbXTLdNPFnNI92Yc3iuDhX9uOnX8AKKKqK99GcpPlaOXClpnPvToxgj0JxRRWxDGSICTz14ptucqVxlh70UVL3GtibyyaKKKsm5//Z",
responsibledepartment?:string //"",
responsibledepartmentjson?:string //"",
birthdaytime?:string //"1988-10-15",
idcardstarttimedata?:string //"",
idcardendtimedata?:string //"",
entrydatetime:string //"",
planformaldatetime?:string //"",
doubleworkerlist?:any //null,
educationalexperience?:any //null,
emergencycontact?:any //null,
memberoffamily?:any //null,
workhistorylist?:any //null,
groupworkhistorylist?:any //null,
idstr?:string //"78",
companyname?:string //"山东恒信高科能源有限公司",
maindeparmentname?:string //"企管部",
adminorgname?:string //"",
positionname?:string //"开发主管",
jobclassname?:string //"基层管理",
jobidname?:string //"主管",
politicaloutlookname?:string //"群众",
jobstartdatestr?:string //"",
entrydatestr?:string //"",
personincharge?:number //2,
sunmaindeparmentname?:string //"企管",
workpostname?:string //"",
teamname?:string //"长白班",
allorglist?:number[][] //[309,102,272],
ruleid?:string //"0",
rulename?:string //"",
orgreslist?:any //null
keystr?:string //
}
/**
* Id
*/
export interface contIdes {
id:number;
idstr:string;
}
/**
*
*/
export interface userManOrFucont{
id?: string
name?: string
mobilephone?: string
idcardno?: string
entrydatetime?: string
probationperiod?: number
confirmationdate?: string
jobstartdatestr?: string
nameusedbefore?: string
gender?: number
myfolk?: string
politicaloutlook?: number
health?: number
birthdaytime?: string
idcardstarttimedata?: string
idcardendtimedata?: string
idcardaddress?: string
idcardIssued?: string
currentresidence?: string
nativeplace?: string
email?: string
internaltelephone?: string
hireclass?: number
emptype?: number
isveterans?: number
veteransnumber?: string
passportno?: string
globalroaming?: string
wechat?: string
workwechat?: string
constellationing?: number
maritalstatus?: number
}
/**
*
*/
export interface emergencyContactInfo extends contId{
name?: string
relationship?: string
mobilephone?: string
}
/**
*
*/
export interface emergencyContactAdd extends contId{
list?:emergencyContactCont[]
}
export interface emergencyContactCont{
name?: string
relationship?: string
mobilephone?: string
}
/**
*
*/
export interface delJjlxr extends contId{
state:number;
isdel:number;
}
/**
*
*/
export interface doubleWorkCont extends contId{
name?:string
company?:string
department?:string
position?:string
mobilephone?:string
}
/**
*
*/
export interface familyMembersCont{
id?:string
name?: string
relationship?: string
mobilephone?: string
company?: string
department?:string
politicaloutlook?: number
}
/**
*
*/
export interface familyMembersContAdd extends contId{
list?:familyMembersCont[]
}
/**
*
*/
export interface familyMembersContEdit extends familyMembersCont{
id?: string
}
/**
*
*/
export interface educExpInfo{
graduationschool?:string //"宁阳实验高中",
subject?:string //"理科",
education?:number//3,
admissiontime?:string //"2005-09-09",
graduationtime?:string //"2008-06-06",
academicdegree?:string //"1",
level?:string //"1"
}
/**
*
*/
export interface editEducExpInfoing extends educExpInfo{
id:string
}
/**
*
*/
export interface addEducExpInfoing extends contId{
list?:educExpInfo[]
}
/**
*
*/
export interface groupExternalWork{
company?:string //"济南易搜集团",
department?:string //"技术部",
position?:string //"程序员",
entrytime?:string //"2010-10-09",
leavedate?:string //"2013-12-06",
witness?:string //"石娟柯",
witnesstel?:string //"15069130853",
remarks?:string //"看看手机打开"
}
/**
*
*/
export interface editGroupExternalWorkCont extends groupExternalWork{
id:string
}
/**
*
*/
export interface addGroupExternalWorkCont extends contId{
list?:groupExternalWork[]
}
/**
*
*/
export interface groupInnerWorkCont extends contId{
orgid?:string
position?:string
gradepositions?:number
starttime?:string
endtime?:string
changetype?:number
assigntype?:number
team?:string
jobid?:string
}
/**
*
*/
export interface editUserIcon{
id:number;
iconpath:string;
}
/**
*
*/
export interface editUserAboutOrg{
id:string;
orgid?:number;
position?:number;
teamid?:number;
jobid?:number;
jobleve?:number;
ruleid?:string;
personInCharge:any;
orgreslist?:any;
resallorg?:any;
}
/**
*
*/
export interface teamClassQueay{
name?:""
}
export interface teamRule{
id:string;
sort:number;
teamid:string;
}
export interface teamList{
id:string;
title:string;
startTime:string;
endTime:string;
}
/**
*
*/
export interface teamClassCont{
id:string;
state?:number;
states:boolean;
rulename:string;
name:string;
rule:teamRule[];
list:teamList[];
}

53
src/api/hr/post/index.ts

@ -0,0 +1,53 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { searchPost,postContList,postContData,editPostditOrDel } from './type';
/**
*
*/
export function getPostContPage(data?: searchPost): AxiosPromise<postContList> {
return request({
url: '/hrapi/org/positionlist',
method: 'post',
data: data
});
}
/**
*
*/
export function getPostContNotSunPage(data?: searchPost): AxiosPromise<postContList> {
return request({
url: '/hrapi/org/get_my_posit_list',
method: 'post',
data: data
});
}
/**
*
*/
export function addPostCont(data?: postContData){
return request({
url: '/hrapi/org/addpositioncontpublic',
method: 'post',
data: data
});
}
/**
*
*/
export function editPostCont(data?: postContData){
return request({
url: '/hrapi/org/editpositioncontpublic',
method: 'post',
data: data
});
}
/**
* /
*/
export function baseDelPostCont(data?: editPostditOrDel){
return request({
url: '/hrapi/org/basedelpostcont',
method: 'post',
data: data
});
}

69
src/api/hr/post/type.ts

@ -0,0 +1,69 @@
/**
*
*/
export interface searchPost extends PageQuery{
name?: string;
number?: string;
duties?: string;
organization?: string;
incharge?:number;
department?: string;
state?:number;
}
/**
*
*/
export type postContList = PageResult<postinfo[]>
/**
*
*/
export interface postinfo{
id?: any;
number?: string;
name?: string;
duties?: number;
time?: number;
state?: number;
administrativeorganization?: number;
superior?: number;
personincharge?: number;
department?: number;
menupermit?: string;
buttonpermit?: string;
school?: number;
kingdeeid?: string;
orglist?: string;
unifyid?: number;
dutiesname?: string;
dutiesnumber?: string;
aoname?: string;
aonumber?: string;
jobname?: string;
superiorname?: string;
superiornumber?: string;
departmentname?: string;
idstr?: string;
orglistary?: number[];
status?:boolean;
}
/**
*
*/
export interface postContData{
id?: number;
name?: string; //职位名称
number?: string; //职位编码
duties?: string; //职务
organization?: string; //归属行政组织
superior?: string|number; //上级
incharge?: number; //是否为本部门负责人(1:是;2:否)
department?: string; //部门
}
/**
*
*/
export interface editPostditOrDel{
id:string[];
status?: number;
istrue?: number;
}

128
src/api/menu/index.ts

@ -0,0 +1,128 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { MenuQuery, MenuVO, MenuForm,menuInfo } from './types';
/**
*
*/
export function listRoutesOld() {
return request({
url: '/api/v1/menus/routes',
method: 'get'
});
}
export function listRoutes() {
return request({
url: '/systemapi/menus/get_routers_three',
method: 'get'
});
}
/**
*
*
* @param queryParams
*/
export function listMenusOld(queryParams: MenuQuery): AxiosPromise<MenuVO[]> {
return request({
url: '/api/v1/menus',
method: 'get',
params: queryParams
});
}
export function listMenus(queryParams: MenuQuery): AxiosPromise<MenuVO[]> {
return request({
url: '/systemapi/menus/get_menus_three',
method: 'get',
params: queryParams
});
}
/**
*
*/
export function listMenuOptionsOld(): AxiosPromise<OptionType[]> {
return request({
url: '/api/v1/menus/options',
method: 'get'
});
}
export function listMenuOptions(): AxiosPromise<OptionType[]> {
return request({
url: '/systemapi/menus/menu_options',
method: 'get'
});
}
/**
*
*
* @param id
*/
export function getMenuFormOld(id: number): AxiosPromise<MenuForm> {
return request({
url: '/api/v1/menus/' + id + '/form',
method: 'get'
});
}
export function getMenuForm(data: menuInfo): AxiosPromise<MenuForm> {
return request({
url: '/systemapi/menus/get_one_menu_cont',
method: 'post',
data:data
});
}
/**
*
*
* @param data
*/
export function addMenuOld(data: MenuForm) {
return request({
url: '/api/v1/menus',
method: 'post',
data: data
});
}
export function addMenu(data: MenuForm) {
return request({
url: '/systemapi/menus/add_new_menu',
method: 'post',
data: data
});
}
/**
*
*
* @param id
* @param data
*/
export function updateMenuOld(id: string, data: MenuForm) {
return request({
url: '/api/v1/menus/' + id,
method: 'put',
data: data
});
}
export function updateMenu(data: MenuForm) {
return request({
url: '/systemapi/menus/edit_menus_cont',
method: 'post',
data: data
});
}
/**
*
*
* @param id ID
*/
export function deleteMenuOld(id: number) {
return request({
url: '/api/v1/menus/' + id,
method: 'delete'
});
}
export function deleteMenu(data: menuInfo) {
return request({
url: '/systemapi/menus/delt_menus_cont',
method: 'post',
data:data
});
}

125
src/api/menu/types.ts

@ -0,0 +1,125 @@
import { MenuTypeEnum } from '@/enums/MenuTypeEnum';
/**
*
*/
export interface MenuQuery {
keywords?: string;
}
/**
*
*/
export interface MenuVO {
/**
*
*/
children?: MenuVO[];
/**
*
*/
component?: string;
/**
* ICON
*/
icon?: string;
/**
* ID
*/
id?: number;
/**
*
*/
name?: string;
/**
* ID
*/
parentId?: number;
/**
*
*/
perm?: string;
/**
*
*/
redirect?: string;
/**
*
*/
routeName?: string;
/**
*
*/
routePath?: string;
/**
* ()
*/
sort?: number;
/**
*
*/
type?: MenuTypeEnum;
/**
* (1:显示;0:隐藏)
*/
visible?: number;
}
/**
*
*/
export interface MenuForm {
/**
* ID
*/
id?: string;
/**
* ID
*/
parentId?: number;
/**
*
*/
name?: string;
/**
* (1:;0:;)
*/
visible: number;
icon?: string;
/**
*
*/
sort: number;
/**
*
*/
component?: string;
/**
*
*/
path?: string;
/**
*
*/
redirect?: string;
/**
*
*/
type: MenuTypeEnum;
/**
*
*/
perm?: string;
/**
*
*/
outside?: number;
}
/**
*
*/
export interface menuInfo {
id:string;
}

62
src/api/publicapi.ts

@ -0,0 +1,62 @@
export const calculateDatesMonth =(dateStr:string,num:number,type:string) => {
let monthnum = num;
if (typeof (num) == "string"){
monthnum = parseInt(num);
}
let date= new Date(dateStr);
//获取原日
let day = date.getDate();
//获取原月份
let month=date.getMonth();
//设置增加月份
date.setMonth(date.getMonth() + (monthnum*1), 1);
//获取增加的后的月份
let Jmonth = date.getMonth()+1;
//获取增加的后的年份
let Jyear=date.getFullYear();
if(Jmonth == 4 || Jmonth == 6 || Jmonth == 9 || Jmonth == 11) {
//小月
if (day > 30) {
day = 30;
}
}else if (Jmonth == 2) {
//2月判断是否闰年
if(((Jyear % 4) == 0) && ((Jyear % 100) != 0) || ((Jyear % 400) == 0)){
if (day > 29) {
day = 29;
}
}else{
if (day > 28) {
day = 28
}
}
}else{
//大月
if (day > 31) {
day = 31;
}
}
let tHours = date.getHours();
let tMinutes = date.getMinutes();
let tSeconds = date.getSeconds();
let Jmonthstr = doHandleMonth(Jmonth);
let daystr = doHandleMonth(day);
if(type=="0"){
return Jyear+"-"+Jmonthstr+"-"+daystr;
}
return Jyear+"-"+Jmonthstr+"-"+daystr+" "+tHours+":"+tMinutes+":"+tSeconds;
};
/**
* 0
* @param month
* @returns {string}
*/
function doHandleMonth(month:number):string {
let m = month.toString();
if(month.toString().length == 1){
m = "0" + month;
}
return m;
}

112
src/api/role/index.ts

@ -0,0 +1,112 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { RoleQuery, RolePageResult, RoleForm } from './types';
/**
*
*
* @param queryParams
*/
export function getRolePage(
queryParams?: RoleQuery
): AxiosPromise<RolePageResult> {
return request({
url: '/api/v1/roles/page',
method: 'get',
params: queryParams
});
}
/**
*
*
* @param queryParams
*/
export function listRoleOptions(
queryParams?: RoleQuery
): AxiosPromise<OptionType[]> {
return request({
url: '/api/v1/roles/options',
method: 'get',
params: queryParams
});
}
/**
* ID集合
*
* @param queryParams
*/
export function getRoleMenuIds(roleId: number): AxiosPromise<number[]> {
return request({
url: '/api/v1/roles/' + roleId + '/menuIds',
method: 'get'
});
}
/**
*
*
* @param queryParams
*/
export function updateRoleMenus(
roleId: number,
data: number[]
): AxiosPromise<any> {
return request({
url: '/api/v1/roles/' + roleId + '/menus',
method: 'put',
data: data
});
}
/**
*
*
* @param id
*/
export function getRoleForm(id: number): AxiosPromise<RoleForm> {
return request({
url: '/api/v1/roles/' + id + '/form',
method: 'get'
});
}
/**
*
*
* @param data
*/
export function addRole(data: RoleForm) {
return request({
url: '/api/v1/roles',
method: 'post',
data: data
});
}
/**
*
*
* @param id
* @param data
*/
export function updateRole(id: number, data: RoleForm) {
return request({
url: '/api/v1/roles/' + id,
method: 'put',
data: data
});
}
/**
* (,)
*
* @param ids
*/
export function deleteRoles(ids: string) {
return request({
url: '/api/v1/roles/' + ids,
method: 'delete'
});
}

78
src/api/role/types.ts

@ -0,0 +1,78 @@
/**
*
*/
export interface RoleQuery extends PageQuery {
keywords?: string;
}
/**
*
*/
export interface RolePageVO {
/**
*
*/
code?: string;
/**
* ID
*/
id?: number;
/**
*
*/
name?: string;
/**
*
*/
sort?: number;
/**
*
*/
status?: number;
/**
*
*/
createTime?: Date;
/**
*
*/
updateTime?: Date;
}
/**
*
*/
export type RolePageResult = PageResult<RolePageVO[]>;
/**
*
*/
export interface RoleForm {
/**
* ID
*/
id?: number;
/**
*
*/
code: string;
/**
*
*/
dataScope?: number;
/**
*
*/
name: string;
/**
*
*/
sort?: number;
/**
* (1-0-)
*/
status?: number;
}

83
src/api/system/roleapi/postrole.ts

@ -0,0 +1,83 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { getOrgTree,submintPostPower,setupPage,submintRolePower,getSystemOrgTree,systemMenusTypeTree,getSystemMenusForRole } from './types'
/**
*
*/
export function listRoutesOld(data: getOrgTree){
return request({
url: '/hrapi/org/get_organdpost_three',
method: 'post',
data:data
});
}
/**
*
*/
export function getSystemType(data: setupPage){
return request({
url: '/kpiapi/powerpc/system_list',
method: 'post',
data:data
});
}
/**
*
*/
export function getSystemPoewrTree(data: getSystemOrgTree): AxiosPromise<systemMenusTypeTree[]>{
return request({
url: '/kpiapi/powerpc/system_about_power_menu',
method: 'post',
data:data
});
}
/**
*
*/
export function grantSystemPostPoewr(data: submintPostPower){
return request({
url: '/kpiapi/powerpc/grant_post_system_powers',
method: 'post',
data:data
});
}
/**
*
*/
export function getGrantPowers(data: getSystemOrgTree): AxiosPromise<string[]>{
return request({
url: '/systemapi/grant/get_post_grant_powers',
method: 'post',
data:data
});
}
/**
*
*/
export function getSystemPoewrTreeForRole(data: getSystemMenusForRole): AxiosPromise<systemMenusTypeTree[]>{
return request({
url: '/kpiapi/powerpc/system_about_power_menurole',
method: 'post',
data:data
});
}
/**
*
*/
export function getGrantRolePowers(data: getSystemMenusForRole): AxiosPromise<string[]>{
return request({
url: '/systemapi/grant/get_role_grant_powers',
method: 'post',
data:data
});
}
/**
*
*/
export function grantSystemRolePoewr(data: submintRolePower){
return request({
url: '/kpiapi/powerpc/grant_role_system_powers',
method: 'post',
data:data
});
}

94
src/api/system/roleapi/rolecont.ts

@ -0,0 +1,94 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { searchRoleWord,roleLietCont,editRoleContKeyword,editRoleStatus,addRoleContKeyword,getRoleEndUser,RoleEndUSerContList,BaseDelRoleToUser,getOrgAndUserList,RoleEndUSerTreeList,CallBackOrgUserCont,setupRolePeople } from './types'
/**
*
*/
export function getSystemRoleList(data: searchRoleWord): AxiosPromise<roleLietCont[]>{
return request({
url: '/kpiapi/powerpc/system_role_list',
method: 'post',
data:data
});
}
/**
*
*/
export function addRoleCont(data: addRoleContKeyword){
return request({
url: '/kpiapi/powerpc/add_system_role',
method: 'post',
data:data
});
}
/**
*
*/
export function editRoleCont(data: editRoleContKeyword){
return request({
url: '/kpiapi/powerpc/edit_system_role',
method: 'post',
data:data
});
}
/**
*
*/
export function editRoleContStatus(data: editRoleStatus){
return request({
url: '/kpiapi/powerpc/edit_system_role_statebatch',
method: 'post',
data:data
});
}
/**
* 使
*/
export function getRoleEndUserList(data: getRoleEndUser): AxiosPromise<RoleEndUSerContList>{
return request({
url: '/kpiapi/powerpc/role_about_people_list',
method: 'post',
data:data
});
}
/**
* 使
*/
export function batchDelUserFromRole(data: BaseDelRoleToUser){
return request({
url: '/kpiapi/powerpc/batch_del_roleman',
method: 'post',
data:data
});
}
/**
*
*/
export function getOrgAndUserListCont(data: getOrgAndUserList):AxiosPromise<RoleEndUSerTreeList>{
return request({
url: '/hrapi/org/govthreeaboutman',
method: 'post',
data:data
});
}
/**
*
*/
export function searchOrgUserContSend(data: searchRoleWord):AxiosPromise<CallBackOrgUserCont>{
return request({
url: '/hrapi/org/search_org_people',
method: 'post',
data:data
});
}
/**
* 使
*/
export function submittoAppointUser(data: setupRolePeople){
return request({
url: '/kpiapi/powerpc/add_role_user',
method: 'post',
data:data
});
}

267
src/api/system/roleapi/types.ts

@ -0,0 +1,267 @@
/**
*
*/
export interface getOrgTree{
id?: string;
level?: number;
all?: number;
}
/**
*
*/
export interface orgPostTreeData{
allnumber?:[string];
count?: number;
list:orgPostTreeList;
}
export interface orgPostTreeList {
id?: string; //id
number?: string; //编号
name?: string; //名称
superior?: string; //上级
orgid?: string; //行政组织
attribute?: number; //属性
sort?: number; //排序
orgname?: string; //行政组织名称
departid?: string; //部门ID
departname?: string; //部门名称
adminorg?: string; //岗位归属行政组织
child?:orgPostTreeList[]; //子集
}
/**
*
*/
export interface setupPage {
page?:number; //页码
pagesize?:number; //每页获取数量
}
/**
*
*/
export interface systemList{
page?:number; //页码
pagesize?:number; //每页获取数量
count?: number; //记录总数
total?: number; //每页总数
list?: systemCont[]; //
}
export interface systemCont{
id?:number; //id
key?:string; //识别符
coder?:string; //关键字
title?:string; //系统名称
apiurl?:string; //api地址
sort?:number; //排序
state?:number; //状态
time?:number; //编辑时间
}
//菜单列表
export interface systemMenusType {
id?:string; //
name?:string; //
parentid?:string; //
pathurl?:string; //
istrue?:boolean; //
menukey?:string; //
key?:string; //
attribute?:string; //
}
//菜单列表树
export interface systemMenusTypeTree {
id?:string; //
name?:string; //
parentid?:string; //
pathurl?:string; //
istrue?:boolean; //
menukey?:string; //
key?:string; //
attribute?:string; //
child?:systemMenusType[]; //
menuOperation?:systemMenusType[]; //
}
/**
*
*/
export interface getSystemOrgTree{
name?: string;
ordid?: string;
postid?: string;
}
/**
*
*/
export interface submintPostPower{
systemname:string
ordid:string
postid:string
level?:number
power:systemMenusTypeTree[]
}
/**
*
*/
export interface searchRoleWord{
name?: string;
}
/**
*
*/
export interface roleLietCont{
id:number;
name?:string;
istrue?:boolean;
sort?: number;
state?:number;
time?: number;
}
/**
*
*/
export interface editRoleContKeyword{
id?:string;
name?:string;
sort?: number;
}
export interface addRoleContKeyword{
name?:string;
sort?: number;
}
/**
*
*/
export interface editRoleStatus{
id?: string[];
istrue?: number;
state?: number;
}
/**
*
*/
export interface getSystemMenusForRole{
name:string;
roleid?:string;
}
/**
*
*/
export interface submintRolePower{
systemname:string
roleid:string
level?:number
power:systemMenusTypeTree[]
}
/**
* 使
*/
export interface getRoleEndUser{
id:string;
name?:string;
page?:number; //页码
pagesize?:number; //每页获取数量
}
/**
* 使
*/
export interface usercont{
id?:string;
number?:string;
name?:string;
company?:string;
companyname?:string;
department?:string;
departmentname?:string;
orgId?:string;
orgname?:string;
dutiesid?:string;
dutiesname?:string;
wechat?:string;
key?:string;
departmenttitle?:string;
icon?:string;
iconbase64?:string;
}
/**
* 使
*/
export type RoleEndUSerContList = PageResult<usercont[]>;
/**
* 使
*/
export interface BaseDelRoleToUser{
id:string;
mankey:string[];
}
/**
*
*/
export interface getOrgAndUserList {
id:string;
all?:number;
level?:number;
}
/**
*
*/
export interface orgAndPeopleList{
id?: string;
name?: string;
number?: string;
icon?: string;
iconbase64?: string;
parentId?: string;
orgId?: string;
isman?: number;
sort?: number;
identify?: number;
all_name?: string;
child?: orgAndPeopleList[];
}
export interface orgAndPeopleLists{
id: string;
name?: string;
number?: string;
icon?: string;
iconbase64?: string;
parentId: string;
orgId?: string;
isman?: number;
sort?: number;
identify?: number;
all_name?:string;
}
export interface orgUserPageResult<T> {
/**
*
*/
list: orgAndPeopleLists[];
/**
*
*/
three: T;
}
export type RoleEndUSerTreeList = orgUserPageResult<orgAndPeopleList[]>;
/**
*
*/
export interface sendSearchOrgPeople{
org:orgAndPeopleLists[];
people:orgAndPeopleLists[];
}
export type CallBackOrgUserCont = sendSearchOrgPeople;
/**
* 使
*/
export interface setupRolePeople{
roleid:string;
peoplelist:orgAndPeopleLists[];
}

159
src/api/user/index.ts

@ -0,0 +1,159 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { UserForm, UserInfo, UserPageVO, UserQuery } from './types';
/**
*
*/
export function getUserInfo(): AxiosPromise<UserInfo> {
return request({
url: '/api/v1/users/me',
method: 'get'
});
}
export function getUserInfoIng(): AxiosPromise<UserInfo> {
return request({
url: '/systemapi/user/get_user_cont',
method: 'get'
});
}
/**
*
*
* @param queryParams
*/
export function getUserPage(
queryParams: UserQuery
): AxiosPromise<PageResult<UserPageVO[]>> {
return request({
url: '/api/v1/users/page',
method: 'get',
params: queryParams
});
}
/**
*
*
* @param userId
*/
export function getUserForm(userId: number): AxiosPromise<UserForm> {
return request({
url: '/api/v1/users/' + userId + '/form',
method: 'get'
});
}
/**
*
*
* @param data
*/
export function addUser(data: any) {
return request({
url: '/api/v1/users',
method: 'post',
data: data
});
}
/**
*
*
* @param id
* @param data
*/
export function updateUser(id: number, data: UserForm) {
return request({
url: '/api/v1/users/' + id,
method: 'put',
data: data
});
}
/**
*
*
* @param id
* @param status
*/
export function updateUserStatus(id: number, status: number) {
return request({
url: '/api/v1/users/' + id + '/status',
method: 'patch',
params: { status: status }
});
}
/**
*
*
* @param id
* @param password
*/
export function updateUserPassword(id: number, password: string) {
return request({
url: '/api/v1/users/' + id + '/password',
method: 'patch',
params: { password: password }
});
}
/**
*
*
* @param ids
*/
export function deleteUsers(ids: string) {
return request({
url: '/api/v1/users/' + ids,
method: 'delete'
});
}
/**
*
*
* @returns
*/
export function downloadTemplateApi() {
return request({
url: '/api/v1/users/template',
method: 'get',
responseType: 'arraybuffer'
});
}
/**
*
*
* @param queryParams
* @returns
*/
export function exportUser(queryParams: UserQuery) {
return request({
url: '/api/v1/users/_export',
method: 'get',
params: queryParams,
responseType: 'arraybuffer'
});
}
/**
*
*
* @param file
*/
export function importUser(deptId: number, file: File) {
const formData = new FormData();
formData.append('file', file);
return request({
url: '/api/v1/users/_import',
method: 'post',
params: { deptId: deptId },
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
});
}

111
src/api/user/types.ts

@ -0,0 +1,111 @@
/**
*
*/
export interface UserInfo {
nickname: string;
avatar: string;
roles: string[];
perms: string[];
}
/**
*
*/
export interface UserQuery extends PageQuery {
keywords?: string;
status?: number;
deptId?: number;
}
/**
*
*/
export interface UserPageVO {
/**
*
*/
avatar?: string;
/**
*
*/
createTime?: Date;
/**
*
*/
deptName?: string;
/**
*
*/
email?: string;
/**
*
*/
genderLabel?: string;
/**
* ID
*/
id?: number;
/**
*
*/
mobile?: string;
/**
*
*/
nickname?: string;
/**
* 使(,)
*/
roleNames?: string;
/**
* (1:启用;0:禁用)
*/
status?: number;
/**
*
*/
username?: string;
}
/**
*
*/
export interface UserForm {
/**
*
*/
avatar?: string;
/**
* ID
*/
deptId?: number;
/**
*
*/
email?: string;
/**
*
*/
gender?: number;
/**
* ID
*/
id?: number;
mobile?: string;
/**
*
*/
nickname?: string;
/**
* ID集合
*/
roleIds?: number[];
/**
* (1:正常;0:禁用)
*/
status?: number;
/**
*
*/
username?: string;
}

BIN
src/assets/401_images/401.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

BIN
src/assets/404_images/404.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
src/assets/404_images/404_cloud.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
src/assets/appimages/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
src/assets/appimages/10.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
src/assets/appimages/11.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 KiB

BIN
src/assets/appimages/12.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
src/assets/appimages/13.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

BIN
src/assets/appimages/14.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 KiB

BIN
src/assets/appimages/15.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 KiB

BIN
src/assets/appimages/16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

BIN
src/assets/appimages/17.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 895 KiB

BIN
src/assets/appimages/18.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 850 KiB

BIN
src/assets/appimages/19.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

BIN
src/assets/appimages/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

BIN
src/assets/appimages/20.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

BIN
src/assets/appimages/21.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 KiB

BIN
src/assets/appimages/22.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

BIN
src/assets/appimages/23.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

BIN
src/assets/appimages/24.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

BIN
src/assets/appimages/25.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

BIN
src/assets/appimages/26.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

BIN
src/assets/appimages/27.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
src/assets/appimages/28.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 962 KiB

BIN
src/assets/appimages/29.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

BIN
src/assets/appimages/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
src/assets/appimages/30.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 KiB

BIN
src/assets/appimages/31.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

BIN
src/assets/appimages/32.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

BIN
src/assets/appimages/33.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

BIN
src/assets/appimages/34.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

BIN
src/assets/appimages/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

BIN
src/assets/appimages/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
src/assets/appimages/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

BIN
src/assets/appimages/7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

BIN
src/assets/appimages/8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

BIN
src/assets/appimages/9.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

1
src/assets/icons/0117- dg.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M960 320H616.064l-4-128h94.912c6.624 18.592 24.192 32 45.056 32s38.464-13.408 45.056-32H896V128h-285.984l-3.008-96h-158.016l-3.008 96H128v64h98.944c6.592 18.592 24.192 32 45.056 32s38.464-13.408 45.056-32h126.912l-4.032 128H64v64h98.944c6.624 18.592 24.192 32 45.056 32s38.464-13.408 45.056-32h184.864l-19.104 608h218.336l-19.104-608h152.864c6.624 18.592 24.192 32 45.056 32s38.464-13.408 45.056-32H960v-64zM484.864 928l26.144-832h33.984l26.144 832h-86.272z" p-id="1485"></path></svg>

After

Width:  |  Height:  |  Size: 571 B

1
src/assets/icons/0209-jtbzp.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M384 384h256v64h-256zM544 843.584h-64V928h-160v64h384v-64h-160zM512 32C299.936 32 128 203.936 128 416s171.936 384 384 384 384-171.936 384-384S724.064 32 512 32z m0 704c-176.736 0-320-143.264-320-320S335.264 96 512 96s320 143.264 320 320-143.264 320-320 320z" p-id="1552"></path></svg>

After

Width:  |  Height:  |  Size: 371 B

1
src/assets/icons/0213-lmp.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M608 416h205.312L960 288l-146.688-128H608V32h-192v128H96v256h320v64H210.688L64 608l146.688 128H416v256h192v-256h320v-256H608v-64zM480 96h64v64h-64V96zM160 352V224h629.344l73.344 64-73.344 64H160z m320 64h64v64h-64v-64z m64 512h-64v-192h64v192z m320-384v128H234.656l-73.344-64 73.344-64H864z" p-id="1518"></path></svg>

After

Width:  |  Height:  |  Size: 404 B

1
src/assets/icons/0215lbtcc_.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M896 416c0-212.064-171.936-384-384-384S128 203.936 128 416c0 178.88 122.464 328.736 288 371.424V928h-96v64h384v-64h-96v-140.576c165.536-42.688 288-192.544 288-371.424zM192 416C192 239.264 335.264 96 512 96s320 143.264 320 320-143.264 320-320 320S192 592.736 192 416z m352 512h-64v-129.632c10.592 0.896 21.184 1.632 32 1.632s21.408-0.736 32-1.632V928zM736 352a160 160 0 0 0-160-160h-192v448h64v-128h128a160 160 0 0 0 160-160z m-288-96h128a96 96 0 1 1 0 192h-128V256z" p-id="1507"></path></svg>

After

Width:  |  Height:  |  Size: 579 B

1
src/assets/icons/0303gczsp.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M462.208 444.448L437.344 320h-49.696l-24.992 124.448L337.76 320H288l49.792 224h49.76l24.896-141.024 24.896 141.024h49.76l42.08-224h-49.664zM669.664 483.008c-5.952 7.2-14.752 10.784-26.4 10.784-12 0-21.312-4.448-27.968-13.376-6.624-8.896-9.952-25.376-9.952-49.376 0-19.392 2.784-33.632 8.32-42.656 7.328-12.224 17.92-18.304 31.712-18.304 6.08 0 11.616 1.376 16.544 4.128 4.928 2.752 9.088 6.688 12.512 11.808 2.048 3.04 4.032 7.872 5.92 14.464l53.76-13.152c-6.912-22.848-17.44-39.776-31.648-50.784-14.208-11.04-33.696-16.544-58.528-16.544-31.712 0-56.256 9.632-73.568 28.864-17.344 19.232-26.016 46.784-26.016 82.624 0 26.88 4.928 48.928 14.784 66.144 9.856 17.216 21.568 29.28 35.136 36.096 13.568 6.848 31.072 10.272 52.48 10.272 17.664 0 32.192-2.816 43.616-8.416a75.2 75.2 0 0 0 28.704-24.96c7.712-11.008 13.344-24.736 16.928-41.184l-53.344-17.728c-2.688 13.696-7.008 24.128-12.992 31.296zM544 843.584h-64V928h-160v64h384v-64h-160zM512 32C299.936 32 128 203.936 128 416s171.936 384 384 384 384-171.936 384-384S724.064 32 512 32z m0 704c-176.736 0-320-143.264-320-320S335.264 96 512 96s320 143.264 320 320-143.264 320-320 320z" p-id="1563"></path></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

1
src/assets/icons/0309rxjrjc_.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M32 128v768h960V128H32z m896 704H96V192h832v640zM240 432m-48 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0ZM720 688m-48 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0ZM528 336m-48 0a48 48 0 1 0 96 0 48 48 0 1 0-96 0ZM749.248 442.496l32-32 32 32 45.248-45.248-32-32 32-32L813.248 288l-32 32-32-32L704 333.248l32 32-32 32zM365.248 730.496l32-32 32 32 45.248-45.248-32-32 32-32L429.248 576l-32 32-32-32L320 621.248l32 32-32 32z" p-id="1496"></path></svg>

After

Width:  |  Height:  |  Size: 517 B

1
src/assets/icons/0407jtzy.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M955.616 701.824l-55.328-180.256H403.488L234.496 128H48.512l232.384 573.824h80.992L288 960h69.408l34.4-128h368.352l34.4 128H864l-73.888-258.176h165.504zM143.488 192H192.32l168.992 393.568h491.68l16.032 52.256H324.032L143.488 192z m599.488 576H409.024l17.792-66.176h298.4L742.976 768z" p-id="1529"></path></svg>

After

Width:  |  Height:  |  Size: 397 B

1
src/assets/icons/0601-zdwx.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M987.008 846.816l-448-704a32.032 32.032 0 0 0-54.016 0l-448 704A32 32 0 0 0 64 896h896a32 32 0 0 0 27.008-49.184zM122.304 832L512 219.616 901.696 832H122.304z" fill="#FF0000" p-id="1540"></path><path d="M495.808 328.896l-268.8 422.4a19.2 19.2 0 0 0 16.192 29.504h537.6a19.2 19.2 0 0 0 16.192-29.504l-268.8-422.4a19.2 19.2 0 0 0-32.384 0zM544 736h-64v-64h64v64z m0-288v192h-64v-192h64z" fill="#FF0000" p-id="1541"></path></svg>

After

Width:  |  Height:  |  Size: 513 B

1
src/assets/icons/110kv.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1686557999938" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="20895" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M938.496 810.496H85.504c-47.104 0-85.504-38.4-85.504-85.504v-640C0 38.4 38.4 0 85.504 0h853.504c47.104 0 85.504 38.4 85.504 85.504v640c-0.512 47.104-38.912 84.992-86.016 84.992zM85.504 64c-11.776 0-21.504 9.728-21.504 21.504v640c0 11.776 9.728 21.504 21.504 21.504h853.504c11.776 0 21.504-9.728 21.504-21.504v-640c0-11.776-9.728-21.504-21.504-21.504H85.504z" fill="#d81e06" p-id="20896"></path><path d="M243.712 1024c-17.92 0-32.256-14.336-32.256-32.256V778.24c0-17.92 14.336-32.256 32.256-32.256s32.256 14.336 32.256 32.256v213.504c-0.512 17.92-14.848 32.256-32.256 32.256zM780.288 1024c-17.92 0-32.256-14.336-32.256-32.256V778.24c0-17.92 14.336-32.256 32.256-32.256s32.256 14.336 32.256 32.256v213.504c0 17.92-14.336 32.256-32.256 32.256zM445.952 656.384c-8.192 0-16.384-3.072-22.528-9.216-12.288-12.288-12.288-32.768 0-45.056l164.352-164.352H358.912c-12.8 0-24.576-7.68-29.696-19.968-5.12-11.776-2.048-25.6 7.168-34.816L555.52 163.84c12.288-12.288 32.768-12.288 45.056 0 12.288 12.288 12.288 32.768 0 45.056L436.224 373.248h228.864c12.8 0 24.576 7.68 29.696 19.968 5.12 11.776 2.048 25.6-7.168 34.816l-219.136 219.136c-6.144 6.144-14.336 9.216-22.528 9.216z" fill="#d81e06" p-id="20897"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

1
src/assets/icons/AI.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M501.824 32C303.552 32 141.504 176.992 141.504 357.76c0 23.712 2.816 47.104 8.32 69.856l-51.008 114.208a32 32 0 0 0 24.704 44.736c54.272 7.744 76.672 31.168 76.672 77.312v111.552a64 64 0 0 0 64 64h20.704a64 64 0 0 1 64 64V960a32 32 0 0 0 32 32h345.6a32 32 0 0 0 0-64h-313.6v-24.608a128 128 0 0 0-128-128h-20.736v-111.552c0-65.664-32.192-110.688-91.2-131.136l39.872-89.28a31.968 31.968 0 0 0 1.568-21.792 233.088 233.088 0 0 1-8.896-63.904c0-143.712 131.936-261.76 296.32-261.76s296.32 118.016 296.32 261.76a32 32 0 0 0 64 0C862.144 176.992 700.064 32 501.824 32zM904 448a32 32 0 0 0-32 32v360a32 32 0 0 0 64 0V480a32 32 0 0 0-32-32zM673.888 466.656c-11.744-25.568-48.416-24.64-58.816 1.536l-132.8 333.76a32 32 0 0 0 59.488 23.68l32.608-81.92c0.576 0.032 1.088 0.32 1.664 0.32h154.848l38.176 83.104a31.968 31.968 0 1 0 58.144-26.72l-153.312-333.76zM599.68 680l47.264-118.72 54.528 118.72H599.68z" p-id="2576"></path></svg>

After

Width:  |  Height:  |  Size: 1008 B

1
src/assets/icons/APIjr.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M512 256a32 32 0 0 0 32-32V127.04a32 32 0 1 0-64 0V224a32 32 0 0 0 32 32zM342.368 616.032a12.8 12.8 0 0 0-9.056 21.856l170.752 170.752a12.8 12.8 0 0 0 18.112 0l170.752-170.752a12.8 12.8 0 0 0-9.056-21.856H544V352a32 32 0 1 0-64 0v264.032h-137.632zM892.384 186.496l-174.176-86.08a32.032 32.032 0 0 0-28.384 57.376L864 243.872v502.848l-352 147.52-352-147.52V243.872l174.176-86.08a32 32 0 0 0-28.32-57.376l-174.208 86.08A63.648 63.648 0 0 0 96 243.872v502.848c0 25.888 15.424 49.056 39.264 59.008l364.384 152.704a31.936 31.936 0 0 0 24.768 0l364.352-152.672A63.84 63.84 0 0 0 928 746.72V243.872a63.68 63.68 0 0 0-35.616-57.376z" p-id="1763"></path></svg>

After

Width:  |  Height:  |  Size: 738 B

1
src/assets/icons/APIsc.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M512 640a32 32 0 0 0-32 32v96a32 32 0 1 0 64 0v-96a32 32 0 0 0-32-32zM333.312 317.888a12.8 12.8 0 0 0 9.056 3.744H480V544a32 32 0 1 0 64 0v-222.368h139.904a12.8 12.8 0 0 0 9.056-21.856l-170.752-170.752a12.8 12.8 0 0 0-18.112 0l-170.752 170.752a12.8 12.8 0 0 0-0.032 18.112zM892.384 186.496l-174.176-86.08a32.032 32.032 0 0 0-28.384 57.376L864 243.872v502.848l-352 147.52-352-147.52V243.872l174.176-86.08a32 32 0 0 0-28.32-57.376l-174.208 86.08A63.648 63.648 0 0 0 96 243.872v502.848c0 25.888 15.424 49.056 39.264 59.008l364.384 152.704a31.936 31.936 0 0 0 24.768 0l364.352-152.672A63.84 63.84 0 0 0 928 746.72V243.872a63.68 63.68 0 0 0-35.616-57.376z" p-id="1752"></path></svg>

After

Width:  |  Height:  |  Size: 764 B

1
src/assets/icons/APPkf.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M512 832m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0ZM790.4 32H233.6C182.72 32 144 78.336 144 132.928v758.144C144 945.664 182.72 992 233.6 992h556.8c50.88 0 89.6-46.336 89.6-100.928V132.928C880 78.336 841.28 32 790.4 32zM233.6 96h556.8c12.736 0 25.6 15.392 25.6 36.928V160h-608v-27.072C208 111.392 220.864 96 233.6 96z m556.8 832H233.6c-12.736 0-25.6-15.392-25.6-36.928V224h608v667.072c0 21.536-12.864 36.928-25.6 36.928zM704 560H320a32 32 0 1 0 0 64h384a32 32 0 1 0 0-64zM320 432h256.576a32 32 0 1 0 0-64H320a32 32 0 0 0 0 64z" p-id="1952"></path></svg>

After

Width:  |  Height:  |  Size: 639 B

1
src/assets/icons/BMP.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M287.392 341.632H245.632v32.608H281.28c13.344-2.048 20.032-8.256 20.032-18.656-2.72-9.312-7.36-13.952-13.92-13.952zM287.392 427.84H244.96v31.904H286.72c9.728-3.392 14.592-8.48 14.592-15.264v-2.72c-2.272-9.28-6.912-13.92-13.92-13.92zM795.008 341.632l-13.92-0.672h-17.312v52.256h29.184c9.728 0 17.184-6.784 22.4-20.352v-8.48c0-9.728-6.784-17.312-20.352-22.752zM928 640h32V160h-32v-27.072C928 77.28 883.552 32 828.928 32H195.04C140.448 32 96 77.28 96 132.928V160H64v480h32v251.072C96 946.72 140.448 992 195.04 992h480.032a31.872 31.872 0 0 0 20.96-7.84l153.856-133.632a32 32 0 1 0-41.92-48.32L704 892.512v-119.552c0-20.384 15.712-36.96 35.072-36.96h157.632a32 32 0 0 0 32-32c0-1.792-0.736-3.36-1.024-5.088 0-0.576 0.32-1.056 0.32-1.664V640zM160 132.928C160 112.576 175.712 96 195.04 96h633.888C848.288 96 864 112.576 864 132.928V160H160v-27.072z m382.048 292.864l-7.808 1.344h-4.064c-8.832 0-20.128-8.16-33.952-24.448l-23.072-22.752v1.344l-0.672 111.008c-5.44 14.016-13.12 21.024-23.072 21.024h-6.784c-9.952 0-17.664-7.008-23.072-21.024V311.072c0-9.728 6.784-17.408 20.352-23.072h9.504c7.456 0 19.808 9.728 36.992 29.184l45.824 45.152c47.072-47.296 71.392-70.944 72.992-70.944A21.664 21.664 0 0 1 615.008 288h6.784c9.728 0 17.44 6.784 23.072 20.352v181.92c0 9.952-7.136 17.664-21.376 23.072h-8.48c-6.784 0-13.472-4.416-20.032-13.248-2.496-3.84-3.744-10.752-3.744-20.704v-99.456c-30.304 30.592-46.688 45.856-49.184 45.856z m-187.808 15.296v4.768c0 26.688-14.368 47.392-43.104 62.112-7.936 3.616-21.376 5.408-40.384 5.408h-55.68c-9.952 0-17.664-7.008-23.072-21.024V312.448c0-7.936 6.784-15.616 20.352-23.072L217.792 288h68.896c27.392 0 48.416 14.592 63.136 43.776 2.944 9.28 4.416 17.888 4.416 25.792 0 14.72-4.864 28.864-14.592 42.432v1.344c9.728 11.552 14.592 24.8 14.592 39.744zM864 672h-124.928C684.448 672 640 717.28 640 772.928V928H195.04C175.712 928 160 911.424 160 891.072V640h704v32z m5.344-300.512c0 23.52-12 44.576-35.968 63.136-14.72 8.352-27.936 12.544-39.712 12.544h-29.856v27.84c0 17.888-3.04 28.288-9.152 31.232 0 2.272-4.864 4.64-14.592 7.136h-6.784c-9.952 0-17.664-7.008-23.072-21.024V311.072c0-9.952 7.008-17.664 21.056-23.072h62.464c23.296 0 44.224 11.872 62.784 35.648 8.608 14.688 12.896 28.064 12.896 40.032v7.808z" p-id="1796"></path></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

1
src/assets/icons/DOC.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M927.68 698.912c0-0.576 0.32-1.056 0.32-1.664V132.928C928 77.28 883.552 32 828.928 32H195.04C140.448 32 96 77.28 96 132.928v758.144C96 946.72 140.448 992 195.04 992h480.032a31.872 31.872 0 0 0 20.96-7.84l153.856-133.632a32 32 0 1 0-41.92-48.32L704 892.512v-119.552c0-20.384 15.712-36.96 35.072-36.96h157.632a32 32 0 0 0 32-32c-0.032-1.792-0.768-3.36-1.024-5.088zM640 772.928V928H195.04C175.712 928 160 911.424 160 891.072V132.928C160 112.576 175.712 96 195.04 96h633.888C848.288 96 864 112.576 864 132.928V672h-124.928C684.448 672 640 717.28 640 772.928zM731.36 288h-5.216c-9.536 0-17.504 4.192-23.84 12.576-22.56 40.768-50.464 95.296-83.712 163.52l-70.272-141.376C539.968 299.552 528.384 288 513.632 288h-7.808c-10.112 0-18.656 5.056-25.6 15.168-36.736 69.408-64.032 123.04-81.984 160.928l-70.272-141.376C319.904 299.552 308.32 288 293.312 288h-6.944l-6.528 1.728c-15.872 8.096-23.84 17.632-23.84 28.64v7.808l0.864 5.216c43.68 92.256 77.792 162.208 102.368 209.92 9.824 23.136 21.408 34.688 34.688 34.688h6.08c8.96 0 17.344-4.192 25.152-12.576l83.264-164.384h0.864c30.368 63.904 51.776 107.712 64.192 131.424 12.736 30.368 26.336 45.536 40.8 45.536h6.08c9.824 0 18.784-5.056 26.88-15.168l116.256-231.168v-10.432l-0.864-3.456c-9.856-18.528-20.256-27.776-31.264-27.776z" p-id="1785"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

1
src/assets/icons/GIF.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" version="1.1"><path d="M928 640h32V160h-32v-27.072C928 77.28 883.552 32 828.928 32H195.04C140.448 32 96 77.28 96 132.928V160H64v480h32v251.072C96 946.72 140.448 992 195.04 992h480.032a31.872 31.872 0 0 0 20.96-7.84l153.856-133.632a32 32 0 1 0-41.92-48.32L704 892.512v-119.552c0-20.384 15.712-36.96 35.072-36.96h157.632a32 32 0 0 0 32-32c0-1.792-0.736-3.36-1.024-5.088 0-0.576 0.32-1.056 0.32-1.664V640z m-64 32h-124.928C684.448 672 640 717.28 640 772.928V928H195.04C175.712 928 160 911.424 160 891.072V640h704v32zM319.872 466.72c7.968 2.88 15.072 4.32 21.344 4.32h5.792c11.808 0 22.784-3.744 32.928-11.2v-14.848H334.72c-10.368 0-18.56-7.584-24.608-22.784v-9.024c0-7.488 4.704-14.592 14.112-21.344 4.096-2.912 11.456-4.352 22.08-4.352h54.976c19.04 0 30.88 6.88 35.456 20.608l0.736 5.056v63.296c0 13.024-16.032 27.488-48.128 43.424-16.416 5.536-29.44 8.32-39.072 8.32h-11.936c-31.104 0-60.064-14.336-86.816-43.04-18.368-24.128-27.52-47.872-27.52-71.264v-11.584c0-31.104 14.336-60.032 43.04-86.816C291.168 297.152 314.912 288 338.304 288h11.936c19.52 0 40.992 7.488 64.384 22.432 15.2 10.624 22.784 20.992 22.784 31.104v5.056c0 4.576-2.88 10.496-8.672 17.728-7.232 5.056-13.76 7.616-19.552 7.616-8.448 0-17.728-4.96-27.84-14.848-11.104-7.968-22.56-11.936-34.368-11.936h-5.792c-23.872 0-42.432 13.024-55.712 39.072a60.8 60.8 0 0 0-4.352 20.992v5.792c0.032 23.872 12.928 42.432 38.752 55.712z m185.632 39.072V312.608c0-10.624 7.488-18.816 22.432-24.608h9.408c10.624 0 18.816 7.488 24.608 22.432v193.184c0 10.624-7.488 18.816-22.432 24.608h-9.408c-10.624 0-18.848-7.488-24.608-22.432z m188.448-115.424v10.496h73.44c10.624 0 18.944 7.616 24.96 22.784v9.056c0 7.488-4.832 14.592-14.464 21.344-3.872 2.88-11.104 4.352-21.696 4.352h-62.208v32.192c0 19.296-5.664 30.88-16.992 34.72 0 1.216-2.784 2.176-8.32 2.912h-7.232c-10.624 0-18.816-7.488-24.608-22.432V312.608c0-10.624 7.488-18.816 22.432-24.608h122.272c10.624 0 18.944 7.488 24.96 22.432v9.408c0 10.624-7.584 18.816-22.784 24.608h-90.432l0.672 45.92zM864 160H160v-27.072C160 112.576 175.712 96 195.04 96h633.888C848.288 96 864 112.576 864 132.928V160z" p-id="1807"></path></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save