This commit is contained in:
ktianc 2023-09-22 15:22:55 +08:00
parent 61961b60c6
commit 91cb952f0c
797 changed files with 39517 additions and 10415 deletions

213
README.md
View File

@ -28,10 +28,11 @@ Kinit 是一套全部开源的快速开发平台,毫无保留给个人及企
- PC端采用 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin) 、[Vue3](https://cn.vuejs.org/guide/introduction.html)、[Element Plus](https://element-plus.gitee.io/zh-CN/guide/design.html)、[TypeScript](https://www.tslang.cn/)等主流技术开发;
- 移动端采用 [uni-app](https://uniapp.dcloud.net.cn/component/)[Vue2](https://v2.cn.vuejs.org/v2/guide/)[uView 2](https://www.uviewui.com/components/intro.html)为主要技术开发;
- 后端加入 [Typer](https://typer.tiangolo.com/) 命令行应用,简单化数据初始化,数据表模型迁移等操作;
- 加入定时任务功能,采用 [APScheduler](https://github.com/agronholm/apscheduler) 定时任务框架 + [Redis](https://redis.io/) 消息队列 + [MongoDB](https://www.mongodb.com/) 持久存储;
- 加入定时任务功能,采用 [APScheduler](https://github.com/agronholm/apscheduler) 定时任务框架 + [Redis](https://redis.io/) 消息队列 + [MongoDB](https://www.mongodb.com/) 持久存储;
- 权限认证使用[(哈希)密码和 JWT Bearer 令牌的 OAuth2](https://fastapi.tiangolo.com/zh/tutorial/security/oauth2-jwt/),支持多终端认证系统。
- 支持加载动态权限菜单,多方式轻松权限控制,按钮级别权限控制。
- 已加入常见的 [MySQL](https://www.mysql.com/) + [MongoDB](https://www.mongodb.com/) + [Redis](https://redis.io/) 数据库异步操作。
- 支持 [docker-compose](https://docs.docker.com/compose/) 部署方式
- 开箱即用的中后台解决方案,可以用来作为新项目的启动模版,也可用于学习参考。并且时刻关注着最新技术动向,尽可能的第一时间更新。
- 与 [vue-element-plus-admin](https://gitee.com/kailong110120130/vue-element-plus-admin) 前端框架时刻保持同步更新。
@ -43,8 +44,6 @@ Kinit 是一套全部开源的快速开发平台,毫无保留给个人及企
[django-vue-admin](https://gitee.com/liqianglog/django-vue-admin)django-vue-admin 是一个优秀的基于 Django 开发后台管理系统
[Ant Design Pro](https://preview.pro.ant.design/dashboard/analysis):开箱即用的中台前端/设计解决方案
[小诺开源技术 (xiaonuo.vip)](https://www.xiaonuo.vip/):国内首个国密前后端分离快速开发平台
## 在线体验
@ -98,6 +97,8 @@ github地址https://github.com/vvandk/kinit
- [x] 用户分布:接入高德地图显示各地区用户分布情况
- [x] 数据概览:提供两种数据统计展示模板,更直观的查看数据统计情况
- [x] 智慧大屏:大屏展示`办公室空气质量实时检测`数据分析
- [x] 登录日志:用户登录日志记录和查询。
@ -108,14 +109,6 @@ github地址https://github.com/vvandk/kinit
- [x] 导入导出:灵活支持数据导入导出功能
- [x] 简单适配手机端:
1. 工作台招呼语一行显示,多余显示省略号
2. 查询框宽度统一,需手动调整(强迫症建议)
3. 分页符更新,电脑端与手机端分页功能不同
4. 表格工具栏更新,手机端取消文字显示
5. 表格操作按钮多的时候自动叠起
- [x] 已加入常见的`Redis``MySQL``MongoDB`数据库异步操作。
- [x] 命令行操作:新加入 `Typer` 命令行应用,简单化数据初始化,数据表模型迁移。
@ -154,9 +147,7 @@ github地址https://github.com/vvandk/kinit
- [Es6+](https://gitee.com/link?target=http%3A%2F%2Fes6.ruanyifeng.com%2F) - 熟悉 es6 基本语法
- [Vue-Router-Next](https://gitee.com/link?target=https%3A%2F%2Fnext.router.vuejs.org%2F) - 熟悉 vue-router 基本使用
- [Element-Plus](https://gitee.com/link?target=https%3A%2F%2Felement-plus.org%2F) - element-plus 基本使用
- [Mock.js](https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2Fnuysoft%2FMock) - mockjs 基本语法
- [vue3-json-viewer](https://gitee.com/isfive/vue3-json-viewer)简单易用的json内容展示组件,适配vue3和vite。
- [SortableJS/vue.draggable.next](https://github.com/SortableJS/vue.draggable.next)Vue 组件 Vue.js 3.0 允许拖放和与视图模型数组同步。
- [高德地图API (amap.com)](https://lbs.amap.com/api/jsapi-v2/guide/webcli/map-vue1):地图 JSAPI 2.0 是高德开放平台免费提供的第四代 Web 地图渲染引擎。
### 移动端
@ -201,7 +192,16 @@ Redis (推荐使用最新稳定版)
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
```
2. 修改项目数据库配置信息
2. 修改项目环境配置
修改 `application/settings.py` 文件
```python
"""安全警告: 不要在生产中打开调试运行!"""
DEBUG = True # 如果当前为开发环境则改为 True如果为生产环境则改为 False
```
3. 修改项目数据库配置信息
`application/config` 目录中
@ -273,7 +273,7 @@ Redis (推荐使用最新稳定版)
sqlalchemy.url = sqlalchemy.url = mysql+pymysql://root:123456@127.0.0.1/kinit
```
3. 创建数据库
4. 创建数据库
```
mysql> create database kinit; # 创建数据库
@ -281,7 +281,7 @@ Redis (推荐使用最新稳定版)
mysql> set names utf8; # 设置编码
```
4. 初始化数据库数据
5. 初始化数据库数据
```
# 项目根目录下执行,需提前创建好数据库
@ -295,7 +295,7 @@ Redis (推荐使用最新稳定版)
python3 main.py init --env dev
```
5. 修改项目基本配置信息
6. 修改项目基本配置信息
修改数据库表 - vadmin_system_settings 中的关键信息
@ -322,7 +322,7 @@ Redis (推荐使用最新稳定版)
email_port
```
6. 启动
7. 启动
```
# 进入项目根目录下执行
@ -402,6 +402,165 @@ pnpm run build:pro
- 账号:`15020221010` 密码:`kinit2022`
- 接口地址http://localhost:9000/docs (默认为此地址,如有修改请按照配置文件)
## Docker Compose 生产环境部署
### 准备工作
1. 获取代码
```
git clone https://gitee.com/ktianc/kinit.git
```
2. 修改项目环境配置:
1. 修改 API 端:
文件路径为:`kinit-api/application/settings.py`
```python
"""安全警告: 不要在生产中打开调试运行!"""
DEBUG = False # 生产环境应该改为 False
```
2. 修改定时任务端:
文件路径为:`kinit-task/application/settings.py`
```python
"""安全警告: 不要在生产中打开调试运行!"""
DEBUG = False # 生产环境应该改为 False
```
3. 如果已有 Mysql 或者 Redis 或者 MongoDB 数据库,请修改如下内容,如果没有则不需要修改:
1. 修改 API 端配置文件:
文件路径为:`kinit-api/application/config/production.py`
```python
"""
Mysql 数据库配置项
连接引擎官方文档https://www.osgeo.cn/sqlalchemy/core/engines.html
数据库链接配置说明mysql+asyncmy://数据库用户名:数据库密码@数据库地址:数据库端口/数据库名称
"""
SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://root:123456@177.8.0.7:3306/kinit"
"""
Redis 数据库配置
格式:"redis://:密码@地址:端口/数据库名称"
"""
REDIS_DB_ENABLE = True
REDIS_DB_URL = "redis://:123456@177.8.0.5:6379/1"
"""
MongoDB 数据库配置
格式mongodb://用户名:密码@地址:端口/?authSource=数据库名称
"""
MONGO_DB_ENABLE = True
MONGO_DB_NAME = "kinit"
MONGO_DB_URL = f"mongodb://kinit:123456@177.8.0.6:27017/?authSource={MONGO_DB_NAME}"
```
2. 修改定时任务配置文件
文件路径为:`kinit-task/application/config/production.py`
```python
"""
Redis 数据库配置
与接口是同一个数据库
格式:"redis://:密码@地址:端口/数据库名称"
"""
REDIS_DB_ENABLE = True
REDIS_DB_URL = "redis://:123456@177.8.0.5:6379/1"
"""
MongoDB 数据库配置
与接口是同一个数据库
格式mongodb://用户名:密码@地址:端口/?authSource=数据库名称
"""
MONGO_DB_ENABLE = True
MONGO_DB_NAME = "kinit"
MONGO_DB_URL = f"mongodb://kinit:123456@177.8.0.6:27017/?authSource={MONGO_DB_NAME}"
```
3. 将已有的数据库在 `docker-compose.yml` 文件中注释
4. 配置阿里云 OSS 与 IP 解析接口地址(可选)
文件路径:`kinit-api/application/config/production.py`
```python
"""
阿里云对象存储OSS配置
阿里云账号AccessKey拥有所有API的访问权限风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维请登录RAM控制台创建RAM用户。
yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1杭州为例Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
* [accessKeyId] {String}通过阿里云控制台创建的AccessKey。
* [accessKeySecret] {String}通过阿里云控制台创建的AccessSecret。
* [bucket] {String}通过控制台或PutBucket创建的bucket。
* [endpoint] {String}bucket所在的区域 默认oss-cn-hangzhou。
"""
ALIYUN_OSS = {
"accessKeyId": "accessKeyId",
"accessKeySecret": "accessKeySecret",
"endpoint": "endpoint",
"bucket": "bucket",
"baseUrl": "baseUrl"
}
"""
获取IP地址归属地
文档https://user.ip138.com/ip/doc
"""
IP_PARSE_ENABLE = False
IP_PARSE_TOKEN = "IP_PARSE_TOKEN"
```
5. 前端项目打包:
```shell
cd kinit-admin
# 安装依赖包
pnpm install
# 打包
pnpm run build:pro
```
### 启动并初始化项目
```shell
# 启动并创建所有容器
docker-compose up -d
# 初始化数据
docker-compose exec kinit-api python3 main.py init
# 重启所有容器
docker-compose restart
# 其他命令:
# 停止所有容器
docker-compose down
# 查看所有容器状态
docker-compose ps -a
```
### 访问项目
- 访问地址http://localhost (默认为此地址,如有修改请按照配置文件)
- 账号:`15020221010` 密码:`kinit2022`
- 接口地址http://localhost:9000/docs (默认为此地址,如有修改请按照配置文件)
## 如何贡献
你可以[提一个 issue](https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2Fkailong321200875%2Fvue-element-plus-admin%2Fissues%2Fnew) 或者提交一个 Pull Request。
@ -414,24 +573,6 @@ pnpm run build:pro
4. 推送您的分支: `git push origin feat/xxxx`
5. 提交 `pull request`
## Git 贡献提交规范
- `feat` 新功能
- `fix` 修补 bug
- `docs` 文档
- `style` 格式、样式(不影响代码运行的变动)
- `refactor` 重构(即不是新增功能,也不是修改 BUG 的代码)
- `perf` 优化相关,比如提升性能、体验
- `test` 添加测试
- `build` 编译相关的修改,对项目构建或者依赖的改动
- `ci` 持续集成修改
- `chore` 构建过程或辅助工具的变动
- `revert` 回滚到上一个版本
- `workflow` 工作流改进
- `mod` 不确定分类的修改
- `wip` 开发中
- `types` 类型
## 浏览器支持
本地开发推荐使用 `Chrome 80+` 浏览器

117
docker-compose.yml Normal file
View File

@ -0,0 +1,117 @@
version: "3"
services:
kinit-api:
container_name: kinit-api
restart: always
ports:
- "9000:9000"
expose:
- "9000"
build:
context: ./
dockerfile: ./docker_env/kinit-api/Dockerfile
environment:
TZ: "Asia/Shanghai"
volumes:
- ./kinit-api:/app
networks:
kinit_network:
ipv4_address: "177.8.0.2"
kinit-admin:
container_name: kinit-admin
restart: always
ports:
- "80:80"
expose:
- "80"
image: nginx:latest
environment:
TZ: "Asia/Shanghai"
volumes:
- ./docker_env/kinit-admin/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./:/usr/share/nginx/html
networks:
kinit_network:
ipv4_address: "177.8.0.3"
kinit-task:
container_name: kinit-task
restart: always
build:
context: ./
dockerfile: ./docker_env/kinit-task/Dockerfile
environment:
TZ: "Asia/Shanghai"
volumes:
- ./kinit-task:/app
networks:
kinit_network:
ipv4_address: "177.8.0.4"
kinit-redis:
container_name: kinit-redis
restart: always
image: redis:latest
ports:
- "6379:6379"
expose:
- "6379"
volumes:
- ./docker_env/redis/conf/redis.conf:/etc/redis/redis.conf
environment:
TZ: "Asia/Shanghai"
networks:
kinit_network:
ipv4_address: "177.8.0.5"
command: redis-server /etc/redis/redis.conf
kinit-mongo:
container_name: kinit-mongo
restart: always
image: mongo:latest
ports:
- "27017:27017"
expose:
- "27017"
volumes:
- ./docker_env/mongo/data:/data/db
- ./docker_env/mongo/log:/data/log
- ./docker_env/mongo/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js # 挂载初始化脚本
environment:
MONGO_INITDB_ROOT_USERNAME: admin # root 用户名
MONGO_INITDB_ROOT_PASSWORD: 123456 # root 用户密码
TZ: "Asia/Shanghai" # 设置时区
networks:
kinit_network:
ipv4_address: "177.8.0.6"
command: mongod --auth --bind_ip 0.0.0.0 # 启用身份验证和允许从任何IP连接
kinit-mysql:
container_name: kinit-mysql
restart: always
image: mysql:latest
ports:
- "3306:3306"
expose:
- "3306"
volumes:
- ./docker_env/mysql/conf:/etc/mysql/conf.d
- ./docker_env/mysql/data:/var/lib/mysql
- ./docker_env/mysql/logs:/logs
environment:
TZ: "Asia/Shanghai"
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_DATABASE: "kinit"
networks:
kinit_network:
ipv4_address: "177.8.0.7"
networks:
kinit_network:
driver: bridge
ipam:
driver: default
config:
- subnet: "177.8.0.0/16"
gateway: "177.8.0.1"

View File

@ -0,0 +1,88 @@
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;
include /etc/nginx/mime.types;
default_type application/octet-stream;
server
{
listen 80;
server_name localhost;
client_max_body_size 100M;
location / {
proxy_set_header Host $http_host;
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 https;
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
root /usr/share/nginx/html/kinit-admin/dist-pro;
index index.html;
try_files $uri $uri/ /index.html; # 防止刷新报404
}
location /api/ {
proxy_http_version 1.1;
proxy_set_header Host $http_host;
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 $scheme;
proxy_set_header X-Nginx-Proxy true;
set_real_ip_from 0.0.0.0/0;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 600s;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
real_ip_header X-Forwarded-For;
rewrite ^/api/(.*)$ /$1 break; #重写
proxy_pass http://177.8.0.2:9000/; # 设置代理服务器的协议和地址
}
location /media/ {
alias /usr/share/nginx/html/kinit-api/static/;
}
location /temp/ {
alias /usr/share/nginx/html/kinit-api/temp/;
}
location ~ /openapi\.json$ {
proxy_pass http://177.8.0.2:9000;
}
location @router {
rewrite ^.*$ /index.html break;
}
}
}

View File

@ -0,0 +1,9 @@
FROM python:3.10
COPY ./kinit-api/requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
WORKDIR /app
CMD [ "python", "main.py", "run"]

View File

@ -0,0 +1,9 @@
FROM python:3.10
COPY ./kinit-task/requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
WORKDIR /app
CMD [ "python", "main.py"]

View File

@ -0,0 +1,7 @@
db = db.getSiblingDB('kinit'); // 切换到要创建的数据库
db.createUser({
user: 'kinit',
pwd: '123456',
roles: ["readWrite", "dbAdmin"]
});

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,10 @@
# 环境
NODE_ENV=development
# 访问基础路径
# 接口前缀
VITE_API_BASE_PATH=dev
# 打包路径
VITE_BASE_PATH=/
# 是否删除debugger
@ -13,7 +16,7 @@ VITE_DROP_CONSOLE=false
# 是否sourcemap
VITE_SOURCEMAP=true
# 打包输出路径
# 输出路径
VITE_OUT_DIR=dist-dev
# 标题

View File

@ -1,7 +1,10 @@
# 环境
NODE_ENV=production
# 访问基础路径
# 接口前缀
VITE_API_BASE_PATH=pro
# 打包路径
VITE_BASE_PATH=/
# 是否删除debugger
@ -13,7 +16,7 @@ VITE_DROP_CONSOLE=true
# 是否sourcemap
VITE_SOURCEMAP=false
# 打包输出路径
# 输出路径
VITE_OUT_DIR=dist-pro
# 标题

View File

@ -24,6 +24,7 @@ module.exports = defineConfig({
'plugin:prettier/recommended'
],
rules: {
'vue/no-setup-props-destructure': 'off',
'vue/script-setup-uses-vars': 'error',
'vue/no-reserved-component-names': 'off',
'@typescript-eslint/ban-ts-ignore': 'off',

View File

@ -1,130 +0,0 @@
name: Automerge
on:
pull_request:
types:
- labeled
- unlabeled
- synchronize
- opened
- edited
- ready_for_review
- reopened
- unlocked
pull_request_review:
types:
- submitted
status: {}
jobs:
# 合并发布版本的 pr 到 master
auto-merge:
runs-on: ubuntu-latest
steps:
- name: Automerge
uses: 'pascalgn/automerge-action@v0.14.3'
env:
GITHUB_TOKEN: '${{ secrets.TOKEN }}'
MERGE_LABELS: ''
MERGE_FILTER_AUTHOR: 'kailong321200875'
push-to-gh-pages:
needs: [auto-merge]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Pnpm
uses: pnpm/action-setup@v2
with:
version: latest
- name: use Node.js 16
uses: actions/setup-node@v2.1.2
with:
node-version: '16.x'
- name: Set SSH Environment
env:
DOCS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
run: |
mkdir -p ~/.ssh/
echo "$ACTIONS_DEPLOY_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com > ~/.ssh/known_hosts
chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
git config --local user.email "321200875@qq.com"
git config --local user.name "kailong321200875"
# 发布到 github
- name: Build Github
run: |
pnpm install --no-frozen-lockfile
pnpm run build:pro
- name: Deploy Github
uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{secrets.ACTIONS_DEPLOY_KEY}}
publish_branch: gh-pages
publish_dir: ./dist-pro
force_orphan: true
cname: element-plus-admin.cn
push-to-gh-pages-gitee:
needs: [auto-merge]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Pnpm
uses: pnpm/action-setup@v2
with:
version: latest
- name: use Node.js 16
uses: actions/setup-node@v2.1.2
with:
node-version: '16.x'
- name: Set SSH Environment
env:
DOCS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
run: |
mkdir -p ~/.ssh/
echo "$ACTIONS_DEPLOY_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com > ~/.ssh/known_hosts
chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
git config --local user.email "321200875@qq.com"
git config --local user.name "kailong321200875"
- name: Build Gitee
run: |
pnpm install --no-frozen-lockfile
pnpm run build:gitee
# 发布到 gitee
- name: Deploy Gitee
uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{secrets.ACTIONS_DEPLOY_KEY}}
publish_branch: gh-pages-gitee
publish_dir: ./dist-pro
force_orphan: true
- name: Sync Github Repos To Gitee # 名字随便起
uses: Yikun/hub-mirror-action@v1.1 # 使用Yikun/hub-mirror-action
with:
src: github/kailong321200875 # 源端账户名(github)
dst: gitee/kailong110120130 # 目的端账户名(gitee)
dst_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} # SSH密钥对中的私钥
dst_token: ${{ secrets.GITEE_TOKEN }} # Gitee账户的私人令牌
account_type: user # 账户类型
clone_style: 'https' # 使用https方式进行clone也可以使用ssh
debug: true # 启用后会显示所有执行命令
force_update: true # 启用后,强制同步,即强制覆盖目的端仓库
static_list: 'vue-element-plus-admin' # 静态同步列表,在此填写需要同步的仓库名称,可填写多个
timeout: '600s' # git超时设置超时后会自动重试git操作

View File

@ -1,25 +0,0 @@
on:
push:
branches:
- master
jobs:
contrib-readme-en-job:
runs-on: ubuntu-latest
name: A job to automate contrib in readme
steps:
- name: Contribute List
uses: akhilmhdh/contributors-readme-action@v2.3.4
env:
GITHUB_TOKEN: ${{ secrets.CONTRIBUTORS_TOKEN }}
contrib-readme-job:
runs-on: ubuntu-latest
name: A job to automate contrib in readme.zh-CN
steps:
- name: Contribute List
uses: akhilmhdh/contributors-readme-action@v2.3.4
with:
readme_path: README.zh-CN.md
env:
GITHUB_TOKEN: ${{ secrets.CONTRIBUTORS_TOKEN }}

View File

@ -1,18 +0,0 @@
on:
push:
branches:
- master
name: Release
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: GoogleCloudPlatform/release-please-action@v3
id: release
with:
token: ${{ secrets.TOKEN }}
release-type: node
package-name: standard-version
changelog-types: '[{"type": "types", "section":"Types", "hidden": false},{"type": "revert", "section":"Reverts", "hidden": false},{"type": "feat", "section": "Features", "hidden": false},{"type": "fix", "section": "Bug Fixes", "hidden": false},{"type": "improvement", "section": "Feature Improvements", "hidden": false},{"type": "docs", "section":"Docs", "hidden": false},{"type": "style", "section":"Styling", "hidden": false},{"type": "refactor", "section":"Code Refactoring", "hidden": false},{"type": "perf", "section":"Performance Improvements", "hidden": false},{"type": "test", "section":"Tests", "hidden": false},{"type": "build", "section":"Build System", "hidden": false},{"type": "ci", "section":"CI", "hidden":false}]'

View File

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

View File

@ -1,9 +0,0 @@
module.exports = {
'*.{js,jsx,ts,tsx}': ['eslint --fix', 'prettier --write'],
'{!(package)*.json,*.code-snippets,.!(browserslist)*rc}': ['prettier --write--parser json'],
'package.json': ['prettier --write'],
'*.vue': ['prettier --write', 'stylelint --fix'],
'*.{scss,less,styl,css,html}': ['stylelint --fix', 'prettier --write'],
'*.md': ['prettier --write'],
'*.hbs': ['prettier --write']
}

View File

@ -1,8 +0,0 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
[ -n "$CI" ] && exit 0
# Format and submit code according to lintstagedrc.js configuration
npm run ts:check
npm run lint:lint-staged

View File

@ -5,14 +5,14 @@
"source.fixAll.eslint": true
},
"[vue]": {
"editor.defaultFormatter": "Vue.volar"
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
},
"i18n-ally.localesPaths": ["src/locales"],
"i18n-ally.keystyle": "nested",
"i18n-ally.sortKeys": true,
"i18n-ally.namespace": false,
"i18n-ally.enabledParsers": ["ts"],
"i18n-ally.sourceLanguage": "en",
"i18n-ally.sourceLanguage": "zh-CN",
"i18n-ally.displayLanguage": "zh-CN",
"i18n-ally.enabledFrameworks": ["vue", "react"],
"god.tsconfig": "./tsconfig.json"

File diff suppressed because it is too large Load Diff

View File

@ -2,12 +2,21 @@
vue-element-plus-admin 是一个基于 `element-plus` 免费开源的中后台模版。使用了最新的`vue3``vite4``TypeScript`等主流技术开发,开箱即用的中后台前端解决方案,可以用来作为项目的启动模版,也可用于学习参考。并且时刻关注着最新技术动向,尽可能的第一时间更新。
## 介绍
vue-element-plus-admin 是一个基于 `element-plus` 免费开源的中后台模版。使用了最新的`vue3``vite``TypeScript`等主流技术开发,开箱即用的中后台前端解决方案,可以用来作为项目的启动模版,也可用于学习参考。并且时刻关注着最新技术动向,尽可能的第一时间更新。
vue-element-plus-admin 的定位是后台集成方案,不太适合当基础模板来进行二次开发。因为集成了很多你可能用不到的功能,会造成不少的代码冗余。如果你的项目不关注这方面的问题,也可以直接基于它进行二次开发。
如需要基础模版,请切换到 `mini` 分支,`mini` 只简单集成了一些如:布局、动态菜单等常用布局功能,更适合开发者进行二次开发。
## 特性
- **最新技术栈**:使用 Vue3/vite4 等前端前沿技术开发
- **TypeScript**: 应用程序级 JavaScript 的语言
- **主题**: 可配置的主题
- **国际化**:内置完善的国际化方案
- **自定义数据** 内置 Mock 数据方案
- **权限** 内置完善的动态路由权限生成方案
- **组件** 二次封装了多个常用的组件
- **示例** 内置丰富的示例
@ -17,11 +26,9 @@ vue-element-plus-admin 是一个基于 `element-plus` 免费开源的中后台
- [vue-element-plus-admin](https://element-plus-admin.cn/) - 完整版 github 站点
- [vue-element-plus-admin](https://kailong110120130.gitee.io/vue-element-plus-admin) - 完整版 gitee 站点
帐号:**admin/admin test/test**
帐号:**admin/admin**
`admin` 帐号用于模拟服务端控制权限,服务端返回什么就渲染什么
`test` 帐号用于模拟前端控制权限,服务端只返回需要显示的菜单 key前端进行匹配渲染
在线例子默认不适用菜单过滤,而是直接使用静态路由表
## 文档
@ -32,7 +39,7 @@ vue-element-plus-admin 是一个基于 `element-plus` 免费开源的中后台
## 前序准备
- [node](http://nodejs.org/) 和 [git](https://git-scm.com/) - 项目开发环境
- [Vite](https://vitejs.dev/) - 熟悉 vite 特性
- [Vite4](https://vitejs.dev/) - 熟悉 vite 特性
- [Vue3](https://v3.vuejs.org/) - 熟悉 Vue 基础语法
- [TypeScript](https://www.typescriptlang.org/) - 熟悉 `TypeScript` 基本语法
- [Es6+](http://es6.ruanyifeng.com/) - 熟悉 es6 基本语法
@ -51,12 +58,6 @@ git clone https://github.com/kailong321200875/vue-element-plus-admin.git
- 安装依赖
```bash
临时修改
pnpm --registry https://registry.npm.taobao.org install any-touch
持久使用
pnpm config set registry https://registry.npm.taobao.org
cd vue-element-plus-admin
pnpm install

View File

@ -1,28 +0,0 @@
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [
2,
'always',
[
'feat', // 新功能(feature)
'fix', // 修补bug
'docs', // 文档(documentation)
'style', // 格式样式(不影响代码运行的变动)
'refactor', // 重构(即不是新增功能也不是修改BUG的代码)
'perf', // 优化相关比如提升性能体验
'test', // 添加测试
'ci', // 持续集成修改
'chore', // 构建过程或辅助工具的变动
'revert', // 回滚到上一个版本
'workflow', // 工作流改进
'mod', // 不确定分类的修改
'wip', // 开发中
'types', // 类型修改
'release' // 版本发布
]
],
'subject-full-stop': [0, 'never'],
'subject-case': [0, 'never']
}
}

View File

@ -0,0 +1 @@
import{_ as r}from"./Error.vue_vue_type_script_setup_true_lang-35cdf1c0.js";import{e as s,K as o,o as t,l as e,k as p}from"./index-9da7d198.js";import"./el-button-8f21380c.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";const m=s({__name:"403",setup(s){const{push:m}=o(),a=()=>{m("/")};return(s,o)=>(t(),e(p(r),{type:"403",onErrorClick:a}))}});export{m as default};

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1 @@
import{_ as r}from"./Error.vue_vue_type_script_setup_true_lang-35cdf1c0.js";import{e as s,K as o,o as t,l as e,k as m}from"./index-9da7d198.js";import"./el-button-8f21380c.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";const p=s({__name:"404",setup(s){const{push:p}=o(),a=()=>{p("/")};return(s,o)=>(t(),e(m(r),{onErrorClick:a}))}});export{p as default};

View File

@ -0,0 +1 @@
import{_ as r}from"./Error.vue_vue_type_script_setup_true_lang-35cdf1c0.js";import{e as s,K as o,o as t,l as e,k as p}from"./index-9da7d198.js";import"./el-button-8f21380c.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";const m=s({__name:"500",setup(s){const{push:m}=o(),a=()=>{m("/")};return(s,o)=>(t(),e(p(r),{type:"500",onErrorClick:a}))}});export{m as default};

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1 @@
import{_ as e}from"./Agreement.vue_vue_type_script_setup_true_lang-6427a6dd.js";import"./index-9da7d198.js";import"./el-button-8f21380c.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";export{e as default};

View File

@ -0,0 +1 @@
import{e,W as a,r as s,o as r,j as t,x as l,k as o,y as n,m as u,N as i,a3 as c,ai as d,dF as m,P as _}from"./index-9da7d198.js";import{E as f}from"./el-button-8f21380c.js";import{_ as p}from"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";const y={class:"mt-10px",style:{float:"right"}},g=e({__name:"Agreement",props:{tabId:a.number},setup(e){const a=e,g=s(),b=s(""),v=async()=>{const e=await d({tab_id:a.tabId});e&&(b.value=e.data.web_agreement||"")},w=s(!1),k=async()=>{w.value=!0;try{const e=s({});if(e.value=await m({web_agreement:b.value}),e.value)return v(),_.success("更新成功")}finally{w.value=!1}},x={customAlert:(e,a)=>{switch(a){case"success":_.success(e);break;case"info":default:_.info(e);break;case"warning":_.warning(e);break;case"error":_.error(e)}},autoFocus:!0,scroll:!0,readOnly:!1,uploadImgShowBase64:!0};return v(),(e,a)=>(r(),t(c,null,[l(o(p),{modelValue:b.value,"onUpdate:modelValue":a[0]||(a[0]=e=>b.value=e),ref_key:"editorRef",ref:g,editorId:"web_agreement",editorConfig:x},null,8,["modelValue"]),n("div",y,[l(o(f),{loading:w.value,type:"primary",onClick:k},{default:u((()=>[i("立即保存")])),_:1},8,["loading"])])],64))}});export{g as _};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
:export{namespace:v;elNamespace:el}#data-view{width:100%;height:100%;background-color:#030409;color:#fff}#data-view #dv-full-screen-container{background-image:url(/assets/bg-2b98324a.png);background-size:100% 100%;box-shadow:0 0 3px #00f;display:flex;flex-direction:column}

View File

@ -0,0 +1 @@
import{_ as e}from"./Finance.vue_vue_type_script_setup_true_lang-3fb27710.js";import{e as s,r as t,o,j as r,x as a,m as i,k as p}from"./index-9da7d198.js";import{a as m,E as l}from"./el-tab-pane-5d623fbd.js";import{_ as u}from"./User.vue_vue_type_script_setup_true_lang-356c0f0a.js";import"./el-col-d9273186.js";import"./el-divider-fc00d058.js";import"./el-skeleton-item-c29f45f2.js";import"./el-table-column-102f47a6.js";import"./el-popper-2fae9050.js";import"./isNil-1f22f7b0.js";import"./index-cde97138.js";import"./use-form-common-props-9d083c67.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./event-5568c9d8.js";import"./use-form-item-8b7f5d34.js";import"./debounce-778af7ed.js";import"./el-tooltip-4ed993c7.js";import"./el-input-26eda071.js";import"./el-date-picker-f32b0b71.js";import"./el-button-8f21380c.js";import"./Echart.vue_vue_type_script_setup_true_lang-94a01568.js";import"./strings-e2e316bd.js";import"./vnode-ae242abb.js";const n={class:"p-5"},j=s({name:"DashboardAnalysis",__name:"Analysis",setup(s){const j=t("user");return(s,t)=>(o(),r("div",n,[a(p(l),{modelValue:j.value,"onUpdate:modelValue":t[0]||(t[0]=e=>j.value=e)},{default:i((()=>[a(p(m),{label:"财务分析",name:"finance",lazy:!0},{default:i((()=>[a(e)])),_:1}),a(p(m),{label:"客户分析",name:"user",lazy:!0},{default:i((()=>[a(u)])),_:1})])),_:1},8,["modelValue"])]))}});export{j as default};

View File

@ -0,0 +1 @@
:export{namespace:v;elNamespace:el}.system-settings-basic-image-uploader .logo-image{width:178px;height:178px;display:block}.system-settings-basic-image-uploader .ico-image{width:100px;height:100px;display:block}.system-settings-basic-image-uploader .el-upload{border:1px dashed var(--el-border-color);border-radius:6px;cursor:pointer;position:relative;overflow:hidden;transition:var(--el-transition-duration-fast)}.system-settings-basic-image-uploader .el-upload:hover{border-color:var(--el-color-primary)}.system-settings-basic-image-uploader .el-icon.logo-image-uploader-icon{font-size:28px;color:#8c939d;width:178px;height:178px;text-align:center}.system-settings-basic-image-uploader .el-icon.ico-image-uploader-icon{font-size:28px;color:#8c939d;width:100px;height:100px;text-align:center}

View File

@ -0,0 +1 @@
import{_ as s}from"./Basic.vue_vue_type_style_index_0_lang-7f68abc2.js";import"./useForm-ecbcdb43.js";import"./index-9da7d198.js";import"./el-col-d9273186.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./isNil-1f22f7b0.js";import"./index-cde97138.js";import"./use-form-common-props-9d083c67.js";import"./el-input-26eda071.js";import"./event-5568c9d8.js";import"./use-form-item-8b7f5d34.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-checkbox-group-b617b779.js";import"./el-button-8f21380c.js";import"./el-date-picker-f32b0b71.js";import"./debounce-778af7ed.js";import"./el-switch-7720805d.js";import"./el-divider-fc00d058.js";import"./el-progress-69812d34.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";import"./index-14d9f390.js";import"./strings-e2e316bd.js";import"./index-4dbb39b8.js";import"./useValidator-e352e7a8.js";export{s as default};

View File

@ -0,0 +1 @@
import{u as e,F as a}from"./useForm-ecbcdb43.js";import{e as o,W as s,A as t,M as l,x as i,E as r,ak as n,N as p,a3 as c,r as m,P as d,dF as u,o as g,l as b,k as f,S as w,ai as _}from"./index-9da7d198.js";import{E as h}from"./el-button-8f21380c.js";import{E as y}from"./el-progress-69812d34.js";import{u as P}from"./useValidator-e352e7a8.js";const I=o({__name:"Basic",props:{tabId:s.number},setup(o){const s=o,{required:I}=P(),{getStorage:v}=w(),x=t(),O=v(x.getToken),j=l([{field:"web_title",label:"系统标题",colProps:{span:24},component:"Input",componentProps:{style:{width:"500px"}}},{field:"web_logo",label:"系统 LOGO",colProps:{span:24},formItemProps:{slots:{default:e=>i(y,{class:"system-settings-basic-image-uploader",action:"/api/vadmin/system/upload/image/to/local",data:{path:"system"},"show-file-list":!1,"before-upload":e=>{const a=["image/jpeg","image/gif","image/png"].includes(e.type),o=e.size/1024/1024<5;return a||d.error("上传LOGO图片必须是 JPG/GIF/PNG/ 格式!"),o||d.error("上传LOGO图片大小不能超过 5MB!"),a&&o},"on-success":a=>{200===a.code?e.web_logo=a.data.remote_path:d.error(a.message)},accept:"image/jpeg,image/gif,image/png",name:"file",headers:{Authorization:O}},{default:()=>[e.web_logo?i("img",{src:e.web_logo,class:"logo-image"},null):i(r,{class:"logo-image-uploader-icon"},{default:()=>[i(n,{icon:"akar-icons:plus",size:23},null)]})]})}}},{field:"web_desc",label:"系统描述",colProps:{span:24},component:"Input",componentProps:{rows:4,type:"textarea",style:{width:"500px"}}},{field:"web_ico",label:"ICO 图标",colProps:{span:24},formItemProps:{slots:{default:e=>i(y,{class:"system-settings-basic-image-uploader",action:"/api/vadmin/system/upload/image/to/local",data:{path:"system"},"show-file-list":!1,"before-upload":e=>{const a=["image/x-icon"].includes(e.type),o=e.size/1024/1024<2;return a||d.error("上传ICO图标必须是 ico 格式!"),o||d.error("上传ICO图标大小不能超过 2MB!"),a&&o},"on-success":a=>{200===a.code?(e.web_ico=a.data.remote_path,e.web_ico_local_path=a.data.local_path):d.error(a.message)},accept:"image/jpeg,image/gif,image/png",name:"file",headers:{Authorization:O}},{default:()=>[e.web_ico?i("img",{src:e.web_ico,class:"ico-image"},null):i(r,{class:"ico-image-uploader-icon"},{default:()=>[i(n,{icon:"akar-icons:plus",size:23},null)]})]})}}},{field:"web_ico_local_path",label:"ICO 图标服务器文件地址",component:"Input",colProps:{span:24},hidden:!0},{field:"web_icp_number",label:"备案号",colProps:{span:24},component:"Input",componentProps:{style:{width:"500px"}}},{field:"web_copyright",label:"版权信息",colProps:{span:24},component:"Input",componentProps:{style:{width:"500px"}}},{field:"active",label:"",colProps:{span:24},formItemProps:{slots:{default:()=>i(c,null,[i(h,{loading:M.value,type:"primary",onClick:A},{default:()=>[p("立即提交")]})])}}}]),k=l({web_title:[I()],web_logo:[I()],web_ico:[I()]}),{formRegister:C,formMethods:F}=e(),{setValues:z,getFormData:G,getElFormExpose:E}=F;let L=m({});const M=m(!1),A=async()=>{const e=await E();if(await(null==e?void 0:e.validate())){const e=await G();if(M.value=!0,!e)return M.value=!1,d.error("未获取到数据");try{const a=await u(e);if(a)return x.setTitle(a.data.web_title||"后台系统"),x.setLogoImage(a.data.web_logo||"/static/system/logo.png"),x.setFooterContent(a.data.web_copyright||"Copyright ©2022-present K"),x.setIcpNumber(a.data.web_icp_number||""),d.success("更新成功")}finally{M.value=!1}}};return(async()=>{const e=await _({tab_id:s.tabId});if(e){await z(e.data),L.value=e.data;const a=await E();null==a||a.clearValidate()}})(),(e,o)=>(g(),b(f(a),{rules:k,onRegister:f(C),schema:j},null,8,["rules","onRegister","schema"]))}});export{I as _};

View File

@ -0,0 +1 @@
:export{namespace:v;elNamespace:el}.center-bottom-view{width:100%;height:100%;margin-top:20px}.center-bottom-view .dv-scroll-board{width:100%;height:100%;color:#fff}.center-bottom-view .dv-scroll-board .header,.center-bottom-view .dv-scroll-board .rows .row-item{font-size:18px}

View File

@ -0,0 +1 @@
import{_ as e}from"./CenterBottom.vue_vue_type_style_index_0_lang-7932f587.js";import"./datav-vue3.es-2f340315.js";import"./index-9da7d198.js";export{e as default};

View File

@ -0,0 +1 @@
import{o as e}from"./datav-vue3.es-2f340315.js";import{e as t,r as a,M as o,w as r,o as s,j as n,x as i,k as m}from"./index-9da7d198.js";const c={class:"center-bottom-view"},d=t({__name:"CenterBottom",props:{centerBottomData:{type:Array,required:!0}},setup(t){const d=t,l=a(null),u=a(d.centerBottomData),p=o({header:["部门名称","甲醛","PM2.5","PM10","温度","湿度","更新时间"],data:u.value,index:!0,columnWidth:[50],align:["center"],rowNum:6,waitTime:2e3,headerHeight:40});return r((()=>d.centerBottomData),(e=>{l.value.updateRows(e)}),{deep:!0}),(t,a)=>(s(),n("div",c,[i(m(e),{ref_key:"scrollBoardRef",ref:l,config:p},null,8,["config"])]))}});export{d as _};

View File

@ -0,0 +1 @@
:export{namespace:v;elNamespace:el}.center-top-view{width:100%;height:100%;box-shadow:0 0 3px #00f;display:flex;flex-direction:column;background-color:#061e5d80;border-top:2px solid rgba(1,153,209,.5);box-sizing:border-box;padding:10px 20px}

View File

@ -0,0 +1 @@
import{_ as e}from"./CenterTop.vue_vue_type_style_index_0_lang-be191674.js";import"./Echart.vue_vue_type_script_setup_true_lang-94a01568.js";import"./index-9da7d198.js";import"./debounce-778af7ed.js";export{e as default};

View File

@ -0,0 +1 @@
import{_ as e}from"./Echart.vue_vue_type_script_setup_true_lang-94a01568.js";import{e as a,W as t,r as s,w as o,o as r,j as i,y as n,z as p,x as c,k as l}from"./index-9da7d198.js";const m={class:"center-top-view"},d={class:"text-3xl font-bold"},u=a({__name:"CenterTop",props:{centerTopData:{type:Object,required:!0},activeMenuName:t.string},setup(a){const t=a,u=s({});return o((()=>t.centerTopData),(e=>{u.value={xAxis:{data:["6H","7H","8H","9H","10H","11H","12H","13H","14H","15H","16H","17H","18H","19H"],type:"category"},textStyle:{fontFamily:"Microsoft YaHei",fontSize:20,fontStyle:"normal",fontWeight:"normal",color:"#ecc460"},grid:{left:20,right:20,bottom:20,top:80,containLabel:!0},tooltip:{trigger:"axis",axisPointer:{type:"cross"},padding:[5,10]},yAxis:[{type:"value",name:"",min:0,axisLabel:{formatter:"{value}"}}],legend:{data:["PM2.5","甲醛","温度","湿度"],textStyle:{color:"#c3f19d"}},series:[{name:"PM2.5",type:"bar",color:"#bbff67",emphasis:{focus:"series"},data:e.pm25,showBackground:!1,barGap:0},{name:"甲醛",type:"bar",color:"#6deedf",emphasis:{focus:"series"},data:e.hcho,showBackground:!1,barGap:0},{name:"温度",type:"line",emphasis:{focus:"series"},data:e.temp},{name:"湿度",type:"line",emphasis:{focus:"series"},data:e.hum}]}}),{immediate:!0,deep:!0}),(a,s)=>(r(),i("div",m,[n("span",d,p(t.activeMenuName),1),n("div",null,[c(l(e),{options:u.value,height:400},null,8,["options"])])]))}});export{u as _};

View File

@ -0,0 +1 @@
import{e as s,W as e,$ as a,o as t,l,ar as r,m as o,y as n,z as i,k as p,x as c,O as d,q as f,s as m,F as x}from"./index-9da7d198.js";import{E as g}from"./el-card-5fa288fa.js";import"./el-tooltip-4ed993c7.js";import{E as u}from"./el-popper-2fae9050.js";const v={class:"flex items-center"},_={class:"text-16px font-700"},h={class:"max-w-200px"},j={class:"flex pl-20px flex-grow"},k=s({__name:"ContentWrap",props:{title:e.string.def(""),message:e.string.def("")},setup(s){const{getPrefixCls:e}=x(),k=e("content-wrap");return(e,x)=>{const w=a("Icon");return t(),l(p(g),{class:m([[p(k)],"!b-0 h-[100%]"]),shadow:"never"},r({default:o((()=>[n("div",null,[f(e.$slots,"default")])])),_:2},[s.title?{name:"header",fn:o((()=>[n("div",v,[n("span",_,i(s.title),1),s.message?(t(),l(p(u),{key:0,effect:"dark",placement:"right"},{content:o((()=>[n("div",h,i(s.message),1)])),default:o((()=>[c(w,{class:"ml-5px",icon:"bi:question-circle-fill",size:14})])),_:1})):d("",!0),n("div",j,[f(e.$slots,"header")])])])),key:"0"}:void 0]),1032,["class"])}}});export{k as _};

View File

@ -0,0 +1 @@
import{r as l,o as a,l as e,m as s,j as u,a3 as o,a4 as b,k as v,N as r,z as t}from"./index-9da7d198.js";import{a as m,E as i}from"./el-descriptions-item-be87a779.js";import"./vnode-ae242abb.js";import"./isNil-1f22f7b0.js";import"./use-form-common-props-9d083c67.js";const n={__name:"CronExample",setup(n){const p=l([{value:"0 0 10,15,16 * * ?",label:"每天上午10点下午3点4点"},{value:"0 0/30 9-17 * * ?",label:"朝九晚五工作时间内每半小时"},{value:"0 0 12 ? * WED\t",label:"表示每个星期三中午12点"},{value:"0 0 12 * * ?",label:"每天中午12点触发"},{value:"0 15 10 ? * *",label:"每天上午10:15触发"},{value:"0 15 10 * * ?",label:"每天上午10:15触发 (跟上面的一样)"},{value:"0 15 10 * * ? 2005",label:"2005年的每天上午10:15触发"},{value:"0 * 14 * * ?",label:"在每天下午2点到下午2:59期间的每1分钟触发"},{value:"0 0/5 14 * * ?",label:"在每天下午2点到下午2:55期间的每5分钟触发"},{value:"0 0/5 14,18 * * ?",label:"在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发"},{value:"0 0-5 14 * * ?",label:"在每天下午2点到下午2:05期间的每1分钟触发"},{value:"0 10,44 14 ? 3 WED",label:"每年三月的星期三的下午2:10和2:44触发"},{value:"0 15 10 ? * MON-FRI",label:"周一至周五的上午10:15触发"},{value:"0 15 10 15 * ?",label:"每月15日上午10:15触发"},{value:"0 15 10 L * ?",label:"每月最后一日的上午10:15触发"}]);return(l,n)=>(a(),e(v(i),{column:1,border:!0},{default:s((()=>[(a(!0),u(o,null,b(p.value,((l,u)=>(a(),e(v(m),{key:u,label:l.value},{default:s((()=>[r(t(l.label),1)])),_:2},1032,["label"])))),128))])),_:1}))}};export{n as default};

View File

@ -0,0 +1 @@
import{_ as t}from"./CronExpression.vue_vue_type_style_index_0_lang-78dfe52d.js";import"./index-9da7d198.js";import"./el-tab-pane-5d623fbd.js";import"./strings-e2e316bd.js";import"./event-5568c9d8.js";import"./vnode-ae242abb.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";import"./el-input-26eda071.js";import"./isNil-1f22f7b0.js";import"./el-checkbox-group-b617b779.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-table-column-102f47a6.js";import"./el-popper-2fae9050.js";import"./debounce-778af7ed.js";import"./el-tooltip-4ed993c7.js";import"./el-button-8f21380c.js";import"./_Uint8Array-bbcc3a61.js";import"./Dialog.vue_vue_type_style_index_0_lang-fcbfdb5d.js";import"./el-overlay-037540a2.js";import"./refs-4f0941bf.js";import"./RunDatetimeList-ccdf3646.js";import"./CronExample-cc30016c.js";import"./el-descriptions-item-be87a779.js";export{t as default};

View File

@ -0,0 +1 @@
:export{namespace:v;elNamespace:el}.cron-expression-box .el-input .el-input-group__prepend,.cron-expression-box .el-input .el-input-group__append,.cron-expression-box .el-input .el-input__wrapper{border-radius:0}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
[data-v-cca2de29]:export{namespace:v;elNamespace:el}[data-v-cca2de29] .el-descriptions__header{display:none!important}.v-descriptions-header__title[data-v-cca2de29]:after{position:absolute;top:3px;left:-10px;width:4px;height:70%;background:var(--el-color-primary);content:""}.v-descriptions-content[data-v-cca2de29] .el-descriptions__cell{width:0}

View File

@ -0,0 +1 @@
import{e,W as l,f as a,k as t,r as s,x as r,ak as o,a8 as i,an as d,ac as n,bC as c,A as f,F as p,J as u}from"./index-9da7d198.js";import{E as m,a as b}from"./el-descriptions-item-be87a779.js";import"./el-tooltip-4ed993c7.js";import{E as x}from"./el-popper-2fae9050.js";import{E as v}from"./index-4dbb39b8.js";const g=f(),h=a((()=>g.getMobile)),{getPrefixCls:j}=p(),k=j("descriptions"),y=u(e({name:"Descriptions",props:{title:l.string.def(""),message:l.string.def(""),collapse:l.bool.def(!0),border:l.bool.def(!0),column:l.number.def(2),size:l.oneOf(["large","default","small"]).def("default"),direction:l.oneOf(["horizontal","vertical"]).def("horizontal"),extra:l.string.def(""),schema:{type:Array,default:()=>[]},data:{type:Object,default:()=>({})}},setup(e,{slots:l,attrs:f}){const p=a((()=>{const l=["title","message","collapse","schema","data","class"],a={...f,...e};for(const e in a)-1!==l.indexOf(e)&&delete a[e];return t(h)&&(a.direction="vertical"),a})),u=s(!0),g=()=>{e.collapse&&(u.value=!t(u))};return()=>r("div",{class:[k,"bg-[var(--el-color-white)] dark:bg-[var(--el-bg-color)] dark:border-[var(--el-border-color)] dark:border-1px"]},[e.title?r("div",{class:[`${k}-header`,"relative h-50px flex justify-between items-center layout-border__bottom px-10px cursor-pointer"],onClick:g},[r("div",{class:[`${k}-header__title`,"relative font-18px font-bold ml-10px"]},[r("div",{class:"flex items-center"},[e.title,e.message?r(x,{content:e.message,placement:"right"},{default:()=>[r(o,{icon:"bi:question-circle-fill",class:"ml-5px",size:14},null)]}):null])]),e.collapse?r(o,{icon:u.value?"ep:arrow-down":"ep:arrow-up"},null):null]):null,r(v,null,{default:()=>[i(r("div",{class:[`${k}-content`,"p-20px"]},[r(m,t(p),{extra:()=>l.extra?l.extra():e.extra,default:()=>e.schema.map((l=>r(b,n({key:l.field},(e=>{const l=["field"],a={...e};for(const t in a)-1!==l.indexOf(t)&&delete a[t];return a})(l)),{label:()=>{var e,a;return(null==(e=l.slots)?void 0:e.label)?null==(a=l.slots)?void 0:a.label(l):l.label},default:()=>{var a,t;return(null==(a=l.slots)?void 0:a.default)?null==(t=l.slots)?void 0:t.default(e.data):c(e.data,l.field)}})))})]),[[d,t(u)]])]})])}}),[["__scopeId","data-v-cca2de29"]]);export{y as D};

View File

@ -0,0 +1 @@
import{_ as i}from"./Detail.vue_vue_type_script_setup_true_lang-f4d558dd.js";import"./Descriptions-fb3623c2.js";import"./index-9da7d198.js";import"./el-descriptions-item-be87a779.js";import"./vnode-ae242abb.js";import"./isNil-1f22f7b0.js";import"./use-form-common-props-9d083c67.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./index-cde97138.js";import"./index-4dbb39b8.js";export{i as default};

View File

@ -0,0 +1 @@
import{_ as i}from"./Detail.vue_vue_type_script_setup_true_lang-ec9bfbe7.js";import"./Descriptions-fb3623c2.js";import"./index-9da7d198.js";import"./el-descriptions-item-be87a779.js";import"./vnode-ae242abb.js";import"./isNil-1f22f7b0.js";import"./use-form-common-props-9d083c67.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./index-cde97138.js";import"./index-4dbb39b8.js";import"./el-switch-7720805d.js";import"./event-5568c9d8.js";import"./use-form-item-8b7f5d34.js";import"./dict-ab5a6743.js";import"./dict-b6f9162a.js";import"./dict-b26f862b.js";/* empty css */export{i as default};

View File

@ -0,0 +1 @@
import{_ as i}from"./Detail.vue_vue_type_script_setup_true_lang-d7ef4a98.js";import"./Descriptions-fb3623c2.js";import"./index-9da7d198.js";import"./el-descriptions-item-be87a779.js";import"./vnode-ae242abb.js";import"./isNil-1f22f7b0.js";import"./use-form-common-props-9d083c67.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./index-cde97138.js";import"./index-4dbb39b8.js";import"./dict-ab5a6743.js";import"./dict-b6f9162a.js";import"./dict-b26f862b.js";/* empty css */export{i as default};

View File

@ -0,0 +1 @@
import{D as e}from"./Descriptions-fb3623c2.js";import{s as a}from"./dict-ab5a6743.js";import{u as s}from"./dict-b6f9162a.js";/* empty css */import{e as t,r as l,M as i,x as n,a3 as p,o as r,l as d,k as o}from"./index-9da7d198.js";const c=t({__name:"Detail",props:{currentRow:{type:Object,default:()=>null}},setup(t){const c=l([]);(async()=>{const e=s(),a=await e.getDictObj(["vadmin_system_task_exec_strategy"]);c.value=a.vadmin_system_task_exec_strategy})();const m=i([{field:"job_id",label:"任务编号",width:"240px",span:24},{field:"name",label:"任务名称",span:24},{field:"group",label:"任务分组",span:24},{field:"job_class",label:"调用目标",span:24},{field:"exec_strategy",label:"执行策略",span:24,slots:{default:e=>{const s=e.row;return n(p,null,[n("div",null,[a(c.value,s.exec_strategy)])])}}},{field:"expression",label:"表达式",span:24},{field:"start_time",label:"开始执行时间",width:"200px",span:24},{field:"end_time",label:"执行完成时间",width:"200px",span:24},{field:"process_time",label:"耗时(秒)",width:"110px",span:24},{field:"retval",label:"任务返回值",span:24},{field:"exception",label:"异常信息",span:24},{field:"traceback",label:"堆栈跟踪",width:"100px",span:24}]);return(a,s)=>(r(),d(o(e),{schema:m,data:t.currentRow||{}},null,8,["schema","data"]))}});export{c as _};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{D as e}from"./Descriptions-fb3623c2.js";import{e as a,M as l,o as s,l as p,k as t}from"./index-9da7d198.js";const i=a({__name:"Detail",props:{currentRow:{type:Object,default:()=>null}},setup(a){const i=l([{field:"user_id",label:"操作人编号",width:"100px",span:24},{field:"user_name",label:"操作人",width:"100px",span:24},{field:"telephone",label:"手机号",width:"130px",span:24},{field:"request_method",label:"请求方法",width:"100px",span:24},{field:"client_ip",label:"客户端地址",width:"130px",span:24},{field:"tags",label:"标签",width:"130px",span:24},{field:"summary",label:"操作内容",span:24},{field:"description",label:"描述",span:24},{field:"status_code",label:"操作状态",width:"100px",span:24},{field:"route_name",label:"接口函数",width:"150px",span:24},{field:"api_path",label:"接口地址",span:24},{field:"params",label:"请求参数",span:24},{field:"browser",label:"浏览器",width:"150px",span:24},{field:"system",label:"系统",width:"150px",span:24},{field:"process_time",label:"总耗时",span:24},{field:"create_datetime",label:"操作时间",span:24}]);return(l,d)=>(s(),p(t(e),{schema:i,data:a.currentRow||{}},null,8,["schema","data"]))}});export{i as _};

View File

@ -0,0 +1 @@
:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}:export{namespace:v;elNamespace:el}.el-dialog__header{margin-right:0!important;border-bottom:1px solid var(--el-border-color);padding:0;height:54px}.el-dialog__body{padding:15px!important}.el-dialog__footer{border-top:1px solid var(--el-border-color)}.el-dialog__headerbtn{top:0}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{e,r as t,o as s,l as r,m as i,x as p,k as o}from"./index-9da7d198.js";import{E as m,a as _}from"./el-col-d9273186.js";import{_ as l}from"./DictDetail.vue_vue_type_script_setup_true_lang-4a0d50e2.js";import{_ as u}from"./DictType.vue_vue_type_script_setup_true_lang-653a118c.js";import"./dict-b26f862b.js";import"./Table.vue_vue_type_script_lang-5256bd69.js";import"./el-message-box-24354127.js";import"./el-button-8f21380c.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";import"./el-input-26eda071.js";import"./event-5568c9d8.js";import"./isNil-1f22f7b0.js";import"./el-overlay-037540a2.js";import"./el-checkbox-group-b617b779.js";import"./vnode-ae242abb.js";import"./useForm-ecbcdb43.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-date-picker-f32b0b71.js";import"./debounce-778af7ed.js";import"./el-switch-7720805d.js";import"./el-divider-fc00d058.js";import"./el-progress-69812d34.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";import"./index-14d9f390.js";import"./strings-e2e316bd.js";import"./index-4dbb39b8.js";import"./el-table-column-102f47a6.js";import"./el-image-viewer-83790b35.js";import"./el-dropdown-item-c082162c.js";import"./refs-4f0941bf.js";/* empty css */import"./_Uint8Array-bbcc3a61.js";import"./Search.vue_vue_type_script_setup_true_lang-a57e37eb.js";import"./useIcon-6417bbff.js";import"./ContentWrap.vue_vue_type_script_setup_true_lang-9c7e578a.js";import"./el-card-5fa288fa.js";import"./Write.vue_vue_type_script_setup_true_lang-936b70dd.js";import"./useValidator-e352e7a8.js";import"./Dialog.vue_vue_type_style_index_0_lang-fcbfdb5d.js";import"./Write.vue_vue_type_script_setup_true_lang-4fc8089e.js";const a=e({name:"SystemDict",__name:"Dict",setup(e){const a=t(),j=e=>{a.value=e};return(e,t)=>(s(),r(o(_),null,{default:i((()=>[p(o(m),{xs:24,sm:24,md:12,lg:12,xl:12},{default:i((()=>[p(u,{onUpdateDictTypeId:j})])),_:1}),p(o(m),{xs:24,sm:24,md:12,lg:12,xl:12},{default:i((()=>[p(l,{"dict-type-id":a.value},null,8,["dict-type-id"])])),_:1})])),_:1}))}});export{a as default};

View File

@ -0,0 +1 @@
import{_ as e}from"./DictDetail.vue_vue_type_script_setup_true_lang-4a0d50e2.js";import"./dict-b26f862b.js";import"./index-9da7d198.js";import"./Table.vue_vue_type_script_lang-5256bd69.js";import"./el-message-box-24354127.js";import"./el-button-8f21380c.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";import"./el-input-26eda071.js";import"./event-5568c9d8.js";import"./isNil-1f22f7b0.js";import"./el-overlay-037540a2.js";import"./el-checkbox-group-b617b779.js";import"./vnode-ae242abb.js";import"./useForm-ecbcdb43.js";import"./el-col-d9273186.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-date-picker-f32b0b71.js";import"./debounce-778af7ed.js";import"./el-switch-7720805d.js";import"./el-divider-fc00d058.js";import"./el-progress-69812d34.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";import"./index-14d9f390.js";import"./strings-e2e316bd.js";import"./index-4dbb39b8.js";import"./el-table-column-102f47a6.js";import"./el-image-viewer-83790b35.js";import"./el-dropdown-item-c082162c.js";import"./refs-4f0941bf.js";/* empty css */import"./_Uint8Array-bbcc3a61.js";import"./Search.vue_vue_type_script_setup_true_lang-a57e37eb.js";import"./useIcon-6417bbff.js";import"./ContentWrap.vue_vue_type_script_setup_true_lang-9c7e578a.js";import"./el-card-5fa288fa.js";import"./Write.vue_vue_type_script_setup_true_lang-936b70dd.js";import"./useValidator-e352e7a8.js";import"./Dialog.vue_vue_type_style_index_0_lang-fcbfdb5d.js";export{e as default};

View File

@ -0,0 +1 @@
import{a as e,b as a,d as l,c as t,p as i}from"./dict-b26f862b.js";import{u as s,_ as o}from"./Table.vue_vue_type_script_lang-5256bd69.js";import{e as u,W as d,G as n,M as r,x as p,a3 as c,N as v,r as _,w as m,o as f,j as g,m as y,k as b,ao as w,z as h}from"./index-9da7d198.js";import{E as k}from"./el-button-8f21380c.js";import{E as j}from"./el-switch-7720805d.js";import{a as z,E as D}from"./el-col-d9273186.js";import{_ as x}from"./Search.vue_vue_type_script_setup_true_lang-a57e37eb.js";import{_ as R}from"./ContentWrap.vue_vue_type_script_setup_true_lang-9c7e578a.js";import{_ as C}from"./Write.vue_vue_type_script_setup_true_lang-936b70dd.js";import{_ as I}from"./Dialog.vue_vue_type_style_index_0_lang-fcbfdb5d.js";const S=u({__name:"DictDetail",props:{dictTypeId:d.number.def(void 0)},setup(u){const d=u,{t:S}=n(),{tableRegister:T,tableState:U,tableMethods:L}=s({fetchDataApi:async()=>{const{pageSize:e,currentPage:l}=U,t=await a({page:b(l),limit:b(e),dict_type_id:d.dictTypeId,...b($)});return{list:t.data||[],total:t.count||0}},fetchDelApi:async e=>200===(await l(e)).code}),{dataList:P,loading:A,total:E,pageSize:V,currentPage:W}=U,{getList:M,delList:N}=L,G=r([{field:"id",label:"字典编号",show:!1,disabled:!1},{field:"label",label:"字典标签",show:!0,disabled:!0},{field:"value",label:"字典键值",show:!0},{field:"order",label:"字典排序",show:!0},{field:"disabled",label:"是否禁用",show:!0,slots:{default:e=>{const a=e.row;return p(c,null,[p(j,{value:!a.disabled,disabled:!0},null)])}}},{field:"remark",label:"备注",show:!1},{field:"create_datetime",label:"创建时间",show:!1},{field:"action",width:"120px",label:"操作",show:!0,slots:{default:e=>{const a=e.row;return p(c,null,[p(k,{type:"primary",link:!0,size:"small",onClick:()=>Z(a)},{default:()=>[v("编辑")]}),p(k,{type:"danger",loading:B.value,link:!0,size:"small",onClick:()=>F(a)},{default:()=>[v("删除")]})])}}}]),K=r([{field:"label",label:"字典标签",component:"Input",componentProps:{clearable:!1}}]),$=_({}),q=e=>{W.value=1,$.value=e,M()},B=_(!1),F=async e=>{B.value=!0,await N(!0,[e.id]).finally((()=>{B.value=!1}))},H=_(!1),J=_(""),O=_(),Q=_(""),X=_(),Y=_(!1),Z=async a=>{const l=await e(a.id);l&&(J.value="编辑字段元素",Q.value="edit",O.value=l.data,H.value=!0)},ee=()=>{J.value="新增字段元素",Q.value="add",O.value=void 0,H.value=!0},ae=async()=>{const e=b(X),a=await(null==e?void 0:e.submit());if(a){Y.value=!0;try{const e=_({});"add"===Q.value?(e.value=await t(a),e.value&&(H.value=!1,M())):"edit"===Q.value&&(e.value=await i(a),e.value&&(H.value=!1,M()))}finally{Y.value=!1}}};return m((()=>d.dictTypeId),(()=>{M()}),{deep:!0}),(e,a)=>(f(),g(c,null,[p(b(R),null,{default:y((()=>[p(b(x),{schema:K,onReset:q,onSearch:q},null,8,["schema"]),p(b(o),{"current-page":b(W),"onUpdate:currentPage":a[0]||(a[0]=e=>w(W)?W.value=e:null),"page-size":b(V),"onUpdate:pageSize":a[1]||(a[1]=e=>w(V)?V.value=e:null),showAction:"",activeUID:"detail",columns:G,"default-expand-all":"","node-key":"id",data:b(P),loading:b(A),pagination:{total:b(E)},onRegister:b(T),onRefresh:b(M)},{toolbar:y((()=>[p(b(z),{gutter:10},{default:y((()=>[p(b(D),{span:1.5},{default:y((()=>[p(b(k),{type:"primary",onClick:ee},{default:y((()=>[v("新增字典元素")])),_:1})])),_:1})])),_:1})])),_:1},8,["current-page","page-size","columns","data","loading","pagination","onRegister","onRefresh"])])),_:1}),p(b(I),{modelValue:H.value,"onUpdate:modelValue":a[3]||(a[3]=e=>H.value=e),title:J.value,height:650},{footer:y((()=>[p(b(k),{type:"primary",loading:Y.value,onClick:ae},{default:y((()=>[v(h(b(S)("exampleDemo.save")),1)])),_:1},8,["loading"]),p(b(k),{onClick:a[2]||(a[2]=e=>H.value=!1)},{default:y((()=>[v(h(b(S)("dialogDemo.close")),1)])),_:1})])),default:y((()=>[p(C,{ref_key:"writeRef",ref:X,"current-row":O.value,"dict-type-id":u.dictTypeId},null,8,["current-row","dict-type-id"])])),_:1},8,["modelValue","title"])],64))}});export{S as _};

View File

@ -0,0 +1 @@
import{_ as e}from"./DictType.vue_vue_type_script_setup_true_lang-653a118c.js";import"./dict-b26f862b.js";import"./index-9da7d198.js";import"./Table.vue_vue_type_script_lang-5256bd69.js";import"./el-message-box-24354127.js";import"./el-button-8f21380c.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";import"./el-input-26eda071.js";import"./event-5568c9d8.js";import"./isNil-1f22f7b0.js";import"./el-overlay-037540a2.js";import"./el-checkbox-group-b617b779.js";import"./vnode-ae242abb.js";import"./useForm-ecbcdb43.js";import"./el-col-d9273186.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-date-picker-f32b0b71.js";import"./debounce-778af7ed.js";import"./el-switch-7720805d.js";import"./el-divider-fc00d058.js";import"./el-progress-69812d34.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";import"./index-14d9f390.js";import"./strings-e2e316bd.js";import"./index-4dbb39b8.js";import"./el-table-column-102f47a6.js";import"./el-image-viewer-83790b35.js";import"./el-dropdown-item-c082162c.js";import"./refs-4f0941bf.js";/* empty css */import"./_Uint8Array-bbcc3a61.js";import"./Search.vue_vue_type_script_setup_true_lang-a57e37eb.js";import"./useIcon-6417bbff.js";import"./ContentWrap.vue_vue_type_script_setup_true_lang-9c7e578a.js";import"./el-card-5fa288fa.js";import"./Write.vue_vue_type_script_setup_true_lang-4fc8089e.js";import"./useValidator-e352e7a8.js";import"./Dialog.vue_vue_type_style_index_0_lang-fcbfdb5d.js";export{e as default};

View File

@ -0,0 +1 @@
import{f as e,h as a,i as t,j as l,k as s}from"./dict-b26f862b.js";import{u as o,_ as n}from"./Table.vue_vue_type_script_lang-5256bd69.js";import{e as i,G as u,M as r,x as d,ak as p,a3 as c,N as _,r as m,o as f,j as v,m as y,k as g,ao as w,z as h,aD as b,P as k}from"./index-9da7d198.js";import{E as j}from"./el-button-8f21380c.js";import{E as C}from"./el-switch-7720805d.js";import{a as D,E as x}from"./el-col-d9273186.js";import{_ as R}from"./Search.vue_vue_type_script_setup_true_lang-a57e37eb.js";import{_ as z}from"./ContentWrap.vue_vue_type_script_setup_true_lang-9c7e578a.js";import{_ as P}from"./Write.vue_vue_type_script_setup_true_lang-4fc8089e.js";import{_ as I}from"./Dialog.vue_vue_type_style_index_0_lang-fcbfdb5d.js";const S=i({__name:"DictType",emits:["updateDictTypeId"],setup(i,{emit:S}){const{t:T}=u(),{tableRegister:E,tableState:U,tableMethods:L}=o({fetchDataApi:async()=>{const{pageSize:e,currentPage:t}=U,l=await a({page:g(t),limit:g(e),...g(F)});return{list:l.data||[],total:l.count||0}},fetchDelApi:async e=>{const a=await t(e);return 200===a.code&&await ne(),200===a.code}}),{dataList:A,loading:V,total:M,pageSize:N,currentPage:W}=U,{getList:G,delList:K,getElTableExpose:$}=L,q=r([{field:"id",label:"字典编号",width:"80px",show:!1,disabled:!1},{field:"dict_name",label:"字典名称",show:!0,disabled:!0},{field:"dict_type",label:"字典类型",show:!0,disabled:!0,slots:{default:e=>{const a=e.row;return d(c,null,[d("span",{onClick:()=>(async e=>{const{copy:a}=b();return await a(e),k.success("复制成功")})(a.dict_type)},[d(p,{icon:"material-symbols:content-copy-rounded",class:"cursor-pointer"},null)]),d("span",null,[a.dict_type])])}}},{field:"disabled",label:"是否禁用",width:"120px",show:!0,slots:{default:e=>{const a=e.row;return d(c,null,[d(C,{value:!a.disabled,disabled:!0},null)])}}},{field:"remark",label:"备注",show:!1},{field:"create_datetime",label:"创建时间",show:!1},{field:"action",width:"120px",label:"操作",show:!0,slots:{default:e=>{const a=e.row;return d(c,null,[d(j,{type:"primary",link:!0,size:"small",onClick:()=>te(a)},{default:()=>[_("编辑")]}),d(j,{type:"danger",loading:J.value,link:!0,size:"small",onClick:()=>O(a)},{default:()=>[_("删除")]})])}}}]),B=r([{field:"dict_name",label:"字典名称",colProps:{span:24},component:"Input",componentProps:{clearable:!1}},{field:"dict_type",label:"字典类型",colProps:{span:24},component:"Input",componentProps:{clearable:!1}}]),F=m({}),H=e=>{W.value=1,F.value=e,G()},J=m(!1),O=async e=>{J.value=!0,await K(!0,[e.id]).finally((()=>{J.value=!1}))},Q=m(!1),X=m(""),Y=m(),Z=m(""),ee=m(),ae=m(!1),te=async a=>{const t=await e(a.id);t&&(X.value="编辑字典类型",Z.value="edit",Y.value=t.data,Q.value=!0)},le=()=>{X.value="新增字典类型",Z.value="add",Y.value=void 0,Q.value=!0},se=async()=>{const e=g(ee),a=await(null==e?void 0:e.submit());if(a){ae.value=!0;try{const e=m({});"add"===Z.value?(e.value=await l(a),e.value&&(Q.value=!1,G())):"edit"===Z.value&&(e.value=await s(a),e.value&&(Q.value=!1,G()))}finally{ae.value=!1}}},oe=async e=>{S("updateDictTypeId",e.id)},ne=async()=>{const e=await $();null==e||e.setCurrentRow(null),S("updateDictTypeId",null)};return(e,a)=>(f(),v(c,null,[d(g(z),null,{default:y((()=>[d(g(R),{schema:B,onReset:H,onSearch:H},null,8,["schema"]),d(g(n),{"current-page":g(W),"onUpdate:currentPage":a[0]||(a[0]=e=>w(W)?W.value=e:null),"page-size":g(N),"onUpdate:pageSize":a[1]||(a[1]=e=>w(N)?N.value=e:null),showAction:"",activeUID:"type",columns:q,"default-expand-all":"",highlightCurrentRow:!0,"node-key":"id",data:g(A),loading:g(V),pagination:{total:g(M)},onRegister:g(E),onCurrentChange:oe,onRefresh:g(G)},{toolbar:y((()=>[d(g(D),{gutter:10},{default:y((()=>[d(g(x),{span:1.5},{default:y((()=>[d(g(j),{type:"primary",onClick:le},{default:y((()=>[_("新增字典类型")])),_:1})])),_:1}),d(g(x),{span:1.5},{default:y((()=>[d(g(j),{type:"danger",onClick:ne},{default:y((()=>[_("清除选择")])),_:1})])),_:1})])),_:1})])),_:1},8,["current-page","page-size","columns","data","loading","pagination","onRegister","onRefresh"])])),_:1}),d(g(I),{modelValue:Q.value,"onUpdate:modelValue":a[3]||(a[3]=e=>Q.value=e),title:X.value,height:650},{footer:y((()=>[d(g(j),{type:"primary",loading:ae.value,onClick:se},{default:y((()=>[_(h(g(T)("exampleDemo.save")),1)])),_:1},8,["loading"]),d(g(j),{onClick:a[2]||(a[2]=e=>Q.value=!1)},{default:y((()=>[_(h(g(T)("dialogDemo.close")),1)])),_:1})])),default:y((()=>[d(P,{ref_key:"writeRef",ref:ee,"current-row":Y.value},null,8,["current-row"])])),_:1},8,["modelValue","title"])],64))}});export{S as _};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{_ as t}from"./Email.vue_vue_type_script_setup_true_lang-ecc38079.js";import"./useForm-ecbcdb43.js";import"./index-9da7d198.js";import"./el-col-d9273186.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./isNil-1f22f7b0.js";import"./index-cde97138.js";import"./use-form-common-props-9d083c67.js";import"./el-input-26eda071.js";import"./event-5568c9d8.js";import"./use-form-item-8b7f5d34.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-checkbox-group-b617b779.js";import"./el-button-8f21380c.js";import"./el-date-picker-f32b0b71.js";import"./debounce-778af7ed.js";import"./el-switch-7720805d.js";import"./el-divider-fc00d058.js";import"./el-progress-69812d34.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";import"./index-14d9f390.js";import"./strings-e2e316bd.js";import"./index-4dbb39b8.js";import"./useValidator-e352e7a8.js";export{t as default};

View File

@ -0,0 +1 @@
import{u as a,F as e}from"./useForm-ecbcdb43.js";import{e as s,W as t,M as o,x as l,N as r,a3 as n,r as i,P as p,dF as m,o as c,l as u,k as d,ai as f}from"./index-9da7d198.js";import{E as w}from"./el-button-8f21380c.js";import{u as _}from"./useValidator-e352e7a8.js";const P=s({__name:"Email",props:{tabId:t.number},setup(s){const t=s,{required:P}=_(),b=o([{field:"email_access",label:"邮箱账号",colProps:{span:24},component:"Input",componentProps:{style:{width:"500px"}}},{field:"email_password",label:"邮箱密码",colProps:{span:24},component:"Input",componentProps:{style:{width:"500px"}}},{field:"email_server",label:"邮箱服务器",colProps:{span:24},component:"Input",componentProps:{style:{width:"500px"}}},{field:"email_port",label:"服务器端口",colProps:{span:24},component:"Input",componentProps:{style:{width:"500px"}}},{field:"active",label:"",colProps:{span:24},formItemProps:{slots:{default:()=>l(n,null,[l(w,{loading:E.value,type:"primary",onClick:k},{default:()=>[r("立即提交")]})])}}}]),v=o({email_access:[P()],email_password:[P()],email_port:[P()],email_server:[P()]}),{formRegister:y,formMethods:x}=a(),{setValues:h,getFormData:I,getElFormExpose:g}=x;let F=i({});const j=async()=>{const a=await f({tab_id:t.tabId});if(a){await h(a.data),F.value=a.data;const e=await g();null==e||e.clearValidate()}},E=i(!1),k=async()=>{const a=await g();if(await(null==a?void 0:a.validate())){const a=await I();if(E.value=!0,!a)return E.value=!1,p.error("未获取到数据");try{if(await m(a))return j(),p.success("更新成功")}finally{E.value=!1}}};return j(),(a,s)=>(c(),u(d(e),{rules:v,onRegister:d(y),schema:b},null,8,["rules","onRegister","schema"]))}});export{P as _};

View File

@ -0,0 +1 @@
import{e,W as r,o as s,j as t,y as o,z as a,x as n,m as i,k as l,G as m,N as u}from"./index-9da7d198.js";import{E as c}from"./el-button-8f21380c.js";const p={class:"flex justify-center"},x={class:"text-center"},f=["src"],d={class:"text-14px text-[var(--el-color-info)]"},g={class:"mt-20px"},v=e({__name:"Error",props:{type:r.string.validate((e=>["404","500","403"].includes(e))).def("404")},emits:["errorClick"],setup(e,{emit:r}){const v=e,{t:y}=m(),T={404:{url:"/assets/404-1759fece.svg",message:y("error.pageError"),buttonText:y("error.returnToHome")},500:{url:"/assets/500-8fda557c.svg",message:y("error.networkError"),buttonText:y("error.returnToHome")},403:{url:"/assets/403-af24f6bf.svg",message:y("error.noPermission"),buttonText:y("error.returnToHome")}},b=()=>{r("errorClick",v.type)};return(r,m)=>(s(),t("div",p,[o("div",x,[o("img",{width:"350",src:T[e.type].url,alt:""},null,8,f),o("div",d,a(T[e.type].message),1),o("div",g,[n(l(c),{type:"primary",onClick:b},{default:i((()=>[u(a(T[e.type].buttonText),1)])),_:1})])])]))}});export{v as _};

View File

@ -0,0 +1 @@
import{_ as t}from"./Finance.vue_vue_type_script_setup_true_lang-3fb27710.js";import"./index-9da7d198.js";import"./el-col-d9273186.js";import"./el-divider-fc00d058.js";import"./el-skeleton-item-c29f45f2.js";import"./el-table-column-102f47a6.js";import"./el-popper-2fae9050.js";import"./isNil-1f22f7b0.js";import"./index-cde97138.js";import"./use-form-common-props-9d083c67.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./event-5568c9d8.js";import"./use-form-item-8b7f5d34.js";import"./debounce-778af7ed.js";import"./el-tooltip-4ed993c7.js";import"./el-input-26eda071.js";import"./el-date-picker-f32b0b71.js";import"./el-button-8f21380c.js";import"./Echart.vue_vue_type_script_setup_true_lang-94a01568.js";export{t as default};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{e,A as t,f as a,o,j as r,z as s,s as l,k as p,F as g}from"./index-9da7d198.js";const n=e({__name:"Footer",setup(e){const{getPrefixCls:n}=g(),c=n("footer"),i=t(),h=a((()=>i.getTitle));return(e,t)=>(o(),r("div",{class:l([p(c),"text-center text-[var(--el-text-color-placeholder)] bg-[var(--app-content-bg-color)] h-[var(--app-footer-height)] leading-[var(--app-footer-height)] dark:bg-[var(--el-bg-color)]"])}," Copyright ©2021-present "+s(h.value),3))}});export{n as _};

View File

@ -0,0 +1 @@
import{b as s,c as e,i as a,a as t,d as l,e as r,u as p,r as i,f as o,g as n,h as c,w as m,o as u,j as d,n as v,k as _,l as x,m as j,p as f,E as g,q as y,s as b,_ as k,t as h,v as w,x as S,y as z,z as E}from"./index-9da7d198.js";import{E as V}from"./el-card-5fa288fa.js";import{E as q,a as F}from"./el-col-d9273186.js";import{E as N,a as U}from"./el-tab-pane-5d623fbd.js";import{_ as W}from"./InfoWrite.vue_vue_type_script_setup_true_lang-8199338b.js";import{_ as $}from"./PasswordWrite.vue_vue_type_script_setup_true_lang-1f4a7f46.js";import{a as A}from"./avatar-d437f563.js";import{s as B}from"./dict-ab5a6743.js";import{u as D}from"./dict-b6f9162a.js";import"./strings-e2e316bd.js";import"./event-5568c9d8.js";import"./vnode-ae242abb.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";import"./useForm-ecbcdb43.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./isNil-1f22f7b0.js";import"./el-input-26eda071.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-checkbox-group-b617b779.js";import"./el-button-8f21380c.js";import"./el-date-picker-f32b0b71.js";import"./debounce-778af7ed.js";import"./el-switch-7720805d.js";import"./el-divider-fc00d058.js";import"./el-progress-69812d34.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";import"./index-14d9f390.js";import"./index-4dbb39b8.js";import"./useValidator-e352e7a8.js";import"./dict-b26f862b.js";const H=s({size:{type:[Number,String],values:e,default:"",validator:s=>a(s)},shape:{type:String,values:["circle","square"],default:"circle"},icon:{type:t},src:{type:String,default:""},alt:String,srcSet:String,fit:{type:l(String),default:"cover"}}),I={error:s=>s instanceof Event},O=["src","alt","srcset"],P=r({name:"ElAvatar"});const C=h(k(r({...P,props:H,emits:I,setup(s,{emit:e}){const t=s,l=p("avatar"),r=i(!1),k=o((()=>{const{size:s,icon:e,shape:a}=t,r=[l.b()];return n(s)&&r.push(l.m(s)),e&&r.push(l.m("icon")),a&&r.push(l.m(a)),r})),h=o((()=>{const{size:s}=t;return a(s)?l.cssVarBlock({size:c(s)||""}):void 0})),w=o((()=>({objectFit:t.fit})));function S(s){r.value=!0,e("error",s)}return m((()=>t.src),(()=>r.value=!1)),(s,e)=>(u(),d("span",{class:b(_(k)),style:v(_(h))},[!s.src&&!s.srcSet||r.value?s.icon?(u(),x(_(g),{key:1},{default:j((()=>[(u(),x(f(s.icon)))])),_:1})):y(s.$slots,"default",{key:2}):(u(),d("img",{key:0,src:s.src,alt:s.alt,srcset:s.srcSet,style:v(_(w)),onError:S},null,44,O))],6))}}),[["__file","/home/runner/work/element-plus/element-plus/packages/components/avatar/src/avatar.vue"]])),G={class:"p-20px"},J={class:"text-center"},K={style:{"font-size":"24px"}},L={class:"pl-20px pt-30px"},M={class:"leading-relaxed"},Q=z("span",{class:"pl-10px w-80px inline-block"},"姓名:",-1),R={class:"pl-10px"},T={class:"leading-relaxed"},X=z("span",{class:"pl-10px w-80px inline-block"},"昵称:",-1),Y={class:"pl-10px"},Z={class:"leading-relaxed"},ss=z("span",{class:"pl-10px w-80px inline-block"},"手机号:",-1),es={class:"pl-10px"},as={class:"leading-relaxed"},ts=z("span",{class:"pl-10px w-80px inline-block"},"性别:",-1),ls={class:"pl-10px"},rs={class:"leading-relaxed"},ps=z("span",{class:"pl-10px w-80px inline-block"},"角色:",-1),is={class:"pl-10px"},os={class:"leading-relaxed"},ns=z("span",{class:"pl-10px w-80px inline-block"},"创建时间:",-1),cs={class:"pl-10px"},ms=r({__name:"Home",setup(s){const e=i("info"),a=w();let t=i([]);(async()=>{const s=D(),e=await s.getDictObj(["sys_vadmin_gender"]);t.value=e.sys_vadmin_gender})();const l=o((()=>a.getUser));return(s,a)=>(u(),d("div",G,[S(_(F),{gutter:20},{default:j((()=>[S(_(q),{xs:24,sm:12,md:8},{default:j((()=>[S(_(V),{shadow:"hover",class:"pb-30px"},{default:j((()=>{var s;return[z("div",J,[S(_(C),{size:80,src:l.value.avatar?l.value.avatar:_(A)},null,8,["src"]),z("p",K,E(l.value.name),1)]),z("div",L,[z("div",M,[Q,z("span",R,E(l.value.name),1)]),z("div",T,[X,z("span",Y,E(l.value.nickname),1)]),z("div",Z,[ss,z("span",es,E(l.value.telephone),1)]),z("div",as,[ts,z("span",ls,E(_(B)(_(t),l.value.gender)),1)]),z("div",rs,[ps,z("span",is,E(null==(s=l.value.roles)?void 0:s.map((s=>s.name)).join(",")),1)]),z("div",os,[ns,z("span",cs,E(l.value.create_datetime),1)])])]})),_:1})])),_:1}),S(_(q),{xs:24,sm:12,md:16},{default:j((()=>[S(_(V),{shadow:"hover"},{default:j((()=>[S(_(N),{modelValue:e.value,"onUpdate:modelValue":a[0]||(a[0]=s=>e.value=s)},{default:j((()=>[S(_(U),{label:"基本信息",name:"info"},{default:j((()=>[S(W)])),_:1}),S(_(U),{label:"修改密码",name:"password"},{default:j((()=>[S($)])),_:1})])),_:1},8,["modelValue"])])),_:1})])),_:1})])),_:1})]))}});export{ms as default};

View File

@ -0,0 +1 @@
.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size-small:24px;--el-avatar-size:40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size)}.el-avatar>img{display:block;width:100%;height:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{_ as o}from"./Import.vue_vue_type_script_setup_true_lang-7dc203dd.js";import"./index-9da7d198.js";import"./el-link-d575b38b.js";import"./el-col-d9273186.js";import"./el-button-8f21380c.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";import"./el-table-column-102f47a6.js";import"./el-popper-2fae9050.js";import"./isNil-1f22f7b0.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./event-5568c9d8.js";import"./debounce-778af7ed.js";import"./el-tooltip-4ed993c7.js";import"./el-progress-69812d34.js";import"./el-popconfirm-3191559c.js";/* empty css */export{o as default};

View File

@ -0,0 +1 @@
import{e,r as a,o as l,j as t,y as s,x as r,m as n,N as i,k as o,z as p,l as u,a3 as d,P as m,ax as c,ay as f}from"./index-9da7d198.js";import{E as _}from"./el-link-d575b38b.js";import{E as y,a as b}from"./el-col-d9273186.js";import{E as v}from"./el-button-8f21380c.js";import{E as g,a as h}from"./el-table-column-102f47a6.js";import"./el-tag-aef2ce12.js";import"./el-tooltip-4ed993c7.js";import{E as w}from"./el-popper-2fae9050.js";import{E as x}from"./el-progress-69812d34.js";import{E as k}from"./el-popconfirm-3191559c.js";/* empty css */const j=s("span",null,"导入步骤:",-1),E={style:{"margin-top":"7px"}},z=s("li",{style:{"margin-top":"7px"}},"编辑模板文件,(将需要导入的数据按格式填写进去)",-1),C=s("li",{style:{"margin-top":"7px"}},"上传模板文件,点击确认导入",-1),L=s("li",{style:{"margin-top":"7px"}},"查看导入结果,是否全部导入",-1),X={class:"mt-10px"},M={class:"flex justify-between mr-10px"},B=s("span",null,"导入结果",-1),F={style:{color:"red"}},S=e({__name:"Import",emits:["getList"],setup(e,{emit:S}){const $=e=>{const a=["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"].includes(e.type),l=e.size/1024/1024<10;return a||m.error("上传文件必须是 XLSX 格式!"),l||m.error("上传文件大小不能超过 10MB!"),a&&l},q=a(),D=a([]),H=a([]),I=async e=>{D.value=[],D.value.push({filename:e.file.name,filesize:(e.file.size/1024).toFixed(1)+"KB",status:"上传成功"}),q.value=e.file},K=()=>{D.value=[],q.value=null},N=a(!1),P=a(0),R=async()=>{N.value=!0;const e=new FormData;e.append("file",q.value);try{const a=await c(e);a&&(H.value.push({filename:q.value.name,success_number:a.data.success_number,error_number:a.data.error_number,error_url:a.data.error_url}),P.value+=a.data.success_number,K(),S("getList"))}finally{N.value=!1}},A=async()=>{m.info("正在下载请稍等!");const e=await f();if(e){const a=document.createElement("a");a.style.display="none",a.href=e.data.url,a.target="_blank",a.download=e.data.filename;const l=new MouseEvent("click");a.dispatchEvent(l)}};return(e,a)=>(l(),t(d,null,[s("div",null,[j,s("ol",null,[s("li",E,[r(o(_),{onClick:A,target:"_blank",type:"primary"},{default:n((()=>[i(" 下载最新批量导入模板 ")])),_:1})]),z,C,L])]),s("div",null,[r(o(b),{gutter:10,class:"!mt-0 !mr-0"},{default:n((()=>[r(o(y),{span:1.5},{default:n((()=>[s("div",null,[r(o(x),{action:"","http-request":I,data:{path:"users"},"show-file-list":!1,"before-upload":$,accept:".xlsx",disabled:D.value.length>0},{default:n((()=>[r(o(w),{effect:"dark",content:"只支持上传XLSX文件",placement:"top"},{default:n((()=>[r(o(v),{type:"primary",size:"small",disabled:D.value.length>0},{default:n((()=>[i("上传文件")])),_:1},8,["disabled"])])),_:1})])),_:1},8,["disabled"])])])),_:1}),r(o(y),{span:1.5},{default:n((()=>[r(o(v),{type:"primary",size:"small",disabled:0===D.value.length,loading:N.value,onClick:R},{default:n((()=>[i("确认导入")])),_:1},8,["disabled","loading"])])),_:1})])),_:1}),r(o(h),{data:D.value,border:!0,style:{width:"100%"},class:"mt-10px"},{default:n((()=>[r(o(g),{prop:"filename",label:"文件名称",align:"left"}),r(o(g),{prop:"filesize",label:"文件大小",width:"100",align:"center"}),r(o(g),{prop:"status",label:"上传状态",width:"100",align:"center"}),r(o(g),{fixed:"right",label:"操作",width:"130",align:"center"},{default:n((()=>[r(o(k),{title:"确认删除吗?",onConfirm:K},{reference:n((()=>[r(o(v),{link:"",type:"primary",size:"small"},{default:n((()=>[i("删除")])),_:1})])),_:1})])),_:1})])),_:1},8,["data"])]),s("div",X,[s("div",M,[B,s("span",null,"成功导入总数:"+p(P.value),1)]),r(o(h),{data:H.value,border:!0,style:{width:"100%"},class:"mt-10px"},{default:n((()=>[r(o(g),{prop:"filename",label:"文件名称",align:"left"}),r(o(g),{prop:"success_number",label:"成功数量",width:"100",align:"center"}),r(o(g),{prop:"error_number",label:"失败数量",width:"100",align:"center"},{default:n((e=>[s("span",F,p(e.row.error_number),1)])),_:1}),r(o(g),{fixed:"right",label:"操作",width:"130",align:"center"},{default:n((e=>[e.row.error_number>0?(l(),u(o(_),{key:0,onClick:a=>(async e=>{m.info("正在下载请稍等!");const a=document.createElement("a");a.style.display="none",a.href=e.error_url,a.target="_blank",a.download=e.filename;const l=new MouseEvent("click");a.dispatchEvent(l)})(e.row),target:"_blank",type:"primary"},{default:n((()=>[i("下载失败数据")])),_:2},1032,["onClick"])):(l(),u(o(_),{key:1,type:"success",underline:!1},{default:n((()=>[i("成功全部导入")])),_:1}))])),_:1})])),_:1},8,["data"])])],64))}});export{S as _};

View File

@ -0,0 +1 @@
import{_ as t}from"./InfoWrite.vue_vue_type_script_setup_true_lang-8199338b.js";import"./useForm-ecbcdb43.js";import"./index-9da7d198.js";import"./el-col-d9273186.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./isNil-1f22f7b0.js";import"./index-cde97138.js";import"./use-form-common-props-9d083c67.js";import"./el-input-26eda071.js";import"./event-5568c9d8.js";import"./use-form-item-8b7f5d34.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-checkbox-group-b617b779.js";import"./el-button-8f21380c.js";import"./el-date-picker-f32b0b71.js";import"./debounce-778af7ed.js";import"./el-switch-7720805d.js";import"./el-divider-fc00d058.js";import"./el-progress-69812d34.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";import"./index-14d9f390.js";import"./strings-e2e316bd.js";import"./index-4dbb39b8.js";import"./useValidator-e352e7a8.js";export{t as default};

View File

@ -0,0 +1 @@
import{u as e,F as o}from"./useForm-ecbcdb43.js";import{u as s}from"./useValidator-e352e7a8.js";import{e as a,v as r,M as t,x as l,N as n,a3 as i,r as p,P as m,aj as d,o as c,l as u,k as f}from"./index-9da7d198.js";import{E as P}from"./el-button-8f21380c.js";const g=a({__name:"InfoWrite",setup(a){const{required:g,isTelephone:b}=s(),v=r(),h=t([{field:"name",label:"用户名称",component:"Input",colProps:{span:24},formItemProps:{rules:[g()]},componentProps:{style:{width:"50%"}}},{field:"nickname",label:"用户昵称",component:"Input",colProps:{span:24},componentProps:{style:{width:"50%"}}},{field:"telephone",label:"手机号",component:"Input",colProps:{span:24},formItemProps:{rules:[g(),{validator:b,trigger:"blur"}]},componentProps:{style:{width:"50%"},maxlength:11}},{field:"gender",label:"性别",colProps:{span:24},formItemProps:{rules:[g()]},component:"RadioGroup",componentProps:{options:[{label:"",value:"0"},{label:"",value:"1"}]}},{field:"save",colProps:{span:24},formItemProps:{slots:{default:()=>l(i,null,[l("div",{class:"w-[50%]"},[l(P,{loading:x.value,type:"primary",class:"w-[100%]",onClick:F},{default:()=>[n("保存")]})])])}}}]),{formRegister:w,formMethods:k}=e(),{setValues:y,getFormData:I,getElFormExpose:j}=k;y(v.getUser);const x=p(!1),F=async()=>{if(1===v.getUser.id)return m.warning("编辑账号为演示账号,无权限操作!");const e=await j();if(await(null==e?void 0:e.validate())){x.value=!0;const e=await I();try{const o=await d(e);o&&(v.updateUser(o.data),m.success("保存成功"))}finally{x.value=!1}}};return(e,s)=>(c(),u(f(o),{onRegister:f(w),schema:h,"hide-required-asterisk":"",class:"dark:border-1 dark:border-[var(--el-border-color)] dark:border-solid"},null,8,["onRegister","schema"]))}});export{g as _};

View File

@ -0,0 +1 @@
import{g as e,d as t}from"./issue-bdbecac5.js";import{u as s,_ as a}from"./Table.vue_vue_type_script_lang-5256bd69.js";import{e as l,K as o,r as i,M as r,x as p,a3 as n,N as m,o as d,l as u,m as c,k as _,ao as f}from"./index-9da7d198.js";import{E as j}from"./el-button-8f21380c.js";import{E as g}from"./el-switch-7720805d.js";import{a as h,E as b}from"./el-col-d9273186.js";import{_ as v}from"./Search.vue_vue_type_script_setup_true_lang-a57e37eb.js";import{_ as w}from"./ContentWrap.vue_vue_type_script_setup_true_lang-9c7e578a.js";import{u as y}from"./dict-b6f9162a.js";import"./el-message-box-24354127.js";import"./el-input-26eda071.js";import"./event-5568c9d8.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";import"./isNil-1f22f7b0.js";import"./el-overlay-037540a2.js";import"./el-checkbox-group-b617b779.js";import"./vnode-ae242abb.js";import"./useForm-ecbcdb43.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-date-picker-f32b0b71.js";import"./debounce-778af7ed.js";import"./el-divider-fc00d058.js";import"./el-progress-69812d34.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";import"./index-14d9f390.js";import"./strings-e2e316bd.js";import"./index-4dbb39b8.js";import"./el-table-column-102f47a6.js";import"./el-image-viewer-83790b35.js";import"./el-dropdown-item-c082162c.js";import"./refs-4f0941bf.js";/* empty css */import"./_Uint8Array-bbcc3a61.js";import"./useIcon-6417bbff.js";import"./el-card-5fa288fa.js";import"./dict-b26f862b.js";const x=l({name:"HelpIssue",__name:"Issue",setup(l){const{push:x}=o(),{tableRegister:k,tableState:S,tableMethods:z}=s({fetchDataApi:async()=>{const{pageSize:t,currentPage:s}=S,a=await e({page:_(s),limit:_(t),..._(K)});return{list:a.data||[],total:a.count||0}},fetchDelApi:async e=>200===(await t(e)).code}),{dataList:P,loading:R,total:A,pageSize:C,currentPage:I}=S,{getList:L,delList:U}=z,D=i([]);(async()=>{const e=y(),t=await e.getDictObj(["sys_vadmin_platform"]);D.value=t.sys_vadmin_platform})();const E=r([{field:"id",label:"编号",show:!0,disabled:!0,width:"120px"},{field:"category.name",label:"类别名称",width:"200px",show:!0,disabled:!0},{field:"title",label:"标题",show:!0},{field:"view_number",label:"查看次数",show:!0,width:"100px"},{field:"is_active",label:"是否可见",show:!0,width:"100px",slots:{default:e=>{const t=e.row;return p(n,null,[p(g,{value:t.is_active,disabled:!0},null)])}}},{field:"create_datetime",label:"创建时间",show:!0,width:"200px",sortable:!0},{field:"create_user.name",label:"创建人",show:!0,width:"100px"},{field:"action",width:"120px",label:"操作",show:!0,slots:{default:e=>{const t=e.row;return p(n,null,[p(j,{type:"primary",link:!0,size:"small",onClick:()=>$(t)},{default:()=>[m("编辑")]}),p(j,{type:"danger",loading:N.value,link:!0,size:"small",onClick:()=>O(t)},{default:()=>[m("删除")]})])}}}]),H=r([{field:"name",label:"类别名称",component:"Input",componentProps:{clearable:!0,style:{width:"214px"}}},{field:"platform",label:"登录平台",component:"Select",componentProps:{style:{width:"214px"},options:D.value}},{field:"is_active",label:"是否可见",component:"Select",componentProps:{style:{width:"214px"},options:[{label:"可见",value:!0},{label:"不可见",value:!1}]}}]),K=i({}),M=e=>{I.value=1,K.value=e,L()},N=i(!1),O=async e=>{N.value=!0,await U(!0,[e.id]).finally((()=>{N.value=!1}))},$=async e=>{x(`/help/issue/form?id=${e.id}`)},q=()=>{x("/help/issue/form")};return(e,t)=>(d(),u(_(w),null,{default:c((()=>[p(_(v),{schema:H,onReset:M,onSearch:M},null,8,["schema"]),p(_(a),{"current-page":_(I),"onUpdate:currentPage":t[0]||(t[0]=e=>f(I)?I.value=e:null),"page-size":_(C),"onUpdate:pageSize":t[1]||(t[1]=e=>f(C)?C.value=e:null),showAction:"",columns:E,"default-expand-all":"","node-key":"id",data:_(P),loading:_(R),pagination:{total:_(A)},onRegister:_(k),onRefresh:_(L)},{toolbar:c((()=>[p(_(h),{gutter:10},{default:c((()=>[p(_(b),{span:1.5},{default:c((()=>[p(_(j),{type:"primary",onClick:q},{default:c((()=>[m("新增常见问题")])),_:1})])),_:1})])),_:1})])),_:1},8,["current-page","page-size","columns","data","loading","pagination","onRegister","onRefresh"])])),_:1}))}});export{x as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
:export{namespace:v;elNamespace:el}.left-view{width:100%;height:100%;box-shadow:0 0 3px #00f;display:flex;flex-direction:column;background-color:#061e5d80;border-top:2px solid rgba(1,153,209,.5);padding:10px 20px}.left-view .main-content{flex:1;display:flex;flex-direction:column;margin-top:10px}.left-view .main-content .dv-border-box-11 .border-box-content{justify-content:center;align-items:center;display:-webkit-flex}.left-view .main-content .dv-border-box-11 .data-view{position:relative;height:100%;width:100%;justify-content:center;display:-webkit-flex}.left-view .main-content .dv-border-box-11 .data-view .data-title{font-size:35px;display:block;position:absolute;top:40%}.left-view .main-content .dv-border-box-11 .data-view .data-desc{font-size:14px;display:block;position:absolute;bottom:10%}

View File

@ -0,0 +1 @@
import{_ as e}from"./Left.vue_vue_type_style_index_0_lang-f909ab99.js";import"./index-9da7d198.js";import"./datav-vue3.es-2f340315.js";export{e as default};

View File

@ -0,0 +1 @@
import{e as a,W as t,o as s,j as e,y as l,z as d,x as i,m as c,k as n}from"./index-9da7d198.js";import{C as p}from"./datav-vue3.es-2f340315.js";const m={class:"left-view box-border"},o={class:"text-3xl font-bold"},u={class:"main-content"},v={class:"data-view"},f={class:"data-title"},r=l("span",{class:"data-desc"},"提示低于80ug/m³适合长期居住",-1),_={class:"data-view"},x={class:"data-title"},g=l("span",{class:"data-desc"},"提示低于75ug/m³适合长期居住",-1),w={class:"data-view"},D={class:"data-title"},b=l("span",{class:"data-desc"},"提示当前室外温度为25°C",-1),j={class:"data-view"},h={class:"data-title"},C=l("span",{class:"data-desc"},"提示当前室外湿度为38%RH",-1),M=a({__name:"Left",props:{leftData:{type:Object,required:!0},activeMenuName:t.string},setup(a){const t=a;return(a,M)=>(s(),e("div",m,[l("span",o,d(t.activeMenuName),1),l("div",u,[i(n(p),{title:"室内甲醛"},{default:c((()=>[l("div",v,[l("span",f,d(t.leftData.hcho)+"ug/m³",1),r])])),_:1}),i(n(p),{title:"室内PM2.5"},{default:c((()=>[l("div",_,[l("span",x,d(t.leftData.pm25)+"ug/m³",1),g])])),_:1}),i(n(p),{title:"室内温度"},{default:c((()=>[l("div",w,[l("span",D,d(t.leftData.temp)+"°C",1),b])])),_:1}),i(n(p),{title:"室内湿度"},{default:c((()=>[l("div",j,[l("span",h,d(t.leftData.hum)+"%RH",1),C])])),_:1})])]))}});export{M as _};

View File

@ -0,0 +1 @@
[data-v-52ce9834]:export{namespace:v;elNamespace:el}[data-v-52ce9834] .el-switch__core .el-switch__inner .is-icon{overflow:visible}

View File

@ -0,0 +1 @@
import{e as a,A as o,r as e,o as s,l,s as c,k as n,F as t,J as r,c_ as i,c$ as m,d0 as d,U as u,d1 as p,W as g,cM as _,f,$ as j,m as v,x as h,j as w,a4 as L,a3 as C,N as b,z as k}from"./index-9da7d198.js";import{E as I}from"./el-switch-7720805d.js";import{u as E}from"./useIcon-6417bbff.js";import"./el-button-8f21380c.js";import{E as x,a as z,b as D}from"./el-dropdown-item-c082162c.js";import"./el-popper-2fae9050.js";const V="var(--el-color-black)",A=r(a({__name:"ThemeSwitch",setup(a){const{getPrefixCls:r}=t(),i=r("theme-switch"),m=E({icon:"emojione-monotone:sun",color:"#fde047"}),d=E({icon:"emojione-monotone:crescent-moon",color:"#fde047"}),u=o(),p=e(u.getIsDark),g=a=>{u.setIsDark(a)};return(a,o)=>(s(),l(n(I),{class:c(n(i)),modelValue:p.value,"onUpdate:modelValue":o[0]||(o[0]=a=>p.value=a),"inline-prompt":"","border-color":V,"inactive-color":V,"active-color":V,"active-icon":n(m),"inactive-icon":n(d),onChange:g},null,8,["class","modelValue","active-icon","inactive-icon"]))}}),[["__scopeId","data-v-52ce9834"]]),P=()=>({changeLocale:async a=>{const o=i.global,e=await m(Object.assign({"../../locales/en.ts":()=>d((()=>import("./en-c7b65732.js")),[]),"../../locales/zh-CN.ts":()=>d((()=>import("./zh-CN-a83d200e.js")),[])}),`../../locales/${a}.ts`);o.setLocaleMessage(a,e.default),(a=>{const o=u();"legacy"===i.mode?i.global.locale=a:i.global.locale.value=a,o.setCurrentLocale({lang:a}),p(a)})(a)}}),T=a({__name:"LocaleDropdown",props:{color:g.string.def("")},setup(a){const{getPrefixCls:o}=t(),e=o("locale-dropdown"),r=_(),i=f((()=>r.getLocaleMap)),m=f((()=>r.getCurrentLocale)),d=a=>{if(a===n(m).lang)return;window.location.reload(),r.setCurrentLocale({lang:a});const{changeLocale:o}=P();o(a)};return(o,t)=>{const r=j("Icon");return s(),l(n(z),{class:c(n(e)),trigger:"click",onCommand:d},{dropdown:v((()=>[h(n(x),null,{default:v((()=>[(s(!0),w(C,null,L(i.value,(a=>(s(),l(n(D),{key:a.lang,command:a.lang},{default:v((()=>[b(k(a.name),1)])),_:2},1032,["command"])))),128))])),_:1})])),default:v((()=>[h(r,{size:18,icon:"ion:language-sharp",class:c(["cursor-pointer !p-0",o.$attrs.class]),color:a.color},null,8,["class","color"])])),_:1},8,["class"])}}});export{A as T,T as _};

View File

@ -0,0 +1 @@
[data-v-062c9279]:export{namespace:v;elNamespace:el}.v-login[data-v-062c9279]{overflow:auto}.v-login__left[data-v-062c9279]:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;background-image:url(/assets/login-bg-e36b8ca7.svg);background-position:center;background-repeat:no-repeat;content:""}

View File

@ -0,0 +1 @@
import{e,A as t,r as s,f as l,o as a,j as i,x as o,m as r,y as p,s as m,k as x,z as n,B as c,T as d,C as u,l as _,D as g,F as v,G as j,H as f,I as h,J as w}from"./index-9da7d198.js";import{_ as y}from"./LoginForm.vue_vue_type_script_setup_true_lang-06e4cf32.js";import{_ as b}from"./TelephoneCodeForm.vue_vue_type_script_setup_true_lang-c75a388b.js";import{T as k,_ as T}from"./LocaleDropdown.vue_vue_type_script_setup_true_lang-7d558651.js";import"./useForm-ecbcdb43.js";import"./el-col-d9273186.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./isNil-1f22f7b0.js";import"./index-cde97138.js";import"./use-form-common-props-9d083c67.js";import"./el-input-26eda071.js";import"./event-5568c9d8.js";import"./use-form-item-8b7f5d34.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-checkbox-group-b617b779.js";import"./el-button-8f21380c.js";import"./el-date-picker-f32b0b71.js";import"./debounce-778af7ed.js";import"./el-switch-7720805d.js";import"./el-divider-fc00d058.js";import"./el-progress-69812d34.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";import"./index-14d9f390.js";import"./strings-e2e316bd.js";import"./index-4dbb39b8.js";import"./el-link-d575b38b.js";import"./useValidator-e352e7a8.js";import"./useIcon-6417bbff.js";import"./el-dropdown-item-c082162c.js";import"./refs-4f0941bf.js";const I={class:"relative flex mx-auto min-h-100vh"},L={class:"flex items-center relative text-white"},F=["src"],C={class:"text-20px font-bold"},z={class:"flex justify-center items-center h-[calc(100%-60px)]"},A=(e=>(f("data-v-062c9279"),e=e(),h(),e))((()=>p("img",{src:"/assets/login-box-bg-fec91044.svg",key:"1",alt:"",class:"w-350px"},null,-1))),B={class:"text-3xl text-white",key:"2"},D={class:"mt-5 font-normal text-white text-14px",key:"3"},P={class:"flex-1 p-30px lt-sm:p-10px dark:bg-[var(--login-bg-color)] relative"},$={class:"flex justify-between items-center text-white at-2xl:justify-end at-xl:justify-end"},q={class:"flex items-center at-2xl:hidden at-xl:hidden"},G=["src"],H={class:"text-20px font-bold"},J={class:"flex justify-end items-center space-x-10px"},N={class:"h-full flex items-center m-auto w-[100%] at-2xl:max-w-500px at-xl:max-w-500px at-md:max-w-500px at-lg:max-w-500px"},R=w(e({__name:"Login",setup(e){const{getPrefixCls:f}=v(),h=f("login"),w=t(),{t:R}=j(),V=s(!0),E=l((()=>w.getLogoImage)),K=()=>{V.value=!1},M=()=>{V.value=!0};return(e,t)=>(a(),i("div",{class:m([x(h),"h-[100%] relative lt-xl:bg-[var(--login-bg-color)] lt-sm:px-10px lt-xl:px-10px lt-md:px-10px"])},[o(x(g),{class:"h-full"},{default:r((()=>[p("div",I,[p("div",{class:m(`${x(h)}__left flex-1 bg-gray-500 bg-opacity-20 relative p-30px lt-xl:hidden`)},[p("div",L,[p("img",{src:E.value,alt:"",class:"w-48px h-48px mr-10px"},null,8,F),p("span",C,n(x(c)(x(w).getTitle)),1)]),p("div",z,[o(d,{appear:"",tag:"div","enter-active-class":"animate__animated animate__bounceInLeft"},{default:r((()=>[A,p("div",B,n(x(R)("login.welcome")),1),p("div",D,n(x(R)("login.message")),1)])),_:1})])],2),p("div",P,[p("div",$,[p("div",q,[p("img",{src:E.value,alt:"",class:"w-48px h-48px mr-10px"},null,8,G),p("span",H,n(x(c)(x(w).getTitle)),1)]),p("div",J,[o(x(k)),o(x(T),{class:"lt-xl:text-white dark:text-white"})])]),o(u,{appear:"","enter-active-class":"animate__animated animate__bounceInRight"},{default:r((()=>[p("div",N,[V.value?(a(),_(x(y),{key:0,class:"p-20px h-auto m-auto lt-xl:rounded-3xl lt-xl:light:bg-white",onToTelephone:K})):(a(),_(x(b),{key:1,class:"p-20px h-auto m-auto lt-xl:rounded-3xl lt-xl:light:bg-white",onToPassword:M}))])])),_:1})])])])),_:1})],2))}}),[["__scopeId","data-v-062c9279"]]);export{R as default};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{_ as t}from"./LoginForm.vue_vue_type_script_setup_true_lang-06e4cf32.js";import"./useForm-ecbcdb43.js";import"./index-9da7d198.js";import"./el-col-d9273186.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./isNil-1f22f7b0.js";import"./index-cde97138.js";import"./use-form-common-props-9d083c67.js";import"./el-input-26eda071.js";import"./event-5568c9d8.js";import"./use-form-item-8b7f5d34.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-checkbox-group-b617b779.js";import"./el-button-8f21380c.js";import"./el-date-picker-f32b0b71.js";import"./debounce-778af7ed.js";import"./el-switch-7720805d.js";import"./el-divider-fc00d058.js";import"./el-progress-69812d34.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";import"./index-14d9f390.js";import"./strings-e2e316bd.js";import"./index-4dbb39b8.js";import"./el-link-d575b38b.js";import"./useValidator-e352e7a8.js";export{t as default};

View File

@ -0,0 +1 @@
import{u as e,F as o}from"./useForm-ecbcdb43.js";import{e as l,L as t,v as s,K as a,r,M as n,x as i,a3 as c,ak as d,w as p,R as u,o as m,l as f,k as h,al as g,S as v,G as w}from"./index-9da7d198.js";import{E as b}from"./el-button-8f21380c.js";import{E as P}from"./el-tag-aef2ce12.js";import{E as y}from"./el-link-d575b38b.js";import{u as j}from"./useValidator-e352e7a8.js";function k(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!g(e)}const x="var(--el-color-primary)",R="#999",I=l({__name:"LoginForm",emits:["to-telephone"],setup(l,{emit:g}){const{required:I}=j(),z=t(),C=s(),{currentRoute:E,addRoute:F,push:_}=a(),{setStorage:L}=v(),{t:q}=w(),S=r(!1),V={telephone:[I()],method:[I()],password:[I()]},A=n([{field:"title",colProps:{span:24},formItemProps:{slots:{default:()=>i("h2",{class:"text-2xl font-bold text-center w-[100%]"},[q("login.login")])}}},{field:"telephone",label:q("login.telephone"),value:"15020221010",component:"Input",colProps:{span:24},componentProps:{style:{width:"100%"},placeholder:q("login.telephonePlaceholder"),maxlength:11}},{field:"password",label:q("login.password"),value:"kinit2022",component:"InputPassword",colProps:{span:24},componentProps:{style:{width:"100%"},placeholder:q("login.passwordPlaceholder")}},{field:"method",label:"登录类型",value:"0",component:"Input",hidden:!0},{field:"tool",colProps:{span:24},formItemProps:{slots:{default:()=>{let e;return i(c,null,[i("div",{class:"flex justify-between items-center w-[100%]"},[i(P,{modelValue:S.value,"onUpdate:modelValue":e=>S.value=e,label:q("login.remember"),size:"small"},null),i(y,{type:"primary",underline:!1},k(e=q("login.forgetPassword"))?e:{default:()=>[e]})])])}}}},{field:"login",colProps:{span:24},formItemProps:{slots:{default:()=>{let e,o;return i(c,null,[i("div",{class:"w-[100%]"},[i(b,{loading:K.value,type:"primary",class:"w-[100%]",onClick:B},k(e=q("login.login"))?e:{default:()=>[e]})]),i("div",{class:"w-[100%] mt-15px"},[i(b,{class:"w-[100%]",onClick:J},k(o=q("login.smsLogin"))?o:{default:()=>[o]})])])}}}},{field:"other",component:"Divider",label:q("login.otherLogin"),componentProps:{contentPosition:"center"}},{field:"otherIcon",colProps:{span:24},formItemProps:{slots:{default:()=>i(c,null,[i("div",{class:"flex justify-between w-[100%]"},[i(d,{icon:"ant-design:github-filled",size:30,class:"cursor-pointer ant-icon",color:R,hoverColor:x},null),i(d,{icon:"ant-design:wechat-filled",size:30,class:"cursor-pointer ant-icon",color:R,hoverColor:x},null),i(d,{icon:"ant-design:alipay-circle-filled",size:30,color:R,hoverColor:x,class:"cursor-pointer ant-icon"},null),i(d,{icon:"ant-design:weibo-circle-filled",size:30,color:R,hoverColor:x,class:"cursor-pointer ant-icon"},null)])])}}}]),{formRegister:D,formMethods:M}=e(),{getFormData:O,getElFormExpose:G}=M,K=r(!1),U=r("");p((()=>E.value),(e=>{var o;U.value=null==(o=null==e?void 0:e.query)?void 0:o.redirect}),{immediate:!0});const B=async()=>{const e=await G();if(await(null==e?void 0:e.validate())){K.value=!0;const e=await O();try{const o=await C.login(e);o?o.data.is_reset_password?H():_({path:"/reset/password"}):K.value=!1}catch(o){K.value=!1}}},H=async()=>{const e=await u();if(e){const o=e.data||[];L("roleRouters",o),await z.generateRoutes(o).catch((()=>{})),z.getAddRouters.forEach((e=>{F(e)})),z.setIsAddRouters(!0),_({path:U.value||z.addRouters[0].path})}},J=()=>{g("to-telephone")};return(e,l)=>(m(),f(h(o),{schema:A,rules:V,"label-position":"top","hide-required-asterisk":"",size:"large",class:"dark:border-1 dark:border-[var(--el-border-color)] dark:border-solid",onRegister:h(D)},null,8,["schema","onRegister"]))}});export{I as _};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
[data-v-f3fb4ae5]:export{namespace:v;elNamespace:el}#map-container[data-v-f3fb4ae5]{padding:0;margin:0;width:100%;height:800px}#map-container[data-v-f3fb4ae5] .description{background-color:#fff;height:50px;display:flex;justify-content:space-between;align-items:center;padding:10px;box-sizing:border-box;border:2px solid #f05b72;border-radius:5px;font-size:14px}#map-container[data-v-f3fb4ae5] .point{display:inline-block;width:9px;height:9px;border-radius:50%;background-color:#f05b72;margin-bottom:1px;margin-right:2px}#map-container[data-v-f3fb4ae5] .name-box{display:inline;margin-right:8px}#map-container[data-v-f3fb4ae5] .alarmDevice{text-align:center;margin:0 auto;width:30px;height:30px;background-color:#f13737;box-shadow:0 0 15px #f61212;border-radius:50%;-webkit-animation-name:"alarmDeviceBreath";-webkit-animation-duration:1s;-webkit-animation-timing-function:ease;-webkit-animation-delay:0s;-webkit-animation-iteration-count:infinite;-webkit-animation-direction:alternate}@keyframes alarmDeviceBreath{0%{margin-left:0;margin-top:0;width:30px;height:30px;box-shadow:0 0 15px #f61212;opacity:1.2}to{margin-left:5px;margin-top:5px;width:20px;height:20px;box-shadow:0 0 10px #f61212;opacity:.6}}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{Y as e,e as t,G as l,M as a,x as o,N as s,a3 as i,r,o as p,j as n,m,k as d,ao as u,z as c,l as _,O as h}from"./index-9da7d198.js";import{u as j,_ as f}from"./Table.vue_vue_type_script_lang-5256bd69.js";import{E as b}from"./el-button-8f21380c.js";import{_ as g}from"./Search.vue_vue_type_script_setup_true_lang-a57e37eb.js";import{_ as w}from"./ContentWrap.vue_vue_type_script_setup_true_lang-9c7e578a.js";import{_ as v}from"./Detail.vue_vue_type_script_setup_true_lang-f4d558dd.js";import{_ as x}from"./Dialog.vue_vue_type_style_index_0_lang-fcbfdb5d.js";import"./el-message-box-24354127.js";import"./el-input-26eda071.js";import"./event-5568c9d8.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";import"./isNil-1f22f7b0.js";import"./el-overlay-037540a2.js";import"./el-checkbox-group-b617b779.js";import"./vnode-ae242abb.js";import"./useForm-ecbcdb43.js";import"./el-col-d9273186.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-date-picker-f32b0b71.js";import"./debounce-778af7ed.js";import"./el-switch-7720805d.js";import"./el-divider-fc00d058.js";import"./el-progress-69812d34.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";import"./index-14d9f390.js";import"./strings-e2e316bd.js";import"./index-4dbb39b8.js";import"./el-table-column-102f47a6.js";import"./el-image-viewer-83790b35.js";import"./el-dropdown-item-c082162c.js";import"./refs-4f0941bf.js";/* empty css */import"./_Uint8Array-bbcc3a61.js";import"./useIcon-6417bbff.js";import"./el-card-5fa288fa.js";import"./Descriptions-fb3623c2.js";import"./el-descriptions-item-be87a779.js";const y=t({name:"SystemRecordOperation",__name:"Operation",setup(t){const{t:y}=l(),{tableRegister:k,tableState:R,tableMethods:S}=j({fetchDataApi:async()=>{const{pageSize:t,currentPage:l}=R,a=await(o={page:d(l),limit:d(t),...d(C)},e.get({url:"/vadmin/record/operations",params:o}));var o;return{list:a.data||[],total:a.count||0}}}),{dataList:z,loading:P,total:D,pageSize:U,currentPage:A}=R,{getList:I}=S,O=a([{field:"user_id",label:"操作人编号",show:!0,disabled:!0,width:"100px"},{field:"user_name",label:"操作人",show:!0,disabled:!0,width:"100px"},{field:"telephone",label:"手机号",show:!0,disabled:!0,width:"130px"},{field:"request_method",label:"请求方法",show:!0,disabled:!0,width:"100px"},{field:"client_ip",label:"客户端地址",width:"130px",show:!0,disabled:!0},{field:"tags",label:"标签",width:"130px",show:!0},{field:"summary",label:"操作内容",show:!0},{field:"description",label:"描述",show:!1},{field:"status_code",label:"操作状态",show:!0,width:"100px"},{field:"route_name",label:"接口函数",show:!1,width:"150px"},{field:"api_path",label:"接口地址",show:!1},{field:"params",label:"请求参数",show:!1},{field:"browser",label:"浏览器",show:!0,width:"150px"},{field:"system",label:"系统",show:!1,width:"150px"},{field:"process_time",label:"总耗时",show:!0},{field:"create_datetime",label:"操作时间",show:!0},{field:"action",width:"100px",show:!0,label:"操作",slots:{default:e=>{const t=e.row;return o(i,null,[o(b,{type:"primary",link:!0,onClick:()=>E(t,"detail")},{default:()=>[s("详情")]})])}}}]),q=a([{field:"telephone",label:"手机号",component:"Input",componentProps:{clearable:!1}},{field:"request_method",label:"请求方法",component:"Input",componentProps:{clearable:!1}},{field:"summary",label:"操作内容",component:"Input",componentProps:{clearable:!1}}]),C=r({}),L=e=>{A.value=1,C.value=e,I()},N=r(!1),V=r(""),M=r(),B=r(""),E=(e,t)=>{V.value=y("exampleDemo.detail"),B.value=t,M.value=e,N.value=!0};return(e,t)=>(p(),n(i,null,[o(d(w),null,{default:m((()=>[o(d(g),{schema:q,onReset:L,onSearch:L},null,8,["schema"]),o(d(f),{"current-page":d(A),"onUpdate:currentPage":t[0]||(t[0]=e=>u(A)?A.value=e:null),"page-size":d(U),"onUpdate:pageSize":t[1]||(t[1]=e=>u(U)?U.value=e:null),showAction:"",columns:O,"node-key":"id",data:d(z),loading:d(P),pagination:{total:d(D)},onRegister:d(k),onRefresh:d(I)},null,8,["current-page","page-size","columns","data","loading","pagination","onRegister","onRefresh"])])),_:1}),o(d(x),{modelValue:N.value,"onUpdate:modelValue":t[3]||(t[3]=e=>N.value=e),title:V.value,width:"800px"},{footer:m((()=>[o(d(b),{onClick:t[2]||(t[2]=e=>N.value=!1)},{default:m((()=>[s(c(d(y)("dialogDemo.close")),1)])),_:1})])),default:m((()=>["detail"===B.value?(p(),_(v,{key:0,"current-row":M.value},null,8,["current-row"])):h("",!0)])),_:1},8,["modelValue","title"])],64))}});export{y as default};

View File

@ -0,0 +1 @@
import{_ as o}from"./PasswordSendEmail.vue_vue_type_script_setup_true_lang-5a56f3de.js";import"./index-9da7d198.js";import"./el-button-8f21380c.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";import"./el-table-column-102f47a6.js";import"./el-popper-2fae9050.js";import"./isNil-1f22f7b0.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./event-5568c9d8.js";import"./debounce-778af7ed.js";import"./el-tooltip-4ed993c7.js";import"./el-popconfirm-3191559c.js";/* empty css */import"./index-14d9f390.js";export{o as default};

View File

@ -0,0 +1 @@
import{e,r as a,o as s,j as t,y as r,x as l,m as i,N as n,k as d,l as o,O as p,P as u,az as f}from"./index-9da7d198.js";import{E as m}from"./el-button-8f21380c.js";import{E as c,a as _}from"./el-table-column-102f47a6.js";import"./el-tag-aef2ce12.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import{E as y}from"./el-popconfirm-3191559c.js";/* empty css */import{E as w}from"./index-14d9f390.js";const g={class:"flex justify-between"},k=r("span",null,"已选用户列表",-1),v=e({__name:"PasswordSendEmail",props:{selections:{type:Object}},setup(e){const v=e,b=a(JSON.parse(JSON.stringify(v.selections))),h=a(!1),j=async()=>{h.value=!0;const e=b.value.filter((e=>!0!==e.reset_password_status)).map((e=>e.id));if(e.length<=0)return u.warning("已全部重置完成,无需重复操作");try{const a=await f(e);a&&(b.value=a.data,u.success("重置成功"))}finally{h.value=!1}};return(e,a)=>{var u;return s(),t("div",null,[r("div",g,[k,l(d(m),{type:"primary",disabled:0===(null==(u=b.value)?void 0:u.length),loading:h.value,onClick:j},{default:i((()=>[n("确认重置并发送邮件通知")])),_:1},8,["disabled","loading"])]),l(d(_),{data:b.value,stripe:!0,border:!0,style:{width:"100%"},class:"mt-10px","max-height":"500px"},{default:i((()=>[l(d(c),{prop:"id",label:"用户编号",width:"100",align:"center"}),l(d(c),{prop:"name",label:"姓名",width:"120",align:"center"}),l(d(c),{prop:"email",label:"邮箱",width:"200",align:"center"}),l(d(c),{prop:"reset_password_status",label:"重置状态",width:"100",align:"center"},{default:i((e=>[!0===e.row.reset_password_status?(s(),o(d(w),{key:0,type:"success",effect:"dark"},{default:i((()=>[n(" 重置成功 ")])),_:1})):!1===e.row.reset_password_status?(s(),o(d(w),{key:1,type:"danger",effect:"dark"},{default:i((()=>[n(" 重置失败 ")])),_:1})):(s(),o(d(w),{key:2,type:"warning",effect:"dark"},{default:i((()=>[n(" 待重置 ")])),_:1}))])),_:1}),l(d(c),{prop:"send_sms_status",label:"发送状态",width:"100",align:"center"},{default:i((e=>[!0===e.row.send_sms_status?(s(),o(d(w),{key:0,type:"success",effect:"dark"},{default:i((()=>[n(" 发送成功 ")])),_:1})):!1===e.row.send_sms_status?(s(),o(d(w),{key:1,type:"danger",effect:"dark"},{default:i((()=>[n(" 发送失败 ")])),_:1})):(s(),o(d(w),{key:2,type:"warning",effect:"dark"},{default:i((()=>[n(" 待发送 ")])),_:1}))])),_:1}),l(d(c),{prop:"send_sms_msg",label:"描述",align:"center"}),l(d(c),{fixed:"right",label:"操作",width:"100",align:"center"},{default:i((e=>[l(d(y),{title:"确认移除吗?",onConfirm:a=>{return s=e.$index,void b.value.splice(s,1);var s}},{reference:i((()=>[!0!==e.row.send_sms_status?(s(),o(d(m),{key:0,link:"",type:"primary",size:"small"},{default:i((()=>[n("移除")])),_:1})):p("",!0)])),_:2},1032,["onConfirm"])])),_:1})])),_:1},8,["data"])])}}});export{v as _};

View File

@ -0,0 +1 @@
import{_ as o}from"./PasswordSendSMS.vue_vue_type_script_setup_true_lang-007e3bf1.js";import"./index-9da7d198.js";import"./el-button-8f21380c.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";import"./el-table-column-102f47a6.js";import"./el-popper-2fae9050.js";import"./isNil-1f22f7b0.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./event-5568c9d8.js";import"./debounce-778af7ed.js";import"./el-tooltip-4ed993c7.js";import"./el-popconfirm-3191559c.js";/* empty css */import"./index-14d9f390.js";export{o as default};

View File

@ -0,0 +1 @@
import{e,r as s,o as a,j as t,y as r,x as l,m as n,N as i,k as d,l as o,O as p,P as u,aA as f}from"./index-9da7d198.js";import{E as c}from"./el-button-8f21380c.js";import{E as _,a as m}from"./el-table-column-102f47a6.js";import"./el-tag-aef2ce12.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import{E as y}from"./el-popconfirm-3191559c.js";/* empty css */import{E as w}from"./index-14d9f390.js";const g={class:"flex justify-between"},k=r("span",null,"已选用户列表",-1),v=e({__name:"PasswordSendSMS",props:{selections:{type:Object}},setup(e){const v=e,b=s(JSON.parse(JSON.stringify(v.selections))),h=s(!1),j=async()=>{h.value=!0;const e=b.value.filter((e=>!0!==e.reset_password_status)).map((e=>e.id));if(e.length<=0)return u.warning("已全部重置完成,无需重复操作");try{const s=await f(e);s&&(b.value=s.data,u.success("重置成功"))}finally{h.value=!1}};return(e,s)=>{var u;return a(),t("div",null,[r("div",g,[k,l(d(c),{type:"primary",disabled:0===(null==(u=b.value)?void 0:u.length),loading:h.value,onClick:j},{default:n((()=>[i("确认重置并发送短信通知")])),_:1},8,["disabled","loading"])]),l(d(m),{data:b.value,stripe:!0,border:!0,style:{width:"100%"},class:"mt-10px","max-height":"500px"},{default:n((()=>[l(d(_),{prop:"id",label:"用户编号",width:"100",align:"center"}),l(d(_),{prop:"name",label:"姓名",width:"120",align:"center"}),l(d(_),{prop:"telephone",label:"手机号",width:"120",align:"center"}),l(d(_),{prop:"reset_password_status",label:"重置状态",width:"100",align:"center"},{default:n((e=>[!0===e.row.reset_password_status?(a(),o(d(w),{key:0,type:"success",effect:"dark"},{default:n((()=>[i(" 重置成功 ")])),_:1})):!1===e.row.reset_password_status?(a(),o(d(w),{key:1,type:"danger",effect:"dark"},{default:n((()=>[i(" 重置失败 ")])),_:1})):(a(),o(d(w),{key:2,type:"warning",effect:"dark"},{default:n((()=>[i(" 待重置 ")])),_:1}))])),_:1}),l(d(_),{prop:"send_sms_status",label:"发送状态",width:"100",align:"center"},{default:n((e=>[!0===e.row.send_sms_status?(a(),o(d(w),{key:0,type:"success",effect:"dark"},{default:n((()=>[i(" 发送成功 ")])),_:1})):!1===e.row.send_sms_status?(a(),o(d(w),{key:1,type:"danger",effect:"dark"},{default:n((()=>[i(" 发送失败 ")])),_:1})):(a(),o(d(w),{key:2,type:"warning",effect:"dark"},{default:n((()=>[i(" 待发送 ")])),_:1}))])),_:1}),l(d(_),{prop:"send_sms_msg",label:"描述",align:"center"}),l(d(_),{fixed:"right",label:"操作",width:"100",align:"center"},{default:n((e=>[l(d(y),{title:"确认移除吗?",onConfirm:s=>{return a=e.$index,void b.value.splice(a,1);var a}},{reference:n((()=>[!0!==e.row.send_sms_status?(a(),o(d(c),{key:0,link:"",type:"primary",size:"small"},{default:n((()=>[i("移除")])),_:1})):p("",!0)])),_:2},1032,["onConfirm"])])),_:1})])),_:1},8,["data"])])}}});export{v as _};

View File

@ -0,0 +1 @@
import{_ as t}from"./PasswordWrite.vue_vue_type_script_setup_true_lang-1f4a7f46.js";import"./useForm-ecbcdb43.js";import"./index-9da7d198.js";import"./el-col-d9273186.js";import"./el-tooltip-4ed993c7.js";import"./el-popper-2fae9050.js";import"./isNil-1f22f7b0.js";import"./index-cde97138.js";import"./use-form-common-props-9d083c67.js";import"./el-input-26eda071.js";import"./event-5568c9d8.js";import"./use-form-item-8b7f5d34.js";import"./el-tag-aef2ce12.js";import"./index-13d6a136.js";import"./el-checkbox-group-b617b779.js";import"./el-button-8f21380c.js";import"./el-date-picker-f32b0b71.js";import"./debounce-778af7ed.js";import"./el-switch-7720805d.js";import"./el-divider-fc00d058.js";import"./el-progress-69812d34.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";import"./index-14d9f390.js";import"./strings-e2e316bd.js";import"./index-4dbb39b8.js";import"./useValidator-e352e7a8.js";export{t as default};

View File

@ -0,0 +1 @@
import{u as s,F as e}from"./useForm-ecbcdb43.js";import{u as a}from"./useValidator-e352e7a8.js";import{e as r,v as o,M as t,r as l,o as i,l as n,k as d,x as p,N as m,a3 as c,P as u,Q as w}from"./index-9da7d198.js";import{E as f}from"./el-button-8f21380c.js";const g=r({__name:"PasswordWrite",setup(r){const{required:g}=a(),P=o(),b=t([{field:"title",colProps:{span:24}},{field:"password",label:"新密码",component:"InputPassword",colProps:{span:24},componentProps:{style:{width:"50%"},placeholder:"请输入新密码"}},{field:"password_two",label:"确认密码",component:"InputPassword",colProps:{span:24},componentProps:{style:{width:"50%"},placeholder:"请再次输入新密码"}},{field:"save",colProps:{span:24},formItemProps:{slots:{default:()=>p(c,null,[p("div",{class:"w-[50%]"},[p(f,{loading:_.value,type:"primary",class:"w-[100%]",onClick:j},{default:()=>[m("保存")]})])])}}}]),v={password:[g(),{min:8,max:16,message:"长度需为8-16个字符,请重新输入。",trigger:"blur"}],password_two:[g(),{min:8,max:16,message:"长度需为8-16个字符,请重新输入。",trigger:"blur"}]},{formRegister:h,formMethods:k}=s(),{setValues:y,getFormData:x,getElFormExpose:F}=k;y(P.getUser);const _=l(!1),j=async()=>{if(1===P.getUser.id)return u.warning("编辑账号为演示账号,无权限操作!");const s=await F();if(await(null==s?void 0:s.validate())){_.value=!0;const e=await x();try{await w(e)&&(null==s||s.resetFields(),u.success("保存成功"))}finally{_.value=!1}}};return(s,a)=>(i(),n(d(e),{onRegister:d(h),schema:b,rules:v,"hide-required-asterisk":"",class:"dark:border-1 dark:border-[var(--el-border-color)] dark:border-solid"},null,8,["onRegister","schema"]))}});export{g as _};

View File

@ -0,0 +1 @@
import{_ as t}from"./Privacy.vue_vue_type_script_setup_true_lang-0730f035.js";import"./index-9da7d198.js";import"./el-button-8f21380c.js";import"./use-form-item-8b7f5d34.js";import"./use-form-common-props-9d083c67.js";import"./index-cde97138.js";import"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";export{t as default};

View File

@ -0,0 +1 @@
import{e as a,W as e,r as s,o as r,j as t,x as l,k as o,y as i,m as n,N as u,a3 as c,ai as d,dF as _,P as y}from"./index-9da7d198.js";import{E as m}from"./el-button-8f21380c.js";import{_ as p}from"./style.css_vue_type_style_index_0_src_true_lang-0e7f3b44.js";const f={class:"mt-10px",style:{float:"right"}},v=a({__name:"Privacy",props:{tabId:e.number},setup(a){const e=a,v=s(),b=s(""),w=async()=>{const a=await d({tab_id:e.tabId});a&&(b.value=a.data.web_privacy||"")},g=s(!1),k=async()=>{g.value=!0;try{if(await _({web_privacy:b.value}))return w(),y.success("更新成功")}finally{g.value=!1}},x={customAlert:(a,e)=>{switch(e){case"success":y.success(a);break;case"info":default:y.info(a);break;case"warning":y.warning(a);break;case"error":y.error(a)}},autoFocus:!0,scroll:!0,readOnly:!1,uploadImgShowBase64:!0};return w(),(a,e)=>(r(),t(c,null,[l(o(p),{modelValue:b.value,"onUpdate:modelValue":e[0]||(e[0]=a=>b.value=a),ref_key:"editorRef",ref:v,editorId:"web_privacy",editorConfig:x},null,8,["modelValue"]),i("div",f,[l(o(m),{loading:g.value,type:"primary",onClick:k},{default:n((()=>[u("立即保存")])),_:1},8,["loading"])])],64))}});export{v as _};

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