This commit is contained in:
shuhongfan
2023-09-04 16:40:17 +08:00
commit cf5ac25c14
8267 changed files with 1305066 additions and 0 deletions

View File

@@ -0,0 +1,129 @@
// 取消原因数据
export const cancelData= [
{
value: 1,
label: '用户恶意下单'
},
{
value: 2,
label: '用户取消投递'
},
{
value: 3,
label: '违禁品'
},
{
value: 4,
label: '重复下单'
},
{
value: 5,
label: '无法联系上客户(空号、停机等)'
},
{
value: 6,
label: '虚假地址'
},
{
value: 7,
label: '实际发货地址与下单地址不符'
},
{
value: 8,
label: '因个人无法取件,退回到网点'
}
]
// 付款方式数据
export const SignData= [
{
value: 1,
label: '本人'
},
{
value: 2,
label: '代收'
}
]
// 签收人数据
export const PayMethodData= [
{
value: 1,
label: '寄付'
},
{
value: 2,
label: '到付'
}
]
// 物品名称数据
export const GoodsData= [
{
value: 1,
label: '生活用品'
},
{
value: 2,
label: '文件'
},
{
value: 3,
label: '数码产品'
},
{
value: 4,
label: '食品'
},
{
value: 5,
label: '服饰'
},
{
value: 6,
label: '其他'
}
]
// 支付方式
export const PayWayData= [
{
value: 1,
label: '微信支付'
},
{
value: 2,
label: '支付宝支付'
}
]
// 取件tab数据
export const DeliveryData= [
{
value: 1,
label: '寄件'
},
{
value: 2,
label: '收件'
}
]
// 派件tab数据
export const PickUpData= [
{
value: 1,
label: '待派件'
},
{
value: 2,
label: '已签收'
}
]
// 历史去拍tab数据
export const HistoryTabData= [
{
value: 1,
label: '取件'
},
{
value: 2,
label: '派件'
}
]

View File

@@ -0,0 +1,13 @@
// 线上环境
// export const baseUrl = 'http://slwl-geteway.itheima.net/customer'
// 本地和测试环境
export const baseUrl = 'http://god-express-gateway-t.itheima.net/customer'
//不需要跳转到登录页面的接口
export const notToLoginApiUrl = [
'/order-manager/order/page',
'/user/profile',
'/order-manager/order/count'
]

View File

