初始化版本,引入智慧食堂模块,第三方模块

This commit is contained in:
zjf committed 2024-12-06 18:48:18 +08:00
commit d22f88efd3
677 files changed
+69341

No files matched your search

+30
View File
@@ -0,0 +1,30 @@
You are an expert in TypeScript, Vite, Vue3, Vue Router, Pinia, VueUse ,Daisy UI, Element Plus, and Tailwind, with a deep understanding of best practices and performance optimization techniques in these technologies.
Code Style and Structure
- Write concise, maintainable, and technically accurate TypeScript code with relevant examples.
- Use functional and declarative programming patterns; avoid classes.
- Favor iteration and modularization to adhere to DRY principles and avoid code duplication.
- Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError).
- Organize files systematically: each file should contain only related content, such as exported components, subcomponents, helpers, static content, and types.
Naming Conventions
- Use lowercase with dashes for directories (e.g., components/auth-wizard).
- Favor named exports for functions.
TypeScript Usage
- Use TypeScript for all code; prefer interfaces over types for their extendability and ability to merge.
- Avoid enums; use maps instead for better type safety and flexibility.
- Use functional components with TypeScript interfaces.
Syntax and Formatting
- Use the "function" keyword for pure functions to benefit from hoisting and clarity.
- Always use the Vue Composition API script setup style.
- The order is template , typescript , Sass
UI and Styling
- Use Element Plus,Daisyui, and Tailwind for components and styling.
- Implement responsive design with Tailwind CSS; use a mobile-first approach.
- Styles need to support both light and dark modes
Performance Optimization
- Leverage VueUse functions where applicable to enhance reactivity and performance.
+56
View File
@@ -0,0 +1,56 @@
# 网站主标题
VITE_GLOBAL_TITLE= 'PIGX ADMIN'
# footer
VITE_FOOTER_TITLE= '©2024 pig4cloud.com'
# 是否是微服务架构(重要)
VITE_IS_MICRO= true
# 前端访问前缀
VITE_PUBLIC_PATH = /
# 后端请求前缀
VITE_API_URL = /api
# ADMIN 服务地址
VITE_ADMIN_PROXY_PATH = http://localhost:9999
# 前端加密密钥
VITE_PWD_ENC_KEY='pigxpigxpigxpigx'
# OAUTH2 密码模式客户端信息
VITE_OAUTH2_PASSWORD_CLIENT='pig:pig'
# OAUTH2 短信客户端信息
VITE_OAUTH2_MOBILE_CLIENT='app:app'
# OAUTH2 社交登录客户端信息
VITE_OAUTH2_SOCIAL_CLIENT='social:social'
# 是否开启前端滑块验证码
VITE_VERIFY_ENABLE = true
# 是否开启前端图形验证码
VITE_VERIFY_IMAGE_ENABLE = false
# 是否开启websocket 消息接受,
VITE_WEBSOCKET_ENABLE = false
# 是否开启注册
VITE_REGISTER_ENABLE = true
# 是否开启租户自动选择 (根据租户域名)
VITE_AUTO_TENANT = false
# 是否开启多语言切换
VITE_I18N_ENABLE = true
# 是否开启暗黑模式切换
VITE_DARK_MODE_ENABLE = true
# 是否启用禁用浏览器调试功能(反爬)
VITE_ENABLE_ANTI_DEBUG=false
# 绕过反爬参数值 url?ddtk=参数值
VITE_ANTI_DEBUG_KEY=pig
+14
View File
@@ -0,0 +1,14 @@
# port 端口号
VITE_PORT = 8888
#浏览器自动打开
VITE_OPEN = true
# 本地环境
ENV = 'development'
# ADMIN 服务地址
VITE_ADMIN_PROXY_PATH = http://localhost:9999
# 代码生成服务地址
VITE_GEN_PROXY_PATH = http://localhost:5003
+18
View File
@@ -0,0 +1,18 @@
*.sh
node_modules
lib
*.md
*.scss
*.woff
*.ttf
.vscode
.idea
dist
mock
public
bin
build
config
index.html
src/assets
+78
View File
@@ -0,0 +1,78 @@
module.exports = {
root: true,
env: {
browser: true,
es2021: true,
node: true,
},
parser: 'vue-eslint-parser',
parserOptions: {
ecmaVersion: 12,
parser: '@typescript-eslint/parser',
sourceType: 'module',
},
extends: ['plugin:vue/vue3-essential', 'plugin:vue/essential', 'eslint:recommended'],
plugins: ['vue', '@typescript-eslint'],
overrides: [
{
files: ['*.ts', '*.tsx', '*.vue'],
rules: {
'no-undef': 'off',
},
},
],
rules: {
// http://eslint.cn/docs/rules/
// https://eslint.vuejs.org/rules/
// https://typescript-eslint.io/rules/no-unused-vars/
'@typescript-eslint/ban-ts-ignore': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-var-requires': 'off',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/no-use-before-define': 'off',
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/ban-types': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-redeclare': 'error',
'@typescript-eslint/no-non-null-asserted-optional-chain': 'off',
'@typescript-eslint/no-unused-vars': [2],
'vue/custom-event-name-casing': 'off',
'vue/attributes-order': 'off',
'vue/one-component-per-file': 'off',
'vue/html-closing-bracket-newline': 'off',
'vue/max-attributes-per-line': 'off',
'vue/multiline-html-element-content-newline': 'off',
'vue/singleline-html-element-content-newline': 'off',
'vue/attribute-hyphenation': 'off',
'vue/html-self-closing': 'off',
'vue/no-multiple-template-root': 'off',
'vue/require-default-prop': 'off',
'vue/no-v-model-argument': 'off',
'vue/no-arrow-functions-in-watch': 'off',
'vue/no-template-key': 'off',
'vue/no-v-html': 'off',
'vue/comment-directive': 'off',
'vue/no-mutating-props': 'off',
'vue/no-parsing-error': 'off',
'vue/no-deprecated-v-on-native-modifier': 'off',
'vue/multi-word-component-names': 'off',
'no-useless-escape': 'off',
'no-sparse-arrays': 'off',
'no-prototype-builtins': 'off',
'no-constant-condition': 'off',
'no-use-before-define': 'off',
'no-restricted-globals': 'off',
'no-restricted-syntax': 'off',
'generator-star-spacing': 'off',
'no-unreachable': 'off',
'no-multiple-template-root': 'off',
'no-unused-vars': 'error',
'no-v-model-argument': 'off',
'no-case-declarations': 'off',
'no-console': 'error',
'no-redeclare': 'off',
'no-mixed-spaces-and-tabs': 'off',
},
};
+50
View File
@@ -0,0 +1,50 @@
name: build
on:
push:
branches:
- master
- dev
jobs:
task:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, macOS-latest, ubuntu-latest]
node-version: [16.x, 18.x, 20.x]
npm-client: [npm, yarn, pnpm]
steps:
- uses: pnpm/action-setup@v2
if: matrix.npm-client == 'pnpm'
name: Install pnpm
with:
version: 8
run_install: false
- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Check out code
uses: actions/checkout@v2
- name: Install dependencies
run: ${{ matrix.npm-client }} install
- name: Build
run: ${{ matrix.npm-client }} run build
- name: Notify failure
if: ${{ failure() }}
env:
QYWX_ROBOT_URL: ${{ secrets.QYWX_ROBOT_URL }}
run: |
curl -H "Content-Type: application/json" -X POST -d '{
"msgtype": "text",
"text": {
"content": "Job failed! Click here for details: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
}
}' $QYWX_ROBOT_URL
+29
View File
@@ -0,0 +1,29 @@
.DS_Store
node_modules
/dist
docker/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# lock
package-lock.json
yarn.lock
pnpm-lock.yaml
+39
View File
@@ -0,0 +1,39 @@
module.exports = {
// 一行最多多少个字符
printWidth: 150,
// 指定每个缩进级别的空格数
tabWidth: 2,
// 使用制表符而不是空格缩进行
useTabs: true,
// 在语句末尾打印分号
semi: true,
// 使用单引号而不是双引号
singleQuote: true,
// 更改引用对象属性的时间 可选值"<as-needed|consistent|preserve>"
quoteProps: 'as-needed',
// 在JSX中使用单引号而不是双引号
jsxSingleQuote: false,
// 多行时尽可能打印尾随逗号。(例如,单行数组永远不会出现逗号结尾。) 可选值"<none|es5|all>",默认none
trailingComma: 'es5',
// 在对象文字中的括号之间打印空格
bracketSpacing: true,
// jsx 标签的反尖括号需要换行
jsxBracketSameLine: false,
// 在单独的箭头函数参数周围包括括号 always:(x) => x \ avoid:x => x
arrowParens: 'always',
// 这两个选项可用于格式化以给定字符偏移量(分别包括和不包括)开始和结束的代码
rangeStart: 0,
rangeEnd: Infinity,
// 指定要使用的解析器,不需要写文件开头的 @prettier
requirePragma: false,
// 不需要自动在文件开头插入 @prettier
insertPragma: false,
// 使用默认的折行标准 always\never\preserve
proseWrap: 'preserve',
// 指定HTML文件的全局空格敏感度 css\strict\ignore
htmlWhitespaceSensitivity: 'css',
// Vue文件脚本和样式标签缩进
vueIndentScriptAndStyle: false,
// 换行符使用 lf 结尾是 可选值"<auto|lf|crlf|cr>"
endOfLine: 'lf',
};
+73
View File
@@ -0,0 +1,73 @@
// Generated by 'unplugin-auto-import'
export {}
declare global {
const EffectScope: typeof import('vue')['EffectScope']
const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
const computed: typeof import('vue')['computed']
const createApp: typeof import('vue')['createApp']
const createPinia: typeof import('pinia')['createPinia']
const customRef: typeof import('vue')['customRef']
const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
const defineComponent: typeof import('vue')['defineComponent']
const defineStore: typeof import('pinia')['defineStore']
const effectScope: typeof import('vue')['effectScope']
const getActivePinia: typeof import('pinia')['getActivePinia']
const getCurrentInstance: typeof import('vue')['getCurrentInstance']
const getCurrentScope: typeof import('vue')['getCurrentScope']
const h: typeof import('vue')['h']
const inject: typeof import('vue')['inject']
const isProxy: typeof import('vue')['isProxy']
const isReactive: typeof import('vue')['isReactive']
const isReadonly: typeof import('vue')['isReadonly']
const isRef: typeof import('vue')['isRef']
const mapActions: typeof import('pinia')['mapActions']
const mapGetters: typeof import('pinia')['mapGetters']
const mapState: typeof import('pinia')['mapState']
const mapStores: typeof import('pinia')['mapStores']
const mapWritableState: typeof import('pinia')['mapWritableState']
const markRaw: typeof import('vue')['markRaw']
const nextTick: typeof import('vue')['nextTick']
const onActivated: typeof import('vue')['onActivated']
const onBeforeMount: typeof import('vue')['onBeforeMount']
const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
const onDeactivated: typeof import('vue')['onDeactivated']
const onErrorCaptured: typeof import('vue')['onErrorCaptured']
const onMounted: typeof import('vue')['onMounted']
const onRenderTracked: typeof import('vue')['onRenderTracked']
const onRenderTriggered: typeof import('vue')['onRenderTriggered']
const onScopeDispose: typeof import('vue')['onScopeDispose']
const onServerPrefetch: typeof import('vue')['onServerPrefetch']
const onUnmounted: typeof import('vue')['onUnmounted']
const onUpdated: typeof import('vue')['onUpdated']
const provide: typeof import('vue')['provide']
const reactive: typeof import('vue')['reactive']
const readonly: typeof import('vue')['readonly']
const ref: typeof import('vue')['ref']
const resolveComponent: typeof import('vue')['resolveComponent']
const resolveDirective: typeof import('vue')['resolveDirective']
const setActivePinia: typeof import('pinia')['setActivePinia']
const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']
const shallowReactive: typeof import('vue')['shallowReactive']
const shallowReadonly: typeof import('vue')['shallowReadonly']
const shallowRef: typeof import('vue')['shallowRef']
const storeToRefs: typeof import('pinia')['storeToRefs']
const toRaw: typeof import('vue')['toRaw']
const toRef: typeof import('vue')['toRef']
const toRefs: typeof import('vue')['toRefs']
const triggerRef: typeof import('vue')['triggerRef']
const unref: typeof import('vue')['unref']
const useAttrs: typeof import('vue')['useAttrs']
const useCssModule: typeof import('vue')['useCssModule']
const useCssVars: typeof import('vue')['useCssVars']
const useLink: typeof import('vue-router')['useLink']
const useRoute: typeof import('vue-router')['useRoute']
const useRouter: typeof import('vue-router')['useRouter']
const useSlots: typeof import('vue')['useSlots']
const watch: typeof import('vue')['watch']
const watchEffect: typeof import('vue')['watchEffect']
const watchPostEffect: typeof import('vue')['watchPostEffect']
const watchSyncEffect: typeof import('vue')['watchSyncEffect']
}
+9
View File
@@ -0,0 +1,9 @@
FROM registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/nginx
COPY ./dist /data
RUN rm /etc/nginx/conf.d/default.conf
ADD pjcloud-ui.conf /etc/nginx/conf.d/default.conf
RUN /bin/bash -c 'echo init ok'
+19
View File
@@ -0,0 +1,19 @@
version: '3'
services:
pjcloud-ui:
build:
context: .
restart: always
container_name: pjcloud-ui
image: pjcloud-ui
networks:
- spring_cloud_default
external_links:
- pjcloud-gateway
ports:
- 80:80
# 加入到后端网络, 默认为 pjcloud_default | docker network ls 查看
networks:
spring_cloud_default:
external: true
+38
View File
@@ -0,0 +1,38 @@
server_tokens off; # Nginx 版本信息关闭,避免攻击
client_max_body_size 64m; # 最大上传文件大小!
server {
listen 80;
server_name localhost;
gzip on;
gzip_static on; # 需要http_gzip_static_module 模块
gzip_min_length 1k;
gzip_comp_level 4;
gzip_proxied any;
gzip_types text/plain text/xml text/css;
gzip_vary on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
# 前端打包好的dist目录文件
root /data/;
location ^~/api/ {
proxy_pass http://pjcloud-gateway:9999/; #注意/后缀
proxy_connect_timeout 60s;
proxy_read_timeout 120s;
proxy_send_timeout 120s;
proxy_set_header from "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
# 屏蔽所有敏感路径,不用改代码配置开关,双重保护
location ~* ^/(actuator|swagger-ui|v3/api-docs|swagger-resources|webjars|doc.html) {
return 403; # 禁止访问
}
}
+28
View File
@@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta
name="keywords"
content="
微服务,pig开发平台,oauth2,微服务框架,java微服务框架,微服务开发框架,微服务治理框架,开源微服务框架,微服务器框架,微服务框架图,微服务快速开发框架,微服务java框架,微服务开源框架,微服务开源框架,微服务架构框架,微服务基础框架,微服务常见框架,主流微服务框架,微服务框架搭建,java主流微服务框架,java微服务开发框架,微服务前端框架,Spring
Boot,Spring Cloud,Spring"
/>
<meta
name="description"
content="PIG应用微服务、容器、DevOps等云原生技术,封装了大量技术开发包、技术应用组件、技术场景实现能力,并支持SaaS模式应用,提供了一个可支持企业各业务系统或产品快速开发实现的微服务应用数字化融合平台,富含各类开箱即用的组件、微服务业务系统,助力企业跨越Cloud(IaaS/PaaS)与自身数字化的鸿沟,共享业务服务的组合重用,为企业服务化中台整合、数字化转型提供强力支撑,也为企业提供了最佳架构实践。"
/>
<!--避免微信管理防盗链机制-->
<meta name="referrer" content="no-referrer" />
<link rel="icon" href="/favicon.ico" />
<title>PIGX 微服务快速开发平台</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
+109
View File
@@ -0,0 +1,109 @@
{
"name": "pjcloud-ui",
"version": "5.7.0",
"description": "PIGCLOUD微服务开发平台",
"author": "pig4cloud",
"license": "不对外分发 pig4cloud 版权所有,请购买商业版权",
"scripts": {
"dev": "vite --force",
"build": "cross-env NODE_OPTIONS=--max-old-space-size=4096 vite build",
"build:docker": "cross-env NODE_OPTIONS=--max-old-space-size=4096 vite build --outDir ./docker/dist/",
"lint:eslint": "eslint --fix --ext .js,.ts,.vue ./src",
"prettier": "prettier --write ."
},
"dependencies": {
"@axolo/json-editor-vue": "^0.3.2",
"@chenfengyuan/vue-qrcode": "^2.0.0",
"@element-plus/icons-vue": "^2.0.10",
"@popperjs/core": "2.11.8",
"@vueuse/core": "^10.4.1",
"@wangeditor/editor": "5.1.23",
"@wangeditor/editor-for-vue": "5.1.12",
"autoprefixer": "^10.4.7",
"axios": "^1.3.3",
"codemirror": "5.65.5",
"crypto-js": "^3.1.9-1",
"disable-devtool": "^0.3.8",
"driver.js": "^0.9.8",
"echarts": "^5.4.1",
"element-plus": "2.5.5",
"form-designer-plus": "^0.1.5",
"highlight.js": "^11.7.0",
"js-base64": "^3.7.7",
"js-cookie": "^3.0.1",
"json-editor-vue3": "^1.1.1",
"lodash": "^4.17.21",
"mitt": "^3.0.0",
"nprogress": "^0.2.0",
"pinia": "2.0.32",
"postcss": "8.4.40",
"qrcode": "1.5.1",
"qs": "^6.11.0",
"screenfull": "^6.0.2",
"sm-crypto": "^0.3.12",
"sortablejs": "^1.15.0",
"splitpanes": "^3.1.5",
"tailwindcss": "3.4.6",
"v-calendar": "3.1.2",
"vue": "3.4.15",
"vue-clipboard3": "^2.0.0",
"vue-echarts": "6.6.1",
"vue-i18n": "9.2.2",
"vue-router": "^4.1.6",
"vue3-tree-org": "^4.2.2",
"vue3-video-play": "1.3.1-beta.6",
"vuedraggable": "^4.1.0"
},
"devDependencies": {
"@types/crypto-js": "^4.2.2",
"@types/markdown-it": "^14.1.1",
"@types/node": "^18.14.0",
"@types/nprogress": "^0.2.0",
"@types/sm-crypto": "^0.3.4",
"@types/sortablejs": "^1.15.0",
"@typescript-eslint/eslint-plugin": "^5.53.0",
"@typescript-eslint/parser": "^5.53.0",
"@vitejs/plugin-vue": "^4.0.0",
"@vue/compiler-sfc": "^3.2.47",
"consola": "^2.15.3",
"cross-env": "7.0.3",
"daisyui": "4.11.1",
"eslint": "^8.34.0",
"eslint-plugin-vue": "^9.9.0",
"pinia-plugin-persist": "^1.0.0",
"prettier": "2.8.4",
"sass": "1.58.3",
"terser": "^5.31.1",
"typescript": "^4.9.5",
"unplugin-auto-import": "^0.13.0",
"vite": "^4.3.3",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-style-import": "^2.0.0",
"vite-plugin-top-level-await": "^1.3.0",
"vite-plugin-vue-setup-extend": "^0.4.0",
"vue-eslint-parser": "^9.1.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
],
"bugs": {
"url": "https://pig4cloud.com"
},
"engines": {
"node": ">=16.0.0",
"npm": ">= 7.0.0"
},
"keywords": [
"vue",
"vue3",
"vuejs/vue-next",
"element-ui",
"element-plus"
],
"repository": {
"type": "git",
"url": "https://gitee.com/log4j/pig"
}
}
+6
View File
@@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
/*!
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f03Line truncated
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

+86
View File
@@ -0,0 +1,86 @@
<template>
<el-config-provider :size="getGlobalComponentSize" :locale="getGlobalI18n">
<router-view v-show="setLockScreen" />
<LockScreen v-if="themeConfig.isLockScreen" />
<Setings ref="settingsRef" v-show="themeConfig.lockScreenTime > 1" />
<CloseFull v-if="!themeConfig.isLockScreen" />
</el-config-provider>
</template>
<script setup lang="ts" name="app">
import { useI18n } from 'vue-i18n';
import { useTagsViewRoutes } from '/@/stores/tagsViewRoutes';
import { useThemeConfig } from '/@/stores/themeConfig';
import other from '/@/utils/other';
import { Local, Session } from '/@/utils/storage';
import mittBus from '/@/utils/mitt';
import setIntroduction from '/@/utils/setIconfont';
// 引入组件
const LockScreen = defineAsyncComponent(() => import('/@/layout/lockScreen/index.vue'));
const Setings = defineAsyncComponent(() => import('/@/layout/navBars/breadcrumb/setings.vue'));
const CloseFull = defineAsyncComponent(() => import('/@/layout/navBars/breadcrumb/closeFull.vue'));
// 定义变量内容
const { messages, locale } = useI18n();
const settingsRef = ref();
const route = useRoute();
const stores = useTagsViewRoutes();
const storesThemeConfig = useThemeConfig();
const { themeConfig } = storeToRefs(storesThemeConfig);
// 设置锁屏时组件显示隐藏
const setLockScreen = computed(() => {
// 防止锁屏后,刷新出现不相关界面
// https://gitee.com/lyt-top/vue-next-admin/issues/I6AF8P
return themeConfig.value.isLockScreen ? themeConfig.value.lockScreenTime > 1 : themeConfig.value.lockScreenTime >= 0;
});
// 获取全局组件大小
const getGlobalComponentSize = computed(() => {
return other.globalComponentSize();
});
// 获取全局 i18n
const getGlobalI18n = computed(() => {
return messages.value[locale.value];
});
// 设置初始化,防止刷新时恢复默认
onBeforeMount(() => {
// 设置批量第三方 icon 图标
setIntroduction.cssCdn();
// 设置批量第三方 js
setIntroduction.jsCdn();
});
// 页面加载时
onMounted(() => {
nextTick(() => {
// 监听布局配'置弹窗点击打开
mittBus.on('openSetingsDrawer', () => {
settingsRef.value.openDrawer();
});
// 获取缓存中的布局配置
if (Local.get('themeConfig')) {
storesThemeConfig.setThemeConfig({ themeConfig: Local.get('themeConfig') });
document.documentElement.style.cssText = Local.get('themeConfigStyle');
}
// 获取缓存中的全屏配置
if (Session.get('isTagsViewCurrenFull')) {
stores.setCurrenFullscreen(Session.get('isTagsViewCurrenFull'));
}
});
});
// 页面销毁时,关闭监听布局配置/i18n监听
onUnmounted(() => {
mittBus.off('openSetingsDrawer', () => {});
});
// 监听路由的变化,设置网站标题
watch(
() => route.path,
() => {
other.useTitle();
},
{
deep: true,
}
);
</script>
+24
View File
@@ -0,0 +1,24 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/admin/audit/page',
method: 'get',
params: query,
});
}
export function getObj(id?: string) {
return request({
url: '/admin/audit/' + id,
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/admin/audit/delete',
method: 'delete',
data: ids,
});
}
+68
View File
@@ -0,0 +1,68 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/admin/client/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/admin/client',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/admin/client/' + id,
method: 'get',
});
}
export function delObj(ids?: object) {
return request({
url: '/admin/client',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/admin/client',
method: 'put',
data: obj,
});
}
export function refreshCache() {
return request({
url: '/admin/client/sync',
method: 'put',
});
}
export function getDetails(obj: Object) {
return request({
url: '/admin/client/getClientDetailsById/' + obj,
method: 'get',
});
}
export function validateclientId(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getDetails(value).then((res) => {
const result = res.data;
if (result !== null) {
callback(new Error('编号已经存在'));
} else {
callback();
}
});
}
+64
View File
@@ -0,0 +1,64 @@
import request from "/@/utils/request"
export function fetchList(query?: Object) {
return request({
url: '/admin/system-config/page',
method: 'get',
params: query
})
}
export function addObj(obj?: Object) {
return request({
url: '/admin/system-config',
method: 'post',
data: obj
})
}
export function getObj(obj: Object) {
return request({
url: '/admin/system-config/details',
method: 'get',
params: obj
})
}
export function refreshObj() {
return request({
url: '/admin/system-config/refresh',
method: 'get'
})
}
export function delObjs(ids?: Object) {
return request({
url: '/admin/system-config',
method: 'delete',
data: ids
})
}
export function putObj(obj?: Object) {
return request({
url: '/admin/system-config',
method: 'put',
data: obj
})
}
export function validateExist(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObj({configKey: value}).then((response) => {
const result = response.data;
if (result !== null && result.length > 0) {
callback(new Error('数据已经存在'));
} else {
callback();
}
});
}
+83
View File
@@ -0,0 +1,83 @@
import request from '/@/utils/request';
export const deptTree = (params?: Object) => {
return request({
url: '/admin/dept/tree',
method: 'get',
params,
});
};
export const addObj = (obj: Object) => {
return request({
url: '/admin/dept',
method: 'post',
data: obj,
});
};
export const getObj = (id: string) => {
return request({
url: '/admin/dept/' + id,
method: 'get',
});
};
export const delObj = (id: string) => {
return request({
url: '/admin/dept/' + id,
method: 'delete',
});
};
export const putObj = (obj: Object) => {
return request({
url: '/admin/dept',
method: 'put',
data: obj,
});
};
export const syncUser = () => {
return request({
url: '/admin/connect/sync/ding/user',
method: 'post',
});
};
export const syncDept = () => {
return request({
url: '/admin/connect/sync/ding/dept',
method: 'post',
});
};
export const syncCpUser = () => {
return request({
url: '/admin/connect/sync/cp/user',
method: 'post',
});
};
export const syncCpDept = () => {
return request({
url: '/admin/connect/sync/cp/dept',
method: 'post',
});
};
export const orgTree = (type: String, deptId: Number) => {
return request({
url: '/admin/dept/org',
method: 'get',
params: {type: type, parentDeptId: deptId},
});
}
export const orgTreeSearcheUser = (param: Object) => {
return request({
url: '/admin/dept/org/user/search',
method: 'get',
params: param
});
}
+138
View File
@@ -0,0 +1,138 @@
import request from '/@/utils/request';
export const getDicts = (type: String) => {
return request({
url: `/admin/dict/type/${type}`,
method: 'get',
});
};
export function fetchList(query: any) {
return request({
url: '/admin/dict/list',
method: 'get',
params: query,
});
}
export function fetchItemList(query: any) {
return request({
url: '/admin/dict/item/page',
method: 'get',
params: query,
});
}
export function addItemObj(obj: any) {
return request({
url: '/admin/dict/item',
method: 'post',
data: obj,
});
}
export function getItemObj(id: string) {
return request({
url: '/admin/dict/item/details/' + id,
method: 'get',
});
}
export function getItemDetails(obj: object) {
return request({
url: '/admin/dict/item/details',
method: 'get',
params: obj,
});
}
export function delItemObj(id: string) {
return request({
url: '/admin/dict/item/' + id,
method: 'delete',
});
}
export function putItemObj(obj: any) {
return request({
url: '/admin/dict/item',
method: 'put',
data: obj,
});
}
export function addObj(obj: any) {
return request({
url: '/admin/dict',
method: 'post',
data: obj,
});
}
export function getObj(id: string) {
return request({
url: '/admin/dict/details/' + id,
method: 'get',
});
}
export function getObjDetails(obj: object) {
return request({
url: '/admin/dict/details',
method: 'get',
params: obj,
});
}
export function delObj(ids: Object) {
return request({
url: '/admin/dict',
method: 'delete',
data: ids,
});
}
export function putObj(obj: any) {
return request({
url: '/admin/dict',
method: 'put',
data: obj,
});
}
export function refreshCache() {
return request({
url: '/admin/dict/sync',
method: 'put',
});
}
export function validateDictType(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({ dictType: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('字典已经存在'));
} else {
callback();
}
});
}
export function validateDictItemLabel(rule: any, value: any, callback: any, type: string, isEdit: boolean) {
if (isEdit) {
return callback();
}
getItemDetails({ dictType: type, label: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('标签已经存在'));
} else {
callback();
}
});
}
+92
View File
@@ -0,0 +1,92 @@
import request from '/@/utils/request';
export function fileList(query?: Object) {
return request({
url: '/admin/sys-file/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/admin/sys-file',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/admin/sys-file/' + id,
method: 'get',
});
}
export function putObj(obj?: Object) {
return request({
url: '/admin/sys-file',
method: 'put',
data: obj,
});
}
export function fileGroupAdd(params: Record<string, any>) {
return request({
url: '/admin/sys-file/group/add',
method: 'post',
data: params,
});
}
export function fileGroupUpdate(params: Record<string, any>) {
return request({
url: '/admin/sys-file/group/update',
method: 'put',
data: params,
});
}
// 文件分类删除
export function fileGroupDelete(params: Record<string, any>) {
return request({
url: '/admin/sys-file/group/delete/' + params.id,
method: 'delete',
});
}
// 文件分类列表
export function fileCateLists(params: Record<string, any>) {
return request({
url: '/admin/sys-file/group/list',
method: 'get',
params: params,
});
}
// 文件删除
export function fileDelete(params: Record<string, any>) {
return request({
url: '/admin/sys-file',
method: 'delete',
data: params.ids,
});
}
// 文件移动
export function fileMove(params: Record<string, any>) {
return request({
url: '/admin/sys-file/group/move',
method: 'put',
data: params,
});
}
// 文件重命名
export function fileRename(params: { id: number; original: string }) {
return request({
url: '/admin/sys-file/rename',
method: 'put',
data: params,
});
}
+109
View File
@@ -0,0 +1,109 @@
import request from '/@/utils/request';
import axios from 'axios';
export function fetchList(query?: Object) {
return request({
url: '/admin/i18n/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/admin/i18n',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/admin/i18n/details/' + id,
method: 'get',
});
}
export function getObjDetails(obj?: object) {
return request({
url: '/admin/i18n/details',
method: 'get',
params: obj,
});
}
export function delObj(ids?: object) {
return request({
url: '/admin/i18n',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/admin/i18n',
method: 'put',
data: obj,
});
}
export function refreshCache() {
return request({
url: '/admin/i18n/sync',
method: 'put',
});
}
/**
* 注意这里使用原声axios对象进行操作,request 实例中依赖i18n 所以还没有初始化会报错
* @returns
*/
export function info() {
return axios.get(import.meta.env.VITE_API_URL + '/admin/i18n/info');
}
export function validateName(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({ name: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('国际化编码已经存在'));
} else {
callback();
}
});
}
export function validateZhCn(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({ zhCn: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('国际化中文已经存在'));
} else {
callback();
}
});
}
export function validateEn(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({ en: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('国际化英文已经存在'));
} else {
callback();
}
});
}
+26
View File
@@ -0,0 +1,26 @@
import request from '/@/utils/request';
export const pageList = (params?: Object) => {
return request({
url: '/admin/log/page',
method: 'get',
params,
});
};
export const delObj = (ids: object) => {
return request({
url: '/admin/log',
method: 'delete',
data: ids,
});
};
export const getSum = (params?: Object) => {
return request({
url: '/admin/log/sum',
method: 'get',
params,
});
};
+78
View File
@@ -0,0 +1,78 @@
import request from '/@/utils/request';
export const pageList = (params?: Object) => {
return request({
url: '/admin/menu/tree',
method: 'get',
params,
});
};
export const getObj = (obj: object) => {
return request({
url: `/admin/menu/details`,
method: 'get',
params: obj
});
};
export const save = (data: Object) => {
return request({
url: '/admin/menu',
method: 'post',
data: data,
});
};
export const putObj = (data: Object) => {
return request({
url: '/admin/menu',
method: 'put',
data: data,
});
};
export const addObj = (data: Object) => {
return request({
url: '/admin/menu',
method: 'post',
data: data,
});
};
export const delObj = (id: string) => {
return request({
url: '/admin/menu/' + id,
method: 'delete',
});
};
/**
* 后端控制路由,isRequestRoutes 为 true,则开启后端控制路由
* @method getAdminMenu 获取后端动态路由菜单(admin)
*/
export function useMenuApi() {
return {
getAdminMenu: (params?: object) => {
return request({
url: '/admin/menu',
method: 'get',
params,
});
},
};
}
export function validateExist(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObj({[rule.field]: value}).then((response) => {
const result = response.data;
if (result !== null && result.length > 0) {
callback(new Error('数据已经存在'));
} else {
callback();
}
});
}
+100
View File
@@ -0,0 +1,100 @@
import request from "/@/utils/request"
export function fetchUserMessageReadList(query?: Object) {
return request({
url: '/admin/sysMessage/user/read/page',
method: 'get',
params: query
})
}
export function readUserMessage(params?: object) {
return request({
url: '/admin/sysMessage/read',
method: 'post',
params: params
})
}
export function fetchUserMessageList(query?: Object) {
return request({
url: '/admin/sysMessage/user/page',
method: 'get',
params: query
})
}
export function fetchList(query?: Object) {
return request({
url: '/admin/sysMessage/page',
method: 'get',
params: query
})
}
export function addObj(obj?: Object) {
return request({
url: '/admin/sysMessage',
method: 'post',
data: obj
})
}
export function sendObj(params?: object) {
return request({
url: '/admin/sysMessage/send',
method: 'post',
params: params
})
}
export function getObj(id?: string) {
return request({
url: '/admin/sysMessage/' + id,
method: 'get'
})
}
export function delObjs(ids?: Object) {
return request({
url: '/admin/sysMessage',
method: 'delete',
data: ids
})
}
export function putObj(obj?: Object) {
return request({
url: '/admin/sysMessage',
method: 'put',
data: obj
})
}
export function sendSms(params?: object) {
return request({
url: '/admin/sysMessage/send/sms',
method: 'post',
data: params
})
}
export function sendEmail(params?: object) {
return request({
url: '/admin/sysMessage/send/email',
method: 'post',
data: params
})
}
export function sendHook(params?: object) {
return request({
url: '/admin/sysMessage/send/webhook',
method: 'post',
data: params
})
}
+92
View File
@@ -0,0 +1,92 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/admin/param/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/admin/param',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/admin/param/details/' + id,
method: 'get',
});
}
export function delObj(ids?: Object) {
return request({
url: '/admin/param',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/admin/param',
method: 'put',
data: obj,
});
}
export function refreshCache() {
return request({
url: '/admin/param/sync',
method: 'put',
});
}
export function getObjDetails(obj?: object) {
return request({
url: '/admin/param/details',
method: 'get',
params: obj,
});
}
export function getValue(key?: String) {
return request({
url: '/admin/param/publicValue/' + key,
method: 'get'
});
}
export function validateParamsCode(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({publicKey: value}).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('参数编码已经存在'));
} else {
callback();
}
});
}
export function validateParamsName(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({publicName: value}).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('参数名称已经存在'));
} else {
callback();
}
});
}
+86
View File
@@ -0,0 +1,86 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/admin/post/page',
method: 'get',
params: query,
});
}
export const list = (params?: Object) => {
return request({
url: '/admin/post/list',
method: 'get',
params,
});
};
export function addObj(obj?: Object) {
return request({
url: '/admin/post',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/admin/post/details/' + id,
method: 'get',
});
}
export function getObjDetails(obj?: object) {
return request({
url: '/admin/post/details',
method: 'get',
params: obj,
});
}
export function delObj(ids?: object) {
return request({
url: '/admin/post',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/admin/post',
method: 'put',
data: obj,
});
}
export function validatePostName(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({ postName: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('岗位名称已经存在'));
} else {
callback();
}
});
}
export function validatePostCode(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({ postCode: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('岗位编码已经存在'));
} else {
callback();
}
});
}
+111
View File
@@ -0,0 +1,111 @@
import request from '/@/utils/request';
export const list = (params?: Object) => {
return request({
url: '/admin/role/list',
method: 'get',
params,
});
};
export const pageList = (params?: Object) => {
return request({
url: '/admin/role/page',
method: 'get',
params,
});
};
export const deptRoleList = () => {
return request({
url: '/admin/role/list',
method: 'get',
});
};
export const getObj = (id: string) => {
return request({
url: '/admin/role/details/' + id,
method: 'get',
});
};
export const getObjDetails = (obj: object) => {
return request({
url: '/admin/role/details',
method: 'get',
params: obj,
});
};
export const addObj = (obj: Object) => {
return request({
url: '/admin/role',
method: 'post',
data: obj,
});
};
export const putObj = (obj: Object) => {
return request({
url: '/admin/role',
method: 'put',
data: obj,
});
};
export const delObj = (ids: Object) => {
return request({
url: '/admin/role',
method: 'delete',
data: ids,
});
};
export const permissionUpd = (roleId: string, menuIds: string) => {
return request({
url: '/admin/role/menu',
method: 'put',
data: {
roleId: roleId,
menuIds: menuIds,
},
});
};
export const fetchRoleTree = (roleId: string) => {
return request({
url: '/admin/menu/tree/' + roleId,
method: 'get',
});
};
export function validateRoleCode(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({ roleCode: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('角色标识已经存在'));
} else {
callback();
}
});
}
export function validateRoleName(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({ roleName: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('角色名称已经存在'));
} else {
callback();
}
});
}
+38
View File
@@ -0,0 +1,38 @@
import request from '/@/utils/request';
export const fetchList = (query?: Object) => {
return request({
url: '/admin/route',
method: 'get',
params: query,
});
};
export const addObj = (obj?: object) => {
return request({
url: '/admin/route',
method: 'post',
data: obj,
});
};
export const deleteObj = (routeId?: string) => {
return request({
url: '/admin/route/' + routeId,
method: 'delete'
});
};
export function validateExist(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
fetchList({[rule.field]: value}).then((response) => {
const result = response.data;
if (result !== null && result.length > 0) {
callback(new Error('数据已经存在'));
} else {
callback();
}
});
}
+48
View File
@@ -0,0 +1,48 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/admin/schedule/page',
method: 'get',
params: query,
});
}
export function list(query?: Object) {
return request({
url: '/admin/schedule/list',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/admin/schedule',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/admin/schedule/' + id,
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/admin/schedule',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/admin/schedule',
method: 'put',
data: obj,
});
}
+71
View File
@@ -0,0 +1,71 @@
import request from "/@/utils/request"
export function fetchList(query?: Object) {
return request({
url: '/admin/sysSensitiveWord/page',
method: 'get',
params: query
})
}
export function addObj(obj?: Object) {
return request({
url: '/admin/sysSensitiveWord',
method: 'post',
data: obj
})
}
export function getObj(obj: Object) {
return request({
url: '/admin/sysSensitiveWord/details',
method: 'get',
params: obj
})
}
export function refreshObj() {
return request({
url: '/admin/sysSensitiveWord/refresh',
method: 'get'
})
}
export function delObjs(ids?: Object) {
return request({
url: '/admin/sysSensitiveWord',
method: 'delete',
data: ids
})
}
export function putObj(obj?: Object) {
return request({
url: '/admin/sysSensitiveWord',
method: 'put',
data: obj
})
}
export function testObj(obj?: Object) {
return request({
url: '/admin/sysSensitiveWord/match',
method: 'post',
data: obj
})
}
export function validateWord(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObj({ sensitiveWord: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('敏感词已经存在'));
} else {
callback();
}
});
}
+47
View File
@@ -0,0 +1,47 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/admin/social/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/admin/social',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/admin/social/getById/' + id,
method: 'get',
});
}
export function delObj(ids?: Object) {
return request({
url: '/admin/social',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/admin/social',
method: 'put',
data: obj,
});
}
export function getLoginAppList(id?: string) {
return request({
url: '/admin/social/getLoginAppList',
method: 'get',
});
}
+63
View File
@@ -0,0 +1,63 @@
import request from "/@/utils/request"
export function fetchTree(query?: Object) {
return request({
url: '/admin/sysArea/tree',
method: 'get',
params: query
})
}
export function fetchList(query?: Object) {
return request({
url: '/admin/sysArea/page',
method: 'get',
params: query
})
}
export function addObj(obj?: Object) {
return request({
url: '/admin/sysArea',
method: 'post',
data: obj
})
}
export function getObj(query?: Object,) {
return request({
url: '/admin/sysArea/details',
method: 'get',
params: query
})
}
export function delObjs(ids?: Object) {
return request({
url: '/admin/sysArea',
method: 'delete',
data: ids
})
}
export function putObj(obj?: Object) {
return request({
url: '/admin/sysArea',
method: 'put',
data: obj
})
}
export function validateExist(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObj({ [rule.field] : value }).then((response) => {
const result = response.data;
if (result !== null && result.length > 0) {
callback(new Error('数据已经存在'));
} else {
callback();
}
});
}
+9
View File
@@ -0,0 +1,9 @@
import request from '/@/utils/request';
// 系统缓存监控
export function systemCache() {
return request({
url: '/admin/system/cache',
method: 'get',
});
}
+93
View File
@@ -0,0 +1,93 @@
import request from '/@/utils/request';
export function fetchPage(query?: Object) {
return request({
url: '/admin/tenant/page',
method: 'get',
params: query,
});
}
export function fetchList(query?: object) {
return request({
url: '/admin/tenant/list',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/admin/tenant',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/admin/tenant/details/' + id,
method: 'get',
});
}
export function getObjDetails(obj?: object) {
return request({
url: '/admin/tenant/details',
method: 'get',
params: obj,
});
}
export function delObj(ids?: Object) {
return request({
url: '/admin/tenant',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/admin/tenant',
method: 'put',
data: obj,
});
}
export function validateTenantName(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({ name: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('租户名称已经存在'));
} else {
callback();
}
});
}
export function validateTenantCode(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({ code: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('租户编码已经存在'));
} else {
callback();
}
});
}
export function treemenu() {
return request({
url: '/admin/tenant/tree/menu',
method: 'get',
});
}
+17
View File
@@ -0,0 +1,17 @@
import request from '/@/utils/request';
export function fetchList(query: object) {
return request({
url: '/admin/sys-token/page',
method: 'post',
data: query,
});
}
export function delObj(accessTokens: string[]) {
return request({
url: '/admin/sys-token/delete',
method: 'delete',
data: accessTokens,
});
}
+145
View File
@@ -0,0 +1,145 @@
import request from '/@/utils/request';
export const list = () => {
return request({
url: '/admin/user/list',
method: 'get',
});
};
export const pageList = (params?: Object) => {
return request({
url: '/admin/user/page',
method: 'get',
params,
});
};
export const addObj = (obj: Object) => {
return request({
url: '/admin/user',
method: 'post',
data: obj,
});
};
export const getObj = (id: String) => {
return request({
url: '/admin/user/details/' + id,
method: 'get',
});
};
export const delObj = (ids: Object) => {
return request({
url: '/admin/user',
method: 'delete',
data: ids,
});
};
export const putObj = (obj: Object) => {
return request({
url: '/admin/user',
method: 'put',
data: obj,
});
};
export function getDetails(obj: Object) {
return request({
url: '/admin/user/details',
method: 'get',
params: obj,
});
}
// 更改个人信息
export function editInfo(obj: Object) {
return request({
url: '/admin/user/personal/edit',
method: 'put',
data: obj,
});
}
// 更改个人密码
export function password(obj: Object) {
return request({
url: '/admin/user/personal/password',
method: 'put',
data: obj,
});
}
export function unbindingUser(type) {
return request({
url: '/admin/user/unbinding',
method: 'post',
params: {
type,
},
});
}
export function checkPassword(password: string) {
return request({
url: '/admin/user/check',
method: 'post',
params: {
password,
},
});
}
/**
* 注册用户
*/
export const registerUser = (userInfo: object) => {
return request({
url: '/admin/register/user',
method: 'post',
data: userInfo,
});
};
export const resetUserPassword = (userInfo: object) => {
return request({
url: '/admin/register/password',
method: 'post',
data: userInfo,
});
};
export function validateUsername(rule: any, value: any, callback: any, isEdit: boolean) {
const flag = new RegExp(/^([a-z\d]+?)$/).test(value);
if (!flag) {
callback(new Error('用户名支持小写英文、数字'));
}
if (isEdit) {
return callback();
}
getDetails({ username: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('用户名已经存在'));
} else {
callback();
}
});
}
export function validatePhone(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getDetails({ phone: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('手机号已经存在'));
} else {
callback();
}
});
}
+40
View File
@@ -0,0 +1,40 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/app/appArticle/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/app/appArticle',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: `/app/appArticle/details/${id}/1`,
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/app/appArticle',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/app/appArticle',
method: 'put',
data: obj,
});
}
+47
View File
@@ -0,0 +1,47 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/app/appArticleCategory/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/app/appArticleCategory',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/app/appArticleCategory/' + id,
method: 'get',
});
}
export function getObjList() {
return request({
url: '/app/appArticleCategory/list',
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/app/appArticleCategory',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/app/appArticleCategory',
method: 'put',
data: obj,
});
}
+113
View File
@@ -0,0 +1,113 @@
import request from '/@/utils/request';
export function fetchList(query: any) {
return request({
url: '/app/approle/page',
method: 'get',
params: query,
});
}
export function list() {
return request({
url: '/app/approle/list',
method: 'get',
});
}
export function addObj(obj: any) {
return request({
url: '/app/approle',
method: 'post',
data: obj,
});
}
export function getObj(id: string) {
return request({
url: '/app/approle/' + id,
method: 'get',
});
}
export function delObj(ids?: object) {
return request({
url: '/app/approle',
method: 'delete',
data: ids,
});
}
export function putObj(obj: any) {
return request({
url: '/app/approle',
method: 'put',
data: obj,
});
}
export function fetchRoleTree(roleId: string) {
return request({
url: '/app/appmenu/tree/' + roleId,
method: 'get',
});
}
export function permissionUpd(roleId: string, menuIds: string) {
return request({
url: '/app/approle/menu',
method: 'put',
data: {
roleId: roleId,
menuIds: menuIds,
},
});
}
export function getDetails(obj: Object) {
return request({
url: '/app/approle/details/' + obj,
method: 'get',
});
}
export function getDetailsByCode(obj: Object) {
return request({
url: '/app/approle/detailsByCode/' + obj,
method: 'get',
});
}
export function validateApproleName(rule: any, value: any, callback: any, isEdit: boolean) {
const flag = new RegExp(/^([a-z\u4e00-\u9fa5\d]+?)$/).test(value);
if (!flag) {
callback(new Error('用户名支持小写英文、数字、中文'));
}
if (isEdit) {
return callback();
}
getDetails(value).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('用户名已经存在'));
} else {
callback();
}
});
}
export function validateAppRoleCode(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getDetailsByCode(value).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('角色标识已经存在'));
} else {
callback();
}
});
}
+39
View File
@@ -0,0 +1,39 @@
import request from '/@/utils/request';
export function fetchList(query: any) {
return request({
url: '/app/approlemenu/page',
method: 'get',
params: query,
});
}
export function addObj(obj: any) {
return request({
url: '/app/approlemenu',
method: 'post',
data: obj,
});
}
export function getObj(id: string) {
return request({
url: '/app/approlemenu/' + id,
method: 'get',
});
}
export function delObj(id: string) {
return request({
url: '/app/approlemenu/' + id,
method: 'delete',
});
}
export function putObj(obj: string) {
return request({
url: '/app/approlemenu',
method: 'put',
data: obj,
});
}
+40
View File
@@ -0,0 +1,40 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/app/appsocial/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/app/appsocial',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/app/appsocial/' + id,
method: 'get',
});
}
export function delObj(ids?: object) {
return request({
url: '/app/appsocial',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/app/appsocial',
method: 'put',
data: obj,
});
}
+86
View File
@@ -0,0 +1,86 @@
import request from '/@/utils/request';
export function fetchList(query: any) {
return request({
url: '/app/appuser/page',
method: 'get',
params: query,
});
}
export function addObj(obj: any) {
return request({
url: '/app/appuser',
method: 'post',
data: obj,
});
}
export function getObj(id: string) {
return request({
url: '/app/appuser/details/' + id,
method: 'get',
});
}
export function delObj(ids?: object) {
return request({
url: '/app/appuser',
method: 'delete',
data: ids,
});
}
export function putObj(obj: any) {
return request({
url: '/app/appuser',
method: 'put',
data: obj,
});
}
export function getDetails(obj: Object) {
return request({
url: '/app/appuser/details',
method: 'get',
params: obj,
});
}
export function validateUsername(rule: any, value: any, callback: any, isEdit: boolean) {
const flag = new RegExp(/^([a-z\d]+?)$/).test(value);
if (!flag) {
callback(new Error('用户名支持小写英文、数字'));
}
if (isEdit) {
return callback();
}
getDetails({
username: value,
}).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('用户名已经存在'));
} else {
callback();
}
});
}
export function validatePhone(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getDetails({
phone: value,
}).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('手机号已经存在'));
} else {
callback();
}
});
}
+39
View File
@@ -0,0 +1,39 @@
import request from '/@/utils/request';
export function fetchList(query: any) {
return request({
url: '/app/appuserrole/page',
method: 'get',
params: query,
});
}
export function addObj(obj: any) {
return request({
url: '/app/appuserrole',
method: 'post',
data: obj,
});
}
export function getObj(id: string) {
return request({
url: '/app/appuserrole/' + id,
method: 'get',
});
}
export function delObj(id: string) {
return request({
url: '/app/appuserrole/' + id,
method: 'delete',
});
}
export function putObj(obj: any) {
return request({
url: '/app/appuserrole',
method: 'put',
data: obj,
});
}
+40
View File
@@ -0,0 +1,40 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/app/page/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/app/appPage',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/app/appPage/' + id,
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/app/page',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/app/appPage',
method: 'put',
data: obj,
});
}
+40
View File
@@ -0,0 +1,40 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/app/appTabbar/list',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/app/appTabbar',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/app/appTabbar/' + id,
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/app/appTabbar',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/app/appTabbar',
method: 'put',
data: obj,
});
}
+41
View File
@@ -0,0 +1,41 @@
import request from "/@/utils/request"
export function fetchList(query?: Object) {
return request({
url: '/canteen/canteenCategory/page',
method: 'get',
params: query
})
}
export function addObj(obj?: Object) {
return request({
url: '/canteen/canteenCategory',
method: 'post',
data: obj
})
}
export function getObj(id?: string) {
return request({
url: '/canteen/canteenCategory/' + id,
method: 'get'
})
}
export function delObjs(ids?: Object) {
return request({
url: '/canteen/canteenCategory',
method: 'delete',
data: ids
})
}
export function putObj(obj?: Object) {
return request({
url: '/canteen/canteenCategory',
method: 'put',
data: obj
})
}
+41
View File
@@ -0,0 +1,41 @@
import request from "/@/utils/request"
export function fetchList(query?: Object) {
return request({
url: '/canteen/canteenSpu/page',
method: 'get',
params: query
})
}
export function addObj(obj?: Object) {
return request({
url: '/canteen/canteenSpu',
method: 'post',
data: obj
})
}
export function getObj(id?: string) {
return request({
url: '/canteen/canteenSpu/' + id,
method: 'get'
})
}
export function delObjs(ids?: Object) {
return request({
url: '/canteen/canteenSpu',
method: 'delete',
data: ids
})
}
export function putObj(obj?: Object) {
return request({
url: '/canteen/canteenSpu',
method: 'put',
data: obj
})
}
+17
View File
@@ -0,0 +1,17 @@
import request from '/@/utils/request';
export function fetchList(query: any) {
return request({
url: '/job/sys-job-log/page',
method: 'get',
params: query,
});
}
export function delObjs(ids: object) {
return request({
url: '/job/sys-job-log',
method: 'delete',
data: ids,
});
}
+60
View File
@@ -0,0 +1,60 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/job/sys-job/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/job/sys-job',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/job/sys-job/' + id,
method: 'get',
});
}
export function delObj(id?: string) {
return request({
url: '/job/sys-job/' + id,
method: 'delete',
});
}
export function putObj(obj?: Object) {
return request({
url: '/job/sys-job',
method: 'put',
data: obj,
});
}
export function startJobRa(jobId: string) {
return request({
url: '/job/sys-job/start-job/' + jobId,
method: 'post',
});
}
export function runJobRa(jobId: string) {
return request({
url: '/job/sys-job/run-job/' + jobId,
method: 'post',
});
}
export function shutDownJobRa(jobId: string) {
return request({
url: '/job/sys-job/shutdown-job/' + jobId,
method: 'post',
});
}
+75
View File
@@ -0,0 +1,75 @@
import request from '/@/utils/request';
/**
* 创建流程
*
* @param data
*/
export function addFlow(data: any) {
return request({
url: '/task/process/create',
method: 'post',
data: data,
});
}
/**
* 获取流程详细信息
*
* @param data
*/
export function getFlowDetail(flowId: string) {
return request({
url: '/task/process/getDetail?flowId=' + flowId,
method: 'get',
});
}
/**
* 停用流程
*
* @param data
*/
export function disableFlow(flowId: string) {
return request({
url: '/task/process/update/' + flowId + '?type=stop',
method: 'put',
});
}
/**
* 删除流程
*
* @param data
*/
export function deleteFlow(flowId: string) {
return request({
url: '/task/process/update/' + flowId + '?type=delete',
method: 'put',
});
}
/**
* 启用流程
*
* @param data
*/
export function enableFlow(flowId: string) {
return request({
url: '/task/process/update/' + flowId + '?type=using',
method: 'put',
});
}
/**
* 发起流程
*
* @param data
*/
export function startFlow(obj: any) {
return request({
url: '/task/process-instance/startProcessInstance',
method: 'post',
data: obj,
});
}
+16
View File
@@ -0,0 +1,16 @@
/**
* 菜单视图对象类型
*/
export interface FlowVO {
stop?: boolean;
updated?: string;
/**
* 菜单ID
*/
formId?: string;
/**
* 菜单名称
*/
formName?: string;
}
+63
View File
@@ -0,0 +1,63 @@
import request from '/@/utils/request';
import { AxiosPromise } from 'axios';
import { Group, GroupVO } from './types';
/**
* 添加分组
*
* @param data
*/
export function addGroup(data: Group) {
return request({
url: '/task/processGroup/create',
method: 'post',
data: data,
});
}
/**
* 删除分组
*
* @param data
*/
export function delGroup(id: number) {
return request({
url: '/task/processGroup/delete/' + id,
method: 'delete',
});
}
/**
* 查询分组列表
*/
export function queryGroupList(): AxiosPromise<GroupVO[]> {
return request({
url: '/task/processGroup/list',
method: 'get',
});
}
/**
* 查询分组和流程列表
*/
export function queryGroupFlowList(params?: Object) {
return request({
url: '/task/combination/group/listGroupWithProcess',
method: 'get',
params: params,
});
}
/**
* 查询我可发起的组和流程
*/
export function queryMineStartGroupFlowList(hidden?: string): AxiosPromise<GroupVO[]> {
return request({
url: '/task/combination/group/listCurrentUserStartGroup',
method: 'get',
params: { hidden: hidden },
});
}
+27
View File
@@ -0,0 +1,27 @@
import { FlowVO } from '/@/api/flow/flow/types';
/**
* 菜单查询参数类型
*/
export interface Group {
groupName?: string;
}
/**
* 菜单视图对象类型
*/
export interface GroupVO {
/**
* 子菜单
*/
items?: FlowVO[];
/**
* 菜单ID
*/
id?: number;
/**
* 菜单名称
*/
name?: string;
}
+10
View File
@@ -0,0 +1,10 @@
import request from '/@/utils/request';
// 流程详情
export function detail(param: any) {
return request({
url: '/task/process-instance/detail',
method: 'get',
params: param,
});
}
+114
View File
@@ -0,0 +1,114 @@
import request from '/@/utils/request';
// 查询用户首页数据看板
export function queryTaskData() {
return request({
url: '/task/task/queryTaskData',
method: 'get',
});
}
// 查询抄送详细信息
export function queryMineCCDetail(param: any) {
return request({
url: '/task/processCopy/querySingleDetail',
method: 'get',
params: param,
});
}
/**
* 抄送给我的
*
* @param data
*/
export function queryMineCC(data: any) {
return request({
url: '/task/process-instance/queryMineCC',
method: 'post',
data: data,
});
}
/**
* 查询待办任务
*
* @param data
*/
export function queryMineTask(data: any) {
return request({
url: '/task/process-instance/queryMineTask',
method: 'post',
data: data,
});
}
// 结束流程
export function stopProcessInstance(param: any) {
return request({
url: '/task/task/stopProcessInstance',
method: 'post',
data: param,
});
}
/**
* 查询我发起的任务
*
* @param data
*/
export function queryMineStarted(data: any) {
return request({
url: '/task/process-instance/queryMineStarted',
method: 'post',
data: data,
});
}
// 查询当前用户已办任务
export function queryMineEndTask(param) {
return request({
url: '/task/process-instance/queryMineEndTask',
method: 'post',
data: param,
});
}
/**
* 查询任务详细信息
*
* @param data
*/
export function queryTask(taskId: string, view: boolean) {
return request({
url: '/task/task/queryTask?taskId=' + taskId + '&view=' + view,
method: 'get',
});
}
// 完成任务
export function completeTask(param: Object) {
return request({
url: '/task/task/completeTask',
method: 'post',
data: param,
});
}
// 完成任务
export function transferTask(param: Object) {
return request({
url: '/task/task/setAssignee',
method: 'post',
data: param,
});
}
// 格式化流程节点显示
export function formatStartNodeShow(param: Object) {
return request({
url: '/task/process-instance/formatStartNodeShow',
method: 'post',
data: param,
});
}
+55
View File
@@ -0,0 +1,55 @@
import request from "/@/utils/request"
export function fetchList(query?: Object) {
return request({
url: '/gen/create-table/page',
method: 'get',
params: query
})
}
export function addObj(obj?: Object) {
return request({
url: '/gen/create-table',
method: 'post',
data: obj
})
}
export function tempStore(obj: any) {
return request({
url: '/gen/create-table/temp-store',
method: 'post',
data: obj
})
}
export function getObj(id: any) {
return request({
url: '/gen/create-table/' + id,
method: 'get'
})
}
export function delObj(id: any) {
return request({
url: '/gen/create-table/' + id,
method: 'delete'
})
}
export function delObjs(ids?: Object) {
return request({
url: '/gen/create-table',
method: 'delete',
data: ids
})
}
export function putObj(obj?: Object) {
return request({
url: '/gen/create-table',
method: 'put',
data: obj
})
}
+56
View File
@@ -0,0 +1,56 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/gen/dsconf/page',
method: 'get',
params: query,
});
}
export function list(query?: Object) {
return request({
url: '/gen/dsconf/list',
method: 'get',
params: query,
});
}
export function listTable(query?: Object) {
return request({
url: '/gen/dsconf/table/list',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/gen/dsconf',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/gen/dsconf/' + id,
method: 'get',
});
}
export function delObj(ids?: Object) {
return request({
url: '/gen/dsconf',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/gen/dsconf',
method: 'put',
data: obj,
});
}
+71
View File
@@ -0,0 +1,71 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/gen/fieldtype/page',
method: 'get',
params: query,
});
}
export function list(query?: Object) {
return request({
url: '/gen/fieldtype/list',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/gen/fieldtype',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/gen/fieldtype/details/' + id,
method: 'get',
});
}
export function getObjDetails(obj?: object) {
return request({
url: '/gen/fieldtype/details',
method: 'get',
params: obj,
});
}
export function delObj(ids?: object) {
return request({
url: '/gen/fieldtype',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/gen/fieldtype',
method: 'put',
data: obj,
});
}
export function validateColumnType(rule: any, value: any, callback: any, isEdit: boolean) {
if (isEdit) {
return callback();
}
getObjDetails({ columnType: value }).then((response) => {
const result = response.data;
if (result !== null) {
callback(new Error('类型已经存在'));
} else {
callback();
}
});
}
+47
View File
@@ -0,0 +1,47 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/gen/group/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/gen/group',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/gen/group/' + id,
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/gen/group',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/gen/group',
method: 'put',
data: obj,
});
}
export function list() {
return request({
url: '/gen/group/list',
method: 'get',
});
}
+128
View File
@@ -0,0 +1,128 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/gen/table/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/gen/table',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/gen/table/' + id,
method: 'get',
});
}
export function delObj(id?: string) {
return request({
url: '/gen/table/' + id,
method: 'delete',
});
}
export function putObj(obj?: Object) {
return request({
url: '/gen/table',
method: 'put',
data: obj,
});
}
export const useSyncTableApi = (dsName: string, tableName: string) => {
return request.get('/gen/table/sync/' + dsName + '/' + tableName);
};
export const useTableApi = (dsName: string, tableName: string) => {
return request.get('/gen/table/' + dsName + '/' + tableName);
};
export const useListTableApi = (dsName: string) => {
return request.get('/gen/table/list/' + dsName);
};
export const useListTableColumnApi = (dsName: string, tableName: string) => {
return request.get('/gen/table/column/' + dsName + '/' + tableName);
};
export const useTableFieldSubmitApi = (dsName: string, tableName: string, fieldList: any) => {
return request.put('/gen/table/field/' + dsName + '/' + tableName, fieldList);
};
export const useGeneratorCodeApi = (tableIds: any) => {
return request({
url: '/gen/generator/code',
method: 'get',
params: { tableIds: tableIds },
});
};
export const useGeneratorVFormApi = (dsName: any, tableName: any) => {
return request({
url: '/gen/generator/vform',
method: 'get',
params: { dsName: dsName, tableName: tableName },
});
};
export const useGeneratorVFormSfcApi = (id: string) => {
return request({
url: '/gen/generator/vform/sfc',
method: 'get',
params: { formId: id },
});
};
export const useGeneratorPreviewApi = (tableId: any) => {
return request({
url: '/gen/generator/preview',
method: 'get',
params: { tableId: tableId },
});
};
export function fetchDictList() {
return request({
url: '/admin/dict/list',
method: 'get',
});
}
export function useFormConfSaveApi(obj?: Object) {
return request({
url: '/gen/form',
method: 'post',
data: obj,
});
}
export function fetchFormList(query?: Object) {
return request({
url: '/gen/form/page',
method: 'get',
params: query,
});
}
export function fetchFormById(id?: string) {
return request({
url: '/gen/form/' + id,
method: 'get',
});
}
export function delFormObj(id?: string) {
return request({
url: '/gen/form/' + id,
method: 'delete',
});
}
+61
View File
@@ -0,0 +1,61 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/gen/template/page',
method: 'get',
params: query,
});
}
export function list() {
return request({
url: '/gen/template/list',
method: 'get',
});
}
export function online() {
return request({
url: '/gen/template/online',
method: 'get',
});
}
export function checkVersion() {
return request({
url: '/gen/template/checkVersion',
method: 'get',
});
}
export function addObj(obj?: Object) {
return request({
url: '/gen/template',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/gen/template/' + id,
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/gen/template',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/gen/template',
method: 'put',
data: obj,
});
}
+171
View File
@@ -0,0 +1,171 @@
import request from '/@/utils/request';
import {Session} from '/@/utils/storage';
import {validateNull} from '/@/utils/validate';
import {useUserInfo} from '/@/stores/userInfo';
import other from '/@/utils/other';
/**
* https://www.ietf.org/rfc/rfc6749.txt
* OAuth 协议 4.3.1 要求格式为 form 而不是 JSON 注意!
*/
const FORM_CONTENT_TYPE = 'application/x-www-form-urlencoded';
// 登录方式
export enum LoginTypeEnum {
PASSWORD,
MOBILE,
REGISTER,
EXPIRE
}
// 登录错误信息
export enum LoginErrorEnum {
CREDENTIALS_EXPIRED = 'credentials_expired'// 密码过期
}
/**
* 登录
* @param data
*/
export const login = (data: any) => {
const basicAuth = 'Basic ' + window.btoa(import.meta.env.VITE_OAUTH2_PASSWORD_CLIENT);
Session.set('basicAuth', basicAuth);
// 密码加密
const encPassword = other.encryption(data.password, import.meta.env.VITE_PWD_ENC_KEY);
const { username, randomStr, code, grant_type, scope } = data;
return request({
url: '/auth/oauth2/token',
method: 'post',
params: { username, randomStr, code, grant_type, scope },
data: { password: encPassword },
headers: {
skipToken: true,
Authorization: basicAuth,
'Content-Type': FORM_CONTENT_TYPE,
},
});
};
export const loginByMobile = (mobile: any, code: any) => {
const grant_type = 'mobile';
const scope = 'server';
const basicAuth = 'Basic ' + window.btoa(import.meta.env.VITE_OAUTH2_MOBILE_CLIENT);
Session.set('basicAuth', basicAuth);
return request({
url: '/auth/oauth2/token',
headers: {
skipToken: true,
Authorization: basicAuth,
'Content-Type': FORM_CONTENT_TYPE,
},
method: 'post',
params: { mobile: 'SMS@' + mobile, code: code, grant_type, scope },
});
};
export const loginBySocial = (state: string, code: string) => {
const grant_type = 'mobile';
const scope = 'server';
const basicAuth = 'Basic ' + window.btoa(import.meta.env.VITE_OAUTH2_SOCIAL_CLIENT);
Session.set('basicAuth', basicAuth);
return request({
url: '/auth/oauth2/token',
headers: {
skipToken: true,
Authorization: basicAuth,
'Content-Type': FORM_CONTENT_TYPE,
},
method: 'post',
params: { mobile: state + '@' + code, code: code, grant_type, scope },
});
};
export const sendMobileCode = (mobile: string) => {
return request({
url: '/admin/sysMessage/send/smsCode',
method: 'get',
params: { mobile }
});
};
export const refreshTokenApi = (refresh_token: string) => {
const grant_type = 'refresh_token';
const scope = 'server';
// 获取当前选中的 basic 认证信息
const basicAuth = Session.get('basicAuth');
return request({
url: '/auth/oauth2/token',
headers: {
skipToken: true,
Authorization: basicAuth,
'Content-Type': FORM_CONTENT_TYPE,
},
method: 'post',
params: { refresh_token, grant_type, scope },
});
};
/**
* 校验令牌,若有效期小于半小时自动续期
* @param refreshLock
*/
export const checkToken = (refreshTime: number, refreshLock: boolean) => {
const basicAuth = Session.get('basicAuth');
request({
url: '/auth/token/check_token',
headers: {
skipToken: true,
Authorization: basicAuth,
'Content-Type': FORM_CONTENT_TYPE,
},
method: 'get',
params: { token: Session.getToken() },
})
.then((response) => {
if (validateNull(response) || response.code === 1) {
clearInterval(refreshTime);
return;
}
const expire = Date.parse(response.data.expiresAt);
if (expire) {
const expiredPeriod = expire - new Date().getTime();
//小于半小时自动续约
if (expiredPeriod <= 30 * 60 * 1000) {
if (!refreshLock) {
refreshLock = true;
useUserInfo()
.refreshToken()
.catch(() => {
clearInterval(refreshTime);
});
refreshLock = false;
}
}
}
})
.catch(() => {
// 发生异常关闭定时器
clearInterval(refreshTime);
});
};
/**
* 获取用户信息
*/
export const getUserInfo = () => {
return request({
url: '/admin/user/info',
method: 'get',
});
};
export const logout = () => {
return request({
url: '/auth/token/logout',
method: 'delete',
});
};
+79
View File
@@ -0,0 +1,79 @@
/*
* Copyright (c) 2018-2025, pjcloud All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: pjcloud
*/
import request from '/@/utils/request';
export function fetchList(query) {
return request({
url: '/mp/wx-account-fans/page',
method: 'get',
params: query,
});
}
export function addObj(obj) {
return request({
url: '/mp/wx-account-fans',
method: 'post',
data: obj,
});
}
export function sync(appId) {
return request({
url: '/mp/wx-account-fans/sync/' + appId,
method: 'post',
});
}
export function getObj(id) {
return request({
url: '/mp/wx-account-fans/' + id,
method: 'get',
});
}
export function delObjs(id) {
return request({
url: '/mp/wx-account-fans/' + id,
method: 'delete',
});
}
export function putObj(obj) {
return request({
url: '/mp/wx-account-fans',
method: 'put',
data: obj,
});
}
export function black(obj, appid) {
return request({
url: '/mp/wx-account-fans/black/' + appid,
method: 'post',
data: obj,
});
}
export function unblack(obj, appid) {
return request({
url: '/mp/wx-account-fans/unblack/' + appid,
method: 'post',
data: obj,
});
}
+65
View File
@@ -0,0 +1,65 @@
/*
* Copyright (c) 2018-2025, pjcloud All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: pjcloud
*/
import request from '/@/utils/request';
export function getPage(query) {
return request({
url: '/mp/wx-account-tag/page',
method: 'get',
params: query,
});
}
export function addObj(obj) {
return request({
url: '/mp/wx-account-tag',
method: 'post',
data: obj,
});
}
export function delObjs(obj) {
return request({
url: '/mp/wx-account-tag',
method: 'delete',
data: obj,
});
}
export function putObj(obj) {
return request({
url: '/mp/wx-account-tag',
method: 'put',
data: obj,
});
}
export function sync(appId) {
return request({
url: '/mp/wx-account-tag/sync/' + appId,
method: 'post',
});
}
export function list(appId) {
return request({
url: '/mp/wx-account-tag/list',
method: 'get',
params: { wxAccountAppid: appId },
});
}
+86
View File
@@ -0,0 +1,86 @@
/*
* Copyright (c) 2018-2025, pjcloud All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: pjcloud
*/
import request from '/@/utils/request';
export function fetchList(query) {
return request({
url: '/mp/wx-account/page',
method: 'get',
params: query,
});
}
export function addObj(obj) {
return request({
url: '/mp/wx-account',
method: 'post',
data: obj,
});
}
export function getObj(id) {
return request({
url: '/mp/wx-account/' + id,
method: 'get',
});
}
export function generateQr(appid) {
return request({
url: '/mp/wx-account/qr/' + appid,
method: 'post',
});
}
export function clearQuota(appid) {
return request({
url: '/mp/wx-account/clear-quota/' + appid,
method: 'post',
});
}
export function delObjs(id) {
return request({
url: '/mp/wx-account/' + id,
method: 'delete',
});
}
export function putObj(obj) {
return request({
url: '/mp/wx-account',
method: 'put',
data: obj,
});
}
export function fetchAccountList(obj?: object) {
return request({
url: '/mp/wx-account/list',
method: 'get',
params: obj,
});
}
export function fetchStatistics(q) {
return request({
url: '/mp/wx-account/statistics',
method: 'get',
params: q,
});
}
+39
View File
@@ -0,0 +1,39 @@
import request from '/@/utils/request';
export function getPage(query) {
return request({
url: '/mp/wx-auto-reply/page',
method: 'get',
params: query,
});
}
export function addObj(obj) {
return request({
url: '/mp/wx-auto-reply',
method: 'post',
data: obj,
});
}
export function getObj(id) {
return request({
url: '/mp/wx-auto-reply/' + id,
method: 'get',
});
}
export function delObj(id) {
return request({
url: '/mp/wx-auto-reply/' + id,
method: 'delete',
});
}
export function putObj(obj) {
return request({
url: '/mp/wx-auto-reply',
method: 'put',
data: obj,
});
}
+79
View File
@@ -0,0 +1,79 @@
/*
* Copyright (c) 2018-2025, pjcloud All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: pjcloud
*/
import request from '/@/utils/request';
export function fetchList(query) {
return request({
url: '/mp/wx-fans-msg/page',
method: 'get',
params: query,
});
}
export function addObj(obj) {
return request({
url: '/mp/wx-fans-msg',
method: 'post',
data: obj,
});
}
export function getObj(id) {
return request({
url: '/mp/wxfansmsg/' + id,
method: 'get',
});
}
export function delObjs(id) {
return request({
url: '/mp/wxfansmsg/' + id,
method: 'delete',
});
}
export function putObj(obj) {
return request({
url: '/mp/wxfansmsg',
method: 'put',
data: obj,
});
}
export function fetchResList(query) {
return request({
url: '/mp/wx-fans-msg/page',
method: 'get',
params: query,
});
}
export function addResObj(obj) {
return request({
url: '/mp/wx-fans-msg',
method: 'post',
data: obj,
});
}
export function delResObj(id) {
return request({
url: '/mp/wx-fans-msg/' + id,
method: 'delete',
});
}
+74
View File
@@ -0,0 +1,74 @@
import request from '/@/utils/request';
export function getPage(query) {
return request({
url: '/mp/wx-material/page',
method: 'get',
params: query,
});
}
export function addObj(obj) {
return request({
url: '/mp/wx-material/materialNews',
method: 'post',
data: obj,
});
}
export function materialNewsUpdate(obj) {
return request({
url: '/mp/wx-material/materialNews',
method: 'put',
data: obj,
});
}
export function getObj(id) {
return request({
url: '/mp/wx-material/' + id,
method: 'get',
});
}
export function delObj(query) {
return request({
url: '/mp/wx-material',
method: 'delete',
params: query,
});
}
export function putObj(obj) {
return request({
url: '/mp/wx-material',
method: 'put',
data: obj,
});
}
export function getMaterialOther(query) {
return request({
url: '/mp/wx-material/materialOther',
method: 'get',
params: query,
responseType: 'blob',
});
}
export function getMaterialVideo(query) {
return request({
url: '/mp/wx-material/materialVideo',
method: 'get',
params: query,
});
}
export function getTempMaterialOther(query) {
return request({
url: '/mp/wx-material/tempMaterialOther',
method: 'get',
params: query,
responseType: 'blob',
});
}
+40
View File
@@ -0,0 +1,40 @@
/*
* Copyright (c) 2018-2025, pjcloud All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: pjcloud
*/
import request from '/@/utils/request';
export function getObj(id) {
return request({
url: '/mp/wx-menu/' + id,
method: 'get',
});
}
export function saveObj(appId, data) {
return request({
url: '/mp/wx-menu/' + appId,
method: 'post',
data: data,
});
}
export function publishObj(id) {
return request({
url: '/mp/wx-menu/' + id,
method: 'put',
});
}
+9
View File
@@ -0,0 +1,9 @@
import request from '/@/utils/request';
export function useBuyApi(amount?: any) {
return request({
url: '/pay/goods/merge/buy',
method: 'get',
params: { amount: amount },
});
}
+40
View File
@@ -0,0 +1,40 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/pay/channel/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/pay/channel',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/pay/channel/' + id,
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/pay/channel',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/pay/channel',
method: 'put',
data: obj,
});
}
+40
View File
@@ -0,0 +1,40 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/pay/goods/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/pay/goods',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/pay/goods/' + id,
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/pay/goods',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/pay/goods',
method: 'put',
data: obj,
});
}
+40
View File
@@ -0,0 +1,40 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/pay/notify/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/pay/notify',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/pay/notify/' + id,
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/pay/notify',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/pay/notify',
method: 'put',
data: obj,
});
}
+40
View File
@@ -0,0 +1,40 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/pay/refund/page',
method: 'get',
params: query,
});
}
export function useRefundApi(obj?: Object) {
return request({
url: '/pay/refund',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/pay/refund/' + id,
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/pay/refund',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/pay/refund',
method: 'put',
data: obj,
});
}
+40
View File
@@ -0,0 +1,40 @@
import request from '/@/utils/request';
export function fetchList(query?: Object) {
return request({
url: '/pay/trade/page',
method: 'get',
params: query,
});
}
export function addObj(obj?: Object) {
return request({
url: '/pay/trade',
method: 'post',
data: obj,
});
}
export function getObj(id?: string) {
return request({
url: '/pay/trade/' + id,
method: 'get',
});
}
export function delObjs(ids?: Object) {
return request({
url: '/pay/trade',
method: 'delete',
data: ids,
});
}
export function putObj(obj?: Object) {
return request({
url: '/pay/trade',
method: 'put',
data: obj,
});
}
+41
View File
@@ -0,0 +1,41 @@
import request from "/@/utils/request"
export function fetchList(query?: Object) {
return request({
url: '/thirdparty/thirdPartyDept/page',
method: 'get',
params: query
})
}
export function addObj(obj?: Object) {
return request({
url: '/thirdparty/thirdPartyDept',
method: 'post',
data: obj
})
}
export function getObj(id?: string) {
return request({
url: '/thirdparty/thirdPartyDept/' + id,
method: 'get'
})
}
export function delObjs(ids?: Object) {
return request({
url: '/thirdparty/thirdPartyDept',
method: 'delete',
data: ids
})
}
export function putObj(obj?: Object) {
return request({
url: '/thirdparty/thirdPartyDept',
method: 'put',
data: obj
})
}
+41
View File
@@ -0,0 +1,41 @@
import request from "/@/utils/request"
export function fetchList(query?: Object) {
return request({
url: '/thirdparty/thirdPartyUser/page',
method: 'get',
params: query
})
}
export function addObj(obj?: Object) {
return request({
url: '/thirdparty/thirdPartyUser',
method: 'post',
data: obj
})
}
export function getObj(id?: string) {
return request({
url: '/thirdparty/thirdPartyUser/' + id,
method: 'get'
})
}
export function delObjs(ids?: Object) {
return request({
url: '/thirdparty/thirdPartyUser',
method: 'delete',
data: ids
})
}
export function putObj(obj?: Object) {
return request({
url: '/thirdparty/thirdPartyUser',
method: 'put',
data: obj
})
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1680436859217" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12985" xmlns:xlink="http://www.w3.org/1999/xlink" width="45" height="45"><path d="M784.66 462.13V336.37l-168.79 95.52v160.12l168.79 96.49V562.74H927v-100.6H784.66zM615.87 851.55h109.47l1.49-122.18-110.96-65.05v187.23z m116.35-558.98L734.61 97H479.13l80.97 13.55 55.54 9.21 0.23 238.82 116.35-66.01zM106.16 851.55L548.53 927V172.46L97 97l9.16 754.55z" fill="#8a8a8a" p-id="12986"></path></svg>

After

Width:  |  Height:  |  Size: 642 B

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1680436627707" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4215" xmlns:xlink="http://www.w3.org/1999/xlink" width="45" height="45"><path d="M512 1024C230.4 1024 0 793.6 0 512S230.4 0 512 0s512 230.4 512 512-230.4 512-512 512z m259.2-569.6H480c-12.8 0-25.6 12.8-25.6 25.6v64c0 12.8 12.8 25.6 25.6 25.6h176c12.8 0 25.6 12.8 25.6 25.6v12.8c0 41.6-35.2 76.8-76.8 76.8h-240c-12.8 0-25.6-12.8-25.6-25.6V416c0-41.6 35.2-76.8 76.8-76.8h355.2c12.8 0 25.6-12.8 25.6-25.6v-64c0-12.8-12.8-25.6-25.6-25.6H416c-105.6 0-188.8 86.4-188.8 188.8V768c0 12.8 12.8 25.6 25.6 25.6h374.4c92.8 0 169.6-76.8 169.6-169.6v-144c0-12.8-12.8-25.6-25.6-25.6z" fill="#888888" p-id="4216"></path></svg>

After

Width:  |  Height:  |  Size: 860 B

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1680436662087" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5326" xmlns:xlink="http://www.w3.org/1999/xlink" width="45" height="45"><path d="M518.4 691.2c-99.2 0-182.4-64-185.6-185.6-6.4-112 92.8-188.8 188.8-192 108.8-3.2 176 121.6 176 121.6l281.6-102.4S864 32 547.2 32C252.8 35.2 48 236.8 48 512c0 243.2 192 489.6 489.6 476.8C867.2 976 979.2 688 979.2 688L688 592c3.2 3.2-57.6 99.2-169.6 99.2" fill="#8a8a8a" p-id="5327"></path></svg>

After

Width:  |  Height:  |  Size: 625 B

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1680436602191" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4038" xmlns:xlink="http://www.w3.org/1999/xlink" width="45" height="45"><path d="M824.8 613.2c-16-51.4-34.4-94.6-62.7-165.3C766.5 262.2 689.3 112 511.5 112 331.7 112 256.2 265.2 261 447.9c-28.4 70.8-46.7 113.7-62.7 165.3-34 109.5-23 154.8-14.6 155.8 18 2.2 70.1-82.4 70.1-82.4 0 49 25.2 112.9 79.8 159-26.4 8.1-85.7 29.9-71.6 53.8 11.4 19.3 196.2 12.3 249.5 6.3 53.3 6 238.1 13 249.5-6.3 14.1-23.8-45.3-45.7-71.6-53.8 54.6-46.2 79.8-110.1 79.8-159 0 0 52.1 84.6 70.1 82.4 8.5-1.1 19.5-46.4-14.5-155.8z" p-id="4039"></path></svg>

After

Width:  |  Height:  |  Size: 778 B

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1680436062848" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2406" width="24" height="24" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M188.8704 576.192a187.712 187.712 0 0 1 188.928 189.12 189.184 189.184 0 0 1-188.928 190.912A189.184 189.184 0 0 1 0.0064 765.312a187.712 187.712 0 0 1 188.864-189.12z m359.68 250.176v81.472h-61.44a40.128 40.128 0 0 1-39.296-34.688l-0.448-6.016c0-20.48 14.72-37.376 33.92-40.32l5.888-0.384 61.44-0.064z m-359.68-169.664c-60.288 0-109.376 46.848-109.376 108.608 0 61.76 49.088 110.144 109.44 110.144 60.288 0 109.312-48.384 109.312-110.08 0-61.824-49.024-108.672-109.376-108.672z m359.68-59.392v81.408h-61.44a40.128 40.128 0 0 1-39.296-34.624L447.3664 638.08c0-20.48 14.72-37.376 33.92-40.32l5.888-0.448h61.44zM188.8704 64C293.1264 64 377.7984 149.568 377.7984 256.256A188.032 188.032 0 0 1 188.8064 445.76 188.032 188.032 0 0 1 0.0064 256.256C0.0064 149.568 84.7424 64 188.8704 64zM984.3264 342.784a40.32 40.32 0 0 1 39.744 40.704c0 20.48-14.72 37.376-33.92 40.32l-5.824 0.448H487.1744a40.32 40.32 0 0 1-39.808-40.768c0-20.416 14.72-37.376 33.92-40.256l5.888-0.448h497.088zM188.8064 147.584c-60.288 0-109.376 46.912-109.376 108.608 0 61.76 49.088 108.16 109.44 108.16 60.288 0 109.312-46.4 109.312-108.16 0-61.696-49.024-108.608-109.376-108.608z m795.392-33.92a40.32 40.32 0 0 1 39.744 40.768c0 20.416-14.72 37.312-33.92 40.256l-5.824 0.448H487.1744a40.32 40.32 0 0 1-39.808-40.704c0-20.48 14.72-37.376 33.92-40.32l5.888-0.448h497.088zM816.2624 918.528V847.36c0-10.56-16.192-15.872-30.08-15.872-13.824 0-33.152 3.84-33.152 15.872v71.168c0 9.088-6.144 15.104-15.36 15.104h-97.152c-23.104 0-40.064-16.64-40.064-37.824V752c0-9.088 12.8-15.104 22.08-15.104 9.216 0 21.76 6.016 21.76 15.104v133.12c0 4.48 3.072 7.552 9.216 7.552h59.392v-45.312c0-35.456 43.968-56.32 73.28-56.32 29.312 0 72 20.864 72 56.32v45.312h63.168c4.608 0 7.68 0 7.68-9.088V752c0-9.088 12.16-15.104 21.44-15.104 9.28 0 21.44 6.016 21.44 15.104v143.808c-1.536 22.656-16.96 37.824-40.064 37.824h-100.16c-9.28 0-15.424-6.016-15.424-15.104zM582.4064 712.256c-6.08-6.528-9.216-27.904-3.136-32.768l178.88-157.696c16.64-13.056 40.96-13.056 56.064 0l178.88 156.096c6.08 4.864 6.08 27.84 0 34.368-6.016 6.464-27.2 6.464-33.28 0l-163.776-142.72a18.24 18.24 0 0 0-18.176 0L615.0464 716.416c-3.008 3.264-6.016 3.264-9.088 3.264-4.48 0-20.544-2.56-23.616-7.424z" fill="#707070" p-id="2407"></path></svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1680436429435" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2757" width="45" height="45" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M405.333333 170.666667C228.693333 170.666667 85.333333 285.44 85.333333 426.666667c0 80.64 46.08 151.893333 118.613334 198.826666L170.666667 725.333333l106.666666-64c37.973333 13.226667 79.786667 21.333333 124.16 21.333334A222.72 222.72 0 0 1 384 597.333333c0-141.226667 133.546667-256 298.666667-256 8.106667 0 16.213333 0 23.893333 1.28C663.04 242.773333 545.28 170.666667 405.333333 170.666667m-128 106.666666c23.466667 0 42.666667 19.2 42.666667 42.666667s-19.2 42.666667-42.666667 42.666667-42.666667-19.2-42.666666-42.666667 19.2-42.666667 42.666666-42.666667m213.333334 0c23.466667 0 42.666667 19.2 42.666666 42.666667s-19.2 42.666667-42.666666 42.666667-42.666667-19.2-42.666667-42.666667 19.2-42.666667 42.666667-42.666667M682.666667 384c-141.226667 0-256 95.573333-256 213.333333s114.773333 213.333333 256 213.333334c28.586667 0 55.893333-3.413333 81.493333-10.666667L853.333333 853.333333l-26.453333-79.786666C893.866667 734.72 938.666667 670.293333 938.666667 597.333333c0-117.76-114.773333-213.333333-256-213.333333m-85.333334 106.666667c23.466667 0 42.666667 19.2 42.666667 42.666666s-19.2 42.666667-42.666667 42.666667-42.666667-19.2-42.666666-42.666667 19.2-42.666667 42.666666-42.666666m170.666667 0c23.466667 0 42.666667 19.2 42.666667 42.666666s-19.2 42.666667-42.666667 42.666667-42.666667-19.2-42.666667-42.666667 19.2-42.666667 42.666667-42.666666z" fill="#8a8a8a" p-id="2758"></path></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1677809803390" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2360" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M891.2 326.4l-121.6 69.6v-144c0-33.6-27.2-60.8-60.8-60.8h-560c-33.6 0-60.8 27.2-60.8 60.8v545.6c0 33.6 27.2 60.8 60.8 60.8h560.8c33.6 0 60.8-27.2 60.8-60.8v-144l121.6 69.6c20 12 45.6-3.2 45.6-26.4v-344c-0.8-23.2-25.6-37.6-46.4-26.4z m-188.8 464H156V260h545.6v530.4z m166.4-157.6L770.4 576V475.2l98.4-56.8v214.4z" p-id="2361"></path><path d="M426.4 600c-0.8 0.8-1.6 1.6-1.6 2.4-5.6 8-10.4 16.8-16.8 24.8-7.2 10.4-16 20.8-25.6 29.6-8 7.2-16.8 13.6-27.2 17.6-6.4 2.4-13.6 3.2-20.8 2.4-6.4-0.8-12-4-16.8-8.8-6.4-5.6-11.2-12.8-15.2-20.8-3.2-6.4-7.2-13.6-9.6-20-3.2-8-7.2-16.8-9.6-25.6-3.2-10.4-6.4-20-9.6-30.4-3.2-10.4-5.6-21.6-8-32-2.4-8.8-4-17.6-5.6-26.4-1.6-8-2.4-16-4-24-0.8-6.4-1.6-13.6-2.4-20 0-2.4 0-4-0.8-6.4-0.8-12-0.8-24 0-35.2 0.8-9.6 2.4-18.4 6.4-27.2s9.6-16 18.4-20.8c7.2-4 14.4-4.8 21.6-3.2 8.8 1.6 16.8 5.6 24.8 11.2 8.8 6.4 16 13.6 23.2 20.8 8 8.8 15.2 17.6 22.4 27.2 8 10.4 15.2 21.6 22.4 32.8 9.6 15.2 18.4 30.4 28 45.6 2.4 3.2 4 6.4 5.6 10.4 0 0.8 0.8 0.8 0.8 1.6 2.4-4 4.8-7.2 7.2-11.2 10.4-17.6 21.6-35.2 33.6-52.8 10.4-15.2 20.8-30.4 32.8-44.8 8-9.6 16-18.4 25.6-25.6 7.2-5.6 14.4-10.4 23.2-12.8 12-4 23.2-2.4 33.6 6.4 5.6 4.8 9.6 10.4 12 16.8 3.2 8 4.8 16 6.4 24 1.6 12 0.8 23.2 0 35.2-0.8 7.2-0.8 13.6-2.4 20.8-1.6 12-3.2 23.2-5.6 35.2-1.6 8-3.2 16.8-5.6 24.8l-7.2 28.8c-2.4 8.8-5.6 18.4-8.8 27.2-4 12.8-9.6 25.6-15.2 37.6-4 8-8 16-12.8 23.2-4 5.6-8.8 10.4-14.4 14.4-6.4 4.8-14.4 5.6-22.4 4.8-12-1.6-21.6-7.2-31.2-14.4-11.2-8.8-20.8-20-29.6-32-6.4-8.8-12.8-18.4-18.4-28 0.8-1.6 0-2.4-0.8-3.2z m139.2-156.8c-0.8-5.6-0.8-11.2-1.6-16.8l-2.4-9.6c-0.8-3.2-3.2-4-6.4-2.4-1.6 0.8-2.4 1.6-4 2.4-7.2 4.8-12.8 11.2-18.4 16.8-12.8 13.6-23.2 28.8-33.6 44-9.6 14.4-18.4 28.8-27.2 43.2-7.2 12-14.4 24-21.6 35.2-3.2 4.8-3.2 4.8 0 10.4 4.8 9.6 10.4 19.2 16.8 28.8 8 12.8 16.8 24.8 28 35.2 2.4 2.4 5.6 4.8 8.8 7.2 4 2.4 8 1.6 10.4-2.4 0-0.8 0.8-0.8 0.8-1.6 6.4-9.6 10.4-20.8 15.2-31.2l9.6-26.4c2.4-6.4 4-12.8 5.6-19.2 3.2-12.8 6.4-24.8 9.6-37.6 2.4-9.6 4-20 5.6-29.6 1.6-8 2.4-15.2 3.2-23.2 0.8-8 1.6-16 1.6-23.2z m-160 117.6c-0.8-0.8-0.8-2.4-1.6-3.2-4-6.4-7.2-12.8-11.2-19.2-8.8-14.4-17.6-29.6-26.4-44-8.8-14.4-18.4-28.8-28.8-42.4-8-11.2-16.8-21.6-27.2-31.2-3.2-3.2-6.4-5.6-9.6-8-3.2-2.4-6.4-1.6-8 2.4-0.8 1.6-1.6 3.2-1.6 4.8-0.8 4.8-1.6 10.4-1.6 15.2-0.8 10.4 0.8 21.6 1.6 32 0.8 8.8 2.4 17.6 4 27.2 1.6 10.4 4 20.8 6.4 31.2 2.4 9.6 4.8 20 7.2 29.6 3.2 10.4 6.4 20.8 9.6 32 4 12 8 23.2 13.6 34.4 2.4 4 4.8 8.8 7.2 12.8 1.6 3.2 5.6 4.8 9.6 2.4 3.2-2.4 7.2-4.8 10.4-8 10.4-9.6 18.4-20 25.6-32 5.6-8 10.4-16 15.2-24.8 1.6-2.4 3.2-6.4 5.6-11.2z" p-id="2362"></path></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1677809829053" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3364" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M873.066667 533.333333h-39.466667c-4.202667 0-8.256 0.576-12.266667 1.237334V433.066667C821.333333 264.853333 682.56 128 512 128S202.666667 264.853333 202.666667 433.066667v101.504A75.434667 75.434667 0 0 0 190.378667 533.333333H150.954667A76.373333 76.373333 0 0 0 74.666667 609.6v210.133333A76.373333 76.373333 0 0 0 150.954667 896h39.445333a76.373333 76.373333 0 0 0 76.288-76.266667V433.066667C266.666667 300.138667 376.725333 192 512 192s245.333333 108.138667 245.333333 241.066667v386.666666A76.352 76.352 0 0 0 833.6 896h39.466667a76.352 76.352 0 0 0 76.266666-76.266667v-210.133333A76.373333 76.373333 0 0 0 873.066667 533.333333zM202.666667 714.666667v105.066666a12.288 12.288 0 0 1-12.288 12.266667H150.954667a12.288 12.288 0 0 1-12.288-12.266667v-210.133333c0-6.762667 5.504-12.266667 12.288-12.266667h39.445333c6.762667 0 12.266667 5.504 12.266667 12.266667V714.666667z m682.666666 105.066666a12.288 12.288 0 0 1-12.266666 12.266667h-39.466667a12.288 12.288 0 0 1-12.266667-12.266667v-210.133333c0-6.762667 5.504-12.266667 12.266667-12.266667h39.466667c6.762667 0 12.266667 5.504 12.266666 12.266667v210.133333z" fill="#232323" p-id="3365"></path><path d="M682.666667 578.666667h-85.333334c-12.394667 0-23.658667 7.168-28.949333 18.368l-9.472 20.138666-52.501333-125.546666c-5.056-12.074667-17.642667-19.477333-30.101334-19.648a32.021333 32.021333 0 0 0-29.376 20.736l-32.362666 85.930666H341.333333a32 32 0 1 0 0 64h95.381334a32 32 0 0 0 29.952-20.736l11.776-31.274666 49.216 117.696c4.885333 11.669333 16.170667 19.349333 28.821333 19.648h0.704a32 32 0 0 0 28.949333-18.368l31.530667-66.965334H682.666667a32 32 0 0 0 0-63.978666z" fill="#232323" p-id="3366"></path></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

+19
View File
@@ -0,0 +1,19 @@
<svg width="100" height="969"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" shape-rendering="auto" preserveAspectRatio="none" class="layout-footer-waves">
<g id="Layer_1">
<title>Layer 1</title>
<g transform="rotate(2.18686 -4.09974 506.2)" stroke="null" id="svg_5">
<defs stroke="null" transform="translate(0.00121616 0.0635973) translate(-0.844727 0.185777) translate(-4.69751 0.0674522) translate(4.80739 0.470252) translate(4.47211 0.0666505) translate(-47.1425 4.28569) translate(7.74305 4.90188) translate(-28.5712 -22.857) translate(-0.219291 4.06319) translate(-1.32311 -4.516) translate(22.5706 18.2109) translate(-49.4342 -5.96675) translate(-0.909089 0) translate(0.909089 0) translate(-0.909089 0) translate(-0.909089 0) translate(-0.909089 0) translate(-3.33335 0) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(0 -3.33335) translate(-7.34665 -0.396492) translate(-1.66666 0) translate(-1.66666 0) translate(-0.12551 2.32567) translate(-0.707827 0.218105) translate(-1.66666 0) translate(1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-2.15731 0.0264734) translate(1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(0 -1.66666) translate(0 -1.66666) translate(1.66666 0) translate(0 -1.66666) translate(1.66666 0) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(1.66666 0) translate(1.66666 0) translate(1.66666 0) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(1.66666 0) translate(1.66666 0) translate(1.66666 0) translate(1.66666 0) translate(1.66666 0) translate(1.66666 0) translate(1.66666 0) translate(1.66666 0) translate(1.66666 0) translate(1.66666 0) translate(1.66666 0) translate(1.66666 0) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(0 -1.66666) translate(0 -1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(-1.66666 0) translate(0 1.66666) translate(-1.66666 0) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(0 -1.66666) translate(0 -1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(0 -1.66666) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.66666 0) translate(-1.56355 1.02885) translate(-7.50004 -25.0001) translate(-3.19245 0.846904) translate(5.00003 -97.5005) translate(-9.62431 -0.829817) translate(27.5002 -220.001) translate(-6.96615 1.62281) translate(1.10472 -2.23004) translate(-9.63847 0.899196) translate(7.04019 0.0560654) translate(-11.25 -16.25) translate(2.11523 2.02597) translate(-27.1193 -20.3394) translate(-10.8798 -0.397069) translate(-44.0688 -110.172) translate(-1.69495 5.08486) translate(-8.5Line truncated
<path stroke="null" id="svg_3" d="m-160,44c30,0 58,-18 88,-18s58,18 88,18s58,-18 88,-18s58,18 88,18l0,44l-352,0l0,-44z"/>
</defs>
<g stroke="null" id="svg_6">
<title stroke="null">Layer 1</title>
<g stroke="null" transform="matrix(-0.0217456 0.782606 -0.765199 -0.0222404 584.591 1129.22)" class="layout-footer-waves-g" id="svg_1">
<use stroke="null" href="#svg_3" x="-328.61098" y="405.36815" fill="rgba(211, 239, 255, 1)" id="svg_4" transform="matrix(3.69628 0 0 3.42743 381.903 -787.25)"/>
<use stroke="null" href="#svg_3" x="-333.61098" y="401.76815" fill="rgba(211, 239, 255, 0.5)" id="svg_2" transform="matrix(3.69628 0 0 3.42743 381.903 -787.25)"/>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Loaded 100 of 677 files, more files were not shown because too many files have changed in this diff. Show more