Commit f4dee9dd authored by danfuman's avatar danfuman

修改

parent 698b5977
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
"vue-cropper": "0.5.5", "vue-cropper": "0.5.5",
"vue-meta": "2.4.0", "vue-meta": "2.4.0",
"vue-router": "3.4.9", "vue-router": "3.4.9",
"vuedraggable": "2.24.3", "vuedraggable": "^2.24.3",
"vuex": "3.6.0" "vuex": "3.6.0"
}, },
"devDependencies": { "devDependencies": {
......
<template> <template>
<div id="tags-view-container" class="tags-view-container"> <div id="tags-view-container" class="tags-view-container">
<scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll"> <scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll">
<router-link <draggable v-model="visitedViews" :options="dragOptions" @end="end">
v-for="(tag, index) in visitedViews" <router-link
ref="tag" v-for="(tag, index) in visitedViews"
:key="tag.path" ref="tag"
:class="isActive(tag)?'active':''" :key="tag.path"
:to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }" :class="isActive(tag)?'active':''"
tag="span" :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }"
class="tags-view-item" tag="span"
@click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''" class="tags-view-item"
@contextmenu.prevent.native="openMenu(tag,$event)" @click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''"
> @contextmenu.prevent.native="openMenu(tag,$event)"
<svg :class="isActive(tag)?'tags-icon tags-icon-active':'tags-icon'" aria-hidden="true"> >
<use :xlink:href="iconName(tag)" /> <svg :class="isActive(tag)?'tags-icon tags-icon-active':'tags-icon'" aria-hidden="true">
</svg> <use :xlink:href="iconName(tag)" />
<span :id="isActive(tag)?'tagTitle':''">{{ tag.title }}</span> </svg>
<span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" /> <span :id="isActive(tag)?'tagTitle':''">{{ tag.title }}</span>
<i :class="index!=visitedViews.length-1 && index != isActiveIndex() && index != isActiveIndex()-1?'tags-item-line':'tags-item-line item-color'" /> <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
</router-link> <i :class="index!=visitedViews.length-1 && index != isActiveIndex() && index != isActiveIndex()-1?'tags-item-line':'tags-item-line item-color'" />
</router-link>
</draggable>
</scroll-pane> </scroll-pane>
<ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu"> <ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">
<li @click="refreshSelectedTag(selectedTag)"><i class="el-icon-refresh-right"></i> 刷新页面</li> <li @click="refreshSelectedTag(selectedTag)"><i class="el-icon-refresh-right"></i> 刷新页面</li>
...@@ -60,11 +63,12 @@ ...@@ -60,11 +63,12 @@
</template> </template>
<script> <script>
import ScrollPane from './ScrollPane' import draggable from 'vuedraggable'
import path from 'path' import ScrollPane from './ScrollPane'
import path from 'path'
export default { export default {
components: { ScrollPane }, components: { ScrollPane,draggable },
data() { data() {
return { return {
visible: false, visible: false,
...@@ -73,11 +77,22 @@ export default { ...@@ -73,11 +77,22 @@ export default {
selectedTag: {}, selectedTag: {},
affixTags: [], affixTags: [],
showall:false, showall:false,
dragOptions: {
animation: 200, // 动画时间,单位毫秒
group: 'items', // 分组,同一分组内的元素可以互相拖拽
ghostClass: 'ghost', // 拖拽过程中占位元素的class名称
sort: true, // 是否启用排序功能
draggable: '.tags-view-item', // 可拖拽元素的选择器
}
} }
}, },
computed: { computed: {
visitedViews() { visitedViews:{
return this.$store.state.tagsView.visitedViews get() {
console.log(this.$store.state.tagsView.visitedViews)
return this.$store.state.tagsView.visitedViews
},
set() {}
}, },
iconName() { iconName() {
return function(val) { return function(val) {
...@@ -292,7 +307,26 @@ export default { ...@@ -292,7 +307,26 @@ export default {
}, },
handleScroll() { handleScroll() {
this.closeMenu() this.closeMenu()
} },
end (event) {
//调换顺序
let oldIndex = event.oldIndex//移动初始位置
let newIndex = event.newIndex//运动终止位置
let diff = Math.abs(newIndex - oldIndex)//插值绝对值
let index = this.visitedViews[oldIndex]
if (eval(oldIndex) > eval(newIndex)) {
for (let i = 0; i < diff; i++) {
this.visitedViews[oldIndex - i] = this.visitedViews[oldIndex - i - 1]
}
this.visitedViews[newIndex] = index
} else {
for (let i = 0; i < diff; i++) {
this.visitedViews[oldIndex + i] = this.visitedViews[oldIndex + i + 1]
}
this.visitedViews[newIndex] = index
}
this.$forceUpdate()
},
} }
} }
</script> </script>
......
...@@ -53,14 +53,14 @@ export default { ...@@ -53,14 +53,14 @@ export default {
{title: '集团成员', pathName: 'members'}, {title: '集团成员', pathName: 'members'},
{title: '集团资质', pathName: 'qualifications'}, {title: '集团资质', pathName: 'qualifications'},
{title: '集团业绩', pathName: 'performance'}, {title: '集团业绩', pathName: 'performance'},
{title: '集团招标', pathName: 'zhaobiao'}, // {title: '集团招标', pathName: 'zhaobiao'},
], ],
defaultRoute: [], defaultRoute: [],
customer:[ customer:[
'members', 'members',
'qualifications', 'qualifications',
'performance', 'performance',
'zhaobiao', // 'zhaobiao',
], ],
uniqueOpened:false, uniqueOpened:false,
searchIndex: '' searchIndex: ''
......
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