let data = {
globalConstantData: {
requestComeFrom: 'dandelion_platform_miniapp',
},
/* 固定数据
*/
store () {
return {
appid: 'wxa7b4864efbcff191', //
cdnBaseImg: "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/", // 图片公共前缀路径
svgBaseImg: "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/1shoudan/",// svg
fadanBaseImg: "https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/dailibaoming/",
coziID: '7543074655566102537',
// coziID: '7491244881596809243',
baseUrl: "https://daotian.matripe.com.cn",// 网络请求的基础路径
// baseUrl: "http://192.168.3.83:8001", // 网络请求的基础路径
// baseUrl: "http://192.168.1.3:8001",// 118
// #ifdef MP-WEIXIN
version: uni.getAccountInfoSync().miniProgram.version || "1.0.0",
mapKey: 'LHQBZ-MLTEG-BO4QK-QJ2TH-NLGZJ-7GFAS',
// #endif
// #ifdef H5 || APP-PLUS || MP-TOUTIAO || MP-KUAISHOU
version: "1.0.0"
// #endif
}
},
/* 分享给好友
*/
shareFun (
path = "/pages/home/index",
image = "",
title = ''
) {
// console.log(uni.getStorageSync('miniApp-info'));
let appInfo = uni.getStorageSync('miniApp-info')
let params = {
path: path +
`?userId=${uni.getStorageSync("apply-userinfo") ? uni.getStorageSync("apply-userinfo").user.id : ''}`,
imageUrl: appInfo.sharePoster ||
"https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/pugongying/share.jpeg", // image ? image :
title: appInfo.slogan || ' '
};
return params;
},
/*
判断是否登录,未登录,强制跳转至登录页
*/
isLogin () {
let that = this;
if (!uni.getStorageSync("apply-token")) {
uni.reLaunch({
url: '/root/login/index?path=' + that.getPath().path + '&level=' + that.getPath().level
});
return false;
} else {
return true;
}
},
/* 获取当前path
*/
getPath () {
const pages = getCurrentPages();
if (pages.length > 0) {
let _path = pages[pages.length - 1].route;
return {
path: _path,
level: _path.slice(0, 4)
}
} else {
return {
path: '',
level: ''
};
}
},
/**
* 全拷贝
*/
fullCopy (data) {
return JSON.parse(JSON.stringify(data))
},
/**
* 获取头部nav高度
*/
getNavInfo () {
if (uni.getSystemInfoSync()) {
var {
statusBarHeight,
platform,
windowHeight
} = uni.getSystemInfoSync();
}
// #ifdef APP-PLUS || H5 || MP-TOUTIAO || MP-KUAISHOU
var {
top,
height
} = this.getMobileInfo;
// #endif
if (uni.getMenuButtonBoundingClientRect) {
var {
top,
height
} = uni.getMenuButtonBoundingClientRect();
}
// #ifdef MP-WEIXIN
// #endif
let info = {}
info.statusBarHeight = statusBarHeight;
info.menuButtonHeight = height ? height : 32;
info.windowHeight = windowHeight;
if (top && top !== 0 && height && height !== 0) {
const navigationBarHeight = (top - statusBarHeight) * 2 + height;
// 导航栏高度
info.navigationBarHeight = navigationBarHeight;
} else {
info.navigationBarHeight = platform === "android" ? 48 : 40;
}
return info
},
/**
* 根据传递的scene参数,获取里面的内容
*/
sceneToJson (sceneStr) {
let json = {};
let array = sceneStr.split(",");
array.forEach((item) => {
let arr = item.split("=");
let key = arr[0];
let value = arr[1];
json[key] = value;
});
return json;
},
/* 扫一扫
*/
handleScanCode () {
let that = this;
function errorMsg () {
that.handleConfirm('无法识别该二维码', () => { }, () => { });
}
uni.scanCode({
success: function (res) {
// console.log('获取扫码结果:', res.result)
if (res.result) {
if (res.result.indexOf('=') > -1) {
// 前往详情页
let params = {
id: res.result.split('=')[1],
isShowMore: false,
isShowJob: false
};
uni.navigateTo({
url: "/root/detail/user?" + that.objToStr(params),
});
} else {
errorMsg();
}
} else {
errorMsg();
}
}
});
},
/* 设置导航条
*/
setNavStyle ($form = 'default') {
},
// 年月日
formatDateYMD (val) {
// model -> view,在更新 `` 元素之前格式化值
if (val == null || val == "") {
return null;
}
if ((val != null || val == "") && typeof val == "string") {
if (val.indexOf("T")) {
val = val.replace("T", " "); //原来L端可能返回的时间格式有带T的格式,处理一下
}
val = val.replace("-", "/").replace("-", "/");
}
var value = new Date(val);
// console.log(val);
var fmt = "yyyy-MM-dd";
var o = {
"M+": value.getMonth() + 1, //月份
"d+": value.getDate(), //日
// "H+": value.getHours(), //小时
//"h+": val.getHours()%12 == 0 ? 12 : val.getHours()%12, //小时
// "m+": value.getMinutes(), //分
// "s+": value.getSeconds() //秒
//"S": val.getMilliseconds() //毫秒
//"q+": Math.floor((val.getMonth() + 3) / 3) //季度
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (value.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return fmt;
},
policyNumToHanZi (i, type = 'other') {
let pickerStr;
if (i <= 9) {
switch (i) {
case 1:
pickerStr = type == 'add' ? '一条政策' : "政策一";
break;
case 2:
pickerStr = type == 'add' ? '二条政策' : "政策二";
break;
case 3:
pickerStr = type == 'add' ? '三条政策' : "政策三";
break;
case 4:
pickerStr = type == 'add' ? '四条政策' : "政策四";
break;
case 5:
pickerStr = type == 'add' ? '五条政策' : "政策五";
break;
case 6:
pickerStr = type == 'add' ? '六条政策' : "政策六";
break;
case 7:
pickerStr = type == 'add' ? '七条政策' : "政策七";
break;
case 8:
pickerStr = type == 'add' ? '八条政策' : "政策八";
break;
case 9:
pickerStr = type == 'add' ? '九条政策' : "政策九";
break;
case 10:
pickerStr = type == 'add' ? '十条政策' : "政策十";
break;
default:
pickerStr = type == 'add' ? (i + 1) + '条政策' : "政策" + (i + 1);
break;
}
}
return pickerStr
},
/* 姓名/性别/年龄/民族
*/
titleToStr ($obj) {
let _sex = '',
_age = '',
_nation = '';
if ($obj.sex == 0) {
_sex = ''
} else if ($obj.sex == 1) {
_sex = '/男'
} else if ($obj.sex == 2) {
_sex = '/女'
} else {
_sex = ''
}
if ($obj.age) {
_age = '/' + $obj.age
} else {
_age = ''
}
if ($obj.nation) {
_nation = '/' + $obj.nation
} else {
_nation = ''
}
return _sex + _age + _nation;
},
/* 交互反馈:取消确认弹窗
*/
handleConfirm (
options
) {
// console.log(options);
uni.showModal({
title: options.title || '',
content: options.content || '',
showCancel: options.showCancel === false ? false : true,
confirmText: options.confirmText || "确定",
confirmColor: options.confirmColor || "#576b95",
cancelColor: options.cancelColor || "#000",
cancelText: options.cancelText || "取消",
success (res) {
options.success(res);
}
});
},
/* 清除登录信息存储
*/
clearLocalStorage () {
uni.removeStorageSync("apply-avatar");
uni.removeStorageSync("apply-username");
uni.removeStorageSync("apply-tel");
uni.removeStorageSync("apply-token");
uni.removeStorageSync("apply-userinfo");
uni.removeStorageSync("apply-userinfo-copy");
uni.removeStorageSync("apply-agencyId");
uni.removeStorageSync("apply-supplierAccount");
uni.removeStorageSync("IS_MINIAPP_MEMBER");
uni.removeStorageSync("IS_MINIAPP_ADMIN");
uni.removeStorageSync("apply-uid")
uni.removeStorageSync("agencyInfo");
uni.removeStorageSync("HAS_PERMISSION")
uni.removeStorageSync("user_ServicePermission")
uni.removeStorageSync("is_teamleader")
},
/* 对象重组成字符串 */
objToStr (obj = {}, type = 'url') {
let str = '';
if (type == 'url') {
str = Object.keys(obj)
.map(key => `${key}=${obj[key]}`)
.join('&');
} else if (type == 'copy') {
str = Object.keys(obj)
.map(key => `${key}${obj[key]}`)
.join('');
}
return str;
},
/**
* 分割电话号
*/
splitPhone (str) {
// 判断是否为11位
// console.log(str);
if (str.length != 11) return str;
var arr = str.split('');
arr.splice(3, 0, ' ');
arr.splice(8, 0, ' ');
return arr.join('')
},
/* 上传图片 (裁剪)
*/
uploadImage ($num = 1, callback = () => { }, $sourceType = ['album', 'camera']) {
uni.chooseImage({
crop: {
width: 100,
height: 100,
quality: 100,
resize: false,
// destWidth: 100,
},
count: $num, //默认9
sizeType: ['original'], //可以指定是原图还是压缩图,默认二者都有
sourceType: $sourceType, //album 从相册选图,camera 使用相机
success: function (res) {
// console.log('选取文件数据:', res)
callback(JSON.stringify(res.tempFilePaths));
}
});
},
getOrderStatus () {
return [{
id: '0',
name: '新简历',
value: 0,
text: '新简历',
num: 0
},
{
id: '1',
name: '推工作',
value: 1,
text: '推工作',
num: 0
},
{
id: '2',
name: '已放弃',
value: 2,
text: '已放弃',
num: 0
},
{
id: '10',
name: '待审核',
value: 10,
text: '待审核',
num: 0
},
{
id: '20',
name: '待接待',
value: 20,
text: '待接待',
num: 0
},
{
id: '21',
name: '审核未通过',
value: 21,
text: '审核未通过',
num: 0
},
{
id: '25',
name: '待面试',
value: 25,
text: '待面试',
num: 0
},
{
id: '26',
name: '未接到',
value: 26,
text: '未接到',
num: 0
},
{
id: '30',
name: '待入职',
value: 30,
text: '待入职',
num: 0
},
{
id: '35',
name: '面试未通过',
value: 35,
text: '面试未通过',
num: 0
},
{
id: '40',
name: '已入职',
value: 40,
text: '已入职',
num: 0
},
{
id: '48',
name: '约离职',
value: 48,
text: '约离职',
num: 0
},
{
id: '45',
name: '通过未入职',
value: 45,
text: '通过未入职',
num: 0
},
{
id: '50',
name: '已离职',
value: 50,
text: '已离职',
num: 0
},
{
id: "100",
name: "待确认",
value: "50",
text: "待确认",
num: 0
},
{
id: "101",
name: "已取消",
value: "50",
text: "已取消",
num: 0
},
{
id: "102",
name: "官方审核中",
value: "50",
text: "官方审核中",
num: 0
},
{
id: "103",
name: "审核不通过",
value: "50",
text: "审核不通过",
num: 0
},
]
},
isValidIdCard (idCard) {
const idCardRegex = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}[\dXx]$/;
if (!idCardRegex.test(idCard)) {
return false;
}
const factors = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
const checkCodeList = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
let sum = 0;
for (let i = 0; i < 17; i++) {
sum += parseInt(idCard[i]) * factors[i];
}
const checkCode = checkCodeList[sum % 11];
return checkCode === idCard[17].toUpperCase();
},
getInfoByIDcard (idCard) {
let info = {}
let birthday
// 获取性别
if (idCard.length === 15) {
info.sex = ['女', '男'][idCard.substr(14, 1) % 2]
birthday = Y + [idCard.substr(6, 2), idCard.substr(8, 2), idCard.substr(10, 2)].join('-')
} else if (idCard.length === 18) {
info.sex = ['女', '男'][idCard.substr(16, 1) % 2]
birthday = [idCard.substr(6, 4), idCard.substr(10, 2), idCard.substr(12, 2)].join('-')
}
// 获取年龄
let currentYear = new Date().getFullYear() //当前的年份
let calculationYear = new Date(birthday).getFullYear() //计算的年份
const wholeTime = currentYear + birthday.substring(4) //周岁时间
const calculationAge = currentYear - calculationYear //按照年份计算的年龄
//判断是否过了生日
if (new Date().getTime() > new Date(wholeTime).getTime()) {
info.age = calculationAge
} else {
info.age = calculationAge - 1
}
// console.log('info', info);
return info
},
/* 正则
*/
setReg ($str, $type = 'default') {
if ($type == 'tel') {
return /^1[3-9]\d{9}$/.test($str);
}
if ($type == 'idcard') {
return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test($str);
}
},
getHrDom (_str) {
return `
${_str}
`;
},
getEmptyDom (text = "暂无数据", subText = "") {
const cdnBaseImg = this.store().cdnBaseImg;
const clickAttr = text == '请登录' ? ` @click="${clickHandler}"` : '';
function clickHandler () {
uni.reLaunch({
url: '/root/login/index?path=' + that.getPath().path + '&level=' + that.getPath().level
});
}
// console.log('getEmptyDom', text, subText);
return `
${text}
${subText ? `${subText}` : ''}
`;
},
/* 综合月薪 正则规则
* 价格中间的特殊字符
*/
specStrReg ($str) {
let list = [
'~', '!', '@', '#', '%', '^', '&', '*', '(', ')',
'!', '(', ')', '+', '`', '-', '=', '·',
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']', '{', '}', '|', '|',
'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', ':', "'", '"', ':', '“', '”',
'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/', '<', '>', '?', '《', '》', '?',
'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P',
'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L',
'Z', 'X', 'C', 'V', 'B', 'N', 'M', ' ', '——'
],
obj = {
min: 0,
max: 0
}
if ($str) {
list.forEach((item, index) => {
if ($str.indexOf(item) > -1 && $str.split(item)[1]) {
let newlist = [$str.split(item)[0], $str.split(item)[1]]
newlist.sort(function (a, b) {
return a - b
})
obj = {
min: newlist[0],
max: newlist[1],
}
}
})
}
return obj;
},
/**
* canvas绘图 start
*/
/**
* 文字绘制
*/
fillTextLineBreak (ctx, text, x, y, lw, lh, color = "#333", font = "32", weight = "500") {
// , align = "center"
var i = 0;
var n = 0;
var r = -1;
// var initHeight = 0;
ctx.font = weight + " " + font + "px Arial"; //字体大小
ctx.fillStyle = color; //字体颜色
// ctx.textBaseline = align;
// ctx.textAlign = align;
while (i < text.length) {
while (ctx.measureText(text.substring(n, i)).width < lw && i < text.length) {
i++;
}
r++;
ctx.fillText(text.substring(n, i), x, y + lh * r);
n = i;
}
},
/**
* 背景图绘制
*/
roundRect (ctx, img, bg_x, bg_y, bg_w, bg_h, bg_r) {
// 开始绘制
ctx.save();
ctx.beginPath();
ctx.arc(bg_x + bg_r, bg_y + bg_r, bg_r, Math.PI, Math.PI * 1.5);
ctx.arc(bg_x + bg_w - bg_r, bg_y + bg_r, bg_r, Math.PI * 1.5, Math.PI * 2);
ctx.arc(bg_x + bg_w - bg_r, bg_y + bg_h - bg_r, bg_r, 0, Math.PI * 0.5);
ctx.arc(bg_x + bg_r, bg_y + bg_h - bg_r, bg_r, Math.PI * 0.5, Math.PI);
ctx.clip();
ctx.drawImage(img, bg_x, bg_y, bg_w, bg_h);
// 恢复之前保存的绘图上下文
ctx.restore();
},
roundRect_yuan (ctx, x, y, size) {
// 开始绘制
ctx.save(); // 保存
ctx.beginPath(); // 开始绘制
// ctx.arc(100, 75, 50, 0, 2 * Math.PI)
ctx.arc(size / 2 + x, size / 2 + y, size / 2, 0, Math.PI * 2, false);
ctx.clip();
// 恢复之前保存的绘图上下文
ctx.restore();
},
roundRect1 (ctx, x, y, w, h, r, color) {
//绘制圆角矩形(无填充色))
ctx.save();
ctx.fillStyle = color;
ctx.strokeStyle = color;
ctx.lineJoin = "round"; //交点设置成圆角
ctx.lineWidth = r;
ctx.strokeRect(x + r / 2, y + r / 2, w - r, h - r);
ctx.fillRect(x + r, y + r, w - r * 2, h - r * 2);
ctx.stroke();
ctx.closePath();
},
/**
* canvas绘图 end
*/
}
export default data;