|
@@ -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);
|
|
|
}
|