Browse Source

项目关联联系人修改

xiaohaizhao 3 years ago
parent
commit
55b538d58a

+ 328 - 244
packageA/project/modules/contacts/add/index.js

@@ -1,247 +1,331 @@
 const _Http = getApp().globalData.http;
 Page({
-    data: {
-        sys_phonebookid: null, //是否为快捷选择创建的账号
-        fromShowAll: false,
-        form: [{
-            label: "姓名",
-            error: false,
-            errMsg: "",
-            type: "text",
-            value: "",
-            placeholder: "联系人名称",
-            valueName: "name",
-            required: true,
-            checking: "base"
-        }, {
-            label: "手机号",
-            error: false,
-            errMsg: "",
-            type: "number",
-            value: "",
-            placeholder: "联系人手机号码",
-            valueName: "phonenumber",
-            required: true,
-            checking: "phone"
-        }, {
-            label: "部门",
-            error: false,
-            errMsg: "",
-            type: "text",
-            value: "",
-            placeholder: "联系人所属部门",
-            valueName: "depname",
-            required: false,
-            checking: "base"
-        }, {
-            label: "单位",
-            error: false,
-            errMsg: "",
-            type: "route",
-            url: "/packageA/project/modules/contacts/select/index",
-            value: "",
-            query:"&radio=true",
-            placeholder: "选择单位",
-            valueName: "sys_enterpriseid",
-            required: true,
-            checking: "base",
-        }, {
-            label: "职位",
-            error: false,
-            errMsg: "",
-            type: "text",
-            value: "",
-            placeholder: "联系人职位",
-            valueName: "position",
-            required: false,
-            checking: "base"
-        }, {
-            label: "性别",
-            error: false,
-            errMsg: "",
-            type: "sex",
-            value: "",
-            placeholder: "联系人性别",
-            valueName: "sex",
-            required: false,
-            checking: "base"
-        }, {
-            label: "生日",
-            error: false,
-            errMsg: "",
-            type: "date",
-            value: "",
-            placeholder: "联系人生日",
-            valueName: "birthday",
-            required: false
-        }, {
-            label: "邮箱",
-            error: false,
-            errMsg: "",
-            type: "textarea",
-            value: "",
-            placeholder: "请填写",
-            valueName: "email",
-            required: false,
-            checking: "mail"
-        }, {
-            label: "地区",
-            error: false,
-            errMsg: "",
-            type: "region",
-            value: [],
-            placeholder: "省,市,区",
-            valueName: "region",
-            required: false
-        }, {
-            label: "详细地址",
-            error: false,
-            errMsg: "",
-            type: "textarea",
-            value: "",
-            placeholder: "例: 科创园11栋1103室",
-            valueName: "address",
-            required: false,
-            checking: "base"
-        }, {
-            label: "备注",
-            error: false,
-            errMsg: "",
-            type: "textarea",
-            value: "",
-            placeholder: "请填写",
-            valueName: "remarks",
-            required: false,
-            checking: "base"
-        }],
-        disabled: true,
-        "content": {
-            "contactsid": 0, //地址id
-            "sa_projectid": 0, //绑定数据
-            "isleader": 0, //默认0
-            "workaddress": 0,
-            "isdefault": 0, //是否默认地址
-            "isprimary": 0 //是否为主地址
-        }
-    },
-    onLoad(options) {
-        this.setData({
-            "content.sa_projectid": options.sa_projectid
-        });
-        if (options.data) {
-            let item = JSON.parse(options.data),
-                disabled = false,
-                form = this.data.form.map(v => {
-                    if (v.valueName == 'region') {
-                        v.value = item.province ? [item.province, item.city, item.county] : []
-                    } else if (v.valueName == 'sys_enterpriseid') {
-                        if (item.sys_enterpriseid) {
-                            v.value = [item.enterprisename, [item.sys_enterpriseid]]
-                        } else {
-                            v.value = "";
-                            disabled = true;
-                        }
-                    } else {
-                        v.value = Object.hasOwn(item, v.valueName) ? item[v.valueName] : v.value;
-                    }
-                    return v
-                });
-            this.setData({
-                form,
-                disabled,
-                "content.contactsid": item.contactsid
-            });
-            if (item.sys_phonebookid) this.setData({
-                sys_phonebookid: item.sys_phonebookid
-            })
-        };
-    },
-    /* 提交数据 */
-    submit() {
-        let data = this.selectComponent("#Form").submit();
-        if (!data || this.data.disabled) return;
-        data.sys_enterpriseid = data.sys_enterpriseid[1][0]
-        const content = {
-            ...this.data.content,
-            ...data,
-            "province": data.region[0] || "",
-            "city": data.region[1] || "",
-            "county": data.region[2] || "",
-            sys_phonebookid: ""
-        };
-        delete(content.region);
-        if (this.data.sys_phonebookid == null) {
-            this.handleSubmit(content);
-        } else {
-            let that = this;
-            wx.showModal({
-                title: '提示',
-                content: '是否删除原通讯录联系人信息',
-                complete({
-                    confirm
-                }) {
-                    content.sys_phonebookid = confirm ? that.data.sys_phonebookid : "";
-                    that.handleSubmit(content);
-                }
-            })
-        }
-    },
-    handleSubmit(content) {
-        _Http.basic({
-            "id": "20221018141802",
-            content
-        }).then(res => {
-            console.log("编辑联系人", res)
-            if (res.msg != '成功') return wx.showToast({
-                title: res.data,
-                icon: "none"
-            });
-            let that = this;
-            let page = getCurrentPages()[getCurrentPages().length - 2];
-            _Http.basic({
-                "id": 20221111131104,
-                "content": {
-                    "sa_project_contactsid": 0,
-                    contactsids: [res.data.contactsid],
-                    "sa_projectid": page.data.sa_projectid,
-                    "remarks": ""
-                }
-            }).then(res => {
-                console.log("项目添加联系人", res)
-                if (res.msg != '成功') return wx.showToast({
-                    title: res.data,
-                    icon: "none"
-                });
-                wx.showToast({
-                    title: '添加成功',
-                    icon: "none"
-                });
-                setTimeout(() => {
-                    wx.navigateBack();
-                    let model = page.selectComponent("#Contacts")
-                    model.getList(model.data.sa_projectid, true)
-                }, 300)
-            })
-            wx.showToast({
-                title: '保存成功',
-                icon: "none"
-            });
-        });
-    },
-    /* 表单是否填写完成 */
-    onConfirm({
-        detail
-    }) {
-        this.setData({
-            disabled: detail
-        })
-    },
-    /* 是否显示全部 */
-    changefromShowAll({
-        detail
-    }) {
-        this.setData({
-            fromShowAll: detail
-        })
-    },
+	data: {
+		sys_phonebookid: null, //是否为快捷选择创建的账号
+		fromShowAll: false,
+		form: [{
+			label: "姓名",
+			error: false,
+			errMsg: "",
+			type: "text",
+			value: "",
+			placeholder: "联系人名称",
+			valueName: "name",
+			required: true,
+			checking: "base"
+		}, {
+			label: "联系方式",
+			error: false,
+			errMsg: "",
+			hint: "",
+			type: "radio",
+			value: "0",
+			radioList: [{
+				id: '0',
+				name: '手机号'
+			}, {
+				id: '1',
+				name: '座机电话'
+			}],
+			valueName: "isTelephone", //绑定的字段名称
+			required: true, //必填
+			interrupt: true,
+			checking: `true`,
+			phonenumber: "",
+			telephone: ["", ""]
+		}, {
+			label: "手机号",
+			error: false,
+			errMsg: "",
+			type: "number",
+			value: "",
+			placeholder: "联系人手机号码",
+			valueName: "phonenumber",
+			required: true,
+			checking: "phone"
+		}, {
+			label: "邮箱",
+			error: false,
+			errMsg: "",
+			type: "textarea",
+			value: "",
+			placeholder: "请填写",
+			valueName: "email",
+			required: false,
+			checking: "mail"
+		}, {
+			label: "传真",
+			error: false,
+			errMsg: "",
+			type: "textarea",
+			value: "",
+			placeholder: "请填写",
+			valueName: "fax",
+			required: false,
+		}, {
+			label: "单位",
+			error: false,
+			errMsg: "",
+			type: "route",
+			url: "/packageA/project/modules/contacts/select/index",
+			value: "",
+			query: "&radio=true",
+			placeholder: "选择单位",
+			valueName: "sys_enterpriseid",
+			required: true,
+			checking: "base",
+		}, {
+			label: "部门",
+			error: false,
+			errMsg: "",
+			type: "text",
+			value: "",
+			placeholder: "联系人所属部门",
+			valueName: "depname",
+			required: false,
+			checking: "base"
+		}, {
+			label: "职位",
+			error: false,
+			errMsg: "",
+			type: "text",
+			value: "",
+			placeholder: "联系人职位",
+			valueName: "position",
+			required: false,
+			checking: "base"
+		}, {
+			label: "性别",
+			error: false,
+			errMsg: "",
+			type: "sex",
+			value: "男",
+			placeholder: "联系人性别",
+			valueName: "sex",
+			required: false,
+			checking: "base"
+		}, {
+			label: "生日",
+			error: false,
+			errMsg: "",
+			type: "date",
+			value: "",
+			placeholder: "联系人生日",
+			valueName: "birthday",
+			required: false
+		}, {
+			label: "家庭地址",
+			error: false,
+			errMsg: "",
+			type: "textarea",
+			value: "",
+			placeholder: "家庭地址",
+			valueName: "address",
+			required: false,
+			checking: "base"
+		}, {
+			label: "备注",
+			error: false,
+			errMsg: "",
+			type: "textarea",
+			value: "",
+			placeholder: "请填写",
+			valueName: "remarks",
+			required: false,
+			checking: "base"
+		}],
+		disabled: true,
+		"content": {
+			"contactsid": 0, //地址id
+			"sa_projectid": 0, //绑定数据
+			"isleader": 0, //默认0
+			"workaddress": 0,
+			"isdefault": 0, //是否默认地址
+			"isprimary": 0 //是否为主地址
+		}
+	},
+	onLoad(options) {
+		this.data.content.sa_projectid = options.sa_projectid;
+		if (options.data) {
+			let item = JSON.parse(options.data),
+				disabled = false,
+				arr = item.phonenumber.split("-");
+			item.sys_enterpriseid = [item.enterprisename, [item.sys_enterpriseid]];
+			item.isTelephone = arr.length == 2 ? "1" : "0";
+			this.setData({
+				form: this.data.form.map(v => {
+					if (v.valueName == 'phonenumber') {
+						v = arr.length == 2 ? {
+							label: "电话",
+							error: false,
+							errMsg: "",
+							type: "telephone",
+							value: arr,
+							placeholder: "联系人手机号码",
+							valueName: "telephone",
+							required: true,
+							checking: "telephone"
+						} : {
+							label: "手机号",
+							error: false,
+							errMsg: "",
+							type: "number",
+							value: arr[0],
+							placeholder: "联系人手机号码",
+							valueName: "phonenumber",
+							required: true,
+							checking: "phone"
+						}
+					} else {
+						v.value = Object.hasOwn(item, v.valueName) ? item[v.valueName] : v.value;
+					}
+					return v
+				}),
+				disabled
+			});
+			this.data.content = item;
+			if (item.sys_phonebookid) this.setData({
+				sys_phonebookid: item.sys_phonebookid
+			})
+		};
+	},
+	/* 打断 */
+	interrupt({
+		detail
+	}) {
+		let {
+			data,
+			form
+		} = detail;
+		if (data.label == '联系方式') {
+			if (data.value == 0) {
+				data.telephone = form[2].value;
+				form[2] = {
+					label: "手机号",
+					error: false,
+					errMsg: "",
+					type: "number",
+					value: data.phonenumber,
+					placeholder: "联系人手机号码",
+					valueName: "phonenumber",
+					required: true,
+					checking: "phone"
+				}
+			} else {
+				data.phonenumber = form[2].value;
+				form[2] = {
+					label: "电话",
+					error: false,
+					errMsg: "",
+					type: "telephone",
+					value: data.telephone,
+					placeholder: "联系人手机号码",
+					valueName: "telephone",
+					required: true,
+					checking: "telephone"
+				}
+			};
+			this.setData({
+				form
+			})
+		}
+	},
+	/* 提交数据 */
+	submit() {
+		let data = this.selectComponent("#Form").submit();
+		if (!data || this.data.disabled) return;
+		data.sys_enterpriseid = data.sys_enterpriseid[1] ? data.sys_enterpriseid[1][0] : 0;
+		const content = {
+			...this.data.content,
+			...data,
+			sys_phonebookid: ""
+		};
+		if (content.telephone) {
+			content.phonenumber = content.telephone.join("-");
+			delete(content.telephone)
+		}
+		if (this.data.sys_phonebookid == null) {
+			this.handleSubmit(content);
+		} else {
+			let that = this;
+			wx.showModal({
+				title: '提示',
+				content: '是否删除原通讯录联系人信息',
+				complete({
+					confirm
+				}) {
+					content.sys_phonebookid = confirm ? that.data.sys_phonebookid : "";
+					that.handleSubmit(content);
+				}
+			})
+		}
+	},
+	handleSubmit(content) {
+		_Http.basic({
+			"id": "20221018141802",
+			content
+		}).then(res => {
+			console.log("编辑联系人", res)
+			if (res.msg != '成功') return wx.showToast({
+				title: res.data,
+				icon: "none"
+			});
+			let that = this;
+			let page = getCurrentPages()[getCurrentPages().length - 2];
+			if (that.data.content.sa_project_contactsid) {
+				wx.showToast({
+					title: '保存成功',
+					icon: "none",
+					mask: true
+				});
+				setTimeout(() => {
+					wx.navigateBack();
+					let model = page.selectComponent("#Contacts")
+					model.getList(model.data.sa_projectid, true)
+				}, 300)
+			} else {
+				_Http.basic({
+					"id": 20221111131104,
+					"content": {
+						"sa_project_contactsid": 0,
+						contactsids: [res.data.contactsid],
+						"sa_projectid": page.data.sa_projectid,
+						"remarks": ""
+					}
+				}).then(res => {
+					console.log("项目添加联系人", res)
+					if (res.msg != '成功') return wx.showToast({
+						title: res.data,
+						icon: "none"
+					});
+					wx.showToast({
+						title: '添加成功',
+						icon: "none",
+						mask: true
+					});
+					setTimeout(() => {
+						wx.navigateBack();
+						let model = page.selectComponent("#Contacts")
+						model.getList(model.data.sa_projectid, true)
+					}, 300)
+				})
+			}
+		});
+	},
+	/* 表单是否填写完成 */
+	onConfirm({
+		detail
+	}) {
+		this.setData({
+			disabled: detail
+		})
+	},
+	/* 是否显示全部 */
+	changefromShowAll({
+		detail
+	}) {
+		this.setData({
+			fromShowAll: detail
+		})
+	},
 })

