|
@@ -4,17 +4,14 @@
|
|
|
<div class="page-header">
|
|
<div class="page-header">
|
|
|
<h2 class="title">{{ t('开奖历史') }}</h2>
|
|
<h2 class="title">{{ t('开奖历史') }}</h2>
|
|
|
<el-button type="primary" circle @click="onQuery" :loading="loading">
|
|
<el-button type="primary" circle @click="onQuery" :loading="loading">
|
|
|
- <el-icon><Refresh /></el-icon>
|
|
|
|
|
|
|
+ <el-icon>
|
|
|
|
|
+ <Refresh />
|
|
|
|
|
+ </el-icon>
|
|
|
</el-button>
|
|
</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="lottery-grid">
|
|
<div class="lottery-grid">
|
|
|
- <div
|
|
|
|
|
- class="lottery-item"
|
|
|
|
|
- v-for="(item, index) in dataList"
|
|
|
|
|
- :key="index"
|
|
|
|
|
- @click="goToDetail(item)"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <div class="lottery-item" v-for="(item, index) in dataList" :key="index" @click="goToDetail(item)">
|
|
|
<div class="item-header">
|
|
<div class="item-header">
|
|
|
<div class="header-left">
|
|
<div class="header-left">
|
|
|
<span class="lottery-name">{{ item.name }}</span>
|
|
<span class="lottery-name">{{ item.name }}</span>
|
|
@@ -35,12 +32,8 @@
|
|
|
<div class="red-sum-ball">{{ getSum(getNumbers(item.lottery)) }}</div>
|
|
<div class="red-sum-ball">{{ getSum(getNumbers(item.lottery)) }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="tags-row">
|
|
<div class="tags-row">
|
|
|
- <div
|
|
|
|
|
- class="combo-tag"
|
|
|
|
|
- v-for="(tag, tagIdx) in getComboTags(item.lottery.combo)"
|
|
|
|
|
- :key="tagIdx"
|
|
|
|
|
- :class="getTagClass(tag)"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <div class="combo-tag" v-for="(tag, tagIdx) in getComboTags(item.lottery.combo)" :key="tagIdx"
|
|
|
|
|
+ :class="getTagClass(tag)">
|
|
|
{{ tag }}
|
|
{{ tag }}
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -62,17 +55,14 @@
|
|
|
|
|
|
|
|
<div v-else-if="[7, 9, 11].includes(item.type)" class="play-container">
|
|
<div v-else-if="[7, 9, 11].includes(item.type)" class="play-container">
|
|
|
<div class="blocks-row">
|
|
<div class="blocks-row">
|
|
|
- <div
|
|
|
|
|
- class="square-block"
|
|
|
|
|
- v-for="(num, idx) in getNumbers(item.lottery)"
|
|
|
|
|
- :key="idx"
|
|
|
|
|
- :style="{ backgroundColor: getNumColor(num) }"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <div class="square-block" v-for="(num, idx) in getNumbers(item.lottery)" :key="idx"
|
|
|
|
|
+ :style="{ backgroundColor: getNumColor(num) }">
|
|
|
{{ num }}
|
|
{{ num }}
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="tags-row mt-tags" v-if="item.lottery.open_code_other">
|
|
<div class="tags-row mt-tags" v-if="item.lottery.open_code_other">
|
|
|
- <div class="combo-tag tag-blue" v-for="(tag, tagIdx) in getOtherTags(item.lottery.open_code_other)" :key="tagIdx">
|
|
|
|
|
|
|
+ <div class="combo-tag tag-blue" v-for="(tag, tagIdx) in getOtherTags(item.lottery.open_code_other)"
|
|
|
|
|
+ :key="tagIdx">
|
|
|
{{ tag }}
|
|
{{ tag }}
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -80,16 +70,13 @@
|
|
|
|
|
|
|
|
<div v-else-if="[8, 10].includes(item.type)" class="play-container">
|
|
<div v-else-if="[8, 10].includes(item.type)" class="play-container">
|
|
|
<div class="balls-row">
|
|
<div class="balls-row">
|
|
|
- <div
|
|
|
|
|
- class="ball"
|
|
|
|
|
- v-for="(num, idx) in getNumbers(item.lottery)"
|
|
|
|
|
- :key="idx"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <div class="ball" v-for="(num, idx) in getNumbers(item.lottery)" :key="idx">
|
|
|
{{ num }}
|
|
{{ num }}
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="tags-row mt-tags" v-if="item.lottery.open_code_other">
|
|
<div class="tags-row mt-tags" v-if="item.lottery.open_code_other">
|
|
|
- <div class="combo-tag tag-blue" v-for="(tag, tagIdx) in getOtherTags(item.lottery.open_code_other)" :key="tagIdx">
|
|
|
|
|
|
|
+ <div class="combo-tag tag-blue" v-for="(tag, tagIdx) in getOtherTags(item.lottery.open_code_other)"
|
|
|
|
|
+ :key="tagIdx">
|
|
|
{{ tag }}
|
|
{{ tag }}
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -97,21 +84,14 @@
|
|
|
|
|
|
|
|
<div v-else-if="[12, 13].includes(item.type)" class="play-container">
|
|
<div v-else-if="[12, 13].includes(item.type)" class="play-container">
|
|
|
<div class="dice-row">
|
|
<div class="dice-row">
|
|
|
- <div
|
|
|
|
|
- class="dice"
|
|
|
|
|
- v-for="(num, idx) in getNumbers(item.lottery)"
|
|
|
|
|
- :key="idx"
|
|
|
|
|
- >
|
|
|
|
|
- <div
|
|
|
|
|
- v-for="(show, dotIdx) in getDiceDots(num)"
|
|
|
|
|
- :key="dotIdx"
|
|
|
|
|
- class="dot"
|
|
|
|
|
- :class="{ 'visible': show, 'red-dot': Number(num) === 1 || Number(num) === 4 }"
|
|
|
|
|
- ></div>
|
|
|
|
|
|
|
+ <div class="dice" v-for="(num, idx) in getNumbers(item.lottery)" :key="idx">
|
|
|
|
|
+ <div v-for="(show, dotIdx) in getDiceDots(num)" :key="dotIdx" class="dot"
|
|
|
|
|
+ :class="{ 'visible': show, 'red-dot': Number(num) === 1 || Number(num) === 4 }"></div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="tags-row mt-tags" v-if="item.lottery.open_code_other">
|
|
<div class="tags-row mt-tags" v-if="item.lottery.open_code_other">
|
|
|
- <div class="combo-tag tag-blue" v-for="(tag, tagIdx) in getOtherTags(item.lottery.open_code_other)" :key="tagIdx">
|
|
|
|
|
|
|
+ <div class="combo-tag tag-blue" v-for="(tag, tagIdx) in getOtherTags(item.lottery.open_code_other)"
|
|
|
|
|
+ :key="tagIdx">
|
|
|
{{ tag }}
|
|
{{ tag }}
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -206,12 +186,12 @@ const getNumColor = (num) => {
|
|
|
|
|
|
|
|
const getDiceDots = (num) => {
|
|
const getDiceDots = (num) => {
|
|
|
const layouts = {
|
|
const layouts = {
|
|
|
- 1: [0, 0, 0, 0, 1, 0, 0, 0, 0],
|
|
|
|
|
- 2: [1, 0, 0, 0, 0, 0, 0, 0, 1],
|
|
|
|
|
- 3: [1, 0, 0, 0, 1, 0, 0, 0, 1],
|
|
|
|
|
- 4: [1, 0, 1, 0, 0, 0, 1, 0, 1],
|
|
|
|
|
- 5: [1, 0, 1, 0, 1, 0, 1, 0, 1],
|
|
|
|
|
- 6: [1, 0, 1, 1, 0, 1, 1, 0, 1]
|
|
|
|
|
|
|
+ 1: [0, 0, 0, 0, 1, 0, 0, 0, 0],
|
|
|
|
|
+ 2: [1, 0, 0, 0, 0, 0, 0, 0, 1],
|
|
|
|
|
+ 3: [1, 0, 0, 0, 1, 0, 0, 0, 1],
|
|
|
|
|
+ 4: [1, 0, 1, 0, 0, 0, 1, 0, 1],
|
|
|
|
|
+ 5: [1, 0, 1, 0, 1, 0, 1, 0, 1],
|
|
|
|
|
+ 6: [1, 0, 1, 1, 0, 1, 1, 0, 1]
|
|
|
};
|
|
};
|
|
|
return layouts[Number(num)] || layouts[1];
|
|
return layouts[Number(num)] || layouts[1];
|
|
|
};
|
|
};
|
|
@@ -245,6 +225,7 @@ const goToDetail = (item) => {
|
|
|
justify-content: space-between;
|
|
justify-content: space-between;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
margin-bottom: 25px;
|
|
margin-bottom: 25px;
|
|
|
|
|
+
|
|
|
.title {
|
|
.title {
|
|
|
color: #ffffff;
|
|
color: #ffffff;
|
|
|
font-size: 26px;
|
|
font-size: 26px;
|
|
@@ -268,7 +249,7 @@ const goToDetail = (item) => {
|
|
|
|
|
|
|
|
&:hover {
|
|
&:hover {
|
|
|
transform: translateY(-5px);
|
|
transform: translateY(-5px);
|
|
|
- box-shadow: 0 10px 20px rgba(0,0,0,0.5);
|
|
|
|
|
|
|
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5);
|
|
|
border-color: #f8b932;
|
|
border-color: #f8b932;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -282,17 +263,20 @@ const goToDetail = (item) => {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
gap: 12px;
|
|
gap: 12px;
|
|
|
|
|
+
|
|
|
.lottery-name {
|
|
.lottery-name {
|
|
|
font-size: 18px;
|
|
font-size: 18px;
|
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
|
color: #ffffff;
|
|
color: #ffffff;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
.lottery-issue {
|
|
.lottery-issue {
|
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
|
color: #f8b932;
|
|
color: #f8b932;
|
|
|
font-weight: 500;
|
|
font-weight: 500;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
.header-right {
|
|
.header-right {
|
|
|
.lottery-time {
|
|
.lottery-time {
|
|
|
font-size: 13px;
|
|
font-size: 13px;
|
|
@@ -302,11 +286,13 @@ const goToDetail = (item) => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.play-container {
|
|
.play-container {
|
|
|
|
|
+
|
|
|
// ======== PC28 ========
|
|
// ======== PC28 ========
|
|
|
.equation-row {
|
|
.equation-row {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
margin-bottom: 15px;
|
|
margin-bottom: 15px;
|
|
|
|
|
+
|
|
|
.grey-ball {
|
|
.grey-ball {
|
|
|
width: 36px;
|
|
width: 36px;
|
|
|
height: 36px;
|
|
height: 36px;
|
|
@@ -319,6 +305,7 @@ const goToDetail = (item) => {
|
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
.red-sum-ball {
|
|
.red-sum-ball {
|
|
|
width: 36px;
|
|
width: 36px;
|
|
|
height: 36px;
|
|
height: 36px;
|
|
@@ -339,11 +326,13 @@ const goToDetail = (item) => {
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
flex-wrap: wrap;
|
|
flex-wrap: wrap;
|
|
|
gap: 6px;
|
|
gap: 6px;
|
|
|
|
|
+
|
|
|
.lhc-col {
|
|
.lhc-col {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
gap: 4px;
|
|
gap: 4px;
|
|
|
|
|
+
|
|
|
.lhc-ball {
|
|
.lhc-ball {
|
|
|
width: 34px;
|
|
width: 34px;
|
|
|
height: 34px;
|
|
height: 34px;
|
|
@@ -357,20 +346,38 @@ const goToDetail = (item) => {
|
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
|
border: 2px solid transparent;
|
|
border: 2px solid transparent;
|
|
|
}
|
|
}
|
|
|
- .color-red { border-color: #f75b5b; }
|
|
|
|
|
- .color-blue { border-color: #49b3ff; }
|
|
|
|
|
- .color-green { border-color: #40b17b; }
|
|
|
|
|
- .lhc-zodiac { font-size: 12px; color: #aaa; }
|
|
|
|
|
|
|
+
|
|
|
|
|
+ .color-red {
|
|
|
|
|
+ border-color: #f75b5b;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .color-blue {
|
|
|
|
|
+ border-color: #49b3ff;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .color-green {
|
|
|
|
|
+ border-color: #40b17b;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .lhc-zodiac {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #aaa;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .operator { color: #888; font-size: 20px; margin: 0 5px; }
|
|
|
|
|
|
|
+ .operator {
|
|
|
|
|
+ color: #888;
|
|
|
|
|
+ font-size: 20px;
|
|
|
|
|
+ margin: 0 5px;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
// ======== 时时彩等球类 ========
|
|
// ======== 时时彩等球类 ========
|
|
|
.balls-row {
|
|
.balls-row {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
flex-wrap: wrap;
|
|
flex-wrap: wrap;
|
|
|
gap: 10px;
|
|
gap: 10px;
|
|
|
|
|
+
|
|
|
.ball {
|
|
.ball {
|
|
|
width: 34px;
|
|
width: 34px;
|
|
|
height: 34px;
|
|
height: 34px;
|
|
@@ -389,6 +396,7 @@ const goToDetail = (item) => {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
flex-wrap: wrap;
|
|
flex-wrap: wrap;
|
|
|
gap: 6px;
|
|
gap: 6px;
|
|
|
|
|
+
|
|
|
.square-block {
|
|
.square-block {
|
|
|
width: 30px;
|
|
width: 30px;
|
|
|
height: 30px;
|
|
height: 30px;
|
|
@@ -406,6 +414,7 @@ const goToDetail = (item) => {
|
|
|
.dice-row {
|
|
.dice-row {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
gap: 15px;
|
|
gap: 15px;
|
|
|
|
|
+
|
|
|
.dice {
|
|
.dice {
|
|
|
display: grid;
|
|
display: grid;
|
|
|
grid-template-columns: repeat(3, 1fr);
|
|
grid-template-columns: repeat(3, 1fr);
|
|
@@ -415,10 +424,21 @@ const goToDetail = (item) => {
|
|
|
background-color: #eee;
|
|
background-color: #eee;
|
|
|
border-radius: 8px;
|
|
border-radius: 8px;
|
|
|
padding: 4px;
|
|
padding: 4px;
|
|
|
|
|
+
|
|
|
.dot {
|
|
.dot {
|
|
|
- width: 8px; height: 8px; border-radius: 50%; background-color: transparent; place-self: center;
|
|
|
|
|
- &.visible { background-color: #222; }
|
|
|
|
|
- &.visible.red-dot { background-color: #e54d42; }
|
|
|
|
|
|
|
+ width: 8px;
|
|
|
|
|
+ height: 8px;
|
|
|
|
|
+ border-radius: 50%;
|
|
|
|
|
+ background-color: transparent;
|
|
|
|
|
+ place-self: center;
|
|
|
|
|
+
|
|
|
|
|
+ &.visible {
|
|
|
|
|
+ background-color: #222;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ &.visible.red-dot {
|
|
|
|
|
+ background-color: #e54d42;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -428,6 +448,7 @@ const goToDetail = (item) => {
|
|
|
flex-wrap: wrap;
|
|
flex-wrap: wrap;
|
|
|
gap: 8px;
|
|
gap: 8px;
|
|
|
margin-top: 15px;
|
|
margin-top: 15px;
|
|
|
|
|
+
|
|
|
.combo-tag {
|
|
.combo-tag {
|
|
|
padding: 3px 10px;
|
|
padding: 3px 10px;
|
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
@@ -435,11 +456,26 @@ const goToDetail = (item) => {
|
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
|
color: #fff;
|
|
color: #fff;
|
|
|
}
|
|
}
|
|
|
- .tag-red { background-color: #f07474; }
|
|
|
|
|
- .tag-green { background-color: #79c55b; }
|
|
|
|
|
- .tag-yellow { background-color: #eebb4d; }
|
|
|
|
|
- .tag-blue { background-color: #5b9cf7; }
|
|
|
|
|
- .tag-default { background-color: #444; }
|
|
|
|
|
|
|
+
|
|
|
|
|
+ .tag-red {
|
|
|
|
|
+ background-color: #f07474;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .tag-green {
|
|
|
|
|
+ background-color: #79c55b;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .tag-yellow {
|
|
|
|
|
+ background-color: #eebb4d;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .tag-blue {
|
|
|
|
|
+ background-color: #5b9cf7;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .tag-default {
|
|
|
|
|
+ background-color: #444;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|