parent
76d9a8bf86
commit
e08e65995f
@ -0,0 +1,19 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset=utf-8
|
||||||
|
end_of_line=lf
|
||||||
|
insert_final_newline=true
|
||||||
|
indent_style=space
|
||||||
|
indent_size=2
|
||||||
|
max_line_length = 100
|
||||||
|
|
||||||
|
[*.{yml,yaml,json}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
[Makefile]
|
||||||
|
indent_style = tab
|
@ -0,0 +1,17 @@
|
|||||||
|
# 端口号
|
||||||
|
VITE_PORT = 8090
|
||||||
|
|
||||||
|
# 网站标题
|
||||||
|
VITE_GLOB_APP_TITLE = 云息Saas平台
|
||||||
|
|
||||||
|
# 简称,用于配置文件名字 不要出现空格、数字开头等特殊字符
|
||||||
|
VITE_GLOB_APP_SHORT_NAME = Yunxi_Saas_Admin
|
||||||
|
|
||||||
|
# 租户开关
|
||||||
|
VITE_GLOB_APP_TENANT_ENABLE = true
|
||||||
|
|
||||||
|
# 验证码的开关
|
||||||
|
VITE_GLOB_APP_CAPTCHA_ENABLE = true
|
||||||
|
|
||||||
|
# 百度统计
|
||||||
|
VITE_APP_BAIDU_CODE = eb21166668bf766b9d059a6fd1c10777
|
@ -0,0 +1,13 @@
|
|||||||
|
*.sh
|
||||||
|
node_modules
|
||||||
|
*.md
|
||||||
|
*.woff
|
||||||
|
*.ttf
|
||||||
|
.vscode
|
||||||
|
.idea
|
||||||
|
dist
|
||||||
|
/public
|
||||||
|
/docs
|
||||||
|
.local
|
||||||
|
/bin
|
||||||
|
Dockerfile
|
@ -0,0 +1,10 @@
|
|||||||
|
const process = require('node:process')
|
||||||
|
|
||||||
|
process.env.ESLINT_TSCONFIG = 'tsconfig.json'
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
extends: ['@xingyuv', '@unocss'],
|
||||||
|
rules: {
|
||||||
|
'no-console': 'off',
|
||||||
|
},
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
# https://docs.github.com/cn/get-started/getting-started-with-git/configuring-git-to-handle-line-endings
|
||||||
|
|
||||||
|
# Automatically normalize line endings (to LF) for all text-based files.
|
||||||
|
* text=auto eol=lf
|
||||||
|
|
||||||
|
# Declare files that will always have CRLF line endings on checkout.
|
||||||
|
*.{cmd,[cC][mM][dD]} text eol=crlf
|
||||||
|
*.{bat,[bB][aA][tT]} text eol=crlf
|
||||||
|
|
||||||
|
# Denote all files that are truly binary and should not be modified.
|
||||||
|
*.{ico,png,jpg,jpeg,gif,webp,svg,woff,woff2} binary
|
@ -0,0 +1,39 @@
|
|||||||
|
node_modules
|
||||||
|
.DS_Store
|
||||||
|
dist
|
||||||
|
.npmrc
|
||||||
|
.cache
|
||||||
|
|
||||||
|
tests/server/static
|
||||||
|
tests/server/static/upload
|
||||||
|
|
||||||
|
*.local
|
||||||
|
# local env files
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
.env.development
|
||||||
|
.eslintcache
|
||||||
|
|
||||||
|
# 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?
|
||||||
|
|
||||||
|
package-lock.json
|
||||||
|
|
||||||
|
.history
|
||||||
|
.vscode
|
||||||
|
.vite
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
ports:
|
||||||
|
- port: 3344
|
||||||
|
onOpen: open-preview
|
||||||
|
tasks:
|
||||||
|
- init: pnpm install
|
||||||
|
command: pnpm run dev
|
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"extends": [
|
||||||
|
"development"
|
||||||
|
],
|
||||||
|
"hints": {
|
||||||
|
"compat-api/css": [
|
||||||
|
"default",
|
||||||
|
{
|
||||||
|
"ignore": [
|
||||||
|
"-webkit-tap-highlight-color",
|
||||||
|
"text-size-adjust"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
/dist/*
|
||||||
|
.local
|
||||||
|
.output.js
|
||||||
|
/node_modules/**
|
||||||
|
|
||||||
|
**/*.svg
|
||||||
|
**/*.sh
|
||||||
|
|
||||||
|
/public/*
|
@ -0,0 +1,3 @@
|
|||||||
|
/dist/*
|
||||||
|
/public/*
|
||||||
|
public/*
|
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2023-present, xingyuv
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
@ -0,0 +1,91 @@
|
|||||||
|
const fs = require('node:fs')
|
||||||
|
const path = require('node:path')
|
||||||
|
const { execSync } = require('node:child_process')
|
||||||
|
|
||||||
|
const scopes = fs
|
||||||
|
.readdirSync(path.resolve(__dirname, 'src'), { withFileTypes: true })
|
||||||
|
.filter(dirent => dirent.isDirectory())
|
||||||
|
.map(dirent => dirent.name.replace(/s$/, ''))
|
||||||
|
|
||||||
|
// precomputed scope
|
||||||
|
const scopeComplete = execSync('git status --porcelain || true')
|
||||||
|
.toString()
|
||||||
|
.trim()
|
||||||
|
.split('\n')
|
||||||
|
.find(r => ~r.indexOf('M src'))
|
||||||
|
?.replace(/(\/)/g, '%%')
|
||||||
|
?.match(/src%%((\w|-)*)/)?.[1]
|
||||||
|
?.replace(/s$/, '')
|
||||||
|
|
||||||
|
/** @type {import('cz-git').UserConfig} */
|
||||||
|
module.exports = {
|
||||||
|
ignores: [commit => commit.includes('init')],
|
||||||
|
extends: ['@commitlint/config-conventional'],
|
||||||
|
rules: {
|
||||||
|
'body-leading-blank': [2, 'always'],
|
||||||
|
'footer-leading-blank': [1, 'always'],
|
||||||
|
'header-max-length': [2, 'always', 108],
|
||||||
|
'subject-empty': [2, 'never'],
|
||||||
|
'type-empty': [2, 'never'],
|
||||||
|
'subject-case': [0],
|
||||||
|
'type-enum': [
|
||||||
|
2,
|
||||||
|
'always',
|
||||||
|
['feat', 'fix', 'perf', 'style', 'docs', 'test', 'refactor', 'build', 'ci', 'chore', 'revert', 'wip', 'workflow', 'types', 'release'],
|
||||||
|
],
|
||||||
|
},
|
||||||
|
prompt: {
|
||||||
|
/** @use `yarn commit :f` */
|
||||||
|
alias: {
|
||||||
|
f: 'docs: fix typos',
|
||||||
|
r: 'docs: update README',
|
||||||
|
s: 'style: update code format',
|
||||||
|
b: 'build: bump dependencies',
|
||||||
|
c: 'chore: update config',
|
||||||
|
},
|
||||||
|
customScopesAlign: !scopeComplete ? 'top' : 'bottom',
|
||||||
|
defaultScope: scopeComplete,
|
||||||
|
scopes: [...scopes, 'mock'],
|
||||||
|
allowEmptyIssuePrefixs: false,
|
||||||
|
allowCustomIssuePrefixs: false,
|
||||||
|
|
||||||
|
// English
|
||||||
|
typesAppend: [
|
||||||
|
{ value: 'wip', name: 'wip: work in process' },
|
||||||
|
{ value: 'workflow', name: 'workflow: workflow improvements' },
|
||||||
|
{ value: 'types', name: 'types: type definition file changes' },
|
||||||
|
],
|
||||||
|
|
||||||
|
// 中英文对照版
|
||||||
|
messages: {
|
||||||
|
type: '选择你要提交的类型 :',
|
||||||
|
scope: '选择一个提交范围 (可选):',
|
||||||
|
customScope: '请输入自定义的提交范围 :',
|
||||||
|
subject: '填写简短精炼的变更描述 :\n',
|
||||||
|
body: '填写更加详细的变更描述 (可选)。使用 "|" 换行 :\n',
|
||||||
|
breaking: '列举非兼容性重大的变更 (可选)。使用 "|" 换行 :\n',
|
||||||
|
footerPrefixsSelect: '选择关联issue前缀 (可选):',
|
||||||
|
customFooterPrefixs: '输入自定义issue前缀 :',
|
||||||
|
footer: '列举关联issue (可选) 例如: #31, #I3244 :\n',
|
||||||
|
confirmCommit: '是否提交或修改commit ?',
|
||||||
|
},
|
||||||
|
types: [
|
||||||
|
{ value: 'feat', name: 'feat: 新增功能' },
|
||||||
|
{ value: 'fix', name: 'fix: 修复缺陷' },
|
||||||
|
{ value: 'docs', name: 'docs: 文档变更' },
|
||||||
|
{ value: 'style', name: 'style: 代码格式' },
|
||||||
|
{ value: 'refactor', name: 'refactor: 代码重构' },
|
||||||
|
{ value: 'perf', name: 'perf: 性能优化' },
|
||||||
|
{ value: 'test', name: 'test: 添加疏漏测试或已有测试改动' },
|
||||||
|
{ value: 'build', name: 'build: 构建流程、外部依赖变更 (如升级 npm 包、修改打包配置等)' },
|
||||||
|
{ value: 'ci', name: 'ci: 修改 CI 配置、脚本' },
|
||||||
|
{ value: 'revert', name: 'revert: 回滚 commit' },
|
||||||
|
{ value: 'chore', name: 'chore: 对构建过程或辅助工具和库的更改 (不影响源文件、测试用例)' },
|
||||||
|
{ value: 'wip', name: 'wip: 正在开发中' },
|
||||||
|
{ value: 'workflow', name: 'workflow: 工作流程改进' },
|
||||||
|
{ value: 'types', name: 'types: 类型定义文件修改' },
|
||||||
|
],
|
||||||
|
emptyScopesAlias: 'empty: 不填写',
|
||||||
|
customScopesAlias: 'custom: 自定义',
|
||||||
|
},
|
||||||
|
}
|
@ -0,0 +1,161 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" id="htmlRoot">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||||
|
<meta name="renderer" content="webkit" />
|
||||||
|
<meta
|
||||||
|
name="viewport"
|
||||||
|
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"
|
||||||
|
/>
|
||||||
|
<title>%VITE_GLOB_APP_TITLE%</title>
|
||||||
|
<link rel="icon" href="/favicon.ico" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
(() => {
|
||||||
|
let htmlRoot = document.getElementById('htmlRoot')
|
||||||
|
let theme = window.localStorage.getItem('__APP__DARK__MODE__')
|
||||||
|
if (htmlRoot && theme) {
|
||||||
|
htmlRoot.setAttribute('data-theme', theme)
|
||||||
|
theme = htmlRoot = null
|
||||||
|
}
|
||||||
|
})()
|
||||||
|
</script>
|
||||||
|
<div id="app">
|
||||||
|
<style>
|
||||||
|
html[data-theme="dark"] {
|
||||||
|
.app-loading {
|
||||||
|
background-color: #2c344a;
|
||||||
|
|
||||||
|
.app-loading-title {
|
||||||
|
color: rgb(255 255 255 / 85%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-loading {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
background-color: #f4f7f9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-loading .app-loading-wrap {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
display: flex;
|
||||||
|
transform: translate3d(-50%, -50%, 0);
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-loading .dots {
|
||||||
|
display: flex;
|
||||||
|
padding: 98px;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-loading .app-loading-title {
|
||||||
|
display: flex;
|
||||||
|
margin-top: 30px;
|
||||||
|
font-size: 30px;
|
||||||
|
color: rgb(0 0 0 / 85%);
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-loading .app-loading-logo {
|
||||||
|
display: block;
|
||||||
|
width: 90px;
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
width: 48px;
|
||||||
|
height: 48px;
|
||||||
|
margin-top: 30px;
|
||||||
|
font-size: 32px;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
box-sizing: border-box;
|
||||||
|
animation: antRotate 1.2s infinite linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot i {
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background-color: #0065cc;
|
||||||
|
border-radius: 100%;
|
||||||
|
opacity: 30%;
|
||||||
|
transform: scale(0.75);
|
||||||
|
animation: antSpinMove 1s infinite linear alternate;
|
||||||
|
transform-origin: 50% 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot i:nth-child(1) {
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot i:nth-child(2) {
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
animation-delay: 0.4s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot i:nth-child(3) {
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
animation-delay: 0.8s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dot i:nth-child(4) {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
animation-delay: 1.2s;
|
||||||
|
}
|
||||||
|
@keyframes antRotate {
|
||||||
|
to {
|
||||||
|
transform: rotate(405deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes antRotate {
|
||||||
|
to {
|
||||||
|
transform: rotate(405deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes antSpinMove {
|
||||||
|
to {
|
||||||
|
opacity: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes antSpinMove {
|
||||||
|
to {
|
||||||
|
opacity: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="app-loading">
|
||||||
|
<div class="app-loading-wrap">
|
||||||
|
<img src="/resource/img/logo.png" class="app-loading-logo" alt="Logo" />
|
||||||
|
<div class="app-loading-dots">
|
||||||
|
<span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
|
||||||
|
</div>
|
||||||
|
<div class="app-loading-title">%VITE_GLOB_APP_TITLE%</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="module" src="/src/main.ts"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,169 @@
|
|||||||
|
{
|
||||||
|
"name": "yudao-ui-admin-vben",
|
||||||
|
"version": "1.8.1-snapshot",
|
||||||
|
"packageManager": "pnpm@8.6.0",
|
||||||
|
"author": {
|
||||||
|
"name": "xingyuv",
|
||||||
|
"email": "xingyu4j@vip.qq.com",
|
||||||
|
"url": "https://gitee.com/xingyuv"
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"homepage": "https://gitee.com/xingyuv",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://gitee.com/xingyuv/vue-vben-admin.git"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://gitee.com/xingyuv/issues"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 18.0.0",
|
||||||
|
"pnpm": ">=8.6.0"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"commit": "czg",
|
||||||
|
"bootstrap": "pnpm install",
|
||||||
|
"serve": "pnpm dev",
|
||||||
|
"dev": "vite",
|
||||||
|
"front": "vite --mode front",
|
||||||
|
"build": "cross-env NODE_ENV=production NODE_OPTIONS=--max-old-space-size=8192 vite build && esno ./build/script/postBuild.ts",
|
||||||
|
"build:test": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build --mode test && esno ./build/script/postBuild.ts",
|
||||||
|
"build:static": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build --mode static && esno ./build/script/postBuild.ts",
|
||||||
|
"build:no-cache": "pnpm clean:cache && pnpm build",
|
||||||
|
"report": "cross-env REPORT=true pnpm build",
|
||||||
|
"type:check": "vue-tsc --noEmit --skipLibCheck",
|
||||||
|
"preview": "pnpm build && vite preview",
|
||||||
|
"preview:dist": "vite preview",
|
||||||
|
"clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite",
|
||||||
|
"clean:lib": "rimraf node_modules",
|
||||||
|
"lint": "eslint \"src/**/*.{vue,ts,tsx}\"",
|
||||||
|
"lint:fix": "eslint \"src/**/*.{vue,ts,tsx}\" --fix",
|
||||||
|
"lint:stylelint": "stylelint \"src/**/*.{vue,css,less,scss}\" --fix --cache --cache-location node_modules/.cache/stylelint/",
|
||||||
|
"lint:lint-staged": "lint-staged",
|
||||||
|
"npm:check": "npx npm-check-updates",
|
||||||
|
"reinstall": "rimraf pnpm-lock.yaml && rimraf package.lock.json && rimraf node_modules && pnpm bootstrap",
|
||||||
|
"prepare": "husky install",
|
||||||
|
"gen:icon": "esno ./build/generate/icon/index.ts"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@ant-design/colors": "^7.0.0",
|
||||||
|
"@ant-design/icons-vue": "^7.0.0",
|
||||||
|
"@iconify/iconify": "^3.1.1",
|
||||||
|
"@videojs-player/vue": "^1.0.0",
|
||||||
|
"@vue/runtime-core": "^3.3.4",
|
||||||
|
"@vueuse/core": "^10.4.1",
|
||||||
|
"@zxcvbn-ts/core": "^3.0.4",
|
||||||
|
"ant-design-vue": "^4.0.3",
|
||||||
|
"axios": "^1.5.0",
|
||||||
|
"benz-amr-recorder": "^1.1.5",
|
||||||
|
"codemirror": "^5.65.3",
|
||||||
|
"cron-parser": "^4.9.0",
|
||||||
|
"cropperjs": "^1.6.1",
|
||||||
|
"crypto-js": "^4.1.1",
|
||||||
|
"dayjs": "^1.11.10",
|
||||||
|
"echarts": "^5.4.3",
|
||||||
|
"lodash-es": "^4.17.21",
|
||||||
|
"nprogress": "^0.2.0",
|
||||||
|
"path-to-regexp": "^6.2.1",
|
||||||
|
"pinia": "^2.1.6",
|
||||||
|
"print-js": "^1.6.0",
|
||||||
|
"qs": "^6.11.2",
|
||||||
|
"resize-observer-polyfill": "^1.5.1",
|
||||||
|
"sortablejs": "^1.15.0",
|
||||||
|
"tinymce": "^5.10.7",
|
||||||
|
"vditor": "^3.9.5",
|
||||||
|
"video-js": "^0.7.0",
|
||||||
|
"vue": "^3.3.4",
|
||||||
|
"vue-i18n": "^9.4.1",
|
||||||
|
"vue-json-pretty": "^2.2.4",
|
||||||
|
"vue-router": "^4.2.5",
|
||||||
|
"vue-types": "^5.1.1",
|
||||||
|
"vuedraggable": "^4.1.0",
|
||||||
|
"xlsx": "^0.18.5"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@commitlint/cli": "^17.7.1",
|
||||||
|
"@commitlint/config-conventional": "^17.7.0",
|
||||||
|
"@iconify/json": "^2.2.119",
|
||||||
|
"@purge-icons/generated": "^0.9.0",
|
||||||
|
"@types/codemirror": "^5.60.10",
|
||||||
|
"@types/crypto-js": "^4.1.2",
|
||||||
|
"@types/fs-extra": "^11.0.2",
|
||||||
|
"@types/inquirer": "^9.0.3",
|
||||||
|
"@types/lodash-es": "^4.17.9",
|
||||||
|
"@types/node": "^20.6.0",
|
||||||
|
"@types/nprogress": "^0.2.1",
|
||||||
|
"@types/qs": "^6.9.8",
|
||||||
|
"@types/sortablejs": "^1.15.2",
|
||||||
|
"@unocss/eslint-config": "^0.56.1",
|
||||||
|
"@vitejs/plugin-vue": "4.3.4",
|
||||||
|
"@vitejs/plugin-vue-jsx": "^3.0.2",
|
||||||
|
"@vue/compiler-sfc": "^3.3.4",
|
||||||
|
"@xingyuv/eslint-config": "^0.1.6",
|
||||||
|
"cross-env": "^7.0.3",
|
||||||
|
"cz-git": "^1.7.1",
|
||||||
|
"czg": "^1.7.1",
|
||||||
|
"dotenv": "^16.3.1",
|
||||||
|
"eslint": "^8.50.0",
|
||||||
|
"esno": "^0.17.0",
|
||||||
|
"fs-extra": "^11.1.1",
|
||||||
|
"husky": "^8.0.3",
|
||||||
|
"inquirer": "^9.2.11",
|
||||||
|
"less": "^4.2.0",
|
||||||
|
"lint-staged": "^14.0.1",
|
||||||
|
"picocolors": "^1.0.0",
|
||||||
|
"postcss": "^8.4.30",
|
||||||
|
"postcss-html": "^1.5.0",
|
||||||
|
"postcss-less": "^6.0.0",
|
||||||
|
"prettier": "^3.0.3",
|
||||||
|
"rimraf": "^5.0.1",
|
||||||
|
"rollup": "^3.29.3",
|
||||||
|
"rollup-plugin-visualizer": "^5.9.2",
|
||||||
|
"stylelint": "^15.10.3",
|
||||||
|
"stylelint-config-recess-order": "^4.3.0",
|
||||||
|
"stylelint-config-recommended": "^13.0.0",
|
||||||
|
"stylelint-config-recommended-vue": "^1.5.0",
|
||||||
|
"stylelint-config-standard": "^34.0.0",
|
||||||
|
"stylelint-order": "^6.0.3",
|
||||||
|
"stylelint-prettier": "^4.0.2",
|
||||||
|
"terser": "^5.20.0",
|
||||||
|
"typescript": "^5.2.2",
|
||||||
|
"unocss": "^0.56.1",
|
||||||
|
"vite": "^4.4.9",
|
||||||
|
"vite-plugin-compression": "^0.5.1",
|
||||||
|
"vite-plugin-mkcert": "^1.16.0",
|
||||||
|
"vite-plugin-progress": "^0.0.7",
|
||||||
|
"vite-plugin-purge-icons": "^0.9.2",
|
||||||
|
"vite-plugin-pwa": "^0.16.5",
|
||||||
|
"vite-plugin-svg-icons": "^2.0.1",
|
||||||
|
"vite-vue-plugin-html": "^1.0.2",
|
||||||
|
"vue-eslint-parser": "^9.3.1",
|
||||||
|
"vue-tsc": "^1.8.13"
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"*.{js,jsx,ts,tsx}": [
|
||||||
|
"eslint --fix"
|
||||||
|
],
|
||||||
|
"{!(package)*.json,*.code-snippets,.!(browserslist)*rc}": [
|
||||||
|
"prettier --write--parser json"
|
||||||
|
],
|
||||||
|
"package.json": [
|
||||||
|
"prettier --write"
|
||||||
|
],
|
||||||
|
"*.vue": [
|
||||||
|
"eslint --fix",
|
||||||
|
"stylelint --fix"
|
||||||
|
],
|
||||||
|
"*.{scss,less,styl,html}": [
|
||||||
|
"stylelint --fix"
|
||||||
|
],
|
||||||
|
"*.md": [
|
||||||
|
"prettier --write"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"commitizen": {
|
||||||
|
"path": "node_modules/cz-git"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 174 KiB |
After Width: | Height: | Size: 135 KiB |
@ -0,0 +1,419 @@
|
|||||||
|
tinymce.addI18n('es', {
|
||||||
|
Redo: 'Rehacer',
|
||||||
|
Undo: 'Deshacer',
|
||||||
|
Cut: 'Cortar',
|
||||||
|
Copy: 'Copiar',
|
||||||
|
Paste: 'Pegar',
|
||||||
|
'Select all': 'Seleccionar todo',
|
||||||
|
'New document': 'Nuevo documento',
|
||||||
|
Ok: 'Ok',
|
||||||
|
Cancel: 'Cancelar',
|
||||||
|
'Visual aids': 'Ayudas visuales',
|
||||||
|
Bold: 'Negrita',
|
||||||
|
Italic: 'Cursiva',
|
||||||
|
Underline: 'Subrayado',
|
||||||
|
Strikethrough: 'Tachado',
|
||||||
|
Superscript: 'Super\u00edndice',
|
||||||
|
Subscript: 'Sub\u00edndice',
|
||||||
|
'Clear formatting': 'Limpiar formato',
|
||||||
|
'Align left': 'Alinear a la izquierda',
|
||||||
|
'Align center': 'Alinear al centro',
|
||||||
|
'Align right': 'Alinear a la derecha',
|
||||||
|
Justify: 'Justificar',
|
||||||
|
'Bullet list': 'Lista de vi\u00f1etas',
|
||||||
|
'Numbered list': 'Lista numerada',
|
||||||
|
'Decrease indent': 'Disminuir sangr\u00eda',
|
||||||
|
'Increase indent': 'Incrementar sangr\u00eda',
|
||||||
|
Close: 'Cerrar',
|
||||||
|
Formats: 'Formatos',
|
||||||
|
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": 'Su navegador no es compatible con el acceso directo al portapapeles. Use las teclas Crtl+X\/C\/V de su teclado.',
|
||||||
|
Headers: 'Encabezados',
|
||||||
|
'Header 1': 'Encabezado 1',
|
||||||
|
'Header 2': 'Encabezado 2',
|
||||||
|
'Header 3': 'Encabezado 3',
|
||||||
|
'Header 4': 'Encabezado 4',
|
||||||
|
'Header 5': 'Encabezado 5',
|
||||||
|
'Header 6': 'Encabezado 6',
|
||||||
|
Headings: 'Encabezados',
|
||||||
|
'Heading 1': 'Encabezado 1',
|
||||||
|
'Heading 2': 'Encabezado 2',
|
||||||
|
'Heading 3': 'Encabezado 3',
|
||||||
|
'Heading 4': 'Encabezado 4',
|
||||||
|
'Heading 5': 'Encabezado 5',
|
||||||
|
'Heading 6': 'Encabezado 6',
|
||||||
|
Preformatted: 'Con formato previo',
|
||||||
|
Div: 'Div',
|
||||||
|
Pre: 'Pre',
|
||||||
|
Code: 'C\u00f3digo',
|
||||||
|
Paragraph: 'P\u00e1rrafo',
|
||||||
|
Blockquote: 'Blockquote',
|
||||||
|
Inline: 'Alineado',
|
||||||
|
Blocks: 'Bloques',
|
||||||
|
'Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.': 'Pegar est\u00e1 ahora en modo de texto plano. El contenido se pegar\u00e1 como texto plano hasta que desactive esta opci\u00f3n.',
|
||||||
|
Fonts: 'Fuentes',
|
||||||
|
'Font Sizes': 'Tama\u00f1os de fuente',
|
||||||
|
Class: 'Clase',
|
||||||
|
'Browse for an image': 'Buscar una imagen',
|
||||||
|
OR: 'OR',
|
||||||
|
'Drop an image here': 'Arrastre una imagen aqu\u00ed',
|
||||||
|
Upload: 'Cargar',
|
||||||
|
Block: 'Bloque',
|
||||||
|
Align: 'Alinear',
|
||||||
|
Default: 'Por defecto',
|
||||||
|
Circle: 'C\u00edrculo',
|
||||||
|
Disc: 'Disco',
|
||||||
|
Square: 'Cuadrado',
|
||||||
|
'Lower Alpha': 'Inferior Alfa',
|
||||||
|
'Lower Greek': 'Inferior Griega',
|
||||||
|
'Lower Roman': 'Inferior Romana',
|
||||||
|
'Upper Alpha': 'Superior Alfa',
|
||||||
|
'Upper Roman': 'Superior Romana',
|
||||||
|
'Anchor...': 'Anclaje...',
|
||||||
|
Name: 'Nombre',
|
||||||
|
Id: 'Id',
|
||||||
|
'Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.': 'Deber\u00eda comenzar por una letra, seguida solo de letras, n\u00fameros, guiones, puntos, dos puntos o guiones bajos.',
|
||||||
|
'You have unsaved changes are you sure you want to navigate away?': 'Tiene cambios sin guardar. \u00bfEst\u00e1 seguro de que quiere salir?',
|
||||||
|
'Restore last draft': 'Restaurar el \u00faltimo borrador',
|
||||||
|
'Special character...': 'Car\u00e1cter especial...',
|
||||||
|
'Source code': 'C\u00f3digo fuente',
|
||||||
|
'Insert\/Edit code sample': 'Insertar\/editar c\u00f3digo de prueba',
|
||||||
|
Language: 'Idioma',
|
||||||
|
'Code sample...': 'Ejemplo de c\u00f3digo...',
|
||||||
|
'Color Picker': 'Selector de colores',
|
||||||
|
R: 'R',
|
||||||
|
G: 'V',
|
||||||
|
B: 'A',
|
||||||
|
'Left to right': 'De izquierda a derecha',
|
||||||
|
'Right to left': 'De derecha a izquierda',
|
||||||
|
'Emoticons...': 'Emoticones...',
|
||||||
|
'Metadata and Document Properties': 'Metadatos y propiedades del documento',
|
||||||
|
Title: 'T\u00edtulo',
|
||||||
|
Keywords: 'Palabras clave',
|
||||||
|
Description: 'Descripci\u00f3n',
|
||||||
|
Robots: 'Robots',
|
||||||
|
Author: 'Autor',
|
||||||
|
Encoding: 'Codificaci\u00f3n',
|
||||||
|
Fullscreen: 'Pantalla completa',
|
||||||
|
Action: 'Acci\u00f3n',
|
||||||
|
Shortcut: 'Atajo',
|
||||||
|
Help: 'Ayuda',
|
||||||
|
Address: 'Direcci\u00f3n',
|
||||||
|
'Focus to menubar': 'Enfocar la barra del men\u00fa',
|
||||||
|
'Focus to toolbar': 'Enfocar la barra de herramientas',
|
||||||
|
'Focus to element path': 'Enfocar la ruta del elemento',
|
||||||
|
'Focus to contextual toolbar': 'Enfocar la barra de herramientas contextual',
|
||||||
|
'Insert link (if link plugin activated)': 'Insertar enlace (si el complemento de enlace est\u00e1 activado)',
|
||||||
|
'Save (if save plugin activated)': 'Guardar (si el componente de salvar est\u00e1 activado)',
|
||||||
|
'Find (if searchreplace plugin activated)': 'Buscar (si el complemento buscar-remplazar est\u00e1 activado)',
|
||||||
|
'Plugins installed ({0}):': 'Plugins instalados ({0}):',
|
||||||
|
'Premium plugins:': 'Complementos premium:',
|
||||||
|
'Learn more...': 'Aprende m\u00e1s...',
|
||||||
|
'You are using {0}': 'Estas usando {0}',
|
||||||
|
Plugins: 'Complementos',
|
||||||
|
'Handy Shortcuts': 'Accesos directos',
|
||||||
|
'Horizontal line': 'L\u00ednea horizontal',
|
||||||
|
'Insert\/edit image': 'Insertar\/editar imagen',
|
||||||
|
'Image description': 'Descripci\u00f3n de la imagen',
|
||||||
|
Source: 'Enlace',
|
||||||
|
Dimensions: 'Dimensiones',
|
||||||
|
'Constrain proportions': 'Restringir proporciones',
|
||||||
|
General: 'General',
|
||||||
|
Advanced: 'Avanzado',
|
||||||
|
Style: 'Estilo',
|
||||||
|
'Vertical space': 'Espacio vertical',
|
||||||
|
'Horizontal space': 'Espacio horizontal',
|
||||||
|
Border: 'Borde',
|
||||||
|
'Insert image': 'Insertar imagen',
|
||||||
|
'Image...': 'Imagen...',
|
||||||
|
'Image list': 'Lista de im\u00e1genes',
|
||||||
|
'Rotate counterclockwise': 'Girar a la izquierda',
|
||||||
|
'Rotate clockwise': 'Girar a la derecha',
|
||||||
|
'Flip vertically': 'Invertir verticalmente',
|
||||||
|
'Flip horizontally': 'Invertir horizontalmente',
|
||||||
|
'Edit image': 'Editar imagen',
|
||||||
|
'Image options': 'Opciones de imagen',
|
||||||
|
'Zoom in': 'Acercar',
|
||||||
|
'Zoom out': 'Alejar',
|
||||||
|
Crop: 'Recortar',
|
||||||
|
Resize: 'Redimensionar',
|
||||||
|
Orientation: 'Orientaci\u00f3n',
|
||||||
|
Brightness: 'Brillo',
|
||||||
|
Sharpen: 'Forma',
|
||||||
|
Contrast: 'Contraste',
|
||||||
|
'Color levels': 'Niveles de color',
|
||||||
|
Gamma: 'Gamma',
|
||||||
|
Invert: 'Invertir',
|
||||||
|
Apply: 'Aplicar',
|
||||||
|
Back: 'Atr\u00e1s',
|
||||||
|
'Insert date\/time': 'Insertar fecha\/hora',
|
||||||
|
'Date\/time': 'Fecha\/hora',
|
||||||
|
'Insert\/Edit Link': 'Insertar\/editar enlace',
|
||||||
|
'Insert\/edit link': 'Insertar\/editar enlace',
|
||||||
|
'Text to display': 'Texto para mostrar',
|
||||||
|
Url: 'URL',
|
||||||
|
'Open link in...': 'Abrir enlace en...',
|
||||||
|
'Current window': 'Ventana actual',
|
||||||
|
None: 'Ninguno',
|
||||||
|
'New window': 'Nueva ventana',
|
||||||
|
'Remove link': 'Quitar enlace',
|
||||||
|
Anchors: 'Anclas',
|
||||||
|
'Link...': 'Enlace...',
|
||||||
|
'Paste or type a link': 'Pega o introduce un enlace',
|
||||||
|
'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?': 'El enlace que has introducido no parece ser una direcci\u00f3n de correo electr\u00f3nico. Quieres a\u00f1adir el prefijo necesario mailto: ?',
|
||||||
|
'The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?': 'El enlace que has introducido no parece ser una enlace externo. Quieres a\u00f1adir el prefijo necesario http:\/\/ ?',
|
||||||
|
'Link list': 'Lista de enlaces',
|
||||||
|
'Insert video': 'Insertar video',
|
||||||
|
'Insert\/edit video': 'Insertar\/editar video',
|
||||||
|
'Insert\/edit media': 'Insertar\/editar medio',
|
||||||
|
'Alternative source': 'Enlace alternativo',
|
||||||
|
'Alternative source URL': 'Origen de URL alternativo',
|
||||||
|
'Media poster (Image URL)': 'P\u00f3ster de medio (URL de imagen)',
|
||||||
|
'Paste your embed code below:': 'Pega tu c\u00f3digo embebido debajo',
|
||||||
|
Embed: 'Incrustado',
|
||||||
|
'Media...': 'Medios...',
|
||||||
|
'Nonbreaking space': 'Espacio fijo',
|
||||||
|
'Page break': 'Salto de p\u00e1gina',
|
||||||
|
'Paste as text': 'Pegar como texto',
|
||||||
|
Preview: 'Previsualizar',
|
||||||
|
'Print...': 'Imprimir...',
|
||||||
|
Save: 'Guardar',
|
||||||
|
Find: 'Buscar',
|
||||||
|
'Replace with': 'Reemplazar con',
|
||||||
|
Replace: 'Reemplazar',
|
||||||
|
'Replace all': 'Reemplazar todo',
|
||||||
|
Previous: 'Anterior',
|
||||||
|
Next: 'Siguiente',
|
||||||
|
'Find and replace...': 'Buscar y reemplazar...',
|
||||||
|
'Could not find the specified string.': 'No se encuentra la cadena de texto especificada',
|
||||||
|
'Match case': 'Coincidencia exacta',
|
||||||
|
'Find whole words only': 'Solo palabras completas',
|
||||||
|
'Spell check': 'Revisar ortograf\u00eda',
|
||||||
|
Ignore: 'Ignorar',
|
||||||
|
'Ignore all': 'Ignorar todos',
|
||||||
|
Finish: 'Finalizar',
|
||||||
|
'Add to Dictionary': 'A\u00f1adir al Diccionario',
|
||||||
|
'Insert table': 'Insertar tabla',
|
||||||
|
'Table properties': 'Propiedades de la tabla',
|
||||||
|
'Delete table': 'Eliminar tabla',
|
||||||
|
Cell: 'Celda',
|
||||||
|
Row: 'Fila',
|
||||||
|
Column: 'Columna',
|
||||||
|
'Cell properties': 'Propiedades de la celda',
|
||||||
|
'Merge cells': 'Combinar celdas',
|
||||||
|
'Split cell': 'Dividir celdas',
|
||||||
|
'Insert row before': 'Insertar fila antes',
|
||||||
|
'Insert row after': 'Insertar fila despu\u00e9s ',
|
||||||
|
'Delete row': 'Eliminar fila',
|
||||||
|
'Row properties': 'Propiedades de la fila',
|
||||||
|
'Cut row': 'Cortar fila',
|
||||||
|
'Copy row': 'Copiar fila',
|
||||||
|
'Paste row before': 'Pegar la fila antes',
|
||||||
|
'Paste row after': 'Pegar la fila despu\u00e9s',
|
||||||
|
'Insert column before': 'Insertar columna antes',
|
||||||
|
'Insert column after': 'Insertar columna despu\u00e9s',
|
||||||
|
'Delete column': 'Eliminar columna',
|
||||||
|
Cols: 'Columnas',
|
||||||
|
Rows: 'Filas',
|
||||||
|
Width: 'Ancho',
|
||||||
|
Height: 'Alto',
|
||||||
|
'Cell spacing': 'Espacio entre celdas',
|
||||||
|
'Cell padding': 'Relleno de celda',
|
||||||
|
'Show caption': 'Mostrar t\u00edtulo',
|
||||||
|
Left: 'Izquierda',
|
||||||
|
Center: 'Centrado',
|
||||||
|
Right: 'Derecha',
|
||||||
|
'Cell type': 'Tipo de celda',
|
||||||
|
Scope: '\u00c1mbito',
|
||||||
|
Alignment: 'Alineaci\u00f3n',
|
||||||
|
'H Align': 'Alineamiento Horizontal',
|
||||||
|
'V Align': 'Alineamiento Vertical',
|
||||||
|
Top: 'Arriba',
|
||||||
|
Middle: 'Centro',
|
||||||
|
Bottom: 'Abajo',
|
||||||
|
'Header cell': 'Celda de la cebecera',
|
||||||
|
'Row group': 'Grupo de filas',
|
||||||
|
'Column group': 'Grupo de columnas',
|
||||||
|
'Row type': 'Tipo de fila',
|
||||||
|
Header: 'Cabecera',
|
||||||
|
Body: 'Cuerpo',
|
||||||
|
Footer: 'Pie de p\u00e1gina',
|
||||||
|
'Border color': 'Color del borde',
|
||||||
|
'Insert template...': 'Insertar plantilla...',
|
||||||
|
Templates: 'Plantillas',
|
||||||
|
Template: 'Plantilla',
|
||||||
|
'Text color': 'Color del texto',
|
||||||
|
'Background color': 'Color de fondo',
|
||||||
|
'Custom...': 'Personalizar...',
|
||||||
|
'Custom color': 'Color personalizado',
|
||||||
|
'No color': 'Sin color',
|
||||||
|
'Remove color': 'Quitar color',
|
||||||
|
'Table of Contents': 'Tabla de contenidos',
|
||||||
|
'Show blocks': 'Mostrar bloques',
|
||||||
|
'Show invisible characters': 'Mostrar caracteres invisibles',
|
||||||
|
'Word count': 'Contar palabras',
|
||||||
|
Count: 'Recuento',
|
||||||
|
Document: 'Documento',
|
||||||
|
Selection: 'Selecci\u00f3n',
|
||||||
|
Words: 'Palabras',
|
||||||
|
'Words: {0}': 'Palabras: {0}',
|
||||||
|
'{0} words': '{0} palabras',
|
||||||
|
File: 'Archivo',
|
||||||
|
Edit: 'Editar',
|
||||||
|
Insert: 'Insertar',
|
||||||
|
View: 'Ver',
|
||||||
|
Format: 'Formato',
|
||||||
|
Table: 'Tabla',
|
||||||
|
Tools: 'Herramientas',
|
||||||
|
'Powered by {0}': 'Desarrollado por {0}',
|
||||||
|
'Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help': '\u00c1rea de texto enriquecido. Pulse ALT-F9 para el menu. Pulse ALT-F10 para la barra de herramientas. Pulse ALT-0 para ayuda',
|
||||||
|
'Image title': 'Titulo de imagen',
|
||||||
|
'Border width': 'Ancho de borde',
|
||||||
|
'Border style': 'Estilo de borde',
|
||||||
|
Error: 'Error',
|
||||||
|
Warn: 'Advertencia',
|
||||||
|
Valid: 'V\u00e1lido',
|
||||||
|
'To open the popup, press Shift+Enter': 'Para abrir el elemento emergente, pulse May\u00fas+Intro',
|
||||||
|
'Rich Text Area. Press ALT-0 for help.': '\u00c1rea de texto enriquecido. Pulse ALT-0 para abrir la ayuda.',
|
||||||
|
'System Font': 'Fuente de sistema',
|
||||||
|
'Failed to upload image: {0}': 'Fallo al cargar imagen: {0}',
|
||||||
|
'Failed to load plugin: {0} from url {1}': 'Fallo al cargar complemento: {0} desde URL {1}',
|
||||||
|
'Failed to load plugin url: {0}': 'Fallo al cargar URL del complemento: {0}',
|
||||||
|
'Failed to initialize plugin: {0}': 'Fallo al iniciar el complemento: {0}',
|
||||||
|
example: 'ejemplo',
|
||||||
|
Search: 'Buscar',
|
||||||
|
All: 'Todo',
|
||||||
|
Currency: 'Divisa',
|
||||||
|
Text: 'Texto',
|
||||||
|
Quotations: 'Comillas',
|
||||||
|
Mathematical: 'S\u00edmbolo matem\u00e1tico',
|
||||||
|
'Extended Latin': 'Latino extendido A',
|
||||||
|
Symbols: 'S\u00edmbolos',
|
||||||
|
Arrows: 'Flechas',
|
||||||
|
'User Defined': 'Definido por el usuario',
|
||||||
|
'dollar sign': 'signo de d\u00f3lar',
|
||||||
|
'currency sign': 'signo de divisa',
|
||||||
|
'euro-currency sign': 'signo de euro',
|
||||||
|
'colon sign': 'signo de dos puntos',
|
||||||
|
'cruzeiro sign': 'signo de cruceiro',
|
||||||
|
'french franc sign': 'signo de franco franc\u00e9s',
|
||||||
|
'lira sign': 'signo de lira',
|
||||||
|
'mill sign': 'signo de mill',
|
||||||
|
'naira sign': 'signo de naira',
|
||||||
|
'peseta sign': 'signo de peseta',
|
||||||
|
'rupee sign': 'signo de rupia',
|
||||||
|
'won sign': 'signo de won',
|
||||||
|
'new sheqel sign': 'signo de nuevo s\u00e9quel',
|
||||||
|
'dong sign': 'signo de dong',
|
||||||
|
'kip sign': 'signo de kip',
|
||||||
|
'tugrik sign': 'signo de tugrik',
|
||||||
|
'drachma sign': 'signo de dracma',
|
||||||
|
'german penny symbol': 'signo de penique alem\u00e1n',
|
||||||
|
'peso sign': 'signo de peso',
|
||||||
|
'guarani sign': 'signo de guaran\u00ed',
|
||||||
|
'austral sign': 'signo de austral',
|
||||||
|
'hryvnia sign': 'signo de grivna',
|
||||||
|
'cedi sign': 'signo de cedi',
|
||||||
|
'livre tournois sign': 'signo de libra tornesa',
|
||||||
|
'spesmilo sign': 'signo de spesmilo',
|
||||||
|
'tenge sign': 'signo de tenge',
|
||||||
|
'indian rupee sign': 'signo de rupia india',
|
||||||
|
'turkish lira sign': 'signo de lira turca',
|
||||||
|
'nordic mark sign': 'signo de marco n\u00f3rdico',
|
||||||
|
'manat sign': 'signo de manat',
|
||||||
|
'ruble sign': 'signo de rublo',
|
||||||
|
'yen character': 'car\u00e1cter de yen',
|
||||||
|
'yuan character': 'car\u00e1cter de yuan',
|
||||||
|
'yuan character, in hong kong and taiwan': 'car\u00e1cter de yuan en Hong Kong y Taiw\u00e1n',
|
||||||
|
'yen\/yuan character variant one': 'Variante uno de car\u00e1cter de yen\/yuan',
|
||||||
|
'Loading emoticons...': 'Cargando emoticonos...',
|
||||||
|
'Could not load emoticons': 'No se han podido cargar los emoticonos',
|
||||||
|
People: 'Personas',
|
||||||
|
'Animals and Nature': 'Animales y naturaleza',
|
||||||
|
'Food and Drink': 'Comida y bebida',
|
||||||
|
Activity: 'Actividad',
|
||||||
|
'Travel and Places': 'Viajes y lugares',
|
||||||
|
Objects: 'Objetos',
|
||||||
|
Flags: 'Banderas',
|
||||||
|
Characters: 'Caracteres',
|
||||||
|
'Characters (no spaces)': 'Caracteres (sin espacios)',
|
||||||
|
'{0} characters': '{0} caracteres',
|
||||||
|
'Error: Form submit field collision.': 'Error: Colisi\u00f3n de campo al enviar formulario.',
|
||||||
|
'Error: No form element found.': 'Error: No se encuentra ning\u00fan elemento de formulario.',
|
||||||
|
Update: 'Actualizar',
|
||||||
|
'Color swatch': 'Muestrario de colores',
|
||||||
|
Turquoise: 'Turquesa',
|
||||||
|
Green: 'Verde',
|
||||||
|
Blue: 'Azul',
|
||||||
|
Purple: 'P\u00farpura',
|
||||||
|
'Navy Blue': 'Azul marino',
|
||||||
|
'Dark Turquoise': 'Turquesa oscuro',
|
||||||
|
'Dark Green': 'Verde oscuro',
|
||||||
|
'Medium Blue': 'Azul medio',
|
||||||
|
'Medium Purple': 'P\u00farpura medio',
|
||||||
|
'Midnight Blue': 'Azul medio',
|
||||||
|
Yellow: 'Amarillo',
|
||||||
|
Orange: 'Naranja',
|
||||||
|
Red: 'Rojo',
|
||||||
|
'Light Gray': 'Gris claro',
|
||||||
|
Gray: 'Gris',
|
||||||
|
'Dark Yellow': 'Amarillo oscuro',
|
||||||
|
'Dark Orange': 'Naranja oscuro',
|
||||||
|
'Dark Red': 'Rojo oscuro',
|
||||||
|
'Medium Gray': 'Gris medio',
|
||||||
|
'Dark Gray': 'Gris oscuro',
|
||||||
|
'Light Green': 'Verde claro',
|
||||||
|
'Light Yellow': 'Amarillo claro',
|
||||||
|
'Light Red': 'Rojo claro',
|
||||||
|
'Light Purple': 'Morado claro',
|
||||||
|
'Light Blue': 'Azul claro',
|
||||||
|
'Dark Purple': 'Morado oscuro',
|
||||||
|
'Dark Blue': 'Azul oscuro',
|
||||||
|
Black: 'Negro',
|
||||||
|
White: 'Blanco',
|
||||||
|
'Switch to or from fullscreen mode': 'Activar o desactivar modo pantalla completa',
|
||||||
|
'Open help dialog': 'Abrir di\u00e1logo de ayuda',
|
||||||
|
history: 'historial',
|
||||||
|
styles: 'estilos',
|
||||||
|
formatting: 'formato',
|
||||||
|
alignment: 'alineaci\u00f3n',
|
||||||
|
indentation: 'sangr\u00eda',
|
||||||
|
'permanent pen': 'bol\u00edgrafo permanente',
|
||||||
|
comments: 'comentarios',
|
||||||
|
'Format Painter': 'Copiar formato',
|
||||||
|
'Insert\/edit iframe': 'Insertar\/editar iframe',
|
||||||
|
Capitalization: 'Uso de may\u00fasculas',
|
||||||
|
lowercase: 'min\u00fasculas',
|
||||||
|
UPPERCASE: 'MAY\u00daSCULAS',
|
||||||
|
'Title Case': 'Tipo T\u00edtulo',
|
||||||
|
'Permanent Pen Properties': 'Propiedades del bol\u00edgrafo permanente',
|
||||||
|
'Permanent pen properties...': 'Propiedades del bol\u00edgrafo permanente...',
|
||||||
|
Font: 'Fuente',
|
||||||
|
Size: 'Tama\u00f1o',
|
||||||
|
'More...': 'M\u00e1s...',
|
||||||
|
'Spellcheck Language': 'Corrector',
|
||||||
|
'Select...': 'Seleccionar...',
|
||||||
|
Preferences: 'Preferencias',
|
||||||
|
Yes: 'S\u00ed',
|
||||||
|
No: 'No',
|
||||||
|
'Keyboard Navigation': 'Navegaci\u00f3n con el teclado',
|
||||||
|
Version: 'Versi\u00f3n',
|
||||||
|
Anchor: 'Ancla',
|
||||||
|
'Special character': 'Car\u00e1cter especial',
|
||||||
|
'Code sample': 'Ejemplo de c\u00f3digo',
|
||||||
|
Color: 'Color',
|
||||||
|
Emoticons: 'Emoticonos',
|
||||||
|
'Document properties': 'Propiedades del documento',
|
||||||
|
Image: 'Imagen',
|
||||||
|
'Insert link': 'Insertar enlace',
|
||||||
|
Target: 'Destino',
|
||||||
|
Link: 'Enlace',
|
||||||
|
Poster: 'Miniatura',
|
||||||
|
Media: 'Media',
|
||||||
|
Print: 'Imprimir',
|
||||||
|
Prev: 'Anterior',
|
||||||
|
'Find and replace': 'Buscar y reemplazar',
|
||||||
|
'Whole words': 'Palabras completas',
|
||||||
|
Spellcheck: 'Corrector ortogr\u00e1fico',
|
||||||
|
Caption: 'Subt\u00edtulo',
|
||||||
|
'Insert template': 'Insertar plantilla'
|
||||||
|
})
|
@ -0,0 +1,389 @@
|
|||||||
|
tinymce.addI18n('zh_CN',{
|
||||||
|
"Redo": "\u91cd\u505a",
|
||||||
|
"Undo": "\u64a4\u9500",
|
||||||
|
"Cut": "\u526a\u5207",
|
||||||
|
"Copy": "\u590d\u5236",
|
||||||
|
"Paste": "\u7c98\u8d34",
|
||||||
|
"Select all": "\u5168\u9009",
|
||||||
|
"New document": "\u65b0\u6587\u4ef6",
|
||||||
|
"Ok": "\u786e\u5b9a",
|
||||||
|
"Cancel": "\u53d6\u6d88",
|
||||||
|
"Visual aids": "\u7f51\u683c\u7ebf",
|
||||||
|
"Bold": "\u7c97\u4f53",
|
||||||
|
"Italic": "\u659c\u4f53",
|
||||||
|
"Underline": "\u4e0b\u5212\u7ebf",
|
||||||
|
"Strikethrough": "\u5220\u9664\u7ebf",
|
||||||
|
"Superscript": "\u4e0a\u6807",
|
||||||
|
"Subscript": "\u4e0b\u6807",
|
||||||
|
"Clear formatting": "\u6e05\u9664\u683c\u5f0f",
|
||||||
|
"Align left": "\u5de6\u8fb9\u5bf9\u9f50",
|
||||||
|
"Align center": "\u4e2d\u95f4\u5bf9\u9f50",
|
||||||
|
"Align right": "\u53f3\u8fb9\u5bf9\u9f50",
|
||||||
|
"Justify": "\u4e24\u7aef\u5bf9\u9f50",
|
||||||
|
"Bullet list": "\u9879\u76ee\u7b26\u53f7",
|
||||||
|
"Numbered list": "\u7f16\u53f7\u5217\u8868",
|
||||||
|
"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb",
|
||||||
|
"Increase indent": "\u589e\u52a0\u7f29\u8fdb",
|
||||||
|
"Close": "\u5173\u95ed",
|
||||||
|
"Formats": "\u683c\u5f0f",
|
||||||
|
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6253\u5f00\u526a\u8d34\u677f\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u7b49\u5feb\u6377\u952e\u3002",
|
||||||
|
"Headers": "\u6807\u9898",
|
||||||
|
"Header 1": "\u6807\u98981",
|
||||||
|
"Header 2": "\u6807\u98982",
|
||||||
|
"Header 3": "\u6807\u98983",
|
||||||
|
"Header 4": "\u6807\u98984",
|
||||||
|
"Header 5": "\u6807\u98985",
|
||||||
|
"Header 6": "\u6807\u98986",
|
||||||
|
"Headings": "\u6807\u9898",
|
||||||
|
"Heading 1": "\u6807\u98981",
|
||||||
|
"Heading 2": "\u6807\u98982",
|
||||||
|
"Heading 3": "\u6807\u98983",
|
||||||
|
"Heading 4": "\u6807\u98984",
|
||||||
|
"Heading 5": "\u6807\u98985",
|
||||||
|
"Heading 6": "\u6807\u98986",
|
||||||
|
"Preformatted": "\u9884\u5148\u683c\u5f0f\u5316\u7684",
|
||||||
|
"Div": "Div",
|
||||||
|
"Pre": "Pre",
|
||||||
|
"Code": "\u4ee3\u7801",
|
||||||
|
"Paragraph": "\u6bb5\u843d",
|
||||||
|
"Blockquote": "\u5f15\u6587\u533a\u5757",
|
||||||
|
"Inline": "\u6587\u672c",
|
||||||
|
"Blocks": "\u57fa\u5757",
|
||||||
|
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002",
|
||||||
|
"Fonts": "\u5b57\u4f53",
|
||||||
|
"Font Sizes": "\u5b57\u53f7",
|
||||||
|
"Class": "\u7c7b\u578b",
|
||||||
|
"Browse for an image": "\u6d4f\u89c8\u56fe\u50cf",
|
||||||
|
"OR": "\u6216",
|
||||||
|
"Drop an image here": "\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64",
|
||||||
|
"Upload": "\u4e0a\u4f20",
|
||||||
|
"Block": "\u5757",
|
||||||
|
"Align": "\u5bf9\u9f50",
|
||||||
|
"Default": "\u9ed8\u8ba4",
|
||||||
|
"Circle": "\u7a7a\u5fc3\u5706",
|
||||||
|
"Disc": "\u5b9e\u5fc3\u5706",
|
||||||
|
"Square": "\u65b9\u5757",
|
||||||
|
"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd",
|
||||||
|
"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd",
|
||||||
|
"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd",
|
||||||
|
"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd",
|
||||||
|
"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd",
|
||||||
|
"Anchor...": "\u951a\u70b9...",
|
||||||
|
"Name": "\u540d\u79f0",
|
||||||
|
"Id": "\u6807\u8bc6\u7b26",
|
||||||
|
"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002",
|
||||||
|
"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f",
|
||||||
|
"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f",
|
||||||
|
"Special characters...": "\u7279\u6b8a\u5b57\u7b26...",
|
||||||
|
"Source code": "\u6e90\u4ee3\u7801",
|
||||||
|
"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b",
|
||||||
|
"Language": "\u8bed\u8a00",
|
||||||
|
"Code sample...": "\u793a\u4f8b\u4ee3\u7801...",
|
||||||
|
"Color Picker": "\u9009\u8272\u5668",
|
||||||
|
"R": "R",
|
||||||
|
"G": "G",
|
||||||
|
"B": "B",
|
||||||
|
"Left to right": "\u4ece\u5de6\u5230\u53f3",
|
||||||
|
"Right to left": "\u4ece\u53f3\u5230\u5de6",
|
||||||
|
"Emoticons...": "\u8868\u60c5\u7b26\u53f7...",
|
||||||
|
"Metadata and Document Properties": "\u5143\u6570\u636e\u548c\u6587\u6863\u5c5e\u6027",
|
||||||
|
"Title": "\u6807\u9898",
|
||||||
|
"Keywords": "\u5173\u952e\u8bcd",
|
||||||
|
"Description": "\u63cf\u8ff0",
|
||||||
|
"Robots": "\u673a\u5668\u4eba",
|
||||||
|
"Author": "\u4f5c\u8005",
|
||||||
|
"Encoding": "\u7f16\u7801",
|
||||||
|
"Fullscreen": "\u5168\u5c4f",
|
||||||
|
"Action": "\u64cd\u4f5c",
|
||||||
|
"Shortcut": "\u5feb\u6377\u952e",
|
||||||
|
"Help": "\u5e2e\u52a9",
|
||||||
|
"Address": "\u5730\u5740",
|
||||||
|
"Focus to menubar": "\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f",
|
||||||
|
"Focus to toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f",
|
||||||
|
"Focus to element path": "\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84",
|
||||||
|
"Focus to contextual toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355",
|
||||||
|
"Insert link (if link plugin activated)": "\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)",
|
||||||
|
"Save (if save plugin activated)": "\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)",
|
||||||
|
"Find (if searchreplace plugin activated)": "\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)",
|
||||||
|
"Plugins installed ({0}):": "\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):",
|
||||||
|
"Premium plugins:": "\u4f18\u79c0\u63d2\u4ef6\uff1a",
|
||||||
|
"Learn more...": "\u4e86\u89e3\u66f4\u591a...",
|
||||||
|
"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}",
|
||||||
|
"Plugins": "\u63d2\u4ef6",
|
||||||
|
"Handy Shortcuts": "\u5feb\u6377\u952e",
|
||||||
|
"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf",
|
||||||
|
"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247",
|
||||||
|
"Image description": "\u56fe\u7247\u63cf\u8ff0",
|
||||||
|
"Source": "\u5730\u5740",
|
||||||
|
"Dimensions": "\u5927\u5c0f",
|
||||||
|
"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4",
|
||||||
|
"General": "\u666e\u901a",
|
||||||
|
"Advanced": "\u9ad8\u7ea7",
|
||||||
|
"Style": "\u6837\u5f0f",
|
||||||
|
"Vertical space": "\u5782\u76f4\u8fb9\u8ddd",
|
||||||
|
"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd",
|
||||||
|
"Border": "\u8fb9\u6846",
|
||||||
|
"Insert image": "\u63d2\u5165\u56fe\u7247",
|
||||||
|
"Image...": "\u56fe\u7247...",
|
||||||
|
"Image list": "\u56fe\u7247\u5217\u8868",
|
||||||
|
"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c",
|
||||||
|
"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c",
|
||||||
|
"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c",
|
||||||
|
"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c",
|
||||||
|
"Edit image": "\u7f16\u8f91\u56fe\u7247",
|
||||||
|
"Image options": "\u56fe\u7247\u9009\u9879",
|
||||||
|
"Zoom in": "\u653e\u5927",
|
||||||
|
"Zoom out": "\u7f29\u5c0f",
|
||||||
|
"Crop": "\u88c1\u526a",
|
||||||
|
"Resize": "\u8c03\u6574\u5927\u5c0f",
|
||||||
|
"Orientation": "\u65b9\u5411",
|
||||||
|
"Brightness": "\u4eae\u5ea6",
|
||||||
|
"Sharpen": "\u9510\u5316",
|
||||||
|
"Contrast": "\u5bf9\u6bd4\u5ea6",
|
||||||
|
"Color levels": "\u989c\u8272\u5c42\u6b21",
|
||||||
|
"Gamma": "\u4f3d\u9a6c\u503c",
|
||||||
|
"Invert": "\u53cd\u8f6c",
|
||||||
|
"Apply": "\u5e94\u7528",
|
||||||
|
"Back": "\u540e\u9000",
|
||||||
|
"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4",
|
||||||
|
"Date\/time": "\u65e5\u671f\/\u65f6\u95f4",
|
||||||
|
"Insert\/Edit Link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5",
|
||||||
|
"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5",
|
||||||
|
"Text to display": "\u663e\u793a\u6587\u5b57",
|
||||||
|
"Url": "\u5730\u5740",
|
||||||
|
"Open link in...": "\u94fe\u63a5\u6253\u5f00\u4f4d\u7f6e...",
|
||||||
|
"Current window": "\u5f53\u524d\u7a97\u53e3",
|
||||||
|
"None": "\u65e0",
|
||||||
|
"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00",
|
||||||
|
"Remove link": "\u5220\u9664\u94fe\u63a5",
|
||||||
|
"Anchors": "\u951a\u70b9",
|
||||||
|
"Link...": "\u94fe\u63a5...",
|
||||||
|
"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5",
|
||||||
|
"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f",
|
||||||
|
"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f",
|
||||||
|
"Link list": "\u94fe\u63a5\u5217\u8868",
|
||||||
|
"Insert video": "\u63d2\u5165\u89c6\u9891",
|
||||||
|
"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891",
|
||||||
|
"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53",
|
||||||
|
"Alternative source": "\u955c\u50cf",
|
||||||
|
"Alternative source URL": "\u66ff\u4ee3\u6765\u6e90\u7f51\u5740",
|
||||||
|
"Media poster (Image URL)": "\u5c01\u9762(\u56fe\u7247\u5730\u5740)",
|
||||||
|
"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:",
|
||||||
|
"Embed": "\u5185\u5d4c",
|
||||||
|
"Media...": "\u591a\u5a92\u4f53...",
|
||||||
|
"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c",
|
||||||
|
"Page break": "\u5206\u9875\u7b26",
|
||||||
|
"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c",
|
||||||
|
"Preview": "\u9884\u89c8",
|
||||||
|
"Print...": "\u6253\u5370...",
|
||||||
|
"Save": "\u4fdd\u5b58",
|
||||||
|
"Find": "\u67e5\u627e",
|
||||||
|
"Replace with": "\u66ff\u6362\u4e3a",
|
||||||
|
"Replace": "\u66ff\u6362",
|
||||||
|
"Replace all": "\u5168\u90e8\u66ff\u6362",
|
||||||
|
"Previous": "\u4e0a\u4e00\u4e2a",
|
||||||
|
"Next": "\u4e0b\u4e00\u4e2a",
|
||||||
|
"Find and replace...": "\u67e5\u627e\u5e76\u66ff\u6362...",
|
||||||
|
"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.",
|
||||||
|
"Match case": "\u533a\u5206\u5927\u5c0f\u5199",
|
||||||
|
"Find whole words only": "\u5168\u5b57\u5339\u914d",
|
||||||
|
"Spell check": "\u62fc\u5199\u68c0\u67e5",
|
||||||
|
"Ignore": "\u5ffd\u7565",
|
||||||
|
"Ignore all": "\u5168\u90e8\u5ffd\u7565",
|
||||||
|
"Finish": "\u5b8c\u6210",
|
||||||
|
"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178",
|
||||||
|
"Insert table": "\u63d2\u5165\u8868\u683c",
|
||||||
|
"Table properties": "\u8868\u683c\u5c5e\u6027",
|
||||||
|
"Delete table": "\u5220\u9664\u8868\u683c",
|
||||||
|
"Cell": "\u5355\u5143\u683c",
|
||||||
|
"Row": "\u884c",
|
||||||
|
"Column": "\u5217",
|
||||||
|
"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027",
|
||||||
|
"Merge cells": "\u5408\u5e76\u5355\u5143\u683c",
|
||||||
|
"Split cell": "\u62c6\u5206\u5355\u5143\u683c",
|
||||||
|
"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165",
|
||||||
|
"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165",
|
||||||
|
"Delete row": "\u5220\u9664\u884c",
|
||||||
|
"Row properties": "\u884c\u5c5e\u6027",
|
||||||
|
"Cut row": "\u526a\u5207\u884c",
|
||||||
|
"Copy row": "\u590d\u5236\u884c",
|
||||||
|
"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9",
|
||||||
|
"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9",
|
||||||
|
"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165",
|
||||||
|
"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165",
|
||||||
|
"Delete column": "\u5220\u9664\u5217",
|
||||||
|
"Cols": "\u5217",
|
||||||
|
"Rows": "\u884c",
|
||||||
|
"Width": "\u5bbd",
|
||||||
|
"Height": "\u9ad8",
|
||||||
|
"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd",
|
||||||
|
"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd",
|
||||||
|
"Show caption": "\u663e\u793a\u6807\u9898",
|
||||||
|
"Left": "\u5de6\u5bf9\u9f50",
|
||||||
|
"Center": "\u5c45\u4e2d",
|
||||||
|
"Right": "\u53f3\u5bf9\u9f50",
|
||||||
|
"Cell type": "\u5355\u5143\u683c\u7c7b\u578b",
|
||||||
|
"Scope": "\u8303\u56f4",
|
||||||
|
"Alignment": "\u5bf9\u9f50\u65b9\u5f0f",
|
||||||
|
"H Align": "\u6c34\u5e73\u5bf9\u9f50",
|
||||||
|
"V Align": "\u5782\u76f4\u5bf9\u9f50",
|
||||||
|
"Top": "\u9876\u90e8\u5bf9\u9f50",
|
||||||
|
"Middle": "\u5782\u76f4\u5c45\u4e2d",
|
||||||
|
"Bottom": "\u5e95\u90e8\u5bf9\u9f50",
|
||||||
|
"Header cell": "\u8868\u5934\u5355\u5143\u683c",
|
||||||
|
"Row group": "\u884c\u7ec4",
|
||||||
|
"Column group": "\u5217\u7ec4",
|
||||||
|
"Row type": "\u884c\u7c7b\u578b",
|
||||||
|
"Header": "\u8868\u5934",
|
||||||
|
"Body": "\u8868\u4f53",
|
||||||
|
"Footer": "\u8868\u5c3e",
|
||||||
|
"Border color": "\u8fb9\u6846\u989c\u8272",
|
||||||
|
"Insert template...": "\u63d2\u5165\u6a21\u677f...",
|
||||||
|
"Templates": "\u6a21\u677f",
|
||||||
|
"Template": "\u6a21\u677f",
|
||||||
|
"Text color": "\u6587\u5b57\u989c\u8272",
|
||||||
|
"Background color": "\u80cc\u666f\u8272",
|
||||||
|
"Custom...": "\u81ea\u5b9a\u4e49...",
|
||||||
|
"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272",
|
||||||
|
"No color": "\u65e0",
|
||||||
|
"Remove color": "\u79fb\u9664\u989c\u8272",
|
||||||
|
"Table of Contents": "\u5185\u5bb9\u5217\u8868",
|
||||||
|
"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846",
|
||||||
|
"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26",
|
||||||
|
"Word count": "\u5b57\u6570",
|
||||||
|
"Words: {0}": "\u5b57\u6570\uff1a{0}",
|
||||||
|
"{0} words": "{0} \u5b57",
|
||||||
|
"File": "\u6587\u4ef6",
|
||||||
|
"Edit": "\u7f16\u8f91",
|
||||||
|
"Insert": "\u63d2\u5165",
|
||||||
|
"View": "\u89c6\u56fe",
|
||||||
|
"Format": "\u683c\u5f0f",
|
||||||
|
"Table": "\u8868\u683c",
|
||||||
|
"Tools": "\u5de5\u5177",
|
||||||
|
"Powered by {0}": "\u7531{0}\u9a71\u52a8",
|
||||||
|
"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9",
|
||||||
|
"Image title": "\u56fe\u7247\u6807\u9898",
|
||||||
|
"Border width": "\u8fb9\u6846\u5bbd\u5ea6",
|
||||||
|
"Border style": "\u8fb9\u6846\u6837\u5f0f",
|
||||||
|
"Error": "\u9519\u8bef",
|
||||||
|
"Warn": "\u8b66\u544a",
|
||||||
|
"Valid": "\u6709\u6548",
|
||||||
|
"To open the popup, press Shift+Enter": "\u6309Shitf+Enter\u952e\u6253\u5f00\u5bf9\u8bdd\u6846",
|
||||||
|
"Rich Text Area. Press ALT-0 for help.": "\u7f16\u8f91\u533a\u3002\u6309Alt+0\u952e\u6253\u5f00\u5e2e\u52a9\u3002",
|
||||||
|
"System Font": "\u7cfb\u7edf\u5b57\u4f53",
|
||||||
|
"Failed to upload image: {0}": "\u56fe\u7247\u4e0a\u4f20\u5931\u8d25: {0}",
|
||||||
|
"Failed to load plugin: {0} from url {1}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25: {0} \u6765\u81ea\u94fe\u63a5 {1}",
|
||||||
|
"Failed to load plugin url: {0}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25 \u94fe\u63a5: {0}",
|
||||||
|
"Failed to initialize plugin: {0}": "\u63d2\u4ef6\u521d\u59cb\u5316\u5931\u8d25: {0}",
|
||||||
|
"example": "\u793a\u4f8b",
|
||||||
|
"Search": "\u641c\u7d22",
|
||||||
|
"All": "\u5168\u90e8",
|
||||||
|
"Currency": "\u8d27\u5e01",
|
||||||
|
"Text": "\u6587\u5b57",
|
||||||
|
"Quotations": "\u5f15\u7528",
|
||||||
|
"Mathematical": "\u6570\u5b66",
|
||||||
|
"Extended Latin": "\u62c9\u4e01\u8bed\u6269\u5145",
|
||||||
|
"Symbols": "\u7b26\u53f7",
|
||||||
|
"Arrows": "\u7bad\u5934",
|
||||||
|
"User Defined": "\u81ea\u5b9a\u4e49",
|
||||||
|
"dollar sign": "\u7f8e\u5143\u7b26\u53f7",
|
||||||
|
"currency sign": "\u8d27\u5e01\u7b26\u53f7",
|
||||||
|
"euro-currency sign": "\u6b27\u5143\u7b26\u53f7",
|
||||||
|
"colon sign": "\u5192\u53f7",
|
||||||
|
"cruzeiro sign": "\u514b\u9c81\u8d5b\u7f57\u5e01\u7b26\u53f7",
|
||||||
|
"french franc sign": "\u6cd5\u90ce\u7b26\u53f7",
|
||||||
|
"lira sign": "\u91cc\u62c9\u7b26\u53f7",
|
||||||
|
"mill sign": "\u5bc6\u5c14\u7b26\u53f7",
|
||||||
|
"naira sign": "\u5948\u62c9\u7b26\u53f7",
|
||||||
|
"peseta sign": "\u6bd4\u585e\u5854\u7b26\u53f7",
|
||||||
|
"rupee sign": "\u5362\u6bd4\u7b26\u53f7",
|
||||||
|
"won sign": "\u97e9\u5143\u7b26\u53f7",
|
||||||
|
"new sheqel sign": "\u65b0\u8c22\u514b\u5c14\u7b26\u53f7",
|
||||||
|
"dong sign": "\u8d8a\u5357\u76fe\u7b26\u53f7",
|
||||||
|
"kip sign": "\u8001\u631d\u57fa\u666e\u7b26\u53f7",
|
||||||
|
"tugrik sign": "\u56fe\u683c\u91cc\u514b\u7b26\u53f7",
|
||||||
|
"drachma sign": "\u5fb7\u62c9\u514b\u9a6c\u7b26\u53f7",
|
||||||
|
"german penny symbol": "\u5fb7\u56fd\u4fbf\u58eb\u7b26\u53f7",
|
||||||
|
"peso sign": "\u6bd4\u7d22\u7b26\u53f7",
|
||||||
|
"guarani sign": "\u74dc\u62c9\u5c3c\u7b26\u53f7",
|
||||||
|
"austral sign": "\u6fb3\u5143\u7b26\u53f7",
|
||||||
|
"hryvnia sign": "\u683c\u91cc\u592b\u5c3c\u4e9a\u7b26\u53f7",
|
||||||
|
"cedi sign": "\u585e\u5730\u7b26\u53f7",
|
||||||
|
"livre tournois sign": "\u91cc\u5f17\u5f17\u5c14\u7b26\u53f7",
|
||||||
|
"spesmilo sign": "spesmilo\u7b26\u53f7",
|
||||||
|
"tenge sign": "\u575a\u6208\u7b26\u53f7",
|
||||||
|
"indian rupee sign": "\u5370\u5ea6\u5362\u6bd4",
|
||||||
|
"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9",
|
||||||
|
"nordic mark sign": "\u5317\u6b27\u9a6c\u514b",
|
||||||
|
"manat sign": "\u9a6c\u7eb3\u7279\u7b26\u53f7",
|
||||||
|
"ruble sign": "\u5362\u5e03\u7b26\u53f7",
|
||||||
|
"yen character": "\u65e5\u5143\u5b57\u6837",
|
||||||
|
"yuan character": "\u4eba\u6c11\u5e01\u5143\u5b57\u6837",
|
||||||
|
"yuan character, in hong kong and taiwan": "\u5143\u5b57\u6837\uff08\u6e2f\u53f0\u5730\u533a\uff09",
|
||||||
|
"yen\/yuan character variant one": "\u5143\u5b57\u6837\uff08\u5927\u5199\uff09",
|
||||||
|
"Loading emoticons...": "\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7...",
|
||||||
|
"Could not load emoticons": "\u4e0d\u80fd\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7",
|
||||||
|
"People": "\u4eba\u7c7b",
|
||||||
|
"Animals and Nature": "\u52a8\u7269\u548c\u81ea\u7136",
|
||||||
|
"Food and Drink": "\u98df\u7269\u548c\u996e\u54c1",
|
||||||
|
"Activity": "\u6d3b\u52a8",
|
||||||
|
"Travel and Places": "\u65c5\u6e38\u548c\u5730\u70b9",
|
||||||
|
"Objects": "\u7269\u4ef6",
|
||||||
|
"Flags": "\u65d7\u5e1c",
|
||||||
|
"Characters": "\u5b57\u7b26",
|
||||||
|
"Characters (no spaces)": "\u5b57\u7b26(\u65e0\u7a7a\u683c)",
|
||||||
|
"Error: Form submit field collision.": "\u9519\u8bef: \u8868\u5355\u63d0\u4ea4\u5b57\u6bb5\u51b2\u7a81\u3002",
|
||||||
|
"Error: No form element found.": "\u9519\u8bef: \u6ca1\u6709\u8868\u5355\u63a7\u4ef6\u3002",
|
||||||
|
"Update": "\u66f4\u65b0",
|
||||||
|
"Color swatch": "\u989c\u8272\u6837\u672c",
|
||||||
|
"Turquoise": "\u9752\u7eff\u8272",
|
||||||
|
"Green": "\u7eff\u8272",
|
||||||
|
"Blue": "\u84dd\u8272",
|
||||||
|
"Purple": "\u7d2b\u8272",
|
||||||
|
"Navy Blue": "\u6d77\u519b\u84dd",
|
||||||
|
"Dark Turquoise": "\u6df1\u84dd\u7eff\u8272",
|
||||||
|
"Dark Green": "\u6df1\u7eff\u8272",
|
||||||
|
"Medium Blue": "\u4e2d\u84dd\u8272",
|
||||||
|
"Medium Purple": "\u4e2d\u7d2b\u8272",
|
||||||
|
"Midnight Blue": "\u6df1\u84dd\u8272",
|
||||||
|
"Yellow": "\u9ec4\u8272",
|
||||||
|
"Orange": "\u6a59\u8272",
|
||||||
|
"Red": "\u7ea2\u8272",
|
||||||
|
"Light Gray": "\u6d45\u7070\u8272",
|
||||||
|
"Gray": "\u7070\u8272",
|
||||||
|
"Dark Yellow": "\u6697\u9ec4\u8272",
|
||||||
|
"Dark Orange": "\u6df1\u6a59\u8272",
|
||||||
|
"Dark Red": "\u6df1\u7ea2\u8272",
|
||||||
|
"Medium Gray": "\u4e2d\u7070\u8272",
|
||||||
|
"Dark Gray": "\u6df1\u7070\u8272",
|
||||||
|
"Black": "\u9ed1\u8272",
|
||||||
|
"White": "\u767d\u8272",
|
||||||
|
"Switch to or from fullscreen mode": "\u5207\u6362\u5168\u5c4f\u6a21\u5f0f",
|
||||||
|
"Open help dialog": "\u6253\u5f00\u5e2e\u52a9\u5bf9\u8bdd\u6846",
|
||||||
|
"history": "\u5386\u53f2",
|
||||||
|
"styles": "\u6837\u5f0f",
|
||||||
|
"formatting": "\u683c\u5f0f\u5316",
|
||||||
|
"alignment": "\u5bf9\u9f50",
|
||||||
|
"indentation": "\u7f29\u8fdb",
|
||||||
|
"permanent pen": "\u8bb0\u53f7\u7b14",
|
||||||
|
"comments": "\u5907\u6ce8",
|
||||||
|
"Anchor": "\u951a\u70b9",
|
||||||
|
"Special character": "\u7279\u6b8a\u7b26\u53f7",
|
||||||
|
"Code sample": "\u4ee3\u7801\u793a\u4f8b",
|
||||||
|
"Color": "\u989c\u8272",
|
||||||
|
"Emoticons": "\u8868\u60c5",
|
||||||
|
"Document properties": "\u6587\u6863\u5c5e\u6027",
|
||||||
|
"Image": "\u56fe\u7247",
|
||||||
|
"Insert link": "\u63d2\u5165\u94fe\u63a5",
|
||||||
|
"Target": "\u6253\u5f00\u65b9\u5f0f",
|
||||||
|
"Link": "\u94fe\u63a5",
|
||||||
|
"Poster": "\u5c01\u9762",
|
||||||
|
"Media": "\u5a92\u4f53",
|
||||||
|
"Print": "\u6253\u5370",
|
||||||
|
"Prev": "\u4e0a\u4e00\u4e2a",
|
||||||
|
"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362",
|
||||||
|
"Whole words": "\u5168\u5b57\u5339\u914d",
|
||||||
|
"Spellcheck": "\u62fc\u5199\u68c0\u67e5",
|
||||||
|
"Caption": "\u6807\u9898",
|
||||||
|
"Insert template": "\u63d2\u5165\u6a21\u677f"
|
||||||
|
});
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||||
|
* Licensed under the LGPL or a commercial license.
|
||||||
|
* For LGPL see License.txt in the project root for license information.
|
||||||
|
* For commercial licenses see https://www.tiny.cloud/
|
||||||
|
*/
|
||||||
|
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||||
|
* Licensed under the LGPL or a commercial license.
|
||||||
|
* For LGPL see License.txt in the project root for license information.
|
||||||
|
* For commercial licenses see https://www.tiny.cloud/
|
||||||
|
*/
|
||||||
|
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||||
|
* Licensed under the LGPL or a commercial license.
|
||||||
|
* For LGPL see License.txt in the project root for license information.
|
||||||
|
* For commercial licenses see https://www.tiny.cloud/
|
||||||
|
*/
|
||||||
|
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{background-color:green;display:inline-block;opacity:.5;position:absolute}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}body{font-family:sans-serif}table{border-collapse:collapse}
|
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||||
|
* Licensed under the LGPL or a commercial license.
|
||||||
|
* For LGPL see License.txt in the project root for license information.
|
||||||
|
* For commercial licenses see https://www.tiny.cloud/
|
||||||
|
*/
|
||||||
|
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
|
@ -0,0 +1,31 @@
|
|||||||
|
<script lang="ts" setup>
|
||||||
|
import 'dayjs/locale/zh-cn'
|
||||||
|
|
||||||
|
import { App, ConfigProvider } from 'ant-design-vue'
|
||||||
|
import { storeToRefs } from 'pinia'
|
||||||
|
|
||||||
|
import { computed } from 'vue'
|
||||||
|
import { AppProvider } from '@/components/Application'
|
||||||
|
import { useTitle } from '@/hooks/web/useTitle'
|
||||||
|
import { useLocale } from '@/locales/useLocale'
|
||||||
|
import { useAppStore } from '@/store/modules/app'
|
||||||
|
|
||||||
|
// support Multi-language
|
||||||
|
const { getAntdLocale } = useLocale()
|
||||||
|
const appStore = useAppStore()
|
||||||
|
const { themeConfig } = storeToRefs(appStore)
|
||||||
|
|
||||||
|
const componentSize = computed(() => appStore.getComponentSize)
|
||||||
|
// Listening to page changes and dynamically changing site titles
|
||||||
|
useTitle()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<ConfigProvider :locale="getAntdLocale" :theme="themeConfig" :component-size="componentSize">
|
||||||
|
<App class="h-full w-full">
|
||||||
|
<AppProvider>
|
||||||
|
<RouterView />
|
||||||
|
</AppProvider>
|
||||||
|
</App>
|
||||||
|
</ConfigProvider>
|
||||||
|
</template>
|
@ -0,0 +1,91 @@
|
|||||||
|
import type { TentantNameVO } from './model/loginModel'
|
||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
import { getRefreshToken } from '@/utils/auth'
|
||||||
|
|
||||||
|
enum Api {
|
||||||
|
Login = '/system/auth/login',
|
||||||
|
RefreshToken = '/system/auth/refresh-token?refreshToken=',
|
||||||
|
GetTenantIdByName = '/system/tenant/get-id-by-name?name=',
|
||||||
|
GetTenantIdByUserName = '/system/tenant/get-tenantId-by-userName?name=',
|
||||||
|
LoginOut = '/system/auth/logout',
|
||||||
|
GetUserInfo = '/system/auth/get-permission-info',
|
||||||
|
GetCaptcha = '/system/captcha/get',
|
||||||
|
CheckCaptcha = '/system/captcha/check',
|
||||||
|
}
|
||||||
|
|
||||||
|
// 刷新访问令牌
|
||||||
|
export function refreshToken() {
|
||||||
|
const refreshToken: string = getRefreshToken()
|
||||||
|
return defHttp.post({ url: Api.RefreshToken + refreshToken })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用租户名,获得租户编号
|
||||||
|
export function getTenantIdByName(name: string) {
|
||||||
|
return defHttp.get<TentantNameVO>({ url: Api.GetTenantIdByName + name })
|
||||||
|
}
|
||||||
|
// 使用租户名,获得租户编号
|
||||||
|
export function getTenantIdByUserName(name: string) {
|
||||||
|
return defHttp.get<TentantNameVO>({ url: Api.GetTenantIdByUserName + name })
|
||||||
|
}
|
||||||
|
// 登出
|
||||||
|
export function loginOut() {
|
||||||
|
return defHttp.delete({ url: Api.LoginOut })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取用户权限信息
|
||||||
|
export function getUserInfo() {
|
||||||
|
return defHttp.get({ url: Api.GetUserInfo })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取登录验证码
|
||||||
|
export function sendSmsCode(mobile, scene) {
|
||||||
|
return defHttp.post({
|
||||||
|
url: '/system/auth/send-sms-code',
|
||||||
|
data: {
|
||||||
|
mobile,
|
||||||
|
scene,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取验证图片 以及token
|
||||||
|
export function getCaptcha(data) {
|
||||||
|
return defHttp.post({ url: Api.GetCaptcha, data }, { isReturnNativeResponse: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 滑动或者点选验证
|
||||||
|
export function checkCaptcha(data) {
|
||||||
|
return defHttp.post({ url: Api.CheckCaptcha, data }, { isReturnNativeResponse: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
// ========== OAUTH 2.0 相关 ==========
|
||||||
|
|
||||||
|
export function getAuthorize(clientId) {
|
||||||
|
return defHttp.get({ url: `/system/oauth2/authorize?clientId=${clientId}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function authorize(responseType, clientId, redirectUri, state, autoApprove, checkedScopes, uncheckedScopes) {
|
||||||
|
// 构建 scopes
|
||||||
|
const scopes = {}
|
||||||
|
for (const scope of checkedScopes)
|
||||||
|
scopes[scope] = true
|
||||||
|
|
||||||
|
for (const scope of uncheckedScopes)
|
||||||
|
scopes[scope] = false
|
||||||
|
|
||||||
|
// 发起请求
|
||||||
|
return defHttp.post({
|
||||||
|
url: '/system/oauth2/authorize',
|
||||||
|
headers: {
|
||||||
|
'Content-type': 'application/x-www-form-urlencoded',
|
||||||
|
},
|
||||||
|
params: {
|
||||||
|
response_type: responseType,
|
||||||
|
client_id: clientId,
|
||||||
|
redirect_uri: redirectUri,
|
||||||
|
state,
|
||||||
|
auto_approve: autoApprove,
|
||||||
|
scope: JSON.stringify(scopes),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
export interface UserLoginVO {
|
||||||
|
username: string
|
||||||
|
password: string
|
||||||
|
captchaVerification: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TentantNameVO {
|
||||||
|
id: number
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
import type { RouteMeta } from 'vue-router'
|
||||||
|
|
||||||
|
export interface RouteItem {
|
||||||
|
path: string
|
||||||
|
component: any
|
||||||
|
meta: RouteMeta
|
||||||
|
name?: string
|
||||||
|
alias?: string | string[]
|
||||||
|
redirect?: string
|
||||||
|
caseSensitive?: boolean
|
||||||
|
children?: RouteItem[]
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
export interface UploadApiResult {
|
||||||
|
message: string
|
||||||
|
code: number
|
||||||
|
url: string
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
import type { RouteItem } from './menuModel'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: Login interface parameters
|
||||||
|
*/
|
||||||
|
export interface LoginParams {
|
||||||
|
username: string
|
||||||
|
password: string
|
||||||
|
captchaVerification: string
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: SmsLogin interface parameters
|
||||||
|
*/
|
||||||
|
export interface SmsLoginParams {
|
||||||
|
mobile: number
|
||||||
|
code: number
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: Login interface return value
|
||||||
|
*/
|
||||||
|
export interface LoginResultModel {
|
||||||
|
userId: string | number
|
||||||
|
accessToken: string
|
||||||
|
refreshToken: string
|
||||||
|
expiresTime: number
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: Get user information return value
|
||||||
|
*/
|
||||||
|
export interface GetUserInfoModel {
|
||||||
|
roles: string[]
|
||||||
|
permissions: string[]
|
||||||
|
menus: RouteItem[]
|
||||||
|
// 用户id
|
||||||
|
user: userModel
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface userModel {
|
||||||
|
id: string | number
|
||||||
|
avatar: string
|
||||||
|
nickname: string
|
||||||
|
}
|
@ -0,0 +1,128 @@
|
|||||||
|
import { ContentTypeEnum } from '@/enums/httpEnum'
|
||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface ProfileDept {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
}
|
||||||
|
export interface ProfileRole {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
}
|
||||||
|
export interface ProfilePost {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
}
|
||||||
|
export interface SocialUser {
|
||||||
|
id: number
|
||||||
|
type: number
|
||||||
|
openid: string
|
||||||
|
token: string
|
||||||
|
rawTokenInfo: string
|
||||||
|
nickname: string
|
||||||
|
avatar: string
|
||||||
|
rawUserInfo: string
|
||||||
|
code: string
|
||||||
|
state: string
|
||||||
|
}
|
||||||
|
export interface ProfileVO {
|
||||||
|
id: number
|
||||||
|
username: string
|
||||||
|
nickname: string
|
||||||
|
dept: ProfileDept
|
||||||
|
roles: ProfileRole[]
|
||||||
|
posts: ProfilePost[]
|
||||||
|
socialUsers: SocialUser[]
|
||||||
|
email: string
|
||||||
|
mobile: string
|
||||||
|
sex: number
|
||||||
|
avatar: string
|
||||||
|
status: number
|
||||||
|
remark: string
|
||||||
|
loginIp: string
|
||||||
|
loginDate: Date
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface UserProfileUpdateReqVO {
|
||||||
|
nickname: string
|
||||||
|
email: string
|
||||||
|
mobile: string
|
||||||
|
sex: number
|
||||||
|
}
|
||||||
|
|
||||||
|
enum Api {
|
||||||
|
getUserProfileApi = '/system/user/profile/get',
|
||||||
|
putUserProfileApi = '/system/user/profile/update',
|
||||||
|
uploadAvatarApi = '/system/user/profile/update-avatar',
|
||||||
|
updateUserPwdApi = '/system/user/profile/update-password',
|
||||||
|
socialBindApi = '/system/social-user/bind',
|
||||||
|
socialUnbindApi = '/system/social-user/unbind',
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: getUserProfileApi
|
||||||
|
*/
|
||||||
|
export function getUserProfileApi() {
|
||||||
|
return defHttp.get({ url: Api.getUserProfileApi })
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: updateUserProfileApi
|
||||||
|
*/
|
||||||
|
export function updateUserProfileApi(data: UserProfileUpdateReqVO) {
|
||||||
|
return defHttp.put({ url: Api.putUserProfileApi, data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 用户密码重置
|
||||||
|
export function updateUserPwdApi(oldPassword: string, newPassword: string) {
|
||||||
|
return defHttp.put({
|
||||||
|
url: Api.updateUserPwdApi,
|
||||||
|
data: {
|
||||||
|
oldPassword,
|
||||||
|
newPassword,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 用户头像上传
|
||||||
|
export function uploadAvatarApi(data) {
|
||||||
|
return defHttp.put({
|
||||||
|
url: Api.uploadAvatarApi,
|
||||||
|
headers: {
|
||||||
|
'Content-type': ContentTypeEnum.FORM_DATA,
|
||||||
|
'ignoreCancelToken': true,
|
||||||
|
},
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 社交绑定,使用 code 授权码
|
||||||
|
export function socialBind(type, code, state) {
|
||||||
|
return defHttp.post({
|
||||||
|
url: Api.socialBindApi,
|
||||||
|
data: {
|
||||||
|
type,
|
||||||
|
code,
|
||||||
|
state,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 取消社交绑定
|
||||||
|
export function socialUnbind(type, openid) {
|
||||||
|
return defHttp.delete({
|
||||||
|
url: Api.socialUnbindApi,
|
||||||
|
data: {
|
||||||
|
type,
|
||||||
|
openid,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 社交授权的跳转
|
||||||
|
export function socialAuthRedirect(type, redirectUri) {
|
||||||
|
return defHttp.get({
|
||||||
|
url: `/system/auth/social-auth-redirect?type=${type}&redirectUri=${redirectUri}`,
|
||||||
|
})
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
import type { AxiosProgressEvent } from 'axios'
|
||||||
|
import type { UploadApiResult } from './model/uploadModel'
|
||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
import type { UploadFileParams } from '@/types/axios'
|
||||||
|
import { useGlobSetting } from '@/hooks/setting'
|
||||||
|
|
||||||
|
const { uploadUrl = '' } = useGlobSetting()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: Upload interface
|
||||||
|
*/
|
||||||
|
export function uploadApi(params: UploadFileParams, onUploadProgress: (progressEvent: AxiosProgressEvent) => void) {
|
||||||
|
return defHttp.uploadFile<UploadApiResult>(
|
||||||
|
{
|
||||||
|
url: uploadUrl,
|
||||||
|
onUploadProgress,
|
||||||
|
},
|
||||||
|
params,
|
||||||
|
)
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
import type { GetUserInfoModel, LoginParams, LoginResultModel, SmsLoginParams } from './model/userModel'
|
||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
import type { ErrorMessageMode } from '@/types/axios'
|
||||||
|
|
||||||
|
enum Api {
|
||||||
|
Login = '/system/auth/login',
|
||||||
|
Logout = '/system/auth/logout',
|
||||||
|
SmsLogin = '/system/auth/sms-login',
|
||||||
|
GetUserInfo = '/system/auth/get-permission-info',
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: user login api
|
||||||
|
*/
|
||||||
|
export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') {
|
||||||
|
return defHttp.post<LoginResultModel>({ url: Api.Login, params }, { errorMessageMode: mode })
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: user smslogin api
|
||||||
|
*/
|
||||||
|
export function smsLogin(params: SmsLoginParams, mode: ErrorMessageMode = 'modal') {
|
||||||
|
return defHttp.post<LoginResultModel>({ url: Api.SmsLogin, params }, { errorMessageMode: mode })
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: getUserInfo
|
||||||
|
*/
|
||||||
|
export function getUserInfo() {
|
||||||
|
return defHttp.get<GetUserInfoModel>({ url: Api.GetUserInfo }, { errorMessageMode: 'none' })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function doLogout() {
|
||||||
|
return defHttp.post({ url: Api.Logout })
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export function getActivityList(params) {
|
||||||
|
return defHttp.get({ url: '/bpm/activity/list', params })
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export function getProcessDefinitionPage(params) {
|
||||||
|
return defHttp.get({ url: '/bpm/process-definition/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getProcessDefinitionList(params) {
|
||||||
|
return defHttp.get({ url: '/bpm/process-definition/list', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getProcessDefinitionBpmnXML(id) {
|
||||||
|
return defHttp.get({ url: `/bpm/process-definition/get-bpmn-xml?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface FormVO {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
conf: string
|
||||||
|
fields: string[]
|
||||||
|
status: number
|
||||||
|
remark: string
|
||||||
|
createTime: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建工作流的表单定义
|
||||||
|
export function createForm(data: FormVO) {
|
||||||
|
return defHttp.post({ url: '/bpm/form/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新工作流的表单定义
|
||||||
|
export function updateForm(data: FormVO) {
|
||||||
|
return defHttp.put({ url: '/bpm/form/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除工作流的表单定义
|
||||||
|
export function deleteForm(id: number) {
|
||||||
|
return defHttp.delete({ url: `/bpm/form/delete?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得工作流的表单定义
|
||||||
|
export function getForm(id: number) {
|
||||||
|
return defHttp.get({ url: `/bpm/form/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得工作流的表单定义分页
|
||||||
|
export function getFormPage(params) {
|
||||||
|
return defHttp.get({ url: '/bpm/form/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得动态表单的精简列表
|
||||||
|
export function getSimpleForms() {
|
||||||
|
return defHttp.get({ url: '/bpm/form/list-all-simple' })
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface LeaveVO {
|
||||||
|
id: number
|
||||||
|
result: number
|
||||||
|
type: number
|
||||||
|
reason: string
|
||||||
|
processInstanceId: string
|
||||||
|
startTime: string
|
||||||
|
endTime: string
|
||||||
|
createTime: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建请假申请
|
||||||
|
export function createLeave(data: LeaveVO) {
|
||||||
|
return defHttp.post({ url: '/bpm/oa/leave/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得请假申请
|
||||||
|
export function getLeave(id: number) {
|
||||||
|
return defHttp.get({ url: `/bpm/oa/leave/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得请假申请分页
|
||||||
|
export function getLeavePage(params) {
|
||||||
|
return defHttp.get({ url: '/bpm/oa/leave/page', params })
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface ProcessDefinitionVO {
|
||||||
|
id: string
|
||||||
|
version: number
|
||||||
|
deploymentTIme: string
|
||||||
|
suspensionState: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ModelVO {
|
||||||
|
id: number
|
||||||
|
formName: string
|
||||||
|
key: string
|
||||||
|
name: string
|
||||||
|
description: string
|
||||||
|
category: string
|
||||||
|
formType: number
|
||||||
|
formId: number
|
||||||
|
formCustomCreatePath: string
|
||||||
|
formCustomViewPath: string
|
||||||
|
processDefinition: ProcessDefinitionVO
|
||||||
|
status: number
|
||||||
|
remark: string
|
||||||
|
createTime: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getModelPage(params) {
|
||||||
|
return defHttp.get({ url: '/bpm/model/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getModel(id: number) {
|
||||||
|
return defHttp.get({ url: `/bpm/model/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateModel(data: ModelVO) {
|
||||||
|
return defHttp.put({ url: '/bpm/model/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 任务状态修改
|
||||||
|
export function updateModelState(id: number, state: number) {
|
||||||
|
const data = {
|
||||||
|
id,
|
||||||
|
state,
|
||||||
|
}
|
||||||
|
return defHttp.put({ url: '/bpm/model/update-state', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createModel(data: ModelVO) {
|
||||||
|
return defHttp.post({ url: '/bpm/model/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deleteModel(id: number) {
|
||||||
|
return defHttp.delete({ url: `/bpm/model/delete?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deployModel(id: number) {
|
||||||
|
return defHttp.post({ url: `/bpm/model/deploy?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function importModel(data) {
|
||||||
|
return defHttp.post({ url: '/bpm/model/import', data })
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export function getMyProcessInstancePage(params) {
|
||||||
|
return defHttp.get({ url: '/bpm/process-instance/my-page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createProcessInstance(data) {
|
||||||
|
return defHttp.post({ url: '/bpm/process-instance/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function cancelProcessInstance(id: number, reason: string) {
|
||||||
|
const data = {
|
||||||
|
id,
|
||||||
|
reason,
|
||||||
|
}
|
||||||
|
return defHttp.delete({ url: '/bpm/process-instance/cancel', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getProcessInstance(id: number) {
|
||||||
|
return defHttp.get({ url: `/bpm/process-instance/get?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export function getTodoTaskPage(params) {
|
||||||
|
return defHttp.get({ url: '/bpm/task/todo-page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getDoneTaskPage(params) {
|
||||||
|
return defHttp.get({ url: '/bpm/task/done-page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function completeTask(data) {
|
||||||
|
return defHttp.put({ url: '/bpm/task/complete', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function approveTask(data) {
|
||||||
|
return defHttp.put({ url: '/bpm/task/approve', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function rejectTask(data) {
|
||||||
|
return defHttp.put({ url: '/bpm/task/reject', data })
|
||||||
|
}
|
||||||
|
export function backTask(data) {
|
||||||
|
return defHttp.put({ url: '/bpm/task/back', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateTaskAssignee(data) {
|
||||||
|
return defHttp.put({ url: '/bpm/task/update-assignee', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getTaskListByProcessInstanceId(processInstanceId) {
|
||||||
|
return defHttp.get({
|
||||||
|
url: `/bpm/task/list-by-process-instance-id?processInstanceId=${processInstanceId}`,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出任务
|
||||||
|
export async function exportTask(params) {
|
||||||
|
return await defHttp.download({ url: '/bpm/task/export', params })
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface TaskAssignVO {
|
||||||
|
id: number
|
||||||
|
modelId: string
|
||||||
|
processDefinitionId: string
|
||||||
|
taskDefinitionKey: string
|
||||||
|
taskDefinitionName: string
|
||||||
|
options: string[]
|
||||||
|
type: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getTaskAssignRuleList(params) {
|
||||||
|
return defHttp.get({ url: '/bpm/task-assign-rule/list', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createTaskAssignRule(data: TaskAssignVO) {
|
||||||
|
return defHttp.post({ url: '/bpm/task-assign-rule/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateTaskAssignRule(data: TaskAssignVO) {
|
||||||
|
return defHttp.put({ url: '/bpm/task-assign-rule/update', data })
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface UserGroupVO {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
description: string
|
||||||
|
memberUserIds: number[]
|
||||||
|
status: number
|
||||||
|
remark: string
|
||||||
|
createTime: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建用户组
|
||||||
|
export function createUserGroup(data: UserGroupVO) {
|
||||||
|
return defHttp.post({ url: '/bpm/user-group/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新用户组
|
||||||
|
export function updateUserGroup(data: UserGroupVO) {
|
||||||
|
return defHttp.put({ url: '/bpm/user-group/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除用户组
|
||||||
|
export function deleteUserGroup(id: number) {
|
||||||
|
return defHttp.delete({ url: `/bpm/user-group/delete?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得用户组
|
||||||
|
export function getUserGroup(id: number) {
|
||||||
|
return defHttp.get({ url: `/bpm/user-group/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得用户组分页
|
||||||
|
export function getUserGroupPage(params) {
|
||||||
|
return defHttp.get({ url: '/bpm/user-group/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取用户组精简信息列表
|
||||||
|
export function listSimpleUserGroups() {
|
||||||
|
return defHttp.get({ url: '/bpm/user-group/list-all-simple' })
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface ApiAccessLogVO {
|
||||||
|
id: number
|
||||||
|
traceId: string
|
||||||
|
userId: number
|
||||||
|
userType: number
|
||||||
|
applicationName: string
|
||||||
|
requestMethod: string
|
||||||
|
requestParams: string
|
||||||
|
requestUrl: string
|
||||||
|
userIp: string
|
||||||
|
userAgent: string
|
||||||
|
beginTime: Date
|
||||||
|
endTIme: Date
|
||||||
|
duration: number
|
||||||
|
resultCode: number
|
||||||
|
resultMsg: string
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ApiAccessLogPageReqVO extends PageParam {
|
||||||
|
userId?: number
|
||||||
|
userType?: number
|
||||||
|
applicationName?: string
|
||||||
|
requestUrl?: string
|
||||||
|
beginTime?: Date[]
|
||||||
|
duration?: number
|
||||||
|
resultCode?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ApiAccessLogExportReqVO {
|
||||||
|
userId?: number
|
||||||
|
userType?: number
|
||||||
|
applicationName?: string
|
||||||
|
requestUrl?: string
|
||||||
|
beginTime?: Date[]
|
||||||
|
duration?: number
|
||||||
|
resultCode?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询列表API 访问日志
|
||||||
|
export function getApiAccessLogPage(params: ApiAccessLogPageReqVO) {
|
||||||
|
return defHttp.get({ url: '/infra/api-access-log/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出API 访问日志
|
||||||
|
export function exportApiAccessLog(params: ApiAccessLogExportReqVO) {
|
||||||
|
return defHttp.download({ url: '/infra/api-access-log/export-excel', params }, '访问日志.xls')
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface ApiErrorLogVO {
|
||||||
|
id: number
|
||||||
|
traceId: string
|
||||||
|
userId: number
|
||||||
|
userType: number
|
||||||
|
applicationName: string
|
||||||
|
requestMethod: string
|
||||||
|
requestParams: string
|
||||||
|
requestUrl: string
|
||||||
|
userIp: string
|
||||||
|
userAgent: string
|
||||||
|
exceptionTime: Date
|
||||||
|
exceptionName: string
|
||||||
|
exceptionMessage: string
|
||||||
|
exceptionRootCauseMessage: string
|
||||||
|
exceptionStackTrace: string
|
||||||
|
exceptionClassName: string
|
||||||
|
exceptionFileName: string
|
||||||
|
exceptionMethodName: string
|
||||||
|
exceptionLineNumber: number
|
||||||
|
processUserId: number
|
||||||
|
processStatus: number
|
||||||
|
processTime: Date
|
||||||
|
resultCode: number
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ApiErrorLogPageReqVO extends PageParam {
|
||||||
|
userId?: number
|
||||||
|
userType?: number
|
||||||
|
applicationName?: string
|
||||||
|
requestUrl?: string
|
||||||
|
exceptionTime?: Date[]
|
||||||
|
processStatus: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ApiErrorLogExportReqVO {
|
||||||
|
userId?: number
|
||||||
|
userType?: number
|
||||||
|
applicationName?: string
|
||||||
|
requestUrl?: string
|
||||||
|
exceptionTime?: Date[]
|
||||||
|
processStatus: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询列表API 访问日志
|
||||||
|
export function getApiErrorLogPage(params: ApiErrorLogPageReqVO) {
|
||||||
|
return defHttp.get({ url: '/infra/api-error-log/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新 API 错误日志的处理状态
|
||||||
|
export function updateApiErrorLogProcess(id: number, processStatus: number) {
|
||||||
|
return defHttp.put({
|
||||||
|
url: `/infra/api-error-log/update-status?id=${id}&processStatus=${processStatus}`,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出API 错误日志
|
||||||
|
export function exportApiErrorLog(params: ApiErrorLogExportReqVO) {
|
||||||
|
return defHttp.download(
|
||||||
|
{
|
||||||
|
url: '/infra/api-error-log/export-excel',
|
||||||
|
params,
|
||||||
|
},
|
||||||
|
'错误日志.xls',
|
||||||
|
)
|
||||||
|
}
|
@ -0,0 +1,57 @@
|
|||||||
|
import type { CodegenCreateListReqVO, CodegenUpdateReqVO } from './types'
|
||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 查询列表代码生成表定义
|
||||||
|
export function getCodegenTablePage(params) {
|
||||||
|
return defHttp.get({ url: '/infra/codegen/table/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询详情代码生成表定义
|
||||||
|
export function getCodegenTable(id: number) {
|
||||||
|
return defHttp.get({ url: `/infra/codegen/detail?tableId=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增代码生成表定义
|
||||||
|
export function createCodegenTable(data: CodegenCreateListReqVO) {
|
||||||
|
return defHttp.post({ url: '/infra/codegen/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改代码生成表定义
|
||||||
|
export function updateCodegenTable(data: CodegenUpdateReqVO) {
|
||||||
|
return defHttp.put({ url: '/infra/codegen/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 基于数据库的表结构,同步数据库的表和字段定义
|
||||||
|
export function syncCodegenFromDB(id: number) {
|
||||||
|
return defHttp.put({ url: `/infra/codegen/sync-from-db?tableId=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 基于 SQL 建表语句,同步数据库的表和字段定义
|
||||||
|
export function syncCodegenFromSQL(id: number, sql: string) {
|
||||||
|
return defHttp.put({ url: `/infra/codegen/sync-from-sql?tableId=${id}&sql=${sql}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 预览生成代码
|
||||||
|
export function previewCodegen(id: number) {
|
||||||
|
return defHttp.get({ url: `/infra/codegen/preview?tableId=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 下载生成代码
|
||||||
|
export function downloadCodegen(data) {
|
||||||
|
return defHttp.download({ url: `/infra/codegen/download?tableId=${data.id}` }, `${data.tableName}.zip`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得表定义
|
||||||
|
export function getSchemaTableList(params) {
|
||||||
|
return defHttp.get({ url: '/infra/codegen/db/table/list', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 基于数据库的表结构,创建代码生成器的表定义
|
||||||
|
export function createCodegenList(data) {
|
||||||
|
return defHttp.post({ url: '/infra/codegen/create-list', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除代码生成表定义
|
||||||
|
export function deleteCodegenTable(id: number) {
|
||||||
|
return defHttp.delete({ url: `/infra/codegen/delete?tableId=${id}` })
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
export interface CodegenTableVO {
|
||||||
|
id: number
|
||||||
|
tableId: number
|
||||||
|
isParentMenuIdValid: boolean
|
||||||
|
dataSourceConfigId: number
|
||||||
|
scene: number
|
||||||
|
tableName: string
|
||||||
|
tableComment: string
|
||||||
|
remark: string
|
||||||
|
moduleName: string
|
||||||
|
businessName: string
|
||||||
|
className: string
|
||||||
|
classComment: string
|
||||||
|
author: string
|
||||||
|
createTime: Date
|
||||||
|
updateTime: Date
|
||||||
|
templateType: number
|
||||||
|
parentMenuId: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CodegenColumnVO {
|
||||||
|
id: number
|
||||||
|
tableId: number
|
||||||
|
columnName: string
|
||||||
|
dataType: string
|
||||||
|
columnComment: string
|
||||||
|
nullable: number
|
||||||
|
primaryKey: number
|
||||||
|
autoIncrement: string
|
||||||
|
ordinalPosition: number
|
||||||
|
javaType: string
|
||||||
|
javaField: string
|
||||||
|
dictType: string
|
||||||
|
example: string
|
||||||
|
createOperation: number
|
||||||
|
updateOperation: number
|
||||||
|
listOperation: number
|
||||||
|
listOperationCondition: string
|
||||||
|
listOperationResult: number
|
||||||
|
htmlType: string
|
||||||
|
}
|
||||||
|
export interface DatabaseTableVO {
|
||||||
|
name: string
|
||||||
|
comment: string
|
||||||
|
}
|
||||||
|
export interface CodegenDetailVO {
|
||||||
|
table: CodegenTableVO
|
||||||
|
columns: CodegenColumnVO[]
|
||||||
|
}
|
||||||
|
export interface CodegenPreviewVO {
|
||||||
|
filePath: string
|
||||||
|
code: string
|
||||||
|
}
|
||||||
|
export interface CodegenUpdateReqVO {
|
||||||
|
table: CodegenTableVO
|
||||||
|
columns: CodegenColumnVO[]
|
||||||
|
}
|
||||||
|
export interface CodegenCreateListReqVO {
|
||||||
|
dataSourceConfigId: number
|
||||||
|
tableNames: string[]
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface ConfigVO {
|
||||||
|
id: number
|
||||||
|
category: string
|
||||||
|
name: string
|
||||||
|
key: string
|
||||||
|
value: string
|
||||||
|
type: number
|
||||||
|
visible: boolean
|
||||||
|
remark: string
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ConfigPageReqVO extends PageParam {
|
||||||
|
name?: string
|
||||||
|
key?: string
|
||||||
|
type?: number
|
||||||
|
createTime?: Date[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ConfigExportReqVO {
|
||||||
|
name?: string
|
||||||
|
key?: string
|
||||||
|
type?: number
|
||||||
|
createTime?: Date[]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询参数列表
|
||||||
|
export function getConfigPage(params: ConfigPageReqVO) {
|
||||||
|
return defHttp.get({ url: '/infra/config/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询参数详情
|
||||||
|
export function getConfig(id: number) {
|
||||||
|
return defHttp.get({ url: `/infra/config/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据参数键名查询参数值
|
||||||
|
export function getConfigKey(configKey: string) {
|
||||||
|
return defHttp.get({ url: `/infra/config/get-value-by-key?key=${configKey}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增参数
|
||||||
|
export function createConfig(data: ConfigVO) {
|
||||||
|
return defHttp.post({ url: '/infra/config/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改参数
|
||||||
|
export function updateConfig(data: ConfigVO) {
|
||||||
|
return defHttp.put({ url: '/infra/config/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除参数
|
||||||
|
export function deleteConfig(id: number) {
|
||||||
|
return defHttp.delete({ url: `/infra/config/delete?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出参数
|
||||||
|
export function exportConfig(params: ConfigExportReqVO) {
|
||||||
|
return defHttp.download({ url: '/infra/config/export', params }, '参数.xls')
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface DataSourceConfigVO {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
url: string
|
||||||
|
username: string
|
||||||
|
password: string
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询数据源配置列表
|
||||||
|
export function getDataSourceConfigList() {
|
||||||
|
return defHttp.get({ url: '/infra/data-source-config/list' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询数据源配置详情
|
||||||
|
export function getDataSourceConfig(id: number) {
|
||||||
|
return defHttp.get({ url: `/infra/data-source-config/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增数据源配置
|
||||||
|
export function createDataSourceConfig(data: DataSourceConfigVO) {
|
||||||
|
return defHttp.post({ url: '/infra/data-source-config/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改数据源配置
|
||||||
|
export function updateDataSourceConfig(data: DataSourceConfigVO) {
|
||||||
|
return defHttp.put({ url: '/infra/data-source-config/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除数据源配置
|
||||||
|
export function deleteDataSourceConfig(id: number) {
|
||||||
|
return defHttp.delete({ url: `/infra/data-source-config/delete?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 导出Html
|
||||||
|
export function exportHtml() {
|
||||||
|
return defHttp.get({ url: '/infra/db-doc/export-html', responseType: 'blob' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出Word
|
||||||
|
export function exportWord() {
|
||||||
|
return defHttp.get({ url: '/infra/db-doc/export-word', responseType: 'blob' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出Markdown
|
||||||
|
export function exportMarkdown() {
|
||||||
|
return defHttp.get({ url: '/infra/db-doc/export-markdown', responseType: 'blob' })
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface FileVO {
|
||||||
|
id: number
|
||||||
|
configId: number
|
||||||
|
path: string
|
||||||
|
name: string
|
||||||
|
url: string
|
||||||
|
size: string
|
||||||
|
type: string
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface FilePageReqVO extends PageParam {
|
||||||
|
path?: string
|
||||||
|
type?: string
|
||||||
|
createTime?: Date[]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询文件列表
|
||||||
|
export function getFilePage(params: FilePageReqVO) {
|
||||||
|
return defHttp.get({ url: '/infra/file/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除文件
|
||||||
|
export function deleteFile(id: number) {
|
||||||
|
return defHttp.delete({ url: `/infra/file/delete?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,66 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface FileClientConfig {
|
||||||
|
basePath: string
|
||||||
|
host?: string
|
||||||
|
port?: number
|
||||||
|
username?: string
|
||||||
|
password?: string
|
||||||
|
mode?: string
|
||||||
|
endpoint?: string
|
||||||
|
bucket?: string
|
||||||
|
accessKey?: string
|
||||||
|
accessSecret?: string
|
||||||
|
domain: string
|
||||||
|
}
|
||||||
|
export interface FileConfigVO {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
storage: number
|
||||||
|
master: boolean
|
||||||
|
visible: boolean
|
||||||
|
config: FileClientConfig
|
||||||
|
remark: string
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface FileConfigPageReqVO extends PageParam {
|
||||||
|
name?: string
|
||||||
|
storage?: number
|
||||||
|
createTime?: Date[]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询文件配置列表
|
||||||
|
export function getFileConfigPage(params: FileConfigPageReqVO) {
|
||||||
|
return defHttp.get({ url: '/infra/file-config/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询文件配置详情
|
||||||
|
export function getFileConfig(id: number) {
|
||||||
|
return defHttp.get({ url: `/infra/file-config/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新文件配置为主配置
|
||||||
|
export function updateFileConfigMaster(id: number) {
|
||||||
|
return defHttp.put({ url: `/infra/file-config/update-master?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增文件配置
|
||||||
|
export function createFileConfig(data: FileConfigVO) {
|
||||||
|
return defHttp.post({ url: '/infra/file-config/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改文件配置
|
||||||
|
export function updateFileConfig(data: FileConfigVO) {
|
||||||
|
return defHttp.put({ url: '/infra/file-config/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除文件配置
|
||||||
|
export function deleteFileConfig(id: number) {
|
||||||
|
return defHttp.delete({ url: `/infra/file-config/delete?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 测试文件配置
|
||||||
|
export function testFileConfig(id: number) {
|
||||||
|
return defHttp.get({ url: `/infra/file-config/test?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,71 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface JobVO {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
status: number
|
||||||
|
handlerName: string
|
||||||
|
handlerParam: string
|
||||||
|
cronExpression: string
|
||||||
|
retryCount: number
|
||||||
|
retryInterval: number
|
||||||
|
monitorTimeout: number
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface JobPageReqVO extends PageParam {
|
||||||
|
name?: string
|
||||||
|
status?: number
|
||||||
|
handlerName?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface JobExportReqVO {
|
||||||
|
name?: string
|
||||||
|
status?: number
|
||||||
|
handlerName?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 任务列表
|
||||||
|
export function getJobPage(params: JobPageReqVO) {
|
||||||
|
return defHttp.get({ url: '/infra/job/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 任务详情
|
||||||
|
export function getJob(id: number) {
|
||||||
|
return defHttp.get({ url: `/infra/job/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增任务
|
||||||
|
export function createJob(data: JobVO) {
|
||||||
|
return defHttp.post({ url: '/infra/job/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改定时任务调度
|
||||||
|
export function updateJob(data: JobVO) {
|
||||||
|
return defHttp.put({ url: '/infra/job/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除定时任务调度
|
||||||
|
export function deleteJob(id: number) {
|
||||||
|
return defHttp.delete({ url: `/infra/job/delete?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出定时任务调度
|
||||||
|
export function exportJob(params: JobExportReqVO) {
|
||||||
|
return defHttp.download({ url: '/infra/job/export-excel', params }, '定时任务.xls')
|
||||||
|
}
|
||||||
|
|
||||||
|
// 任务状态修改
|
||||||
|
export function updateJobStatus(id: number, status: number) {
|
||||||
|
return defHttp.put({ url: `/infra/job/update-status?id=${id}&status=${status}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 定时任务立即执行一次
|
||||||
|
export function runJob(id: number) {
|
||||||
|
return defHttp.put({ url: `/infra/job/trigger?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得定时任务的下 n 次执行时间
|
||||||
|
export function getJobNextTimes(id: number) {
|
||||||
|
return defHttp.get({ url: `/infra/job/get_next_times?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface JobLogVO {
|
||||||
|
id: number
|
||||||
|
jobId: number
|
||||||
|
handlerName: string
|
||||||
|
handlerParam: string
|
||||||
|
cronExpression: string
|
||||||
|
executeIndex: string
|
||||||
|
beginTime: string
|
||||||
|
endTime: string
|
||||||
|
duration: string
|
||||||
|
status: number
|
||||||
|
createTime: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface JobLogPageReqVO extends PageParam {
|
||||||
|
jobId?: number
|
||||||
|
handlerName?: string
|
||||||
|
beginTime?: string
|
||||||
|
endTime?: string
|
||||||
|
status?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface JobLogExportReqVO {
|
||||||
|
jobId?: number
|
||||||
|
handlerName?: string
|
||||||
|
beginTime?: string
|
||||||
|
endTime?: string
|
||||||
|
status?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// 任务日志列表
|
||||||
|
export function getJobLogPage(params: JobLogPageReqVO) {
|
||||||
|
return defHttp.get({ url: '/infra/job-log/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 任务日志详情
|
||||||
|
export function getJobLog(id: number) {
|
||||||
|
return defHttp.get({ url: `/infra/job-log/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出定时任务日志
|
||||||
|
export function exportJobLog(params: JobLogExportReqVO) {
|
||||||
|
return defHttp.download({ url: '/infra/job-log/export-excel', params }, '定时任务日志.xls')
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取redis 监控信息
|
||||||
|
*/
|
||||||
|
export function getCache() {
|
||||||
|
return defHttp.get({ url: '/infra/redis/get-monitor-info' })
|
||||||
|
}
|
@ -0,0 +1,185 @@
|
|||||||
|
export interface RedisMonitorInfoVO {
|
||||||
|
info: RedisInfoVO
|
||||||
|
dbSize: number
|
||||||
|
commandStats: RedisCommandStatsVO[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RedisInfoVO {
|
||||||
|
io_threaded_reads_processed: string
|
||||||
|
tracking_clients: string
|
||||||
|
uptime_in_seconds: string
|
||||||
|
cluster_connections: string
|
||||||
|
current_cow_size: string
|
||||||
|
maxmemory_human: string
|
||||||
|
aof_last_cow_size: string
|
||||||
|
master_replid2: string
|
||||||
|
mem_replication_backlog: string
|
||||||
|
aof_rewrite_scheduled: string
|
||||||
|
total_net_input_bytes: string
|
||||||
|
rss_overhead_ratio: string
|
||||||
|
hz: string
|
||||||
|
current_cow_size_age: string
|
||||||
|
redis_build_id: string
|
||||||
|
errorstat_BUSYGROUP: string
|
||||||
|
aof_last_bgrewrite_status: string
|
||||||
|
multiplexing_api: string
|
||||||
|
client_recent_max_output_buffer: string
|
||||||
|
allocator_resident: string
|
||||||
|
mem_fragmentation_bytes: string
|
||||||
|
aof_current_size: string
|
||||||
|
repl_backlog_first_byte_offset: string
|
||||||
|
tracking_total_prefixes: string
|
||||||
|
redis_mode: string
|
||||||
|
redis_git_dirty: string
|
||||||
|
aof_delayed_fsync: string
|
||||||
|
allocator_rss_bytes: string
|
||||||
|
repl_backlog_histlen: string
|
||||||
|
io_threads_active: string
|
||||||
|
rss_overhead_bytes: string
|
||||||
|
total_system_memory: string
|
||||||
|
loading: string
|
||||||
|
evicted_keys: string
|
||||||
|
maxclients: string
|
||||||
|
cluster_enabled: string
|
||||||
|
redis_version: string
|
||||||
|
repl_backlog_active: string
|
||||||
|
mem_aof_buffer: string
|
||||||
|
allocator_frag_bytes: string
|
||||||
|
io_threaded_writes_processed: string
|
||||||
|
instantaneous_ops_per_sec: string
|
||||||
|
used_memory_human: string
|
||||||
|
total_error_replies: string
|
||||||
|
role: string
|
||||||
|
maxmemory: string
|
||||||
|
used_memory_lua: string
|
||||||
|
rdb_current_bgsave_time_sec: string
|
||||||
|
used_memory_startup: string
|
||||||
|
used_cpu_sys_main_thread: string
|
||||||
|
lazyfree_pending_objects: string
|
||||||
|
aof_pending_bio_fsync: string
|
||||||
|
used_memory_dataset_perc: string
|
||||||
|
allocator_frag_ratio: string
|
||||||
|
arch_bits: string
|
||||||
|
used_cpu_user_main_thread: string
|
||||||
|
mem_clients_normal: string
|
||||||
|
expired_time_cap_reached_count: string
|
||||||
|
unexpected_error_replies: string
|
||||||
|
mem_fragmentation_ratio: string
|
||||||
|
aof_last_rewrite_time_sec: string
|
||||||
|
master_replid: string
|
||||||
|
aof_rewrite_in_progress: string
|
||||||
|
lru_clock: string
|
||||||
|
maxmemory_policy: string
|
||||||
|
run_id: string
|
||||||
|
latest_fork_usec: string
|
||||||
|
tracking_total_items: string
|
||||||
|
total_commands_processed: string
|
||||||
|
expired_keys: string
|
||||||
|
errorstat_ERR: string
|
||||||
|
used_memory: string
|
||||||
|
module_fork_in_progress: string
|
||||||
|
errorstat_WRONGPASS: string
|
||||||
|
aof_buffer_length: string
|
||||||
|
dump_payload_sanitizations: string
|
||||||
|
mem_clients_slaves: string
|
||||||
|
keyspace_misses: string
|
||||||
|
server_time_usec: string
|
||||||
|
executable: string
|
||||||
|
lazyfreed_objects: string
|
||||||
|
db0: string
|
||||||
|
used_memory_peak_human: string
|
||||||
|
keyspace_hits: string
|
||||||
|
rdb_last_cow_size: string
|
||||||
|
aof_pending_rewrite: string
|
||||||
|
used_memory_overhead: string
|
||||||
|
active_defrag_hits: string
|
||||||
|
tcp_port: string
|
||||||
|
uptime_in_days: string
|
||||||
|
used_memory_peak_perc: string
|
||||||
|
current_save_keys_processed: string
|
||||||
|
blocked_clients: string
|
||||||
|
total_reads_processed: string
|
||||||
|
expire_cycle_cpu_milliseconds: string
|
||||||
|
sync_partial_err: string
|
||||||
|
used_memory_scripts_human: string
|
||||||
|
aof_current_rewrite_time_sec: string
|
||||||
|
aof_enabled: string
|
||||||
|
process_supervised: string
|
||||||
|
master_repl_offset: string
|
||||||
|
used_memory_dataset: string
|
||||||
|
used_cpu_user: string
|
||||||
|
rdb_last_bgsave_status: string
|
||||||
|
tracking_total_keys: string
|
||||||
|
atomicvar_api: string
|
||||||
|
allocator_rss_ratio: string
|
||||||
|
client_recent_max_input_buffer: string
|
||||||
|
clients_in_timeout_table: string
|
||||||
|
aof_last_write_status: string
|
||||||
|
mem_allocator: string
|
||||||
|
used_memory_scripts: string
|
||||||
|
used_memory_peak: string
|
||||||
|
process_id: string
|
||||||
|
master_failover_state: string
|
||||||
|
errorstat_NOAUTH: string
|
||||||
|
used_cpu_sys: string
|
||||||
|
repl_backlog_size: string
|
||||||
|
connected_slaves: string
|
||||||
|
current_save_keys_total: string
|
||||||
|
gcc_version: string
|
||||||
|
total_system_memory_human: string
|
||||||
|
sync_full: string
|
||||||
|
connected_clients: string
|
||||||
|
module_fork_last_cow_size: string
|
||||||
|
total_writes_processed: string
|
||||||
|
allocator_active: string
|
||||||
|
total_net_output_bytes: string
|
||||||
|
pubsub_channels: string
|
||||||
|
current_fork_perc: string
|
||||||
|
active_defrag_key_hits: string
|
||||||
|
rdb_changes_since_last_save: string
|
||||||
|
instantaneous_input_kbps: string
|
||||||
|
used_memory_rss_human: string
|
||||||
|
configured_hz: string
|
||||||
|
expired_stale_perc: string
|
||||||
|
active_defrag_misses: string
|
||||||
|
used_cpu_sys_children: string
|
||||||
|
number_of_cached_scripts: string
|
||||||
|
sync_partial_ok: string
|
||||||
|
used_memory_lua_human: string
|
||||||
|
rdb_last_save_time: string
|
||||||
|
pubsub_patterns: string
|
||||||
|
slave_expires_tracked_keys: string
|
||||||
|
redis_git_sha1: string
|
||||||
|
used_memory_rss: string
|
||||||
|
rdb_last_bgsave_time_sec: string
|
||||||
|
os: string
|
||||||
|
mem_not_counted_for_evict: string
|
||||||
|
active_defrag_running: string
|
||||||
|
rejected_connections: string
|
||||||
|
aof_rewrite_buffer_length: string
|
||||||
|
total_forks: string
|
||||||
|
active_defrag_key_misses: string
|
||||||
|
allocator_allocated: string
|
||||||
|
aof_base_size: string
|
||||||
|
instantaneous_output_kbps: string
|
||||||
|
second_repl_offset: string
|
||||||
|
rdb_bgsave_in_progress: string
|
||||||
|
used_cpu_user_children: string
|
||||||
|
total_connections_received: string
|
||||||
|
migrate_cached_sockets: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RedisCommandStatsVO {
|
||||||
|
command: string
|
||||||
|
calls: number
|
||||||
|
usec: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RedisKeyInfo {
|
||||||
|
keyTemplate: string
|
||||||
|
keyType: string
|
||||||
|
valueType: string
|
||||||
|
timeoutType: number
|
||||||
|
timeout: number
|
||||||
|
memo: string
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface AddressVO {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
mobile: string
|
||||||
|
areaId: number
|
||||||
|
detailAddress: string
|
||||||
|
defaultStatus: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询用户收件地址列表
|
||||||
|
export function getAddressList(params) {
|
||||||
|
return defHttp.get({ url: '/member/address/list', params })
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface GroupVO {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
remark: string
|
||||||
|
status: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询用户分组列表
|
||||||
|
export function getGroupPage(params: any) {
|
||||||
|
return defHttp.get({ url: '/member/group/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询用户分组详情
|
||||||
|
export function getGroup(id: number) {
|
||||||
|
return defHttp.get({ url: `/member/group/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增用户分组
|
||||||
|
export function createGroup(data: GroupVO) {
|
||||||
|
return defHttp.post({ url: '/member/group/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询用户分组 - 精简信息列表
|
||||||
|
export function getSimpleGroupList() {
|
||||||
|
return defHttp.get({ url: '/member/group/list-all-simple' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改用户分组
|
||||||
|
export function updateGroup(data: GroupVO) {
|
||||||
|
return defHttp.put({ url: '/member/group/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除用户分组
|
||||||
|
export function deleteGroup(id: number) {
|
||||||
|
return defHttp.delete({ url: `/member/group/delete?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface LevelVO {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
experience: number
|
||||||
|
value: number
|
||||||
|
discountPercent: number
|
||||||
|
icon: string
|
||||||
|
bgUrl: string
|
||||||
|
status: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询会员等级列表
|
||||||
|
export function getLevelList(params) {
|
||||||
|
return defHttp.get({ url: '/member/level/list', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询会员等级详情
|
||||||
|
export function getLevel(id: number) {
|
||||||
|
return defHttp.get({ url: `/member/level/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询会员等级 - 精简信息列表
|
||||||
|
export function getSimpleLevelList() {
|
||||||
|
return defHttp.get({ url: '/member/level/list-all-simple' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增会员等级
|
||||||
|
export function createLevel(data: LevelVO) {
|
||||||
|
return defHttp.post({ url: '/member/level/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改会员等级
|
||||||
|
export function updateLevel(data: LevelVO) {
|
||||||
|
return defHttp.put({ url: '/member/level/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除会员等级
|
||||||
|
export function deleteLevel(id: number) {
|
||||||
|
return defHttp.delete({ url: `/member/level/delete?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface ConfigVO {
|
||||||
|
id: number
|
||||||
|
tradeDeductEnable: number
|
||||||
|
tradeDeductUnitPrice: number
|
||||||
|
tradeDeductMaxPrice: number
|
||||||
|
tradeGivePoint: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询积分设置详情
|
||||||
|
export function getConfig() {
|
||||||
|
return defHttp.get({ url: '/member/point/config/get' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增修改积分设置
|
||||||
|
export function saveConfig(data: ConfigVO) {
|
||||||
|
return defHttp.put({ url: '/member/point/config/save', data })
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface RecordVO {
|
||||||
|
id: number
|
||||||
|
bizId: string
|
||||||
|
bizType: string
|
||||||
|
title: string
|
||||||
|
description: string
|
||||||
|
point: number
|
||||||
|
totalPoint: number
|
||||||
|
status: number
|
||||||
|
userId: number
|
||||||
|
freezingTime: Date
|
||||||
|
thawingTime: Date
|
||||||
|
createDate: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询用户积分记录列表
|
||||||
|
export function getRecordPage(params) {
|
||||||
|
return defHttp.get({ url: '/member/point/record/page', params })
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface SignInConfigVO {
|
||||||
|
id: number
|
||||||
|
day: number | null
|
||||||
|
point: number | null
|
||||||
|
enable: boolean | null
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询积分签到规则列表
|
||||||
|
export function getSignInConfigList() {
|
||||||
|
return defHttp.get({ url: '/member/point/sign-in-config/list' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询积分签到规则详情
|
||||||
|
export function getSignInConfig(id: number) {
|
||||||
|
return defHttp.get({ url: `/member/point/sign-in-config/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增积分签到规则
|
||||||
|
export function createSignInConfig(data: SignInConfigVO) {
|
||||||
|
return defHttp.post({ url: '/member/point/sign-in-config/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改积分签到规则
|
||||||
|
export function updateSignInConfig(data: SignInConfigVO) {
|
||||||
|
return defHttp.put({ url: '/member/point/sign-in-config/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除积分签到规则
|
||||||
|
export function deleteSignInConfig(id: number) {
|
||||||
|
return defHttp.delete({ url: `/member/point/sign-in-config/delete?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface SignInRecordVO {
|
||||||
|
id: number
|
||||||
|
userId: number
|
||||||
|
day: number
|
||||||
|
point: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询用户签到积分列表
|
||||||
|
export function getSignInRecordPage(params) {
|
||||||
|
return defHttp.get({ url: '/member/point/sign-in-record/page', params })
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface TagVO {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询会员标签列表
|
||||||
|
export function getMemberTagPage(params) {
|
||||||
|
return defHttp.get({ url: '/member/tag/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询会员标签详情
|
||||||
|
export function getMemberTag(id: number) {
|
||||||
|
return defHttp.get({ url: `/member/tag/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询会员标签 - 精简信息列表
|
||||||
|
export function getSimpleTagList() {
|
||||||
|
return defHttp.get({ url: '/member/tag/list-all-simple' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增会员标签
|
||||||
|
export function createMemberTag(data: TagVO) {
|
||||||
|
return defHttp.post({ url: '/member/tag/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改会员标签
|
||||||
|
export function updateMemberTag(data: TagVO) {
|
||||||
|
return defHttp.put({ url: '/member/tag/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除会员标签
|
||||||
|
export function deleteMemberTag(id: number) {
|
||||||
|
return defHttp.delete({ url: `/member/tag/delete?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface UserVO {
|
||||||
|
id: number
|
||||||
|
mobile: string
|
||||||
|
password: string
|
||||||
|
status: number
|
||||||
|
registerIp: string
|
||||||
|
loginIp: string
|
||||||
|
loginDate: Date
|
||||||
|
nickname: string
|
||||||
|
avatar: string
|
||||||
|
name: string
|
||||||
|
sex: number
|
||||||
|
areaId: number
|
||||||
|
birthday: Date
|
||||||
|
mark: string
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询会员用户列表
|
||||||
|
export function getUserPage(params) {
|
||||||
|
return defHttp.get({ url: '/member/user/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询会员用户详情
|
||||||
|
export function getUser(id: number) {
|
||||||
|
return defHttp.get({ url: `/member/user/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改会员用户
|
||||||
|
export function updateUser(data: UserVO) {
|
||||||
|
return defHttp.put({ url: '/member/user/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改会员用户等级
|
||||||
|
export function updateUserLevel(data: any) {
|
||||||
|
return defHttp.put({ url: '/member/user/update-level', data })
|
||||||
|
}
|
@ -0,0 +1,46 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface AccountVO {
|
||||||
|
id?: number
|
||||||
|
name: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建公众号账号
|
||||||
|
export function createAccount(data) {
|
||||||
|
return defHttp.post({ url: '/mp/account/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新公众号账号
|
||||||
|
export function updateAccount(data) {
|
||||||
|
return defHttp.put({ url: '/mp/account/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除公众号账号
|
||||||
|
export function deleteAccount(id) {
|
||||||
|
return defHttp.delete({ url: `/mp/account/delete?id=${id}`, method: 'delete' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得公众号账号
|
||||||
|
export function getAccount(id) {
|
||||||
|
return defHttp.get({ url: `/mp/account/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得公众号账号分页
|
||||||
|
export function getAccountPage(params) {
|
||||||
|
return defHttp.get({ url: '/mp/account/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取公众号账号精简信息列表
|
||||||
|
export function getSimpleAccounts() {
|
||||||
|
return defHttp.get({ url: '/mp/account/list-all-simple' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 生成公众号二维码
|
||||||
|
export function generateAccountQrCode(id) {
|
||||||
|
return defHttp.put({ url: `/mp/account/generate-qr-code?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清空公众号 API 配额
|
||||||
|
export function clearAccountQuota(id) {
|
||||||
|
return defHttp.put({ url: `/mp/account/clear-quota?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 创建公众号的自动回复
|
||||||
|
export function createAutoReply(data) {
|
||||||
|
return defHttp.post({ url: '/mp/auto-reply/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新公众号的自动回复
|
||||||
|
export function updateAutoReply(data) {
|
||||||
|
return defHttp.put({ url: '/mp/auto-reply/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除公众号的自动回复
|
||||||
|
export function deleteAutoReply(id) {
|
||||||
|
return defHttp.delete({ url: `/mp/auto-reply/delete?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得公众号的自动回复
|
||||||
|
export function getAutoReply(id) {
|
||||||
|
return defHttp.get({ url: `/mp/auto-reply/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得公众号的自动回复分页
|
||||||
|
export function getAutoReplyPage(params) {
|
||||||
|
return defHttp.get({ url: '/mp/auto-reply/page', params })
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 获得公众号草稿分页
|
||||||
|
export function getDraftPage(params) {
|
||||||
|
return defHttp.get({ url: '/mp/draft/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建公众号草稿
|
||||||
|
export function createDraft(accountId, articles) {
|
||||||
|
return defHttp.post({
|
||||||
|
url: `/mp/draft/create?accountId=${accountId}`,
|
||||||
|
data: {
|
||||||
|
articles,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新公众号草稿
|
||||||
|
export function updateDraft(accountId, mediaId, articles) {
|
||||||
|
return defHttp.put({ url: `/mp/draft/update?accountId=${accountId}&mediaId=${mediaId}`, data: articles })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除公众号草稿
|
||||||
|
export function deleteDraft(accountId, mediaId) {
|
||||||
|
return defHttp.delete({ url: `/mp/draft/delete?accountId=${accountId}&mediaId=${mediaId}` })
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 获得公众号素材分页
|
||||||
|
export function getFreePublishPage(params) {
|
||||||
|
return defHttp.get({ url: '/mp/free-publish/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除公众号素材
|
||||||
|
export function deleteFreePublish(accountId, articleId) {
|
||||||
|
return defHttp.delete({ url: `/mp/free-publish/delete?accountId=${accountId}&&articleId=${articleId}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 发布公众号素材
|
||||||
|
export function submitFreePublish(accountId, mediaId) {
|
||||||
|
return defHttp.post({ url: `/mp/free-publish/submit?accountId=${accountId}&&mediaId=${mediaId}` })
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 获得公众号素材分页
|
||||||
|
export function getMaterialPage(params) {
|
||||||
|
return defHttp.get({ url: '/mp/material/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除公众号永久素材
|
||||||
|
export function deletePermanentMaterial(id) {
|
||||||
|
return defHttp.delete({ url: `/mp/material/delete-permanent?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 获得公众号菜单列表
|
||||||
|
export function getMenuList(accountId) {
|
||||||
|
return defHttp.get({ url: `/mp/menu/list?accountId=${accountId}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 保存公众号菜单
|
||||||
|
export function saveMenu(accountId, menus) {
|
||||||
|
return defHttp.post({
|
||||||
|
url: '/mp/menu/save',
|
||||||
|
data: {
|
||||||
|
accountId,
|
||||||
|
menus,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除公众号菜单
|
||||||
|
export function deleteMenu(accountId) {
|
||||||
|
return defHttp.delete({ url: `/mp/menu/delete?accountId=${accountId}` })
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 获得公众号消息分页
|
||||||
|
export function getMessagePage(params) {
|
||||||
|
return defHttp.get({ url: '/mp/message/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 给粉丝发送消息
|
||||||
|
export function sendMessage(data) {
|
||||||
|
return defHttp.post({ url: '/mp/message/send', data })
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 更新公众号粉丝
|
||||||
|
export function updateUser(data) {
|
||||||
|
return defHttp.put({ url: '/mp/user/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得公众号粉丝
|
||||||
|
export function getUser(id) {
|
||||||
|
return defHttp.get({ url: `/mp/user/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得公众号粉丝分页
|
||||||
|
export function getUserPage(params) {
|
||||||
|
return defHttp.get({ url: '/mp/user/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 同步公众号粉丝
|
||||||
|
export function syncUser(accountId) {
|
||||||
|
return defHttp.post({ url: `/mp/user/sync?accountId=${accountId}` })
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 获取消息发送概况数据
|
||||||
|
export function getUpstreamMessage(params) {
|
||||||
|
return defHttp.get({ url: '/mp/statistics/upstream-message', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 用户增减数据
|
||||||
|
export function getUserSummary(params) {
|
||||||
|
return defHttp.get({ url: '/mp/statistics/user-summary', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得用户累计数据
|
||||||
|
export function getUserCumulate(params) {
|
||||||
|
return defHttp.get({ url: '/mp/statistics/user-cumulate', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得接口分析数据
|
||||||
|
export function getInterfaceSummary(params) {
|
||||||
|
return defHttp.get({ url: '/mp/statistics/interface-summary', params })
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 创建公众号标签
|
||||||
|
export function createTag(data) {
|
||||||
|
return defHttp.post({ url: '/mp/tag/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新公众号标签
|
||||||
|
export function updateTag(data) {
|
||||||
|
return defHttp.put({ url: '/mp/tag/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除公众号标签
|
||||||
|
export function deleteTag(id) {
|
||||||
|
return defHttp.delete({ url: `/mp/tag/delete?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得公众号标签
|
||||||
|
export function getTag(id) {
|
||||||
|
return defHttp.get({ url: `/mp/tag/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得公众号标签分页
|
||||||
|
export function getTagPage(params) {
|
||||||
|
return defHttp.get({ url: '/mp/tag/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取公众号标签精简信息列表
|
||||||
|
export function getSimpleTags() {
|
||||||
|
return defHttp.get({ url: '/mp/tag/list-all-simple' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 同步公众号标签
|
||||||
|
export function syncTag(accountId) {
|
||||||
|
return defHttp.post({ url: `/mp/tag/sync?accountId=${accountId}` })
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface AppVO {
|
||||||
|
id: number
|
||||||
|
name: string
|
||||||
|
status: number
|
||||||
|
remark: string
|
||||||
|
payNotifyUrl: string
|
||||||
|
refundNotifyUrl: string
|
||||||
|
merchantId: number
|
||||||
|
merchantName: string
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AppPageReqVO extends PageParam {
|
||||||
|
name?: string
|
||||||
|
status?: number
|
||||||
|
remark?: string
|
||||||
|
payNotifyUrl?: string
|
||||||
|
refundNotifyUrl?: string
|
||||||
|
merchantName?: string
|
||||||
|
createTime?: Date[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AppUpdateStatusReqVO {
|
||||||
|
id: number
|
||||||
|
status: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询列表支付应用
|
||||||
|
export function getAppPage(params: AppPageReqVO) {
|
||||||
|
return defHttp.get({ url: '/pay/app/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询详情支付应用
|
||||||
|
export function getApp(id: number) {
|
||||||
|
return defHttp.get({ url: `/pay/app/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增支付应用
|
||||||
|
export function createApp(data: AppVO) {
|
||||||
|
return defHttp.post({ url: '/pay/app/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改支付应用
|
||||||
|
export function updateApp(data: AppVO) {
|
||||||
|
return defHttp.put({ url: '/pay/app/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 支付应用信息状态修改
|
||||||
|
export function changeAppStatus(data: AppUpdateStatusReqVO) {
|
||||||
|
return defHttp.put({ url: '/pay/app/update-status', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除支付应用
|
||||||
|
export function deleteApp(id: number) {
|
||||||
|
return defHttp.delete({ url: `/pay/app/delete?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得支付应用列表
|
||||||
|
export function getAppList() {
|
||||||
|
return defHttp.get({ url: '/pay/app/list' })
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface ChannelVO {
|
||||||
|
id: number
|
||||||
|
code: string
|
||||||
|
config: string
|
||||||
|
status: number
|
||||||
|
remark: string
|
||||||
|
feeRate: number
|
||||||
|
merchantId: number
|
||||||
|
appId: number
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ChannelPageReqVO extends PageParam {
|
||||||
|
code?: string
|
||||||
|
status?: number
|
||||||
|
remark?: string
|
||||||
|
feeRate?: number
|
||||||
|
merchantId?: number
|
||||||
|
appId?: number
|
||||||
|
config?: string
|
||||||
|
createTime?: Date[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ChannelExportReqVO {
|
||||||
|
code?: string
|
||||||
|
status?: number
|
||||||
|
remark?: string
|
||||||
|
feeRate?: number
|
||||||
|
merchantId?: number
|
||||||
|
appId?: number
|
||||||
|
config?: string
|
||||||
|
createTime?: Date[]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询列表支付渠道
|
||||||
|
export function getChannelPage(params: PageParam) {
|
||||||
|
return defHttp.get({ url: '/pay/channel/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询详情支付渠道
|
||||||
|
export function getChannel(appId: string, code: string) {
|
||||||
|
const params = {
|
||||||
|
appId,
|
||||||
|
code,
|
||||||
|
}
|
||||||
|
return defHttp.get({ url: '/pay/channel/get', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增支付渠道
|
||||||
|
export function createChannel(data: ChannelVO) {
|
||||||
|
return defHttp.post({ url: '/pay/channel/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改支付渠道
|
||||||
|
export function updateChannel(data: ChannelVO) {
|
||||||
|
return defHttp.put({ url: '/pay/channel/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除支付渠道
|
||||||
|
export function deleteChannel(id: number) {
|
||||||
|
return defHttp.delete({ url: `/pay/channel/delete?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出支付渠道
|
||||||
|
export function exportChannel(params) {
|
||||||
|
return defHttp.download({ url: '/pay/channel/export-excel', params }, '支付渠道.xls')
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 获得示例订单分页
|
||||||
|
export function getDemoOrderPage(params) {
|
||||||
|
return defHttp.get({ url: '/pay/demo-order/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得示例订单
|
||||||
|
export function getDemoOrder(id: number) {
|
||||||
|
return defHttp.get({ url: `/pay/demo-order/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建示例订单
|
||||||
|
export function createDemoOrder(data) {
|
||||||
|
return defHttp.post({ url: '/pay/demo-order/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 退款示例订单
|
||||||
|
export function refundDemoOrder(id: number) {
|
||||||
|
return defHttp.put({ url: `/pay/demo-order/refund?id=${id}` })
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 获得支付通知明细
|
||||||
|
export function getNotifyTaskDetail(id) {
|
||||||
|
return defHttp.get({ url: `/pay/notify/get-detail?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得支付通知分页
|
||||||
|
export function getNotifyTaskPage(params) {
|
||||||
|
return defHttp.get({ url: '/pay/notify/page', params })
|
||||||
|
}
|
@ -0,0 +1,104 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface OrderVO {
|
||||||
|
id: number
|
||||||
|
merchantId: number
|
||||||
|
appId: number
|
||||||
|
channelId: number
|
||||||
|
channelCode: string
|
||||||
|
merchantOrderId: string
|
||||||
|
subject: string
|
||||||
|
body: string
|
||||||
|
notifyUrl: string
|
||||||
|
notifyStatus: number
|
||||||
|
amount: number
|
||||||
|
channelFeeRate: number
|
||||||
|
channelFeeAmount: number
|
||||||
|
status: number
|
||||||
|
userIp: string
|
||||||
|
expireTime: Date
|
||||||
|
successTime: Date
|
||||||
|
notifyTime: Date
|
||||||
|
successExtensionId: number
|
||||||
|
refundStatus: number
|
||||||
|
refundTimes: number
|
||||||
|
refundAmount: number
|
||||||
|
channelUserId: string
|
||||||
|
channelOrderNo: string
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface OrderPageReqVO extends PageParam {
|
||||||
|
merchantId?: number
|
||||||
|
appId?: number
|
||||||
|
channelId?: number
|
||||||
|
channelCode?: string
|
||||||
|
merchantOrderId?: string
|
||||||
|
subject?: string
|
||||||
|
body?: string
|
||||||
|
notifyUrl?: string
|
||||||
|
notifyStatus?: number
|
||||||
|
amount?: number
|
||||||
|
channelFeeRate?: number
|
||||||
|
channelFeeAmount?: number
|
||||||
|
status?: number
|
||||||
|
expireTime?: Date[]
|
||||||
|
successTime?: Date[]
|
||||||
|
notifyTime?: Date[]
|
||||||
|
successExtensionId?: number
|
||||||
|
refundStatus?: number
|
||||||
|
refundTimes?: number
|
||||||
|
channelUserId?: string
|
||||||
|
channelOrderNo?: string
|
||||||
|
createTime?: Date[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface OrderExportReqVO {
|
||||||
|
merchantId?: number
|
||||||
|
appId?: number
|
||||||
|
channelId?: number
|
||||||
|
channelCode?: string
|
||||||
|
merchantOrderId?: string
|
||||||
|
subject?: string
|
||||||
|
body?: string
|
||||||
|
notifyUrl?: string
|
||||||
|
notifyStatus?: number
|
||||||
|
amount?: number
|
||||||
|
channelFeeRate?: number
|
||||||
|
channelFeeAmount?: number
|
||||||
|
status?: number
|
||||||
|
expireTime?: Date[]
|
||||||
|
successTime?: Date[]
|
||||||
|
notifyTime?: Date[]
|
||||||
|
successExtensionId?: number
|
||||||
|
refundStatus?: number
|
||||||
|
refundTimes?: number
|
||||||
|
channelUserId?: string
|
||||||
|
channelOrderNo?: string
|
||||||
|
createTime?: Date[]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询列表支付订单
|
||||||
|
export function getOrderPage(params: OrderPageReqVO) {
|
||||||
|
return defHttp.get({ url: '/pay/order/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询详情支付订单
|
||||||
|
export function getOrder(id: number) {
|
||||||
|
return defHttp.get({ url: `/pay/order/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得支付订单的明细
|
||||||
|
export function getOrderDetail(id: number) {
|
||||||
|
return defHttp.get({ url: `/pay/order/get-detail?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提交支付订单
|
||||||
|
export function submitOrder(data: any) {
|
||||||
|
return defHttp.post({ url: '/pay/order/submit', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出支付订单
|
||||||
|
export function exportOrder(params: OrderExportReqVO) {
|
||||||
|
return defHttp.download({ url: '/pay/order/export-excel', params })
|
||||||
|
}
|
@ -0,0 +1,116 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface RefundVO {
|
||||||
|
id: number
|
||||||
|
merchantId: number
|
||||||
|
appId: number
|
||||||
|
channelId: number
|
||||||
|
channelCode: string
|
||||||
|
orderId: string
|
||||||
|
tradeNo: string
|
||||||
|
merchantOrderId: string
|
||||||
|
merchantRefundNo: string
|
||||||
|
notifyUrl: string
|
||||||
|
notifyStatus: number
|
||||||
|
status: number
|
||||||
|
type: number
|
||||||
|
payAmount: number
|
||||||
|
refundAmount: number
|
||||||
|
reason: string
|
||||||
|
userIp: string
|
||||||
|
channelOrderNo: string
|
||||||
|
channelRefundNo: string
|
||||||
|
channelErrorCode: string
|
||||||
|
channelErrorMsg: string
|
||||||
|
channelExtras: string
|
||||||
|
expireTime: Date
|
||||||
|
successTime: Date
|
||||||
|
notifyTime: Date
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RefundPageReqVO extends PageParam {
|
||||||
|
merchantId?: number
|
||||||
|
appId?: number
|
||||||
|
channelId?: number
|
||||||
|
channelCode?: string
|
||||||
|
orderId?: string
|
||||||
|
tradeNo?: string
|
||||||
|
merchantOrderId?: string
|
||||||
|
merchantRefundNo?: string
|
||||||
|
notifyUrl?: string
|
||||||
|
notifyStatus?: number
|
||||||
|
status?: number
|
||||||
|
type?: number
|
||||||
|
payAmount?: number
|
||||||
|
refundAmount?: number
|
||||||
|
reason?: string
|
||||||
|
userIp?: string
|
||||||
|
channelOrderNo?: string
|
||||||
|
channelRefundNo?: string
|
||||||
|
channelErrorCode?: string
|
||||||
|
channelErrorMsg?: string
|
||||||
|
channelExtras?: string
|
||||||
|
expireTime?: Date[]
|
||||||
|
successTime?: Date[]
|
||||||
|
notifyTime?: Date[]
|
||||||
|
createTime?: Date[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PayRefundExportReqVO {
|
||||||
|
merchantId?: number
|
||||||
|
appId?: number
|
||||||
|
channelId?: number
|
||||||
|
channelCode?: string
|
||||||
|
orderId?: string
|
||||||
|
tradeNo?: string
|
||||||
|
merchantOrderId?: string
|
||||||
|
merchantRefundNo?: string
|
||||||
|
notifyUrl?: string
|
||||||
|
notifyStatus?: number
|
||||||
|
status?: number
|
||||||
|
type?: number
|
||||||
|
payAmount?: number
|
||||||
|
refundAmount?: number
|
||||||
|
reason?: string
|
||||||
|
userIp?: string
|
||||||
|
channelOrderNo?: string
|
||||||
|
channelRefundNo?: string
|
||||||
|
channelErrorCode?: string
|
||||||
|
channelErrorMsg?: string
|
||||||
|
channelExtras?: string
|
||||||
|
expireTime?: Date[]
|
||||||
|
successTime?: Date[]
|
||||||
|
notifyTime?: Date[]
|
||||||
|
createTime?: Date[]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询列表退款订单
|
||||||
|
export function getRefundPage(params: RefundPageReqVO) {
|
||||||
|
return defHttp.get({ url: '/pay/refund/page', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询详情退款订单
|
||||||
|
export function getRefund(id: number) {
|
||||||
|
return defHttp.get({ url: `/pay/refund/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增退款订单
|
||||||
|
export function createRefund(data: RefundVO) {
|
||||||
|
return defHttp.post({ url: '/pay/refund/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改退款订单
|
||||||
|
export function updateRefund(data: RefundVO) {
|
||||||
|
return defHttp.put({ url: '/pay/refund/update', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除退款订单
|
||||||
|
export function deleteRefund(id: number) {
|
||||||
|
return defHttp.delete({ url: `/pay/refund/delete?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出退款订单
|
||||||
|
export function exportRefund(params: PayRefundExportReqVO) {
|
||||||
|
return defHttp.download({ url: '/pay/refund/export-excel', params }, '退款订单.xls')
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
// 获得地区树
|
||||||
|
export function getAreaTree() {
|
||||||
|
return defHttp.get({ url: '/system/area/tree' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获得 IP 对应的地区名
|
||||||
|
export function getAreaByIp(ip: string) {
|
||||||
|
return defHttp.get({ url: `/system/area/get-by-ip?ip=${ip}` })
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
import { defHttp } from '@/utils/http/axios'
|
||||||
|
|
||||||
|
export interface DeptVO {
|
||||||
|
id?: number
|
||||||
|
name: string
|
||||||
|
parentId: number
|
||||||
|
status: number
|
||||||
|
sort: number
|
||||||
|
leaderUserId: number
|
||||||
|
phone: string
|
||||||
|
email: string
|
||||||
|
createTime: Date
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DeptPageReqVO {
|
||||||
|
name?: string
|
||||||
|
status?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询部门(精简)列表
|
||||||
|
export function listSimpleDept() {
|
||||||
|
return defHttp.get({ url: '/system/dept/list-all-simple' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询部门列表
|
||||||
|
export function getDeptPage(params: DeptPageReqVO) {
|
||||||
|
return defHttp.get({ url: '/system/dept/list', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询部门详情
|
||||||
|
export function getDept(id: number) {
|
||||||
|
return defHttp.get({ url: `/system/dept/get?id=${id}` })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增部门
|
||||||
|
export function createDept(data: DeptVO) {
|
||||||
|
return defHttp.post({ url: '/system/dept/create', data })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改部门
|
||||||
|
export function updateDept(params: DeptVO) {
|
||||||
|
return defHttp.put({ url: '/system/dept/update', data: params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除部门
|
||||||
|
export function deleteDept(id: number) {
|
||||||
|
return defHttp.delete({ url: `/system/dept/delete?id=${id}` })
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue