<style scoped>
	/* .approval_page_layer_none{display: none} */
	.approval_page_layer {
		/* display: block; */
		position: fixed;
		width: 100%;
		left: 0;
		top: 0;
		z-index: 99;
		height: 100%;
		background: rgba(0, 0, 0, .2);
	}
	.approval_person_set {
		width: 800px;
		height: 100%;
		transition: right .3s;
		background: #fff;
		position: absolute;
		top: 0;
		right: -800px;
		box-shadow: 4px 0px 10px rgba(0, 0, 0, 0.1)
	}

	.approval_person_set_right {
		right: 0;
	}
	.approval_person_layerContent {
		padding-left: 20px;
		overflow: hidden;
	}
	.page_addfp .approval_page_content {
		width: 680px;
		min-height: auto !important;
		overflow: hidden;
		padding: 0 20px;
		background: #fff;
		border-radius: 4px;
	}
	.approval_back_btn {
		margin: 20px 0;
	}
	.approval_page_title {
		height: 14px;
		line-height: 14px;
		padding-left: 15px;
		border-left: 3px solid #E95252;
		margin: 20px 0;
	}
	.approval_person_content {
		padding: 20px 30px;
		overflow: hidden;
		margin-bottom: 0;
	}

	.approval_person_content>span {
		font-size: 12px;
		color: #666;
		margin-right: 30px;
	}
	.approval_person_list {
		float: left;
		width: 550px;
		max-height: 400px;
		overflow: auto;
		margin-bottom: 20px;
	}
	.approval_person_content span.approval_span_type {
		float: left;
		width: 120px;
		margin-bottom: 20px;
		color:#333333;
		font-size: 14px;
	}
	span.approval_person_list_tit{
		float: left;
		color:#666666;
		font-size: 12px;
		line-height: 30px;
		padding-right: 20px;
	}
	.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;
	}
	approval_page_title {
		height: 14px;
		line-height: 14px;
		padding-left: 15px;
		border-left: 3px solid #E95252;
		margin: 20px 0;
	}
	.approval_layer_info {
		padding: 20px 0 0 20px;
	}
	.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_page_layer_bottom {
		position: absolute;
		bottom: 20px;
		padding-left: 20px;
	}
	._info_box_top{padding-left: 20px;padding-bottom: 20px}
	.approval_layer_info label,._info_box_top label{font-size: 14px}
		.approval_process_item_delete {
		position: absolute;
		right: 2px;
		top: -11px;
		font-size: 5px;
	}

	.approval_process_item {
		display: inline-block;
		margin: 0 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: #e7e6f3;
		border-radius: 4px;
		display: inline-block;
	}
	.padding_l88{padding-left: 88px}
	.SpecialNodeSelectType{
		display: inline-block;
		margin-right: 15px;
		color: #606266;
	}
