Skip to content

Commit 72e4170

Browse files
committed
.
1 parent 9006822 commit 72e4170

File tree

3 files changed

+40
-29
lines changed

3 files changed

+40
-29
lines changed

src/assets/constant.js

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,30 @@
11
// 八卦
22
export const BA_GUA = ['乾', '兑', '离', '震', '巽', '坎', '艮', '坤']
3-
// 八卦卦爻
4-
export const BA_GUA_MAP = {
3+
4+
// 八卦卦爻转换
5+
export const BA_GUA_2_YAO = {
56
'乾': '111', '兑': '011', '离': '101', '震': '001', '巽': '110', '坎': '010', '艮': '100', '坤': '000',
67
'111': '乾', '011': '兑', '101': '离', '001': '震', '110': '巽', '010': '坎', '100': '艮', '000': '坤',
78
}
89

10+
// 八卦别称转换
11+
export const BA_GUA_2_ALIAS = {
12+
'乾': '天', '兑': '泽', '离': '火', '震': '雷', '巽': '风', '坎': '水', '艮': '山', '坤': '地',
13+
'天': '乾', '泽': '兑', '火': '离', '雷': '震', '风': '巽', '水': '坎', '山': '艮', '地': '坤',
14+
}
15+
16+
// 六十四卦
17+
export const GUA_64 = [
18+
'天天乾卦', '天风姤', '天山遁', '天地否', '风地观', '山地剥', '火地晋', '火天大有',
19+
'泽泽兑卦', '泽水困', '泽地萃', '泽山咸', '水山蹇', '地山谦', '雷山小过', '雷泽归妹',
20+
'火火离卦', '火山旅', '火风鼎', '火水未济', '山水蒙', '风水涣', '天水讼', '天火同人',
21+
'雷雷震卦', '雷地豫', '雷水解', '雷风恒', '地风升', '水风井', '泽风大过', '泽雷随',
22+
'风风巽卦', '风天小畜', '风火家人', '风雷益', '天雷无妄', '火雷噬嗑', '山雷颐', '山风蛊',
23+
'水水坎卦', '水泽节', '水雷屯', '水火既济', '泽火革', '雷火丰', '地火明夷', '地水师',
24+
'山山艮卦', '山火贲', '山天大畜', '山泽损', '火泽睽', '天泽履', '风泽中孚', '风山渐',
25+
'地地坤卦', '地雷复', '地泽临', '地天泰', '雷天大壮', '泽天夬', '水天需', '水地比',
26+
]
27+
928
// 天干
1029
export const TIAN_GAN = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']
1130
// 阳干
@@ -33,6 +52,7 @@ export const JIA_ZI = [
3352
// 五行
3453
export const WU_XING = {
3554
'乾': '金', '兑': '金', '离': '火', '震': '木', '巽': '木', '坎': '水', '艮': '土', '坤': '土',
55+
'天': '金', '泽': '金', '火': '火', '雷': '木', '风': '木', '水': '水', '山': '土', '地': '土',
3656
'甲': '木', '乙': '木', '丙': '火', '丁': '火', '戊': '土', '己': '土', '庚': '金', '辛': '金', '壬': '水', '癸': '水',
3757
'子': '水', '丑': '土', '寅': '木', '卯': '木', '辰': '土', '巳': '火', '午': '火', '未': '土', '申': '金', '酉': '金', '戌': '土', '亥': '水',
3858
}

src/components/LiuYao.vue

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
</div>
2828
<div style="display:flex; margin-left: 10px" v-show="yao[0]>=0">
2929
<div>
30-
<p>{{benGuaName.slice(3)}}&emsp;</p>
30+
<p>{{benGuaName[0] === benGuaName[1] ? benGuaName.substring(2) : benGuaName}}&emsp;</p>
3131
<p v-for="(j, i) in 6">
3232
{{ shiYing[i] || '&emsp;' }}&nbsp;
3333
{{ benGuaLiuQin[i] }}&nbsp;
@@ -37,7 +37,7 @@
3737
</p>
3838
</div>
3939
<div>
40-
<p>{{bianGuaName.slice(3)}}&emsp;</p>
40+
<p>{{bianGuaName[0] === bianGuaName[1] ? bianGuaName.substring(2) : bianGuaName}}&emsp;</p>
4141
<p v-for="(j, i) in 6">
4242
{{ yao[i]===0 || yao[i]===3 ? bianGuaLiuQin[i] : '&emsp;&emsp;' }}&nbsp;
4343
{{ bianGua[i] ? '▅▅▅▅▅' : '▅▅&emsp;▅▅' }}&nbsp;
@@ -49,18 +49,8 @@
4949

5050
<script setup>
5151
import { ref } from 'vue'
52-
import { BA_GUA_MAP, WU_XING } from '../assets/constant.js'
52+
import { BA_GUA_2_YAO, BA_GUA_2_ALIAS, GUA_64, WU_XING } from '../assets/constant.js'
5353
54-
const gua64 = [
55-
'乾乾-乾卦', '乾巽-天风姤', '乾艮-天山遁', '乾坤-天地否', '巽坤-风地观', '艮坤-山地剥', '离坤-火地晋', '离乾-火天大有',
56-
'坎坎-坎卦', '坎兑-水泽节', '坎震-水雷屯', '坎离-水火既济', '兑离-泽火革', '震离-雷火丰', '坤离-地火明夷', '坤坎-地水师',
57-
'艮艮-艮卦', '艮离-山火贲', '艮乾-山天大畜', '艮兑-山泽损', '离兑-火泽睽', '乾兑-天泽履', '巽兑-风泽中孚', '巽艮-风山渐',
58-
'震震-震卦', '震坤-雷地豫', '震坎-雷水解', '震巽-雷风恒', '坤巽-地风升', '坎巽-水风井', '兑巽-泽风大过', '兑震-泽雷随',
59-
'巽巽-巽卦', '巽乾-风天小畜', '巽离-风火家人', '巽震-风雷益', '乾震-天雷无妄', '离震-火雷噬嗑', '艮震-山雷颐', '艮巽-山风蛊',
60-
'离离-离卦', '离艮-火山旅', '离巽-火风鼎', '离坎-火水未济', '艮坎-山水蒙', '巽坎-风水涣', '乾坎-天水讼', '乾离-天火同人',
61-
'坤坤-坤卦', '坤震-地雷复', '坤兑-地泽临', '坤乾-地天泰', '震乾-雷天大壮', '兑乾-泽天夬', '坎乾-水天需', '坎坤-水地比',
62-
'兑兑-兑卦', '兑坎-泽水困', '兑坤-泽地萃', '兑艮-泽山咸', '坎艮-水山蹇', '坤艮-地山谦', '震艮-雷山小过', '震兑-雷泽归妹',
63-
]
6454
const benGua = ref([])
6555
const benGuaLiuQin = ref([])
6656
const benGuaNaJia = ref([])
@@ -75,31 +65,32 @@ const yao = ref([-1, -1, -1, -1, -1, -1])
7565
function main() {
7666
benGua.value = []
7767
bianGua.value = []
68+
shiYing.value = ['', '', '', '', '', '']
7869
for (const i of yao.value) {
7970
if (i === -1) return
8071
else if (i === 0) { benGua.value.push(1); bianGua.value.push(0) }
8172
else if (i === 1) { benGua.value.push(0); bianGua.value.push(0) }
8273
else if (i === 2) { benGua.value.push(1); bianGua.value.push(1) }
8374
else if (i === 3) { benGua.value.push(0); bianGua.value.push(1) }
8475
}
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('')]
89-
const guaGongIndex = gua64.findIndex(i => i.indexOf(benShangGua + benXiaGua) === 0)
90-
const guaGongWuXing = WU_XING[gua64[guaGongIndex - guaGongIndex % 8][0]]
76+
const benShangGua = BA_GUA_2_YAO[benGua.value.slice(0, 3).join('')]
77+
const benXiaGua = BA_GUA_2_YAO[benGua.value.slice(3, 6).join('')]
78+
const bianShangGua = BA_GUA_2_YAO[bianGua.value.slice(0, 3).join('')]
79+
const bianXiaGua = BA_GUA_2_YAO[bianGua.value.slice(3, 6).join('')]
80+
const guaGongIndex = GUA_64.findIndex(i => i.indexOf(BA_GUA_2_ALIAS[benShangGua] + BA_GUA_2_ALIAS[benXiaGua]) === 0)
81+
const guaGongWuXing = WU_XING[GUA_64[guaGongIndex - guaGongIndex % 8][0]]
9182
switch (guaGongIndex % 8) {
9283
case 0: shiYing.value[0] = ''; shiYing.value[3] = ''; break
93-
case 1: shiYing.value[5] = ''; shiYing.value[2] = ''; break
94-
case 2: shiYing.value[4] = ''; shiYing.value[1] = ''; break
84+
case 1: shiYing.value[3] = ''; shiYing.value[0] = ''; break
85+
case 2: shiYing.value[1] = ''; shiYing.value[4] = ''; break
9586
case 3: shiYing.value[3] = ''; shiYing.value[0] = ''; break
9687
case 4: shiYing.value[2] = ''; shiYing.value[5] = ''; break
97-
case 5: shiYing.value[1] = ''; shiYing.value[4] = ''; break
98-
case 6: shiYing.value[2] = ''; shiYing.value[5] = ''; break
99-
case 7: shiYing.value[3] = ''; shiYing.value[0] = ''; break
88+
case 5: shiYing.value[5] = ''; shiYing.value[2] = ''; break
89+
case 6: shiYing.value[4] = ''; shiYing.value[1] = ''; break
90+
case 7: shiYing.value[2] = ''; shiYing.value[5] = ''; break
10091
}
101-
benGuaName.value = gua64.find(i => i.indexOf(benShangGua + benXiaGua) === 0)
102-
bianGuaName.value = gua64.find(i => i.indexOf(bianShangGua + bianXiaGua) === 0)
92+
benGuaName.value = GUA_64.find(i => i.indexOf(BA_GUA_2_ALIAS[benShangGua] + BA_GUA_2_ALIAS[benXiaGua]) === 0)
93+
bianGuaName.value = GUA_64.find(i => i.indexOf(BA_GUA_2_ALIAS[bianShangGua] + BA_GUA_2_ALIAS[bianXiaGua]) === 0)
10394
benGuaNaJia.value = [NA_JIA[benShangGua][5], NA_JIA[benShangGua][4], NA_JIA[benShangGua][3], NA_JIA[benXiaGua][2], NA_JIA[benXiaGua][1], NA_JIA[benXiaGua][0]]
10495
bianGuaNaJia.value = [NA_JIA[bianShangGua][5], NA_JIA[bianShangGua][4], NA_JIA[bianShangGua][3], NA_JIA[bianXiaGua][2], NA_JIA[bianXiaGua][1], NA_JIA[bianXiaGua][0]]
10596
benGuaLiuQin.value = benGuaNaJia.value.map(i => LIU_QIN[guaGongWuXing][i[2]])

src/components/MeiHua.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
<script setup>
1919
import { ref } from 'vue'
20-
import { BA_GUA, BA_GUA_MAP, DI_ZHI } from '../assets/constant.js'
20+
import { BA_GUA, BA_GUA_2_YAO, BA_GUA_2_ALIAS, GUA_64, DI_ZHI } from '../assets/constant.js'
2121
2222
const shangGua = ref('')
2323
const xiaGua = ref('')

0 commit comments

Comments
 (0)