
5 changed files with 432 additions and 0 deletions
@ -0,0 +1,201 @@ |
|||
const timeText = (time, format) => { |
|||
|
|||
if (format == null) { |
|||
format = "yyyy-MM-dd HH:mm:ss" |
|||
} |
|||
|
|||
let timeStr = ""; |
|||
|
|||
let todayEndTime = getTodayEndTime(); |
|||
let todayStartTime = getTodayStartTime(); |
|||
let thisWeekStartTime = getThisWeekStartTime(); |
|||
|
|||
console.log("kaishi" + todayStartTime) |
|||
console.log("jieshu" + thisWeekStartTime) |
|||
|
|||
|
|||
// 今天23:59:59:999之后
|
|||
if (time > todayEndTime) { |
|||
// 显示年月日
|
|||
timeStr = timeFormat(time, format) |
|||
} else if (thisWeekStartTime > time) { |
|||
// 此周前(本周星期一之前)
|
|||
|
|||
let i = format.indexOf(" "); |
|||
let formatStyle = format.substring(i + 1); |
|||
let formatNew = timeFormat(time, formatStyle); |
|||
|
|||
if (time > todayStartTime - 86399999 && time < todayStartTime) { |
|||
// 显示昨天
|
|||
timeStr = "昨天 " + formatNew; |
|||
} else { |
|||
timeStr = timeFormat(time, format) |
|||
} |
|||
|
|||
} else { |
|||
// 显示星期 时分
|
|||
let i = format.indexOf(" "); |
|||
let formatStyle = format.substring(i + 1); |
|||
let formatNew = timeFormat(time, formatStyle); |
|||
|
|||
if (todayStartTime - 86399999 > time) { |
|||
// 显示星期
|
|||
timeStr = getWeekStr(time) + " " + formatNew |
|||
} else if (time > todayStartTime - 86399999 && time < todayStartTime) { |
|||
// 显示昨天
|
|||
timeStr = "昨天 " + formatNew; |
|||
} else { |
|||
// 显示
|
|||
timeStr = formatNew; |
|||
} |
|||
} |
|||
|
|||
return timeStr |
|||
} |
|||
|
|||
/** |
|||
* 获取本周开始时间 |
|||
*/ |
|||
const getThisWeekStartTime = () => { |
|||
|
|||
let todayEndTime = getTodayEndTime(); |
|||
|
|||
var date = new Date(); |
|||
var weekDays = date.getDay(); |
|||
var weeks = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"); |
|||
var week = weeks[weekDays]; |
|||
|
|||
return todayEndTime + 1 - weekDays * 86400000; |
|||
} |
|||
|
|||
/** |
|||
* 获取今天是周几 |
|||
*/ |
|||
const getWeekStr = (time) => { |
|||
|
|||
|
|||
if (time instanceof Date) { |
|||
|
|||
} else { |
|||
let temp = new Date(time); |
|||
time = temp; |
|||
} |
|||
|
|||
let todayEndTime = getTodayEndTime(); |
|||
|
|||
var weekDays = time.getDay(); |
|||
var weeks = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"); |
|||
var week = weeks[weekDays]; |
|||
|
|||
return week; |
|||
} |
|||
|
|||
/** |
|||
* 获取今天开始时间 |
|||
*/ |
|||
const getTodayStartTime = () => { |
|||
|
|||
let startTime = 0; |
|||
|
|||
let myDate = new Date(); |
|||
|
|||
let current = myDate.getTime(); |
|||
|
|||
try { |
|||
|
|||
let format = timeFormat(myDate); |
|||
let split = format.split(" "); |
|||
let time = split[1].split(":"); |
|||
|
|||
startTime = current - time[0] * 60 * 60 * 1000 - time[1] * 60 * 1000 - time[2] * 1000 - time[3] |
|||
|
|||
} catch (e) { |
|||
console.log(e) |
|||
} |
|||
|
|||
return startTime; |
|||
} |
|||
|
|||
/** |
|||
* 获取今天结束时间 |
|||
*/ |
|||
const getTodayEndTime = () => { |
|||
|
|||
let endTime = 0; |
|||
|
|||
let myDate = new Date(); |
|||
|
|||
let current = myDate.getTime(); |
|||
|
|||
try { |
|||
|
|||
let format = timeFormat(myDate); |
|||
let split = format.split(" "); |
|||
let time = split[1].split(":"); |
|||
|
|||
let startTime = current - time[0] * 60 * 60 * 1000 - time[1] * 60 * 1000 - time[2] * 1000 - time[3] |
|||
endTime = startTime + 86399999; |
|||
|
|||
} catch (e) { |
|||
console.log(e) |
|||
} |
|||
|
|||
return endTime; |
|||
} |
|||
|
|||
/** |
|||
* 格式化时间 |
|||
* 支持时间戳 以及 date类型 |
|||
*/ |
|||
const timeFormat = (date, formoat) => { |
|||
|
|||
if (date == undefined || date == null) { |
|||
return ""; |
|||
} |
|||
|
|||
if (date instanceof Date) { |
|||
console.log("正确") |
|||
} else { |
|||
let temp = new Date(Number(date)); |
|||
date = temp; |
|||
} |
|||
|
|||
let fmt = formoat; |
|||
|
|||
if (fmt == null) { |
|||
fmt = "yyyy-MM-dd HH:mm:ss:SSS" |
|||
} |
|||
|
|||
|
|||
let ret; |
|||
const opt = { |
|||
"y+": date.getFullYear().toString(), // 年
|
|||
"M+": (date.getMonth() + 1).toString(), // 月
|
|||
"d+": date.getDate().toString(), // 日
|
|||
"H+": date.getHours().toString(), // 时
|
|||
"m+": date.getMinutes().toString(), // 分
|
|||
"s+": date.getSeconds().toString(), // 秒
|
|||
"S+": date.getMilliseconds().toString() |
|||
|
|||
}; |
|||
for (let k in opt) { |
|||
ret = new RegExp("(" + k + ")").exec(fmt); |
|||
if (ret) { |
|||
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0"))) |
|||
}; |
|||
}; |
|||
return fmt; |
|||
} |
|||
|
|||
const currentMillions = () => { |
|||
let current = new Date().getTime(); |
|||
return current; |
|||
} |
|||
|
|||
export { |
|||
timeText, |
|||
timeFormat, |
|||
currentMillions, |
|||
getWeekStr, |
|||
getTodayEndTime |
|||
} |
@ -0,0 +1,208 @@ |
|||
<template> |
|||
|
|||
<view> |
|||
|
|||
<NavBar ref="nav" navTitle="个人信息" :showIcon="true" :supportChange="false"> |
|||
</NavBar> |
|||
|
|||
<loading-state ref="pageView" @request="request"> |
|||
|
|||
<view @click="remark()" class="menu-item"> |
|||
<text class="text">姓名</text> |
|||
<text class="explain">{{page.realName}}</text> |
|||
<image class="more" src="../../static/more.png"></image> |
|||
</view> |
|||
|
|||
<view class="line-thin"></view> |
|||
|
|||
<view @click="clickSex()" class="menu-item"> |
|||
<text class="text">性别</text> |
|||
<text class="explain">{{page.sex}}</text> |
|||
<image class="more" src="../../static/more.png"></image> |
|||
</view> |
|||
|
|||
<view class="line-thin"></view> |
|||
|
|||
<uni-datetime-picker style="flex: 1;margin-top: 1px;" type="date" :value="page.birthDay" :start="startDate" |
|||
:end="endData" v-model="page.birthDay" :disabledDate="[]"> |
|||
<view class="menu-item"> |
|||
<text class="text">生日</text> |
|||
<text class="explain">{{stringIsEmpty(page.birthDay) ?"请选择生日":page.birthDay}}</text> |
|||
<image class="more" src="../../static/more.png"></image> |
|||
</view> |
|||
</uni-datetime-picker> |
|||
|
|||
<view class="line-thin"></view> |
|||
<pick-regions :defaultRegion="defaultRegionCode" @getRegion="handleGetRegion"> |
|||
<view class="menu-item"> |
|||
<text class="text">地区</text> |
|||
<text class="explain">{{stringIsEmpty(page.regionName) ?"请选择地区":page.regionName}}</text> |
|||
<image class="more" src="../../static/more.png"></image> |
|||
</view> |
|||
</pick-regions> |
|||
|
|||
<view style="background: -webkit-linear-gradient(left,#FFB176,#FE923B); position: absolute; bottom: 30px; |
|||
width: 90%;border-radius: 100rpx;height: 80rpx;display: flex;margin-left: 5%; |
|||
flex-direction: column;align-items: center;line-height: 80rpx;color: #FFFFFF;font-size: 36rpx;" |
|||
@click="realInfoAttestation"> |
|||
保存</view> |
|||
|
|||
</loading-state> |
|||
|
|||
<uni-popup ref="inputDialog" type="dialog"> |
|||
<uni-popup-dialog ref="inputClose" mode="input" title="修改姓名" :value="page.realName" placeholder="请输入内容" |
|||
@confirm="dialogInputConfirm"></uni-popup-dialog> |
|||
</uni-popup> |
|||
|
|||
</view> |
|||
|
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
import pickRegions from '@/components/pick-regions/pick-regions.vue' |
|||
export default { |
|||
components: { |
|||
pickRegions |
|||
}, |
|||
created() { |
|||
this.startDate = this.TimeFormat(this.CurrentMillions() - 100 * 365 * 24 * 60 * 60 * 1000); |
|||
this.endData = this.TimeFormat(this.CurrentMillions()); |
|||
}, |
|||
data() { |
|||
return { |
|||
region: [], |
|||
defaultRegion: ['北京市', '市辖区', '东城区'], |
|||
defaultRegionCode: '110101', |
|||
region_sid_path: "", |
|||
address_path: "北京市/市辖区/东城区", |
|||
startDate: "1921-01-01", |
|||
endData: "", |
|||
pickerDate: "", |
|||
page: { |
|||
"birthDay": "", |
|||
"realName": "", |
|||
"regionCode": "", |
|||
"regionName": "", |
|||
"sex": "" |
|||
}, |
|||
contorl: { |
|||
listSex: ["男", "女"] |
|||
}, |
|||
} |
|||
}, |
|||
onLoad(options) { |
|||
this.request() |
|||
}, |
|||
methods: { |
|||
// 修改姓名 |
|||
remark() { |
|||
this.$refs.inputDialog.open() |
|||
}, |
|||
dialogInputConfirm(val) { |
|||
this.page.realName = val |
|||
}, |
|||
request() { |
|||
let _this = this |
|||
_this.$api.getRealInfo(getApp().globalData.sid).then((resp) => { |
|||
console.log(JSON.stringify(resp)); |
|||
_this.page = resp |
|||
_this.$nextTick(() => { |
|||
_this.$refs.pageView.setLoadState(2) |
|||
}) |
|||
}).catch(e => { |
|||
console.log(e); |
|||
}) |
|||
}, |
|||
clickSex() { |
|||
let _this = this; |
|||
uni.showActionSheet({ |
|||
itemList: this.contorl.listSex, |
|||
success: function(res) { |
|||
_this.selectSex(res.tapIndex + 1) |
|||
} |
|||
}); |
|||
}, |
|||
selectSex(id) { |
|||
let _this = this |
|||
switch (id) { |
|||
case 1: |
|||
this.page.sex = '男' |
|||
break; |
|||
case 2: |
|||
this.page.sex = '女' |
|||
break; |
|||
case 3: |
|||
break |
|||
} |
|||
}, |
|||
modibirthDay(e) { |
|||
this.page.birthDay = e |
|||
}, |
|||
realInfoAttestation() { |
|||
this.page.userSid = getApp().globalData.sid |
|||
let _this = this |
|||
_this.$api.saveRealInfo(this.page).then((resp) => { |
|||
uni.navigateBack() |
|||
}).catch(e => { |
|||
console.log(e); |
|||
}) |
|||
}, |
|||
// 获取选择的地区 |
|||
handleGetRegion(region) { |
|||
let code = region.map(item => item.code) |
|||
let name = region.map(item => item.name) |
|||
this.page.regionCode = code[2] |
|||
this.page.regionName = name[0] + "/" + name[1] + "/" + name[2] |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
page { |
|||
background-color: #f1f2f3; |
|||
} |
|||
|
|||
|
|||
.menu-item { |
|||
height: 112rpx; |
|||
width: auto; |
|||
display: flex; |
|||
flex-direction: row; |
|||
background-color: #fff; |
|||
align-items: center; |
|||
padding-left: 36rpx; |
|||
padding-right: 36rpx; |
|||
} |
|||
|
|||
.more { |
|||
width: 35rpx; |
|||
height: 35rpx; |
|||
float: right; |
|||
} |
|||
|
|||
.menu-item .icon { |
|||
width: 69rpx; |
|||
height: 35rpx; |
|||
} |
|||
|
|||
.menu-item .text { |
|||
font-size: 32rpx; |
|||
color: #101010; |
|||
flex: 1; |
|||
float: left; |
|||
} |
|||
|
|||
.menu-item .explain { |
|||
font-size: 28rpx; |
|||
color: #828282; |
|||
margin-right: 10rpx; |
|||
} |
|||
|
|||
.line-thin { |
|||
height: 1rpx; |
|||
width: 100%; |
|||
background-color: #eee; |
|||
} |
|||
</style> |
Loading…
Reference in new issue