</style>
<template>
	<div class="page_addfp">
		<div class="approval_page_layer_none" :class="{approval_page_layer:showlayer}" @click="closeLayer">
			<div :class="{approval_person_set:true,approval_person_set_right:isTransition}" @click.stop>
				<p class="setTitle">{{$t('fnc.sprshezhi')}}</p>
				<div class="approval_person_layerContent">
					<div class="approval_page_title">{{$t('fnc.sprleibie')}}</div>
					<div class="_info_box _info_box_top">
						<label>{{$t('fnc.jdmiaoshu')}}</label>
						<el-input v-model="AuditDescription" class="w200" size="mini" :placeholder="$t('tips.qsrmiaoshu')"  maxlength="6"></el-input>
					</div>
					<div v-show="!xingzhenState" class="_info_box _info_box_top">
						<label>{{$t('fnc.jddongzuo')}}</label>
						<el-select filterable  v-model='GetNodeValue' class="w200" size="mini">
							<el-option v-for='item in GetNodeList'
								:label='item.Name'
								:value='item.ID'
								:key='item.ID'
								v-if="(radio==1&&item.ID!=2)||(radio==2&&item.ID!=1)">
							</el-option>
						</el-select>
					</div>
					<el-row>
						<el-col :span="10" style="padding-left: 20px;">
							<el-radio-group v-model="approvalType" @change='clearValue'>
								<el-radio :label="1">{{$t('fnc.zhuguan')}}</el-radio>
								<el-radio :label="2">{{$t('fnc.zdchengyuan')}}</el-radio>
								<el-radio :label="3">{{$t('admin.admin_Post')}}</el-radio>
								<!-- <el-radio :label="4">空节点</el-radio>
								<el-radio :label="5">出纳窗口</el-radio>
								<el-radio :label="6">会计窗口</el-radio> -->
							</el-radio-group>
						</el-col>
						<el-col v-show="!xingzhenState"  :span="14" style="font-size:14px;">
							<label class="SpecialNodeSelectType">{{$t('fnc.tsjiedian')}}</label>
							<el-select filterable  v-model='SpecialNodeSelectType' @change='changeSpecialNodeSelectType' class="w200" size="mini">
								<el-option v-for='item in SpecialNodeSelect'
									:label='item.name'
									:value='item.id'
									:key='item.id'>
								</el-option>
							</el-select>
						</el-col>
					</el-row>

					<div class="approval_layer_info" v-if="approvalType==1">
						<div class="_info_box">
							<label>{{$t('fnc.fqrende')}}</label>
							<el-select filterable  v-model='directors' class="w200" size="mini">
								<el-option v-for='item in levelList'
									:label='item.name'
									:value='item.level'
									:key='item.level'>
								</el-option>
							</el-select>
						</div>

					</div>
					<div class="approval_layer_info" v-if="approvalType==2">
						<div class="normalMember">
							<ul>
								<li v-for="item in showMember">{{item.DepartmentName}}</li>
							</ul>
						</div>
						<input type="button" class="normalBtn" @click="getMember(),mySetCheckedKeys(-1)" :value="$t('fnc.tjchengyuan')" />
						<div style="margin: 10px 0;" v-if="showMember.length>1">
							<el-radio-group v-model="AuditWay">
								<el-radio :label="2">{{$t('fnc.huiquandetail')}}</el-radio>
								<el-radio :label="3">{{$t('fnc.huoqiandetail')}}</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>
							</ul>
						</div>
						<input type="button" class="normalBtn" @click="outerVisible1 = true,dialogTitle = $t('fnc.xzgangwei')" :value="$t('fnc.addgangweo')" />
						<div style="margin: 10px 0;">
							<el-radio-group v-model="AuditWay">
								<el-radio :label="2">{{$t('fnc.huiquandetail')}}</el-radio>
								<el-radio :label="3">{{$t('fnc.huoqiandetail')}}</el-radio>
							</el-radio-group>
						</div>
					</div>
					<div class="approval_layer_info" v-if="approvalType==4">
						<div class="normalMember">
							<ul>
								<li v-for="item in showMember">{{item.DepartmentName}}</li>
							</ul>
						</div>
						<div style="margin: 10px 0;">
							<el-radio-group v-model="AuditWay">
								<el-radio :label="2">{{$t('fnc.huiquandetail')}}</el-radio>
								<el-radio :label="3">{{$t('fnc.huoqiandetail')}}</el-radio>
							</el-radio-group>
						</div>
					</div>
					<!-- <div class="approval_layer_info" v-if="approvalType==5">
						<label>出纳窗口</label>
						<el-select filterable  v-model='WindowID' class="w200" size="mini">
							<el-option v-for='item in WindowList'
								:label='item.Name'
								:value='item.ID'
								:key='item.ID'>
							</el-option>
						</el-select>
					</div>
					<div class="approval_layer_info" v-if="approvalType==6">
						<label>会计窗口</label>
						<el-select filterable  v-model='WindowID' class="w200" size="mini">
							<el-option v-for='item in WindowList'
								:label='item.Name'
								:value='item.ID'
								:key='item.ID'>
							</el-option>
						</el-select>
					</div> -->
					<div class="approval_layer_info" v-if="approvalType==5||approvalType==6||approvalType==7||approvalType==8 || approvalType==9||approvalType==10||approvalType==11">
						<div style="margin: 10px 0;">
							<el-radio-group v-model="AuditWay">
								<el-radio :label="2">{{$t('fnc.huiquandetail')}}</el-radio>
								<el-radio :label="3">{{$t('fnc.huoqiandetail')}}</el-radio>
							</el-radio-group>
						</div>
					</div>

				</div>
				<div class="approval_page_layer_bottom">
					<input type="button" class="hollowFixedBtn" :value="$t('pub.cancelBtn')" @click="closeLayer" /> &nbsp;&nbsp;
					<input type="button" class="normalBtn"  v-if='addBtn' :value="$t('pub.sureBtn')" @click="addNode" />
					<input type="button" class="normalBtn"  v-if='!addBtn' :value="$t('fnc.xgjiedian')" @click="saveUpdateNode" />
				</div>
			</div>
		</div>
		<div v-loading="loading">
			<input type="button" class="hollowFixedBtn approval_back_btn" :value="$t('pub.returnBack')" @click="goUrl('FProcessManagement')"/>
			<el-form class="_add_box clearfix" :model="addMsg" ref="addMsg" :rules="rules" label-width="100px">
				<div class="approval_page_title">{{$t('fnc.jcxinxi')}}</div>
				<el-form-item :label="$t('fnc.lcmingcheng')" prop="Name">
					<el-input v-model="addMsg.Name" class="w200"  maxlength="10"></el-input>
				</el-form-item>
				<el-form-item :label="$t('fnc.sygongsi')">
					<el-select  filterable multiple v-model='BranchIdS' class="w200"  @change="disabledOption">
						<el-option :label='$t("fnc.jttongyong")' :value='-1' :key='-1'>
						</el-option>
						<el-option v-for='item in CompanyList'
							:label='item.BName'
							:value='item.Id'
							:key='item.Id'
							:disabled="item.disabled">
						</el-option>
					</el-select>
				</el-form-item>
				<el-form-item v-if="xingzhenState" label="审批类型">
					<el-select filterable v-model='addMsg.PropertyType' class="w200">
						<el-option v-for='item in PropertyTypeList'
							:label='item.Name'
							:value='item.ID'
							:key='item.ID'>
						</el-option>
					</el-select>
				</el-form-item>
				<!-- 判断行政流程修改还是 -->
				<div v-show="!xingzhenState">
					<el-form-item :label="$t('fnc.lcleixing')">
						<el-radio v-model="radio" v-if="addMsg.TemplateType!=8" disabled="disabled"  :label="1">{{$t('restaurant.res_income')}}</el-radio>
						<el-radio v-model="radio" v-else @change="getCostTypeList(1),CostIdS=[],accListShow=true" :label="1">{{$t('restaurant.res_income')}}</el-radio>
						<el-radio v-model="radio" v-if="addMsg.TemplateType!=8" disabled="disabled" :label="2">{{$t('restaurant.res_outcome')}}</el-radio>
						<el-radio v-model="radio" v-else @change="getCostTypeList(2),CostIdS=[],accListMsg=[],accListShow=false" :label="2">{{$t('restaurant.res_outcome')}}</el-radio>
						<el-radio v-model="radio" v-if="addMsg.TemplateType!=8" disabled="disabled" :label="7">{{$t('fnc.guazhang')}}</el-radio>
						<el-radio v-model="radio" v-else @change="getCostTypeList(2),CostIdS=[],accListMsg=[],accListShow=false" :label="7">{{$t('fnc.guazhang')}}</el-radio>


						<el-radio v-model="radio" v-if="addMsg.TemplateType!=8" disabled="disabled" :label="8">折让</el-radio>
						<el-radio v-model="radio" v-else @change="getCostTypeList(2),CostIdS=[],accListMsg=[],accListShow=false" :label="8">折让</el-radio>
					</el-form-item>
					<el-form-item :label="$t('fnc.scfujian')">
						<el-radio v-model="addMsg.IsUploadPic" :label="0">{{$t('fnc.buqiyong')}}</el-radio>
						<el-radio v-model="addMsg.IsUploadPic" :label="1">{{$t('fnc.qiyong')}}</el-radio>
					</el-form-item>
					<el-form-item :label="$t('ios.sfxianshi')">
						<el-radio @change="RadioShow" v-model="addMsg.IsShow" :label="1">{{$t('pub.yes')}}</el-radio>
						<el-radio @change="RadioShow" v-model="addMsg.IsShow" :label="2">{{$t('pub.no')}}</el-radio>
					</el-form-item>
					<el-form-item v-show="addMsg.IsShow==2" label="可显示部门">
						<el-select filterable multiple v-model='addMsg.ShowDepartmentList' class="w200" style="max-height:100px;overflow:hidden" size="small">
							<el-option v-for='item in DepartmentList' 
								:label='item.DepartmentName'
								:value='item.DepartmentID'
								:key='item.DepartmentID'>
							</el-option>
						</el-select>
					</el-form-item>
					<el-form-item v-show="addMsg.IsShow==2" label="可显示人">
						<el-select filterable multiple v-model='addMsg.ShowEmployeeList' class="w200" style="max-height:100px;overflow:hidden" size="small">
							<el-option v-for='item in EmployeeList'
								:label='item.EmName'
								:value='item.EmployeeId'
								:key='item.EmployeeId'>
							</el-option>
						</el-select>
					</el-form-item>
					<el-form-item :label="$t('fnc.syfeiyong')" v-if="addMsg.TemplateType==8" class="_treeselect">
						<!-- <el-select  filterable multiple v-model='CostIdS' class="w200" @change="disabledOption2">
							<el-option label='通用' value='0' key='0'></el-option>
							<el-option v-for='item in CostTypeList'
								:label='item.Name'
								:value='item.ID'
								:key='item.ID'
								:disabled="item.disabled">
							</el-option>
						</el-select> -->
						<!-- :sort-value-by="sortValueBy" -->
						<treeselect
							class="w230"
							v-model="CostIdS"
							value-consists-of="LEAF_PRIORITY"
							:placeholder="$t('pub.pleaseSel')"
							:multiple="true"
							:options="CostTypeList"
							noChildrenText=''
							:normalizer="normalizer"/>
					</el-form-item>
					<el-form-item :label="$t('fnc.syzhanghu')" v-if="accListShow">
						<el-checkbox :indeterminate="isIndeterminate" v-model="AccCheckAll" @change="handleCheckAllChangeAcc">{{$t('system.table_chekAll')}}</el-checkbox>
						<div style="margin: 15px 0;"></div>
						<el-checkbox-group v-model="accListMsg" @change="handleCheckedCitiesChangeAcc" text-color="#409EFF" fill="#409EFF">
							<el-checkbox  :value="1" :label="1" :key="1">{{$t('fnc.yinhang')}}</el-checkbox>
							<el-checkbox  :value="2" :label="2" :key="2">{{$t('fnc.xianjin')}}</el-checkbox>
							<el-checkbox  :value="3" :label="3" :key="3">{{$t('fnc.pingtai')}}</el-checkbox>
							<el-checkbox  :value="4" :label="4" :key="4">{{$t('fnc.zjinchi')}}</el-checkbox>
						</el-checkbox-group>
					</el-form-item>

				</div>
				


		<el-form-item label="排序">
					<el-input v-model="addMsg.Sort" class="w250"  maxlength="60"></el-input>
				</el-form-item>
        <el-form-item :label="$t('fnc.mbmiaoshu')">
					<el-input v-model="addMsg.DescribeInfo" class="w450"  maxlength="100"></el-input>
				</el-form-item>
				<div class="approval_page_title">{{$t('fnc.lcshezhi')}}</div>
				<div class="approval_page_content">
					<div class="approval_person_content">
						<span class="approval_span_type">{{$t('fnc.mrspliucheng')}}</span>
						<span style="float:right"><el-button @click="Auditshow=true,EditAudit()" style="padding:4px" type="primary" icon="el-icon-edit" circle></el-button></span>
						
						<div class="approval_person_list fl">
							<span class="approval_person_list_tit">{{$t('fnc.mrspiren')}}</span>
							<div class="padding_l88">
								<div class="approval_process_item" draggable="true" v-for="(item,index) in myAuditList" @click="getItemValue(item,index),AuditDescription = item.AuditDescription">
									<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"?$t('fnc.huiqian'):$t('fnc.huoqian')}})</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="$t('fnc.tianjia')" />
							</div>
						</div>
						<div class="approval_person_list fl">
							<span class="approval_person_list_tit">{{$t('fnc.mrcsongren')}}</span>
							<div class="padding_l88">
								<div class="approval_process_item" draggable="true" 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' class="iconfont icon-guanbi approval_process_item_delete"  @click.stop='deleteUser(item.EmployeeId)'></em>
									</span>
									<i class="iconfont icon-jiantouyou"></i>
								</div>
								<input type="button" class="hollowFixedBtn" @click="addAuditUser" :value="$t('fnc.tianjia')" />
							</div>

						</div>
					</div>
				</div>
			</el-form>
			<div style="margin: 30px 0;">
				<input type="button" :value="$t('pub.cancelBtn')" class="hollowFixedBtn"  @click="goUrl('FProcessManagement')" />
				<input type="button" :value="$t('pub.saveBtn')" 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;">{{$t('fnc.xuanze')}}： <el-input class='w200' :placeholder="$t('tips.srgjzjxguolv')"  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;">{{$t('fnc.yixuan')}}：</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">{{$t('pub.cancelBtn')}}</button> &nbsp;
				<button class="normalBtn" type="primary" @click="outerVisible = false">{{$t('pub.sureBtn')}}</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;">{{$t('fnc.xzgangwei')}}： <el-input class='w200' :placeholder="$t('tips.srgjzjxguolv')" 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"
					:default-checked-keys="defaultCheckedArr"
					node-key="PostId"
					>
				</el-tree>
			</div>
			<div class="fl">
				<p style="margin: 0 0 20px 0;">{{$t('fnc.yixuangangwei')}}：</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">{{$t('pub.cancelBtn')}}</button> &nbsp;
				<button class="normalBtn" type="primary" @click="outerVisible1 = false">{{$t('pub.sureBtn')}}</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;">{{$t('fnc.xzcsongren')}}：<el-input class='w200' :placeholder="$t('tips.srgjzjxguolv')" 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;">{{$t('fnc.yixuan')}}：</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">{{$t('pub.cancelBtn')}}</button> &nbsp;
				<button class="normalBtn" type="primary" @click="saveAuditUser">{{$t('pub.sureBtn')}}</button>
			</div>
		</el-dialog>

		<el-dialog
			title="修改审批人"
			:visible.sync="Auditshow"
			width="400px">
			<div>
				<ul>
					<li v-for="(item,index) in myAuditList" :key="index+500" style="margin-bottom:10px">
						<span style="display:inline-block;width:90px">{{item.AuditDescription}}</span>
						<el-input v-model.number="item.Sort" size="mini" style="width:200px"></el-input>
					</li>
				</ul>
				
			</div>
			<span slot="footer" class="dialog-footer">
				<el-button size="mini" @click="dialogVisible = false">取 消</el-button>
				<el-button size="mini" type="danger" @click="AuditSort">确 定</el-button>
			</span>
			</el-dialog>
	</div>
