更新
This commit is contained in:
parent
d109d458d4
commit
36522646e8
@ -652,11 +652,9 @@
|
||||
})
|
||||
},
|
||||
async getgoodes() {
|
||||
if (this.carNum == '' || this.customerSource == "" || this.skuId == '' || this.leadManId ==
|
||||
undefined || this.carRegisterDate == '' || this.meetManId == undefined || this.meetManId ==
|
||||
undefined) {
|
||||
if (this.carNum == '' || this.customerSource == "" || this.skuId == '' || this.carRegisterDate == '') {
|
||||
uni.showToast({
|
||||
title: '车牌号 客户来源 商品 引车员 车辆注册日期 接车人 必填!',
|
||||
title: '车牌号 客户来源 商品 车辆注册日期 必填!',
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
|
@ -29,6 +29,17 @@
|
||||
<!-- 名称 -->
|
||||
|
||||
<view class="box-list">
|
||||
<view class="list-box">
|
||||
<view class="l-left">接车类型</view>
|
||||
<view class="l-right">
|
||||
<u-radio-group v-model="radiovalue1" iconPlacement="left" name="name" placement="row"
|
||||
@change="groupChange">
|
||||
<u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in radiolist1"
|
||||
:key="index" :label="item.name" :name="item.label">
|
||||
</u-radio>
|
||||
</u-radio-group>
|
||||
</view>
|
||||
</view>
|
||||
<view class="list-box">
|
||||
<view class="l-left">客户姓名</view>
|
||||
<view class="l-right">
|
||||
@ -86,6 +97,18 @@
|
||||
<input type="text" v-model="buyPhone" placeholder="请输入联系方式">
|
||||
</view>
|
||||
</view>
|
||||
<view class="list-box" style="display: block;">
|
||||
<view class="" style="margin-bottom: 20rpx;">备注</view>
|
||||
<view class="">
|
||||
<u--textarea v-model="content" placeholder="请输入联系方式"></u--textarea>
|
||||
</view>
|
||||
</view>
|
||||
<view class="list-box" style="display: block;">
|
||||
<view class="" style="">接车图片</view>
|
||||
|
||||
<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple
|
||||
:maxCount="10"></u-upload>
|
||||
</view>
|
||||
</view>
|
||||
<view class="dlanniu" @click="getgoodes()">
|
||||
<text>接车</text>
|
||||
@ -107,7 +130,7 @@
|
||||
<u-picker :show="showLeadMan" :columns="leadManList" :defaultIndex="defaultIndex"
|
||||
@confirm="confirmLeadMan" @cancel="cancelLeadMan" keyName="nickname"></u-picker>
|
||||
<u-picker :show="showMeetMan" :columns="meetManList" :defaultIndex="defaultIndex"
|
||||
@confirm="confirmMeetMan" @cancel="showMeetMan = false" keyName="nickname"></u-picker>
|
||||
@confirm="confirmMeetMan" @cancel="showMeetMan = false" keyName=" "></u-picker>
|
||||
<u-datetime-picker :minDate="946656000000" :maxDate="new Date().getTime()" :show="showRegisterDate"
|
||||
v-model="carRegisterDate" mode="date" @cancel="showRegisterDate = false"
|
||||
@confirm="confirmRegisterDate"></u-datetime-picker>
|
||||
@ -141,10 +164,12 @@
|
||||
fileList: [],
|
||||
title: '新增接车',
|
||||
customerSource: '',
|
||||
fileList1: [],
|
||||
buyName: '',
|
||||
nickname: '',
|
||||
buyPhone: '',
|
||||
userAddress: '',
|
||||
content: '',
|
||||
carNum: '',
|
||||
baseImageUrl: this.$baseImageUrl,
|
||||
carStatus: '',
|
||||
@ -181,6 +206,16 @@
|
||||
baseUrl: this.$baseImageUrl,
|
||||
goodsId: '',
|
||||
msg: '3',
|
||||
radiolist1: [{
|
||||
name: '接待',
|
||||
label: 1
|
||||
},
|
||||
{
|
||||
name: '上门取车',
|
||||
label: 2
|
||||
}
|
||||
],
|
||||
radiovalue1: 1,
|
||||
tapnum: 0,
|
||||
fenlist: [],
|
||||
goodstext: '',
|
||||
@ -227,6 +262,39 @@
|
||||
})
|
||||
}
|
||||
},
|
||||
async afterRead(event) {
|
||||
// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
|
||||
let lists = [].concat(event.file)
|
||||
let fileListLen = this[`fileList${event.name}`].length
|
||||
lists.map((item) => {
|
||||
this[`fileList${event.name}`].push({
|
||||
...item,
|
||||
|
||||
})
|
||||
})
|
||||
for (let i = 0; i < lists.length; i++) {
|
||||
const result = await this.uploadFilePromise(lists[i].url)
|
||||
console.log(result)
|
||||
let item = this[`fileList${event.name}`][fileListLen]
|
||||
this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
|
||||
status: 'success',
|
||||
message: '',
|
||||
url: result
|
||||
}))
|
||||
fileListLen++
|
||||
}
|
||||
},
|
||||
async uploadFilePromise(url) {
|
||||
let res = await upload({
|
||||
url: '/common/upload',
|
||||
filePath: url,
|
||||
})
|
||||
return res.data.url
|
||||
|
||||
},
|
||||
deletePic(event) {
|
||||
this[`fileList${event.name}`].splice(event.index, 1)
|
||||
},
|
||||
handleRadioChange(newValue) {
|
||||
if (newValue === '0') {
|
||||
this.recordTime = ''
|
||||
@ -244,6 +312,9 @@
|
||||
}
|
||||
return value
|
||||
},
|
||||
groupChange() {
|
||||
console.log(this.radiovalue1);
|
||||
},
|
||||
changeHandler(e) {
|
||||
const {
|
||||
columnIndex,
|
||||
@ -410,9 +481,16 @@
|
||||
})
|
||||
},
|
||||
async getgoodes() {
|
||||
if (this.carNum == '' || this.carRegisterDate == '') {
|
||||
if (this.carNum == '' || this.carRegisterDate == '' || !this.buyPhone) {
|
||||
uni.showToast({
|
||||
title: '车牌号 车辆注册日期 必填!',
|
||||
title: '车牌号 车辆注册日期 联系方式 必填!',
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.fileList1.length == 0) {
|
||||
uni.showToast({
|
||||
title: '车辆照片必须上传',
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
@ -437,6 +515,8 @@
|
||||
carRegisterDate: this.carRegisterDate,
|
||||
meetManId: this.meetManId,
|
||||
appointmentId: this.appointmentId,
|
||||
content: this.content,
|
||||
images: this.fileList1.map(item => item.url).join(',')
|
||||
}
|
||||
|
||||
let res = await request({
|
||||
@ -446,7 +526,8 @@
|
||||
})
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: "可以接车了"
|
||||
title: "接车成功",
|
||||
icon: "none"
|
||||
})
|
||||
}
|
||||
setTimeout(() => {
|
||||
|
@ -32,6 +32,7 @@
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="jg_top" style="padding: 30rpx;">{{ dateStr || '' }} {{ week || '' }} {{ time || '' }}</view>
|
||||
<view class="three_" @click="goordercount">
|
||||
<view class="three_box1">
|
||||
<view class="">当日订单</view>
|
||||
@ -49,7 +50,6 @@
|
||||
</view>
|
||||
<view class="hang_"></view>
|
||||
<view class="jg_box">
|
||||
<view class="jg_top">{{ dateStr || '' }} {{ week || '' }} {{ time || '' }}</view>
|
||||
<view class="jg_ds">
|
||||
<view class="jg_ys">
|
||||
<image src="/static/imgs/jg1.png" mode="" @click="goordermanage"></image>
|
||||
@ -134,9 +134,7 @@
|
||||
<u-tag :text="item.skuName" plain size="mini" style=" height: 44rpx; "></u-tag>
|
||||
<!-- <image src="/static/imgs/ns.png" mode=""></image>-->
|
||||
</view>
|
||||
<view style="color:#3c9cff;" @click="goAddOrder(item)" v-if="!item.orderId">
|
||||
转订单
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
|
||||
@ -165,12 +163,20 @@
|
||||
<view class="left_">客户来源</view>
|
||||
<view class="right_">自来客户</view>
|
||||
</view>
|
||||
<view class="bd">
|
||||
<view class="bd" style="font-size: 30rpx;">
|
||||
<view class="" style="color:rgb(60, 156, 255);" @click.stop="cancelAppoin(item.id)">取消预约
|
||||
</view>
|
||||
<view style="color:#3c9cff;" @click.stop="goAddOrder(item)">
|
||||
转订单
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- <view class="bd">
|
||||
<view class="" style="color:rgb(60, 156, 255);"
|
||||
@click.stop="previewImage(item.driverLicenesImg)" v-if="item.driverLicenesImg">查看行驶证
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
@ -386,6 +392,33 @@
|
||||
loop: true // 是否可循环预览
|
||||
});
|
||||
},
|
||||
cancelAppoin(id) {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '确定将此预约取消吗?',
|
||||
success: async (res) => {
|
||||
if (res.confirm) {
|
||||
try {
|
||||
request({
|
||||
url: `/appInspection/goods/delAppointment`,
|
||||
method: 'POST',
|
||||
params: {
|
||||
appointmentId: id
|
||||
}
|
||||
}).then(res => {
|
||||
this.onRefresherrefresh()
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('取消预约:', error);
|
||||
uni.showToast({
|
||||
title: '取消',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
goAddOrder(data) {
|
||||
this.clearMyInterval()
|
||||
uni.navigateTo({
|
||||
|
@ -45,7 +45,8 @@
|
||||
<view class="sshi" v-if="item.isPass == '0'">
|
||||
<image v-if="item.status == 1" :src="imgurl + '/noPass.png'" mode=""></image>
|
||||
<view v-else class="">
|
||||
<text>重审中</text>
|
||||
<text v-if="tapValue == '3'">重检中</text>
|
||||
<text v-if="tapValue == '4'">复检中</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="sshi" v-if="item.isPass == '1'">
|
||||
@ -61,10 +62,21 @@
|
||||
</text>
|
||||
</view>
|
||||
<view class="top-left" v-else>
|
||||
<view class="dhei">待接车</view>
|
||||
<view class="dhei" v-if="!item.meetAddress">待接车</view>
|
||||
<view class="dhei" v-else>上门取车</view>
|
||||
</view>
|
||||
<view @click="callUser(item.buyPhone)" class="top-right" v-if="isShowClient">
|
||||
<image src="../../static/detection/teel.png" mode=""></image>
|
||||
<!-- <view @click="handleNavigation(item)" class="top-right"
|
||||
v-if="isShowClient && item.meetAddress">
|
||||
<image src="../../static/detection/daohang.png" mode=""></image>
|
||||
</view> -->
|
||||
<view class="top-right" v-if="isShowClient">
|
||||
<image src="../../static/detection/teel.png" mode="" style="position: relative;"
|
||||
@click="callUser(item.buyPhone)">
|
||||
</image>
|
||||
<image src="../../static/detection/daohang.png" mode="" v-if="item.meetAddress"
|
||||
style="position: absolute;right: 120rpx;height: 60rpx;width: 60rpx;"
|
||||
@click="handleNavigation(item)">
|
||||
</image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="">
|
||||
@ -79,6 +91,12 @@
|
||||
<text>电话:</text>
|
||||
<text>{{ item.buyPhone }}</text>
|
||||
</view>
|
||||
<view class="on-input" v-if="item.meetAddress" @click="handleNavigation(item)">
|
||||
<uni-icons type="map" color="#999999" size="16"></uni-icons>
|
||||
<text style="width: 170rpx;">接车地址:</text>
|
||||
<text>{{ item.meetAddress }}</text>
|
||||
|
||||
</view>
|
||||
<!-- <view class="on-input">
|
||||
<uni-icons type="map" color="#999999" size="16"></uni-icons>
|
||||
<text>客户来源:</text>
|
||||
@ -91,14 +109,14 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="on-input">
|
||||
<uni-icons type="map" color="#999999" size="16"></uni-icons>
|
||||
<uni-icons type="car" color="#999999" size="16"></uni-icons>
|
||||
<text>车牌号:</text>
|
||||
<text>{{ item.carNum }}</text>
|
||||
</view>
|
||||
<view class="on-input" v-if="item.nodeNames">
|
||||
<uni-icons type="more" color="#999999" size="16"></uni-icons>
|
||||
<text class="single-line" v-if="!belowStandardShow.includes(tapValue)">检测内容:</text>
|
||||
<text class="single-line" style="color: red;" v-else>需重审项目:</text>
|
||||
<text class="single-line" style="color: red;" v-else>需复检项目:</text>
|
||||
<text class="multi-line"
|
||||
:style="belowStandardShow.includes(tapValue) ? 'color:red' : ''">{{ item.nodeNames }}</text>
|
||||
</view>
|
||||
@ -323,6 +341,11 @@
|
||||
value: "0"
|
||||
},
|
||||
],
|
||||
// 我自己的位置经纬度(百度地图需要传入自己的经纬度进行导航)
|
||||
selfLocation: {
|
||||
latitude: '',
|
||||
longitude: ''
|
||||
},
|
||||
}
|
||||
},
|
||||
async onLoad() {
|
||||
@ -338,6 +361,7 @@
|
||||
})
|
||||
},
|
||||
onShow() {
|
||||
this.getLocation()
|
||||
// this.getList()
|
||||
},
|
||||
onReady() {
|
||||
@ -368,6 +392,19 @@
|
||||
tabBar,
|
||||
},
|
||||
methods: {
|
||||
getLocation() {
|
||||
uni.getLocation({
|
||||
type: 'wgs84', // 默认为 'wgs84',表示获取经纬度,支持转换为百度、腾讯等地图坐标系
|
||||
success: (res) => {
|
||||
this.selfLocation.latitude = res.latitude
|
||||
this.selfLocation.longitude = res.longitude
|
||||
},
|
||||
fail: (err) => {
|
||||
console.log('获取位置失败:', err);
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
calculateScrollHeight() {
|
||||
// 获取屏幕高度
|
||||
const screenHeight = uni.getSystemInfoSync().windowHeight;
|
||||
@ -853,7 +890,105 @@
|
||||
this.infoDatas = []
|
||||
this.pageNum = 1
|
||||
this.getList()
|
||||
},
|
||||
handleNavigation(data) {
|
||||
console.log('执行了 地图 ');
|
||||
const _this = this;
|
||||
// if (!this.latitude || !this.longitude || !this.name) return;
|
||||
|
||||
// 判断系统安装的地图应用有哪些, 并生成菜单按钮
|
||||
let _mapName = [{
|
||||
title: '高德地图',
|
||||
name: 'amap',
|
||||
androidName: 'com.autonavi.minimap',
|
||||
iosName: 'iosamap://'
|
||||
},
|
||||
{
|
||||
title: '百度地图',
|
||||
name: 'baidumap',
|
||||
androidName: 'com.baidu.BaiduMap',
|
||||
iosName: 'baidumap://'
|
||||
},
|
||||
{
|
||||
title: '腾讯地图',
|
||||
name: 'qqmap',
|
||||
androidName: 'com.tencent.map',
|
||||
iosName: 'qqmap://'
|
||||
},
|
||||
];
|
||||
|
||||
// 根据真机有的地图软件 生成的 操作菜单
|
||||
let buttons = [];
|
||||
let platform = uni.getSystemInfoSync().platform;
|
||||
console.log('获取platform', platform);
|
||||
platform === 'android' && _mapName.forEach(item => {
|
||||
if (plus.runtime.isApplicationExist({
|
||||
pname: item.androidName
|
||||
})) {
|
||||
buttons.push(item);
|
||||
}
|
||||
});
|
||||
platform === 'ios' && _mapName.forEach(item => {
|
||||
if (plus.runtime.isApplicationExist({
|
||||
action: item.iosName
|
||||
})) {
|
||||
buttons.push(item);
|
||||
}
|
||||
});
|
||||
|
||||
if (buttons.length) {
|
||||
plus.nativeUI.actionSheet({ //选择菜单
|
||||
title: "选择地图应用",
|
||||
cancel: "取消",
|
||||
buttons: buttons
|
||||
}, function(e) {
|
||||
let _map = buttons[e.index - 1];
|
||||
_this.openURL(_map, platform, data);
|
||||
});
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '请安装地图软件',
|
||||
icon: 'none'
|
||||
});
|
||||
return;
|
||||
}
|
||||
},
|
||||
|
||||
// 打开第三方程序实际应用
|
||||
openURL(map, platform, data) {
|
||||
console.log('执行打开地图');
|
||||
console.log('data', data);
|
||||
|
||||
let _defaultUrl = {
|
||||
'android': {
|
||||
"amap": `amapuri://route/plan/?sid=&did=&dlat=${data.latitude}&dlon=${data.longitude}&dname=${data.meetAddress}&dev=0&t=0`,
|
||||
'qqmap': `qqmap://map/routeplan?type=drive&to=${data.meetAddress}&tocoord=${data.latitude},${data.longitude}&referer=fuxishan_uni_client`,
|
||||
'baidumap': `baidumap://map/direction?origin=${this.selfLocation.latitude},${this.selfLocation.longitude}&destination=name:${data.meetAddress}|latlng:${data.latitude},${data.longitude}&coord_type=wgs84&mode=driving&src=andr.baidu.openAPIdemo`
|
||||
},
|
||||
'ios': {
|
||||
"amap": `iosamap://path?sourceApplication=fuxishan_uni_client&dlat=${data.latitude}&dlon=${data.longitude}&dname=${data.meetAddress}&dev=0&t=0`,
|
||||
'qqmap': `qqmap://map/routeplan?type=drive&to=${data.name}&tocoord=${data.latitude},${data.longitude}&referer=fuxishan_uni_client`,
|
||||
// 'baidumap': `baidumap://map/direction?origin=${data.selfLocation.latitude},${data.selfLocation.longitude}&destination=name:${data.name}|latlng:${data.latitude},${data.longitude}&mode=driving&src=ios.baidu.openAPIdemo`
|
||||
}
|
||||
};
|
||||
// 构建 URL
|
||||
let newurl = encodeURI(_defaultUrl[platform][map.name]);
|
||||
|
||||
// 打开 URL
|
||||
plus.runtime.openURL(newurl, function(res) {
|
||||
uni.showModal({
|
||||
content: '打开地图成功'
|
||||
});
|
||||
}, function(err) {
|
||||
console.log('打开地图失败: ', err);
|
||||
uni.showModal({
|
||||
content: '打开地图失败: ' + err.message
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
@ -1,59 +1,63 @@
|
||||
import request from "./request";
|
||||
import {
|
||||
setStorageWithExpiry,
|
||||
getStorageWithExpiry
|
||||
setStorageWithExpiry,
|
||||
getStorageWithExpiry
|
||||
} from './auth'
|
||||
|
||||
export async function getDictDataByType(type) {
|
||||
let data = getStorageWithExpiry(type);
|
||||
if (data === null || data === undefined) {
|
||||
try {
|
||||
const response = await request({
|
||||
url: '/system/dict-data/type',
|
||||
method: 'get',
|
||||
params: {type}
|
||||
});
|
||||
data = response.data;
|
||||
setStorageWithExpiry(type, data, 3600); // 存储数据并设置过期时间
|
||||
} catch (error) {
|
||||
console.error("请求字典数据时出现了异常:", error);
|
||||
throw error; // 确保错误能够被外部捕获
|
||||
}
|
||||
}
|
||||
return data;
|
||||
let data = getStorageWithExpiry(type);
|
||||
if (data === null || data === undefined) {
|
||||
try {
|
||||
const response = await request({
|
||||
url: '/system/dict-data/type',
|
||||
method: 'get',
|
||||
params: {
|
||||
type
|
||||
}
|
||||
});
|
||||
data = response.data;
|
||||
setStorageWithExpiry(type, data, 3600); // 存储数据并设置过期时间
|
||||
} catch (error) {
|
||||
console.error("请求字典数据时出现了异常:", error);
|
||||
throw error; // 确保错误能够被外部捕获
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
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}`;
|
||||
if (!timestamp) {
|
||||
return ""
|
||||
}
|
||||
// 将时间戳转换为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}`;
|
||||
}
|
||||
export function formatDateChinese(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}日`;
|
||||
// 将时间戳转换为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}日`;
|
||||
}
|
||||
|
||||
export function formatDateTimeToMinute(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');
|
||||
// 组合成日期时间字符串(格式:yyyy-MM-dd hh:mm)
|
||||
return `${year}-${month}-${day} ${hours}:${minutes}`;
|
||||
}
|
||||
|
||||
// 将时间戳转换为 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');
|
||||
// 组合成日期时间字符串(格式:yyyy-MM-dd hh:mm)
|
||||
return `${year}-${month}-${day} ${hours}:${minutes}`;
|
||||
}
|
Loading…
Reference in New Issue
Block a user