Skip to content

Commit 628bdd7

Browse files
committed
.
1 parent 7b65bc8 commit 628bdd7

File tree

3 files changed

+217
-13
lines changed

3 files changed

+217
-13
lines changed

src/assets/constant.js

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ export const TIAN_GAN = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛',
44
export const YANG_GAN = ['甲', '丙', '戊', '庚', '壬']
55
// 阴干
66
export const YIN_GAN = ['乙', '丁', '己', '辛', '癸']
7+
78
// 地支
89
export const DI_ZHI = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']
910
// 阳支
1011
export const YANG_ZHI = ['子', '寅', '辰', '午', '申', '戌']
1112
// 阴支
1213
export const YIN_ZHI = ['丑', '卯', '巳', '未', '酉', '亥']
14+
1315
// 六十甲子
1416
export const JIA_ZI = [
1517
'甲子', '乙丑', '丙寅', '丁卯', '戊辰', '己巳', '庚午', '辛未', '壬申', '癸酉',
@@ -138,17 +140,20 @@ export const NA_JIA = {
138140
// 奇仪
139141
export const QI_YI = ['戊', '己', '庚', '辛', '壬', '癸', '丁', '丙', '乙']
140142

141-
// 飞盘九星
142-
export const JIU_XING_F = ['蓬', '芮', '冲', '辅', '禽', '心', '柱', '任', '英']
143-
// 转盘九星(天禽另寄)
144-
export const JIU_XING_Z = ['蓬', '任', '冲', '辅', '英', '芮', '柱', '心']
143+
// 旬首
144+
export const XUN_SHOU = ['甲子戊', '甲戌己', '甲申庚', '甲午辛', '甲辰壬', '甲寅癸']
145+
146+
// 飞盘星
147+
export const XING_F = ['蓬', '芮', '冲', '辅', '禽', '心', '柱', '任', '英']
148+
// 转盘星
149+
export const XING_Z = ['蓬', '任', '冲', '辅', '英', '芮', '柱', '心']
145150

146-
// 飞盘八门
147-
export const BA_MEN_F = ['休', '死', '伤', '杜', '开', '惊', '生', '景']
148-
// 转盘八门
149-
export const BA_MEN_Z = ['休', '生', '伤', '杜', '景', '死', '惊', '开']
151+
// 飞盘门
152+
export const MEN_F = ['休', '死', '伤', '杜', '中', '开', '惊', '生', '景']
153+
// 转盘门
154+
export const MEN_Z = ['休', '生', '伤', '杜', '景', '死', '惊', '开']
150155

151-
// 飞盘九神
152-
export const JIU_SHEN = ['符', '蛇', '阴', '合', '陈', '常', '雀', '地', '天']
153-
// 转盘八神
154-
export const BA_SHEN = ['符', '蛇', '阴', '合', '虎', '武', '地', '天']
156+
// 飞盘神
157+
export const SHEN_F = ['符', '蛇', '阴', '合', '陈', '常', '雀', '地', '天']
158+
// 转盘神
159+
export const SHEN_Z = ['符', '蛇', '阴', '合', '虎', '武', '地', '天']

src/components/LiuYao.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<p class="pFont">{{benGuaName.slice(3)}}</p>
2525
<p class="pFont" v-for="(j, i) in 6">{{ benGuaLiuQin[i] + '&emsp;' + (shiYing[i]||'&emsp;') + '&emsp;' + (benGua[i]?'▅▅▅▅▅':'▅▅&emsp;▅▅') + (false?'&emsp;'+benGuaNaJia[i]:'') + '&emsp;' + (yao[i]===0?'〇':(yao[i]===3?'✖':'&emsp;')) }}</p>
2626
</el-col>
27-
<el-col v-show="false">
27+
<el-col>
2828
<p class="pFont">{{bianGuaName.slice(3)}}&emsp;&emsp;</p>
2929
<p class="pFont" v-for="(j, i) in 6">{{ (yao[i]===0||yao[i]===3)?bianGuaLiuQin[i]:'&emsp;&emsp;' + '&emsp;' + (bianGua[i]?'▅▅▅▅▅':'▅▅&emsp;▅▅') + '&emsp;' + bianGuaNaJia[i] }}</p>
3030
</el-col>

src/components/QiMen.vue

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,207 @@
11
<template>
2+
<div>
3+
<select v-model="shiGan">
4+
<option disabled value="">时干</option>
5+
<option v-for="i in TIAN_GAN" :value="i">{{i}}</option>
6+
</select>
7+
<select v-model="shiZhi">
8+
<option disabled value="">时支</option>
9+
<option v-for="i in (shiGan?(YANG_GAN.includes(shiGan)?YANG_ZHI:YIN_ZHI):DI_ZHI)" :value="i">{{i}}</option>
10+
</select>
11+
<select v-model="juShu">
12+
<option disabled value="0">局数</option>
13+
<option v-for="i in [1,2,3,4,5,6,7,8,9]" :value="i">阳 {{i}} 局</option>
14+
<option v-for="i in [1,2,3,4,5,6,7,8,9]" :value="-i">阴 {{i}} 局</option>
15+
</select>
16+
<button @click="paiPan('z')">排转盘</button>
17+
<button @click="paiPan('f')">排飞盘</button>
18+
</div>
19+
<span>旬首:{{xunShou}}&emsp;&emsp;值符:{{zhiFu}}&emsp;&emsp;值使:{{zhiShi}}</span>
20+
<div class="pan">
21+
<div class="gong gong-4">
22+
<div class="gong inner inner-1">{{cfg[4][1]}}</div>
23+
<div class="gong inner inner-2">{{cfg[4][2]}}</div>
24+
<div class="gong inner inner-3">{{cfg[4][3]}}</div>
25+
<div class="gong inner inner-4">{{cfg[4][4]}}</div>
26+
<div class="gong inner inner-5">{{cfg[4][5]}}</div>
27+
<div class="gong inner inner-6">{{cfg[4][6]}}</div>
28+
<div class="gong inner inner-7">{{cfg[4][7]}}</div>
29+
<div class="gong inner inner-8">{{cfg[4][8]}}</div>
30+
<div class="gong inner inner-9">{{cfg[4][9]}}</div>
31+
</div>
32+
<div class="gong gong-9">
33+
<div class="gong inner inner-1">{{cfg[9][1]}}</div>
34+
<div class="gong inner inner-2">{{cfg[9][2]}}</div>
35+
<div class="gong inner inner-3">{{cfg[9][3]}}</div>
36+
<div class="gong inner inner-4">{{cfg[9][4]}}</div>
37+
<div class="gong inner inner-5">{{cfg[9][5]}}</div>
38+
<div class="gong inner inner-6">{{cfg[9][6]}}</div>
39+
<div class="gong inner inner-7">{{cfg[9][7]}}</div>
40+
<div class="gong inner inner-8">{{cfg[9][8]}}</div>
41+
<div class="gong inner inner-9">{{cfg[9][9]}}</div>
42+
</div>
43+
<div class="gong gong-2">
44+
<div class="gong inner inner-1">{{cfg[2][1]}}</div>
45+
<div class="gong inner inner-2">{{cfg[2][2]}}</div>
46+
<div class="gong inner inner-3">{{cfg[2][3]}}</div>
47+
<div class="gong inner inner-4">{{cfg[2][4]}}</div>
48+
<div class="gong inner inner-5">{{cfg[2][5]}}</div>
49+
<div class="gong inner inner-6">{{cfg[2][6]}}</div>
50+
<div class="gong inner inner-7">{{cfg[2][7]}}</div>
51+
<div class="gong inner inner-8">{{cfg[2][8]}}</div>
52+
<div class="gong inner inner-9">{{cfg[2][9]}}</div>
53+
</div>
54+
<div class="gong gong-3">
55+
<div class="gong inner inner-1">{{cfg[3][1]}}</div>
56+
<div class="gong inner inner-2">{{cfg[3][2]}}</div>
57+
<div class="gong inner inner-3">{{cfg[3][3]}}</div>
58+
<div class="gong inner inner-4">{{cfg[3][4]}}</div>
59+
<div class="gong inner inner-5">{{cfg[3][5]}}</div>
60+
<div class="gong inner inner-6">{{cfg[3][6]}}</div>
61+
<div class="gong inner inner-7">{{cfg[3][7]}}</div>
62+
<div class="gong inner inner-8">{{cfg[3][8]}}</div>
63+
<div class="gong inner inner-9">{{cfg[3][9]}}</div>
64+
</div>
65+
<div class="gong gong-5">
66+
<div class="gong inner inner-1">{{cfg[5][1]}}</div>
67+
<div class="gong inner inner-2">{{cfg[5][2]}}</div>
68+
<div class="gong inner inner-3">{{cfg[5][3]}}</div>
69+
<div class="gong inner inner-4">{{cfg[5][4]}}</div>
70+
<div class="gong inner inner-5">{{cfg[5][5]}}</div>
71+
<div class="gong inner inner-6">{{cfg[5][6]}}</div>
72+
<div class="gong inner inner-7">{{cfg[5][7]}}</div>
73+
<div class="gong inner inner-8">{{cfg[5][8]}}</div>
74+
<div class="gong inner inner-9">{{cfg[5][9]}}</div>
75+
</div>
76+
<div class="gong gong-7">
77+
<div class="gong inner inner-1">{{cfg[7][1]}}</div>
78+
<div class="gong inner inner-2">{{cfg[7][2]}}</div>
79+
<div class="gong inner inner-3">{{cfg[7][3]}}</div>
80+
<div class="gong inner inner-4">{{cfg[7][4]}}</div>
81+
<div class="gong inner inner-5">{{cfg[7][5]}}</div>
82+
<div class="gong inner inner-6">{{cfg[7][6]}}</div>
83+
<div class="gong inner inner-7">{{cfg[7][7]}}</div>
84+
<div class="gong inner inner-8">{{cfg[7][8]}}</div>
85+
<div class="gong inner inner-9">{{cfg[7][9]}}</div>
86+
</div>
87+
<div class="gong gong-8">
88+
<div class="gong inner inner-1">{{cfg[8][1]}}</div>
89+
<div class="gong inner inner-2">{{cfg[8][2]}}</div>
90+
<div class="gong inner inner-3">{{cfg[8][3]}}</div>
91+
<div class="gong inner inner-4">{{cfg[8][4]}}</div>
92+
<div class="gong inner inner-5">{{cfg[8][5]}}</div>
93+
<div class="gong inner inner-6">{{cfg[8][6]}}</div>
94+
<div class="gong inner inner-7">{{cfg[8][7]}}</div>
95+
<div class="gong inner inner-8">{{cfg[8][8]}}</div>
96+
<div class="gong inner inner-9">{{cfg[8][9]}}</div>
97+
</div>
98+
<div class="gong gong-1">
99+
<div class="gong inner inner-1">{{cfg[1][1]}}</div>
100+
<div class="gong inner inner-2">{{cfg[1][2]}}</div>
101+
<div class="gong inner inner-3">{{cfg[1][3]}}</div>
102+
<div class="gong inner inner-4">{{cfg[1][4]}}</div>
103+
<div class="gong inner inner-5">{{cfg[1][5]}}</div>
104+
<div class="gong inner inner-6">{{cfg[1][6]}}</div>
105+
<div class="gong inner inner-7">{{cfg[1][7]}}</div>
106+
<div class="gong inner inner-8">{{cfg[1][8]}}</div>
107+
<div class="gong inner inner-9">{{cfg[1][9]}}</div>
108+
</div>
109+
<div class="gong gong-6">
110+
<div class="gong inner inner-1">{{cfg[6][1]}}</div>
111+
<div class="gong inner inner-2">{{cfg[6][2]}}</div>
112+
<div class="gong inner inner-3">{{cfg[6][3]}}</div>
113+
<div class="gong inner inner-4">{{cfg[6][4]}}</div>
114+
<div class="gong inner inner-5">{{cfg[6][5]}}</div>
115+
<div class="gong inner inner-6">{{cfg[6][6]}}</div>
116+
<div class="gong inner inner-7">{{cfg[6][7]}}</div>
117+
<div class="gong inner inner-8">{{cfg[6][8]}}</div>
118+
<div class="gong inner inner-9">{{cfg[6][9]}}</div>
119+
</div>
120+
</div>
2121
</template>
3122

4123
<script setup>
124+
import { ref } from 'vue'
125+
import {
126+
DI_ZHI,
127+
JIA_ZI, MEN_F,
128+
MEN_Z,
129+
QI_YI,
130+
SHEN_Z,
131+
TIAN_GAN, XING_F, XING_Z,
132+
XUN_SHOU,
133+
YANG_GAN,
134+
YANG_ZHI,
135+
YIN_ZHI
136+
} from '../assets/constant.js'
137+
138+
let shiGanGong = 0
139+
let shiZhiGong = 0
140+
let xunShouGong = 0
141+
142+
const shiGan = ref('')
143+
const shiZhi = ref('')
144+
const juShu = ref(-6)
145+
const xunShou = ref('')
146+
const zhiFu = ref('')
147+
const zhiShi = ref('')
148+
const cfg = ref({1:{},2:{},3:{},4:{},5:{},6:{},7:{},8:{},9:{}})
149+
150+
function paiQiYi() {
151+
const qiYiList = juShu.value > 0 ? QI_YI : [QI_YI[0], ...QI_YI.slice().reverse()]
152+
for (let i = 0; i < 9; i++) {
153+
cfg.value[(i + Math.abs(juShu.value) - 1) % 9 + 1][9] = qiYiList[i]
154+
}
155+
}
156+
function paiFeiPan() {
157+
zhiFu.value = XING_F[xunShouGong - 1]
158+
zhiShi.value = MEN_F[xunShouGong - 1]
159+
cfg.value[shiGanGong][5] = zhiFu.value
160+
cfg.value[shiZhiGong][8] = zhiShi.value
161+
// for (let i = 0; i < 9; i++) {
162+
// const index = XING_F.indexOf(zhiFu.value)
163+
// cfg.value[][5]
164+
// }
165+
}
166+
function paiZhuanPan() {
167+
const transer = [1, 8, 3, 4, 9, 2, 7, 6]
168+
zhiFu.value = xunShouGong === 5 ? '' : XING_Z[transer.indexOf(xunShouGong)]
169+
zhiShi.value = xunShouGong === 5 ? '' : MEN_Z[transer.indexOf(xunShouGong)]
170+
}
171+
function paiPan(type) {
172+
if (!shiGan.value || !shiZhi.value || !juShu.value) return
173+
cfg.value = {1:{},2:{},3:{},4:{},5:{},6:{},7:{},8:{},9:{}}
174+
paiQiYi()
175+
const jiaZiIndex = JIA_ZI.indexOf(shiGan.value + shiZhi.value)
176+
xunShou.value = XUN_SHOU[(jiaZiIndex - jiaZiIndex % 10) / 10]
177+
xunShouGong = +Object.keys(cfg.value).find(k => cfg.value[k][9] === xunShou.value[2])
178+
shiGanGong = +Object.keys(cfg.value).find(k => cfg.value[k][9] === shiGan.value)
179+
shiZhiGong = (xunShouGong + jiaZiIndex % 10 * (juShu.value > 0 ? 1 : -1) + 9 - 1) % 9 + 1
180+
if (type === 'f') paiFeiPan()
181+
else if (type === 'z') paiZhuanPan()
182+
}
5183
</script>
6184

7185
<style scoped>
186+
select, button {
187+
margin: 5px;
188+
}
189+
.pan {
190+
display: flex;
191+
flex-wrap: wrap;
192+
height: 30vh;
193+
width: 30vh;
194+
}
195+
.gong {
196+
display: flex;
197+
flex: 1 1 32%;
198+
flex-wrap: wrap;
199+
height: 33%;
200+
border: 1px solid;
201+
}
202+
.inner {
203+
border: 0;
204+
align-items: center;
205+
justify-content: center;
206+
}
8207
</style>

0 commit comments

Comments
 (0)