You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
apply-assistant-v3/utils/common.js

1578 lines
49 KiB
JavaScript

6 months ago
let data = {
/*
*/
store () {
return {
appid: 'wxa7b4864efbcff191', //
localBaseImg: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/dailibaoming/APP/", // app图片前缀
cdnBaseImg: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/dailibaoming/", // cdn图片公共前缀路径
5 months ago
v3BaseImg: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/dailibaoming/v3/", // cdn图片公共前缀路径
6 months ago
loginText: '请登录',
// #ifdef MP-WEIXIN
version: uni.getAccountInfoSync().miniProgram.version || "1.0.16",
// #endif
// #ifdef H5 || APP-PLUS || MP-TOUTIAO || MP-KUAISHOU
version: "1.0.16"
// #endif
}
},
5 months ago
fullCopy (data) {
return JSON.parse(JSON.stringify(data))
},
6 months ago
/*
*/
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");
5 months ago
uni.removeStorageSync("apply-uid");
5 months ago
uni.removeStorageSync('agencyInfo') // 1是创建者 2是普通成员
6 months ago
},
/*
*/
shareFun (
path = "/pages/home/index",
image = "",
6 months ago
title = "报名助手"
6 months ago
) {
let params = {
path: path,
// imageUrl: this.store().localBaseImg + 'share.png', // image ? image :
imageUrl: image,
title: title
};
console.log('分享数据:', params)
return params;
},
/*
*/
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);
}
});
},
/*
*/
isLogin () {
let that = this;
if (!uni.getStorageSync("apply-token")) {
uni.reLaunch({
5 months ago
url: '/root/person/loginIndex?path=/' + that.getPath().path + '&level=' + that.getPath().level
6 months ago
});
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: ''
};
}
},
/*
*/
copyText ($text = '默认文案', $toast = "复制成功") {
uni.setClipboardData({
data: $text,
success: function () {
uni.showToast({
title: $toast
})
}
});
},
/*
*/
uploadImage ($num = 1, callback = () => { }, $sourceType = ['album', 'camera']) {
uni.chooseImage({
crop: {
width: 100,
height: 100
},
count: $num, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: $sourceType, //album 从相册选图camera 使用相机
success: function (res) {
console.log('选取文件数据:', res)
callback(JSON.stringify(res.tempFilePaths));
}
});
},
/*
*/
uploadM ($num = 1, callback = () => { }) {
uni.chooseMedia({
count: $num, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], //从相册选择
success: function (res) {
console.log('选取文件数据:', res)
callback(JSON.stringify(res.tempFilePaths));
}
});
},
/*
* 临时路径转base数据
*/
temToBase ($path) {
if ($path) {
uni.getFileSystemManager().readFile({
filePath: $path,
encoding: 'base64',
success: res => {
let base64 = 'data:image/jpeg;base64,' + res.data; //不加上这串字符,在页面无法显示
console.log('base64', base64)
return base64;
}
})
}
},
/*
*/
setNavStyle ($form = 'default') {
if ($form == 'home') {
uni.setNavigationBarColor({
4 months ago
backgroundColor: "#fff",
6 months ago
frontColor: "#000000"
})
}
},
/**
* 时间格式转换
* @params str 时间戳或者标准时间
* @params type 类型
* @returns
*/
getPointTime (str = '', type = 'default') {
let that = this;
let year, month, date, hours, minute, second;
let time;
if (type == "pointDate") {
// 近N天
time = new Date(new Date(new Date().getTime() - (str - 1) * 24 * 60 * 60 * 1000))
type = "YY--MM--DD"
} else if (type == "yesterday") {
// 昨日
time = new Date(new Date(new Date()).setDate(new Date(new Date()).getDate() - 1))
type = "YY--MM--DD"
} else if (type == "thisweek") {
// 本周 实际是上周日到当前周的周六。周日的截止时间需特殊处理
if (str == 'first') {
let currentDate = new Date();
let currentDay = currentDate.getDay();
let daysToSunday = currentDay === 0 ? 7 : currentDay;
let lastSunday = new Date(currentDate.getTime() - daysToSunday * 24 * 60 * 60 * 1000);
let lastSundayYear = lastSunday.getFullYear();
let lastSundayMonth = lastSunday.getMonth() + 1; // 注意月份是从 0 开始的,需要加 1
let lastSundayDate = lastSunday.getDate();
let formattedDate = lastSundayYear + '-' + String(lastSundayMonth).padStart(2, '0') + '-' + String(lastSundayDate).padStart(2, '0');
time = formattedDate;
type = "first-week"
} else if (str == 'last') {
const today = new Date();
if (today.getDay() === 0) {
// 周日
time = new Date()
} else {
// 周一~周六
time = new Date()
}
type = "YY--MM--DD"
}
} else if (type == "lastweek") {
// 上周 上上周日到上周六。周日需特殊处理
const isSun = new Date();
if (isSun.getDay() === 0) {
// 周日。实际开始时间为上周日到这周六
if (str == 'first') {
let currentDate = new Date();
let currentDay = currentDate.getDay();
let daysToSunday = currentDay === 0 ? 7 : currentDay;
let lastSunday = new Date(currentDate.getTime() - daysToSunday * 24 * 60 * 60 * 1000);
let lastSundayYear = lastSunday.getFullYear();
let lastSundayMonth = lastSunday.getMonth() + 1; // 注意月份是从 0 开始的,需要加 1
let lastSundayDate = lastSunday.getDate();
let formattedDate = lastSundayYear + '-' + String(lastSundayMonth).padStart(2, '0') + '-' + String(lastSundayDate).padStart(2, '0');
time = formattedDate;
type = "first-week"
} else if (str == 'last') {
const today = new Date();
const dayOfWeek = today.getDay();
const diff = 6 - dayOfWeek; // 6 表示周六
const targetSaturday = new Date(today.getFullYear(), today.getMonth(), today.getDate() + diff);
const year = targetSaturday.getFullYear();
const month = targetSaturday.getMonth() + 1; // 月份从 0 开始,需加 1
const date = targetSaturday.getDate();
const formattedDate = `${year}-${month < 10 ? '0' + month : month}-${date < 10 ? '0' + date : date}`;
time = formattedDate;
type = "end-week"
}
} else {
// 周一~周六
if (str == 'first') {
function getPreviousSundayDate () {
const today = new Date();
const dayOfWeek = today.getDay();
const daysSinceLastSunday = (dayOfWeek + 6) % 7 + 8;
const previousSunday = new Date(today);
previousSunday.setDate(today.getDate() - daysSinceLastSunday);
return previousSunday;
}
time = new Date(getPreviousSundayDate());
type = "YY--MM--DD"
} else if (str == 'last') {
function getPreviousSaturdayDate () {
const today = new Date();
const dayOfWeek = today.getDay();
const daysSinceLastSaturday = (dayOfWeek + 6) % 7 + 2;
const previousSaturday = new Date(today);
previousSaturday.setDate(today.getDate() - daysSinceLastSaturday);
return previousSaturday;
}
time = new Date(getPreviousSaturdayDate());
type = "YY--MM--DD"
}
}
} else if (type == "thismonth") {
// 本月 当前月份一号到当天
time = new Date(new Date().getFullYear(), new Date().getMonth(), 1)
type = "YY--MM--DD"
} else if (type == "lastmonth") {
// 上月 上月的第一天到最后一天
if (str == 'first') {
time = new Date(new Date().getFullYear(), new Date().getMonth() - 1, 1);
} else if (str == 'last') {
time = new Date(new Date().getFullYear(), new Date().getMonth() - 1 + 1, 0);
}
type = "YY--MM--DD"
} else if (type == "first-week") { } else {
// 时间戳
time = str ? new Date(str) : new Date(new Date().getTime());
}
if (time && typeof time == 'object') {
year = time.getFullYear()
month = (time.getMonth() + 1).toString().padStart(2, '0')
date = (time.getDate()).toString().padStart(2, '0')
hours = (time.getHours()).toString().padStart(2, '0')
minute = (time.getMinutes()).toString().padStart(2, '0')
second = (time.getSeconds()).toString().padStart(2, '0')
}
let result;
switch (type) {
case 'default': // 2023-10-31 09:00:00
result = year + '-' + month + '-' + date + ' ' + hours + ':' + minute + ':' + second;
break;
case 'small': // 2023-10-31 09:00:00
result = year + month + date + hours + minute + second;
break;
case 'YY--MM--DD HH:MM': // 2023-10-31 09:00
result = year + '-' + month + '-' + date + ' ' + hours + ':' + minute;
break;
case 'MM--DD HH:MM': // 2023-10-31 09:00
result = month + '-' + date + ' ' + hours + ':' + minute;
break;
case 'YY--MM--DD': // 2023-10-31
result = year + '-' + month + '-' + date;
break;
case 'HH:MM:SS': // 09:00:00
result = hours + ':' + minute + ':' + second;
break;
case 'first-week': // 09:00:00
result = time;
break;
case 'end-week': // 09:00:00
result = time;
break;
default:
break;
}
return result;
},
/*
* @params time 字符串
*/
setDeadLine (time, type) {
if (type) {
// 交付助手的倒计时
let differenceTime = new Date().getTime() - new Date(time).getTime()
let absTime = Math.abs(differenceTime)
var D = Math.floor(absTime / (24 * 60 * 60 * 1000));
var leave1 = absTime % (24 * 3600 * 1000);
var H = Math.floor(leave1 / (3600 * 1000));
var leave2 = leave1 % (3600 * 1000);
var M = Math.floor(leave2 / (60 * 1000));
var leave3 = leave2 % (60 * 1000);
var S = Math.floor(leave3 / 1000);
// 时间正负的判断标识
let symbol = true
if (differenceTime < 0) {
symbol = false
}
if (type == 'jiaofu') {
if (D > 0) {
return D + (symbol ? "天前" : '天后');
} else if (H > 0) {
return H + (symbol ? "小时前" : '小时后');
} else if (M > 0) {
return M + (symbol ? "分钟前" : '分钟后');
} else {
// return S + (symbol ? "秒前" : '秒后');
return '刚刚';
}
} else if (type == '在职') {
// 处理在职中的时间显示
if (D > 0) {
return type + D + '天'
} else if (H > 0) {
return type + H + '小时'
} else if (M > 0) {
return type + M + '分钟'
} else {
return type + S + '秒'
}
}
} else {
let differenceTime = new Date(time).getTime() - new Date().getTime()
let absTime = Math.abs(differenceTime)
let D = Math.floor(absTime / (24 * 60 * 60 * 1000))
let leave1 = absTime % (24 * 3600 * 1000)
let H = Math.floor(leave1 / (3600 * 1000)) > 9 ? Math.floor(leave1 / (3600 * 1000)) : '0' + Math.floor(leave1 / (3600 * 1000))
let leave2 = leave1 % (3600 * 1000)
let M = Math.floor(leave2 / (60 * 1000)) > 9 ? Math.floor(leave2 / (60 * 1000)) : '0' + Math.floor(leave2 / (60 * 1000))
let leave3 = leave2 % (60 * 1000)
let S = Math.floor(leave3 / 1000) > 9 ? Math.floor(leave3 / 1000) : '0' + Math.floor(leave3 / 1000)
// 倒计时到期的判断
let symbol = ''
// if (differenceTime < 0) {
// symbol = '-'
// }
if (D > 0) {
return symbol + D + '天'
} else if (H > 0) {
return symbol + H + ':' + M + ':' + S
} else if (M > 0) {
return symbol + M + ':' + S
} else {
return symbol + S + '秒'
// return '刚刚'
}
}
},
/*
* 转化前河南省郑州市
* 转化后河南省 | 郑州市 |
* @params $list 数组
*/
toGetAddress ($list) {
if ($list && $list.length > 0) {
$list.forEach(item => {
var districtStr = "";
if (item.storeDistrict) {
var districtArr = item.storeDistrict.split(",");
var districtArr1 = [];
// console.log(districtArr);
districtArr.forEach((item1, index) => {
if (item1.length != 0) {
item1 = item1 + "丨";
if (index < 2) {
districtArr1.push(item1);
}
}
});
districtStr = districtArr1.join("");
if (item.storeDistrict.indexOf("undefined") > -1) {
districtStr = "-丨";
}
}
item["district"] = districtStr;
});
return $list;
} else {
return [];
}
},
/**
* 新职位处理
*/
toGetAddressv3 ($list) {
if ($list && $list.length > 0) {
$list.forEach(item => {
let storeDistrict = item.storeAddr || item.storeDistrict;
item["district"] = this.setJobInfoPositionv3(storeDistrict);
});
return $list;
} else {
return [];
}
},
setJobInfoPositionv3 (str) {
str = str.replace(//g, '');
var reg = /.+?(省|市|自治区|自治州|县|区)/g; // 省市区的正则
let matches = str.match(reg);
let result = '';
function getStr (str) {
if (matches[0].includes('省') || matches[0].includes('自治区') || matches[0].includes('自治州')) {
if (matches[1].includes('市') && matches[2].includes('市')) {
result = `${matches[0]}${matches[2]}`;
} else {
if (matches[2].includes('县')) {
result = `${matches[0]}${matches[2]}`;
} else {
result = `${matches[0]}${matches[1]}`;
}
}
} else if (matches[1].includes('市')) {
result = `${matches[0]}${matches[2]}`;
} else {
result = `${matches[1]}${matches[2]}`;
}
}
if (matches && matches.length > 0) {
switch (matches.length) {
case 1:
result = matches[0];
break;
case 2:
if (matches[0].includes('省') || matches[0].includes('自治区') || matches[0].includes('自治州')) {
result = `${matches[0]}${matches[1]}`;
} else {
result = `${matches[0]}${matches[1]}`;
}
break;
case 3:
getStr()
break;
case 4:
getStr()
break;
case 5:
getStr()
break;
default:
result = str;
break;
}
} else {
result = str;
}
return result;
},
/*
* @params $list 数组
*/
toGetAge ($list) {
if ($list && $list.length > 0) {
$list.forEach(item => {
if (item.minAge && item.maxAge) {
item["age"] = item.minAge + '-' + item.maxAge + '岁';
} else if (item.minAge) {
item["age"] = item.minAge + "岁以上";
} else if (item.maxAge) {
item["age"] = item.maxAge + "岁以下";
} else {
let newArr = [item.minAgeMan, item.maxAgeMan, item.minAgeWoman, item.maxAgeWoman]
newArr.sort()
// console.log('newArr', newArr)
let minAge = (newArr[0] == 0) ? newArr[2] : newArr[0]
let maxAge = newArr[3]
item["age"] = minAge + '-' + maxAge + '岁';
}
});
return $list;
} else {
return "";
}
},
/**
* 根据薪资类型和薪资值获取薪资展示
*/
getSalaryClassifyValue (salaryClassify, salaryClassifyValue, salaryClassifyValue1) {
var salary = this.moneyToFixed(salaryClassifyValue);
var salary1 = this.moneyToFixed(salaryClassifyValue1);
if (salaryClassify == 0) {
return `${salary}元/小时`;
} else if (salaryClassify == 1) {
return `${salary}元/天`;
} else if (salaryClassify == 2) {
return `${salary}`;
} else if (salaryClassify == 3) {
return `${salary}`;
} else if (salaryClassify == 4) {
return `计件`;
} else if (salaryClassify == 5) {
return `保底${salary}`;
} else if (salaryClassify == 6) {
return `面议`;
} else if (salaryClassify == 7) {
return salary + '-' + salary1 + `元/月`;
} else {
return "-";
}
},
/* 同步 */
moneyToFixed (money, fixed = 2, multiplicator = 100) {
if (money != 0 && money != null && money != "" && money != undefined) {
return this.cutZero(new Number(money / multiplicator).toFixed(fixed));
} else {
return "0";
}
},
/* 同步 */
cutZero (old) {
//拷贝一份 返回去掉零的新串
let newstr = old;
//循环变量 小数部分长度
var leng = old.length - old.indexOf(".") - 1;
//判断是否有效数
if (old.indexOf(".") > -1) {
//循环小数部分
for (var i = leng; i > 0; i--) {
//如果newstr末尾有0
if (newstr.lastIndexOf("0") > -1 && newstr.substr(newstr.length - 1, 1) == 0) {
var k = newstr.lastIndexOf("0");
//如果小数点后只有一个0 去掉小数点
if (newstr.charAt(k - 1) == ".") {
return newstr.substring(0, k - 1);
} else {
//否则 去掉一个0
newstr = newstr.substring(0, k);
}
} else {
//如果末尾没有0
return newstr;
}
}
}
return old;
},
/*
*/
disposeJobListData (jobList) {
let that = this;
if (jobList !== undefined) {
if (Array.isArray(jobList)) {
jobList.forEach((item) => {
item["workType"] = that.getWorkTypeById(item.workTypeMulti);
if (that.isNotEmptyCheck(item.distance)) {
item["distanceKm"] = that.getDistanceName(item.distance);
}
if (that.isNotEmptyCheck(item.jobDesp)) {
item["jobDesp"] = item["jobDesp"].replaceAll("*****", "");
}
//年龄
// console.log(jobList);
var ageStr = "";
if (that.isNotEmptyCheck(item.minAge) && that.isNotEmptyCheck(item.maxAge)) {
ageStr = item.minAge + "-" + item.maxAge + "岁";
} else if (that.isNotEmptyCheck(item.minAge)) {
ageStr = item.minAge + "岁以上";
} else if (that.isNotEmptyCheck(item.maxAge)) {
ageStr = item.maxAge + "岁以下";
}
item["age"] = ageStr;
item.updateTime = that.getPointTime(item.updateTime, 'YY--MM--DD HH:MM');
// 更新时间距离现在的差距
let differenceTime = new Date().getTime() - new Date(item.updateTime || new Date()).getTime();
var D = Math.floor(differenceTime / (24 * 60 * 60 * 1000));
var leave1 = differenceTime % (24 * 3600 * 1000);
var H = Math.floor(leave1 / (3600 * 1000));
var leave2 = leave1 % (3600 * 1000);
var M = Math.floor(leave2 / (60 * 1000));
var leave3 = leave2 % (60 * 1000);
var S = Math.floor(leave3 / 1000);
item.diffTime = null;
if (D > 0) {
item.diffTime = D + "天前";
} else if (H > 0) {
item.diffTime = H + "小时前";
} else if (M > 0) {
item.diffTime = M + "分钟前";
} else {
item.diffTime = S + "秒前";
}
if (item.returnFeeType) {
if (item.returnFeeType === 0) {
item.servetype = `${item.returnFee || "--"}元/小时`;
} else if (item.returnFeeType === 1) {
item.servetype = `${item.returnFee || "--"}元/日`;
} else if (item.returnFeeType === 2) {
item.servetype = `${item.returnFee || "--"}元/月`;
} else if (item.returnFeeType === 3) {
item.servetype = `${item.returnFee || "--"}元/次`;
} else if (item.returnFeeType === 4) {
item.servetype = `${item.returnFee || "--"}元/件`;
} else if (item.returnFeeType === 5) {
item.servetype = `工人收入${item.returnFee || "--"}%`;
} else if (item.returnFeeType === 6) {
item.servetype = `${item.returnFee || "--"}`;
} else if (item.returnFeeType === 7) {
item.servetype = `费用待定`;
}
} else {
item.servetype = `${item.returnFee || "--"}元/小时`;
}
//地址深圳丨龙岗区丨
var districtStr = "";
if (that.isNotEmptyCheck(item.district)) {
var districtArr = item.district.split(",");
var districtArr1 = [];
districtArr.forEach((item1, index) => {
// console.log('item1',item1)
if (item1.length != 0 && index < 2) {
item1 = item1 + "丨";
districtArr1.push(item1);
}
});
if (districtArr.length < 3) {
districtStr = districtArr1[districtArr1.length - 1];
} else {
districtStr = districtArr1.join("");
}
if (item.district.indexOf("undefined") > -1) {
districtStr = "-丨";
}
}
item["district"] = districtStr;
//职位特色
item["jobRequestLabelNames"] = that.getjobRequestLabelNamesArray(item.jobRequestLabelNames);
6 months ago
// 特色标签
const jobRequestLabelNames = [];
if (that.isNotEmptyCheck(item.jobRequestLabelNames) && Array.isArray(item.jobRequestLabelNames)) {
item.jobRequestLabelNames.forEach((item, index) => {
6 months ago
if (index <= 2) {
jobRequestLabelNames.push(item);
6 months ago
} else {
return;
}
});
item.jobRequestLabelNames = jobRequestLabelNames;
6 months ago
}
// 年龄限制
if (Boolean(item.minAgeWoman) === true && Boolean(item.minAgeMan) === false) {
item.gender = "女丨";
} else if (Boolean(item.minAgeWoman) === false && Boolean(item.minAgeMan) === true) {
item.gender = "男丨";
} else {
item.gender = "男女不限丨";
}
});
} else {
jobList["workType"] = that.getWorkTypeById(jobList.workTypeMulti);
if (that.isNotEmptyCheck(jobList.distance)) {
jobList["distanceKm"] = that.getDistanceName(jobList.distance);
}
if (that.isNotEmptyCheck(jobList.jobDesp)) {
jobList["jobDesp"] = jobList["jobDesp"].replaceAll("*****", "");
}
// 性别限制
if (Boolean(jobList.minAgeWoman) === true && Boolean(jobList.minAgeMan) === false) {
jobList.genderAge = "女" + jobList.minAgeWoman + "-" + jobList.maxAgeWoman + "岁";
} else if (Boolean(jobList.minAgeWoman) === false && Boolean(jobList.minAgeMan) === true) {
jobList.genderAge = "男" + jobList.minAgeMan + "-" + jobList.maxAgeMan + "岁";
} else if ((jobList.minAgeWoman != jobList.minAgeMan) || (jobList.maxAgeWoman != jobList.maxAgeMan)) {
jobList.genderAge = "男" + jobList.minAgeMan + "-" + jobList.maxAgeMan + "岁" + " " + "女" + jobList.minAgeWoman + "-" + jobList.maxAgeWoman + "岁"
} else {
jobList.genderAge = "男女不限" + jobList.minAge + "-" + jobList.maxAge + "岁";
}
//年龄
5 months ago
var ageStr = "";
if (that.isNotEmptyCheck(jobList.minAge) && that.isNotEmptyCheck(jobList.maxAge)) {
5 months ago
ageStr = jobList.minAge + "-" + jobList.maxAge + "岁";
5 months ago
} else if (that.isNotEmptyCheck(jobList.minAge)) {
5 months ago
ageStr = jobList.minAge + "岁以上";
5 months ago
} else if (that.isNotEmptyCheck(jobList.maxAge)) {
5 months ago
ageStr = jobList.maxAge + "岁以下";
5 months ago
}
jobList["age"] = ageStr;
6 months ago
if (jobList.returnFeeType) {
if (jobList.returnFeeType === 0) {
jobList.servetype = `${jobList.returnFee || "--"}元/小时`;
} else if (jobList.returnFeeType === 1) {
jobList.servetype = `${jobList.returnFee || "--"}元/日`;
} else if (jobList.returnFeeType === 2) {
jobList.servetype = `${jobList.returnFee || "--"}元/月`;
} else if (jobList.returnFeeType === 3) {
jobList.servetype = `${jobList.returnFee || "--"}元/次`;
} else if (jobList.returnFeeType === 4) {
jobList.servetype = `${jobList.returnFee || "--"}元/件`;
} else if (jobList.returnFeeType === 5) {
jobList.servetype = `工人收入${jobList.returnFee || "--"}%`;
} else if (jobList.returnFeeType === 6) {
jobList.servetype = `${jobList.returnFee || "--"}`;
} else if (jobList.returnFeeType === 7) {
jobList.servetype = `费用待定`;
}
} else {
jobList.servetype = `${jobList.returnFee || "--"}元/小时`;
}
//地址深圳丨龙岗区丨
var districtStr = "";
if (that.isNotEmptyCheck(jobList.district) || that.isNotEmptyCheck(jobList.storeDistrict)) {
var districtArr
districtArr = that.isNotEmptyCheck(jobList.district) ? jobList.district.split(",") : jobList.storeDistrict.split(",")
// console.log(districtArr);
var districtArr1 = [];
// console.log(districtArr);
districtArr.forEach((item1, index) => {
if (item1.length != 0 && index < 2) {
item1 = item1 + "丨";
districtArr1.push(item1);
}
});
// console.log(districtArr1);
if (districtArr.length > 3) {
districtStr = districtArr1[districtArr1.length - 1];
} else {
districtStr = districtArr1.join("");
}
// console.log(districtStr);
// console.log(jobList.district);
if (jobList.district == undefined && jobList.storeDistrict == undefined) {
districtStr = "-丨";
}
}
// console.log(districtStr);
jobList["district"] = districtStr;
//职位特色
jobList["jobRequestLabelNames"] = that.getjobRequestLabelNamesArray(jobList.jobRequestLabelNames);
const jobRequestLabelNames1 = [];
6 months ago
if (that.isNotEmptyCheck(jobList.jobRequestLabelNames) && Array.isArray(jobList.jobRequestLabelNames)) {
jobList.jobRequestLabelNames.forEach((item, index) => {
// if (index <= 4) {
jobRequestLabelNames1.push(item);
6 months ago
// } else {
// return;
// }
});
jobList.jobRequestLabelNames = jobRequestLabelNames1;
6 months ago
}
}
}
return jobList;
},
/**
* 根据工种类型ID获取名称
*/
getWorkTypeById (id) {
let str = "";
let array = this.workTypeArray();
array.forEach((item) => {
if (item.id == id) {
str = item.name;
}
});
return str;
},
/**
* 工种类型
*/
workTypeArray () {
let workTypeArray = [{
id: 0,
name: "全职",
value: "0",
text: "全职",
checked: false,
},
{
id: 1,
name: "兼职",
value: "1",
text: "兼职",
checked: false,
},
{
id: 2,
name: "寒暑假工",
value: "2",
text: "寒暑假工",
checked: false,
},
{
id: 3,
name: "实习生",
value: "3",
text: "实习生",
checked: false,
},
{
id: 4,
name: "零工",
value: "4",
text: "零工",
checked: false,
},
];
return workTypeArray;
},
/**
* 如果不是是null '' 'null' 'undefined'
* @param item
* @returns
*/
isNotEmptyCheck (value) {
return !this.isEmptyCheck(value);
},
/**
* 如果是null '' 'null' 'undefined'
* @param item
* @returns
*/
isEmptyCheck (value) {
if (value == null || value === "" || value == "null" || typeof value == "undefined") {
return true;
}
return false;
},
/**
* 根据状态工单类型ID获取名称
*/
getDistanceName (distance) {
let str = "";
if (this.isNotEmptyCheck(distance)) {
if (distance > 1000) {
var dis = distance / 1000;
dis = dis.toFixed(1);
str = dis + "km";
} else {
str = distance + "m";
}
}
return str;
},
/*
* 价格中间的特殊字符
*/
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;
},
getjobRequestLabelNamesArray (jobRequestLabelNames) {
if (this.isNotEmptyCheck(jobRequestLabelNames)) {
return jobRequestLabelNames.split(", ");
6 months ago
}
return [];
},
/* 对象重组成字符串 */
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;
},
getUUID () {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
return (c === 'x' ? (Math.random() * 16) | 0 : 'r&0x3' | '0x8').toString(16)
})
},
getOrderStatus () {
return [{
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
},
]
},
/*
*/
viewBigImage ($url = "") {
uni.previewImage({
urls: [$url],
longPressActions: {
itemList: ['保存图片'],
success: function (data) { },
fail: function (err) { }
}
});
},
/*
*/
setReg ($str, $type = 'default') {
if ($type == 'tel') {
return /^[1][3,4,5,7,8,9][0-9]{9}$/.test($str);
}
if ($type == 'idcard') {
return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test($str);
}
},
5 months ago
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();
},
6 months ago
/* ///
*/
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;
},
/**
* app端 获取手机自定义导航高度
*/
getMobileInfo () {
let info = {
top: uni.getSystemInfoSync().statusBarHeight,
height: 32,
};
return info;
},
/**
* 获取头部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
// #ifdef MP-WEIXIN
if (uni.getMenuButtonBoundingClientRect()) {
var { top, height } = uni.getMenuButtonBoundingClientRect();
}
// #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
},
// 身份证号获取年龄等信息
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
},
/**
* 根据传递的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();
}
}
});
},
/**
* canvas绘图 start
*/
/**
* 文字绘制
*/
4 months ago
fillTextLineBreak (ctx, text, x, y, lw, lh, color = "#333", font = "32", weight = "500", align = "left") {
6 months ago
var i = 0;
var n = 0;
var r = -1;
// var initHeight = 0;
ctx.font = weight + " " + font + "px Arial"; //字体大小
ctx.fillStyle = color; //字体颜色
5 months ago
// ctx.textBaseline = align;
// ctx.textAlign = align;
6 months ago
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;
}
},
4 months ago
// 计算总体宽度
calculateTotalWidth (ctx, segments) {
let totalWidth = 0;
segments.forEach((segment) => {
ctx.font = `${segment.fontWeight} ${segment.fontSize}px Arial`;
4 months ago
totalWidth += ((ctx.measureText(segment.content).width) + (segment.space || 0));
4 months ago
});
return totalWidth;
},
// 绘制单行居中的拼接文本
drawCenteredText (ctx, x, y, textSegments) {
// 计算总宽度
const totalWidth = this.calculateTotalWidth(ctx, textSegments);
4 months ago
console.log('totalWidth', totalWidth, textSegments);
4 months ago
// 计算起始X坐标居中位置
const centerX = x;
const startX = (centerX - totalWidth) / 2;
const centerY = y;
// 绘制拼接文本
let currentX = startX;
textSegments.forEach((segment) => {
ctx.font = `${segment.fontWeight} ${segment.fontSize}px Arial`;
ctx.fillStyle = segment.color;
// 文本基线设为中间,使垂直方向也居中
// ctx.textBaseline = "middle";
// 绘制当前文本片段
ctx.fillText(segment.content, currentX, centerY);
// 更新X坐标为下一段文本做准备, 文本长度为1的时候使用字体大小
4 months ago
currentX += ((ctx.measureText(segment.content).width) + (segment.space || 0));
4 months ago
});
},
6 months ago
/**
* 背景图绘制
*/
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();
},
5 months ago
roundRect_yuan (ctx, x, y, size, color) {
6 months ago
// 开始绘制
ctx.save(); // 保存
5 months ago
6 months ago
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);
5 months ago
ctx.fillStyle = color;
ctx.strokeStyle = color;
ctx.fill();
6 months ago
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();
},
4 months ago
// 绘制折线
setZigzag (ctx) {
// 定义折线的点坐标 (形成90度角)
const points = [
{ x: 100, y: 100 }, // 起点
{ x: 200, y: 100 }, // 转折点
{ x: 200, y: 200 } // 终点
];
let cornerRadius = -10
// 设置线条样式
ctx.lineWidth = lineWidth;
ctx.strokeStyle = strokeColor;
ctx.lineCap = 'round';
// 开始绘制路径
ctx.beginPath();
// 从第一个点开始
ctx.moveTo(points[0].x, points[0].y);
// 遍历所有点,处理转折点
for (let i = 1; i < points.length - 1; i++) {
const prev = points[i - 1];
const curr = points[i];
const next = points[i + 1];
// 计算进入和离开转折点的方向向量
const inVector = { x: curr.x - prev.x, y: curr.y - prev.y };
const outVector = { x: next.x - curr.x, y: next.y - curr.y };
// 归一化向量
const inLength = Math.sqrt(inVector.x ** 2 + inVector.y ** 2);
const outLength = Math.sqrt(outVector.x ** 2 + outVector.y ** 2);
const normalizedIn = {
x: inVector.x / inLength,
y: inVector.y / inLength,
};
const normalizedOut = {
x: outVector.x / outLength,
y: outVector.y / outLength,
};
// 计算拐角的起点和终点距离转折点cornerRadius的位置
const start = {
x: curr.x - normalizedIn.x * cornerRadius,
y: curr.y - normalizedIn.y * cornerRadius,
};
const end = {
x: curr.x + normalizedOut.x * cornerRadius,
y: curr.y + normalizedOut.y * cornerRadius,
};
// 绘制到拐角起点
ctx.lineTo(start.x, start.y);
// 计算切线方向,绘制贝塞尔曲线作为圆角
const control1 = {
x: start.x + normalizedOut.x * cornerRadius,
y: start.y + normalizedOut.y * cornerRadius,
};
const control2 = {
x: end.x - normalizedIn.x * cornerRadius,
y: end.y - normalizedIn.y * cornerRadius,
};
ctx.bezierCurveTo(control1.x, control1.y, control2.x, control2.y, end.x, end.y);
}
// 绘制到最后一个点
ctx.lineTo(points[points.length - 1].x, points[points.length - 1].y);
// 描边路径
ctx.stroke();
},
6 months ago
/**
* canvas绘图 end
*/
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
},
/**
* 获取服务费类型
* @params returnFeeType 类型
* @params $type 1共享 0 普通
*/
setReturnFee (returnFee, returnFeeType, $type) {
// console.log('here');
let servetype = '-', $num = 1;
if ($type == 1) {
$num = 1;
} else {
$num = 100;
}
if (returnFeeType === 0) {
servetype = `${returnFee / $num || "--"}元/小时`;
} else if (returnFeeType === 1) {
servetype = `${returnFee / $num || "--"}元/日`;
} else if (returnFeeType === 2) {
servetype = `${returnFee / $num || "--"}元/月`;
} else if (returnFeeType === 3) {
servetype = `${returnFee / $num || "--"}元/次`;
} else if (returnFeeType === 4) {
servetype = `${returnFee / $num || "--"}元/件`;
} else if (returnFeeType === 5) {
servetype = `工人收入${returnFee / $num || "--"}%`;
} else if (returnFeeType === 6) {
servetype = `${returnFee / $num || "--"}`;
} else if (returnFeeType === 7) {
servetype = `费用待定`;
}
return servetype
},
yijobCopy (recordList) {
var that = this;
console.log(recordList);
if (recordList && recordList.length > 0) {
recordList.forEach((item, index) => {
//月薪
var monthlyPayStr = "";
if (that.isNotEmptyCheck(item.minMonthlyPay) && that.isNotEmptyCheck(item.maxMonthlyPay)) {
if (item.minMonthlyPay == item.maxMonthlyPay) {
monthlyPayStr = item.minMonthlyPay / 100;
} else {
monthlyPayStr = item.minMonthlyPay / 100 + "-" + item.maxMonthlyPay / 100;
}
} else if (that.isNotEmptyCheck(item.minMonthlyPay)) {
monthlyPayStr = item.minMonthlyPay / 100;
} else if (that.isNotEmptyCheck(item.maxMonthlyPay)) {
monthlyPayStr = item.maxMonthlyPay / 100;
}
item["monthlyPay"] = monthlyPayStr;
//职位特色
item.jobSpecialLabelNameArray = [];
that.getjobRequestLabelNamesArray(item.jobRequestLabelNames).forEach((i, index) => {
6 months ago
// if (index <= 3) {
item["jobSpecialLabelNameArray"].push(i);
// }
});
if (item.distance) {
if (item.distance < 1000) {
item.distance = item.distance
} else if (item.distance >= 1000 && item.distance <= 100000) {
item.distance = (item.distance / 1000).toFixed(1) + "km"
} else {
item.distance = (item.distance / 1000).toFixed() + 'km'
}
}
item.cus_price = item.salaryClassify != 7 ? that.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪"
});
}
return recordList;
},
/**
* 根据薪资类型和薪资值获取薪资展示
*/
getSalaryClassifyValueHtml (salaryClassify, salaryClassifyValue, salaryClassifyValue1) {
var salary = this.moneyToFixed(salaryClassifyValue);
var salary1 = this.moneyToFixed(salaryClassifyValue1);
if (salaryClassify == 0) {
return `<span style='font-size:18px'>${salary}<span style='font-size:14px'>元/小时</span></span>`;
} else if (salaryClassify == 1) {
return `<span style='font-size:18px'>${salary}<span style='font-size:14px'>元/天</span></span>`;
} else if (salaryClassify == 2) {
return `<span style='font-size:18px'><span style='font-size:14px'>补</span>${salary}<span style='font-size:14px'>元</span></span>`;
} else if (salaryClassify == 3) {
return `<span style='font-size:18px'><span style='font-size:14px'>返</span>${salary}<span style='font-size:14px'>元</span></span>`;
} else if (salaryClassify == 4) {
return `<span style='font-size:18px'>计件</span>`;
} else if (salaryClassify == 5) {
return `<span style='font-size:14px'>保底</span>${salary}<span style='font-size:14px'>元</span>`;
} else if (salaryClassify == 6) {
return `<span style='font-size:18px'>面议</span>`;
} else if (salaryClassify == 7) {
// return salary + '-' + salary1 + `<span style='font-size:14px'>元/月</span>`;
return `<span style='font-size:18px'>月薪</span>`;
} else {
return "-";
}
},
/**
* 最大最小年龄获取性别限制
*/
getGenderByMinAge (res) {
// console.log("==================", res);
let str = "";
if (res.minAgeMan && res.minAgeWoman) {
str = "男女不限";
} else if (res.minAgeMan && !res.minAgeWoman) {
str = "仅限男性";
} else if (!res.minAgeMan && res.minAgeWoman) {
str = "仅限女性";
}
return str;
},
}
export default data;