2025年04月03日18:21:15
This commit is contained in:
parent
7f6112b211
commit
26fa338589
1
.env.development
Normal file
1
.env.development
Normal file
@ -0,0 +1 @@
|
|||||||
|
VITE_APP_URL = 'http://192.168.3.116:8001'
|
3
.env.production
Normal file
3
.env.production
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
VITE_APP_URL = 'http://192.168.3.116:8001/'
|
||||||
|
|
||||||
|
|
1
components.d.ts
vendored
1
components.d.ts
vendored
@ -45,6 +45,7 @@ declare module '@vue/runtime-core' {
|
|||||||
ElTable: typeof import('element-plus/es')['ElTable']
|
ElTable: typeof import('element-plus/es')['ElTable']
|
||||||
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
||||||
ElTag: typeof import('element-plus/es')['ElTag']
|
ElTag: typeof import('element-plus/es')['ElTag']
|
||||||
|
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
||||||
ElUpload: typeof import('element-plus/es')['ElUpload']
|
ElUpload: typeof import('element-plus/es')['ElUpload']
|
||||||
Header: typeof import('./src/components/header.vue')['default']
|
Header: typeof import('./src/components/header.vue')['default']
|
||||||
RouterLink: typeof import('vue-router')['RouterLink']
|
RouterLink: typeof import('vue-router')['RouterLink']
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
"md-editor-v3": "^2.11.2",
|
"md-editor-v3": "^2.11.2",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"pinia": "^2.1.7",
|
"pinia": "^2.1.7",
|
||||||
|
"pinia-plugin-persistedstate": "^4.2.0",
|
||||||
"vue": "^3.4.5",
|
"vue": "^3.4.5",
|
||||||
"vue-cropper": "1.1.1",
|
"vue-cropper": "1.1.1",
|
||||||
"vue-echarts": "^6.6.9",
|
"vue-echarts": "^6.6.9",
|
||||||
|
152
src/api/index.d.ts
vendored
Normal file
152
src/api/index.d.ts
vendored
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
export interface Ipaging {
|
||||||
|
page: number;
|
||||||
|
size: number;
|
||||||
|
}
|
||||||
|
export interface IpagingRes<T> {
|
||||||
|
size: number
|
||||||
|
current: number
|
||||||
|
total: number
|
||||||
|
pages: number
|
||||||
|
records: T[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export namespace TLogin {
|
||||||
|
export interface Ireq {
|
||||||
|
username: string;
|
||||||
|
password: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IRes {
|
||||||
|
orgId: string
|
||||||
|
orgName: string
|
||||||
|
roleId: number
|
||||||
|
token: string
|
||||||
|
username: string
|
||||||
|
warnMusic: number
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export namespace TAccount {
|
||||||
|
export interface IAdd {
|
||||||
|
username: string;
|
||||||
|
password: string;
|
||||||
|
phone: string;
|
||||||
|
name: string;
|
||||||
|
orgId: number;
|
||||||
|
roleId: number;
|
||||||
|
status: number;
|
||||||
|
}
|
||||||
|
export interface IListReq extends Ipaging {
|
||||||
|
orgId?: number;
|
||||||
|
}
|
||||||
|
export interface Idel {
|
||||||
|
id: number;
|
||||||
|
}
|
||||||
|
export interface IResetPwd {
|
||||||
|
id: number;
|
||||||
|
password: string;
|
||||||
|
}
|
||||||
|
export interface IListRes {
|
||||||
|
id: number
|
||||||
|
orgId: number
|
||||||
|
roleId: number
|
||||||
|
flag: boolean
|
||||||
|
name: string
|
||||||
|
username: string
|
||||||
|
password: string
|
||||||
|
phone: string
|
||||||
|
orgName: string
|
||||||
|
updateUser: string
|
||||||
|
updateTime: string
|
||||||
|
creatUser: string
|
||||||
|
createTime: string
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
export namespace TDevice {
|
||||||
|
|
||||||
|
export interface IListReq extends Ipaging {
|
||||||
|
orgId?: number;
|
||||||
|
}
|
||||||
|
export interface IListRes {
|
||||||
|
id: number
|
||||||
|
deviceId: number
|
||||||
|
accountId: number
|
||||||
|
orgId: number
|
||||||
|
status: number
|
||||||
|
deviceSwitch: number
|
||||||
|
mode: number
|
||||||
|
monitorMode: number
|
||||||
|
battery: number
|
||||||
|
name: string
|
||||||
|
username: string
|
||||||
|
password: string
|
||||||
|
phone: string
|
||||||
|
orgName: string
|
||||||
|
deviceVersion: string
|
||||||
|
updateUser: string
|
||||||
|
updateTime: string
|
||||||
|
creatUser: string
|
||||||
|
createTime: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ISetMonitor {
|
||||||
|
deviceId: number;
|
||||||
|
mode?: number;
|
||||||
|
cmd?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IRecordReq extends Ipaging {
|
||||||
|
deviceId?: number;
|
||||||
|
}
|
||||||
|
export interface IRecordRes {
|
||||||
|
id: number
|
||||||
|
deviceId: number
|
||||||
|
accountId: number
|
||||||
|
orgId: number
|
||||||
|
status: number
|
||||||
|
deviceSwitch: number
|
||||||
|
mode: number
|
||||||
|
monitorMode: number
|
||||||
|
battery: number
|
||||||
|
name: string
|
||||||
|
username: string
|
||||||
|
password: string
|
||||||
|
phone: string
|
||||||
|
orgName: string
|
||||||
|
deviceVersion: string
|
||||||
|
updateUser: string
|
||||||
|
updateTime: string
|
||||||
|
creatUser: string
|
||||||
|
createTime: string
|
||||||
|
}
|
||||||
|
export interface IUseRecordRes {
|
||||||
|
id: number
|
||||||
|
accountId: number
|
||||||
|
userNumber: string
|
||||||
|
adminName: string
|
||||||
|
adminType: string
|
||||||
|
deviceId: string
|
||||||
|
phone: string
|
||||||
|
orgId: number
|
||||||
|
orgName: string
|
||||||
|
status: number
|
||||||
|
updateUser: string
|
||||||
|
updateTime: string
|
||||||
|
creatUser: string
|
||||||
|
createTime: string
|
||||||
|
}
|
||||||
|
export interface IWarningRecordRes {
|
||||||
|
id: number
|
||||||
|
userNumber: string
|
||||||
|
deviceId: string
|
||||||
|
warnType: number
|
||||||
|
status: number
|
||||||
|
updateUser: string
|
||||||
|
updateTime: string
|
||||||
|
creatUser: string
|
||||||
|
createTime: string
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
145
src/api/index.ts
145
src/api/index.ts
@ -1,22 +1,141 @@
|
|||||||
import request from '../utils/request';
|
import request from '../utils/request';
|
||||||
|
import { TLogin, TAccount, IpagingRes, TDevice } from "./index.d";
|
||||||
|
|
||||||
export const fetchData = () => {
|
export const fetchLogin = (p: TLogin.Ireq): Promise<TLogin.IRes> => {
|
||||||
return request({
|
return request({
|
||||||
url: './mock/table.json',
|
url: '/v1/web/login',
|
||||||
method: 'get'
|
method: 'post',
|
||||||
});
|
data: p
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export const fetchData = () => {
|
||||||
|
return request({
|
||||||
|
url: './mock/table.json',
|
||||||
|
method: 'get'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
export const fetchUserData = () => {
|
export const fetchUserData = () => {
|
||||||
return request({
|
return request({
|
||||||
url: './mock/user.json',
|
url: './mock/user.json',
|
||||||
method: 'get'
|
method: 'get'
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const fetchRoleData = () => {
|
export const fetchRoleData = () => {
|
||||||
return request({
|
return request({
|
||||||
url: './mock/role.json',
|
url: './mock/role.json',
|
||||||
method: 'get'
|
method: 'get'
|
||||||
});
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// 添加用户
|
||||||
|
export const accountAdd = (p: TAccount.IAdd): Promise<null> => {
|
||||||
|
return request({
|
||||||
|
url: '/v1/web/account/add',
|
||||||
|
method: 'post',
|
||||||
|
data: p
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 删除用户
|
||||||
|
export const accountDeletet = (p: TAccount.Idel): Promise<null> => {
|
||||||
|
return request({
|
||||||
|
url: '/v1/web/account/delete',
|
||||||
|
method: 'post',
|
||||||
|
data: p
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 修改用户
|
||||||
|
export const accountModify = (p: TAccount.IAdd): Promise<null> => {
|
||||||
|
return request({
|
||||||
|
url: '/v1/web/account/modify',
|
||||||
|
method: 'post',
|
||||||
|
data: p
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 获取用户列表
|
||||||
|
export const accountList = (p: TAccount.IListReq): Promise<IpagingRes<TAccount.IListRes>> => {
|
||||||
|
return request({
|
||||||
|
url: '/v1/web/account/list',
|
||||||
|
method: 'get',
|
||||||
|
params: p
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 重置密码
|
||||||
|
export const passwordReset = (p: TAccount.IResetPwd): Promise<null> => {
|
||||||
|
return request({
|
||||||
|
url: '/v1/web/account/password/reset',
|
||||||
|
method: 'post',
|
||||||
|
data: p
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 获取设备列表
|
||||||
|
export const deviceList = (p: TDevice.IListReq): Promise<IpagingRes<TDevice.IListRes>> => {
|
||||||
|
return request({
|
||||||
|
url: '/v1/web/device/list',
|
||||||
|
method: 'get',
|
||||||
|
params: p
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 设置监测模式
|
||||||
|
export const setMonitor = (p: TDevice.ISetMonitor): Promise<null> => {
|
||||||
|
return request({
|
||||||
|
url: '/v1/web/device/set/monitor',
|
||||||
|
method: 'post',
|
||||||
|
data: p
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 设置模式
|
||||||
|
export const setMode = (p: TDevice.ISetMonitor): Promise<null> => {
|
||||||
|
return request({
|
||||||
|
url: '/v1/web/device/set/mode',
|
||||||
|
method: 'post',
|
||||||
|
data: p
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 获取定位
|
||||||
|
export const deviceGetLocation = (p: TDevice.ISetMonitor): Promise<null> => {
|
||||||
|
return request({
|
||||||
|
url: '/v1/web/device/getLocation',
|
||||||
|
method: 'post',
|
||||||
|
data: p
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 设备控制
|
||||||
|
export const deviceControl = (p: TDevice.ISetMonitor): Promise<null> => {
|
||||||
|
return request({
|
||||||
|
url: '/v1/web/device/control',
|
||||||
|
method: 'post',
|
||||||
|
data: p
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 设备使用记录
|
||||||
|
export const deviceUseRecord = (p: TDevice.IRecordReq): Promise<IpagingRes<TDevice.IUseRecordRes>> => {
|
||||||
|
return request({
|
||||||
|
url: '/v1/web/device/use/record',
|
||||||
|
method: 'get',
|
||||||
|
params: p
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 预警记录
|
||||||
|
export const warningRecord = (p: TDevice.IRecordReq): Promise<IpagingRes<TDevice.IWarningRecordRes>> => {
|
||||||
|
return request({
|
||||||
|
url: '/v1/web/device/warning/record',
|
||||||
|
method: 'get',
|
||||||
|
params: p
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
{{ item }}{{ index != tab.list.length - 1 ? " / " : "" }}
|
{{ item }}{{ index != tab.list.length - 1 ? " / " : "" }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="web-time">{{ format(comm.time) }}</div>
|
<div class="web-time">{{ format(time) }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="header-user-con">
|
<div class="header-user-con">
|
||||||
@ -33,7 +33,7 @@
|
|||||||
<!-- 用户名下拉菜单 -->
|
<!-- 用户名下拉菜单 -->
|
||||||
<el-dropdown class="user-name" trigger="click" @command="handleCommand">
|
<el-dropdown class="user-name" trigger="click" @command="handleCommand">
|
||||||
<span class="el-dropdown-link">
|
<span class="el-dropdown-link">
|
||||||
{{ username }}
|
{{ user.username }}
|
||||||
<el-icon class="el-icon--right">
|
<el-icon class="el-icon--right">
|
||||||
<arrow-down />
|
<arrow-down />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
@ -61,11 +61,11 @@ import { format } from "@/utils";
|
|||||||
const tab = useTabsStore();
|
const tab = useTabsStore();
|
||||||
|
|
||||||
const username: string | null = localStorage.getItem("vuems_name");
|
const username: string | null = localStorage.getItem("vuems_name");
|
||||||
|
|
||||||
const message: number = 2;
|
const message: number = 2;
|
||||||
|
|
||||||
const sidebar = useSidebarStore();
|
const sidebar = useSidebarStore();
|
||||||
const comm = useCommonStore();
|
const { user, time, clearStore } = useCommonStore();
|
||||||
|
|
||||||
// onMounted(() => {
|
// onMounted(() => {
|
||||||
// if (document.body.clientWidth < 1500) {
|
// if (document.body.clientWidth < 1500) {
|
||||||
// sidebar.handleCollapse();
|
// sidebar.handleCollapse();
|
||||||
@ -76,7 +76,7 @@ const comm = useCommonStore();
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const handleCommand = (command: string) => {
|
const handleCommand = (command: string) => {
|
||||||
if (command == "loginout") {
|
if (command == "loginout") {
|
||||||
localStorage.removeItem("vuems_name");
|
clearStore();
|
||||||
router.push("/login");
|
router.push("/login");
|
||||||
} else if (command == "user") {
|
} else if (command == "user") {
|
||||||
router.push("/ucenter");
|
router.push("/ucenter");
|
||||||
|
@ -13,27 +13,27 @@
|
|||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-divider direction="vertical" />
|
<el-divider direction="vertical" />
|
||||||
</template>
|
</template>
|
||||||
<el-tooltip effect="dark" content="刷新" placement="top">
|
<el-tooltip effect="dark" content="刷新" placement="top">
|
||||||
<el-icon class="columns-setting-icon" @click="refresh">
|
<el-icon class="columns-setting-icon" @click="refresh">
|
||||||
<Refresh />
|
<Refresh />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-divider direction="vertical" />
|
<el-divider direction="vertical" />
|
||||||
<el-tooltip effect="dark" content="列设置" placement="top">
|
<el-tooltip effect="dark" content="列设置" placement="top">
|
||||||
<el-dropdown :hide-on-click="false" size="small" trigger="click">
|
<el-dropdown :hide-on-click="false" size="small" trigger="click">
|
||||||
<el-icon class="columns-setting-icon">
|
<el-icon class="columns-setting-icon">
|
||||||
<Setting />
|
<Setting />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item v-for="c in columns">
|
<el-dropdown-item v-for="c in columns">
|
||||||
<el-checkbox v-model="c.visible" :label="c.label" />
|
<el-checkbox v-model="c.visible" :label="c.label" />
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</template>
|
</template>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</div> -->
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
class="mgb20"
|
class="mgb20"
|
||||||
@ -192,8 +192,8 @@ const getIndex = (index: number) => {
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
margin-bottom: 10px;
|
/* margin-bottom: 10px; */
|
||||||
border-bottom: 1px solid #dedede;
|
/* border-bottom: 1px solid #dedede; */
|
||||||
padding-bottom: 22px;
|
padding-bottom: 22px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,12 +4,15 @@ import * as ElementPlusIconsVue from '@element-plus/icons-vue';
|
|||||||
import App from './App.vue';
|
import App from './App.vue';
|
||||||
import router from './router';
|
import router from './router';
|
||||||
import { usePermissStore } from './store/permiss';
|
import { usePermissStore } from './store/permiss';
|
||||||
|
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
|
||||||
import 'element-plus/dist/index.css';
|
import 'element-plus/dist/index.css';
|
||||||
import './assets/css/icon.css';
|
import './assets/css/icon.css';
|
||||||
import { ElNotification } from 'element-plus'
|
import { ElNotification } from 'element-plus'
|
||||||
|
|
||||||
const app = createApp(App);
|
const app = createApp(App);
|
||||||
app.use(createPinia());
|
const pinia = createPinia();
|
||||||
|
pinia.use(piniaPluginPersistedstate);
|
||||||
|
app.use(pinia);
|
||||||
app.use(router);
|
app.use(router);
|
||||||
|
|
||||||
// 注册elementplus图标
|
// 注册elementplus图标
|
||||||
|
@ -1,15 +1,24 @@
|
|||||||
import { defineStore } from 'pinia';
|
import { defineStore } from 'pinia';
|
||||||
|
import { TLogin } from "@/api/index.d";
|
||||||
|
|
||||||
export const useCommonStore = defineStore('common', {
|
export const useCommonStore = defineStore('common', {
|
||||||
state: () => {
|
state: () => {
|
||||||
return {
|
return {
|
||||||
time: new Date()
|
time: new Date(),
|
||||||
|
user: <TLogin.IRes>{}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
getters: {},
|
getters: {},
|
||||||
actions: {
|
actions: {
|
||||||
setTime() {
|
setTime() {
|
||||||
this.time = new Date();
|
this.time = new Date();
|
||||||
|
},
|
||||||
|
setUser(data: TLogin.IRes) {
|
||||||
|
this.user = data
|
||||||
|
},
|
||||||
|
clearStore() {
|
||||||
|
this.$reset();
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
persist: true
|
||||||
});
|
});
|
||||||
|
@ -1,60 +1,59 @@
|
|||||||
import { defineStore } from 'pinia';
|
import { defineStore } from 'pinia';
|
||||||
|
|
||||||
interface ObjectList {
|
interface ObjectList {
|
||||||
[key: string]: string[];
|
[key: string]: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export const usePermissStore = defineStore('permiss', {
|
export const usePermissStore = defineStore('permiss', {
|
||||||
state: () => {
|
state: () => {
|
||||||
const defaultList: ObjectList = {
|
const defaultList: ObjectList = {
|
||||||
admin: [
|
admin: [
|
||||||
'0',
|
'0',
|
||||||
'1',
|
'1',
|
||||||
'11',
|
'11',
|
||||||
'12',
|
'12',
|
||||||
'13',
|
'13',
|
||||||
'2',
|
'2',
|
||||||
'21',
|
'21',
|
||||||
'22',
|
'22',
|
||||||
'23',
|
'23',
|
||||||
'24',
|
'24',
|
||||||
'25',
|
'25',
|
||||||
'26',
|
'26',
|
||||||
'27',
|
'27',
|
||||||
'28',
|
'28',
|
||||||
'29',
|
'29',
|
||||||
'291',
|
'291',
|
||||||
'292',
|
'292',
|
||||||
'3',
|
'3',
|
||||||
'31',
|
'31',
|
||||||
'32',
|
'32',
|
||||||
'33',
|
'33',
|
||||||
'34',
|
'34',
|
||||||
'4',
|
'4',
|
||||||
'41',
|
'41',
|
||||||
'42',
|
'42',
|
||||||
'5',
|
'5',
|
||||||
'7',
|
'7',
|
||||||
'6',
|
'6',
|
||||||
'61',
|
'61',
|
||||||
'62',
|
'62',
|
||||||
'63',
|
'63',
|
||||||
'64',
|
'64',
|
||||||
'65',
|
'65',
|
||||||
'66',
|
'66',
|
||||||
],
|
],
|
||||||
user: ['0', '1', '11', '12', '13'],
|
user: ['0', '1', '11', '12', '13'],
|
||||||
};
|
};
|
||||||
const username = localStorage.getItem('vuems_name');
|
const username = localStorage.getItem('vuems_name');
|
||||||
console.log(username);
|
return {
|
||||||
return {
|
key: (username == 'admin' ? defaultList.admin : defaultList.user) as string[],
|
||||||
key: (username == 'admin' ? defaultList.admin : defaultList.user) as string[],
|
defaultList,
|
||||||
defaultList,
|
};
|
||||||
};
|
},
|
||||||
},
|
actions: {
|
||||||
actions: {
|
handleSet(val: string[]) {
|
||||||
handleSet(val: string[]) {
|
this.key = val;
|
||||||
this.key = val;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
@ -1,21 +1,22 @@
|
|||||||
export interface FormOption {
|
export interface FormOption {
|
||||||
list: FormOptionList[];
|
list: FormOptionList[];
|
||||||
labelWidth?: number | string;
|
labelWidth?: number | string;
|
||||||
span?: number;
|
span?: number;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface FormOptionList {
|
export interface FormOptionList {
|
||||||
prop: string;
|
prop: string;
|
||||||
label: string;
|
label: string;
|
||||||
type: string;
|
type: string;
|
||||||
placeholder?: string;
|
placeholder?: string;
|
||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
opts?: any[];
|
opts?: any[];
|
||||||
format?: string;
|
format?: string;
|
||||||
activeValue?: any;
|
activeValue?: any;
|
||||||
inactiveValue?: any;
|
inactiveValue?: any;
|
||||||
activeText?: string;
|
activeText?: string;
|
||||||
inactiveText?: string;
|
inactiveText?: string;
|
||||||
required?: boolean;
|
required?: boolean;
|
||||||
|
validator?: Function;
|
||||||
}
|
}
|
21
src/utils/hooks.ts
Normal file
21
src/utils/hooks.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { computed } from "vue";
|
||||||
|
|
||||||
|
export function useVModel(props, propsName, emit) {
|
||||||
|
return computed({
|
||||||
|
get: () => {
|
||||||
|
return new Proxy(props[propsName], {
|
||||||
|
get(target, key, receiver) {
|
||||||
|
return Reflect.get(target, key, receiver);
|
||||||
|
},
|
||||||
|
set(target, key, value, receiver) {
|
||||||
|
emit(`update:${propsName}`, { ...target, [key]: value });
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
set: (val) => {
|
||||||
|
emit(`update:${propsName}`, val);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
@ -1,31 +1,49 @@
|
|||||||
import axios, { AxiosInstance, AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';
|
import axios, { AxiosInstance, AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
import { useCommonStore } from "@/store/common";
|
||||||
|
import router from "@/router/index";
|
||||||
|
|
||||||
const service: AxiosInstance = axios.create({
|
const service: AxiosInstance = axios.create({
|
||||||
timeout: 5000
|
baseURL: import.meta.env.VITE_APP_URL,
|
||||||
|
timeout: 5000
|
||||||
});
|
});
|
||||||
|
|
||||||
service.interceptors.request.use(
|
service.interceptors.request.use(
|
||||||
(config: InternalAxiosRequestConfig) => {
|
(config: InternalAxiosRequestConfig) => {
|
||||||
return config;
|
const comm = useCommonStore();
|
||||||
},
|
config.headers['Access-Token'] = comm.user.token;
|
||||||
(error: AxiosError) => {
|
return config;
|
||||||
console.log(error);
|
},
|
||||||
return Promise.reject();
|
(error: AxiosError) => {
|
||||||
}
|
console.log(error);
|
||||||
|
return Promise.reject();
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
service.interceptors.response.use(
|
service.interceptors.response.use(
|
||||||
(response: AxiosResponse) => {
|
(response: AxiosResponse) => {
|
||||||
if (response.status === 200) {
|
const { data } = response;
|
||||||
return response;
|
if (data.code !== 200) {
|
||||||
} else {
|
ElMessage.error(data.msg)
|
||||||
Promise.reject();
|
|
||||||
}
|
if (data.code === 1003) {
|
||||||
},
|
// const comm = useCommonStore();
|
||||||
(error: AxiosError) => {
|
// comm.clearStore()
|
||||||
console.log(error);
|
// router.replace('/login');
|
||||||
return Promise.reject();
|
|
||||||
|
}
|
||||||
|
return Promise.reject(data);
|
||||||
}
|
}
|
||||||
|
if (response.status === 200) {
|
||||||
|
return data.data;
|
||||||
|
} else {
|
||||||
|
Promise.reject(data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
(error: AxiosError) => {
|
||||||
|
console.log(error);
|
||||||
|
return Promise.reject();
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
export default service;
|
export default service;
|
||||||
|
@ -3,16 +3,16 @@
|
|||||||
<div class="img"></div>
|
<div class="img"></div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="content-title">欢迎来到,智能手铐管理系统</div>
|
<div class="content-title">欢迎来到,智能手铐管理系统</div>
|
||||||
<el-form :model="form" label-position="top" label-width="auto" style="max-width: 600px">
|
<el-form :model="ruleForm" :rules="rules" ref="ruleFormRef" label-position="top" label-width="auto" style="max-width: 600px">
|
||||||
<el-form-item label="账号">
|
<el-form-item label="账号" prop="username">
|
||||||
<el-input v-model="form.acc" class="input" placeholder="请输入账号" size="large" clearable />
|
<el-input v-model="ruleForm.username" class="input" placeholder="请输入账号" size="large" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="密码">
|
<el-form-item label="密码" prop="password">
|
||||||
<el-input v-model="form.pwd" type="password" class="input" placeholder="请输入密码" size="large" clearable />
|
<el-input v-model="ruleForm.password" type="password" class="input" placeholder="请输入密码" size="large" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="onSubmit" class="btn" size="large">登 录</el-button>
|
<el-button type="primary" @click="submitForm(ruleFormRef)" class="btn" size="large">登 录</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div class="hint">
|
<div class="hint">
|
||||||
如遇到账号问题,请联系管理员<br />
|
如遇到账号问题,请联系管理员<br />
|
||||||
@ -24,19 +24,52 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { reactive } from "vue";
|
import { reactive, ref } from "vue";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
|
import { fetchLogin } from "@/api/index";
|
||||||
|
import { useCommonStore } from "@/store/common";
|
||||||
|
import type { FormInstance, FormRules } from "element-plus";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const comm = useCommonStore();
|
||||||
|
const ruleFormRef = ref<FormInstance>();
|
||||||
|
|
||||||
// do not use same name with ref
|
const validatePass = (rule: any, value: any, callback: any) => {
|
||||||
const form = reactive({
|
if (rule.field == "username" && !ruleForm.username) return callback(new Error("请输入账号"));
|
||||||
acc: "",
|
if (rule.field == "password" && !ruleForm.password) return callback(new Error("请输入密码"));
|
||||||
pwd: "",
|
callback();
|
||||||
|
};
|
||||||
|
const ruleForm = reactive({
|
||||||
|
username: "",
|
||||||
|
password: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
const onSubmit = () => {
|
const rules = reactive<FormRules<typeof ruleForm>>({
|
||||||
// console.log("submit!");
|
username: [{ validator: validatePass, trigger: "blur" }],
|
||||||
router.push("statisticalCenter");
|
password: [{ validator: validatePass, trigger: "blur" }],
|
||||||
|
});
|
||||||
|
|
||||||
|
const submitForm = async (formEl: FormInstance | undefined) => {
|
||||||
|
if (!formEl) return;
|
||||||
|
|
||||||
|
await formEl.validate((valid, fields) => {
|
||||||
|
if (valid) {
|
||||||
|
fetchLogin(ruleForm)
|
||||||
|
.then((res) => {
|
||||||
|
comm.setUser(res);
|
||||||
|
ElMessage({
|
||||||
|
message: "登录成功",
|
||||||
|
type: "success",
|
||||||
|
});
|
||||||
|
setTimeout(() => {
|
||||||
|
router.push("/");
|
||||||
|
}, 1000);
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log(err, "err");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -6,22 +6,22 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<div class="item"><span>手铐序号:</span>手铐-10</div>
|
<div class="item"><span>手铐序号:</span>{{ query.id }}</div>
|
||||||
<div class="item"><span>绑定管理员:</span>欧尼蒋</div>
|
<div class="item"><span>绑定管理员:</span>{{ query.name }}</div>
|
||||||
<div class="item"><span>现在状态:</span>禁用</div>
|
<div class="item"><span>设备状态:</span>{{ statusEnum[query.status as string] }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<div class="item"><span>IMEI号:</span>860116079430636</div>
|
<div class="item"><span>IMEI号:</span>{{ query.deviceId }}</div>
|
||||||
<div class="item"><span>关联人信息:</span>警察123456</div>
|
<div class="item"><span>绑定管理者账号:</span>{{ query.username }}</div>
|
||||||
<div class="item"><span>当前电量:</span>87%</div>
|
<div class="item"><span>当前电量:</span>{{ query.battery }}%</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<div class="item"><span>首次绑定时间:</span>2025/03/26 18:33:32</div>
|
<div class="item"><span>首次绑定时间:</span>{{ query.createTime }}</div>
|
||||||
<div class="item"><span>隶属组织:</span>xxx公安局</div>
|
<div class="item"><span>隶属组织:</span>{{ query.orgName }}</div>
|
||||||
<div class="item"><span>联系电话:</span>10000000000</div>
|
<div class="item"><span>联系电话:</span>{{ query.phone }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<div class="item"><span>固件版本:</span>V 3.14</div>
|
<div class="item"><span>固件版本:</span>{{ query.deviceVersion }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -29,9 +29,9 @@
|
|||||||
<template #header>
|
<template #header>
|
||||||
<div class="card-header">使用记录</div>
|
<div class="card-header">使用记录</div>
|
||||||
</template>
|
</template>
|
||||||
<TableCustom :columns="record" :tableData="tableData" :total="page.total" :currentPage="page.index" :changePage="changePage">
|
<TableCustom :hasToolbar="false" :columns="record" :tableData="tableData" :total="paging.total" :currentPage="paging.page" :changePage="changePage">
|
||||||
<template #operator>
|
<template #status="{ rows }">
|
||||||
<el-button link type="primary" size="small"> 处理事件 </el-button>
|
{{ recordStatusEnum[rows.status] }}
|
||||||
</template>
|
</template>
|
||||||
</TableCustom>
|
</TableCustom>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -39,15 +39,19 @@
|
|||||||
<template #header>
|
<template #header>
|
||||||
<div class="card-header">当前设备告警记录</div>
|
<div class="card-header">当前设备告警记录</div>
|
||||||
</template>
|
</template>
|
||||||
<TableCustom :columns="columns" :tableData="tableData" :total="page.total" :currentPage="page.index" :changePage="changePage">
|
<TableCustom
|
||||||
|
:hasToolbar="false"
|
||||||
|
:columns="columns"
|
||||||
|
:tableData="warningTableData"
|
||||||
|
:total="paging1.total"
|
||||||
|
:currentPage="paging1.page"
|
||||||
|
:changePage="changeWarningPage"
|
||||||
|
>
|
||||||
<template #operator>
|
<template #operator>
|
||||||
<el-button link type="primary" size="small"> 处理事件 </el-button>
|
<el-button link type="primary" size="small"> 处理事件 </el-button>
|
||||||
</template>
|
</template>
|
||||||
<template #thumb>
|
<template #status="{ rows }">
|
||||||
<el-button type="success" link> 低 </el-button>
|
{{ warningStatusEnum[rows.status] }}
|
||||||
</template>
|
|
||||||
<template #state>
|
|
||||||
<el-tag type="success"> 已处理 </el-tag>
|
|
||||||
</template>
|
</template>
|
||||||
</TableCustom>
|
</TableCustom>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -56,51 +60,80 @@
|
|||||||
|
|
||||||
<script setup lang="ts" name="basetable">
|
<script setup lang="ts" name="basetable">
|
||||||
import { ref, reactive } from "vue";
|
import { ref, reactive } from "vue";
|
||||||
import { fetchData } from "@/api/index";
|
import { deviceUseRecord, warningRecord } from "@/api/index";
|
||||||
import TableCustom from "@/components/table-custom.vue";
|
import TableCustom from "@/components/table-custom.vue";
|
||||||
import { TableItem } from "@/types/table";
|
import { TableItem } from "@/types/table";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter, useRoute } from "vue-router";
|
||||||
|
import { TDevice } from "@/api/index.d";
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const { query } = useRoute();
|
||||||
|
enum statusEnum {
|
||||||
|
"使用中" = 0,
|
||||||
|
"在线",
|
||||||
|
"充电中",
|
||||||
|
}
|
||||||
|
enum warningStatusEnum {
|
||||||
|
"待处理",
|
||||||
|
"已处理",
|
||||||
|
}
|
||||||
|
enum recordStatusEnum {
|
||||||
|
"使用中" = 1,
|
||||||
|
"结束使用",
|
||||||
|
}
|
||||||
|
|
||||||
// 表格相关
|
// 表格相关
|
||||||
let record = ref([
|
let record = ref([
|
||||||
{ type: "index", label: "序号", width: 55, align: "center" },
|
{ type: "index", label: "序号", width: 55, align: "center" },
|
||||||
{ prop: "name", label: "关联人" },
|
{ prop: "adminName", label: "管理员" },
|
||||||
{ prop: "money", label: "类型" },
|
{ prop: "userNumber", label: "佩戴者" },
|
||||||
{ prop: "thumb", label: "警号" },
|
{ prop: "createTime", label: "开始使用时间" },
|
||||||
{ prop: "state", label: "佩戴者" },
|
{ prop: "updateTime", label: "结束使用时间" },
|
||||||
{ prop: "state", label: "使用模式" },
|
|
||||||
{ prop: "state", label: "开始使用时间" },
|
|
||||||
{ prop: "state", label: "结束使用时间" },
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// 表格相关
|
// 表格相关
|
||||||
let columns = ref([
|
let columns = ref([
|
||||||
{ type: "index", label: "序号", width: 55, align: "center" },
|
{ type: "index", label: "序号", width: 55, align: "center" },
|
||||||
{ prop: "name", label: "关联人" },
|
{ prop: "userNumber", label: "佩戴者" },
|
||||||
{ prop: "money", label: "事件类型" },
|
{ prop: "warnType", label: "事件类型" },
|
||||||
{ prop: "thumb", label: "事件等级" },
|
{ prop: "creatUser", label: "触发时间" },
|
||||||
{ prop: "time", label: "触发时间" },
|
{ prop: "status", label: "处理状态" },
|
||||||
{ prop: "state", label: "处理状态" },
|
|
||||||
{ prop: "operator", label: "操作" },
|
{ prop: "operator", label: "操作" },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const page = reactive({
|
const paging = reactive({
|
||||||
index: 1,
|
page: 1,
|
||||||
size: 10,
|
size: 10,
|
||||||
total: 200,
|
total: 0,
|
||||||
});
|
});
|
||||||
const tableData = ref<TableItem[]>([]);
|
const paging1 = reactive({
|
||||||
|
page: 1,
|
||||||
|
size: 10,
|
||||||
|
total: 0,
|
||||||
|
});
|
||||||
|
const tableData = ref<TDevice.IUseRecordRes[]>([]);
|
||||||
|
const warningTableData = ref<TDevice.IWarningRecordRes[]>([]);
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
const res = await fetchData();
|
const res = await deviceUseRecord(paging);
|
||||||
tableData.value = res.data.list;
|
tableData.value = res.records;
|
||||||
|
paging.total = res.total;
|
||||||
|
};
|
||||||
|
const getWarningData = async () => {
|
||||||
|
const res = await warningRecord(paging1);
|
||||||
|
warningTableData.value = res.records;
|
||||||
|
paging1.total = res.total;
|
||||||
};
|
};
|
||||||
getData();
|
getData();
|
||||||
|
getWarningData();
|
||||||
|
|
||||||
const changePage = (val: number) => {
|
const changePage = (val: number) => {
|
||||||
page.index = val;
|
paging.page = val;
|
||||||
getData();
|
getData();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const changeWarningPage = (val: number) => {
|
||||||
|
paging1.page = val;
|
||||||
|
getWarningData();
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
80
src/views/synthesizeManage/deviceManage/deviceControl.vue
Normal file
80
src/views/synthesizeManage/deviceManage/deviceControl.vue
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
<template>
|
||||||
|
<el-form label-width="auto">
|
||||||
|
<el-row :gutter="20" style="margin-top: 20px">
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="关机:">
|
||||||
|
<el-button type="primary" @click="handelControl(1)">关机</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="重启:">
|
||||||
|
<el-button type="primary" @click="handelControl(2)">重启</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row :gutter="20" style="margin-top: 20px">
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="恢复出厂:">
|
||||||
|
<el-button type="primary" @click="handelControl(3)">恢复出厂</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="获取实时定位:">
|
||||||
|
<el-button type="primary" @click="handelControl(4)">获取实时定位</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="模式选择:">
|
||||||
|
<el-select placeholder="请选择模式" v-model="modelValue.monitorMode" style="width: 240px" @change="handelControl(5)">
|
||||||
|
<el-option label="审讯模式" :value="0" />
|
||||||
|
<el-option label="户外押送" :value="1" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="定位模式:">
|
||||||
|
<el-select placeholder="请选择定位模式" v-model="modelValue.mode" style="width: 240px" @change="handelControl(6)">
|
||||||
|
<el-option label="室内" :value="0" />
|
||||||
|
<el-option label="室外" :value="1" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts" name="basetable">
|
||||||
|
import { ElMessageBox } from "element-plus";
|
||||||
|
const emit = defineEmits(["change"]);
|
||||||
|
|
||||||
|
const { modelValue } = defineProps({
|
||||||
|
modelValue: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const handelControl = (type: number) => {
|
||||||
|
if (type <= 4) {
|
||||||
|
enum msgEnum {
|
||||||
|
"确定要关机吗?" = 1,
|
||||||
|
"确定要重启吗?",
|
||||||
|
"确定要恢复出厂吗?",
|
||||||
|
"确定要获取实时定位吗?",
|
||||||
|
}
|
||||||
|
ElMessageBox.confirm(msgEnum[type], "提示", {
|
||||||
|
type: "warning",
|
||||||
|
}).then(async () => {
|
||||||
|
emit("change", type);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
emit("change", type);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// const model = useVModel(props, "modelValue", emit);
|
||||||
|
</script>
|
@ -2,25 +2,33 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<TableSearch :query="query" :options="searchOpt" :search="handleSearch" />
|
<TableSearch :query="query" :options="searchOpt" :search="handleSearch" />
|
||||||
<div class="table-container">
|
<div class="table-container">
|
||||||
<TableCustom :columns="columns" :tableData="tableData" :total="page.total" :refresh="getData" :currentPage="page.index" :changePage="changePage">
|
<TableCustom :columns="columns" :tableData="tableData" :total="paging.total" :refresh="getData" :currentPage="paging.page" :changePage="changePage">
|
||||||
<template #toolbarBtn>
|
<template #toolbarBtn>
|
||||||
<!-- <el-button type="primary" @click="handleAdd">新增</el-button> -->
|
<!-- <el-button type="primary" @click="handleAdd">新增</el-button> -->
|
||||||
<el-button @click="handleEdit">手铐关联</el-button>
|
<el-button @click="handleEdit">手铐关联</el-button>
|
||||||
<!-- <el-button>地图位置</el-button> -->
|
<!-- <el-button>地图位置</el-button> -->
|
||||||
<!-- <el-button>导出</el-button> -->
|
<!-- <el-button>导出</el-button> -->
|
||||||
</template>
|
</template>
|
||||||
<template #money="{ rows }"> ¥{{ rows.money }} </template>
|
|
||||||
<template #thumb="{ rows }">
|
|
||||||
<el-image class="table-td-thumb" :src="rows.thumb" :z-index="10" :preview-src-list="[rows.thumb]" preview-teleported> </el-image>
|
|
||||||
</template>
|
|
||||||
<template #state="{ rows }">
|
<template #state="{ rows }">
|
||||||
<el-switch />
|
{{ stateEnum[rows.state] }}
|
||||||
</template>
|
</template>
|
||||||
|
<template #deviceSwitch="{ rows }">
|
||||||
|
{{ deviceSwitchEnum[rows.deviceSwitch] }}
|
||||||
|
</template>
|
||||||
|
<template #mode="{ rows }">
|
||||||
|
{{ modeEnum[rows.mode] }}
|
||||||
|
</template>
|
||||||
|
<template #monitorMode="{ rows }">
|
||||||
|
{{ monitorModeEnum[rows.monitorMode] }}
|
||||||
|
</template>
|
||||||
|
<template #battery="{ rows }"> {{ rows.battery }}% </template>
|
||||||
|
|
||||||
<template #operator="{ rows }">
|
<template #operator="{ rows }">
|
||||||
<el-button link type="primary" size="small" @click="router.push('deviceInfo')"> 详细信息 </el-button>
|
<el-button link type="primary" size="small" @click="toPage('deviceInfo', rows)"> 详细信息 </el-button>
|
||||||
<el-button link type="primary" size="small" @click="router.push('mapLocation')"> 地图位置 </el-button>
|
<el-button link type="primary" size="small" @click="toPage('mapLocation', rows)"> 地图位置 </el-button>
|
||||||
<el-button link type="primary" size="small" @click="router.push('setting')"> 专项配置 </el-button>
|
<el-button link type="primary" size="small" @click="toPage('setting', rows)"> 专项配置 </el-button>
|
||||||
<el-button link type="primary" size="small" @click="visible1 = true"> 设备控制 </el-button>
|
<el-button link type="primary" size="small" @click="handelRow(rows)"> 设备控制 </el-button>
|
||||||
<el-button link type="primary" size="small" @click="handleEdit(rows)"> 修改 </el-button>
|
<el-button link type="primary" size="small" @click="handleEdit(rows)"> 修改 </el-button>
|
||||||
<!-- <el-button link type="danger" size="small" @click="handelDel(rows)"> 删除 </el-button> -->
|
<!-- <el-button link type="danger" size="small" @click="handelDel(rows)"> 删除 </el-button> -->
|
||||||
</template>
|
</template>
|
||||||
@ -29,54 +37,10 @@
|
|||||||
<el-dialog :title="isEdit ? '编辑' : '新增'" v-model="visible" width="700px" destroy-on-close :close-on-click-modal="false" @close="closeDialog">
|
<el-dialog :title="isEdit ? '编辑' : '新增'" v-model="visible" width="700px" destroy-on-close :close-on-click-modal="false" @close="closeDialog">
|
||||||
<TableEdit :form-data="rowData" :options="TableEditOptions" :edit="isEdit" :update="updateData" @close="closeDialog" />
|
<TableEdit :form-data="rowData" :options="TableEditOptions" :edit="isEdit" :update="updateData" @close="closeDialog" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<el-dialog title="设备控制" v-model="visible1" width="700px" destroy-on-close :close-on-click-modal="false" @close="closeDialog">
|
<el-dialog title="设备控制" v-model="visible1" width="700px" destroy-on-close :close-on-click-modal="false" @close="closeDialog">
|
||||||
<!-- <TableEdit :form-data="rowData" :options="controlOptions" :update="updateData" /> -->
|
<!-- <TableEdit :form-data="rowData" :options="controlOptions" :update="updateData" /> -->
|
||||||
<el-form label-width="auto">
|
<DeviceControl v-model="controlForm" @change="handelControl" />
|
||||||
<el-row :gutter="20" style="margin-top: 20px">
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="关机:">
|
|
||||||
<el-button type="primary" @click="handelControl(1)">关机</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="重启:">
|
|
||||||
<el-button type="primary" @click="handelControl(2)">重启</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row :gutter="20" style="margin-top: 20px">
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="获取实时定位:">
|
|
||||||
<el-button type="primary" @click="handelControl(2)">获取实时定位</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="恢复出厂:">
|
|
||||||
<el-button type="primary" @click="handelControl(3)">恢复出厂</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="模式选择:">
|
|
||||||
<el-select placeholder="请选择模式" v-model="controlForm.pattern" style="width: 240px" @change="handelControl(4)">
|
|
||||||
<el-option label="审讯模式" :value="1" />
|
|
||||||
<el-option label="户外押送" :value="2" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="定位模式:">
|
|
||||||
<el-select placeholder="请选择定位模式" v-model="controlForm.location" style="width: 240px" @change="handelControl(5)">
|
|
||||||
<el-option label="室内" :value="1" />
|
|
||||||
<el-option label="室外" :value="2" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form>
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -84,13 +48,33 @@
|
|||||||
<script setup lang="ts" name="basetable">
|
<script setup lang="ts" name="basetable">
|
||||||
import { ref, reactive } from "vue";
|
import { ref, reactive } from "vue";
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
import { fetchData } from "@/api/index";
|
import { deviceList, setMode, deviceGetLocation, deviceControl } from "@/api/index";
|
||||||
|
import { TDevice } from "@/api/index.d";
|
||||||
import TableCustom from "@/components/table-custom.vue";
|
import TableCustom from "@/components/table-custom.vue";
|
||||||
import TableSearch from "@/components/table-search.vue";
|
import TableSearch from "@/components/table-search.vue";
|
||||||
import TableEdit from "@/components/table-edit.vue";
|
import TableEdit from "@/components/table-edit.vue";
|
||||||
|
import DeviceControl from "./deviceControl.vue";
|
||||||
import { TableItem } from "@/types/table";
|
import { TableItem } from "@/types/table";
|
||||||
import { FormOption, FormOptionList } from "@/types/form-option";
|
import { FormOption, FormOptionList } from "@/types/form-option";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
|
enum stateEnum {
|
||||||
|
"离线" = 0,
|
||||||
|
"在线",
|
||||||
|
"充电中",
|
||||||
|
}
|
||||||
|
enum deviceSwitchEnum {
|
||||||
|
"禁用" = 0,
|
||||||
|
"启用",
|
||||||
|
}
|
||||||
|
enum modeEnum {
|
||||||
|
"室内" = 0,
|
||||||
|
"室外",
|
||||||
|
}
|
||||||
|
enum monitorModeEnum {
|
||||||
|
"室内" = 0,
|
||||||
|
"室外",
|
||||||
|
}
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
// 新增/编辑弹窗相关
|
// 新增/编辑弹窗相关
|
||||||
let TableEditOptions = ref<FormOption>({
|
let TableEditOptions = ref<FormOption>({
|
||||||
@ -122,44 +106,46 @@ const handleSearch = () => {
|
|||||||
let columns = ref([
|
let columns = ref([
|
||||||
{ type: "selection" },
|
{ type: "selection" },
|
||||||
{ type: "index", label: "序号", width: 55, align: "center" },
|
{ type: "index", label: "序号", width: 55, align: "center" },
|
||||||
{ prop: "name", label: "手铐SN" },
|
{ prop: "deviceId", label: "手铐IMEI" },
|
||||||
{ prop: "money", label: "绑定警察名称" },
|
{ prop: "name", label: "绑定警察名称" },
|
||||||
{ prop: "thumb", label: "绑定警察账户" },
|
{ prop: "username", label: "绑定警察账户" },
|
||||||
{ prop: "state", label: "当前状态" },
|
{ prop: "state", label: "设备状态" },
|
||||||
{ prop: "state", label: "当前模式" },
|
{ prop: "mode", label: "当前模式" },
|
||||||
{ prop: "state", label: "电量" },
|
{ prop: "deviceSwitch", label: "开关" },
|
||||||
{ prop: "state", label: "版本号" },
|
{ prop: "monitorMode", label: "监测模式" },
|
||||||
{ prop: "state", label: "登录时间" },
|
{ prop: "battery", label: "电量" },
|
||||||
{ prop: "state", label: "最近使用时间" },
|
{ prop: "deviceVersion", label: "版本号" },
|
||||||
{ prop: "state", label: "关联辖区编号" },
|
{ prop: "createTime", label: "创建时间" },
|
||||||
|
{ prop: "orgName", label: "关联辖区编号" },
|
||||||
{ prop: "operator", label: "操作", width: 400 },
|
{ prop: "operator", label: "操作", width: 400 },
|
||||||
]);
|
]);
|
||||||
const page = reactive({
|
const paging = reactive({
|
||||||
index: 1,
|
page: 1,
|
||||||
size: 10,
|
size: 10,
|
||||||
total: 200,
|
total: 0,
|
||||||
});
|
});
|
||||||
const controlForm = reactive({
|
const controlForm = reactive({
|
||||||
pattern: "",
|
pattern: 1,
|
||||||
location: "",
|
location: 1,
|
||||||
});
|
});
|
||||||
|
|
||||||
const tableData = ref<TableItem[]>([]);
|
const tableData = ref<TDevice.IListRes[]>([]);
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
const res = await fetchData();
|
const res = await deviceList(paging);
|
||||||
tableData.value = res.data.list;
|
tableData.value = res.records;
|
||||||
|
paging.total = res.total;
|
||||||
};
|
};
|
||||||
getData();
|
getData();
|
||||||
|
|
||||||
const changePage = (val: number) => {
|
const changePage = (val: number) => {
|
||||||
page.index = val;
|
paging.page = val;
|
||||||
getData();
|
getData();
|
||||||
};
|
};
|
||||||
|
|
||||||
const visible1 = ref(false);
|
const visible1 = ref(false);
|
||||||
const visible = ref(false);
|
const visible = ref(false);
|
||||||
const isEdit = ref(false);
|
const isEdit = ref(false);
|
||||||
const rowData = ref({});
|
const rowData = ref<TDevice.IListRes>();
|
||||||
|
|
||||||
const handleAdd = () => {
|
const handleAdd = () => {
|
||||||
TableEditOptions.value.list = addOp;
|
TableEditOptions.value.list = addOp;
|
||||||
@ -167,22 +153,42 @@ const handleAdd = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 编辑
|
// 编辑
|
||||||
const handleEdit = (row?: TableItem) => {
|
const handleEdit = (row?: TDevice.IListRes) => {
|
||||||
// rowData.value = { ...row };
|
rowData.value = { ...row };
|
||||||
TableEditOptions.value.list = editOp;
|
TableEditOptions.value.list = editOp;
|
||||||
isEdit.value = true;
|
isEdit.value = true;
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handelRow = (row?: TDevice.IListRes) => {
|
||||||
|
rowData.value = { ...row };
|
||||||
|
visible1.value = true;
|
||||||
|
};
|
||||||
|
|
||||||
const handelControl = (type: number) => {
|
const handelControl = (type: number) => {
|
||||||
if (type < 4) {
|
switch (type) {
|
||||||
ElMessageBox.confirm("确定要关机吗?", "提示", {
|
case 4:
|
||||||
type: "warning",
|
deviceGetLocation({
|
||||||
})
|
deviceId: rowData.value.deviceId,
|
||||||
.then(async () => {
|
}).then(() => {
|
||||||
// ElMessage.success("删除成功");
|
ElMessage.success("操作成功");
|
||||||
})
|
});
|
||||||
.catch(() => {});
|
break;
|
||||||
|
default:
|
||||||
|
let cmdEnum = {
|
||||||
|
1: "poweroff",
|
||||||
|
2: "restart",
|
||||||
|
3: "factory",
|
||||||
|
};
|
||||||
|
deviceControl({
|
||||||
|
deviceId: rowData.value.deviceId,
|
||||||
|
cmd: cmdEnum[type],
|
||||||
|
}).then(() => {
|
||||||
|
ElMessage.success("操作成功");
|
||||||
|
});
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
visible1.value = false;
|
visible1.value = false;
|
||||||
};
|
};
|
||||||
// 删除
|
// 删除
|
||||||
@ -210,6 +216,21 @@ const closeDialog = () => {
|
|||||||
const handleDelete = (row: TableItem) => {
|
const handleDelete = (row: TableItem) => {
|
||||||
ElMessage.success("删除成功");
|
ElMessage.success("删除成功");
|
||||||
};
|
};
|
||||||
|
//
|
||||||
|
const toPage = (path: string, row: TDevice.IListRes) => {
|
||||||
|
let p;
|
||||||
|
if (path == "deviceInfo") {
|
||||||
|
p = { ...row };
|
||||||
|
} else if (path == "mapLocation") {
|
||||||
|
p = { id: row.id };
|
||||||
|
} else if (path == "setting") {
|
||||||
|
p = { id: row.id };
|
||||||
|
}
|
||||||
|
router.push({
|
||||||
|
path,
|
||||||
|
query: p,
|
||||||
|
});
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
@ -2,36 +2,44 @@
|
|||||||
<div class="container">
|
<div class="container">
|
||||||
<TableSearch :query="query" :options="searchOpt" :search="handleSearch" />
|
<TableSearch :query="query" :options="searchOpt" :search="handleSearch" />
|
||||||
<div class="table-container">
|
<div class="table-container">
|
||||||
<TableCustom :columns="columns" :tableData="tableData" :total="page.total" :refresh="getData" :currentPage="page.index" :changePage="changePage">
|
<TableCustom :columns="columns" :tableData="tableData" :total="paging.total" :refresh="getData" :currentPage="paging.page" :changePage="changePage">
|
||||||
<template #toolbarBtn>
|
<template #toolbarBtn>
|
||||||
<el-button type="primary" @click="typeVisible = true">类型编辑</el-button>
|
<el-button type="primary" @click="typeVisible = true">类型编辑</el-button>
|
||||||
<el-button type="primary" @click="visible = true">新增用户</el-button>
|
<el-button type="primary" @click="handelRow('add')">新增用户</el-button>
|
||||||
<el-button @click="handleImp">批量创建用户</el-button>
|
<el-button @click="handleImp">批量创建用户</el-button>
|
||||||
<el-button>导出</el-button>
|
<!-- <el-button>导出</el-button> -->
|
||||||
<el-button type="danger">删除</el-button>
|
<!-- <el-button type="danger">删除</el-button> -->
|
||||||
</template>
|
|
||||||
<template #money="{ rows }"> ¥{{ rows.money }} </template>
|
|
||||||
<template #thumb="{ rows }">
|
|
||||||
<el-image class="table-td-thumb" :src="rows.thumb" :z-index="10" :preview-src-list="[rows.thumb]" preview-teleported> </el-image>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #state="{ rows }">
|
<template #state="{ rows }">
|
||||||
<el-tag :type="rows.state ? 'success' : 'danger'">
|
<el-switch v-model="rows.state" :active-value="1" :inactive-value="0" />
|
||||||
{{ rows.state ? "正常" : "异常" }}
|
|
||||||
</el-tag>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<template #roleId="{ rows }">
|
||||||
|
{{ roleEnum[rows.roleId] }}
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #password="{ rows }">
|
||||||
|
<div v-if="rows.flag" @click="rows.flag = false">
|
||||||
|
{{ rows.password }}
|
||||||
|
<el-icon style="cursor: pointer"><View /></el-icon>
|
||||||
|
</div>
|
||||||
|
<div v-else @click="rows.flag = true">
|
||||||
|
******
|
||||||
|
<el-icon style="cursor: pointer"><Hide /></el-icon>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
<template #operator="{ rows }">
|
<template #operator="{ rows }">
|
||||||
<el-button link type="primary" size="small" @click="pwdVisible = true"> 重置密码 </el-button>
|
<el-button link type="primary" size="small" @click="handelRow('pwd', rows)"> 重置密码 </el-button>
|
||||||
<el-button link type="primary" size="small" @click="handleEdit(rows)"> 修改 </el-button>
|
<el-button link type="primary" size="small" @click="handelRow('edit', rows)"> 修改 </el-button>
|
||||||
<el-button link type="danger" size="small" @click="handelDel(rows)"> 删除 </el-button>
|
<el-button link type="danger" size="small" @click="handelDel(rows)"> 删除 </el-button>
|
||||||
</template>
|
</template>
|
||||||
</TableCustom>
|
</TableCustom>
|
||||||
</div>
|
</div>
|
||||||
<el-dialog :title="isEdit ? '编辑' : '新增'" v-model="visible" width="700px" destroy-on-close :close-on-click-modal="false" @close="closeDialog">
|
<el-dialog :title="dialogTitle" v-model="visible" width="700px" destroy-on-close :close-on-click-modal="false" @close="closeDialog">
|
||||||
<TableEdit :form-data="rowData" :options="options" :edit="isEdit" :update="updateData" @close="closeDialog" />
|
<TableEdit :form-data="rowData" :options="options" :edit="isEdit" :update="updateData" @close="closeDialog" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog title="重置密码" v-model="pwdVisible" width="700px" destroy-on-close :close-on-click-modal="false" @close="closeDialog">
|
|
||||||
<TableEdit :form-data="rowData" :options="pwdOptions" :edit="true" :update="updateData" @close="handelCancel" />
|
|
||||||
</el-dialog>
|
|
||||||
<el-dialog title="编辑类型" v-model="typeVisible" width="800px" destroy-on-close :close-on-click-modal="false" @close="closeDialog">
|
<el-dialog title="编辑类型" v-model="typeVisible" width="800px" destroy-on-close :close-on-click-modal="false" @close="closeDialog">
|
||||||
<UserType />
|
<UserType />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -42,31 +50,42 @@
|
|||||||
<script setup lang="ts" name="basetable">
|
<script setup lang="ts" name="basetable">
|
||||||
import { ref, reactive } from "vue";
|
import { ref, reactive } from "vue";
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
import { fetchData } from "@/api/index";
|
import { accountAdd, accountModify, accountList, accountDeletet, passwordReset } from "@/api/index";
|
||||||
import TableCustom from "@/components/table-custom.vue";
|
import TableCustom from "@/components/table-custom.vue";
|
||||||
import TableSearch from "@/components/table-search.vue";
|
import TableSearch from "@/components/table-search.vue";
|
||||||
import TableEdit from "@/components/table-edit.vue";
|
import TableEdit from "@/components/table-edit.vue";
|
||||||
import BatchImp from "@/components/batch-imp.vue";
|
import BatchImp from "@/components/batch-imp.vue";
|
||||||
|
import { useCommonStore } from "@/store/common";
|
||||||
import UserType from "./userType.vue";
|
import UserType from "./userType.vue";
|
||||||
import { TableItem } from "@/types/table";
|
import { TableItem } from "@/types/table";
|
||||||
import { FormOption, FormOptionList } from "@/types/form-option";
|
import { FormOption, FormOptionList } from "@/types/form-option";
|
||||||
|
import { TAccount } from "@/api/index.d";
|
||||||
|
// import { Hide, View } from "@element-plus/icons-vue";
|
||||||
|
|
||||||
|
enum roleEnum {
|
||||||
|
管理员 = -1,
|
||||||
|
警察 = 1,
|
||||||
|
辅警 = 2,
|
||||||
|
协警 = 3,
|
||||||
|
}
|
||||||
|
|
||||||
|
const comm = useCommonStore();
|
||||||
const visible = ref(false);
|
const visible = ref(false);
|
||||||
const typeVisible = ref(false);
|
const typeVisible = ref(false);
|
||||||
const pwdVisible = ref(false);
|
|
||||||
const isEdit = ref(false);
|
const isEdit = ref(false);
|
||||||
const rowData = ref({});
|
const dialogTitle = ref("");
|
||||||
|
const rowData = ref<TAccount.IListRes | undefined>();
|
||||||
// 查询相关
|
// 查询相关
|
||||||
const query = reactive({
|
const query = reactive({
|
||||||
name: "",
|
name: "",
|
||||||
});
|
});
|
||||||
const batchImpRef = ref();
|
const batchImpRef = ref();
|
||||||
const page = reactive({
|
const paging = reactive({
|
||||||
index: 1,
|
page: 1,
|
||||||
size: 10,
|
size: 10,
|
||||||
total: 200,
|
total: 0,
|
||||||
});
|
});
|
||||||
const tableData = ref<TableItem[]>([]);
|
const tableData = ref<TAccount.IListRes[]>([]);
|
||||||
|
|
||||||
const searchOpt = ref<FormOptionList[]>([
|
const searchOpt = ref<FormOptionList[]>([
|
||||||
{ type: "input", label: "用户名:", prop: "name" },
|
{ type: "input", label: "用户名:", prop: "name" },
|
||||||
@ -95,94 +114,110 @@ const searchOpt = ref<FormOptionList[]>([
|
|||||||
|
|
||||||
// 表格相关
|
// 表格相关
|
||||||
let columns = ref([
|
let columns = ref([
|
||||||
{ type: "selection" },
|
// { type: "selection" },
|
||||||
{ type: "index", label: "序号", width: 55, align: "center" },
|
{ type: "index", label: "序号", width: 55, align: "center" },
|
||||||
{ prop: "name", label: "用户名称" },
|
{ prop: "name", label: "用户名称" },
|
||||||
{ prop: "money", label: "警员号" },
|
{ prop: "username", label: "警员号" },
|
||||||
{ prop: "thumb", label: "手机号" },
|
{ prop: "phone", label: "手机号" },
|
||||||
{ prop: "state", label: "密码" },
|
{ prop: "password", label: "密码", width: 120 },
|
||||||
{ prop: "state", label: "类型" },
|
{ prop: "roleId", label: "类型" },
|
||||||
{ prop: "state", label: "创建时间" },
|
{ prop: "createTime", label: "创建时间" },
|
||||||
{ prop: "state", label: "状态" },
|
{ prop: "state", label: "状态" },
|
||||||
{ prop: "operator", label: "操作", width: 250 },
|
{ prop: "operator", label: "操作", width: 250 },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// 新增/编辑弹窗相关
|
let addOpt = {
|
||||||
let options = ref<FormOption>({
|
|
||||||
labelWidth: "100px",
|
labelWidth: "100px",
|
||||||
span: 24,
|
span: 24,
|
||||||
list: [
|
list: [
|
||||||
{ placeholder: "请输入用户名称", type: "input", label: "用户名称", prop: "name1", required: true },
|
{ placeholder: "请输入用户名称", type: "input", label: "用户名称", prop: "name", required: true },
|
||||||
{ placeholder: "请输入电话号码", type: "input", label: "电话号码", prop: "money2", required: true },
|
{ placeholder: "请输入电话号码", type: "input", label: "电话号码", prop: "phone", required: true },
|
||||||
{ placeholder: "请输入警员号", type: "input", label: "警员号", prop: "money3", required: true },
|
{ placeholder: "请输入警员号", type: "input", label: "警员号", prop: "username", required: true },
|
||||||
{
|
{
|
||||||
placeholder: "请选择类型",
|
placeholder: "请选择类型",
|
||||||
type: "select",
|
type: "select",
|
||||||
label: "类型",
|
label: "类型",
|
||||||
opts: [
|
opts: [
|
||||||
{ label: "管理员", value: "1", disabled: true },
|
{ label: "管理员", value: -1 },
|
||||||
{ label: "警察", value: "2" },
|
{ label: "警察", value: 1 },
|
||||||
{ label: "辅警", value: "3" },
|
{ label: "辅警", value: 2 },
|
||||||
{ label: "协警", value: "4" },
|
{ label: "协警", value: 3 },
|
||||||
],
|
],
|
||||||
prop: "money4",
|
prop: "roleId",
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{ placeholder: "请输入密码", type: "password", label: "密码", prop: "mone5y", required: true },
|
{ placeholder: "请输入密码", type: "password", label: "密码", prop: "password", required: true },
|
||||||
{ type: "switch", label: "状态", prop: "mone5y", required: true },
|
{ type: "switch", label: "状态", prop: "status", activeValue: 1, inactiveValue: 0 },
|
||||||
{ placeholder: "请输入确认密码", type: "password", label: "确认密码", prop: "mon6ey" },
|
// { placeholder: "请输入确认密码", type: "password", label: "确认密码", prop: "confirmpassword" },
|
||||||
{ placeholder: "请输入备注", type: "textarea", label: "备注", prop: "mon8ey" },
|
// { placeholder: "请输入备注", type: "textarea", label: "备注", prop: "mon8ey" },
|
||||||
],
|
],
|
||||||
});
|
};
|
||||||
|
|
||||||
// 新增/编辑弹窗相关
|
// 新增/编辑弹窗相关
|
||||||
let pwdOptions = ref<FormOption>({
|
let options = ref<FormOption>();
|
||||||
|
// 重置密码
|
||||||
|
let pwdOpt = {
|
||||||
labelWidth: "100px",
|
labelWidth: "100px",
|
||||||
span: 24,
|
span: 24,
|
||||||
list: [
|
list: [
|
||||||
{ type: "password", label: "原始密码", prop: "name1", required: true },
|
// { type: "password", label: "原始密码", prop: "name1", required: true },
|
||||||
{ type: "password", label: "新密码", prop: "money2", required: true },
|
{ type: "password", label: "新密码", prop: "password", required: true },
|
||||||
{ type: "password", label: "确认密码", prop: "money3", required: true },
|
// { type: "password", label: "确认密码", prop: "money3", required: true },
|
||||||
],
|
],
|
||||||
});
|
};
|
||||||
|
|
||||||
const handleImp = () => {
|
const handleImp = () => {
|
||||||
batchImpRef.value.dialogVisible = true;
|
batchImpRef.value.dialogVisible = true;
|
||||||
};
|
};
|
||||||
const handleSearch = () => {
|
const handleSearch = () => {
|
||||||
changePage(1);
|
paging.page = 1;
|
||||||
|
getData();
|
||||||
|
};
|
||||||
|
|
||||||
|
const changePage = (val: number) => {
|
||||||
|
paging.page = val;
|
||||||
|
getData();
|
||||||
};
|
};
|
||||||
|
|
||||||
const getData = async () => {
|
const getData = async () => {
|
||||||
const res = await fetchData();
|
const res = await accountList(paging);
|
||||||
tableData.value = res.data.list;
|
tableData.value = res.records.map((item) => {
|
||||||
|
item.flag = false;
|
||||||
|
return item;
|
||||||
|
});
|
||||||
|
paging.total = res.total;
|
||||||
};
|
};
|
||||||
getData();
|
getData();
|
||||||
|
|
||||||
const changePage = (val: number) => {
|
|
||||||
page.index = val;
|
|
||||||
getData();
|
|
||||||
};
|
|
||||||
|
|
||||||
// 删除相关
|
// 删除相关
|
||||||
const handelDel = (row: TableItem) => {
|
const handelDel = (row: TableItem) => {
|
||||||
ElMessageBox.confirm("确定要删除吗?", "提示", {
|
ElMessageBox.confirm("确定要删除吗?", "提示", {
|
||||||
type: "warning",
|
type: "warning",
|
||||||
})
|
}).then(async () => {
|
||||||
.then(async () => {
|
accountDeletet({ id: row.id }).then((res) => {
|
||||||
// ElMessage.success("删除成功");
|
ElMessage.success("删除成功");
|
||||||
})
|
getData();
|
||||||
.catch(() => {});
|
});
|
||||||
};
|
});
|
||||||
// 修改相关
|
|
||||||
const handleEdit = (row: TableItem) => {
|
|
||||||
rowData.value = { ...row };
|
|
||||||
isEdit.value = true;
|
|
||||||
visible.value = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateData = () => {
|
const updateData = (res) => {
|
||||||
closeDialog();
|
let api, msg, p;
|
||||||
getData();
|
if (dialogTitle.value == "重置密码") {
|
||||||
|
api = passwordReset;
|
||||||
|
p = { ...res, id: rowData.value.id };
|
||||||
|
msg = "重置成功";
|
||||||
|
} else {
|
||||||
|
p = { ...res, orgId: comm.user.orgId };
|
||||||
|
api = isEdit.value ? accountModify : accountAdd;
|
||||||
|
msg = isEdit.value ? "修改成功" : "新增成功";
|
||||||
|
}
|
||||||
|
|
||||||
|
api(p).then((res) => {
|
||||||
|
ElMessage.success(msg);
|
||||||
|
closeDialog();
|
||||||
|
getData();
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const closeDialog = () => {
|
const closeDialog = () => {
|
||||||
@ -190,9 +225,24 @@ const closeDialog = () => {
|
|||||||
isEdit.value = false;
|
isEdit.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
const handelCancel = () => {
|
const handelRow = (name: string, row?: TAccount.IListRes) => {
|
||||||
rowData.value = {};
|
if (name == "add") {
|
||||||
pwdVisible.value = false;
|
dialogTitle.value = "新增用户";
|
||||||
|
options.value = { ...addOpt };
|
||||||
|
rowData.value = undefined;
|
||||||
|
isEdit.value = false;
|
||||||
|
} else if (name == "pwd") {
|
||||||
|
dialogTitle.value = "重置密码";
|
||||||
|
options.value = { ...pwdOpt };
|
||||||
|
rowData.value = { ...row };
|
||||||
|
isEdit.value = true;
|
||||||
|
} else if (name == "edit") {
|
||||||
|
dialogTitle.value = "编辑";
|
||||||
|
isEdit.value = true;
|
||||||
|
options.value = { ...addOpt };
|
||||||
|
rowData.value = { ...row };
|
||||||
|
}
|
||||||
|
visible.value = true;
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
448
yarn.lock
448
yarn.lock
@ -64,6 +64,11 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
|
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
|
||||||
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
|
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
|
||||||
|
|
||||||
|
"@jridgewell/sourcemap-codec@^1.5.0":
|
||||||
|
version "1.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
|
||||||
|
integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
|
||||||
|
|
||||||
"@nodelib/fs.scandir@2.1.5":
|
"@nodelib/fs.scandir@2.1.5":
|
||||||
version "2.1.5"
|
version "2.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
|
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
|
||||||
@ -85,6 +90,34 @@
|
|||||||
"@nodelib/fs.scandir" "2.1.5"
|
"@nodelib/fs.scandir" "2.1.5"
|
||||||
fastq "^1.6.0"
|
fastq "^1.6.0"
|
||||||
|
|
||||||
|
"@nuxt/kit@^3.14.1592":
|
||||||
|
version "3.16.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.16.2.tgz#9fbb2ef3bd9ebeb499b4cc5215e2f857c54b75d7"
|
||||||
|
integrity sha512-K1SAUo2vweTfudKZzjKsZ5YJoxPLTspR5qz5+G61xtZreLpsdpDYfBseqsIAl5VFLJuszeRpWQ01jP9LfQ6Ksw==
|
||||||
|
dependencies:
|
||||||
|
c12 "^3.0.2"
|
||||||
|
consola "^3.4.2"
|
||||||
|
defu "^6.1.4"
|
||||||
|
destr "^2.0.3"
|
||||||
|
errx "^0.1.0"
|
||||||
|
exsolve "^1.0.4"
|
||||||
|
globby "^14.1.0"
|
||||||
|
ignore "^7.0.3"
|
||||||
|
jiti "^2.4.2"
|
||||||
|
klona "^2.0.6"
|
||||||
|
knitwork "^1.2.0"
|
||||||
|
mlly "^1.7.4"
|
||||||
|
ohash "^2.0.11"
|
||||||
|
pathe "^2.0.3"
|
||||||
|
pkg-types "^2.1.0"
|
||||||
|
scule "^1.3.0"
|
||||||
|
semver "^7.7.1"
|
||||||
|
std-env "^3.8.1"
|
||||||
|
ufo "^1.5.4"
|
||||||
|
unctx "^2.4.1"
|
||||||
|
unimport "^4.1.3"
|
||||||
|
untyped "^2.0.0"
|
||||||
|
|
||||||
"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7":
|
"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7":
|
||||||
version "2.11.7"
|
version "2.11.7"
|
||||||
resolved "https://registry.yarnpkg.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz#a7f69e3665d3da9b115f9e71671dae1b97e13671"
|
resolved "https://registry.yarnpkg.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz#a7f69e3665d3da9b115f9e71671dae1b97e13671"
|
||||||
@ -99,6 +132,11 @@
|
|||||||
estree-walker "^2.0.2"
|
estree-walker "^2.0.2"
|
||||||
picomatch "^2.3.1"
|
picomatch "^2.3.1"
|
||||||
|
|
||||||
|
"@sindresorhus/merge-streams@^2.1.0":
|
||||||
|
version "2.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958"
|
||||||
|
integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==
|
||||||
|
|
||||||
"@transloadit/prettier-bytes@0.0.7":
|
"@transloadit/prettier-bytes@0.0.7":
|
||||||
version "0.0.7"
|
version "0.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz#cdb5399f445fdd606ed833872fa0cabdbc51686b"
|
resolved "https://registry.yarnpkg.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz#cdb5399f445fdd606ed833872fa0cabdbc51686b"
|
||||||
@ -402,6 +440,11 @@ acorn@^8.10.0, acorn@^8.11.3:
|
|||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
|
||||||
integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
|
integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
|
||||||
|
|
||||||
|
acorn@^8.14.0, acorn@^8.14.1:
|
||||||
|
version "8.14.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb"
|
||||||
|
integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
|
||||||
|
|
||||||
adler-32@~1.3.0:
|
adler-32@~1.3.0:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/adler-32/-/adler-32-1.3.1.tgz#1dbf0b36dda0012189a32b3679061932df1821e2"
|
resolved "https://registry.yarnpkg.com/adler-32/-/adler-32-1.3.1.tgz#1dbf0b36dda0012189a32b3679061932df1821e2"
|
||||||
@ -463,6 +506,31 @@ braces@^3.0.2, braces@~3.0.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
fill-range "^7.0.1"
|
fill-range "^7.0.1"
|
||||||
|
|
||||||
|
braces@^3.0.3:
|
||||||
|
version "3.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
|
||||||
|
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
|
||||||
|
dependencies:
|
||||||
|
fill-range "^7.1.1"
|
||||||
|
|
||||||
|
c12@^3.0.2:
|
||||||
|
version "3.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/c12/-/c12-3.0.2.tgz#5ceba55cf081ff4cf95b22c593c80b34cf1f3d2e"
|
||||||
|
integrity sha512-6Tzk1/TNeI3WBPpK0j/Ss4+gPj3PUJYbWl/MWDJBThFvwNGNkXtd7Cz8BJtD4aRwoGHtzQD0SnxamgUiBH0/Nw==
|
||||||
|
dependencies:
|
||||||
|
chokidar "^4.0.3"
|
||||||
|
confbox "^0.1.8"
|
||||||
|
defu "^6.1.4"
|
||||||
|
dotenv "^16.4.7"
|
||||||
|
exsolve "^1.0.0"
|
||||||
|
giget "^2.0.0"
|
||||||
|
jiti "^2.4.2"
|
||||||
|
ohash "^2.0.5"
|
||||||
|
pathe "^2.0.3"
|
||||||
|
perfect-debounce "^1.0.0"
|
||||||
|
pkg-types "^2.0.0"
|
||||||
|
rc9 "^2.1.2"
|
||||||
|
|
||||||
cfb@~1.2.1:
|
cfb@~1.2.1:
|
||||||
version "1.2.2"
|
version "1.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/cfb/-/cfb-1.2.2.tgz#94e687628c700e5155436dac05f74e08df23bc44"
|
resolved "https://registry.yarnpkg.com/cfb/-/cfb-1.2.2.tgz#94e687628c700e5155436dac05f74e08df23bc44"
|
||||||
@ -486,6 +554,20 @@ chokidar@^3.5.3, chokidar@^3.6.0:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "~2.3.2"
|
fsevents "~2.3.2"
|
||||||
|
|
||||||
|
chokidar@^4.0.3:
|
||||||
|
version "4.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30"
|
||||||
|
integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==
|
||||||
|
dependencies:
|
||||||
|
readdirp "^4.0.1"
|
||||||
|
|
||||||
|
citty@^0.1.6:
|
||||||
|
version "0.1.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.6.tgz#0f7904da1ed4625e1a9ea7e0fa780981aab7c5e4"
|
||||||
|
integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==
|
||||||
|
dependencies:
|
||||||
|
consola "^3.2.3"
|
||||||
|
|
||||||
clone@^2.1.1:
|
clone@^2.1.1:
|
||||||
version "2.1.2"
|
version "2.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
|
resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
|
||||||
@ -508,6 +590,21 @@ compute-scroll-into-view@^1.0.20:
|
|||||||
resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43"
|
resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz#1768b5522d1172754f5d0c9b02de3af6be506a43"
|
||||||
integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==
|
integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==
|
||||||
|
|
||||||
|
confbox@^0.1.8:
|
||||||
|
version "0.1.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06"
|
||||||
|
integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==
|
||||||
|
|
||||||
|
confbox@^0.2.1:
|
||||||
|
version "0.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.2.1.tgz#ae39f2c99699afa451d00206479f15f9a1208a8b"
|
||||||
|
integrity sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==
|
||||||
|
|
||||||
|
consola@^3.2.3, consola@^3.4.0, consola@^3.4.2:
|
||||||
|
version "3.4.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.2.tgz#5af110145397bb67afdab77013fdc34cae590ea7"
|
||||||
|
integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==
|
||||||
|
|
||||||
copy-anything@^2.0.1:
|
copy-anything@^2.0.1:
|
||||||
version "2.0.6"
|
version "2.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480"
|
resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480"
|
||||||
@ -555,11 +652,26 @@ debug@^4.3.4:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ms "2.1.2"
|
ms "2.1.2"
|
||||||
|
|
||||||
|
deep-pick-omit@^1.2.1:
|
||||||
|
version "1.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/deep-pick-omit/-/deep-pick-omit-1.2.1.tgz#c035b27a4c86518b76f60ffa3004e6c61f317032"
|
||||||
|
integrity sha512-2J6Kc/m3irCeqVG42T+SaUMesaK7oGWaedGnQQK/+O0gYc+2SP5bKh/KKTE7d7SJ+GCA9UUE1GRzh6oDe0EnGw==
|
||||||
|
|
||||||
|
defu@^6.1.4:
|
||||||
|
version "6.1.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479"
|
||||||
|
integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==
|
||||||
|
|
||||||
delayed-stream@~1.0.0:
|
delayed-stream@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||||
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
|
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
|
||||||
|
|
||||||
|
destr@^2.0.3:
|
||||||
|
version "2.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.3.tgz#7f9e97cb3d16dbdca7be52aca1644ce402cfe449"
|
||||||
|
integrity sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==
|
||||||
|
|
||||||
dom7@^3.0.0:
|
dom7@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/dom7/-/dom7-3.0.0.tgz#b861ce5d67a6becd7aaa3ad02942ff14b1240331"
|
resolved "https://registry.yarnpkg.com/dom7/-/dom7-3.0.0.tgz#b861ce5d67a6becd7aaa3ad02942ff14b1240331"
|
||||||
@ -567,6 +679,11 @@ dom7@^3.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ssr-window "^3.0.0-alpha.1"
|
ssr-window "^3.0.0-alpha.1"
|
||||||
|
|
||||||
|
dotenv@^16.4.7:
|
||||||
|
version "16.4.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.7.tgz#0e20c5b82950140aa99be360a8a5f52335f53c26"
|
||||||
|
integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==
|
||||||
|
|
||||||
echarts-wordcloud@^2.1.0:
|
echarts-wordcloud@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/echarts-wordcloud/-/echarts-wordcloud-2.1.0.tgz#c3de6fe267044f6c3343e4ff0e05eedb01c05096"
|
resolved "https://registry.yarnpkg.com/echarts-wordcloud/-/echarts-wordcloud-2.1.0.tgz#c3de6fe267044f6c3343e4ff0e05eedb01c05096"
|
||||||
@ -618,6 +735,11 @@ errno@^0.1.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
prr "~1.0.1"
|
prr "~1.0.1"
|
||||||
|
|
||||||
|
errx@^0.1.0:
|
||||||
|
version "0.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/errx/-/errx-0.1.0.tgz#4881e411d90a3b1e1620a07604f50081dd59f3aa"
|
||||||
|
integrity sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==
|
||||||
|
|
||||||
es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14:
|
es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14:
|
||||||
version "0.10.64"
|
version "0.10.64"
|
||||||
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714"
|
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714"
|
||||||
@ -798,6 +920,13 @@ estree-walker@^2.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
|
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
|
||||||
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
|
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
|
||||||
|
|
||||||
|
estree-walker@^3.0.3:
|
||||||
|
version "3.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d"
|
||||||
|
integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==
|
||||||
|
dependencies:
|
||||||
|
"@types/estree" "^1.0.0"
|
||||||
|
|
||||||
event-emitter@^0.3.5:
|
event-emitter@^0.3.5:
|
||||||
version "0.3.5"
|
version "0.3.5"
|
||||||
resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
|
resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
|
||||||
@ -806,6 +935,11 @@ event-emitter@^0.3.5:
|
|||||||
d "1"
|
d "1"
|
||||||
es5-ext "~0.10.14"
|
es5-ext "~0.10.14"
|
||||||
|
|
||||||
|
exsolve@^1.0.0, exsolve@^1.0.1, exsolve@^1.0.4:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/exsolve/-/exsolve-1.0.4.tgz#7de5c75af82ecd15998328fbf5f2295883be3a39"
|
||||||
|
integrity sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==
|
||||||
|
|
||||||
ext@^1.7.0:
|
ext@^1.7.0:
|
||||||
version "1.7.0"
|
version "1.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"
|
resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"
|
||||||
@ -824,6 +958,17 @@ fast-glob@^3.2.12:
|
|||||||
merge2 "^1.3.0"
|
merge2 "^1.3.0"
|
||||||
micromatch "^4.0.4"
|
micromatch "^4.0.4"
|
||||||
|
|
||||||
|
fast-glob@^3.3.3:
|
||||||
|
version "3.3.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818"
|
||||||
|
integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
|
||||||
|
dependencies:
|
||||||
|
"@nodelib/fs.stat" "^2.0.2"
|
||||||
|
"@nodelib/fs.walk" "^1.2.3"
|
||||||
|
glob-parent "^5.1.2"
|
||||||
|
merge2 "^1.3.0"
|
||||||
|
micromatch "^4.0.8"
|
||||||
|
|
||||||
fastq@^1.6.0:
|
fastq@^1.6.0:
|
||||||
version "1.17.1"
|
version "1.17.1"
|
||||||
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
|
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
|
||||||
@ -831,6 +976,11 @@ fastq@^1.6.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
reusify "^1.0.4"
|
reusify "^1.0.4"
|
||||||
|
|
||||||
|
fdir@^6.4.3:
|
||||||
|
version "6.4.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72"
|
||||||
|
integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==
|
||||||
|
|
||||||
fill-range@^7.0.1:
|
fill-range@^7.0.1:
|
||||||
version "7.0.1"
|
version "7.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
|
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
|
||||||
@ -838,6 +988,13 @@ fill-range@^7.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
to-regex-range "^5.0.1"
|
to-regex-range "^5.0.1"
|
||||||
|
|
||||||
|
fill-range@^7.1.1:
|
||||||
|
version "7.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
|
||||||
|
integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
|
||||||
|
dependencies:
|
||||||
|
to-regex-range "^5.0.1"
|
||||||
|
|
||||||
follow-redirects@^1.15.6:
|
follow-redirects@^1.15.6:
|
||||||
version "1.15.6"
|
version "1.15.6"
|
||||||
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
|
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
|
||||||
@ -867,6 +1024,18 @@ function-bind@^1.1.2:
|
|||||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
|
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
|
||||||
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
|
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
|
||||||
|
|
||||||
|
giget@^2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/giget/-/giget-2.0.0.tgz#395fc934a43f9a7a29a29d55b99f23e30c14f195"
|
||||||
|
integrity sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==
|
||||||
|
dependencies:
|
||||||
|
citty "^0.1.6"
|
||||||
|
consola "^3.4.0"
|
||||||
|
defu "^6.1.4"
|
||||||
|
node-fetch-native "^1.6.6"
|
||||||
|
nypm "^0.6.0"
|
||||||
|
pathe "^2.0.3"
|
||||||
|
|
||||||
glob-parent@^5.1.2, glob-parent@~5.1.2:
|
glob-parent@^5.1.2, glob-parent@~5.1.2:
|
||||||
version "5.1.2"
|
version "5.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
||||||
@ -874,6 +1043,18 @@ glob-parent@^5.1.2, glob-parent@~5.1.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-glob "^4.0.1"
|
is-glob "^4.0.1"
|
||||||
|
|
||||||
|
globby@^14.1.0:
|
||||||
|
version "14.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/globby/-/globby-14.1.0.tgz#138b78e77cf5a8d794e327b15dce80bf1fb0a73e"
|
||||||
|
integrity sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==
|
||||||
|
dependencies:
|
||||||
|
"@sindresorhus/merge-streams" "^2.1.0"
|
||||||
|
fast-glob "^3.3.3"
|
||||||
|
ignore "^7.0.3"
|
||||||
|
path-type "^6.0.0"
|
||||||
|
slash "^5.1.0"
|
||||||
|
unicorn-magic "^0.3.0"
|
||||||
|
|
||||||
graceful-fs@^4.1.2:
|
graceful-fs@^4.1.2:
|
||||||
version "4.2.11"
|
version "4.2.11"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
|
||||||
@ -898,6 +1079,11 @@ i18next@^20.4.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.12.0"
|
"@babel/runtime" "^7.12.0"
|
||||||
|
|
||||||
|
ignore@^7.0.3:
|
||||||
|
version "7.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.3.tgz#397ef9315dfe0595671eefe8b633fec6943ab733"
|
||||||
|
integrity sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==
|
||||||
|
|
||||||
image-size@~0.5.0:
|
image-size@~0.5.0:
|
||||||
version "0.5.5"
|
version "0.5.5"
|
||||||
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
|
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
|
||||||
@ -959,6 +1145,16 @@ is-what@^3.14.1:
|
|||||||
resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1"
|
resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1"
|
||||||
integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==
|
integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==
|
||||||
|
|
||||||
|
jiti@^2.4.2:
|
||||||
|
version "2.4.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.4.2.tgz#d19b7732ebb6116b06e2038da74a55366faef560"
|
||||||
|
integrity sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==
|
||||||
|
|
||||||
|
js-tokens@^9.0.1:
|
||||||
|
version "9.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4"
|
||||||
|
integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==
|
||||||
|
|
||||||
json5@^1.0.1:
|
json5@^1.0.1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
|
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
|
||||||
@ -971,6 +1167,16 @@ jsonc-parser@^3.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a"
|
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a"
|
||||||
integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==
|
integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==
|
||||||
|
|
||||||
|
klona@^2.0.6:
|
||||||
|
version "2.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22"
|
||||||
|
integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==
|
||||||
|
|
||||||
|
knitwork@^1.2.0:
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/knitwork/-/knitwork-1.2.0.tgz#3cc92e76249aeb35449cfbed3f31c6df8444db3f"
|
||||||
|
integrity sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==
|
||||||
|
|
||||||
less-loader@^5.0.0:
|
less-loader@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466"
|
resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-5.0.0.tgz#498dde3a6c6c4f887458ee9ed3f086a12ad1b466"
|
||||||
@ -1010,6 +1216,15 @@ local-pkg@^0.4.2, local-pkg@^0.4.3:
|
|||||||
resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963"
|
resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963"
|
||||||
integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==
|
integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==
|
||||||
|
|
||||||
|
local-pkg@^1.1.1:
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-1.1.1.tgz#f5fe74a97a3bd3c165788ee08ca9fbe998dc58dd"
|
||||||
|
integrity sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==
|
||||||
|
dependencies:
|
||||||
|
mlly "^1.7.4"
|
||||||
|
pkg-types "^2.0.1"
|
||||||
|
quansync "^0.2.8"
|
||||||
|
|
||||||
lodash-es@^4.17.21:
|
lodash-es@^4.17.21:
|
||||||
version "4.17.21"
|
version "4.17.21"
|
||||||
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
|
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
|
||||||
@ -1081,6 +1296,13 @@ magic-string@^0.27.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@jridgewell/sourcemap-codec" "^1.4.13"
|
"@jridgewell/sourcemap-codec" "^1.4.13"
|
||||||
|
|
||||||
|
magic-string@^0.30.17:
|
||||||
|
version "0.30.17"
|
||||||
|
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453"
|
||||||
|
integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==
|
||||||
|
dependencies:
|
||||||
|
"@jridgewell/sourcemap-codec" "^1.5.0"
|
||||||
|
|
||||||
magic-string@^0.30.7:
|
magic-string@^0.30.7:
|
||||||
version "0.30.9"
|
version "0.30.9"
|
||||||
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.9.tgz#8927ae21bfdd856310e07a1bc8dd5e73cb6c251d"
|
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.9.tgz#8927ae21bfdd856310e07a1bc8dd5e73cb6c251d"
|
||||||
@ -1119,6 +1341,14 @@ micromatch@^4.0.4:
|
|||||||
braces "^3.0.2"
|
braces "^3.0.2"
|
||||||
picomatch "^2.3.1"
|
picomatch "^2.3.1"
|
||||||
|
|
||||||
|
micromatch@^4.0.8:
|
||||||
|
version "4.0.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
|
||||||
|
integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
|
||||||
|
dependencies:
|
||||||
|
braces "^3.0.3"
|
||||||
|
picomatch "^2.3.1"
|
||||||
|
|
||||||
mime-db@1.52.0:
|
mime-db@1.52.0:
|
||||||
version "1.52.0"
|
version "1.52.0"
|
||||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
||||||
@ -1165,6 +1395,16 @@ mlly@^1.1.0, mlly@^1.2.0:
|
|||||||
pkg-types "^1.0.3"
|
pkg-types "^1.0.3"
|
||||||
ufo "^1.3.2"
|
ufo "^1.3.2"
|
||||||
|
|
||||||
|
mlly@^1.7.4:
|
||||||
|
version "1.7.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.4.tgz#3d7295ea2358ec7a271eaa5d000a0f84febe100f"
|
||||||
|
integrity sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==
|
||||||
|
dependencies:
|
||||||
|
acorn "^8.14.0"
|
||||||
|
pathe "^2.0.1"
|
||||||
|
pkg-types "^1.3.0"
|
||||||
|
ufo "^1.5.4"
|
||||||
|
|
||||||
ms@2.1.2:
|
ms@2.1.2:
|
||||||
version "2.1.2"
|
version "2.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
||||||
@ -1190,6 +1430,11 @@ next-tick@^1.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
|
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
|
||||||
integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
|
integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
|
||||||
|
|
||||||
|
node-fetch-native@^1.6.6:
|
||||||
|
version "1.6.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.6.tgz#ae1d0e537af35c2c0b0de81cbff37eedd410aa37"
|
||||||
|
integrity sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==
|
||||||
|
|
||||||
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
||||||
@ -1205,16 +1450,47 @@ nprogress@^0.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1"
|
resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1"
|
||||||
integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==
|
integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==
|
||||||
|
|
||||||
|
nypm@^0.6.0:
|
||||||
|
version "0.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/nypm/-/nypm-0.6.0.tgz#3a04623d1c358a93fc4b3cb9cfb6a11af080feca"
|
||||||
|
integrity sha512-mn8wBFV9G9+UFHIrq+pZ2r2zL4aPau/by3kJb3cM7+5tQHMt6HGQB8FDIeKFYp8o0D2pnH6nVsO88N4AmUxIWg==
|
||||||
|
dependencies:
|
||||||
|
citty "^0.1.6"
|
||||||
|
consola "^3.4.0"
|
||||||
|
pathe "^2.0.3"
|
||||||
|
pkg-types "^2.0.0"
|
||||||
|
tinyexec "^0.3.2"
|
||||||
|
|
||||||
|
ohash@^2.0.11, ohash@^2.0.5:
|
||||||
|
version "2.0.11"
|
||||||
|
resolved "https://registry.yarnpkg.com/ohash/-/ohash-2.0.11.tgz#60b11e8cff62ca9dee88d13747a5baa145f5900b"
|
||||||
|
integrity sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==
|
||||||
|
|
||||||
path-parse@^1.0.7:
|
path-parse@^1.0.7:
|
||||||
version "1.0.7"
|
version "1.0.7"
|
||||||
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||||
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
||||||
|
|
||||||
|
path-type@^6.0.0:
|
||||||
|
version "6.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/path-type/-/path-type-6.0.0.tgz#2f1bb6791a91ce99194caede5d6c5920ed81eb51"
|
||||||
|
integrity sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==
|
||||||
|
|
||||||
pathe@^1.0.0, pathe@^1.1.0, pathe@^1.1.2:
|
pathe@^1.0.0, pathe@^1.1.0, pathe@^1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec"
|
resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec"
|
||||||
integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==
|
integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==
|
||||||
|
|
||||||
|
pathe@^2.0.1, pathe@^2.0.2, pathe@^2.0.3:
|
||||||
|
version "2.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716"
|
||||||
|
integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==
|
||||||
|
|
||||||
|
perfect-debounce@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a"
|
||||||
|
integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==
|
||||||
|
|
||||||
picocolors@^1.0.0:
|
picocolors@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||||
@ -1225,11 +1501,33 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
|
|||||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
||||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||||
|
|
||||||
|
picomatch@^4.0.2:
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab"
|
||||||
|
integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==
|
||||||
|
|
||||||
pify@^4.0.1:
|
pify@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
|
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
|
||||||
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
|
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
|
||||||
|
|
||||||
|
pinia-plugin-persist@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/pinia-plugin-persist/-/pinia-plugin-persist-1.0.0.tgz#fc696f225527f30bd5955109fafadd43c725e888"
|
||||||
|
integrity sha512-M4hBBd8fz/GgNmUPaaUsC29y1M09lqbXrMAHcusVoU8xlQi1TqgkWnnhvMikZwr7Le/hVyMx8KUcumGGrR6GVw==
|
||||||
|
dependencies:
|
||||||
|
vue-demi "^0.12.1"
|
||||||
|
|
||||||
|
pinia-plugin-persistedstate@^4.2.0:
|
||||||
|
version "4.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-4.2.0.tgz#31973291b768bd84ce24e55083e7171b2f451ad1"
|
||||||
|
integrity sha512-3buhA7ac+ssbOIx3VRCC8oHkoFwhDM9oHRCjo7nj+O8WUqnW+jRqh7eYT5eS/DNa3H28zp3dYf/nd/Vc8zj8eQ==
|
||||||
|
dependencies:
|
||||||
|
"@nuxt/kit" "^3.14.1592"
|
||||||
|
deep-pick-omit "^1.2.1"
|
||||||
|
defu "^6.1.4"
|
||||||
|
destr "^2.0.3"
|
||||||
|
|
||||||
pinia@^2.1.7:
|
pinia@^2.1.7:
|
||||||
version "2.1.7"
|
version "2.1.7"
|
||||||
resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.1.7.tgz#4cf5420d9324ca00b7b4984d3fbf693222115bbc"
|
resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.1.7.tgz#4cf5420d9324ca00b7b4984d3fbf693222115bbc"
|
||||||
@ -1247,6 +1545,24 @@ pkg-types@^1.0.1, pkg-types@^1.0.3:
|
|||||||
mlly "^1.2.0"
|
mlly "^1.2.0"
|
||||||
pathe "^1.1.0"
|
pathe "^1.1.0"
|
||||||
|
|
||||||
|
pkg-types@^1.3.0:
|
||||||
|
version "1.3.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.3.1.tgz#bd7cc70881192777eef5326c19deb46e890917df"
|
||||||
|
integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==
|
||||||
|
dependencies:
|
||||||
|
confbox "^0.1.8"
|
||||||
|
mlly "^1.7.4"
|
||||||
|
pathe "^2.0.1"
|
||||||
|
|
||||||
|
pkg-types@^2.0.0, pkg-types@^2.0.1, pkg-types@^2.1.0:
|
||||||
|
version "2.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-2.1.0.tgz#70c9e1b9c74b63fdde749876ee0aa007ea9edead"
|
||||||
|
integrity sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==
|
||||||
|
dependencies:
|
||||||
|
confbox "^0.2.1"
|
||||||
|
exsolve "^1.0.1"
|
||||||
|
pathe "^2.0.3"
|
||||||
|
|
||||||
postcss@^8.4.18, postcss@^8.4.35:
|
postcss@^8.4.18, postcss@^8.4.35:
|
||||||
version "8.4.38"
|
version "8.4.38"
|
||||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e"
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e"
|
||||||
@ -1276,11 +1592,29 @@ prr@~1.0.1:
|
|||||||
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
|
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
|
||||||
integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==
|
integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==
|
||||||
|
|
||||||
|
quansync@^0.2.8:
|
||||||
|
version "0.2.10"
|
||||||
|
resolved "https://registry.yarnpkg.com/quansync/-/quansync-0.2.10.tgz#32053cf166fa36511aae95fc49796116f2dc20e1"
|
||||||
|
integrity sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==
|
||||||
|
|
||||||
queue-microtask@^1.2.2:
|
queue-microtask@^1.2.2:
|
||||||
version "1.2.3"
|
version "1.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
||||||
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
||||||
|
|
||||||
|
rc9@^2.1.2:
|
||||||
|
version "2.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/rc9/-/rc9-2.1.2.tgz#6282ff638a50caa0a91a31d76af4a0b9cbd1080d"
|
||||||
|
integrity sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==
|
||||||
|
dependencies:
|
||||||
|
defu "^6.1.4"
|
||||||
|
destr "^2.0.3"
|
||||||
|
|
||||||
|
readdirp@^4.0.1:
|
||||||
|
version "4.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d"
|
||||||
|
integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==
|
||||||
|
|
||||||
readdirp@~3.6.0:
|
readdirp@~3.6.0:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
|
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
|
||||||
@ -1338,7 +1672,7 @@ scroll-into-view-if-needed@^2.2.28:
|
|||||||
dependencies:
|
dependencies:
|
||||||
compute-scroll-into-view "^1.0.20"
|
compute-scroll-into-view "^1.0.20"
|
||||||
|
|
||||||
scule@^1.0.0:
|
scule@^1.0.0, scule@^1.3.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3"
|
resolved "https://registry.yarnpkg.com/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3"
|
||||||
integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==
|
integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==
|
||||||
@ -1348,6 +1682,16 @@ semver@^5.6.0:
|
|||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
|
||||||
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
|
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
|
||||||
|
|
||||||
|
semver@^7.7.1:
|
||||||
|
version "7.7.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f"
|
||||||
|
integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
|
||||||
|
|
||||||
|
slash@^5.1.0:
|
||||||
|
version "5.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce"
|
||||||
|
integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==
|
||||||
|
|
||||||
slate-history@^0.66.0:
|
slate-history@^0.66.0:
|
||||||
version "0.66.0"
|
version "0.66.0"
|
||||||
resolved "https://registry.yarnpkg.com/slate-history/-/slate-history-0.66.0.tgz#ac63fddb903098ceb4c944433e3f75fe63acf940"
|
resolved "https://registry.yarnpkg.com/slate-history/-/slate-history-0.66.0.tgz#ac63fddb903098ceb4c944433e3f75fe63acf940"
|
||||||
@ -1396,6 +1740,11 @@ ssr-window@^3.0.0-alpha.1:
|
|||||||
resolved "https://registry.yarnpkg.com/ssr-window/-/ssr-window-3.0.0.tgz#fd5b82801638943e0cc704c4691801435af7ac37"
|
resolved "https://registry.yarnpkg.com/ssr-window/-/ssr-window-3.0.0.tgz#fd5b82801638943e0cc704c4691801435af7ac37"
|
||||||
integrity sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==
|
integrity sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==
|
||||||
|
|
||||||
|
std-env@^3.8.1:
|
||||||
|
version "3.8.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.8.1.tgz#2b81c631c62e3d0b964b87f099b8dcab6c9a5346"
|
||||||
|
integrity sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==
|
||||||
|
|
||||||
strip-literal@^1.0.0:
|
strip-literal@^1.0.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07"
|
resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07"
|
||||||
@ -1403,6 +1752,13 @@ strip-literal@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
acorn "^8.10.0"
|
acorn "^8.10.0"
|
||||||
|
|
||||||
|
strip-literal@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-3.0.0.tgz#ce9c452a91a0af2876ed1ae4e583539a353df3fc"
|
||||||
|
integrity sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==
|
||||||
|
dependencies:
|
||||||
|
js-tokens "^9.0.1"
|
||||||
|
|
||||||
supports-preserve-symlinks-flag@^1.0.0:
|
supports-preserve-symlinks-flag@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
||||||
@ -1413,6 +1769,19 @@ tiny-warning@^1.0.3:
|
|||||||
resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
|
resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
|
||||||
integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
|
integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
|
||||||
|
|
||||||
|
tinyexec@^0.3.2:
|
||||||
|
version "0.3.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.2.tgz#941794e657a85e496577995c6eef66f53f42b3d2"
|
||||||
|
integrity sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==
|
||||||
|
|
||||||
|
tinyglobby@^0.2.12:
|
||||||
|
version "0.2.12"
|
||||||
|
resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.12.tgz#ac941a42e0c5773bd0b5d08f32de82e74a1a61b5"
|
||||||
|
integrity sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==
|
||||||
|
dependencies:
|
||||||
|
fdir "^6.4.3"
|
||||||
|
picomatch "^4.0.2"
|
||||||
|
|
||||||
to-regex-range@^5.0.1:
|
to-regex-range@^5.0.1:
|
||||||
version "5.0.1"
|
version "5.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
||||||
@ -1445,6 +1814,26 @@ ufo@^1.3.2:
|
|||||||
resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.3.tgz#3325bd3c977b6c6cd3160bf4ff52989adc9d3344"
|
resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.3.tgz#3325bd3c977b6c6cd3160bf4ff52989adc9d3344"
|
||||||
integrity sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==
|
integrity sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==
|
||||||
|
|
||||||
|
ufo@^1.5.4:
|
||||||
|
version "1.5.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.4.tgz#16d6949674ca0c9e0fbbae1fa20a71d7b1ded754"
|
||||||
|
integrity sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==
|
||||||
|
|
||||||
|
unctx@^2.4.1:
|
||||||
|
version "2.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/unctx/-/unctx-2.4.1.tgz#93346a98d4a38c64cc5861f6098f4ce7c6f8164a"
|
||||||
|
integrity sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==
|
||||||
|
dependencies:
|
||||||
|
acorn "^8.14.0"
|
||||||
|
estree-walker "^3.0.3"
|
||||||
|
magic-string "^0.30.17"
|
||||||
|
unplugin "^2.1.0"
|
||||||
|
|
||||||
|
unicorn-magic@^0.3.0:
|
||||||
|
version "0.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.3.0.tgz#4efd45c85a69e0dd576d25532fbfa22aa5c8a104"
|
||||||
|
integrity sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==
|
||||||
|
|
||||||
unimport@^1.0.1:
|
unimport@^1.0.1:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/unimport/-/unimport-1.3.0.tgz#167ab78e60ea0e36a9a764c7b608ee95d7b2411c"
|
resolved "https://registry.yarnpkg.com/unimport/-/unimport-1.3.0.tgz#167ab78e60ea0e36a9a764c7b608ee95d7b2411c"
|
||||||
@ -1462,6 +1851,26 @@ unimport@^1.0.1:
|
|||||||
strip-literal "^1.0.0"
|
strip-literal "^1.0.0"
|
||||||
unplugin "^1.0.1"
|
unplugin "^1.0.1"
|
||||||
|
|
||||||
|
unimport@^4.1.3:
|
||||||
|
version "4.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/unimport/-/unimport-4.1.3.tgz#938f37f90faa6f29dd156ded98f1990bd5acee50"
|
||||||
|
integrity sha512-H+IVJ7rAkE3b+oC8rSJ2FsPaVsweeMC8eKZc+C6Mz7+hxDF45AnrY/tVCNRBvzMwWNcJEV67WdAVcal27iMjOw==
|
||||||
|
dependencies:
|
||||||
|
acorn "^8.14.1"
|
||||||
|
escape-string-regexp "^5.0.0"
|
||||||
|
estree-walker "^3.0.3"
|
||||||
|
local-pkg "^1.1.1"
|
||||||
|
magic-string "^0.30.17"
|
||||||
|
mlly "^1.7.4"
|
||||||
|
pathe "^2.0.3"
|
||||||
|
picomatch "^4.0.2"
|
||||||
|
pkg-types "^2.1.0"
|
||||||
|
scule "^1.3.0"
|
||||||
|
strip-literal "^3.0.0"
|
||||||
|
tinyglobby "^0.2.12"
|
||||||
|
unplugin "^2.2.2"
|
||||||
|
unplugin-utils "^0.2.4"
|
||||||
|
|
||||||
unplugin-auto-import@^0.11.2:
|
unplugin-auto-import@^0.11.2:
|
||||||
version "0.11.5"
|
version "0.11.5"
|
||||||
resolved "https://registry.yarnpkg.com/unplugin-auto-import/-/unplugin-auto-import-0.11.5.tgz#84c27e5f230bc1fc9004c162a39b81fcf89da740"
|
resolved "https://registry.yarnpkg.com/unplugin-auto-import/-/unplugin-auto-import-0.11.5.tgz#84c27e5f230bc1fc9004c162a39b81fcf89da740"
|
||||||
@ -1474,6 +1883,14 @@ unplugin-auto-import@^0.11.2:
|
|||||||
unimport "^1.0.1"
|
unimport "^1.0.1"
|
||||||
unplugin "^1.0.0"
|
unplugin "^1.0.0"
|
||||||
|
|
||||||
|
unplugin-utils@^0.2.4:
|
||||||
|
version "0.2.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/unplugin-utils/-/unplugin-utils-0.2.4.tgz#56e4029a6906645a10644f8befc404b06d5d24d0"
|
||||||
|
integrity sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==
|
||||||
|
dependencies:
|
||||||
|
pathe "^2.0.2"
|
||||||
|
picomatch "^4.0.2"
|
||||||
|
|
||||||
unplugin-vue-components@^0.22.4:
|
unplugin-vue-components@^0.22.4:
|
||||||
version "0.22.12"
|
version "0.22.12"
|
||||||
resolved "https://registry.yarnpkg.com/unplugin-vue-components/-/unplugin-vue-components-0.22.12.tgz#39013f77be72d32df9d6ca1599e592a484015612"
|
resolved "https://registry.yarnpkg.com/unplugin-vue-components/-/unplugin-vue-components-0.22.12.tgz#39013f77be72d32df9d6ca1599e592a484015612"
|
||||||
@ -1500,6 +1917,25 @@ unplugin@^1.0.0, unplugin@^1.0.1:
|
|||||||
webpack-sources "^3.2.3"
|
webpack-sources "^3.2.3"
|
||||||
webpack-virtual-modules "^0.6.1"
|
webpack-virtual-modules "^0.6.1"
|
||||||
|
|
||||||
|
unplugin@^2.1.0, unplugin@^2.2.2:
|
||||||
|
version "2.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-2.2.2.tgz#82f8c638ba944f6135e99ae5a8dc9eba9601b4a8"
|
||||||
|
integrity sha512-Qp+iiD+qCRnUek+nDoYvtWX7tfnYyXsrOnJ452FRTgOyKmTM7TUJ3l+PLPJOOWPTUyKISKp4isC5JJPSXUjGgw==
|
||||||
|
dependencies:
|
||||||
|
acorn "^8.14.1"
|
||||||
|
webpack-virtual-modules "^0.6.2"
|
||||||
|
|
||||||
|
untyped@^2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/untyped/-/untyped-2.0.0.tgz#86bc205a4ec4b0137282285866b8278557aeee97"
|
||||||
|
integrity sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==
|
||||||
|
dependencies:
|
||||||
|
citty "^0.1.6"
|
||||||
|
defu "^6.1.4"
|
||||||
|
jiti "^2.4.2"
|
||||||
|
knitwork "^1.2.0"
|
||||||
|
scule "^1.3.0"
|
||||||
|
|
||||||
vite-plugin-vue-setup-extend@^0.4.0:
|
vite-plugin-vue-setup-extend@^0.4.0:
|
||||||
version "0.4.0"
|
version "0.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/vite-plugin-vue-setup-extend/-/vite-plugin-vue-setup-extend-0.4.0.tgz#ebbbe265320039b8c6a3b9fcae3b8d152ecf4a13"
|
resolved "https://registry.yarnpkg.com/vite-plugin-vue-setup-extend/-/vite-plugin-vue-setup-extend-0.4.0.tgz#ebbbe265320039b8c6a3b9fcae3b8d152ecf4a13"
|
||||||
@ -1530,6 +1966,11 @@ vue-demi@*, vue-demi@>=0.14.5:
|
|||||||
resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.7.tgz#8317536b3ef74c5b09f268f7782e70194567d8f2"
|
resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.7.tgz#8317536b3ef74c5b09f268f7782e70194567d8f2"
|
||||||
integrity sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==
|
integrity sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==
|
||||||
|
|
||||||
|
vue-demi@^0.12.1:
|
||||||
|
version "0.12.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.12.5.tgz#8eeed566a7d86eb090209a11723f887d28aeb2d1"
|
||||||
|
integrity sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==
|
||||||
|
|
||||||
vue-demi@^0.13.11:
|
vue-demi@^0.13.11:
|
||||||
version "0.13.11"
|
version "0.13.11"
|
||||||
resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99"
|
resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99"
|
||||||
@ -1585,6 +2026,11 @@ webpack-virtual-modules@^0.6.1:
|
|||||||
resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz#ac6fdb9c5adb8caecd82ec241c9631b7a3681b6f"
|
resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz#ac6fdb9c5adb8caecd82ec241c9631b7a3681b6f"
|
||||||
integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==
|
integrity sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==
|
||||||
|
|
||||||
|
webpack-virtual-modules@^0.6.2:
|
||||||
|
version "0.6.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz#057faa9065c8acf48f24cb57ac0e77739ab9a7e8"
|
||||||
|
integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==
|
||||||
|
|
||||||
wildcard@^1.1.0:
|
wildcard@^1.1.0:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-1.1.2.tgz#a7020453084d8cd2efe70ba9d3696263de1710a5"
|
resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-1.1.2.tgz#a7020453084d8cd2efe70ba9d3696263de1710a5"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user