clay : 任意节点退回完成 #34
|
|
@ -4,9 +4,8 @@
|
||||||
:style="{'--row':row}">
|
:style="{'--row':row}">
|
||||||
<slot name="pre"></slot>
|
<slot name="pre"></slot>
|
||||||
<div style="display: flex;">
|
<div style="display: flex;">
|
||||||
<div v-for="(user,index) in userInfo" :key="index">
|
<div v-for="(user,index) in userInfo" :key="index" class="avatar_name">
|
||||||
<div>
|
<el-avatar size="large"
|
||||||
<el-avatar style="margin-right: 5px;" size="large"
|
|
||||||
:src="user.avatar"></el-avatar>
|
:src="user.avatar"></el-avatar>
|
||||||
<div v-if="user.icon"
|
<div v-if="user.icon"
|
||||||
class="el-timeline-item__node" :style="{
|
class="el-timeline-item__node" :style="{
|
||||||
|
|
@ -17,8 +16,9 @@
|
||||||
:class="user.icon"
|
:class="user.icon"
|
||||||
></i>
|
></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<el-tooltip class="item" effect="dark" :content="user.name" placement="bottom-start">
|
||||||
<div>{{user.name}}</div>
|
<span class="item_name">{{ user.name }}</span>
|
||||||
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -27,20 +27,20 @@
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: "AvatarEllipsis",
|
name: "AvatarEllipsis",
|
||||||
install(Vue){
|
install(Vue) {
|
||||||
Vue.component('avatarEllipsis', this)
|
Vue.component('avatarEllipsis', this)
|
||||||
},
|
},
|
||||||
components: {},
|
components: {},
|
||||||
props:{
|
props: {
|
||||||
row: {
|
row: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 1
|
default: 1
|
||||||
},
|
},
|
||||||
hoverTip:{
|
hoverTip: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
userInfo:{
|
userInfo: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: []
|
default: []
|
||||||
}
|
}
|
||||||
|
|
@ -52,7 +52,7 @@ export default {
|
||||||
return {}
|
return {}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
init(){
|
init() {
|
||||||
for (let user of this.userInfo) {
|
for (let user of this.userInfo) {
|
||||||
this.initUser(user)
|
this.initUser(user)
|
||||||
}
|
}
|
||||||
|
|
@ -79,7 +79,7 @@ export default {
|
||||||
this.$set(user, "icon", "el-icon-close")
|
this.$set(user, "icon", "el-icon-close")
|
||||||
this.$set(user, "color", "#f56c6c")
|
this.$set(user, "color", "#f56c6c")
|
||||||
}
|
}
|
||||||
if (state === 'pass'){
|
if (state === 'pass') {
|
||||||
this.$set(user, "icon", "el-icon-more")
|
this.$set(user, "icon", "el-icon-more")
|
||||||
this.$set(user, "color", "#c0c4cc")
|
this.$set(user, "color", "#c0c4cc")
|
||||||
}
|
}
|
||||||
|
|
@ -90,5 +90,18 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.avatar_name {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
margin-right: 5px;
|
||||||
|
/*width: 45px;*/
|
||||||
|
}
|
||||||
|
.item_name{
|
||||||
|
width: 45px;
|
||||||
|
text-align: center;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,10 @@
|
||||||
<div class="node-body-content">
|
<div class="node-body-content">
|
||||||
<i :class="leftIcon" v-if="leftIcon"></i>
|
<i :class="leftIcon" v-if="leftIcon"></i>
|
||||||
<template v-if="viewer && selectUser.show">
|
<template v-if="viewer && selectUser.show">
|
||||||
<el-button type="primary" icon="el-icon-plus" circle @click="$refs.userPicker.showUserPicker()"/>
|
<div class="avatar_button">
|
||||||
<avatar-ellipsis :row="3" v-if="userInfo.length > 0" :user-info="userInfo"/>
|
<avatar-ellipsis :row="3" v-if="userInfo.length > 0" :user-info="userInfo"/>
|
||||||
|
<el-button type="primary" icon="el-icon-plus" circle @click="$refs.userPicker.showUserPicker()"/>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="showAvatar">
|
<template v-else-if="showAvatar">
|
||||||
<span class="placeholder" v-if="userInfo.length === 0">{{ placeholder }}</span>
|
<span class="placeholder" v-if="userInfo.length === 0">{{ placeholder }}</span>
|
||||||
|
|
@ -77,7 +79,7 @@ export default {
|
||||||
//节点内容区域文字
|
//节点内容区域文字
|
||||||
userInfo: {
|
userInfo: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default(){
|
default() {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -129,7 +131,7 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return{}
|
return {}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
viewer() {
|
viewer() {
|
||||||
|
|
@ -148,7 +150,7 @@ export default {
|
||||||
userInfoList.push(userInfo)
|
userInfoList.push(userInfo)
|
||||||
}
|
}
|
||||||
this.userInfo = userInfoList
|
this.userInfo = userInfoList
|
||||||
this.$store.state.selectUserMap.set(this.$store.state.selectedNode.id,userInfoList)
|
this.$store.state.selectUserMap.set(this.$store.state.selectedNode.id, userInfoList)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -229,6 +231,16 @@ export default {
|
||||||
color: #656363;
|
color: #656363;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
|
||||||
|
.avatar_button {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
button {
|
||||||
|
height: 40px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
flex-grow: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
i {
|
i {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 55%;
|
top: 55%;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue