'init'
This commit is contained in:
commit
ae7a79d670
|
|
@ -0,0 +1,3 @@
|
|||
NODE_ENV=production
|
||||
VUE_APP_PREVIEW=false
|
||||
VUE_APP_API_BASE_URL=/api
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
NODE_ENV=development
|
||||
VUE_APP_PREVIEW=true
|
||||
VUE_APP_API_BASE_URL=/api
|
||||
GIT_TEST_DEBUG_UNSAFE_DIRECTORIES=true
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
NODE_ENV=production
|
||||
VUE_APP_PREVIEW=true
|
||||
VUE_APP_API_BASE_URL=/api
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
public/* linguist-vendored
|
||||
|
||||
# Automatically normalize line endings (to LF) for all text-based files.
|
||||
* text=auto eol=lf
|
||||
|
||||
# Declare files that will always have CRLF line endings on checkout.
|
||||
*.{cmd,[cC][mM][dD]} text eol=crlf
|
||||
*.{bat,[bB][aA][tT]} text eol=crlf
|
||||
|
||||
# Denote all files that are truly binary and should not be modified.
|
||||
*.{ico,png,jpg,jpeg,gif,webp,svg,woff,woff2} binary
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
.DS_Store
|
||||
node_modules
|
||||
/dist
|
||||
|
||||
# local env files
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Log files
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw*
|
||||
package-lock.json
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
FROM nginx
|
||||
|
||||
RUN rm /etc/nginx/conf.d/default.conf
|
||||
|
||||
ADD deploy/nginx.conf /etc/nginx/conf.d/default.conf
|
||||
COPY dist/ /usr/share/nginx/html/
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
FROM nginx
|
||||
|
||||
RUN rm /etc/nginx/conf.d/default.conf
|
||||
|
||||
ADD deploy/nginx_test.conf /etc/nginx/conf.d/default.conf
|
||||
COPY dist/ /usr/share/nginx/html/
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
0.0.0.0:80 {
|
||||
gzip
|
||||
root /usr/share/nginx/html
|
||||
|
||||
rewrite {
|
||||
r .*
|
||||
to {path} /
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
# gzip config
|
||||
gzip on;
|
||||
gzip_min_length 1k;
|
||||
gzip_comp_level 6;
|
||||
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
|
||||
gzip_vary on;
|
||||
gzip_disable "MSIE [1-6]\.";
|
||||
|
||||
root /usr/share/nginx/html/dist;
|
||||
include /etc/nginx/mime.types;
|
||||
|
||||
index index.html index.htm;
|
||||
try_files $uri $uri/ @router;
|
||||
location @router {
|
||||
rewrite ^.*$ /index.html last;
|
||||
}
|
||||
# location /api {
|
||||
# proxy_pass https://preview.pro.antdv.com/api;
|
||||
# proxy_set_header X-Forwarded-Proto $scheme;
|
||||
# proxy_set_header X-Real-IP $remote_addr;
|
||||
# }
|
||||
location /api/live {
|
||||
proxy_pass http://120.77.165.155:8100;
|
||||
}
|
||||
location /api/Complaint {
|
||||
proxy_pass http://120.77.165.155:8095;
|
||||
}
|
||||
location /api/Wework {
|
||||
proxy_pass http://cmsext.soft.dn8188.com;
|
||||
}
|
||||
location /api {
|
||||
proxy_pass http://120.77.165.155:8089;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
# gzip config
|
||||
gzip on;
|
||||
gzip_min_length 1k;
|
||||
gzip_comp_level 6;
|
||||
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
|
||||
gzip_vary on;
|
||||
gzip_disable "MSIE [1-6]\.";
|
||||
|
||||
root /usr/share/nginx/html/dist;
|
||||
include /etc/nginx/mime.types;
|
||||
|
||||
index index.html index.htm;
|
||||
try_files $uri $uri/ @router;
|
||||
location @router {
|
||||
rewrite ^.*$ /index.html last;
|
||||
}
|
||||
|
||||
# location /api {
|
||||
# proxy_pass https://preview.pro.antdv.com/api;
|
||||
# proxy_set_header X-Forwarded-Proto $scheme;
|
||||
# proxy_set_header X-Real-IP $remote_addr;
|
||||
# }
|
||||
location /api/live {
|
||||
proxy_pass http://120.77.165.155:8100;
|
||||
}
|
||||
location /api/Complaint {
|
||||
proxy_pass http://192.168.11.81:8095;
|
||||
}
|
||||
location /api {
|
||||
proxy_pass http://192.168.11.81:8089;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>重要线索</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.js"></script>
|
||||
<script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js" referrerpolicy="origin"></script>
|
||||
<script src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js" referrerpolicy="origin"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"name": "vite",
|
||||
"version": "0.0.0",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build"
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^1.4.0",
|
||||
"jweixin-1.6.0": "^1.0.0",
|
||||
"jwxwork": "^0.1.12",
|
||||
"store": "^2.0.12",
|
||||
"vant": "^4.0.0",
|
||||
"vue": "^3.2.45",
|
||||
"vue-router": "^4.0.13",
|
||||
"vuex": "^4.1.0",
|
||||
"weixin-js-sdk": "^1.6.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "^3.2.0",
|
||||
"less": "^4.2.0",
|
||||
"unplugin-vue-components": "^0.22.11",
|
||||
"vite": "^4.4.7"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
0IfsovoUayKyAZbU
|
||||
|
|
@ -0,0 +1 @@
|
|||
QvdKsO1xv8R5wTeJ
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
<link rel="stylesheet" href="@/assets/style/common.less">
|
||||
<template>
|
||||
<div id="main">
|
||||
<router-view />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
@import url("@/assets/style/common.less");
|
||||
</style>
|
||||
<script>
|
||||
export default {
|
||||
name: 'App',
|
||||
components: {
|
||||
},
|
||||
created() {
|
||||
this.initWindows()
|
||||
},
|
||||
methods: {
|
||||
setViewHeight() {
|
||||
let windowVH = window.innerHeight / 100
|
||||
document.documentElement.style.setProperty('--vh', windowVH + 'px')
|
||||
},
|
||||
initWindows() {
|
||||
let i = 'orientationchange' in window ? 'orientationchange' : 'resize'
|
||||
window.addEventListener('DOMContentLoaded', this.setViewHeight())
|
||||
document.addEventListener(i, this.setViewHeight())
|
||||
|
||||
let fontSize = 100
|
||||
let docEl = document.documentElement
|
||||
let resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
|
||||
let recalc = function () {
|
||||
let clientWidth = docEl.clientWidth;
|
||||
if (!clientWidth) return;
|
||||
if (clientWidth > 750) clientWidth = 750;
|
||||
docEl.style.fontSize = (50 * (clientWidth / 375)).toFixed(1) + 'px'; fontSize = 50 * (clientWidth / 375);
|
||||
};
|
||||
if (!document.addEventListener) return;
|
||||
window.addEventListener(resizeEvt, recalc, false);
|
||||
document.addEventListener('DOMContentLoaded', recalc, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
const api = {
|
||||
DetailByAppid: '/api/Complaint/DetailByAppid',
|
||||
Status: '/api/Complaint/Status',
|
||||
}
|
||||
|
||||
export function detailByAppid (parameter) {
|
||||
return request({
|
||||
url: api.DetailByAppid,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function changeStatus (data) {
|
||||
return request({
|
||||
url: api.Status,
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
const api = {
|
||||
List: '/api/ImportanceItem/list',
|
||||
Statistics: '/api/ImportanceItem/statistics'
|
||||
}
|
||||
|
||||
export function list (parameter) {
|
||||
return request({
|
||||
url: api.List,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
|
||||
export function statistics (parameter) {
|
||||
return request({
|
||||
url: api.Statistics,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
const api = {
|
||||
Details: '/api/live/Details',
|
||||
Schedules: '/api/live/Schedules',
|
||||
Rooms: '/api/live/Rooms',
|
||||
}
|
||||
|
||||
export function getRooms () {
|
||||
return request({
|
||||
url: api.Rooms,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
export function getSchedules () {
|
||||
return request({
|
||||
url: api.Schedules,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
export function getDetails (parameter) {
|
||||
return request({
|
||||
url: api.Details,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
const api = {
|
||||
AgentConfig: '/api/Wework/AgentConfig',
|
||||
}
|
||||
|
||||
export function getAgentConfig (parameter) {
|
||||
return request({
|
||||
url: api.AgentConfig,
|
||||
method: 'get',
|
||||
params: parameter
|
||||
})
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 396 B |
Binary file not shown.
|
After Width: | Height: | Size: 685 B |
|
|
@ -0,0 +1,229 @@
|
|||
html {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
html {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
position: relative;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
body {
|
||||
margin-bottom: 60px;
|
||||
width: 100%;
|
||||
max-width: 750px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
#app {
|
||||
position: relative;
|
||||
height: calc(var(--vh) * 100);
|
||||
font-size: 0;
|
||||
}
|
||||
[v-cloak] {
|
||||
display: none
|
||||
}
|
||||
|
||||
:root {
|
||||
--vh: 1vh;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 1.28rem;
|
||||
padding: 0 .3rem;
|
||||
box-sizing: border-box;
|
||||
background: #F8F8F8;
|
||||
}
|
||||
|
||||
.head span:first-child {
|
||||
color: #999;
|
||||
font-size: .32rem;
|
||||
font-weight: 500;
|
||||
margin-right: .7rem;
|
||||
}
|
||||
|
||||
.head span:last-child {
|
||||
color: #333;
|
||||
font-size: .36rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.tabs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 1.18rem;
|
||||
padding: 0 .38rem;
|
||||
font-size: .36rem;
|
||||
color: #999;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.tab {
|
||||
display: inline-block;
|
||||
height: .66rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tab:first-child {
|
||||
margin-right: .3rem;
|
||||
}
|
||||
|
||||
.active {
|
||||
position: relative;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.active::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
display: inline-block;
|
||||
width: .7rem;
|
||||
height: .08rem;
|
||||
background: #1890FF;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.amount {
|
||||
font-weight: 400;
|
||||
color: #EC2F37;
|
||||
}
|
||||
|
||||
.details {
|
||||
display: inline-block;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.details > p {
|
||||
flex: 1;
|
||||
font-size: .28rem;
|
||||
color: #EC2F37;
|
||||
}
|
||||
|
||||
.content {
|
||||
margin: .2rem .38rem 0;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.item-title {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.item-title > span {
|
||||
font-size: 0.28rem;
|
||||
margin-right: .2rem;
|
||||
}
|
||||
|
||||
.title-time {
|
||||
display: inline-block;
|
||||
font-size: 0.32rem;
|
||||
margin-right: .2rem;
|
||||
}
|
||||
|
||||
.item-head {
|
||||
margin-bottom: .1rem;
|
||||
display: flex;
|
||||
}
|
||||
.item-head > span > img {
|
||||
width: 0.28rem;
|
||||
}
|
||||
.item-head > span {
|
||||
margin: 0.2rem;
|
||||
font-size: .28rem;
|
||||
color: #EC2F37;
|
||||
}
|
||||
|
||||
.item-head > .time {
|
||||
display: inline-block;
|
||||
font-size: .28rem;
|
||||
color: #EC2F37;
|
||||
margin: auto 0;
|
||||
font-weight: bold;
|
||||
}
|
||||
.item-head > .contentIcon {
|
||||
display: flex;
|
||||
margin: auto 0.2rem auto 0.05rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
.info-box {
|
||||
position: relative;
|
||||
padding: 0 0 .1rem .4rem;
|
||||
margin-bottom: .4rem;
|
||||
}
|
||||
|
||||
.info-box::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: .18rem;
|
||||
display: inline-block;
|
||||
width: .01rem;
|
||||
height: 100%;
|
||||
background-color: #d9d6d6;
|
||||
}
|
||||
.remarks {
|
||||
font-size: .20rem;
|
||||
color: #333;
|
||||
text-align: justify;
|
||||
word-break: break-all;
|
||||
}
|
||||
.remarks > p {
|
||||
margin-top: 5px;
|
||||
}
|
||||
.sign-way {
|
||||
font-size: .16rem;
|
||||
color: #999;
|
||||
margin-top: 5px;
|
||||
font-weight: normal;
|
||||
}
|
||||
.keyword {
|
||||
color: #ff0000 !important;
|
||||
text-decoration: underline
|
||||
}
|
||||
.tag {
|
||||
margin-right: 10px;
|
||||
margin-top: 7px;
|
||||
background-color: #f4f7ff;
|
||||
color: #999 !important;
|
||||
border: aliceblue;
|
||||
cursor: pointer !important;
|
||||
}
|
||||
.tag-click {
|
||||
margin-right: 10px;
|
||||
margin-top: 7px;
|
||||
background-color: #1890FF !important;
|
||||
color: white !important;
|
||||
border: aliceblue;
|
||||
cursor: pointer !important;
|
||||
}
|
||||
.wrapper {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.block {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
import { createApp } from 'vue';
|
||||
import App from './App.vue';
|
||||
import router from './router/index'
|
||||
import { Toast } from 'vant';
|
||||
|
||||
createApp(App).use(router).use(Toast).mount('#app');
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
import {createRouter, createWebHistory} from 'vue-router'
|
||||
|
||||
const routes = [
|
||||
{
|
||||
path: '/',
|
||||
name: 'Home',
|
||||
component: () => import('@/views/Index.vue'),
|
||||
meta: {
|
||||
title: '重要线索'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/customer/risk',
|
||||
name: 'Risk',
|
||||
component: () => import('@/views/customer/risk.vue'),
|
||||
meta: {
|
||||
title: '潜在风险'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/wx/openchat',
|
||||
name: 'openchat',
|
||||
component: () => import('@/views/wx/openchat.vue'),
|
||||
meta: {
|
||||
title: '打开聊天'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/customer/liveStreamsDetail',
|
||||
name: 'liveStreamsDetail',
|
||||
component: () => import('@/views/customer/liveStreamsDetail.vue'),
|
||||
meta: {
|
||||
title: '直播间互动详情'
|
||||
}
|
||||
},
|
||||
]
|
||||
|
||||
const router = createRouter({
|
||||
history: createWebHistory(),
|
||||
routes
|
||||
})
|
||||
|
||||
export default router
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
import { mapState } from 'vuex'
|
||||
|
||||
const baseMixin = {
|
||||
computed: {
|
||||
...mapState({
|
||||
layout: state => state.app.layout,
|
||||
navTheme: state => state.app.theme,
|
||||
primaryColor: state => state.app.color,
|
||||
colorWeak: state => state.app.weak,
|
||||
fixedHeader: state => state.app.fixedHeader,
|
||||
fixedSidebar: state => state.app.fixedSidebar,
|
||||
contentWidth: state => state.app.contentWidth,
|
||||
autoHideHeader: state => state.app.autoHideHeader,
|
||||
|
||||
isMobile: state => state.app.isMobile,
|
||||
sideCollapsed: state => state.app.sideCollapsed,
|
||||
multiTab: state => state.app.multiTab
|
||||
}),
|
||||
isTopMenu () {
|
||||
return this.layout === 'topmenu'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
isSideMenu () {
|
||||
return !this.isTopMenu
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export {
|
||||
baseMixin
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import { mapState } from 'vuex'
|
||||
|
||||
const deviceMixin = {
|
||||
computed: {
|
||||
...mapState({
|
||||
isMobile: state => state.app.isMobile
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
export { deviceMixin }
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
const getters = {
|
||||
isMobile: state => state.app.isMobile,
|
||||
lang: state => state.app.lang,
|
||||
theme: state => state.app.theme,
|
||||
color: state => state.app.color,
|
||||
token: state => state.user.token,
|
||||
avatar: state => state.user.avatar,
|
||||
nickname: state => state.user.name,
|
||||
welcome: state => state.user.welcome,
|
||||
roles: state => state.user.roles,
|
||||
userInfo: state => state.user.info,
|
||||
addRouters: state => state.permission.addRouters,
|
||||
multiTab: state => state.app.multiTab
|
||||
}
|
||||
|
||||
export default getters
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
import { mapState } from 'vuex'
|
||||
|
||||
const i18nMixin = {
|
||||
computed: {
|
||||
...mapState({
|
||||
currentLang: state => state.app.lang
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
setLang (lang) {
|
||||
this.$store.dispatch('setLang', lang)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default i18nMixin
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
import Vue from 'vue'
|
||||
import Vuex from 'vuex'
|
||||
|
||||
//import app from './modules/app'
|
||||
//import user from './modules/user'
|
||||
|
||||
// default router permission control
|
||||
// 默认路由模式为静态路由 (router.config.js)
|
||||
// import permission from './modules/static-router'
|
||||
|
||||
// dynamic router permission control (Experimental)
|
||||
// 动态路由模式(api请求后端生成)
|
||||
// import permission from './modules/async-router'
|
||||
|
||||
import getters from './getters'
|
||||
|
||||
Vue.use(Vuex)
|
||||
|
||||
export default new Vuex.Store({
|
||||
modules: {
|
||||
},
|
||||
state: {},
|
||||
mutations: {},
|
||||
actions: {},
|
||||
getters
|
||||
})
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
import storage from 'store'
|
||||
import {
|
||||
SIDEBAR_TYPE,
|
||||
TOGGLE_MOBILE_TYPE,
|
||||
TOGGLE_NAV_THEME,
|
||||
TOGGLE_LAYOUT,
|
||||
TOGGLE_FIXED_HEADER,
|
||||
TOGGLE_FIXED_SIDEBAR,
|
||||
TOGGLE_CONTENT_WIDTH,
|
||||
TOGGLE_HIDE_HEADER,
|
||||
TOGGLE_COLOR,
|
||||
TOGGLE_WEAK,
|
||||
TOGGLE_MULTI_TAB,
|
||||
// i18n
|
||||
APP_LANGUAGE
|
||||
} from '@/store/mutation-types'
|
||||
import { loadLanguageAsync } from '@/locales'
|
||||
|
||||
const app = {
|
||||
state: {
|
||||
sideCollapsed: false,
|
||||
isMobile: false,
|
||||
theme: 'dark',
|
||||
layout: '',
|
||||
contentWidth: '',
|
||||
fixedHeader: false,
|
||||
fixedSidebar: false,
|
||||
autoHideHeader: false,
|
||||
color: '',
|
||||
weak: false,
|
||||
multiTab: true,
|
||||
lang: 'zh-CN',
|
||||
_antLocale: {}
|
||||
},
|
||||
mutations: {
|
||||
[SIDEBAR_TYPE]: (state, type) => {
|
||||
state.sideCollapsed = type
|
||||
storage.set(SIDEBAR_TYPE, type)
|
||||
},
|
||||
[TOGGLE_MOBILE_TYPE]: (state, isMobile) => {
|
||||
state.isMobile = isMobile
|
||||
},
|
||||
[TOGGLE_NAV_THEME]: (state, theme) => {
|
||||
state.theme = theme
|
||||
storage.set(TOGGLE_NAV_THEME, theme)
|
||||
},
|
||||
[TOGGLE_LAYOUT]: (state, mode) => {
|
||||
state.layout = mode
|
||||
storage.set(TOGGLE_LAYOUT, mode)
|
||||
},
|
||||
[TOGGLE_FIXED_HEADER]: (state, mode) => {
|
||||
state.fixedHeader = mode
|
||||
storage.set(TOGGLE_FIXED_HEADER, mode)
|
||||
},
|
||||
[TOGGLE_FIXED_SIDEBAR]: (state, mode) => {
|
||||
state.fixedSidebar = mode
|
||||
storage.set(TOGGLE_FIXED_SIDEBAR, mode)
|
||||
},
|
||||
[TOGGLE_CONTENT_WIDTH]: (state, type) => {
|
||||
state.contentWidth = type
|
||||
storage.set(TOGGLE_CONTENT_WIDTH, type)
|
||||
},
|
||||
[TOGGLE_HIDE_HEADER]: (state, type) => {
|
||||
state.autoHideHeader = type
|
||||
storage.set(TOGGLE_HIDE_HEADER, type)
|
||||
},
|
||||
[TOGGLE_COLOR]: (state, color) => {
|
||||
state.color = color
|
||||
storage.set(TOGGLE_COLOR, color)
|
||||
},
|
||||
[TOGGLE_WEAK]: (state, mode) => {
|
||||
state.weak = mode
|
||||
storage.set(TOGGLE_WEAK, mode)
|
||||
},
|
||||
[APP_LANGUAGE]: (state, lang, antd = {}) => {
|
||||
state.lang = lang
|
||||
state._antLocale = antd
|
||||
storage.set(APP_LANGUAGE, lang)
|
||||
},
|
||||
[TOGGLE_MULTI_TAB]: (state, bool) => {
|
||||
storage.set(TOGGLE_MULTI_TAB, bool)
|
||||
state.multiTab = bool
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
setLang ({ commit }, lang) {
|
||||
return new Promise((resolve, reject) => {
|
||||
commit(APP_LANGUAGE, lang)
|
||||
loadLanguageAsync(lang).then(() => {
|
||||
resolve()
|
||||
}).catch((e) => {
|
||||
reject(e)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default app
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* 向后端请求用户的菜单,动态生成路由
|
||||
*/
|
||||
import { constantRouterMap } from '@/config/router.config'
|
||||
import { generatorDynamicRouter } from '@/router/generator-routers'
|
||||
|
||||
const permission = {
|
||||
state: {
|
||||
routers: constantRouterMap,
|
||||
addRouters: []
|
||||
},
|
||||
mutations: {
|
||||
SET_ROUTERS: (state, routers) => {
|
||||
state.addRouters = routers
|
||||
state.routers = constantRouterMap.concat(routers)
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
GenerateRoutes ({ commit }, data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const { token } = data
|
||||
generatorDynamicRouter(token).then(routers => {
|
||||
commit('SET_ROUTERS', routers)
|
||||
resolve()
|
||||
}).catch(e => {
|
||||
reject(e)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default permission
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
import { asyncRouterMap, constantRouterMap } from '@/config/router.config'
|
||||
import cloneDeep from 'lodash.clonedeep'
|
||||
|
||||
/**
|
||||
* 过滤账户是否拥有某一个权限,并将菜单从加载列表移除
|
||||
*
|
||||
* @param permission
|
||||
* @param route
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function hasPermission (permission, route) {
|
||||
if (route.meta && route.meta.permission) {
|
||||
if (permission === undefined) {
|
||||
return false
|
||||
}
|
||||
for (let i = 0, len = permission.length; i < len; i++) {
|
||||
for (let j = 0, len2 = route.meta.permission.length; j < len2; j++) {
|
||||
var p = permission[i]
|
||||
var p2 = route.meta.permission[j]
|
||||
if (p.toLowerCase() === p2.toLowerCase()) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
* 单账户多角色时,使用该方法可过滤角色不存在的菜单
|
||||
*
|
||||
* @param roles
|
||||
* @param route
|
||||
* @returns {*}
|
||||
*/
|
||||
// eslint-disable-next-line
|
||||
function hasRole(roles, route) {
|
||||
if (route.meta && route.meta.roles) {
|
||||
return route.meta.roles.includes(roles.id)
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
function filterAsyncRouter (routerMap, role) {
|
||||
const accessedRouters = routerMap.filter(route => {
|
||||
var yes = hasPermission(role.permissionList, route)
|
||||
if (yes) {
|
||||
if (route.children && route.children.length) {
|
||||
route.children = filterAsyncRouter(route.children, role)
|
||||
}
|
||||
return true
|
||||
}
|
||||
return false
|
||||
})
|
||||
return accessedRouters
|
||||
}
|
||||
|
||||
const permission = {
|
||||
state: {
|
||||
routers: constantRouterMap,
|
||||
addRouters: []
|
||||
},
|
||||
mutations: {
|
||||
SET_ROUTERS: (state, routers) => {
|
||||
state.addRouters = routers
|
||||
state.routers = constantRouterMap.concat(routers)
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
GenerateRoutes ({ commit }, data) {
|
||||
return new Promise(resolve => {
|
||||
const { role } = data
|
||||
const routerMap = cloneDeep(asyncRouterMap)
|
||||
const accessedRouters = filterAsyncRouter(routerMap, role)
|
||||
commit('SET_ROUTERS', accessedRouters)
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default permission
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
import storage from 'store'
|
||||
import expirePlugin from 'store/plugins/expire'
|
||||
import { login, getInfo, logout } from '@/api/login'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import { welcome } from '@/utils/util'
|
||||
|
||||
storage.addPlugin(expirePlugin)
|
||||
const user = {
|
||||
state: {
|
||||
token: '',
|
||||
name: '',
|
||||
welcome: '',
|
||||
avatar: '',
|
||||
roles: [],
|
||||
info: {}
|
||||
},
|
||||
|
||||
mutations: {
|
||||
SET_TOKEN: (state, token) => {
|
||||
state.token = token
|
||||
},
|
||||
SET_NAME: (state, { name, welcome }) => {
|
||||
state.name = name
|
||||
state.welcome = welcome
|
||||
},
|
||||
SET_AVATAR: (state, avatar) => {
|
||||
state.avatar = avatar
|
||||
},
|
||||
SET_ROLES: (state, roles) => {
|
||||
state.roles = roles
|
||||
},
|
||||
SET_INFO: (state, info) => {
|
||||
state.info = info
|
||||
}
|
||||
},
|
||||
|
||||
actions: {
|
||||
// 登录
|
||||
Login ({ commit }, userInfo) {
|
||||
return new Promise((resolve, reject) => {
|
||||
login(userInfo).then(response => {
|
||||
if (response.data) {
|
||||
storage.set(ACCESS_TOKEN, response.data, new Date().getTime() + 7 * 24 * 60 * 60 * 1000)
|
||||
commit('SET_TOKEN', response.data)
|
||||
}
|
||||
resolve(response)
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// 获取用户信息
|
||||
GetInfo ({ commit }) {
|
||||
return new Promise((resolve, reject) => {
|
||||
// 请求后端获取用户信息 /api/user/info
|
||||
getInfo().then(response => {
|
||||
const result = response
|
||||
if (result.data && result.data.Permissions.length > 0) {
|
||||
var parts = result.data.Permissions.split(',')
|
||||
for (var i = parts.length - 1; i >= 0; i--) {
|
||||
if (parts[i].length === 0) {
|
||||
parts.slice(i, 1)
|
||||
}
|
||||
}
|
||||
const role = { }
|
||||
role.permissions = parts
|
||||
role.permissionList = parts
|
||||
// 覆盖响应体的 role, 供下游使用
|
||||
result.role = role
|
||||
|
||||
commit('SET_ROLES', role)
|
||||
commit('SET_INFO', result)
|
||||
commit('SET_NAME', { name: result.name, welcome: welcome() })
|
||||
commit('SET_AVATAR', result.avatar)
|
||||
// 下游
|
||||
resolve(result)
|
||||
} else {
|
||||
reject(new Error('getInfo: roles must be a non-null array !'))
|
||||
}
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// 登出
|
||||
Logout ({ commit, state }) {
|
||||
return new Promise((resolve) => {
|
||||
logout(state.token).then(() => {
|
||||
commit('SET_TOKEN', '')
|
||||
commit('SET_ROLES', [])
|
||||
storage.remove(ACCESS_TOKEN)
|
||||
resolve()
|
||||
}).catch((err) => {
|
||||
console.log('logout fail:', err)
|
||||
// resolve()
|
||||
}).finally(() => {
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
export default user
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
export const ACCESS_TOKEN = '__admin_token__'
|
||||
|
||||
export const SIDEBAR_TYPE = 'sidebar_type'
|
||||
export const TOGGLE_MOBILE_TYPE = 'is_mobile'
|
||||
export const TOGGLE_NAV_THEME = 'nav_theme'
|
||||
export const TOGGLE_LAYOUT = 'layout'
|
||||
export const TOGGLE_FIXED_HEADER = 'fixed_header'
|
||||
export const TOGGLE_FIXED_SIDEBAR = 'fixed_sidebar'
|
||||
export const TOGGLE_CONTENT_WIDTH = 'content_width'
|
||||
export const TOGGLE_HIDE_HEADER = 'auto_hide_header'
|
||||
export const TOGGLE_COLOR = 'color'
|
||||
export const TOGGLE_WEAK = 'weak'
|
||||
export const TOGGLE_MULTI_TAB = 'multi_tab'
|
||||
export const APP_LANGUAGE = 'app_language'
|
||||
|
||||
export const CONTENT_WIDTH_TYPE = {
|
||||
Fluid: 'Fluid',
|
||||
Fixed: 'Fixed'
|
||||
}
|
||||
|
||||
export const NAV_THEME = {
|
||||
LIGHT: 'light',
|
||||
DARK: 'dark'
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
const VueAxios = {
|
||||
vm: {},
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
install (Vue, instance) {
|
||||
if (this.installed) {
|
||||
return
|
||||
}
|
||||
this.installed = true
|
||||
|
||||
if (!instance) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error('You have to install axios')
|
||||
return
|
||||
}
|
||||
|
||||
Vue.axios = instance
|
||||
|
||||
Object.defineProperties(Vue.prototype, {
|
||||
axios: {
|
||||
get: function get () {
|
||||
return instance
|
||||
}
|
||||
},
|
||||
$http: {
|
||||
get: function get () {
|
||||
return instance
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
export {
|
||||
VueAxios
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
import axios from 'axios'
|
||||
import storage from 'store'
|
||||
import { VueAxios } from './axios'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import { Toast } from 'vant';
|
||||
|
||||
// 创建 axios 实例
|
||||
const request = axios.create({
|
||||
// API 请求的默认前缀
|
||||
baseURL: import.meta.env.VUE_APP_API_BASE_URL,
|
||||
timeout: 60000 // 请求超时时间
|
||||
})
|
||||
|
||||
// 异常拦截处理器
|
||||
const errorHandler = (error) => {
|
||||
console.log(error)
|
||||
if (error.response) {
|
||||
const data = error.response.data
|
||||
// 从 localstorage 获取 token
|
||||
const token = storage.get(ACCESS_TOKEN)
|
||||
if (error.response.status === 403) {
|
||||
Toast.fail(data.message)
|
||||
}
|
||||
if (error.response.status === 401 && !(data.result)) {
|
||||
Toast.fail('Authorization verification failed')
|
||||
if (token) {
|
||||
setTimeout(() => {
|
||||
window.location.reload()
|
||||
}, 1500)
|
||||
}
|
||||
}
|
||||
}
|
||||
return Promise.reject(error)
|
||||
}
|
||||
|
||||
// request interceptor
|
||||
request.interceptors.request.use(config => {
|
||||
const token = storage.get(ACCESS_TOKEN)
|
||||
// 如果 token 存在
|
||||
// 让每个请求携带自定义 token 请根据实际情况自行修改
|
||||
if (token) {
|
||||
config.headers['Authorization'] = token
|
||||
}
|
||||
return config
|
||||
}, errorHandler)
|
||||
|
||||
// response interceptor
|
||||
request.interceptors.response.use((response) => {
|
||||
return response.data
|
||||
}, errorHandler)
|
||||
|
||||
const installer = {
|
||||
vm: {},
|
||||
install (Vue) {
|
||||
Vue.use(VueAxios, request)
|
||||
}
|
||||
}
|
||||
|
||||
export default request
|
||||
|
||||
export {
|
||||
installer as VueAxios,
|
||||
request as axios
|
||||
}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
export function timeFix () {
|
||||
const time = new Date()
|
||||
const hour = time.getHours()
|
||||
return hour < 9 ? '早上好' : hour <= 11 ? '上午好' : hour <= 13 ? '中午好' : hour < 20 ? '下午好' : '晚上好'
|
||||
}
|
||||
|
||||
export function welcome () {
|
||||
const arr = ['休息一会儿吧', '准备吃什么呢?', '要不要打一把 DOTA', '我猜你可能累了']
|
||||
const index = Math.floor(Math.random() * arr.length)
|
||||
return arr[index]
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发 window.resize
|
||||
*/
|
||||
export function triggerWindowResizeEvent () {
|
||||
const event = document.createEvent('HTMLEvents')
|
||||
event.initEvent('resize', true, true)
|
||||
event.eventType = 'message'
|
||||
window.dispatchEvent(event)
|
||||
}
|
||||
|
||||
export function handleScrollHeader (callback) {
|
||||
let timer = 0
|
||||
|
||||
let beforeScrollTop = window.pageYOffset
|
||||
callback = callback || function () {}
|
||||
window.addEventListener(
|
||||
'scroll',
|
||||
event => {
|
||||
clearTimeout(timer)
|
||||
timer = setTimeout(() => {
|
||||
let direction = 'up'
|
||||
const afterScrollTop = window.pageYOffset
|
||||
const delta = afterScrollTop - beforeScrollTop
|
||||
if (delta === 0) {
|
||||
return false
|
||||
}
|
||||
direction = delta > 0 ? 'down' : 'up'
|
||||
callback(direction)
|
||||
beforeScrollTop = afterScrollTop
|
||||
}, 50)
|
||||
},
|
||||
false
|
||||
)
|
||||
}
|
||||
|
||||
export function isIE () {
|
||||
const bw = window.navigator.userAgent
|
||||
const compare = (s) => bw.indexOf(s) >= 0
|
||||
const ie11 = (() => 'ActiveXObject' in window)()
|
||||
return compare('MSIE') || ie11
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove loading animate
|
||||
* @param id parent element id or class
|
||||
* @param timeout
|
||||
*/
|
||||
export function removeLoadingAnimate (id = '', timeout = 1500) {
|
||||
if (id === '') {
|
||||
return
|
||||
}
|
||||
setTimeout(() => {
|
||||
document.body.removeChild(document.getElementById(id))
|
||||
}, timeout)
|
||||
}
|
||||
export function scorePassword (pass) {
|
||||
let score = 0
|
||||
if (!pass) {
|
||||
return score
|
||||
}
|
||||
// award every unique letter until 5 repetitions
|
||||
const letters = {}
|
||||
for (let i = 0; i < pass.length; i++) {
|
||||
letters[pass[i]] = (letters[pass[i]] || 0) + 1
|
||||
score += 5.0 / letters[pass[i]]
|
||||
}
|
||||
|
||||
// bonus points for mixing it up
|
||||
const variations = {
|
||||
digits: /\d/.test(pass),
|
||||
lower: /[a-z]/.test(pass),
|
||||
upper: /[A-Z]/.test(pass),
|
||||
nonWords: /\W/.test(pass)
|
||||
}
|
||||
|
||||
let variationCount = 0
|
||||
for (var check in variations) {
|
||||
variationCount += (variations[check] === true) ? 1 : 0
|
||||
}
|
||||
score += (variationCount - 1) * 10
|
||||
|
||||
return parseInt(score)
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import wx from 'weixin-js-sdk'
|
||||
|
||||
const plugin = {
|
||||
install(Vue) {
|
||||
Vue.wechat = wx
|
||||
},
|
||||
$wechat: wx
|
||||
}
|
||||
|
||||
export default plugin
|
||||
export const install = plugin.install
|
||||
|
|
@ -0,0 +1,114 @@
|
|||
<link rel="stylesheet" href="@/assets/style/common.less">
|
||||
<template>
|
||||
<div class="main">
|
||||
<div class="content">
|
||||
<van-pull-refresh :v-mode="refreshing" @refresh="onRefresh">
|
||||
<div class="details">
|
||||
<van-tag v-for="detail in details" :round="false" type="primary" @click="onDetailClick(detail)" plain size="large" :class="detail.click? 'tag-click': 'tag'">{{ detail.count + '次 ' + detail.eventName }}</van-tag>
|
||||
</div>
|
||||
<van-list
|
||||
v-model:loading="loading"
|
||||
:finished="finished"
|
||||
finished-text="没有更多了"
|
||||
@load="onLoad"
|
||||
:disabled="true"
|
||||
loading-text="加载中..."
|
||||
>
|
||||
<van-skeleton title avatar :row="3" :loading="loading">
|
||||
<div class="item" v-for="(sidebar, index) in sidebars">
|
||||
<div class="item-head">
|
||||
<span class="contentIcon"><img :src="iconImage" alt=""> </span>
|
||||
<span class="time">{{ sidebar.content }}</span>
|
||||
</div>
|
||||
<div class="info-box">
|
||||
<div class="remarks">
|
||||
<p>{{ sidebar.eventname }} {{ sidebar.scenetypename }} {{ sidebar.sceneidname }}</p>
|
||||
<p>{{ sidebar.deptname }}</p>
|
||||
</div>
|
||||
<div class="remarks sign-way">{{ sidebar.actTime }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-skeleton>
|
||||
</van-list>
|
||||
</van-pull-refresh>
|
||||
<van-back-top right="8vw" bottom="3vh" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
@import url("@/assets/style/common.less");
|
||||
</style>
|
||||
<script>
|
||||
import iconImage from '@/assets/images/cr2.png'
|
||||
import { list, statistics } from '@/api/importanceItem'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
iconImage,
|
||||
loading: false,
|
||||
finished: false,
|
||||
refreshing: false,
|
||||
request: {
|
||||
},
|
||||
sidebars: [],
|
||||
details: []
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.initRequest()
|
||||
this.onLoad()
|
||||
this.onLoadStatistics()
|
||||
},
|
||||
methods: {
|
||||
initRequest(){
|
||||
let geturl = window.location.href
|
||||
let getqyinfo = geturl.split('?')[1]
|
||||
let getqys = new URLSearchParams('?'+getqyinfo)
|
||||
this.request.resid = getqys.get('resid')
|
||||
this.request.uid = getqys.get('uid')
|
||||
this.request.appid = getqys.get('appid')
|
||||
this.request.appuserid = getqys.get('appuserid')
|
||||
},
|
||||
onDetailClick(detail){
|
||||
if(!detail.click) {
|
||||
this.details.forEach(x => x.click = false)
|
||||
detail.click = true
|
||||
this.request.eventid = detail.eventid;
|
||||
this.onLoad();
|
||||
} else {
|
||||
this.details.forEach(x => x.click = false)
|
||||
detail.click = false
|
||||
this.request.eventid = null;
|
||||
this.onLoad();
|
||||
}
|
||||
},
|
||||
onRefresh(){
|
||||
this.onLoad();
|
||||
},
|
||||
onLoad() {
|
||||
this.loading = true;
|
||||
this.finished = false;
|
||||
// 加载数据
|
||||
list(this.request).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.sidebars = res.data;
|
||||
this.refreshing = false;
|
||||
this.loading = false;
|
||||
this.finished = true;
|
||||
}
|
||||
})
|
||||
},
|
||||
onLoadStatistics(){
|
||||
statistics(this.request).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.details = res.data;
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,147 @@
|
|||
<script>
|
||||
import iconImage from '@/assets/images/cr2.png'
|
||||
import { showToast, showSuccessToast, showFailToast } from "vant";
|
||||
import { ref } from 'vue';
|
||||
import 'vant/es/toast/style';
|
||||
import { getRooms, getDetails, getSchedules } from '@/api/live'
|
||||
export default {
|
||||
setup() {
|
||||
const onClickLeft = () => history.back();
|
||||
const refreshing = ref(false);
|
||||
const loading = ref(false);
|
||||
const finished = ref(false);
|
||||
const rooms = ref([]);
|
||||
const schedules = ref([]);
|
||||
const list = ref([]);
|
||||
const from = ref({
|
||||
roomid: null,
|
||||
scheduleid: null,
|
||||
appid: '',
|
||||
appuserid: '',
|
||||
msg: ''
|
||||
});
|
||||
|
||||
const onLoad = () => {
|
||||
loading.value = true
|
||||
let url = window.location.href
|
||||
let info = url.split('?')[1]
|
||||
let parameter = new URLSearchParams('?'+info)
|
||||
from.value.appid = parameter.get('appid')
|
||||
from.value.appuserid = parameter.get('appuserid')
|
||||
from.value.roomid = parameter.get('roomid')
|
||||
from.value.scheduleid = parameter.get('scheduleid')
|
||||
getDetails(from.value).then(res => {
|
||||
list.value = res.data
|
||||
loading.value = false
|
||||
})
|
||||
}
|
||||
const onRefresh = () => {
|
||||
onLoad();
|
||||
}
|
||||
onRefresh();
|
||||
|
||||
const onClickButton = () => showToast(from.value.content);
|
||||
return {
|
||||
from,
|
||||
iconImage,
|
||||
loading,
|
||||
refreshing,
|
||||
finished,
|
||||
onRefresh,
|
||||
onLoad,
|
||||
onClickButton,
|
||||
list,
|
||||
rooms,
|
||||
schedules,
|
||||
onClickLeft,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<link rel="stylesheet" href="@/assets/style/common.less">
|
||||
<template>
|
||||
<div class="main">
|
||||
<van-overlay :show="loading">
|
||||
<div class="wrapper" @click.stop>
|
||||
<div class="block">
|
||||
<van-loading color="#0094ff" vertical>加载中...</van-loading>
|
||||
</div>
|
||||
</div>
|
||||
</van-overlay>
|
||||
<van-nav-bar
|
||||
title="直播间互动详情"
|
||||
left-text="返回"
|
||||
left-arrow
|
||||
@click-left="onClickLeft"
|
||||
/>
|
||||
<van-pull-refresh :v-mode="refreshing" @refresh="onRefresh">
|
||||
<div>
|
||||
<van-search
|
||||
v-model:model-value="from.msg"
|
||||
show-action
|
||||
placeholder="请输入用户发送内容进行检索"
|
||||
@search="onLoad"
|
||||
:clearable="false"
|
||||
>
|
||||
<template #action>
|
||||
<div class="searchButton" @click="onLoad">搜索</div>
|
||||
</template>
|
||||
</van-search>
|
||||
</div>
|
||||
<div class="content">
|
||||
<van-list
|
||||
v-model:loading="loading"
|
||||
:finished="finished"
|
||||
finished-text="没有更多了"
|
||||
@load="onLoad"
|
||||
:disabled="true"
|
||||
loading-text="加载中..."
|
||||
>
|
||||
<van-skeleton title avatar :row="3" :loading="loading">
|
||||
<div class="item" v-for="(item, index) in list">
|
||||
<div class="item-head">
|
||||
<span class="contentIcon"><img :src="iconImage" alt=""> {{ item.msg }}</span>
|
||||
<span class="time">{{ item.msgtime }}</span>
|
||||
</div>
|
||||
<div class="info-box">
|
||||
<div class="remarks">
|
||||
<p>信息类型: {{item.msgtypeStr}}</p>
|
||||
<p>课程: {{item.schedulesTitle}}</p>
|
||||
<p>营销类型: {{item.marketingtypeStr}}</p>
|
||||
<p>直播间: {{item.liveTitle}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-skeleton>
|
||||
</van-list>
|
||||
<van-back-top right="8vw" bottom="3vh" />
|
||||
</div>
|
||||
</van-pull-refresh>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
.searchButton {
|
||||
width: 4em;
|
||||
text-align: center;
|
||||
border: 1px solid var(--van-cell-right-icon-color);
|
||||
border-radius: 8px;
|
||||
line-height: 2.3em;
|
||||
}
|
||||
.fromSelect {
|
||||
width: 100%;
|
||||
border: 1px solid var(--van-cell-right-icon-color);
|
||||
border-radius: 4px;
|
||||
height: 2em;
|
||||
line-height: 2em;
|
||||
}
|
||||
.time {
|
||||
color: var(--van-cell-right-icon-color);
|
||||
font-weight: 100;
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
}
|
||||
.contentIcon {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,300 @@
|
|||
<link rel="stylesheet" href="@/assets/style/common.less">
|
||||
<template>
|
||||
<div v-if="error">
|
||||
页面加载错误!
|
||||
</div>
|
||||
<div v-else class="main">
|
||||
<div class="content">
|
||||
<van-overlay :show="loading">
|
||||
<div class="wrapper" @click.stop>
|
||||
<div class="block">
|
||||
<van-loading color="#0094ff" vertical>加载中...</van-loading>
|
||||
</div>
|
||||
</div>
|
||||
</van-overlay>
|
||||
<van-pull-refresh :v-mode="refreshing" @refresh="init">
|
||||
<van-skeleton title avatar :row="3" :loading="loading">
|
||||
<input type="hidden" :value="model.id">
|
||||
<div class="infoRecord">
|
||||
<div style="width: 100%;">状态:{{model.statusStr}}</div>
|
||||
<div style="display:flex;width: 75px;">
|
||||
<van-button icon="plus" type="primary" plain size="mini" @click="addComplaintDetail" >修改</van-button>
|
||||
</div>
|
||||
</div>
|
||||
<van-tabs v-model:active="tabs">
|
||||
<van-tab title="风险记录" name="1" style="padding: 15px 0;">
|
||||
<div v-if="model.complaintLogDetails.length === 0">暂无记录</div>
|
||||
<div v-else class="item" v-for="log in model.complaintLogDetails">
|
||||
<div class="item-head">
|
||||
<span class="contentIcon"><img src="@/assets/images/cr.png" alt=""></span>
|
||||
<div class="time">
|
||||
<span style="color: #000; font-weight: normal; margin-right: 10px;">{{ log.signTypeStr }}</span>
|
||||
<span style="color: green; margin-right: 10px;">{{log.sourceStr}}</span>
|
||||
<span style="color: #999; font-weight: normal;">{{ log.ctime }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="info-box">
|
||||
<div class="remarks">
|
||||
{{ getFullContent(log) }}
|
||||
</div>
|
||||
<div v-if="log.internalNickname && log.deptname" class="remarks sign-way">{{ log.signWayStr }}: {{ log.deptname +", "+ log.internalNickname }}</div>
|
||||
<div v-else class="remarks sign-way">{{ log.signWayStr }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-tab>
|
||||
<van-tab title="跟进情况" name="2" style="padding: 15px 0;">
|
||||
<div v-if="model.complaintFollowDetails.length === 0">暂无记录</div>
|
||||
<div v-else class="item" v-for="follow in model.complaintFollowDetails">
|
||||
<div class="item-head">
|
||||
<span class="contentIcon"><img src="@/assets/images/cr.png" alt=""></span>
|
||||
<div class="time">
|
||||
<span style="color: #000; font-weight: normal; margin-right: 10px;">{{ follow.title }}</span>
|
||||
<span style="color: #999; font-weight: normal;">{{ follow.ctime }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="info-box">
|
||||
<div class="remarks">
|
||||
{{ getFullContent(follow)}}
|
||||
</div>
|
||||
<div v-if="follow.eid && follow.deptname !== null" class="remarks sign-way">{{follow.deptname}}, {{ follow.ename }} ({{follow.eid}})</div>
|
||||
<div v-else-if="follow.eid" class="remarks sign-way">{{ follow.ename }} ({{follow.eid}})</div>
|
||||
<div v-else-if="follow.deptname === null" class="remarks sign-way">{{ follow.ename }}</div>
|
||||
<div v-else class="remarks sign-way">{{follow.deptname}}, {{follow.ename}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</van-tab>
|
||||
</van-tabs>
|
||||
</van-skeleton>
|
||||
</van-pull-refresh>
|
||||
<van-back-top right="8vw" bottom="3vh" />
|
||||
<van-dialog v-model:show="complaintShow" :before-close="beforeClose" title="跟进记录" show-cancel-button>
|
||||
<div class="complaintShow">
|
||||
<div class="radio">
|
||||
<div style="margin: 0 10px; display: flex;" v-for="status in statusEnum">
|
||||
<van-tag v-if="model.status<=status.key" :id="status.key" type="primary" plain size="large" @click="clickstatus(status.key)">
|
||||
{{ status.title }}
|
||||
</van-tag>
|
||||
</div>
|
||||
</div>
|
||||
<textarea style="margin-bottom: 10px;" cols="30" rows="10" maxlength="2000" @keyup="checkMsg()" v-model="form.content" placeholder="备注内容"></textarea>
|
||||
<p style="font-size: 14px;margin-bottom: 10px;"><span id="text-count">0</span>/2000</p>
|
||||
</div>
|
||||
</van-dialog>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
@import url("@/assets/style/common.less");
|
||||
.sign-way {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.keyword {
|
||||
color: #ff0000 !important;
|
||||
text-decoration: underline
|
||||
}
|
||||
.infoRecord {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 50px;
|
||||
background: #fafafa;
|
||||
border-radius: 2px;
|
||||
font-size: 14px;
|
||||
box-sizing: border-box;
|
||||
padding: 0 .38rem;
|
||||
}
|
||||
.amount {
|
||||
font-weight: 400;
|
||||
color: #EC2F37;
|
||||
}
|
||||
.complaintShow {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.radio {
|
||||
margin: 15px 0;
|
||||
display: flex;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import iconImage from '@/assets/images/cr2.png'
|
||||
import { detailByAppid, changeStatus } from '@/api/complaint'
|
||||
import { showSuccessToast, showFailToast } from "vant";
|
||||
import 'vant/es/toast/style';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
iconImage,
|
||||
error: false,
|
||||
loading: false,
|
||||
refreshing: false,
|
||||
tabs: '1',
|
||||
request: {
|
||||
id: 0,
|
||||
resid: '',
|
||||
deptid: 0,
|
||||
},
|
||||
complaintShow: false,
|
||||
form:{
|
||||
status: null,
|
||||
content: '',
|
||||
},
|
||||
statusEnum:[
|
||||
{ key:0, title: '待跟进'},
|
||||
{ key:1, title: '跟进中'},
|
||||
{ key:2, title: '已完结'},
|
||||
],
|
||||
model: {
|
||||
id: 0,
|
||||
statusStr: '',
|
||||
status: 0,
|
||||
complaintLogDetails: [
|
||||
{
|
||||
fullContent: '',
|
||||
signTypeStr: '',
|
||||
sourceStr: '',
|
||||
deptname: null,
|
||||
signWayStr: '',
|
||||
internalNickname: null,
|
||||
ctime: '',
|
||||
keywords: ''
|
||||
}
|
||||
],
|
||||
complaintFollowDetails: [
|
||||
{
|
||||
eid: null,
|
||||
ename: '',
|
||||
keywords: ''
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.initWindows()
|
||||
this.init()
|
||||
},
|
||||
methods: {
|
||||
init(){
|
||||
try {
|
||||
this.loading = true;
|
||||
let geturl = window.location.href
|
||||
let getqyinfo = geturl.split('?')[1]
|
||||
let getqys = new URLSearchParams('?'+getqyinfo)
|
||||
this.request.appid = getqys.get('appid')
|
||||
this.request.appuserid = getqys.get('appuserid')
|
||||
this.request.deptid = getqys.get('deptid')
|
||||
this.request.eid = getqys.get('eid')
|
||||
this.request.ename = getqys.get('ename')
|
||||
if(!this.request.appid || !this.request.appuserid || !this.request.deptid){
|
||||
this.error = true;
|
||||
}
|
||||
detailByAppid(this.request).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.model = res.data;
|
||||
} else {
|
||||
showFailToast(res.message);
|
||||
}
|
||||
this.loading = false;
|
||||
}).catch(err=>{
|
||||
console.error(err);
|
||||
this.error = true;
|
||||
this.loading = false;
|
||||
})
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
this.error = true;
|
||||
this.loading = false;
|
||||
}
|
||||
},
|
||||
clickstatus(id) {
|
||||
const tags = document.getElementsByClassName('van-tag');
|
||||
for (let i = 0; i < tags.length; i++) {
|
||||
tags[i].setAttribute("class", "van-tag van-tag--plain van-tag--large van-tag--primary");
|
||||
}
|
||||
document.getElementById(id).setAttribute("class", "van-tag van-tag--large van-tag--primary");
|
||||
this.form.status = id;
|
||||
},
|
||||
getFullContent(log){
|
||||
let fullContent = log.content;
|
||||
if(!log.keywords) {
|
||||
return fullContent;
|
||||
}
|
||||
log.keywords.split(';').forEach(x =>
|
||||
{
|
||||
fullContent = fullContent?.replace(x, "<a class='keyword'>" + x + "</a>");
|
||||
});
|
||||
return fullContent;
|
||||
},
|
||||
addComplaintDetail() {
|
||||
this.form.eid = this.request.eid;
|
||||
this.form.ename = this.request.ename;
|
||||
this.form.status = null;
|
||||
this.form.content = '';
|
||||
this.complaintShow = true;
|
||||
},
|
||||
checkMsg() {
|
||||
if (this.form.content.length > 2000) {
|
||||
showFailToast('备注内容请在2000字以内。');
|
||||
}
|
||||
document.getElementById('text-count').innerText = this.form.content.length.toString();
|
||||
},
|
||||
beforeClose (action) {
|
||||
return new Promise((resolve) => {
|
||||
this.form.id = this.model.id;
|
||||
if (action === 'confirm') {
|
||||
if (this.form.status === null) {
|
||||
showFailToast('请选择更变的状态。');
|
||||
resolve(false);
|
||||
}
|
||||
if (!this.form.content || this.form.content === '') {
|
||||
showFailToast('请输入备注。');
|
||||
resolve(false);
|
||||
}
|
||||
changeStatus(this.form).then(res => {
|
||||
if (res.code === 0) {
|
||||
showSuccessToast('提交成功!');
|
||||
this.init();
|
||||
this.tabs = '2';
|
||||
resolve(true);
|
||||
} else {
|
||||
showFailToast(res.message);
|
||||
resolve(false);
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// 拦截取消操作
|
||||
resolve(true);
|
||||
}
|
||||
});
|
||||
},
|
||||
confirm() {
|
||||
alert('test');
|
||||
},
|
||||
setViewHeight() {
|
||||
let windowVH = window.innerHeight / 100
|
||||
document.documentElement.style.setProperty('--vh', windowVH + 'px')
|
||||
},
|
||||
initWindows() {
|
||||
let i = 'orientationchange' in window ? 'orientationchange' : 'resize'
|
||||
window.addEventListener('DOMContentLoaded', this.setViewHeight())
|
||||
document.addEventListener(i, this.setViewHeight())
|
||||
|
||||
let fontSize = 100
|
||||
let docEl = document.documentElement
|
||||
let resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
|
||||
let recalc = function () {
|
||||
let clientWidth = docEl.clientWidth;
|
||||
if (!clientWidth) return;
|
||||
if (clientWidth > 750) clientWidth = 750;
|
||||
docEl.style.fontSize = (50 * (clientWidth / 375)).toFixed(1) + 'px'; fontSize = 50 * (clientWidth / 375);
|
||||
};
|
||||
if (!document.addEventListener) return;
|
||||
window.addEventListener(resizeEvt, recalc, false);
|
||||
document.addEventListener('DOMContentLoaded', recalc, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
<script>
|
||||
import { getAgentConfig } from '@/api/wxwork';
|
||||
export default {
|
||||
|
||||
data() {
|
||||
return {
|
||||
agentConfig: {
|
||||
errcode: 0,
|
||||
config: {}
|
||||
},
|
||||
request: {
|
||||
appid: 'ww89347c2378b6e050', // 东高科技
|
||||
userid: 'cairongzhi',
|
||||
agentid: 1000018,
|
||||
deptid: 23,
|
||||
eid: 4025,
|
||||
url: ''
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.openExternalUser('wm9jNKCAAA86ZW5s2uklVtYxih-6lIEA');
|
||||
},
|
||||
methods:{
|
||||
openExternalUser(appuserid) {
|
||||
console.log(appuserid, 'appuserid')
|
||||
this.request.url = window.location.href;
|
||||
//this.request.url = 'https://sys.hc.dn8188.com';
|
||||
getAgentConfig(this.request).then(res =>{
|
||||
if(res.code!==0){
|
||||
alert(res.message);
|
||||
return;
|
||||
}
|
||||
this.agentConfig = JSON.parse(res.data);
|
||||
const agentConfig = this.agentConfig;
|
||||
if (agentConfig != null && agentConfig.result && agentConfig.errcode === 0) {
|
||||
const configInfo = agentConfig.config;
|
||||
const agentConfigInfo = agentConfig.agentconfig;
|
||||
const appid = this.request.appid;
|
||||
const agentid = this.request.agentid;
|
||||
try {
|
||||
wx.config({
|
||||
beta: true,
|
||||
debug: true,
|
||||
appId: appid,
|
||||
timestamp: configInfo.timestamp,
|
||||
nonceStr: configInfo.noncestr,
|
||||
signature: configInfo.signature,
|
||||
jsApiList: ["openEnterpriseChat"],
|
||||
})
|
||||
} catch (e) {
|
||||
console.log(e)
|
||||
}
|
||||
wx.error(function (res) {
|
||||
console.log(res, 'error')
|
||||
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
|
||||
});
|
||||
wx.ready(function () {
|
||||
wx.agentConfig({
|
||||
corpid: appid,
|
||||
agentid: agentid,
|
||||
timestamp: agentConfigInfo.timestamp,
|
||||
nonceStr: agentConfigInfo.noncestr,
|
||||
signature: agentConfigInfo.signature,
|
||||
jsApiList: ["openEnterpriseChat"],
|
||||
success: function (result) {
|
||||
wx.invoke("openEnterpriseChat", {externalUserIds: appuserid}, function (res) {
|
||||
console.log(res)
|
||||
})
|
||||
},
|
||||
fail: function (res) {
|
||||
console.log(res, 'error')
|
||||
if (res.errMsg.indexOf('function not exist') > -1) {
|
||||
alert('版本过低请升级')
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
import vue from "@vitejs/plugin-vue";
|
||||
import Components from "unplugin-vue-components/vite";
|
||||
import { VantResolver } from "unplugin-vue-components/resolvers";
|
||||
import { defineConfig } from 'vite'
|
||||
|
||||
import path from 'path';
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
vue(),
|
||||
Components({
|
||||
resolvers: [VantResolver()],
|
||||
}),
|
||||
],
|
||||
resolve: {
|
||||
alias: {
|
||||
"@": path.resolve(__dirname, "src"),
|
||||
"comps": path.resolve(__dirname, "src/components"),
|
||||
},
|
||||
},
|
||||
server: {
|
||||
proxy: {
|
||||
// 接口地址代理
|
||||
'/api/Wework': {
|
||||
target: 'http://localhost:5015', // 接口的域名
|
||||
secure: false, // 如果是https接口,需要配置这个参数
|
||||
changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
|
||||
rewrite: path => path.replace(/^\/api/, '/api')
|
||||
},
|
||||
// 接口地址代理
|
||||
'/api/Complaint': {
|
||||
target: 'http://192.168.11.81:8095', // 接口的域名
|
||||
secure: false, // 如果是https接口,需要配置这个参数
|
||||
changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
|
||||
rewrite: path => path.replace(/^\/api/, '/api')
|
||||
},
|
||||
// 接口地址代理
|
||||
'/api/live': {
|
||||
target: 'http://120.77.165.155:8100', // 接口的域名
|
||||
secure: false, // 如果是https接口,需要配置这个参数
|
||||
changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
|
||||
rewrite: path => path.replace(/^\/api/, '/api')
|
||||
},
|
||||
// 接口地址代理
|
||||
'/api': {
|
||||
target: 'http://localhost:5244', // 接口的域名
|
||||
secure: false, // 如果是https接口,需要配置这个参数
|
||||
changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
|
||||
rewrite: path => path.replace(/^\/api/, '/api')
|
||||
},
|
||||
}
|
||||
},
|
||||
})
|
||||
|
|
@ -0,0 +1,870 @@
|
|||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@antfu/utils@^0.7.2":
|
||||
version "0.7.5"
|
||||
resolved "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.5.tgz#c36f37add92a7de57b9c29ae0c1f399706bff345"
|
||||
integrity sha512-dlR6LdS+0SzOAPx/TPRhnoi7hE251OVeT2Snw0RguNbBSbjUHdWr0l3vcUUDg26rEysT89kCbtw1lVorBXLLCg==
|
||||
|
||||
"@babel/parser@^7.20.15", "@babel/parser@^7.21.3":
|
||||
version "7.22.7"
|
||||
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae"
|
||||
integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==
|
||||
|
||||
"@esbuild/android-arm64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz#9e00eb6865ed5f2dbe71a1e96f2c52254cd92903"
|
||||
integrity sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==
|
||||
|
||||
"@esbuild/android-arm@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.17.tgz#1aa013b65524f4e9f794946b415b32ae963a4618"
|
||||
integrity sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==
|
||||
|
||||
"@esbuild/android-x64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.17.tgz#c2bd0469b04ded352de011fae34a7a1d4dcecb79"
|
||||
integrity sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==
|
||||
|
||||
"@esbuild/darwin-arm64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz#0c21a59cb5bd7a2cec66c7a42431dca42aefeddd"
|
||||
integrity sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==
|
||||
|
||||
"@esbuild/darwin-x64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz#92f8763ff6f97dff1c28a584da7b51b585e87a7b"
|
||||
integrity sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==
|
||||
|
||||
"@esbuild/freebsd-arm64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz#934f74bdf4022e143ba2f21d421b50fd0fead8f8"
|
||||
integrity sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==
|
||||
|
||||
"@esbuild/freebsd-x64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz#16b6e90ba26ecc865eab71c56696258ec7f5d8bf"
|
||||
integrity sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==
|
||||
|
||||
"@esbuild/linux-arm64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz#179a58e8d4c72116eb068563629349f8f4b48072"
|
||||
integrity sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==
|
||||
|
||||
"@esbuild/linux-arm@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz#9d78cf87a310ae9ed985c3915d5126578665c7b5"
|
||||
integrity sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==
|
||||
|
||||
"@esbuild/linux-ia32@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz#6fed202602d37361bca376c9d113266a722a908c"
|
||||
integrity sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==
|
||||
|
||||
"@esbuild/linux-loong64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz#cdc60304830be1e74560c704bfd72cab8a02fa06"
|
||||
integrity sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==
|
||||
|
||||
"@esbuild/linux-mips64el@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz#c367b2855bb0902f5576291a2049812af2088086"
|
||||
integrity sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==
|
||||
|
||||
"@esbuild/linux-ppc64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz#7fdc0083d42d64a4651711ee0a7964f489242f45"
|
||||
integrity sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==
|
||||
|
||||
"@esbuild/linux-riscv64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz#5198a417f3f5b86b10c95647b8bc032e5b6b2b1c"
|
||||
integrity sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==
|
||||
|
||||
"@esbuild/linux-s390x@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz#7459c2fecdee2d582f0697fb76a4041f4ad1dd1e"
|
||||
integrity sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==
|
||||
|
||||
"@esbuild/linux-x64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz#948cdbf46d81c81ebd7225a7633009bc56a4488c"
|
||||
integrity sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==
|
||||
|
||||
"@esbuild/netbsd-x64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz#6bb89668c0e093c5a575ded08e1d308bd7fd63e7"
|
||||
integrity sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==
|
||||
|
||||
"@esbuild/openbsd-x64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz#abac2ae75fef820ef6c2c48da4666d092584c79d"
|
||||
integrity sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==
|
||||
|
||||
"@esbuild/sunos-x64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz#74a45fe1db8ea96898f1a9bb401dcf1dadfc8371"
|
||||
integrity sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==
|
||||
|
||||
"@esbuild/win32-arm64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz#fd95ffd217995589058a4ed8ac17ee72a3d7f615"
|
||||
integrity sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==
|
||||
|
||||
"@esbuild/win32-ia32@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz#9b7ef5d0df97593a80f946b482e34fcba3fa4aaf"
|
||||
integrity sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==
|
||||
|
||||
"@esbuild/win32-x64@0.18.17":
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz#bcb2e042631b3c15792058e189ed879a22b2968b"
|
||||
integrity sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==
|
||||
|
||||
"@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.15":
|
||||
version "1.4.15"
|
||||
resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
|
||||
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
|
||||
integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
|
||||
dependencies:
|
||||
"@nodelib/fs.stat" "2.0.5"
|
||||
run-parallel "^1.1.9"
|
||||
|
||||
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
|
||||
version "2.0.5"
|
||||
resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
|
||||
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
|
||||
|
||||
"@nodelib/fs.walk@^1.2.3":
|
||||
version "1.2.8"
|
||||
resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
|
||||
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
|
||||
dependencies:
|
||||
"@nodelib/fs.scandir" "2.1.5"
|
||||
fastq "^1.6.0"
|
||||
|
||||
"@rollup/pluginutils@^5.0.2":
|
||||
version "5.0.2"
|
||||
resolved "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33"
|
||||
integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==
|
||||
dependencies:
|
||||
"@types/estree" "^1.0.0"
|
||||
estree-walker "^2.0.2"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
"@types/estree@^1.0.0":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194"
|
||||
integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==
|
||||
|
||||
"@vant/popperjs@^1.3.0":
|
||||
version "1.3.0"
|
||||
resolved "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz#e0eff017124b5b2352ef3b36a6df06277f4400f2"
|
||||
integrity sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==
|
||||
|
||||
"@vant/use@^1.5.1":
|
||||
version "1.5.2"
|
||||
resolved "https://registry.npmmirror.com/@vant/use/-/use-1.5.2.tgz#d1877f293e6d1a0a8428d3d3f4b587a3f745324d"
|
||||
integrity sha512-CBK61iT568dCHUwFFsErGbW6/5tmrPnZJKGtcSy7Tjcrmws8Ku+YZo7IUFD9Xkj9MfSJ4pfhQ7pU2KouP5Cojg==
|
||||
|
||||
"@vitejs/plugin-vue@^3.2.0":
|
||||
version "3.2.0"
|
||||
resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-3.2.0.tgz#a1484089dd85d6528f435743f84cdd0d215bbb54"
|
||||
integrity sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==
|
||||
|
||||
"@vue/compiler-core@3.3.4":
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128"
|
||||
integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.21.3"
|
||||
"@vue/shared" "3.3.4"
|
||||
estree-walker "^2.0.2"
|
||||
source-map-js "^1.0.2"
|
||||
|
||||
"@vue/compiler-dom@3.3.4":
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151"
|
||||
integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==
|
||||
dependencies:
|
||||
"@vue/compiler-core" "3.3.4"
|
||||
"@vue/shared" "3.3.4"
|
||||
|
||||
"@vue/compiler-sfc@3.3.4":
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df"
|
||||
integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.20.15"
|
||||
"@vue/compiler-core" "3.3.4"
|
||||
"@vue/compiler-dom" "3.3.4"
|
||||
"@vue/compiler-ssr" "3.3.4"
|
||||
"@vue/reactivity-transform" "3.3.4"
|
||||
"@vue/shared" "3.3.4"
|
||||
estree-walker "^2.0.2"
|
||||
magic-string "^0.30.0"
|
||||
postcss "^8.1.10"
|
||||
source-map-js "^1.0.2"
|
||||
|
||||
"@vue/compiler-ssr@3.3.4":
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777"
|
||||
integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==
|
||||
dependencies:
|
||||
"@vue/compiler-dom" "3.3.4"
|
||||
"@vue/shared" "3.3.4"
|
||||
|
||||
"@vue/devtools-api@^6.0.0", "@vue/devtools-api@^6.0.0-beta.11":
|
||||
version "6.5.0"
|
||||
resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07"
|
||||
integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==
|
||||
|
||||
"@vue/reactivity-transform@3.3.4":
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929"
|
||||
integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==
|
||||
dependencies:
|
||||
"@babel/parser" "^7.20.15"
|
||||
"@vue/compiler-core" "3.3.4"
|
||||
"@vue/shared" "3.3.4"
|
||||
estree-walker "^2.0.2"
|
||||
magic-string "^0.30.0"
|
||||
|
||||
"@vue/reactivity@3.3.4":
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253"
|
||||
integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==
|
||||
dependencies:
|
||||
"@vue/shared" "3.3.4"
|
||||
|
||||
"@vue/runtime-core@3.3.4":
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1"
|
||||
integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==
|
||||
dependencies:
|
||||
"@vue/reactivity" "3.3.4"
|
||||
"@vue/shared" "3.3.4"
|
||||
|
||||
"@vue/runtime-dom@3.3.4":
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566"
|
||||
integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==
|
||||
dependencies:
|
||||
"@vue/runtime-core" "3.3.4"
|
||||
"@vue/shared" "3.3.4"
|
||||
csstype "^3.1.1"
|
||||
|
||||
"@vue/server-renderer@3.3.4":
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c"
|
||||
integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==
|
||||
dependencies:
|
||||
"@vue/compiler-ssr" "3.3.4"
|
||||
"@vue/shared" "3.3.4"
|
||||
|
||||
"@vue/shared@3.3.4", "@vue/shared@^3.0.0":
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780"
|
||||
integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==
|
||||
|
||||
acorn@^8.9.0:
|
||||
version "8.10.0"
|
||||
resolved "https://registry.npmmirror.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
|
||||
integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
|
||||
|
||||
anymatch@~3.1.2:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
|
||||
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
|
||||
dependencies:
|
||||
normalize-path "^3.0.0"
|
||||
picomatch "^2.0.4"
|
||||
|
||||
asynckit@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
|
||||
|
||||
axios@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.npmmirror.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f"
|
||||
integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==
|
||||
dependencies:
|
||||
follow-redirects "^1.15.0"
|
||||
form-data "^4.0.0"
|
||||
proxy-from-env "^1.1.0"
|
||||
|
||||
balanced-match@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
||||
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
||||
|
||||
binary-extensions@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
||||
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
||||
|
||||
brace-expansion@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
|
||||
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
|
||||
dependencies:
|
||||
balanced-match "^1.0.0"
|
||||
|
||||
braces@^3.0.2, braces@~3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
|
||||
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
||||
dependencies:
|
||||
fill-range "^7.0.1"
|
||||
|
||||
chokidar@^3.5.3:
|
||||
version "3.5.3"
|
||||
resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
|
||||
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
|
||||
dependencies:
|
||||
anymatch "~3.1.2"
|
||||
braces "~3.0.2"
|
||||
glob-parent "~5.1.2"
|
||||
is-binary-path "~2.1.0"
|
||||
is-glob "~4.0.1"
|
||||
normalize-path "~3.0.0"
|
||||
readdirp "~3.6.0"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
combined-stream@^1.0.8:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
|
||||
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
|
||||
dependencies:
|
||||
delayed-stream "~1.0.0"
|
||||
|
||||
copy-anything@^2.0.1:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480"
|
||||
integrity sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==
|
||||
dependencies:
|
||||
is-what "^3.14.1"
|
||||
|
||||
csstype@^3.1.1:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
|
||||
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
|
||||
|
||||
debug@^3.2.6:
|
||||
version "3.2.7"
|
||||
resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
|
||||
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
|
||||
dependencies:
|
||||
ms "^2.1.1"
|
||||
|
||||
debug@^4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
||||
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
delayed-stream@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
|
||||
|
||||
errno@^0.1.1:
|
||||
version "0.1.8"
|
||||
resolved "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
|
||||
integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==
|
||||
dependencies:
|
||||
prr "~1.0.1"
|
||||
|
||||
esbuild@^0.18.10:
|
||||
version "0.18.17"
|
||||
resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.17.tgz#2aaf6bc6759b0c605777fdc435fea3969e091cad"
|
||||
integrity sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==
|
||||
optionalDependencies:
|
||||
"@esbuild/android-arm" "0.18.17"
|
||||
"@esbuild/android-arm64" "0.18.17"
|
||||
"@esbuild/android-x64" "0.18.17"
|
||||
"@esbuild/darwin-arm64" "0.18.17"
|
||||
"@esbuild/darwin-x64" "0.18.17"
|
||||
"@esbuild/freebsd-arm64" "0.18.17"
|
||||
"@esbuild/freebsd-x64" "0.18.17"
|
||||
"@esbuild/linux-arm" "0.18.17"
|
||||
"@esbuild/linux-arm64" "0.18.17"
|
||||
"@esbuild/linux-ia32" "0.18.17"
|
||||
"@esbuild/linux-loong64" "0.18.17"
|
||||
"@esbuild/linux-mips64el" "0.18.17"
|
||||
"@esbuild/linux-ppc64" "0.18.17"
|
||||
"@esbuild/linux-riscv64" "0.18.17"
|
||||
"@esbuild/linux-s390x" "0.18.17"
|
||||
"@esbuild/linux-x64" "0.18.17"
|
||||
"@esbuild/netbsd-x64" "0.18.17"
|
||||
"@esbuild/openbsd-x64" "0.18.17"
|
||||
"@esbuild/sunos-x64" "0.18.17"
|
||||
"@esbuild/win32-arm64" "0.18.17"
|
||||
"@esbuild/win32-ia32" "0.18.17"
|
||||
"@esbuild/win32-x64" "0.18.17"
|
||||
|
||||
estree-walker@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
|
||||
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
|
||||
|
||||
fast-glob@^3.2.12:
|
||||
version "3.3.1"
|
||||
resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4"
|
||||
integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==
|
||||
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.4"
|
||||
|
||||
fastq@^1.6.0:
|
||||
version "1.15.0"
|
||||
resolved "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
|
||||
integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
|
||||
dependencies:
|
||||
reusify "^1.0.4"
|
||||
|
||||
fill-range@^7.0.1:
|
||||
version "7.0.1"
|
||||
resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
|
||||
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
|
||||
dependencies:
|
||||
to-regex-range "^5.0.1"
|
||||
|
||||
follow-redirects@^1.15.0:
|
||||
version "1.15.2"
|
||||
resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
|
||||
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
|
||||
|
||||
form-data@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
|
||||
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
combined-stream "^1.0.8"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
fsevents@~2.3.2:
|
||||
version "2.3.2"
|
||||
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
||||
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
||||
|
||||
function-bind@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
||||
|
||||
glob-parent@^5.1.2, glob-parent@~5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
||||
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
||||
dependencies:
|
||||
is-glob "^4.0.1"
|
||||
|
||||
graceful-fs@^4.1.2:
|
||||
version "4.2.11"
|
||||
resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
|
||||
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
|
||||
|
||||
has@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.npmmirror.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
||||
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
|
||||
dependencies:
|
||||
function-bind "^1.1.1"
|
||||
|
||||
iconv-lite@^0.6.3:
|
||||
version "0.6.3"
|
||||
resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
|
||||
integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
|
||||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3.0.0"
|
||||
|
||||
image-size@~0.5.0:
|
||||
version "0.5.5"
|
||||
resolved "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
|
||||
integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==
|
||||
|
||||
is-binary-path@~2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
|
||||
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
|
||||
dependencies:
|
||||
binary-extensions "^2.0.0"
|
||||
|
||||
is-core-module@^2.11.0:
|
||||
version "2.12.1"
|
||||
resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd"
|
||||
integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==
|
||||
dependencies:
|
||||
has "^1.0.3"
|
||||
|
||||
is-extglob@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
||||
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
|
||||
|
||||
is-glob@^4.0.1, is-glob@~4.0.1:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
|
||||
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
|
||||
dependencies:
|
||||
is-extglob "^2.1.1"
|
||||
|
||||
is-number@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
||||
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
||||
|
||||
is-what@^3.14.1:
|
||||
version "3.14.1"
|
||||
resolved "https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1"
|
||||
integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==
|
||||
|
||||
jweixin-1.6.0@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmmirror.com/jweixin-1.6.0/-/jweixin-1.6.0-1.0.0.tgz#d65ec53e738a95b5c54cd5f42a3f34f0e82e29d5"
|
||||
integrity sha512-QH69Y/j4h8p9dy6wqIplXmhjLy67AGJswvrjwWUD84HUdB22QyHaX1PmV7oJFbsYL+Vn9Qe1uIx/2NFKkD51Bg==
|
||||
|
||||
jwxwork@^0.1.12:
|
||||
version "0.1.12"
|
||||
resolved "https://registry.npmmirror.com/jwxwork/-/jwxwork-0.1.12.tgz#a845ee4c563822eeb9d192b2892879d1c8051f67"
|
||||
integrity sha512-/+MBOWCHqbTgSMg43TugYy7d6aSHkIC+L4uvfScZFA1i+rMTRNQobyf+vSSlmCArIlKk4i5aoW0ToeaJCmMJNQ==
|
||||
|
||||
less@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.npmmirror.com/less/-/less-4.2.0.tgz#cbefbfaa14a4cd388e2099b2b51f956e1465c450"
|
||||
integrity sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==
|
||||
dependencies:
|
||||
copy-anything "^2.0.1"
|
||||
parse-node-version "^1.0.1"
|
||||
tslib "^2.3.0"
|
||||
optionalDependencies:
|
||||
errno "^0.1.1"
|
||||
graceful-fs "^4.1.2"
|
||||
image-size "~0.5.0"
|
||||
make-dir "^2.1.0"
|
||||
mime "^1.4.1"
|
||||
needle "^3.1.0"
|
||||
source-map "~0.6.0"
|
||||
|
||||
local-pkg@^0.4.2:
|
||||
version "0.4.3"
|
||||
resolved "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz#0ff361ab3ae7f1c19113d9bb97b98b905dbc4963"
|
||||
integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==
|
||||
|
||||
magic-string@^0.27.0:
|
||||
version "0.27.0"
|
||||
resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3"
|
||||
integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==
|
||||
dependencies:
|
||||
"@jridgewell/sourcemap-codec" "^1.4.13"
|
||||
|
||||
magic-string@^0.30.0:
|
||||
version "0.30.2"
|
||||
resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.2.tgz#dcf04aad3d0d1314bc743d076c50feb29b3c7aca"
|
||||
integrity sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==
|
||||
dependencies:
|
||||
"@jridgewell/sourcemap-codec" "^1.4.15"
|
||||
|
||||
make-dir@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
|
||||
integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
|
||||
dependencies:
|
||||
pify "^4.0.1"
|
||||
semver "^5.6.0"
|
||||
|
||||
merge2@^1.3.0:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||
|
||||
micromatch@^4.0.4:
|
||||
version "4.0.5"
|
||||
resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
|
||||
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
|
||||
dependencies:
|
||||
braces "^3.0.2"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
mime-db@1.52.0:
|
||||
version "1.52.0"
|
||||
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
||||
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
|
||||
|
||||
mime-types@^2.1.12:
|
||||
version "2.1.35"
|
||||
resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
|
||||
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
|
||||
dependencies:
|
||||
mime-db "1.52.0"
|
||||
|
||||
mime@^1.4.1:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
||||
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
|
||||
|
||||
minimatch@^5.1.1:
|
||||
version "5.1.6"
|
||||
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
|
||||
integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
|
||||
dependencies:
|
||||
brace-expansion "^2.0.1"
|
||||
|
||||
ms@2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
||||
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
||||
|
||||
ms@^2.1.1:
|
||||
version "2.1.3"
|
||||
resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
||||
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
||||
|
||||
nanoid@^3.3.6:
|
||||
version "3.3.6"
|
||||
resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
|
||||
integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
|
||||
|
||||
needle@^3.1.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.npmmirror.com/needle/-/needle-3.2.0.tgz#07d240ebcabfd65c76c03afae7f6defe6469df44"
|
||||
integrity sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==
|
||||
dependencies:
|
||||
debug "^3.2.6"
|
||||
iconv-lite "^0.6.3"
|
||||
sax "^1.2.4"
|
||||
|
||||
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
||||
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
||||
|
||||
parse-node-version@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
|
||||
integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
|
||||
|
||||
path-parse@^1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
||||
|
||||
picocolors@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
|
||||
|
||||
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||
|
||||
pify@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
|
||||
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
|
||||
|
||||
postcss@^8.1.10, postcss@^8.4.26:
|
||||
version "8.4.27"
|
||||
resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057"
|
||||
integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==
|
||||
dependencies:
|
||||
nanoid "^3.3.6"
|
||||
picocolors "^1.0.0"
|
||||
source-map-js "^1.0.2"
|
||||
|
||||
proxy-from-env@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
||||
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
|
||||
|
||||
prr@~1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
|
||||
integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==
|
||||
|
||||
queue-microtask@^1.2.2:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
||||
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
||||
|
||||
readdirp@~3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
|
||||
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
|
||||
dependencies:
|
||||
picomatch "^2.2.1"
|
||||
|
||||
resolve@^1.22.1:
|
||||
version "1.22.2"
|
||||
resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
|
||||
integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
|
||||
dependencies:
|
||||
is-core-module "^2.11.0"
|
||||
path-parse "^1.0.7"
|
||||
supports-preserve-symlinks-flag "^1.0.0"
|
||||
|
||||
reusify@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
|
||||
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
||||
|
||||
rollup@^3.25.2:
|
||||
version "3.27.0"
|
||||
resolved "https://registry.npmmirror.com/rollup/-/rollup-3.27.0.tgz#15bd07e2e1cbfa9255bf6a3f04a432621c2f3550"
|
||||
integrity sha512-aOltLCrYZ0FhJDm7fCqwTjIUEVjWjcydKBV/Zeid6Mn8BWgDCUBBWT5beM5ieForYNo/1ZHuGJdka26kvQ3Gzg==
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
run-parallel@^1.1.9:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
|
||||
integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
|
||||
dependencies:
|
||||
queue-microtask "^1.2.2"
|
||||
|
||||
"safer-buffer@>= 2.1.2 < 3.0.0":
|
||||
version "2.1.2"
|
||||
resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||
|
||||
sax@^1.2.4:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
|
||||
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
|
||||
|
||||
semver@^5.6.0:
|
||||
version "5.7.2"
|
||||
resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
|
||||
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
|
||||
|
||||
source-map-js@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
|
||||
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
|
||||
|
||||
source-map@~0.6.0:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||
|
||||
store@^2.0.12:
|
||||
version "2.0.12"
|
||||
resolved "https://registry.npmmirror.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593"
|
||||
integrity sha512-eO9xlzDpXLiMr9W1nQ3Nfp9EzZieIQc10zPPMP5jsVV7bLOziSFFBP0XoDXACEIFtdI+rIz0NwWVA/QVJ8zJtw==
|
||||
|
||||
supports-preserve-symlinks-flag@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
||||
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
||||
|
||||
to-regex-range@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
||||
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
||||
dependencies:
|
||||
is-number "^7.0.0"
|
||||
|
||||
tslib@^2.3.0:
|
||||
version "2.6.1"
|
||||
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410"
|
||||
integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==
|
||||
|
||||
unplugin-vue-components@^0.22.11:
|
||||
version "0.22.12"
|
||||
resolved "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.22.12.tgz#39013f77be72d32df9d6ca1599e592a484015612"
|
||||
integrity sha512-FxyzsuBvMCYPIk+8cgscGBQ345tvwVu+qY5IhE++eorkyvA4Z1TiD/HCiim+Kbqozl10i4K+z+NCa2WO2jexRA==
|
||||
dependencies:
|
||||
"@antfu/utils" "^0.7.2"
|
||||
"@rollup/pluginutils" "^5.0.2"
|
||||
chokidar "^3.5.3"
|
||||
debug "^4.3.4"
|
||||
fast-glob "^3.2.12"
|
||||
local-pkg "^0.4.2"
|
||||
magic-string "^0.27.0"
|
||||
minimatch "^5.1.1"
|
||||
resolve "^1.22.1"
|
||||
unplugin "^1.0.1"
|
||||
|
||||
unplugin@^1.0.1:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.npmmirror.com/unplugin/-/unplugin-1.4.0.tgz#b771373aa1bc664f50a044ee8009bd3a7aa04d85"
|
||||
integrity sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg==
|
||||
dependencies:
|
||||
acorn "^8.9.0"
|
||||
chokidar "^3.5.3"
|
||||
webpack-sources "^3.2.3"
|
||||
webpack-virtual-modules "^0.5.0"
|
||||
|
||||
vant@^4.0.0:
|
||||
version "4.6.3"
|
||||
resolved "https://registry.npmmirror.com/vant/-/vant-4.6.3.tgz#e36a2dc2fa94253b8218094d88e9b0cd62b3437d"
|
||||
integrity sha512-hkiBzM1dhEj9EWSjRnyB7gd6SiVa3/+qthNZtlJdj42C+pXIN+oq0UhKz5PRHWi8fHyPfycnqRzyvEJxouT+zw==
|
||||
dependencies:
|
||||
"@vant/popperjs" "^1.3.0"
|
||||
"@vant/use" "^1.5.1"
|
||||
"@vue/shared" "^3.0.0"
|
||||
|
||||
vite@^4.4.7:
|
||||
version "4.4.7"
|
||||
resolved "https://registry.npmmirror.com/vite/-/vite-4.4.7.tgz#71b8a37abaf8d50561aca084dbb77fa342824154"
|
||||
integrity sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==
|
||||
dependencies:
|
||||
esbuild "^0.18.10"
|
||||
postcss "^8.4.26"
|
||||
rollup "^3.25.2"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
vue-router@^4.0.13:
|
||||
version "4.0.13"
|
||||
resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.0.13.tgz#47f06e2f8ff6120bfff3c27ade1356cc9de7d870"
|
||||
integrity sha512-LmXrC+BkDRLak+d5xTMgUYraT3Nj0H/vCbP+7usGvIl9Viqd1UP6AsP0i69pSbn9O0dXK/xCdp4yPw21HqV9Jw==
|
||||
dependencies:
|
||||
"@vue/devtools-api" "^6.0.0"
|
||||
|
||||
vue@^3.2.45:
|
||||
version "3.3.4"
|
||||
resolved "https://registry.npmmirror.com/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6"
|
||||
integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==
|
||||
dependencies:
|
||||
"@vue/compiler-dom" "3.3.4"
|
||||
"@vue/compiler-sfc" "3.3.4"
|
||||
"@vue/runtime-dom" "3.3.4"
|
||||
"@vue/server-renderer" "3.3.4"
|
||||
"@vue/shared" "3.3.4"
|
||||
|
||||
vuex@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.npmmirror.com/vuex/-/vuex-4.1.0.tgz#aa1b3ea5c7385812b074c86faeeec2217872e36c"
|
||||
integrity sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==
|
||||
dependencies:
|
||||
"@vue/devtools-api" "^6.0.0-beta.11"
|
||||
|
||||
webpack-sources@^3.2.3:
|
||||
version "3.2.3"
|
||||
resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
|
||||
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
|
||||
|
||||
webpack-virtual-modules@^0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c"
|
||||
integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==
|
||||
|
||||
weixin-js-sdk@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.npmmirror.com/weixin-js-sdk/-/weixin-js-sdk-1.6.0.tgz#ff50484d8118ce1208f11248cf4a1c0831577514"
|
||||
integrity sha512-3IYQH7aalJGFJrwdT3epvTdR1MboMiH7vIZ5BRL2eYOJ12BNah7csoMkmSZzkq1+l92sSq29XdTCVjCJoK2sBQ==
|
||||
Loading…
Reference in New Issue