123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- var app = getApp()
- var that;
- Component({
- mixins: [],
- data: {
- all_rule_list: {},
- isShow: false,
- terr: [
- { name: '全部', id: 0 }
- ],
- rule_tree: [],
- selectSenction: [],
- },
- props: {
- onConfirm: (data) => console.log(data),
- onClose: (data) => console.log(data),
- defaultSection: [],
- },
- didMount() {
- that = this;
- this.setData({
- isShow: this.props.isShow,
- terr: [{ name: '全部', id: 0 }],
- selectSenction: this.props.defaultSection,
- })
- this.getBmData();
- },
- methods: {
- onConfirm() {
- if (!this.data.selectSenction) {
- app.globalData.showToast("请选择部门");
- return;
- }
- this.props.onConfirm(this.data.selectSenction);
- this.props.onClose();
- },
- //点击导航栏
- activeItem(e) {
- var item = e.target.dataset.item;
- var index = e.target.dataset.index;
- var terr = this.data.terr;
- if ((index + 1) == terr.length) { return false };
- this.setData({ rule_tree: [] });
- if (index == 0) {
- var all_rule_list= this.data.all_rule_list;
- var selectSenction=this.data.selectSenction;
- all_rule_list.map((item) => { //设置列表的选中状态
- item.checked = false;
- if (selectSenction.length > 0) {
- selectSenction.forEach(item2 => {
- if (item.id == item2.id) {
- item.checked = true;
- }
- })
- }
- })
- this.setData({
- terr: [{ name: '全部', id: 0 }],
- rule_tree: all_rule_list
- })
- } else {
- var arr = terr.slice(0, index + 1);
- this.setData({
- rule_tree: item._child,
- terr: arr
- })
- }
- },
- // 点击下一级
- openDown(e) {
- this.setData({ rule_tree: [] });
- var item = e.target.dataset.item;
- var terr = this.data.terr;
- var selectSenction=this.data.selectSenction;
- terr.push(item);
- if (item._child.length > 0) {
- item._child.map(item => {
- if (selectSenction.length > 0) {
- selectSenction.forEach(item2 => {
- if (item.id == item2.id) {
- item.checked = true;
- }
- })
- }
- })
- that.setData({
- rule_tree: item._child,
- terr: terr
- })
- }
- },
- radioChange: function (e) {
- var selectSenction = this.data.selectSenction;
- var isExist = false;
- let item = e.target.dataset.item;
- let index = e.target.dataset.index;
- let checked = `rule_tree[${index}].checked`;//获取当前控制选中的字段
- let elm = this.data.rule_tree[index].checked;//当前的状态
- this.setData({
- [checked]: !elm,
- })
- if (e.detail.value) {//当有值时选中
- selectSenction.forEach((element, _this) => {
- if (element.id == item.id) {
- isExist = true;
- }
- });
- if (!isExist) {
- selectSenction.push(item);
- }
- } else {//取消选中
- selectSenction.forEach((element, index, _this) => {
- if (element.id == item.id) {
- _this.splice(index, 1);
- }
- });
- }
- this.setData({
- selectSenction: selectSenction
- })
- },
- //获取部门列表
- getBmData() {
- app.$get("api/department/tree", {}).then((res) => {
- var list = res.data.data.list || [];
- var defaultSection = that.props.defaultSection;
- list.map((item) => { //设置列表的选中状态
- item.checked = false;
- if (defaultSection.length > 0) {
- defaultSection.forEach(item2 => {
- if (item.id == item2.id) {
- item.checked = true;
- }
- })
- }
- })
- this.setData({
- rule_tree: list,
- all_rule_list: list,
- })
- })
- },
- //关闭
- onClose(e) {
- this.props.onClose();
- },
- },
- });
|