| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326 | const _Http = getApp().globalData.http,    deleteMark = require("../../utils/deleteMark");Page({    data: {        sys_phonebookid: 0,        from1: [{            label: "姓名",            error: false,            errMsg: "",            type: "text",            value: "",            placeholder: "请填写",            valueName: "name", //绑定的字段名称            required: true, //必填        }, {            label: "手机号码",            error: false,            errMsg: "",            type: "text",            value: "",            placeholder: "请填写",            valueName: "phonenumber", //绑定的字段名称            required: true, //必填            callback: null,        }, {            label: "性别",            error: false,            errMsg: "",            type: "sex",            value: "",            placeholder: "请填写",            valueName: "sex",            required: false, //必填        }, {            label: "生日",            error: false,            errMsg: "",            type: "date",            value: "",            placeholder: "请填写",            valueName: "birthday",            required: false, //必填        }, {            label: "家庭住址",            error: false,            errMsg: "",            type: "text",            value: "",            placeholder: "请填写",            valueName: "homeaddress",            required: false, //必填        }, {            label: "邮箱",            error: false,            errMsg: "",            type: "text",            value: "",            placeholder: "请填写",            valueName: "email",            required: false, //必填        }],        from2: [{            label: "单位",            error: false,            errMsg: "",            type: "text",            value: "",            placeholder: "请填写",            valueName: "company",            required: false, //必填        }, {            label: "部门",            error: false,            errMsg: "",            type: "text",            value: "",            placeholder: "请填写",            valueName: "depname",            required: false, //必填        }, {            label: "职位",            error: false,            errMsg: "",            type: "text",            value: "",            placeholder: "请填写",            valueName: "position",            required: false, //必填        }],        from3: [{            label: "标签",            error: false,            errMsg: "",            type: "slot",            value: "",            placeholder: "请填写",            valueName: "tag",            required: false, //必填        }, {            label: "群组",            error: false,            errMsg: "",            type: "custom",            value: "",            placeholder: "请填写",            valueName: "sys_phonebookgroupid",            required: false, //必填        }, {            label: "备注",            error: false,            errMsg: "",            type: "text",            value: "",            placeholder: "请填写",            valueName: "remarks",            required: false, //必填        }],        disabled: true, //按钮禁用        groupList: [],        groupNameList: [],        groupName: null,        popupShow: false,        checked: false,        radio: '',        loading: false    },    onLoad(options) {        if (options.group) {            const group = JSON.parse(options.group);            this.setData({                groupName: group.groupname,                'from3[1].value': group.sys_phonebookgroupid            })        };        if (options.data) {            const item = JSON.parse(options.data);            this.setData({                'from1[0].value': item.name,                'from1[1].value': item.phonenumber,                'from1[2].value': item.sex,                'from1[3].value': item.birthday,                'from1[4].value': item.homeaddress,                'from1[5].value': item.email,                'from2[0].value': item.company,                'from2[1].value': item.depname,                'from2[2].value': item.position,                'from3[0].value': item.tag1,                'from3[1].value': item.sys_phonebookgroupid,                'from3[2].value': item.remarks,                groupName: item.groupname,                sys_phonebookid: item.sys_phonebookid,                disabled: false            });            if (item.tag1.length) {                let checked = false,                    radio = '';                item.tag1.forEach(v => {                    if (v == '关键决策人') {                        checked = true;                    } else {                        radio = v;                    }                })                this.setData({                    checked,                    radio                })            }        };        this.getGroup();        wx.setNavigationBarTitle({            title: this.data.sys_phonebookid == 0 ? '添加联系人' : '修改联系人',        })    },    /* 监听表单必填项 */    form1CompletedOrNot({        detail    }) {        this.setData({            disabled: !detail        })    },    /* 提交表单 */    submit() {        if (this.data.disabled) return wx.showToast({            title: '请完成必填项',            icon: "none"        })        let from = {            ...this.selectComponent("#from1").getData().returnData,            ...this.selectComponent("#from2").getData().returnData,            ...this.selectComponent("#from3").getData().returnData,        }        if (!deleteMark.CheckPhoneNumber(from.phonenumber)) return;        if (from.email && !deleteMark.CheckEmail(from.email)) return;        if (from.sys_phonebookgroupid == '') from.sys_phonebookgroupid = 0;        if (from.tag == '') from.tag = [];        this.setData({            loading: true        })        _Http.basic({            "id": "20220831164503",            "version": 1,            "content": {                "sys_phonebookid": this.data.sys_phonebookid, //sys_phonebookid<=0时 为新增                ...from            }        }).then(res => {            this.setData({                loading: false            })            if (res.msg != '成功') return wx.showToast({                title: res.data,                icon: "none"            })            try {                res.data.tag1 = JSON.parse(res.data.tag)                getCurrentPages().forEach(v => {                    if (v.route === 'packageA/contacts/index') {                        v.getGroup();                    } else if (v.route === 'packageA/contacts/list') {                        let arr = v.data.phonebook,                            index = arr.findIndex(value => value.sys_phonebookid == res.data.sys_phonebookid);                        (index === -1) ? arr.push(res.data): arr[index] = res.data;                        v.setData({                            phonebook: arr                        })                    } else if (v.route === 'packageA/contacts/details') {                        v.handleData(res.data);                    }                });            } catch (e) {                wx.showToast({                    title: `错误!${e}`,                    icon: "none"                })            };            wx.showToast({                title: this.data.sys_phonebookid == 0 ? '添加成功' : '保存成功'            })            this.setData({                disabled: true,            })            setTimeout(() => {                wx.navigateBack({                    delta: 0                })            }, 700);        })    },    /* 获取分组 */    getGroup() {        _Http.basic({            "id": "20220831164603",            "version": 1,            "content": {                "nocache": true,                "where": {                    "condition": ""                }            }        }).then(res => {            if (res.msg != '成功') return wx.showToast({                title: res.msg,                icon: "none"            })            const data = res.data.filter(v => v.groupname != '客户联系人' && v.groupname != '项目联系人');            this.setData({                groupList: data,                groupNameList: data.map(v => v.groupname)            })        });    },    /* 选择部门 */    bindPickerChange(e) {        const {            returnData        } = this.selectComponent("#from3").getData()        this.setData({            'from3[1].value': this.data.groupList[e.detail.value - 0].sys_phonebookgroupid,            groupName: this.data.groupNameList[e.detail.value - 0],            'from3[0].value': returnData.tag,            'from3[2].value': returnData.remarks        });    },    /* 打开弹出层 */    openPopup() {        this.setData({            popupShow: true        })    },    /* 关闭弹出层 */    closePopup() {        this.setData({            popupShow: false        })    },    /* 确定标签 */    handleTag() {        let tagArr = [];        if (this.data.checked) tagArr.push("关键决策人");        if (this.data.radio) tagArr.push(this.data.radio);        const {            returnData        } = this.selectComponent("#from3").getData()        this.setData({            'from3[0].value': tagArr,            'from3[1].value': returnData.sys_phonebookgroupid,            'from3[2].value': returnData.remarks        });        this.closePopup()    },    /* 是否关键决策人 */    changeChecked() {        this.setData({            checked: !this.data.checked        })    },    /* 单选 */    onChange(e) {        this.setData({            radio: e.currentTarget.dataset.name        })    },    onShareAppMessage() {}})
 |