Skip to content

Commit 9006822

Browse files
committed
.
1 parent 5846c19 commit 9006822

File tree

5 files changed

+68
-20
lines changed

5 files changed

+68
-20
lines changed

src/assets/constant.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
// 八卦
2+
export const BA_GUA = ['乾', '兑', '离', '震', '巽', '坎', '艮', '坤']
3+
// 八卦卦爻
4+
export const BA_GUA_MAP = {
5+
'乾': '111', '兑': '011', '离': '101', '震': '001', '巽': '110', '坎': '010', '艮': '100', '坤': '000',
6+
'111': '乾', '011': '兑', '101': '离', '001': '震', '110': '巽', '010': '坎', '100': '艮', '000': '坤',
7+
}
8+
19
// 天干
210
export const TIAN_GAN = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']
311
// 阳干

src/components/Home.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
<br /><br />
1313
<el-button class="btn" size="large" @click="router.push('/bazi')">四柱排盘</el-button>
1414
<el-button class="btn" size="large" @click="router.push('/liuyao')">六爻装卦</el-button>
15-
<el-button class="btn" size="large" @click="router.push('/qimen')">奇门排盘</el-button>
15+
<el-button class="btn" size="large" @click="router.push('/meihua')">梅花易数</el-button>
16+
<el-button class="btn" size="large" @click="router.push('/qimen')">奇门遁甲</el-button>
1617
</div>
1718
</div>
1819
</template>

src/components/LiuYao.vue

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
<template>
22
<div class="header">
3-
<select v-model="yao[5]">
3+
<select v-model="yao[5]" @change="main()">
44
<option disabled value="-1">第一次</option>
55
<option v-for="i in 4" :value="i-1">{{i-1}} 字</option>
66
</select>
7-
<select v-model="yao[4]" :disabled="yao[5]<0">
7+
<select v-model="yao[4]" @change="main()" :disabled="yao[5]<0">
88
<option disabled value="-1">第二次</option>
99
<option v-for="i in 4" :value="i-1">{{i-1}} 字</option>
1010
</select>
11-
<select v-model="yao[3]" :disabled="yao[4]<0">
11+
<select v-model="yao[3]" @change="main()" :disabled="yao[4]<0">
1212
<option disabled value="-1">第三次</option>
1313
<option v-for="i in 4" :value="i-1">{{i-1}} 字</option>
1414
</select>
15-
<select v-model="yao[2]" :disabled="yao[3]<0">
15+
<select v-model="yao[2]" @change="main()" :disabled="yao[3]<0">
1616
<option disabled value="-1">第四次</option>
1717
<option v-for="i in 4" :value="i-1">{{i-1}} 字</option>
1818
</select>
19-
<select v-model="yao[1]" :disabled="yao[2]<0">
19+
<select v-model="yao[1]" @change="main()" :disabled="yao[2]<0">
2020
<option disabled value="-1">第五次</option>
2121
<option v-for="i in 4" :value="i-1">{{i-1}} 字</option>
2222
</select>
23-
<select v-model="yao[0]" :disabled="yao[1]<0" @change="main()">
23+
<select v-model="yao[0]" @change="main()" :disabled="yao[1]<0">
2424
<option disabled value="-1">第六次</option>
2525
<option v-for="i in 4" :value="i-1">{{i-1}} 字</option>
2626
</select>
@@ -49,11 +49,8 @@
4949

