Commit d5c5180b by Anan Yang Committed by GitHub

Merge pull request #24 from musnow/dev

Dev
parents e4c85b90 d4aa3c1b
{
"printWidth": 120,
"semi": false,
"singleQuote": true
}
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
}, },
"dependencies": { "dependencies": {
"@antv/data-set": "^0.10.1", "@antv/data-set": "^0.10.1",
"ant-design-vue": "^1.1.10-beta", "ant-design-vue": "^1.1.10",
"axios": "^0.18.0", "axios": "^0.18.0",
"dayjs": "^1.7.5", "dayjs": "^1.7.5",
"enquire.js": "^2.1.6", "enquire.js": "^2.1.6",
......
...@@ -5,11 +5,11 @@ import store from './store' ...@@ -5,11 +5,11 @@ import store from './store'
import NProgress from 'nprogress' // progress bar import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style import 'nprogress/nprogress.css' // progress bar style
import notification from 'ant-design-vue/es/notification' import notification from 'ant-design-vue/es/notification'
import { ACCESS_TOKEN } from "@/store/mutation-types" import { ACCESS_TOKEN } from '@/store/mutation-types'
NProgress.configure({ showSpinner: false })// NProgress Configuration NProgress.configure({ showSpinner: false }) // NProgress Configuration
const whiteList = ['/user/login', '/user/register', '/user/register-result']// no redirect whitelist const whiteList = ['/user/login', '/user/register', '/user/register-result'] // no redirect whitelist
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
NProgress.start() // start progress bar NProgress.start() // start progress bar
...@@ -21,35 +21,48 @@ router.beforeEach((to, from, next) => { ...@@ -21,35 +21,48 @@ router.beforeEach((to, from, next) => {
NProgress.done() NProgress.done()
} else { } else {
if (store.getters.roles.length === 0) { if (store.getters.roles.length === 0) {
store.dispatch('GetInfo').then(res => { store
const roles = res.result && res.result.role .dispatch('GetInfo')
store.dispatch('GenerateRoutes', { roles }).then(() => { // 根据roles权限生成可访问的路由表 .then(res => {
router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表 const roles = res.result && res.result.role
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record store.dispatch('GenerateRoutes', { roles }).then(() => {
// 根据roles权限生成可访问的路由表
// 动态添加可访问路由表
router.addRoutes(store.getters.addRouters)
const redirect = decodeURIComponent(from.query.redirect || to.path)
if (to.path === redirect) {
// hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
next({ ...to, replace: true })
} else {
// 跳转到目的路由
next({ path: redirect })
}
})
}) })
}).catch(() => { .catch(() => {
notification.error({ message: '错误', description: '请求用户信息失败,请重试' }) notification.error({
store.dispatch('Logout').then(() => { message: '错误',
next({ path: '/user/login' }) description: '请求用户信息失败,请重试'
})
store.dispatch('Logout').then(() => {
next({ path: '/user/login', query: { redirect: to.fullPath } })
})
}) })
})
} else { } else {
next() next()
} }
} }
} else { } else {
if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入 if (whiteList.indexOf(to.path) !== -1) {
// 在免登录白名单,直接进入
next() next()
} else { } else {
next('/user/login') next({ path: '/user/login', query: { redirect: to.fullPath } })
NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it
} }
} }
}) })
router.afterEach(() => { router.afterEach(() => {
NProgress.done() // finish progress bar NProgress.done() // finish progress bar
}) })
\ No newline at end of file
...@@ -13,20 +13,26 @@ const service = axios.create({ ...@@ -13,20 +13,26 @@ const service = axios.create({
const err = (error) => { const err = (error) => {
if (error.response) { if (error.response) {
if (error.status === 403) { let data = error.response.data
notification.error({ message: '拒绝访问', description: '无权限,拒绝访问' }) const token = Vue.ls.get(ACCESS_TOKEN)
if (error.response.status === 403) {
notification.error({ message: 'Forbidden', description: data.message})
} }
if (error.status === 401) { if (error.response.status === 401) {
notification.error({ message: '未授权', description: '授权验证失败' }) notification.error({ message: 'Unauthorized', description: 'Authorization verification failed' })
store.dispatch('Logout').then(() => { if (token) {
location.reload() store.dispatch('Logout').then(() => {
}) setTimeout(() => {
window.location.reload()
}, 1500)
})
}
} }
} }
return Promise.reject(error) return Promise.reject(error)
}; };
// request 拦截器 // request interceptor
service.interceptors.request.use(config => { service.interceptors.request.use(config => {
const token = Vue.ls.get(ACCESS_TOKEN) const token = Vue.ls.get(ACCESS_TOKEN)
if (token) { if (token) {
...@@ -35,7 +41,7 @@ service.interceptors.request.use(config => { ...@@ -35,7 +41,7 @@ service.interceptors.request.use(config => {
return config return config
}, err) }, err)
// response 拦截器 // response interceptor
service.interceptors.response.use((response) => { service.interceptors.response.use((response) => {
return response.data return response.data
}, err) }, err)
......
...@@ -6,10 +6,10 @@ ...@@ -6,10 +6,10 @@
:labelCol="{lg: {span: 7}, sm: {span: 7}}" :labelCol="{lg: {span: 7}, sm: {span: 7}}"
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }"> :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
<a-input <a-input
v-decorator="{ v-decorator="[
id: 'name', 'name',
options: {rules: [{ required: true, message: '请输入标题' }]} {rules: [{ required: true, message: '请输入标题' }]}
}" ]"
name="name" name="name"
placeholder="给目标起个名字" /> placeholder="给目标起个名字" />
</a-form-item> </a-form-item>
...@@ -20,34 +20,34 @@ ...@@ -20,34 +20,34 @@
<a-range-picker <a-range-picker
name="buildTime" name="buildTime"
style="width: 100%" style="width: 100%"
v-decorator="{ v-decorator="[
id: 'buildTime', 'buildTime',
options: {rules: [{ required: true, message: '请选择起止日期' }]} {rules: [{ required: true, message: '请选择起止日期' }]}
}" /> ]" />
</a-form-item> </a-form-item>
<a-form-item <a-form-item
label="目标描述" label="目标描述"
:labelCol="{lg: {span: 7}, sm: {span: 7}}" :labelCol="{lg: {span: 7}, sm: {span: 7}}"
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }"> :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
<a-textarea <a-textarea
v-decorator="{
id: 'description',
options: {rules: [{ required: true, message: '请输入目标描述' }]}
}"
rows="4" rows="4"
placeholder="请输入你阶段性工作目标" /> placeholder="请输入你阶段性工作目标"
v-decorator="[
'description',
{rules: [{ required: true, message: '请输入目标描述' }]}
]" />
</a-form-item> </a-form-item>
<a-form-item <a-form-item
label="衡量标准" label="衡量标准"
:labelCol="{lg: {span: 7}, sm: {span: 7}}" :labelCol="{lg: {span: 7}, sm: {span: 7}}"
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }"> :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
<a-textarea <a-textarea
v-decorator="{
id: 'type',
options: {rules: [{ required: true, message: '请输入衡量标准' }]}
}"
rows="4" rows="4"
placeholder="请输入衡量标准" /> placeholder="请输入衡量标准"
v-decorator="[
'type',
{rules: [{ required: true, message: '请输入衡量标准' }]}
]" />
</a-form-item> </a-form-item>
<a-form-item <a-form-item
label="客户" label="客户"
...@@ -55,10 +55,10 @@ ...@@ -55,10 +55,10 @@
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }"> :wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
<a-input <a-input
placeholder="请描述你服务的客户,内部客户直接 @姓名/工号" placeholder="请描述你服务的客户,内部客户直接 @姓名/工号"
v-decorator="{ v-decorator="[
id: 'customer', 'customer',
options: {rules: [{ required: true, message: '请描述你服务的客户' }]} {rules: [{ required: true, message: '请描述你服务的客户' }]}
}" /> ]" />
</a-form-item> </a-form-item>
<a-form-item <a-form-item
label="邀评人" label="邀评人"
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<span v-else> <span v-else>
<a @click="saveRow(record.key)">保存</a> <a @click="saveRow(record.key)">保存</a>
<a-divider type="vertical" /> <a-divider type="vertical" />
<a @click="cancle(record.key)">取消</a> <a @click="cancel(record.key)">取消</a>
</span> </span>
</template> </template>
<span v-else> <span v-else>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</span> </span>
</template> </template>
</a-table> </a-table>
<a-button style="width: 100%; margin-top: 16px; margin-bottom: 8px" type="dashed" icon="plus" @click="newMeber">新增成员</a-button> <a-button style="width: 100%; margin-top: 16px; margin-bottom: 8px" type="dashed" icon="plus" @click="newMember">新增成员</a-button>
</form> </form>
</a-card> </a-card>
...@@ -136,7 +136,7 @@ ...@@ -136,7 +136,7 @@
handleSubmit (e) { handleSubmit (e) {
e.preventDefault() e.preventDefault()
}, },
newMeber () { newMember () {
this.data.push({ this.data.push({
key: '-1', key: '-1',
name: '', name: '',
...@@ -163,7 +163,7 @@ ...@@ -163,7 +163,7 @@
const data = this.data const data = this.data
return (newData || data).filter(item => item.key === key)[0] return (newData || data).filter(item => item.key === key)[0]
}, },
cancle (key) { cancel (key) {
let target = this.data.filter(item => item.key === key)[0] let target = this.data.filter(item => item.key === key)[0]
target.editable = false target.editable = false
}, },
......
<template> <template>
<a-form @submit="handleSubmit" :autoFormCreate="(form) => this.form = form" class="form"> <a-form @submit="handleSubmit" :form="form" class="form">
<a-row class="form-row" :gutter="16"> <a-row class="form-row" :gutter="16">
<a-col :lg="6" :md="12" :sm="24"> <a-col :lg="6" :md="12" :sm="24">
<a-form-item <a-form-item label="仓库名">
label="仓库名" <a-input
fieldDecoratorId="repository.name" placeholder="请输入仓库名称"
:fieldDecoratorOptions="{rules: [{ required: true, message: '请输入仓库名称', whitespace: true}]}" v-decorator="[
> 'repository.name',
<a-input placeholder="请输入仓库名称" /> {rules: [{ required: true, message: '请输入仓库名称', whitespace: true}]}
</a-form-item> ]" />
</a-col> </a-form-item>
<a-col :xl="{span: 7, offset: 1}" :lg="{span: 8}" :md="{span: 12}" :sm="24"> </a-col>
<a-form-item <a-col :xl="{span: 7, offset: 1}" :lg="{span: 8}" :md="{span: 12}" :sm="24">
label="仓库域名" <a-form-item
fieldDecoratorId="repository.domain" label="仓库域名">
:fieldDecoratorOptions="{rules: [{ required: true, message: '请输入仓库域名', whitespace: true}, {validator: validate}]}" <a-input
> addonBefore="http://"
<a-input addonBefore="http://" addonAfter=".com" placeholder="请输入"/> addonAfter=".com"
</a-form-item> placeholder="请输入"
</a-col> v-decorator="[
<a-col :xl="{span: 9, offset: 1}" :lg="{span: 10}" :md="{span: 24}" :sm="24"> 'repository.domain',
<a-form-item {rules: [{ required: true, message: '请输入仓库域名', whitespace: true}, {validator: validate}]}
label="仓库管理员" ]" />
fieldDecoratorId="repository.manager" </a-form-item>
:fieldDecoratorOptions="{rules: [{ required: true, message: '请选择管理员'}]}" </a-col>
> <a-col :xl="{span: 9, offset: 1}" :lg="{span: 10}" :md="{span: 24}" :sm="24">
<a-select placeholder="请选择管理员"> <a-form-item
<a-select-option value="王同学">王同学</a-select-option> label="仓库管理员">
<a-select-option value="李同学">李同学</a-select-option> <a-select placeholder="请选择管理员" v-decorator="[ 'repository.manager', {rules: [{ required: true, message: '请选择管理员'}]} ]">
<a-select-option value="黄同学">黄同学</a-select-option> <a-select-option value="王同学">王同学</a-select-option>
</a-select> <a-select-option value="李同学">李同学</a-select-option>
</a-form-item> <a-select-option value="黄同学">黄同学</a-select-option>
</a-col> </a-select>
</a-row> </a-form-item>
<a-row class="form-row" :gutter="16"> </a-col>
<a-col :lg="6" :md="12" :sm="24"> </a-row>
<a-form-item <a-row class="form-row" :gutter="16">
label="审批人" <a-col :lg="6" :md="12" :sm="24">
fieldDecoratorId="repository.auditor" <a-form-item
:fieldDecoratorOptions="{rules: [{ required: true, message: '请选择审批员'}]}" label="审批人">
> <a-select placeholder="请选择审批员" v-decorator="[ 'repository.auditor', {rules: [{ required: true, message: '请选择审批员'}]} ]">
<a-select placeholder="请选择审批员"> <a-select-option value="王晓丽">王晓丽</a-select-option>
<a-select-option value="王晓丽">王晓丽</a-select-option> <a-select-option value="李军">李军</a-select-option>
<a-select-option value="李军">李军</a-select-option> </a-select>
</a-select> </a-form-item>
</a-form-item> </a-col>
</a-col> <a-col :xl="{span: 7, offset: 1}" :lg="{span: 8}" :md="{span: 12}" :sm="24">
<a-col :xl="{span: 7, offset: 1}" :lg="{span: 8}" :md="{span: 12}" :sm="24"> <a-form-item
<a-form-item label="生效日期">
label="生效日期" <a-range-picker
fieldDecoratorId="repository.effectiveDate" style="width: 100%"
:fieldDecoratorOptions="{rules: [{ required: true, message: '请选择生效日期'}]}" v-decorator="[
> 'repository.effectiveDate',
<a-range-picker style="width: 100%" /> {rules: [{ required: true, message: '请选择生效日期'}]}
</a-form-item> ]" />
</a-col> </a-form-item>
<a-col :xl="{span: 9, offset: 1}" :lg="{span: 10}" :md="{span: 24}" :sm="24"> </a-col>
<a-form-item <a-col :xl="{span: 9, offset: 1}" :lg="{span: 10}" :md="{span: 24}" :sm="24">
label="仓库类型" <a-form-item
fieldDecoratorId="repository.type" label="仓库类型">
:fieldDecoratorOptions="{rules: [{ required: true, message: '请选择仓库类型'}]}" <a-select
> placeholder="请选择仓库类型"
<a-select placeholder="请选择仓库类型"> v-decorator="[
<a-select-option value="公开">公开</a-select-option> 'repository.type',
<a-select-option value="私密">私密</a-select-option> {rules: [{ required: true, message: '请选择仓库类型'}]}
</a-select> ]" >
</a-form-item> <a-select-option value="公开">公开</a-select-option>
</a-col> <a-select-option value="私密">私密</a-select-option>
</a-row> </a-select>
<a-form-item v-if="showSubmit"> </a-form-item>
<a-button htmlType="submit" >Submit</a-button> </a-col>
</a-form-item> </a-row>
</a-form> <a-form-item v-if="showSubmit">
</template> <a-button htmlType="submit" >Submit</a-button>
</a-form-item>
<script> </a-form>
export default { </template>
name: "RepositoryForm",
props: { <script>
showSubmit: { export default {
type: Boolean, name: "RepositoryForm",
default: false props: {
} showSubmit: {
}, type: Boolean,
methods: { default: false
handleSubmit (e) { }
e.preventDefault() },
this.form.validateFields((err, values) => { data () {
if (!err) { return {
this.$notification['error']({ form: this.$form.createForm(this)
message: 'Received values of form:', }
description: values },
}) methods: {
} handleSubmit (e) {
}) e.preventDefault()
}, this.form.validateFields((err, values) => {
validate (rule, value, callback) { if (!err) {
const regex = /^user-(.*)$/ this.$notification['error']({
if (!regex.test(value)) { message: 'Received values of form:',
callback('需要以 user- 开头') description: values
} })
callback() }
} })
} },
} validate (rule, value, callback) {
</script> const regex = /^user-(.*)$/
if (!regex.test(value)) {
<style scoped> callback('需要以 user- 开头')
}
callback()
}
}
}
</script>
<style scoped>
</style> </style>
\ No newline at end of file
<template> <template>
<a-form @submit="handleSubmit" :autoFormCreate="(form) => this.form = form" class="form"> <a-form @submit="handleSubmit" :form="form" class="form">
<a-row class="form-row" :gutter="16"> <a-row class="form-row" :gutter="16">
<a-col :lg="6" :md="12" :sm="24"> <a-col :lg="6" :md="12" :sm="24">
<a-form-item <a-form-item
label="任务名" label="任务名">
fieldDecoratorId="task.name" <a-input placeholder="请输入任务名称" v-decorator="[ 'task.name', {rules: [{ required: true, message: '请输入任务名称', whitespace: true}]} ]" />
:fieldDecoratorOptions="{rules: [{ required: true, message: '请输入任务名称', whitespace: true}]}" </a-form-item>
> </a-col>
<a-input placeholder="请输入任务名称" /> <a-col :xl="{span: 7, offset: 1}" :lg="{span: 8}" :md="{span: 12}" :sm="24">
</a-form-item> <a-form-item
</a-col> label="任务描述">
<a-col :xl="{span: 7, offset: 1}" :lg="{span: 8}" :md="{span: 12}" :sm="24"> <a-input placeholder="请输入任务描述" v-decorator="[ 'task.description', {rules: [{ required: true, message: '请输入任务描述', whitespace: true}]} ]" />
<a-form-item </a-form-item>
label="任务描述" </a-col>
fieldDecoratorId="task.description" <a-col :xl="{span: 9, offset: 1}" :lg="{span: 10}" :md="{span: 24}" :sm="24">
:fieldDecoratorOptions="{rules: [{ required: true, message: '请输入任务描述', whitespace: true}]}" <a-form-item
> label="执行人">
<a-input placeholder="请输入任务描述"/> <a-select
</a-form-item> placeholder="请选择执行人"
</a-col> v-decorator="[
<a-col :xl="{span: 9, offset: 1}" :lg="{span: 10}" :md="{span: 24}" :sm="24"> 'task.executor',
<a-form-item {rules: [{ required: true, message: '请选择执行人'}]}
label="执行人" ]" >
fieldDecoratorId="task.executor" <a-select-option value="黄丽丽">黄丽丽</a-select-option>
:fieldDecoratorOptions="{rules: [{ required: true, message: '请选择执行人'}]}" <a-select-option value="李大刀">李大刀</a-select-option>
> </a-select>
<a-select placeholder="请选择执行人"> </a-form-item>
<a-select-option value="黄丽丽">黄丽丽</a-select-option> </a-col>
<a-select-option value="李大刀">李大刀</a-select-option> </a-row>
</a-select> <a-row class="form-row" :gutter="16">
</a-form-item> <a-col :lg="6" :md="12" :sm="24">
</a-col> <a-form-item
</a-row> label="责任人">
<a-row class="form-row" :gutter="16"> <a-select
<a-col :lg="6" :md="12" :sm="24"> placeholder="请选择责任人"
<a-form-item v-decorator="[
label="责任人" 'task.manager',
fieldDecoratorId="task.manager" {rules: [{ required: true, message: '请选择责任人'}]}
:fieldDecoratorOptions="{rules: [{ required: true, message: '请选择责任人'}]}" ]" >
> <a-select-option value="王伟">王伟</a-select-option>
<a-select placeholder="请选择责任人"> <a-select-option value="李红军">李红军</a-select-option>
<a-select-option value="王伟">王伟</a-select-option> </a-select>
<a-select-option value="李红军">李红军</a-select-option> </a-form-item>
</a-select> </a-col>
</a-form-item> <a-col :xl="{span: 7, offset: 1}" :lg="{span: 8}" :md="{span: 12}" :sm="24">
</a-col> <a-form-item
<a-col :xl="{span: 7, offset: 1}" :lg="{span: 8}" :md="{span: 12}" :sm="24"> label="提醒时间">
<a-form-item <a-time-picker
label="提醒时间" style="width: 100%"
fieldDecoratorId="task.time" v-decorator="[
:fieldDecoratorOptions="{rules: [{ required: true, message: '请选择提醒时间'}]}" 'task.time',
> {rules: [{ required: true, message: '请选择提醒时间'}]}
<a-time-picker style="width: 100%" /> ]" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="{span: 9, offset: 1}" :lg="{span: 10}" :md="{span: 24}" :sm="24"> <a-col :xl="{span: 9, offset: 1}" :lg="{span: 10}" :md="{span: 24}" :sm="24">
<a-form-item <a-form-item
label="任务类型" label="任务类型">
fieldDecoratorId="task.type" <a-select
:fieldDecoratorOptions="{rules: [{ required: true, message: '请选择任务类型'}]}" placeholder="请选择任务类型"
> v-decorator="[ 'task.type', {rules: [{ required: true, message: '请选择任务类型'}]} ]" >
<a-select placeholder="请选择任务类型"> <a-select-option value="定时执行">定时执行</a-select-option>
<a-select-option value="定时执行">定时执行</a-select-option> <a-select-option value="周期执行">周期执行</a-select-option>
<a-select-option value="周期执行">周期执行</a-select-option> </a-select>
</a-select> </a-form-item>
</a-form-item> </a-col>
</a-col> </a-row>
</a-row> <a-form-item v-if="showSubmit">
<a-form-item v-if="showSubmit"> <a-button htmlType="submit" >Submit</a-button>
<a-button htmlType="submit" >Submit</a-button> </a-form-item>
</a-form-item> </a-form>
</a-form> </template>
</template>
<script>
<script> export default {
export default { name: "TaskForm",
name: "TaskForm", props: {
props: { showSubmit: {
showSubmit: { type: Boolean,
type: Boolean, default: false
default: false }
} },
}, data () {
methods: { return {
handleSubmit (e) { form: this.$form.createForm(this)
e.preventDefault() }
this.form.validateFields((err, values) => { },
if (!err) { methods: {
this.$notification['error']({ handleSubmit (e) {
message: 'Received values of form:', e.preventDefault()
description: values this.form.validateFields((err, values) => {
}) if (!err) {
} this.$notification['error']({
}) message: 'Received values of form:',
} description: values
} })
} }
</script> })
}
<style scoped> }
}
</script>
<style scoped>
</style> </style>
\ No newline at end of file
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
</div> </div>
<div slot="action"> <div slot="action">
<a-button type="primary" @click="finish">再转一笔</a-button> <a-button type="primary" @click="finish">再转一笔</a-button>
<a-button style="margin-left: 8px">查看账单</a-button> <a-button style="margin-left: 8px" @click="toOrderList">查看账单</a-button>
</div> </div>
</result> </result>
</a-form> </a-form>
...@@ -45,6 +45,9 @@ ...@@ -45,6 +45,9 @@
methods: { methods: {
finish () { finish () {
this.$emit('finish') this.$emit('finish')
},
toOrderList () {
this.$router.push('/list/query-list')
} }
} }
} }
......
...@@ -1366,10 +1366,10 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: ...@@ -1366,10 +1366,10 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
dependencies: dependencies:
color-convert "^1.9.0" color-convert "^1.9.0"
ant-design-vue@^1.1.10-beta: ant-design-vue@^1.1.10:
version "1.1.10-beta" version "1.1.10"
resolved "https://registry.yarnpkg.com/ant-design-vue/-/ant-design-vue-1.1.10-beta.tgz#6f0aeb3db2d512de8ab447a74ab7e51d39fcd434" resolved "https://registry.yarnpkg.com/ant-design-vue/-/ant-design-vue-1.1.10.tgz#b9ebcbab6dc72e0576920f8dc3fe7498e9d4bf61"
integrity sha512-Vj5y9RCCpKkGCsRVqUaXighvEfAAMkQlir+uBCO08FgfBWM73Q8NYJ8RSehpt55ucdb3RE1fHmowzio3p6glnQ== integrity sha512-NJefmFr1WZO6HQVtENDyIquTYMx+3NLKgQdb0PY/U1+VYfnCw21TBl3eOLJTFDC7YKamnCH3pz0Ok0OKr7IVfw==
dependencies: dependencies:
add-dom-event-listener "^1.0.2" add-dom-event-listener "^1.0.2"
array-tree-filter "^2.1.0" array-tree-filter "^2.1.0"
...@@ -1392,7 +1392,7 @@ ant-design-vue@^1.1.10-beta: ...@@ -1392,7 +1392,7 @@ ant-design-vue@^1.1.10-beta:
resize-observer-polyfill "^1.5.0" resize-observer-polyfill "^1.5.0"
shallow-equal "^1.0.0" shallow-equal "^1.0.0"
shallowequal "^1.0.2" shallowequal "^1.0.2"
vue-ref "^1.0.2" vue-ref "^1.0.3"
warning "^3.0.0" warning "^3.0.0"
anymatch@^2.0.0: anymatch@^2.0.0:
...@@ -9056,10 +9056,10 @@ vue-ls@^3.2.0: ...@@ -9056,10 +9056,10 @@ vue-ls@^3.2.0:
resolved "https://registry.yarnpkg.com/vue-ls/-/vue-ls-3.2.0.tgz#33356ad3ec9c30dac203757cf4036abe4ff767b3" resolved "https://registry.yarnpkg.com/vue-ls/-/vue-ls-3.2.0.tgz#33356ad3ec9c30dac203757cf4036abe4ff767b3"
integrity sha512-39FGQMrT9NbG5WGDJfxWj19ZD1tsVoBBN1n8qvq6/+uRB9BansQ9NSyclQ9TzZatRkkM/VEQo5oTsijdM5hGFw== integrity sha512-39FGQMrT9NbG5WGDJfxWj19ZD1tsVoBBN1n8qvq6/+uRB9BansQ9NSyclQ9TzZatRkkM/VEQo5oTsijdM5hGFw==
vue-ref@^1.0.2: vue-ref@^1.0.3:
version "1.0.2" version "1.0.3"
resolved "https://registry.yarnpkg.com/vue-ref/-/vue-ref-1.0.2.tgz#8822640ece91665f01e958bd1fde4038c75e0f34" resolved "https://registry.yarnpkg.com/vue-ref/-/vue-ref-1.0.3.tgz#5b7bbfc6f5833e13f5a9155ac686fafdb03dbcad"
integrity sha512-VQ9/uWlELEaFO7Qws94BAvr83tx4H310nvE32PUaMgHwLqIFtE9tmvxA6G0dUdegUeOrWXSgkg2HGUpqSMjYPw== integrity sha512-6t9bwx6qJGKF+Mo6wEQWMzBAwx+h/oiEKuTC4+eiKzLdIRDPbbvTpsemWFsOKBOUwRGi6WKKqMzVQkkE8QcEfg==
vue-router@^3.0.1: vue-router@^3.0.1:
version "3.0.2" version "3.0.2"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment