|
@@ -6,7 +6,14 @@
|
|
|
<span class="name">审核人</span>
|
|
|
<span class="icon-btn" @click="removeNode"><i class="el-icon-close"></i></span>
|
|
|
</div>
|
|
|
- <div class="content" @click="showDrawer">{{flowNode.approvers[0]||'请选择审批人'}}</div>
|
|
|
+ <div class="content" @click="showDrawer">
|
|
|
+ <ul class="approver-list" v-if="flowNode.approvers.length">
|
|
|
+ <li class="list-item" v-for="item in flowNode.approvers" :key="item.ItemId">
|
|
|
+ {{item.ItemName}}、
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <span v-else>请选择审批人</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<AddNode :node="flowNode" v-on="$listeners"/>
|
|
|
<el-drawer
|
|
@@ -18,7 +25,7 @@
|
|
|
<div class="approve-drawer-wrap">
|
|
|
<div class="header">
|
|
|
<p>审批人设置</p>
|
|
|
- <span class="close-icon"><i class="el-icon-close"></i></span>
|
|
|
+ <span class="close-icon" @click="drawer=false"><i class="el-icon-close"></i></span>
|
|
|
</div>
|
|
|
<div class="drawer-content">
|
|
|
<div class="block">
|
|
@@ -27,22 +34,20 @@
|
|
|
<el-radio v-model="block1" :label="1">指定人员</el-radio>
|
|
|
<el-button @click="chooseDialogShow=true">选择人员</el-button>
|
|
|
</div>
|
|
|
- <div class="approve-list">
|
|
|
- <draggable
|
|
|
- v-model="choosedList"
|
|
|
- animation="300"
|
|
|
- tag="ul"
|
|
|
- class="content">
|
|
|
- <li class="list-item" v-for="item in choosedList" :key="item.ItemId">
|
|
|
- <span class="name">{{item.ItemName}}</span>
|
|
|
- <span class="icon-btn">
|
|
|
- <i class="el-icon-circle-close" @click.stop="removeChoosedItem(item)"></i>
|
|
|
- </span>
|
|
|
- </li>
|
|
|
- </draggable>
|
|
|
- </div>
|
|
|
+ <draggable
|
|
|
+ v-model="choosedList"
|
|
|
+ animation="300"
|
|
|
+ tag="ul"
|
|
|
+ class="approve-list">
|
|
|
+ <li class="list-item" v-for="item in choosedList" :key="item.ItemId">
|
|
|
+ <span class="name">{{item.ItemName}}</span>
|
|
|
+ <span class="icon-btn">
|
|
|
+ <i class="el-icon-circle-close" @click.stop="removeChoosedItem(item)"></i>
|
|
|
+ </span>
|
|
|
+ </li>
|
|
|
+ </draggable>
|
|
|
</div>
|
|
|
- <!-- <div class="block">
|
|
|
+ <div class="block">
|
|
|
<p>多人审批时</p>
|
|
|
<el-radio-group v-model="block2">
|
|
|
<el-radio :label="1">
|
|
@@ -70,11 +75,11 @@
|
|
|
</el-tooltip>
|
|
|
</el-radio>
|
|
|
</el-radio-group>
|
|
|
- </div> -->
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="drawer-btn">
|
|
|
- <el-button>取消</el-button>
|
|
|
- <el-button>确认</el-button>
|
|
|
+ <el-button @click="drawer=false">取消</el-button>
|
|
|
+ <el-button @click="editApproveNode">确认</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-drawer>
|
|
@@ -102,10 +107,16 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import TreeTransfer from '../treeTransfer.vue';
|
|
|
-import mixin from './nodeMixin'
|
|
|
+import TreeTransfer from '../treeTransfer';
|
|
|
+import draggable from 'vuedraggable';
|
|
|
+import AddNode from './addNode';
|
|
|
export default {
|
|
|
- mixins: [mixin],
|
|
|
+ props:{
|
|
|
+ flowNode:{
|
|
|
+ type:Object,
|
|
|
+ default:{}
|
|
|
+ }
|
|
|
+ },
|
|
|
data() {
|
|
|
return {
|
|
|
drawer: false,
|
|
@@ -115,6 +126,13 @@ export default {
|
|
|
choosedList:[]
|
|
|
};
|
|
|
},
|
|
|
+ watch:{
|
|
|
+ drawer(val){
|
|
|
+ if(val){
|
|
|
+ this.choosedList = _.cloneDeep(this.flowNode.approvers||[])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
methods: {
|
|
|
removeNode() {
|
|
|
this.$emit('removeNode', this.flowNode);
|
|
@@ -130,9 +148,15 @@ export default {
|
|
|
removeChoosedItem(item){
|
|
|
const index = this.choosedList.findIndex(i=>i.ItemId===item.ItemId)
|
|
|
index!==-1&&this.choosedList.splice(index,1)
|
|
|
- }
|
|
|
+ },
|
|
|
+ editApproveNode(){
|
|
|
+ const node = _.cloneDeep(this.flowNode)
|
|
|
+ node.approvers = _.cloneDeep(this.choosedList)
|
|
|
+ this.$emit('editNode',node)
|
|
|
+ this.drawer = false
|
|
|
+ },
|
|
|
},
|
|
|
- components: { TreeTransfer }
|
|
|
+ components: { TreeTransfer, draggable, AddNode }
|
|
|
};
|
|
|
</script>
|
|
|
|
|
@@ -169,7 +193,24 @@ export default {
|
|
|
box-sizing: border-box;
|
|
|
padding:10px;
|
|
|
.block{
|
|
|
- height: 500px;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ }
|
|
|
+ .approve-list{
|
|
|
+ margin-top: 10px;
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ gap:10px;
|
|
|
+ .list-item{
|
|
|
+ padding:5px;
|
|
|
+ border:1px solid black;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .el-radio-group{
|
|
|
+ margin-top: 10px;
|
|
|
+ .el-radio{
|
|
|
+ display: block;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
.drawer-btn{
|