@@ -0,0 +1,150 @@
// 获取年月时、分
export const taskTimeFormat = (val) => {
const times = getTimeDate(val)
return times.date
}
// 获取时、分
export const overTimeFormat = (val) => {
const times = getTimeDate(val)
return times.times
}
// 时间格式化
export const getTimeDate = (val) => {
const date = new Date(val);
date.setTime(date.getTime() + 3600000)
//年 getFullYear():四位数字返回年份
const year = date.getFullYear(); //getFullYear()代替getYear()
//月 getMonth()0 ~ 11
const month = date.getMonth() + 1;
//日 getDate()(1 ~ 31)
const day = date.getDate();
//时 getHours()(0 ~ 23)
const hour = date.getHours();
//分 getMinutes() (0 ~ 59)
const minute = date.getMinutes();
//秒 getSeconds()(0 ~ 59)
const second = date.getSeconds()
const time = {
date: addZero(month) + '-' + addZero(day) + ' ' + addZero(hour) + ':' + addZero(minute),
times: addZero(hour) + ':' + addZero(minute),
veryDayDate: addZero(year) + '-' + addZero(month) + '-' + addZero(day) + ' ' + '00' + ':' + '00' + ':' +
'00',
}
return time
}
function addZero(s) {
return s < 10 ? ('0' + s) : s;
}
// 获取处理当前日期时分秒以00:00:00显示
export const getTate = (val) => {
let date = new Date(val);
const year = date.getFullYear(); //getFullYear()代替getYear()
//月 getMonth()0 ~ 11
const month = date.getMonth() + 1;
//日 getDate()(1 ~ 31)
const day = date.getDate();
const m = addZero(year) + '-' + addZero(month) + '-' + addZero(day) + ' ' + '00' + ':' + '00' + ':' +
'00';
return m
}
// 格式化触发的当前时间
export const getNow = (val) => {
let date = new Date(val);
let y = date.getFullYear();
let m = date.getMonth() + 1;
let d = date.getDate();
return m + "月" + d + '日';
}
// 前一天
export const preDay = (date) => {
let odata = new Date(new Date(date).getTime() - 24 * 60 * 60 * 1000); //计算当前日期 -1
return getTate(odata)
}
// 后一天
export const nextDay = (date) => {
let odata = new Date(new Date(date).getTime() + 24 * 60 * 60 * 1000); //计算当前日期 +1
return getTate(odata)
}
// 获取近30天数据
export const getDay = () => {
const times = timeList()
let arr = []
times.forEach((val) => {
const obj = getTate(val)
arr.push(obj)
})
return arr
}
// 获取当前日期、当月第一天当月最后一天的时间戳用来判断当前触发的时间是不是30天以内的时间
export const getMonthDay = (val) => {
const now = timeList()
// // 当天的时间戳
const timeNow = Date.parse(val);
// // 当月第一天时间戳
const timeStar = Date.parse(now[0]);
// // 当月最后一天时间戳
const timeEnd = Date.parse(now[now.length - 1]);
const times = {
timeNow: timeNow,
timeStar: timeStar,
timeEnd: timeEnd
}
return times
}
// 文字字节数限制
export const validateTextLength = (value) => {
// 中文、中文标点、全角字符按1长度英文、英文符号、数字按0.5长度计算
if (value != undefined) {
let cnReg = /([\u4e00-\u9fa5]|[\u3000-\u303F]|[\uFF00-\uFF60])/g
let mat = value.match(cnReg)
let length
if (mat) {
length = (mat.length + (value.length - mat.length) * 0.5)
return length
} else {
return value.length * 0.5
}
}
}
// 选择近30天时间
export const timeList = () => {
var thrityMonth = [];
for (var i = 0; i < 30; i++) {
thrityMonth.unshift(new Date(new Date().setDate(new Date().getDate() - i)).toLocaleDateString())
}
return thrityMonth
}
// 拨打电话
export const call = (val) => {
uni.makePhoneCall({
phoneNumber: val,
success(e) {
// console(e)
},
fail(e) {
// console(e)
}
})
}
//功能只展示不实现的提示
export const handleSecondQi = ()=>{
uni.showToast({
title: "程序员哥哥正在实现中",
icon: "none",
duration: 1000,
});
}
export const handleTimeToStrTime = (time)=>{
const newTime = time.replace(/-/g, '/')
return (new Date(newTime).getMonth() + 1 + '月') +
(new Date(newTime).getDate() + '日') + ' ' +
String(Number(new Date(newTime).getHours())<10?'0'+Number(new Date(newTime).getHours()) :Number(new Date(newTime).getHours())) + ':'+
String(Number(new Date(newTime).getMinutes())<10?'0'+Number(new Date(newTime).getMinutes()) :Number(new Date(newTime).getMinutes()))
}

View File

