Files
nuttyreading-html/pages/timeAcupoint/timeAcupoint.vue
2023-12-08 16:28:55 +08:00

585 lines
14 KiB
Vue
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.
<template>
<view class="container88">
<!-- 公共组件-每个页面必须引入 -->
<public-module></public-module>
<z-nav-bar title="时辰取穴"></z-nav-bar>
<view>
<!-- <uni-section :title="'date 对象用法:' + datetimesingle" type="line"></uni-section> -->
<!-- <view class="datetimeBox">
<uni-datetime-picker type="datetime" v-model="date" @change="changeLog" :clear-icon="false" />
</view> -->
<view class="box1 ">
<view class="" style="text-align: center; margin-top: 50rpx; align-items: center; margin-bottom: 30rpx;">
<!-- <text style="color: #666; line-height: 60rpx;">所查询时间</text><br /> -->
<view class="" style="margin-bottom: 10rpx; ">
<text style="color: #a84a2d; font-size: 50rpx; white-space:nowrap; font-weight: bold;">{{dateToString}}</text>
</view>
<view class="">
<uni-datetime-picker type="datetime" v-model="date" @change="changeLog" :clear-icon="false" />
</view>
<!-- <uni-datetime-picker style="color: #666; " v-model="single"
>切换时间</uni-datetime-picker> -->
<!-- <uni-datetime-picker type="datetime" v-model="date" @change="changeLog" :clear-icon="false" /> -->
</view>
<view class="yunqi">
<!-- <text style="color: #666; line-height: 50rpx; width: 100%; margin-right: 15rpx;">天干地支</text> -->
<view class="shu">
<text>{{tiangandizhi.hour}} - </text>
<text>{{tiangandizhi.day}} - </text>
<text>{{tiangandizhi.month}} - </text>
<text>{{tiangandizhi.year}} - </text>
</view>
</view>
</view>
</view>
<!-- 当天 -->
<view class="curBox flexbox" style="justify-content: space-between;" v-if="showDetail">
<table border style=" text-align: center;;background-color: antiquewhite;" cellspacing="0">
<tr class="">
<!-- <td colspan="1" class=""></td> -->
<td class="" rowspan="2">灵龟八法</td>
<td class="">开穴</td>
<td class="curText" style="width: 130rpx"><text class="verticalRl" style="writing-mode: vertical-rl;">{{quxue[curIndex-2].lgbf.KX}}</text></td>
</tr>
<tr class="">
<td class="">合穴</td>
<td class="curText" v-if="quxue[curIndex-2].lgbf.HX != ''"><text class="verticalRl">{{quxue[curIndex-2].lgbf.HX}}</text></td>
<td class="curText" v-else> / </td>
</tr>
</table>
<table border style="text-align: center; margin-left: 10rpx;background-color: antiquewhite;"
cellspacing="0">
<tr class="">
<!-- <td colspan="1" class=""></td> -->
<td class="" rowspan="2">飞腾八法</td>
<td class="">开穴</td>
<td class="curText" style="width: 130rpx"><text class="">{{quxue[curIndex-2].ftbf.KX}}</text></td>
</tr>
<tr class="">
<td class="">合穴</td>
<td class="curText" v-if="quxue[curIndex-2].ftbf.HX != ''"><text class="">{{quxue[curIndex-2].ftbf.HX}}</text></td>
<td class="curText" v-else> / </td>
</tr>
</table>
</view>
<view class="curBox" style="margin-top: 10rpx;" v-if="showDetail">
<table border style=" width: 100%; text-align: center;background-color: antiquewhite;" cellspacing="0">
<tr class="">
<!-- <td colspan="1" class=""></td> -->
<td class="" rowspan="5">子午流注</td>
<td class="shuHeight" colspan="2" rowspan="1">子午纳干</td>
<td class="curText" style=" border: none; text-align: center; vertical-align: middle;" v-if="quxue[curIndex-2].zwlz.ngf.length > 0">
<text class="" style="display: inline-block; height: 100%;" v-for="(item, index) in quxue[curIndex-2].zwlz.ngf"
:style="{color: getHightLightColor(item)}">{{item}}</text>
</td>
<td class="curText" v-else> / </td>
</tr>
<tr class="">
<td class="" rowspan="4">子午纳子</td>
<td class="">补法</td>
<td class="curText" style="width: 200rpx;" v-if="quxue[curIndex-2].zwlz.nzf.bf != ''">
<text class="verticalRl"
:style="{color: getHightLightColor(quxue[curIndex-2].zwlz.nzf.bf)}">{{quxue[curIndex-2].zwlz.nzf.bf}}</text>
</td>
<td class="curText" v-else> / </td>
<!-- <td class="" v-if="quxue[curIndex-2].ftbf.HX != ''">{{quxue[curIndex-2].ftbf.HX}}</td>
<td class="" v-else> / </td> -->
</tr>
<tr class="">
<td class="">泄法</td>
<td class="curText" style="width: 200rpx;" v-if="quxue[curIndex-2].zwlz.nzf.xf != ''">
<text class="verticalRl"
:style="{color: getHightLightColor(quxue[curIndex-2].zwlz.nzf.xf)}">{{quxue[curIndex-2].zwlz.nzf.xf}}</text>
</td>
<td class="curText" v-else> / </td>
</tr>
<tr class="">
<td class="">过时泄本</td>
<td class="curText" style="width: 200rpx;" v-if="quxue[curIndex-2].zwlz.nzf.gsxb != ''">
<text class="verticalRl"
:style="{color: getHightLightColor(quxue[curIndex-2].zwlz.nzf.gsxb)}">{{quxue[curIndex-2].zwlz.nzf.gsxb}}</text>
</td>
<td class="curText" v-else> / </td>
</tr>
<tr class="">
<td class="">过时补原</td>
<td class="curText" style="width: 200rpx;" v-if="quxue[curIndex-2].zwlz.nzf.gsbf != ''">
<text class="verticalRl"
:style="{color: getHightLightColor(quxue[curIndex-2].zwlz.nzf.gsbf)}">{{quxue[curIndex-2].zwlz.nzf.gsbf}}</text>
</td>
<td class="curText" v-else> / </td>
</tr>
</table>
</view>
<view class="centerBox" style="text-align: right; padding-top:10rpx; font-size: 24rpx;">
表中带* 者是原穴
</view>
<!-- end -->
<view class="showBtn">
<text @click="showTotalFun" v-if="!showTotal"> 查看全部时辰对应穴位 </text>
<!-- <text @click="showTotalFun" v-else> 收起全部时辰 </text> -->
</view>
<music-play :playData="playData"></music-play>
<z-navigation></z-navigation>
</view>
</template>
<script>
import musicPlay from '@/components/music.vue'
import $http from '@/config/requestConfig.js';
function formatDateTime(time) {
var date = new Date(time);
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
var second = date.getSeconds();
minute = minute < 10 ? ('0' + minute) : minute;
second = second < 10 ? ('0' + second) : second;
return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
};
export default {
data() {
return {
showDetail: true,
showTotal: false,
single: '',
playData: {},
curIndex: null,
pageWidth: uni.getSystemInfoSync().windowWidth,
pageHeight: uni.getSystemInfoSync().windowHeight - 200,
fiveYunNum: 5,
// date: new Date().toISOString().slice(0, 10), // 只返回年月日
date: new Date().getTime(), // 返回年月日带时间
dateToString: formatDateTime(new Date()), // 字符串格式的日期
timestamp: Date.now() - 2 * 24 * 3600 * 1000, // 时间戳
showCalendar: false,
quxue: [], // 时辰取穴
tiangandizhi: {},
pageTime:{ // 页面得时间,载入时赋值
hour:0,
minute:0,
increments:0 // 分钟数距离整点的差额
},
myInterval:null, // 定时器
myDingshi: null,
}
},
onLoad() {
let da = new Date().toISOString().slice(0, 10)
this.timestamp = new Date(da).getTime()
// console.log('初始时间', this.dateToString, this.date)
this.getXueWei(this.dateToString)
this.getTGDZ(this.dateToString)
},
onUnload() {
this.pageTime.hour = 0
this.pageTime.minute = 0
this.pageTime.increments = 0
clearInterval(this.myDingshi)
clearTimeout(this.myInterval);
console.log('隐藏页面', this.myInterval, this.myDingshi)
},
onShow() {
// console.log('全局hours',this.$getHours.hourNumber,this.$getHours.minuteNumber)
var mydate = new Date()
this.pageTime.hour = mydate.getHours()
this.pageTime.minute = mydate.getMinutes()
console.log('全局hours', this.pageTime.hour,this.pageTime.minute)
this.pageTime.increments = 60 - this.pageTime.minute
console.log('距离整点', this.pageTime.increments, this.pageTime.increments * 60000, '毫秒后执行')
if(this.pageTime.increments > 0){
this.myInterval = setTimeout(() => {
this.autoChange()
this.myDingshi = setInterval(() => {
console.log('进入轮询')
this.autoChange()
},60 * 60000)
}, this.pageTime.increments * 60000)
}
},
onHide() {
clearTimeout(this.myInterval);
clearInterval(this.myDingshi)
console.log('清除定时器',this.myInterval, this.myDingshi)
//this.myInterval = null
},
methods: {
scroll: function(e) {},
autoChange(){
// console.log()
let da = new Date().toISOString().slice(0, 10)
this.timestamp = new Date(da).getTime()
this.dateToString = formatDateTime(new Date()), // 字符串格式的日期
this.getXueWei(this.dateToString)
this.getTGDZ(this.dateToString)
},
showTotalFun() {
uni.navigateTo({
url: "./totalTable"
})
// this.showTotal = !this.showTotal
},
// 设置文字颜色
getHightLightColor(text) {
if (text.indexOf('*') != -1) {
return "#9c3211"
}
},
// 获取天干地支
getTGDZ(date) {
let that = this
$http.request({
url: "book/point/TGDZForYear",
method: "POST", // POST、GET、PUT、DELETE具体说明查看官方文档
data: {
"date": date
},
header: { //默认 无 说明:请求头
'Content-Type': 'application/json'
},
})
.then(res => {
if (res.code == 0) {
console.log('天干地支', res.tgdz)
this.tiangandizhi = res.tgdz
}
}).catch(e => {
console.log(e, 'e')
});
},
// 获取时辰取穴
getXueWei(date) {
this.showDetail = false
let that = this
$http.request({
url: "book/point/SCQX",
method: "POST", // POST、GET、PUT、DELETE具体说明查看官方文档
data: {
"date": date
},
header: { //默认 无 说明:请求头
'Content-Type': 'application/json'
},
})
.then(res => {
if (res.code == 0 && res.flag.length > 0) {
console.log('时辰取穴', res.flag)
this.quxue = res.flag
this.curIndex = res.flag.findIndex(function(item) {
return item.now == true
})
this.curIndex = this.curIndex + 2
console.log(this.curIndex, 'this.curIndex')
this.showDetail = true
}
}).catch(e => {
this.curIndex = null
console.log(e, 'e')
});
},
// checkAdult(item) {
// return item.now == true
// },
changeLog(e) {
console.log('change事件:', e);
let ss = e.slice(0, 10)
this.timestamp = new Date(ss).getTime()
this.dateToString = e
this.getXueWei(e)
this.getTGDZ(e)
},
},
components: {
musicPlay
},
}
</script>
<style lang="scss" scoped>
@import './scss/common.scss';
/deep/ .uni-date-editor { position: relative;
display: block; width:200rpx; height:34rpx;
background-image: url('@/static/icon/change.png');
background-size: contain; margin: 0 auto;
background-repeat: no-repeat;
padding-left: 50rpx;
background-position: left top;
.uni-date-editor--x{display: none;}
}
/deep/ .uni-date-editor::after{content: '切换时间'; font-size: 30rpx; position: absolute; top: -2px; left: 40rpx; top: 0; display: block;}
.showBtn {
text-align: center;
text {
color: #a84a2d;
}
}
.textBlock {
display: block
}
.curText { height: 90rpx;
background-color: #fbd5ca;
text{
writing-mode: vertical-rl !important;
}
}
.leftBar {
td {
font-weight: bold;
color: #a84a2d;
}
}
tr.cur {
background-color: #e7a896;
color: #fff;
td {
color: #fff;
}
}
.tableTh {
background-color: #fbd5ca;
font-weight: bold;
color: #a84a2d;
}
.shuHeight {
height: 100rpx;
}
.shuHeight1 {
height: 100rpx;
}
.verticalRl {
writing-mode: vertical-rl;
}
.oneHeight {
height: 50rpx;
}
.twoHeight {
height: 94rpx;
}
table {
border-collapse: collapse;
font-size: 28rpx;
}
table td {
border-bottom: 1px solid #a84a2d;
border-right: 1px solid #a84a2d;
}
table tr:first-child td {
border-top: 1px solid #a84a2d;
}
table tr td:first-child {
border-left: 1px solid #a84a2d;
}
td {
padding: 8rpx 10rpx;
}
.oneWidth {
width: 124rpx;
}
/deep/ .uni-table-th {
padding: 14rpx 20rpx
}
* {
font-size: 28rpx;
}
.centerBox {
text-align: center;
padding: 20px;
color: #666;
}
.yinli {
line-height: 50rpx;
text {
writing-mode: vertical-rl;
letter-spacing: 20rpx;
color: #c06346;
}
}
.box1 {
padding: 20rpx;
margin-bottom: 20rpx;
justify-content: space-between;
align-items: center;
.yunqi {
color: #c06346;
text-align: center;
margin-top: 20rpx;
.shu {
display: inline-block;
padding: 20rpx;
text {
writing-mode: vertical-rl;
line-height: 80rpx;
font-size:34rpx;
}
}
}
}
.grayBg {
background-color: #eee;
}
.scroll-view_H {
white-space: nowrap;
width: 100%;
.leftone {
border-left: 1px solid #ddd;
}
.row {
display: inline-block;
text-align: center;
background-color: #fef9e4;
border-right: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
.row.cur {
background-color: #8d3d16;
color: #fff;
position: relative;
border-right: 0;
z-index: 5;
box-shadow: 0 0 10px #8d3d16;
}
.line {
padding: 20rpx;
border-top: 1px solid #ddd;
span {
font-size: 36rpx;
}
}
.line1 {
font-size: 24rpx;
height: 200rpx;
writing-mode: vertical-rl;
;
}
.zhuyun {
color: #8d3d16;
background-color: #faede7;
font-size: 30rpx;
}
.keyun {
color: #c06346;
background-color: #fceeed;
font-size: 30rpx;
}
}
.container88 {
padding: 10rpx;
background-color: #fff;
padding-bottom: 70rpx;
}
.datetimeBox {
width: 80%;
margin: 0 auto;
margin-bottom: 30rpx;
}
.liuqiBox {
.line.keyun {
padding: 60rpx 10rpx
}
}
.wuYunBox {
.row {
width: 20%;
box-sizing: border-box;
}
}
/deep/ .uni-calendar__content-mobile {
bottom: 100rpx !important;
}
.sizai {
.keyun {
position: relative;
}
.keyun::after {
position: absolute;
content: '';
top: 24rpx;
left: 0;
font-size: 24rpx;
display: block;
width: 100%;
color: #888;
text-align: center;
}
}
.sizai1 {
.keyun::after {
content: '(司天)';
}
}
.sizai2 {
.keyun::after {
content: '(在泉)';
}
}
.flexbox {
display: flex;
}
</style>