+ 1 - 1
packageA/project/modules/contacts/add/index.wxml

@@ -1,5 +1,5 @@
 <Yl_Headline title='基本信息' type='switch' switchLabel='仅显示必填项' switch='{{fromShowAll}}' bind:callBack='changefromShowAll' />
-<Yl_field id='Form' showAll='{{!fromShowAll}}' form="{{form}}" bind:onConfirm='onConfirm' />
+<Yl_field id='Form' showAll='{{!fromShowAll}}' form="{{form}}" bind:onConfirm='onConfirm' bind:interrupt='interrupt' />
 
 <view class="footer">
     <van-button custom-class='but' disabled='{{disabled}}' bindtap="submit">确定</van-button>

+ 2 - 3
packageA/project/modules/contacts/list/index.js

@@ -10,7 +10,6 @@ Component({
     },
     data: {
         range: ['高层', '中层', '项目负责人']
-
     },
     methods: {
         handleItem(e) {
@@ -22,7 +21,7 @@ Component({
             switch (name) {
                 case "call":
                     if (!item.phonenumber) return wx.showToast({
-                        title: '该用户手机号为空',
+                        title: '该用户联系方式为空',
                         icon: "none"
                     })
                     wx.makePhoneCall({
@@ -71,7 +70,7 @@ Component({
                     break;
                 case "edit":
                     wx.navigateTo({
-                        url: `/packageA/setclient/modules/contacts/add/index?data=${JSON.stringify(item)}`
+                        url: `/packageA/project/modules/contacts/add/index?data=${JSON.stringify(item)}`
                     })
                     break;
             }