Showing
8 changed files
with
77 additions
and
67 deletions
@@ -11,44 +11,47 @@ const accountModel = require('../models/account'); | @@ -11,44 +11,47 @@ const accountModel = require('../models/account'); | ||
11 | * 修改密码 | 11 | * 修改密码 |
12 | * @param req | 12 | * @param req |
13 | * @param res | 13 | * @param res |
14 | + * @param next | ||
14 | */ | 15 | */ |
15 | -const changePwd = (req, res) => { | 16 | +const changePwd = (req, res, next) => { |
16 | let uid = req.user.uid; | 17 | let uid = req.user.uid; |
17 | let pwd = req.body.password; | 18 | let pwd = req.body.password; |
18 | 19 | ||
19 | accountModel.changePwd(uid, pwd).then(result=> { | 20 | accountModel.changePwd(uid, pwd).then(result=> { |
20 | res.send(result); | 21 | res.send(result); |
21 | - }); | 22 | + }).catch(next); |
22 | }; | 23 | }; |
23 | 24 | ||
24 | /** | 25 | /** |
25 | * 验证手机号码 | 26 | * 验证手机号码 |
26 | * @param req | 27 | * @param req |
27 | * @param res | 28 | * @param res |
29 | + * @param next | ||
28 | */ | 30 | */ |
29 | -const checkVerifyMobile = (req, res)=> { | 31 | +const checkVerifyMobile = (req, res, next)=> { |
30 | let uid = req.user.uid; | 32 | let uid = req.user.uid; |
31 | let mobile = req.body.mobile; | 33 | let mobile = req.body.mobile; |
32 | let area = req.body.area; | 34 | let area = req.body.area; |
33 | 35 | ||
34 | accountModel.checkVerifyMobile(uid, mobile, area).then(result=> { | 36 | accountModel.checkVerifyMobile(uid, mobile, area).then(result=> { |
35 | res.send(result); | 37 | res.send(result); |
36 | - }); | 38 | + }).catch(next); |
37 | }; | 39 | }; |
38 | 40 | ||
39 | /** | 41 | /** |
40 | * 发送短信 | 42 | * 发送短信 |
41 | * @param req | 43 | * @param req |
42 | * @param res | 44 | * @param res |
45 | + * @param next | ||
43 | */ | 46 | */ |
44 | -const sendMobileMsg = (req, res)=> { | 47 | +const sendMobileMsg = (req, res, next)=> { |
45 | let uid = req.user.uid; | 48 | let uid = req.user.uid; |
46 | let mobile = req.body.mobile; | 49 | let mobile = req.body.mobile; |
47 | let area = req.body.area || '+86'; | 50 | let area = req.body.area || '+86'; |
48 | 51 | ||
49 | accountModel.sendMobileMsg(uid, mobile, area).then(result=> { | 52 | accountModel.sendMobileMsg(uid, mobile, area).then(result=> { |
50 | res.send(result); | 53 | res.send(result); |
51 | - }); | 54 | + }).catch(next); |
52 | }; | 55 | }; |
53 | 56 | ||
54 | 57 | ||
@@ -56,36 +59,38 @@ const sendMobileMsg = (req, res)=> { | @@ -56,36 +59,38 @@ const sendMobileMsg = (req, res)=> { | ||
56 | * 验证短信 | 59 | * 验证短信 |
57 | * @param req | 60 | * @param req |
58 | * @param res | 61 | * @param res |
62 | + * @param next | ||
59 | */ | 63 | */ |
60 | -const checkVerifyMsg = (req, res)=> { | 64 | +const checkVerifyMsg = (req, res, next)=> { |
61 | let code = req.body.code; | 65 | let code = req.body.code; |
62 | let mobile = req.body.mobile; | 66 | let mobile = req.body.mobile; |
63 | let area = req.body.area || '+86'; | 67 | let area = req.body.area || '+86'; |
64 | 68 | ||
65 | accountModel.checkVerifyMsg(code, mobile, area).then(result=> { | 69 | accountModel.checkVerifyMsg(code, mobile, area).then(result=> { |
66 | res.send(result); | 70 | res.send(result); |
67 | - }); | 71 | + }).catch(next); |
68 | }; | 72 | }; |
69 | 73 | ||
70 | /** | 74 | /** |
71 | * 发送验证邮件 | 75 | * 发送验证邮件 |
72 | * @param req | 76 | * @param req |
73 | * @param res | 77 | * @param res |
78 | + * @param next | ||
74 | */ | 79 | */ |
75 | -const sendVerifyEmail = (req, res)=> { | 80 | +const sendVerifyEmail = (req, res, next)=> { |
76 | let uid = req.user.uid; | 81 | let uid = req.user.uid; |
77 | let email = req.body.email; | 82 | let email = req.body.email; |
78 | 83 | ||
79 | accountModel.sendVerifyEmail(uid, email).then(result=> { | 84 | accountModel.sendVerifyEmail(uid, email).then(result=> { |
80 | res.send(result); | 85 | res.send(result); |
81 | - }); | 86 | + }).catch(next); |
82 | }; | 87 | }; |
83 | 88 | ||
84 | 89 | ||
85 | module.exports = { | 90 | module.exports = { |
86 | - changePwd: changePwd, | ||
87 | - sendMobileMsg: sendMobileMsg, | ||
88 | - checkVerifyMsg: checkVerifyMsg, | ||
89 | - sendVerifyEmail: sendVerifyEmail, | ||
90 | - checkVerifyMobile: checkVerifyMobile | 91 | + changePwd, |
92 | + sendMobileMsg, | ||
93 | + checkVerifyMsg, | ||
94 | + sendVerifyEmail, | ||
95 | + checkVerifyMobile | ||
91 | }; | 96 | }; |
@@ -26,10 +26,10 @@ const index = (req, res, next) => { | @@ -26,10 +26,10 @@ const index = (req, res, next) => { | ||
26 | addressModel.getAddressDataAsync(uid, 20).then(result => { | 26 | addressModel.getAddressDataAsync(uid, 20).then(result => { |
27 | let resultData = result.data ? result.data : result; | 27 | let resultData = result.data ? result.data : result; |
28 | let length = resultData.length ? resultData.length : 0; | 28 | let length = resultData.length ? resultData.length : 0; |
29 | + let reg = /(\d{3})\d{4}(\d{4})/; | ||
29 | 30 | ||
30 | for (let i = 0; i < length; i++) { | 31 | for (let i = 0; i < length; i++) { |
31 | - resultData[i].mobile = resultData[i].mobile.substring(0, 3) + '****' + | ||
32 | - resultData[i].mobile.substring(7, 11); | 32 | + resultData[i].mobile = resultData[i].mobile.replace(reg, "$1****$2"); |
33 | } | 33 | } |
34 | resultData.leftLength = 7 - length; | 34 | resultData.leftLength = 7 - length; |
35 | resultData.length = length; | 35 | resultData.length = length; |
@@ -64,7 +64,7 @@ const getAddressList = (req, res, next) => { | @@ -64,7 +64,7 @@ const getAddressList = (req, res, next) => { | ||
64 | /** | 64 | /** |
65 | * 添加地址 | 65 | * 添加地址 |
66 | */ | 66 | */ |
67 | -const addAddressData = (req, res) => { | 67 | +const addAddressData = (req, res, next) => { |
68 | let uid = req.user.uid; | 68 | let uid = req.user.uid; |
69 | let address = req.body.address; | 69 | let address = req.body.address; |
70 | let areaCode = req.body.area_code; | 70 | let areaCode = req.body.area_code; |
@@ -76,13 +76,13 @@ const addAddressData = (req, res) => { | @@ -76,13 +76,13 @@ const addAddressData = (req, res) => { | ||
76 | 76 | ||
77 | addressModel.addAddressData(uid, address, areaCode, consignee, mobile, phone, isInit).then(result => { | 77 | addressModel.addAddressData(uid, address, areaCode, consignee, mobile, phone, isInit).then(result => { |
78 | res.send(result); | 78 | res.send(result); |
79 | - }); | 79 | + }).catch(next); |
80 | }; | 80 | }; |
81 | 81 | ||
82 | /** | 82 | /** |
83 | * 修改地址 | 83 | * 修改地址 |
84 | */ | 84 | */ |
85 | -const updateAddressData = (req, res) => { | 85 | +const updateAddressData = (req, res, next) => { |
86 | let id = req.body.id; | 86 | let id = req.body.id; |
87 | let uid = req.user.uid; | 87 | let uid = req.user.uid; |
88 | let address = req.body.address; | 88 | let address = req.body.address; |
@@ -93,19 +93,19 @@ const updateAddressData = (req, res) => { | @@ -93,19 +93,19 @@ const updateAddressData = (req, res) => { | ||
93 | 93 | ||
94 | addressModel.updateAddressData(id, uid, address, areaCode, consignee, mobile, phone).then(result => { | 94 | addressModel.updateAddressData(id, uid, address, areaCode, consignee, mobile, phone).then(result => { |
95 | res.send(result); | 95 | res.send(result); |
96 | - }); | 96 | + }).catch(next); |
97 | }; | 97 | }; |
98 | 98 | ||
99 | /** | 99 | /** |
100 | * 删除地址 | 100 | * 删除地址 |
101 | */ | 101 | */ |
102 | -const delAddressData = (req, res) => { | 102 | +const delAddressData = (req, res, next) => { |
103 | let id = req.body.id; | 103 | let id = req.body.id; |
104 | let uid = req.user.uid; | 104 | let uid = req.user.uid; |
105 | 105 | ||
106 | addressModel.delAddressData(id, uid).then(result => { | 106 | addressModel.delAddressData(id, uid).then(result => { |
107 | res.send(result); | 107 | res.send(result); |
108 | - }); | 108 | + }).catch(next); |
109 | }; | 109 | }; |
110 | 110 | ||
111 | /** | 111 | /** |
@@ -17,18 +17,18 @@ const convertUnitTime = (src) => { | @@ -17,18 +17,18 @@ const convertUnitTime = (src) => { | ||
17 | /** | 17 | /** |
18 | * yoho币页面加载 | 18 | * yoho币页面加载 |
19 | */ | 19 | */ |
20 | -const index = (req, res) => { | ||
21 | - var uid = req.user.uid; | ||
22 | - var page = parseInt(req.query.page, 10) || 1; | ||
23 | - var queryType = parseInt(req.query.queryType, 10) || 0; | ||
24 | - var beginTime = req.query.beginTime || convertUnitTime(new Date() / 1000 - 3600 * 24 * 90); | ||
25 | - var date1 = new Date().getTime() / 1000; | ||
26 | - var date2 = new Date(beginTime).getTime() / 1000; | ||
27 | - var selectIndex = parseInt((date1 - date2) / (3600 * 24 * 30 * 6), 10); | 20 | +const index = (req, res, next) => { |
21 | + let uid = req.user.uid; | ||
22 | + let page = parseInt(req.query.page, 10) || 1; | ||
23 | + let queryType = parseInt(req.query.queryType, 10) || 0; | ||
24 | + let beginTime = req.query.beginTime || convertUnitTime(new Date() / 1000 - 3600 * 24 * 90); | ||
25 | + let date1 = new Date().getTime() / 1000; | ||
26 | + let date2 = new Date(beginTime).getTime() / 1000; | ||
27 | + let selectIndex = parseInt((date1 - date2) / (3600 * 24 * 30 * 6), 10); | ||
28 | 28 | ||
29 | currencyModel.getIndexData(uid, page, queryType, beginTime).then(result=> { | 29 | currencyModel.getIndexData(uid, page, queryType, beginTime).then(result=> { |
30 | result.list.tabs[queryType].isActive = true; | 30 | result.list.tabs[queryType].isActive = true; |
31 | - result.list.coinList.forEach(function(x) { | 31 | + result.list.coinList.forEach(function (x) { |
32 | x.date = x.date.replace(/\-/g, '.'); | 32 | x.date = x.date.replace(/\-/g, '.'); |
33 | }); | 33 | }); |
34 | result.list.selects[selectIndex].isSelected = 'selected'; | 34 | result.list.selects[selectIndex].isSelected = 'selected'; |
@@ -58,7 +58,7 @@ const index = (req, res) => { | @@ -58,7 +58,7 @@ const index = (req, res) => { | ||
58 | total: result.list.total ? result.list.total : 0 | 58 | total: result.list.total ? result.list.total : 0 |
59 | } | 59 | } |
60 | }); | 60 | }); |
61 | - }); | 61 | + }).catch(next); |
62 | }; | 62 | }; |
63 | 63 | ||
64 | 64 |
@@ -12,6 +12,7 @@ const accountModel = require('../models/account'); | @@ -12,6 +12,7 @@ const accountModel = require('../models/account'); | ||
12 | const passportHelper = require('../../passport/models/passport-helper'); | 12 | const passportHelper = require('../../passport/models/passport-helper'); |
13 | const Promise = require('bluebird'); | 13 | const Promise = require('bluebird'); |
14 | const co = Promise.coroutine; | 14 | const co = Promise.coroutine; |
15 | +const regMobile = /(\d{3})\d{4}(\d{4})/;//正则匹配替换手机号码中间4位 | ||
15 | 16 | ||
16 | 17 | ||
17 | const captchaUrl = helpers.urlFormat('/passport/images', {t: Date.now()}); | 18 | const captchaUrl = helpers.urlFormat('/passport/images', {t: Date.now()}); |
@@ -79,8 +80,7 @@ const index = (req, res, next) => { | @@ -79,8 +80,7 @@ const index = (req, res, next) => { | ||
79 | result.info.gender ? result.genders[result.info.gender - 1].checked = true : | 80 | result.info.gender ? result.genders[result.info.gender - 1].checked = true : |
80 | result.genders[2].checked = true; | 81 | result.genders[2].checked = true; |
81 | result.info.head_ico = result.info.head_ico ? helpers.image(result.info.head_ico, 400, 300, 2) : ''; | 82 | result.info.head_ico = result.info.head_ico ? helpers.image(result.info.head_ico, 400, 300, 2) : ''; |
82 | - result.info.mobile = result.info.mobile ? | ||
83 | - result.info.mobile.substring(0, 3) + '****' + result.info.mobile.substring(7, 11) : ''; | 83 | + result.info.mobile = result.info.mobile ? result.info.mobile.replace(regMobile, "$1****$2") : ''; |
84 | result.stepUrl = '/me/setting/step1'; | 84 | result.stepUrl = '/me/setting/step1'; |
85 | res.display('index', { | 85 | res.display('index', { |
86 | module: 'me', | 86 | module: 'me', |
@@ -102,19 +102,20 @@ const index = (req, res, next) => { | @@ -102,19 +102,20 @@ const index = (req, res, next) => { | ||
102 | * 编辑信息 | 102 | * 编辑信息 |
103 | * @param req | 103 | * @param req |
104 | * @param res | 104 | * @param res |
105 | + * @param next | ||
105 | */ | 106 | */ |
106 | -const editUserInfo = (req, res)=> { | 107 | +const editUserInfo = (req, res, next)=> { |
107 | let uid = req.user.uid; | 108 | let uid = req.user.uid; |
108 | let query = req.body; | 109 | let query = req.body; |
109 | 110 | ||
110 | settingModel.editUserInfo(uid, query).then(result=> { | 111 | settingModel.editUserInfo(uid, query).then(result=> { |
111 | res.send(result); | 112 | res.send(result); |
112 | - }); | 113 | + }).catch(next); |
113 | }; | 114 | }; |
114 | 115 | ||
115 | 116 | ||
116 | /* | 117 | /* |
117 | - * step1 | 118 | + * step1 绑定的手机号码身份验证 |
118 | * */ | 119 | * */ |
119 | const bindMobile = (req, res, next) => { | 120 | const bindMobile = (req, res, next) => { |
120 | let uid = req.user.uid; | 121 | let uid = req.user.uid; |
@@ -124,7 +125,7 @@ const bindMobile = (req, res, next) => { | @@ -124,7 +125,7 @@ const bindMobile = (req, res, next) => { | ||
124 | if (result.info.verify_mobile !== '') { | 125 | if (result.info.verify_mobile !== '') { |
125 | let info = result.info; | 126 | let info = result.info; |
126 | 127 | ||
127 | - info.ellipsisMobile = info.verify_mobile.substring(0, 3) + '****' + info.verify_mobile.substring(7, 11); | 128 | + info.ellipsisMobile = info.verify_mobile.replace(regMobile, "$1****$2"); |
128 | info.checkCode = settingModel.cipheriv(info.uid + '.completeverify'); | 129 | info.checkCode = settingModel.cipheriv(info.uid + '.completeverify'); |
129 | 130 | ||
130 | res.display('index', { | 131 | res.display('index', { |
@@ -150,6 +151,9 @@ const bindMobile = (req, res, next) => { | @@ -150,6 +151,9 @@ const bindMobile = (req, res, next) => { | ||
150 | }); | 151 | }); |
151 | }; | 152 | }; |
152 | 153 | ||
154 | +/** | ||
155 | + * step1 绑定的邮箱进行身份验证 | ||
156 | + */ | ||
153 | const bindEmail = (req, res, next) => { | 157 | const bindEmail = (req, res, next) => { |
154 | let uid = req.user.uid; | 158 | let uid = req.user.uid; |
155 | let type = req.params.type; | 159 | let type = req.params.type; |
@@ -181,6 +185,9 @@ const bindEmail = (req, res, next) => { | @@ -181,6 +185,9 @@ const bindEmail = (req, res, next) => { | ||
181 | }); | 185 | }); |
182 | }; | 186 | }; |
183 | 187 | ||
188 | +/** | ||
189 | + *step1 登录密码进行身份验证 | ||
190 | + */ | ||
184 | const modifyPassword = (req, res) => { | 191 | const modifyPassword = (req, res) => { |
185 | let type = req.params.type; | 192 | let type = req.params.type; |
186 | let checkCode = settingModel.cipheriv(req.user.uid + '.completeverify'); | 193 | let checkCode = settingModel.cipheriv(req.user.uid + '.completeverify'); |
@@ -204,7 +211,7 @@ const modifyPassword = (req, res) => { | @@ -204,7 +211,7 @@ const modifyPassword = (req, res) => { | ||
204 | }; | 211 | }; |
205 | 212 | ||
206 | /* | 213 | /* |
207 | - * step2 渲染页面 | 214 | + * step2 操作界面-渲染页面 |
208 | * */ | 215 | * */ |
209 | const edit = (req, res)=> { | 216 | const edit = (req, res)=> { |
210 | let type = req.params.type; | 217 | let type = req.params.type; |
@@ -243,7 +250,7 @@ const edit = (req, res)=> { | @@ -243,7 +250,7 @@ const edit = (req, res)=> { | ||
243 | }; | 250 | }; |
244 | 251 | ||
245 | /* | 252 | /* |
246 | - * step3 | 253 | + * step3 操作成功-渲染界面 |
247 | * */ | 254 | * */ |
248 | const success = (req, res)=> { | 255 | const success = (req, res)=> { |
249 | let type = req.params.type; | 256 | let type = req.params.type; |
@@ -280,7 +287,7 @@ const success = (req, res)=> { | @@ -280,7 +287,7 @@ const success = (req, res)=> { | ||
280 | }; | 287 | }; |
281 | 288 | ||
282 | /* | 289 | /* |
283 | - * post1 | 290 | + * post1 第一步的post请求 |
284 | * */ | 291 | * */ |
285 | const validate1 = (req, res)=> { | 292 | const validate1 = (req, res)=> { |
286 | co(function *() { | 293 | co(function *() { |
@@ -305,7 +312,7 @@ const validate1 = (req, res)=> { | @@ -305,7 +312,7 @@ const validate1 = (req, res)=> { | ||
305 | }; | 312 | }; |
306 | 313 | ||
307 | /* | 314 | /* |
308 | - * post2 | 315 | + * post2 第二步的post请求 |
309 | * */ | 316 | * */ |
310 | const validate2 = (req, res)=> { | 317 | const validate2 = (req, res)=> { |
311 | co(function *() { | 318 | co(function *() { |
@@ -108,11 +108,11 @@ const modifyVerifyMobile = (uid, area, newMobile)=> { | @@ -108,11 +108,11 @@ const modifyVerifyMobile = (uid, area, newMobile)=> { | ||
108 | }; | 108 | }; |
109 | 109 | ||
110 | module.exports = { | 110 | module.exports = { |
111 | - verifyPwd: verifyPwd, | ||
112 | - changePwd: changePwd, | ||
113 | - sendMobileMsg: sendMobileMsg, | ||
114 | - checkVerifyMsg: checkVerifyMsg, | ||
115 | - sendVerifyEmail: sendVerifyEmail, | ||
116 | - checkVerifyMobile: checkVerifyMobile, | ||
117 | - modifyVerifyMobile: modifyVerifyMobile | 111 | + verifyPwd, |
112 | + changePwd, | ||
113 | + sendMobileMsg, | ||
114 | + checkVerifyMsg, | ||
115 | + sendVerifyEmail, | ||
116 | + checkVerifyMobile, | ||
117 | + modifyVerifyMobile | ||
118 | }; | 118 | }; |
@@ -76,11 +76,11 @@ const getUserInfo = (uid) => { | @@ -76,11 +76,11 @@ const getUserInfo = (uid) => { | ||
76 | }; | 76 | }; |
77 | 77 | ||
78 | /* const getVerifyInfo = (uid)=> { | 78 | /* const getVerifyInfo = (uid)=> { |
79 | - return api.get('', { | ||
80 | - method: 'web.passport.getUserVerifyInfo', | ||
81 | - uid: uid | ||
82 | - }).then(result => result); | ||
83 | -};*/ | 79 | + return api.get('', { |
80 | + method: 'web.passport.getUserVerifyInfo', | ||
81 | + uid: uid | ||
82 | + }).then(result => result); | ||
83 | + };*/ | ||
84 | 84 | ||
85 | /** | 85 | /** |
86 | * 编辑个人详细信息 | 86 | * 编辑个人详细信息 |
@@ -180,8 +180,8 @@ const decipheriv = (data) => { | @@ -180,8 +180,8 @@ const decipheriv = (data) => { | ||
180 | }; | 180 | }; |
181 | 181 | ||
182 | module.exports = { | 182 | module.exports = { |
183 | - getUserInfo: getUserInfo, | ||
184 | - editUserInfo: editUserInfo, | ||
185 | - cipheriv: cipheriv, | ||
186 | - decipheriv: decipheriv | 183 | + getUserInfo, |
184 | + editUserInfo, | ||
185 | + cipheriv, | ||
186 | + decipheriv | ||
187 | }; | 187 | }; |
@@ -40,18 +40,16 @@ | @@ -40,18 +40,16 @@ | ||
40 | <a class="blue operation" href="{{stepUrl}}/bindMobile">绑定</a> | 40 | <a class="blue operation" href="{{stepUrl}}/bindMobile">绑定</a> |
41 | {{/if}} | 41 | {{/if}} |
42 | </div> | 42 | </div> |
43 | - <!-- <div class="form-group"> | 43 | + <div class="form-group"> |
44 | <label class="label-name">邮箱:</label> | 44 | <label class="label-name">邮箱:</label> |
45 | {{#if info.verify_email}} | 45 | {{#if info.verify_email}} |
46 | <input class="input no-edit" value="{{info.mobile}}"> | 46 | <input class="input no-edit" value="{{info.mobile}}"> |
47 | - <!–<a class="blue operation" href="{{stepUrl}}/modifyEmail">修改</a>–> | ||
48 | - <a class="blue operation">修改</a> | 47 | + <!--<a class="blue operation" href="{{stepUrl}}/modifyEmail">修改</a>--> |
49 | {{else}} | 48 | {{else}} |
50 | <input class="input" type="text" placeholder="请绑定邮箱" disabled> | 49 | <input class="input" type="text" placeholder="请绑定邮箱" disabled> |
51 | - <!–<a class="blue operation" href="{{stepUrl}}/bindEmail">绑定</a>–> | ||
52 | - <a class="blue operation">绑定</a> | 50 | + <!--<a class="blue operation" href="{{stepUrl}}/bindEmail">绑定</a>--> |
53 | {{/if}} | 51 | {{/if}} |
54 | - </div>--> | 52 | + </div> |
55 | <div class="form-group"> | 53 | <div class="form-group"> |
56 | <label class="label-name">出生日期:</label> | 54 | <label class="label-name">出生日期:</label> |
57 | <input id="birthday" class="input" type="text" value="{{info.birthday}}"> | 55 | <input id="birthday" class="input" type="text" value="{{info.birthday}}"> |
@@ -63,7 +61,7 @@ | @@ -63,7 +61,7 @@ | ||
63 | <span class="blue error-tips">{{> icon/error-round}}请选择</span> | 61 | <span class="blue error-tips">{{> icon/error-round}}请选择</span> |
64 | </div> | 62 | </div> |
65 | <div class="form-group"> | 63 | <div class="form-group"> |
66 | - <label class="label-name">详细地址:</label> | 64 | + <label class="label-name" style="visibility: hidden">详细地址:</label> |
67 | <input id="full_address" class="input big-input" type="text" placeholder="请填写详细地址" | 65 | <input id="full_address" class="input big-input" type="text" placeholder="请填写详细地址" |
68 | maxlength="20" value="{{concat.full_address}}"> | 66 | maxlength="20" value="{{concat.full_address}}"> |
69 | </div> | 67 | </div> |
-
Please register or login to post a comment