123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486 |
- /*
- * 获取缓存的值——String类型
- * 返回值字符串 有值返回具体的值,否则返回空字符串
- * @zjf-2020-.gitignore-26
- * */
- import { useRouter } from 'vue-router'
- import { lang_zn } from '@/assets/language/zh';
- import { lang_en } from '@/assets/language/en';
- const router = useRouter()
- export function getLocalStorageStr(key) {
- if(process.client){
- let val = localStorage.getItem(key);
- return val != undefined && val != null && val ? val : "";
- }
- }
- /**
- * 装修模块的跳转
- * @params Object val
- */
- export function diyNavToFun(val) {
- if (val.link_type == "url") {
- //跳转链接地址
- if (val.link_value) {
- val.link_value = quillEscapeToHtml(val.link_value);
- }
- window.open(val.link_value, "_blank");
- } else if (val.link_type == "goods") {
- //跳转商品详情页
- // let routeUrl = router.resolve({
- // path: "/goods/detail",
- // query: {
- // productId: val.info.defaultProductId,
- // },
- // });
- let href = "/goods/detail/"+ calcProductName(val.info.goodsName) +'_'+ val.info.defaultProductId
- window.open(href, "_blank");
- } else if (val.link_type == "category") {
- // 分类列表
- let routeUrl = router.resolve({
- path: "/goods/list/categoryId-"+val.info.categoryId,
- });
- window.open(routeUrl.href, "_blank");
- } else if (val.link_type == "keyword") {
- // 关键词
- let path = "/goods/list/keyword-"+ val.link_value
- let query = {
- keyword: val.link_value,
- };
- if (val.storeId) {
- query.storeId = val.storeId;
- path+='/storeId-'+val.storeId
- }
- let routeUrl = router.resolve({
- path: path
- });
- window.open(routeUrl.href, "_blank");
- } else if (val.link_type == "topic") {
- //跳转专题页
- let routeUrl = router.push({
- path: "/home/topic",
- query: {
- topicId: val.info.decoId,
- },
- });
- window.open(routeUrl.href, "_blank");
- } else if (val.link_type == "brand_home") {
- //品牌列表
- let routeUrl = router.resolve({
- path: "/brand",
- query: {},
- });
- window.open(routeUrl.href, "_blank");
- } else if (val.link_type == "store_list") {
- //店铺列表
- let routeUrl = router.resolve({
- path: "/store/list/current-1",
- });
- window.open(routeUrl.href, "_blank");
- } else if (val.link_type == "voucher_center") {
- //领券中心
- let routeUrl = router.resolve({
- path: "/coupon",
- });
- window.open(routeUrl.href, "_blank");
- } else if (val.link_type == "point_center") {
- let routeUrl = router.resolve({
- path: "/point/index",
- });
- window.open(routeUrl.href, "_blank");
- }
- }
- /*
- * 富文本内容反转义(接口返回的富文本内容经过了转义,导致内容无法展示,所以需要反转义)
- * @param {String} str 富文本内容
- * @zjf-2022-01-07
- * */
- export function quillEscapeToHtml(str) {
- if (str != undefined) {
- const arrEntities = { 'lt': '<', 'gt': '>', 'nbsp': ' ', 'amp': '&', 'quot': '"' }
- return str.replace(/&(lt|gt|nbsp|amp|quot);/ig, function (all, t) {
- return arrEntities[t]
- })
- } else {
- return '';
- }
- }
- /*
- * 获取当前语言下的数据 —— Object类型
- * 返回对象 语言数据对象
- * @zjf-2020-12-28
- * */
- export function getCurLanguage() {
- const language = {
- 'zh': lang_zn,
- 'en': lang_en,
- }
- return language[curLang];
- }
- /*
- * 密码的验证:6~20位,由英文、数字或符号组成的验证
- * 验证通过,返回boolean值true,否则返回具体的错误信息
- * @zjf-2021-01-06
- * */
- export function checkPwd(pwd) {
- let tarLang = getCurLanguage();
- if (pwd.length < 6) {
- return tarLang['密码最少6位哦~'];
- } else if (pwd.length > 20) {
- return tarLang['密码最多20位哦~'];
- } else if (!(/[^\u4e00-\u9fa5]/.test(pwd))) {
- return tarLang['密码不可以有中文哦~'];
- } else if (!(/^\S*$/.test(pwd))) {
- return tarLang['密码中不可以有空格哦~'];
- } else {
- return true;
- }
- }
- /*
- * 短信验证码的验证:6位0~9的数字
- * 验证通过,返回boolean值true,否则返回具体的错误信息
- * @zjf-2021-01-06
- * */
- export function checkSmsCode(val) {
- let tarLang = getCurLanguage();
- let reg = /^\d{6}$/;
- if (!val) {
- return tarLang['请输入短信验证码'];
- } else if (!reg.test(val)) {
- return tarLang['请输入正确的短信验证码'];
- } else {
- return true;
- }
- }
- /*
- * 邮箱的验证
- * 验证通过,返回boolean值true,否则返回具体的错误信息
- * @zjf-2021-01-.gitignore
- * */
- export function checkEmail(email) {
- let tarLang = getCurLanguage();
- let reg = /^([a-zA-Z0-9]+[-_.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[-_.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,6}$/;
- if (!email) {
- return tarLang['请输入邮箱'];
- } else if (!reg.test(email)) {
- return tarLang['请输入正确的邮箱'];
- } else {
- return true;
- }
- }
- /*
- * 短信图形验证码的验证:4位英文字母和数字
- * 验证通过,返回boolean值true,否则返回具体的错误信息
- * @zjf-2021-01-07
- * */
- export function checkImgCode(val) {
- let tarLang = getCurLanguage();
- let reg = /^[a-zA-Z0-9]{4}$/;
- if (!val) {
- return tarLang['请输入图形验证码'];
- } else if (!reg.test(val)) {
- return tarLang['请输入正确的图形验证码'];
- } else {
- return true;
- }
- }
- /*
- * 邮箱验证码的验证:6位0~9的数字
- * 验证通过,返回boolean值true,否则返回具体的错误信息
- * @zjf-2021-01-06
- * */
- export function checkEmailCode(val) {
- let tarLang = getCurLanguage();
- let reg = /^\d{4,6}$/;
- if (!val) {
- return tarLang['请输入邮箱验证码'];
- } else if (!reg.test(val)) {
- return tarLang['请输入正确的邮箱验证码'];
- } else {
- return true;
- }
- }
- export function checkPhone(mobile, txt) {
- let tarLang = getCurLanguage();
- let regMobile = /(1[3-9]\d{9}$)/;
- if (!mobile) {
- return txt ? txt : tarLang['请输入手机号'];
- } else if (!regMobile.test(mobile)) {
- return txt ? txt : tarLang['请输入正确的手机号'];
- } else {
- return true;
- }
- }
- /**
- * base64加密
- * @params data String 要加密的字符串
- * @zjf-2021-06-28
- */
- export function base64Encode(data) {
- let b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
- let o1,
- o2,
- o3,
- h1,
- h2,
- h3,
- h4,
- bits,
- i = 0,
- ac = 0,
- enc = '',
- tmp_arr = [];
- if (!data) {
- return data;
- }
- data = utf8Encode(data);
- do {
- o1 = data.charCodeAt(i++);
- o2 = data.charCodeAt(i++);
- o3 = data.charCodeAt(i++);
- bits = o1 << 16 | o2 << 8 | o3;
- h1 = bits >> 18 & 0x3f;
- h2 = bits >> 12 & 0x3f;
- h3 = bits >> 6 & 0x3f;
- h4 = bits & 0x3f;
- tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
- } while (i < data.length);
- enc = tmp_arr.join('');
- switch (data.length % 3) {
- case 1:
- enc = enc.slice(0, -2) + '==';
- break;
- case 2:
- enc = enc.slice(0, -1) + '=';
- break;
- }
- return enc;
- }
- export function utf8Encode(string) {
- string = (string + '').replace(/\r\n/g, '\n').replace(/\r/g, '\n');
- let utftext = '',
- start,
- end;
- let stringl = 0,
- n;
- start = end = 0;
- stringl = string.length;
- for (n = 0; n < stringl; n++) {
- let c1 = string.charCodeAt(n);
- let enc = null;
- if (c1 < 128) {
- end++;
- } else if ((c1 > 127) && (c1 < 2048)) {
- enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128);
- } else {
- enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128);
- }
- if (enc !== null) {
- if (end > start) {
- utftext += string.substring(start, end);
- }
- utftext += enc;
- start = end = n + 1;
- }
- }
- if (end > start) {
- utftext += string.substring(start, string.length);
- }
- return utftext;
- }
- //处理产品名中的空格换中横及大写转换小写
- export function calcProductName(val){
- let name = ''
- //1.删除特殊字符 2.去除两头空格 3.替换空格为- 4.替换/为-
- name = val ? val.toLowerCase().replace(/[~'!?.<>@#$%^*()()+=\/\\:]/g,"").replace(/^\s*|\s*$/g,"").replace(/\ /g, "-").replace(/\//g, '-') : ''
- return name
- }
- //处理商品ID
- export function calcProductId(val){
- let a = val.split('_')
- let b = a[a.length - 1]
- return b
- }
- //处理分类页面的店铺ID字段
- export function calcUrlShopId(val){
- let a = val.split('_')
- let vid = ''
- for(let i in a){
- if(i > 0) {
- if (a[i].indexOf('v-') > -1) {
- vid = a[i].replace('v-', '')
- }
- }
- }
- return vid
- }
- //处理分类页面的分类ID字段
- export function calcUrlCatId(val){
- let a = val.split('_')
- let cid = ''
- for(let i in a){
- if(i > 0){
- if(a[i].indexOf('c-') > -1){
- cid = a[i].replace('c-','')
- }
- }
- }
- return cid
- }
- //处理分类页面的分页页面字段
- export function calcUrlPagination(val){
- let a = val.split('_')
- let pid = ''
- for(let i in a){
- if(i > 0){
- if(a[i].indexOf('p-') > -1){
- pid = a[i].replace('p-','')
- }
- }
- }
- return pid
- }
- //处理分类页面的关键字
- export function calcUrlKeywords(val){
- let a = val.split('_')
- let kid = ''
- for(let i in a){
- if(i > 0){
- if(a[i].indexOf('k-') > -1){
- kid = a[i].replace('k-','')
- }
- }
- }
- return kid
- }
- //处理商城的分类URL-PID字段
- export function calcMallUrlPid(val){
- let a = val.split('_')
- let pid = ''
- for(let i in a){
- if(i > 0){
- if(a[i].indexOf('pid-') > -1){
- pid = a[i].replace('pid-','')
- }
- }
- }
- return pid
- }
- //处理商城的分类URL-GID字段
- export function calcMallUrlGid(val){
- let a = val.split('_')
- let gid = ''
- for(let i in a){
- if(i > 0){
- if(a[i].indexOf('gid-') > -1){
- gid = a[i].replace('gid-','')
- }
- }
- }
- return gid
- }
- //处理商城的分类URL-分页字段
- export function calcMallUrlCur(val){
- let a = val.split('_')
- let current = ''
- for(let i in a){
- if(i > 0){
- if(a[i].indexOf('cur-') > -1){
- current = a[i].replace('cur-','')
- }
- }
- }
- return current
- }
- //处理商城的分类URL-品牌ID字段
- export function calcMallUrlBrand(val){
- let a = val.split('_')
- let brand = ''
- for(let i in a){
- if(i > 0){
- if(a[i].indexOf('b-') > -1){
- brand = a[i].replace('b-','')
- }
- }
- }
- return brand
- }
- //处理商城的分类URL-分页字段
- export function calcMallUrlKeyword(val){
- let a = val.split('_')
- let keyword = ''
- for(let i in a){
- if(i > 0){
- if(a[i].indexOf('keyword-') > -1){
- keyword = a[i].replace('keyword-','')
- }
- }
- }
- return keyword
- }
- //处理商城的分类URL-获取分类名称
- export function calcMallUrlCatName(val){
- let a = val.split('_')
- let current = a[0]
- return current
- }
|