commit 1a92e8b30e0340b0108a0b051a68b2b93b189d50 Author: Asoka Date: Tue Jun 3 16:45:54 2025 +0800 init code diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..77503d5 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,23 @@ +# https://editorconfig.org +root = true + +# 匹配全部文件 +[*] +# 设置字符集 +charset = utf-8 +# 缩进风格,可选space、tab +indent_style = space +# 缩进的空格数 +indent_size = 2 +# 结尾换行符,可选lf、cr、crlf +end_of_line = lf +# 在文件结尾插入新行 +insert_final_newline = true +# 删除一行中的前后空格 +trim_trailing_whitespace = true + +# 匹配md结尾的文件 +[*.md] +indent_style = tab +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/.env b/.env new file mode 100644 index 0000000..685b051 --- /dev/null +++ b/.env @@ -0,0 +1,8 @@ +# port 端口号 +VITE_PORT = 9010 + +# open 运行 npm run dev 时自动打开浏览器 +VITE_OPEN = true + +# public path 配置线上环境路径(打包)、本地通过 http-server 访问时,请置空即可 +VITE_PUBLIC_PATH = '' \ No newline at end of file diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..6de13e9 --- /dev/null +++ b/.env.development @@ -0,0 +1,5 @@ +# 本地环境 +ENV = 'development' + +# 本地环境接口地址 +VITE_API_URL = 'http://localhost:18010' \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..83a7148 --- /dev/null +++ b/.env.production @@ -0,0 +1,11 @@ +# 线上环境 +ENV = 'production' + +# 开启压缩 +VITE_COMPRESSION = true + +# public path 配置线上环境路径(打包) +VITE_PUBLIC_PATH = '/' + +# 线上环境接口地址,确保替换 http://localhost:16010 为你的实际线上接口地址 +VITE_API_URL = 'http://localhost:16010' \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..a391981 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,19 @@ + +*.sh +node_modules +lib +*.md +*.scss +*.woff +*.ttf +.vscode +.idea +dist +mock +public +bin +build +config +index.html +src/assets +gen \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..510241c --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,78 @@ +module.exports = { + root: true, + env: { + browser: true, + es2021: true, + node: true, + }, + parser: 'vue-eslint-parser', + parserOptions: { + ecmaVersion: 12, + parser: '@typescript-eslint/parser', + sourceType: 'module', + }, + extends: ['plugin:vue/vue3-essential', 'plugin:vue/essential', 'eslint:recommended'], + plugins: ['vue', '@typescript-eslint'], + overrides: [ + { + files: ['*.ts', '*.tsx', '*.vue'], + rules: { + 'no-undef': 'off', + }, + }, + ], + rules: { + // http://eslint.cn/docs/rules/ + // https://eslint.vuejs.org/rules/ + // https://typescript-eslint.io/rules/no-unused-vars/ + '@typescript-eslint/ban-ts-ignore': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-var-requires': 'off', + '@typescript-eslint/no-empty-function': 'off', + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-redeclare': 'error', + '@typescript-eslint/no-non-null-asserted-optional-chain': 'off', + '@typescript-eslint/no-unused-vars': [2], + 'vue/custom-event-name-casing': 'off', + 'vue/attributes-order': 'off', + 'vue/one-component-per-file': 'off', + 'vue/html-closing-bracket-newline': 'off', + 'vue/max-attributes-per-line': 'off', + 'vue/multiline-html-element-content-newline': 'off', + 'vue/singleline-html-element-content-newline': 'off', + 'vue/attribute-hyphenation': 'off', + 'vue/html-self-closing': 'off', + 'vue/no-multiple-template-root': 'off', + 'vue/require-default-prop': 'off', + 'vue/no-v-model-argument': 'off', + 'vue/no-arrow-functions-in-watch': 'off', + 'vue/no-template-key': 'off', + 'vue/no-v-html': 'off', + 'vue/comment-directive': 'off', + 'vue/no-parsing-error': 'off', + 'vue/no-deprecated-v-on-native-modifier': 'off', + 'vue/multi-word-component-names': 'off', + 'no-useless-escape': 'off', + 'no-sparse-arrays': 'off', + 'no-prototype-builtins': 'off', + 'no-constant-condition': 'off', + 'no-use-before-define': 'off', + 'no-restricted-globals': 'off', + 'no-restricted-syntax': 'off', + 'generator-star-spacing': 'off', + 'no-unreachable': 'off', + 'no-multiple-template-root': 'off', + 'no-unused-vars': 'error', + 'no-v-model-argument': 'off', + 'no-case-declarations': 'off', + 'no-console': 'error', + 'no-redeclare': 'off', + //修复prettier格式化语句在语句前生成分号后,eslintrc检测报错误的问题 + 'no-extra-semi': 'off', + }, +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2c651f7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,26 @@ +.DS_Store +node_modules +/dist + + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +pnpm-lock.yaml +package-lock.json \ No newline at end of file diff --git a/.prettierrc.cjs b/.prettierrc.cjs new file mode 100644 index 0000000..ed8309c --- /dev/null +++ b/.prettierrc.cjs @@ -0,0 +1,39 @@ +module.exports = { + // 一行最多多少个字符 + printWidth: 150, + // 指定每个缩进级别的空格数 + tabWidth: 2, + // 使用制表符而不是空格缩进行 + useTabs: false, + // 在语句末尾打印分号 + semi: false, + // 使用单引号而不是双引号 + singleQuote: true, + // 更改引用对象属性的时间 可选值"" + quoteProps: 'as-needed', + // 在JSX中使用单引号而不是双引号 + jsxSingleQuote: false, + // 多行时尽可能打印尾随逗号。(例如,单行数组永远不会出现逗号结尾。) 可选值"",默认none + trailingComma: 'es5', + // 在对象文字中的括号之间打印空格 + bracketSpacing: true, + // jsx 标签的反尖括号需要换行 + jsxBracketSameLine: false, + // 在单独的箭头函数参数周围包括括号 always:(x) => x \ avoid:x => x + arrowParens: 'always', + // 这两个选项可用于格式化以给定字符偏移量(分别包括和不包括)开始和结束的代码 + rangeStart: 0, + rangeEnd: Infinity, + // 指定要使用的解析器,不需要写文件开头的 @prettier + requirePragma: false, + // 不需要自动在文件开头插入 @prettier + insertPragma: false, + // 使用默认的折行标准 always\never\preserve + proseWrap: 'preserve', + // 指定HTML文件的全局空格敏感度 css\strict\ignore + htmlWhitespaceSensitivity: 'css', + // Vue文件脚本和样式标签缩进 + vueIndentScriptAndStyle: false, + // 换行符使用 lf 结尾是 可选值"" + endOfLine: 'lf', +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4e3c578 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 zhontai + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e62c3b1 --- /dev/null +++ b/README.md @@ -0,0 +1,117 @@ +
+

NPP

+

前后端分离后台权限管理系统

+

+ + vue + + + element plus + + + vite + + + license + +

+

 

