2
Showing
6 changed files
with
263 additions
and
131 deletions
| ... | @@ -2,7 +2,8 @@ import api from "@/api/api"; | ... | @@ -2,7 +2,8 @@ import api from "@/api/api"; |
| 2 | import { httpGet, httpPost } from "@/api/fetch-api.js"; | 2 | import { httpGet, httpPost } from "@/api/fetch-api.js"; |
| 3 | 3 | ||
| 4 | import { contactMethodCheck } from "@utils/utils.js"; | 4 | import { contactMethodCheck } from "@utils/utils.js"; |
| 5 | import { setTitle } from "@/utils/utils.js"; | 5 | import { setTitle, ascSort } from "@/utils/utils.js"; |
| 6 | import { getNationsList, getNationsPhoneCodeList } from "@/utils/biz.js"; | ||
| 6 | 7 | ||
| 7 | import Auth from "@components/auth/auth.vue"; | 8 | import Auth from "@components/auth/auth.vue"; |
| 8 | import modalComp from "@/components/modal-comp/modal-comp.vue"; | 9 | import modalComp from "@/components/modal-comp/modal-comp.vue"; |
| ... | @@ -23,12 +24,26 @@ export default { | ... | @@ -23,12 +24,26 @@ export default { |
| 23 | dataInit: false, | 24 | dataInit: false, |
| 24 | selectedPolicies: [], | 25 | selectedPolicies: [], |
| 25 | data: { | 26 | data: { |
| 27 | // 国际号码区号列表 | ||
| 26 | mobileAreaCode: "", | 28 | mobileAreaCode: "", |
| 29 | // 电话 | ||
| 27 | mobile: "", | 30 | mobile: "", |
| 28 | email: "", | 31 | // 国际地区区号 |
| 32 | countryId: "", | ||
| 33 | // 省 | ||
| 34 | provinceId: "", | ||
| 35 | // 市 | ||
| 36 | cityId: "", | ||
| 37 | // 地址 | ||
| 29 | address: "", | 38 | address: "", |
| 39 | // 同意接收宣传信息 1:同意 0:不同意 | ||
| 40 | acceptMessage: 1, | ||
| 30 | 41 | ||
| 31 | areaCode: "" | 42 | // 上传信息 |
| 43 | iobsKey: "a", | ||
| 44 | fileFormat: "xlsx", | ||
| 45 | fileSize: 123, | ||
| 46 | fileContentType: "mp4" | ||
| 32 | }, | 47 | }, |
| 33 | errorTips: { | 48 | errorTips: { |
| 34 | e1: "", | 49 | e1: "", |
| ... | @@ -42,28 +57,10 @@ export default { | ... | @@ -42,28 +57,10 @@ export default { |
| 42 | modalIcon: "succ", | 57 | modalIcon: "succ", |
| 43 | modalContent: "", | 58 | modalContent: "", |
| 44 | 59 | ||
| 45 | // 新增 | ||
| 46 | // 国际号码区号列表 | 60 | // 国际号码区号列表 |
| 47 | areaCodeList: [ | 61 | nationsPhoneCodeList: [], |
| 48 | { | 62 | // 国际地区区号 |
| 49 | v: "abc", | 63 | nationsList: [] |
| 50 | n: "abc" | ||
| 51 | }, | ||
| 52 | { | ||
| 53 | v: "efg", | ||
| 54 | n: "efg" | ||
| 55 | } | ||
| 56 | ], | ||
| 57 | countryList:[ | ||
| 58 | { | ||
| 59 | v: "cn", | ||
| 60 | n: "中国" | ||
| 61 | }, | ||
| 62 | { | ||
| 63 | v: "en", | ||
| 64 | n: "美国" | ||
| 65 | } | ||
| 66 | ] | ||
| 67 | }; | 64 | }; |
| 68 | }, | 65 | }, |
| 69 | components: { | 66 | components: { |
| ... | @@ -108,7 +105,7 @@ export default { | ... | @@ -108,7 +105,7 @@ export default { |
| 108 | let b2 = this.checkEmail(); | 105 | let b2 = this.checkEmail(); |
| 109 | let b3 = this.checkAddress(); | 106 | let b3 = this.checkAddress(); |
| 110 | let b = b1 & b2 & b3; | 107 | let b = b1 & b2 & b3; |
| 111 | if (b) { | 108 | if (!b) { |
| 112 | if (this.loading) { | 109 | if (this.loading) { |
| 113 | return; | 110 | return; |
| 114 | } | 111 | } |
| ... | @@ -125,6 +122,8 @@ export default { | ... | @@ -125,6 +122,8 @@ export default { |
| 125 | emailAcceptMsg: this.checked3 ? 1 : 0, | 122 | emailAcceptMsg: this.checked3 ? 1 : 0, |
| 126 | policies: policies | 123 | policies: policies |
| 127 | }; | 124 | }; |
| 125 | console.log("data:", JSON.stringify(data)); | ||
| 126 | return; | ||
| 128 | this.loading = true; | 127 | this.loading = true; |
| 129 | httpPost({ | 128 | httpPost({ |
| 130 | url: api.updatePolicyContanct, | 129 | url: api.updatePolicyContanct, |
| ... | @@ -165,6 +164,29 @@ export default { | ... | @@ -165,6 +164,29 @@ export default { |
| 165 | return true; | 164 | return true; |
| 166 | }, | 165 | }, |
| 167 | initData() { | 166 | initData() { |
| 167 | let nationsPhoneCodeListTemp = getNationsPhoneCodeList(); | ||
| 168 | // 去重 | ||
| 169 | let obj = {}; | ||
| 170 | let nationsPhoneCodeList = nationsPhoneCodeListTemp.reduce( | ||
| 171 | (cur, next) => { | ||
| 172 | //设置cur默认类型为数组,并且初始值为空的数组 | ||
| 173 | obj[next.n] ? "" : (obj[next.n] = true && cur.push(next)); | ||
| 174 | return cur; | ||
| 175 | }, | ||
| 176 | [] | ||
| 177 | ); | ||
| 178 | |||
| 179 | // // 加数字属性标号用于排序 | ||
| 180 | // nationsPhoneCodeList.forEach(element => { | ||
| 181 | // element.num = parseInt(element.n); | ||
| 182 | // }); | ||
| 183 | // // 排序 | ||
| 184 | // nationsPhoneCodeList = nationsPhoneCodeList.sort(ascSort("num", "")); | ||
| 185 | |||
| 186 | this.nationsPhoneCodeList = nationsPhoneCodeList; | ||
| 187 | |||
| 188 | this.nationsList = getNationsList(this.$i18n.locale); | ||
| 189 | |||
| 168 | if (this.dataInit) { | 190 | if (this.dataInit) { |
| 169 | return; | 191 | return; |
| 170 | } | 192 | } |
| ... | @@ -203,6 +225,7 @@ export default { | ... | @@ -203,6 +225,7 @@ export default { |
| 203 | }, | 225 | }, |
| 204 | handlePolicySelect(data) { | 226 | handlePolicySelect(data) { |
| 205 | this.selectedPolicies = data; | 227 | this.selectedPolicies = data; |
| 228 | console.log("this.selectedPolicies:", this.selectedPolicies); | ||
| 206 | this.initData(); | 229 | this.initData(); |
| 207 | }, | 230 | }, |
| 208 | userLogout() { | 231 | userLogout() { |
| ... | @@ -220,49 +243,91 @@ export default { | ... | @@ -220,49 +243,91 @@ export default { |
| 220 | } | 243 | } |
| 221 | }, | 244 | }, |
| 222 | updatePolicyContact() { | 245 | updatePolicyContact() { |
| 223 | let param={ | 246 | let param = { |
| 224 | "policyContactCode":"", | 247 | policyContactCode: "", |
| 225 | "policyId":"4655100", | 248 | policyId: "4655100", |
| 226 | "policyCode":"P000200000000009", | 249 | policyCode: "P000200000000009", |
| 227 | "mobileAreaCode":"0668", | 250 | mobileAreaCode: "0668", |
| 228 | "mobile":"13727826666", | 251 | mobile: "13727826666", |
| 229 | "countryId":"156", | 252 | countryId: "156", |
| 230 | "provinceId":"1", | 253 | provinceId: "1", |
| 231 | "cityId":"304", | 254 | cityId: "304", |
| 232 | "address":"上海迪士尼乐园", | 255 | address: "上海迪士尼乐园", |
| 233 | "acceptMessage":1, | 256 | acceptMessage: 1, |
| 234 | "iobsKey":"a", | 257 | iobsKey: "a", |
| 235 | "fileFormat":"xlsx", | 258 | fileFormat: "xlsx", |
| 236 | "fileSize":123, | 259 | fileSize: 123, |
| 237 | "fileContentType":"mp4/" | 260 | fileContentType: "mp4/" |
| 238 | } | 261 | }; |
| 239 | httpPost({ | 262 | httpPost({ |
| 240 | url: api.policyContactApi, | 263 | url: api.policyContactApi, |
| 241 | data: param, | 264 | data: param, |
| 242 | sid: true | 265 | sid: true |
| 243 | }).then(response => { | 266 | }) |
| 244 | console.log("response:", response) | 267 | .then(response => { |
| 245 | }).catch(res => { | 268 | console.log("response:", response); |
| 246 | 269 | }) | |
| 247 | }); | 270 | .catch(res => {}); |
| 248 | |||
| 249 | }, | 271 | }, |
| 250 | uploadExcel(){ | 272 | uploadExcel() {} |
| 251 | |||
| 252 | } | ||
| 253 | }, | 273 | }, |
| 254 | watch: { | 274 | watch: { |
| 255 | "data.mobile": function() { | 275 | "data.mobileAreaCode": function() { |
| 256 | this.errorTips.e1 = ""; | 276 | this.errorTips.e1 = ""; |
| 257 | }, | 277 | }, |
| 258 | "data.address": function() { | 278 | "data.mobile": function() { |
| 259 | this.errorTips.e2 = ""; | 279 | this.errorTips.e2 = ""; |
| 260 | }, | 280 | }, |
| 261 | "data.email": function() { | 281 | "data.countryId": function() { |
| 262 | this.errorTips.e3 = ""; | 282 | this.errorTips.e3 = ""; |
| 263 | } | 283 | }, |
| 284 | "data.provinceId": function() { | ||
| 285 | this.errorTips.e4 = ""; | ||
| 286 | }, | ||
| 287 | "data.cityId": function() { | ||
| 288 | this.errorTips.e5 = ""; | ||
| 289 | }, | ||
| 290 | "data.address": function() { | ||
| 291 | this.errorTips.e6 = ""; | ||
| 292 | }, | ||
| 264 | }, | 293 | }, |
| 265 | mounted() { | 294 | mounted() { |
| 266 | this.initTitle(); | 295 | this.initTitle(); |
| 296 | }, | ||
| 297 | created() { | ||
| 298 | // this.loading = true; | ||
| 299 | this.$root.eventBus.$on("langChange", () => { | ||
| 300 | try { | ||
| 301 | this.initData(); | ||
| 302 | } catch (e) {} | ||
| 303 | }); | ||
| 267 | } | 304 | } |
| 268 | }; | 305 | }; |
| 306 | |||
| 307 | // var ttt = { | ||
| 308 | // areaCode:"", | ||
| 309 | // mobileNo: "1232321", | ||
| 310 | // address: "CHINA, GuangdongShenzhen咯农户心情来来来", | ||
| 311 | // email: "zhangwenjun110@ocft.com", | ||
| 312 | // mobileNoAcceptMsg: 0, | ||
| 313 | // addressAcceptMsg: 0, | ||
| 314 | // emailAcceptMsg: 0, | ||
| 315 | // policies: [{ policyId: "4661690", policyCode: "P000200000000458" }] | ||
| 316 | // }; | ||
| 317 | |||
| 318 | var tttt2 = { | ||
| 319 | policyContactCode: "", | ||
| 320 | policyId: "4655100", | ||
| 321 | policyCode: "P000200000000009", | ||
| 322 | mobileAreaCode: "0668", | ||
| 323 | mobile: "13727826666", | ||
| 324 | countryId: "156", | ||
| 325 | provinceId: "1", | ||
| 326 | cityId: "304", | ||
| 327 | address: "上海迪士尼乐园", | ||
| 328 | acceptMessage: 1, | ||
| 329 | iobsKey: "a", | ||
| 330 | fileFormat: "xlsx", | ||
| 331 | fileSize: 123, | ||
| 332 | fileContentType: "mp4" | ||
| 333 | }; | ... | ... |
| ... | @@ -22,8 +22,8 @@ | ... | @@ -22,8 +22,8 @@ |
| 22 | <div class="ipt-wrap-linear"> | 22 | <div class="ipt-wrap-linear"> |
| 23 | <div class="down-arrow"></div> | 23 | <div class="down-arrow"></div> |
| 24 | <div class="cont"> | 24 | <div class="cont"> |
| 25 | <el-select class="ipt" v-model="data.areaCode" :placeholder="$t('policyChangeContact.form.InternationalArea')"> | 25 | <el-select class="ipt" v-model="data.mobileAreaCode" :placeholder="$t('policyChangeContact.form.InternationalArea')"> |
| 26 | <el-option v-for="(item, index) in areaCodeList" :key="index" :label="item.n" :value="item.v"></el-option> | 26 | <el-option v-for="(item, index) in nationsPhoneCodeList" :key="index" :label="item.n" :value="item.n"></el-option> |
| 27 | </el-select> | 27 | </el-select> |
| 28 | </div> | 28 | </div> |
| 29 | </div> | 29 | </div> |
| ... | @@ -53,8 +53,8 @@ | ... | @@ -53,8 +53,8 @@ |
| 53 | <div class="ipt-wrap-linear"> | 53 | <div class="ipt-wrap-linear"> |
| 54 | <div class="down-arrow"></div> | 54 | <div class="down-arrow"></div> |
| 55 | <div class="cont"> | 55 | <div class="cont"> |
| 56 | <el-select class="ipt" v-model="data.countryCode" :placeholder="$t('policyChangeContact.form.Nation')"> | 56 | <el-select class="ipt" v-model="data.countryId" :placeholder="$t('policyChangeContact.form.Nation')"> |
| 57 | <el-option v-for="(item, index) in countryList" :key="index" :label="item.n" :value="item.v"></el-option> | 57 | <el-option v-for="(item, index) in nationsList" :key="index" :label="item.n" :value="item.v"></el-option> |
| 58 | </el-select> | 58 | </el-select> |
| 59 | </div> | 59 | </div> |
| 60 | </div> | 60 | </div> |
| ... | @@ -63,16 +63,25 @@ | ... | @@ -63,16 +63,25 @@ |
| 63 | </div> | 63 | </div> |
| 64 | </div> | 64 | </div> |
| 65 | 65 | ||
| 66 | <div class="pure-u-1 pure-u-md-6-24 ipt-gird-item"> | 66 | <!-- <div class="pure-u-1 pure-u-md-6-24 ipt-gird-item"> |
| 67 | <div class="ipt-wrap-linear"> | 67 | <div class="ipt-wrap-linear"> |
| 68 | <input class="ipt" type="text" :class="{err : errorTips.e2.length > 0}" v-model="data.address" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.District')"> | 68 | <input class="ipt" type="text" :class="{err : errorTips.e2.length > 0}" v-model="data.address" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.District')"> |
| 69 | </div> | 69 | </div> |
| 70 | <div class="validator" v-if="errorTips.e2.length > 0"> | 70 | <div class="validator" v-if="errorTips.e2.length > 0"> |
| 71 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}} | 71 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e6}} |
| 72 | </div> | ||
| 72 | </div> | 73 | </div> |
| 74 | |||
| 75 | <div class="pure-u-1 pure-u-md-6-24 ipt-gird-item"> | ||
| 76 | <div class="ipt-wrap-linear"> | ||
| 77 | <input class="ipt" type="text" :class="{err : errorTips.e2.length > 0}" v-model="data.address" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.District')"> | ||
| 78 | </div> | ||
| 79 | <div class="validator" v-if="errorTips.e2.length > 0"> | ||
| 80 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e6}} | ||
| 73 | </div> | 81 | </div> |
| 82 | </div> --> | ||
| 74 | 83 | ||
| 75 | <div class="pure-u-1 pure-u-md-12-24 ipt-gird-item"> | 84 | <div class="pure-u-1 pure-u-md-18-24 ipt-gird-item"> |
| 76 | <div class="ipt-wrap-linear"> | 85 | <div class="ipt-wrap-linear"> |
| 77 | <input class="ipt" type="text" :class="{err : errorTips.e2.length > 0}" v-model="data.address" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.Address')"> | 86 | <input class="ipt" type="text" :class="{err : errorTips.e2.length > 0}" v-model="data.address" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.Address')"> |
| 78 | </div> | 87 | </div> | ... | ... |
| ... | @@ -37,7 +37,7 @@ | ... | @@ -37,7 +37,7 @@ |
| 37 | background: url("~@/assets/images/insurance-query/triangle-down2.png") | 37 | background: url("~@/assets/images/insurance-query/triangle-down2.png") |
| 38 | no-repeat center center; | 38 | no-repeat center center; |
| 39 | background-size: 100% 100%; | 39 | background-size: 100% 100%; |
| 40 | top: 16px; | 40 | top: 21px; |
| 41 | right: 26px; | 41 | right: 26px; |
| 42 | } | 42 | } |
| 43 | 43 | ... | ... |
| ... | @@ -92,7 +92,7 @@ | ... | @@ -92,7 +92,7 @@ |
| 92 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e1}} | 92 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e1}} |
| 93 | </div> | 93 | </div> |
| 94 | </div> | 94 | </div> |
| 95 | <!-- <div class="pure-u-1 form-item"> | 95 | <div class="pure-u-1 form-item"> |
| 96 | <div class="label"> | 96 | <div class="label"> |
| 97 | <img src="@/assets/images/login/icon-login-password.png"> {{$t('login.password')}} | 97 | <img src="@/assets/images/login/icon-login-password.png"> {{$t('login.password')}} |
| 98 | </div> | 98 | </div> |
| ... | @@ -102,7 +102,7 @@ | ... | @@ -102,7 +102,7 @@ |
| 102 | <div class="validator" v-if="errorTips.e2.length > 0 "> | 102 | <div class="validator" v-if="errorTips.e2.length > 0 "> |
| 103 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}} | 103 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}} |
| 104 | </div> | 104 | </div> |
| 105 | </div> --> | 105 | </div> |
| 106 | <div class="pure-u-1 form-item"> | 106 | <div class="pure-u-1 form-item"> |
| 107 | <div class="label"> | 107 | <div class="label"> |
| 108 | <img src="@/assets/images/login/icon-login-phone.png"> {{$t('login.SMSVerificationCode')}} | 108 | <img src="@/assets/images/login/icon-login-phone.png"> {{$t('login.SMSVerificationCode')}} | ... | ... |
This diff is collapsed.
Click to expand it.
| 1 | // 正在表达式 | 1 | // 正在表达式 |
| 2 | export const REGEXPS = { | 2 | export const REGEXPS = { |
| 3 | "mobile": /^1\d{10}$/ | 3 | mobile: /^1\d{10}$/ |
| 4 | } | 4 | }; |
| 5 | 5 | ||
| 6 | // 验证手机 | 6 | // 验证手机 |
| 7 | export function checkMobile(str) { | 7 | export function checkMobile(str) { |
| ... | @@ -14,9 +14,9 @@ export function checkMobile(str) { | ... | @@ -14,9 +14,9 @@ export function checkMobile(str) { |
| 14 | * @param {*} url | 14 | * @param {*} url |
| 15 | */ | 15 | */ |
| 16 | export function param2Obj(url) { | 16 | export function param2Obj(url) { |
| 17 | const search = url.split('?')[1] | 17 | const search = url.split("?")[1]; |
| 18 | if (!search) { | 18 | if (!search) { |
| 19 | return {} | 19 | return {}; |
| 20 | } | 20 | } |
| 21 | return JSON.parse( | 21 | return JSON.parse( |
| 22 | '{"' + | 22 | '{"' + |
| ... | @@ -25,26 +25,27 @@ export function param2Obj(url) { | ... | @@ -25,26 +25,27 @@ export function param2Obj(url) { |
| 25 | .replace(/&/g, '","') | 25 | .replace(/&/g, '","') |
| 26 | .replace(/=/g, '":"') + | 26 | .replace(/=/g, '":"') + |
| 27 | '"}' | 27 | '"}' |
| 28 | ) | 28 | ); |
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | |||
| 32 | |||
| 33 | //获取cookie、 | 31 | //获取cookie、 |
| 34 | export function getCookie(name) { | 32 | export function getCookie(name) { |
| 35 | var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); | 33 | var arr, |
| 36 | if (arr = document.cookie.match(reg)) | 34 | reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); |
| 37 | return (arr[2]); | 35 | if ((arr = document.cookie.match(reg))) return arr[2]; |
| 38 | else | 36 | else return null; |
| 39 | return null; | ||
| 40 | } | 37 | } |
| 41 | 38 | ||
| 42 | //设置cookie | 39 | //设置cookie |
| 43 | export function setCookie(c_name, value, second) { | 40 | export function setCookie(c_name, value, second) { |
| 44 | var exdate = new Date(); | 41 | var exdate = new Date(); |
| 45 | exdate.setTime(exdate.getTime() + second * 1000); | 42 | exdate.setTime(exdate.getTime() + second * 1000); |
| 46 | document.cookie = c_name + "=" + escape(value) + ((second == null) ? "" : ";expires=" + exdate.toGMTString()); | 43 | document.cookie = |
| 47 | }; | 44 | c_name + |
| 45 | "=" + | ||
| 46 | escape(value) + | ||
| 47 | (second == null ? "" : ";expires=" + exdate.toGMTString()); | ||
| 48 | } | ||
| 48 | 49 | ||
| 49 | //删除cookie | 50 | //删除cookie |
| 50 | export function delCookie(name) { | 51 | export function delCookie(name) { |
| ... | @@ -53,8 +54,7 @@ export function delCookie(name) { | ... | @@ -53,8 +54,7 @@ export function delCookie(name) { |
| 53 | var cval = getCookie(name); | 54 | var cval = getCookie(name); |
| 54 | if (cval != null) | 55 | if (cval != null) |
| 55 | document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); | 56 | document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); |
| 56 | }; | 57 | } |
| 57 | |||
| 58 | 58 | ||
| 59 | /** | 59 | /** |
| 60 | * 获取环境信息 | 60 | * 获取环境信息 |
| ... | @@ -63,12 +63,12 @@ export function delCookie(name) { | ... | @@ -63,12 +63,12 @@ export function delCookie(name) { |
| 63 | export function getEnv() { | 63 | export function getEnv() { |
| 64 | var nav = window.navigator; | 64 | var nav = window.navigator; |
| 65 | var env = { | 65 | var env = { |
| 66 | "iphone": false, | 66 | iphone: false, |
| 67 | "ipad": false, | 67 | ipad: false, |
| 68 | "android": false, | 68 | android: false, |
| 69 | "pc": false, | 69 | pc: false, |
| 70 | "ios": false, | 70 | ios: false, |
| 71 | "ver": "0" | 71 | ver: "0" |
| 72 | }; | 72 | }; |
| 73 | 73 | ||
| 74 | var ua = nav.userAgent; | 74 | var ua = nav.userAgent; |
| ... | @@ -76,15 +76,15 @@ export function getEnv() { | ... | @@ -76,15 +76,15 @@ export function getEnv() { |
| 76 | var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); | 76 | var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); |
| 77 | var iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/); | 77 | var iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/); |
| 78 | if (ipad) { | 78 | if (ipad) { |
| 79 | env.ipad = ipad[1] && true || false; | 79 | env.ipad = (ipad[1] && true) || false; |
| 80 | env.ver = ipad[2] && ipad[2].replace(/-/g, ".") || ""; | 80 | env.ver = (ipad[2] && ipad[2].replace(/-/g, ".")) || ""; |
| 81 | env.ios = true; | 81 | env.ios = true; |
| 82 | } else if (iphone) { | 82 | } else if (iphone) { |
| 83 | env.iphone = iphone[1] && true || false; | 83 | env.iphone = (iphone[1] && true) || false; |
| 84 | env.ver = iphone[2] && iphone[2].replace(/-/g, ".") || ""; | 84 | env.ver = (iphone[2] && iphone[2].replace(/-/g, ".")) || ""; |
| 85 | env.ios = true; | 85 | env.ios = true; |
| 86 | } else if (android) { | 86 | } else if (android) { |
| 87 | env.android = android[1] && true || false; | 87 | env.android = (android[1] && true) || false; |
| 88 | env.ver = android[2]; | 88 | env.ver = android[2]; |
| 89 | } else { | 89 | } else { |
| 90 | env.pc = true; | 90 | env.pc = true; |
| ... | @@ -104,16 +104,20 @@ export function setTitle(title) { | ... | @@ -104,16 +104,20 @@ export function setTitle(title) { |
| 104 | document.title = title; | 104 | document.title = title; |
| 105 | // if (ENV.ios && navigator.userAgent.toLowerCase().indexOf("micromessenger") !== -1) { | 105 | // if (ENV.ios && navigator.userAgent.toLowerCase().indexOf("micromessenger") !== -1) { |
| 106 | // 修复微信端IOS无法修改document.title的情况 | 106 | // 修复微信端IOS无法修改document.title的情况 |
| 107 | if (getEnv().ios && (navigator.userAgent.toLowerCase().indexOf("micromessenger") !== -1 || navigator.userAgent.toLowerCase().indexOf("alipay") !== -1)) { | 107 | if ( |
| 108 | getEnv().ios && | ||
| 109 | (navigator.userAgent.toLowerCase().indexOf("micromessenger") !== -1 || | ||
| 110 | navigator.userAgent.toLowerCase().indexOf("alipay") !== -1) | ||
| 111 | ) { | ||
| 108 | //修复IOS微信端和支付宝无法修改document.title的情况 | 112 | //修复IOS微信端和支付宝无法修改document.title的情况 |
| 109 | var $iframe = document.createElement('iframe'); | 113 | var $iframe = document.createElement("iframe"); |
| 110 | $iframe.className = "C-hiddenIframe"; | 114 | $iframe.className = "C-hiddenIframe"; |
| 111 | $iframe.src = "/" + location.pathname.split('/')[1] + "/favicon.ico"; | 115 | $iframe.src = "/" + location.pathname.split("/")[1] + "/favicon.ico"; |
| 112 | $iframe.style.visibility = 'hidden'; | 116 | $iframe.style.visibility = "hidden"; |
| 113 | $iframe.style.width = '1px'; | 117 | $iframe.style.width = "1px"; |
| 114 | $iframe.style.height = '1px'; | 118 | $iframe.style.height = "1px"; |
| 115 | $iframe.onload = function onIframeLoad() { | 119 | $iframe.onload = function onIframeLoad() { |
| 116 | setTimeout(function () { | 120 | setTimeout(function() { |
| 117 | $iframe.onload = null; | 121 | $iframe.onload = null; |
| 118 | onIframeLoad = null; | 122 | onIframeLoad = null; |
| 119 | document.body.removeChild($iframe); | 123 | document.body.removeChild($iframe); |
| ... | @@ -126,23 +130,22 @@ export function setTitle(title) { | ... | @@ -126,23 +130,22 @@ export function setTitle(title) { |
| 126 | 130 | ||
| 127 | // 为链接添加参数 | 131 | // 为链接添加参数 |
| 128 | export function addQuery(url, query) { | 132 | export function addQuery(url, query) { |
| 129 | query = query || {} | 133 | query = query || {}; |
| 130 | query = (function (query) { | 134 | query = (function(query) { |
| 131 | var q = [] | 135 | var q = []; |
| 132 | Object.keys(query).forEach(function (_q) { | 136 | Object.keys(query).forEach(function(_q) { |
| 133 | q.push(_q + '=' + query[_q]) | 137 | q.push(_q + "=" + query[_q]); |
| 134 | }) | 138 | }); |
| 135 | return q.join('&') | 139 | return q.join("&"); |
| 136 | })(query) | 140 | })(query); |
| 137 | if (url.indexOf('?') !== -1) { | 141 | if (url.indexOf("?") !== -1) { |
| 138 | url += '&' + query | 142 | url += "&" + query; |
| 139 | } else { | 143 | } else { |
| 140 | url += '?' + query | 144 | url += "?" + query; |
| 141 | } | 145 | } |
| 142 | return url | 146 | return url; |
| 143 | } | 147 | } |
| 144 | 148 | ||
| 145 | |||
| 146 | /** | 149 | /** |
| 147 | * 获得当前页面的path | 150 | * 获得当前页面的path |
| 148 | * @return {String} 页面path | 151 | * @return {String} 页面path |
| ... | @@ -157,7 +160,63 @@ export function getPath() { | ... | @@ -157,7 +160,63 @@ export function getPath() { |
| 157 | 160 | ||
| 158 | // 获取 url 参数 | 161 | // 获取 url 参数 |
| 159 | export function getQuery(name) { | 162 | export function getQuery(name) { |
| 160 | return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null; | 163 | return ( |
| 164 | decodeURIComponent( | ||
| 165 | (new RegExp("[?|&]" + name + "=" + "([^&;]+?)(&|#|;|$)").exec( | ||
| 166 | location.href | ||
| 167 | ) || [, ""])[1].replace(/\+/g, "%20") | ||
| 168 | ) || null | ||
| 169 | ); | ||
| 170 | } | ||
| 171 | |||
| 172 | /** | ||
| 173 | * 升序排列 | ||
| 174 | * @param name 主要参数 | ||
| 175 | * @param minor 次要参数 主要参数相同时,比较次要参数 | ||
| 176 | */ | ||
| 177 | export function ascSort(name, minor) { | ||
| 178 | return function(o, p) { | ||
| 179 | var a, b; | ||
| 180 | if (o && p && typeof o === "object" && typeof p === "object") { | ||
| 181 | a = o[name]; | ||
| 182 | b = p[name]; | ||
| 183 | if (a === b) { | ||
| 184 | return typeof minor === "function" ? minor(o, p) : 0; | ||
| 185 | } | ||
| 186 | if (typeof a === typeof b) { | ||
| 187 | return a < b ? -1 : 1; | ||
| 188 | } | ||
| 189 | return typeof a < typeof b ? -1 : 1; | ||
| 190 | } else { | ||
| 191 | // throw ("error"); | ||
| 192 | return null; | ||
| 193 | } | ||
| 194 | }; | ||
| 195 | } | ||
| 196 | |||
| 197 | /** | ||
| 198 | * 升序排列 | ||
| 199 | * @param name 主要参数 | ||
| 200 | * @param minor 次要参数 主要参数相同时,比较次要参数 | ||
| 201 | */ | ||
| 202 | export function descSort(name, minor) { | ||
| 203 | return function(o, p) { | ||
| 204 | var a, b; | ||
| 205 | if (o && p && typeof o === "object" && typeof p === "object") { | ||
| 206 | a = o[name]; | ||
| 207 | b = p[name]; | ||
| 208 | if (a === b) { | ||
| 209 | return typeof minor === "function" ? minor(o, p) : 0; | ||
| 210 | } | ||
| 211 | if (typeof a === typeof b) { | ||
| 212 | return a > b ? -1 : 1; | ||
| 213 | } | ||
| 214 | return typeof a > typeof b ? -1 : 1; | ||
| 215 | } else { | ||
| 216 | // throw ("error"); | ||
| 217 | return null; | ||
| 218 | } | ||
| 219 | }; | ||
| 161 | } | 220 | } |
| 162 | 221 | ||
| 163 | /** | 222 | /** |
| ... | @@ -182,16 +241,15 @@ export function getObjByListKeyValue(value, key, list) { | ... | @@ -182,16 +241,15 @@ export function getObjByListKeyValue(value, key, list) { |
| 182 | * 用{{}}会当成字符串把 html渲染出来 | 241 | * 用{{}}会当成字符串把 html渲染出来 |
| 183 | */ | 242 | */ |
| 184 | export function formatBr(str) { | 243 | export function formatBr(str) { |
| 185 | str = str.replace(/\n/g, '<br/>') | 244 | str = str.replace(/\n/g, "<br/>"); |
| 186 | return str | 245 | return str; |
| 187 | }; | 246 | } |
| 188 | 247 | ||
| 189 | // dd-MM-yyyy转yyyy-MM-dd | 248 | // dd-MM-yyyy转yyyy-MM-dd |
| 190 | export function ddMMyyyy2yyyyMMdd(str) { | 249 | export function ddMMyyyy2yyyyMMdd(str) { |
| 191 | return str.replace(/-/g, '').replace(/^(\d{2})(\d{2})(\d{4})$/, "$3-$2-$1"); | 250 | return str.replace(/-/g, "").replace(/^(\d{2})(\d{2})(\d{4})$/, "$3-$2-$1"); |
| 192 | } | 251 | } |
| 193 | 252 | ||
| 194 | |||
| 195 | /** | 253 | /** |
| 196 | * @desc 函数防抖 | 254 | * @desc 函数防抖 |
| 197 | * @param func 函数 | 255 | * @param func 函数 |
| ... | @@ -201,7 +259,7 @@ export function ddMMyyyy2yyyyMMdd(str) { | ... | @@ -201,7 +259,7 @@ export function ddMMyyyy2yyyyMMdd(str) { |
| 201 | export function debounce(func, wait, immediate) { | 259 | export function debounce(func, wait, immediate) { |
| 202 | let timeout; | 260 | let timeout; |
| 203 | 261 | ||
| 204 | return function () { | 262 | return function() { |
| 205 | let context = this; | 263 | let context = this; |
| 206 | let args = arguments; | 264 | let args = arguments; |
| 207 | 265 | ||
| ... | @@ -210,14 +268,14 @@ export function debounce(func, wait, immediate) { | ... | @@ -210,14 +268,14 @@ export function debounce(func, wait, immediate) { |
| 210 | var callNow = !timeout; | 268 | var callNow = !timeout; |
| 211 | timeout = setTimeout(() => { | 269 | timeout = setTimeout(() => { |
| 212 | timeout = null; | 270 | timeout = null; |
| 213 | }, wait) | 271 | }, wait); |
| 214 | if (callNow) func.apply(context, args) | 272 | if (callNow) func.apply(context, args); |
| 215 | } else { | 273 | } else { |
| 216 | timeout = setTimeout(function () { | 274 | timeout = setTimeout(function() { |
| 217 | func.apply(context, args) | 275 | func.apply(context, args); |
| 218 | }, wait); | 276 | }, wait); |
| 219 | } | 277 | } |
| 220 | } | 278 | }; |
| 221 | } | 279 | } |
| 222 | 280 | ||
| 223 | /** | 281 | /** |
| ... | @@ -233,7 +291,7 @@ export function throttle(func, wait, type) { | ... | @@ -233,7 +291,7 @@ export function throttle(func, wait, type) { |
| 233 | } else if (type === 2) { | 291 | } else if (type === 2) { |
| 234 | var timeout; | 292 | var timeout; |
| 235 | } | 293 | } |
| 236 | return function () { | 294 | return function() { |
| 237 | let context = this; | 295 | let context = this; |
| 238 | let args = arguments; | 296 | let args = arguments; |
| 239 | if (type === 1) { | 297 | if (type === 1) { |
| ... | @@ -247,11 +305,11 @@ export function throttle(func, wait, type) { | ... | @@ -247,11 +305,11 @@ export function throttle(func, wait, type) { |
| 247 | if (!timeout) { | 305 | if (!timeout) { |
| 248 | timeout = setTimeout(() => { | 306 | timeout = setTimeout(() => { |
| 249 | timeout = null; | 307 | timeout = null; |
| 250 | func.apply(context, args) | 308 | func.apply(context, args); |
| 251 | }, wait) | 309 | }, wait); |
| 252 | } | ||
| 253 | } | 310 | } |
| 254 | } | 311 | } |
| 312 | }; | ||
| 255 | } | 313 | } |
| 256 | 314 | ||
| 257 | /** | 315 | /** |
| ... | @@ -260,17 +318,17 @@ export function throttle(func, wait, type) { | ... | @@ -260,17 +318,17 @@ export function throttle(func, wait, type) { |
| 260 | * @param {string} value | 318 | * @param {string} value |
| 261 | */ | 319 | */ |
| 262 | export function contactMethodCheck(type, value) { | 320 | export function contactMethodCheck(type, value) { |
| 263 | if (type == 'hkmobile') { | 321 | if (type == "hkmobile") { |
| 264 | // return /^[5689]{1}\d{7}$/.test(value); | 322 | // return /^[5689]{1}\d{7}$/.test(value); |
| 265 | return /^(\+)?(852)?(\-)?(5|6|8|9)\d{7}$/.test(value); | 323 | return /^(\+)?(852)?(\-)?(5|6|8|9)\d{7}$/.test(value); |
| 266 | } | 324 | } |
| 267 | 325 | ||
| 268 | if (type == 'mobile') { | 326 | if (type == "mobile") { |
| 269 | // return /^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0-9])|(18[0-9])|(19[0-9]))\d{8}$/.test(value); | 327 | // return /^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0-9])|(18[0-9])|(19[0-9]))\d{8}$/.test(value); |
| 270 | return /^(\+)?(86)?(\-)?1\d{10}$/.test(value); | 328 | return /^(\+)?(86)?(\-)?1\d{10}$/.test(value); |
| 271 | } | 329 | } |
| 272 | 330 | ||
| 273 | if (type == 'email') { | 331 | if (type == "email") { |
| 274 | return /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/.test(value); | 332 | return /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/.test(value); |
| 275 | } | 333 | } |
| 276 | return true; | 334 | return true; |
| ... | @@ -281,7 +339,7 @@ export function policyNumberCheck(policyNumber) { | ... | @@ -281,7 +339,7 @@ export function policyNumberCheck(policyNumber) { |
| 281 | } | 339 | } |
| 282 | 340 | ||
| 283 | export function checkVerifyCode(verifyCode) { | 341 | export function checkVerifyCode(verifyCode) { |
| 284 | return /^\d{6}$/.test(verifyCode) | 342 | return /^\d{6}$/.test(verifyCode); |
| 285 | } | 343 | } |
| 286 | 344 | ||
| 287 | export function checkName(name) { | 345 | export function checkName(name) { | ... | ... |
-
Please register or sign in to post a comment