<template>
	<div class="flexOne">
		<div :class="{approval_page_layer:showlayer}" @click="closeLayer">
			<div :class="{approval_person_set:true,approval_person_set_right:isTransition}" @click.stop>
				<p class="setTitle">审批人设置</p>
				<div class="approval_person_layerContent">
					<div class="approval_page_title">审批人类别</div>
					<p style="padding-left: 20px;">
						<el-radio-group v-model="approvalType" @change='clearValue'>
							<el-radio :label="1">主管</el-radio>
							<el-radio :label="2">指定成员</el-radio>
							<el-radio :label="3">岗位</el-radio>
						</el-radio-group>
					</p>

					<div class="approval_layer_info" v-if="approvalType==1">
						发起人的&nbsp;
						<el-select v-model='zgObj.RoleOrInitiator' @change="changeValue">
							<el-option v-for='item in zgList' :label='item.label' :value='item.value' :key='item.value'>
							</el-option>
						</el-select>
					</div>
					<div class="approval_layer_info" v-if="approvalType==2">
						<div class="normalMember">
							<ul>
								<li v-for="item in showMember">{{item.DepartmentName}}</li>  <!-- @click="mySetCheckedKeys(item.DepartmentId)"-->
							</ul>
						</div>
						<input type="button" class="normalBtn" @click="getMember(),mySetCheckedKeys(-1)" value="添加成员" />
						<div style="margin: 10px 0;" v-if="showMember.length>1">
							<el-radio-group v-model="zgObj.AuditWay">
								<el-radio :label="2">会签(须所有审批人同意)</el-radio>
								<el-radio :label="3">或签(一名审批人同意或拒绝即可)</el-radio>
							</el-radio-group>
						</div>
					</div>
					<div class="approval_layer_info" v-if="approvalType==3">
						<div class="normalMember">
							<ul>
							  <li v-for="item in showRole">{{item.DepartmentName}}</li>  <!-- @click="deleteRole()-->
							</ul>
						</div>
						<input type="button" class="normalBtn" @click="getRole()" value="添加岗位" />
						<div style="margin: 10px 0;">
							<el-radio-group v-model="zgObj.AuditWay">
								<el-radio :label="2">会签(须所有审批人同意)</el-radio>
								<el-radio :label="3">或签(一名审批人同意或拒绝即可)</el-radio>
							</el-radio-group>
						</div>
					</div>

				</div>
				<div class="approval_page_layer_bottom">
					<input type="button" class="hollowFixedBtn" value="取消" @click="closeLayer" /> &nbsp;&nbsp;
					<input type="button" class="normalBtn"  v-if='addBtn' value="确定" @click="addNode" />
					<input type="button" class="normalBtn"  v-if='!addBtn' value="修改节点" @click="saveUpdateNode" />
				</div>
			</div>
		</div>
		<input type="button" class="hollowFixedBtn approval_back_btn" value="返回" @click="goback"/>
		<div class="approval_page_content" v-loading="loading">
			<p style="text-align: center; border-bottom:1px solid #f1f1f1;  padding: 15px 0 10px 0;font-size: 16px;">{{TemplateTypeName}}流程设置</p>
			<div class="approval_page_title">默认审批流程</div>
			<div class="approval_person_content">
				<span class="approval_span_type">默认审批人</span>
				<div class="approval_person_list fl">
					<div class="approval_process_item" draggable="true" v-for="(item,index) in myAuditList" @click="getItemValue(item,index)">
						<span style="position: relative;" @mouseenter="itemIndex=index" @mouseleave="itemIndex='-1'">
							<i class="iconfont icon-user11"></i>
							{{item.AuditDescription}}&nbsp;
							<b class="bnotice" v-if="item.AuditWay!=1">({{item.AuditWay=="2"?'会签':'或签'}})</b>
							<em v-if='index==itemIndex' class="iconfont icon-guanbi approval_process_item_delete"  @click.stop='deleteItem(item.Sort)'></em>
						</span>
						<i class="iconfont icon-jiantouyou"></i>
					</div>
					<input type="button" class="hollowFixedBtn" @click="addAppPerson" value="添加" />
				</div>
			</div>
			<div class="approval_person_content">
				<span class="approval_span_type">默认抄送人</span>
				<div class="approval_person_list fl">
					<div class="approval_process_item" v-for="(item,index) in myAuditUserList">
						<span style="position: relative;" @mouseenter="itemIndex1=index" @mouseleave="itemIndex1='-1'">
							<i class="iconfont icon-user11"></i>
							{{item.EmName}}&nbsp;
							<em v-if='index==itemIndex1' @click="deleteUser(item.EmployeeId)" class="iconfont icon-guanbi approval_process_item_delete" ></em>
						</span>
					</div>
					<input type="button" class="hollowFixedBtn" value="添加" @click='addAuditUser'/>
				</div>
			</div>
			
			<div v-if='TemplateType!=4'>
			<div class="approval_page_title">分条件审批</div>
			<p>
				<input type="button" value="添加" @click="goUrl('processDesign',TemplateId)" class="hollowFixedBtn" />
			    <span style="font-size: 12px; color: #666; margin-left: 15px;">审批单首先匹配优先级高的条件</span>
			</p>
			<div>
				<div class="processOtherDiv" v-for="(item,index) in otherList"  @click="goUrl('updateProcessDesign',item.Id)">
					<p style="background: #f1f1f1; padding: 10px 30px;">{{item.Description}}  
						<span class="fr processOtherdelSpan" style="margin-left: 10px;" @click.stop="deleteOtherProcess(item.Id)">删除</span>
						<span class="fr processOtherdelSpan">修改</span> 
					</p>
					<div style="padding: 0 30px;">
						<p style="padding: 10px 0 0 0;">审批人:</p>
						<div class="approval_process_item"  v-for="(item,index) in otherList[index].AuditList">
							<span style="position: relative;">
								<i class="iconfont icon-user11"></i>
								{{item.AuditDescription}}&nbsp;
								<b class="bnotice" v-if="item.AuditWay!=1">({{item.AuditWay=="2"?'会签':'或签'}})</b>
							</span>
							<i class="iconfont icon-jiantouyou"></i>
						</div>
						<p style="padding: 10px 0 0 0;">抄送人:</p>
						<div class="approval_process_item"  v-for="(item,index) in otherList[index].AuditUserList">
							<span style="position: relative;">
								<i class="iconfont icon-user11"></i>
								{{item.EmName}}&nbsp;
							</span>
						</div>
					</div>
				</div>
			</div>
			</div>
			<div style="margin: 30px 0;">
				<input type="button" value="取消" class="hollowFixedBtn"  @click="goback" />
				<input type="button" value="保存" class="normalBtn" @click="saveApproval" />
			</div>
		</div>

		<el-dialog custom-class='w700' :title="dialogTitle" :visible.sync="outerVisible" center>
			<div class="fl" style="width: 300px; margin: 0 20px;">
				<p style="margin: 0 0 10px 0;">选择: <el-input class='w200' placeholder="输入关键字进行过滤"  v-model="filterText">
				</el-input>
				</p>
				<el-tree class='ApprovalProcessBg'
					  :data="memberList"
					  show-checkbox
					  :filter-node-method="filterNode"
					  ref="tree" :props="defaultProps"
					  :render-after-expand="false" 
					  node-key="DepartmentId"
					  @check-change="handleNodeChange">
				</el-tree>
			</div>
			<div class="fl">
				<p style="margin: 0 0 20px 0;">已选:</p>
				<div class="Approval_yxList">
					<li v-for="item in showMember">{{item.DepartmentName}}
						<i @click="mySetCheckedKeys(item.DepartmentId)" class="el-icon-circle-close showMemberIcon"></i>
					</li>
				</div>
			</div>
			<div slot="footer" class="dialog-footer">
				<button class="hollowFixedBtn" @click="outerVisible = false">取 消</button> &nbsp;
				<button class="normalBtn" type="primary" @click="outerVisible = false">确定</button>
			</div>
		</el-dialog>

		<el-dialog custom-class='w700' :title="dialogTitle" :visible.sync="outerVisible1" center>
			<div class="fl" style="width: 300px; margin: 0 20px;">
				<p style="margin: 0 0 10px 0;">选择岗位: <el-input class='w200' placeholder="输入关键字进行过滤"  v-model="filterText1">
				</el-input>
				</p>
				<el-tree class='ApprovalProcessBg' 
					:data="roleList" 
					ref="treeRole"
					show-checkbox 
					:filter-node-method="filterNode1"
					:props="defaultProps1"
					@check-change="checkedRole"
					>
				</el-tree>
			</div>
			<div class="fl">
				<p style="margin: 0 0 20px 0;">已选岗位:</p>
				<div class="Approval_yxList">
                    <li v-for="item in showRole">{{item.DepartmentName}}
						<i @click="deleteRole()" class="el-icon-circle-close showMemberIcon"></i>
					</li>
				</div>
			</div>
			<div slot="footer" class="dialog-footer">
				<button class="hollowFixedBtn" @click="outerVisible1= false">取 消</button> &nbsp;
				<button class="normalBtn" type="primary" @click="outerVisible1 = false">确定</button>
			</div>
		</el-dialog>
		
		<el-dialog custom-class='w700' :title="dialogTitle" :visible.sync="outerVisible2" center>
			<div class="fl" style="width: 300px; margin: 0 20px;">
				<p style="margin: 0 0 10px 0;">选择抄送人:<el-input class='w200' placeholder="输入关键字进行过滤"  v-model="filterText2">
				</el-input>
				</p>
				<el-tree class='ApprovalProcessBg'
					 :data="userList"
					 show-checkbox
					 :filter-node-method="filterNode2"
					 ref="treeUser" 
					 :props="defaultProps2" 
					 :render-after-expand="false" 
					 node-key="DepartmentId"
					 @check-change="handleNodeChange1">
				</el-tree>
			</div>
			<div class="fl">
				<p style="margin: 0 0 20px 0;">已选:</p>
				<div class="Approval_yxList">
					<li v-for="item in myAuditUserList1">{{item.EmName}}
						<i @click="deleteUser(item.EmployeeId)" class="el-icon-circle-close showMemberIcon"></i>
					</li>
				</div>
			</div>
			<div slot="footer" class="dialog-footer">
				<button class="hollowFixedBtn" @click="outerVisible2 = false">取消</button> &nbsp;
				<button class="normalBtn" type="primary" @click="saveAuditUser">确定</button>
			</div>
		</el-dialog>
		

	</div>
</template>

<script>
	export default {
		data() {
			return {
				filterText:"",
				filterText1:"",
				filterText2:"",
				defaultProps: {
					children: 'ChildList',
					label: 'DepartmentName',
				},
				defaultProps1: {
					children: 'ChildList',
					label: 'DepartmentName',
					disabled: "Disabled"
				},
				defaultProps2: {
					children: 'ChildList',
					label: 'DepartmentName',
				},
				zgList: [{
						value: '1',
						label: '直接主管'
					},
					{
						value: '2',
						label: '第2级主管'
					},
					{
						value: '3',
						label: '第3级主管'
					},
					{
						value: '4',
						label: '第4级主管'
					},
					{
						value: '5',
						label: '第5级主管'
					},
					{
						value: '6',
						label: '第6级主管'
					},
				],
				TemplateType:'',
				addBtn:true,
				loading:true,
				dialogTitle: '',
				outerVisible:false,
				outerVisible1:false,
				outerVisible2:false,
				itemIndex: -1,
				itemIndex1: -1,
				approvalType: 1,
				showlayer: false,
				isTransition: false,
				updateItem:[],
				updateItemIndex:-1,  //修改节点
				TemplateId:'',
				addMsg:{
					Id:'',
					TemplateId:'',	
					AuditList:[],
				    AuditUserList:[],
				    ConditionSortList:[], 
				    Sort:'',
				},
				zgObj: {
					AuditDescription: '',
					RoleOrInitiator: '1',
					AuditType: '',
					AuditUserList: [],
					AuditWay:2,
					Sort: '',
				},
				tempChosenId: -1,
				//返回数据
				TemplateTypeName:'',
				myAuditList: [],
				myAuditUserList: [],
				myAuditUserList1:[],
				memberList: [],
				sysUserKeys:[],
				userList:[],
				roleList: [],
				checkedMember: [],
				showMember: [],
				showRole:[],
				memberSetCheckedKeys: [],
				memberSetCheckedUserKeys:[],
				normalMember: [],
				otherList:[],
				otherListSpr:[],
				otherListCsr:[],
			}
		},
		 watch: {
	      filterText(val) {
	        this.$refs.tree.filter(val);
	      },
	      filterText1(val) {
	        this.$refs.treeRole.filter(val);
	      },
	      filterText2(val) {
	        this.$refs.treeUser.filter(val);
	      }
	    },
		methods: {
		     filterNode(value, data) {
		        if (!value) return true;
		        return data.DepartmentName.indexOf(value) !== -1;
		      },
		      filterNode1(value, data) {
		        if (!value) return true;
		        return data.DepartmentName.indexOf(value) !== -1;
		      },
		      filterNode2(value, data) {
		        if (!value) return true;
		        return data.DepartmentName.indexOf(value) !== -1;
		      },
			deleteOtherProcess(id){
			this.$confirm('是否删除?', '提示', {
					confirmButtonText: '确定',
					cancelButtonText: '取消',
					type: 'warning'
				}).then(() => {
					this.apipost('WorkFlow_post_DelOtherCondition',{ConditionId:id},res=>{
						if(res.data.resultCode==1){
							this.$message.success('删除成功!');
							this.getOtherList()
						}
					},err=>{})
				}).catch(() => {
					this.$message.info('已取消删除!');
				});
			},
			addAppPerson(){
				this.approvalType=1;
				this.addBtn=true;
				this.showLayer();
			},
			deleteUser(id){
				if(this.memberSetCheckedUserKeys.findIndex(item => item === id)!=-1){
				   this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === id), 1)	
				}
				if(this.myAuditUserList.findIndex(item => item.EmployeeId === id)!=-1)
				{
				  this.myAuditUserList.splice(this.myAuditUserList.findIndex(item => item.EmployeeId === id), 1)	
				}
				if(this.myAuditUserList1.findIndex(item => item.EmployeeId === id)!=-1)
				{
				  this.myAuditUserList1.splice(this.myAuditUserList1.findIndex(item => item.EmployeeId === id), 1)
				}
				
			},
			addAuditUser(){
			    let _arr=this.sysUserKeys.concat(this.memberSetCheckedUserKeys)
				this.dialogTitle = '选择人员';
				this.outerVisible2=true;
				let _this=this;
				this.apipost('WorkFlow_get_GetDepartMentEmployee', {}, res => {
					if(res.data.resultCode==1){
					 this.userList = res.data.data
					  _this.$refs.treeUser.setCheckedKeys(_arr);	
					}
				}, err => {})
			},
			saveAuditUser(){
				if(this.myAuditUserList1.length<=10){
					this.myAuditUserList=JSON.parse(JSON.stringify(this.myAuditUserList1))
				    this.outerVisible2 = false
				}else{
					this.$message.error('人数不能超过10人')
					return false;
				}
			},
			clearValue(value){
				if(value=='1'){
					this.zgObj.RoleOrInitiator='1'
				}
				if(value=='2'){
					this.showMember=[];
					this.memberSetCheckedKeys=[];
				}
				if(value=='3'){
					this.showRole=[]
					this.zgObj.AuditWay=2
				}
			},
			getList() {
				this.apipost('WorkFlow_get_GetDefaultCondition', {TemplateId:this.TemplateId}, res => {
					if(res.data.resultCode == 1) {
						this.loading=false
						this.addMsg.Id=res.data.data.Id
						this.myAuditList = res.data.data.AuditList==null?[]:res.data.data.AuditList
						this.myAuditUserList = res.data.data.AuditUserList==null?[]:res.data.data.AuditUserList
						this.myAuditUserList1 = JSON.parse(JSON.stringify(this.myAuditUserList))
						this.myAuditUserList1.forEach(item=>{
							this.sysUserKeys.push(item.EmployeeId)
						})
						this.TemplateTypeName=res.data.data.TemplateTypeName
						this.TemplateType=res.data.data.TemplateType;
					} else {}
				}, error => {})
			},
			getOtherList(){
					this.apipost('WorkFlow_get_GetOtherConditionList', {TemplateId:this.TemplateId}, res => {
					if(res.data.resultCode == 1) {
						this.otherList=res.data.data
						this.otherListSpr=res.data.data.AuditList
					} else {}
				}, error => {})
			},
			getMember() {
				this.outerVisible = true;
				this.dialogTitle = '选择人员';
				this.apipost('WorkFlow_get_GetDepartMentEmployee', {}, res => {
					this.memberList = res.data.data
				}, err => {})
			},
			getRole() {
				this.outerVisible1 = true;
				this.dialogTitle = '选择岗位';
				this.apipost('WorkFlow_get_GetDepartMentPost', {}, res => {
					this.roleList = res.data.data
				}, err => {})
			},
			handleNodeChange1(data, checked) {
				data.IsCheck = checked;
				if(data.Type == 2 && data.IsCheck) { //是员工且选中
					let isExsit = false
					this.myAuditUserList1.forEach(x => {
						if(x.EmployeeId == data.DepartmentId) {
							isExsit = true
							return false
						}
					})
					if(!isExsit) {
						this.myAuditUserList1.push({
							EmName: data.DepartmentName,
							EmployeeId: data.DepartmentId,
							Sort: '1'
						})
						this.memberSetCheckedUserKeys.push(data.DepartmentId)
					}
				} else if(data.Type == 2 && !data.IsCheck) {
					if(this.myAuditUserList1.findIndex(item => item.EmployeeId === data.DepartmentId) != -1) {
						this.myAuditUserList1.splice(this.myAuditUserList1.findIndex(item => item.EmployeeId === data.DepartmentId), 1)
						this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === data.DepartmentId), 1)
						if(this.myAuditUserList1.findIndex(item => item.EmployeeId === data.ParentId) != -1) {
							this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === data.ParentId), 1)
						}
					}
				}
				if(data.Type != 2 && data.IsCheck) {
					if(this.memberSetCheckedUserKeys.findIndex(item => item === data.DepartmentId) == -1) {
						this.memberSetCheckedUserKeys.push(data.DepartmentId)
					}
				} else if(data.Type == 2 && !data.IsCheck) {
					if(this.memberSetCheckedUserKeys.findIndex(item => item === data.DepartmentId) != -1) {
						this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === data.DepartmentId), 1)
						if(this.myAuditUserList1.findIndex(item => item.EmployeeId === data.ParentId) != -1) {
							this.memberSetCheckedUserKeys.splice(this.memberSetCheckedUserKeys.findIndex(item => item === data.ParentId), 1)
						}
					}
				}
			},
			handleNodeChange(data, checked) {
				data.IsCheck = checked;
				if(data.Type == 2 && data.IsCheck) { //是员工且选中
					let isExsit = false
					this.showMember.forEach(x => {
						if(x.DepartmentId == data.DepartmentId) {
							isExsit = true
							return false
						}
					})
					if(!isExsit) {
						this.showMember.push({
							DepartmentName: data.DepartmentName,
							DepartmentId: data.DepartmentId
						})
						this.memberSetCheckedKeys.push(data.DepartmentId)
					}
				} else if(data.Type == 2 && !data.IsCheck) {
					if(this.showMember.findIndex(item => item.DepartmentId === data.DepartmentId) != -1) {
						this.showMember.splice(this.showMember.findIndex(item => item.DepartmentId === data.DepartmentId), 1)
						this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.DepartmentId), 1)
						if(this.showMember.findIndex(item => item.DepartmentId === data.ParentId) != -1) {
							this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.ParentId), 1)
						}
					}
				}
				if(data.Type != 2 && data.IsCheck) {
					if(this.memberSetCheckedKeys.findIndex(item => item === data.DepartmentId) == -1) {
						this.memberSetCheckedKeys.push(data.DepartmentId)
					}
				} else if(data.Type == 2 && !data.IsCheck) {
					if(this.memberSetCheckedKeys.findIndex(item => item === data.DepartmentId) != -1) {
						this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.DepartmentId), 1)
						if(this.showMember.findIndex(item => item.DepartmentId === data.ParentId) != -1) {
							this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === data.ParentId), 1)
						}
					}
				}
			},
			mySetCheckedKeys(id) {
				if(this.memberSetCheckedKeys.length == 0)
					return
				if(id == -1) {
					this.$refs.tree.setCheckedKeys(this.memberSetCheckedKeys)
					return
				}
				this.showMember.splice(this.showMember.findIndex(item => item.DepartmentId === id), 1)
				this.memberSetCheckedKeys.splice(this.memberSetCheckedKeys.findIndex(item => item === id), 1)
				this.$refs.tree.setCheckedKeys(this.memberSetCheckedKeys);
			},
			mySetCheckedUsersKeys(){
				
			},
			checkedRole(data,checked){
				 data.IsCheck = checked;
				if(data.Disabled==false&&data.IsCheck){
					this.showRole=[];
					this.showRole.push({DepartmentName:data.DepartmentName,Id:data.DepartmentId})
				}
				
			},
			deleteItem(sort) {
				this.myAuditList.splice(this.myAuditList.findIndex(item => item.Sort === sort), 1)
			},
			getItemValue(obj,index){
				this.addBtn=false;
				this.updateItemIndex=index;
				this.updateItem=obj;
				this.showLayer();
				this.approvalType=obj.AuditType;
				if(obj.AuditType==1){
					this.zgObj.RoleOrInitiator=obj.RoleOrInitiator.toString();
				}
				if(obj.AuditType==2){
					this.showMember=[];
					this.memberSetCheckedKeys=[];
					this.zgObj.AuditWay=obj.AuditWay;
					obj.AuditUserList.forEach((item,index)=>{
						this.showMember.push({
							DepartmentName: item.EmName,
							DepartmentId: item.EmployeeId
						})
						this.memberSetCheckedKeys.push(item.EmployeeId)
					})					
				}
				if(obj.AuditType==3){
					this.zgObj.AuditWay=obj.AuditWay;
					this.showRole=[];
					this.showRole.push({DepartmentName:obj.AuditDescription})
				}
				
			},
			saveUpdateNode(){
			    let zg = {}
				if(this.approvalType == 1)
				{
					zg.AuditType = 1;
					zg.AuditWay = 1;
					zg.AuditUserList=[],
					zg.Sort = this.myAuditList.length + 1;
					zg.RoleOrInitiator = this.zgObj.RoleOrInitiator
					let obj = {}
					if(this.tempChosenId != -1) {
						obj = this.zgList.find((item) => {
							return item.value === this.tempChosenId;
						})
						zg.AuditDescription = obj.label
					} else {
						zg.AuditDescription = '直接主管'
					}
					this.myAuditList[this.updateItemIndex]=zg;
				}
				if(this.approvalType == 2) { //指定成员
					let Au = this.showMember;
					let Auu = [];
					Au.forEach((item, index) => {
						Auu.push({
							EmployeeId: item.DepartmentId,
							EmName:item.DepartmentName,
							Sort: index
						})
					})
					if(Auu.length==1){
						zg.AuditWay = 1
						zg.AuditDescription = Auu[0].EmName
					}else if(Auu.length>1){
						zg.AuditWay = this.zgObj.AuditWay;
						zg.AuditDescription = '指定' + this.showMember.length + '人'
					}
					zg.AuditType = 2;
					zg.RoleOrInitiator = '-1';
					zg.Sort = this.myAuditList.length + 1;
					zg.AuditUserList = Auu;
					if(Auu.length==0)
					{
						this.$message.error("成员不能为空")
						return
					}else if(Auu.length>10){
						this.$message.error("人数不能超过10人!")
						return
					}
					this.myAuditList[this.updateItemIndex]=zg;
				}
				if(this.approvalType == 3) { //岗位
                    zg.AuditType=3;
                    zg.AuditWay = this.zgObj.AuditWay;
                    zg.Sort = this.myAuditList.length + 1;
                    zg.AuditUserList=''; 
                    if(this.showRole.length==0)
					{
						this.$message.error("请选择岗位")
						return
					}else{
						zg.RoleOrInitiator=this.showRole[0].Id; 
					    zg.AuditDescription=this.showRole[0].DepartmentName; 	
					}
                    this.myAuditList[this.updateItemIndex]=zg;
				}
				this.closeLayer()
			},
			deleteRole(){
				this.showRole=[];
			},
			changeValue(value) {
				this.tempChosenId = value
			},
			addNode() {
				//data>>AuditList>>AuditType 核人类型 1主管(指定一级) 2 指定成员 3角色
				let zg = {}
				if(this.approvalType == 1) //主管
				{
					zg.AuditType = 1;
					zg.AuditWay = 1;
					zg.AuditUserList=[],
					zg.Sort = this.myAuditList.length + 1;
					zg.RoleOrInitiator = this.zgObj.RoleOrInitiator
					let obj = {}
					if(this.tempChosenId != -1) {
						obj = this.zgList.find((item) => {
							return item.value === this.tempChosenId;
						})
						zg.AuditDescription = obj.label
					} else {
						zg.AuditDescription = '直接主管'
					}
					this.myAuditList.push(zg);
				}
				if(this.approvalType == 2) { //指定成员
					let Au = this.showMember;
					let Auu = [];
					Au.forEach((item, index) => {
						Auu.push({
							EmployeeId: item.DepartmentId,
							EmName:item.DepartmentName,
							Sort: index
						})
					})
					if(Auu.length==1){
						zg.AuditWay = 1
						zg.AuditDescription = Auu[0].EmName
					}else if(Auu.length>1){
						zg.AuditWay = this.zgObj.AuditWay;
						zg.AuditDescription = '指定' + this.showMember.length + '人'
					}
					zg.AuditType = 2;
					zg.RoleOrInitiator = '-1';
					zg.Sort = this.myAuditList.length + 1;
					zg.AuditUserList = Auu;
					if(Auu.length==0)
					{
						this.$message.error("成员不能为空")
						return
					}else if(Auu.length>10){
						this.$message.error("人数不能超过10人!")
						return
					}
					
					this.myAuditList.push(zg);
					
				}
				if(this.approvalType == 3) { //岗位
                    zg.AuditType=3;
                    zg.AuditWay = this.zgObj.AuditWay;
                    zg.Sort = this.myAuditList.length + 1;
                    zg.AuditUserList=''; 
                    if(this.showRole.length==0)
					{
						this.$message.error("请选择部门")
						return
					}else{
						zg.RoleOrInitiator=this.showRole[0].Id; 
					    zg.AuditDescription=this.showRole[0].DepartmentName; 	
					}
                    this.myAuditList.push(zg);
				}
				this.closeLayer()
			},
			showLayer() {
				this.showlayer = true;
				this.isTransition = true;
			},
			closeLayer() {
				let _this = this;
				setTimeout(function() {
					_this.showlayer = false;
				}, 300)
				this.isTransition = false;
			},
			saveApproval(){
				this.addMsg.AuditList=this.myAuditList;
				this.addMsg.AuditUserList=this.myAuditUserList;
				this.ConditionSortList=[],
				this.addMsg.Sort=0,
				this.loading=true;
				this.apipost('WorkFlow_post_SetDefaultCondition',this.addMsg,res=>{
					 if(res.data.resultCode==1){
					 	this.loading=false;
					 	this.$message.success("操作成功!")
					 }
				},err=>{})
			},
			goUrl (path,id) {
	            this.$router.push({ name: path,query:{"id":id} }) 
	        },
	        goback(){
				this.$router.push({name: 'Approval',query:{"Bid":this.$route.query.Bid}});
			}
		},
		mounted() {
			this.TemplateId = this.addMsg.TemplateId = this.$route.query.id
			this.getList()
			this.getOtherList()
		}

	}
</script>

<style>
	.processOtherdelSpan{
		 color: #E95252;
	}
	.processOtherdelSpan:hover{
		text-decoration: underline;
	}
	.processOtherDiv{
		font-size: 12px;
		min-height: 80px;
		border:1px solid #D2D2D2;
		margin-top: 20px;
		cursor: pointer;
	}
	.showMemberIcon {
		float: right;
		font-size: 20px;
		margin: 10px 20px 0 0;
		color: #999;
		cursor: pointer;
	}
	
	.normalMember {
		margin: 10px 0;
		width: 700px;
		max-height: 500px;
		overflow: auto
	}
	
	.normalMember li {
		display: inline-block;
		margin: 10px;
		padding: 5px 10px;
		background: #f8f8f8;
		border-radius: 4px;
		text-align: center;
		font-size: 14px;
		color: #333;
	}
	
	.approval_layer_info {
		padding: 20px 0 0 30px;
	}
	
	.ApprovalProcessBg {
		background: #f8f8f8;
		max-height: 400px;
		overflow-y: auto;
	}
	
	.Approval_yxList {
		width: 300px;
		background: #f8f8f8;
		min-height: 400px;
		max-height: 400px;
		overflow-y: auto;
	}
	
	.Approval_yxList li {
		line-height: 40px;
		text-indent: 15px;
		border-bottom: 1px dotted #eee;
	}
	
	.approval_page_content i {
		color: #999!important;
	}
	
	.approval_page_layer_bottom {
		position: absolute;
		bottom: 20px;
		padding-left: 20px;
	}
	
	.approval_span_type {
		float: left;
		width: 120px;
		margin-bottom: 10px;
	}
	
	.approval_process_item_delete {
		position: absolute;
		right: 2px;
		top: -11px;
		font-size: 5px;
	}
	
	.approval_process_item {
		display: inline-block;
		margin: 10px 5px 10px 0;
		cursor: pointer;
	}
	
	.approval_process_item b.bnotice {
		color: #E95252;
	}
	
	.approval_process_item>span {
		padding: 0 10px;
		min-width: 100px;
		height: 40px;
		line-height: 40px;
		text-align: center;
		font-size: 12px;
		background: #f8f8f8;
		border-radius: 4px;
		display: inline-block;
	}
	
	.approval_page_layer {
		position: fixed;
		width: 100%;
		left: 0;
		top: 0;
		z-index: 99;
		height: 100%;
		background: rgba(0, 0, 0, .2);
	}
	
	.approval_page_title {
		height: 14px;
		line-height: 14px;
		padding-left: 15px;
		border-left: 3px solid #E95252;
		margin: 20px 0;
	}
	
	.approval_back_btn {
		margin: 20px 0;
	}
	
	.approval_page_content {
		width: 680px;
		min-height: 480px;
		overflow: hidden;
		padding: 0 20px;
		background: #fff;
		border-radius: 4px;
	}
	
	.approval_person_content {
		padding: 0 30px;
		overflow: hidden;
		margin-bottom: 30px;
	}
	
	.approval_person_content>span {
		font-size: 12px;
		color: #666;
		margin-right: 30px;
	}
	
	.approval_person_list {
		float: left;
		width: 550px;
		max-height: 400px;
		overflow: auto;
	}
	
	.approval_person_set {
		width: 800px;
		height: 100%;
		transition: right .3s;
		background: #fff;
		position: fixed;
		top: 0;
		right: -800px;
		box-shadow: 4px 0px 10px rgba(0, 0, 0, 0.1)
	}
	
	.approval_person_set_right {
		right: 0;
	}
	
	.approval_person_set .setTitle {
		height: 48px;
		line-height: 48px;
		background: #EDEEF0;
		font-size: 16px;
		color: #333;
		text-indent: 20px;
	}
	
	.approval_person_layerContent {
		padding-left: 20px;
		overflow: hidden;
	}
</style>