adminuser增删改查
This commit is contained in:
parent
8d6c97d6ba
commit
22beb2ce31
2
.env
2
.env
|
|
@ -15,7 +15,7 @@ VUE_APP_TBAS_TITLES_KEY=admin.tabs.titles
|
|||
VUE_APP_LAYOUT_KEY=admin.layout
|
||||
VUE_APP_THEME_MODE_KEY=admin.theme.mode
|
||||
VUE_APP_THEME_COLOR_KEY=admin.theme.color
|
||||
VUE_APP_API_BASE_URL=http://zxx4.f3322.net:16680
|
||||
VUE_APP_API_BASE_URL=http://zxx4.f3322.net:46000
|
||||
VUE_APP_USER_MODEL=AdminUser
|
||||
VUE_APP_BEID=1
|
||||
VUE_APP_PTYID=0
|
||||
|
|
@ -1,2 +1,2 @@
|
|||
|
||||
VUE_APP_API_BASE_URL=http://zxx4.f3322.net:16680
|
||||
VUE_APP_API_BASE_URL=http://zxx4.f3322.net:46000
|
||||
|
|
@ -31,7 +31,9 @@
|
|||
"vue-i18n": "^8.18.2",
|
||||
"vue-router": "^3.3.4",
|
||||
"vuedraggable": "^2.23.2",
|
||||
"vuex": "^3.4.0"
|
||||
"vuex": "^3.4.0",
|
||||
"vxe-table": "^3.6.6",
|
||||
"xe-utils": "^3.5.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ant-design/colors": "^4.0.1",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
// 跟业务系统相关的
|
||||
|
||||
import mk from './mk'
|
||||
|
||||
export default {
|
||||
install(Vue) {
|
||||
|
||||
|
||||
Vue.prototype.$mk = mk;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
<template>
|
||||
|
||||
<vxe-modal class="vxe-table--ignore-clear" id="myModal" @close="modalClose" v-model="visible" :width="width" :height="height"
|
||||
min-width="600" min-height="400" show-zoom resize remember storage transfer>
|
||||
<template #title>
|
||||
<span>{{ title }}</span>
|
||||
</template>
|
||||
<template #default>
|
||||
<component :is="app" :dataId="dataId" :pageMode="pageMode" @callback="handleCallback"></component>
|
||||
</template>
|
||||
</vxe-modal>
|
||||
|
||||
</template>
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: "myDialog",
|
||||
data() {
|
||||
return {
|
||||
width:800,
|
||||
height:500,
|
||||
visible: false,
|
||||
title: "提示",
|
||||
callback: null,
|
||||
dataId: "",
|
||||
pageMode: "", //add edit select
|
||||
app: null
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
|
||||
|
||||
open(options) {
|
||||
const { page, title, callback, pageMode, dataId,width = 800,height = 500 } = options || {};
|
||||
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
this.dataId = dataId;
|
||||
this.pageMode = pageMode;
|
||||
this.title = title;
|
||||
this.app = page;
|
||||
this.callback = callback;
|
||||
this.visible = true;
|
||||
},
|
||||
handleCallback(e) {
|
||||
const { callback } = this;
|
||||
if (callback) {
|
||||
callback(e);
|
||||
this.$destroy();
|
||||
}
|
||||
},
|
||||
modalClose() {
|
||||
this.$destroy();
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
import Vue from 'vue'
|
||||
import promptComponent from './dialog.vue'
|
||||
|
||||
|
||||
|
||||
export default {
|
||||
|
||||
open: function (args) {
|
||||
const promptConstructor = Vue.extend(promptComponent);
|
||||
let instance = new promptConstructor().$mount('');
|
||||
document.body.appendChild(instance.$el);
|
||||
|
||||
|
||||
instance.open(args);
|
||||
}
|
||||
|
||||
};
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
|
||||
|
||||
|
||||
export default {
|
||||
|
||||
defaults: {
|
||||
|
||||
gridOptions: {
|
||||
rowConfig: {
|
||||
keyField: "id",
|
||||
isCurrent: true,
|
||||
isHover: true
|
||||
},
|
||||
columnConfig: {
|
||||
resizable: true
|
||||
},
|
||||
sortConfig: {
|
||||
trigger: 'cell',
|
||||
remote: true
|
||||
},
|
||||
pagerConfig: {
|
||||
pageSize: 50,
|
||||
pageSizes: [50, 100, 200, 500, 1000]
|
||||
},
|
||||
__toolbarConfig: {
|
||||
buttons: [
|
||||
],
|
||||
refresh: true,
|
||||
import: false,
|
||||
export: false,
|
||||
print: false,
|
||||
zoom: false,
|
||||
custom: true
|
||||
},
|
||||
checkboxConfig: {
|
||||
reserve: true,
|
||||
highlight: true,
|
||||
range: true
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
formOptions: {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
import modal from './libs/function/modal'
|
||||
import apis from './libs/function/apis'
|
||||
import config from './config'
|
||||
import dialog from './components/dialog'
|
||||
|
||||
|
||||
var mk = {
|
||||
|
||||
...modal,
|
||||
|
||||
...apis,
|
||||
|
||||
config: config,
|
||||
|
||||
dialog: dialog
|
||||
};
|
||||
|
||||
export default mk;
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
import { request } from '@/utils/request'
|
||||
import modal from './modal'
|
||||
export default {
|
||||
|
||||
post : function({url, data,loading , config}){
|
||||
|
||||
return new Promise((resolve, reject)=>{
|
||||
|
||||
if(loading){
|
||||
modal.loading(loading);
|
||||
}
|
||||
request(url, 'post', data, config).then(response=>{
|
||||
if(!response){
|
||||
reject && reject(response);
|
||||
return;
|
||||
}
|
||||
var result = response.data;
|
||||
if(!result){
|
||||
reject && reject(response);
|
||||
return;
|
||||
}
|
||||
if(loading){
|
||||
modal.hideLoading();
|
||||
}
|
||||
if(result.code != 200){
|
||||
if(reject){
|
||||
reject(response);
|
||||
}else{
|
||||
modal.error(result.msg);
|
||||
}
|
||||
return;
|
||||
}
|
||||
resolve(result.data);
|
||||
}).catch((error)=>{
|
||||
if(loading){
|
||||
modal.hideLoading();
|
||||
}
|
||||
modal.error(error.toString());
|
||||
});
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
getPagedData: function({url, method = 'post', data, config}){
|
||||
|
||||
return new Promise((resolve, reject)=>{
|
||||
|
||||
if(data.start_time && typeof(data.start_time) == "string"){
|
||||
data.start_time = parseInt(new Date(data.start_time).getTime()/1000);
|
||||
}
|
||||
if(data.end_time && typeof(data.end_time) == "string"){
|
||||
data.end_time =parseInt(new Date(data.end_time).getTime()/1000);
|
||||
}
|
||||
console.log(data)
|
||||
request(url, method, data, config).then(response=>{
|
||||
if(!response){
|
||||
reject && reject(response);
|
||||
return;
|
||||
}
|
||||
var result = response.data;
|
||||
if(!result){
|
||||
reject && reject(response);
|
||||
return;
|
||||
}
|
||||
|
||||
if(result.code != 200){
|
||||
if(reject){
|
||||
reject(response);
|
||||
}else{
|
||||
modal.error(result.msg);
|
||||
}
|
||||
return;
|
||||
}
|
||||
resolve(result.data);
|
||||
}).catch((error)=>{
|
||||
resolve({
|
||||
total:0,
|
||||
list :[]
|
||||
});
|
||||
modal.error(error.toString());
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
import VXETable from 'vxe-table'
|
||||
|
||||
/**
|
||||
* 函数 - 弹窗
|
||||
*/
|
||||
const msgs = {
|
||||
title: "提示",
|
||||
confirmText: "确定",
|
||||
cancelText: "取消",
|
||||
placeholderText: "请输入"
|
||||
};
|
||||
export default {
|
||||
/**
|
||||
this.$mk.alert({ content: '基本提示框', title: '标题1' });
|
||||
*/
|
||||
alert: function (options = {}) {
|
||||
options = Object.assign({ title: msgs.title }, options);
|
||||
|
||||
return VXETable.modal.alert(options);
|
||||
},
|
||||
|
||||
/**
|
||||
this.$mk.msg(“消息提示”);
|
||||
*/
|
||||
msg: function (content) {
|
||||
return VXETable.modal.message({ content: content });
|
||||
},
|
||||
|
||||
info: function (content) {
|
||||
return VXETable.modal.message({ content: content, status: 'info' });
|
||||
},
|
||||
|
||||
warning: function (content) {
|
||||
return VXETable.modal.message({ content: content, status: 'warning' });
|
||||
},
|
||||
|
||||
question: function (content) {
|
||||
return VXETable.modal.message({ content: content, status: 'question' });
|
||||
},
|
||||
|
||||
success: function (content) {
|
||||
return VXETable.modal.message({ content: content, status: 'success' });
|
||||
},
|
||||
|
||||
error: function (content) {
|
||||
return VXETable.modal.message({ content: content, status: 'error' });
|
||||
},
|
||||
|
||||
loading: function (content) {
|
||||
return VXETable.modal.message({ content: content, status: 'loading', duration: -1, id: 'loading' });
|
||||
},
|
||||
|
||||
hideLoading: function () {
|
||||
VXETable.modal.close("loading");
|
||||
},
|
||||
|
||||
/*
|
||||
this.$mk.confirm('您确定要删除吗?').then(type => {
|
||||
this.$mk.msg("点击了确定")
|
||||
});
|
||||
*/
|
||||
confirm: VXETable.modal.confirm
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
.ant-btn {
|
||||
margin-right: 8px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
|
||||
.vxe-checkbox--input{
|
||||
display: none;
|
||||
}
|
||||
.vxe-toolbar .vxe-custom--footer button {
|
||||
background-color: transparent;
|
||||
width: 50%;
|
||||
height: 2.5em;
|
||||
border: 0;
|
||||
color: #606266;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
|
@ -11,10 +11,14 @@ import Plugins from '@/plugins' // 引入插件
|
|||
import {initI18n} from '@/utils/i18n' // 引入国际化方法
|
||||
import bootstrap from '@/bootstrap' // 引入启动引导方法
|
||||
import 'moment/locale/zh-cn' // 引入moment 本地化
|
||||
import VXETable from 'vxe-table'
|
||||
import 'vxe-table/lib/style.css'
|
||||
|
||||
|
||||
const router = initRouter(store.state.setting.asyncRoutes) // 初始化路由 加载动态路由
|
||||
const i18n = initI18n('CN', 'US') // 初始化国际化 加载中英文 语言包
|
||||
|
||||
Vue.use(VXETable)
|
||||
Vue.use(Antd) // 注册ant-design-vue 组件库
|
||||
Vue.config.productionTip = false // 关闭生产模式下给出的提示
|
||||
Vue.use(Viser) // 注册viser-vue 组件库
|
||||
|
|
@ -22,6 +26,11 @@ Vue.use(Plugins) // 注册插件
|
|||
|
||||
bootstrap({router, store, i18n, message: Vue.prototype.$message}) // 启动引导方法
|
||||
|
||||
|
||||
import application from './application';
|
||||
import './application/mk/style/main.css';
|
||||
Vue.use(application);
|
||||
|
||||
new Vue({
|
||||
router, // 注入路由
|
||||
store, // 注入vuex store
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
<template>
|
||||
<div>
|
||||
user detail
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -0,0 +1,185 @@
|
|||
<template>
|
||||
<div class="page-body">
|
||||
|
||||
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
|
||||
:title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>
|
||||
<template #myregion="{}">
|
||||
<a-input-search placeholder="input search text" enter-button />
|
||||
</template>
|
||||
</vxe-form>
|
||||
|
||||
|
||||
<div>
|
||||
<a-button type="primary" @click="ok">确定</a-button>
|
||||
<a-button @click="cancel">取消</a-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import BASE_URL from '@/services/base/api.js';
|
||||
|
||||
export default {
|
||||
name: 'AdminUserEdit',
|
||||
i18n: require('./i18n'),
|
||||
|
||||
props: {
|
||||
pageMode: {
|
||||
type: String,
|
||||
default: "edit"
|
||||
},
|
||||
dataId: {
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
data() {
|
||||
|
||||
// 页面数据变量
|
||||
var pageData = {
|
||||
|
||||
actions: {
|
||||
create: `${BASE_URL.BASE_URL}/AdminUser/v1/create`,
|
||||
update: `${BASE_URL.BASE_URL}/AdminUser/v1/update`,
|
||||
get: `${BASE_URL.BASE_URL}/AdminUser/v1/detail`
|
||||
},
|
||||
|
||||
formOptions: {
|
||||
data: {
|
||||
"name": "",
|
||||
"nick_name": "",
|
||||
"avatar": "",
|
||||
"email": "",
|
||||
"mobile": "",
|
||||
"password": "",
|
||||
"status": 1,
|
||||
"is_super": 0,
|
||||
"level": 1,
|
||||
"token": ""
|
||||
},
|
||||
|
||||
titleWidth: 100,
|
||||
titleAlign: 'right',
|
||||
|
||||
rules: {
|
||||
name: [
|
||||
{ required: true, message: '请输入名称' }
|
||||
],
|
||||
email: [
|
||||
{
|
||||
validator({ itemValue }) {
|
||||
// 自定义校验
|
||||
if (itemValue && !/^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/.test(itemValue)) {
|
||||
return new Error('email格式不正确')
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
mobile: [
|
||||
{ required: true, message: '请输入手机号' } ,
|
||||
{
|
||||
validator({ itemValue }) {
|
||||
// 自定义校验
|
||||
if (itemValue && !/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(itemValue)) {
|
||||
return new Error('手机号格式不正确')
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
},
|
||||
|
||||
items: [
|
||||
{
|
||||
title: '左侧',
|
||||
children: [
|
||||
{ field: 'name', title: '名称', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入名称' } } },
|
||||
{ field: 'mobile', title: '联系电话', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入联系电话' } } },
|
||||
{ field: 'nick_name', title: '昵称', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入昵称' } } },
|
||||
{ field: 'email', title: 'email', span: 24, itemRender: { name: '$input', props: { placeholder: '请输入email' } } }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
pageData.formOptions = Object.assign(this.$mk.config.defaults.formOptions, pageData.formOptions);
|
||||
|
||||
return pageData;
|
||||
},
|
||||
created() {
|
||||
if (this.dataId) {
|
||||
this.$mk.post({
|
||||
url: this.actions.get,
|
||||
loading : "加载中...",
|
||||
data : {
|
||||
id: this.dataId
|
||||
}
|
||||
}).then(a => {
|
||||
this.formOptions.data = a.AdminUser;
|
||||
}).catch((a)=>{
|
||||
this.$mk.error(a.data.msg);
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
// 函数
|
||||
methods: {
|
||||
|
||||
|
||||
loadData() {
|
||||
},
|
||||
|
||||
ok() {
|
||||
|
||||
let save = () => {
|
||||
let action = this.pageMode == "add" ? this.actions.create : this.actions.update;
|
||||
let postdata = this.pageMode == "add" ? Object.assign({ id: this.dataId }, this.formOptions.data) : Object.assign({}, this.formOptions.data);
|
||||
|
||||
if (this.pageMode == "add") {
|
||||
postdata.password = "123456";
|
||||
}
|
||||
this.$mk.post({
|
||||
url: action,
|
||||
loading: "保存中...",
|
||||
data: postdata
|
||||
}).then(() => {
|
||||
this.$mk.success("保存成功");
|
||||
this.$emit("callback", { success: true });
|
||||
}).catch((a)=>{
|
||||
this.$mk.error(a.data.msg);
|
||||
});
|
||||
};
|
||||
|
||||
this.$refs.xForm.validate((a) => {
|
||||
|
||||
if (a) {
|
||||
let count = 0;
|
||||
for (let name in a) {
|
||||
a[name];
|
||||
count++;
|
||||
}
|
||||
this.$mk.error(`存在${count}项错误,请检查`);
|
||||
} else {
|
||||
save();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
},
|
||||
|
||||
cancel() {
|
||||
this.$emit("callback", {});
|
||||
}
|
||||
},
|
||||
// 监听属性
|
||||
watch: {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<style>
|
||||
|
||||
</style>
|
||||
|
|
@ -1,103 +1,282 @@
|
|||
<template>
|
||||
<a-card :body-style="{padding: '24px 32px'}" :bordered="false">
|
||||
<a-form>
|
||||
<a-form-item
|
||||
:label="$t('title')"
|
||||
:labelCol="{span: 7}"
|
||||
:wrapperCol="{span: 10}"
|
||||
>
|
||||
<a-input :placeholder="$t('titleInput')" />
|
||||
<div class="page-body">
|
||||
|
||||
<!-- 工具条 -->
|
||||
<div class="mk-toolbar">
|
||||
<a-button type="primary" @click="pageAdd">
|
||||
新增
|
||||
</a-button>
|
||||
<a-button @click="pageEdit">编辑</a-button>
|
||||
<a-dropdown>
|
||||
<a-menu slot="overlay" @click="handleMenuClick">
|
||||
<a-menu-item key="delete">
|
||||
删除
|
||||
</a-menu-item>
|
||||
</a-menu>
|
||||
<a-button> 操作
|
||||
<a-icon type="down" />
|
||||
</a-button>
|
||||
</a-dropdown>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- 搜索区 -->
|
||||
<vxe-form :data="searchFormData" :items="searchFormItems" titleColon @submit="onSearch">
|
||||
<template #date="{}">
|
||||
|
||||
<a-form-item label="创建时间" :style="{ display: 'inline-block',width:120 }">
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('date')"
|
||||
:labelCol="{span: 7}"
|
||||
:wrapperCol="{span: 10}"
|
||||
>
|
||||
<a-range-picker style="width: 100%" />
|
||||
<a-form-item :style="{ display: 'inline-block', width: 'calc(100% - 120px )' }">
|
||||
<a-range-picker @change="onDateChange" />
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('describe')"
|
||||
:labelCol="{span: 7}"
|
||||
:wrapperCol="{span: 10}"
|
||||
>
|
||||
<a-textarea rows="4" :placeholder="$t('describeInput')"/>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('metrics')"
|
||||
:labelCol="{span: 7}"
|
||||
:wrapperCol="{span: 10}"
|
||||
>
|
||||
<a-textarea rows="4" :placeholder="$t('metricsInput')"/>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('customer')"
|
||||
:labelCol="{span: 7}"
|
||||
:wrapperCol="{span: 10}"
|
||||
:required="false"
|
||||
>
|
||||
<a-input :placeholder="$t('customerInput')"/>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('critics')"
|
||||
:labelCol="{span: 7}"
|
||||
:wrapperCol="{span: 10}"
|
||||
:required="false"
|
||||
>
|
||||
<a-input :placeholder="$t('criticsInput')"/>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('weight')"
|
||||
:labelCol="{span: 7}"
|
||||
:wrapperCol="{span: 10}"
|
||||
:required="false"
|
||||
>
|
||||
<a-input-number :min="0" :max="100"/>
|
||||
<span>%</span>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="$t('disclosure')"
|
||||
:labelCol="{span: 7}"
|
||||
:wrapperCol="{span: 10}"
|
||||
:required="false"
|
||||
:help="$t('disclosureDesc')"
|
||||
>
|
||||
<a-radio-group v-model="value">
|
||||
<a-radio :value="1">{{$t('public')}}</a-radio>
|
||||
<a-radio :value="2">{{$t('partially')}}</a-radio>
|
||||
<a-radio :value="3">{{$t('private')}}</a-radio>
|
||||
</a-radio-group>
|
||||
<a-select mode="multiple" v-if="value === 2">
|
||||
<a-select-option value="4">{{$t('colleague1')}}</a-select-option>
|
||||
<a-select-option value="5">{{$t('colleague2')}}</a-select-option>
|
||||
<a-select-option value="6">{{$t('colleague3')}}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item style="margin-top: 24px" :wrapperCol="{span: 10, offset: 7}">
|
||||
<a-button type="primary">{{$t('submit')}}</a-button>
|
||||
<a-button style="margin-left: 8px">{{$t('save')}}</a-button>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</a-card>
|
||||
|
||||
|
||||
|
||||
</template>
|
||||
</vxe-form>
|
||||
|
||||
|
||||
<!-- 表格区 -->
|
||||
<vxe-grid ref='xGrid' v-bind="gridOptions"></vxe-grid>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import BASE_URL from '@/services/base/api.js';
|
||||
|
||||
let editPage = () => import("./UserEdit");
|
||||
|
||||
export default {
|
||||
name: 'AdminUserList',
|
||||
i18n: require('./i18n'),
|
||||
data() {
|
||||
return {
|
||||
value: 1
|
||||
|
||||
// 页面数据变量
|
||||
var pageData = {
|
||||
|
||||
keyName : 'id',
|
||||
actions: {
|
||||
getList: `${BASE_URL.BASE_URL}/AdminUser/v1/list`,
|
||||
delete: `${BASE_URL.BASE_URL}/AdminUser/v1/batchDelete`
|
||||
},
|
||||
|
||||
start_time :0,
|
||||
end_time :0,
|
||||
|
||||
//搜索区
|
||||
searchFormData: {
|
||||
name: '',
|
||||
nick_name: '',
|
||||
},
|
||||
searchRules: [
|
||||
{ key: "name", mode: "like" },
|
||||
{ key: "nick_name", mode: "like" }
|
||||
],
|
||||
|
||||
|
||||
|
||||
searchFormItems: [
|
||||
{
|
||||
title: '左侧',
|
||||
span: 20,
|
||||
children: [
|
||||
{ field: 'name', title: '名称', span: 7, itemRender: { name: '$input', props: { placeholder: '请输入名称' } } },
|
||||
{ field: 'nick_name', title: '昵称', span: 7, itemRender: { name: '$input', props: { placeholder: '请输入昵称' } } },
|
||||
{ span: 10, slots: { default: 'date' } }
|
||||
]
|
||||
},
|
||||
{ align: 'right', span: 4, itemRender: { name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } }, { props: { type: 'reset', content: '重置' } }] } }
|
||||
],
|
||||
|
||||
|
||||
|
||||
//数据区
|
||||
gridOptions: {
|
||||
height: 600,
|
||||
id: 'datagrid_1',
|
||||
|
||||
proxyConfig: {
|
||||
sort: true, // 启用排序代理,当点击排序时会自动触发 query 行为
|
||||
filter: true, // 启用筛选代理,当点击筛选时会自动触发 query 行为
|
||||
props: {
|
||||
result: 'list', // 配置响应结果列表字段
|
||||
total: 'total' // 配置响应结果总页数字段
|
||||
},
|
||||
// 接收Promise
|
||||
ajax: {
|
||||
// 当点击工具栏查询按钮或者手动提交指令 query或reload 时会被触发
|
||||
query: (options) => {
|
||||
const { page, sorts } = options;
|
||||
var params = {};
|
||||
params.page = page.currentPage;
|
||||
params.limit = page.pageSize;
|
||||
params.order_bys = [];
|
||||
params.search_rules = this.getSearchParms();
|
||||
if (sorts) {
|
||||
sorts.forEach((v) => {
|
||||
params.order_bys.push({
|
||||
column: v.property,
|
||||
order: v.order
|
||||
})
|
||||
});
|
||||
}
|
||||
return this.loadData({ params });
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
desc() {
|
||||
return this.$t('pageDesc')
|
||||
columns: [
|
||||
{ type: 'checkbox', width: 50 },
|
||||
{ type: 'seq', width: 50 },
|
||||
{ field: 'name', sortable: true, title: '名称' },
|
||||
{ field: 'nick_name', sortable: true, title: '昵称', showHeaderOverflow: true },
|
||||
{ field: 'email', sortable: true, title: 'email', showHeaderOverflow: true },
|
||||
{ field: 'mobile', sortable: true, title: '电话', showHeaderOverflow: true }
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
pageData.gridOptions = Object.assign(this.$mk.config.defaults.gridOptions, pageData.gridOptions);
|
||||
|
||||
return pageData;
|
||||
},
|
||||
// 监听 - 页面每次【加载时】执行
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
// 函数
|
||||
methods: {
|
||||
onDateChange(date) {
|
||||
if(date && date.length){
|
||||
this.start_time = parseInt(date[0]._d.getTime()/ 1000);
|
||||
this.end_time = parseInt(date[1]._d.getTime()/ 1000);
|
||||
}else{
|
||||
this.start_time = 0;
|
||||
this.end_time = 0;
|
||||
}
|
||||
|
||||
},
|
||||
getSearchParms() {
|
||||
var rules = [];
|
||||
let findMode = k => {
|
||||
for (let i in this.searchRules) {
|
||||
if (this.searchRules[i].key == k) return this.searchRules[i].mode;
|
||||
}
|
||||
return "equal";
|
||||
};
|
||||
|
||||
for (let key in this.searchFormData) {
|
||||
let value = this.searchFormData[key];
|
||||
if (value) {
|
||||
let mode = findMode(key);
|
||||
if(mode == "like"){
|
||||
value = "%" + value +"%";
|
||||
}
|
||||
rules.push({
|
||||
column: key,
|
||||
mode: mode,
|
||||
value: value
|
||||
});
|
||||
}
|
||||
}
|
||||
return rules;
|
||||
},
|
||||
getSelectdRow() {
|
||||
let row = this.$refs.xGrid.getCurrentRecord();
|
||||
if (!row) {
|
||||
let rows = this.$refs.xGrid.getCheckboxRecords();
|
||||
if (rows && rows.length) { row = rows[0]; }
|
||||
}
|
||||
return row;
|
||||
},
|
||||
loadData({ params }) {
|
||||
|
||||
params.start_time = this.start_time;
|
||||
params.end_time = this.end_time;
|
||||
|
||||
|
||||
return this.$mk.getPagedData({ url: this.actions.getList, data: params });
|
||||
},
|
||||
|
||||
pageAdd() {
|
||||
this.$mk.dialog.open({
|
||||
page: editPage,
|
||||
title: "新增用户信息",
|
||||
pageMode: "add",
|
||||
dataId: 0,
|
||||
callback: ({ success }) => {
|
||||
success && this.$refs.xGrid.commitProxy('query')
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
pageEdit() {
|
||||
let row = this.getSelectdRow();
|
||||
if (!row) {
|
||||
this.$mk.msg("请选择行");
|
||||
return;
|
||||
}
|
||||
this.$mk.dialog.open({
|
||||
page: editPage,
|
||||
title: "编辑用户信息",
|
||||
pageMode: "edit",
|
||||
dataId: row[this.keyName],
|
||||
callback: ({ success }) => {
|
||||
success && this.$refs.xGrid.commitProxy('query')
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
handleMenuClick(e) {
|
||||
if (e.key == "delete") {
|
||||
|
||||
let rows = this.$refs.xGrid.getCheckboxRecords();
|
||||
let ids = [];
|
||||
rows.forEach((row) => {
|
||||
ids.push(row[this.keyName]);
|
||||
|
||||
});
|
||||
|
||||
if (!ids.length) {
|
||||
this.$mk.error("请选择行");
|
||||
return;
|
||||
}
|
||||
|
||||
this.$mk.confirm('您确定要删除吗?').then(type => {
|
||||
if (type == 'confirm') {
|
||||
this.$mk.post({
|
||||
url: this.actions.delete,
|
||||
loading: "删除中...",
|
||||
data: {
|
||||
ids: ids
|
||||
}
|
||||
}).then(() => {
|
||||
this.$mk.success("删除成功");
|
||||
this.onSearch();
|
||||
}).catch((a) => {
|
||||
this.$mk.error(a.data.msg);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
onSearch() {
|
||||
this.$refs.xGrid.commitProxy('query')
|
||||
}
|
||||
},
|
||||
// 监听属性
|
||||
watch: {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
<style>
|
||||
.page-body {
|
||||
padding: 10px 10px;
|
||||
background: white;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
@ -1,79 +1,12 @@
|
|||
module.exports = {
|
||||
messages: {
|
||||
CN: {
|
||||
pageDesc: '表单页用于向用户收集或验证信息,基础表单常见于数据项较少的表单场景。',
|
||||
title: '标题',
|
||||
titleInput: '给目标起个名字',
|
||||
date: '起止日期',
|
||||
describe: '目标描述',
|
||||
describeInput: '请输入你阶段性工作目标',
|
||||
metrics: '衡量标准',
|
||||
metricsInput: '请输入衡量标准',
|
||||
customer: '客户',
|
||||
customerInput: '请描述你服务的客户,内部客户直接 @姓名/工号',
|
||||
critics: '邀评人',
|
||||
criticsInput: '请直接 @姓名/工号,最多可邀请 5 人',
|
||||
weight: '权重',
|
||||
disclosure: '目标公开',
|
||||
disclosureDesc: '客户、邀评人默认被分享',
|
||||
public: '公开',
|
||||
partially: '部分公开',
|
||||
private: '不公开',
|
||||
submit: '提交',
|
||||
save: '保存',
|
||||
colleague1: '同事甲',
|
||||
colleague2: '同事乙',
|
||||
colleague3: '同事丙'
|
||||
},
|
||||
HK: {
|
||||
pageDesc: '表單頁用於向用戶收集或驗證信息,基礎表單常見於數據項較少的表單場景。',
|
||||
title: '標題',
|
||||
titleInput: '給目標起個名字',
|
||||
date: '起止日期',
|
||||
describe: '目標描述',
|
||||
describeInput: '請輸入你階段性的工作目標',
|
||||
metrics: '衡量標準',
|
||||
metricsInput: '請輸入衡量標準',
|
||||
customer: '客戶',
|
||||
customerInput: '請描述你服務的客戶,內部客戶直接 @姓名/工號',
|
||||
critics: '邀評人',
|
||||
criticsInput: '請直接 @姓名/工號,最多可邀請 5 人',
|
||||
weight: '圈中人',
|
||||
disclosure: '目標公開',
|
||||
disclosureDesc: '客戶、邀評人默認被分享',
|
||||
public: '公開',
|
||||
partially: '部分公開',
|
||||
private: '不公開',
|
||||
submit: '提交',
|
||||
save: '保存',
|
||||
colleague1: '同事甲',
|
||||
colleague2: '同事乙',
|
||||
colleague3: '同事丙'
|
||||
|
||||
},
|
||||
US: {
|
||||
pageDesc: 'Form pages are used to collect or verify information to users, and basic forms are common in scenarios where there are fewer data items.',
|
||||
title: 'Title',
|
||||
titleInput: 'Give the target a name',
|
||||
date: 'Start and end date',
|
||||
describe: 'Goal description',
|
||||
describeInput: 'Please enter your work goals',
|
||||
metrics: 'Metrics',
|
||||
metricsInput: 'Please enter a metric',
|
||||
customer: 'Customer',
|
||||
customerInput: 'Please describe your customer service, internal customers directly @ Name / job number',
|
||||
critics: 'Inviting critics',
|
||||
criticsInput: 'Please direct @ Name / job number, you can invite up to 5 people',
|
||||
weight: 'Weight',
|
||||
disclosure: 'Target disclosure',
|
||||
disclosureDesc: 'Customers and invitees are shared by default',
|
||||
public: 'Public',
|
||||
partially: 'Partially public',
|
||||
private: 'Private',
|
||||
submit: 'Submit',
|
||||
save: 'Save',
|
||||
colleague1: 'Colleague A',
|
||||
colleague2: 'Colleague B',
|
||||
colleague3: 'Colleague C'
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ const AdminUserRouterMap = {
|
|||
icon: 'idcard',
|
||||
component: view.page,
|
||||
meta: {
|
||||
invisible:true, // 不在菜单中显示
|
||||
//invisible:true, // 不在菜单中显示
|
||||
},
|
||||
authority: {
|
||||
permission:['AdminUser-All'],
|
||||
|
|
@ -72,7 +72,7 @@ const AdminUserRouterMap = {
|
|||
path: '/AdminUser/AdminUserSettings',
|
||||
component: () => import('@/pages/Middle/Admin/AdminUser/UserSettings'),
|
||||
meta: {
|
||||
invisible:true, // 不在菜单中显示
|
||||
//invisible:true, // 不在菜单中显示
|
||||
},
|
||||
authority: {
|
||||
permission:['AdminUser-All','AdminUser-Settings'],
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ function parseRoutes(routesConfig, routerMap) { // 解析路由
|
|||
}
|
||||
})
|
||||
Object.assign(meta, cfgMeta) // 合并路由元信息和路由配置元信息
|
||||
|
||||
const route = {
|
||||
path: routeCfg.path || router.path || routeCfg.router, // 路由路径
|
||||
name: routeCfg.name || router.name, // 路由名称
|
||||
|
|
@ -156,8 +157,10 @@ function loadRoutes(routesConfig) { // 加载路由
|
|||
const asyncRoutes = store.state.setting.asyncRoutes // 获取store的setting模块的asyncRoutes
|
||||
if (asyncRoutes) { // 如果动态路由存在
|
||||
console.log("routesConfig && routesConfig.length > 0", routesConfig.length > 0)
|
||||
|
||||
if (routesConfig && routesConfig.length > 0) { // 如果本地路由配置存在 并且 数量大于0
|
||||
const routes = parseRoutes(routesConfig, routerMap) // 解析路由
|
||||
|
||||
// 合并路由 生成路由表
|
||||
const finalRoutes = mergeRoutes(basicOptions.routes, routes)
|
||||
// 格式化路由
|
||||
|
|
@ -165,10 +168,12 @@ function loadRoutes(routesConfig) { // 加载路由
|
|||
console.log('最终路由表finalRoutes:', finalRoutes) // 最终路由表
|
||||
router.options = { ...router.options, routes: finalRoutes } // 路由配置
|
||||
router.matcher = new Router({ ...router.options, routes: [] }).matcher // 重置路由
|
||||
// router.addRoutes(finalRoutes) // 添加路由
|
||||
for (let x of finalRoutes) {
|
||||
router.addRoute(x)
|
||||
}
|
||||
router.addRoutes(finalRoutes) // 添加路由
|
||||
|
||||
|
||||
//for (let x of finalRoutes) {
|
||||
// router.addRoute(x)
|
||||
//}
|
||||
}
|
||||
}
|
||||
// 提取路由国际化数据
|
||||
|
|
|
|||
64
yarn.lock
64
yarn.lock
|
|
@ -1898,7 +1898,7 @@
|
|||
|
||||
"anymatch@~3.1.2":
|
||||
"integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg=="
|
||||
"resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz"
|
||||
"version" "3.1.2"
|
||||
dependencies:
|
||||
"normalize-path" "^3.0.0"
|
||||
|
|
@ -2307,8 +2307,8 @@
|
|||
"fill-range" "^7.0.1"
|
||||
|
||||
"brorand@^1.0.1":
|
||||
"integrity" "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
|
||||
"resolved" "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"
|
||||
"integrity" "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
|
||||
"resolved" "https://registry.npmmirror.com/brorand/-/brorand-1.1.0.tgz"
|
||||
"version" "1.1.0"
|
||||
|
||||
"browserify-aes@^1.0.0", "browserify-aes@^1.0.4":
|
||||
|
|
@ -2719,7 +2719,7 @@
|
|||
|
||||
"chokidar@^3.4.1":
|
||||
"integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw=="
|
||||
"resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz"
|
||||
"version" "3.5.3"
|
||||
dependencies:
|
||||
"anymatch" "~3.1.2"
|
||||
|
|
@ -3830,7 +3830,7 @@
|
|||
|
||||
"delegate@^3.1.2":
|
||||
"integrity" "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
|
||||
"resolved" "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz"
|
||||
"version" "3.2.0"
|
||||
|
||||
"depd@~1.1.2":
|
||||
|
|
@ -4076,7 +4076,7 @@
|
|||
|
||||
"elliptic@^6.0.0", "elliptic@^6.5.2":
|
||||
"integrity" "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw=="
|
||||
"resolved" "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/elliptic/-/elliptic-6.5.3.tgz"
|
||||
"version" "6.5.3"
|
||||
dependencies:
|
||||
"bn.js" "^4.4.0"
|
||||
|
|
@ -4126,7 +4126,7 @@
|
|||
|
||||
"enhanced-resolve@^4.5.0":
|
||||
"integrity" "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg=="
|
||||
"resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz"
|
||||
"version" "4.5.0"
|
||||
dependencies:
|
||||
"graceful-fs" "^4.1.2"
|
||||
|
|
@ -4982,7 +4982,7 @@
|
|||
|
||||
"glob-parent@~5.1.2":
|
||||
"integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
|
||||
"resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz"
|
||||
"version" "5.1.2"
|
||||
dependencies:
|
||||
"is-glob" "^4.0.1"
|
||||
|
|
@ -5069,8 +5069,8 @@
|
|||
"slash" "^2.0.0"
|
||||
|
||||
"good-listener@^1.2.2":
|
||||
"integrity" "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA="
|
||||
"resolved" "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz"
|
||||
"integrity" "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw=="
|
||||
"resolved" "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz"
|
||||
"version" "1.2.2"
|
||||
dependencies:
|
||||
"delegate" "^3.1.2"
|
||||
|
|
@ -5226,7 +5226,7 @@
|
|||
|
||||
"hash.js@^1.0.0", "hash.js@^1.0.3":
|
||||
"integrity" "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA=="
|
||||
"resolved" "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz"
|
||||
"version" "1.1.7"
|
||||
dependencies:
|
||||
"inherits" "^2.0.3"
|
||||
|
|
@ -5253,8 +5253,8 @@
|
|||
"version" "9.18.1"
|
||||
|
||||
"hmac-drbg@^1.0.0":
|
||||
"integrity" "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE="
|
||||
"resolved" "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"
|
||||
"integrity" "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg=="
|
||||
"resolved" "https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
dependencies:
|
||||
"hash.js" "^1.0.3"
|
||||
|
|
@ -6429,7 +6429,7 @@
|
|||
|
||||
"lodash@^4.17.11", "lodash@^4.17.13", "lodash@^4.17.14", "lodash@^4.17.15", "lodash@^4.17.3", "lodash@^4.17.4", "lodash@^4.17.5":
|
||||
"integrity" "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
|
||||
"resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/lodash/-/lodash-4.17.19.tgz"
|
||||
"version" "4.17.19"
|
||||
|
||||
"log-symbols@^2.2.0":
|
||||
|
|
@ -6736,12 +6736,12 @@
|
|||
|
||||
"minimalistic-assert@^1.0.0", "minimalistic-assert@^1.0.1":
|
||||
"integrity" "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
|
||||
"resolved" "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
|
||||
"minimalistic-crypto-utils@^1.0.0", "minimalistic-crypto-utils@^1.0.1":
|
||||
"integrity" "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
|
||||
"resolved" "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
|
||||
"integrity" "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
|
||||
"resolved" "https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
|
||||
"minimatch@^3.0.4":
|
||||
|
|
@ -8039,7 +8039,7 @@
|
|||
|
||||
"prismjs@^1.13.0":
|
||||
"integrity" "sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw=="
|
||||
"resolved" "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/prismjs/-/prismjs-1.21.0.tgz"
|
||||
"version" "1.21.0"
|
||||
optionalDependencies:
|
||||
"clipboard" "^2.0.0"
|
||||
|
|
@ -8313,7 +8313,7 @@
|
|||
|
||||
"readdirp@~3.6.0":
|
||||
"integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="
|
||||
"resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz"
|
||||
"version" "3.6.0"
|
||||
dependencies:
|
||||
"picomatch" "^2.2.1"
|
||||
|
|
@ -8717,8 +8717,8 @@
|
|||
"version" "2.0.0"
|
||||
|
||||
"select@^1.1.2":
|
||||
"integrity" "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0="
|
||||
"resolved" "https://registry.npmjs.org/select/-/select-1.1.2.tgz"
|
||||
"integrity" "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
|
||||
"resolved" "https://registry.npmmirror.com/select/-/select-1.1.2.tgz"
|
||||
"version" "1.1.2"
|
||||
|
||||
"selfsigned@^1.10.7":
|
||||
|
|
@ -9667,7 +9667,7 @@
|
|||
|
||||
"tiny-emitter@^2.0.0":
|
||||
"integrity" "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
|
||||
"resolved" "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz"
|
||||
"version" "2.1.0"
|
||||
|
||||
"tinycolor2@^1.4.1":
|
||||
|
|
@ -10241,7 +10241,7 @@
|
|||
"resolved" "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz"
|
||||
"version" "1.9.1"
|
||||
|
||||
"vue@^2.0.0", "vue@^2.5.3", "vue@^2.6.10", "vue@^2.6.11", "vue@>=2.5.0", "vue@>=2.6.0":
|
||||
"vue@^2.0.0", "vue@^2.5.3", "vue@^2.6.0", "vue@^2.6.10", "vue@^2.6.11", "vue@>=2.5.0", "vue@>=2.6.0":
|
||||
"integrity" "sha1-dllNh31LEiNEBuhONSdcbVFBJcU="
|
||||
"resolved" "https://registry.npm.taobao.org/vue/download/vue-2.6.11.tgz?cache=0&sync_timestamp=1592000011428&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue%2Fdownload%2Fvue-2.6.11.tgz"
|
||||
"version" "2.6.11"
|
||||
|
|
@ -10297,6 +10297,11 @@
|
|||
"resolved" "https://registry.npm.taobao.org/vuex/download/vuex-3.4.0.tgz"
|
||||
"version" "3.4.0"
|
||||
|
||||
"vxe-table@^3.6.6":
|
||||
"integrity" "sha512-DKifb0ekFYCu0UkTE0r1BmkRhabnCnS1+ilnTwciuTyC/DzGfwi8s+8LjX7YMV+Jp+hr4CJubIzHPcP41M+JTg=="
|
||||
"resolved" "https://registry.npmmirror.com/vxe-table/-/vxe-table-3.6.6.tgz"
|
||||
"version" "3.6.6"
|
||||
|
||||
"warning@^4.0.0":
|
||||
"integrity" "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM="
|
||||
"resolved" "https://registry.npm.taobao.org/warning/download/warning-4.0.3.tgz"
|
||||
|
|
@ -10306,14 +10311,14 @@
|
|||
|
||||
"watchpack-chokidar2@^2.0.1":
|
||||
"integrity" "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww=="
|
||||
"resolved" "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz"
|
||||
"version" "2.0.1"
|
||||
dependencies:
|
||||
"chokidar" "^2.1.8"
|
||||
|
||||
"watchpack@^1.7.4":
|
||||
"integrity" "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ=="
|
||||
"resolved" "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/watchpack/-/watchpack-1.7.5.tgz"
|
||||
"version" "1.7.5"
|
||||
dependencies:
|
||||
"graceful-fs" "^4.1.2"
|
||||
|
|
@ -10446,14 +10451,14 @@
|
|||
|
||||
"webpack-theme-color-replacer@1.3.18":
|
||||
"integrity" "sha512-z7qM3opvuSjAyJd0eLMOpZhH56r+fFctczWG6xnhUSeRsvbCg/EnFdsYoGL3xYJZNANvwLlggpJxnAcuFV5a6Q=="
|
||||
"resolved" "https://registry.npmjs.org/webpack-theme-color-replacer/-/webpack-theme-color-replacer-1.3.18.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/webpack-theme-color-replacer/-/webpack-theme-color-replacer-1.3.18.tgz"
|
||||
"version" "1.3.18"
|
||||
dependencies:
|
||||
"webpack-sources" "*"
|
||||
|
||||
"webpack@^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^2.0.0 || ^3.0.0 || ^4.0.0", "webpack@^3.0.0 || ^4.0.0", "webpack@^3.0.0 || ^4.1.0 || ^5.0.0-0", "webpack@^4.0.0", "webpack@^4.0.0 || ^5.0.0", "webpack@^4.3.0", "webpack@^4.4.0", "webpack@^4.8.1", "webpack@>=2", "webpack@>=2.0.0 <5.0.0", "webpack@>=4.0.0":
|
||||
"integrity" "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q=="
|
||||
"resolved" "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz"
|
||||
"resolved" "https://registry.npmmirror.com/webpack/-/webpack-4.46.0.tgz"
|
||||
"version" "4.46.0"
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.9.0"
|
||||
|
|
@ -10626,6 +10631,11 @@
|
|||
"resolved" "https://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-4.0.0.tgz"
|
||||
"version" "4.0.0"
|
||||
|
||||
"xe-utils@^3.5.0", "xe-utils@^3.5.7":
|
||||
"integrity" "sha512-3H+fDBKBR2wLJgyA7k9C/w1Xljx6Maml5ukV0WDY06HjYyGs2FEz6XhcwRCLIDXX4pBP3Gu0nX9DbCeuuRA2Ew=="
|
||||
"resolved" "https://registry.npmmirror.com/xe-utils/-/xe-utils-3.5.7.tgz"
|
||||
"version" "3.5.7"
|
||||
|
||||
"xtend@^4.0.0", "xtend@~4.0.1":
|
||||
"integrity" "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q="
|
||||
"resolved" "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz"
|
||||
|
|
|
|||
Loading…
Reference in New Issue