mirror of
https://gitee.com/likeadmin/likeadmin_java.git
synced 2026-06-11 16:54:40 +08:00
Compare commits
211 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3ace0ac688 | ||
|
|
6ecf919440 | ||
|
|
0ea4373167 | ||
|
|
9f31b9ce3d | ||
|
|
e9b882dd9b | ||
|
|
787e8edc45 | ||
|
|
638d5865dc | ||
|
|
daf6bee8d7 | ||
|
|
3e2dd74717 | ||
|
|
80bcf29910 | ||
|
|
8a0e675549 | ||
|
|
1395beb9d2 | ||
|
|
356d83bc91 | ||
|
|
d3b5794ce7 | ||
|
|
d66570d3bb | ||
|
|
e9bacd433d | ||
|
|
2d74edc701 | ||
|
|
38a6de13a5 | ||
|
|
b95e43c7ac | ||
|
|
f1c9a66127 | ||
|
|
294ddbf4bc | ||
|
|
06e219d2a1 | ||
|
|
710f20f093 | ||
|
|
5eb9a04d6d | ||
|
|
74481785fd | ||
|
|
41b4024fcf | ||
|
|
2166e40352 | ||
|
|
3837d78fce | ||
|
|
d562ddde48 | ||
|
|
79bdca1412 | ||
|
|
decbccedce | ||
|
|
1b56ede827 | ||
|
|
65d10f608c | ||
|
|
932d46c6ee | ||
|
|
3cb5582b20 | ||
|
|
d5d397b2e9 | ||
|
|
36e4ea6cf1 | ||
|
|
4bc1e28685 | ||
|
|
58999e6fbc | ||
|
|
c84b597032 | ||
|
|
daf6ba26a4 | ||
|
|
8c19fc0cb2 | ||
|
|
75eb7f42f3 | ||
|
|
7bc8d4fce1 | ||
|
|
eff789eb82 | ||
|
|
6cadf25368 | ||
|
|
532653107b | ||
|
|
9a9ae9f336 | ||
|
|
b63d93364a | ||
|
|
da29c32357 | ||
|
|
a636a36884 | ||
|
|
e2ec0d6c9a | ||
|
|
268f46b872 | ||
|
|
1d0d314aee | ||
|
|
44975bfd86 | ||
|
|
3a6f6bef97 | ||
|
|
546889cf6f | ||
|
|
1c480b9630 | ||
|
|
9cc41d2e80 | ||
|
|
970abf6a47 | ||
|
|
d6136463bb | ||
|
|
64815f2f4f | ||
|
|
bacda99c59 | ||
|
|
8718c22cee | ||
|
|
c10464d873 | ||
|
|
f6589a8e33 | ||
|
|
9223b88a72 | ||
|
|
6cdc2b82e1 | ||
|
|
84cded01f2 | ||
|
|
f2038fa7af | ||
|
|
ecd5abbd05 | ||
|
|
8481c63ef2 | ||
|
|
20b7c760fd | ||
|
|
9595769d46 | ||
|
|
9e5bd06e37 | ||
|
|
f51fab1deb | ||
|
|
70fb9d4b9b | ||
|
|
a8559f0d70 | ||
|
|
b2bfaca816 | ||
|
|
f2bbfffe10 | ||
|
|
803a50cf3c | ||
|
|
c46903a210 | ||
|
|
2f161aa3fe | ||
|
|
22e7aa77cd | ||
|
|
18360d43e5 | ||
|
|
b360bb7485 | ||
|
|
ded1cabf1e | ||
|
|
f4b6179336 | ||
|
|
35b485c0a7 | ||
|
|
f39417f9b9 | ||
|
|
313121b2ab | ||
|
|
a6ad0a2feb | ||
|
|
e20fe09db4 | ||
|
|
bf31eff2e0 | ||
|
|
8b450e991f | ||
|
|
86c8697a0f | ||
|
|
16fbaa8b4e | ||
|
|
0f08a3ec04 | ||
|
|
54fd266103 | ||
|
|
b4dadbee38 | ||
|
|
45645668ef | ||
|
|
79a3959a17 | ||
|
|
678c5a5fb6 | ||
|
|
b081a2b3e5 | ||
|
|
21866eb315 | ||
|
|
5880ea48af | ||
|
|
ae398bf417 | ||
|
|
96ce0b284c | ||
|
|
5d056280b0 | ||
|
|
712538213b | ||
|
|
97518d66d3 | ||
|
|
570198d9bc | ||
|
|
f48116e8d1 | ||
|
|
d6bd188203 | ||
|
|
144fe94ecb | ||
|
|
667b92265f | ||
|
|
964e9c5bd7 | ||
|
|
0daebef757 | ||
|
|
691786b478 | ||
|
|
93aafd2dbe | ||
|
|
8f936f2df4 | ||
|
|
27bcde0da0 | ||
|
|
1f193e7850 | ||
|
|
55ee7d8a47 | ||
|
|
c45df35bd9 | ||
|
|
853e64fee5 | ||
|
|
f2450bc615 | ||
|
|
ed6b24c677 | ||
|
|
7a71bcf238 | ||
|
|
22bebdf804 | ||
|
|
6f8e8442c0 | ||
|
|
b693e829f9 | ||
|
|
8d37e36395 | ||
|
|
7419ceb502 | ||
|
|
f6491d1ba0 | ||
|
|
84c4b305d1 | ||
|
|
5f3260c586 | ||
|
|
c5781cd796 | ||
|
|
9d4964af1b | ||
|
|
56de8a32f1 | ||
|
|
dbdeed946e | ||
|
|
42892bcb8b | ||
|
|
a7d6b7ce61 | ||
|
|
d9f6b66c56 | ||
|
|
373bd551d7 | ||
|
|
e5f1ac1231 | ||
|
|
c3e0a81b31 | ||
|
|
df513e47ec | ||
|
|
62a3606169 | ||
|
|
97202201a2 | ||
|
|
088fffe836 | ||
|
|
d59c9de38a | ||
|
|
d63947856b | ||
|
|
36b6540a60 | ||
|
|
49fd6d3639 | ||
|
|
3fd832d9e6 | ||
|
|
aabc6205fb | ||
|
|
4a7fd71da7 | ||
|
|
d7b6dc992f | ||
|
|
2998041bde | ||
|
|
2304922b8a | ||
|
|
049209bfca | ||
|
|
dc5ed4b14b | ||
|
|
9beff48e28 | ||
|
|
173640af07 | ||
|
|
919cdc243c | ||
|
|
670ac0208c | ||
|
|
869c444fa5 | ||
|
|
8b6b0e5257 | ||
|
|
8fed83cd15 | ||
|
|
864b54951a | ||
|
|
9e89783add | ||
|
|
3b8e501a0b | ||
|
|
3e97c2201b | ||
|
|
3b5a8ae197 | ||
|
|
43983deb48 | ||
|
|
2022859769 | ||
|
|
bdf79ccb84 | ||
|
|
2a1d803c5f | ||
|
|
444ea6b4cb | ||
|
|
f76a83b918 | ||
|
|
6e7292b97c | ||
|
|
4281a0f5bc | ||
|
|
933ea5a3dd | ||
|
|
75c8b03969 | ||
|
|
a22fe53275 | ||
|
|
85ba64cd2f | ||
|
|
1d83523405 | ||
|
|
1ab2ca6b4e | ||
|
|
5c043df578 | ||
|
|
f7a1b14500 | ||
|
|
a1a70346c9 | ||
|
|
edfbe6ab4c | ||
|
|
d593391f62 | ||
|
|
5f5026d40c | ||
|
|
2453b0fc3b | ||
|
|
0077e75e85 | ||
|
|
327f0df6a9 | ||
|
|
03d09ca7d7 | ||
|
|
621e7916dc | ||
|
|
c2a64e30f5 | ||
|
|
698d44696e | ||
|
|
ef350201ca | ||
|
|
06bc994b42 | ||
|
|
2c5310ca21 | ||
|
|
0c5d7641b0 | ||
|
|
af92e6209c | ||
|
|
cab7c3af39 | ||
|
|
c38c46c09f | ||
|
|
1805cb1515 | ||
|
|
0d086f6198 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -7,4 +7,6 @@ application-dev.yml
|
||||
application-pro.yml
|
||||
application-dem.yml
|
||||
application-prod.yml
|
||||
application-test.yml
|
||||
application-test.yml
|
||||
/public/uploads/*
|
||||
!/public/uploads/index.html
|
||||
12
README.md
12
README.md
@@ -10,11 +10,16 @@
|
||||
|
||||
## 👀体验
|
||||
### 管理后台
|
||||
地址:https://demo-java.likeadmin.cn <br>
|
||||
地址:https://java-admin.likeadmin.cn <br>
|
||||
账号:admin 密码:123456
|
||||
### 手机端uniapp前台
|
||||
<img width="40%" src="https://md.likeshop.cn/server/index.php?s=/api/attachment/visitFile&sign=260c0869d9ba7e692b2db1e216078241" /><br>
|
||||
|
||||
### 手机端网页前台
|
||||
https://java-front.likeadmin.cn/mobile
|
||||
### PC(电脑)端网页前台
|
||||
https://java-front.likeadmin.cn/pc/
|
||||
### 开发文档
|
||||
地址:[https://www.likeadmin.cn](https://www.likeadmin.cn "https://www.likeadmin.cn")
|
||||
|
||||
|
||||
## 👨💻简介
|
||||
@@ -52,6 +57,3 @@
|
||||
<div class="half">
|
||||
<img width="30%" src="https://md.likeshop.cn/server/index.php?s=/api/attachment/visitFile&sign=2dbac190afadfb6650a04c8af44980e1" /> <img width="30%" src="https://md.likeshop.cn/server/index.php?s=/api/attachment/visitFile&sign=73adbdb91ff5c43ca3e694a99effae7a" /> <img width="30%" src="https://md.likeshop.cn/server/index.php?s=/api/attachment/visitFile&sign=55b51eaebd7d696f96ccbf60d4694368" />
|
||||
</div><br>
|
||||
|
||||
### 🪐接口文档
|
||||
[点击这里进入更多更详细文档。](https://www.likeadmin.cn "点击这里进入更多更详细文档。")
|
||||
@@ -4,7 +4,7 @@ import fsExtra from 'fs-extra'
|
||||
const { existsSync, remove, copy } = fsExtra
|
||||
const cwd = process.cwd()
|
||||
//打包发布路径,谨慎改动
|
||||
const releaseRelativePath = '../frontend'
|
||||
const releaseRelativePath = '../public/admin'
|
||||
const distPath = path.resolve(cwd, 'dist')
|
||||
const releasePath = path.resolve(cwd, releaseRelativePath)
|
||||
|
||||
|
||||
@@ -2,10 +2,10 @@ import request from '@/utils/request'
|
||||
|
||||
// 微信开发平台配置保存
|
||||
export function setWxDevConfig(params: any) {
|
||||
return request.post({ url: '/channel/wx/save', params })
|
||||
return request.post({ url: '/channel/op/save', params })
|
||||
}
|
||||
|
||||
// 微信开发平台配置详情
|
||||
export function getWxDevConfig() {
|
||||
return request.get({ url: '/channel/wx/detail' })
|
||||
return request.get({ url: '/channel/op/detail' })
|
||||
}
|
||||
@@ -14,3 +14,33 @@ export function systemLogLists(params: any) {
|
||||
export function systemCache() {
|
||||
return request.get({ url: '/monitor/cache' })
|
||||
}
|
||||
|
||||
// 定时任务列表
|
||||
export function crontabLists(params: any) {
|
||||
return request.get({ url: '/crontab/list', params })
|
||||
}
|
||||
|
||||
// 添加定时任务
|
||||
export function crontabAdd(params: any) {
|
||||
return request.post({ url: '/crontab/add', params })
|
||||
}
|
||||
|
||||
// 定时任务详情
|
||||
export function crontabDetail(params: any) {
|
||||
return request.get({ url: '/crontab/detail', params })
|
||||
}
|
||||
|
||||
// 编辑定时任务
|
||||
export function crontabEdit(params: any) {
|
||||
return request.post({ url: '/crontab/edit', params })
|
||||
}
|
||||
|
||||
// 删除定时任务
|
||||
export function crontabDel(params: any) {
|
||||
return request.post({ url: '/crontab/del', params })
|
||||
}
|
||||
|
||||
// 获取登录日志列表
|
||||
export function loginLogLists(params: any) {
|
||||
return request.get({ url: '/system/log/login', params })
|
||||
}
|
||||
|
||||
@@ -10,6 +10,15 @@ export function dataTable(params: any) {
|
||||
return request.get({ url: '/gen/db', params })
|
||||
}
|
||||
|
||||
// 数据表所有列表接口
|
||||
export function dataTableAll() {
|
||||
return request.get({ url: '/gen/dbAll' })
|
||||
}
|
||||
|
||||
//表名查字段
|
||||
export function dataTableToColumn(params: any) {
|
||||
return request.get({ url: '/gen/dbColumn', params })
|
||||
}
|
||||
//选择要生成代码的数据表
|
||||
export function selectTable(params: any) {
|
||||
return request.post(
|
||||
|
||||
@@ -6,6 +6,11 @@ export function login(params: Record<string, any>) {
|
||||
return request.post({ url: '/system/login', params: { ...params, terminal: config.terminal } })
|
||||
}
|
||||
|
||||
// 登录
|
||||
export function loginCaptcha() {
|
||||
return request.get({ url: '/system/captcha' })
|
||||
}
|
||||
|
||||
// 退出登录
|
||||
export function logout() {
|
||||
return request.post({ url: '/system/logout' })
|
||||
|
||||
@@ -81,7 +81,7 @@ export default defineComponent({
|
||||
const uploadRefs = shallowRef<InstanceType<typeof ElUpload>>()
|
||||
const action = ref(`${config.baseUrl}${config.urlPrefix}/upload/${props.type}`)
|
||||
const headers = computed(() => ({
|
||||
token: userStore.token,
|
||||
['like-admin']: userStore.token,
|
||||
version: config.version
|
||||
}))
|
||||
const visible = ref(false)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const config = {
|
||||
terminal: 1, //终端
|
||||
title: '后台管理系统', //网站默认标题
|
||||
version: '1.3.3', //版本号
|
||||
version: '1.4.0', //版本号
|
||||
baseUrl: `${import.meta.env.VITE_APP_BASE_URL || ''}/`, //请求接口域名
|
||||
urlPrefix: 'api', //请求默认前缀
|
||||
timeout: 10 * 1000 //请求超时时长
|
||||
|
||||
@@ -22,6 +22,7 @@ export enum RequestCodeEnum {
|
||||
LOGIN_DISABLE_ERROR = 331, //登陆账号已被禁用
|
||||
TOKEN_EMPTY = 332, // TOKEN参数为空
|
||||
TOKEN_INVALID = 333, // TOKEN参数无效
|
||||
VERIFICATION_CODE_ERROR = 334, // 验证码错误
|
||||
NO_PERMISSTION = 403, //无相关权限
|
||||
REQUEST_404_ERROR = 404, //请求接口不存在
|
||||
SYSTEM_ERROR = 500 //系统错误
|
||||
|
||||
@@ -6,5 +6,6 @@ import './styles/index.scss'
|
||||
import 'virtual:svg-icons-register'
|
||||
|
||||
const app = createApp(App)
|
||||
console.log(app)
|
||||
app.use(install)
|
||||
app.mount('#app')
|
||||
|
||||
@@ -34,11 +34,13 @@ const useUserStore = defineStore({
|
||||
this.perms = []
|
||||
},
|
||||
login(playload: any) {
|
||||
const { account, password } = playload
|
||||
const { account, password, code, uuid } = playload
|
||||
return new Promise((resolve, reject) => {
|
||||
login({
|
||||
username: account,
|
||||
password: password
|
||||
password,
|
||||
code,
|
||||
uuid
|
||||
})
|
||||
.then((data) => {
|
||||
this.token = data.token
|
||||
|
||||
@@ -69,6 +69,7 @@ const axiosHooks: AxiosHooks = {
|
||||
case RequestCodeEnum.NO_PERMISSTION:
|
||||
case RequestCodeEnum.FAILED:
|
||||
case RequestCodeEnum.SYSTEM_ERROR:
|
||||
case RequestCodeEnum.VERIFICATION_CODE_ERROR:
|
||||
msg && feedback.msgError(msg)
|
||||
return Promise.reject(data)
|
||||
|
||||
|
||||
@@ -34,6 +34,25 @@
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="code">
|
||||
<div class="flex items-center">
|
||||
<el-input
|
||||
v-model="formData.code"
|
||||
placeholder="请输入验证码"
|
||||
@keyup.enter="handleLogin"
|
||||
>
|
||||
<template #prepend>
|
||||
<icon name="local-icon-anquan" />
|
||||
</template>
|
||||
</el-input>
|
||||
<div
|
||||
class="ml-4 w-[100px] flex-none cursor-pointer"
|
||||
@click="getLoginCaptcha"
|
||||
>
|
||||
<img class="w-full" :src="codeImg" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="mb-5">
|
||||
<el-checkbox v-model="remAccount" label="记住账号"></el-checkbox>
|
||||
@@ -58,6 +77,7 @@ import cache from '@/utils/cache'
|
||||
import { ACCOUNT_KEY } from '@/enums/cacheEnums'
|
||||
import { PageEnum } from '@/enums/pageEnum'
|
||||
import { useLockFn } from '@/hooks/useLockFn'
|
||||
import { loginCaptcha } from '@/api/user'
|
||||
const passwordRef = shallowRef<InputInstance>()
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const appStore = useAppStore()
|
||||
@@ -66,9 +86,12 @@ const route = useRoute()
|
||||
const router = useRouter()
|
||||
const remAccount = ref(false)
|
||||
const config = computed(() => appStore.config)
|
||||
const codeImg = ref()
|
||||
const formData = reactive({
|
||||
account: '',
|
||||
password: ''
|
||||
password: '',
|
||||
code: '',
|
||||
uuid: ''
|
||||
})
|
||||
const rules = {
|
||||
account: [
|
||||
@@ -84,8 +107,21 @@ const rules = {
|
||||
message: '请输入密码',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
code: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入验证码',
|
||||
trigger: ['blur']
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const getLoginCaptcha = async () => {
|
||||
const data = await loginCaptcha()
|
||||
formData.uuid = data.uuid
|
||||
codeImg.value = data.img
|
||||
}
|
||||
// 回车按键监听
|
||||
const handleEnter = () => {
|
||||
if (!formData.password) {
|
||||
@@ -101,7 +137,11 @@ const handleLogin = async () => {
|
||||
remember: remAccount.value,
|
||||
account: remAccount.value ? formData.account : ''
|
||||
})
|
||||
await userStore.login(formData)
|
||||
try {
|
||||
await userStore.login(formData)
|
||||
} catch (error) {
|
||||
getLoginCaptcha()
|
||||
}
|
||||
const {
|
||||
query: { redirect }
|
||||
} = route
|
||||
@@ -112,6 +152,7 @@ const { isLock, lockFn: lockLogin } = useLockFn(handleLogin)
|
||||
|
||||
onMounted(() => {
|
||||
const value = cache.get(ACCOUNT_KEY)
|
||||
getLoginCaptcha()
|
||||
if (value?.remember) {
|
||||
remAccount.value = value.remember
|
||||
formData.account = value.account
|
||||
@@ -125,6 +166,9 @@ onMounted(() => {
|
||||
@apply min-h-screen bg-no-repeat bg-center bg-cover;
|
||||
.login-card {
|
||||
height: 400px;
|
||||
:deep(.el-input-group__prepend) {
|
||||
padding: 0 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="初始浏览量" prop="visit">
|
||||
<div>
|
||||
<el-input-number v-model="formData.visit" />
|
||||
<el-input-number v-model="formData.visit" :min="0" :max="9999" />
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="文章状态" required prop="isShow">
|
||||
|
||||
@@ -47,7 +47,7 @@ export const rules = reactive<FormRules>({
|
||||
},
|
||||
{
|
||||
pattern:
|
||||
/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/,
|
||||
/(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/,
|
||||
message: '请输入合法的网址链接',
|
||||
trigger: ['blur', 'change']
|
||||
}
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
<el-card class="!border-none" shadow="never">
|
||||
<el-alert
|
||||
type="warning"
|
||||
title="温馨提示:填写微信开放平台开发配置,请前往微信开放平台创建应用并完成认证;APP应用配置主要用于APP微信登录和微信支付"
|
||||
title="温馨提示:填写微信开放平台开发配置,请前往微信开放平台创建应用并完成认证;网站应用配置主要用于网站微信登录和微信支付"
|
||||
:closable="false"
|
||||
show-icon
|
||||
/>
|
||||
</el-card>
|
||||
<el-form ref="formRef" :model="formData" label-width="160px">
|
||||
<el-card class="!border-none mt-4" shadow="never">
|
||||
<div class="font-medium mb-7">APP应用</div>
|
||||
<div class="font-medium mb-7">网站应用</div>
|
||||
<el-form-item label="AppID" prop="appId">
|
||||
<div class="w-80">
|
||||
<el-input v-model="formData.appId" placeholder="请输入AppID" />
|
||||
@@ -23,20 +23,15 @@
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<div class="form-tips">
|
||||
小程序账号登录微信公众平台,点击开发>开发设置->开发者ID,设置AppID和AppSecret
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-card>
|
||||
</el-form>
|
||||
<footer-btns v-perms="['channel:wx:save']">
|
||||
<footer-btns v-perms="['channel:op:save']">
|
||||
<el-button type="primary" @click="handelSave">保存</el-button>
|
||||
</footer-btns>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup name="wxDevConfig">
|
||||
import { getWxDevConfig, setWxDevConfig } from '@/api/channel/wx_dev'
|
||||
import { getWxDevConfig, setWxDevConfig } from '@/api/channel/wx_op'
|
||||
import feedback from '@/utils/feedback'
|
||||
|
||||
const formData = reactive({
|
||||
@@ -11,6 +11,7 @@
|
||||
:is="widgets[widget?.name]?.attr"
|
||||
:content="widget?.content"
|
||||
:styles="widget?.styles"
|
||||
:type="type"
|
||||
/>
|
||||
</keep-alive>
|
||||
</div>
|
||||
@@ -23,6 +24,10 @@ const props = defineProps({
|
||||
widget: {
|
||||
type: Object as PropType<Record<string, any>>,
|
||||
default: () => ({})
|
||||
},
|
||||
type: {
|
||||
type: String as PropType<'mobile' | 'pc'>,
|
||||
default: 'mobile'
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
67
admin/src/views/decoration/component/pages/preview-pc.vue
Normal file
67
admin/src/views/decoration/component/pages/preview-pc.vue
Normal file
@@ -0,0 +1,67 @@
|
||||
<template>
|
||||
<div class="pages-preview">
|
||||
<div
|
||||
v-for="(widget, index) in pageData"
|
||||
:key="widget.id"
|
||||
class="relative"
|
||||
:class="{
|
||||
'cursor-pointer': !widget?.disabled
|
||||
}"
|
||||
@click="handleClick(widget, index)"
|
||||
>
|
||||
<div
|
||||
class="absolute w-full h-full z-[100] border-dashed"
|
||||
:class="{
|
||||
select: index == modelValue,
|
||||
'border-[#dcdfe6] border-2': !widget?.disabled
|
||||
}"
|
||||
:style="widget.styles"
|
||||
></div>
|
||||
<slot>
|
||||
<component
|
||||
:is="widgets[widget?.name]?.content"
|
||||
:content="widget.content"
|
||||
:styles="widget.styles"
|
||||
:key="widget.id"
|
||||
/>
|
||||
</slot>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import widgets from '../widgets'
|
||||
import type { PropType } from 'vue'
|
||||
|
||||
defineProps({
|
||||
pageData: {
|
||||
type: Array as PropType<any[]>,
|
||||
default: () => []
|
||||
},
|
||||
modelValue: {
|
||||
type: Number,
|
||||
default: 0
|
||||
}
|
||||
})
|
||||
|
||||
const emit = defineEmits<{
|
||||
(event: 'update:modelValue', value: number): void
|
||||
}>()
|
||||
|
||||
const handleClick = (widget: any, index: number) => {
|
||||
if (widget.disabled) return
|
||||
emit('update:modelValue', index)
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.pages-preview {
|
||||
width: 460px;
|
||||
height: 360px;
|
||||
background: url(../../image/pc_index.png);
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
.select {
|
||||
@apply border-primary border-solid;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -33,7 +33,15 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item class="mt-[18px]" label="图片链接">
|
||||
<link-picker v-model="item.link" />
|
||||
<link-picker
|
||||
v-if="type == 'mobile'"
|
||||
v-model="item.link"
|
||||
/>
|
||||
<el-input
|
||||
v-if="type == 'pc'"
|
||||
placeholder="请输入链接"
|
||||
v-model="item.link.path"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
@@ -63,6 +71,10 @@ const props = defineProps({
|
||||
styles: {
|
||||
type: Object as PropType<OptionsType['styles']>,
|
||||
default: () => ({})
|
||||
},
|
||||
type: {
|
||||
type: String as PropType<'mobile' | 'pc'>,
|
||||
default: 'mobile'
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
<template>
|
||||
<div class="banner">
|
||||
<div class="banner-image">
|
||||
<decoration-img width="100%" height="170px" :src="getImage" fit="contain" />
|
||||
<div class="banner" :style="styles">
|
||||
<div class="banner-image w-full h-full">
|
||||
<decoration-img
|
||||
width="100%"
|
||||
:height="styles.height || height"
|
||||
:src="getImage"
|
||||
fit="contain"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -18,6 +23,10 @@ const props = defineProps({
|
||||
styles: {
|
||||
type: Object as PropType<OptionsType['styles']>,
|
||||
default: () => ({})
|
||||
},
|
||||
height: {
|
||||
type: String,
|
||||
default: '170px'
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
BIN
admin/src/views/decoration/image/pc_index.png
Normal file
BIN
admin/src/views/decoration/image/pc_index.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 516 KiB |
90
admin/src/views/decoration/pc.vue
Normal file
90
admin/src/views/decoration/pc.vue
Normal file
@@ -0,0 +1,90 @@
|
||||
<template>
|
||||
<div class="decoration-pages min-w-[1100px]">
|
||||
<el-card shadow="never" class="!border-none flex-1 flex" :body-style="{ flex: 1 }">
|
||||
<div class="flex h-full items-start">
|
||||
<Menu v-model="activeMenu" :menus="menus" />
|
||||
<preview-pc class="mx-4" v-model="selectWidgetIndex" :pageData="getPageData" />
|
||||
<attr-setting class="flex-1" :widget="getSelectWidget" type="pc" />
|
||||
</div>
|
||||
</el-card>
|
||||
<footer-btns class="mt-4" :fixed="false" v-perms="['decorate:pages:save']">
|
||||
<el-button type="primary" @click="setData">保存</el-button>
|
||||
</footer-btns>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup name="decorationPc">
|
||||
import Menu from './component/pages/menu.vue'
|
||||
import PreviewPc from './component/pages/preview-pc.vue'
|
||||
import AttrSetting from './component/pages/attr-setting.vue'
|
||||
import widgets from './component/widgets'
|
||||
import { getDecoratePages, setDecoratePages } from '@/api/decoration'
|
||||
import { getNonDuplicateID } from '@/utils/util'
|
||||
enum pagesTypeEnum {
|
||||
HOME = '4'
|
||||
}
|
||||
|
||||
const generatePageData = (widgetNames: string[]) => {
|
||||
return widgetNames.map((widgetName) => {
|
||||
const options = {
|
||||
id: getNonDuplicateID(),
|
||||
...(widgets[widgetName]?.options() || {})
|
||||
}
|
||||
return options
|
||||
})
|
||||
}
|
||||
|
||||
const menus: Record<
|
||||
string,
|
||||
{
|
||||
id: number
|
||||
name: string
|
||||
pageData: any[]
|
||||
}
|
||||
> = reactive({
|
||||
[pagesTypeEnum.HOME]: {
|
||||
id: 4,
|
||||
pageType: 4,
|
||||
name: 'pc首页装修',
|
||||
pageData: []
|
||||
}
|
||||
})
|
||||
|
||||
const activeMenu = ref('4')
|
||||
const selectWidgetIndex = ref(0)
|
||||
const getPageData = computed(() => {
|
||||
return menus[activeMenu.value]?.pageData ?? []
|
||||
})
|
||||
const getSelectWidget = computed(() => {
|
||||
return menus[activeMenu.value]?.pageData[selectWidgetIndex.value] ?? ''
|
||||
})
|
||||
|
||||
const getData = async () => {
|
||||
const data = await getDecoratePages({ id: activeMenu.value })
|
||||
menus[String(data.id)].pageData = JSON.parse(data.pageData)
|
||||
selectWidgetIndex.value = getPageData.value.findIndex((item) => !item.disabled)
|
||||
}
|
||||
|
||||
const setData = async () => {
|
||||
await setDecoratePages({
|
||||
...menus[activeMenu.value],
|
||||
pageData: JSON.stringify(menus[activeMenu.value].pageData)
|
||||
})
|
||||
getData()
|
||||
}
|
||||
watch(
|
||||
activeMenu,
|
||||
() => {
|
||||
selectWidgetIndex.value = getPageData.value.findIndex((item) => !item.disabled)
|
||||
getData()
|
||||
},
|
||||
{
|
||||
immediate: true
|
||||
}
|
||||
)
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.decoration-pages {
|
||||
min-height: calc(100vh - var(--navbar-height) - 80px);
|
||||
@apply flex flex-col;
|
||||
}
|
||||
</style>
|
||||
@@ -8,7 +8,7 @@
|
||||
ref="formRef"
|
||||
class="ls-form"
|
||||
:model="formData"
|
||||
label-width="100px"
|
||||
label-width="130px"
|
||||
:rules="rules"
|
||||
>
|
||||
<el-tabs v-model="activeName">
|
||||
@@ -218,11 +218,50 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="生成方式" prop="gen.genType">
|
||||
<el-radio-group v-model="formData.gen.genType">
|
||||
<el-radio :label="GenType.ZIP">压缩包下载</el-radio>
|
||||
<el-radio :label="GenType.CUSTOM_PATH">自定义路径</el-radio>
|
||||
</el-radio-group>
|
||||
<div>
|
||||
<el-radio-group v-model="formData.gen.genType">
|
||||
<el-radio :label="GenType.ZIP">压缩包下载</el-radio>
|
||||
<el-radio :label="GenType.CUSTOM_PATH">自定义路径</el-radio>
|
||||
</el-radio-group>
|
||||
<div class="form-tips">压縮包下载方式暂不支持自动构建菜单权限</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="菜单构建" prop="gen.menuStatus" required>
|
||||
<div>
|
||||
<el-radio-group v-model="formData.gen.menuStatus">
|
||||
<el-radio :label="1">自动构建</el-radio>
|
||||
<el-radio :label="0">手动添加</el-radio>
|
||||
</el-radio-group>
|
||||
<div class="form-tips">
|
||||
自动构建:自动执行生成菜单sql。 手动添加:自行添加菜单
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="父级菜单" prop="gen.menuPid">
|
||||
<el-tree-select
|
||||
class="w-80"
|
||||
v-model="formData.gen.menuPid"
|
||||
:data="optionsData.menu"
|
||||
clearable
|
||||
node-key="id"
|
||||
:props="{
|
||||
label: 'menuName'
|
||||
}"
|
||||
default-expand-all
|
||||
placeholder="请选择父级菜单"
|
||||
check-strictly
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="菜单名称" prop="gen.menuName">
|
||||
<div class="w-80">
|
||||
<el-input
|
||||
v-model="formData.gen.menuName"
|
||||
placeholder="请输入菜单名称"
|
||||
clearable
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
v-if="formData.gen.genType == GenType.CUSTOM_PATH"
|
||||
label="自定义路径"
|
||||
@@ -273,6 +312,48 @@
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="关联配置" name="relation">
|
||||
<el-form-item label="关联子表的表名" prop="gen.subTableName">
|
||||
<el-select
|
||||
class="w-80"
|
||||
v-model="formData.gen.subTableName"
|
||||
clearable
|
||||
@change="handleTableChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in optionsData.dataTable"
|
||||
:key="item.tableName"
|
||||
:value="item.tableName"
|
||||
:label="`${item.tableName}:${item.tableComment}`"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="子表关联的外键名 " prop="gen.subTableFk">
|
||||
<el-select
|
||||
class="w-80"
|
||||
v-model="formData.gen.subTableFk"
|
||||
clearable
|
||||
:loading="columnLoading"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in tableColumn"
|
||||
:key="item.id"
|
||||
:value="item.columnName"
|
||||
:label="`${item.columnName}:${item.columnComment}`"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="关联表主键 " prop="gen.subTableFr">
|
||||
<el-select class="w-80" v-model="formData.gen.subTableFr" clearable>
|
||||
<el-option
|
||||
v-for="item in formData.column"
|
||||
:key="item.id"
|
||||
:value="item.columnName"
|
||||
:label="`${item.columnName}:${item.columnComment}`"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-form>
|
||||
</el-card>
|
||||
@@ -283,7 +364,7 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="tableEdit">
|
||||
import { generateEdit, tableDetail } from '@/api/tools/code'
|
||||
import { dataTableAll, generateEdit, tableDetail, dataTableToColumn } from '@/api/tools/code'
|
||||
import { dictTypeAll } from '@/api/setting/dict'
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import feedback from '@/utils/feedback'
|
||||
@@ -322,9 +403,13 @@ const formData = reactive({
|
||||
moduleName: '',
|
||||
subTableFk: '',
|
||||
subTableName: '',
|
||||
subTableFr: '',
|
||||
treeParent: '',
|
||||
treePrimary: '',
|
||||
treeName: ''
|
||||
treeName: '',
|
||||
menuName: '',
|
||||
menuStatus: 0,
|
||||
menuPid: 0
|
||||
}
|
||||
})
|
||||
|
||||
@@ -345,15 +430,18 @@ const getDetails = async () => {
|
||||
const data = await tableDetail({
|
||||
id: route.query.id
|
||||
})
|
||||
|
||||
Object.keys(formData).forEach((key) => {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
})
|
||||
getTableColumn()
|
||||
}
|
||||
|
||||
const { optionsData } = useDictOptions<{
|
||||
dictType: any[]
|
||||
menu: any[]
|
||||
dataTable: any[]
|
||||
}>({
|
||||
dictType: {
|
||||
api: dictTypeAll
|
||||
@@ -361,13 +449,29 @@ const { optionsData } = useDictOptions<{
|
||||
menu: {
|
||||
api: menuLists,
|
||||
transformData(data: any) {
|
||||
const menu = { id: 0, name: '顶级', children: [] }
|
||||
const menu = { id: 0, menuName: '顶级', children: [] }
|
||||
menu.children = data
|
||||
return menu
|
||||
return [menu]
|
||||
}
|
||||
},
|
||||
dataTable: {
|
||||
api: dataTableAll
|
||||
}
|
||||
})
|
||||
|
||||
const columnLoading = ref(false)
|
||||
const tableColumn = ref<any[]>([])
|
||||
const getTableColumn = async () => {
|
||||
columnLoading.value = true
|
||||
const res = await dataTableToColumn({ tableName: formData.gen.subTableName })
|
||||
columnLoading.value = false
|
||||
tableColumn.value = res
|
||||
}
|
||||
|
||||
const handleTableChange = () => {
|
||||
formData.gen.subTableFk = ''
|
||||
getTableColumn()
|
||||
}
|
||||
const handleSave = async () => {
|
||||
try {
|
||||
await formRef.value?.validate()
|
||||
|
||||
@@ -28,13 +28,14 @@
|
||||
<el-form-item label="名称" prop="nickname">
|
||||
<el-input v-model="formData.nickname" placeholder="请输入名称" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="归属部门" prop="deptId">
|
||||
<el-form-item label="归属部门" prop="deptIds">
|
||||
<el-tree-select
|
||||
class="flex-1"
|
||||
v-model="formData.deptId"
|
||||
v-model="formData.deptIds"
|
||||
:data="optionsData.dept"
|
||||
clearable
|
||||
node-key="id"
|
||||
multiple
|
||||
:props="{
|
||||
value: 'id',
|
||||
label: 'name',
|
||||
@@ -47,11 +48,12 @@
|
||||
placeholder="请选择上级部门"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="岗位" prop="deptId">
|
||||
<el-form-item label="岗位" prop="postIds">
|
||||
<el-select
|
||||
class="flex-1"
|
||||
clearable
|
||||
v-model="formData.postId"
|
||||
multiple
|
||||
v-model="formData.postIds"
|
||||
placeholder="请选择岗位"
|
||||
>
|
||||
<el-option
|
||||
@@ -63,10 +65,11 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="角色" prop="role">
|
||||
<el-form-item label="角色" prop="roleIds">
|
||||
<el-select
|
||||
v-model="formData.role"
|
||||
v-model="formData.roleIds"
|
||||
:disabled="isRoot"
|
||||
multiple
|
||||
class="flex-1"
|
||||
clearable
|
||||
placeholder="请选择角色"
|
||||
@@ -135,12 +138,12 @@ const popupTitle = computed(() => {
|
||||
})
|
||||
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
id: 0,
|
||||
username: '',
|
||||
nickname: '',
|
||||
deptId: '',
|
||||
postId: '',
|
||||
role: '',
|
||||
deptIds: [],
|
||||
postIds: [],
|
||||
roleIds: [],
|
||||
avatar: '',
|
||||
password: '',
|
||||
passwordConfirm: '',
|
||||
@@ -149,7 +152,7 @@ const formData = reactive({
|
||||
})
|
||||
|
||||
const isRoot = computed(() => {
|
||||
return formData.role == '0'
|
||||
return formData.id == 1
|
||||
})
|
||||
|
||||
const passwordConfirmValidator = (rule: object, value: string, callback: any) => {
|
||||
@@ -174,8 +177,9 @@ const formRules = reactive({
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
role: [
|
||||
roleIds: [
|
||||
{
|
||||
type: 'array',
|
||||
required: true,
|
||||
message: '请选择角色',
|
||||
trigger: ['blur']
|
||||
@@ -231,6 +235,13 @@ const open = (type = 'add') => {
|
||||
}
|
||||
|
||||
const setFormData = async (row: any) => {
|
||||
formRules.password = []
|
||||
formRules.passwordConfirm = [
|
||||
{
|
||||
validator: passwordConfirmValidator,
|
||||
trigger: 'blur'
|
||||
}
|
||||
]
|
||||
const data = await adminDetail({
|
||||
id: row.id
|
||||
})
|
||||
@@ -239,16 +250,7 @@ const setFormData = async (row: any) => {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
}
|
||||
Number(formData.deptId) == 0 && (formData.deptId = '')
|
||||
Number(formData.postId) == 0 && (formData.postId = '')
|
||||
}
|
||||
formRules.password = []
|
||||
formRules.passwordConfirm = [
|
||||
{
|
||||
validator: passwordConfirmValidator,
|
||||
trigger: 'blur'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
const handleClose = () => {
|
||||
|
||||
@@ -52,8 +52,18 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="账号" prop="username" min-width="100" />
|
||||
<el-table-column label="名称" prop="nickname" min-width="100" />
|
||||
<el-table-column label="角色" prop="role" min-width="100" />
|
||||
<el-table-column label="部门" prop="dept" min-width="100" />
|
||||
<el-table-column
|
||||
label="角色"
|
||||
prop="role"
|
||||
show-tooltip-when-overflow
|
||||
min-width="100"
|
||||
/>
|
||||
<el-table-column
|
||||
label="部门"
|
||||
prop="dept"
|
||||
show-tooltip-when-overflow
|
||||
min-width="100"
|
||||
/>
|
||||
<el-table-column label="创建时间" prop="createTime" min-width="180" />
|
||||
<el-table-column label="最近登录时间" prop="lastLoginTime" min-width="180" />
|
||||
<el-table-column label="最近登录IP" prop="lastLoginIp" min-width="120" />
|
||||
|
||||
@@ -224,7 +224,7 @@ const formData = reactive({
|
||||
//路由参数
|
||||
params: '',
|
||||
//是否缓存 0=否, 1=是
|
||||
isCache: 1,
|
||||
isCache: 0,
|
||||
//是否显示 0=否, 1=是
|
||||
isShow: 1,
|
||||
//是否禁用 0=否, 1=是
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
<el-table-column label="操作" width="160" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-if="row.menuType !== MenuEnum.BUTTON"
|
||||
v-perms="['system:menu:add']"
|
||||
type="primary"
|
||||
link
|
||||
|
||||
81
admin/src/views/setting/system/login_log.vue
Normal file
81
admin/src/views/setting/system/login_log.vue
Normal file
@@ -0,0 +1,81 @@
|
||||
<!-- 系统日志 -->
|
||||
<template>
|
||||
<div class="login-log">
|
||||
<el-card class="!border-none" shadow="never">
|
||||
<el-form class="ls-form" :model="formData" inline>
|
||||
<el-form-item label="用户名称">
|
||||
<el-input
|
||||
class="w-[280px]"
|
||||
placeholder="请输入"
|
||||
v-model="formData.username"
|
||||
clearable
|
||||
@keyup.enter="resetPage"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="状态">
|
||||
<el-select class="w-[280px]" v-model="formData.status" placeholder="请选择">
|
||||
<el-option label="全部" value="" />
|
||||
<el-option label="失败" :value="0" />
|
||||
<el-option label="成功" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="登录时间">
|
||||
<daterange-picker
|
||||
v-model:startTime="formData.startTime"
|
||||
v-model:endTime="formData.endTime"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="resetPage">查询</el-button>
|
||||
<el-button @click="resetParams">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
<el-card class="!border-none mt-4" shadow="never" v-loading="pager.loading">
|
||||
<div>
|
||||
<el-table :data="pager.lists" size="large">
|
||||
<el-table-column label="用户名称" prop="username" min-width="120" />
|
||||
<el-table-column label="登录地址" prop="ip" min-width="120" />
|
||||
<el-table-column label="浏览器" prop="browser" min-width="120" />
|
||||
<el-table-column label="摱作系統" prop="os" min-width="120" />
|
||||
<el-table-column prop="status" label="状态" min-width="100">
|
||||
<template #default="{ row }">
|
||||
<el-tag v-if="row.status == 1" type="success">成功</el-tag>
|
||||
<el-tag v-if="row.status == 0" type="danger">失败</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="登录时间" prop="createTime" min-width="180" />
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="flex mt-4 justify-end">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="journal">
|
||||
import { loginLogLists } from '@/api/setting/system'
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
|
||||
// 查询表单
|
||||
const formData = ref({
|
||||
username: '',
|
||||
status: '',
|
||||
startTime: '',
|
||||
endTime: ''
|
||||
})
|
||||
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: loginLogLists,
|
||||
params: formData.value
|
||||
})
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
142
admin/src/views/setting/system/scheduled_task/edit.vue
Normal file
142
admin/src/views/setting/system/scheduled_task/edit.vue
Normal file
@@ -0,0 +1,142 @@
|
||||
<template>
|
||||
<div class="article-edit">
|
||||
<el-card class="!border-none" shadow="never">
|
||||
<el-page-header :content="$route.meta.title" @back="$router.back()" />
|
||||
</el-card>
|
||||
<el-card class="mt-4 !border-none" shadow="never">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
class="ls-form"
|
||||
:model="formData"
|
||||
label-width="96px"
|
||||
:rules="rules"
|
||||
>
|
||||
<el-form-item label="任务名称" prop="name">
|
||||
<div class="w-80">
|
||||
<el-input
|
||||
v-model="formData.name"
|
||||
placeholder="请输入任务名称"
|
||||
maxlength="30"
|
||||
clearable
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务分组" prop="types">
|
||||
<el-select
|
||||
class="w-80"
|
||||
v-model="formData.types"
|
||||
clearable
|
||||
placeholder="请选择任务分组"
|
||||
>
|
||||
<el-option label="默认" value="default" />
|
||||
<el-option label="系统" value="system" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="调用方法" prop="command">
|
||||
<div class="w-80">
|
||||
<el-input
|
||||
v-model="formData.command"
|
||||
placeholder="请输入调用目标字符串"
|
||||
clearable
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="cron表达式" prop="rules">
|
||||
<div class="w-80">
|
||||
<el-input v-model="formData.rules" placeholder="请输入cron执行表达式" />
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<div class="w-80">
|
||||
<el-input
|
||||
v-model="formData.remark"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 3, maxRows: 6 }"
|
||||
:maxlength="200"
|
||||
show-word-limit
|
||||
clearable
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="执行策略" prop="strategy">
|
||||
<el-radio-group v-model="formData.strategy">
|
||||
<el-radio :label="1"> 立即执行 </el-radio>
|
||||
<el-radio :label="2"> 执行一次 </el-radio>
|
||||
<el-radio :label="3"> 放弃执行 </el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否并发" prop="concurrent">
|
||||
<el-radio-group v-model="formData.concurrent">
|
||||
<el-radio :label="1"> 允许 </el-radio>
|
||||
<el-radio :label="0"> 禁止 </el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态">
|
||||
<el-switch v-model="formData.status" :active-value="1" :inactive-value="2" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<footer-btns>
|
||||
<el-button type="primary" @click="handleSave">保存</el-button>
|
||||
</footer-btns>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="scheduledTaskEdit">
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import { crontabAdd, crontabEdit, crontabDetail } from '@/api/setting/system'
|
||||
import useMultipleTabs from '@/hooks/useMultipleTabs'
|
||||
import feedback from '@/utils/feedback'
|
||||
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
const formData = reactive({
|
||||
id: '',
|
||||
name: '',
|
||||
types: '',
|
||||
command: '',
|
||||
rules: '',
|
||||
status: 1,
|
||||
strategy: 1,
|
||||
concurrent: 0,
|
||||
remark: ''
|
||||
})
|
||||
|
||||
const { removeTab } = useMultipleTabs()
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const rules = reactive({
|
||||
name: [{ required: true, message: '请输入任务名称' }],
|
||||
command: [{ required: true, message: '请输入调用目标字符串' }],
|
||||
rules: [{ required: true, message: '请输入cron执行表达式' }]
|
||||
})
|
||||
|
||||
const getDetails = async () => {
|
||||
const data = await crontabDetail({
|
||||
id: route.query.id
|
||||
})
|
||||
Object.keys(formData).forEach((key) => {
|
||||
//@ts-ignore
|
||||
formData[key] = data[key]
|
||||
})
|
||||
}
|
||||
|
||||
const handleSave = async () => {
|
||||
await formRef.value?.validate()
|
||||
if (route.query.id) {
|
||||
await crontabEdit(formData)
|
||||
} else {
|
||||
await crontabAdd(formData)
|
||||
}
|
||||
feedback.msgSuccess('操作成功')
|
||||
removeTab()
|
||||
router.back()
|
||||
}
|
||||
onMounted(async () => {
|
||||
if (!route.query.id) {
|
||||
return
|
||||
}
|
||||
await getDetails()
|
||||
})
|
||||
</script>
|
||||
111
admin/src/views/setting/system/scheduled_task/index.vue
Normal file
111
admin/src/views/setting/system/scheduled_task/index.vue
Normal file
@@ -0,0 +1,111 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card shadow="never" class="!border-none">
|
||||
<router-link
|
||||
v-perms="['crontab/add', 'crontab/add:edit']"
|
||||
:to="getRoutePath('crontab/add:edit')"
|
||||
>
|
||||
<el-button type="primary" class="mb-[16px]">
|
||||
<template #icon>
|
||||
<icon name="el-icon-Plus" />
|
||||
</template>
|
||||
新增
|
||||
</el-button>
|
||||
</router-link>
|
||||
|
||||
<el-table
|
||||
ref="paneTable"
|
||||
class="m-t-24"
|
||||
:data="pager.lists"
|
||||
v-loading="pager.loading"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-table-column prop="name" label="名称" min-width="120" />
|
||||
<el-table-column prop="groups" label="分组" min-width="100">
|
||||
<template #default="{ row }">
|
||||
<dict-value
|
||||
:value="row.groups"
|
||||
:options="[
|
||||
{
|
||||
name: '默认',
|
||||
value: 'default'
|
||||
},
|
||||
{
|
||||
name: '系统',
|
||||
value: 'system'
|
||||
}
|
||||
]"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="command" label="调用目标字符串" min-width="100" />
|
||||
<el-table-column prop="rules" label="cron表达式" min-width="100" />
|
||||
<el-table-column prop="status" label="状态" min-width="100">
|
||||
<template #default="{ row }">
|
||||
<el-tag v-if="row.status == 1" type="success">运行中</el-tag>
|
||||
<el-tag v-if="row.status == 2" type="info">已停止</el-tag>
|
||||
<el-tag v-if="row.status == 3" type="danger">错误</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="error" label="错误信息" min-width="120" />
|
||||
<el-table-column label="最后执行时间" prop="endTime" min-width="180" />
|
||||
<el-table-column prop="taskTime" label="执行耗时(ms)" min-width="100" />
|
||||
|
||||
<el-table-column label="操作" width="120" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<div class="flex">
|
||||
<el-button type="primary" link>
|
||||
<router-link
|
||||
v-perms="['crontab/edit', 'crontab/add:edit']"
|
||||
:to="{
|
||||
path: getRoutePath('crontab/add:edit'),
|
||||
query: {
|
||||
id: row.id
|
||||
}
|
||||
}"
|
||||
>
|
||||
<el-button type="primary" link> 编辑 </el-button>
|
||||
</router-link>
|
||||
</el-button>
|
||||
<el-button
|
||||
v-perms="['crontab/delete']"
|
||||
type="danger"
|
||||
link
|
||||
@click="handleDelete(row.id)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup name="scheduledTask">
|
||||
import { crontabLists, crontabDel } from '@/api/setting/system'
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import { getRoutePath } from '@/router'
|
||||
import feedback from '@/utils/feedback'
|
||||
|
||||
const { pager, getLists } = usePaging({
|
||||
fetchFun: crontabLists,
|
||||
params: {}
|
||||
})
|
||||
|
||||
const handleDelete = async (id: number) => {
|
||||
await feedback.confirm('确定要删除?')
|
||||
await crontabDel({ id })
|
||||
feedback.msgSuccess('删除成功')
|
||||
getLists()
|
||||
}
|
||||
|
||||
getLists()
|
||||
</script>
|
||||
|
||||
<style lang="scss"></style>
|
||||
@@ -52,6 +52,44 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-card>
|
||||
<el-card shadow="never" class="!border-none mt-4">
|
||||
<div class="text-xl font-medium mb-[20px]">PC端设置</div>
|
||||
<el-form-item label="PC端LOGO" prop="pcLogo">
|
||||
<div>
|
||||
<material-picker v-model="formData.pcLogo" :limit="1" />
|
||||
<div class="form-tips">建议尺寸:120*28px,支持jpg,jpeg,png格式</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="网站标题" prop="pcTitle">
|
||||
<div class="w-80">
|
||||
<el-input
|
||||
v-model.trim="formData.pcTitle"
|
||||
placeholder="请输入PC端网站标题"
|
||||
maxlength="30"
|
||||
show-word-limit
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="网站图标" prop="pcIco">
|
||||
<div>
|
||||
<material-picker v-model="formData.pcIco" :limit="1" />
|
||||
<div class="form-tips">建议尺寸:100*100像素,支持jpg,jpeg,png格式</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="网站描述" prop="pcDesc">
|
||||
<div class="w-80">
|
||||
<el-input v-model.trim="formData.pcDesc" placeholder="请输入PC端网站描述" />
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="网站关键词" prop="pcKeywords">
|
||||
<div class="w-80">
|
||||
<el-input
|
||||
v-model.trim="formData.pcKeywords"
|
||||
placeholder="请输入PC端网站关键词"
|
||||
/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-card>
|
||||
</el-form>
|
||||
<footer-btns v-perms="['setting:website:save']">
|
||||
<el-button type="primary" @click="handleSubmit">保存</el-button>
|
||||
@@ -73,7 +111,12 @@ const formData = reactive({
|
||||
logo: '', // 网站logo
|
||||
backdrop: '', // 登录页广告图
|
||||
shopName: '',
|
||||
shopLogo: ''
|
||||
shopLogo: '',
|
||||
pcDesc: '',
|
||||
pcIco: '',
|
||||
pcKeywords: '',
|
||||
pcLogo: '',
|
||||
pcTitle: ''
|
||||
})
|
||||
|
||||
// 表单验证
|
||||
@@ -119,6 +162,27 @@ const rules = {
|
||||
message: '请选择商城LOGO',
|
||||
trigger: ['change']
|
||||
}
|
||||
],
|
||||
pcLogo: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择PC端LOGO',
|
||||
trigger: ['change']
|
||||
}
|
||||
],
|
||||
pcTitle: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入PC端网站标题',
|
||||
trigger: ['blur']
|
||||
}
|
||||
],
|
||||
pcIco: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择PC端网站图标',
|
||||
trigger: ['change']
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
63
admin/src/views/template/component/file.vue
Normal file
63
admin/src/views/template/component/file.vue
Normal file
@@ -0,0 +1,63 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card header="基础使用" shadow="none" class="!border-none">
|
||||
<div class="flex flex-wrap">
|
||||
<div class="flex m-4">
|
||||
<div class="mr-4">选择图片:</div>
|
||||
<material-picker v-model="state.value1" />
|
||||
</div>
|
||||
<div class="flex m-4">
|
||||
<div class="mr-4">选择视频:</div>
|
||||
<material-picker type="video" v-model="state.value3" />
|
||||
</div>
|
||||
<div class="flex flex-1 m-4">
|
||||
<div class="mr-4">多张图片:</div>
|
||||
<div class="flex-1">
|
||||
<!-- 外层需要有足够的宽度,这样预览图和选择按钮才不会直接换行 -->
|
||||
<material-picker :limit="4" v-model="state.value2" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card header="进阶用法" shadow="none" class="!border-none mt-4">
|
||||
<div class="flex flex-wrap">
|
||||
<div class="flex m-4">
|
||||
<div class="mr-4">自定义选择器大小:</div>
|
||||
<material-picker size="60px" v-model="state.value4" />
|
||||
</div>
|
||||
<div class="flex m-4">
|
||||
<div class="mr-4">使用插槽:</div>
|
||||
<material-picker v-model="state.value5">
|
||||
<template #upload>
|
||||
<el-button>选择文件</el-button>
|
||||
</template>
|
||||
</material-picker>
|
||||
</div>
|
||||
<div class="flex m-4">
|
||||
<div class="mr-4">选出地址不带域名:</div>
|
||||
<material-picker :exclude-domain="true" v-model="state.value6" />
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="flex m-4 items-center">
|
||||
<div class="w-20 flex-none">带域名:</div>
|
||||
<el-input class="w-[500px]" :model-value="state.value5" />
|
||||
</div>
|
||||
<div class="flex m-4 items-center">
|
||||
<div class="w-20 flex-none">不带域名:</div>
|
||||
<el-input class="w-[500px]" :model-value="state.value6" />
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
const state = reactive({
|
||||
value1: '',
|
||||
value2: [],
|
||||
value3: '',
|
||||
value4: '',
|
||||
value5: '',
|
||||
value6: ''
|
||||
})
|
||||
</script>
|
||||
64
admin/src/views/template/component/icon.vue
Normal file
64
admin/src/views/template/component/icon.vue
Normal file
@@ -0,0 +1,64 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card header="element-plus图标" shadow="none" class="!border-none">
|
||||
<div class="flex items-center">
|
||||
<icon class="m-4" :size="24" name="el-icon-Search" />
|
||||
<icon class="m-4" :size="24" name="el-icon-Plus" />
|
||||
<icon class="m-4" :size="24" name="el-icon-FullScreen" />
|
||||
<icon class="m-4" :size="24" name="el-icon-Setting" />
|
||||
<icon class="m-4" :size="24" name="el-icon-Warning" />
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card header="本地图标" shadow="none" class="!border-none mt-4">
|
||||
<div class="flex items-center">
|
||||
<icon class="m-4" :size="24" name="local-icon-baoxian" />
|
||||
<icon class="m-4" :size="24" name="local-icon-youhui" />
|
||||
<icon class="m-4" :size="24" name="local-icon-daiyunying" />
|
||||
<icon class="m-4" :size="24" name="local-icon-diancanshezhi" />
|
||||
<icon class="m-4" :size="24" name="local-icon-dianzifapiao" />
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card header="图标选择器" shadow="none" class="!border-none mt-4">
|
||||
<div class="flex items-center">
|
||||
<icon-picker v-model="state.value" />
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card
|
||||
header="element-plus图标库大全(点击复制图标名称)"
|
||||
shadow="none"
|
||||
class="!border-none mt-4"
|
||||
>
|
||||
<div class="flex items-center">
|
||||
<div class="flex flex-wrap">
|
||||
<div v-for="item in getElementPlusIconNames()" :key="item" class="m-1">
|
||||
<el-button v-copy="item">
|
||||
<icon :name="item" :size="20" />
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card
|
||||
header="本地图标库大全(点击复制图标名称)"
|
||||
shadow="none"
|
||||
class="!border-none mt-4"
|
||||
>
|
||||
<div class="flex items-center">
|
||||
<div class="flex flex-wrap">
|
||||
<div v-for="item in getLocalIconNames()" :key="item" class="m-1">
|
||||
<el-button v-copy="item">
|
||||
<icon :name="item" :size="20" />
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import Icon from '@/components/icon/index.vue'
|
||||
import { getElementPlusIconNames, getLocalIconNames } from '@/components/icon'
|
||||
const state = reactive({
|
||||
value: ''
|
||||
})
|
||||
</script>
|
||||
12
admin/src/views/template/component/link.vue
Normal file
12
admin/src/views/template/component/link.vue
Normal file
@@ -0,0 +1,12 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card header="基础使用" shadow="none" class="!border-none">
|
||||
<link-picker v-model="state.value1" />
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
const state = reactive({
|
||||
value1: {}
|
||||
})
|
||||
</script>
|
||||
9
admin/src/views/template/component/overflow.vue
Normal file
9
admin/src/views/template/component/overflow.vue
Normal file
@@ -0,0 +1,9 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card header="基础使用" shadow="none" class="!border-none">
|
||||
<overflow-tooltip class="w-20 m-4" content="超出自动打点,悬浮弹窗显示全部内容" />
|
||||
<overflow-tooltip class="w-60 m-4" content="超出自动打点,悬浮弹窗显示全部内容" />
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup></script>
|
||||
48
admin/src/views/template/component/popover_input.vue
Normal file
48
admin/src/views/template/component/popover_input.vue
Normal file
@@ -0,0 +1,48 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card header="基础使用" shadow="none" class="!border-none">
|
||||
<div class="flex flex-wrap">
|
||||
<div class="m-4">
|
||||
<popover-input @confirm="onConfirm">
|
||||
<template #default>
|
||||
<el-button> 点击输入 </el-button>
|
||||
</template>
|
||||
</popover-input>
|
||||
</div>
|
||||
<div class="m-4">
|
||||
<popover-input type="number" @confirm="onConfirm">
|
||||
<template #default>
|
||||
<el-button> 输入数字 </el-button>
|
||||
</template>
|
||||
</popover-input>
|
||||
</div>
|
||||
<div class="m-4">
|
||||
<popover-input size="small" @confirm="onConfirm">
|
||||
<template #default>
|
||||
<el-button> 调整大小 </el-button>
|
||||
</template>
|
||||
</popover-input>
|
||||
</div>
|
||||
<div class="m-4">
|
||||
<popover-input :limit="20" :show-limit="true" @confirm="onConfirm">
|
||||
<template #default>
|
||||
<el-button> 限制输入长度 </el-button>
|
||||
</template>
|
||||
</popover-input>
|
||||
</div>
|
||||
<div class="m-4">
|
||||
<popover-input value="默认值" @confirm="onConfirm">
|
||||
<template #default>
|
||||
<el-button> 默认值 </el-button>
|
||||
</template>
|
||||
</popover-input>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
const onConfirm = (value: string) => {
|
||||
console.log(value)
|
||||
}
|
||||
</script>
|
||||
16
admin/src/views/template/component/rich_text.vue
Normal file
16
admin/src/views/template/component/rich_text.vue
Normal file
@@ -0,0 +1,16 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card header="基础使用" shadow="none" class="!border-none">
|
||||
<editor v-model="state.value1" height="500px" />
|
||||
</el-card>
|
||||
<el-card header="简洁模式" shadow="none" class="!border-none mt-4">
|
||||
<editor v-model="state.value2" height="500px" mode="simple" />
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
const state = reactive({
|
||||
value1: '',
|
||||
value2: ''
|
||||
})
|
||||
</script>
|
||||
65
admin/src/views/template/component/upload.vue
Normal file
65
admin/src/views/template/component/upload.vue
Normal file
@@ -0,0 +1,65 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-card header="基础使用" shadow="none" class="!border-none">
|
||||
<div class="flex flex-wrap">
|
||||
<div class="m-4">
|
||||
<upload
|
||||
@change="onChange"
|
||||
@success="onSuccess"
|
||||
@error="onError"
|
||||
:show-progress="true"
|
||||
>
|
||||
<el-button type="primary">上传图片</el-button>
|
||||
</upload>
|
||||
</div>
|
||||
<div class="m-4">
|
||||
<upload
|
||||
type="video"
|
||||
@change="onChange"
|
||||
@success="onSuccess"
|
||||
@error="onError"
|
||||
:show-progress="true"
|
||||
>
|
||||
<el-button type="primary">上传视频</el-button>
|
||||
</upload>
|
||||
</div>
|
||||
<div class="m-4">
|
||||
<upload
|
||||
:multiple="false"
|
||||
@change="onChange"
|
||||
@success="onSuccess"
|
||||
@error="onError"
|
||||
:show-progress="true"
|
||||
>
|
||||
<el-button type="primary">取消多选</el-button>
|
||||
</upload>
|
||||
</div>
|
||||
<div class="m-4">
|
||||
<upload
|
||||
:limit="2"
|
||||
@change="onChange"
|
||||
@success="onSuccess"
|
||||
@error="onError"
|
||||
:show-progress="true"
|
||||
>
|
||||
<el-button type="primary">一次最多上传2张</el-button>
|
||||
</upload>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import Upload from '@/components/upload/index.vue'
|
||||
const onChange = (file: any) => {
|
||||
console.log('上传文件的状态发生改变', file)
|
||||
}
|
||||
|
||||
const onSuccess = (file: any) => {
|
||||
console.log('上传文件成功', file)
|
||||
}
|
||||
|
||||
const onError = (file: any) => {
|
||||
console.log('上传文件失败', file)
|
||||
}
|
||||
</script>
|
||||
@@ -1 +0,0 @@
|
||||
import o from"./error.73982a4e.js";import{d as r,o as t,c as m,V as p}from"./@vue.cab01781.js";import"./element-plus.dc25723c.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./vue-router.5046cc50.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const i={class:"error404"},L=r({__name:"404",setup(e){return(u,c)=>(t(),m("div",i,[p(o,{code:"404",title:"\u54CE\u5440\uFF0C\u51FA\u9519\u4E86\uFF01\u60A8\u8BBF\u95EE\u7684\u9875\u9762\u4E0D\u5B58\u5728\u2026"})]))}});export{L as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import{_ as S}from"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.47d23681.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";export{S as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./attr-setting.vue_vue_type_script_setup_true_lang.a2349682.js";import{_ as cm}from"./attr-setting.vue_vue_type_script_setup_true_lang.a2349682.js";import"./index.c57b75ff.js";import"./attr.vue_vue_type_script_setup_true_lang.1d4a0ddf.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.47d23681.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./content.vue_vue_type_script_setup_true_lang.0751226b.js";import"./decoration-img.e721b824.js";import"./attr.vue_vue_type_script_setup_true_lang.bef6b0b5.js";import"./content.ba16021f.js";import"./attr.vue_vue_type_script_setup_true_lang.333658d9.js";import"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import"./content.755aa6fa.js";import"./attr.vue_vue_type_script_setup_true_lang.10c7c124.js";import"./content.vue_vue_type_script_setup_true_lang.8f985d5c.js";import"./attr.vue_vue_type_script_setup_true_lang.06a2fa18.js";import"./content.078a7895.js";import"./decoration.931da4ad.js";import"./attr.vue_vue_type_script_setup_true_lang.0b87e513.js";import"./content.dee32382.js";import"./attr.vue_vue_type_script_setup_true_lang.f75e53ca.js";import"./content.vue_vue_type_script_setup_true_lang.898b8e5a.js";import"./attr.vue_vue_type_script_setup_true_lang.0583d8bc.js";import"./content.a6205e2d.js";export{cm as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{w as i}from"./index.c57b75ff.js";import{d as l,o as t,c as d,a as m,U as f,L as c,R as p,u as g,aK as b}from"./@vue.cab01781.js";const u={class:"pages-setting"},w={class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2"},k=l({__name:"attr-setting",props:{widget:{type:Object,default:()=>({})}},setup(e){return(y,x)=>{var s,a,n,o,r;return t(),d("div",u,[m("div",w,f((s=e.widget)==null?void 0:s.title),1),(t(),c(b,null,[(t(),c(p((n=g(i)[(a=e.widget)==null?void 0:a.name])==null?void 0:n.attr),{class:"pt-5 pr-4",content:(o=e.widget)==null?void 0:o.content,styles:(r=e.widget)==null?void 0:r.styles},null,8,["content","styles"]))],1024))])}}});export{k as _};
|
||||
@@ -1 +0,0 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.f75e53ca.js";import{_ as S}from"./attr.vue_vue_type_script_setup_true_lang.f75e53ca.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.47d23681.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";export{S as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.10c7c124.js";import{_ as T}from"./attr.vue_vue_type_script_setup_true_lang.10c7c124.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import"./index.47d23681.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";export{T as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.1d4a0ddf.js";import{_ as S}from"./attr.vue_vue_type_script_setup_true_lang.1d4a0ddf.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.47d23681.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";export{S as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.333658d9.js";import{_ as T}from"./attr.vue_vue_type_script_setup_true_lang.333658d9.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import"./index.47d23681.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";export{T as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./attr.vue_vue_type_script_setup_true_lang.bef6b0b5.js";import{_ as R}from"./attr.vue_vue_type_script_setup_true_lang.bef6b0b5.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.f6f09cb5.js";import"./index.857546d9.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.47d23681.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";export{R as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{O as y,P as U,D as v,C as w,w as N,F as O}from"./element-plus.dc25723c.js";import{_ as $}from"./index.47d23681.js";import{_ as j}from"./picker.1db07d0b.js";import{_ as I}from"./picker.f6f09cb5.js";import{f as V}from"./index.4333e73f.js";import{D as R}from"./vuedraggable.1099696c.js";import{d as T,o as m,c as G,V as e,M as t,L as r,S as E,a as c,u as L,T as i}from"./@vue.cab01781.js";const M=i("\u5F00\u542F"),P=i("\u505C\u7528"),S={class:"flex-1"},q=c("div",{class:"form-tips"},"\u6700\u591A\u6DFB\u52A05\u5F20\uFF0C\u5EFA\u8BAE\u56FE\u7247\u5C3A\u5BF8\uFF1A750px*340px",-1),z={class:"bg-fill-light flex items-center w-full p-4 mt-4 cursor-move"},H={class:"ml-3 flex-1"},J=i("\u6DFB\u52A0\u56FE\u7247"),te=T({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(a){const s=a,_=5,b=()=>{var n;((n=s.content.data)==null?void 0:n.length)<_?s.content.data.push({image:"",name:"",link:{}}):V.msgError(`\u6700\u591A\u6DFB\u52A0${_}\u5F20\u56FE\u7247`)},g=n=>{var l;if(((l=s.content.data)==null?void 0:l.length)<=1)return V.msgError("\u6700\u5C11\u4FDD\u7559\u4E00\u5F20\u56FE\u7247");s.content.data.splice(n,1)};return(n,l)=>{const p=y,h=U,d=v,k=I,B=w,x=j,A=$,C=N,D=O;return m(),G("div",null,[e(D,{"label-width":"70px"},{default:t(()=>{var f;return[n.type=="mobile"?(m(),r(d,{key:0,label:"\u662F\u5426\u542F\u7528"},{default:t(()=>[e(h,{modelValue:a.content.enabled,"onUpdate:modelValue":l[0]||(l[0]=o=>a.content.enabled=o)},{default:t(()=>[e(p,{label:1},{default:t(()=>[M]),_:1}),e(p,{label:0},{default:t(()=>[P]),_:1})]),_:1},8,["modelValue"])]),_:1})):E("",!0),e(d,{label:"\u56FE\u7247\u8BBE\u7F6E"},{default:t(()=>[c("div",S,[q,e(L(R),{class:"draggable",modelValue:a.content.data,"onUpdate:modelValue":l[1]||(l[1]=o=>a.content.data=o),animation:"300"},{item:t(({element:o,index:F})=>[(m(),r(A,{key:F,onClose:u=>g(F),class:"max-w-[400px]"},{default:t(()=>[c("div",z,[e(k,{modelValue:o.image,"onUpdate:modelValue":u=>o.image=u,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),c("div",H,[e(d,{label:"\u56FE\u7247\u540D\u79F0"},{default:t(()=>[e(B,{modelValue:o.name,"onUpdate:modelValue":u=>o.name=u,placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(d,{class:"mt-[18px]",label:"\u56FE\u7247\u94FE\u63A5"},{default:t(()=>[e(x,{modelValue:o.link,"onUpdate:modelValue":u=>o.link=u},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])])]),_:1}),((f=a.content.data)==null?void 0:f.length)<_?(m(),r(d,{key:1},{default:t(()=>[e(C,{type:"primary",onClick:b},{default:t(()=>[J]),_:1})]),_:1})):E("",!0)]}),_:1})])}}});export{te as _};
|
||||
@@ -1 +0,0 @@
|
||||
import"./auth.vue_vue_type_script_setup_true_lang.66389c88.js";import{_ as K}from"./auth.vue_vue_type_script_setup_true_lang.66389c88.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./role.e5ae53f1.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./menu.6701aa80.js";import"./index.857546d9.js";export{K as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import"./code-preview.vue_vue_type_script_setup_true_lang.54ddb1e8.js";import{_ as H}from"./code-preview.vue_vue_type_script_setup_true_lang.54ddb1e8.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";export{H as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{r as n}from"./index.4333e73f.js";function r(e){return n.get({url:"/gen/list",params:e})}function a(e){return n.get({url:"/gen/db",params:e})}function o(e){return n.post({url:"/gen/importTable",params:e},{isParamsToData:!1})}function s(e){return n.get({url:"/gen/detail",params:e})}function u(e){return n.post({url:"/gen/syncTable",params:e},{isParamsToData:!1})}function l(e){return n.post({url:"/gen/delTable",params:e})}function g(e){return n.post({url:"/gen/editTable",params:e})}function i(e){return n.get({url:"/gen/previewCode",params:e})}function d(e){return n.get({url:"/gen/genCode",params:e})}function f(e){return n.get({responseType:"blob",url:"/gen/downloadCode",params:e},{isTransformResponse:!1})}export{l as a,i as b,d as c,f as d,r as e,o as f,g,a as h,u as s,s as t};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import"./content.vue_vue_type_script_setup_true_lang.8f985d5c.js";import{_ as I}from"./content.vue_vue_type_script_setup_true_lang.8f985d5c.js";import"./decoration-img.e721b824.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";export{I as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./content.vue_vue_type_script_setup_true_lang.0751226b.js";import{_ as I}from"./content.vue_vue_type_script_setup_true_lang.0751226b.js";import"./decoration-img.e721b824.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";export{I as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./content.vue_vue_type_script_setup_true_lang.898b8e5a.js";import{_ as I}from"./content.vue_vue_type_script_setup_true_lang.898b8e5a.js";import"./decoration-img.e721b824.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";export{I as default};
|
||||
@@ -1 +0,0 @@
|
||||
import o from"./decoration-img.e721b824.js";import{d as s,e as c,o as r,c as i,a as p,V as d,u as m}from"./@vue.cab01781.js";const u={class:"banner"},_={class:"banner-image"},h=s({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(t){const n=t,a=c(()=>{const{data:e}=n.content;return Array.isArray(e)&&e[0]?e[0].image:""});return(e,l)=>(r(),i("div",u,[p("div",_,[d(o,{width:"100%",height:"170px",src:m(a),fit:"contain"},null,8,["src"])])]))}});export{h as _};
|
||||
@@ -1 +0,0 @@
|
||||
import"./data-table.vue_vue_type_script_setup_true_lang.7012be52.js";import{_ as K}from"./data-table.vue_vue_type_script_setup_true_lang.7012be52.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.857546d9.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./usePaging.a52dcef9.js";import"./code.47dab7e8.js";export{K as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./edit.vue_vue_type_script_setup_true_lang.a6714fa8.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.a6714fa8.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./article.2f08df0a.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";export{J as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./edit.vue_vue_type_script_setup_true_lang.39f2aeb5.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.39f2aeb5.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./wx_oa.e0a6b56e.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";export{J as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./edit.vue_vue_type_script_setup_true_lang.28c42e56.js";import{_ as I}from"./edit.vue_vue_type_script_setup_true_lang.28c42e56.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";export{I as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./edit.vue_vue_type_script_setup_true_lang.2d8fe412.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.2d8fe412.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./menu.6701aa80.js";import"./index.857546d9.js";export{J as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import"./edit.vue_vue_type_script_setup_true_lang.6c818e35.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.6c818e35.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.857546d9.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./dict.e05e17e9.js";export{J as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./edit.vue_vue_type_script_setup_true_lang.7b6452e6.js";import{_ as K}from"./edit.vue_vue_type_script_setup_true_lang.7b6452e6.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./department.55f5e4eb.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";import"./useDictOptions.c44482a4.js";export{K as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./edit.vue_vue_type_script_setup_true_lang.de42638d.js";import{_ as V}from"./edit.vue_vue_type_script_setup_true_lang.de42638d.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./picker.f6f09cb5.js";import"./index.857546d9.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.47d23681.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./useDictOptions.c44482a4.js";import"./role.e5ae53f1.js";import"./post.5fc8658d.js";import"./department.55f5e4eb.js";export{V as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./edit.vue_vue_type_script_setup_true_lang.0f9f6084.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.0f9f6084.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./post.5fc8658d.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";export{J as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./edit.vue_vue_type_script_setup_true_lang.f827ee31.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.f827ee31.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./message.4c664cda.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";export{J as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./edit.vue_vue_type_script_setup_true_lang.6b7b9f9f.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.6b7b9f9f.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./role.e5ae53f1.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";export{J as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./edit.vue_vue_type_script_setup_true_lang.420c9f63.js";import{_ as J}from"./edit.vue_vue_type_script_setup_true_lang.420c9f63.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.857546d9.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./dict.e05e17e9.js";export{J 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
@@ -1 +0,0 @@
|
||||
import{Z as U,w as z,J as G,K as J,I as K,L as P}from"./element-plus.dc25723c.js";import{M as C,f as D,b as Z}from"./index.4333e73f.js";import{m as j,d as q}from"./menu.6701aa80.js";import{_ as H}from"./edit.vue_vue_type_script_setup_true_lang.2d8fe412.js";import{d as R,s as x,r as E,ag as Q,o as n,c as v,V as s,M as t,a as N,O as c,L as r,u as w,S as $,T as m,n as L}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./index.857546d9.js";const W={class:"menu-lists"},X=m(" \u65B0\u589E "),Y=m(" \u5C55\u5F00/\u6298\u53E0 "),ee={key:0},te={key:1},oe={key:2},ae={class:"flex"},ne=m("\u6B63\u5E38"),se=m("\u505C\u7528"),ie=m(" \u65B0\u589E "),le=m(" \u7F16\u8F91 "),ue=m(" \u5220\u9664 "),re=R({name:"menu"}),Ke=R({...re,setup(me){const b=x(),d=x();let h=!1;const p=E(!1),_=E(!1),y=E([]),k=async()=>{p.value=!0;try{const e=await j();y.value=e,p.value=!1}catch{p.value=!1}},g=async e=>{var o,i;_.value=!0,await L(),e&&((o=d.value)==null||o.setFormData({pid:e})),(i=d.value)==null||i.open("add")},A=async e=>{var o,i;_.value=!0,await L(),(o=d.value)==null||o.open("edit"),(i=d.value)==null||i.getDetail(e)},V=async e=>{await D.confirm("\u786E\u5B9A\u8981\u5220\u9664\uFF1F"),await q({id:e}),D.msgSuccess("\u5220\u9664\u6210\u529F"),k()},M=()=>{h=!h,F(y.value,h)},F=(e,o=!0)=>{var i;for(const l in e)(i=b.value)==null||i.toggleRowExpansion(e[l],o),e[l].children&&F(e[l].children,o)};return k(),(e,o)=>{const i=Z,l=z,u=G,B=U,S=J,I=K,f=Q("perms"),O=P;return n(),v("div",W,[s(I,{class:"!border-none",shadow:"never"},{default:t(()=>[N("div",null,[c((n(),r(l,{type:"primary",onClick:o[0]||(o[0]=a=>g())},{icon:t(()=>[s(i,{name:"el-icon-Plus"})]),default:t(()=>[X]),_:1})),[[f,["system:menu:add"]]]),s(l,{onClick:M},{default:t(()=>[Y]),_:1})]),c((n(),r(S,{ref_key:"tableRef",ref:b,class:"mt-4",size:"large",data:y.value,"row-key":"id","tree-props":{children:"children",hasChildren:"hasChildren"}},{default:t(()=>[s(u,{label:"\u83DC\u5355\u540D\u79F0",prop:"menuName","min-width":"150","show-overflow-tooltip":""}),s(u,{label:"\u7C7B\u578B",prop:"menuType","min-width":"80"},{default:t(({row:a})=>[a.menuType==w(C).CATALOGUE?(n(),v("div",ee,"\u76EE\u5F55")):a.menuType==w(C).MENU?(n(),v("div",te,"\u83DC\u5355")):a.menuType==w(C).BUTTON?(n(),v("div",oe,"\u6309\u94AE")):$("",!0)]),_:1}),s(u,{label:"\u56FE\u6807",prop:"menuIcon","min-width":"80"},{default:t(({row:a})=>[N("div",ae,[s(i,{name:a.menuIcon,size:20},null,8,["name"])])]),_:1}),s(u,{label:"\u6743\u9650\u6807\u8BC6",prop:"perms","min-width":"150","show-overflow-tooltip":""}),s(u,{label:"\u72B6\u6001",prop:"isDisable","min-width":"100"},{default:t(({row:a})=>[a.isDisable==0?(n(),r(B,{key:0},{default:t(()=>[ne]),_:1})):(n(),r(B,{key:1,type:"danger"},{default:t(()=>[se]),_:1}))]),_:1}),s(u,{label:"\u6392\u5E8F",prop:"menuSort","min-width":"100"}),s(u,{label:"\u66F4\u65B0\u65F6\u95F4",prop:"updateTime","min-width":"180"}),s(u,{label:"\u64CD\u4F5C",width:"160",fixed:"right"},{default:t(({row:a})=>[c((n(),r(l,{type:"primary",link:"",onClick:T=>g(a.id)},{default:t(()=>[ie]),_:2},1032,["onClick"])),[[f,["system:menu:add"]]]),c((n(),r(l,{type:"primary",link:"",onClick:T=>A(a)},{default:t(()=>[le]),_:2},1032,["onClick"])),[[f,["system:menu:edit"]]]),c((n(),r(l,{type:"danger",link:"",onClick:T=>V(a.id)},{default:t(()=>[ue]),_:2},1032,["onClick"])),[[f,["system:menu:del"]]])]),_:1})]),_:1},8,["data"])),[[O,p.value]])]),_:1}),_.value?(n(),r(H,{key:0,ref_key:"editRef",ref:d,onSuccess:k,onClose:o[1]||(o[1]=a=>_.value=!1)},null,512)):$("",!0)])}}});export{Ke as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{x as c,y as u,I as f}from"./element-plus.dc25723c.js";import{_ as y}from"./index.7692c15c.js";import{d as i,r as x,o as r,c as m,V as e,M as o,W as b,a8 as v}from"./@vue.cab01781.js";import{d as g}from"./index.4333e73f.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./usePaging.a52dcef9.js";import"./index.47d23681.js";import"./index.857546d9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const C={class:"material-index"},E=i({name:"materialCenter"}),V=i({...E,setup(k){const n=[{type:"image",name:"\u56FE\u7247"},{type:"video",name:"\u89C6\u9891"}],a=x("image");return(z,p)=>{const s=y,_=c,l=u,d=f;return r(),m("div",C,[e(d,{class:"!border-none",shadow:"never"},{default:o(()=>[e(l,{modelValue:a.value,"onUpdate:modelValue":p[0]||(p[0]=t=>a.value=t)},{default:o(()=>[(r(),m(b,null,v(n,t=>e(_,{label:t.name,name:t.type,index:t.type,key:t.type,lazy:""},{default:o(()=>[e(s,{type:t.type,mode:"page","file-size":"120px",limit:-1,"page-size":20},null,8,["type"])]),_:2},1032,["label","name","index"])),64))]),_:1},8,["modelValue"])]),_:1})])}}});const nt=g(V,[["__scopeId","data-v-15a46c2f"]]);export{nt 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
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{_ as B}from"./index.911eba08.js";import{I as E,w as V}from"./element-plus.dc25723c.js";import b from"./menu.570c0773.js";import h from"./preview.908f40ef.js";import{_ as C}from"./attr-setting.vue_vue_type_script_setup_true_lang.a2349682.js";import{w as F}from"./index.c57b75ff.js";import{s as N,a as P}from"./decoration.931da4ad.js";import{n as k,f as I,d as S}from"./index.4333e73f.js";import{d as v,a0 as T,r as d,e as _,w as A,ag as M,o as g,c as O,V as r,M as n,a as J,u as f,O as U,L as W,T as L}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./attr.vue_vue_type_script_setup_true_lang.1d4a0ddf.js";import"./index.47d23681.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./content.vue_vue_type_script_setup_true_lang.0751226b.js";import"./decoration-img.e721b824.js";import"./attr.vue_vue_type_script_setup_true_lang.bef6b0b5.js";import"./content.ba16021f.js";import"./attr.vue_vue_type_script_setup_true_lang.333658d9.js";import"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import"./content.755aa6fa.js";import"./attr.vue_vue_type_script_setup_true_lang.10c7c124.js";import"./content.vue_vue_type_script_setup_true_lang.8f985d5c.js";import"./attr.vue_vue_type_script_setup_true_lang.06a2fa18.js";import"./content.078a7895.js";import"./attr.vue_vue_type_script_setup_true_lang.0b87e513.js";import"./content.dee32382.js";import"./attr.vue_vue_type_script_setup_true_lang.f75e53ca.js";import"./content.vue_vue_type_script_setup_true_lang.898b8e5a.js";import"./attr.vue_vue_type_script_setup_true_lang.0583d8bc.js";import"./content.a6205e2d.js";const $={class:"decoration-pages min-w-[1100px]"},j={class:"flex h-full items-start"},q=L("\u4FDD\u5B58"),z=v({name:"decorationPages"}),G=v({...z,setup(H){const s=e=>e.map(t=>{var p;return{id:k(),...((p=F[t])==null?void 0:p.options())||{}}}),o=T({[1]:{id:1,pageType:1,name:"\u9996\u9875\u88C5\u4FEE",pageData:s(["search","banner","nav","news"])},[2]:{id:2,pageType:2,name:"\u4E2A\u4EBA\u4E2D\u5FC3",pageData:s(["user-info","my-service","user-banner"])},[3]:{id:3,pageType:3,name:"\u5BA2\u670D\u8BBE\u7F6E",pageData:s(["customer-service"])}}),a=d("1"),i=d(-1),u=_(()=>{var e,t;return(t=(e=o[a.value])==null?void 0:e.pageData)!=null?t:[]}),D=_(()=>{var e,t;return(t=(e=o[a.value])==null?void 0:e.pageData[i.value])!=null?t:""}),l=async()=>{const e=await P({id:a.value});o[String(e.id)].pageData=JSON.parse(e.pageData)},x=async()=>{await N({...o[a.value],pageData:JSON.stringify(o[a.value].pageData)}),l(),I.msgSuccess("\u4FDD\u5B58\u6210\u529F")};return A(a,()=>{i.value=u.value.findIndex(e=>!e.disabled),l()},{immediate:!0}),(e,t)=>{const c=E,p=V,w=B,y=M("perms");return g(),O("div",$,[r(c,{shadow:"never",class:"!border-none flex-1 flex","body-style":{flex:1}},{default:n(()=>[J("div",j,[r(b,{modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=m=>a.value=m),menus:o},null,8,["modelValue","menus"]),r(h,{modelValue:i.value,"onUpdate:modelValue":t[1]||(t[1]=m=>i.value=m),pageData:f(u)},null,8,["modelValue","pageData"]),r(C,{class:"flex-1",widget:f(D)},null,8,["widget"])])]),_:1}),U((g(),W(w,{class:"mt-4",fixed:!1},{default:n(()=>[r(p,{type:"primary",onClick:x},{default:n(()=>[q]),_:1})]),_:1})),[[y,["decorate:pages:save"]]])])}}});const it=S(G,[["__scopeId","data-v-ed050f9e"]]);export{it as default};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
.login[data-v-0e999780]{background-image:url(/assets/login_bg.2f630cea.png);min-height:100vh;background-size:cover;background-position:center;background-repeat:no-repeat}.login .login-card[data-v-0e999780]{height:400px}
|
||||
@@ -1 +0,0 @@
|
||||
import{B as q,C as M,D as T,F as z,w as P}from"./element-plus.dc25723c.js";import{u as C,a as O,c as k,A as b,_ as W,b as X,P as Y,d as G}from"./index.4333e73f.js";import{u as H,a as J}from"./vue-router.5046cc50.js";import{d as E,e as D,o as f,c as g,a as r,W as Q,a8 as Z,u as m,U as L,r as R,s as B,a0 as ee,j as oe,V as o,M as c,aa as V,T as te}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.75518cf9.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const se={class:"layout-footer"},ne={class:"text-center p-2 text-xs text-tx-secondary max-w-[900px] mx-auto"},re=["href"],ae=E({__name:"footer",setup(x){const t=C(),l=D(()=>t.config.copyright||[]);return(d,a)=>(f(),g("footer",se,[r("div",ne,[(f(!0),g(Q,null,Z(m(l),u=>(f(),g("a",{class:"mx-1 hover:underline",href:u.link,target:"_blank",key:u.name},L(u.name),9,re))),128))])]))}});function ce(x){const t=R(!1);return{isLock:t,lockFn:async(...d)=>{if(!t.value){t.value=!0;try{const a=await x(...d);return t.value=!1,a}catch(a){throw t.value=!1,a}}}}}const le={class:"login flex flex-col"},ue={class:"flex-1 flex items-center justify-center"},ie={class:"login-card flex rounded-md"},pe={class:"flex-1 h-full hidden md:inline-block"},me={class:"login-form bg-body flex flex-col justify-center px-10 py-10 md:w-[400px] w-[375px] flex-none mx-auto"},de={class:"text-center text-3xl font-medium mb-8"},_e={class:"mb-5"},fe=te(" \u767B\u5F55 "),ge=E({__name:"login",setup(x){const t=B(),l=B(),d=C(),a=O(),u=H(),U=J(),i=R(!1),y=D(()=>d.config),s=ee({account:"",password:""}),K={account:[{required:!0,message:"\u8BF7\u8F93\u5165\u8D26\u53F7",trigger:["blur"]}],password:[{required:!0,message:"\u8BF7\u8F93\u5165\u5BC6\u7801",trigger:["blur"]}]},N=()=>{var e;if(!s.password)return(e=t.value)==null?void 0:e.focus();h()},h=async()=>{var _;await((_=l.value)==null?void 0:_.validate()),k.set(b,{remember:i.value,account:i.value?s.account:""}),await a.login(s);const{query:{redirect:e}}=u,n=typeof e=="string"?e:Y.INDEX;U.push(n)},{isLock:S,lockFn:$}=ce(h);return oe(()=>{const e=k.get(b);e!=null&&e.remember&&(i.value=e.remember,s.account=e.account)}),(e,n)=>{const _=W,v=X,w=M,F=T,A=z,I=q,j=P;return f(),g("div",le,[r("div",ue,[r("div",ie,[r("div",pe,[o(_,{src:m(y).webBackdrop,width:400,height:"100%"},null,8,["src"])]),r("div",me,[r("div",de,L(m(y).webName),1),o(A,{ref_key:"formRef",ref:l,model:s,size:"large",rules:K},{default:c(()=>[o(F,{prop:"account"},{default:c(()=>[o(w,{modelValue:s.account,"onUpdate:modelValue":n[0]||(n[0]=p=>s.account=p),modelModifiers:{trim:!0},placeholder:"\u8BF7\u8F93\u5165\u8D26\u53F7",onKeyup:V(N,["enter"])},{prepend:c(()=>[o(v,{name:"el-icon-User"})]),_:1},8,["modelValue","onKeyup"])]),_:1}),o(F,{prop:"password"},{default:c(()=>[o(w,{ref_key:"passwordRef",ref:t,modelValue:s.password,"onUpdate:modelValue":n[1]||(n[1]=p=>s.password=p),"show-password":"",placeholder:"\u8BF7\u8F93\u5165\u5BC6\u7801",onKeyup:V(h,["enter"])},{prepend:c(()=>[o(v,{name:"el-icon-Lock"})]),_:1},8,["modelValue","onKeyup"])]),_:1})]),_:1},8,["model"]),r("div",_e,[o(I,{modelValue:i.value,"onUpdate:modelValue":n[2]||(n[2]=p=>i.value=p),label:"\u8BB0\u4F4F\u8D26\u53F7"},null,8,["modelValue"])]),o(j,{type:"primary",size:"large",loading:m(S),onClick:m($)},{default:c(()=>[fe]),_:1},8,["loading","onClick"])])])]),o(ae)])}}});const Xe=G(ge,[["__scopeId","data-v-0e999780"]]);export{Xe as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./oa-menu-form-edit.vue_vue_type_script_setup_true_lang.5505bc7f.js";import{_ as L}from"./oa-menu-form-edit.vue_vue_type_script_setup_true_lang.5505bc7f.js";import"./index.857546d9.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./oa-menu-form.vue_vue_type_script_setup_true_lang.0e916244.js";import"./useMenuOa.53ad0de9.js";import"./wx_oa.e0a6b56e.js";export{L as default};
|
||||
@@ -1 +0,0 @@
|
||||
import"./oa-menu-form.vue_vue_type_script_setup_true_lang.0e916244.js";import{_ as J}from"./oa-menu-form.vue_vue_type_script_setup_true_lang.0e916244.js";import"./element-plus.dc25723c.js";import"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./useMenuOa.53ad0de9.js";import"./index.4333e73f.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./wx_oa.e0a6b56e.js";export{J as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{E as u}from"./element-plus.dc25723c.js";import{w as d}from"./index.c57b75ff.js";import{d as _,o as r,c as p,V as f,M as v,W as y,a8 as b,Q as s,a as h,I as k,L as C,R as V,u as x}from"./@vue.cab01781.js";import{d as B}from"./index.4333e73f.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./attr.vue_vue_type_script_setup_true_lang.1d4a0ddf.js";import"./index.47d23681.js";import"./picker.1db07d0b.js";import"./index.857546d9.js";import"./picker.f6f09cb5.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./content.vue_vue_type_script_setup_true_lang.0751226b.js";import"./decoration-img.e721b824.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";import"./attr.vue_vue_type_script_setup_true_lang.bef6b0b5.js";import"./content.ba16021f.js";import"./attr.vue_vue_type_script_setup_true_lang.333658d9.js";import"./add-nav.vue_vue_type_script_setup_true_lang.f1bb8c42.js";import"./content.755aa6fa.js";import"./attr.vue_vue_type_script_setup_true_lang.10c7c124.js";import"./content.vue_vue_type_script_setup_true_lang.8f985d5c.js";import"./attr.vue_vue_type_script_setup_true_lang.06a2fa18.js";import"./content.078a7895.js";import"./decoration.931da4ad.js";import"./attr.vue_vue_type_script_setup_true_lang.0b87e513.js";import"./content.dee32382.js";import"./attr.vue_vue_type_script_setup_true_lang.f75e53ca.js";import"./content.vue_vue_type_script_setup_true_lang.898b8e5a.js";import"./attr.vue_vue_type_script_setup_true_lang.0583d8bc.js";import"./content.a6205e2d.js";const D={class:"shadow mx-[30px] pages-preview"},E=["onClick"],N=_({__name:"preview",props:{pageData:{type:Array,default:()=>[]},modelValue:{type:Number,default:0}},emits:["update:modelValue"],setup(m,{emit:l}){const n=(t,i)=>{t.disabled||l("update:modelValue",i)};return(t,i)=>{const c=u;return r(),p("div",D,[f(c,null,{default:v(()=>[(r(!0),p(y,null,b(m.pageData,(o,a)=>(r(),p("div",{key:o.id,class:s(["relative",{"cursor-pointer":!(o!=null&&o.disabled)}]),onClick:e=>n(o,a)},[h("div",{class:s(["absolute w-full h-full z-[100] border-dashed",{select:a==m.modelValue,"border-[#dcdfe6] border-2":!(o!=null&&o.disabled)}])},null,2),k(t.$slots,"default",{},()=>{var e;return[(r(),C(V((e=x(d)[o==null?void 0:o.name])==null?void 0:e.content),{content:o.content,styles:o.styles,key:o.id},null,8,["content","styles"]))]},!0)],10,E))),128))]),_:3})])}}});const Po=B(N,[["__scopeId","data-v-d63d893f"]]);export{Po as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{_ as V}from"./index.911eba08.js";import{C as b,D as F,F as x,I as D,w as h}from"./element-plus.dc25723c.js";import{_ as B}from"./index.vue_vue_type_style_index_0_lang.d7a4bbb0.js";import{c as E,d as g}from"./website.396384c9.js";import{f as w}from"./index.4333e73f.js";import{d as y,r as C,ag as k,o as c,c as A,a as l,V as o,M as t,O as U,L as I,W as N,T as P}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./@wangeditor.988960a0.js";import"./picker.f6f09cb5.js";import"./index.857546d9.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.47d23681.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const S={class:"xl:flex"},T=l("span",{class:"font-medium"},"\u670D\u52A1\u534F\u8BAE",-1),L=l("span",{class:"font-medium"},"\u9690\u79C1\u534F\u8BAE",-1),M=P("\u4FDD\u5B58"),Ue=y({__name:"protocol",setup(O){const e=C({privacy:{content:"",name:""},service:{content:"",name:""}}),r=async()=>{e.value=await E()},d=async()=>{await g(e.value),w.msgSuccess("\u64CD\u4F5C\u6210\u529F"),r()};return r(),(W,a)=>{const n=b,i=F,s=x,p=B,u=D,_=h,v=V,f=k("perms");return c(),A(N,null,[l("div",S,[o(u,{class:"!border-none flex-1 xl:mr-4 mb-4",shadow:"never"},{header:t(()=>[T]),default:t(()=>[o(s,{model:e.value,"label-width":"80px"},{default:t(()=>[o(i,{label:"\u534F\u8BAE\u540D\u79F0"},{default:t(()=>[o(n,{modelValue:e.value.service.name,"onUpdate:modelValue":a[0]||(a[0]=m=>e.value.service.name=m)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),o(p,{class:"mb-10",modelValue:e.value.service.content,"onUpdate:modelValue":a[1]||(a[1]=m=>e.value.service.content=m),height:"500"},null,8,["modelValue"])]),_:1}),o(u,{class:"!border-none flex-1 mb-4",shadow:"never"},{header:t(()=>[L]),default:t(()=>[o(s,{model:e.value,"label-width":"80px"},{default:t(()=>[o(i,{label:"\u534F\u8BAE\u540D\u79F0"},{default:t(()=>[o(n,{modelValue:e.value.privacy.name,"onUpdate:modelValue":a[2]||(a[2]=m=>e.value.privacy.name=m)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),o(p,{class:"mb-10",modelValue:e.value.privacy.content,"onUpdate:modelValue":a[3]||(a[3]=m=>e.value.privacy.content=m),height:"500"},null,8,["modelValue"])]),_:1})]),U((c(),I(v,null,{default:t(()=>[o(_,{type:"primary",onClick:d},{default:t(()=>[M]),_:1})]),_:1})),[[f,["setting:protocol:save"]]])],64)}}});export{Ue as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{_ as g}from"./index.911eba08.js";import{D,C as v,F as A,I as b,w as U}from"./element-plus.dc25723c.js";import{_ as y}from"./picker.f6f09cb5.js";import{a as h,v as k,f as I}from"./index.4333e73f.js";import{d as _,r as P,a0 as d,o as x,c as S,V as r,M as s,a as i,T as M}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.857546d9.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.47d23681.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const N={class:"user-setting"},q={class:"w-80"},R={class:"w-80"},T={class:"w-80"},j={class:"w-80"},z={class:"w-80"},G=M("\u4FDD\u5B58"),H=_({name:"userSetting"}),xo=_({...H,setup(J){const n=P(),p=h(),u=d({avatar:"",username:"",nickname:"",currPassword:"",password:"",passwordConfirm:""}),F=d({avatar:[{required:!0,message:"\u5934\u50CF\u4E0D\u80FD\u4E3A\u7A7A",trigger:["change"]}],nickname:[{required:!0,message:"\u8BF7\u8F93\u5165\u540D\u79F0",trigger:["blur"]}],currPassword:[{validator:(a,o,e)=>{u.password&&(o||e(new Error("\u8BF7\u8F93\u5165\u5F53\u524D\u5BC6\u7801"))),e()},trigger:"blur"}],password:[{validator:(a,o,e)=>{u.currPassword&&(o||e(new Error("\u8BF7\u8F93\u5165\u65B0\u7684\u5BC6\u7801"))),e()},trigger:"blur"}],passwordConfirm:[{validator:(a,o,e)=>{u.password&&(o||e(new Error("\u8BF7\u518D\u6B21\u8F93\u5165\u5BC6\u7801")),o!==u.password&&e(new Error("\u4E24\u6B21\u8F93\u5165\u5BC6\u7801\u4E0D\u4E00\u81F4!"))),e()},trigger:"blur"}]}),f=async()=>{const a=p.userInfo;for(const o in u)u[o]=a[o]},c=async()=>{await k(u),I.msgSuccess("\u4FDD\u5B58\u6210\u529F"),p.getUserInfo()},w=async()=>{var a;await((a=n.value)==null?void 0:a.validate()),c()};return f(),(a,o)=>{const e=y,l=D,m=v,B=A,E=b,C=U,V=g;return x(),S("div",N,[r(E,{class:"!border-none",shadow:"never"},{default:s(()=>[r(B,{ref_key:"formRef",ref:n,class:"ls-form",model:u,rules:F,"label-width":"100px"},{default:s(()=>[r(l,{label:"\u5934\u50CF\uFF1A",prop:"avatar"},{default:s(()=>[r(e,{modelValue:u.avatar,"onUpdate:modelValue":o[0]||(o[0]=t=>u.avatar=t),limit:1},null,8,["modelValue"])]),_:1}),r(l,{label:"\u8D26\u53F7\uFF1A",prop:"username"},{default:s(()=>[i("div",q,[r(m,{modelValue:u.username,"onUpdate:modelValue":o[1]||(o[1]=t=>u.username=t),disabled:""},null,8,["modelValue"])])]),_:1}),r(l,{label:"\u540D\u79F0\uFF1A",prop:"nickname"},{default:s(()=>[i("div",R,[r(m,{modelValue:u.nickname,"onUpdate:modelValue":o[2]||(o[2]=t=>u.nickname=t),placeholder:"\u8BF7\u8F93\u5165\u540D\u79F0"},null,8,["modelValue"])])]),_:1}),r(l,{label:"\u5F53\u524D\u5BC6\u7801\uFF1A",prop:"currPassword"},{default:s(()=>[i("div",T,[r(m,{modelValue:u.currPassword,"onUpdate:modelValue":o[3]||(o[3]=t=>u.currPassword=t),modelModifiers:{trim:!0},placeholder:"\u4FEE\u6539\u5BC6\u7801\u65F6\u5FC5\u586B, \u4E0D\u4FEE\u6539\u5BC6\u7801\u65F6\u7559\u7A7A",type:"password","show-password":""},null,8,["modelValue"])])]),_:1}),r(l,{label:"\u65B0\u7684\u5BC6\u7801\uFF1A",prop:"password"},{default:s(()=>[i("div",j,[r(m,{modelValue:u.password,"onUpdate:modelValue":o[4]||(o[4]=t=>u.password=t),modelModifiers:{trim:!0},placeholder:"\u4FEE\u6539\u5BC6\u7801\u65F6\u5FC5\u586B, \u4E0D\u4FEE\u6539\u5BC6\u7801\u65F6\u7559\u7A7A",type:"password","show-password":""},null,8,["modelValue"])])]),_:1}),r(l,{label:"\u786E\u5B9A\u5BC6\u7801\uFF1A",prop:"passwordConfirm"},{default:s(()=>[i("div",z,[r(m,{modelValue:u.passwordConfirm,"onUpdate:modelValue":o[5]||(o[5]=t=>u.passwordConfirm=t),modelModifiers:{trim:!0},placeholder:"\u4FEE\u6539\u5BC6\u7801\u65F6\u5FC5\u586B, \u4E0D\u4FEE\u6539\u5BC6\u7801\u65F6\u7559\u7A7A",type:"password","show-password":""},null,8,["modelValue"])])]),_:1})]),_:1},8,["model","rules"])]),_:1}),r(V,null,{default:s(()=>[r(C,{type:"primary",onClick:w},{default:s(()=>[G]),_:1})]),_:1})])}}});export{xo as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{_ as v}from"./index.911eba08.js";import{D,F as B,I as E,w as g}from"./element-plus.dc25723c.js";import{_ as h}from"./picker.f6f09cb5.js";import{a as A,b}from"./user.d7509607.js";import{f as k}from"./index.4333e73f.js";import{d as p,a0 as w,ag as y,o as i,c as V,V as e,M as r,a as u,O as x,L as S,T as N}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./index.857546d9.js";import"./index.7692c15c.js";import"./usePaging.a52dcef9.js";import"./index.47d23681.js";import"./index.vue_vue_type_script_setup_true_lang.eeecba7b.js";import"./vue3-video-play.05975c53.js";import"./vuedraggable.1099696c.js";import"./vue.b3c0ecb7.js";import"./sortablejs.74eb51b2.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";const U={class:"user-setup"},j=u("div",{class:"font-medium mb-7"},"\u57FA\u672C\u8BBE\u7F6E",-1),I=u("div",null,[u("div",{class:"form-tips"}," \u7528\u6237\u6CE8\u518C\u65F6\u7ED9\u7684\u9ED8\u8BA4\u5934\u50CF\uFF0C\u5EFA\u8BAE\u5C3A\u5BF8\uFF1A400*400\u50CF\u7D20\uFF0C\u652F\u6301jpg\uFF0Cjpeg\uFF0Cpng\u683C\u5F0F ")],-1),T=N("\u4FDD\u5B58"),L=p({name:"userSetup"}),wt=p({...L,setup(M){const t=w({defaultAvatar:""}),a=async()=>{try{const o=await A();for(const m in t)t[m]=o[m]}catch(o){console.log("\u83B7\u53D6=>",o)}},n=async()=>{try{await b(t),k.msgSuccess("\u64CD\u4F5C\u6210\u529F"),a()}catch(o){console.log("\u4FDD\u5B58=>",o)}};return a(),(o,m)=>{const l=h,s=D,c=B,_=E,d=g,f=v,F=y("perms");return i(),V("div",U,[e(_,{shadow:"never",class:"!border-none"},{default:r(()=>[j,e(c,{ref:"formRef",model:t,"label-width":"120px"},{default:r(()=>[e(s,{label:"\u7528\u6237\u9ED8\u8BA4\u5934\u50CF"},{default:r(()=>[u("div",null,[e(l,{modelValue:t.defaultAvatar,"onUpdate:modelValue":m[0]||(m[0]=C=>t.defaultAvatar=C),limit:1},null,8,["modelValue"])])]),_:1}),e(s,null,{default:r(()=>[I]),_:1})]),_:1},8,["model"])]),_:1}),x((i(),S(f,null,{default:r(()=>[e(d,{type:"primary",onClick:n},{default:r(()=>[T]),_:1})]),_:1})),[[F,["setting:user:save"]]])])}}});export{wt as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{r as t}from"./index.4333e73f.js";function s(){return t.get({url:"/monitor/server"})}function o(e){return t.get({url:"/system/log/operate",params:e})}function n(){return t.get({url:"/monitor/cache"})}export{s as a,o as b,n as s};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{f as t}from"./index.4333e73f.js";import{a as i,b as g,c as o}from"./wx_oa.e0a6b56e.js";import{s as d,r as c,a0 as h}from"./@vue.cab01781.js";const s=d(),a=c([]),n=c(0),S=h({name:[{required:!0,message:"\u5FC5\u586B\u9879\u4E0D\u80FD\u4E3A\u7A7A",trigger:["blur","change"]},{min:1,max:12,message:"\u957F\u5EA6\u9650\u523612\u4E2A\u5B57\u7B26",trigger:["blur","change"]}],menuType:[{required:!0,message:"\u5FC5\u586B\u9879\u4E0D\u80FD\u4E3A\u7A7A",trigger:["blur","change"]}],visitType:[{required:!0,message:"\u5FC5\u586B\u9879\u4E0D\u80FD\u4E3A\u7A7A",trigger:["blur","change"]}],url:[{required:!0,message:"\u5FC5\u586B\u9879\u4E0D\u80FD\u4E3A\u7A7A",trigger:["blur","change"]},{pattern:/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/,message:"\u8BF7\u8F93\u5165\u5408\u6CD5\u7684\u7F51\u5740\u94FE\u63A5",trigger:["blur","change"]}],appId:[{required:!0,message:"\u5FC5\u586B\u9879\u4E0D\u80FD\u4E3A\u7A7A",trigger:["blur","change"]}],pagePath:[{required:!0,message:"\u5FC5\u586B\u9879\u4E0D\u80FD\u4E3A\u7A7A",trigger:["blur","change"]}]}),y=l=>(l&&(s.value=l),{menuList:a,menuIndex:n,handleAddMenu:()=>{a.value.push({name:"\u83DC\u5355\u540D\u79F0",menuType:1,visitType:"view",url:"",appId:"",pagePath:"",subButtons:[]})},handleAddSubMenu:e=>{const u=n.value;if(a.value[u].subButtons.length>=5){t.msgError("\u5DF2\u6DFB\u52A0\u4E0A\u9650\uFF5E");return}a.value[u].subButtons.push(e)},handleEditSubMenu:(e,u)=>{const r=n.value;a.value[r].subButtons[u]=e},handleDelMenu:e=>{a.value.splice(e,1)},handleDelSubMenu:(e,u)=>{a.value[e].subButtons.splice(u,1)},getOaMenuFunc:async()=>{try{a.value=await i()}catch(e){console.log("\u83B7\u53D6\u83DC\u5355=>",e)}},handleSave:async()=>{const e=s.value.value;for(let u=0;u<e.length;u++)try{await e[u].menuFormRef.validate()}catch{n.value=u;return}await g(a.value),t.msgSuccess("\u4FDD\u5B58\u6210\u529F")},handlePublish:async()=>{const e=s.value.value;for(let u=0;u<e.length;u++)try{await e[u].menuFormRef.validate()}catch{n.value=u;return}await o(a.value),t.msgSuccess("\u53D1\u5E03\u6210\u529F")}});export{S as r,y as u};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{_ as v}from"./index.911eba08.js";import{H as C,I as w,C as h,D as x,F as I,w as b}from"./element-plus.dc25723c.js";import{r as d,f as g}from"./index.4333e73f.js";import{d as F,a0 as V,ag as S,o as c,c as k,V as e,M as u,a,O as y,L as P,T as N}from"./@vue.cab01781.js";import"./@vueuse.724ed0af.js";import"./@element-plus.92b4185f.js";import"./lodash-es.29c53eac.js";import"./dayjs.37ec2129.js";import"./axios.fd02a783.js";import"./async-validator.fb49d0f5.js";import"./@ctrl.82a509e0.js";import"./@popperjs.36402333.js";import"./escape-html.e5dfadb9.js";import"./normalize-wheel-es.8aeb3683.js";import"./lodash.75518cf9.js";import"./vue-router.5046cc50.js";import"./pinia.e85e8286.js";import"./vue-demi.bfae2336.js";import"./css-color-function.a8f9466d.js";import"./color.903ca10f.js";import"./clone.9d64bb7a.js";import"./color-convert.69e17089.js";import"./color-string.e356f5de.js";import"./color-name.e7a4e1d3.js";import"./nprogress.748450be.js";import"./vue-clipboard3.049f28db.js";import"./clipboard.6e731210.js";import"./echarts.6ad8c478.js";import"./zrender.f91f2f01.js";import"./highlight.js.4ebdf9a4.js";import"./@highlightjs.0ab41b7b.js";function T(n){return d.post({url:"/channel/wx/save",params:n})}function U(){return d.get({url:"/channel/wx/detail"})}const W=a("div",{class:"font-medium mb-7"},"APP\u5E94\u7528",-1),q={class:"w-80"},H={class:"w-80"},L=a("div",{class:"form-tips"}," \u5C0F\u7A0B\u5E8F\u8D26\u53F7\u767B\u5F55\u5FAE\u4FE1\u516C\u4F17\u5E73\u53F0\uFF0C\u70B9\u51FB\u5F00\u53D1>\u5F00\u53D1\u8BBE\u7F6E->\u5F00\u53D1\u8005ID\uFF0C\u8BBE\u7F6EAppID\u548CAppSecret ",-1),M=N("\u4FDD\u5B58"),O=F({name:"wxDevConfig"}),Ae=F({...O,setup(n){const t=V({appId:"",appSecret:""}),l=async()=>{const s=await U();for(const o in t)t[o]=s[o]},_=async()=>{await T(t),l(),g.msgSuccess("\u64CD\u4F5C\u6210\u529F")};return l(),(s,o)=>{const E=C,i=w,m=h,r=x,f=I,B=b,D=v,A=S("perms");return c(),k("div",null,[e(i,{class:"!border-none",shadow:"never"},{default:u(()=>[e(E,{type:"warning",title:"\u6E29\u99A8\u63D0\u793A\uFF1A\u586B\u5199\u5FAE\u4FE1\u5F00\u653E\u5E73\u53F0\u5F00\u53D1\u914D\u7F6E\uFF0C\u8BF7\u524D\u5F80\u5FAE\u4FE1\u5F00\u653E\u5E73\u53F0\u521B\u5EFA\u5E94\u7528\u5E76\u5B8C\u6210\u8BA4\u8BC1\uFF1BAPP\u5E94\u7528\u914D\u7F6E\u4E3B\u8981\u7528\u4E8EAPP\u5FAE\u4FE1\u767B\u5F55\u548C\u5FAE\u4FE1\u652F\u4ED8",closable:!1,"show-icon":""})]),_:1}),e(f,{ref:"formRef",model:t,"label-width":"160px"},{default:u(()=>[e(i,{class:"!border-none mt-4",shadow:"never"},{default:u(()=>[W,e(r,{label:"AppID",prop:"appId"},{default:u(()=>[a("div",q,[e(m,{modelValue:t.appId,"onUpdate:modelValue":o[0]||(o[0]=p=>t.appId=p),placeholder:"\u8BF7\u8F93\u5165AppID"},null,8,["modelValue"])])]),_:1}),e(r,{label:"AppSecret",prop:"appSecret"},{default:u(()=>[a("div",null,[a("div",H,[e(m,{modelValue:t.appSecret,"onUpdate:modelValue":o[1]||(o[1]=p=>t.appSecret=p),placeholder:"\u8BF7\u8F93\u5165AppSecret"},null,8,["modelValue"])])])]),_:1}),e(r,null,{default:u(()=>[L]),_:1})]),_:1})]),_:1},8,["model"]),y((c(),P(D,null,{default:u(()=>[e(B,{type:"primary",onClick:_},{default:u(()=>[M]),_:1})]),_:1})),[[A,["channel:wx:save"]]])])}}});export{Ae as default};
|
||||
@@ -1 +0,0 @@
|
||||
import{c as t}from"./client.68d036db.js";import{C as r}from"./index.f1911d8b.js";function n(n){return r.post({url:"/login/check",data:{...n,client:t}})}function o(n){return r.post({url:"/login/register",data:{...n,client:t}})}function a(t){return r.post({url:"/login/forgotPassword",data:t})}function i(){return r.get({url:"/login/codeUrl",data:{url:location.href}})}function e(t){return r.get({url:"/login/oaLogin",data:t})}export{e as O,a as f,i as g,n as l,o as r};
|
||||
@@ -1 +0,0 @@
|
||||
var I=(I=>(I[I.MP_WEIXIN=1]="MP_WEIXIN",I[I.OA_WEIXIN=2]="OA_WEIXIN",I[I.H5=3]="H5",I[I.IOS=5]="IOS",I[I.ANDROID=6]="ANDROID",I))(I||{}),N=(I=>(I[I.LOGIN=101]="LOGIN",I[I.BIND_MOBILE=102]="BIND_MOBILE",I[I.CHANGE_MOBILE=103]="CHANGE_MOBILE",I[I.FIND_PASSWORD=104]="FIND_PASSWORD",I))(N||{}),E=(I=>(I.NONE="",I.AVATAR="avatar",I.USERNAME="username",I.NICKNAME="nickname",I.SEX="sex",I))(E||{});export{I as C,E as F,N as S};
|
||||
@@ -1 +0,0 @@
|
||||
import{C as I}from"./appEnums.a2ba827b.js";const n=()=>/MicroMessenger/i.test(navigator.userAgent);function s(){const I=navigator.userAgent;return I.indexOf("Android")>-1||I.indexOf("Adr")>-1}const r=(({MP_WEIXIN:I,OA_WEIXIN:s,H5:r,IOS:t,ANDROID:O,OTHER:a})=>n()?s():r())({MP_WEIXIN:()=>I.MP_WEIXIN,OA_WEIXIN:()=>I.OA_WEIXIN,H5:()=>I.H5,IOS:()=>I.IOS,ANDROID:()=>I.ANDROID,OTHER:()=>null});export{n as a,r as c,s as i};
|
||||
@@ -1 +0,0 @@
|
||||
var i="/static/images/icon/icon_visit.png";export{i as _};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user