<el-dialog :title="setReviewerTitle" :visible.sync="setReviewerVisible">
<div class="custom-tree-container" style="margin-bottom:15px;">
<!-- 左侧的树 -->
<div style="width:48%;border:1px solid #DCDFE6;height:300px;">
<el-input placeholder="输入关键字进行过滤" v-model="filterText" style="padding:10px;">
</el-input>
<div style="width:95%;height:230px;overflow-y:auto;margin:0 auto;">
<el-tree class="filter-tree" :data="setUserstreeData" :props="defaultProps" :filter-node-method="filterNode" :highlight-current="true" ref="tree" @node-click="setReviewerNodeClick" default-expand-all>
</el-tree>
</div>
</div>
<!-- 右侧的人员列表-->
<div style="width:48%;border:1px solid #DCDFE6;height:300px;">
<el-input placeholder="输入关键字进行过滤" v-model="checkboxFilterText" style="padding:10px;" @input="inputCheckboxFilterText" />
<div style="width:95%;height:230px;overflow-y:auto;margin:0 auto;">
<el-checkbox-group v-model="checkedUsers" style="padding:10px;">
<el-checkbox style="display:block;padding:3px;" v-for="item in checkboxUsers" :label="item.id" :key="item.id" @change="checkboxChange(item.realName,item.id,$event)">{{item.realName}}</el-checkbox>
</el-checkbox-group>
</div>
</div>
</div>
<!-- 将选中的人员进行回显-->
<div style="height:25px;font-size:16px;line-height:20px;">
已选择
</div>
<div style="width:99%;border:1px solid #DCDFE6;height:150px;overflow-y:auto;padding:10px;">
<el-tag v-for="item in dynamicTags" :key="item.id" closable type="info" @close="handleClose(item)" effect="plain" style="margin-bottom:5px;">
{{ item.realName }}
</el-tag>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="preserveSetReviewer(setReviewerTitle)">保 存</el-button>
<el-button @click="cancelSetReviewer(setReviewerTitle)">取 消</el-button>
</span>
</el-dialog>
setReviewerVisible: false,
setReviewerTitle: "",
dynamicTags: [
],
setUserstreeData: [],
checkedUsers: [],
checkboxUsers: [],
filterText: "",
checkboxFilterText: "",
defaultProps: {
children: "child",
label: "name",
},
getCurrentSelectedId: "",
getReViewOfficeTree(code) {
let params = {
code: code,
};
getReViewOfficeTree(params)
.then((res) => {
this.setUserstreeData = [res.data];
})
.catch((err) => {});
},
filterNode(value, data) {
if (!value) return true;
return data.name.indexOf(value) !== -1;
},
setReviewerNodeClick(data) {
console.log("kdsafkdsfn", data.id);
this.getCurrentSelectedId = data.id;
this.getCheckboxUsers();
},
inputCheckboxFilterText() {
this.getCheckboxUsers();
},
getCheckboxUsers() {
let params = {
id: this.getCurrentSelectedId,
};
if (this.checkboxFilterText) {
params.name = this.checkboxFilterText;
}
getComUsers(params)
.then((res) => {
this.checkboxUsers = res.data;
})
.catch((err) => {
console.log("");
});
},
checkboxChange(name, id, e) {
console.log("checkboxChange点击右侧多选框2222", name, id, e);
console.log("checkedUsers222", this.checkedUsers);
if (e) {
this.dynamicTags.push({ id: id, realName: name });
} else {
const values = this.dynamicTags.map((item) => item.id);
console.log("values.indexOf(id)", values.indexOf(id));
this.dynamicTags.splice(values.indexOf(id), 1);
}
},
handleClose(tag) {
this.$confirm("是否确定删除?", "删除", {
confirmButtonText: "确认",
cancelButtonText: "取消",
})
.then(() => {
console.log("tag6666666", tag);
this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
this.$message({type: "success", message: "删除成功",});
let values = JSON.parse(JSON.stringify( this.checkedUsers ));
this.checkedUsers = values.filter((item) => item != tag.id);
})
.catch(() => {
this.$message({type: "info",message: "已取消删除",});
});
},
querySetReviewer(command) {
this.dynamicTags = [];
this.checkedUsers = [];
this.getCurrentSelectedId = "";
this.checkboxUsers = [];
let params = {
taskId: this.ruleForm.taskId,
};
querySelectReportUsers(params)
.then((res) => {
console.log("res7777777", res.data);
this.dynamicTags = res.data;
this.checkedUsers = this.dynamicTags.map((item) => item.id);
})
.catch((err) => {});
},
preserveSetReviewer(command) {
if (command.substring(0, 2) == "初评") {
this.projectReportUser("2");
} else {
this.projectReportUser("3");
}
},
projectReportUser(val) {
let ids = this.dynamicTags.map((item) => item.id);
let params = {
taskId: this.ruleForm.taskId,
stage: val,
ids: ids,
};
if (ids.length == 0) {
return this.$message.error("请添加评审人");
}
projectReportUser(params)
.then((res) => {
if (res.code == "200") {
console.log("dsadsfdsfsda");
this.$message.success("设置成功" );
this.setReviewerVisible = false;
this.clickQuery();
} else {
this.$message.error(res.msg);
}
})
.catch((err) => {
this.$message.error( "设置失败" );
});
},
cancelSetReviewer(command) {
this.setReviewerVisible = false;
},