From 155b069b99dd5343809dc9d8c4316d4c9bbf7474 Mon Sep 17 00:00:00 2001 From: iceling Date: Tue, 29 Oct 2019 09:24:44 +0800 Subject: [PATCH] 个人资料改版 --- pages/user/userinfo/userinfo.js | 630 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------- pages/user/userinfo/userinfo.wxml | 405 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------- pages/user/userinfo/userinfo.wxss | 605 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------- 3 files changed, 1428 insertions(+), 212 deletions(-) diff --git a/pages/user/userinfo/userinfo.js b/pages/user/userinfo/userinfo.js index 81c1379..afd74eb 100644 --- a/pages/user/userinfo/userinfo.js +++ b/pages/user/userinfo/userinfo.js @@ -1,82 +1,586 @@ function e(e, a, r) { - return a in e ? Object.defineProperty(e, a, { - value: r, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[a] = r, e; + return a in e ? Object.defineProperty(e, a, { + value: r, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[a] = r, e; } -var a = getApp(), r = a.globalData.setting, - t = a.request, s = require("../../../utils/common.js"), util = require("../../../utils/util.js"); +var a = getApp(), + r = a.globalData.setting, + t = a.request, + s = require("../../../utils/common.js"), + util = require("../../../utils/util.js"); + +var timestamp = Date.parse(new Date()); +var date = new Date(timestamp); Page({ - data: { - url: r.url, - resourceUrl: r.resourceUrl, - iurl: r.imghost, - defaultAvatar: r.resourceUrl + "/static/images/user68.jpg", - user: null, - tc_hide:true, - stoname:"", - }, - onShow: function() { - var e = this; var req=t; - a.getUserInfo(function(a) { - var txt = util.formatTime(a.birthday,'yyyy-M-d'),arr = txt.split(' '); - a.birthday=arr[0]; - var txt2 = util.formatTime(a.reg_time, 'yyyy-M-d'), arr2 = txt.split(' '); - a.reg_time = arr2[0]; - req.get("/api/weshop/pickup/get/" + r.stoid + "/" + a.pickup_id, { - success: function (da) { - console.log('getsto'); - console.log(da); - //设置门店 - e.setData({ stoname: da.data.data.pickup_name}); - } - }) - e.setData({ - user: a - }); - }, !0); - }, - editUserInfo: function(e) { - var r = e.currentTarget.dataset.type; - if (("password" == r || "paypwd" == r) && !this.data.user.mobile) return a.showWarning("请先绑定手机号码"); - r && this.data.user && wx.navigateTo({ - url: "/pages/user/userinfo_edit/userinfo_edit?type=" + r - }); - }, - - /*--------------------修改头像---------------------*/ - changeAvatar: function() { - return false; - var r = this; - wx.chooseImage({ - count: 1, - sizeType: [ "compressed", "original" ], - sourceType: [ "camera", "album" ], - success: function(u) { - t.uploadFile(r.data.url + "/api/user/upload_headpic", { - filePath: u.tempFilePaths[0], - name: "head_pic", - success: function(t) { - var u = s.getFullUrl(t.data.result); - r.setData(e({}, "user.head_pic", u)), a.globalData.userInfo.head_pic = u, a.showSuccess("设置头像成功"); + data: { + phone:"", + url: r.url, + resourceUrl: r.resourceUrl, + iurl: r.imghost, + defaultAvatar: r.resourceUrl + "/static/images/user68.jpg", + user: null, + tc_hide: true, + stoname: "", + checkDate: false, + datet: "", + year: date.getFullYear(), + store: 0, + all_sto: "", + region_name: "", + def_pick_store: "", + sort_store: 0, //门店分类 + sec_sto: "", + more_store: 0, //选择门店 + choice_sort_store: 1, //选择分类门店 + more_store: 0, //选择门店 + lat: null, //维度 + lon: null, //经度 + fir_pick_index: 0, + sec_pick_index: 0, + is_gps: 1, + lon: 0, + only_pk: 0, + open_ind_store: 0, //哪里打开的门店列表的控制属性 + ispwhid:1,//是否隐藏密码显示 + isstcsp:1,//是否启动密码消费 + isGender:1,//什么性别 + iscalendar:1,//是否是农历 + }, + //是否启动密码消费 + isstcsp:function(){ + var th = this; + var isstcsp = th.data.isstcsp; + if (isstcsp==0){ + th.setData({ + isstcsp:1 + }) + }else{ + th.setData({ + isstcsp: 0 + }) + } + }, + //出生日期是否是农历 + iscalendar:function(){ + var th = this; + var iscalendar = th.data.iscalendar; + if (iscalendar == 0) { + th.setData({ + iscalendar: 1 + }) + } else { + th.setData({ + iscalendar: 0 + }) + } + }, + //性别 + isGender:function(){ + var th = this; + + var isGender = th.data.isGender; + if (isGender == 2) { + th.setData({ + isGender: 1 + }) + } else { + th.setData({ + isGender: 2 + }) + } + }, + //密码是否隐藏显示 + ispwhid:function(){ + var th = this; + var ispwhid = th.data.ispwhid; + if (ispwhid == 0) { + th.setData({ + ispwhid: 1 + }) + } else { + th.setData({ + ispwhid: 0 + }) + } + }, + checkDate: function() { + var th = this; + if (th.data.checkDate) { + th.setData({ + checkDate: false + }) + } else { + th.setData({ + checkDate: true + }) + } + }, + bindChange: function(e) { + this.setData({ + datet: e.detail.value, + }); + }, + //---点击二级之后的选择--- + choose_for_store: function(e) { + var index_c = e.currentTarget.dataset.ind; + + this.setData({ + sec_pick_index: index_c, + fir_pick_index: index_c + }) + }, + //确定def_pick为选择的门店 + sure_pick: function(e) { + var th = this; + var item = null; + var openindstore = th.data.open_ind_store; + + if (th.data.choice_sort_store == 0) { + var index = th.data.fir_pick_index; + if (th.data.is_show_sto_cat == 1) { + item = th.data.def_pickpu_list[index]; + } else { + item = th.data.only_pk[index]; //当没有门店分类的时候 + } + + } else { + var index = th.data.sec_pick_index; + item = th.data.sec_sto.s_arr[index]; + } + + console.log("选择门店刷新", "def_pick_store", item); + th.setData({ + def_pick_store: item, + sto_sele_name: item.pickup_name, + sto_sele_id: item.pickup_id, + sto_sele_distr: item.distr_type, + store: 0, + choice_sort_store: 0, + fir_pick_index: 0 + }); + + if (openindstore == 1) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + }); + } else if (openindstore == 2) { + th.setData({ + openSpecModal: !0, + openSpecModal_ind: openindstore, + + openSpecModal_pt: 1 + }); + } + }, + choose_for_store_fir: function(e) { + var index_c = e.currentTarget.dataset.ind; + + this.setData({ + fir_pick_index: index_c + }) + }, + wait_for_store_config: function() { + var th = this; + wx.getLocation({ + type: 'wgs84', + success: function(res) { + th.data.lat = res.latitude; + th.data.lon = res.longitude; + th.data.is_get_local_ok = 1; + }, + fail: function(res) { + if (res.errCode == 2) { + th.setData({ + is_gps: 0 + }); + if (th.data.is_gps == 0) { + getApp().confirmBox("请开启GPS定位", null, 10000, !1); + } + + } else { + th.setData({ + is_gps: "3" + }); + } + + th.data.is_get_local_ok = 1; + } + }) + }, + onclickstore: function() { + var th = this; + if (th.data.store == 0) { + this.setData({ + store: 1 + }) + } else { + this.setData({ + store: 0 + }) + } + var dd = { + store_id: r.stoid, + isstop: 0, + pageSize: 300 + } + th.setData({ + sort_store: 1 + }); + var i = getApp().request; + //如果有距离的话 + if (th.data.lat != null) { + dd.lat = th.data.lat; + dd.lon = th.data.lon; + } + //----------获取门店---------------- + getApp().request.promiseGet("/api/weshop/pickup/list", { + data: dd, + }).then(res => { + var e = res; + if (e.data.code == 0) { + //-- 如果有默认选择门店的时候,要把默认门店放在第一位 -- + if (th.data.def_pick_store) { + for (var k = 0; k < e.data.data.pageData.length; k++) { + if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) { + e.data.data.pageData.splice(k, 1); //删除 + break; + } + } + e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加 + } + + //单总量超出5个的时候 + if (e.data.data.total > 5) { + i.get("/api/weshop/storagecategory/page", { + data: { + store_id: r.stoid, + is_show: 1, + pageSize: 300 + }, + success: function(ee) { + if (ee.data.code == 0) { + if (ee.data.data.pageData.length > 0) { + var def_arr = new Array(); + var ishas = 0; + //-- 开始就看5个门店 -- + for (var k = 0; k < 5; k++) { + if (k == e.data.data.pageData.length) break; + def_arr.push(e.data.data.pageData[k]); + } + + th.setData({ + def_pickpu_list: def_arr, + pickpu_list: ee.data.data.pageData + }); + var sto_cate = ee.data.data.pageData; + var sto_arr = e.data.data.pageData; + var newarr = new Array(); + var qita = new Array(); + + //----要进行门店分组-------- + for (var i = 0; i < sto_arr.length; i++) { + //找一下这个门店有没有在分类数组内 + var find2 = 0, + find2name = ""; + for (var m = 0; m < sto_cate.length; m++) { + if (sto_arr[i].category_id == sto_cate[m].cat_id) { + find2 = sto_cate[m].cat_id; + find2name = sto_cate[m].cat_name; + break; + } + } + + if (newarr.length > 0) { + var find = 0; + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 + if (find2 != 0) { + for (var ii = 0; ii < newarr.length; ii++) { + if (sto_arr[i].category_id == newarr[ii].cat_id) { + newarr[ii].s_arr.push(sto_arr[i]); + find = 1; + break; + } + } + if (find == 0) { + var arr0 = new Array(); + arr0.push(sto_arr[i]); + var item = { + cat_id: find2, + name: find2name, + s_arr: arr0 + }; + newarr.push(item); + } + } else { + qita.push(sto_arr[i]); + } + } else { + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 + if (find2 != 0) { + var arr0 = new Array(); + arr0.push(sto_arr[i]); + var item = { + cat_id: find2, + name: find2name, + s_arr: arr0 + }; + newarr.push(item); + } else { + qita.push(sto_arr[i]); + } } + } + + //----安排其他的分类----- + if (qita.length > 0) { + var item = { + cat_id: -1, + name: "其他", + s_arr: qita + }; + newarr.push(item); + } + th.setData({ + is_show_sto_cat: 1, + all_sto: newarr + }); + + } else { + th.setData({ + is_show_sto_cat: -1, + only_pk: e.data.data.pageData + }); + } + } else { + th.setData({ + is_show_sto_cat: -1, + only_pk: e.data.data.pageData }); + } } + }); + } else { + th.setData({ + is_show_sto_cat: 0, + only_pk: e.data.data.pageData + }); + } + } + }, 200) + console.log(th.data.all_sto + 'eeee'); + }, + //选择更多门店 + more_store: function() { + this.setData({ + sort_store: 1 + }); + }, + //---选择分类门店--- + choice_sort_store: function(e) { + var index = e.currentTarget.dataset.index; + var region_name = e.currentTarget.dataset.region; + var item = this.data.all_sto[index]; + this.setData({ + region_name: region_name, + sort_store: 0, + choice_sort_store: 1, + sec_sto: item, + sec_pick_index: 0 + }); + }, + // 返回按钮 + returns: function() { + this.setData({ + sort_store: 0, + choice_sort_store: 0 + }); + }, + //身份证号严格校验 + IdentityIDCard: function(e) { + var code = e.detail.value; + //身份证号前两位代表区域 + var city = { + 11: "北京", + 12: "天津", + 13: "河北", + 14: "山西", + 15: "内蒙古", + 21: "辽宁", + 22: "吉林", + 23: "黑龙江 ", + 31: "上海", + 32: "江苏", + 33: "浙江", + 34: "安徽", + 35: "福建", + 36: "江西", + 37: "山东", + 41: "河南", + 42: "湖北 ", + 43: "湖南", + 44: "广东", + 45: "广西", + 46: "海南", + 50: "重庆", + 51: "四川", + 52: "贵州", + 53: "云南", + 54: "西藏 ", + 61: "陕西", + 62: "甘肃", + 63: "青海", + 64: "宁夏", + 65: "新疆", + 71: "台湾", + 81: "香港", + 82: "澳门", + 91: "国外 " + }; + //身份证格式正则表达式 + var idCardReg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i; + var errorMess = ""; //错误提示信息 + var isPass = true; //身份证验证是否通过(true通过、false未通过) + + //如果身份证不满足格式正则表达式 + if (!code || !idCardReg.test(code)) { + console.log("您输入的身份证号格式有误!"); + errorMess = "您输入的身份证号格式有误!"; + isPass = false; + } + + //区域数组中不包含需验证的身份证前两位 + else if (!city[code.substr(0, 2)]) { + errorMess = "您输入的身份证地址编码有误!"; + isPass = false; + } else { + //18位身份证需要验证最后一位校验位 + if (code.length == 18) { + code = code.split(''); + //∑(ai×Wi)(mod 11) + //加权因子 + var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; + //校验位 + var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2]; + var sum = 0; + var ai = 0; + var wi = 0; + for (var i = 0; i < 17; i++) { + ai = code[i]; + wi = factor[i]; + sum += ai * wi; + } + var last = parity[sum % 11]; + if (parity[sum % 11] != code[17]) { + errorMess = "您输入的身份证号不存在!"; + isPass = false; + } + } + } + var returnParam = { + 'errorMess': errorMess, + 'isPass': isPass + } + if (errorMess != "") { + wx.showModal({ + title: errorMess, + content: '', + showCancel: false, + confirmText: '确定', + confirmColor: '', + success: function(res) {}, + fail: function(res) {}, + complete: function(res) {}, + }) + } + return returnParam; + }, + //------初始化加载---------- + onLoad: function(t) { + var th = this; + th.setData({ + isGender:th.data.user.sex + })//设置性别 + }, + onShow: function() { + + this.wait_for_store_config(); + var e = this; + var req = t; + a.getUserInfo(function(a) { + var txt = util.formatTime(a.birthday, 'yyyy-M-d'), + arr = txt.split(' '); + a.birthday = arr[0]; + var txt2 = util.formatTime(a.reg_time, 'yyyy-M-d'), + arr2 = txt.split(' '); + a.reg_time = arr2[0]; + if (a.pickup_id!=null) { + req.get("/api/weshop/pickup/get/" + r.stoid + "/" + a.pickup_id, { + success: function(da) { + console.log('getsto'); + console.log(da); + //设置门店 + e.setData({ + stoname: da.data.data.pickup_name + }); + } + }) + } + var phone = ""; + phone+=a.mobile.substr(0, 3)+"****"; + phone += a.mobile.substr(7, 12); + e.setData({ + phone:phone, + user: a + }); + e.setData({ + isGender:e.data.user.sex + }) + }, !0); + }, + + editUserInfo: function(e) { + var r = e.currentTarget.dataset.type; + if (("password" == r || "paypwd" == r) && !this.data.user.mobile) return a.showWarning("请先绑定手机号码"); + r && this.data.user && wx.navigateTo({ + url: "/pages/user/userinfo_edit/userinfo_edit?type=" + r + }); + }, + + /*--------------------修改头像---------------------*/ + changeAvatar: function() { + return false; + var r = this; + wx.chooseImage({ + count: 1, + sizeType: ["compressed", "original"], + sourceType: ["camera", "album"], + success: function(u) { + t.uploadFile(r.data.url + "/api/user/upload_headpic", { + filePath: u.tempFilePaths[0], + name: "head_pic", + success: function(t) { + var u = s.getFullUrl(t.data.result); + r.setData(e({}, "user.head_pic", u)), a.globalData.userInfo.head_pic = u, a.showSuccess("设置头像成功"); + } }); - }, + } + }); + }, //------卡片的显示和关闭-------- - show_tc: function () { + show_tc: function() { this.setData({ tc_hide: false, }); }, - hide_tc: function () { + hide_tc: function() { this.setData({ tc_hide: true, }); diff --git a/pages/user/userinfo/userinfo.wxml b/pages/user/userinfo/userinfo.wxml index 19cd0d1..69adb7d 100644 --- a/pages/user/userinfo/userinfo.wxml +++ b/pages/user/userinfo/userinfo.wxml @@ -1,97 +1,352 @@ + - - - 头像 - - - - 昵称 - - {{user.nickname}} - - - 性别 - - {{user.sex?user.sex==1?'男':'女':'保密'}} - - - - 生日 - - {{user.birthday}} - + + + - - 姓名 - - {{user.vipname}} + + + + + + + {{user.nickname}} + + + + + + + + 黑卡会员 + + + + + + PULS会员 + + + + + + + + 我的二维码 + + + - - 身份证 - - {{user.idcard}} + + + + 卡号 + {{user.erpvipno}} - - 电话 - - {{user.mobile}} + + + + 消费密码 + + + + + + + + 启动密码消费 + - - 地址 - - {{user.address}} + + + + + + + + + + + + + + - - - 所属门店 - - {{stoname}} + + + 性别 + + + + + + + + + + + + + + + + + + + - + + {{datet==""?user.birthday:datet}} + + - - 支付密码 - - --> - - 收货地址 - - - - 我的二维码名片 - + + + + + 姓名 + + + + + 身份证 + + {{user.idcard}} + + + + + + + 更换手机 + + {{phone}} + - - 绑定的时间 - - {{user.reg_time}} + + + 地址 + + {{user.address}} + + + + + + + + 所属门店 + + {{def_pick_store.pickup_name}} + + + + 收货地址 + + {{user.address_id}} + + + + + 绑定的时间 + {{user.reg_time}} + + + + + + + 确认修改 +