@@ -0,0 +1,158 @@
import {
baseUrl,
notToLoginApiUrl
} from './env'
import {
resetToken
} from '@/pages/api/login.js'
// 参数: url:请求地址 param请求参数 method请求方式 callBack回调函数
export function request({
url = '',
params = {},
method = 'GET'
}) {
// 获取token短令牌
const token = uni.getStorageSync('token')
//获取长令牌
const refreshToken = uni.getStorageSync('refreshToken')
const header = {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json;charset=UTF-8',
'access_token': token
}
let refreshHeader = {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json;charset=UTF-8',
'refresh_token': refreshToken
}
console.log(url, 'url')
const requestRes = new Promise((resolve, reject) => {
let requestFunc = ''
uni.request({
timeout:20000,
url: baseUrl + url,
data: params,
header: url === '/user/refresh' ? refreshHeader : header,
method: method,
success: (res) => {
const {
data
} = res
if (data.code == 0 || data.code == 200) {
resolve(res.data)
} else {
console.log(res, '112233')
// resolve(res.data)
handleError(res, resolve, url, params, method)
}
},
fail: (err) => {
const error = {
data: {
msg: err.data
}
}
reject(error)
}
})
})
const handleError = (error, resolve, url, params, method) => {
var errorCode = error.statusCode;
if (errorCode == 401) {
if (token && refreshToken) {
//刷新token
resetToken().then((res) => {
console.log(res, 'resetToken')
if (res.code === 200) {
uni.setStorageSync('token', res.data.accessToken);
uni.setStorageSync('refreshToken', res.data.refreshToken);
//当重新刷新短token的时候重新执行上一个401的接口保证页面的无感正常交互
let newHeader = {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json;charset=UTF-8',
'access_token': uni.getStorageSync('token')
}
uni.request({
url: baseUrl + url,
data: params,
header: newHeader,
method: method,
success: (res) => {
const {
data
} = res
if (data.code == 0 || data.code == 200) {
resolve(res.data)
} else {
resolve()
uni.showToast({
title: res.msg || '网络异常',
duration: 2000,
icon: 'none',
});
}
},
fail: (err) => {
const error = {
data: {
msg: err.data
}
}
reject(error)
}
})
} else if (res.data.code === 1) {
console.log(1, res)
uni.removeStorageSync('token')
uni.removeStorageSync('refreshToken')
uni.showToast({
title: res.data.msg || '刷新token失败请重新登录.',
icon: "none",
duration: 1000,
success: () => {
setTimeout(() => {
uni.navigateTo({
url: '/pages/login/index'
});
}, 2000)
},
fail: () => {}
});
}
}).catch((err) => {
uni.showToast({
title: '网络异常',
duration: 2000,
icon: 'none'
});
})
}
} else if (errorCode == 500) {
if (uni.getStorageSync("token") == "") {
uni.showToast({
title: "请先登录",
icon: "none",
duration: 2000,
success: () => {
},
fail: () => {
}
});
} else {
uni.showToast({
title: error.data.error.message + "",
icon: "none",
duration: 3000
});
}
} else {
resolve(error)
}
}
return requestRes
}

View File

@@ -0,0 +1,15 @@
let storage = {
set(key, value) {
return localStorage.setItem(key, value);
},
get(key) {
return localStorage.getItem(key);
},
remove(key) {
localStorage.removeItem(key);
}
}
export default storage;

View File

@@ -0,0 +1,66 @@
// 手机校验
export function validatePhone(rule, value, data, callback) {
const reg = /^[1][3-9][0-9]{9}$/
if (value === '' || value === undefined || value === null) {
if (rule.required) {
callback('请输入电话号码')
} else {
callback()
}
} else if (!Number.isInteger(value)) {
callback('电话号码必须全为数字')
} else if (value.trim().length < 11) {
callback('电话号码长度必须是11位')
} else {
if (!reg.test(value) && value !== '') {
callback('请输入正确的电话号码')
} else {
callback()
}
}
}
// 手机验证
export const isPhone = (value) => {
const reg = /^[1][3-9][0-9]{9}$/
if (!reg.test(value) || value === '') {
return false
} else {
return true
}
}
// 倒计时
export const timeCountdown = (obj) => {
// obj包括timer、times show
const TIME_COUNT = 60; // 默认倒计时秒数
if (!obj.timer) {
obj.times = TIME_COUNT;
obj.show = false;
obj.timer = setInterval(() => {
if (obj.times > 0 && obj.times <= TIME_COUNT) {
obj.times--;
} else {
obj.show = true;
clearInterval(obj.timer); // 清空定时器
obj.timer = null;
}
}, 1000);
}
return {
timer: obj.timer,
show: obj.show,
times: obj.times,
};
};
// 身份证校验
export const validateIdentityCard = (value) => {
const accountreg = /(^\d{15}$)|(^\d{17}(\d|X|x)$)/g
let tipVal = ''
if (value === undefined || value === '') {
return false
} else if (!accountreg.test(value)) {
return false
}else{
return true
}
}