+
+ +#### 🌈 介绍 + +基于 vue3.x + CompositionAPI setup 语法糖 + typescript + vite + element plus + vue-router-next + pinia 技术,内置支持一键生成微服务接口,适配手机、平板、pc 的后台权限管理框架,希望减少工作量,帮助大家实现快速开发。 + +#### ⛱️ 线上预览 + +- vue3.x 版本预览(admin.ui.plus)https://admin.zhontai.net + +#### 💒 代码仓库 + +- vue3.x 版本 zhontai.ui.admin.vue3 + +#### 🚧 安装 pnpm + +- 复制代码(桌面 cmd 运行) `npm install -g pnpm --registry=https://registry.npmmirror.com` + +#### 🏭 环境支持 + +| Edge | Firefox | Chrome | Safari | +| --------- | ------------ | ----------- | ----------- | +| Edge ≥ 88 | Firefox ≥ 78 | Chrome ≥ 87 | Safari ≥ 13 | + +> 由于 Vue3 不再支持 IE11,故而 ElementPlus 也不支持 IE11 及之前版本。 + +#### ⚡ 使用说明 + +建议使用 pnpm,因为 yarn 有时会报错。node 版本 > 14.18+/16+ + +> Vite 不再支持 Node 12 / 13 / 15,因为上述版本已经进入了 EOL 阶段。现在你必须使用 Node 14.18+ / 16+ 版本。 + +```bash +# 克隆项目 +git clone https://github.com/zhontai/Admin.Core.git + +# 进入项目 +cd ui\zhontai.ui.admin.vue3 + +# 安装依赖 +pnpm install + +# 运行项目 +pnpm run dev + +# 打包发布 +pnpm run build +``` + +#### 📚 开发文档 + +- 查看开发文档:https://zhontai.net + +#### 💯 学习交流加 QQ 群 + +> 中台 admin 开发群(2000 人群)。 + +- QQ 群号:1058693879 + + + NPP 开发群 + + +#### 💕 特别感谢 + +- vue-next-admin + +#### ❤️ 鸣谢列表 + +- vue +- vue-next +- element-ui +- element-plus +- vue-router-next +- pinia +- echarts +- axios +- clipboard +- countUp +- mitt +- nprogress +- screenfull +- sortablejs +- sass +- typescript +- vite +- wangeditor +- cropperjs +- qrcodejs +- print-js +- vue-grid-layout +- splitpanes +- jsplumb +- js-table2excel + +#### 💌 支持作者 + +如果觉得框架不错,或者已经在使用了,希望你可以去 Github 或者 +Gitee 帮我点个 ⭐ Star,这将是对我极大的鼓励与支持。 diff --git a/bin/build.bat b/bin/build.bat new file mode 100644 index 0000000..36d353c --- /dev/null +++ b/bin/build.bat @@ -0,0 +1,12 @@ +@echo off +echo. +echo 发布网站,生成dist文件 +echo. + +%~d0 +cd %~dp0 + +cd .. +pnpm run build + +pause \ No newline at end of file diff --git a/bin/install.bat b/bin/install.bat new file mode 100644 index 0000000..95bd4c3 --- /dev/null +++ b/bin/install.bat @@ -0,0 +1,12 @@ +@echo off +echo. +echo 安装包,生成node_modules文件 +echo. + +%~d0 +cd %~dp0 + +cd .. +pnpm install --registry=https://registry.npmmirror.com + +pause \ No newline at end of file diff --git a/bin/run-web.bat b/bin/run-web.bat new file mode 100644 index 0000000..49199f0 --- /dev/null +++ b/bin/run-web.bat @@ -0,0 +1,12 @@ +@echo off +echo. +echo 运行网站 +echo. + +%~d0 +cd %~dp0 + +cd .. +pnpm run dev + +pause \ No newline at end of file diff --git a/gen/gen-api.js b/gen/gen-api.js new file mode 100644 index 0000000..17b78cd --- /dev/null +++ b/gen/gen-api.js @@ -0,0 +1,56 @@ +import axios from 'axios' +import ejs from 'ejs' +import fs from 'node:fs' +import path from 'node:path' +import { generateApi } from 'swagger-typescript-api' + +const projectPath = process.cwd() +const apiUrl = 'http://localhost:16010' + +const apis = [ + { + output: path.resolve(projectPath, './src/api/admin'), + url: `${apiUrl}/doc/admin/swagger/admin/swagger.json`, + enumUrl: `${apiUrl}/api/admin/get-enums`, + }, + // { + // output: path.resolve(projectPath, './src/api/app'), + // url: `${apiUrl}/doc/app/swagger/app/swagger.json`, + // // enumUrl: `${apiUrl}/api/app/get-enums`, + // }, +] + +const genEnums = async (api) => { + console.log(`✨ try to get enums by URL "${api.enumUrl}"`) + console.log(`⭐ start generating your typescript api`) + const res = await axios.get(api.enumUrl).catch((error) => { + console.error(error) + }) + + if (res?.data?.data?.length > 0) { + ejs.renderFile(path.resolve(projectPath, './gen/templates/enum-contracts.ejs'), res.data, {}, function (err, content) { + fs.writeFile(path.resolve(api.output + '/enum-contracts.ts'), content, (err) => {}) + console.log(`✅ api file "enum-contracts.ts" created in ${api.output}\n`) + }) + } +} + +apis?.forEach(async (api) => { + if (api.enumUrl) { + await genEnums(api) + } + + await generateApi({ + output: api.output, + templates: path.resolve(projectPath, './gen/templates'), + url: api.url, + httpClientType: 'axios', + modular: true, + cleanOutput: false, + moduleNameIndex: 2, // 0 api, 1 api htt-client data-contracts, 2 apis htt-client data-contracts + moduleNameFirstTag: true, //apis htt-client data-contracts + unwrapResponseData: true, + generateUnionEnums: true, + defaultResponseType: 'AxiosResponse', + }).catch((error) => console.error(error)) +}) diff --git a/gen/gen-templates.js b/gen/gen-templates.js new file mode 100644 index 0000000..fb01e21 --- /dev/null +++ b/gen/gen-templates.js @@ -0,0 +1,12 @@ +import path from 'node:path' +import { generateTemplates } from 'swagger-typescript-api' + +//导出swagger-typescript-api内置模板 +generateTemplates({ + cleanOutput: false, + output: path.resolve(process.cwd(), './gen/templates'), + httpClientType: 'axios', + modular: true, + silent: false, + rewrite: false, +}) diff --git a/gen/templates/api.ejs b/gen/templates/api.ejs new file mode 100644 index 0000000..357b3c2 --- /dev/null +++ b/gen/templates/api.ejs @@ -0,0 +1,28 @@ +<% +const { utils, route, config, modelTypes } = it; +const { _, pascalCase, require } = utils; +const apiClassName = pascalCase(route.moduleName); +const routes = route.routes; +const dataContracts = _.map(modelTypes, "name"); +%> + +<% if (config.httpClientType === config.constants.HTTP_CLIENT.AXIOS) { %> import { AxiosRequestConfig, AxiosResponse } from "axios"; <% } %> + +import { HttpClient, RequestParams, ContentType, HttpResponse } from "./<%~ config.fileNames.httpClient %>"; +<% if (dataContracts.length) { %> +import { <%~ dataContracts.join(", ") %> } from "./<%~ config.fileNames.dataContracts %>" +<% } %> + +export class <%= apiClassName %>Api<% if (!config.singleHttpClient) { %> extends HttpClient <% } %> { +<% if(config.singleHttpClient) { %> + http: HttpClient; + + constructor (http: HttpClient) { + this.http = http; + } +<% } %> + + <% routes.forEach((route) => { %> + <%~ includeFile('./procedure-call.ejs', { ...it, route }) %> + <% }) %> +} diff --git a/gen/templates/data-contract-jsdoc.ejs b/gen/templates/data-contract-jsdoc.ejs new file mode 100644 index 0000000..cd3c3de --- /dev/null +++ b/gen/templates/data-contract-jsdoc.ejs @@ -0,0 +1,37 @@ +<% +const { data, utils } = it; +const { formatDescription, require, _ } = utils; + +const stringify = (value) => _.isObject(value) ? JSON.stringify(value) : _.isString(value) ? `"${value}"` : value + +const jsDocLines = _.compact([ + data.title, + data.description && formatDescription(data.description), + !_.isUndefined(data.deprecated) && data.deprecated && '@deprecated', + !_.isUndefined(data.format) && `@format ${data.format}`, + !_.isUndefined(data.minimum) && `@min ${data.minimum}`, + !_.isUndefined(data.multipleOf) && `@multipleOf ${data.multipleOf}`, + !_.isUndefined(data.exclusiveMinimum) && `@exclusiveMin ${data.exclusiveMinimum}`, + !_.isUndefined(data.maximum) && `@max ${data.maximum}`, + !_.isUndefined(data.minLength) && `@minLength ${data.minLength}`, + !_.isUndefined(data.maxLength) && `@maxLength ${data.maxLength}`, + !_.isUndefined(data.exclusiveMaximum) && `@exclusiveMax ${data.exclusiveMaximum}`, + !_.isUndefined(data.maxItems) && `@maxItems ${data.maxItems}`, + !_.isUndefined(data.minItems) && `@minItems ${data.minItems}`, + !_.isUndefined(data.uniqueItems) && `@uniqueItems ${data.uniqueItems}`, + !_.isUndefined(data.default) && `@default ${stringify(data.default)}`, + !_.isUndefined(data.pattern) && `@pattern ${data.pattern}`, + !_.isUndefined(data.example) && `@example ${stringify(data.example)}` +]).join('\n').split('\n'); +%> +<% if (jsDocLines.every(_.isEmpty)) { %> +<% } else if (jsDocLines.length === 1) { %> +/** <%~ jsDocLines[0] %> */ +<% } else if (jsDocLines.length) { %> +/** +<% for (jsDocLine of jsDocLines) { %> + * <%~ jsDocLine %> + +<% } %> + */ +<% } %> diff --git a/gen/templates/data-contracts.ejs b/gen/templates/data-contracts.ejs new file mode 100644 index 0000000..bb54793 --- /dev/null +++ b/gen/templates/data-contracts.ejs @@ -0,0 +1,28 @@ +<% +const { modelTypes, utils, config } = it; +const { formatDescription, require, _, Ts } = utils; + + +const dataContractTemplates = { + enum: (contract) => { + return `enum ${contract.name} {\r\n${contract.content} \r\n }`; + }, + interface: (contract) => { + return `interface ${contract.name} {\r\n${contract.content}}`; + }, + type: (contract) => { + return `type ${contract.name} = ${contract.content}`; + }, +} +%> + +<% if (config.internalTemplateOptions.addUtilRequiredKeysType) { %> +type <%~ config.Ts.CodeGenKeyword.UtilRequiredKeys %> = Omit & Required> +<% } %> + +<% modelTypes.forEach((contract) => { %> + <%~ includeFile('./data-contract-jsdoc.ejs', { ...it, data: { ...contract, ...contract.typeData } }) %> + export <%~ (dataContractTemplates[contract.typeIdentifier] || dataContractTemplates.type)(contract) %> + + +<% }) %> diff --git a/gen/templates/enum-contracts.ejs b/gen/templates/enum-contracts.ejs new file mode 100644 index 0000000..ad243e9 --- /dev/null +++ b/gen/templates/enum-contracts.ejs @@ -0,0 +1,6 @@ +<% data.forEach((enumType) => { %>/** <%= enumType.desc %> */ +export const <%= enumType.name %> = {<% enumType.options.forEach((option) => { %> + <%= option.name %>: { name: '<%= option.name %>', value: <%= option.value %>, desc: '<%= option.desc %>' },<% }) %> +} + +<% }) %> \ No newline at end of file diff --git a/gen/templates/enum-data-contract.ejs b/gen/templates/enum-data-contract.ejs new file mode 100644 index 0000000..5610746 --- /dev/null +++ b/gen/templates/enum-data-contract.ejs @@ -0,0 +1,12 @@ +<% +const { contract, utils, config } = it; +const { formatDescription, require, _ } = utils; +const { name, $content } = contract; +%> +<% if (config.generateUnionEnums) { %> + export type <%~ name %> = <%~ _.map($content, ({ value }) => value).join(" | ") %> +<% } else { %> + export enum <%~ name %> { + <%~ _.map($content, ({ key, value }) => `${key} = ${value}`).join(",\n") %> + } +<% } %> diff --git a/gen/templates/http-client.ejs b/gen/templates/http-client.ejs new file mode 100644 index 0000000..4f4609a --- /dev/null +++ b/gen/templates/http-client.ejs @@ -0,0 +1,465 @@ +<% +const { apiConfig, generateResponses, config } = it; +%> + +import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, HeadersDefaults, ResponseType, RawAxiosRequestHeaders } from 'axios' +import { ElLoading, ElMessage, LoadingOptions } from 'element-plus' +import { useUserInfo } from '/@/stores/userInfo' + +export type QueryParamsType = Record; + +export interface FullRequestParams extends Omit { + /** set parameter to `true` for call `securityWorker` for this request */ + secure?: boolean; + /** request path */ + path: string; + /** content type of request body */ + type?: ContentType; + /** query params */ + query?: QueryParamsType; + /** format of response (i.e. response.json() -> format: "json") */ + format?: ResponseType; + /** request body */ + body?: unknown; + /** 显示错误消息 */ + showErrorMessage?: boolean + /** 显示成功消息 */ + showSuccessMessage?: boolean + /** 登录访问 */ + login?: boolean + /** 加载中 */ + loading?: boolean + /** 加载中选项 */ + loadingOptions?: LoadingOptions + /** 取消重复请求 */ + cancelRepeatRequest?: boolean + /** 返回整个响应对象 */ + returnResponse?: boolean +} + +export type RequestParams = Omit; + +export interface ApiConfig extends Omit { + securityWorker?: (securityData: SecurityDataType | null) => Promise | AxiosRequestConfig | void; + secure?: boolean; + format?: ResponseType; +} + +export enum ContentType { + Json = "application/json", + FormData = "multipart/form-data", + UrlEncoded = "application/x-www-form-urlencoded", + Text = "text/plain", +} + +export interface LoadingInstance { + target: any + count: number +} + +const pendingMap = new Map() + +const loadingInstance: LoadingInstance = { + target: null, + count: 0, +} + +export class HttpClient { + public instance: AxiosInstance; + private securityData: SecurityDataType | null = null; + private securityWorker?: ApiConfig["securityWorker"]; + private secure?: boolean; + private format?: ResponseType; + + constructor({ securityWorker, secure, format, ...axiosConfig }: ApiConfig = {}) { + this.instance = axios.create({ ...axiosConfig, timeout: 60000, baseURL: axiosConfig.baseURL || import.meta.env.VITE_API_URL }) + this.secure = secure; + this.format = format; + this.securityWorker = securityWorker; + } + + public setSecurityData = (data: SecurityDataType | null) => { + this.securityData = data + } + + protected mergeRequestParams(params1: AxiosRequestConfig, params2?: AxiosRequestConfig): AxiosRequestConfig { + const method = params1.method || (params2 && params2.method) + + return { + ...this.instance.defaults, + ...params1, + ...(params2 || {}), + headers: { + ...((method && this.instance.defaults.headers[method.toLowerCase() as keyof HeadersDefaults]) || {}), + ...(params1.headers || {}), + ...((params2 && params2.headers) || {}), + } as RawAxiosRequestHeaders, + }; + } + + protected stringifyFormItem(formItem: unknown) { + if (typeof formItem === "object" && formItem !== null) { + return JSON.stringify(formItem); + } else { + return `${formItem}`; + } + } + + protected createFormData(input: Record): FormData { + return Object.keys(input || {}).reduce((formData, key) => { + const property = input[key]; + const propertyContent: any[] = (property instanceof Array) ? property : [property] + + for (const formItem of propertyContent) { + const isFileType = formItem instanceof Blob || formItem instanceof File; + formData.append( + key, + isFileType ? formItem : this.stringifyFormItem(formItem) + ); + } + + return formData; + }, new FormData()); + } + + /** + * 错误处理 + * @param {*} error + */ + protected errorHandle(error: any) { + if (!error) { + return + } + if (axios.isCancel(error)) return console.error('请求重复已被自动取消:' + error.message) + let message = '' + if (error.response) { + switch (error.response.status) { + case 302: + message = '接口重定向' + break + case 400: + message = '参数不正确' + break + case 401: + message = '您还没有登录' + break + case 403: + message = '您没有权限操作' + break + case 404: + message = '请求地址出错:' + error.response.config.url + break + case 408: + message = '请求超时' + break + case 409: + message = '系统已存在相同数据' + break + case 429: + message = '访问过于频繁' + break + case 500: + message = '服务器内部错误' + break + case 501: + message = '服务未实现' + break + case 502: + message = '网关错误' + break + case 503: + message = '服务不可用' + break + case 504: + message = '服务暂时无法访问,请稍后再试' + break + case 505: + message = 'HTTP版本不受支持' + break + default: + message = '异常问题,请联系网站管理员' + break + } + } + if (error.message.includes('timeout')) message = '请求超时' + if (error.message.includes('Network')) message = window.navigator.onLine ? '服务端异常' : '您已断网' + + if (message) { + ElMessage.error({ message, grouping: true }) + } + } + + /** + * 刷新token接口 + * @param string refreshToken + */ + protected async refreshApi(refreshToken: string) { + return this.request({ + path: `/api/admin/auth/refresh`, + method: 'GET', + secure: true, + format: 'json', + login: false, + query: { + token: refreshToken, + }, + }) + } + + /** + * 刷新token + * @param {*} config + */ + protected async refreshToken(config: any) { + const storesUseUserInfo = useUserInfo() + const token = storesUseUserInfo.getToken() + if (!token) { + storesUseUserInfo.clear() + return Promise.reject(config) + } + + if (window.tokenRefreshing) { + window.requests = window.requests ? window.requests : [] + return new Promise((resolve) => { + window.requests.push(() => { + resolve(this.instance(config)) + }) + }) + } + + window.tokenRefreshing = true + + return this.refreshApi(token) + .then((res) => { + if (res?.success) { + storesUseUserInfo.setTokenInfo(res.data) + if (window.requests?.length > 0) { + window.requests.forEach((apiRequest) => apiRequest()) + window.requests = [] + } + return this.instance(config) + } else { + storesUseUserInfo.clear() + return Promise.reject(res) + } + }) + .catch((error) => { + storesUseUserInfo.clear() + return Promise.reject(error) + }) + .finally(() => { + window.tokenRefreshing = false + }) + } + + /** + * 储存每个请求的唯一cancel回调, 以此为标识 + */ + protected addPending(config: AxiosRequestConfig) { + const pendingKey = this.getPendingKey(config) + config.cancelToken = + config.cancelToken || + new axios.CancelToken((cancel) => { + if (!pendingMap.has(pendingKey)) { + pendingMap.set(pendingKey, cancel) + } + }) + } + + /** + * 删除重复的请求 + */ + protected removePending(config: AxiosRequestConfig) { + const pendingKey = this.getPendingKey(config) + if (pendingMap.has(pendingKey)) { + const cancelToken = pendingMap.get(pendingKey) + cancelToken(pendingKey) + pendingMap.delete(pendingKey) + } + } + + /** + * 生成每个请求的唯一key + */ + protected getPendingKey(config: AxiosRequestConfig) { + let { data, headers } = config + headers = headers as RawAxiosRequestHeaders + const { url, method, params } = config + if (typeof data === 'string') data = JSON.parse(data) + return [url, method, headers && headers.Authorization ? headers.Authorization : '', JSON.stringify(params), JSON.stringify(data)].join('&') + } + + /** + * 关闭Loading层实例 + */ + protected closeLoading(loading: boolean = false) { + if (loading && loadingInstance.count > 0) loadingInstance.count-- + if (loadingInstance.count === 0) { + loadingInstance.target.close() + loadingInstance.target = null + } + } + + public request = async ({ + secure, + path, + type, + query, + format, + body, + showErrorMessage = true, + showSuccessMessage = false, + login = true, + loading = false, + loadingOptions = { + background: 'rgba(0,0,0,0.5)', + }, + cancelRepeatRequest = false, + returnResponse = false, + ...params +<% if (config.unwrapResponseData) { %> + }: FullRequestParams): Promise => { +<% } else { %> + }: FullRequestParams): Promise> => { +<% } %> + const secureParams = ((typeof secure === 'boolean' ? secure : this.secure) && this.securityWorker && (await this.securityWorker(this.securityData))) || {}; + const requestParams = this.mergeRequestParams(params, secureParams); + const responseFormat = (format || this.format) || undefined; + + if (type === ContentType.FormData && body && body !== null && typeof body === "object") { + body = this.createFormData(body as Record); + } + + if (type === ContentType.Text && body && body !== null && typeof body !== "string") { + body = JSON.stringify(body); + } + + // 请求拦截 + this.instance.interceptors.request.use( + async (config) => { + this.removePending(config) + cancelRepeatRequest && this.addPending(config) + + if (loading) { + loadingInstance.count++ + if (loadingInstance.count === 1) { + loadingInstance.target = ElLoading.service(loadingOptions) + } + } + + const storesUseUserInfo = useUserInfo() + const tokenInfo = storesUseUserInfo.getTokenInfo() + + if (tokenInfo && tokenInfo.accessToken) { + // 判断 accessToken 是否快失效 + const now = new Date().getTime() + const expiresAt = new Date(tokenInfo.accessTokenExpiresAt).getTime() + const maxThreshold = tokenInfo.accessTokenLifeTime * 0.5 + // 确保阈值不超过 5 分钟且不超过 accessTokenLifeTime 的一半 + const threshold = Math.min(5 * 60 * 1000, maxThreshold) + if (expiresAt - now < threshold) { + //加锁 + if (!window.tokenRefreshing) { + window.tokenRefreshing = true + try { + const res = await this.refreshApi(tokenInfo.accessToken) + if (res?.success) { + storesUseUserInfo.setTokenInfo(res.data) + //处理等待队列中的请求 + if (window.requests?.length > 0) { + window.requests.forEach((apiRequest) => apiRequest()) + window.requests = [] + } + } else { + storesUseUserInfo.clear() + return Promise.reject(res) + } + } catch (error) { + // 清空等待队列 + window.requests = [] + return Promise.reject(error) + } finally { + // 解锁 + window.tokenRefreshing = false + } + } else { + // 如果正在刷新,则将当前请求加入等待队列 + if (config.url !== '/api/admin/auth/refresh') { + window.requests = window.requests ? window.requests : [] + return new Promise((resolve) => { + window.requests.push(() => { + resolve(this.instance(config)) + }) + }) + } + } + } + } + + const accessToken = storesUseUserInfo.getToken() + config.headers!['Authorization'] = `Bearer ${accessToken}` + return config + }, + (error) => { + return Promise.reject(error) + } + ) + // 响应拦截 + this.instance.interceptors.response.use( + (res) => { + this.removePending(res.config) + loading && this.closeLoading(loading) + + if (res.config?.responseType == 'blob') { + return res + } + + const data = res.data + if (data.success) { + if (showSuccessMessage) { + ElMessage.success({ message: data.msg ? data.msg : '操作成功', grouping: true }) + } + } else { + if (showErrorMessage) { + ElMessage.error({ message: data.msg ? data.msg : '操作失败', grouping: true }) + } + // return Promise.reject(res) + } + + return res + }, + async (error) => { + error.config && this.removePending(error.config) + loading && this.closeLoading(loading) + + //刷新token + if (login && error?.response?.status === 401) { + return this.refreshToken(error.config) + } + + //错误处理 + if (showErrorMessage) { + this.errorHandle(error) + } + + return Promise.reject(error) + } + ) + + return this.instance.request({ + ...requestParams, + headers: { + ...(requestParams.headers || {}), + ...(type && type !== ContentType.FormData ? { "Content-Type": type } : {}), + } as RawAxiosRequestHeaders, + params: query, + responseType: responseFormat, + data: body, + url: path, +<% if (config.unwrapResponseData) { %> + }).then(response => returnResponse ? response : response.data); +<% } else { %> + }); +<% } %> + }; +} diff --git a/gen/templates/interface-data-contract.ejs b/gen/templates/interface-data-contract.ejs new file mode 100644 index 0000000..cd20803 --- /dev/null +++ b/gen/templates/interface-data-contract.ejs @@ -0,0 +1,10 @@ +<% +const { contract, utils } = it; +const { formatDescription, require, _ } = utils; +%> +export interface <%~ contract.name %> { + <% _.forEach(contract.$content, (field) => { %> + <%~ includeFile('./object-field-jsdoc.ejs', { ...it, field }) %> + <%~ field.name %><%~ field.isRequired ? '' : '?' %>: <%~ field.value %><%~ field.isNullable ? ' | null' : ''%>; + <% }) %> +} diff --git a/gen/templates/object-field-jsdoc.ejs b/gen/templates/object-field-jsdoc.ejs new file mode 100644 index 0000000..ec39314 --- /dev/null +++ b/gen/templates/object-field-jsdoc.ejs @@ -0,0 +1,28 @@ +<% +const { field, utils } = it; +const { formatDescription, require, _ } = utils; + +const comments = _.uniq( + _.compact([ + field.title, + field.description, + field.deprecated && ` * @deprecated`, + !_.isUndefined(field.format) && `@format ${field.format}`, + !_.isUndefined(field.minimum) && `@min ${field.minimum}`, + !_.isUndefined(field.maximum) && `@max ${field.maximum}`, + !_.isUndefined(field.pattern) && `@pattern ${field.pattern}`, + !_.isUndefined(field.example) && + `@example ${_.isObject(field.example) ? JSON.stringify(field.example) : field.example}`, + ]).reduce((acc, comment) => [...acc, ...comment.split(/\n/g)], []), +); +%> +<% if (comments.length === 1) { %> + /** <%~ comments[0] %> */ +<% } else if (comments.length) { %> + /** + <% comments.forEach(comment => { %> + * <%~ comment %> + + <% }) %> + */ +<% } %> diff --git a/gen/templates/procedure-call.ejs b/gen/templates/procedure-call.ejs new file mode 100644 index 0000000..1e05b85 --- /dev/null +++ b/gen/templates/procedure-call.ejs @@ -0,0 +1,100 @@ +<% +const { utils, route, config } = it; +const { requestBodyInfo, responseBodyInfo, specificArgNameResolver } = route; +const { _, getInlineParseContent, getParseContent, parseSchema, getComponentByRef, require } = utils; +const { parameters, path, method, payload, query, formData, security, requestParams } = route.request; +const { type, errorType, contentTypes } = route.response; +const { HTTP_CLIENT, RESERVED_REQ_PARAMS_ARG_NAMES } = config.constants; +const routeDocs = includeFile("./route-docs", { config, route, utils }); +const queryName = (query && query.name) || "query"; +const pathParams = _.values(parameters); +const pathParamsNames = _.map(pathParams, "name"); + +const isFetchTemplate = config.httpClientType === HTTP_CLIENT.FETCH; + +const requestConfigParam = { + name: specificArgNameResolver.resolve(RESERVED_REQ_PARAMS_ARG_NAMES), + optional: true, + type: "RequestParams", + defaultValue: "{}", +} + +const argToTmpl = ({ name, optional, type, defaultValue }) => `${name}${!defaultValue && optional ? '?' : ''}: ${type}${defaultValue ? ` = ${defaultValue}` : ''}`; + +const rawWrapperArgs = config.extractRequestParams ? + _.compact([ + requestParams && { + name: pathParams.length ? `{ ${_.join(pathParamsNames, ", ")}, ...${queryName} }` : queryName, + optional: false, + type: getInlineParseContent(requestParams), + }, + ...(!requestParams ? pathParams : []), + payload, + requestConfigParam, + ]) : + _.compact([ + ...pathParams, + query, + payload, + requestConfigParam, + ]) + +const wrapperArgs = _ + // Sort by optionality + .sortBy(rawWrapperArgs, [o => o.optional]) + .map(argToTmpl) + .join(', ') + +// RequestParams["type"] +const requestContentKind = { + "JSON": "ContentType.Json", + "URL_ENCODED": "ContentType.UrlEncoded", + "FORM_DATA": "ContentType.FormData", + "TEXT": "ContentType.Text", +} +// RequestParams["format"] +const responseContentKind = { + "JSON": '"json"', + "IMAGE": '"blob"', + "FORM_DATA": isFetchTemplate ? '"formData"' : '"document"' +} + +const bodyTmpl = _.get(payload, "name") || null; +const queryTmpl = (query != null && queryName) || null; +const bodyContentKindTmpl = requestContentKind[requestBodyInfo.contentKind] || null; +const responseFormatTmpl = responseContentKind[responseBodyInfo.success && responseBodyInfo.success.schema && responseBodyInfo.success.schema.contentKind] || null; +const securityTmpl = security ? 'true' : null; + +const describeReturnType = () => { + if (!config.toJS) return ""; + + switch(config.httpClientType) { + case HTTP_CLIENT.AXIOS: { + return `Promise>` + } + default: { + return `Promise` + } + } +} + +%> +/** +<%~ routeDocs.description %> + + *<% /* Here you can add some other JSDoc tags */ %> + +<%~ routeDocs.lines %> + + */ +<%~ route.routeName.usage %> = (<%~ wrapperArgs %>)<%~ config.toJS ? `: ${describeReturnType()}` : "" %> => + <%~ config.singleHttpClient ? 'this.http.request' : 'this.request' %><<%~ type %>, <%~ errorType %>>({ + path: `<%~ path %>`, + method: '<%~ _.upperCase(method) %>', + <%~ queryTmpl ? `query: ${queryTmpl},` : '' %> + <%~ bodyTmpl ? `body: ${bodyTmpl},` : '' %> + <%~ securityTmpl ? `secure: ${securityTmpl},` : '' %> + <%~ bodyContentKindTmpl ? `type: ${bodyContentKindTmpl},` : '' %> + <%~ responseFormatTmpl ? `format: ${responseFormatTmpl},` : '' %> + ...<%~ _.get(requestConfigParam, "name") %>, + }) diff --git a/gen/templates/route-docs.ejs b/gen/templates/route-docs.ejs new file mode 100644 index 0000000..3de625a --- /dev/null +++ b/gen/templates/route-docs.ejs @@ -0,0 +1,30 @@ +<% +const { config, route, utils } = it; +const { _, formatDescription, fmtToJSDocLine, pascalCase, require } = utils; +const { raw, request, routeName } = route; + +const jsDocDescription = raw.description ? + ` * @description ${formatDescription(raw.description, true)}` : + fmtToJSDocLine('No description', { eol: false }); +const jsDocLines = _.compact([ + _.size(raw.tags) && ` * @tags ${raw.tags.join(", ")}`, + ` * @name ${pascalCase(routeName.usage)}`, + raw.summary && ` * @summary ${raw.summary}`, + ` * @request ${_.upperCase(request.method)}:${raw.route}`, + raw.deprecated && ` * @deprecated`, + routeName.duplicate && ` * @originalName ${routeName.original}`, + routeName.duplicate && ` * @duplicate`, + request.security && ` * @secure`, + ...(config.generateResponses && raw.responsesTypes.length + ? raw.responsesTypes.map( + ({ type, status, description, isSuccess }) => + ` * @response \`${status}\` \`${_.replace(_.replace(type, /\/\*/g, "\\*"), /\*\//g, "*\\")}\` ${description}`, + ) + : []), +]).map(str => str.trimEnd()).join("\n"); + +return { + description: jsDocDescription, + lines: jsDocLines, +} +%> diff --git a/gen/templates/route-name.ejs b/gen/templates/route-name.ejs new file mode 100644 index 0000000..d343e9d --- /dev/null +++ b/gen/templates/route-name.ejs @@ -0,0 +1,27 @@ +<% +const { routeInfo, utils } = it; +const { + operationId, + method, + route, + moduleName, + responsesTypes, + description, + tags, + summary, + pathArgs, +} = routeInfo; +const { _, fmtToJSDocLine, require } = utils; + +const createCustomOperationId = (method, route, moduleName) => { + const hasPathInserts = /\{(\w){1,}\}/g.test(route); + const splitedRouteBySlash = _.compact(_.replace(route, /\{(\w){1,}\}/g, "").split("/")); + const routeParts = (splitedRouteBySlash.length > 1 + ? [splitedRouteBySlash[splitedRouteBySlash.length-1]] + : splitedRouteBySlash + ).join("_"); + return _.camelCase(_.lowerCase(routeParts)); +}; + +return createCustomOperationId(method, route, moduleName); +%> \ No newline at end of file diff --git a/gen/templates/route-type.ejs b/gen/templates/route-type.ejs new file mode 100644 index 0000000..e174397 --- /dev/null +++ b/gen/templates/route-type.ejs @@ -0,0 +1,22 @@ +<% +const { route, utils, config } = it; +const { _, pascalCase, require } = utils; +const { query, payload, pathParams, headers } = route.request; + +const routeDocs = includeFile("./route-docs", { config, route, utils }); +const routeNamespace = pascalCase(route.routeName.usage); + +%> +/** +<%~ routeDocs.description %> + +<%~ routeDocs.lines %> + +*/ +export namespace <%~ routeNamespace %> { + export type RequestParams = <%~ (pathParams && pathParams.type) || '{}' %>; + export type RequestQuery = <%~ (query && query.type) || '{}' %>; + export type RequestBody = <%~ (payload && payload.type) || 'never' %>; + export type RequestHeaders = <%~ (headers && headers.type) || '{}' %>; + export type ResponseBody = <%~ route.response.type %>; +} \ No newline at end of file diff --git a/gen/templates/route-types.ejs b/gen/templates/route-types.ejs new file mode 100644 index 0000000..70d07a4 --- /dev/null +++ b/gen/templates/route-types.ejs @@ -0,0 +1,18 @@ +<% +const { utils, config, route, modelTypes } = it; +const { _, pascalCase } = utils; +const { routes, moduleName } = route; +const dataContracts = config.modular ? _.map(modelTypes, "name") : []; + +%> +<% if (dataContracts.length) { %> +import { <%~ dataContracts.join(", ") %> } from "./<%~ config.fileNames.dataContracts %>" +<% } %> + +export namespace <%~ pascalCase(moduleName) %> { + <% _.forEach(routes, (route) => { %> + + <%~ includeFile('./route-type.ejs', { ...it, route }) %> + + <% }) %> +} diff --git a/gen/templates/type-data-contract.ejs b/gen/templates/type-data-contract.ejs new file mode 100644 index 0000000..af88e01 --- /dev/null +++ b/gen/templates/type-data-contract.ejs @@ -0,0 +1,15 @@ +<% +const { contract, utils } = it; +const { formatDescription, require, _ } = utils; + +%> +<% if (contract.$content.length) { %> +export type <%~ contract.name %> = { + <% _.forEach(contract.$content, (field) => { %> + <%~ includeFile('./object-field-jsdoc.ejs', { ...it, field }) %> + <%~ field.field %>; + <% }) %> +}<%~ utils.isNeedToAddNull(contract) ? ' | null' : ''%> +<% } else { %> +export type <%~ contract.name %> = Record; +<% } %> diff --git a/index.html b/index.html new file mode 100644 index 0000000..cd04312 --- /dev/null +++ b/index.html @@ -0,0 +1,27 @@ + + + + + + + + + + NPP + + + +
+ + + + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..cbbfd90 --- /dev/null +++ b/package.json @@ -0,0 +1,98 @@ +{ + "name": "zhontai.ui.admin.vue3", + "version": "9.1.1", + "description": "vue3 vite admin plus", + "author": "", + "license": "MIT", + "type": "module", + "scripts": { + "dev": "vite --force", + "build": "vite build", + "lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/", + "format": "npx prettier --write .", + "install:pkg": "pnpm install", + "gen:api": "node ./gen/gen-api" + }, + "dependencies": { + "@azure/msal-browser": "^4.12.0", + "@element-plus/icons-vue": "^2.3.1", + "@wangeditor/editor": "^5.1.23", + "@wangeditor/editor-for-vue": "^5.1.12", + "axios": "^1.9.0", + "countup.js": "^2.8.2", + "cropperjs": "^2.0.0", + "dayjs": "^1.11.13", + "echarts": "^5.6.0", + "echarts-gl": "^2.0.9", + "echarts-wordcloud": "^2.1.0", + "element-plus": "2.9.11", + "js-cookie": "^3.0.5", + "js-table2excel": "^1.1.2", + "jsoneditor": "^10.2.0", + "jsplumb": "^2.15.6", + "lodash-es": "^4.17.21", + "mitt": "^3.0.1", + "nprogress": "^0.2.0", + "pinia": "^3.0.2", + "print-js": "^1.6.0", + "qrcodejs2-fixes": "^0.0.2", + "qs": "^6.14.0", + "screenfull": "^6.0.2", + "sm-crypto-v2": "^1.11.0", + "sortablejs": "^1.15.6", + "splitpanes": "^4.0.4", + "vue": "3.5.14", + "vue-clipboard3": "^2.0.0", + "vue-demi": "^0.14.10", + "vue-grid-layout": "^3.0.0-beta1", + "vue-i18n": "^11.1.3", + "vue-plugin-hiprint": "^0.0.60", + "vue-router": "^4.5.1", + "vue3-tree-org": "^4.2.2" + }, + "devDependencies": { + "@types/lodash-es": "^4.17.12", + "@types/node": "^22.15.21", + "@types/nprogress": "^0.2.3", + "@types/sortablejs": "^1.15.8", + "@typescript-eslint/eslint-plugin": "^8.32.1", + "@typescript-eslint/parser": "^8.32.1", + "@vitejs/plugin-vue": "^5.2.4", + "@vue/compiler-sfc": "^3.5.14", + "dotenv": "16.5.0", + "ejs": "^3.1.10", + "eslint": "^9.27.0", + "eslint-plugin-vue": "^10.1.0", + "prettier": "^3.5.3", + "sass": "^1.89.0", + "swagger-typescript-api": "13.0.28", + "typescript": "^5.8.3", + "vite": "^6.3.5", + "vite-plugin-compression": "0.5.1", + "vite-plugin-svg-icons": "^2.0.1", + "vite-plugin-vue-setup-extend": "^0.4.0", + "vue-eslint-parser": "^10.1.3" + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not dead" + ], + "bugs": { + "url": "https://github.com/zhontai/admin.ui.plus/issues" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">= 7.0.0" + }, + "keywords": [ + "vue3", + "element-plus", + "zhontai", + "admin" + ], + "repository": { + "type": "git", + "url": "https://github.com/zhontai/admin.ui.plus/git" + } +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..8e6593a Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/print-lock.css b/public/print-lock.css new file mode 100644 index 0000000..3128ca4 --- /dev/null +++ b/public/print-lock.css @@ -0,0 +1,356 @@ +@media print { + body { + margin: 0px; + padding: 0px; + } +} + +@page { + margin: 0; +} + +.hiprint-printPaper * { + box-sizing: border-box; + -moz-box-sizing: border-box; /* Firefox */ + -webkit-box-sizing: border-box; /* Safari */ +} + +.hiprint-printPaper *:focus { + outline: -webkit-focus-ring-color auto 0px; +} + +.hiprint-printPaper { + position: relative; + padding: 0 0 0 0; + page-break-after: always; + -webkit-user-select: none; /* Chrome/Safari/Opera */ + -moz-user-select: none; /* Firefox */ + user-select: none; + overflow-x: hidden; + overflow: hidden; +} + +.hiprint-printPaper .hiprint-printPaper-content { + position: relative; +} + +/* 火狐浏览器打印 第一页过后 重叠问题 */ +@-moz-document url-prefix() { + .hiprint-printPaper .hiprint-printPaper-content { + position: relative; + margin-top: 20px; + top: -20px; + } +} + +.hiprint-printPaper.design { + overflow: visible; +} + +.hiprint-printTemplate .hiprint-printPanel { + page-break-after: always; +} + +.hiprint-printPaper, +hiprint-printPanel { + box-sizing: border-box; + border: 0px; +} + +.hiprint-printPanel .hiprint-printPaper:last-child { + page-break-after: avoid; +} + +.hiprint-printTemplate .hiprint-printPanel:last-child { + page-break-after: avoid; +} + +.hiprint-printPaper .hideheaderLinetarget { + border-top: 0px dashed rgb(201, 190, 190) !important; +} + +.hiprint-printPaper .hidefooterLinetarget { + border-top: 0px dashed rgb(201, 190, 190) !important; +} + +.hiprint-printPaper.design { + border: 1px dashed rgba(170, 170, 170, 0.7); +} + +.design .hiprint-printElement-table-content, +.design .hiprint-printElement-longText-content { + overflow: hidden; + box-sizing: border-box; +} + +.design .resize-panel { + box-sizing: border-box; + border: 1px dotted; +} + +.hiprint-printElement-text { + background-color: transparent; + background-repeat: repeat; + padding: 0 0 0 0; + border: 0.75pt none rgb(0, 0, 0); + direction: ltr; + font-family: 'SimSun'; + font-size: 9pt; + font-style: normal; + font-weight: normal; + padding-bottom: 0pt; + padding-left: 0pt; + padding-right: 0pt; + padding-top: 0pt; + text-align: left; + text-decoration: none; + line-height: 9.75pt; + box-sizing: border-box; + word-wrap: break-word; + word-break: break-all; +} + +.design .hiprint-printElement-text-content { + border: 1px dashed rgb(206, 188, 188); + box-sizing: border-box; +} + +.hiprint-printElement-longText { + background-color: transparent; + background-repeat: repeat; + border: 0.75pt none rgb(0, 0, 0); + direction: ltr; + font-family: 'SimSun'; + font-size: 9pt; + font-style: normal; + font-weight: normal; + padding-bottom: 0pt; + padding-left: 0pt; + padding-right: 0pt; + padding-top: 0pt; + text-align: left; + text-decoration: none; + line-height: 9.75pt; + box-sizing: border-box; + word-wrap: break-word; + word-break: break-all; + /*white-space: pre-wrap*/ +} + +.hiprint-printElement-table { + background-color: transparent; + background-repeat: repeat; + color: rgb(0, 0, 0); + border-color: rgb(0, 0, 0); + border-style: none; + direction: ltr; + font-family: 'SimSun'; + font-size: 9pt; + font-style: normal; + font-weight: normal; + padding-bottom: 0pt; + padding-left: 0pt; + padding-right: 0pt; + padding-top: 0pt; + text-align: left; + text-decoration: none; + padding: 0 0 0 0; + box-sizing: border-box; + line-height: 9.75pt; +} + +.hiprint-printElement-table thead { + background: #e8e8e8; + font-weight: 700; +} + +table.hiprint-printElement-tableTarget { + width: 100%; +} + +.hiprint-printElement-tableTarget, +.hiprint-printElement-tableTarget tr, +.hiprint-printElement-tableTarget td { + border-color: rgb(0, 0, 0); + /*border-style: none;*/ + /*border: 1px solid rgb(0, 0, 0);*/ + font-weight: normal; + direction: ltr; + padding-bottom: 0pt; + padding-left: 4pt; + padding-right: 4pt; + padding-top: 0pt; + text-decoration: none; + vertical-align: middle; + box-sizing: border-box; + word-wrap: break-word; + word-break: break-all; + /*line-height: 9.75pt; + font-size: 9pt;*/ +} + +.hiprint-printElement-tableTarget-border-all { + border: 1px solid; +} +.hiprint-printElement-tableTarget-border-none { + border: 0px solid; +} +.hiprint-printElement-tableTarget-border-lr { + border-left: 1px solid; + border-right: 1px solid; +} +.hiprint-printElement-tableTarget-border-left { + border-left: 1px solid; +} +.hiprint-printElement-tableTarget-border-right { + border-right: 1px solid; +} +.hiprint-printElement-tableTarget-border-tb { + border-top: 1px solid; + border-bottom: 1px solid; +} +.hiprint-printElement-tableTarget-border-top { + border-top: 1px solid; +} +.hiprint-printElement-tableTarget-border-bottom { + border-bottom: 1px solid; +} + +.hiprint-printElement-tableTarget-border-td-none td { + border: 0px solid; +} +.hiprint-printElement-tableTarget-border-td-all td:not(:nth-last-child(-n + 2)) { + border-right: 1px solid; +} +.hiprint-printElement-tableTarget-border-td-all td:not(last-child) { + border-right: 1px solid; +} +.hiprint-printElement-tableTarget-border-td-all td:last-child { + border-left: 1px solid; +} +.hiprint-printElement-tableTarget-border-td-all td:last-child:first-child { + border-left: none; +} + +/*.hiprint-printElement-tableTarget tr,*/ +.hiprint-printElement-tableTarget td { + height: 18pt; +} + +.hiprint-printPaper .hiprint-paperNumber { + font-size: 9pt; +} + +.design .hiprint-printElement-table-handle { + position: absolute; + height: 21pt; + width: 21pt; + background: red; + z-index: 1; +} + +.hiprint-printPaper .hiprint-paperNumber-disabled { + float: right !important; + right: 0 !important; + color: gainsboro !important; +} + +.hiprint-printElement-vline, +.hiprint-printElement-hline { + border: 0px none rgb(0, 0, 0); +} + +.hiprint-printElement-vline { + border-left: 0.75pt solid #000; + border-right: 0px none rgb(0, 0, 0) !important; + border-bottom: 0px none rgb(0, 0, 0) !important; + border-top: 0px none rgb(0, 0, 0) !important; +} + +.hiprint-printElement-hline { + border-top: 0.75pt solid #000; + border-right: 0px none rgb(0, 0, 0) !important; + border-bottom: 0px none rgb(0, 0, 0) !important; + border-left: 0px none rgb(0, 0, 0) !important; +} + +.hiprint-printElement-oval, +.hiprint-printElement-rect { + border: 0.75pt solid #000; +} + +.hiprint-text-content-middle { +} + +.hiprint-text-content-middle > div { + display: grid; + align-items: center; +} + +.hiprint-text-content-bottom { +} + +.hiprint-text-content-bottom > div { + display: grid; + align-items: flex-end; +} + +.hiprint-text-content-wrap { +} + +.hiprint-text-content-wrap .hiprint-text-content-wrap-nowrap { + white-space: nowrap; +} + +.hiprint-text-content-wrap .hiprint-text-content-wrap-clip { + white-space: nowrap; + overflow: hidden; + text-overflow: clip; +} + +.hiprint-text-content-wrap .hiprint-text-content-wrap-ellipsis { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +/*hi-grid-row */ +.hi-grid-row { + position: relative; + height: auto; + margin-right: 0; + margin-left: 0; + zoom: 1; + display: block; + box-sizing: border-box; +} + +.hi-grid-row::after, +.hi-grid-row::before { + display: table; + content: ''; + box-sizing: border-box; +} + +.hi-grid-col { + display: block; + box-sizing: border-box; + position: relative; + float: left; + flex: 0 0 auto; +} + +.table-grid-row { + margin-left: -0pt; + margin-right: -0pt; +} + +.tableGridColumnsGutterRow { + padding-left: 0pt; + padding-right: 0pt; +} + +.hiprint-gridColumnsFooter { + text-align: left; + clear: both; +} diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..fe3646f --- /dev/null +++ b/src/App.vue @@ -0,0 +1,105 @@ + + + diff --git a/src/api/admin.extend/Api.ts b/src/api/admin.extend/Api.ts new file mode 100644 index 0000000..29eaa91 --- /dev/null +++ b/src/api/admin.extend/Api.ts @@ -0,0 +1,50 @@ +/* eslint-disable */ +/* tslint:disable */ +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { HttpClient, RequestParams } from '../admin/http-client' + +export class ApiApi extends HttpClient { + /** + * No description + * + * @tags api + * @name GetList + * @summary 获得swagger resources + * @request GET:/swagger-resources + * @secure + */ + getSwaggerResources = (path: string, params: RequestParams = {}) => + this.request({ + path: path, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags api + * @name GetList + * @summary 获得swagger json + * @request GET:/swagger-resources + * @secure + */ + getSwaggerJson = (path: string, params: RequestParams = {}) => + this.request({ + path: path, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) +} diff --git a/src/api/admin.extend/enum-contracts.ts b/src/api/admin.extend/enum-contracts.ts new file mode 100644 index 0000000..9ba76ae --- /dev/null +++ b/src/api/admin.extend/enum-contracts.ts @@ -0,0 +1,32 @@ +/** 组件类型 */ +export const ComponentType = { + Account: { name: 'account', value: 1, desc: '账号' }, + AAD: { name: 'aad', value: 2, desc: 'AAD' }, + Email: { name: 'email', value: 3, desc: '邮箱' }, +} + +/** 平台类型 */ +export const PlatformType = { + Web: { name: 'web', value: 1, desc: 'Web端' }, + App: { name: 'app', value: 2, desc: 'App端' }, + CS: { name: 'cs', value: 3, desc: 'CS端' }, +} + +/** 操作符 */ +export const Operator = { + equal: { label: '等于', value: 'Equal' }, + notEqual: { label: '不等于', value: 'NotEqual' }, + contains: { label: '包含', value: 'Contains' }, + notContains: { label: '不包含', value: 'NotContains' }, + startsWith: { label: '开始以', value: 'StartsWith' }, + notStartsWith: { label: '开始不是以', value: 'NotStartsWith' }, + endsWith: { label: '结束以', value: 'EndsWith' }, + notEndsWith: { label: '结束不是以', value: 'NotEndsWith' }, + lessThan: { label: '小于', value: 'LessThan' }, + lessThanOrEqual: { label: '小于等于', value: 'LessThanOrEqual' }, + greaterThan: { label: '大于', value: 'GreaterThan' }, + greaterThanOrEqual: { label: '大于等于', value: 'GreaterThanOrEqual' }, + dateRange: { label: '时间段', value: 'dateRange' }, + any: { label: '在列表', value: 'Any' }, + notAny: { label: '不在列表', value: 'NotAny' }, +} diff --git a/src/api/admin/Api.ts b/src/api/admin/Api.ts new file mode 100644 index 0000000..4aa9309 --- /dev/null +++ b/src/api/admin/Api.ts @@ -0,0 +1,312 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + ApiAddInput, + ApiSetEnableLogInput, + ApiSetEnableParamsInput, + ApiSetEnableResultInput, + ApiSyncInput, + ApiUpdateInput, + PageInputApiGetPageInput, + ResultOutputApiGetOutput, + ResultOutputInt64, + ResultOutputListApiGetListOutput, + ResultOutputListProjectConfig, + ResultOutputPageOutputApiEntity, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class ApiApi extends HttpClient { + /** + * No description + * + * @tags api + * @name Get + * @summary 查询 + * @request GET:/api/admin/api/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/api/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags api + * @name GetList + * @summary 查询列表 + * @request GET:/api/admin/api/get-list + * @secure + */ + getList = ( + query?: { + key?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/api/get-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags api + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/api/get-page + * @secure + */ + getPage = (data: PageInputApiGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/api/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags api + * @name Add + * @summary 添加 + * @request POST:/api/admin/api/add + * @secure + */ + add = (data: ApiAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/api/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags api + * @name Update + * @summary 修改 + * @request PUT:/api/admin/api/update + * @secure + */ + update = (data: ApiUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/api/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags api + * @name SetEnableLog + * @summary 设置启用接口日志 + * @request POST:/api/admin/api/set-enable-log + * @secure + */ + setEnableLog = (data: ApiSetEnableLogInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/api/set-enable-log`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags api + * @name SetEnableParams + * @summary 设置启用请求参数 + * @request POST:/api/admin/api/set-enable-params + * @secure + */ + setEnableParams = (data: ApiSetEnableParamsInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/api/set-enable-params`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags api + * @name SetEnableResult + * @summary 设置启用响应结果 + * @request POST:/api/admin/api/set-enable-result + * @secure + */ + setEnableResult = (data: ApiSetEnableResultInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/api/set-enable-result`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags api + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/api/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/api/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags api + * @name BatchDelete + * @summary 批量彻底删除 + * @request PUT:/api/admin/api/batch-delete + * @secure + */ + batchDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/api/batch-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags api + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/api/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/api/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags api + * @name BatchSoftDelete + * @summary 批量删除 + * @request PUT:/api/admin/api/batch-soft-delete + * @secure + */ + batchSoftDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/api/batch-soft-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags api + * @name Sync + * @summary 同步 + * @request POST:/api/admin/api/sync + * @secure + */ + sync = (data: ApiSyncInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/api/sync`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags api + * @name GetProjects + * @summary 获得项目列表 + * @request GET:/api/admin/api/get-projects + * @secure + */ + getProjects = ( + query?: { + /** @default "/swagger" */ + suffix?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/api/get-projects`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) +} diff --git a/src/api/admin/Auth.ts b/src/api/admin/Auth.ts new file mode 100644 index 0000000..20489fc --- /dev/null +++ b/src/api/admin/Auth.ts @@ -0,0 +1,302 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + AuthChangePasswordByEmailInput, + AuthChangePasswordByMobileInput, + AuthEmailLoginInput, + AuthLoginInput, + AuthMobileLoginInput, + AuthRegByEmailInput, + AuthRegByMobileInput, + ResultOutputAuthGetPasswordEncryptKeyOutput, + ResultOutputAuthGetUserInfoOutput, + ResultOutputAuthGetUserPermissionsOutput, + ResultOutputAuthUserProfileOutput, + ResultOutputBoolean, + ResultOutputListAuthUserMenuOutput, + ResultOutputTokenInfo, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class AuthApi extends HttpClient { + /** + * No description + * + * @tags auth + * @name GetPasswordEncryptKey + * @summary 查询密钥 + * @request GET:/api/admin/auth/get-password-encrypt-key + * @secure + */ + getPasswordEncryptKey = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/auth/get-password-encrypt-key`, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags auth + * @name GetUserProfile + * @summary 查询用户个人信息 + * @request GET:/api/admin/auth/get-user-profile + * @secure + */ + getUserProfile = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/auth/get-user-profile`, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags auth + * @name GetUserMenus + * @summary 查询用户菜单列表 + * @request GET:/api/admin/auth/get-user-menus + * @secure + */ + getUserMenus = ( + query?: { + /** @default "web" */ + platform?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/auth/get-user-menus`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags auth + * @name GetUserPermissions + * @summary 查询用户权限列表 + * @request GET:/api/admin/auth/get-user-permissions + * @secure + */ + getUserPermissions = ( + query?: { + /** @default "web" */ + platform?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/auth/get-user-permissions`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags auth + * @name GetUserInfo + * @summary 查询用户信息 + * @request GET:/api/admin/auth/get-user-info + * @secure + */ + getUserInfo = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/auth/get-user-info`, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags auth + * @name Login + * @summary 登录 + * @request POST:/api/admin/auth/login + * @secure + */ + login = (data: AuthLoginInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/auth/login`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags auth + * @name MobileLogin + * @summary 手机登录 + * @request POST:/api/admin/auth/mobile-login + * @secure + */ + mobileLogin = (data: AuthMobileLoginInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/auth/mobile-login`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags auth + * @name EmailLogin + * @summary 邮箱登录 + * @request POST:/api/admin/auth/email-login + * @secure + */ + emailLogin = (data: AuthEmailLoginInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/auth/email-login`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags auth + * @name ChangePasswordByEmail + * @summary 邮箱更改密码 + * @request POST:/api/admin/auth/change-password-by-email + * @secure + */ + changePasswordByEmail = (data: AuthChangePasswordByEmailInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/auth/change-password-by-email`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags auth + * @name ChangePasswordByMobile + * @summary 手机更改密码 + * @request POST:/api/admin/auth/change-password-by-mobile + * @secure + */ + changePasswordByMobile = (data: AuthChangePasswordByMobileInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/auth/change-password-by-mobile`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags auth + * @name RegByEmail + * @summary 邮箱注册 + * @request POST:/api/admin/auth/reg-by-email + * @secure + */ + regByEmail = (data: AuthRegByEmailInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/auth/reg-by-email`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags auth + * @name RegByMobile + * @summary 手机号注册 + * @request POST:/api/admin/auth/reg-by-mobile + * @secure + */ + regByMobile = (data: AuthRegByMobileInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/auth/reg-by-mobile`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags auth + * @name Refresh + * @summary 刷新Token +以旧换新 + * @request GET:/api/admin/auth/refresh + * @secure + */ + refresh = ( + query: { + token: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/auth/refresh`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags auth + * @name IsCaptcha + * @summary 是否开启验证码 + * @request GET:/api/admin/auth/is-captcha + * @secure + */ + isCaptcha = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/auth/is-captcha`, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) +} diff --git a/src/api/admin/Cache.ts b/src/api/admin/Cache.ts new file mode 100644 index 0000000..4bdb630 --- /dev/null +++ b/src/api/admin/Cache.ts @@ -0,0 +1,58 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { ResultOutputListObject } from './data-contracts' +import { HttpClient, RequestParams } from './http-client' + +export class CacheApi extends HttpClient { + /** + * No description + * + * @tags cache + * @name GetList + * @summary 查询列表 + * @request GET:/api/admin/cache/get-list + * @secure + */ + getList = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/cache/get-list`, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags cache + * @name Clear + * @summary 清除缓存 + * @request DELETE:/api/admin/cache/clear + * @secure + */ + clear = ( + query?: { + /** 缓存键 */ + cacheKey?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/cache/clear`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) +} diff --git a/src/api/admin/Captcha.ts b/src/api/admin/Captcha.ts new file mode 100644 index 0000000..8d19273 --- /dev/null +++ b/src/api/admin/Captcha.ts @@ -0,0 +1,113 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { + ResultOutputCaptchaData, + ResultOutputString, + ResultOutputValidateResult, + SendEmailCodeInput, + SendSmsCodeInput, + SlideTrack, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class CaptchaApi extends HttpClient { + /** + * No description + * + * @tags captcha + * @name Generate + * @summary 生成 + * @request POST:/api/admin/captcha/generate + * @secure + */ + generate = ( + query?: { + /** 验证码id */ + captchaId?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/captcha/generate`, + method: 'POST', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags captcha + * @name Check + * @summary 验证 + * @request POST:/api/admin/captcha/check + * @secure + */ + check = ( + data: SlideTrack, + query?: { + /** 验证码Id */ + captchaId?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/captcha/check`, + method: 'POST', + query: query, + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags captcha + * @name SendSmsCode + * @summary 发送短信验证码 + * @request POST:/api/admin/captcha/send-sms-code + * @secure + */ + sendSmsCode = (data: SendSmsCodeInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/captcha/send-sms-code`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags captcha + * @name SendEmailCode + * @summary 发送邮件验证码 + * @request POST:/api/admin/captcha/send-email-code + * @secure + */ + sendEmailCode = (data: SendEmailCodeInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/captcha/send-email-code`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) +} diff --git a/src/api/admin/Dict.ts b/src/api/admin/Dict.ts new file mode 100644 index 0000000..e19921e --- /dev/null +++ b/src/api/admin/Dict.ts @@ -0,0 +1,316 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + DictAddInput, + DictUpdateInput, + ExportInput, + PageInputDictGetPageInput, + ResultOutputDictGetOutput, + ResultOutputDictionaryStringListDictGetListOutput, + ResultOutputImportOutput, + ResultOutputInt64, + ResultOutputPageOutputDictGetPageOutput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class DictApi extends HttpClient { + /** + * No description + * + * @tags dict + * @name Get + * @summary 查询 + * @request GET:/api/admin/dict/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/dict/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags dict + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/dict/get-page + * @secure + */ + getPage = (data: PageInputDictGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags dict + * @name GetList + * @summary 通过类型编码查询列表 + * @request POST:/api/admin/dict/get-list + * @secure + */ + getList = (data: string[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict/get-list`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags dict + * @name GetListByNames + * @summary 通过类型名称查询列表 + * @request POST:/api/admin/dict/get-list-by-names + * @secure + */ + getListByNames = (data: string[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict/get-list-by-names`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags dict + * @name DownloadTemplate + * @summary 下载导入模板 + * @request POST:/api/admin/dict/download-template + * @secure + */ + downloadTemplate = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict/download-template`, + method: 'POST', + secure: true, + ...params, + }) + /** + * No description + * + * @tags dict + * @name DownloadErrorMark + * @summary 下载错误标记文件 + * @request POST:/api/admin/dict/download-error-mark + * @secure + */ + downloadErrorMark = ( + query?: { + fileId?: string + fileName?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/dict/download-error-mark`, + method: 'POST', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags dict + * @name ExportData + * @summary 导出数据 + * @request POST:/api/admin/dict/export-data + * @secure + */ + exportData = (data: ExportInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict/export-data`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags dict + * @name ImportData + * @summary 导入数据 + * @request POST:/api/admin/dict/import-data + * @secure + */ + importData = ( + data: { + /** @format binary */ + file: File + }, + query?: { + /** @format int32 */ + duplicateAction?: number + fileId?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/dict/import-data`, + method: 'POST', + query: query, + body: data, + secure: true, + type: ContentType.FormData, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags dict + * @name Add + * @summary 新增 + * @request POST:/api/admin/dict/add + * @secure + */ + add = (data: DictAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags dict + * @name Update + * @summary 修改 + * @request PUT:/api/admin/dict/update + * @secure + */ + update = (data: DictUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags dict + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/dict/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/dict/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags dict + * @name BatchDelete + * @summary 批量彻底删除 + * @request PUT:/api/admin/dict/batch-delete + * @secure + */ + batchDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict/batch-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags dict + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/dict/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/dict/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags dict + * @name BatchSoftDelete + * @summary 批量删除 + * @request PUT:/api/admin/dict/batch-soft-delete + * @secure + */ + batchSoftDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict/batch-soft-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) +} diff --git a/src/api/admin/DictType.ts b/src/api/admin/DictType.ts new file mode 100644 index 0000000..6af962a --- /dev/null +++ b/src/api/admin/DictType.ts @@ -0,0 +1,187 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + DictTypeAddInput, + DictTypeUpdateInput, + PageInputDictTypeGetPageInput, + ResultOutputDictTypeGetOutput, + ResultOutputInt64, + ResultOutputPageOutputDictTypeGetPageOutput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class DictTypeApi extends HttpClient { + /** + * No description + * + * @tags dict-type + * @name Get + * @summary 查询 + * @request GET:/api/admin/dict-type/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/dict-type/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags dict-type + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/dict-type/get-page + * @secure + */ + getPage = (data: PageInputDictTypeGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict-type/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags dict-type + * @name Add + * @summary 新增 + * @request POST:/api/admin/dict-type/add + * @secure + */ + add = (data: DictTypeAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict-type/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags dict-type + * @name Update + * @summary 修改 + * @request PUT:/api/admin/dict-type/update + * @secure + */ + update = (data: DictTypeUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict-type/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags dict-type + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/dict-type/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/dict-type/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags dict-type + * @name BatchDelete + * @summary 批量彻底删除 + * @request PUT:/api/admin/dict-type/batch-delete + * @secure + */ + batchDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict-type/batch-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags dict-type + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/dict-type/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/dict-type/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags dict-type + * @name BatchSoftDelete + * @summary 批量删除 + * @request PUT:/api/admin/dict-type/batch-soft-delete + * @secure + */ + batchSoftDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/dict-type/batch-soft-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) +} diff --git a/src/api/admin/Doc.ts b/src/api/admin/Doc.ts new file mode 100644 index 0000000..89fe692 --- /dev/null +++ b/src/api/admin/Doc.ts @@ -0,0 +1,387 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + DocAddGroupInput, + DocAddImageInput, + DocAddMenuInput, + DocUpdateContentInput, + DocUpdateGroupInput, + DocUpdateMenuInput, + ResultOutputDocGetContentOutput, + ResultOutputDocGetGroupOutput, + ResultOutputDocGetMenuOutput, + ResultOutputIEnumerableObject, + ResultOutputInt64, + ResultOutputListDocListOutput, + ResultOutputListString, + ResultOutputString, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class DocApi extends HttpClient { + /** + * No description + * + * @tags doc + * @name GetGroup + * @summary 查询分组 + * @request GET:/api/admin/doc/get-group + * @secure + */ + getGroup = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/doc/get-group`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags doc + * @name GetMenu + * @summary 查询菜单 + * @request GET:/api/admin/doc/get-menu + * @secure + */ + getMenu = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/doc/get-menu`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags doc + * @name GetContent + * @summary 查询文档内容 + * @request GET:/api/admin/doc/get-content + * @secure + */ + getContent = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/doc/get-content`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags doc + * @name GetList + * @summary 查询文档列表 + * @request GET:/api/admin/doc/get-list + * @secure + */ + getList = ( + query?: { + key?: string + /** @format date-time */ + start?: string + /** @format date-time */ + end?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/doc/get-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags doc + * @name GetImageList + * @summary 查询图片列表 + * @request GET:/api/admin/doc/get-image-list + * @secure + */ + getImageList = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/doc/get-image-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags doc + * @name AddGroup + * @summary 新增分组 + * @request POST:/api/admin/doc/add-group + * @secure + */ + addGroup = (data: DocAddGroupInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/doc/add-group`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags doc + * @name AddMenu + * @summary 新增菜单 + * @request POST:/api/admin/doc/add-menu + * @secure + */ + addMenu = (data: DocAddMenuInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/doc/add-menu`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags doc + * @name AddImage + * @summary 新增图片 + * @request POST:/api/admin/doc/add-image + * @secure + */ + addImage = (data: DocAddImageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/doc/add-image`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags doc + * @name UpdateGroup + * @summary 修改分组 + * @request PUT:/api/admin/doc/update-group + * @secure + */ + updateGroup = (data: DocUpdateGroupInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/doc/update-group`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags doc + * @name UpdateMenu + * @summary 修改菜单 + * @request PUT:/api/admin/doc/update-menu + * @secure + */ + updateMenu = (data: DocUpdateMenuInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/doc/update-menu`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags doc + * @name UpdateContent + * @summary 修改文档内容 + * @request PUT:/api/admin/doc/update-content + * @secure + */ + updateContent = (data: DocUpdateContentInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/doc/update-content`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags doc + * @name Delete + * @summary 彻底删除文档 + * @request DELETE:/api/admin/doc/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/doc/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags doc + * @name DeleteImage + * @summary 彻底删除图片 + * @request DELETE:/api/admin/doc/delete-image + * @secure + */ + deleteImage = ( + query?: { + /** @format int64 */ + documentId?: number + url?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/doc/delete-image`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags doc + * @name SoftDelete + * @summary 删除文档 + * @request DELETE:/api/admin/doc/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/doc/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags doc + * @name GetPlainList + * @summary 查询精简文档列表 + * @request GET:/api/admin/doc/get-plain-list + * @secure + */ + getPlainList = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/doc/get-plain-list`, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags doc + * @name UploadImage + * @summary 上传文档图片 + * @request POST:/api/admin/doc/upload-image + * @secure + */ + uploadImage = ( + data: { + /** + * 上传文件 + * @format binary + */ + File?: File + /** + * 文档编号 + * @format int64 + */ + Id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/doc/upload-image`, + method: 'POST', + body: data, + secure: true, + type: ContentType.FormData, + format: 'json', + ...params, + }) +} diff --git a/src/api/admin/File.ts b/src/api/admin/File.ts new file mode 100644 index 0000000..8364ca0 --- /dev/null +++ b/src/api/admin/File.ts @@ -0,0 +1,140 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + FileDeleteInput, + PageInputFileGetPageInput, + ResultOutputFileEntity, + ResultOutputListFileEntity, + ResultOutputPageOutputFileGetPageOutput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class FileApi extends HttpClient { + /** + * No description + * + * @tags file + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/file/get-page + * @secure + */ + getPage = (data: PageInputFileGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/file/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags file + * @name Delete + * @summary 删除 + * @request POST:/api/admin/file/delete + * @secure + */ + delete = (data: FileDeleteInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/file/delete`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags file + * @name UploadFile + * @summary 上传文件 + * @request POST:/api/admin/file/upload-file + * @secure + */ + uploadFile = ( + data: { + /** + * 文件 + * @format binary + */ + file: File + }, + query?: { + /** + * 文件目录 + * @default "" + */ + fileDirectory?: string + /** + * 文件重命名 + * @default true + */ + fileReName?: boolean + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/file/upload-file`, + method: 'POST', + query: query, + body: data, + secure: true, + type: ContentType.FormData, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags file + * @name UploadFiles + * @summary 上传多文件 + * @request POST:/api/admin/file/upload-files + * @secure + */ + uploadFiles = ( + data: { + /** 文件列表 */ + files: File[] + }, + query?: { + /** + * 文件目录 + * @default "" + */ + fileDirectory?: string + /** + * 文件重命名 + * @default true + */ + fileReName?: boolean + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/file/upload-files`, + method: 'POST', + query: query, + body: data, + secure: true, + type: ContentType.FormData, + format: 'json', + ...params, + }) +} diff --git a/src/api/admin/LoginLog.ts b/src/api/admin/LoginLog.ts new file mode 100644 index 0000000..6b8defd --- /dev/null +++ b/src/api/admin/LoginLog.ts @@ -0,0 +1,55 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { LoginLogAddInput, PageInputLoginLogGetPageInput, ResultOutputInt64, ResultOutputPageOutputLoginLogGetPageOutput } from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class LoginLogApi extends HttpClient { + /** + * No description + * + * @tags login-log + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/login-log/get-page + * @secure + */ + getPage = (data: PageInputLoginLogGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/login-log/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags login-log + * @name Add + * @summary 新增 + * @request POST:/api/admin/login-log/add + * @secure + */ + add = (data: LoginLogAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/login-log/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) +} diff --git a/src/api/admin/Msg.ts b/src/api/admin/Msg.ts new file mode 100644 index 0000000..b4f0677 --- /dev/null +++ b/src/api/admin/Msg.ts @@ -0,0 +1,254 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + MsgAddInput, + MsgAddMsgUserListInput, + MsgUpdateInput, + PageInputMsgGetPageInput, + ResultOutputInt64, + ResultOutputListMsgGetMsgUserListOutput, + ResultOutputMsgGetOutput, + ResultOutputPageOutputMsgGetPageOutput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class MsgApi extends HttpClient { + /** + * No description + * + * @tags msg + * @name Get + * @summary 查询 + * @request GET:/api/admin/msg/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/msg/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags msg + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/msg/get-page + * @secure + */ + getPage = (data: PageInputMsgGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/msg/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags msg + * @name GetMsgUserList + * @summary 查询消息用户列表 + * @request GET:/api/admin/msg/get-msg-user-list + * @secure + */ + getMsgUserList = ( + query?: { + /** + * 消息Id + * @format int64 + */ + MsgId?: number + /** 姓名 */ + Name?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/msg/get-msg-user-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags msg + * @name AddMsgUser + * @summary 添加消息用户 + * @request POST:/api/admin/msg/add-msg-user + * @secure + */ + addMsgUser = (data: MsgAddMsgUserListInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/msg/add-msg-user`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags msg + * @name RemoveMsgUser + * @summary 移除消息用户 + * @request POST:/api/admin/msg/remove-msg-user + * @secure + */ + removeMsgUser = (data: MsgAddMsgUserListInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/msg/remove-msg-user`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags msg + * @name Add + * @summary 新增 + * @request POST:/api/admin/msg/add + * @secure + */ + add = (data: MsgAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/msg/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags msg + * @name Update + * @summary 修改 + * @request PUT:/api/admin/msg/update + * @secure + */ + update = (data: MsgUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/msg/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags msg + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/msg/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/msg/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags msg + * @name BatchDelete + * @summary 批量彻底删除 + * @request PUT:/api/admin/msg/batch-delete + * @secure + */ + batchDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/msg/batch-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags msg + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/msg/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/msg/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags msg + * @name BatchSoftDelete + * @summary 批量删除 + * @request PUT:/api/admin/msg/batch-soft-delete + * @secure + */ + batchSoftDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/msg/batch-soft-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) +} diff --git a/src/api/admin/MsgType.ts b/src/api/admin/MsgType.ts new file mode 100644 index 0000000..9ae08cd --- /dev/null +++ b/src/api/admin/MsgType.ts @@ -0,0 +1,191 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + MsgTypeAddInput, + MsgTypeUpdateInput, + ResultOutputInt64, + ResultOutputListMsgTypeGetListOutput, + ResultOutputMsgTypeGetOutput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class MsgTypeApi extends HttpClient { + /** + * No description + * + * @tags msg-type + * @name Get + * @summary 查询 + * @request GET:/api/admin/msg-type/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/msg-type/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags msg-type + * @name GetList + * @summary 查询列表 + * @request GET:/api/admin/msg-type/get-list + * @secure + */ + getList = ( + query?: { + /** 名称 */ + Name?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/msg-type/get-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags msg-type + * @name Add + * @summary 新增 + * @request POST:/api/admin/msg-type/add + * @secure + */ + add = (data: MsgTypeAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/msg-type/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags msg-type + * @name Update + * @summary 修改 + * @request PUT:/api/admin/msg-type/update + * @secure + */ + update = (data: MsgTypeUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/msg-type/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags msg-type + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/msg-type/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/msg-type/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags msg-type + * @name BatchDelete + * @summary 批量彻底删除 + * @request PUT:/api/admin/msg-type/batch-delete + * @secure + */ + batchDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/msg-type/batch-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags msg-type + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/msg-type/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/msg-type/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags msg-type + * @name BatchSoftDelete + * @summary 批量删除 + * @request PUT:/api/admin/msg-type/batch-soft-delete + * @secure + */ + batchSoftDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/msg-type/batch-soft-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) +} diff --git a/src/api/admin/OperationLog.ts b/src/api/admin/OperationLog.ts new file mode 100644 index 0000000..c117cc7 --- /dev/null +++ b/src/api/admin/OperationLog.ts @@ -0,0 +1,60 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { + OperationLogAddInput, + PageInputOperationLogGetPageInput, + ResultOutputInt64, + ResultOutputPageOutputOperationLogGetPageOutput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class OperationLogApi extends HttpClient { + /** + * No description + * + * @tags operation-log + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/operation-log/get-page + * @secure + */ + getPage = (data: PageInputOperationLogGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/operation-log/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags operation-log + * @name Add + * @summary 新增 + * @request POST:/api/admin/operation-log/add + * @secure + */ + add = (data: OperationLogAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/operation-log/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) +} diff --git a/src/api/admin/Org.ts b/src/api/admin/Org.ts new file mode 100644 index 0000000..27f7f4d --- /dev/null +++ b/src/api/admin/Org.ts @@ -0,0 +1,172 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + OrgAddInput, + OrgUpdateInput, + ResultOutputInt64, + ResultOutputListOrgGetListOutput, + ResultOutputListOrgGetSimpleListWithPathOutput, + ResultOutputOrgGetOutput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class OrgApi extends HttpClient { + /** + * No description + * + * @tags org + * @name Get + * @summary 查询 + * @request GET:/api/admin/org/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/org/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags org + * @name GetList + * @summary 查询列表 + * @request GET:/api/admin/org/get-list + * @secure + */ + getList = ( + query?: { + key?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/org/get-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags org + * @name GetSimpleListWithPath + * @summary 获取部门路径列表 + * @request GET:/api/admin/org/get-simple-list-with-path + * @secure + */ + getSimpleListWithPath = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/org/get-simple-list-with-path`, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags org + * @name Add + * @summary 新增 + * @request POST:/api/admin/org/add + * @secure + */ + add = (data: OrgAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/org/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags org + * @name Update + * @summary 修改 + * @request PUT:/api/admin/org/update + * @secure + */ + update = (data: OrgUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/org/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags org + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/org/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/org/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags org + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/org/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/org/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) +} diff --git a/src/api/admin/Permission.ts b/src/api/admin/Permission.ts new file mode 100644 index 0000000..1fd514a --- /dev/null +++ b/src/api/admin/Permission.ts @@ -0,0 +1,350 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + PermissionAddDotInput, + PermissionAddGroupInput, + PermissionAddMenuInput, + PermissionAssignInput, + PermissionGetListInput, + PermissionUpdateDotInput, + PermissionUpdateGroupInput, + PermissionUpdateMenuInput, + ResultOutputInt64, + ResultOutputListInt64, + ResultOutputListPermissionGetListOutput, + ResultOutputListPermissionGetPermissionListOutput, + ResultOutputPermissionGetDotOutput, + ResultOutputPermissionGetGroupOutput, + ResultOutputPermissionGetMenuOutput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class PermissionApi extends HttpClient { + /** + * No description + * + * @tags permission + * @name GetGroup + * @summary 查询分组 + * @request GET:/api/admin/permission/get-group + * @secure + */ + getGroup = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/permission/get-group`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags permission + * @name GetMenu + * @summary 查询菜单 + * @request GET:/api/admin/permission/get-menu + * @secure + */ + getMenu = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/permission/get-menu`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags permission + * @name GetDot + * @summary 查询权限点 + * @request GET:/api/admin/permission/get-dot + * @secure + */ + getDot = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/permission/get-dot`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags permission + * @name GetList + * @summary 查询权限列表 + * @request POST:/api/admin/permission/get-list + * @secure + */ + getList = (data: PermissionGetListInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/permission/get-list`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags permission + * @name GetPermissionList + * @summary 查询授权权限列表 + * @request GET:/api/admin/permission/get-permission-list + * @secure + */ + getPermissionList = ( + query?: { + platform?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/permission/get-permission-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags permission + * @name GetRolePermissionList + * @summary 查询角色权限列表 + * @request GET:/api/admin/permission/get-role-permission-list + * @secure + */ + getRolePermissionList = ( + query?: { + /** + * @format int64 + * @default 0 + */ + roleId?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/permission/get-role-permission-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags permission + * @name AddGroup + * @summary 新增分组 + * @request POST:/api/admin/permission/add-group + * @secure + */ + addGroup = (data: PermissionAddGroupInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/permission/add-group`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags permission + * @name AddMenu + * @summary 新增菜单 + * @request POST:/api/admin/permission/add-menu + * @secure + */ + addMenu = (data: PermissionAddMenuInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/permission/add-menu`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags permission + * @name AddDot + * @summary 新增权限点 + * @request POST:/api/admin/permission/add-dot + * @secure + */ + addDot = (data: PermissionAddDotInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/permission/add-dot`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags permission + * @name UpdateGroup + * @summary 修改分组 + * @request PUT:/api/admin/permission/update-group + * @secure + */ + updateGroup = (data: PermissionUpdateGroupInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/permission/update-group`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags permission + * @name UpdateMenu + * @summary 修改菜单 + * @request PUT:/api/admin/permission/update-menu + * @secure + */ + updateMenu = (data: PermissionUpdateMenuInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/permission/update-menu`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags permission + * @name UpdateDot + * @summary 修改权限点 + * @request PUT:/api/admin/permission/update-dot + * @secure + */ + updateDot = (data: PermissionUpdateDotInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/permission/update-dot`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags permission + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/permission/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/permission/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags permission + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/permission/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/permission/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags permission + * @name Assign + * @summary 保存角色权限 + * @request POST:/api/admin/permission/assign + * @secure + */ + assign = (data: PermissionAssignInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/permission/assign`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) +} diff --git a/src/api/admin/Pkg.ts b/src/api/admin/Pkg.ts new file mode 100644 index 0000000..a12c471 --- /dev/null +++ b/src/api/admin/Pkg.ts @@ -0,0 +1,347 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + PageInputPkgGetPageInput, + PageInputPkgGetPkgTenantListInput, + PkgAddInput, + PkgAddPkgTenantListInput, + PkgSetPkgPermissionsInput, + PkgUpdateInput, + ResultOutputInt64, + ResultOutputListInt64, + ResultOutputListPkgGetListOutput, + ResultOutputListPkgGetPkgTenantListOutput, + ResultOutputPageOutputPkgGetPageOutput, + ResultOutputPageOutputPkgGetPkgTenantListOutput, + ResultOutputPkgGetOutput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class PkgApi extends HttpClient { + /** + * No description + * + * @tags pkg + * @name Get + * @summary 查询 + * @request GET:/api/admin/pkg/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/pkg/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags pkg + * @name GetList + * @summary 查询列表 + * @request GET:/api/admin/pkg/get-list + * @secure + */ + getList = ( + query?: { + /** 名称 */ + Name?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/pkg/get-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags pkg + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/pkg/get-page + * @secure + */ + getPage = (data: PageInputPkgGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/pkg/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags pkg + * @name GetPkgTenantList + * @summary 查询套餐租户列表 + * @request GET:/api/admin/pkg/get-pkg-tenant-list + * @secure + */ + getPkgTenantList = ( + query?: { + /** 租户名 */ + TenantName?: string + /** + * 套餐Id + * @format int64 + */ + PkgId?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/pkg/get-pkg-tenant-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags pkg + * @name GetPkgTenantPage + * @summary 查询套餐租户分页 + * @request POST:/api/admin/pkg/get-pkg-tenant-page + * @secure + */ + getPkgTenantPage = (data: PageInputPkgGetPkgTenantListInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/pkg/get-pkg-tenant-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags pkg + * @name GetPkgPermissionList + * @summary 查询套餐权限列表 + * @request GET:/api/admin/pkg/get-pkg-permission-list + * @secure + */ + getPkgPermissionList = ( + query?: { + /** + * 套餐编号 + * @format int64 + */ + pkgId?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/pkg/get-pkg-permission-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags pkg + * @name SetPkgPermissions + * @summary 设置套餐权限 + * @request POST:/api/admin/pkg/set-pkg-permissions + * @secure + */ + setPkgPermissions = (data: PkgSetPkgPermissionsInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/pkg/set-pkg-permissions`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags pkg + * @name AddPkgTenant + * @summary 添加套餐租户 + * @request POST:/api/admin/pkg/add-pkg-tenant + * @secure + */ + addPkgTenant = (data: PkgAddPkgTenantListInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/pkg/add-pkg-tenant`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags pkg + * @name RemovePkgTenant + * @summary 移除套餐租户 + * @request POST:/api/admin/pkg/remove-pkg-tenant + * @secure + */ + removePkgTenant = (data: PkgAddPkgTenantListInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/pkg/remove-pkg-tenant`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags pkg + * @name Add + * @summary 新增 + * @request POST:/api/admin/pkg/add + * @secure + */ + add = (data: PkgAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/pkg/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags pkg + * @name Update + * @summary 修改 + * @request PUT:/api/admin/pkg/update + * @secure + */ + update = (data: PkgUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/pkg/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags pkg + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/pkg/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/pkg/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags pkg + * @name BatchDelete + * @summary 批量彻底删除 + * @request PUT:/api/admin/pkg/batch-delete + * @secure + */ + batchDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/pkg/batch-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags pkg + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/pkg/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/pkg/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags pkg + * @name BatchSoftDelete + * @summary 批量删除 + * @request PUT:/api/admin/pkg/batch-soft-delete + * @secure + */ + batchSoftDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/pkg/batch-soft-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) +} diff --git a/src/api/admin/PrintTemplate.ts b/src/api/admin/PrintTemplate.ts new file mode 100644 index 0000000..bf0b367 --- /dev/null +++ b/src/api/admin/PrintTemplate.ts @@ -0,0 +1,250 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + PageInputPrintTemplateGetPageInput, + PrintTemplateAddInput, + PrintTemplateSetEnableInput, + PrintTemplateUpdateInput, + PrintTemplateUpdateTemplateInput, + ResultOutputInt64, + ResultOutputPageOutputPrintTemplateGetPageOutput, + ResultOutputPrintTemplateGetOutput, + ResultOutputPrintTemplateGetUpdateTemplateOutput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class PrintTemplateApi extends HttpClient { + /** + * No description + * + * @tags print-template + * @name Get + * @summary 查询 + * @request GET:/api/admin/print-template/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/print-template/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags print-template + * @name GetUpdateTemplate + * @summary 查询修改模板 + * @request GET:/api/admin/print-template/get-update-template + * @secure + */ + getUpdateTemplate = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/print-template/get-update-template`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags print-template + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/print-template/get-page + * @secure + */ + getPage = (data: PageInputPrintTemplateGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/print-template/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags print-template + * @name Add + * @summary 新增 + * @request POST:/api/admin/print-template/add + * @secure + */ + add = (data: PrintTemplateAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/print-template/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags print-template + * @name Update + * @summary 修改 + * @request PUT:/api/admin/print-template/update + * @secure + */ + update = (data: PrintTemplateUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/print-template/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags print-template + * @name UpdateTemplate + * @summary 修改模板 + * @request PUT:/api/admin/print-template/update-template + * @secure + */ + updateTemplate = (data: PrintTemplateUpdateTemplateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/print-template/update-template`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags print-template + * @name SetEnable + * @summary 设置启用 + * @request POST:/api/admin/print-template/set-enable + * @secure + */ + setEnable = (data: PrintTemplateSetEnableInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/print-template/set-enable`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags print-template + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/print-template/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/print-template/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags print-template + * @name BatchDelete + * @summary 批量彻底删除 + * @request PUT:/api/admin/print-template/batch-delete + * @secure + */ + batchDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/print-template/batch-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags print-template + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/print-template/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/print-template/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags print-template + * @name BatchSoftDelete + * @summary 批量删除 + * @request PUT:/api/admin/print-template/batch-soft-delete + * @secure + */ + batchSoftDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/print-template/batch-soft-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) +} diff --git a/src/api/admin/Region.ts b/src/api/admin/Region.ts new file mode 100644 index 0000000..5ad7cd1 --- /dev/null +++ b/src/api/admin/Region.ts @@ -0,0 +1,229 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + PageInputRegionGetPageInput, + RegionAddInput, + RegionGetListInput, + RegionLevel, + RegionSetEnableInput, + RegionSetHotInput, + RegionUpdateInput, + ResultOutputInt64, + ResultOutputListRegionGetChildListOutput, + ResultOutputPageOutputRegionGetPageOutput, + ResultOutputRegionGetOutput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class RegionApi extends HttpClient { + /** + * No description + * + * @tags region + * @name Get + * @summary 查询 + * @request GET:/api/admin/region/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/region/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags region + * @name GetChildList + * @summary 查询下级列表 + * @request POST:/api/admin/region/get-child-list + * @secure + */ + getChildList = (data: RegionGetListInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/region/get-child-list`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags region + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/region/get-page + * @secure + */ + getPage = (data: PageInputRegionGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/region/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags region + * @name Add + * @summary 新增 + * @request POST:/api/admin/region/add + * @secure + */ + add = (data: RegionAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/region/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags region + * @name Update + * @summary 修改 + * @request PUT:/api/admin/region/update + * @secure + */ + update = (data: RegionUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/region/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags region + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/region/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/region/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags region + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/region/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/region/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags region + * @name SetEnable + * @summary 设置启用 + * @request POST:/api/admin/region/set-enable + * @secure + */ + setEnable = (data: RegionSetEnableInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/region/set-enable`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags region + * @name SetHot + * @summary 设置热门 + * @request POST:/api/admin/region/set-hot + * @secure + */ + setHot = (data: RegionSetHotInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/region/set-hot`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags region + * @name SyncData + * @summary 同步数据 + * @request POST:/api/admin/region/sync-data + * @secure + */ + syncData = (data: RegionLevel, params: RequestParams = {}) => + this.request({ + path: `/api/admin/region/sync-data`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) +} diff --git a/src/api/admin/Role.ts b/src/api/admin/Role.ts new file mode 100644 index 0000000..58e2a37 --- /dev/null +++ b/src/api/admin/Role.ts @@ -0,0 +1,298 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + PageInputRoleGetPageInput, + ResultOutputInt64, + ResultOutputListRoleGetListOutput, + ResultOutputListRoleGetRoleUserListOutput, + ResultOutputPageOutputRoleGetPageOutput, + ResultOutputRoleGetOutput, + RoleAddInput, + RoleAddRoleUserListInput, + RoleSetDataScopeInput, + RoleUpdateInput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class RoleApi extends HttpClient { + /** + * No description + * + * @tags role + * @name Get + * @summary 查询 + * @request GET:/api/admin/role/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/role/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags role + * @name GetList + * @summary 查询列表 + * @request GET:/api/admin/role/get-list + * @secure + */ + getList = ( + query?: { + /** 名称 */ + Name?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/role/get-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags role + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/role/get-page + * @secure + */ + getPage = (data: PageInputRoleGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/role/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags role + * @name GetRoleUserList + * @summary 查询角色用户列表 + * @request GET:/api/admin/role/get-role-user-list + * @secure + */ + getRoleUserList = ( + query?: { + /** 姓名 */ + Name?: string + /** + * 角色Id + * @format int64 + */ + RoleId?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/role/get-role-user-list`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags role + * @name AddRoleUser + * @summary 添加角色用户 + * @request POST:/api/admin/role/add-role-user + * @secure + */ + addRoleUser = (data: RoleAddRoleUserListInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/role/add-role-user`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags role + * @name RemoveRoleUser + * @summary 移除角色用户 + * @request POST:/api/admin/role/remove-role-user + * @secure + */ + removeRoleUser = (data: RoleAddRoleUserListInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/role/remove-role-user`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags role + * @name Add + * @summary 新增 + * @request POST:/api/admin/role/add + * @secure + */ + add = (data: RoleAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/role/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags role + * @name Update + * @summary 修改 + * @request PUT:/api/admin/role/update + * @secure + */ + update = (data: RoleUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/role/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags role + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/role/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/role/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags role + * @name BatchDelete + * @summary 批量彻底删除 + * @request PUT:/api/admin/role/batch-delete + * @secure + */ + batchDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/role/batch-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags role + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/role/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/role/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags role + * @name BatchSoftDelete + * @summary 批量删除 + * @request PUT:/api/admin/role/batch-soft-delete + * @secure + */ + batchSoftDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/role/batch-soft-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags role + * @name SetDataScope + * @summary 设置数据权限 + * @request POST:/api/admin/role/set-data-scope + * @secure + */ + setDataScope = (data: RoleSetDataScopeInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/role/set-data-scope`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) +} diff --git a/src/api/admin/Room.ts b/src/api/admin/Room.ts new file mode 100644 index 0000000..f4b67d4 --- /dev/null +++ b/src/api/admin/Room.ts @@ -0,0 +1,153 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + RoomAddInput, + RoomUpdateInput, + ResultOutputInt64, + ResultOutputListRoomGetListOutput, + ResultOutputRoomGetOutput, + PageInputRoomGetPageInput, + ResultOutputPageOutputRoomGetPageOutput +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class RoomApi extends HttpClient { + /** + * No description + * + * @tags room + * @name Get + * @summary 查询 + * @request GET:/api/admin/room/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/room/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags room + * @name GetList + * @summary 查询分页 + * @request GET:/api/admin/room/get-page + * @secure + */ + getPage = (data: PageInputRoomGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/room/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + + /** + * No description + * + * @tags room + * @name Add + * @summary 新增 + * @request POST:/api/admin/room/add + * @secure + */ + add = (data: RoomAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/room/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags room + * @name Update + * @summary 修改 + * @request PUT:/api/admin/room/update + * @secure + */ + update = (data: RoomUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/room/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags room + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/room/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/room/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags room + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/room/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/room/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) +} diff --git a/src/api/admin/SiteMsg.ts b/src/api/admin/SiteMsg.ts new file mode 100644 index 0000000..4a3bad6 --- /dev/null +++ b/src/api/admin/SiteMsg.ts @@ -0,0 +1,181 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + PageInputSiteMsgGetPageInput, + ResultOutputBoolean, + ResultOutputPageOutputSiteMsgGetPageOutput, + ResultOutputSiteMsgGetContentOutput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class SiteMsgApi extends HttpClient { + /** + * No description + * + * @tags site-msg + * @name GetContent + * @summary 获得内容 + * @request GET:/api/admin/site-msg/get-content + * @secure + */ + getContent = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/site-msg/get-content`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags site-msg + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/site-msg/get-page + * @secure + */ + getPage = (data: PageInputSiteMsgGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/site-msg/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags site-msg + * @name IsUnread + * @summary 是否未读 + * @request GET:/api/admin/site-msg/is-unread + * @secure + */ + isUnread = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/site-msg/is-unread`, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags site-msg + * @name SetAllRead + * @summary 全部标为已读 + * @request POST:/api/admin/site-msg/set-all-read + * @secure + */ + setAllRead = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/site-msg/set-all-read`, + method: 'POST', + secure: true, + ...params, + }) + /** + * No description + * + * @tags site-msg + * @name SetRead + * @summary 标为已读 + * @request POST:/api/admin/site-msg/set-read + * @secure + */ + setRead = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/site-msg/set-read`, + method: 'POST', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags site-msg + * @name BatchSetRead + * @summary 批量标为已读 + * @request POST:/api/admin/site-msg/batch-set-read + * @secure + */ + batchSetRead = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/site-msg/batch-set-read`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags site-msg + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/site-msg/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/site-msg/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags site-msg + * @name BatchSoftDelete + * @summary 批量删除 + * @request POST:/api/admin/site-msg/batch-soft-delete + * @secure + */ + batchSoftDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/site-msg/batch-soft-delete`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) +} diff --git a/src/api/admin/Task.ts b/src/api/admin/Task.ts new file mode 100644 index 0000000..6770eca --- /dev/null +++ b/src/api/admin/Task.ts @@ -0,0 +1,287 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + PageInputTaskGetPageInput, + ResultOutputPageOutputTaskGetPageOutput, + ResultOutputString, + ResultOutputTaskGetOutput, + TaskAddInput, + TaskUpdateInput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class TaskApi extends HttpClient { + /** + * No description + * + * @tags task + * @name GetAlerEmail + * @summary 查询报警邮件 + * @request GET:/api/admin/task/get-aler-email + * @secure + */ + getAlerEmail = ( + query?: { + id?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/task/get-aler-email`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags task + * @name Get + * @summary 查询 + * @request GET:/api/admin/task/get + * @secure + */ + get = ( + query?: { + id?: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/task/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags task + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/task/get-page + * @secure + */ + getPage = (data: PageInputTaskGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/task/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags task + * @name Add + * @summary 新增 + * @request POST:/api/admin/task/add + * @secure + */ + add = (data: TaskAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/task/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags task + * @name Update + * @summary 修改 + * @request PUT:/api/admin/task/update + * @secure + */ + update = (data: TaskUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/task/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags task + * @name Pause + * @summary 暂停任务 + * @request POST:/api/admin/task/pause + * @secure + */ + pause = ( + query: { + id: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/task/pause`, + method: 'POST', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags task + * @name Resume + * @summary 启动任务 + * @request POST:/api/admin/task/resume + * @secure + */ + resume = ( + query: { + id: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/task/resume`, + method: 'POST', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags task + * @name Run + * @summary 执行任务 + * @request POST:/api/admin/task/run + * @secure + */ + run = ( + query: { + id: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/task/run`, + method: 'POST', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags task + * @name Delete + * @summary 删除任务 + * @request DELETE:/api/admin/task/delete + * @secure + */ + delete = ( + query: { + id: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/task/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags task + * @name BatchRun + * @summary 批量执行任务 + * @request PUT:/api/admin/task/batch-run + * @secure + */ + batchRun = (data: string[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/task/batch-run`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags task + * @name BatchPause + * @summary 批量暂停任务 + * @request PUT:/api/admin/task/batch-pause + * @secure + */ + batchPause = (data: string[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/task/batch-pause`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags task + * @name BatchResume + * @summary 批量启动任务 + * @request PUT:/api/admin/task/batch-resume + * @secure + */ + batchResume = (data: string[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/task/batch-resume`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags task + * @name BatchDelete + * @summary 批量删除任务 + * @request PUT:/api/admin/task/batch-delete + * @secure + */ + batchDelete = (data: string[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/task/batch-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) +} diff --git a/src/api/admin/TaskLog.ts b/src/api/admin/TaskLog.ts new file mode 100644 index 0000000..2220c62 --- /dev/null +++ b/src/api/admin/TaskLog.ts @@ -0,0 +1,36 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { PageInputTaskLogGetPageInput, ResultOutputPageOutputTaskLog } from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class TaskLogApi extends HttpClient { + /** + * No description + * + * @tags task-log + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/task-log/get-page + * @secure + */ + getPage = (data: PageInputTaskLogGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/task-log/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) +} diff --git a/src/api/admin/Tenant.ts b/src/api/admin/Tenant.ts new file mode 100644 index 0000000..8a0f5dd --- /dev/null +++ b/src/api/admin/Tenant.ts @@ -0,0 +1,213 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + PageInputTenantGetPageInput, + ResultOutputInt64, + ResultOutputPageOutputTenantGetPageOutput, + ResultOutputTenantGetOutput, + ResultOutputTokenInfo, + TenantAddInput, + TenantSetEnableInput, + TenantUpdateInput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class TenantApi extends HttpClient { + /** + * No description + * + * @tags tenant + * @name Get + * @summary 查询 + * @request GET:/api/admin/tenant/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/tenant/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags tenant + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/tenant/get-page + * @secure + */ + getPage = (data: PageInputTenantGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/tenant/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags tenant + * @name Add + * @summary 新增 + * @request POST:/api/admin/tenant/add + * @secure + */ + add = (data: TenantAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/tenant/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags tenant + * @name Update + * @summary 修改 + * @request PUT:/api/admin/tenant/update + * @secure + */ + update = (data: TenantUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/tenant/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags tenant + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/tenant/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/tenant/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags tenant + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/tenant/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/tenant/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags tenant + * @name BatchSoftDelete + * @summary 批量删除 + * @request PUT:/api/admin/tenant/batch-soft-delete + * @secure + */ + batchSoftDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/tenant/batch-soft-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags tenant + * @name SetEnable + * @summary 设置启用 + * @request POST:/api/admin/tenant/set-enable + * @secure + */ + setEnable = (data: TenantSetEnableInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/tenant/set-enable`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags tenant + * @name OneClickLogin + * @summary 一键登录 + * @request POST:/api/admin/tenant/one-click-login + * @secure + */ + oneClickLogin = ( + query?: { + /** @format int64 */ + tenantId?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/tenant/one-click-login`, + method: 'POST', + query: query, + secure: true, + format: 'json', + ...params, + }) +} diff --git a/src/api/admin/User.ts b/src/api/admin/User.ts new file mode 100644 index 0000000..dd5f41e --- /dev/null +++ b/src/api/admin/User.ts @@ -0,0 +1,495 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + PageInput, + PageInputUserGetPageInput, + ResultOutputInt64, + ResultOutputPageOutputUserGetDeletedUserPageOutput, + ResultOutputPageOutputUserGetPageOutput, + ResultOutputString, + ResultOutputTokenInfo, + ResultOutputUserGetBasicOutput, + ResultOutputUserGetOutput, + ResultOutputUserGetPermissionOutput, + UserAddInput, + UserAddMemberInput, + UserBatchSetOrgInput, + UserChangePasswordInput, + UserResetPasswordInput, + UserRestoreInput, + UserSetEnableInput, + UserSetManagerInput, + UserUpdateBasicInput, + UserUpdateInput, + UserUpdateMemberInput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class UserApi extends HttpClient { + /** + * No description + * + * @tags user + * @name Get + * @summary 查询用户 + * @request GET:/api/admin/user/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/user/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags user + * @name GetPage + * @summary 查询分页 + * @request POST:/api/admin/user/get-page + * @secure + */ + getPage = (data: PageInputUserGetPageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/get-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags user + * @name GetDeletedPage + * @summary 查询已删除分页列表 + * @request POST:/api/admin/user/get-deleted-page + * @secure + */ + getDeletedPage = (data: PageInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/get-deleted-page`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags user + * @name GetBasic + * @summary 查询用户基本信息 + * @request GET:/api/admin/user/get-basic + * @secure + */ + getBasic = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/get-basic`, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags user + * @name GetPermission + * @summary 查询用户权限信息 + * @request GET:/api/admin/user/get-permission + * @secure + */ + getPermission = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/get-permission`, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags user + * @name Add + * @summary 新增用户 + * @request POST:/api/admin/user/add + * @secure + */ + add = (data: UserAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags user + * @name Update + * @summary 修改用户 + * @request PUT:/api/admin/user/update + * @secure + */ + update = (data: UserUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags user + * @name AddMember + * @summary 新增会员 + * @request POST:/api/admin/user/add-member + * @secure + */ + addMember = (data: UserAddMemberInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/add-member`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags user + * @name UpdateMember + * @summary 修改会员 + * @request PUT:/api/admin/user/update-member + * @secure + */ + updateMember = (data: UserUpdateMemberInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/update-member`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags user + * @name UpdateBasic + * @summary 更新用户基本信息 + * @request PUT:/api/admin/user/update-basic + * @secure + */ + updateBasic = (data: UserUpdateBasicInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/update-basic`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags user + * @name ChangePassword + * @summary 修改用户密码 + * @request PUT:/api/admin/user/change-password + * @secure + */ + changePassword = (data: UserChangePasswordInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/change-password`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags user + * @name ResetPassword + * @summary 重置密码 + * @request POST:/api/admin/user/reset-password + * @secure + */ + resetPassword = (data: UserResetPasswordInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/reset-password`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags user + * @name SetManager + * @summary 设置主管 + * @request POST:/api/admin/user/set-manager + * @secure + */ + setManager = (data: UserSetManagerInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/set-manager`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags user + * @name SetEnable + * @summary 设置启用 + * @request POST:/api/admin/user/set-enable + * @secure + */ + setEnable = (data: UserSetEnableInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/set-enable`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags user + * @name Restore + * @summary 恢复 + * @request POST:/api/admin/user/restore + * @secure + */ + restore = (data: UserRestoreInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/restore`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags user + * @name BatchSetOrg + * @summary 批量设置部门 + * @request PUT:/api/admin/user/batch-set-org + * @secure + */ + batchSetOrg = (data: UserBatchSetOrgInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/batch-set-org`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags user + * @name Delete + * @summary 彻底删除用户 + * @request DELETE:/api/admin/user/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/user/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags user + * @name BatchDelete + * @summary 批量彻底删除用户 + * @request PUT:/api/admin/user/batch-delete + * @secure + */ + batchDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/batch-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags user + * @name SoftDelete + * @summary 删除用户 + * @request DELETE:/api/admin/user/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/user/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags user + * @name BatchSoftDelete + * @summary 批量删除用户 + * @request PUT:/api/admin/user/batch-soft-delete + * @secure + */ + batchSoftDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/user/batch-soft-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags user + * @name AvatarUpload + * @summary 上传头像 + * @request POST:/api/admin/user/avatar-upload + * @secure + */ + avatarUpload = ( + data: { + /** @format binary */ + file?: File + }, + query?: { + /** @default false */ + autoUpdate?: boolean + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/user/avatar-upload`, + method: 'POST', + query: query, + body: data, + secure: true, + type: ContentType.FormData, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags user + * @name OneClickLogin + * @summary 一键登录用户 + * @request GET:/api/admin/user/one-click-login + * @secure + */ + oneClickLogin = ( + query: { + userName: string + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/user/one-click-login`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags user + * @name ForceOffline + * @summary 强制用户下线 + * @request POST:/api/admin/user/force-offline + * @secure + */ + forceOffline = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/user/force-offline`, + method: 'POST', + query: query, + secure: true, + ...params, + }) +} diff --git a/src/api/admin/View.ts b/src/api/admin/View.ts new file mode 100644 index 0000000..ca7309e --- /dev/null +++ b/src/api/admin/View.ts @@ -0,0 +1,206 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { AxiosResponse } from 'axios' +import { + ResultOutputInt64, + ResultOutputListViewGetListOutput, + ResultOutputViewGetOutput, + ViewAddInput, + ViewGetListInput, + ViewSyncInput, + ViewUpdateInput, +} from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class ViewApi extends HttpClient { + /** + * No description + * + * @tags view + * @name Get + * @summary 查询 + * @request GET:/api/admin/view/get + * @secure + */ + get = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/view/get`, + method: 'GET', + query: query, + secure: true, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags view + * @name GetList + * @summary 查询列表 + * @request POST:/api/admin/view/get-list + * @secure + */ + getList = (data: ViewGetListInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/view/get-list`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags view + * @name Add + * @summary 新增 + * @request POST:/api/admin/view/add + * @secure + */ + add = (data: ViewAddInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/view/add`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags view + * @name Update + * @summary 修改 + * @request PUT:/api/admin/view/update + * @secure + */ + update = (data: ViewUpdateInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/view/update`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags view + * @name Delete + * @summary 彻底删除 + * @request DELETE:/api/admin/view/delete + * @secure + */ + delete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/view/delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags view + * @name BatchDelete + * @summary 批量彻底删除 + * @request PUT:/api/admin/view/batch-delete + * @secure + */ + batchDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/view/batch-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags view + * @name SoftDelete + * @summary 删除 + * @request DELETE:/api/admin/view/soft-delete + * @secure + */ + softDelete = ( + query?: { + /** @format int64 */ + id?: number + }, + params: RequestParams = {} + ) => + this.request({ + path: `/api/admin/view/soft-delete`, + method: 'DELETE', + query: query, + secure: true, + ...params, + }) + /** + * No description + * + * @tags view + * @name BatchSoftDelete + * @summary 批量删除 + * @request PUT:/api/admin/view/batch-soft-delete + * @secure + */ + batchSoftDelete = (data: number[], params: RequestParams = {}) => + this.request({ + path: `/api/admin/view/batch-soft-delete`, + method: 'PUT', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) + /** + * No description + * + * @tags view + * @name Sync + * @summary 同步 + * @request POST:/api/admin/view/sync + * @secure + */ + sync = (data: ViewSyncInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/view/sync`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + ...params, + }) +} diff --git a/src/api/admin/WebSocket.ts b/src/api/admin/WebSocket.ts new file mode 100644 index 0000000..7b38369 --- /dev/null +++ b/src/api/admin/WebSocket.ts @@ -0,0 +1,53 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import { ResultOutputBoolean, ResultOutputObject, WebSocketPreConnectInput } from './data-contracts' +import { ContentType, HttpClient, RequestParams } from './http-client' + +export class WebSocketApi extends HttpClient { + /** + * No description + * + * @tags web-socket + * @name PreConnect + * @summary 获取websocket分区 + * @request POST:/api/admin/web-socket/pre-connect + * @secure + */ + preConnect = (data: WebSocketPreConnectInput, params: RequestParams = {}) => + this.request({ + path: `/api/admin/web-socket/pre-connect`, + method: 'POST', + body: data, + secure: true, + type: ContentType.Json, + format: 'json', + ...params, + }) + /** + * No description + * + * @tags web-socket + * @name IsUseIm + * @summary 是否使用im + * @request GET:/api/admin/web-socket/is-use-im + * @secure + */ + isUseIm = (params: RequestParams = {}) => + this.request({ + path: `/api/admin/web-socket/is-use-im`, + method: 'GET', + secure: true, + format: 'json', + ...params, + }) +} diff --git a/src/api/admin/data-contracts.ts b/src/api/admin/data-contracts.ts new file mode 100644 index 0000000..d9b6e28 --- /dev/null +++ b/src/api/admin/data-contracts.ts @@ -0,0 +1,6596 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +/** + * 账号类型:UserName=1,Mobile=2,Email=3 + * @format int32 + */ +export type AccountType = 1 | 2 | 3 + +/** 添加 */ +export interface ApiAddInput { + /** + * 所属模块 + * @format int64 + */ + parentId?: number | null + /** 接口名称 */ + label?: string | null + /** 接口地址 */ + path?: string | null + /** 接口提交方法 */ + httpMethods?: string | null + /** 说明 */ + description?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean +} + +/** 接口管理 */ +export interface ApiEntity { + /** + * 主键Id + * @format int64 + */ + id?: number + /** + * 创建者用户Id + * @format int64 + */ + createdUserId?: number | null + /** + * 创建者用户名 + * @maxLength 60 + */ + createdUserName?: string | null + /** + * 创建者姓名 + * @maxLength 60 + */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** + * 修改者用户Id + * @format int64 + */ + modifiedUserId?: number | null + /** + * 修改者用户名 + * @maxLength 60 + */ + modifiedUserName?: string | null + /** + * 修改者姓名 + * @maxLength 60 + */ + modifiedUserRealName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null + /** 是否删除 */ + isDeleted?: boolean + /** + * 所属模块 + * @format int64 + */ + parentId?: number + /** 接口命名 */ + name?: string | null + /** 接口名称 */ + label?: string | null + /** 接口地址 */ + path?: string | null + /** 接口提交方法 */ + httpMethods?: string | null + /** 启用接口日志 */ + enabledLog?: boolean + /** 启用请求参数 */ + enabledParams?: boolean + /** 启用响应结果 */ + enabledResult?: boolean + /** 说明 */ + description?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + childs?: ApiEntity[] | null + permissions?: PermissionEntity[] | null +} + +/** 接口列表 */ +export interface ApiGetListOutput { + /** + * 接口Id + * @format int64 + */ + id?: number + /** + * 接口父级 + * @format int64 + */ + parentId?: number | null + /** 接口命名 */ + name?: string | null + /** 接口名称 */ + label?: string | null + /** 接口地址 */ + path?: string | null + /** 接口提交方法 */ + httpMethods?: string | null + /** 启用操作日志 */ + enabledLog?: boolean + /** 启用请求参数 */ + enabledParams?: boolean + /** 启用响应结果 */ + enabledResult?: boolean + /** 说明 */ + description?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean +} + +/** 接口 */ +export interface ApiGetOutput { + /** + * 所属模块 + * @format int64 + */ + parentId?: number | null + /** 接口名称 */ + label?: string | null + /** 接口地址 */ + path?: string | null + /** 接口提交方法 */ + httpMethods?: string | null + /** 说明 */ + description?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + /** + * 接口Id + * @format int64 + */ + id: number +} + +/** 查询分页 */ +export interface ApiGetPageInput { + /** 接口名称 */ + label?: string | null +} + +/** 接口 */ +export interface ApiModel { + /** 请求方法 */ + httpMethods?: string | null + /** 请求地址 */ + path?: string | null +} + +/** 设置启用请求日志 */ +export interface ApiSetEnableLogInput { + /** + * 接口Id + * @format int64 + */ + apiId?: number + /** 是否启用请求参数 */ + enabledLog?: boolean +} + +/** 设置启用请求参数 */ +export interface ApiSetEnableParamsInput { + /** + * 接口Id + * @format int64 + */ + apiId?: number + /** 是否启用请求参数 */ + enabledParams?: boolean +} + +/** 设置启用请求参数 */ +export interface ApiSetEnableResultInput { + /** + * 接口Id + * @format int64 + */ + apiId?: number + /** 是否启用响应结果 */ + enabledResult?: boolean +} + +/** 接口同步 */ +export interface ApiSyncInput { + /** 接口同步列表 */ + apis?: ApiSyncModel[] | null +} + +/** 接口同步模型 */ +export interface ApiSyncModel { + /** 接口名称 */ + label?: string | null + /** 接口地址 */ + path?: string | null + /** 父级路径 */ + parentPath?: string | null + /** 接口提交方法 */ + httpMethods?: string | null +} + +/** 修改 */ +export interface ApiUpdateInput { + /** + * 所属模块 + * @format int64 + */ + parentId?: number | null + /** 接口名称 */ + label?: string | null + /** 接口地址 */ + path?: string | null + /** 接口提交方法 */ + httpMethods?: string | null + /** 说明 */ + description?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + /** + * 接口Id + * @format int64 + */ + id: number +} + +/** 邮箱更改密码 */ +export interface AuthChangePasswordByEmailInput { + /** + * 邮箱地址 + * @minLength 1 + */ + email: string + /** + * 验证码 + * @minLength 1 + */ + code: string + /** + * 验证码Id + * @minLength 1 + */ + codeId: string + /** + * 新密码 + * @minLength 1 + */ + newPassword: string + /** 确认新密码 */ + confirmPassword?: string | null +} + +/** 手机更改密码 */ +export interface AuthChangePasswordByMobileInput { + /** + * 手机号 + * @minLength 1 + */ + mobile: string + /** + * 验证码 + * @minLength 1 + */ + code: string + /** + * 验证码Id + * @minLength 1 + */ + codeId: string + /** + * 新密码 + * @minLength 1 + */ + newPassword: string + /** 确认新密码 */ + confirmPassword?: string | null +} + +/** 邮箱登录信息 */ +export interface AuthEmailLoginInput { + /** + * 邮箱地址 + * @minLength 1 + */ + email: string + /** + * 验证码 + * @minLength 1 + */ + code: string + /** + * 验证码Id + * @minLength 1 + */ + codeId: string +} + +/** 查询密钥 */ +export interface AuthGetPasswordEncryptKeyOutput { + /** 缓存键 */ + key?: string | null + /** 密码加密密钥 */ + encryptKey?: string | null + /** 密码加密向量 */ + iv?: string | null +} + +/** 用户信息 */ +export interface AuthGetUserInfoOutput { + /** 用户个人信息 */ + user?: AuthUserProfileOutput + /** 用户菜单列表 */ + menus?: AuthUserMenuOutput[] | null + /** 用户权限列表 */ + permissions?: string[] | null +} + +/** 用户权限 */ +export interface AuthGetUserPermissionsOutput { + /** 用户权限列表 */ + permissions?: string[] | null +} + +/** 登录信息 */ +export interface AuthLoginInput { + /** 用户名 */ + userName?: string | null + /** 手机号 */ + mobile?: string | null + /** 邮箱地址 */ + email?: string | null + /** 账号类型:UserName=1,Mobile=2,Email=3 */ + accountType?: AccountType + /** + * 密码 + * @minLength 1 + */ + password: string + /** 密码键 */ + passwordKey?: string | null + /** 验证码Id */ + captchaId?: string | null + /** 验证码数据 */ + captchaData?: string | null +} + +/** 手机号登录信息 */ +export interface AuthMobileLoginInput { + /** + * 手机号 + * @minLength 1 + */ + mobile: string + /** + * 验证码 + * @minLength 1 + */ + code: string + /** + * 验证码Id + * @minLength 1 + */ + codeId: string +} + +/** 邮箱注册 */ +export interface AuthRegByEmailInput { + /** + * 邮箱地址 + * @minLength 1 + */ + email: string + /** + * 验证码 + * @minLength 1 + */ + code: string + /** + * 验证码Id + * @minLength 1 + */ + codeId: string + /** + * 密码 + * @minLength 1 + */ + password: string + /** + * 企业名称 + * @minLength 1 + */ + corpName: string +} + +/** 手机号注册 */ +export interface AuthRegByMobileInput { + /** + * 手机号 + * @minLength 1 + */ + mobile: string + /** + * 验证码 + * @minLength 1 + */ + code: string + /** + * 验证码Id + * @minLength 1 + */ + codeId: string + /** + * 密码 + * @minLength 1 + */ + password: string + /** + * 企业名称 + * @minLength 1 + */ + corpName: string +} + +/** 用户菜单 */ +export interface AuthUserMenuOutput { + /** + * 权限Id + * @format int64 + */ + id?: number + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 路由地址 */ + path?: string | null + /** 路由命名 */ + name?: string | null + /** 视图地址 */ + viewPath?: string | null + /** 重定向地址 */ + redirect?: string | null + /** 权限名称 */ + label?: string | null + /** 图标 */ + icon?: string | null + /** 打开 */ + opened?: boolean | null + /** 隐藏 */ + hidden?: boolean + /** 打开新窗口 */ + newWindow?: boolean | null + /** 链接外显 */ + external?: boolean | null + /** 是否缓存 */ + isKeepAlive?: boolean + /** 是否固定 */ + isAffix?: boolean + /** 链接地址 */ + link?: string | null + /** 是否内嵌窗口 */ + isIframe?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number | null +} + +/** 用户个人信息 */ +export interface AuthUserProfileOutput { + /** 账号 */ + userName?: string | null + /** 姓名 */ + name?: string | null + /** 手机号 */ + mobile?: string | null + /** 昵称 */ + nickName?: string | null + /** 头像 */ + avatar?: string | null + /** 企业 */ + corpName?: string | null + /** 职位 */ + position?: string | null + /** 主属部门 */ + deptName?: string | null + /** 水印文案 */ + watermarkText?: string | null +} + +export interface CaptchaData { + id?: string | null + backgroundImage?: string | null + sliderImage?: string | null +} + +/** + * 数据范围:All=1,DeptWithChild=2,Dept=3,Self=4,Custom=5 + * @format int32 + */ +export type DataScope = 1 | 2 | 3 | 4 | 5 + +/** + * MySql=0,SqlServer=1,PostgreSQL=2,Oracle=3,Sqlite=4,OdbcOracle=5,OdbcSqlServer=6,OdbcMySql=7,OdbcPostgreSQL=8,Odbc=9,MsAccess=11,Dameng=12,ShenTong=14,KingbaseES=15,Firebird=16,Custom=17,ClickHouse=18,GBase=19,QuestDb=20,Xugu=21,CustomOracle=22,CustomSqlServer=23,CustomMySql=24,CustomPostgreSQL=25,DuckDB=26,TDengine=27 + * @format int32 + */ +export type DataType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 + +/** 添加字典 */ +export interface DictAddInput { + /** + * 字典类型Id + * @format int64 + */ + dictTypeId?: number + /** + * 字典名称 + * @minLength 1 + */ + name: string + /** 字典编码 */ + code?: string | null + /** 字典值 */ + value?: string | null + /** 说明 */ + description?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number | null +} + +/** 字典列表 */ +export interface DictGetListOutput { + /** 字典类型编码 */ + dictTypeCode?: string | null + /** 字典类型名称 */ + dictTypeName?: string | null + /** + * 主键Id + * @format int64 + */ + id?: number + /** 字典名称 */ + name?: string | null + /** 字典编码 */ + code?: string | null + /** 字典值 */ + value?: string | null +} + +/** 字典 */ +export interface DictGetOutput { + /** + * 字典类型Id + * @format int64 + */ + dictTypeId?: number + /** + * 字典名称 + * @minLength 1 + */ + name: string + /** 字典编码 */ + code?: string | null + /** 字典值 */ + value?: string | null + /** 说明 */ + description?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number | null + /** + * 主键Id + * @format int64 + */ + id: number +} + +/** 字典分页请求 */ +export interface DictGetPageInput { + /** + * 字典类型Id + * @format int64 + */ + dictTypeId?: number + /** 字典名称 */ + name?: string | null +} + +/** 字典分页响应 */ +export interface DictGetPageOutput { + /** + * 主键Id + * @format int64 + */ + id?: number + /** 字典名称 */ + name?: string | null + /** 字典编码 */ + code?: string | null + /** 字典值 */ + value?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number +} + +/** 字典类型 */ +export interface DictTypeAddInput { + /** + * 字典类型名称 + * @minLength 1 + */ + name: string + /** 字典类型编码 */ + code?: string | null + /** 描述 */ + description?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number +} + +/** 字典类型 */ +export interface DictTypeGetOutput { + /** + * 字典类型名称 + * @minLength 1 + */ + name: string + /** 字典类型编码 */ + code?: string | null + /** 描述 */ + description?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** + * 主键Id + * @format int64 + */ + id: number +} + +/** 字典类型分页请求 */ +export interface DictTypeGetPageInput { + /** 字典名称 */ + name?: string | null +} + +/** 字典类型分页响应 */ +export interface DictTypeGetPageOutput { + /** + * 主键Id + * @format int64 + */ + id?: number + /** 字典名称 */ + name?: string | null + /** 字典编码 */ + code?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number +} + +/** 修改 */ +export interface DictTypeUpdateInput { + /** + * 字典类型名称 + * @minLength 1 + */ + name: string + /** 字典类型编码 */ + code?: string | null + /** 描述 */ + description?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** + * 主键Id + * @format int64 + */ + id: number +} + +/** 修改 */ +export interface DictUpdateInput { + /** + * 字典类型Id + * @format int64 + */ + dictTypeId?: number + /** + * 字典名称 + * @minLength 1 + */ + name: string + /** 字典编码 */ + code?: string | null + /** 字典值 */ + value?: string | null + /** 说明 */ + description?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number | null + /** + * 主键Id + * @format int64 + */ + id: number +} + +/** 添加分组 */ +export interface DocAddGroupInput { + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 文档类型:Group=1,Markdown=2 */ + type?: DocType + /** 名称 */ + label?: string | null + /** 命名 */ + name?: string | null + /** 打开 */ + opened?: boolean | null +} + +/** 添加图片 */ +export interface DocAddImageInput { + /** + * 用户Id + * @format int64 + */ + documentId?: number + /** 请求路径 */ + url?: string | null +} + +/** 添加菜单 */ +export interface DocAddMenuInput { + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 文档类型:Group=1,Markdown=2 */ + type?: DocType + /** 命名 */ + name?: string | null + /** 名称 */ + label?: string | null + /** 说明 */ + description?: string | null +} + +/** 文档内容 */ +export interface DocGetContentOutput { + /** + * 编号 + * @format int64 + */ + id?: number + /** 名称 */ + label?: string | null + /** 内容 */ + content?: string | null +} + +/** 文档分组 */ +export interface DocGetGroupOutput { + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 文档类型:Group=1,Markdown=2 */ + type?: DocType + /** 名称 */ + label?: string | null + /** 命名 */ + name?: string | null + /** 打开 */ + opened?: boolean | null + /** + * 编号 + * @format int64 + */ + id: number +} + +/** 文档菜单 */ +export interface DocGetMenuOutput { + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 文档类型:Group=1,Markdown=2 */ + type?: DocType + /** 命名 */ + name?: string | null + /** 名称 */ + label?: string | null + /** 说明 */ + description?: string | null + /** + * 编号 + * @format int64 + */ + id: number +} + +/** 文档列表 */ +export interface DocListOutput { + /** + * 编号 + * @format int64 + */ + id?: number + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 名称 */ + label?: string | null + /** 文档类型:Group=1,Markdown=2 */ + type?: DocType + /** 命名 */ + name?: string | null + /** 描述 */ + description?: string | null + /** 组打开 */ + opened?: boolean | null +} + +/** + * 文档类型:Group=1,Markdown=2 + * @format int32 + */ +export type DocType = 1 | 2 + +/** 更新文档内容 */ +export interface DocUpdateContentInput { + /** + * 编号 + * @format int64 + */ + id: number + /** 名称 */ + label?: string | null + /** 内容 */ + content?: string | null + /** Html */ + html?: string | null +} + +/** 更新分组 */ +export interface DocUpdateGroupInput { + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 文档类型:Group=1,Markdown=2 */ + type?: DocType + /** 名称 */ + label?: string | null + /** 命名 */ + name?: string | null + /** 打开 */ + opened?: boolean | null + /** + * 编号 + * @format int64 + */ + id: number +} + +/** 更新菜单 */ +export interface DocUpdateMenuInput { + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 文档类型:Group=1,Markdown=2 */ + type?: DocType + /** 命名 */ + name?: string | null + /** 名称 */ + label?: string | null + /** 说明 */ + description?: string | null + /** + * 编号 + * @format int64 + */ + id: number +} + +export interface DynamicFilterInfo { + field?: string | null + /** Contains=0,StartsWith=1,EndsWith=2,NotContains=3,NotStartsWith=4,NotEndsWith=5,Equal=6,Equals=7,Eq=8,NotEqual=9,GreaterThan=10,GreaterThanOrEqual=11,LessThan=12,LessThanOrEqual=13,Range=14,DateRange=15,Any=16,NotAny=17,Custom=18 */ + operator?: DynamicFilterOperator + value?: any + /** And=0,Or=1 */ + logic?: DynamicFilterLogic + filters?: DynamicFilterInfo[] | null +} + +/** + * And=0,Or=1 + * @format int32 + */ +export type DynamicFilterLogic = 0 | 1 + +/** + * Contains=0,StartsWith=1,EndsWith=2,NotContains=3,NotStartsWith=4,NotEndsWith=5,Equal=6,Equals=7,Eq=8,NotEqual=9,GreaterThan=10,GreaterThanOrEqual=11,LessThan=12,LessThanOrEqual=13,Range=14,DateRange=15,Any=16,NotAny=17,Custom=18 + * @format int32 + */ +export type DynamicFilterOperator = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 + +/** 导出信息输入 */ +export interface ExportInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** 文件名 */ + fileName?: string | null +} + +/** 删除 */ +export interface FileDeleteInput { + /** + * 文件Id + * @format int64 + */ + id: number +} + +/** 文件 */ +export interface FileEntity { + /** + * 主键Id + * @format int64 + */ + id?: number + /** + * 创建者用户Id + * @format int64 + */ + createdUserId?: number | null + /** + * 创建者用户名 + * @maxLength 60 + */ + createdUserName?: string | null + /** + * 创建者姓名 + * @maxLength 60 + */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** + * 修改者用户Id + * @format int64 + */ + modifiedUserId?: number | null + /** + * 修改者用户名 + * @maxLength 60 + */ + modifiedUserName?: string | null + /** + * 修改者姓名 + * @maxLength 60 + */ + modifiedUserRealName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null + /** 是否删除 */ + isDeleted?: boolean + /** Invalid=0,Minio=1,Aliyun=2,QCloud=3,Qiniu=4,HuaweiCloud=5,BaiduCloud=6,Ctyun=7 */ + provider?: OSSProvider + /** 存储桶名称 */ + bucketName?: string | null + /** 文件目录 */ + fileDirectory?: string | null + /** + * 文件Guid + * @format uuid + */ + fileGuid?: string + /** 保存文件名 */ + saveFileName?: string | null + /** 文件名 */ + fileName?: string | null + /** 文件扩展名 */ + extension?: string | null + /** + * 文件字节长度 + * @format int64 + */ + size?: number + /** 文件大小格式化 */ + sizeFormat?: string | null + /** 链接地址 */ + linkUrl?: string | null + /** md5码,防止上传重复文件 */ + md5?: string | null +} + +/** 文件分页请求 */ +export interface FileGetPageInput { + /** 文件名 */ + fileName?: string | null +} + +/** 文件分页响应 */ +export interface FileGetPageOutput { + /** + * 文件Id + * @format int64 + */ + id?: number + /** OSS供应商 */ + providerName?: string | null + /** 存储桶名称 */ + bucketName?: string | null + /** 文件目录 */ + fileDirectory?: string | null + /** + * 文件Guid + * @format uuid + */ + fileGuid?: string + /** 文件名 */ + fileName?: string | null + /** 文件扩展名 */ + extension?: string | null + /** 文件大小格式化 */ + sizeFormat?: string | null + /** 链接地址 */ + linkUrl?: string | null + /** 创建者 */ + createdUserName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** 修改者 */ + modifiedUserName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null +} + +/** 导入信息输出 */ +export interface ImportOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** + * 新增数 + * @format int64 + */ + insertCount?: number + /** + * 更新数 + * @format int64 + */ + updateCount?: number +} + +/** 添加 */ +export interface LoginLogAddInput { + /** + * 租户Id + * @format int64 + */ + tenantId?: number | null + /** 姓名 */ + name?: string | null + /** IP */ + ip?: string | null + /** 国家 */ + country?: string | null + /** 省份 */ + province?: string | null + /** 城市 */ + city?: string | null + /** 网络服务商 */ + isp?: string | null + /** + * 耗时(毫秒) + * @format int64 + */ + elapsedMilliseconds?: number + /** 操作状态 */ + status?: boolean | null + /** 操作消息 */ + msg?: string | null + /** + * 创建者用户Id + * @format int64 + */ + createdUserId?: number | null + /** 创建者用户名 */ + createdUserName?: string | null + /** 创建者姓名 */ + createdUserRealName?: string | null +} + +/** 分页请求 */ +export interface LoginLogGetPageInput { + /** 创建者 */ + createdUserName?: string | null + /** 操作状态 */ + status?: boolean | null + /** IP */ + ip?: string | null + /** + * 创建开始时间 + * @format date-time + */ + addStartTime?: string | null + /** + * 创建结束时间 + * @format date-time + */ + addEndTime?: string | null +} + +/** 分页响应 */ +export interface LoginLogGetPageOutput { + /** + * 编号 + * @format int64 + */ + id?: number + /** 昵称 */ + nickName?: string | null + /** 创建者 */ + createdUserName?: string | null + /** IP */ + ip?: string | null + /** 国家 */ + country?: string | null + /** 省份 */ + province?: string | null + /** 城市 */ + city?: string | null + /** 网络服务商 */ + isp?: string | null + /** 浏览器 */ + browser?: string | null + /** 操作系统 */ + os?: string | null + /** 设备 */ + device?: string | null + /** + * 耗时(毫秒) + * @format int64 + */ + elapsedMilliseconds?: number + /** 操作状态 */ + status?: boolean + /** 操作消息 */ + msg?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null +} + +/** 添加 */ +export interface MsgAddInput { + /** 标题 */ + title?: string | null + /** 内容 */ + content?: string | null + /** + * 类型Id + * @format int64 + */ + typeId?: number + /** 类型名称 */ + typeName?: string | null + /** 消息状态:Draft=1,Published=2,Scheduled=3,Revoked=4,Archived=5 */ + status?: MsgStatusEnum +} + +/** 添加消息用户列表 */ +export interface MsgAddMsgUserListInput { + /** + * 消息 + * @format int64 + */ + msgId: number + /** 用户 */ + userIds?: number[] | null +} + +/** 消息用户列表 */ +export interface MsgGetMsgUserListOutput { + /** + * 主键Id + * @format int64 + */ + id?: number + /** 姓名 */ + name?: string | null + /** 手机号 */ + mobile?: string | null + /** 邮箱 */ + email?: string | null + /** 是否已读 */ + isRead?: boolean + /** + * 已读时间 + * @format date-time + */ + readTime?: string | null +} + +/** 消息 */ +export interface MsgGetOutput { + /** 标题 */ + title?: string | null + /** 内容 */ + content?: string | null + /** + * 类型Id + * @format int64 + */ + typeId?: number + /** 类型名称 */ + typeName?: string | null + /** 消息状态:Draft=1,Published=2,Scheduled=3,Revoked=4,Archived=5 */ + status?: MsgStatusEnum + /** + * 消息Id + * @format int64 + */ + id: number +} + +/** 消息分页请求 */ +export interface MsgGetPageInput { + /** 标题 */ + title?: string | null +} + +/** 消息分页响应 */ +export interface MsgGetPageOutput { + /** + * 消息Id + * @format int64 + */ + id?: number + /** 标题 */ + title?: string | null + /** + * 类型Id + * @format int64 + */ + typeId?: number + /** 类型名称 */ + typeName?: string | null + /** 消息状态:Draft=1,Published=2,Scheduled=3,Revoked=4,Archived=5 */ + status?: MsgStatusEnum + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null +} + +/** + * 消息状态:Draft=1,Published=2,Scheduled=3,Revoked=4,Archived=5 + * @format int32 + */ +export type MsgStatusEnum = 1 | 2 | 3 | 4 | 5 + +/** 添加 */ +export interface MsgTypeAddInput { + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 说明 */ + description?: string | null +} + +/** 查询列表响应 */ +export interface MsgTypeGetListOutput { + /** + * 主键 + * @format int64 + */ + id?: number + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 描述 */ + description?: string | null +} + +/** 消息类型 */ +export interface MsgTypeGetOutput { + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 说明 */ + description?: string | null + /** + * 消息分类Id + * @format int64 + */ + id: number +} + +/** 修改 */ +export interface MsgTypeUpdateInput { + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 说明 */ + description?: string | null + /** + * 消息分类Id + * @format int64 + */ + id: number +} + +/** 修改 */ +export interface MsgUpdateInput { + /** 标题 */ + title?: string | null + /** 内容 */ + content?: string | null + /** + * 类型Id + * @format int64 + */ + typeId?: number + /** 类型名称 */ + typeName?: string | null + /** 消息状态:Draft=1,Published=2,Scheduled=3,Revoked=4,Archived=5 */ + status?: MsgStatusEnum + /** + * 消息Id + * @format int64 + */ + id: number +} + +/** + * Invalid=0,Minio=1,Aliyun=2,QCloud=3,Qiniu=4,HuaweiCloud=5,BaiduCloud=6,Ctyun=7 + * @format int32 + */ +export type OSSProvider = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 + +/** 添加 */ +export interface OperationLogAddInput { + /** 姓名 */ + name?: string | null + /** 接口名称 */ + apiLabel?: string | null + /** 接口地址 */ + apiPath?: string | null + /** 接口提交方法 */ + apiMethod?: string | null + /** IP */ + ip?: string | null + /** 国家 */ + country?: string | null + /** 省份 */ + province?: string | null + /** 城市 */ + city?: string | null + /** 网络服务商 */ + isp?: string | null + /** 浏览器 */ + browser?: string | null + /** 操作系统 */ + os?: string | null + /** 设备 */ + device?: string | null + /** 浏览器信息 */ + browserInfo?: string | null + /** + * 耗时(毫秒) + * @format int64 + */ + elapsedMilliseconds?: number + /** 操作状态 */ + status?: boolean | null + /** 操作消息 */ + msg?: string | null + /** 操作参数 */ + params?: string | null + /** + * 状态码 + * @format int32 + */ + statusCode?: number | null + /** 操作结果 */ + result?: string | null +} + +/** 查询分页请求 */ +export interface OperationLogGetPageInput { + /** 创建者 */ + createdUserName?: string | null + /** 操作状态 */ + status?: boolean | null + /** 操作接口 */ + api?: string | null + /** IP */ + ip?: string | null + /** + * 创建开始时间 + * @format date-time + */ + addStartTime?: string | null + /** + * 创建结束时间 + * @format date-time + */ + addEndTime?: string | null +} + +/** 查询分页响应 */ +export interface OperationLogGetPageOutput { + /** + * 编号 + * @format int64 + */ + id?: number + /** 昵称 */ + nickName?: string | null + /** 接口名称 */ + apiLabel?: string | null + /** 接口地址 */ + apiPath?: string | null + /** 接口提交方法 */ + apiMethod?: string | null + /** IP */ + ip?: string | null + /** 国家 */ + country?: string | null + /** 省份 */ + province?: string | null + /** 城市 */ + city?: string | null + /** 网络服务商 */ + isp?: string | null + /** 浏览器 */ + browser?: string | null + /** 操作系统 */ + os?: string | null + /** 设备 */ + device?: string | null + /** + * 耗时(毫秒) + * @format int64 + */ + elapsedMilliseconds?: number + /** 操作状态 */ + status?: boolean + /** + * 状态码 + * @format int32 + */ + statusCode?: number | null + /** 操作消息 */ + msg?: string | null + /** 请求参数 */ + params?: string | null + /** 响应结果 */ + result?: string | null + /** 创建者 */ + createdUserName?: string | null + /** 创建者姓名 */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null +} + +/** 添加 */ +export interface OrgAddInput { + /** + * 父级 + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 值 */ + value?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 描述 */ + description?: string | null +} + +/** 组织架构 */ +export interface OrgEntity { + /** + * 主键Id + * @format int64 + */ + id?: number + /** + * 创建者用户Id + * @format int64 + */ + createdUserId?: number | null + /** + * 创建者用户名 + * @maxLength 60 + */ + createdUserName?: string | null + /** + * 创建者姓名 + * @maxLength 60 + */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** + * 修改者用户Id + * @format int64 + */ + modifiedUserId?: number | null + /** + * 修改者用户名 + * @maxLength 60 + */ + modifiedUserName?: string | null + /** + * 修改者姓名 + * @maxLength 60 + */ + modifiedUserRealName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null + /** 是否删除 */ + isDeleted?: boolean + /** + * 租户Id + * @format int64 + */ + tenantId?: number | null + /** + * 父级 + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 值 */ + value?: string | null + /** + * 成员数 + * @format int32 + */ + memberCount?: number + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 描述 */ + description?: string | null + /** 员工列表 */ + staffs?: UserStaffEntity[] | null + /** 用户列表 */ + users?: UserEntity[] | null + /** 角色列表 */ + roles?: RoleEntity[] | null + /** 子级列表 */ + childs?: OrgEntity[] | null +} + +/** 部门列表 */ +export interface OrgGetListOutput { + /** + * 主键Id + * @format int64 + */ + id?: number + /** + * 父级 + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 值 */ + value?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 描述 */ + description?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null +} + +/** 部门 */ +export interface OrgGetOutput { + /** + * 父级 + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 值 */ + value?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 描述 */ + description?: string | null + /** + * 主键Id + * @format int64 + */ + id: number +} + +/** 部门路径列表 */ +export interface OrgGetSimpleListWithPathOutput { + /** + * 部门Id + * @format int64 + */ + id?: number + /** 部门路径 */ + path?: string | null +} + +/** 修改 */ +export interface OrgUpdateInput { + /** + * 父级 + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 值 */ + value?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 描述 */ + description?: string | null + /** + * 主键Id + * @format int64 + */ + id: number +} + +/** 分页信息输入 */ +export interface PageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number +} + +/** 分页信息输入 */ +export interface PageInputApiGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 查询分页 */ + filter?: ApiGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputDictGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 字典分页请求 */ + filter?: DictGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputDictTypeGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 字典类型分页请求 */ + filter?: DictTypeGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputFileGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 文件分页请求 */ + filter?: FileGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputLoginLogGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 分页请求 */ + filter?: LoginLogGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputMsgGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 消息分页请求 */ + filter?: MsgGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputOperationLogGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 查询分页请求 */ + filter?: OperationLogGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputPkgGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 套餐分页请求 */ + filter?: PkgGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputPkgGetPkgTenantListInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 套餐租户列表请求 */ + filter?: PkgGetPkgTenantListInput +} + +/** 分页信息输入 */ +export interface PageInputPrintTemplateGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 分页请求 */ + filter?: PrintTemplateGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputRegionGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 地区分页请求 */ + filter?: RegionGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputRoleGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 角色分页请求 */ + filter?: RoleGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputSiteMsgGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 站点消息分页请求 */ + filter?: SiteMsgGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputTaskGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 任务分页请求 */ + filter?: TaskGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputTaskLogGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 任务日志分页请求 */ + filter?: TaskLogGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputTenantGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 租户分页请求 */ + filter?: TenantGetPageInput +} + +/** 分页信息输入 */ +export interface PageInputUserGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 用户分页查询条件 */ + filter?: UserGetPageInput +} + +/** 分页信息输出 */ +export interface PageOutputApiEntity { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: ApiEntity[] | null +} + +/** 分页信息输出 */ +export interface PageOutputDictGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: DictGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputDictTypeGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: DictTypeGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputFileGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: FileGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputLoginLogGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: LoginLogGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputMsgGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: MsgGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputOperationLogGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: OperationLogGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputPkgGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: PkgGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputPkgGetPkgTenantListOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: PkgGetPkgTenantListOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputPrintTemplateGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: PrintTemplateGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputRegionGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: RegionGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputRoleGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: RoleGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputSiteMsgGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: SiteMsgGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputTaskGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: TaskGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputTaskLog { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: TaskLog[] | null +} + +/** 分页信息输出 */ +export interface PageOutputTenantGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: TenantGetPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputUserGetDeletedUserPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: UserGetDeletedUserPageOutput[] | null +} + +/** 分页信息输出 */ +export interface PageOutputUserGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: UserGetPageOutput[] | null +} + +/** + * 密码加密类型:MD5Encrypt32=0,PasswordHasher=1 + * @format int32 + */ +export type PasswordEncryptType = 0 | 1 + +/** 添加权限点 */ +export interface PermissionAddDotInput { + /** 平台 */ + platform?: string | null + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 关联接口 */ + apiIds?: number[] | null + /** 权限名称 */ + label?: string | null + /** 权限编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** 图标 */ + icon?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean +} + +/** 条件分组 */ +export interface PermissionAddGroupInput { + /** 平台 */ + platform?: string | null + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** + * 视图 + * @format int64 + */ + viewId?: number | null + /** 路由命名 */ + name?: string | null + /** 访问路由地址 */ + path?: string | null + /** 重定向地址 */ + redirect?: string | null + /** 权限名称 */ + label?: string | null + /** 隐藏 */ + hidden?: boolean + /** 图标 */ + icon?: string | null + /** 展开 */ + opened?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean +} + +/** 添加菜单 */ +export interface PermissionAddMenuInput { + /** 平台 */ + platform?: string | null + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** + * 视图 + * @format int64 + */ + viewId?: number | null + /** 路由命名 */ + name?: string | null + /** 路由地址 */ + path?: string | null + /** 权限名称 */ + label?: string | null + /** 说明 */ + description?: string | null + /** 隐藏 */ + hidden?: boolean + /** 图标 */ + icon?: string | null + /** 打开新窗口 */ + newWindow?: boolean + /** 链接外显 */ + external?: boolean + /** 是否缓存 */ + isKeepAlive?: boolean + /** 是否固定 */ + isAffix?: boolean + /** 链接地址 */ + link?: string | null + /** 是否内嵌窗口 */ + isIframe?: boolean + /** 是否系统权限 */ + isSystem?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean +} + +/** 权限分配 */ +export interface PermissionAssignInput { + /** 平台 */ + platform?: string | null + /** @format int64 */ + roleId: number + permissionIds: number[] +} + +/** 权限 */ +export interface PermissionEntity { + /** + * 主键Id + * @format int64 + */ + id?: number + /** + * 创建者用户Id + * @format int64 + */ + createdUserId?: number | null + /** + * 创建者用户名 + * @maxLength 60 + */ + createdUserName?: string | null + /** + * 创建者姓名 + * @maxLength 60 + */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** + * 修改者用户Id + * @format int64 + */ + modifiedUserId?: number | null + /** + * 修改者用户名 + * @maxLength 60 + */ + modifiedUserName?: string | null + /** + * 修改者姓名 + * @maxLength 60 + */ + modifiedUserRealName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null + /** 是否删除 */ + isDeleted?: boolean + /** 平台 */ + platform?: string | null + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 权限名称 */ + label?: string | null + /** 权限编码 */ + code?: string | null + /** 权限类型:Group=1,Menu=2,Dot=3 */ + type?: PermissionType + /** + * 视图Id + * @format int64 + */ + viewId?: number | null + /** 视图管理 */ + view?: ViewEntity + /** 路由命名 */ + name?: string | null + /** 路由地址 */ + path?: string | null + /** 重定向地址 */ + redirect?: string | null + /** 图标 */ + icon?: string | null + /** 隐藏 */ + hidden?: boolean + /** 展开分组 */ + opened?: boolean + /** 打开新窗口 */ + newWindow?: boolean + /** 链接外显 */ + external?: boolean + /** 是否缓存 */ + isKeepAlive?: boolean + /** 是否固定 */ + isAffix?: boolean + /** 链接地址 */ + link?: string | null + /** 是否内嵌窗口 */ + isIframe?: boolean + /** 是否系统权限 */ + isSystem?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 描述 */ + description?: string | null + /** 启用 */ + enabled?: boolean + apis?: ApiEntity[] | null + childs?: PermissionEntity[] | null +} + +/** 权限点 */ +export interface PermissionGetDotOutput { + /** 平台 */ + platform?: string | null + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 关联接口 */ + apiIds?: number[] | null + /** 权限名称 */ + label?: string | null + /** 权限编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** 图标 */ + icon?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + /** + * 权限Id + * @format int64 + */ + id: number +} + +/** 权限分组 */ +export interface PermissionGetGroupOutput { + /** 平台 */ + platform?: string | null + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** + * 视图 + * @format int64 + */ + viewId?: number | null + /** 路由命名 */ + name?: string | null + /** 访问路由地址 */ + path?: string | null + /** 重定向地址 */ + redirect?: string | null + /** 权限名称 */ + label?: string | null + /** 隐藏 */ + hidden?: boolean + /** 图标 */ + icon?: string | null + /** 展开 */ + opened?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + /** + * 权限Id + * @format int64 + */ + id: number +} + +/** 查询列表 */ +export interface PermissionGetListInput { + /** 平台 */ + platform?: string | null + /** 路由地址 */ + path?: string | null + /** 权限名称 */ + label?: string | null +} + +/** 权限列表 */ +export interface PermissionGetListOutput { + /** + * 权限Id + * @format int64 + */ + id?: number + /** 平台 */ + platform?: string | null + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 权限名称 */ + label?: string | null + /** 权限类型:Group=1,Menu=2,Dot=3 */ + type?: PermissionType + /** 路由地址 */ + path?: string | null + /** 重定向地址 */ + redirect?: string | null + /** 视图地址 */ + viewPath?: string | null + /** 链接地址 */ + link?: string | null + /** 接口路径 */ + apiPaths?: string | null + /** 图标 */ + icon?: string | null + /** 展开 */ + opened?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number | null + /** 描述 */ + description?: string | null + /** 启用 */ + enabled?: boolean +} + +/** 权限菜单 */ +export interface PermissionGetMenuOutput { + /** 平台 */ + platform?: string | null + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** + * 视图 + * @format int64 + */ + viewId?: number | null + /** 路由命名 */ + name?: string | null + /** 路由地址 */ + path?: string | null + /** 权限名称 */ + label?: string | null + /** 说明 */ + description?: string | null + /** 隐藏 */ + hidden?: boolean + /** 图标 */ + icon?: string | null + /** 打开新窗口 */ + newWindow?: boolean + /** 链接外显 */ + external?: boolean + /** 是否缓存 */ + isKeepAlive?: boolean + /** 是否固定 */ + isAffix?: boolean + /** 链接地址 */ + link?: string | null + /** 是否内嵌窗口 */ + isIframe?: boolean + /** 是否系统权限 */ + isSystem?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + /** + * 权限Id + * @format int64 + */ + id: number +} + +/** 权限列表 */ +export interface PermissionGetPermissionListOutput { + /** + * 权限Id + * @format int64 + */ + id?: number + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 权限名称 */ + label?: string | null + /** 行显示 */ + row?: boolean + /** 权限列表 */ + children?: PermissionGetPermissionListOutput[] | null +} + +/** + * 权限类型:Group=1,Menu=2,Dot=3 + * @format int32 + */ +export type PermissionType = 1 | 2 | 3 + +/** 修改权限点 */ +export interface PermissionUpdateDotInput { + /** 平台 */ + platform?: string | null + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** 关联接口 */ + apiIds?: number[] | null + /** 权限名称 */ + label?: string | null + /** 权限编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** 图标 */ + icon?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + /** + * 权限Id + * @format int64 + */ + id: number +} + +/** 修改权限分组 */ +export interface PermissionUpdateGroupInput { + /** 平台 */ + platform?: string | null + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** + * 视图 + * @format int64 + */ + viewId?: number | null + /** 路由命名 */ + name?: string | null + /** 访问路由地址 */ + path?: string | null + /** 重定向地址 */ + redirect?: string | null + /** 权限名称 */ + label?: string | null + /** 隐藏 */ + hidden?: boolean + /** 图标 */ + icon?: string | null + /** 展开 */ + opened?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + /** + * 权限Id + * @format int64 + */ + id: number +} + +/** 修改权限菜单 */ +export interface PermissionUpdateMenuInput { + /** 平台 */ + platform?: string | null + /** + * 父级节点 + * @format int64 + */ + parentId?: number + /** + * 视图 + * @format int64 + */ + viewId?: number | null + /** 路由命名 */ + name?: string | null + /** 路由地址 */ + path?: string | null + /** 权限名称 */ + label?: string | null + /** 说明 */ + description?: string | null + /** 隐藏 */ + hidden?: boolean + /** 图标 */ + icon?: string | null + /** 打开新窗口 */ + newWindow?: boolean + /** 链接外显 */ + external?: boolean + /** 是否缓存 */ + isKeepAlive?: boolean + /** 是否固定 */ + isAffix?: boolean + /** 链接地址 */ + link?: string | null + /** 是否内嵌窗口 */ + isIframe?: boolean + /** 是否系统权限 */ + isSystem?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + /** + * 权限Id + * @format int64 + */ + id: number +} + +/** 添加 */ +export interface PkgAddInput { + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean +} + +/** 添加套餐租户列表 */ +export interface PkgAddPkgTenantListInput { + /** + * 套餐 + * @format int64 + */ + pkgId: number + /** 租户列表 */ + tenantIds?: number[] | null +} + +/** 套餐 */ +export interface PkgEntity { + /** + * 主键Id + * @format int64 + */ + id?: number + /** + * 创建者用户Id + * @format int64 + */ + createdUserId?: number | null + /** + * 创建者用户名 + * @maxLength 60 + */ + createdUserName?: string | null + /** + * 创建者姓名 + * @maxLength 60 + */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** + * 修改者用户Id + * @format int64 + */ + modifiedUserId?: number | null + /** + * 修改者用户名 + * @maxLength 60 + */ + modifiedUserName?: string | null + /** + * 修改者姓名 + * @maxLength 60 + */ + modifiedUserRealName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null + /** 是否删除 */ + isDeleted?: boolean + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 子级列表 */ + childs?: PkgEntity[] | null + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 租户列表 */ + tenants?: TenantEntity[] | null + /** 权限列表 */ + permissions?: PermissionEntity[] | null +} + +/** 套餐列表响应 */ +export interface PkgGetListOutput { + /** + * 主键 + * @format int64 + */ + id?: number + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 描述 */ + description?: string | null + /** 启用 */ + enabled?: boolean + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null +} + +/** 套餐 */ +export interface PkgGetOutput { + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + /** + * 套餐Id + * @format int64 + */ + id: number +} + +/** 套餐分页请求 */ +export interface PkgGetPageInput { + /** 名称 */ + name?: string | null +} + +/** 套餐分页响应 */ +export interface PkgGetPageOutput { + /** + * 主键 + * @format int64 + */ + id?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null +} + +/** 套餐租户列表请求 */ +export interface PkgGetPkgTenantListInput { + /** 租户名 */ + tenantName?: string | null + /** + * 套餐Id + * @format int64 + */ + pkgId?: number | null +} + +/** 套餐租户列表响应 */ +export interface PkgGetPkgTenantListOutput { + /** + * 主键Id + * @format int64 + */ + id?: number + /** 租户名 */ + name?: string | null + /** 租户编码 */ + code?: string | null +} + +/** 设置套餐权限 */ +export interface PkgSetPkgPermissionsInput { + /** 平台 */ + platform?: string | null + /** @format int64 */ + pkgId: number + permissionIds: number[] +} + +/** 修改 */ +export interface PkgUpdateInput { + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + /** + * 套餐Id + * @format int64 + */ + id: number +} + +/** 添加 */ +export interface PrintTemplateAddInput { + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number +} + +/** 表单响应 */ +export interface PrintTemplateGetOutput { + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** + * 打印模板Id + * @format int64 + */ + id: number + /** + * 版本 + * @format int64 + */ + version?: number +} + +/** 分页请求 */ +export interface PrintTemplateGetPageInput { + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null +} + +/** 分页响应 */ +export interface PrintTemplateGetPageOutput { + /** + * 打印模板Id + * @format int64 + */ + id?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** + * 版本 + * @format int64 + */ + version?: number +} + +/** 修改模板响应 */ +export interface PrintTemplateGetUpdateTemplateOutput { + /** + * 打印模板Id + * @format int64 + */ + id: number + /** 模板 */ + template?: string | null + /** 打印数据 */ + printData?: string | null + /** + * 版本 + * @format int64 + */ + version?: number +} + +/** 设置启用 */ +export interface PrintTemplateSetEnableInput { + /** + * 打印模板Id + * @format int64 + */ + printTemplateId?: number + /** 是否启用 */ + enabled?: boolean +} + +/** 修改 */ +export interface PrintTemplateUpdateInput { + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** + * 打印模板Id + * @format int64 + */ + id: number + /** + * 版本 + * @format int64 + */ + version?: number +} + +/** 修改模板 */ +export interface PrintTemplateUpdateTemplateInput { + /** + * 打印模板Id + * @format int64 + */ + id: number + /** 模板 */ + template?: string | null + /** 打印数据 */ + printData?: string | null + /** + * 版本 + * @format int64 + */ + version?: number +} + +/** 项目配置 */ +export interface ProjectConfig { + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 版本 */ + version?: string | null + /** 描述 */ + description?: string | null +} + +/** 添加 */ +export interface RegionAddInput { + /** + * 上级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 简称 */ + shortName?: string | null + /** 地区级别:Province=1,City=2,County=3,Town(镇/乡)=4,Vilage(村/社区)=5 */ + level?: RegionLevel + /** 代码 */ + code?: string | null + /** 驻地 */ + capital?: string | null + /** + * 人口(万人) + * @format int32 + */ + population?: number | null + /** + * 面积(平方千米) + * @format int32 + */ + area?: number | null + /** 区号 */ + areaCode?: string | null + /** 邮编 */ + zipCode?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number | null + /** 热门 */ + hot?: boolean + /** 启用 */ + enabled?: boolean +} + +/** 下级列表 */ +export interface RegionGetChildListOutput { + /** + * 主键Id + * @format int64 + */ + id?: number + /** 名称 */ + name?: string | null + /** 地区级别:Province=1,City=2,County=3,Town(镇/乡)=4,Vilage(村/社区)=5 */ + level?: RegionLevel + /** 拼音 */ + pinyin?: string | null + /** 拼音首字母 */ + pinyinFirst?: string | null + /** 启用 */ + enabled?: boolean + /** 热门 */ + hot?: boolean + /** 叶子节点 */ + leaf?: boolean +} + +/** 地区列表请求 */ +export interface RegionGetListInput { + /** + * 上级Id + * @format int64 + */ + parentId?: number + /** 热门 */ + hot?: boolean | null + /** 启用 */ + enabled?: boolean | null +} + +/** 地区 */ +export interface RegionGetOutput { + /** + * 上级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 简称 */ + shortName?: string | null + /** 地区级别:Province=1,City=2,County=3,Town(镇/乡)=4,Vilage(村/社区)=5 */ + level?: RegionLevel + /** 代码 */ + code?: string | null + /** 驻地 */ + capital?: string | null + /** + * 人口(万人) + * @format int32 + */ + population?: number | null + /** + * 面积(平方千米) + * @format int32 + */ + area?: number | null + /** 区号 */ + areaCode?: string | null + /** 邮编 */ + zipCode?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number | null + /** 热门 */ + hot?: boolean + /** 启用 */ + enabled?: boolean + /** + * 主键Id + * @format int64 + */ + id: number + /** 上级Id列表 */ + parentIdList?: number[] | null +} + +/** 地区分页请求 */ +export interface RegionGetPageInput { + /** + * 上级Id + * @format int64 + */ + parentId?: number | null + /** 名称 */ + name?: string | null + /** 地区级别:Province=1,City=2,County=3,Town(镇/乡)=4,Vilage(村/社区)=5 */ + level?: RegionLevel + /** 热门 */ + hot?: boolean | null + /** 启用 */ + enabled?: boolean | null +} + +/** 地区分页响应 */ +export interface RegionGetPageOutput { + /** + * 主键Id + * @format int64 + */ + id?: number + /** + * 上级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 简称 */ + shortName?: string | null + /** 地区级别:Province=1,City=2,County=3,Town(镇/乡)=4,Vilage(村/社区)=5 */ + level?: RegionLevel + /** 代码 */ + code?: string | null + /** 拼音 */ + pinyin?: string | null + /** 拼音首字母 */ + pinyinFirst?: string | null + /** 驻地 */ + capital?: string | null + /** + * 人口(万人) + * @format int32 + */ + population?: number | null + /** + * 面积(平方千米) + * @format int32 + */ + area?: number | null + /** 区号 */ + areaCode?: string | null + /** 邮编 */ + zipCode?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number | null + /** 热门 */ + hot?: boolean + /** 启用 */ + enabled?: boolean +} + +/** + * 地区级别:Province=1,City=2,County=3,Town(镇/乡)=4,Vilage(村/社区)=5 + * @format int32 + */ +export type RegionLevel = 1 | 2 | 3 | 4 | 5 + +/** 设置启用 */ +export interface RegionSetEnableInput { + /** + * 地区Id + * @format int64 + */ + regionId?: number + /** 是否启用 */ + enabled?: boolean +} + +/** 设置热门 */ +export interface RegionSetHotInput { + /** + * 地区Id + * @format int64 + */ + regionId?: number + /** 热门 */ + hot?: boolean +} + +/** 修改 */ +export interface RegionUpdateInput { + /** + * 上级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 简称 */ + shortName?: string | null + /** 地区级别:Province=1,City=2,County=3,Town(镇/乡)=4,Vilage(村/社区)=5 */ + level?: RegionLevel + /** 代码 */ + code?: string | null + /** 驻地 */ + capital?: string | null + /** + * 人口(万人) + * @format int32 + */ + population?: number | null + /** + * 面积(平方千米) + * @format int32 + */ + area?: number | null + /** 区号 */ + areaCode?: string | null + /** 邮编 */ + zipCode?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number | null + /** 热门 */ + hot?: boolean + /** 启用 */ + enabled?: boolean + /** + * 主键Id + * @format int64 + */ + id: number +} + +/** 结果输出 */ +export interface ResultOutputApiGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 接口 */ + data?: ApiGetOutput +} + +/** 结果输出 */ +export interface ResultOutputAuthGetPasswordEncryptKeyOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 查询密钥 */ + data?: AuthGetPasswordEncryptKeyOutput +} + +/** 结果输出 */ +export interface ResultOutputAuthGetUserInfoOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 用户信息 */ + data?: AuthGetUserInfoOutput +} + +/** 结果输出 */ +export interface ResultOutputAuthGetUserPermissionsOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 用户权限 */ + data?: AuthGetUserPermissionsOutput +} + +/** 结果输出 */ +export interface ResultOutputAuthUserProfileOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 用户个人信息 */ + data?: AuthUserProfileOutput +} + +/** 结果输出 */ +export interface ResultOutputBoolean { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: boolean +} + +/** 结果输出 */ +export interface ResultOutputCaptchaData { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + data?: CaptchaData +} + +/** 结果输出 */ +export interface ResultOutputDictGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 字典 */ + data?: DictGetOutput +} + +/** 结果输出 */ +export interface ResultOutputDictTypeGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 字典类型 */ + data?: DictTypeGetOutput +} + +/** 结果输出 */ +export interface ResultOutputDictionaryStringListDictGetListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: Record +} + +/** 结果输出 */ +export interface ResultOutputDocGetContentOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 文档内容 */ + data?: DocGetContentOutput +} + +/** 结果输出 */ +export interface ResultOutputDocGetGroupOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 文档分组 */ + data?: DocGetGroupOutput +} + +/** 结果输出 */ +export interface ResultOutputDocGetMenuOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 文档菜单 */ + data?: DocGetMenuOutput +} + +/** 结果输出 */ +export interface ResultOutputFileEntity { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 文件 */ + data?: FileEntity +} + +/** 结果输出 */ +export interface ResultOutputIEnumerableObject { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: any[] | null +} + +/** 结果输出 */ +export interface ResultOutputImportOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 导入信息输出 */ + data?: ImportOutput +} + +/** 结果输出 */ +export interface ResultOutputInt64 { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** + * 数据 + * @format int64 + */ + data?: number +} + +/** 结果输出 */ +export interface ResultOutputListApiGetListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: ApiGetListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListAuthUserMenuOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: AuthUserMenuOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListDocListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: DocListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListFileEntity { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: FileEntity[] | null +} + +/** 结果输出 */ +export interface ResultOutputListInt64 { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: number[] | null +} + +/** 结果输出 */ +export interface ResultOutputListMsgGetMsgUserListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: MsgGetMsgUserListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListMsgTypeGetListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: MsgTypeGetListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListObject { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: any[] | null +} + +/** 结果输出 */ +export interface ResultOutputListOrgGetListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: OrgGetListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListOrgGetSimpleListWithPathOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: OrgGetSimpleListWithPathOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListPermissionGetListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: PermissionGetListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListPermissionGetPermissionListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: PermissionGetPermissionListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListPkgGetListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: PkgGetListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListPkgGetPkgTenantListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: PkgGetPkgTenantListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListProjectConfig { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: ProjectConfig[] | null +} + +/** 结果输出 */ +export interface ResultOutputListRegionGetChildListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: RegionGetChildListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListRoleGetListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: RoleGetListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListRoleGetRoleUserListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: RoleGetRoleUserListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputListString { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: string[] | null +} + +/** 结果输出 */ +export interface ResultOutputListViewGetListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: ViewGetListOutput[] | null +} + +/** 结果输出 */ +export interface ResultOutputMsgGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 消息 */ + data?: MsgGetOutput +} + +/** 结果输出 */ +export interface ResultOutputMsgTypeGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 消息类型 */ + data?: MsgTypeGetOutput +} + +/** 结果输出 */ +export interface ResultOutputObject { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: any +} + +/** 结果输出 */ +export interface ResultOutputOrgGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 部门 */ + data?: OrgGetOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputApiEntity { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputApiEntity +} + +/** 结果输出 */ +export interface ResultOutputPageOutputDictGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputDictGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputDictTypeGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputDictTypeGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputFileGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputFileGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputLoginLogGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputLoginLogGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputMsgGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputMsgGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputOperationLogGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputOperationLogGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputPkgGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputPkgGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputPkgGetPkgTenantListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputPkgGetPkgTenantListOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputPrintTemplateGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputPrintTemplateGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputRegionGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputRegionGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputRoleGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputRoleGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputSiteMsgGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputSiteMsgGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputTaskGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputTaskGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputTaskLog { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputTaskLog +} + +/** 结果输出 */ +export interface ResultOutputPageOutputTenantGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputTenantGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputUserGetDeletedUserPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputUserGetDeletedUserPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPageOutputUserGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputUserGetPageOutput +} + +/** 结果输出 */ +export interface ResultOutputPermissionGetDotOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 权限点 */ + data?: PermissionGetDotOutput +} + +/** 结果输出 */ +export interface ResultOutputPermissionGetGroupOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 权限分组 */ + data?: PermissionGetGroupOutput +} + +/** 结果输出 */ +export interface ResultOutputPermissionGetMenuOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 权限菜单 */ + data?: PermissionGetMenuOutput +} + +/** 结果输出 */ +export interface ResultOutputPkgGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 套餐 */ + data?: PkgGetOutput +} + +/** 结果输出 */ +export interface ResultOutputPrintTemplateGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 表单响应 */ + data?: PrintTemplateGetOutput +} + +/** 结果输出 */ +export interface ResultOutputPrintTemplateGetUpdateTemplateOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 修改模板响应 */ + data?: PrintTemplateGetUpdateTemplateOutput +} + +/** 结果输出 */ +export interface ResultOutputRegionGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 地区 */ + data?: RegionGetOutput +} + +/** 结果输出 */ +export interface ResultOutputRoleGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 角色 */ + data?: RoleGetOutput +} + +/** 结果输出 */ +export interface ResultOutputSiteMsgGetContentOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 消息内容 */ + data?: SiteMsgGetContentOutput +} + +/** 结果输出 */ +export interface ResultOutputString { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: string | null +} + +/** 结果输出 */ +export interface ResultOutputTaskGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 任务 */ + data?: TaskGetOutput +} + +/** 结果输出 */ +export interface ResultOutputTenantGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + data?: TenantGetOutput +} + +/** 结果输出 */ +export interface ResultOutputTokenInfo { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 令牌信息 */ + data?: TokenInfo +} + +/** 结果输出 */ +export interface ResultOutputUserGetBasicOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 用户基本信息 */ + data?: UserGetBasicOutput +} + +/** 结果输出 */ +export interface ResultOutputUserGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 用户 */ + data?: UserGetOutput +} + +/** 结果输出 */ +export interface ResultOutputUserGetPermissionOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 用户权限 */ + data?: UserGetPermissionOutput +} + +/** 结果输出 */ +export interface ResultOutputValidateResult { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + data?: ValidateResult +} + +/** 结果输出 */ +export interface ResultOutputViewGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 视图 */ + data?: ViewGetOutput +} + +/** 添加 */ +export interface RoleAddInput { + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 角色类型:Group=1,Role=2 */ + type?: RoleType + /** 数据范围:All=1,DeptWithChild=2,Dept=3,Self=4,Custom=5 */ + dataScope?: DataScope + /** 指定部门 */ + orgIds?: number[] | null + /** 部门列表 */ + orgs?: OrgEntity[] | null + /** 说明 */ + description?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number +} + +/** 添加角色用户列表 */ +export interface RoleAddRoleUserListInput { + /** + * 角色 + * @format int64 + */ + roleId: number + /** 用户 */ + userIds?: number[] | null +} + +/** 角色 */ +export interface RoleEntity { + /** + * 主键Id + * @format int64 + */ + id?: number + /** + * 创建者用户Id + * @format int64 + */ + createdUserId?: number | null + /** + * 创建者用户名 + * @maxLength 60 + */ + createdUserName?: string | null + /** + * 创建者姓名 + * @maxLength 60 + */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** + * 修改者用户Id + * @format int64 + */ + modifiedUserId?: number | null + /** + * 修改者用户名 + * @maxLength 60 + */ + modifiedUserName?: string | null + /** + * 修改者姓名 + * @maxLength 60 + */ + modifiedUserRealName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null + /** 是否删除 */ + isDeleted?: boolean + /** + * 租户Id + * @format int64 + */ + tenantId?: number | null + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 子级列表 */ + childs?: RoleEntity[] | null + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 角色类型:Group=1,Role=2 */ + type?: RoleType + /** 数据范围:All=1,DeptWithChild=2,Dept=3,Self=4,Custom=5 */ + dataScope?: DataScope + /** 说明 */ + description?: string | null + /** 隐藏 */ + hidden?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 用户列表 */ + users?: UserEntity[] | null + /** 部门列表 */ + orgs?: OrgEntity[] | null + /** 权限列表 */ + permissions?: PermissionEntity[] | null +} + +/** 角色列表响应 */ +export interface RoleGetListOutput { + /** + * 主键 + * @format int64 + */ + id?: number + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 角色类型:Group=1,Role=2 */ + type?: RoleType + /** + * 排序 + * @format int32 + */ + sort?: number + /** 描述 */ + description?: string | null +} + +/** 角色 */ +export interface RoleGetOutput { + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 角色类型:Group=1,Role=2 */ + type?: RoleType + /** 数据范围:All=1,DeptWithChild=2,Dept=3,Self=4,Custom=5 */ + dataScope?: DataScope + /** 指定部门 */ + orgIds?: number[] | null + /** 部门列表 */ + orgs?: OrgEntity[] | null + /** 说明 */ + description?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** + * 角色Id + * @format int64 + */ + id: number +} + +/** 角色分页请求 */ +export interface RoleGetPageInput { + /** 名称 */ + name?: string | null +} + +/** 角色分页响应 */ +export interface RoleGetPageOutput { + /** + * 主键 + * @format int64 + */ + id?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 说明 */ + description?: string | null + /** 隐藏 */ + hidden?: boolean + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null +} + +/** 角色用户列表响应 */ +export interface RoleGetRoleUserListOutput { + /** + * 主键Id + * @format int64 + */ + id?: number + /** 姓名 */ + name?: string | null + /** 手机号 */ + mobile?: string | null + /** 邮箱 */ + email?: string | null +} + +/** 设置数据范围 */ +export interface RoleSetDataScopeInput { + /** + * 角色Id + * @format int64 + */ + roleId: number + /** 数据范围:All=1,DeptWithChild=2,Dept=3,Self=4,Custom=5 */ + dataScope?: DataScope + /** 指定部门 */ + orgIds?: number[] | null +} + +/** + * 角色类型:Group=1,Role=2 + * @format int32 + */ +export type RoleType = 1 | 2 + +/** 修改 */ +export interface RoleUpdateInput { + /** + * 父级Id + * @format int64 + */ + parentId?: number + /** 名称 */ + name?: string | null + /** 编码 */ + code?: string | null + /** 角色类型:Group=1,Role=2 */ + type?: RoleType + /** 数据范围:All=1,DeptWithChild=2,Dept=3,Self=4,Custom=5 */ + dataScope?: DataScope + /** 指定部门 */ + orgIds?: number[] | null + /** 部门列表 */ + orgs?: OrgEntity[] | null + /** 说明 */ + description?: string | null + /** + * 排序 + * @format int32 + */ + sort?: number + /** + * 角色Id + * @format int64 + */ + id: number +} + +/** 发送邮箱验证码 */ +export interface SendEmailCodeInput { + /** + * 邮箱地址 + * @minLength 1 + */ + email: string + /** 验证码Id */ + codeId?: string | null + /** + * 验证码Id + * @minLength 1 + */ + captchaId: string + track: SlideTrack +} + +/** 发送短信验证码 */ +export interface SendSmsCodeInput { + /** + * 手机号 + * @minLength 1 + */ + mobile: string + /** 验证码Id */ + codeId?: string | null + /** + * 验证码Id + * @minLength 1 + */ + captchaId: string + track: SlideTrack +} + +/** + * 性别:Unknown(未知)=0,Male(男)=1,Female(女)=2 + * @format int32 + */ +export type Sex = 0 | 1 | 2 + +/** 消息内容 */ +export interface SiteMsgGetContentOutput { + /** + * 消息Id + * @format int64 + */ + msgId?: number + /** 标题 */ + title?: string | null + /** 类型名称 */ + typeName?: string | null + /** 内容 */ + content?: string | null + /** + * 接收时间 + * @format date-time + */ + receivedTime?: string | null + /** 是否已读 */ + isRead?: boolean | null +} + +/** 站点消息分页请求 */ +export interface SiteMsgGetPageInput { + /** 是否已读 */ + isRead?: boolean | null + /** + * 分类Id + * @format int64 + */ + typeId?: number | null + /** 标题 */ + title?: string | null +} + +/** 站点消息分页响应 */ +export interface SiteMsgGetPageOutput { + /** + * 唯一Id + * @format int64 + */ + id?: number + /** + * 消息Id + * @format int64 + */ + msgId?: number + /** 标题 */ + title?: string | null + /** + * 类型Id + * @format int64 + */ + typeId?: number + /** 类型名称 */ + typeName?: string | null + /** 是否已读 */ + isRead?: boolean | null + /** + * 接收时间 + * @format date-time + */ + receivedTime?: string | null +} + +export interface SlideTrack { + /** @format int32 */ + backgroundImageWidth?: number + /** @format int32 */ + backgroundImageHeight?: number + /** @format int32 */ + sliderImageWidth?: number + /** @format int32 */ + sliderImageHeight?: number + /** @format date-time */ + startTime?: string + /** @format date-time */ + endTime?: string + tracks?: Track[] | null + /** @format float */ + percent?: number +} + +/** 排序 */ +export interface SortInput { + /** 属性名称 */ + propName?: string | null + /** 排序方式:Asc=0,Desc=1 */ + order?: SortOrder + /** 是否升序 */ + isAscending?: boolean | null +} + +/** + * 排序方式:Asc=0,Desc=1 + * @format int32 + */ +export type SortOrder = 0 | 1 + +/** 员工添加 */ +export interface StaffAddInput { + /** 工号 */ + jobNumber?: string | null + /** 职位 */ + position?: string | null + /** 性别:Unknown(未知)=0,Male(男)=1,Female(女)=2 */ + sex?: Sex + /** + * 入职时间 + * @format date-time + */ + entryTime?: string | null + /** 企业微信名片 */ + workWeChatCard?: string | null + /** 个人简介 */ + introduce?: string | null +} + +/** 添加 */ +export interface TaskAddInput { + /** 任务标题 */ + topic?: string | null + /** 任务参数 */ + body?: string | null + /** + * 任务执行多少轮,-1为永久循环 + * @format int32 + */ + round?: number + /** SEC=1,RunOnDay=11,RunOnWeek=12,RunOnMonth=13,Custom=21 */ + interval?: TaskInterval + /** 定时参数 60,60,60,120,120,1200,1200 */ + intervalArgument?: string | null + /** 报警邮件,多个邮件地址则逗号分隔 */ + alarmEmail?: string | null + /** + * 失败重试次数 + * @format int32 + */ + failRetryCount?: number | null + /** + * 失败重试间隔(秒) + * @format int32 + */ + failRetryInterval?: number | null +} + +/** 任务 */ +export interface TaskGetOutput { + /** 任务标题 */ + topic?: string | null + /** 任务参数 */ + body?: string | null + /** + * 任务执行多少轮,-1为永久循环 + * @format int32 + */ + round?: number + /** SEC=1,RunOnDay=11,RunOnWeek=12,RunOnMonth=13,Custom=21 */ + interval?: TaskInterval + /** 定时参数 60,60,60,120,120,1200,1200 */ + intervalArgument?: string | null + /** 报警邮件,多个邮件地址则逗号分隔 */ + alarmEmail?: string | null + /** + * 失败重试次数 + * @format int32 + */ + failRetryCount?: number | null + /** + * 失败重试间隔(秒) + * @format int32 + */ + failRetryInterval?: number | null + /** + * 任务Id + * @minLength 1 + */ + id: string +} + +/** 任务分页请求 */ +export interface TaskGetPageInput { + /** 分组名称 */ + groupName?: string | null + /** 任务名称 */ + taskName?: string | null + /** 集群Id */ + clusterId?: string | null + /** Running=0,Paused=1,Completed=2 */ + taskStatus?: TaskStatus + /** + * 创建开始时间 + * @format date-time + */ + startAddTime?: string | null + /** + * 创建结束时间 + * @format date-time + */ + endAddTime?: string | null +} + +/** 任务分页响应 */ +export interface TaskGetPageOutput { + /** 主键 */ + id?: string | null + /** 任务标题 */ + topic?: string | null + /** 任务数据 */ + body?: string | null + /** + * 任务执行多少轮 + * @format int32 + */ + round?: number + /** SEC=1,RunOnDay=11,RunOnWeek=12,RunOnMonth=13,Custom=21 */ + interval?: TaskInterval + /** 定时参数值 */ + intervalArgument?: string | null + /** Running=0,Paused=1,Completed=2 */ + status?: TaskStatus + /** + * 创建时间 + * @format date-time + */ + createTime?: string + /** + * 最后运行时间 + * @format date-time + */ + lastRunTime?: string + /** + * 当前运行到第几轮 + * @format int32 + */ + currentRound?: number + /** + * 错次数 + * @format int32 + */ + errorTimes?: number +} + +/** + * SEC=1,RunOnDay=11,RunOnWeek=12,RunOnMonth=13,Custom=21 + * @format int32 + */ +export type TaskInterval = 1 | 11 | 12 | 13 | 21 + +export interface TaskLog { + taskId?: string | null + /** @format int32 */ + round?: number + /** @format int64 */ + elapsedMilliseconds?: number + success?: boolean + exception?: string | null + remark?: string | null + /** @format date-time */ + createTime?: string +} + +/** 任务日志分页请求 */ +export interface TaskLogGetPageInput { + /** 任务Id */ + taskId?: string | null +} + +/** + * Running=0,Paused=1,Completed=2 + * @format int32 + */ +export type TaskStatus = 0 | 1 | 2 + +/** 修改 */ +export interface TaskUpdateInput { + /** 任务标题 */ + topic?: string | null + /** 任务参数 */ + body?: string | null + /** + * 任务执行多少轮,-1为永久循环 + * @format int32 + */ + round?: number + /** SEC=1,RunOnDay=11,RunOnWeek=12,RunOnMonth=13,Custom=21 */ + interval?: TaskInterval + /** 定时参数 60,60,60,120,120,1200,1200 */ + intervalArgument?: string | null + /** 报警邮件,多个邮件地址则逗号分隔 */ + alarmEmail?: string | null + /** + * 失败重试次数 + * @format int32 + */ + failRetryCount?: number | null + /** + * 失败重试间隔(秒) + * @format int32 + */ + failRetryInterval?: number | null + /** + * 任务Id + * @minLength 1 + */ + id: string +} + +/** 添加 */ +export interface TenantAddInput { + /** + * 租户Id + * @format int64 + */ + id?: number + /** + * 企业名称 + * @minLength 1 + */ + name: string + /** 编码 */ + code?: string | null + /** 套餐Ids */ + pkgIds?: number[] | null + /** 姓名 */ + realName?: string | null + /** + * 账号 + * @minLength 1 + */ + userName: string + /** 密码 */ + password?: string | null + /** 手机号码 */ + phone?: string | null + /** 邮箱地址 */ + email?: string | null + /** 域名 */ + domain?: string | null + /** 数据库注册键 */ + dbKey?: string | null + /** MySql=0,SqlServer=1,PostgreSQL=2,Oracle=3,Sqlite=4,OdbcOracle=5,OdbcSqlServer=6,OdbcMySql=7,OdbcPostgreSQL=8,Odbc=9,MsAccess=11,Dameng=12,ShenTong=14,KingbaseES=15,Firebird=16,Custom=17,ClickHouse=18,GBase=19,QuestDb=20,Xugu=21,CustomOracle=22,CustomSqlServer=23,CustomMySql=24,CustomPostgreSQL=25,DuckDB=26,TDengine=27 */ + dbType?: DataType + /** 连接字符串 */ + connectionString?: string | null + /** 启用 */ + enabled?: boolean + /** 说明 */ + description?: string | null +} + +/** 租户 */ +export interface TenantEntity { + /** + * 主键Id + * @format int64 + */ + id?: number + /** + * 创建者用户Id + * @format int64 + */ + createdUserId?: number | null + /** + * 创建者用户名 + * @maxLength 60 + */ + createdUserName?: string | null + /** + * 创建者姓名 + * @maxLength 60 + */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** + * 修改者用户Id + * @format int64 + */ + modifiedUserId?: number | null + /** + * 修改者用户名 + * @maxLength 60 + */ + modifiedUserName?: string | null + /** + * 修改者姓名 + * @maxLength 60 + */ + modifiedUserRealName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null + /** 是否删除 */ + isDeleted?: boolean + /** + * 授权用户 + * @format int64 + */ + userId?: number + /** 用户 */ + user?: UserEntity + /** + * 授权部门 + * @format int64 + */ + orgId?: number + /** 组织架构 */ + org?: OrgEntity + /** 租户类型:Platform=1,Tenant=2 */ + tenantType?: TenantType + /** 域名 */ + domain?: string | null + /** 数据库注册键 */ + dbKey?: string | null + /** MySql=0,SqlServer=1,PostgreSQL=2,Oracle=3,Sqlite=4,OdbcOracle=5,OdbcSqlServer=6,OdbcMySql=7,OdbcPostgreSQL=8,Odbc=9,MsAccess=11,Dameng=12,ShenTong=14,KingbaseES=15,Firebird=16,Custom=17,ClickHouse=18,GBase=19,QuestDb=20,Xugu=21,CustomOracle=22,CustomSqlServer=23,CustomMySql=24,CustomPostgreSQL=25,DuckDB=26,TDengine=27 */ + dbType?: DataType + /** 连接字符串 */ + connectionString?: string | null + /** 启用 */ + enabled?: boolean + /** 说明 */ + description?: string | null + /** 套餐列表 */ + pkgs?: PkgEntity[] | null +} + +export interface TenantGetOutput { + /** + * 企业名称 + * @minLength 1 + */ + name: string + /** 编码 */ + code?: string | null + /** 姓名 */ + realName?: string | null + /** + * 账号 + * @minLength 1 + */ + userName: string + /** 密码 */ + password?: string | null + /** 手机号码 */ + phone?: string | null + /** 邮箱地址 */ + email?: string | null + /** 域名 */ + domain?: string | null + /** 数据库注册键 */ + dbKey?: string | null + /** MySql=0,SqlServer=1,PostgreSQL=2,Oracle=3,Sqlite=4,OdbcOracle=5,OdbcSqlServer=6,OdbcMySql=7,OdbcPostgreSQL=8,Odbc=9,MsAccess=11,Dameng=12,ShenTong=14,KingbaseES=15,Firebird=16,Custom=17,ClickHouse=18,GBase=19,QuestDb=20,Xugu=21,CustomOracle=22,CustomSqlServer=23,CustomMySql=24,CustomPostgreSQL=25,DuckDB=26,TDengine=27 */ + dbType?: DataType + /** 连接字符串 */ + connectionString?: string | null + /** 启用 */ + enabled?: boolean + /** 说明 */ + description?: string | null + /** + * 租户Id + * @format int64 + */ + id: number + /** 套餐列表 */ + pkgs?: PkgEntity[] | null + /** 套餐Id列表 */ + pkgIds?: number[] | null +} + +/** 租户分页请求 */ +export interface TenantGetPageInput { + /** 企业名称 */ + name?: string | null +} + +/** 租户分页响应 */ +export interface TenantGetPageOutput { + /** + * 主键 + * @format int64 + */ + id?: number + /** 企业名称 */ + name?: string | null + /** 企业编码 */ + code?: string | null + pkgs?: PkgEntity[] | null + /** 套餐 */ + pkgNames?: string[] | null + /** 姓名 */ + realName?: string | null + /** 账号 */ + userName?: string | null + /** 手机号码 */ + phone?: string | null + /** 邮箱地址 */ + email?: string | null + /** MySql=0,SqlServer=1,PostgreSQL=2,Oracle=3,Sqlite=4,OdbcOracle=5,OdbcSqlServer=6,OdbcMySql=7,OdbcPostgreSQL=8,Odbc=9,MsAccess=11,Dameng=12,ShenTong=14,KingbaseES=15,Firebird=16,Custom=17,ClickHouse=18,GBase=19,QuestDb=20,Xugu=21,CustomOracle=22,CustomSqlServer=23,CustomMySql=24,CustomPostgreSQL=25,DuckDB=26,TDengine=27 */ + dbType?: DataType + /** 数据库名称 */ + dbTypeName?: string | null + /** 启用 */ + enabled?: boolean + /** 说明 */ + description?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null +} + +/** 设置启用 */ +export interface TenantSetEnableInput { + /** + * 租户Id + * @format int64 + */ + tenantId?: number + /** 是否启用 */ + enabled?: boolean +} + +/** + * 租户类型:Platform=1,Tenant=2 + * @format int32 + */ +export type TenantType = 1 | 2 + +/** 修改 */ +export interface TenantUpdateInput { + /** + * 企业名称 + * @minLength 1 + */ + name: string + /** 编码 */ + code?: string | null + /** 套餐Ids */ + pkgIds?: number[] | null + /** 姓名 */ + realName?: string | null + /** + * 账号 + * @minLength 1 + */ + userName: string + /** 密码 */ + password?: string | null + /** 手机号码 */ + phone?: string | null + /** 邮箱地址 */ + email?: string | null + /** 域名 */ + domain?: string | null + /** 数据库注册键 */ + dbKey?: string | null + /** MySql=0,SqlServer=1,PostgreSQL=2,Oracle=3,Sqlite=4,OdbcOracle=5,OdbcSqlServer=6,OdbcMySql=7,OdbcPostgreSQL=8,Odbc=9,MsAccess=11,Dameng=12,ShenTong=14,KingbaseES=15,Firebird=16,Custom=17,ClickHouse=18,GBase=19,QuestDb=20,Xugu=21,CustomOracle=22,CustomSqlServer=23,CustomMySql=24,CustomPostgreSQL=25,DuckDB=26,TDengine=27 */ + dbType?: DataType + /** 连接字符串 */ + connectionString?: string | null + /** 启用 */ + enabled?: boolean + /** 说明 */ + description?: string | null + /** + * 租户Id + * @format int64 + */ + id: number +} + +/** 令牌信息 */ +export interface TokenInfo { + /** 访问令牌 */ + accessToken?: string | null + /** + * 访问令牌的过期时间 + * @format date-time + */ + accessTokenExpiresAt?: string + /** + * 访问令牌的生命周期(以秒为单位) + * @format int32 + */ + accessTokenLifeTime?: number + /** 刷新令牌 */ + refreshToken?: string | null + /** + * 刷新令牌的过期时间 + * @format date-time + */ + refreshTokenExpiresAt?: string + /** + * 刷新令牌的生命周期(以秒为单位) + * @format int32 + */ + refreshTokenLifeTime?: number + /** + * 创建令牌信息时间戳 + * @format int64 + */ + timestamp?: number +} + +export interface Track { + /** @format int32 */ + x?: number + /** @format int32 */ + y?: number + /** @format int32 */ + t?: number +} + +/** 添加 */ +export interface UserAddInput { + /** + * 用户Id + * @format int64 + */ + id?: number + /** + * 账号 + * @minLength 1 + */ + userName: string + /** + * 姓名 + * @minLength 1 + */ + name: string + /** 手机号 */ + mobile?: string | null + /** 邮箱 */ + email?: string | null + /** 角色Ids */ + roleIds?: number[] | null + /** + * 直属主管Id + * @format int64 + */ + managerUserId?: number | null + /** 直属主管姓名 */ + managerUserName?: string | null + /** 员工添加 */ + staff: StaffAddInput + /** 所属部门Ids */ + orgIds?: number[] | null + /** + * 主属部门Id + * @format int64 + */ + orgId?: number + /** 密码 */ + password?: string | null + /** 启用 */ + enabled?: boolean + + isReceiveSite?: boolean + isReceiveEmail?: boolean + isReceiveSMS?: boolean +} + +/** 添加会员 */ +export interface UserAddMemberInput { + /** + * 会员Id + * @format int64 + */ + id?: number + /** + * 账号 + * @minLength 1 + */ + userName: string + /** 姓名 */ + name?: string | null + /** 手机号 */ + mobile?: string | null + /** 邮箱 */ + email?: string | null + /** + * 密码 + * @minLength 1 + */ + password: string + /** 用户状态:WaitChangePasssword=2,WaitActive=3 */ + status?: UserStatus +} + +/** 批量设置部门 */ +export interface UserBatchSetOrgInput { + /** 用户Id列表 */ + userIds?: number[] | null + /** 所属部门Ids */ + orgIds?: number[] | null + /** + * 主属部门Id + * @format int64 + */ + orgId?: number +} + +/** 修改密码 */ +export interface UserChangePasswordInput { + /** + * 旧密码 + * @minLength 1 + */ + oldPassword: string + /** + * 新密码 + * @minLength 1 + */ + newPassword: string + /** + * 确认新密码 + * @minLength 1 + */ + confirmPassword: string +} + +/** 用户 */ +export interface UserEntity { + /** + * 主键Id + * @format int64 + */ + id?: number + /** + * 创建者用户Id + * @format int64 + */ + createdUserId?: number | null + /** + * 创建者用户名 + * @maxLength 60 + */ + createdUserName?: string | null + /** + * 创建者姓名 + * @maxLength 60 + */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** + * 修改者用户Id + * @format int64 + */ + modifiedUserId?: number | null + /** + * 修改者用户名 + * @maxLength 60 + */ + modifiedUserName?: string | null + /** + * 修改者姓名 + * @maxLength 60 + */ + modifiedUserRealName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null + /** 是否删除 */ + isDeleted?: boolean + /** + * 租户Id + * @format int64 + */ + tenantId?: number | null + /** 租户 */ + tenant?: TenantEntity + /** 账号 */ + userName?: string | null + /** 密码 */ + password?: string | null + /** 密码加密类型:MD5Encrypt32=0,PasswordHasher=1 */ + passwordEncryptType?: PasswordEncryptType + /** 姓名 */ + name?: string | null + /** 手机号 */ + mobile?: string | null + /** 邮箱 */ + email?: string | null + /** + * 主属部门Id + * @format int64 + */ + orgId?: number + /** 组织架构 */ + org?: OrgEntity + /** + * 直属主管Id + * @format int64 + */ + managerUserId?: number | null + /** 用户 */ + managerUser?: UserEntity + /** 昵称 */ + nickName?: string | null + /** 头像 */ + avatar?: string | null + /** 用户状态:WaitChangePasssword=2,WaitActive=3 */ + status?: UserStatus + /** 用户类型:Member=0,DefaultUser=1,TenantAdmin=10,PlatformAdmin=100 */ + type?: UserType + /** + * 最后登录时间 + * @format date-time + */ + lastLoginTime?: string | null + /** 最后登录IP */ + lastLoginIP?: string | null + /** 最后登录国家 */ + lastLoginCountry?: string | null + /** 最后登录省份 */ + lastLoginProvince?: string | null + /** 最后登录城市 */ + lastLoginCity?: string | null + /** 启用 */ + enabled?: boolean + /** 角色列表 */ + roles?: RoleEntity[] | null + /** 部门列表 */ + orgs?: OrgEntity[] | null + /** 用户员工 */ + staff?: UserStaffEntity +} + +/** 用户基本信息 */ +export interface UserGetBasicOutput { + /** 头像 */ + avatar?: string | null + /** 姓名 */ + name?: string | null + /** 昵称 */ + nickName?: string | null + /** 手机号 */ + mobile?: string | null + /** 邮箱 */ + email?: string | null + /** + * 最后登录时间 + * @format date-time + */ + lastLoginTime?: string | null + /** 最后登录IP */ + lastLoginIP?: string | null + /** 最后登录国家 */ + lastLoginCountry?: string | null + /** 最后登录省份 */ + lastLoginProvince?: string | null + /** 最后登录城市 */ + lastLoginCity?: string | null +} + +/** 已删除用户分页查询响应 */ +export interface UserGetDeletedUserPageOutput { + /** + * 主键Id + * @format int64 + */ + id?: number + /** 账号 */ + userName?: string | null + /** 姓名 */ + name?: string | null + /** 手机号 */ + mobile?: string | null + /** 邮箱 */ + email?: string | null + /** 用户类型:Member=0,DefaultUser=1,TenantAdmin=10,PlatformAdmin=100 */ + type?: UserType + roles?: RoleEntity[] | null + /** 角色 */ + roleNames?: string | null + /** 启用 */ + enabled?: boolean + /** 性别:Unknown(未知)=0,Male(男)=1,Female(女)=2 */ + sex?: Sex + /** + * 主属部门Id + * @format int64 + */ + orgId?: number + /** 主属部门 */ + orgPath?: string | null + /** 部门列表 */ + orgs?: OrgEntity[] | null + /** 所属部门Id列表 */ + orgIds?: number[] | null + /** 所属部门 */ + orgPaths?: string | null + /** 创建者用户名 */ + createdUserName?: string | null + /** 创建者姓名 */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** 修改者用户名 */ + modifiedUserName?: string | null + /** 修改者姓名 */ + modifiedUserRealName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null +} + +/** 用户 */ +export interface UserGetOutput { + /** + * 账号 + * @minLength 1 + */ + userName: string + /** + * 姓名 + * @minLength 1 + */ + name: string + /** 手机号 */ + mobile?: string | null + /** 邮箱 */ + email?: string | null + /** + * 直属主管Id + * @format int64 + */ + managerUserId?: number | null + /** 直属主管姓名 */ + managerUserName?: string | null + /** 员工添加 */ + staff: StaffAddInput + /** + * 主键Id + * @format int64 + */ + id: number + /** 角色Id列表 */ + roleIds?: number[] | null +} + +/** 用户分页查询条件 */ +export interface UserGetPageInput { + /** + * 部门Id + * @format int64 + */ + orgId?: number | null +} + +/** 用户分页查询响应 */ +export interface UserGetPageOutput { + /** + * 主键Id + * @format int64 + */ + id?: number + /** 账号 */ + userName?: string | null + /** 姓名 */ + name?: string | null + /** 手机号 */ + mobile?: string | null + /** 邮箱 */ + email?: string | null + /** 用户类型:Member=0,DefaultUser=1,TenantAdmin=10,PlatformAdmin=100 */ + type?: UserType + roles?: RoleEntity[] | null + /** 角色 */ + roleNames?: string | null + /** 是否主管 */ + isManager?: boolean + /** 启用 */ + enabled?: boolean + /** 在线 */ + online?: boolean + /** 性别:Unknown(未知)=0,Male(男)=1,Female(女)=2 */ + sex?: Sex + /** + * 主属部门Id + * @format int64 + */ + orgId?: number + /** 主属部门 */ + orgPath?: string | null + /** 部门列表 */ + orgs?: OrgEntity[] | null + /** 所属部门Id列表 */ + orgIds?: number[] | null + /** 所属部门 */ + orgPaths?: string | null + /** 创建者用户名 */ + createdUserName?: string | null + /** 创建者姓名 */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** 修改者用户名 */ + modifiedUserName?: string | null + /** 修改者姓名 */ + modifiedUserRealName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null +} + +/** 用户权限 */ +export interface UserGetPermissionOutput { + /** 接口列表 */ + apis?: ApiModel[] | null + /** 权限点编码列表 */ + codes?: string[] | null +} + +/** 重置密码 */ +export interface UserResetPasswordInput { + /** + * 主键Id + * @format int64 + */ + id?: number + /** 密码 */ + password?: string | null +} + +/** 恢复 */ +export interface UserRestoreInput { + /** 用户Id列表 */ + userIds?: number[] | null +} + +/** 设置启用 */ +export interface UserSetEnableInput { + /** + * 用户Id + * @format int64 + */ + userId?: number + /** 是否启用 */ + enabled?: boolean +} + +/** 设置主管 */ +export interface UserSetManagerInput { + /** + * 用户Id + * @format int64 + */ + userId?: number + /** + * 部门Id + * @format int64 + */ + orgId?: number + /** 是否主管 */ + isManager?: boolean +} + +/** 用户员工 */ +export interface UserStaffEntity { + /** + * 主键Id + * @format int64 + */ + id?: number + /** + * 创建者用户Id + * @format int64 + */ + createdUserId?: number | null + /** + * 创建者用户名 + * @maxLength 60 + */ + createdUserName?: string | null + /** + * 创建者姓名 + * @maxLength 60 + */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** + * 修改者用户Id + * @format int64 + */ + modifiedUserId?: number | null + /** + * 修改者用户名 + * @maxLength 60 + */ + modifiedUserName?: string | null + /** + * 修改者姓名 + * @maxLength 60 + */ + modifiedUserRealName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null + /** 是否删除 */ + isDeleted?: boolean + /** + * 租户Id + * @format int64 + */ + tenantId?: number | null + /** 职位 */ + position?: string | null + /** 工号 */ + jobNumber?: string | null + /** 性别:Unknown(未知)=0,Male(男)=1,Female(女)=2 */ + sex?: Sex + /** + * 入职时间 + * @format date-time + */ + entryTime?: string | null + /** 企业微信名片 */ + workWeChatCard?: string | null + /** 个人简介 */ + introduce?: string | null +} + +/** + * 用户状态:WaitChangePasssword=2,WaitActive=3 + * @format int32 + */ +export type UserStatus = 2 | 3 + +/** + * 用户类型:Member=0,DefaultUser=1,TenantAdmin=10,PlatformAdmin=100 + * @format int32 + */ +export type UserType = 0 | 1 | 10 | 100 + +/** 更新基本信息 */ +export interface UserUpdateBasicInput { + /** + * 姓名 + * @minLength 1 + */ + name: string + /** 昵称 */ + nickName?: string | null +} + +/** 修改 */ +export interface UserUpdateInput { + /** + * 账号 + * @minLength 1 + */ + userName: string + /** + * 姓名 + * @minLength 1 + */ + name: string + /** 手机号 */ + mobile?: string | null + /** 邮箱 */ + email?: string | null + /** 角色Ids */ + roleIds?: number[] | null + /** + * 直属主管Id + * @format int64 + */ + managerUserId?: number | null + /** 直属主管姓名 */ + managerUserName?: string | null + /** 员工添加 */ + staff: StaffAddInput + /** + * 主键Id + * @format int64 + */ + id: number +} + +/** 修改会员 */ +export interface UserUpdateMemberInput { + /** + * 账号 + * @minLength 1 + */ + userName: string + /** 姓名 */ + name?: string | null + /** 手机号 */ + mobile?: string | null + /** 邮箱 */ + email?: string | null + /** + * 主键Id + * @format int64 + */ + id: number +} + +export interface ValidateResult { + /** Success=0,ValidateFail=1,Timeout=2 */ + result?: ValidateResultType + message?: string | null +} + +/** + * Success=0,ValidateFail=1,Timeout=2 + * @format int32 + */ +export type ValidateResultType = 0 | 1 | 2 + +/** 添加 */ +export interface ViewAddInput { + /** 平台 */ + platform?: string | null + /** + * 所属节点 + * @format int64 + */ + parentId?: number + /** 视图命名 */ + name?: string | null + /** 视图名称 */ + label?: string | null + /** 视图路径 */ + path?: string | null + /** 说明 */ + description?: string | null + /** 缓存 */ + cache?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number | null + /** 启用 */ + enabled?: boolean +} + +/** 视图管理 */ +export interface ViewEntity { + /** + * 主键Id + * @format int64 + */ + id?: number + /** + * 创建者用户Id + * @format int64 + */ + createdUserId?: number | null + /** + * 创建者用户名 + * @maxLength 60 + */ + createdUserName?: string | null + /** + * 创建者姓名 + * @maxLength 60 + */ + createdUserRealName?: string | null + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null + /** + * 修改者用户Id + * @format int64 + */ + modifiedUserId?: number | null + /** + * 修改者用户名 + * @maxLength 60 + */ + modifiedUserName?: string | null + /** + * 修改者姓名 + * @maxLength 60 + */ + modifiedUserRealName?: string | null + /** + * 修改时间 + * @format date-time + */ + modifiedTime?: string | null + /** 是否删除 */ + isDeleted?: boolean + /** 平台 */ + platform?: string | null + /** + * 所属节点 + * @format int64 + */ + parentId?: number + /** 视图命名 */ + name?: string | null + /** 视图名称 */ + label?: string | null + /** 视图路径 */ + path?: string | null + /** 说明 */ + description?: string | null + /** 缓存 */ + cache?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + childs?: ViewEntity[] | null +} + +/** 视图查询 */ +export interface ViewGetListInput { + /** 平台 */ + platform?: string | null + /** 视图命名 */ + name?: string | null + /** 视图名称 */ + label?: string | null + /** 视图路径 */ + path?: string | null +} + +/** 视图列表 */ +export interface ViewGetListOutput { + /** + * 视图Id + * @format int64 + */ + id?: number + /** + * 视图父级 + * @format int64 + */ + parentId?: number | null + /** 平台 */ + platform?: string | null + /** 视图命名 */ + name?: string | null + /** 视图名称 */ + label?: string | null + /** 视图路径 */ + path?: string | null + /** 缓存 */ + cache?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + /** 说明 */ + description?: string | null +} + +/** 视图 */ +export interface ViewGetOutput { + /** 平台 */ + platform?: string | null + /** + * 所属节点 + * @format int64 + */ + parentId?: number + /** 视图命名 */ + name?: string | null + /** 视图名称 */ + label?: string | null + /** 视图路径 */ + path?: string | null + /** 说明 */ + description?: string | null + /** 缓存 */ + cache?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number | null + /** 启用 */ + enabled?: boolean + /** + * 视图Id + * @format int64 + */ + id: number +} + +/** 视图同步 */ +export interface ViewSyncInput { + /** 视图列表 */ + views?: ViewSyncModel[] | null +} + +/** 视图同步模型 */ +export interface ViewSyncModel { + /** 视图命名 */ + name?: string | null + /** 地址 */ + path?: string | null + /** 视图名称 */ + label?: string | null + /** 说明 */ + description?: string | null + /** 缓存 */ + cache?: boolean +} + +/** 修改 */ +export interface ViewUpdateInput { + /** 平台 */ + platform?: string | null + /** + * 所属节点 + * @format int64 + */ + parentId?: number + /** 视图命名 */ + name?: string | null + /** 视图名称 */ + label?: string | null + /** 视图路径 */ + path?: string | null + /** 说明 */ + description?: string | null + /** 缓存 */ + cache?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number | null + /** 启用 */ + enabled?: boolean + /** + * 视图Id + * @format int64 + */ + id: number +} + +/** 房间 */ +export interface RoomGetOutput { + /** 名称 */ + roomNo?: string | null + /** 编码 */ + roomName?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** + * 主键Id + * @format int64 + */ + id: number +} + +/** 结果输出 */ +export interface ResultOutputRoomGetOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 部门 */ + data?: RoomGetOutput +} + +/** 添加 */ +export interface RoomAddInput { + /** 编码 */ + roomNo?: string | null + /** 名称 */ + roomName?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number +} + +/** 修改 */ +export interface RoomUpdateInput { + /** 编码 */ + roomNo?: string | null + /** 名称 */ + roomName?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** 启用 */ + enabled?: boolean + + /** + * 主键Id + * @format int64 + */ + id: number +} + +/** 结果输出 */ +export interface ResultOutputListRoomGetListOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 数据 */ + data?: RoomGetListOutput[] | null +} + +/** 房间列表 */ +export interface RoomGetListOutput { + /** + * 主键Id + * @format int64 + */ + id?: number + /** 名称 */ + roomName?: string | null + /** 编码 */ + roomNo?: string | null + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null +} + +/** 分页信息输入 */ +export interface PageInputRoomGetPageInput { + dynamicFilter?: DynamicFilterInfo + /** 排序列表 */ + sortList?: SortInput[] | null + /** + * 当前页标 + * @format int32 + */ + currentPage?: number + /** + * 每页大小 + * @format int32 + */ + pageSize?: number + /** 分页请求 */ + filter?: RoomGetPageInput +} + +/** 分页请求 */ +export interface RoomGetPageInput { + /** IP */ + keyWord?: string | null + +} + +/** 结果输出 */ +export interface ResultOutputPageOutputRoomGetPageOutput { + /** 是否成功标记 */ + success?: boolean + /** 编码 */ + code?: string | null + /** 消息 */ + msg?: string | null + /** 分页信息输出 */ + data?: PageOutputRoomGetPageOutput +} + +/** 分页信息输出 */ +export interface PageOutputRoomGetPageOutput { + /** + * 数据总数 + * @format int64 + */ + total?: number + /** 数据 */ + list?: RoomGetPageOutput[] | null +} + +/** 分页响应 */ +export interface RoomGetPageOutput { + /** + * 编号 + * @format int64 + */ + id?: number + + /** 编码 */ + roomNo?: string | null + + /** 名称 */ + roomName?: string | null + + /** 启用 */ + enabled?: boolean + /** + * 排序 + * @format int32 + */ + sort?: number + + /** 创建者 */ + createdUserName?: string | null + + /** + * 创建时间 + * @format date-time + */ + createdTime?: string | null +} + +/** WebSocket请求 */ +export interface WebSocketPreConnectInput { + /** + * WebSocketId + * @format int64 + */ + websocketId?: number | null +} diff --git a/src/api/admin/enum-contracts.ts b/src/api/admin/enum-contracts.ts new file mode 100644 index 0000000..b22e88d --- /dev/null +++ b/src/api/admin/enum-contracts.ts @@ -0,0 +1,128 @@ +/** 账号类型 */ +export const AccountType = { + UserName: { name: 'UserName', value: 1, desc: '账号' }, + Email: { name: 'Email', value: 2, desc: '邮箱' }, + Phone: { name: 'Phone', value: 3, desc: '手机号' }, + AAD: { name: 'AAD', value: 4, desc: 'AAD' }, +} + +/** 密码加密类型 */ +export const PasswordEncryptType = { + MD5Encrypt32: { name: 'MD5Encrypt32', value: 0, desc: '32位MD5加密' }, + PasswordHasher: { name: 'PasswordHasher', value: 1, desc: '标准标识密码哈希' }, +} + +/** 用户状态 */ +export const UserStatus = { + WaitChangePasssword: { name: 'WaitChangePasssword', value: 2, desc: '待修改密码' }, + WaitActive: { name: 'WaitActive', value: 3, desc: '待激活' }, +} + +/** 性别 */ +export const Sex = { + Unknown: { name: 'Unknown', value: 0, desc: '未知' }, + Male: { name: 'Male', value: 1, desc: '男' }, + Female: { name: 'Female', value: 2, desc: '女' }, +} + +/** 角色类型 */ +export const RoleType = { + Group: { name: 'Group', value: 1, desc: '分组' }, + Role: { name: 'Role', value: 2, desc: '角色' }, +} + +/** 地区级别 */ +export const RegionLevel = { + Province: { name: 'Province', value: 1, desc: '省份' }, + City: { name: 'City', value: 2, desc: '城市' }, + County: { name: 'County', value: 3, desc: '县/区' }, + Town: { name: 'Town', value: 4, desc: '镇/乡' }, + Vilage: { name: 'Vilage', value: 5, desc: '村/社区' }, +} + +/** 权限类型 */ +export const PermissionType = { + Group: { name: 'Group', value: 1, desc: '分组' }, + Menu: { name: 'Menu', value: 2, desc: '菜单' }, + Dot: { name: 'Dot', value: 3, desc: '权限点' }, +} + +/** 消息状态 */ +export const MsgStatusEnum = { + Draft: { name: 'Draft', value: 1, desc: '草稿' }, + Published: { name: 'Published', value: 2, desc: '已发布' }, + Scheduled: { name: 'Scheduled', value: 3, desc: '定时发布' }, + Revoked: { name: 'Revoked', value: 4, desc: '已撤销' }, + Archived: { name: 'Archived', value: 5, desc: '已归档' }, +} + +/** 文档类型 */ +export const DocType = { + Group: { name: 'Group', value: 1, desc: '分组' }, + Markdown: { name: 'Markdown', value: 2, desc: 'Markdown文档' }, +} + +/** 缓存类型 */ +export const CacheType = { + Memory: { name: 'Memory', value: 0, desc: '内存缓存' }, + Redis: { name: 'Redis', value: 1, desc: 'Redis缓存' }, +} + +/** 租户类型 */ +export const TenantType = { + Platform: { name: 'Platform', value: 1, desc: '平台' }, + Tenant: { name: 'Tenant', value: 2, desc: '租户' }, +} + +/** 数据范围 */ +export const DataScope = { + All: { name: 'All', value: 1, desc: '全部' }, + DeptWithChild: { name: 'DeptWithChild', value: 2, desc: '本部门和下级部门' }, + Dept: { name: 'Dept', value: 3, desc: '本部门' }, + Self: { name: 'Self', value: 4, desc: '本人数据' }, + Custom: { name: 'Custom', value: 5, desc: '指定部门' }, +} + +/** 用户类型 */ +export const UserType = { + Member: { name: 'Member', value: 0, desc: '会员' }, + DefaultUser: { name: 'DefaultUser', value: 1, desc: '普通用户' }, + TenantAdmin: { name: 'TenantAdmin', value: 10, desc: '租户管理员' }, + PlatformAdmin: { name: 'PlatformAdmin', value: 100, desc: '平台管理员' }, +} + +/** 接口版本 */ +export const ApiVersion = { + V1: { name: 'V1', value: 1, desc: 'V1 版本' }, + V2: { name: 'V2', value: 2, desc: 'V2 版本' }, +} + +/** 内容类型 */ +export const ContentTypeEnum = { + FormData: { name: 'FormData', value: 0, desc: '表单数据' }, + Json: { name: 'Json', value: 1, desc: 'Json格式' }, +} + +/** 状态码枚举 */ +export const StatusCodes = { + Status0NotOk: { name: 'Status0NotOk', value: 0, desc: '操作失败' }, + Status1Ok: { name: 'Status1Ok', value: 1, desc: '操作成功' }, + Status401Unauthorized: { name: 'Status401Unauthorized', value: 401, desc: '未登录' }, + Status403Forbidden: { name: 'Status403Forbidden', value: 403, desc: '权限不足' }, + Status404NotFound: { name: 'Status404NotFound', value: 404, desc: '资源不存在' }, + Status500InternalServerError: { name: 'Status500InternalServerError', value: 500, desc: '系统内部错误' }, +} + +/** 排序方式 */ +export const SortOrder = { + Asc: { name: 'Asc', value: 0, desc: '' }, + Desc: { name: 'Desc', value: 1, desc: '' }, +} + +/** 应用程序类型 */ +export const AppType = { + Controllers: { name: 'Controllers', value: 0, desc: '' }, + ControllersWithViews: { name: 'ControllersWithViews', value: 1, desc: '' }, + MVC: { name: 'MVC', value: 2, desc: '' }, +} + diff --git a/src/api/admin/http-client.ts b/src/api/admin/http-client.ts new file mode 100644 index 0000000..00841ae --- /dev/null +++ b/src/api/admin/http-client.ts @@ -0,0 +1,465 @@ +/* eslint-disable */ +/* tslint:disable */ +// @ts-nocheck +/* + * --------------------------------------------------------------- + * ## THIS FILE WAS GENERATED VIA SWAGGER-TYPESCRIPT-API ## + * ## ## + * ## AUTHOR: acacode ## + * ## SOURCE: https://github.com/acacode/swagger-typescript-api ## + * --------------------------------------------------------------- + */ + +import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse, HeadersDefaults, RawAxiosRequestHeaders, ResponseType } from 'axios' +import { ElLoading, ElMessage, LoadingOptions } from 'element-plus' +import { useUserInfo } from '/@/stores/userInfo' + +export type QueryParamsType = Record + +export interface FullRequestParams extends Omit { + /** set parameter to `true` for call `securityWorker` for this request */ + secure?: boolean + /** request path */ + path: string + /** content type of request body */ + type?: ContentType + /** query params */ + query?: QueryParamsType + /** format of response (i.e. response.json() -> format: "json") */ + format?: ResponseType + /** request body */ + body?: unknown + /** 显示错误消息 */ + showErrorMessage?: boolean + /** 显示成功消息 */ + showSuccessMessage?: boolean + /** 登录访问 */ + login?: boolean + /** 加载中 */ + loading?: boolean + /** 加载中选项 */ + loadingOptions?: LoadingOptions + /** 取消重复请求 */ + cancelRepeatRequest?: boolean + /** 返回整个响应对象 */ + returnResponse?: boolean +} + +export type RequestParams = Omit + +export interface ApiConfig extends Omit { + securityWorker?: (securityData: SecurityDataType | null) => Promise | AxiosRequestConfig | void + secure?: boolean + format?: ResponseType +} + +export enum ContentType { + Json = 'application/json', + FormData = 'multipart/form-data', + UrlEncoded = 'application/x-www-form-urlencoded', + Text = 'text/plain', +} + +export interface LoadingInstance { + target: any + count: number +} + +const pendingMap = new Map() + +const loadingInstance: LoadingInstance = { + target: null, + count: 0, +} + +export class HttpClient { + public instance: AxiosInstance + private securityData: SecurityDataType | null = null + private securityWorker?: ApiConfig['securityWorker'] + private secure?: boolean + private format?: ResponseType + + constructor({ securityWorker, secure, format, ...axiosConfig }: ApiConfig = {}) { + this.instance = axios.create({ ...axiosConfig, timeout: 60000, baseURL: axiosConfig.baseURL || import.meta.env.VITE_API_URL }) + this.secure = secure + this.format = format + this.securityWorker = securityWorker + } + + public setSecurityData = (data: SecurityDataType | null) => { + this.securityData = data + } + + protected mergeRequestParams(params1: AxiosRequestConfig, params2?: AxiosRequestConfig): AxiosRequestConfig { + const method = params1.method || (params2 && params2.method) + + return { + ...this.instance.defaults, + ...params1, + ...(params2 || {}), + headers: { + ...((method && this.instance.defaults.headers[method.toLowerCase() as keyof HeadersDefaults]) || {}), + ...(params1.headers || {}), + ...((params2 && params2.headers) || {}), + } as RawAxiosRequestHeaders, + } + } + + protected stringifyFormItem(formItem: unknown) { + if (typeof formItem === 'object' && formItem !== null) { + return JSON.stringify(formItem) + } else { + return `${formItem}` + } + } + + protected createFormData(input: Record): FormData { + return Object.keys(input || {}).reduce((formData, key) => { + const property = input[key] + const propertyContent: any[] = property instanceof Array ? property : [property] + + for (const formItem of propertyContent) { + const isFileType = formItem instanceof Blob || formItem instanceof File + formData.append(key, isFileType ? formItem : this.stringifyFormItem(formItem)) + } + + return formData + }, new FormData()) + } + + /** + * 错误处理 + * @param {*} error + */ + protected errorHandle(error: any) { + if (!error) { + return + } + if (axios.isCancel(error)) return console.error('请求重复已被自动取消:' + error.message) + let message = '' + if (error.response) { + switch (error.response.status) { + case 302: + message = '接口重定向' + break + case 400: + message = '参数不正确' + break + case 401: + message = '您还没有登录' + break + case 403: + message = '您没有权限操作' + break + case 404: + message = '请求地址出错:' + error.response.config.url + break + case 408: + message = '请求超时' + break + case 409: + message = '系统已存在相同数据' + break + case 429: + message = '访问过于频繁' + break + case 500: + message = '服务器内部错误' + break + case 501: + message = '服务未实现' + break + case 502: + message = '网关错误' + break + case 503: + message = '服务不可用' + break + case 504: + message = '服务暂时无法访问,请稍后再试' + break + case 505: + message = 'HTTP版本不受支持' + break + default: + message = '异常问题,请联系网站管理员' + break + } + } + if (error.message.includes('timeout')) message = '请求超时' + if (error.message.includes('Network')) message = window.navigator.onLine ? '服务端异常' : '您已断网' + + if (message) { + ElMessage.error({ message, grouping: true }) + } + } + + /** + * 刷新token接口 + * @param string refreshToken + */ + protected async refreshApi(refreshToken: string) { + return this.request({ + path: `/api/admin/auth/refresh`, + method: 'GET', + secure: true, + format: 'json', + login: false, + query: { + token: refreshToken, + }, + }) + } + + /** + * 刷新token + * @param {*} config + */ + protected async refreshToken(config: any) { + const storesUseUserInfo = useUserInfo() + const token = storesUseUserInfo.getToken() + if (!token) { + storesUseUserInfo.clear() + return Promise.reject(config) + } + + if (window.tokenRefreshing) { + window.requests = window.requests ? window.requests : [] + return new Promise((resolve) => { + window.requests.push(() => { + resolve(this.instance(config)) + }) + }) + } + + window.tokenRefreshing = true + + return this.refreshApi(token) + .then((res) => { + if (res?.success) { + storesUseUserInfo.setTokenInfo(res.data) + if (window.requests?.length > 0) { + window.requests.forEach((apiRequest) => apiRequest()) + window.requests = [] + } + return this.instance(config) + } else { + storesUseUserInfo.clear() + return Promise.reject(res) + } + }) + .catch((error) => { + storesUseUserInfo.clear() + return Promise.reject(error) + }) + .finally(() => { + window.tokenRefreshing = false + }) + } + + /** + * 储存每个请求的唯一cancel回调, 以此为标识 + */ + protected addPending(config: AxiosRequestConfig) { + const pendingKey = this.getPendingKey(config) + config.cancelToken = + config.cancelToken || + new axios.CancelToken((cancel) => { + if (!pendingMap.has(pendingKey)) { + pendingMap.set(pendingKey, cancel) + } + }) + } + + /** + * 删除重复的请求 + */ + protected removePending(config: AxiosRequestConfig) { + const pendingKey = this.getPendingKey(config) + if (pendingMap.has(pendingKey)) { + const cancelToken = pendingMap.get(pendingKey) + cancelToken(pendingKey) + pendingMap.delete(pendingKey) + } + } + + /** + * 生成每个请求的唯一key + */ + protected getPendingKey(config: AxiosRequestConfig) { + let { data, headers } = config + headers = headers as RawAxiosRequestHeaders + const { url, method, params } = config + if (typeof data === 'string') data = JSON.parse(data) + return [url, method, headers && headers.Authorization ? headers.Authorization : '', JSON.stringify(params), JSON.stringify(data)].join('&') + } + + /** + * 关闭Loading层实例 + */ + protected closeLoading(loading: boolean = false) { + if (loading && loadingInstance.count > 0) loadingInstance.count-- + if (loadingInstance.count === 0) { + loadingInstance.target.close() + loadingInstance.target = null + } + } + + public request = async ({ + secure, + path, + type, + query, + format, + body, + showErrorMessage = true, + showSuccessMessage = false, + login = true, + loading = false, + loadingOptions = { + background: 'rgba(0,0,0,0.5)', + }, + cancelRepeatRequest = false, + returnResponse = false, + ...params + }: FullRequestParams): Promise => { + const secureParams = + ((typeof secure === 'boolean' ? secure : this.secure) && this.securityWorker && (await this.securityWorker(this.securityData))) || {} + const requestParams = this.mergeRequestParams(params, secureParams) + const responseFormat = format || this.format || undefined + + if (type === ContentType.FormData && body && body !== null && typeof body === 'object') { + body = this.createFormData(body as Record) + } + + if (type === ContentType.Text && body && body !== null && typeof body !== 'string') { + body = JSON.stringify(body) + } + + // 请求拦截 + this.instance.interceptors.request.use( + async (config) => { + this.removePending(config) + cancelRepeatRequest && this.addPending(config) + + if (loading) { + loadingInstance.count++ + if (loadingInstance.count === 1) { + loadingInstance.target = ElLoading.service(loadingOptions) + } + } + + const storesUseUserInfo = useUserInfo() + const tokenInfo = storesUseUserInfo.getTokenInfo() + + if (tokenInfo && tokenInfo.accessToken) { + // 判断 accessToken 是否快失效 + const now = new Date().getTime() + const expiresAt = new Date(tokenInfo.accessTokenExpiresAt).getTime() + const maxThreshold = tokenInfo.accessTokenLifeTime * 0.5 + // 确保阈值不超过 5 分钟且不超过 accessTokenLifeTime 的一半 + const threshold = Math.min(5 * 60 * 1000, maxThreshold) + if (expiresAt - now < threshold) { + //加锁 + if (!window.tokenRefreshing) { + window.tokenRefreshing = true + try { + const res = await this.refreshApi(tokenInfo.accessToken) + if (res?.success) { + storesUseUserInfo.setTokenInfo(res.data) + //处理等待队列中的请求 + if (window.requests?.length > 0) { + window.requests.forEach((apiRequest) => apiRequest()) + window.requests = [] + } + } else { + storesUseUserInfo.clear() + return Promise.reject(res) + } + } catch (error) { + // 清空等待队列 + window.requests = [] + return Promise.reject(error) + } finally { + // 解锁 + window.tokenRefreshing = false + } + } else { + // 如果正在刷新,则将当前请求加入等待队列 + if (config.url !== '/api/admin/auth/refresh') { + window.requests = window.requests ? window.requests : [] + return new Promise((resolve) => { + window.requests.push(() => { + resolve(this.instance(config)) + }) + }) + } + } + } + } + + const accessToken = storesUseUserInfo.getToken() + config.headers!['Authorization'] = `Bearer ${accessToken}` + return config + }, + (error) => { + return Promise.reject(error) + } + ) + // 响应拦截 + this.instance.interceptors.response.use( + (res) => { + this.removePending(res.config) + loading && this.closeLoading(loading) + + if (res.config?.responseType == 'blob') { + return res + } + + const data = res.data + if (data.success) { + if (showSuccessMessage) { + ElMessage.success({ message: data.msg ? data.msg : '操作成功', grouping: true }) + } + } else { + if (showErrorMessage) { + ElMessage.error({ message: data.msg ? data.msg : '操作失败', grouping: true }) + } + // return Promise.reject(res) + } + + return res + }, + async (error) => { + error.config && this.removePending(error.config) + loading && this.closeLoading(loading) + + //刷新token + if (login && error?.response?.status === 401) { + return this.refreshToken(error.config) + } + + //错误处理 + if (showErrorMessage) { + this.errorHandle(error) + } + + return Promise.reject(error) + } + ) + + return this.instance + .request({ + ...requestParams, + headers: { + ...(requestParams.headers || {}), + ...(type && type !== ContentType.FormData ? { 'Content-Type': type } : {}), + } as RawAxiosRequestHeaders, + params: query, + responseType: responseFormat, + data: body, + url: path, + }) + .then((response) => (returnResponse ? response : response.data)) + } +} diff --git a/src/assets/icons/bottom.svg b/src/assets/icons/bottom.svg new file mode 100644 index 0000000..7cbd665 --- /dev/null +++ b/src/assets/icons/bottom.svg @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/src/assets/icons/customSize.svg b/src/assets/icons/customSize.svg new file mode 100644 index 0000000..28db364 --- /dev/null +++ b/src/assets/icons/customSize.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/distributeHor.svg b/src/assets/icons/distributeHor.svg new file mode 100644 index 0000000..aa37a2e --- /dev/null +++ b/src/assets/icons/distributeHor.svg @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/src/assets/icons/distributeVer.svg b/src/assets/icons/distributeVer.svg new file mode 100644 index 0000000..2ae6d03 --- /dev/null +++ b/src/assets/icons/distributeVer.svg @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/src/assets/icons/export.svg b/src/assets/icons/export.svg new file mode 100644 index 0000000..939fc21 --- /dev/null +++ b/src/assets/icons/export.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/assets/icons/horizontal.svg b/src/assets/icons/horizontal.svg new file mode 100644 index 0000000..ba1f9f4 --- /dev/null +++ b/src/assets/icons/horizontal.svg @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/src/assets/icons/hot.svg b/src/assets/icons/hot.svg new file mode 100644 index 0000000..cac0b13 --- /dev/null +++ b/src/assets/icons/hot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/json.svg b/src/assets/icons/json.svg new file mode 100644 index 0000000..3cb487c --- /dev/null +++ b/src/assets/icons/json.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/left.svg b/src/assets/icons/left.svg new file mode 100644 index 0000000..c7df28a --- /dev/null +++ b/src/assets/icons/left.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/assets/icons/more.svg b/src/assets/icons/more.svg new file mode 100644 index 0000000..0129da5 --- /dev/null +++ b/src/assets/icons/more.svg @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/src/assets/icons/qq.svg b/src/assets/icons/qq.svg new file mode 100644 index 0000000..47573c7 --- /dev/null +++ b/src/assets/icons/qq.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/recycle.svg b/src/assets/icons/recycle.svg new file mode 100644 index 0000000..19b910f --- /dev/null +++ b/src/assets/icons/recycle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/right.svg b/src/assets/icons/right.svg new file mode 100644 index 0000000..02f2c99 --- /dev/null +++ b/src/assets/icons/right.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/assets/icons/rotate.svg b/src/assets/icons/rotate.svg new file mode 100644 index 0000000..7b2bb56 --- /dev/null +++ b/src/assets/icons/rotate.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/src/assets/icons/save.svg b/src/assets/icons/save.svg new file mode 100644 index 0000000..228e769 --- /dev/null +++ b/src/assets/icons/save.svg @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/src/assets/icons/top.svg b/src/assets/icons/top.svg new file mode 100644 index 0000000..302cb9f --- /dev/null +++ b/src/assets/icons/top.svg @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/src/assets/icons/vertical.svg b/src/assets/icons/vertical.svg new file mode 100644 index 0000000..7ccbe1b --- /dev/null +++ b/src/assets/icons/vertical.svg @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/src/assets/imgs/lockscreen.jpg b/src/assets/imgs/lockscreen.jpg new file mode 100644 index 0000000..a70c375 Binary files /dev/null and b/src/assets/imgs/lockscreen.jpg differ diff --git a/src/assets/imgs/login/bg-login.jpg b/src/assets/imgs/login/bg-login.jpg new file mode 100644 index 0000000..79cfab2 Binary files /dev/null and b/src/assets/imgs/login/bg-login.jpg differ diff --git a/src/assets/login-main.svg b/src/assets/login-main.svg new file mode 100644 index 0000000..e1bd0e8 --- /dev/null +++ b/src/assets/login-main.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/logo-mini.png b/src/assets/logo-mini.png new file mode 100644 index 0000000..12c5d19 Binary files /dev/null and b/src/assets/logo-mini.png differ diff --git a/src/assets/svgs/401.svg b/src/assets/svgs/401.svg new file mode 100644 index 0000000..daf1952 --- /dev/null +++ b/src/assets/svgs/401.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/svgs/404.svg b/src/assets/svgs/404.svg new file mode 100644 index 0000000..8315ace --- /dev/null +++ b/src/assets/svgs/404.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/svgs/hiprint/barcode.svg b/src/assets/svgs/hiprint/barcode.svg new file mode 100644 index 0000000..f92ae33 --- /dev/null +++ b/src/assets/svgs/hiprint/barcode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svgs/hiprint/emptyTable.svg b/src/assets/svgs/hiprint/emptyTable.svg new file mode 100644 index 0000000..8ac4d95 --- /dev/null +++ b/src/assets/svgs/hiprint/emptyTable.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svgs/hiprint/hline.svg b/src/assets/svgs/hiprint/hline.svg new file mode 100644 index 0000000..429be5b --- /dev/null +++ b/src/assets/svgs/hiprint/hline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svgs/hiprint/html.svg b/src/assets/svgs/hiprint/html.svg new file mode 100644 index 0000000..f4b6583 --- /dev/null +++ b/src/assets/svgs/hiprint/html.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svgs/hiprint/image.svg b/src/assets/svgs/hiprint/image.svg new file mode 100644 index 0000000..587a2bc --- /dev/null +++ b/src/assets/svgs/hiprint/image.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svgs/hiprint/longText.svg b/src/assets/svgs/hiprint/longText.svg new file mode 100644 index 0000000..0fdfa0e --- /dev/null +++ b/src/assets/svgs/hiprint/longText.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svgs/hiprint/oval.svg b/src/assets/svgs/hiprint/oval.svg new file mode 100644 index 0000000..569cc56 --- /dev/null +++ b/src/assets/svgs/hiprint/oval.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svgs/hiprint/qrcode.svg b/src/assets/svgs/hiprint/qrcode.svg new file mode 100644 index 0000000..b1d87f6 --- /dev/null +++ b/src/assets/svgs/hiprint/qrcode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svgs/hiprint/rect.svg b/src/assets/svgs/hiprint/rect.svg new file mode 100644 index 0000000..6a7e6ca --- /dev/null +++ b/src/assets/svgs/hiprint/rect.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svgs/hiprint/table.svg b/src/assets/svgs/hiprint/table.svg new file mode 100644 index 0000000..7176245 --- /dev/null +++ b/src/assets/svgs/hiprint/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svgs/hiprint/text.svg b/src/assets/svgs/hiprint/text.svg new file mode 100644 index 0000000..1f6fefd --- /dev/null +++ b/src/assets/svgs/hiprint/text.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svgs/hiprint/vline.svg b/src/assets/svgs/hiprint/vline.svg new file mode 100644 index 0000000..7db660c --- /dev/null +++ b/src/assets/svgs/hiprint/vline.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/auth/auth.vue b/src/components/auth/auth.vue new file mode 100644 index 0000000..f1127c9 --- /dev/null +++ b/src/components/auth/auth.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/components/auth/authAll.vue b/src/components/auth/authAll.vue new file mode 100644 index 0000000..cb7fcee --- /dev/null +++ b/src/components/auth/authAll.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/components/auth/auths.vue b/src/components/auth/auths.vue new file mode 100644 index 0000000..ea02665 --- /dev/null +++ b/src/components/auth/auths.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/components/cropper/index.vue b/src/components/cropper/index.vue new file mode 100644 index 0000000..13412bc --- /dev/null +++ b/src/components/cropper/index.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/src/components/editor/index.vue b/src/components/editor/index.vue new file mode 100644 index 0000000..67f34f3 --- /dev/null +++ b/src/components/editor/index.vue @@ -0,0 +1,139 @@ + + + diff --git a/src/components/iconSelector/index.vue b/src/components/iconSelector/index.vue new file mode 100644 index 0000000..432109a --- /dev/null +++ b/src/components/iconSelector/index.vue @@ -0,0 +1,241 @@ + + + diff --git a/src/components/iconSelector/list.vue b/src/components/iconSelector/list.vue new file mode 100644 index 0000000..1fc35bc --- /dev/null +++ b/src/components/iconSelector/list.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/src/components/my-captcha/dialog.vue b/src/components/my-captcha/dialog.vue new file mode 100644 index 0000000..c5f9992 --- /dev/null +++ b/src/components/my-captcha/dialog.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/src/components/my-captcha/index.vue b/src/components/my-captcha/index.vue new file mode 100644 index 0000000..9bb4752 --- /dev/null +++ b/src/components/my-captcha/index.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/src/components/my-captcha/slide-captcha.vue b/src/components/my-captcha/slide-captcha.vue new file mode 100644 index 0000000..bc334c0 --- /dev/null +++ b/src/components/my-captcha/slide-captcha.vue @@ -0,0 +1,573 @@ + + + + + diff --git a/src/components/my-cron/day.vue b/src/components/my-cron/day.vue new file mode 100644 index 0000000..db49b1f --- /dev/null +++ b/src/components/my-cron/day.vue @@ -0,0 +1,190 @@ + + + + diff --git a/src/components/my-cron/dialog.vue b/src/components/my-cron/dialog.vue new file mode 100644 index 0000000..07f9eaa --- /dev/null +++ b/src/components/my-cron/dialog.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/src/components/my-cron/hour.vue b/src/components/my-cron/hour.vue new file mode 100644 index 0000000..23e4880 --- /dev/null +++ b/src/components/my-cron/hour.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/src/components/my-cron/index.vue b/src/components/my-cron/index.vue new file mode 100644 index 0000000..c457ad1 --- /dev/null +++ b/src/components/my-cron/index.vue @@ -0,0 +1,298 @@ + + + + + diff --git a/src/components/my-cron/min.vue b/src/components/my-cron/min.vue new file mode 100644 index 0000000..7a218c3 --- /dev/null +++ b/src/components/my-cron/min.vue @@ -0,0 +1,144 @@ + + + + diff --git a/src/components/my-cron/month.vue b/src/components/my-cron/month.vue new file mode 100644 index 0000000..2a77e99 --- /dev/null +++ b/src/components/my-cron/month.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/src/components/my-cron/result.vue b/src/components/my-cron/result.vue new file mode 100644 index 0000000..2292478 --- /dev/null +++ b/src/components/my-cron/result.vue @@ -0,0 +1,561 @@ + + + diff --git a/src/components/my-cron/second.vue b/src/components/my-cron/second.vue new file mode 100644 index 0000000..45c6e8b --- /dev/null +++ b/src/components/my-cron/second.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/src/components/my-cron/week.vue b/src/components/my-cron/week.vue new file mode 100644 index 0000000..191e810 --- /dev/null +++ b/src/components/my-cron/week.vue @@ -0,0 +1,208 @@ + + + + + diff --git a/src/components/my-cron/year.vue b/src/components/my-cron/year.vue new file mode 100644 index 0000000..0d1d6c0 --- /dev/null +++ b/src/components/my-cron/year.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/src/components/my-date-range/index.vue b/src/components/my-date-range/index.vue new file mode 100644 index 0000000..e56b751 --- /dev/null +++ b/src/components/my-date-range/index.vue @@ -0,0 +1,96 @@ + + + diff --git a/src/components/my-dropdown-more/index.vue b/src/components/my-dropdown-more/index.vue new file mode 100644 index 0000000..f8f6427 --- /dev/null +++ b/src/components/my-dropdown-more/index.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/components/my-editor/index.vue b/src/components/my-editor/index.vue new file mode 100644 index 0000000..c4e6ca9 --- /dev/null +++ b/src/components/my-editor/index.vue @@ -0,0 +1,153 @@ + + + diff --git a/src/components/my-high-search/dialog.vue b/src/components/my-high-search/dialog.vue new file mode 100644 index 0000000..558b8b8 --- /dev/null +++ b/src/components/my-high-search/dialog.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/components/my-high-search/index.vue b/src/components/my-high-search/index.vue new file mode 100644 index 0000000..fb985b3 --- /dev/null +++ b/src/components/my-high-search/index.vue @@ -0,0 +1,291 @@ + + + + + diff --git a/src/components/my-icon/index.vue b/src/components/my-icon/index.vue new file mode 100644 index 0000000..b23bced --- /dev/null +++ b/src/components/my-icon/index.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/components/my-import/index.vue b/src/components/my-import/index.vue new file mode 100644 index 0000000..b701908 --- /dev/null +++ b/src/components/my-import/index.vue @@ -0,0 +1,406 @@ + + + + + diff --git a/src/components/my-input-code/index.vue b/src/components/my-input-code/index.vue new file mode 100644 index 0000000..fc2a7ea --- /dev/null +++ b/src/components/my-input-code/index.vue @@ -0,0 +1,187 @@ + + + + + + diff --git a/src/components/my-json-editor/index.vue b/src/components/my-json-editor/index.vue new file mode 100644 index 0000000..3095c23 --- /dev/null +++ b/src/components/my-json-editor/index.vue @@ -0,0 +1,127 @@ + + + + + + diff --git a/src/components/my-layout/index.vue b/src/components/my-layout/index.vue new file mode 100644 index 0000000..9fc14c2 --- /dev/null +++ b/src/components/my-layout/index.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/components/my-layout/split-panes.vue b/src/components/my-layout/split-panes.vue new file mode 100644 index 0000000..1d68c3b --- /dev/null +++ b/src/components/my-layout/split-panes.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/components/my-link/index.vue b/src/components/my-link/index.vue new file mode 100644 index 0000000..b1b4814 --- /dev/null +++ b/src/components/my-link/index.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/src/components/my-search/index.vue b/src/components/my-search/index.vue new file mode 100644 index 0000000..9050b3b --- /dev/null +++ b/src/components/my-search/index.vue @@ -0,0 +1,187 @@ + + + diff --git a/src/components/my-select-icon/icon-select.vue b/src/components/my-select-icon/icon-select.vue new file mode 100644 index 0000000..e17e0c1 --- /dev/null +++ b/src/components/my-select-icon/icon-select.vue @@ -0,0 +1,251 @@ + + + + + + + diff --git a/src/components/my-select-icon/index.vue b/src/components/my-select-icon/index.vue new file mode 100644 index 0000000..8ac4cab --- /dev/null +++ b/src/components/my-select-icon/index.vue @@ -0,0 +1,64 @@ + + + + + + + diff --git a/src/components/my-select-input/index.vue b/src/components/my-select-input/index.vue new file mode 100644 index 0000000..91bbcf7 --- /dev/null +++ b/src/components/my-select-input/index.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/src/components/my-select/index.vue b/src/components/my-select/index.vue new file mode 100644 index 0000000..8556059 --- /dev/null +++ b/src/components/my-select/index.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/components/my-upload/index.vue b/src/components/my-upload/index.vue new file mode 100644 index 0000000..41eaeef --- /dev/null +++ b/src/components/my-upload/index.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/src/components/noticeBar/index.vue b/src/components/noticeBar/index.vue new file mode 100644 index 0000000..f6ba976 --- /dev/null +++ b/src/components/noticeBar/index.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/src/components/svgIcon/index.vue b/src/components/svgIcon/index.vue new file mode 100644 index 0000000..a121e04 --- /dev/null +++ b/src/components/svgIcon/index.vue @@ -0,0 +1,62 @@ + + + diff --git a/src/components/table/index.vue b/src/components/table/index.vue new file mode 100644 index 0000000..4c742fe --- /dev/null +++ b/src/components/table/index.vue @@ -0,0 +1,301 @@ + + + + + diff --git a/src/directive/authDirective.ts b/src/directive/authDirective.ts new file mode 100644 index 0000000..c887d58 --- /dev/null +++ b/src/directive/authDirective.ts @@ -0,0 +1,40 @@ +import type { App } from 'vue' +import { useUserInfo } from '/@/stores/userInfo' +import { judementSameArr } from '/@/utils/arrayOperation' + +/** + * 用户权限指令 + * @directive 单个权限验证(v-auth="xxx") + * @directive 多个权限验证,满足一个则显示(v-auths="[xxx,xxx]") + * @directive 多个权限验证,全部满足则显示(v-auth-all="[xxx,xxx]") + */ +export function authDirective(app: App) { + // 单个权限验证(v-auth="xxx") + app.directive('auth', { + mounted(el, binding) { + const stores = useUserInfo() + if (!stores.userInfos.authBtnList.some((v: string) => v === binding.value)) el.parentNode.removeChild(el) + }, + }) + // 多个权限验证,满足一个则显示(v-auths="[xxx,xxx]") + app.directive('auths', { + mounted(el, binding) { + let flag = false + const stores = useUserInfo() + stores.userInfos.authBtnList.map((val: string) => { + binding.value.map((v: string) => { + if (val === v) flag = true + }) + }) + if (!flag) el.parentNode.removeChild(el) + }, + }) + // 多个权限验证,全部满足则显示(v-auth-all="[xxx,xxx]") + app.directive('auth-all', { + mounted(el, binding) { + const stores = useUserInfo() + const flag = judementSameArr(binding.value, stores.userInfos.authBtnList) + if (!flag) el.parentNode.removeChild(el) + }, + }) +} diff --git a/src/directive/customDirective.ts b/src/directive/customDirective.ts new file mode 100644 index 0000000..8abd1c2 --- /dev/null +++ b/src/directive/customDirective.ts @@ -0,0 +1,178 @@ +import type { App } from 'vue' + +/** + * 按钮波浪指令 + * @directive 默认方式:v-waves,如 `
` + * @directive 参数方式:v-waves=" |light|red|orange|purple|green|teal",如 `
` + */ +export function wavesDirective(app: App) { + app.directive('waves', { + mounted(el, binding) { + el.classList.add('waves-effect') + binding.value && el.classList.add(`waves-${binding.value}`) + function setConvertStyle(obj: { [key: string]: unknown }) { + let style: string = '' + for (let i in obj) { + if (obj.hasOwnProperty(i)) style += `${i}:${obj[i]};` + } + return style + } + function onCurrentClick(e: { [key: string]: unknown }) { + let elDiv = document.createElement('div') + elDiv.classList.add('waves-ripple') + el.appendChild(elDiv) + let styles = { + left: `${e.layerX}px`, + top: `${e.layerY}px`, + opacity: 1, + transform: `scale(${(el.clientWidth / 100) * 10})`, + 'transition-duration': `750ms`, + 'transition-timing-function': `cubic-bezier(0.250, 0.460, 0.450, 0.940)`, + } + elDiv.setAttribute('style', setConvertStyle(styles)) + setTimeout(() => { + elDiv.setAttribute( + 'style', + setConvertStyle({ + opacity: 0, + transform: styles.transform, + left: styles.left, + top: styles.top, + }) + ) + setTimeout(() => { + elDiv && el.removeChild(elDiv) + }, 750) + }, 450) + } + el.addEventListener('mousedown', onCurrentClick, false) + }, + unmounted(el) { + el.addEventListener('mousedown', () => {}) + }, + }) +} + +/** + * 自定义拖动指令 + * @description 使用方式:v-drag="[dragDom,dragHeader]",如 `
` + * @description dragDom 要拖动的元素,dragHeader 要拖动的 Header 位置 + * @link 注意:https://github.com/element-plus/element-plus/issues/522 + * @lick 参考:https://blog.csdn.net/weixin_46391323/article/details/105228020?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-10&spm=1001.2101.3001.4242 + */ +export function dragDirective(app: App) { + app.directive('drag', { + mounted(el, binding) { + if (!binding.value) return false + + const dragDom = document.querySelector(binding.value[0]) as HTMLElement + const dragHeader = document.querySelector(binding.value[1]) as HTMLElement + + dragHeader.onmouseover = () => (dragHeader.style.cursor = `move`) + + function down(e: any, type: string) { + // 鼠标按下,计算当前元素距离可视区的距离 + const disX = type === 'pc' ? e.clientX - dragHeader.offsetLeft : e.touches[0].clientX - dragHeader.offsetLeft + const disY = type === 'pc' ? e.clientY - dragHeader.offsetTop : e.touches[0].clientY - dragHeader.offsetTop + + // body当前宽度 + const screenWidth = document.body.clientWidth + // 可见区域高度(应为body高度,可某些环境下无法获取) + const screenHeight = document.documentElement.clientHeight + + // 对话框宽度 + const dragDomWidth = dragDom.offsetWidth + // 对话框高度 + const dragDomheight = dragDom.offsetHeight + + const minDragDomLeft = dragDom.offsetLeft + const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth + + const minDragDomTop = dragDom.offsetTop + const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomheight + + // 获取到的值带px 正则匹配替换 + let styL: any = getComputedStyle(dragDom).left + let styT: any = getComputedStyle(dragDom).top + + // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px + if (styL.includes('%')) { + styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100) + styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100) + } else { + styL = +styL.replace(/\px/g, '') + styT = +styT.replace(/\px/g, '') + } + + return { + disX, + disY, + minDragDomLeft, + maxDragDomLeft, + minDragDomTop, + maxDragDomTop, + styL, + styT, + } + } + + function move(e: any, type: string, obj: any) { + let { disX, disY, minDragDomLeft, maxDragDomLeft, minDragDomTop, maxDragDomTop, styL, styT } = obj + + // 通过事件委托,计算移动的距离 + let left = type === 'pc' ? e.clientX - disX : e.touches[0].clientX - disX + let top = type === 'pc' ? e.clientY - disY : e.touches[0].clientY - disY + + // 边界处理 + if (-left > minDragDomLeft) { + left = -minDragDomLeft + } else if (left > maxDragDomLeft) { + left = maxDragDomLeft + } + + if (-top > minDragDomTop) { + top = -minDragDomTop + } else if (top > maxDragDomTop) { + top = maxDragDomTop + } + + // 移动当前元素 + dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;` + } + + /** + * pc端 + * onmousedown 鼠标按下触发事件 + * onmousemove 鼠标按下时持续触发事件 + * onmouseup 鼠标抬起触发事件 + */ + dragHeader.onmousedown = (e) => { + const obj = down(e, 'pc') + document.onmousemove = (e) => { + move(e, 'pc', obj) + } + document.onmouseup = () => { + document.onmousemove = null + document.onmouseup = null + } + } + + /** + * 移动端 + * ontouchstart 当按下手指时,触发ontouchstart + * ontouchmove 当移动手指时,触发ontouchmove + * ontouchend 当移走手指时,触发ontouchend + */ + dragHeader.ontouchstart = (e) => { + const obj = down(e, 'app') + document.ontouchmove = (e) => { + move(e, 'app', obj) + } + document.ontouchend = () => { + document.ontouchmove = null + document.ontouchend = null + } + } + }, + }) +} diff --git a/src/directive/index.ts b/src/directive/index.ts new file mode 100644 index 0000000..c0bbee5 --- /dev/null +++ b/src/directive/index.ts @@ -0,0 +1,18 @@ +import type { App } from 'vue' +import { authDirective } from '/@/directive/authDirective' +import { wavesDirective, dragDirective } from '/@/directive/customDirective' + +/** + * 导出指令方法:v-xxx + * @methods authDirective 用户权限指令,用法:v-auth + * @methods wavesDirective 按钮波浪指令,用法:v-waves + * @methods dragDirective 自定义拖动指令,用法:v-drag + */ +export function directive(app: App) { + // 用户权限指令 + authDirective(app) + // 按钮波浪指令 + wavesDirective(app) + // 自定义拖动指令 + dragDirective(app) +} diff --git a/src/globalProperties/index.ts b/src/globalProperties/index.ts new file mode 100644 index 0000000..917e7f4 --- /dev/null +++ b/src/globalProperties/index.ts @@ -0,0 +1,6 @@ +import modal from './modal' + +export default function installGlobalProperties(app: any) { + // 模态框对象 + app.config.globalProperties.$modal = modal +} diff --git a/src/globalProperties/modal.ts b/src/globalProperties/modal.ts new file mode 100644 index 0000000..42add59 --- /dev/null +++ b/src/globalProperties/modal.ts @@ -0,0 +1,107 @@ +import { markRaw } from 'vue' +import { ElMessage, ElMessageBox, ElNotification, ElLoading, ElMessageBoxOptions } from 'element-plus' +import { Delete } from '@element-plus/icons-vue' +import { i18n } from '/@/i18n/index' + +let loadingInstance: any + +export default { + // 消息提示 + msg(content: any) { + ElMessage.info({ + message: content, + grouping: true, + }) + }, + // 错误消息 + msgError(content: any) { + ElMessage.error({ + message: content, + grouping: true, + }) + }, + // 成功消息 + msgSuccess(content: any) { + ElMessage.success({ + message: content, + grouping: true, + }) + }, + // 警告消息 + msgWarning(content: any) { + ElMessage.warning({ + message: content, + grouping: true, + }) + }, + // 弹出提示 + alert(content: any) { + ElMessageBox.alert(content, i18n.global.t('el.messagebox.title')) + }, + // 错误提示 + alertError(content: any) { + ElMessageBox.alert(content, i18n.global.t('el.messagebox.title'), { type: 'error' }) + }, + // 成功提示 + alertSuccess(content: any) { + ElMessageBox.alert(content, i18n.global.t('el.messagebox.title'), { type: 'success' }) + }, + // 警告提示 + alertWarning(content: any) { + ElMessageBox.alert(content, i18n.global.t('el.messagebox.title'), { type: 'warning' }) + }, + // 通知提示 + notify(content: any) { + ElNotification.info(content) + }, + // 错误通知 + notifyError(content: any) { + ElNotification.error(content) + }, + // 成功通知 + notifySuccess(content: any) { + ElNotification.success(content) + }, + // 警告通知 + notifyWarning(content: any) { + ElNotification.warning(content) + }, + // 确认窗体 + confirm(content: any, elMessageBoxOptions: ElMessageBoxOptions) { + return ElMessageBox.confirm(content, i18n.global.t('el.messagebox.title'), { + confirmButtonText: i18n.global.t('el.messagebox.confirm'), + cancelButtonText: i18n.global.t('el.messagebox.cancel'), + type: 'warning', + ...elMessageBoxOptions, + }) + }, + // 确认删除窗体 + confirmDelete(content: any, elMessageBoxOptions: ElMessageBoxOptions) { + return ElMessageBox.confirm(content, i18n.global.t('el.messagebox.title'), { + confirmButtonText: i18n.global.t('el.messagebox.confirm'), + cancelButtonText: i18n.global.t('el.messagebox.cancel'), + type: 'warning', + icon: markRaw(Delete), + ...elMessageBoxOptions, + }) + }, + // 提交内容 + prompt(content: any, elMessageBoxOptions: ElMessageBoxOptions) { + return ElMessageBox.prompt(content, i18n.global.t('el.messagebox.title'), { + confirmButtonText: i18n.global.t('el.messagebox.confirm'), + cancelButtonText: i18n.global.t('el.messagebox.cancel'), + type: 'warning', + ...elMessageBoxOptions, + }) + }, + // 打开遮罩层 + loading(content: any) { + loadingInstance = ElLoading.service({ + text: content, + }) + }, + // 关闭遮罩层 + closeLoading() { + loadingInstance.close() + }, +} diff --git a/src/i18n/index.ts b/src/i18n/index.ts new file mode 100644 index 0000000..425d45c --- /dev/null +++ b/src/i18n/index.ts @@ -0,0 +1,68 @@ +import { createI18n } from 'vue-i18n' +import pinia from '/@/stores/index' +import { storeToRefs } from 'pinia' +import { useThemeConfig } from '/@/stores/themeConfig' + +// 定义语言国际化内容 + +/** + * 说明: + * 须在 pages 下新建文件夹(建议 `要国际化界面目录` 与 `i18n 目录` 相同,方便查找), + * 注意国际化定义的字段,不要与原有的定义字段相同。 + * 1、/src/i18n/lang 下的 ts 为框架的国际化内容 + * 2、/src/i18n/pages 下的 ts 为各界面的国际化内容 + */ + +// element plus 自带国际化 +import enLocale from 'element-plus/es/locale/lang/en' +import zhcnLocale from 'element-plus/es/locale/lang/zh-cn' +import zhtwLocale from 'element-plus/es/locale/lang/zh-tw' + +// 定义变量内容 +const messages = {} +const element = { en: enLocale, 'zh-cn': zhcnLocale, 'zh-tw': zhtwLocale } +const itemize = { en: [], 'zh-cn': [], 'zh-tw': [] } +const modules: Record = import.meta.glob('./**/*.ts', { eager: true }) + +// 对自动引入的 modules 进行分类 en、zh-cn、zh-tw +// https://vitejs.cn/vite3-cn/guide/features.html#glob-import +for (const path in modules) { + const key = path.match(/(\S+)\/(\S+).ts/) + if (itemize[key![2]]) itemize[key![2]].push(modules[path].default) + else itemize[key![2]] = modules[path] +} + +// 合并数组对象(非标准数组对象,数组中对象的每项 key、value 都不同) +function mergeArrObj(list: T, key: string) { + let obj = {} + list[key].forEach((i: EmptyObjectType) => { + obj = Object.assign({}, obj, i) + }) + return obj +} + +// 处理最终格式 +for (const key in itemize) { + messages[key] = { + name: key, + el: element[key].el, + message: mergeArrObj(itemize, key), + } +} + +// 读取 pinia 默认语言 +const stores = useThemeConfig(pinia) +const { themeConfig } = storeToRefs(stores) + +// 导出语言国际化 +// https://vue-i18n.intlify.dev/guide/essentials/fallback.html#explicit-fallback-with-one-locale +export const i18n = createI18n({ + legacy: false, + silentTranslationWarn: true, + missingWarn: false, + silentFallbackWarn: true, + fallbackWarn: false, + locale: themeConfig.value.globalI18n, + fallbackLocale: zhcnLocale.name, + messages, +}) diff --git a/src/i18n/lang/en.ts b/src/i18n/lang/en.ts new file mode 100644 index 0000000..5eeb275 --- /dev/null +++ b/src/i18n/lang/en.ts @@ -0,0 +1,193 @@ +// 定义内容 +export default { + router: { + home: 'home', + system: 'system', + systemMenu: 'systemMenu', + systemRole: 'systemRole', + systemUser: 'systemUser', + systemDept: 'systemDept', + systemDic: 'systemDic', + limits: 'limits', + limitsFrontEnd: 'FrontEnd', + limitsFrontEndPage: 'FrontEndPage', + limitsFrontEndBtn: 'FrontEndBtn', + limitsBackEnd: 'BackEnd', + limitsBackEndEndPage: 'BackEndEndPage', + menu: 'menu', + menu1: 'menu1', + menu11: 'menu11', + menu12: 'menu12', + menu121: 'menu121', + menu122: 'menu122', + menu13: 'menu13', + menu2: 'menu2', + funIndex: 'function', + funTagsView: 'funTagsView', + funCountup: 'countup', + funWangEditor: 'wangEditor', + funCropper: 'cropper', + funQrcode: 'qrcode', + funEchartsMap: 'EchartsMap', + funPrintJs: 'PrintJs', + funClipboard: 'Copy cut', + funGridLayout: 'Drag layout', + funSplitpanes: 'Pane splitter', + funDragVerify: 'Validator', + pagesIndex: 'pages', + pagesFiltering: 'Filtering', + pagesFilteringDetails: 'FilteringDetails', + pagesFilteringDetails1: 'FilteringDetails1', + pagesIocnfont: 'iconfont icon', + pagesElement: 'element icon', + pagesAwesome: 'awesome icon', + pagesFormAdapt: 'FormAdapt', + pagesTableRules: 'pagesTableRules', + pagesFormI18n: 'FormI18n', + pagesFormRules: 'Multi form validation', + pagesDynamicForm: 'Dynamic complex form', + pagesWorkflow: 'Workflow', + pagesListAdapt: 'ListAdapt', + pagesWaterfall: 'Waterfall', + pagesSteps: 'Steps', + pagesPreview: 'Large preview', + pagesWaves: 'Wave effect', + pagesTree: 'tree alter table', + pagesDrag: 'Drag command', + pagesLazyImg: 'Image lazy loading', + makeIndex: 'makeIndex', + makeSelector: 'Icon selector', + makeNoticeBar: 'notification bar', + makeSvgDemo: 'Svgicon demo', + makeTableDemo: 'table demo', + paramsIndex: 'Routing parameters', + paramsCommon: 'General routing', + paramsDynamic: 'Dynamic routing', + paramsCommonDetails: 'General routing details', + paramsDynamicDetails: 'Dynamic routing details', + chartIndex: 'chartIndex', + visualizingIndex: 'visualizingIndex', + visualizingLinkDemo1: 'visualizingLinkDemo1', + visualizingLinkDemo2: 'visualizingLinkDemo2', + personal: 'personal', + tools: 'tools', + layoutLinkView: 'LinkView', + layoutIframeViewOne: 'IframeViewOne', + layoutIframeViewTwo: 'IframeViewTwo', + }, + staticRoutes: { + signIn: 'signIn', + notFound: 'notFound', + noPower: 'noPower', + }, + user: { + title0: 'Component size', + title1: 'Language switching', + title2: 'Menu search', + title3: 'Layout configuration', + title4: 'news', + title5: 'Full screen on', + title6: 'Full screen off', + dropdownLarge: 'large', + dropdownDefault: 'default', + dropdownSmall: 'small', + dropdown1: 'home page', + dropdown2: 'Personal Center', + dropdown3: '404', + dropdown4: '401', + dropdown5: 'Log out', + dropdown6: 'Code warehouse', + searchPlaceholder: 'Menu search: support Chinese, routing path', + newTitle: 'notice', + newBtn: 'All read', + newGo: 'Go to the notification center', + newDesc: 'No notice', + logOutTitle: 'Tips', + logOutMessage: 'This operation will log out. Do you want to continue?', + logOutConfirm: 'determine', + logOutCancel: 'cancel', + logOutExit: 'Exiting', + }, + tagsView: { + refresh: 'refresh', + close: 'close', + closeOther: 'closeOther', + closeAll: 'closeAll', + fullscreen: 'fullscreen', + closeFullscreen: 'closeFullscreen', + }, + notFound: { + foundTitle: 'Wrong address input, please re-enter the address~', + foundMsg: 'You can check the web address first, and then re-enter or give us feedback.', + foundBtn: 'Back to home page', + }, + noAccess: { + accessTitle: 'You are not authorized to operate~', + accessMsg: 'Contact information: add QQ group discussion 665452019', + accessBtn: 'Reauthorization', + }, + layout: { + primary: 'Theme color', + configTitle: 'Layout configuration', + oneTitle: 'Global Themes', + twoTopTitle: 'top bar set up', + twoMenuTitle: 'Menu set up', + twoColumnsTitle: 'Columns set up', + twoTopBar: 'Top bar background', + twoTopBarColor: 'Top bar default font color', + twoIsTopBarColorGradual: 'Top bar gradient', + twoMenuBar: 'Menu background', + twoMenuBarColor: 'Menu default font color', + twoMenuBarActiveColor: 'Menu Highlight Color', + twoIsMenuBarColorGradual: 'Menu gradient', + twoColumnsMenuBar: 'Column menu background', + twoColumnsMenuBarColor: 'Default font color bar menu', + twoIsColumnsMenuBarColorGradual: 'Column gradient', + twoIsColumnsMenuHoverPreload: 'Column Menu Hover Preload', + threeTitle: 'Interface settings', + threeIsCollapse: 'Menu horizontal collapse', + threeIsUniqueOpened: 'Menu accordion', + threeIsFixedHeader: 'Fixed header', + threeIsClassicSplitMenu: 'Classic layout split menu', + threeIsLockScreen: 'Open the lock screen', + threeLockScreenTime: 'screen locking(s/s)', + fourTitle: 'Interface display', + fourIsShowLogo: 'Sidebar logo', + fourIsBreadcrumb: 'Open breadcrumb', + fourIsBreadcrumbIcon: 'Open breadcrumb icon', + fourIsTagsview: 'Open tagsview', + fourIsTagsviewIcon: 'Open tagsview Icon', + fourIsCacheTagsView: 'Enable tagsview cache', + fourIsSortableTagsView: 'Enable tagsview drag', + fourIsShareTagsView: 'Enable tagsview sharing', + fourIsFooter: 'Open footer', + fourIsGrayscale: 'Grey model', + fourIsInvert: 'Color weak mode', + fourIsDark: 'Dark Mode', + fourIsWatermark: 'Turn on watermark', + fourWatermarkText: 'Watermark copy', + fiveTitle: 'Other settings', + fiveTagsStyle: 'Tagsview style', + fiveAnimation: 'page animation', + fiveColumnsAsideStyle: 'Column style', + fiveColumnsAsideLayout: 'Column layout', + sixTitle: 'Layout switch', + sixDefaults: 'One', + sixClassic: 'Two', + sixTransverse: 'Three', + sixColumns: 'Four', + tipText: 'Click the button below to copy the layout configuration to `/src/stores/themeConfig.ts` It has been modified in.', + copyText: 'replication configuration', + resetText: 'restore default', + copyTextSuccess: 'Copy succeeded!', + copyTextError: 'Copy failed!', + }, + upgrade: { + title: 'New version', + msg: 'The new version is available, please update it now! Dont worry, the update is fast!', + desc: 'Prompt: Update will restore the default configuration', + btnOne: 'Cruel refusal', + btnTwo: 'Update now', + btnTwoLoading: 'Updating', + }, +} diff --git a/src/i18n/lang/zh-cn.ts b/src/i18n/lang/zh-cn.ts new file mode 100644 index 0000000..3f81567 --- /dev/null +++ b/src/i18n/lang/zh-cn.ts @@ -0,0 +1,193 @@ +// 定义内容 +export default { + router: { + home: '首页', + system: '系统设置', + systemMenu: '菜单管理', + systemRole: '角色管理', + systemUser: '用户管理', + systemDept: '部门管理', + systemDic: '字典管理', + limits: '权限管理', + limitsFrontEnd: '前端控制', + limitsFrontEndPage: '页面权限', + limitsFrontEndBtn: '按钮权限', + limitsBackEnd: '后端控制', + limitsBackEndEndPage: '页面权限', + menu: '菜单嵌套', + menu1: '菜单1', + menu11: '菜单11', + menu12: '菜单12', + menu121: '菜单121', + menu122: '菜单122', + menu13: '菜单13', + menu2: '菜单2', + funIndex: '功能', + funTagsView: '标签页操作', + funCountup: '数字滚动', + funWangEditor: 'Editor 编辑器', + funCropper: '图片裁剪', + funQrcode: '二维码生成', + funEchartsMap: '地理坐标/地图', + funPrintJs: '页面打印', + funClipboard: '复制剪切', + funGridLayout: '拖拽布局', + funSplitpanes: '窗格拆分器', + funDragVerify: '验证器', + pagesIndex: '页面', + pagesFiltering: '过滤筛选组件', + pagesFilteringDetails: '过滤筛选组件详情', + pagesFilteringDetails1: '过滤筛选组件详情111', + pagesIocnfont: 'ali 字体图标', + pagesElement: 'ele 字体图标', + pagesAwesome: 'awe 字体图标', + pagesFormAdapt: '表单自适应', + pagesTableRules: '表单表格验证', + pagesFormI18n: '表单国际化', + pagesFormRules: '多表单验证', + pagesDynamicForm: '动态复杂表单', + pagesWorkflow: '工作流', + pagesListAdapt: '列表自适应', + pagesWaterfall: '瀑布屏', + pagesSteps: '步骤条', + pagesPreview: '大图预览', + pagesWaves: '波浪效果', + pagesTree: '树形改表格', + pagesDrag: '拖动指令', + pagesLazyImg: '图片懒加载', + makeIndex: '组件封装', + makeSelector: '图标选择器', + makeNoticeBar: '滚动通知栏', + makeSvgDemo: 'svgIcon 演示', + makeTableDemo: '表格封装演示', + paramsIndex: '路由参数', + paramsCommon: '普通路由', + paramsDynamic: '动态路由', + paramsCommonDetails: '普通路由详情', + paramsDynamicDetails: '动态路由详情', + chartIndex: '大数据图表', + visualizingIndex: '数据可视化', + visualizingLinkDemo1: '数据可视化演示1', + visualizingLinkDemo2: '数据可视化演示2', + personal: '个人中心', + tools: '工具类集合', + layoutLinkView: '外链', + layoutIframeViewOne: '内嵌 iframe1', + layoutIframeViewTwo: '内嵌 iframe2', + }, + staticRoutes: { + signIn: '登录', + notFound: '找不到此页面', + noPower: '没有权限', + }, + user: { + title0: '组件大小', + title1: '语言切换', + title2: '菜单搜索', + title3: '布局配置', + title4: '消息', + title5: '开全屏', + title6: '关全屏', + dropdownLarge: '大型', + dropdownDefault: '默认', + dropdownSmall: '小型', + dropdown1: '首页', + dropdown2: '个人中心', + dropdown3: '404', + dropdown4: '401', + dropdown5: '退出登录', + dropdown6: '代码仓库', + searchPlaceholder: '菜单搜索:支持中文、路由路径', + newTitle: '通知', + newBtn: '全部已读', + newGo: '前往通知中心', + newDesc: '暂无通知', + logOutTitle: '提示', + logOutMessage: '此操作将退出登录, 是否继续?', + logOutConfirm: '确定', + logOutCancel: '取消', + logOutExit: '退出中', + }, + tagsView: { + refresh: '刷新', + close: '关闭', + closeOther: '关闭其它', + closeAll: '全部关闭', + fullscreen: '当前页全屏', + closeFullscreen: '关闭全屏', + }, + notFound: { + foundTitle: '地址输入错误,请重新输入地址~', + foundMsg: '您可以先检查网址,然后重新输入或给我们反馈问题。', + foundBtn: '返回首页', + }, + noAccess: { + accessTitle: '您未被授权,没有操作权限~', + accessMsg: '联系方式:加QQ群探讨 665452019', + accessBtn: '重新授权', + }, + layout: { + primary: '主题颜色', + configTitle: '布局配置', + oneTitle: '全局主题', + twoTopTitle: '顶栏设置', + twoMenuTitle: '菜单设置', + twoColumnsTitle: '分栏设置', + twoTopBar: '顶栏背景', + twoTopBarColor: '顶栏默认字体颜色', + twoIsTopBarColorGradual: '顶栏背景渐变', + twoMenuBar: '菜单背景', + twoMenuBarColor: '菜单默认字体颜色', + twoMenuBarActiveColor: '菜单高亮背景色', + twoIsMenuBarColorGradual: '菜单背景渐变', + twoColumnsMenuBar: '分栏菜单背景', + twoColumnsMenuBarColor: '分栏菜单默认字体颜色', + twoIsColumnsMenuBarColorGradual: '分栏菜单背景渐变', + twoIsColumnsMenuHoverPreload: '分栏菜单鼠标悬停预加载', + threeTitle: '界面设置', + threeIsCollapse: '菜单水平折叠', + threeIsUniqueOpened: '菜单手风琴', + threeIsFixedHeader: '固定 Header', + threeIsClassicSplitMenu: '经典布局分割菜单', + threeIsLockScreen: '开启锁屏', + threeLockScreenTime: '自动锁屏(s/秒)', + fourTitle: '界面显示', + fourIsShowLogo: '侧边栏 Logo', + fourIsBreadcrumb: '开启面包屑', + fourIsBreadcrumbIcon: '开启面包屑图标', + fourIsTagsview: '开启标签页', + fourIsTagsviewIcon: '开启标签页图标', + fourIsCacheTagsView: '开启标签页缓存', + fourIsSortableTagsView: '开启标签页拖拽', + fourIsShareTagsView: '开启标签页共用', + fourIsFooter: '开启 Footer', + fourIsGrayscale: '灰色模式', + fourIsInvert: '色弱模式', + fourIsDark: '深色模式', + fourIsWatermark: '开启水印', + fourWatermarkText: '水印文案', + fiveTitle: '其它设置', + fiveTagsStyle: '标签页风格', + fiveAnimation: '主页面切换动画', + fiveColumnsAsideStyle: '分栏高亮风格', + fiveColumnsAsideLayout: '分栏布局风格', + sixTitle: '布局切换', + sixDefaults: '默认', + sixClassic: '经典', + sixTransverse: '横向', + sixColumns: '分栏', + tipText: '点击下方按钮,复制布局配置去 `src/stores/themeConfig.ts` 中修改。', + copyText: '一键复制配置', + resetText: '一键恢复默认', + copyTextSuccess: '复制成功!', + copyTextError: '复制失败!', + }, + upgrade: { + title: '新版本升级', + msg: '新版本来啦,马上更新尝鲜吧!不用担心,更新很快的哦!', + desc: '提示:更新会还原默认配置', + btnOne: '残忍拒绝', + btnTwo: '马上更新', + btnTwoLoading: '更新中', + }, +} diff --git a/src/i18n/lang/zh-tw.ts b/src/i18n/lang/zh-tw.ts new file mode 100644 index 0000000..7493afb --- /dev/null +++ b/src/i18n/lang/zh-tw.ts @@ -0,0 +1,193 @@ +// 定义内容 +export default { + router: { + home: '首頁', + system: '系統設置', + systemMenu: '選單管理', + systemRole: '角色管理', + systemUser: '用戶管理', + systemDept: '部門管理', + systemDic: '字典管理', + limits: '許可權管理', + limitsFrontEnd: '前端控制', + limitsFrontEndPage: '頁面許可權', + limitsFrontEndBtn: '按鈕許可權', + limitsBackEnd: '後端控制', + limitsBackEndEndPage: '頁面許可權', + menu: '選單嵌套', + menu1: '選單1', + menu11: '選單11', + menu12: '選單12', + menu121: '選單121', + menu122: '選單122', + menu13: '選單13', + menu2: '選單2', + funIndex: '功能', + funTagsView: 'tagsView 操作', + funCountup: '數位滾動', + funWangEditor: 'Editor 編輯器', + funCropper: '圖片裁剪', + funQrcode: '二維碼生成', + funEchartsMap: '地理座標/地圖', + funPrintJs: '頁面列印', + funClipboard: '複製剪切', + funGridLayout: '拖拽佈局', + funSplitpanes: '窗格折開器', + funDragVerify: '驗證器', + pagesIndex: '頁面', + pagesFiltering: '過濾篩選組件', + pagesFilteringDetails: '過濾篩選組件詳情', + pagesFilteringDetails1: '過濾篩選組件詳情111', + pagesIocnfont: 'ali 字體圖標', + pagesElement: 'ele 字體圖標', + pagesAwesome: 'awe 字體圖標', + pagesFormAdapt: '表單自我調整', + pagesTableRules: '表單表格驗證', + pagesFormI18n: '表單國際化', + pagesFormRules: '多表單驗證', + pagesDynamicForm: '動態複雜表單', + pagesWorkflow: '工作流', + pagesListAdapt: '清單自我調整', + pagesWaterfall: '瀑布屏', + pagesSteps: '步驟條', + pagesPreview: '大圖預覽', + pagesWaves: '波浪效果', + pagesTree: '樹形改表格', + pagesDrag: '拖動指令', + pagesLazyImg: '圖片懶加載', + makeIndex: '組件封裝', + makeSelector: '圖標選擇器', + makeNoticeBar: '滾動通知欄', + makeSvgDemo: 'svgIcon 演示', + makeTableDemo: '表格封裝演示', + paramsIndex: '路由參數', + paramsCommon: '普通路由', + paramsDynamic: '動態路由', + paramsCommonDetails: '普通路由詳情', + paramsDynamicDetails: '動態路由詳情', + chartIndex: '大資料圖表', + visualizingIndex: '數據視覺化', + visualizingLinkDemo1: '數據視覺化演示1', + visualizingLinkDemo2: '數據視覺化演示2', + personal: '個人中心', + tools: '工具類集合', + layoutLinkView: '外鏈', + layoutIframeViewOne: '内嵌 iframe1', + layoutIframeViewTwo: '内嵌 iframe2', + }, + staticRoutes: { + signIn: '登入', + notFound: '找不到此頁面', + noPower: '沒有許可權', + }, + user: { + title0: '組件大小', + title1: '語言切換', + title2: '選單蒐索', + title3: '佈局配寘', + title4: '消息', + title5: '開全屏', + title6: '關全屏', + dropdownLarge: '大型', + dropdownDefault: '默認', + dropdownSmall: '小型', + dropdown1: '首頁', + dropdown2: '個人中心', + dropdown3: '404', + dropdown4: '401', + dropdown5: '登出', + dropdown6: '程式碼倉庫', + searchPlaceholder: '選單蒐索:支援中文、路由路徑', + newTitle: '通知', + newBtn: '全部已讀', + newGo: '前往通知中心', + newDesc: '暫無通知', + logOutTitle: '提示', + logOutMessage: '此操作將登出,是否繼續?', + logOutConfirm: '確定', + logOutCancel: '取消', + logOutExit: '退出中', + }, + tagsView: { + refresh: '重繪', + close: '關閉', + closeOther: '關閉其它', + closeAll: '全部關閉', + fullscreen: '當前頁全屏', + closeFullscreen: '關閉全屏', + }, + notFound: { + foundTitle: '地址輸入錯誤,請重新輸入地址~', + foundMsg: '您可以先檢查網址,然後重新輸入或給我們迴響問題。', + foundBtn: '返回首頁', + }, + noAccess: { + accessTitle: '您未被授權,沒有操作許可權~', + accessMsg: '聯繫方式:加QQ群探討665452019', + accessBtn: '重新授權', + }, + layout: { + primary: '主題顏色', + configTitle: '佈局配寘', + oneTitle: '全域主題', + twoTopTitle: '頂欄設定', + twoMenuTitle: '選單設定', + twoColumnsTitle: '分欄設定', + twoTopBar: '頂欄背景', + twoTopBarColor: '頂欄默認字體顏色', + twoIsTopBarColorGradual: '頂欄背景漸變', + twoMenuBar: '選單背景', + twoMenuBarColor: '選單默認字體顏色', + twoMenuBarActiveColor: '選單高亮背景色', + twoIsMenuBarColorGradual: '選單背景漸變', + twoColumnsMenuBar: '分欄選單背景', + twoColumnsMenuBarColor: '分欄選單默認字體顏色', + twoIsColumnsMenuBarColorGradual: '分欄選單背景漸變', + twoIsColumnsMenuHoverPreload: '分欄選單滑鼠懸停預加載', + threeTitle: '介面設定', + threeIsCollapse: '選單水准折疊', + threeIsUniqueOpened: '選單手風琴', + threeIsFixedHeader: '固定 Header', + threeIsClassicSplitMenu: '經典佈局分割選單', + threeIsLockScreen: '開啟鎖屏', + threeLockScreenTime: '自動鎖屏(s/秒)', + fourTitle: '介面顯示', + fourIsShowLogo: '側邊欄 Logo', + fourIsBreadcrumb: '開啟麵包屑', + fourIsBreadcrumbIcon: '開啟麵包屑圖標', + fourIsTagsview: '開啟標籤頁', + fourIsTagsviewIcon: '開啟標籤頁圖標', + fourIsCacheTagsView: '開啟標籤頁緩存', + fourIsSortableTagsView: '開啟標籤頁拖拽', + fourIsShareTagsView: '開啟標籤頁共用', + fourIsFooter: '開啟 Footer', + fourIsGrayscale: '灰色模式', + fourIsInvert: '色弱模式', + fourIsDark: '深色模式', + fourIsWatermark: '開啟浮水印', + fourWatermarkText: '浮水印文案', + fiveTitle: '其它設定', + fiveTagsStyle: 'Tagsview 風格', + fiveAnimation: '主頁面切換動畫', + fiveColumnsAsideStyle: '分欄高亮風格', + fiveColumnsAsideLayout: '分欄佈局風格', + sixTitle: '佈局切換', + sixDefaults: '默認', + sixClassic: '經典', + sixTransverse: '橫向', + sixColumns: '分欄', + tipText: '點擊下方按鈕,複製佈局配寘去`src/stores/themeConfig.ts`中修改。', + copyText: '一鍵複製配寘', + resetText: '一鍵恢復默認', + copyTextSuccess: '複製成功!', + copyTextError: '複製失敗!', + }, + upgrade: { + title: '新版本陞級', + msg: '新版本來啦,馬上更新嘗鮮吧! 不用擔心,更新很快的哦!', + desc: '提示:更新會還原默認配寘', + btnOne: '殘忍拒絕', + btnTwo: '馬上更新', + btnTwoLoading: '更新中', + }, +} diff --git a/src/i18n/pages/formI18n/en.ts b/src/i18n/pages/formI18n/en.ts new file mode 100644 index 0000000..6989758 --- /dev/null +++ b/src/i18n/pages/formI18n/en.ts @@ -0,0 +1,13 @@ +// 定义内容 +export default { + formI18nLabel: { + name: 'name', + email: 'email', + autograph: 'autograph', + }, + formI18nPlaceholder: { + name: 'Please enter your name', + email: 'Please enter the users Department', + autograph: 'Please enter the login account name', + }, +} diff --git a/src/i18n/pages/formI18n/zh-cn.ts b/src/i18n/pages/formI18n/zh-cn.ts new file mode 100644 index 0000000..1818a19 --- /dev/null +++ b/src/i18n/pages/formI18n/zh-cn.ts @@ -0,0 +1,13 @@ +// 定义内容 +export default { + formI18nLabel: { + name: '姓名', + email: '用户归属部门', + autograph: '登陆账户名', + }, + formI18nPlaceholder: { + name: '请输入姓名', + email: '请输入用户归属部门', + autograph: '请输入登陆账户名', + }, +} diff --git a/src/i18n/pages/formI18n/zh-tw.ts b/src/i18n/pages/formI18n/zh-tw.ts new file mode 100644 index 0000000..61621fc --- /dev/null +++ b/src/i18n/pages/formI18n/zh-tw.ts @@ -0,0 +1,13 @@ +// 定义内容 +export default { + formI18nLabel: { + name: '姓名', + email: '用戶歸屬部門', + autograph: '登入帳戶名', + }, + formI18nPlaceholder: { + name: '請輸入姓名', + email: '請輸入用戶歸屬部門', + autograph: '請輸入登入帳戶名', + }, +} diff --git a/src/i18n/pages/login/en.ts b/src/i18n/pages/login/en.ts new file mode 100644 index 0000000..f68e68c --- /dev/null +++ b/src/i18n/pages/login/en.ts @@ -0,0 +1,37 @@ +// 定义内容 +export default { + label: { + one1: 'Account login', + two2: 'Mobile login', + two3: 'Email login', + }, + link: { + one3: 'Third party login', + two4: 'Links', + }, + account: { + accountPlaceholder1: 'Please input account', + accountPlaceholder2: 'Please input Password', + accountBtnText: 'Sign in', + }, + mobile: { + placeholder1: 'Please input mobile phone number', + placeholder2: 'Please enter the verification code', + codeText: 'Get code', + btnText: 'Sign in', + msgText: + 'Warm tip: it is recommended to use Google, Microsoft edge, version 79.0.1072.62 and above browsers, and 360 browser, please use speed mode', + }, + email: { + placeholder1: 'Please input email adress', + placeholder2: 'Please enter the verification code', + codeText: 'Get code', + btnText: 'Sign in', + msgText: + 'Warm tip: it is recommended to use Google, Microsoft edge, version 79.0.1072.62 and above browsers, and 360 browser, please use speed mode', + }, + scan: { + text: 'Open the mobile phone to scan and quickly log in / register', + }, + signInText: 'welcome back!', +} diff --git a/src/i18n/pages/login/zh-cn.ts b/src/i18n/pages/login/zh-cn.ts new file mode 100644 index 0000000..b7491ea --- /dev/null +++ b/src/i18n/pages/login/zh-cn.ts @@ -0,0 +1,35 @@ +// 定义内容 +export default { + label: { + one1: '账号登录', + two2: '手机登录', + two3: '邮箱登录', + }, + link: { + one3: '第三方登录', + two4: '友情链接', + }, + account: { + accountPlaceholder1: '请输入账号', + accountPlaceholder2: '请输入密码', + accountBtnText: '登 录', + }, + mobile: { + placeholder1: '请输入手机号', + placeholder2: '请输入验证码', + codeText: '获取验证码', + btnText: '登 录', + msgText: '* 温馨提示:建议使用谷歌、Microsoft Edge,版本 79.0.1072.62 及以上浏览器,360浏览器请使用极速模式', + }, + email: { + placeholder1: '请输入邮箱地址', + placeholder2: '请输入验证码', + codeText: '获取验证码', + btnText: '登 录', + msgText: '* 温馨提示:建议使用谷歌、Microsoft Edge,版本 79.0.1072.62 及以上浏览器,360浏览器请使用极速模式', + }, + scan: { + text: '打开手机扫一扫,快速登录/注册', + }, + signInText: '欢迎回来!', +} diff --git a/src/i18n/pages/login/zh-tw.ts b/src/i18n/pages/login/zh-tw.ts new file mode 100644 index 0000000..8145935 --- /dev/null +++ b/src/i18n/pages/login/zh-tw.ts @@ -0,0 +1,35 @@ +// 定义内容 +export default { + label: { + one1: '賬號登錄', + two2: '手機號登錄', + two3: '郵箱登錄', + }, + link: { + one3: '協力廠商登入', + two4: '友情連結', + }, + account: { + accountPlaceholder1: '請輸入賬號', + accountPlaceholder2: '請輸入密碼', + accountBtnText: '登 錄', + }, + mobile: { + placeholder1: '請輸入手機號', + placeholder2: '請輸入驗證碼', + codeText: '獲取驗證碼', + btnText: '登 錄', + msgText: '* 溫馨提示:建議使用穀歌、Microsoft Edge,版本79.0.1072.62及以上瀏覽器,360瀏覽器請使用極速模式', + }, + email: { + placeholder1: '請輸入郵箱地址', + placeholder2: '請輸入驗證碼', + codeText: '獲取驗證碼', + btnText: '登入', + msgText: '* 溫馨提示:建議使用穀歌、Microsoft Edge,版本79.0.1072.62及以上瀏覽器,360瀏覽器請使用極速模式', + }, + scan: { + text: '打開手機掃一掃,快速登錄/注册', + }, + signInText: '歡迎回來!', +} diff --git a/src/layout/component/aside.vue b/src/layout/component/aside.vue new file mode 100644 index 0000000..919c2ca --- /dev/null +++ b/src/layout/component/aside.vue @@ -0,0 +1,167 @@ + + + diff --git a/src/layout/component/columnsAside.vue b/src/layout/component/columnsAside.vue new file mode 100644 index 0000000..d8f60e3 --- /dev/null +++ b/src/layout/component/columnsAside.vue @@ -0,0 +1,356 @@ + + + + + diff --git a/src/layout/component/header.vue b/src/layout/component/header.vue new file mode 100644 index 0000000..d54ce09 --- /dev/null +++ b/src/layout/component/header.vue @@ -0,0 +1,18 @@ + + + diff --git a/src/layout/component/main.vue b/src/layout/component/main.vue new file mode 100644 index 0000000..208a087 --- /dev/null +++ b/src/layout/component/main.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/layout/footer/index.vue b/src/layout/footer/index.vue new file mode 100644 index 0000000..e348955 --- /dev/null +++ b/src/layout/footer/index.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/src/layout/index.vue b/src/layout/index.vue new file mode 100644 index 0000000..7aab785 --- /dev/null +++ b/src/layout/index.vue @@ -0,0 +1,50 @@ + + + diff --git a/src/layout/lockScreen/index.vue b/src/layout/lockScreen/index.vue new file mode 100644 index 0000000..919ebbf --- /dev/null +++ b/src/layout/lockScreen/index.vue @@ -0,0 +1,353 @@ + + + + + diff --git a/src/layout/logo/index.vue b/src/layout/logo/index.vue new file mode 100644 index 0000000..cc29860 --- /dev/null +++ b/src/layout/logo/index.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/src/layout/main/classic.vue b/src/layout/main/classic.vue new file mode 100644 index 0000000..cb15c13 --- /dev/null +++ b/src/layout/main/classic.vue @@ -0,0 +1,73 @@ + + + diff --git a/src/layout/main/columns.vue b/src/layout/main/columns.vue new file mode 100644 index 0000000..87659b9 --- /dev/null +++ b/src/layout/main/columns.vue @@ -0,0 +1,73 @@ + + + diff --git a/src/layout/main/defaults.vue b/src/layout/main/defaults.vue new file mode 100644 index 0000000..99416c1 --- /dev/null +++ b/src/layout/main/defaults.vue @@ -0,0 +1,73 @@ + + + diff --git a/src/layout/main/transverse.vue b/src/layout/main/transverse.vue new file mode 100644 index 0000000..76203a7 --- /dev/null +++ b/src/layout/main/transverse.vue @@ -0,0 +1,60 @@ + + + diff --git a/src/layout/navBars/index.vue b/src/layout/navBars/index.vue new file mode 100644 index 0000000..7f3f2fd --- /dev/null +++ b/src/layout/navBars/index.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/layout/navBars/tagsView/contextmenu.vue b/src/layout/navBars/tagsView/contextmenu.vue new file mode 100644 index 0000000..b1585be --- /dev/null +++ b/src/layout/navBars/tagsView/contextmenu.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/src/layout/navBars/tagsView/tagsView.vue b/src/layout/navBars/tagsView/tagsView.vue new file mode 100644 index 0000000..033a448 --- /dev/null +++ b/src/layout/navBars/tagsView/tagsView.vue @@ -0,0 +1,751 @@ + + + + + diff --git a/src/layout/navBars/topBar/breadcrumb.vue b/src/layout/navBars/topBar/breadcrumb.vue new file mode 100644 index 0000000..647561e --- /dev/null +++ b/src/layout/navBars/topBar/breadcrumb.vue @@ -0,0 +1,195 @@ + + + + + diff --git a/src/layout/navBars/topBar/closeFull.vue b/src/layout/navBars/topBar/closeFull.vue new file mode 100644 index 0000000..609be66 --- /dev/null +++ b/src/layout/navBars/topBar/closeFull.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/src/layout/navBars/topBar/index.vue b/src/layout/navBars/topBar/index.vue new file mode 100644 index 0000000..7d15558 --- /dev/null +++ b/src/layout/navBars/topBar/index.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/src/layout/navBars/topBar/msg.vue b/src/layout/navBars/topBar/msg.vue new file mode 100644 index 0000000..6a91a9e --- /dev/null +++ b/src/layout/navBars/topBar/msg.vue @@ -0,0 +1,203 @@ + + + + + diff --git a/src/layout/navBars/topBar/search.vue b/src/layout/navBars/topBar/search.vue new file mode 100644 index 0000000..c3bf958 --- /dev/null +++ b/src/layout/navBars/topBar/search.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/src/layout/navBars/topBar/setings.vue b/src/layout/navBars/topBar/setings.vue new file mode 100644 index 0000000..b21317d --- /dev/null +++ b/src/layout/navBars/topBar/setings.vue @@ -0,0 +1,948 @@ + + + + + diff --git a/src/layout/navBars/topBar/user.vue b/src/layout/navBars/topBar/user.vue new file mode 100644 index 0000000..700a7fc --- /dev/null +++ b/src/layout/navBars/topBar/user.vue @@ -0,0 +1,294 @@ + + + + + diff --git a/src/layout/navBars/topBar/userNews.vue b/src/layout/navBars/topBar/userNews.vue new file mode 100644 index 0000000..442b674 --- /dev/null +++ b/src/layout/navBars/topBar/userNews.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/src/layout/navMenu/horizontal.vue b/src/layout/navMenu/horizontal.vue new file mode 100644 index 0000000..5a9a7a1 --- /dev/null +++ b/src/layout/navMenu/horizontal.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/src/layout/navMenu/subItem.vue b/src/layout/navMenu/subItem.vue new file mode 100644 index 0000000..92674e3 --- /dev/null +++ b/src/layout/navMenu/subItem.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/layout/navMenu/vertical.vue b/src/layout/navMenu/vertical.vue new file mode 100644 index 0000000..be7f428 --- /dev/null +++ b/src/layout/navMenu/vertical.vue @@ -0,0 +1,100 @@ + + + diff --git a/src/layout/routerView/iframes.vue b/src/layout/routerView/iframes.vue new file mode 100644 index 0000000..7c6270e --- /dev/null +++ b/src/layout/routerView/iframes.vue @@ -0,0 +1,101 @@ +