Compare commits

..

No commits in common. "dc8bebf6f124be1b8f08d00131835ebf3b84f0a1" and "76726e75bad75c06a46c608c5954730dd10e4b2e" have entirely different histories.

5 changed files with 63 additions and 102 deletions

View File

@ -3,7 +3,7 @@
:title="hoverTip ? content: null" :title="hoverTip ? content: null"
:style="{'--row':row}"> :style="{'--row':row}">
<slot name="pre"></slot> <slot name="pre"></slot>
<div style="display: flex;flex-wrap: wrap;"> <div style="display: flex;">
<div v-for="(user,index) in userInfo" :key="index" class="avatar_name"> <div v-for="(user,index) in userInfo" :key="index" class="avatar_name">
<el-avatar size="large" <el-avatar size="large"
:src="user.avatar"></el-avatar> :src="user.avatar"></el-avatar>
@ -20,7 +20,6 @@
<span class="item_name">{{ user.name }}</span> <span class="item_name">{{ user.name }}</span>
</el-tooltip> </el-tooltip>
</div> </div>
<!-- <el-button type="primary" icon="el-icon-plus" circle @click="$refs.userPicker.showUserPicker()"/>-->
</div> </div>
</div> </div>
</template> </template>
@ -66,7 +65,7 @@ export default {
this.$set(user, "color", "#0bbd87") this.$set(user, "color", "#0bbd87")
} }
// //
if (state === 'AGREE' || state === 'AUTO_PASS') { if (state === 'AGREE') {
this.$set(user, "icon", "el-icon-check") this.$set(user, "icon", "el-icon-check")
this.$set(user, "color", "#0bbd87") this.$set(user, "color", "#0bbd87")
} }
@ -76,7 +75,7 @@ export default {
this.$set(user, "color", "#f78f5f") this.$set(user, "color", "#f78f5f")
} }
// //
if (state === 'REFUSE' || state === 'AUTO_REFUSE') { if (state === 'REFUSE') {
this.$set(user, "icon", "el-icon-close") this.$set(user, "icon", "el-icon-close")
this.$set(user, "color", "#f56c6c") this.$set(user, "color", "#f56c6c")
} }
@ -97,19 +96,12 @@ export default {
align-items: center; align-items: center;
margin-right: 5px; margin-right: 5px;
/*width: 45px;*/ /*width: 45px;*/
position: relative;
}
.el-timeline-item__node {
position: absolute;
bottom: 20px;
right: 1px;
} }
.item_name{ .item_name{
width: 45px; width: 45px;
text-align: center; text-align: center;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden
padding-top: 3px;
} }
</style> </style>

View File