5050
<script setup>
5151
import { ref } from 'vue'
52-
import { WU_XING } from '../assets/constant.js'
52+
import { BA_GUA_MAP, WU_XING } from '../assets/constant.js'
5353
54-
const gua8 = {
55-
'111': '', '010': '', '100': '', '001': '', '110': '', '101': '', '000': '', '011': ''
56-
}
5754
const gua64 = [
5855
'乾乾-乾卦', '乾巽-天风姤', '乾艮-天山遁', '乾坤-天地否', '巽坤-风地观', '艮坤-山地剥', '离坤-火地晋', '离乾-火天大有',
5956
'坎坎-坎卦', '坎兑-水泽节', '坎震-水雷屯', '坎离-水火既济', '兑离-泽火革', '震离-雷火丰', '坤离-地火明夷', '坤坎-地水师',
@@ -76,16 +73,19 @@ const shiYing = ref(['', '', '', '', '', ''])
7673
const yao = ref([-1, -1, -1, -1, -1, -1])
7774
7875
function main() {
76+
benGua.value = []
77+
bianGua.value = []
7978
for (const i of yao.value) {
80-
if (i === 0) { benGua.value.push(1); bianGua.value.push(0) }
79+
if (i === -1) return
80+
else if (i === 0) { benGua.value.push(1); bianGua.value.push(0) }
8181
else if (i === 1) { benGua.value.push(0); bianGua.value.push(0) }
8282
else if (i === 2) { benGua.value.push(1); bianGua.value.push(1) }
8383
else if (i === 3) { benGua.value.push(0); bianGua.value.push(1) }
8484
}
85-
const benShangGua = gua8[benGua.value.slice(0, 3).join('')]
86-
const benXiaGua = gua8[benGua.value.slice(3, 6).join('')]
87-
const bianShangGua = gua8[bianGua.value.slice(0, 3).join('')]
88-
const bianXiaGua = gua8[bianGua.value.slice(3, 6).join('')]
85+
const benShangGua = BA_GUA_MAP[benGua.value.slice(0, 3).join('')]
86+
const benXiaGua = BA_GUA_MAP[benGua.value.slice(3, 6).join('')]
87+
const bianShangGua = BA_GUA_MAP[bianGua.value.slice(0, 3).join('')]
88+
const bianXiaGua = BA_GUA_MAP[bianGua.value.slice(3, 6).join('')]
8989
const guaGongIndex = gua64.findIndex(i => i.indexOf(benShangGua + benXiaGua) === 0)
9090
const guaGongWuXing = WU_XING[gua64[guaGongIndex - guaGongIndex % 8][0]]
9191
switch (guaGongIndex % 8) {
@@ -127,10 +127,10 @@ const NA_JIA = {
127127

128128
<style scoped>
129129
.header {
130-
select, button, span {
131-
margin: 10px;
132-
font-size: 18px;
133-
}
130+
select, button, span {
131+
margin: 10px;
132+
font-size: 18px;
133+
}
134134
}
135135
136136
p {

src/components/MeiHua.vue

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<template>
2+
<div class="header">
3+
<select v-model="shangGua">
4+
<option disabled value="">上卦</option>
5+
<option v-for="i in BA_GUA" :value="i">{{i}}卦</option>
6+
</select>
7+
<select v-model="xiaGua">
8+
<option disabled value="">下卦</option>
9+
<option v-for="i in BA_GUA" :value="i">{{i}}卦</option>
10+
</select>
11+
<select v-model="shiChen">
12+
<option disabled value="">时辰</option>
13+
<option v-for="i in DI_ZHI" :value="i">{{i}}时</option>
14+
</select>
15+
</div>
16+
</template>
17+
18+
<script setup>
19+
import { ref } from 'vue'
20+
import { BA_GUA, BA_GUA_MAP, DI_ZHI } from '../assets/constant.js'
21+
22+
const shangGua = ref('')
23+
const xiaGua = ref('')
24+
const shiChen = ref('')
25+
</script>
26+
27+
<style scoped>
28+
.header {
29+
select, button, span {
30+
margin: 10px;
31+
font-size: 18px;
32+
}
33+
}
34+
</style>

src/main.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import App from './App.vue'
88
import BaZi from './components/BaZi.vue'
99
import Home from './components/Home.vue'
1010
import LiuYao from './components/LiuYao.vue'
11+
import MeiHua from './components/MeiHua.vue'
1112
import QiMen from "./components/QiMen.vue";
1213

1314
const routes = [
@@ -23,6 +24,10 @@ const routes = [
2324
path: '/liuyao',
2425
component: LiuYao,
2526
},
27+
{
28+
path: '/meihua',
29+
component: MeiHua,
30+
},
2631
{
2732
path: '/qimen',
2833
component: QiMen,

0 commit comments

Comments
 (0)