|  | @@ -113,60 +113,56 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		<el-dialog title="审批通过" :visible.sync="adoptShow" width="571px" :before-close="adoptClose">
 | 
	
		
			
				|  |  |  			<el-form :model="adoptForm" ref="adoptForm" label-width="80px" v-loading="determinedBy">
 | 
	
		
			
				|  |  | -				<el-form-item label="指定规则" v-if="!detail_info.rule_id && !detail_info.item_id && detail_info.source_type != 4">
 | 
	
		
			
				|  |  | -					<el-switch v-model="adoptForm.ruleOrItem"></el-switch>
 | 
	
		
			
				|  |  | -				</el-form-item>
 | 
	
		
			
				|  |  | -				<el-form-item
 | 
	
		
			
				|  |  | -					label="分类"
 | 
	
		
			
				|  |  | -					v-if="detail_info.source_type != 4"
 | 
	
		
			
				|  |  | -					v-show="(detail_info.rule_id && !detail_info.item_id) || !adoptForm.ruleOrItem"
 | 
	
		
			
				|  |  | -					prop="rule_id"
 | 
	
		
			
				|  |  | -					:rules="[{ required: true, message: '请选择规则分类', trigger: 'blur' }]"
 | 
	
		
			
				|  |  | -				>
 | 
	
		
			
				|  |  | -					<el-cascader
 | 
	
		
			
				|  |  | -						:disabled="!!detail_info.rule_id || !!detail_info.item_id"
 | 
	
		
			
				|  |  | -						class="date-picker-width"
 | 
	
		
			
				|  |  | -						v-model="adoptForm.rule_id"
 | 
	
		
			
				|  |  | -						:options="ruleTrees"
 | 
	
		
			
				|  |  | -						:props="{ value: 'id', label: 'name', children: 'child' }"
 | 
	
		
			
				|  |  | -						@change="ruleChange"
 | 
	
		
			
				|  |  | -						ref="rule"
 | 
	
		
			
				|  |  | -						clearable
 | 
	
		
			
				|  |  | -						filterable
 | 
	
		
			
				|  |  | -						change-on-select
 | 
	
		
			
				|  |  | -						placeholder="请选择规则分类"
 | 
	
		
			
				|  |  | -					></el-cascader>
 | 
	
		
			
				|  |  | -				</el-form-item>
 | 
	
		
			
				|  |  | -				<el-form-item label="规则内容" v-if="(!!detail_info.rule_id && detail_info.item_name) || (!!detail_info.item_id && detail_info.item_name)">
 | 
	
		
			
				|  |  | -					<span>{{ detail_info.item_name }}</span>
 | 
	
		
			
				|  |  | -				</el-form-item>
 | 
	
		
			
				|  |  | -				<el-form-item
 | 
	
		
			
				|  |  | -					label="规则"
 | 
	
		
			
				|  |  | -					v-if="detail_info.source_type != 4"
 | 
	
		
			
				|  |  | -					v-show="(detail_info.rule_id && detail_info.item) || adoptForm.ruleOrItem"
 | 
	
		
			
				|  |  | -					prop="item_id"
 | 
	
		
			
				|  |  | -					:rules="[{ required: true, message: '请选择规则细则', trigger: 'blur' }]"
 | 
	
		
			
				|  |  | -				>
 | 
	
		
			
				|  |  | -					<el-cascader
 | 
	
		
			
				|  |  | -						:disabled="!!detail_info.rule_id || !!detail_info.item_id"
 | 
	
		
			
				|  |  | -						class="date-picker-width"
 | 
	
		
			
				|  |  | -						:popper-class="'itemClass'"
 | 
	
		
			
				|  |  | -						v-model="adoptForm.item_id"
 | 
	
		
			
				|  |  | -						:options="item_list"
 | 
	
		
			
				|  |  | -						:props="{
 | 
	
		
			
				|  |  | -							value: 'id',
 | 
	
		
			
				|  |  | -							label: 'name',
 | 
	
		
			
				|  |  | -							children: 'child',
 | 
	
		
			
				|  |  | -							emitPath: 'false'
 | 
	
		
			
				|  |  | -						}"
 | 
	
		
			
				|  |  | -						:show-all-levels="false"
 | 
	
		
			
				|  |  | -						ref="ruleItem"
 | 
	
		
			
				|  |  | -						filterable
 | 
	
		
			
				|  |  | -						clearable
 | 
	
		
			
				|  |  | -						@change="cascaderItemIdChange"
 | 
	
		
			
				|  |  | -						placeholder="请选择规则细则"
 | 
	
		
			
				|  |  | -					></el-cascader>
 | 
	
		
			
				|  |  | -				</el-form-item>
 | 
	
		
			
				|  |  | +				<template v-if="detail_info.source_type != 4">
 | 
	
		
			
				|  |  | +					<el-form-item label="指定规则" v-if="!detail_info.rule_id && !detail_info.item_id">
 | 
	
		
			
				|  |  | +						<el-switch v-model="adoptForm.ruleOrItem"></el-switch>
 | 
	
		
			
				|  |  | +					</el-form-item>
 | 
	
		
			
				|  |  | +					<el-form-item
 | 
	
		
			
				|  |  | +						label="分类"
 | 
	
		
			
				|  |  | +						v-show="(detail_info.rule_id && !detail_info.item_id) || !adoptForm.ruleOrItem"
 | 
	
		
			
				|  |  | +						prop="rule_id"
 | 
	
		
			
				|  |  | +						:rules="[{ required: true, message: '请选择规则分类', trigger: 'blur' }]"
 | 
	
		
			
				|  |  | +					>
 | 
	
		
			
				|  |  | +						<el-cascader
 | 
	
		
			
				|  |  | +							:disabled="guol(detail_info)"
 | 
	
		
			
				|  |  | +							class="date-picker-width"
 | 
	
		
			
				|  |  | +							v-model="adoptForm.rule_id"
 | 
	
		
			
				|  |  | +							:options="ruleTrees"
 | 
	
		
			
				|  |  | +							:props="{ value: 'id', label: 'name', children: 'child' }"
 | 
	
		
			
				|  |  | +							@change="ruleChange"
 | 
	
		
			
				|  |  | +							ref="rule"
 | 
	
		
			
				|  |  | +							clearable
 | 
	
		
			
				|  |  | +							filterable
 | 
	
		
			
				|  |  | +							change-on-select
 | 
	
		
			
				|  |  | +							placeholder="请选择规则分类"
 | 
	
		
			
				|  |  | +						></el-cascader>
 | 
	
		
			
				|  |  | +					</el-form-item>
 | 
	
		
			
				|  |  | +					<el-form-item label="规则内容" v-if="(detail_info.rule_id && detail_info.item_name) || (detail_info.item_id && detail_info.item_name)">
 | 
	
		
			
				|  |  | +						<span>{{ detail_info.item_name }}</span>
 | 
	
		
			
				|  |  | +					</el-form-item>
 | 
	
		
			
				|  |  | +					<el-form-item
 | 
	
		
			
				|  |  | +						label="规则"
 | 
	
		
			
				|  |  | +						v-show="(detail_info.rule_id && detail_info.item) || adoptForm.ruleOrItem"
 | 
	
		
			
				|  |  | +						prop="item_id"
 | 
	
		
			
				|  |  | +						:rules="[{ required: true, message: '请选择规则细则', trigger: 'blur' }]"
 | 
	
		
			
				|  |  | +					>
 | 
	
		
			
				|  |  | +						<el-cascader
 | 
	
		
			
				|  |  | +							:disabled="guol(detail_info)"
 | 
	
		
			
				|  |  | +							:popper-class="'itemClass'"
 | 
	
		
			
				|  |  | +							v-model="adoptForm.item_id"
 | 
	
		
			
				|  |  | +							:options="item_list"
 | 
	
		
			
				|  |  | +							:props="{value: 'id',label: 'name',children: 'child'}"
 | 
	
		
			
				|  |  | +							ref="ruleItem"
 | 
	
		
			
				|  |  | +							clearable
 | 
	
		
			
				|  |  | +							filterable
 | 
	
		
			
				|  |  | +							:show-all-levels="false"
 | 
	
		
			
				|  |  | +							@change="cascaderItemIdChange"
 | 
	
		
			
				|  |  | +							placeholder="请选择规则细则"
 | 
	
		
			
				|  |  | +						></el-cascader>
 | 
	
		
			
				|  |  | +					</el-form-item>
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  | +				</template>
 | 
	
		
			
				|  |  |  				<el-form-item label="规则积分" v-show="detail_info.item_id">
 | 
	
		
			
				|  |  |  					{{
 | 
	
		
			
				|  |  |  						detail_info.item_range_type == 1
 | 
	
	
		
			
				|  | @@ -313,7 +309,8 @@ export default {
 | 
	
		
			
				|  |  |  			manager: '',
 | 
	
		
			
				|  |  |  			employee_not_select: [],
 | 
	
		
			
				|  |  |  			manager_selected: { dept: [], employee: [] },
 | 
	
		
			
				|  |  | -			show_employee_selector: false
 | 
	
		
			
				|  |  | +			show_employee_selector: false,
 | 
	
		
			
				|  |  | +			flatteningIntegralRules:{}
 | 
	
		
			
				|  |  |  		};
 | 
	
		
			
				|  |  |  	},
 | 
	
		
			
				|  |  |  	props: {
 | 
	
	
		
			
				|  | @@ -363,6 +360,13 @@ export default {
 | 
	
		
			
				|  |  |  		this.employee_lists = this.$getUserData().employee_detail.superior_list;
 | 
	
		
			
				|  |  |  	},
 | 
	
		
			
				|  |  |  	methods: {
 | 
	
		
			
				|  |  | +		guol(data){
 | 
	
		
			
				|  |  | +			if(data.rule_id || data.item_id){
 | 
	
		
			
				|  |  | +				return true
 | 
	
		
			
				|  |  | +			}else{
 | 
	
		
			
				|  |  | +				return false
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  |  		submitApproval(name) {
 | 
	
		
			
				|  |  |  			this.$refs[name].confirm(); //调用组件的confirm();
 | 
	
		
			
				|  |  |  		},
 | 
	
	
		
			
				|  | @@ -372,7 +376,15 @@ export default {
 | 
	
		
			
				|  |  |  		},
 | 
	
		
			
				|  |  |  		cascaderItemIdChange(val) {
 | 
	
		
			
				|  |  |  			if(val.length>0){
 | 
	
		
			
				|  |  | -				let datas = this.$refs['ruleItem'].getCheckedNodes()[0].data;
 | 
	
		
			
				|  |  | +				let datas = null;
 | 
	
		
			
				|  |  | +				this.flatteningIntegralRules.forEach(element => {
 | 
	
		
			
				|  |  | +					if (element.id == val[val.length - 1]) {
 | 
	
		
			
				|  |  | +						datas = { ...element };
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				});
 | 
	
		
			
				|  |  | +				console.log(datas);
 | 
	
		
			
				|  |  | +				// return
 | 
	
		
			
				|  |  | +				// let datas = this.$refs['ruleItem'].getCheckedNodes()[0].data;
 | 
	
		
			
				|  |  |  				if (datas.range_type == 1) {
 | 
	
		
			
				|  |  |  					this.forbiddenInputNum = true;
 | 
	
		
			
				|  |  |  				} else {
 | 
	
	
		
			
				|  | @@ -441,6 +453,19 @@ export default {
 | 
	
		
			
				|  |  |  				this.$refs.ruleItem.dropDownVisible = false;
 | 
	
		
			
				|  |  |  			});
 | 
	
		
			
				|  |  |  		},
 | 
	
		
			
				|  |  | +		getItemDetail(arr) {
 | 
	
		
			
				|  |  | +			let result = [];
 | 
	
		
			
				|  |  | +			for (const item of arr) {
 | 
	
		
			
				|  |  | +				var res = JSON.parse(JSON.stringify(item)); // 先克隆一份数据作为第一层级的填充
 | 
	
		
			
				|  |  | +				delete res['child'];
 | 
	
		
			
				|  |  | +				result.push(res);
 | 
	
		
			
				|  |  | +				if (item.child instanceof Array && item.child.length > 0) {
 | 
	
		
			
				|  |  | +					// 如果当前child为数组并且长度大于0,才可进入getItemDetail()方法
 | 
	
		
			
				|  |  | +					result = result.concat(this.getItemDetail(item.child));
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			return result;
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  |  		// 获取规则细则树
 | 
	
		
			
				|  |  |  		getRuleItemTree() {
 | 
	
		
			
				|  |  |  			let self = this;
 | 
	
	
		
			
				|  | @@ -451,6 +476,7 @@ export default {
 | 
	
		
			
				|  |  |  			this.$axios('get', '/api/integral/rule/trees', params, 'v2').then(res => {
 | 
	
		
			
				|  |  |  				if (res.data.code == 1) {
 | 
	
		
			
				|  |  |  					self.item_list = res.data.data.tree;
 | 
	
		
			
				|  |  | +					this.flatteningIntegralRules = this.getItemDetail(self.item_list);
 | 
	
		
			
				|  |  |  				} else {
 | 
	
		
			
				|  |  |  					self.$message.error(res.data.data.msg);
 | 
	
		
			
				|  |  |  				}
 |