</template>

<script>
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default {
	components: { Treeselect },
	data(){
		return{
			PropertyTypeList:[],
			xingzhenState:false,
			DepartmentList:[],
			EmployeeList:[],
			Auditshow:false,
     		accListShow: true,
			TemplateId:0,
			radio:1,
			addMsg:{
				Id:0,
				Name:'',
				DescribeInfo:'',
				Sort:'0',
				TemplateType:'8',
				TempLateClass:'',
				FinancialInstitutions:[],
				RB_BranchId:-1,
				IsUploadPic:0,
				Workflow_Condition:{
					Id:0,
					AuditList:[],
					AuditUserList:[],
				},
				IsShow: 1,
				ShowEmployeeList:[],
				ShowDepartmentList:[],
				PropertyType:'',
			},
			AuditUserList:{
				EmName:'',
				EmployeeId:'',
				Sort:''
			},
			getCompanyMsg:{
                RB_Group_Id:'0',
                Status:'0',
			},
			getPostMsg:{
				RB_Group_Id:'0'
			},
			i:0,
			SpecialNodeSelect:[
				{
					id:4,
					name: this.$t('fnc.kjiedian')
				},
				{
					id:5,
					name: this.$t('fnc.cnchuangkou')
				},
				{
					id:6,
					name:this.$t('fnc.kjchuangkou')
				},
				{
					id:7,
					name:this.$t('fnc.xiankong')
				},
				{
				id:8,
				name:this.$t('fnc.jzchuna')
				},
				{
				id:9,
				name:this.$t('fnc.skchuna')
				},
				{
				id:10,
				name:"分公司OP"
				},
				{
				id:11,
				name:"总部线控"
				},
			],
      		accListMsg:[],
			SpecialNodeSelectType:'',
			AuditDescription:'',
			AuditWay:2,
			RoleOrInitiator:'',
			BranchIdS:[],
			CostIdS:[],
			CompanyList:[],
			CostTypeList:[],
			myAuditList:[],
			levelList:[],
			showMember:[],
			memberList:[],
			memberSetCheckedKeys:[],
			memberSetCheckedUserKeys:[],
			myAuditUserList: [],
			showRole:[],
			roleList:[],
			roleSetCheckedKeys:[],
			sysUserKeys:[],
			userList:[],
			myAuditUserList1:[],
			getMsg:[],
			GetNodeList:[],
			showlayer:false,
			isTransition: false,
			addBtn:true,
			outerVisible:false,
			outerVisible1:false,
			outerVisible2:false,
			loading:false,
			dialogTitle:'',
			approvalType:1,
			itemIndex: -1,
			itemIndex1: -1,
			GetNodeValue:0,
			updateItemIndex:-1,  //修改节点
			directors:'',// 直接主管等级
			filterText:"",
			filterText1:"",
			filterText2:"",
			DepartIDs:'0',
			defaultCheckedArr:[],
			defaultProps: {
				children: 'ChildList',
				label: 'DepartmentName',
			},
			defaultProps1: {
				// children: 'ChildList',
				label: 'PostName',
				disabled: "Disabled"
			},
			defaultProps2: {
				children: 'ChildList',
				label: 'DepartmentName',
			},
			rules:{
				Name: [
                    { required: true, message: this.$t('rule.qsrlcmingcheng'), trigger: 'blur' }
                ],
                TypeId: [
                    { required: true, message: this.$t('rule.qxzzhleixing'), trigger: 'change' }
				],
			},
			tongyong:false,
			normalizer(node) {
				return {
					id: node.ID,
					label: node.Name,
					children: node.ChildList,
				}
			},
			WindowList:[],
			WindowID:'',
      AccCheckAll: false,
      AccList: [{
    id: 1,
    lab: this.$t('fnc.yinhang')
  }, {
    id: 2,
    lab: this.$t('fnc.xianjin')
  }, {
    id: 3,
    lab: this.$t('fnc.pingtai')
  }, {
    id: 4,
    lab: this.$t('fnc.zjinchi')
  }],
      isIndeterminate: true,
		}
	},watch: {
		filterText(val) {
			this.$refs.tree.filter(val);
		},
		filterText1(val) {
			this.$refs.treeRole.filter(val);
		},
		filterText2(val) {
			this.$refs.treeUser.filter(val);
		}
	},
	created(){
		let userInfo=this.getLocalStorage();
		this.TemplateId = this.$route.query.id;
		this.getCompanyMsg.RB_Group_Id=userInfo.RB_Group_id;    //集团ID
		this.getPostMsg.RB_Group_Id=userInfo.RB_Group_id;
		this.addMsg.TemplateType = this.$route.query.isZ;
		this.DepartIDs = userInfo.RB_Department_Id;
		if(this.$route.query.id===0){
			if(this.$route.query.Branch_Id>=0){
				this.BranchIdS.push(this.$route.query.Branch_Id);
				this.addMsg.RB_BranchId = this.$route.query.Branch_Id;
			};
		}
	},
	mounted(){
		if(this.$route.query.xingzhen){
			this.xingzhenState=true;
			this.addMsg.TemplateSorce=2;
			this.CostIdS.push('0')
			// this.addMsg.PropertyType="";
			this.getPropertyType();
		}
		this.getCompanyList();
		this.getMaxDepartmentTierList();
		if(this.TemplateId!=0){
			this.getList();
		}else {
      this.getCostTypeList(1)
    }
		this.getFinancialFlowTemplate_post_GetNodeList();
		this.getRole()
		this.getEmployeeList();
		this.getDepartment();
	},
	methods:{
		getPropertyType(){
			this.apipost(
				"FinancialFlowTemplate_post_GetPropertyTypeList",
				{},
				res => {
				if (res.data.resultCode == 1) {
					this.PropertyTypeList=res.data.data;
				}
				},
				err => {}
			);
		},
		  //根据多公司获取部门
    getDepartment() {
		let  msg= {
          RB_Group_Id: '0',
          RB_Branch_Id: '-1',
          Status: '0',
        };
      this.apipost(
        "department_get_GetListByBranchIds",
        msg,
        res => {
          if (res.data.resultCode == 1) {
            this.DepartmentList = res.data.data;
          }
        },
        err => {}
      );
    },
		RadioShow(val){
			if(val==1){
				
				this.addMsg.ShowEmployeeList=[];
				this.addMsg.ShowDepartmentList=[];
			}
		},
		getEmployeeList () {
        this.apipost(
          'admin_get_EmployeeGetList', {},
          res => {
            if (res.data.resultCode == 1) {
              this.EmployeeList = res.data.data
            }
          },
          err => {
          }
        )
      },
		AuditSort(){
			let sum=0;
			let sortnum=0;
			for(let i=0;i<this.myAuditList.length;i++){
				let id=this.myAuditList[i].Sort;
				sum+=i+1;
				sortnum+=this.myAuditList[i].Sort;
				
					
			}
			if(sum!=sortnum){
				this.Error("请输入连续的排序！")
				return;
			}
			this.myAuditList.sort(
					this.$commonUtils.createComprisonFunction("Sort")
				);
				this.Auditshow=false;
		},
		EditAudit(){
			
		},
    handleCheckAllChangeAcc(val) {
      this.accListMsg = val ? [1,2,3,4] : [];
      this.isIndeterminate = false;
    },
    handleCheckedCitiesChangeAcc(value) {
      let checkedCount = value.length;
      this.AccCheckAll = checkedCount === this.AccList.length;
      this.isIndeterminate = checkedCount > 0 && checkedCount < this.AccList.length;
    },
		changeSpecialNodeSelectType(i){  // 设置特殊节点值
			this.approvalType = i;
		},
		getFinancialFlowTemplate_post_GetNodeList(){
			this.apipost('FinancialFlowTemplate_post_GetNodeList', {}, res => {
				if(res.data.resultCode==1){
					this.GetNodeList = res.data.data
				}
			}, err => {})
		},
		getList() {
			this.loading = true
			this.apipost('FinancialFlowTemplate_post_Get', {ID:this.TemplateId,TemplateType:this.addMsg.TemplateType}, res => {
				if(res.data.resultCode == 1) {
					this.loading=false;
					let data = res.data.data;
					this.getMsg = data ;
					this.addMsg.Id= data.Id;
					this.addMsg.Name= data.Name;
					this.addMsg.DescribeInfo = data.DescribeInfo;
					this.addMsg.Sort=data.Sort;
					this.addMsg.TempLateClass = data.TempLateClass;
					this.addMsg.IsUploadPic = data.IsUploadPic;
					this.addMsg.IsShow = data.IsShow;
					this.addMsg.ShowEmployeeList = data.ShowEmployeeList;
					this.addMsg.ShowDepartmentList = data.ShowDepartmentList;
					this.addMsg.PropertyType= data.PropertyType;
					
					
					if (data.list && data.list[0] !== -1) {
            this.accListMsg = data.list;
          }
					if(data.TempLateClass!=null){
						this.radio = data.TempLateClass;
						this.getCostTypeList(data.TempLateClass.toString())
					}
					if(data.Workflow_Condition.AuditList){
						data.Workflow_Condition.AuditList.forEach(x=>{
							if(x.AuditType==1){
								x.AuditUserList =[{EmployeeId:'',Sort:''}];
							}
							if(x.AuditType==3){
								x.AuditUserList =[{EmployeeId:'',Sort:''}];
							}
						})
					}
					if(data.FinanceFlowConnectType==3){
						this.BranchIdS.push(-1);
					}else{
						data.SuitableObjectNameList.forEach(x=>{
							this.BranchIdS.push(x);
						})
					}
					let CostIdS = data.CoseTypeList.length==0?[]:JSON.parse(JSON.stringify(data.CoseTypeList));
					let arr = []
						CostIdS.forEach(x=>{
							arr.push(parseInt(x))
						})
					this.CostIdS = arr;
					this.myAuditList = data.Workflow_Condition.AuditList==null?[]:data.Workflow_Condition.AuditList
					this.myAuditList.forEach((x,index)=>{
						x.Sort = index+1
						if(x.AuditUserList!=null&&x.AuditType==2){
							x.Name = x.AuditDescription
						}
					})
					this.myAuditUserList = data.Workflow_Condition.AuditUserList==null?[]:data.Workflow_Condition.AuditUserList
					this.myAuditUserList1 = JSON.parse(JSON.stringify(this.myAuditUserList))
					this.myAuditUserList1.forEach(item=>{
						this.sysUserKeys.push(item.EmployeeId)
					})
          if(this.radio!==1) {
            this.accListShow = false;
          }
					this.disabledOption();
				} else {}
			}, error => {})
		},
		disabledOption(){ // 选择公司 如果选择通用则禁用其它选项
			if(this.BranchIdS.length==0){
				this.CompanyList.forEach(y=>{
					y.disabled=false
				})
				this.tongyong = false
			}else{
				this.BranchIdS.forEach(x=>{
					if(x==-1){
						this.BranchIdS=[]
						this.BranchIdS.push(-1)
						this.CompanyList.forEach(y=>{
							y.disabled=true
						})
						this.tongyong = true
					}
				})
			}
		},
		disabledOption2(){ // 选择费用类型 如果选择通用则禁用其它选项
			if(this.CostIdS.length==0){
				this.CostTypeList.forEach(y=>{
					y.disabled=false
				})
			}else{
				this.CostIdS.forEach(x=>{
					if(x=='0'){
						this.CostIdS=[]
						this.CostIdS.push('0')
						this.CostTypeList.forEach(y=>{
							y.disabled=true
						})
					}
				})
			}
		},
		saveApproval(){  // 保存数据
			if(this.xingzhenState){
				if(!this.addMsg.PropertyType || this.addMsg.PropertyType=='' ){
					this.Error("请选择审批类型！");
					return;
				}
			}
      if (this.accListMsg.length === 0) {
        this.addMsg.list = [-1]
      } else {
        this.addMsg.list = this.accListMsg
      }
			if(this.BranchIdS.length!=0){ //适用公司
				this.BranchIdS.forEach(x=>{
					if(x==-1){
						let FinancialInstitutions={
							ID:0,
							SuitableObjectId:'',
							Type:''
						}
						FinancialInstitutions.SuitableObjectId = 0
						FinancialInstitutions.Type=3
						this.addMsg.FinancialInstitutions.push(FinancialInstitutions)
					}else{
						let FinancialInstitutions={
							ID:0,
							SuitableObjectId:'',
							Type:''
						}
						FinancialInstitutions.Type=1
						FinancialInstitutions.SuitableObjectId = x
						this.addMsg.FinancialInstitutions.push(FinancialInstitutions)
					}
				})
			}else{
				this.$message.error(this.$t('tips.qxzsygongsi'))
				return
			}
			if(this.CostIdS.length!=0){ //适用费用
				this.CostIdS.forEach(x=>{
					let FinancialInstitutions={
						ID:0,
						SuitableObjectId:x,
						Type:2
					}
					this.addMsg.FinancialInstitutions.push(FinancialInstitutions)
				})
			}else{
				this.$message.error(this.$t('tips.qxzsyfeiyong'))
				return
			}
			if(this.myAuditList.length!=0){
				this.addMsg.Workflow_Condition.AuditList=this.myAuditList
			}else{
				this.$message.error(this.$t('tips.qxzspiren'))
				return
			}
			if(this.myAuditUserList.length!=0){
				this.addMsg.Workflow_Condition.AuditUserList=this.myAuditUserList
			}
			if(this.TemplateId!=0){
				this.addMsg.Workflow_Condition.Id = this.getMsg.Workflow_Condition.Id
			}
			if(this.radio!=''){
				this.addMsg.TempLateClass = parseInt(this.radio)
			}else{
				this.$message.error(this.$t('tips.qxzliucehng'))
				return
			}
			this.loading=true;
			this.apipost('FinancialFlowTemplate_post_Set',this.addMsg,res=>{
				if(res.data.resultCode==1){
					this.loading=false;
					this.$message.success(this.$t('tips.czchenggong'))
					if(this.xingzhenState){
						this.$router.push({ name: 'XProcessmanagement',query:{"type":this.addMsg.TemplateType,'Branch_Id':this.$route.query.Branch_Id} })
						
					}else{
						this.$router.push({ name: 'FProcessManagement',query:{"type":this.addMsg.TemplateType,'Branch_Id':this.$route.query.Branch_Id} })

					}
				}else{
					this.loading=false;
					if(this.xingzhenState){
						this.addMsg.TemplateSorce=2;
					}
					this.addMsg = {
						PropertyType:'',
						Id:this.addMsg.Id,
						Name:this.addMsg.Name,
						DescribeInfo:this.addMsg.DescribeInfo,
						Sort:this.addMsg.Sort,
						TemplateType:this.addMsg.TemplateType,
						TempLateClass:this.radio,
						FinancialInstitutions:[],
						RB_BranchId:this.$route.query.Branch_Id,
						Workflow_Condition:{
							Id:this.addMsg.Workflow_Condition.Id,
							AuditList:[],
							AuditUserList:[],
						}
					}
					this.$message.error(res.data.message)
				    return
				}
			},err=>{})
		},
		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)
			}
		},
		saveAuditUser(){ // 抄送人保存
			if(this.myAuditUserList1.length<=10){
				this.myAuditUserList=JSON.parse(JSON.stringify(this.myAuditUserList1))
				this.outerVisible2 = false
			}else{
				this.$message.error(this.$t('tips.rsbncgtr'))
				return false;
			}

		},
		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: this.myAuditUserList1.length + 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)
					}
				}
			}
		},
		addAuditUser(){  // 抄送人
			let _arr=this.sysUserKeys.concat(this.memberSetCheckedUserKeys)
			this.dialogTitle = this.$t('fnc.xzrenyuan');
			this.outerVisible2=true;
			let _this=this;
			this.apipost('WorkFlow_get_GetTempLateDepartMentEmployee', {}, res => {
				if(res.data.resultCode==1){
					this.userList = res.data.data
				}
			}, err => {})
		},
		checkedRole(data,checked){ // 岗位选择+
			if(data.DepartmentId==0) return
			if(checked) {
				this.roleSetCheckedKeys.push(data.PostId)
				this.$refs.treeRole.setCheckedKeys([data.PostId]);
				this.showRole=[];
				this.showRole.push({DepartmentName:data.PostName,Id:data.PostId})
			} else {
				if(this.roleSetCheckedKeys.length == 1) {
					this.roleSetCheckedKeys.push(data.PostId)
				} else {
					this.roleSetCheckedKeys = this.roleSetCheckedKeys.slice(this.roleSetCheckedKeys.length - 1)
				}
			}

		},
		deleteRole(){ // 删除已选岗位
			this.showRole=[]
			this.roleSetCheckedKeys.splice(this.roleSetCheckedKeys.findIndex(item => item), 1)
			this.$refs.treeRole.setCheckedKeys(this.roleSetCheckedKeys);
		},
		getRole() {  // 选择岗位
			this.apipost('admin_get_PostGetList',{RB_Group_Id:this.getPostMsg.RB_Group_Id}, res => {
				let data = res.data.data;
				data.forEach(x=>{
					x.Disabled = false;
				})
				this.roleList = data;
			}, err => {})
		},
		saveUpdateNode(){
			let AuditList  = {};
			let type = this.approvalType
			if(this.AuditDescription==''){
				return this.$message.error(this.$t('tips.qtxjdmiaoshu'))
			}
			if(type == 1)
			{
				AuditList.AuditType = type;
				AuditList.AuditWay = 1;
				AuditList.AuditUserList = [{EmployeeId:'',Sort:''}];
				AuditList.Sort =  this.myAuditList.length + 1;
				AuditList.RoleOrInitiator = this.directors;
				AuditList.SpecialNode = this.GetNodeValue;
				if(this.directors==''){
					return this.$message.error(this.$t('tips.qxzbmzgjibie'))
				}
				this.levelList.forEach(x=>{
					if(x.level == this.directors)
						{
							AuditList.Name=this.AuditDescription
							AuditList.AuditDescription=this.AuditDescription
						}
					else return
				})
				this.myAuditList[this.updateItemIndex]=AuditList;
			}
			if(type == 2) { //指定成员
				let Au = this.showMember;
				let Auu = [];
				Au.forEach((item, index) => {
					Auu.push({
						EmployeeId: item.DepartmentId,
						emName:item.DepartmentName,
						Sort: index+1
					})
				})
				AuditList.AuditWay = this.AuditWay;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.Name = this.AuditDescription;
				AuditList.AuditType = 2;
				AuditList.RoleOrInitiator = '';
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditUserList = Auu;
				AuditList.SpecialNode = this.GetNodeValue;
				if(Auu.length==0)
				{
					this.$message.error(this.$t('tips.cybnweikong'))
					return
				}else if(Auu.length>10){
					this.$message.error(this.$t('tips.rsbncgtr'))
					return
				}
				this.myAuditList[this.updateItemIndex]=AuditList;
			}
			if(type == 3) { //岗位
				AuditList.AuditType=3;
				AuditList.AuditWay = this.AuditWay;
				AuditList.AuditUserList = [{EmployeeId:'',Sort:''}];
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.SpecialNode = this.GetNodeValue;
				if(this.showRole.length==0)
				{
					this.$message.error(this.$t('tips.qxzgangwei'))
					return
				}else{
					AuditList.RoleOrInitiator=this.showRole[0].PostId?this.showRole[0].PostId:this.showRole[0].Id;
					AuditList.Name=this.showRole[0].DepartmentName;
					AuditList.AduitName = this.showRole[0].DepartmentName;
					AuditList.AuditDescription=this.AuditDescription;
				}
				this.myAuditList[this.updateItemIndex]=AuditList;
			}
			if(type==4){  //空节点
				AuditList.AuditType=4;
				AuditList.AuditWay = this.AuditWay;
				AuditList.AuditUserList = [{EmployeeId:'0',Sort:''}];
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.SpecialNode = this.GetNodeValue;
				AuditList.RoleOrInitiator=0;
				AuditList.Name='';
				AuditList.AduitName = '';
				AuditList.AuditDescription=this.AuditDescription;
				this.myAuditList[this.updateItemIndex]=AuditList;
			}
			if(type==5){//出纳
				// if(!this.WindowID){
				// 	this.$message.error("请选择窗口！")
				// 	return
				// }
				AuditList.AuditType = 5;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList[this.updateItemIndex]=AuditList;
			}
			if(type==6){//会计
				// if(!this.WindowID){
				// 	this.$message.error("请选择窗口！")
				// 	return
				// }
				AuditList.AuditType = 6;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList[this.updateItemIndex]=AuditList;
			}
			if(type==7){//线控（当团OP所在部门的负责人）
				// if(!this.WindowID){
				// 	this.$message.error("请选择窗口！")
				// 	return
				// }
				AuditList.AuditType = 7;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList[this.updateItemIndex]=AuditList;
			}
			if(type==10){//分公司op（当团OP所在部门的负责人）
// if(!this.WindowID){
				// 	this.$message.error("请选择窗口！")
				// 	return
				// }
				AuditList.AuditType = 10;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList[this.updateItemIndex]=AuditList;

			}
			if(type==11){//总部线控
				AuditList.AuditType = 11;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList[this.updateItemIndex]=AuditList;

			}
		    if(type==8){//记账负责人
				// if(!this.WindowID){
				// 	this.$message.error("请选择窗口！")
				// 	return
				// }
				AuditList.AuditType = 8;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList[this.updateItemIndex]=AuditList;
			}
			if(type==9){//收款出纳
				// if(!this.WindowID){
				// 	this.$message.error("请选择窗口！")
				// 	return
				// }
				AuditList.AuditType = 9;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList[this.updateItemIndex]=AuditList;
			}
			this.closeLayer()
		},
		getItemValue(obj,index){
			this.SpecialNode = obj.SpecialNode
			this.addBtn=false;
			this.updateItemIndex=index;
			this.updateItem=obj;
			this.showLayer();
			this.approvalType=obj.AuditType;
			this.GetNodeValue = obj.SpecialNode;
			if(obj.AuditType==1){
				this.directors=obj.RoleOrInitiator
			}
			if(obj.AuditType==2){
				this.showMember=[];
				this.memberSetCheckedKeys=[];
				this.AuditWay=obj.AuditWay;
				obj.AuditUserList.forEach((item,index)=>{
					this.showMember.push({
						DepartmentName: item.EmName?item.EmName:item.emName,
						DepartmentId: item.EmployeeId
					})
					this.memberSetCheckedKeys.push(item.EmployeeId)
				})
			}
			if(obj.AuditType==3){
				this.AuditWay=obj.AuditWay;
				this.showRole=[];
				this.showRole.push({DepartmentName:obj.AduitName,Id:obj.RoleOrInitiator})
				this.defaultCheckedArr.push(obj.RoleOrInitiator)
			}
			if(obj.AuditType==4){
				this.AuditWay=obj.AuditWay;
				this.showRole=[];
				this.showRole.push({DepartmentName:obj.AduitName,Id:obj.RoleOrInitiator})
				this.SpecialNodeSelectType = obj.AuditType;
			}
			if(obj.AuditType==5||obj.AuditType==6||obj.AuditType==7 || obj.AuditType==8 || obj.AuditType==9||obj.AuditType==10||obj.AuditType==11){
				this.AuditWay=obj.AuditWay;
				this.WindowID = obj.RoleOrInitiator;
				this.SpecialNodeSelectType = obj.AuditType;
			}
		},
		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
					})
					if(data.DepartmentId!=0)
					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) {
					if(data.DepartmentId!=0)
					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);
		},
		getMember() {  // 获取指定成员列表
			this.outerVisible = true;
			this.dialogTitle = this.$t('fnc.xzrenyuan');
			this.apipost('WorkFlow_get_GetTempLateDepartMentEmployee', {}, res => {
				this.memberList = res.data.data
			}, err => {})
		},
		deleteItem(sort) {  // 删除已添加审批人
			this.myAuditList.splice(this.myAuditList.findIndex(item => item.Sort === sort), 1)
		},
		addNode(){ // 添加节点
			let AuditList  = {};
			let type = this.approvalType
			if(this.AuditDescription==''){
				return this.$message.error(this.$t('tips.qtxjdmiaoshu'))
			}
			if(type==1){
				AuditList.AuditType = type;
				AuditList.AuditWay = 1;
				AuditList.AuditUserList = [{EmployeeId:'',Sort:''}];
				AuditList.Sort =  this.myAuditList.length + 1;
				AuditList.RoleOrInitiator = this.directors;
				AuditList.AuditDescription='';
				AuditList.SpecialNode = this.GetNodeValue;
				if(this.directors==''){
					return this.$message.error(this.$t('tips.qxzbmzgjibie'))
				}
				this.levelList.forEach(x=>{
					if(x.level == this.directors)
						{
							AuditList.Name=this.AuditDescription;
							AuditList.AuditDescription=this.AuditDescription;
						}
					else return
				})
				this.myAuditList.push(AuditList)
			}
			if(type==2){
				let Au = this.showMember;
				let Auu = [];
				Au.forEach((item, index) => {
					Auu.push({
						EmployeeId: item.DepartmentId,
						emName:item.DepartmentName,
						Sort: index+1
					})
				})
				AuditList.AuditWay = this.AuditWay;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.Name = this.AuditDescription;
				AuditList.AuditType = type;
				AuditList.RoleOrInitiator = '';
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditUserList = Auu;
				AuditList.SpecialNode = this.GetNodeValue;
				if(Auu.length==0)
				{
					this.$message.error(this.$t('tips.cybnweikong'))
					return
				}else if(Auu.length>10){
					this.$message.error(this.$t('tips.rsbncgtr'))
					return
				}
				this.myAuditList.push(AuditList);
			}
			if(type==3){
				AuditList.AuditType=type;
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditUserList = [{EmployeeId:'',Sort:''}];
				AuditList.SpecialNode = this.GetNodeValue;
				if(this.showRole.length==0)
				{
					this.$message.error(this.$t('tips.qxzbumen'))
					return
				}else{
					AuditList.RoleOrInitiator=this.showRole[0].Id;
					AuditList.Name=this.showRole[0].DepartmentName;
					AuditList.AuditDescription=this.AuditDescription;
				}
				this.myAuditList.push(AuditList);
			}
			if(type==4){//空节点
				AuditList.AuditType=type;
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditUserList = [{EmployeeId:'0',Sort:''}];
				AuditList.SpecialNode = this.GetNodeValue;
				AuditList.RoleOrInitiator=0;
				AuditList.Name='';
				AuditList.AuditDescription=this.AuditDescription;
				this.myAuditList.push(AuditList);
			}
			if(type==5){//出纳
				// if(!this.WindowID){
				// 	this.$message.error("请选择窗口！")
				// 	return
				// }
				AuditList.AuditType = 5;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList.push(AuditList);
			}
			if(type==6){//会计
				// if(!this.WindowID){
				// 	this.$message.error("请选择窗口！")
				// 	return
				// }
				AuditList.AuditType = 6;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList.push(AuditList);
			}
			if(type==7){//op
				// if(!this.WindowID){
				// 	this.$message.error("请选择窗口！")
				// 	return
				// }
				AuditList.AuditType = 7;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList.push(AuditList);
			}		
			if(type==10){//分公司op
				// if(!this.WindowID){
				// 	this.$message.error("请选择窗口！")
				// 	return
				// }
				AuditList.AuditType = 10;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList.push(AuditList);
			}	
			if(type==11){//总部线控
				AuditList.AuditType = 11;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList.push(AuditList);
			}	
				if(type==8){//记账出纳
				// if(!this.WindowID){
				// 	this.$message.error("请选择窗口！")
				// 	return
				// }
				AuditList.AuditType = 8;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList.push(AuditList);
			}		
				if(type==9){//收款出纳
				// if(!this.WindowID){
				// 	this.$message.error("请选择窗口！")
				// 	return
				// }
				AuditList.AuditType = 9;
				AuditList.RoleOrInitiator = '';
				AuditList.AuditWay = this.AuditWay;
				AuditList.Sort = this.myAuditList.length + 1;
				AuditList.AuditDescription = this.AuditDescription;
				AuditList.SpecialNode = this.GetNodeValue;
				this.myAuditList.push(AuditList);
			}
			this.closeLayer()
		},
		clearValue(t){  // 选择会计出纳窗口获取对应下拉
			this.SpecialNodeSelectType = ''; // 选择普通节点初始化 特殊节点 值
			// if(t==5){
			// 	this.WindowList = [];
			// 	this.apipost('Window_post_GetWindowList',{Type:1},res=>{
			// 		if(res.data.resultCode==1){
			// 			let data = res.data.data;
			// 			this.WindowList = data;
			// 		}else{}
			// 	},null)
			// }
			// if(t==6){
			// 	this.WindowList = [];
			// 	this.apipost('Window_post_GetWindowList',{Type:2},res=>{
			// 		if(res.data.resultCode==1){
			// 			let data = res.data.data;
			// 			this.WindowList = data;
			// 		}else{}
			// 	},null)
			// }
		},
		changeValue(value) {

		},
		getMaxDepartmentTierList(){  // 获取直接主管层级
			this.apipost('admin_get_GetMaxDepartmentTier',{},res=>{
				if(res.data.resultCode==1){
					let data = res.data.data;
					let newList = [];
					data.forEach(x => {
						let newObj = {
							level:x,
							name: this.$t('tips.di')+x+this.$t('tips.jizhuguan'),
						}
						newList.push(newObj)
					});
					this.levelList = newList
                }else{}
			},err=>{})
		},
		getCostTypeList(type){  // 获取费用类型
			this.apipost('Financial_post_GetTreeList',{Type:type},res=>{
				if(res.data.resultCode==1){
						this.CostTypeList=res.data.data;
						this.CostTypeList.unshift({
							ChildList:[],
							ID:'0',
							Name:this.$t('active.cl_tongyong')
						})
                }else{}
			},err=>{})
		},
		getCompanyList(){ //获取公司列表
            this.apipost('admin_get_BranchGetList',this.getCompanyMsg,res=>{
                if(res.data.resultCode==1){
					let data = res.data.data
					data.forEach(x=>{
						x.Id=x.Id.toString()
					})
					this.CompanyList=res.data.data;
                }else{}
            },err=>{})
		},
		addAppPerson(){  // 添加默认审批人按钮
			this.approvalType=1;
			this.addBtn=true;
			this.AuditDescription = '';
			this.showLayer();
			this.showMember = [];
			this.showRole = [];
			this.GetNodeValue = 0;
		},
		goUrl(path) {
            this.$router.push({ name: path,query:{"type":this.addMsg.TemplateType,'Branch_Id':this.$route.query.Branch_Id} })
        },
		showLayer() {  // 开启弹层
			this.showlayer = true;
			this.isTransition = true;
		},
		closeLayer() {  // 关闭弹层
			let _this = this;
			this.directors=''
			setTimeout(function() {
				_this.showlayer = false;
			}, 300)
			this.showMember = [];
			this.memberSetCheckedKeys = [];
			// this.$refs.tree.setCheckedKeys(this.memberSetCheckedKeys);
			this.isTransition = false;
			this.defaultCheckedArr = [];
			this.WindowID = '';
			this.SpecialNodeSelectType = '';
		},
		filterNode(value, data) {
			if (!value) return true;
			return data.DepartmentName.indexOf(value) !== -1;
		},
		filterNode1(value, data) {
			if (!value) return true;
			return data.PostName.indexOf(value) !== -1;
		},
		filterNode2(value, data) {
			if (!value) return true;
			return data.DepartmentName.indexOf(value) !== -1;
		},
	}
}
</script>
