diff --git a/src/App.vue b/src/App.vue
index 37d5c66..d45b4ab 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -203,4 +203,19 @@ button::after {
margin-top: 20px;
color: #fff9;
}
+.see-more {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-top: 5px;
+}
+.see-more > text {
+ color: #39a8ff;
+ margin-top: 2px;
+ font-size: 13px;
+}
+.see-more > image {
+ width: 15px;
+ margin-top: 2px;
+}
diff --git a/src/components/AppBackground.vue b/src/components/AppBackground.vue
index 160c042..6011659 100644
--- a/src/components/AppBackground.vue
+++ b/src/components/AppBackground.vue
@@ -5,11 +5,15 @@ const props = defineProps({
type: Number,
default: 0,
},
+ bgColor: {
+ type: String,
+ default: "#050b19",
+ },
});
-
+
+
@@ -34,7 +44,6 @@ const props = defineProps({
left: 0;
top: 0;
z-index: -1;
- background-color: #050b19;
}
.bg-image {
diff --git a/src/components/Container.vue b/src/components/Container.vue
index 10591b5..d0aafb9 100644
--- a/src/components/Container.vue
+++ b/src/components/Container.vue
@@ -32,6 +32,14 @@ defineProps({
type: Boolean,
default: false,
},
+ bgColor: {
+ type: String,
+ default: "#050b19",
+ },
+ whiteBackArrow: {
+ type: Boolean,
+ default: true,
+ },
});
const isIos = ref(true);
const showHint = ref(false);
@@ -67,8 +75,13 @@ const goBack = () => {
-
-
+
+
+import { ref, onMounted, onUnmounted } from "vue";
+const props = defineProps({
+ itemIndex: {
+ type: Number,
+ default: 0,
+ },
+ expand: {
+ type: Boolean,
+ default: false,
+ },
+ onExpand: {
+ type: Function,
+ default: null,
+ },
+ onSelect: {
+ type: Function,
+ default: () => {},
+ },
+});
+const bowTypes = [
+ {
+ name: "反曲弓",
+ image:
+ "https://api.shelingxingqiu.com/attachment/2025-07-28/dbnincayxdzicpeidq.png",
+ },
+ {
+ name: "复合弓",
+ image:
+ "https://api.shelingxingqiu.com/attachment/2025-07-28/dbnincawegb0dhs0sw.png",
+ },
+ {
+ name: "美洲猎弓",
+ image:
+ "https://api.shelingxingqiu.com/attachment/2025-07-28/dbnincaxxeqlufc3nl.png",
+ },
+ {
+ name: "传统弓",
+ image:
+ "https://api.shelingxingqiu.com/attachment/2025-07-28/dbnincastq3c3xkzdu.png",
+ },
+ {
+ name: "光弓",
+ image:
+ "https://api.shelingxingqiu.com/attachment/2025-07-28/dbnincaur573p7lxh7.png",
+ },
+];
+const itemTexts = ["选择弓种", "选择练习距离", "选择靶纸", "选择组/箭数"];
+const distances = [5, 8, 10, 18, 25, 30, 50, 60, 70];
+const bowtargetTypes = [
+ "40全环靶",
+ "80全环靶",
+ "122全环靶",
+ "40半环靶",
+ "60半环靶",
+ "80半环靶",
+ "三连靶",
+ "品字靶",
+ "复合三连靶",
+ "复合品字靶",
+];
+const groupArrows = [3, 6, 12, 18];
+
+const selectedIndex = ref(-1);
+const secondSelectIndex = ref(-1);
+const onSelectItem = (index) => {
+ selectedIndex.value = index;
+ if (props.itemIndex === 0) {
+ props.onSelect(props.itemIndex, bowTypes[index].name);
+ } else if (props.itemIndex === 1) {
+ props.onSelect(props.itemIndex, distances[index]);
+ } else if (props.itemIndex === 2) {
+ props.onSelect(props.itemIndex, bowtargetTypes[index]);
+ } else if (props.itemIndex === 3 && secondSelectIndex.value !== -1) {
+ props.onSelect(
+ props.itemIndex,
+ `${selectedIndex.value + 1}组/${groupArrows[secondSelectIndex.value]}箭`
+ );
+ }
+};
+const onSelectSecondItem = (index) => {
+ secondSelectIndex.value = index;
+ if (selectedIndex.value !== -1) {
+ props.onSelect(
+ props.itemIndex,
+ `${selectedIndex.value + 1}组/${groupArrows[secondSelectIndex.value]}箭`
+ );
+ }
+};
+const meter = ref("");
+const onMeterChange = (e) => {
+ meter.value = e.detail.value;
+ props.onSelect(props.itemIndex, e.detail.value);
+};
+
+
+
+
+ onExpand(itemIndex, !expand)">
+ {{
+ itemIndex !== 3 ? itemTexts[itemIndex] : "选择组"
+ }}
+
+ {{
+ bowTypes[selectedIndex]
+ ? bowTypes[selectedIndex].name
+ : itemTexts[itemIndex]
+ }}
+ {{
+ distances[selectedIndex]
+ ? distances[selectedIndex] + " 米"
+ : selectedIndex === 9
+ ? meter + " 米"
+ : itemTexts[itemIndex]
+ }}
+ {{
+ bowtargetTypes[selectedIndex]
+ ? bowtargetTypes[selectedIndex]
+ : itemTexts[itemIndex]
+ }}
+ {{
+ selectedIndex !== -1 && secondSelectIndex !== -1
+ ? `${selectedIndex + 1}组/${groupArrows[secondSelectIndex]}箭`
+ : itemTexts[itemIndex]
+ }}
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+ {{ item }}
+ 米
+
+
+ (selectedIndex = 9)"
+ @change="onMeterChange"
+ />
+ 米
+
+
+
+
+ {{ item.substring(0, item.length - 3) }}
+ {{ item.substring(item.length - 3) }}
+
+
+
+
+
+ {{ i }}
+ 组
+
+
+ 选择每组的箭数
+
+
+ {{ item }}
+ 箭
+
+
+
+
+
+
+
diff --git a/src/components/Header.vue b/src/components/Header.vue
index 9b4ab99..fa366e3 100644
--- a/src/components/Header.vue
+++ b/src/components/Header.vue
@@ -11,6 +11,10 @@ const props = defineProps({
type: Function,
default: null,
},
+ whiteBackArrow: {
+ type: Boolean,
+ default: true,
+ },
});
const onClick = () => {
@@ -46,9 +50,14 @@ onUnmounted(() => {
-
+
+
-
+
{
:style="{
width: width,
borderRadius: rounded + 'px',
- backgroundColor: disabled ? '#757575' : backgroundColor,
+ backgroundColor: disabled ? disabledColor : backgroundColor,
color,
}"
open-type="getUserInfo"
diff --git a/src/pages.json b/src/pages.json
index ce08b29..5c0f38e 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -1,8 +1,17 @@
{
"pages": [
+ {
+ "path": "pages/point-book-create"
+ },
{
"path": "pages/index"
},
+ {
+ "path": "pages/point-book-list"
+ },
+ {
+ "path": "pages/point-book-detail"
+ },
{
"path": "pages/match-page"
},
diff --git a/src/pages/point-book-create.vue b/src/pages/point-book-create.vue
new file mode 100644
index 0000000..3cb81fd
--- /dev/null
+++ b/src/pages/point-book-create.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 开始计分
+
+
+ 历史计分记录
+
+
+
+
+
+
+
diff --git a/src/pages/point-book-detail.vue b/src/pages/point-book-detail.vue
new file mode 100644
index 0000000..11f09b7
--- /dev/null
+++ b/src/pages/point-book-detail.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/src/pages/point-book-list.vue b/src/pages/point-book-list.vue
new file mode 100644
index 0000000..ed80652
--- /dev/null
+++ b/src/pages/point-book-list.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/src/static/app-bg3.png b/src/static/app-bg3.png
new file mode 100644
index 0000000..43288cb
Binary files /dev/null and b/src/static/app-bg3.png differ
diff --git a/src/static/arrow-grey.png b/src/static/arrow-grey.png
new file mode 100644
index 0000000..5faf819
Binary files /dev/null and b/src/static/arrow-grey.png differ
diff --git a/src/static/back-black.png b/src/static/back-black.png
new file mode 100644
index 0000000..4f86e03
Binary files /dev/null and b/src/static/back-black.png differ
diff --git a/src/static/back.png b/src/static/back.png
index 0c52813..3fac35f 100644
Binary files a/src/static/back.png and b/src/static/back.png differ
diff --git a/src/static/bowtarget-example.png b/src/static/bowtarget-example.png
new file mode 100644
index 0000000..ac38f12
Binary files /dev/null and b/src/static/bowtarget-example.png differ
diff --git a/src/static/point-book-banner.png b/src/static/point-book-banner.png
new file mode 100644
index 0000000..58f73f1
Binary files /dev/null and b/src/static/point-book-banner.png differ
diff --git a/src/static/point-book-tip-bg.png b/src/static/point-book-tip-bg.png
new file mode 100644
index 0000000..80d4695
Binary files /dev/null and b/src/static/point-book-tip-bg.png differ