@ -17,12 +17,11 @@
<el-empty :image-size="100" description="似乎没有数据" v-show="dataList.length === 0"/> <el-empty :image-size="100" description="似乎没有数据" v-show="dataList.length === 0"/>
<el-scrollbar style="height:317px"> <el-scrollbar style="height:317px">
<el-tree :data="dataList" ref="tree" :props="defaultProps" empty-text="" node-key="value" <el-tree :data="dataList" ref="tree" :props="defaultProps" empty-text="" node-key="value"
:default-expanded-keys="expandedKeys" lazy accordion :default-expanded-keys="expandedKeys"
@node-click="handleChange" @node-click="handleChange"
> >
<!-- :style="data.avatar!==null ? {'height':'50px'}:''"-->
<div class="tree-node" slot-scope="{ node,data }"> <div class="tree-node" slot-scope="{ node,data }">
<div v-if="data.type === 0" style="display: flex;align-items: center;"> <div v-if="data.type === 0" style="display: flex;align-items: center">
<el-avatar :src="data.avatar"></el-avatar> <el-avatar :src="data.avatar"></el-avatar>
{{ node.label }} {{ node.label }}
</div> </div>
@ -105,11 +104,8 @@ export default {
value: 'value', value: 'value',
label: 'name', label: 'name',
children: 'children', children: 'children',
isLeaf: function (data, node) {
return !!data.avatar
}
} }
} };
}, },
watch: { watch: {
filterText(val) { filterText(val) {
@ -138,13 +134,14 @@ export default {
getUserTree(this.radio, this.chooseId).then(res => { getUserTree(this.radio, this.chooseId).then(res => {
console.log('人员', res.data) console.log('人员', res.data)
// if (res.data) { // if (res.data) {
if (this.selectItem.type === -1 || this.selectItem.type === -2) { if (this.selectItem.type === -1 || this.selectItem.type === -2) {
this.dataList = res.data this.dataList = res.data
} else if (this.selectItem.type === 1) { }
this.selectItem.children = res.data else if (this.selectItem.type === 1) {
} else if (this.selectItem.type === 2) { this.selectItem.children = res.data
this.selectItem.children = res.data } else if (this.selectItem.type === 2) {
} this.selectItem.children = res.data
}
// } // }
}); });
}, },
@ -174,31 +171,25 @@ export default {
}, },
// //
handleChange(item, data, node) { handleChange(item, check) {
this.selectItem = item this.selectItem = item
this.expandedKeys.push(item.value) this.expandedKeys.push(item.value)
//getList() if (item.type !== 0) {
if (node.expanded === false) { this.chooseId = item.id
if (item.type !== 0) { this.getList()
this.chooseId = item.id return
this.getList()
return
}
} }
// if (this.multiple) {
if (item.avatar !== null) { //
if (this.multiple) { for (let i = 0; i < this.selectList.length; i++) {
// if (this.selectList[i].id === item.id) {
for (let i = 0; i < this.selectList.length; i++) { this.selectList.splice(i, 1);
if (this.selectList[i].id === item.id) { break;
this.selectList.splice(i, 1);
break;
}
} }
this.selectList.push(item);
} else {
this.selectList = [item];
} }
this.selectList.push(item);
} else {
this.selectList = [item];
} }
// this._value = this.selectList // this._value = this.selectList
}, },
@ -236,21 +227,12 @@ export default {
@containWidth: 278px; @containWidth: 278px;
/deep/ .el-tree-node { /deep/ .el-tree-node {
.el-tree-node__children { .el-tree-node__children {
.el-tree-node { .el-tree-node__content {
.el-tree-node__content { height: 42px;
height: 42px;
}
} }
} }
} }
///deep/.el-tree-node__children{
// .is-current{
// .el-tree-node__content{
// height: 42px;
// }
// }
//}
.tree-node { .tree-node {
div { div {
.el-avatar { .el-avatar {

View File

@ -10,10 +10,10 @@
<el-card> <el-card>
<div style="display: flex;"> <div style="display: flex;">
<div v-for="(user,index) in operation.userInfo" :key="index" class="avatar_name"> <div v-for="(user,index) in operation.userInfo" :key="index" class="avatar_name">
<el-avatar size="large" :src="user.avatar"></el-avatar> <el-avatar size="large"
<!--v-if="!$slots.dot && operation.userInfo.length > 1" --> :src="user.avatar"></el-avatar>
<div v-if="user.icon" <div v-if="!$slots.dot && operation.userInfo.length > 1"
class="el-timeline-item__node" :style="{ class="el-timeline-item__node avatar_icon" :style="{
backgroundColor: user.color backgroundColor: user.color
}"> }">
<i v-if="user.icon" <i v-if="user.icon"
@ -30,12 +30,12 @@
<div style="font-size: 14px; font-weight: bold;">{{ operation.remark }}</div> <div style="font-size: 14px; font-weight: bold;">{{ operation.remark }}</div>
</div> </div>
</div> </div>
<template v-if="operation.comment"> <template v-if="operation.operation === 'comment' || operation.operation === 'refuse'">
<div style="margin-top: 10px;background:#f5f5f5;padding: 10px;"> <div style="margin-top: 10px;background:#f5f5f5;padding: 10px;">
<div> <div>
{{ operation.comment.context }} {{ operation.comment.context }}
</div> </div>
<div style="margin-top: 10px;" v-if="operation.comment.attachments && operation.comment.attachments.length > 0"> <div style="margin-top: 10px;" v-if="operation.comment.attachments.length > 0">
<template v-for="(item) in getAttachmentList(operation.comment.attachments,true)"> <template v-for="(item) in getAttachmentList(operation.comment.attachments,true)">
<el-image <el-image
style="width: 100px; height: 100px" style="width: 100px; height: 100px"
@ -125,13 +125,11 @@ export default {
for (let i = 0;i<this.operationList.length;i++) { for (let i = 0;i<this.operationList.length;i++) {
let operationNew = this.initOperationFun(this.operationList[i]) let operationNew = this.initOperationFun(this.operationList[i])
let userList = [] let userList = []
if (operationNew.userInfo){ for (let user of operationNew.userInfo) {
for (let user of operationNew.userInfo) { let userNew = this.initUser(user)
let userNew = this.initUser(user) userList.push(userNew)
userList.push(userNew)
}
operationNew.userInfo = userList
} }
operationNew.userInfo = userList
// operationListNew.push(operationNew) // operationListNew.push(operationNew)
// this.operationList.push(operationNew) // this.operationList.push(operationNew)
this.operationList[i] = operationNew this.operationList[i] = operationNew
@ -140,12 +138,9 @@ export default {
// //
getAttachmentList(attachments, image) { getAttachmentList(attachments, image) {
let result = []; let result = [];
console.log(attachments) for (let attachment of attachments) {
if (attachments){ if (attachment.isImage === image) {
for (let attachment of attachments) { result.push(attachment)
if (attachment.isImage === image) {
result.push(attachment)
}
} }
} }
return result; return result;
@ -158,7 +153,7 @@ export default {
this.$set(user, "color", "#0bbd87") this.$set(user, "color", "#0bbd87")
} }
// //
if (state === 'AGREE' || state === 'AUTO_PASS') { if (state === 'AGREE') {
this.$set(user, "icon", "el-icon-check") this.$set(user, "icon", "el-icon-check")
this.$set(user, "color", "#0bbd87") this.$set(user, "color", "#0bbd87")
} }
@ -185,12 +180,13 @@ export default {
if (state === 'CREATE') { if (state === 'CREATE') {
this.$set(operation, "icon", "el-icon-check") this.$set(operation, "icon", "el-icon-check")
this.$set(operation, "color", "#0bbd87") this.$set(operation, "color", "#0bbd87")
this.$set(operation, "remark", operation.userInfo.name)
} }
// //
if (state === 'AGREE' || state === 'AUTO_PASS') { if (state === 'AGREE') {
this.$set(operation, "icon", "el-icon-check") this.$set(operation, "icon", "el-icon-check")
this.$set(operation, "color", "#0bbd87") this.$set(operation, "color", "#0bbd87")
this.$set(operation, "remark", ' (已同意)') this.$set(operation, "remark", operation.userInfo.name + ' (已同意)')
} }
if (state === 'PASS'){ if (state === 'PASS'){
this.$set(operation, "icon", "el-icon-more") this.$set(operation, "icon", "el-icon-more")
@ -200,37 +196,31 @@ export default {
if (state === 'RUNNING') { if (state === 'RUNNING') {
this.$set(operation, "icon", "el-icon-loading") this.$set(operation, "icon", "el-icon-loading")
this.$set(operation, "color", "#f78f5f") this.$set(operation, "color", "#f78f5f")
this.$set(operation, "remark",' (处理中)') this.$set(operation, "remark", operation.userInfo.name + ' (处理中)')
}
//退
if (state === 'ROLLBACK') {
this.$set(operation, "icon", "el-icon-refresh")
this.$set(operation, "color", "#f78f5f")
this.$set(operation, "remark", ' (回退成功)')
} }
// //
if (type === 'CC') { if (type === 'CC') {
this.$set(operation, "icon", "el-icon-s-promotion") this.$set(operation, "icon", "el-icon-s-promotion")
this.$set(operation, "color", "#3395f8") this.$set(operation, "color", "#3395f8")
this.$set(operation, "remark", ' (抄送成功)') this.$set(operation, "remark", operation.userInfo.name + ' (抄送成功)')
} }
// //
if (state === 'COMMENT') { if (state === 'COMMENT') {
this.$set(operation, "icon", "el-icon-chat-dot-round") this.$set(operation, "icon", "el-icon-chat-dot-round")
this.$set(operation, "color", "#0bbd87") this.$set(operation, "color", "#0bbd87")
this.$set(operation, "remark", ' (添加了评论)') this.$set(operation, "remark", operation.userInfo.name + ' (添加了评论)')
} }
// //
if (state === 'REFUSE' && type === 'COMMENT') { if (state === 'REFUSE' && type === 'COMMENT') {
this.$set(operation, "icon", "el-icon-chat-dot-round") this.$set(operation, "icon", "el-icon-chat-dot-round")
this.$set(operation, "color", "#f56c6c") this.$set(operation, "color", "#f56c6c")
this.$set(operation, "remark", ' (填写拒绝理由)') this.$set(operation, "remark", operation.userInfo.name + ' (填写拒绝理由)')
} }
// //
if ((state === 'REFUSE' || state === 'AUTO_REFUSE')&& type === 'OPINION') { if (state === 'REFUSE' && type === 'OPINION') {
this.$set(operation, "icon", "el-icon-close") this.$set(operation, "icon", "el-icon-close")
this.$set(operation, "color", "#f56c6c") this.$set(operation, "color", "#f56c6c")
this.$set(operation, "remark", ' (拒绝)') this.$set(operation, "remark", operation.userInfo.name + ' (拒绝)')
} }
return operation; return operation;
}, },
@ -251,10 +241,10 @@ export default {
position: relative; position: relative;
margin-right: 5px; margin-right: 5px;
} }
.el-timeline-item__node{ .avatar_icon{
position: absolute; position: absolute;
bottom: 20px; bottom: 16px;
right: 1px; right: -2px;
} }
.username{ .username{
width: 45px; width: 45px;

View File

@ -200,7 +200,7 @@ export default {
.node-body { .node-body {
cursor: pointer; cursor: pointer;
min-height: 63px; max-height: 120px;
position: relative; position: relative;
border-radius: 5px; border-radius: 5px;
background-color: white; background-color: white;
@ -236,20 +236,17 @@ export default {
} }
.node-body-content { .node-body-content {
padding: 10px; padding: 18px;
color: #656363; color: #656363;
font-size: 14px; font-size: 14px;
.avatar_button { .avatar_button {
//float: left;
display: flex; display: flex;
//flex: 1;
flex-wrap: wrap;
button { button {
margin-top: 3px;
height: 40px; height: 40px;
//flex-shrink: 0; flex-shrink: 0;
//flex-grow: 0; flex-grow: 0;
} }
} }

View File

@ -56,7 +56,7 @@
</div> </div>
<div class="top_right"> <div class="top_right">
<div style="margin-bottom: 12px"> <div style="margin-bottom: 12px">
<span style="font-size: 15px;margin-right: 15px">{{ selectProcessInstance.deploymentName }}</span> <span style="font-size: 15px;">{{ selectProcessInstance.deploymentName }}</span>
<el-tag class="state_tag" v-if="selectProcessInstance.state === '1'" size="mini" >进行中</el-tag> <el-tag class="state_tag" v-if="selectProcessInstance.state === '1'" size="mini" >进行中</el-tag>
<el-tag class="state_tag" v-if="selectProcessInstance.state === '4'" size="mini" type="success">审批通过</el-tag> <el-tag class="state_tag" v-if="selectProcessInstance.state === '4'" size="mini" type="success">审批通过</el-tag>
<el-tag class="state_tag" v-if="selectProcessInstance.state === '3'" size="mini" type="danger">审批驳回</el-tag> <el-tag class="state_tag" v-if="selectProcessInstance.state === '3'" size="mini" type="danger">审批驳回</el-tag>