mirror of
https://github.com/flipped-aurora/gin-vue-admin.git
synced 2026-09-21 20:35:16 +00:00
Merge branches 'develop' and 'gva_gormv2_dev' of https://github.com/flipped-aurora/gin-vue-admin into gva_gormv2_dev
This commit is contained in:
@@ -1 +0,0 @@
|
||||
[1110/113210.377:ERROR:directory_reader_win.cc(43)] FindFirstFile: 系统找不到指定的路径。 (0x3)
|
||||
Generated
+58
-41
@@ -8846,12 +8846,8 @@
|
||||
"highlight.js": {
|
||||
"version": "9.15.10",
|
||||
"resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.15.10.tgz",
|
||||
"integrity": "sha1-exjtdckDSMBF7vntCMoTGaIhmtI="
|
||||
},
|
||||
"highlight.js-async-webpack": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/highlight.js-async-webpack/-/highlight.js-async-webpack-1.0.4.tgz",
|
||||
"integrity": "sha1-wGtnv5nwSQRdYrdW5YVbCRLsYWw="
|
||||
"integrity": "sha1-exjtdckDSMBF7vntCMoTGaIhmtI=",
|
||||
"dev": true
|
||||
},
|
||||
"hmac-drbg": {
|
||||
"version": "1.0.1",
|
||||
@@ -10230,15 +10226,6 @@
|
||||
"object-visit": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"mavon-editor": {
|
||||
"version": "2.7.7",
|
||||
"resolved": "https://registry.npmjs.org/mavon-editor/-/mavon-editor-2.7.7.tgz",
|
||||
"integrity": "sha512-lXnYe+dztKepbv8bi2nedRqG/AwyUDF8gmkv9lHD3fpVJ1+pzAS6YILRIryKCvO9qPIOPEThHsda2DxtlzRsZA==",
|
||||
"requires": {
|
||||
"highlight.js": "^9.11.0",
|
||||
"highlight.js-async-webpack": "^1.0.4"
|
||||
}
|
||||
},
|
||||
"md5.js": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
|
||||
@@ -10929,6 +10916,12 @@
|
||||
"resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz",
|
||||
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
|
||||
},
|
||||
"numericjs": {
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/numericjs/-/numericjs-1.2.6.tgz",
|
||||
"integrity": "sha1-wNryXEvLIuBDv4NEP5856LM2eYs=",
|
||||
"dev": true
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz",
|
||||
@@ -12443,6 +12436,53 @@
|
||||
"unpipe": "1.0.0"
|
||||
}
|
||||
},
|
||||
"raw-loader": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz",
|
||||
"integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"loader-utils": "^1.1.0",
|
||||
"schema-utils": "^2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "6.12.6",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
||||
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"ajv-keywords": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
|
||||
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
||||
"dev": true
|
||||
},
|
||||
"schema-utils": {
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
|
||||
"integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/json-schema": "^7.0.5",
|
||||
"ajv": "^6.12.4",
|
||||
"ajv-keywords": "^3.5.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"read-pkg": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz",
|
||||
@@ -14898,9 +14938,9 @@
|
||||
}
|
||||
},
|
||||
"vue-loader-v16": {
|
||||
"version": "npm:vue-loader@16.0.0-beta.9",
|
||||
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.0.0-beta.9.tgz",
|
||||
"integrity": "sha512-mu9pg6554GbXDSO8LlxkQM6qUJzUkb/A0FJc9LgRqnU9MCnhzEXwCt1Zx5NObvFpzs2mH2dH/uUCDwL8Qaz9sA==",
|
||||
"version": "npm:vue-loader@16.1.1",
|
||||
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.1.tgz",
|
||||
"integrity": "sha512-wz/+HFg/3SBayHWAlZXARcnDTl3VOChrfW9YnxvAweiuyKX/7IGx1ad/4yJHmwhgWlOVYMAbTiI7GV8G33PfGQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
@@ -14993,15 +15033,6 @@
|
||||
"vue": "^2.5.21"
|
||||
}
|
||||
},
|
||||
"vue-quill-editor": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz",
|
||||
"integrity": "sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==",
|
||||
"requires": {
|
||||
"object-assign": "^4.1.1",
|
||||
"quill": "^1.3.4"
|
||||
}
|
||||
},
|
||||
"vue-router": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.1.3.tgz",
|
||||
@@ -15532,20 +15563,6 @@
|
||||
"integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=",
|
||||
"dev": true
|
||||
},
|
||||
"wfd-gva": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/wfd-gva/-/wfd-gva-1.0.4.tgz",
|
||||
"integrity": "sha512-m08qHdhUFUbj7IzJWOoxhN9VAJKzx/QbkTi+XXIHrX24UGovy4XvwmOrWrna+3rHkq60xszHMy1U/MQflNCPlA==",
|
||||
"requires": {
|
||||
"@antv/dom-util": "2.0.2",
|
||||
"@antv/g-canvas": "^0.4.12",
|
||||
"@antv/g6": "3.5.2",
|
||||
"@antv/matrix-util": "2.0.7",
|
||||
"@antv/util": "~2.0.9",
|
||||
"element-ui": "2.12.0",
|
||||
"vue": "^2.6.10"
|
||||
}
|
||||
},
|
||||
"which": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz",
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
"core-js": "^3.6.5",
|
||||
"echarts": "^4.7.0",
|
||||
"element-ui": "^2.12.0",
|
||||
"mavon-editor": "^2.7.7",
|
||||
"node-sass": "^4.14.1",
|
||||
"path": "^0.12.7",
|
||||
"qs": "^6.8.0",
|
||||
@@ -25,7 +24,6 @@
|
||||
"timeline-vuejs": "1.1.1",
|
||||
"vue": "^2.6.10",
|
||||
"vue-particle-line": "^0.1.4",
|
||||
"vue-quill-editor": "^3.0.6",
|
||||
"vue-router": "^3.1.3",
|
||||
"vue-simple-uploader": "^0.7.4",
|
||||
"vuescroll": "^4.14.4",
|
||||
|
||||
@@ -9,28 +9,9 @@ Vue.use(ElementUI);
|
||||
// 引入封装的router
|
||||
import router from '@/router/index'
|
||||
|
||||
// canvas背景插件
|
||||
import vueParticleLine from 'vue-particle-line'
|
||||
import 'vue-particle-line/dist/vue-particle-line.css'
|
||||
Vue.use(vueParticleLine)
|
||||
|
||||
// time line css
|
||||
import '../node_modules/timeline-vuejs/dist/timeline-vuejs.css'
|
||||
|
||||
// 富文本插件
|
||||
import VueQuillEditor from 'vue-quill-editor'
|
||||
import 'quill/dist/quill.core.css'
|
||||
import 'quill/dist/quill.snow.css'
|
||||
import 'quill/dist/quill.bubble.css'
|
||||
|
||||
Vue.use(VueQuillEditor)
|
||||
|
||||
// markdown插件
|
||||
import mavonEditor from 'mavon-editor'
|
||||
import 'mavon-editor/dist/css/index.css'
|
||||
|
||||
Vue.use(mavonEditor)
|
||||
|
||||
import '@/permission'
|
||||
import { store } from '@/store/index'
|
||||
Vue.config.productionTip = false
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import router from './router'
|
||||
import { store } from '@/store/index'
|
||||
import getPageTitle from '@/utils/page'
|
||||
|
||||
let asyncRouterFlag = 0
|
||||
|
||||
@@ -8,6 +9,8 @@ const whiteList = ['login']
|
||||
router.beforeEach(async(to, from, next) => {
|
||||
const token = store.getters['user/token']
|
||||
// 在白名单中的判断情况
|
||||
//修改网页标签名称
|
||||
document.title = getPageTitle(to.meta.title)
|
||||
if (whiteList.indexOf(to.name) > -1) {
|
||||
if (token) {
|
||||
next({ path: '/layout/dashboard' })
|
||||
|
||||
@@ -46,6 +46,7 @@ export const user = {
|
||||
} else {
|
||||
router.push({ path: '/layout/dashboard' })
|
||||
}
|
||||
return true
|
||||
}
|
||||
},
|
||||
async LoginOut({ commit }) {
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
const title = 'GIN-VUE-ADMIN'
|
||||
|
||||
export default function getPageTitle(pageTitle) {
|
||||
if (pageTitle) {
|
||||
return `${pageTitle} - ${title}`
|
||||
}
|
||||
return `${title}`
|
||||
}
|
||||
@@ -1,187 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-form :model="form" label-width="80px" ref="form">
|
||||
<el-row>
|
||||
<el-col :span="3" :xs="6"><label for="">活动名称</label></el-col>
|
||||
<el-col :span="10" :xs="14"><el-input v-model="form.name"></el-input></el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="3" :xs="6"><label for="">活动区域</label></el-col>
|
||||
<el-col :span="10" :xs="14">
|
||||
<el-select placeholder="请选择活动区域" v-model="form.region">
|
||||
<el-option label="上海" value="shanghai"></el-option>
|
||||
<el-option label="北京" value="beijing"></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="3" :xs="6"><label for="">活动时间</label></el-col>
|
||||
<el-col :span="10" :xs="18">
|
||||
<el-col :span="11">
|
||||
<el-date-picker placeholder="选择日期" style="width: 100%;" type="date" v-model="form.date1"></el-date-picker>
|
||||
</el-col>
|
||||
<el-col :span="2" class="line">——</el-col>
|
||||
<el-col :span="11">
|
||||
<el-time-picker placeholder="选择时间" style="width: 100%;" v-model="form.date2"></el-time-picker>
|
||||
</el-col>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="3" :xs="6"><label for="">即时配送</label></el-col>
|
||||
<el-col :span="10" :xs="14"><el-switch v-model="form.delivery"></el-switch></el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="3" :xs="6"><label for="">活动性质</label></el-col>
|
||||
<el-col :span="10" :xs="14">
|
||||
<el-checkbox-group v-model="form.type">
|
||||
<el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
|
||||
<el-checkbox label="地推活动" name="type"></el-checkbox>
|
||||
<el-checkbox label="线下主题活动" name="type"></el-checkbox>
|
||||
<el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="3" :xs="6"><label for="">特殊资源</label></el-col>
|
||||
<el-col :span="10" :xs="14">
|
||||
<el-radio-group v-model="form.resource">
|
||||
<el-radio label="线上品牌商赞助"></el-radio>
|
||||
<el-radio label="线下场地免费"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="3" :xs="6"><label for="">活动形式</label></el-col>
|
||||
<el-col :span="10" :xs="14"><el-input type="textarea" v-model="form.desc"></el-input></el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="3" :xs="6"><label for="">穿梭框</label></el-col>
|
||||
<el-col :span="20" :xs="24">
|
||||
<el-transfer
|
||||
:data="data"
|
||||
:filter-method="filterMethod"
|
||||
filter-placeholder="请输入城市拼音"
|
||||
filterable
|
||||
v-model="value"
|
||||
></el-transfer>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="3" :xs="6"><label for="">活动时间</label></el-col>
|
||||
<el-col :span="10"><el-input v-model="form.name"></el-input></el-col>
|
||||
</el-row>
|
||||
<el-row type="flex" justify="center">
|
||||
<el-col :span="13">
|
||||
<el-button @click="onSubmit" type="primary">立即创建</el-button>
|
||||
<el-button>取消</el-button>
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
||||
<!-- <el-form-item label="活动名称">
|
||||
<el-input v-model="form.name"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select label="活动区域" placeholder="请选择活动区域" v-model="form.region">
|
||||
<el-option label="上海" value="shanghai"></el-option>
|
||||
<el-option label="北京" value="beijing"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="活动时间">
|
||||
<el-col :span="11">
|
||||
<el-date-picker placeholder="选择日期" style="width: 100%;" type="date" v-model="form.date1"></el-date-picker>
|
||||
</el-col>
|
||||
<el-col :span="2" class="line" style="text-align: center">——</el-col>
|
||||
<el-col :span="11">
|
||||
<el-time-picker placeholder="选择时间" style="width: 100%;" v-model="form.date2"></el-time-picker>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="即时配送">
|
||||
<el-switch v-model="form.delivery"></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item label="活动性质">
|
||||
<el-checkbox-group v-model="form.type">
|
||||
<el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
|
||||
<el-checkbox label="地推活动" name="type"></el-checkbox>
|
||||
<el-checkbox label="线下主题活动" name="type"></el-checkbox>
|
||||
<el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="特殊资源">
|
||||
<el-radio-group v-model="form.resource">
|
||||
<el-radio label="线上品牌商赞助"></el-radio>
|
||||
<el-radio label="线下场地免费"></el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="活动形式">
|
||||
<el-input type="textarea" v-model="form.desc"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="穿梭框">
|
||||
<el-transfer
|
||||
:data="data"
|
||||
:filter-method="filterMethod"
|
||||
filter-placeholder="请输入城市拼音"
|
||||
filterable
|
||||
v-model="value"
|
||||
></el-transfer>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="onSubmit" type="primary">立即创建</el-button>
|
||||
<el-button>取消</el-button>
|
||||
</el-form-item> -->
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
const generateData = () => {
|
||||
const data = []
|
||||
const cities = ['上海', '北京', '广州', '深圳', '南京', '西安', '成都']
|
||||
const pinyin = [
|
||||
'shanghai',
|
||||
'beijing',
|
||||
'guangzhou',
|
||||
'shenzhen',
|
||||
'nanjing',
|
||||
'xian',
|
||||
'chengdu'
|
||||
]
|
||||
cities.forEach((city, index) => {
|
||||
data.push({
|
||||
label: city,
|
||||
key: index,
|
||||
pinyin: pinyin[index]
|
||||
})
|
||||
})
|
||||
return data
|
||||
}
|
||||
return {
|
||||
form: {
|
||||
name: '',
|
||||
region: '',
|
||||
date1: '',
|
||||
date2: '',
|
||||
delivery: false,
|
||||
type: [],
|
||||
resource: '',
|
||||
desc: ''
|
||||
},
|
||||
data: generateData(),
|
||||
value: [],
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
filterMethod(query, item) {
|
||||
return item.pinyin.indexOf(query) > -1
|
||||
},
|
||||
onSubmit() {
|
||||
this.$message({
|
||||
message: '创建成功',
|
||||
type: 'success'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,53 +0,0 @@
|
||||
<template>
|
||||
<div>
|
||||
<h1>富文本编辑器</h1>
|
||||
<div class="edit_container">
|
||||
<quill-editor
|
||||
:options="editorOption"
|
||||
@blur="onEditorBlur($event)"
|
||||
@change="onEditorChange($event)"
|
||||
@focus="onEditorFocus($event)"
|
||||
ref="myQuillEditor"
|
||||
v-model="content"
|
||||
></quill-editor>
|
||||
<el-button plain @click="saveHtml">保存</el-button>
|
||||
</div>
|
||||
<h1>markdown编辑器</h1>
|
||||
<div class="edit">
|
||||
<mavon-editor v-model="model.content"></mavon-editor>
|
||||
<el-button type="primary" size="small" @click="submit">发表</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'App',
|
||||
data() {
|
||||
return {
|
||||
content: `<p>hello world</p>`,
|
||||
editorOption: {},
|
||||
model:{
|
||||
content:''
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
editor() {
|
||||
return this.$refs.myQuillEditor.quill
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// onEditorReady(editor) { // 准备编辑器
|
||||
|
||||
// },
|
||||
onEditorBlur() {}, // 失去焦点事件
|
||||
onEditorFocus() {}, // 获得焦点事件
|
||||
onEditorChange() {}, // 内容改变事件
|
||||
saveHtml() {
|
||||
console.log(this.content)
|
||||
}, // 保存方法
|
||||
submit(){}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,115 +0,0 @@
|
||||
// table 纯前端示例
|
||||
<template>
|
||||
<div>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
@selection-change="handleSelectionChange"
|
||||
border
|
||||
ref="multipleTable"
|
||||
stripe
|
||||
style="width: 100%"
|
||||
tooltip-effect="dark"
|
||||
>
|
||||
<el-table-column type="selection" width="55"></el-table-column>
|
||||
<el-table-column label="日期" width="120">
|
||||
<template slot-scope="scope">{{ scope.row.date }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="姓名" prop="name" width="120"></el-table-column>
|
||||
<el-table-column label="年龄" prop="age" width="120"></el-table-column>
|
||||
<el-table-column label="住址" prop="address" min-width="200" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="是否禁用" prop="switch" width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-switch active-text="开启" inactive-text="禁用" v-model="scope.row.switch"></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="按钮组" width="200">
|
||||
<template slot-scope="scope" >
|
||||
<el-button type="text" size="small" @click="toggleSelection([scope.row])">按钮1</el-button>
|
||||
<el-button type="text" size="small" @click="toggleSelection([scope.row])">按钮2</el-button>
|
||||
<el-button type="text" size="small" @click="toggleSelection([scope.row])">按钮3</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="margin-top: 20px">
|
||||
<el-button @click="toggleSelection([tableData[1], tableData[2]])">切换第二、第三行的选中状态</el-button>
|
||||
<el-button @click="toggleSelection()">取消选择</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'Table',
|
||||
data() {
|
||||
return {
|
||||
tableData: [
|
||||
{
|
||||
date: '2016-05-03',
|
||||
name: '王小虎',
|
||||
age: 12,
|
||||
address: '上海市普陀区金沙江路 1518 弄',
|
||||
switch:true
|
||||
},
|
||||
{
|
||||
date: '2016-05-02',
|
||||
name: '王小虎',
|
||||
age: 12,
|
||||
address: '上海市普陀区金沙江路 1518 弄',
|
||||
switch:true
|
||||
},
|
||||
{
|
||||
date: '2016-05-04',
|
||||
name: '王小虎',
|
||||
age: 12,
|
||||
address: '上海市普陀区金沙江路 1518 弄',
|
||||
switch:true
|
||||
},
|
||||
{
|
||||
date: '2016-05-01',
|
||||
name: '王小虎',
|
||||
age: 12,
|
||||
address: '上海市普陀区金沙江路 1518 弄',
|
||||
switch:false
|
||||
},
|
||||
{
|
||||
date: '2016-05-08',
|
||||
name: '王小虎',
|
||||
age: 12,
|
||||
address: '上海市普陀区金沙江路 1518 弄',
|
||||
switch:true
|
||||
},
|
||||
{
|
||||
date: '2016-05-06',
|
||||
name: '王小虎',
|
||||
age: 12,
|
||||
address: '上海市普陀区金沙江路 1518 弄',
|
||||
switch:true
|
||||
},
|
||||
{
|
||||
date: '2016-05-07',
|
||||
name: '王小虎',
|
||||
age: 12,
|
||||
address: '上海市普陀区金沙江路 1518 弄',
|
||||
switch:false
|
||||
}
|
||||
],
|
||||
multipleSelection: []
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
toggleSelection(rows) {
|
||||
if (rows) {
|
||||
rows.forEach(row => {
|
||||
this.$refs.multipleTable.toggleRowSelection(row)
|
||||
})
|
||||
} else {
|
||||
this.$refs.multipleTable.clearSelection()
|
||||
}
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -20,14 +20,9 @@
|
||||
@keyup.enter.native="submitForm"
|
||||
>
|
||||
<el-form-item prop="username">
|
||||
<el-input
|
||||
placeholder="请输入用户名"
|
||||
v-model="loginForm.username"
|
||||
>
|
||||
<i
|
||||
class="el-input__icon el-icon-user"
|
||||
slot="suffix"
|
||||
></i></el-input>
|
||||
<el-input placeholder="请输入用户名" v-model="loginForm.username">
|
||||
<i class="el-input__icon el-icon-user" slot="suffix"></i
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="password">
|
||||
<el-input
|
||||
@@ -42,12 +37,12 @@
|
||||
></i>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item style="position:relative">
|
||||
<el-form-item style="position: relative">
|
||||
<el-input
|
||||
v-model="loginForm.captcha"
|
||||
name="logVerify"
|
||||
placeholder="请输入验证码"
|
||||
style="width:60%"
|
||||
style="width: 60%"
|
||||
/>
|
||||
<div class="vPic">
|
||||
<img
|
||||
@@ -61,7 +56,7 @@
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submitForm" style="width:100%"
|
||||
<el-button type="primary" @click="submitForm" style="width: 100%"
|
||||
>登 录</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
@@ -83,9 +78,7 @@
|
||||
><img src="@/assets/video.png" class="link-icon"
|
||||
/></a>
|
||||
</div>
|
||||
<div class="copyright">
|
||||
Copyright © {{ curYear }} 💖flipped-aurora
|
||||
</div>
|
||||
<div class="copyright">Copyright © {{ curYear }} 💖flipped-aurora</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -135,13 +128,15 @@ export default {
|
||||
methods: {
|
||||
...mapActions("user", ["LoginIn"]),
|
||||
async login() {
|
||||
await this.LoginIn(this.loginForm);
|
||||
return await this.LoginIn(this.loginForm);
|
||||
},
|
||||
async submitForm() {
|
||||
this.$refs.loginForm.validate(async (v) => {
|
||||
if (v) {
|
||||
this.login();
|
||||
this.loginVefify();
|
||||
const flag = await this.login();
|
||||
if (!flag) {
|
||||
this.loginVefify();
|
||||
}
|
||||
} else {
|
||||
this.$message({
|
||||
type: "error",
|
||||
@@ -167,6 +162,5 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import '@/style/login.scss';
|
||||
|
||||
@import "@/style/login.scss";
|
||||
</style>
|
||||
|
||||
@@ -4,13 +4,11 @@
|
||||
<el-col :span="6">
|
||||
<div class="fl-left avatar-box">
|
||||
<div class="user-card">
|
||||
<el-avatar
|
||||
class="user-avatar"
|
||||
:size="160"
|
||||
:src="userInfo.headerImg"
|
||||
shape="square"
|
||||
@click.native="openChooseImg"
|
||||
></el-avatar>
|
||||
<div class="user-headpic-update" :style="{ 'background-image': 'url(' + userInfo.headerImg + ')','background-repeat':'no-repeat','background-size':'cover' }" >
|
||||
<span class="update" @click="openChooseImg">
|
||||
<i class="el-icon-edit"></i>
|
||||
重新上传</span>
|
||||
</div>
|
||||
<div class="user-personality">
|
||||
<p class="nickname">{{userInfo.nickName}}</p>
|
||||
<p class="person-info">这个家伙很懒,什么都没有留下</p>
|
||||
@@ -18,7 +16,7 @@
|
||||
<div class="user-information">
|
||||
<ul>
|
||||
<li>
|
||||
<i class="el-icon-user"></i>资深前端工程师
|
||||
<i class="el-icon-user"></i>{{userInfo.nickName}}
|
||||
</li>
|
||||
<li>
|
||||
<i class="el-icon-data-analysis"></i>北京反转极光科技有限公司-技术部-前端事业群
|
||||
@@ -216,9 +214,6 @@ export default {
|
||||
box-shadow: -2px 0 20px -16px;
|
||||
width: 80%;
|
||||
height: 100%;
|
||||
.user-avatar{
|
||||
cursor: pointer;
|
||||
}
|
||||
.user-card {
|
||||
min-height: calc(90vh - 200px);
|
||||
padding: 30px 20px;
|
||||
@@ -282,4 +277,27 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
.user-headpic-update{
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
line-height: 120px;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border-radius: 20px;
|
||||
&:hover{
|
||||
color: #fff;
|
||||
background: linear-gradient(to bottom, rgba(255,255,255,0.15) 0%, rgba(0,0,0,0.15) 100%), radial-gradient(at top center, rgba(255,255,255,0.40) 0%, rgba(0,0,0,0.40) 120%) #989898;
|
||||
background-blend-mode: multiply,multiply;
|
||||
.update{
|
||||
color:#fff ;
|
||||
}
|
||||
}
|
||||
.update{
|
||||
height: 120px;
|
||||
width: 120px;
|
||||
text-align: center;
|
||||
color:transparent;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -69,7 +69,6 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="用户角色" label-width="80px" prop="authorityId">
|
||||
<el-cascader
|
||||
@change="changeAuthority(scope.row)"
|
||||
v-model="userInfo.authorityId"
|
||||
:options="authOptions"
|
||||
:show-all-levels="false"
|
||||
|
||||
Reference in New Issue
Block a user