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.

1653 lines
50 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import request from './ajax.js';
let data = {
/* 固定数据
*/
store () {
return {
appid: 'wxa7b4864efbcff191', //
localBaseImg: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/pugongying/", // 图片前缀
cdnBaseImg: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/dailibaoming/", // 图片公共前缀路径
svgBaseImg: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/",// svg
fadanBaseImg: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/dailibaoming/",
loginText: '请登录',
// #ifdef MP-WEIXIN
version: uni.getAccountInfoSync().miniProgram.version || "1.0.16",
mapKey: 'LHQBZ-MLTEG-BO4QK-QJ2TH-NLGZJ-7GFAS',
// #endif
// #ifdef H5 || APP-PLUS || MP-TOUTIAO || MP-KUAISHOU
version: "1.0.16"
// #endif
}
},
/* 清除登录信息存储
*/
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");
},
/* 分享给好友
*/
shareFun (
path = "/pages/home/index",
image = "",
title = getApp().globalData.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: this.store().localBaseImg + 'share.png', // image ? image :
imageUrl: appInfo.sharePoster || "https://matripe-cms.oss-cn-beijing.aliyuncs.com/pugongying/share.jpeg", // image ? image :
title: appInfo.slogan || ' '
};
console.log('分享数据:', params)
return params;
},
/* 交互反馈:取消确认弹窗
*/
handleConfirm (
$content = "",
callback = () => { },
failback = () => { },
$title = "",
$showCancel = true,
$confirmText = "确定",
$confirmColor = "#576b95",
) {
uni.showModal({
title: $title,
content: $content,
showCancel: $showCancel,
confirmText: $confirmText,
confirmColor: $confirmColor,
success: function (res) {
if (res.confirm) {
callback();
} else if (res.cancel) {
failback();
}
}
});
},
/* 判断是否登录,未登录,强制跳转至登录页
*/
isLogin () {
let that = this;
if (!uni.getStorageSync("apply-token")) {
uni.reLaunch({
url: '/pages/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: ''
};
}
},
/* 一键复制文案
*/
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({
// backgroundColor: "#3578f6",
// 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 returnFeeType 类型
// * @params $type 1共享 0 普通
// */
// setReturnFee (returnFee, returnFeeType, $type) {
// console.log('here1');
// let servetype = '-', $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
// },
/* 省市区格式转化
* 转化前:河南省郑州市
* 转化后:河南省 | 郑州市 |
* @params $list 数组
*/
toGetAddress ($list) {
if ($list && $list.length > 0) {
$list.forEach(item => {
var districtStr = "";
let storeDistrict = item.storeAddr || item.storeDistrict;
if (storeDistrict) {
var districtArr = storeDistrict.split(",");
var districtArr1 = [];
districtArr.forEach((item1, index) => {
if (item1.length != 0) {
item1 = item1 + "丨";
if (index < 2) {
districtArr1.push(item1);
}
}
});
districtStr = districtArr1.join("");
if (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 = '';
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:
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]}`;
}
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 `月薪`;
} else {
return "-";
}
},
/**
* 根据薪资类型和薪资值获取薪资展示
*/
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 "-";
}
},
/* 同步 */
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["jobSpecialLabelNames"] = that.getJobSpecialLabelNamesArray(item.jobSpecialLabelNames);
// 特色标签
const jobSpecialLabelNames = [];
if (that.isNotEmptyCheck(item.jobSpecialLabelNames) && Array.isArray(item.jobSpecialLabelNames)) {
item.jobSpecialLabelNames.forEach((item, index) => {
if (index <= 2) {
jobSpecialLabelNames.push(item);
} else {
return;
}
});
item.jobSpecialLabelNames = jobSpecialLabelNames;
}
// 年龄限制
// item.gender = that.getGenderByMinAge(item)
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 + "岁";
}
//年龄
var ageStr = "";
if (that.isNotEmptyCheck(jobList.minAge) && that.isNotEmptyCheck(jobList.maxAge)) {
ageStr = jobList.minAge + "-" + jobList.maxAge + "岁";
} else if (that.isNotEmptyCheck(jobList.minAge)) {
ageStr = jobList.minAge + "岁以上";
} else if (that.isNotEmptyCheck(jobList.maxAge)) {
ageStr = jobList.maxAge + "岁以下";
}
jobList["age"] = ageStr;
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 = "";
var shortDistrictStr = ""; // 详情中的省市较短的地址
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 = [];
var shortDistrictArr = [];
// console.log(districtArr);
districtArr.forEach((item1, index) => {
if (item1.length != 0 && index <= 2) {
districtArr1.push(item1 + "丨");
}
if (item1.length != 0 && index < 2) {
shortDistrictArr.push(item1 + "丨");
}
});
// console.log(districtArr1);
if (districtArr.length > 3) {
districtStr = districtArr1[districtArr1.length - 1];
} else {
districtStr = districtArr1.join("");
shortDistrictStr = shortDistrictArr.join("");
}
// console.log(districtStr);
// console.log(jobList.district);
if (jobList.district == undefined && jobList.storeDistrict == undefined) {
districtStr = "-丨";
}
}
// console.log(districtStr);
jobList["district"] = districtStr;
jobList["shortDistrict"] = shortDistrictStr;
//职位特色
jobList["jobSpecialLabelNames"] = that.getJobSpecialLabelNamesArray(jobList.jobSpecialLabelNames);
jobList["jobRequestLabelNames"] = that.getJobSpecialLabelNamesArray(jobList.jobRequestLabelNames);
console.log('jobList', JSON.parse(JSON.stringify(jobList)));
// 特色标签
const jobSpecialLabelNames = [];
if (that.isNotEmptyCheck(jobList.jobSpecialLabelNames) && Array.isArray(jobList.jobSpecialLabelNames)) {
jobList.jobSpecialLabelNames.forEach((item, index) => {
// if (index <= 4) {
jobSpecialLabelNames.push(item);
// } else {
// return;
// }
});
jobList.jobSpecialLabelNames = jobSpecialLabelNames;
}
const jobSpecialLabelNames1 = [];
if (that.isNotEmptyCheck(jobList.jobRequestLabelNames) && Array.isArray(jobList.jobRequestLabelNames)) {
jobList.jobRequestLabelNames.forEach((item, index) => {
// if (index <= 4) {
jobSpecialLabelNames1.push(item);
// } else {
// return;
// }
});
jobList.jobRequestLabelNames = jobSpecialLabelNames1;
}
console.log('jobList11', JSON.parse(JSON.stringify(jobList)));
console.log('jobList1111', Array.isArray(jobList.jobRequestLabelNames));
}
}
return jobList;
},
yijobCopy (recordList) {
var that = this;
console.log(recordList);
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.getJobSpecialLabelNamesArray(item.jobSpecialLabelNames).forEach((i, index) => {
// if (index <= 3) {
item["jobSpecialLabelNameArray"].push(i);
// }
});
});
recordList = that.setMark(recordList)
return recordList;
},
/**
* 根据工种类型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;
},
getJobSpecialLabelNamesArray (jobSpecialLabelNames) {
if (this.isNotEmptyCheck(jobSpecialLabelNames)) {
return jobSpecialLabelNames.split(", ");
}
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)
})
},
getOrderStatusNew () {
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
}
]
},
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
},
]
},
/* 预览图
*/
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);
}
},
/* 姓名/性别/年龄/民族
*/
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();
}
}
});
},
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) {
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
},
/**
* 分割电话号
*/
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('')
},
/**
* 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
*/
/**
* 全拷贝
*/
fullCopy (data) {
return JSON.parse(JSON.stringify(data))
},
/**
* 最大最小年龄获取性别限制
*/
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;
},
//对职位标签进行排序
setMark (val) {
// 24 * 60 * 60 * 1000
let list = uni.getStorageSync('JOB_REQUIRE_LIST').data
// console.log('val', val);
val.forEach(item => {
let newList = []
if (item.jobSpecialLabelNameArray.length > 0) {
item.jobSpecialLabelNameArray.forEach((a) => {
if (list.some((b) => a == b.name)) {
newList.push(a)
} else {
newList.unshift(a)
}
})
// console.log('newList', newList);
item.jobSpecialLabelNameArray = newList
}
});
return val
}
}
export default data;