lanan-repair-app/utils/utils.js
2024-10-21 18:11:30 +08:00

234 lines
5.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import request from '@/utils/request';
import {
setStorageWithExpiry,
getStorageWithExpiry
} from '@/utils/auth'
export function getWXStatusHeight() {
// #ifdef MP-WEIXIN
// 获取距上
const barTop = wx.getSystemInfoSync().statusBarHeight
// 获取胶囊按钮位置信息
const menuButtonInfo = wx.getMenuButtonBoundingClientRect()
// 获取导航栏高度
const barHeight = menuButtonInfo.height + (menuButtonInfo.top - barTop) * 2
let barWidth = menuButtonInfo.width
console.log('menuButtonInfo', menuButtonInfo)
let barLeftPosition = 375 - menuButtonInfo.right + menuButtonInfo.width
let menuButtonLeft = menuButtonInfo.left
let menuButtonRight = menuButtonInfo.right
return {
barHeight,
barTop,
barWidth,
barLeftPosition,
menuButtonLeft,
menuButtonRight
}
// #endif
}
/**
* 根据订单的状态获取订单的文字展示状态
* @param ticketsStatus 订单状态
* @param workStatus 维修工作状态
*/
export function getOrderStatusText(ticketsStatus,workStatus){
let str = "";
if("04"==ticketsStatus){
//待派工
str = "待派工"
}else if("05"==ticketsStatus){
//维修中
str = "维修中"
}else if("01"==ticketsStatus){
//待结算
str = "待结算"
}else if("06"==ticketsStatus){
//挂单/记账
str = "挂单/记账"
}else if("02"==ticketsStatus){
//已结账
str = "已结账"
}else if("03"==ticketsStatus){
//已作废
str = "已作废"
}
return str;
}
/**
* 查询字典可选值
* @param dictCode
*/
export function getDictByCode(dictCode){
let dictArray = getStorageWithExpiry(dictCode);
if(null==dictArray || undefined==dictArray){
request({
url: '/admin-api/system/dict-data/type',
method: 'get',
params:{type:dictCode}
}).then((res) => {
console.log(res)
if (res.code == 200) {
setStorageWithExpiry(dictCode,res.data,3600)
return res.data
}
})
}else{
return dictArray
}
}
/**
* 工单记录操作日志
* @param id 工单主表id
* @param ticketsWorkStatus 工单主表状态
* @param itemId 工单子表id
* @param itemStatus 工单子表状态
* @param recordType 操作类型 对应后端枚举RecordTypeEnum
* @param remark 备注
* @param image 图片相对路径,多个英文逗号隔开
*/
export function saveTicketsRecords(id,ticketsWorkStatus,itemId,itemStatus,recordType,remark,image){
return new Promise((resolve, reject) => {
let dataObj = {
id: id,
ticketsWorkStatus:ticketsWorkStatus,
item: {id: itemId, itemStatus: itemStatus},
recordType: recordType,
remark: remark,
image: image
}
request({
url: '/admin-api/repair/tickets/updateStatus',
method: 'POST',
data:dataObj
}).then((res) => {
console.log(res)
if (res.code == 200) {
uni.showToast({
title: '操作成功',
icon: 'none'
})
resolve(1);
}else{
uni.showToast({
title: '操作失败,请联系管理员',
icon: 'none'
})
reject(0);
}
})
});
}
/**
* 翻译字典
* @param dictCode
*/
export function getDictTextByCodeAndValue(dictCode,value){
let dictArray = getStorageWithExpiry(dictCode);
if(null==dictArray || undefined==dictArray){
request({
url: '/admin-api/system/dict-data/type',
method: 'get',
params:{type:dictCode}
}).then((res) => {
console.log(res)
if (res.code == 200) {
setStorageWithExpiry(dictCode,res.data,3600)
dictArray = res.data
let dictObj = dictArray.find(item=>item.value==value)
if(dictObj){
return dictObj.label
}else{
return "未知数据"
}
}
})
}else{
let dictObj = dictArray.find(item=>item.value==value)
if(dictObj){
return dictObj.label
}else{
return "未知数据"
}
}
}
export function formatTimestamp(timestamp) {
// 将时间戳转换为Date对象
const date = new Date(timestamp);
// 获取年月日时分秒
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
const hours = date.getHours().toString().padStart(2, '0');
const minutes = date.getMinutes().toString().padStart(2, '0');
const seconds = date.getSeconds().toString().padStart(2, '0');
// 组合成日期时间字符串
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
/**
* 将时间戳转换为指定格式的日期字符串
* @param {number} timestamp - 时间戳(毫秒)
* @param {string} [format='YYYY-MM-DD'] - 日期格式,默认为 'YYYY-MM-DD'
* @returns {string} - 格式化的日期字符串
*/
export function formatTimestampCustom(timestamp, format = 'YYYY-MM-DD') {
const date = new Date(timestamp);
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
const hour = date.getHours().toString().padStart(2, '0');
const minute = date.getMinutes().toString().padStart(2, '0');
const second = date.getSeconds().toString().padStart(2, '0');
const replaceMap = {
'YYYY': year,
'MM': month,
'DD': day,
'HH': hour,
'mm': minute,
'ss': second
};
return format.replace(/YYYY|MM|DD|HH|mm|ss/g, match => replaceMap[match]);
}
/**
* 组装订单对象
* @param order
*/
export function builderOrder(order) {
return {
id: order.id,
orderNo: order.ticketNo,
flag: 1,
ticketsStatus: order.ticketsStatus,
ticketsWorkStatus: order.ticketsWorkStatus,
flagStr: getOrderStatusText(order.ticketsStatus, order.ticketsWorkStatus),
carNum: order.carNo,
nowRepairId: order.nowRepairId,
carModel: order.carBrandName,
userName: order.userName,
userPhone: order.userMobile,
counselorName: order.adviserName,
}
}
export function formatDate(timestamp) {
// 将时间戳转换为Date对象
const date = new Date(timestamp);
// 获取年月日时分秒
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
// 组合成日期时间字符串
return `${year}-${month}-${day}`;
}