更新代码工程

This commit is contained in:
2026-08-07 09:36:05 +08:00
parent 493591c286
commit ccda415cd7
24 changed files with 1371 additions and 5442 deletions
+1284 -1573
View File
File diff suppressed because it is too large Load Diff
+8 -5
View File
@@ -12,14 +12,17 @@
"build:ios": "uni build -p app-ios"
},
"dependencies": {
"@dcloudio/uni-app": "^3.0.0-4080420251103001",
"@dcloudio/uni-app-plus": "^3.0.0-4080420251103001",
"@dcloudio/uni-app": "3.0.0-alpha-4080620251107001",
"@dcloudio/uni-app-plus": "3.0.0-alpha-4080620251107001",
"@dcloudio/uni-components": "3.0.0-alpha-4080620251107001",
"pinia": "^3.0.4",
"vue": "^3.4.27"
},
"devDependencies": {
"@dcloudio/types": "latest",
"@dcloudio/vite-plugin-uni": "3.0.0-4020320240708001",
"vite": "^5.2.8"
"@dcloudio/types": "^3.4.19",
"@dcloudio/uni-cli-shared": "3.0.0-alpha-4080620251107001",
"@dcloudio/vite-plugin-uni": "3.0.0-alpha-4080620251107001",
"sass": "^1.77.0",
"vite": "5.2.8"
}
}
+2 -2
View File
@@ -14,11 +14,11 @@ const props = defineProps({
<template>
<view class="background" :style="{ backgroundColor: bgColor }">
<image class="bg-image" v-if="type === 2" src="../static/app-bg3.png" />
<image class="bg-image" v-if="type === 2" src="/static/app-bg3.png" />
<image
class="bg-image"
v-if="type === 4"
src="../static/app-bg5.png"
src="/static/app-bg5.png"
mode="widthFix"
/>
</view>
+1 -1
View File
@@ -22,7 +22,7 @@ const props = defineProps({
<template>
<view class="avatar" @click="onClick">
<image
:src="src || '../static/user-icon.png'"
:src="src || '/static/user-icon.png'"
mode="widthFix"
:style="{
width: size + 'px',
+3 -3
View File
@@ -214,13 +214,13 @@ onMounted(async () => {
@touchstart.stop="confirmAdd"
:style="{ ...getNewPos() }"
>
<image src="../static/arrow-edit-save.png" mode="widthFix" />
<image src="/static/arrow-edit-save.png" mode="widthFix" />
</view>
<view class="edit-btn delete-btn" @touchstart.stop="deleteArrow">
<image src="../static/arrow-edit-delete.png" mode="widthFix" />
<image src="/static/arrow-edit-delete.png" mode="widthFix" />
</view>
<view class="edit-btn drag-btn" @touchstart.stop="startDrag($event)">
<image src="../static/arrow-edit-move.png" mode="widthFix" />
<image src="/static/arrow-edit-move.png" mode="widthFix" />
</view>
</view>
</movable-view>
+1 -1
View File
@@ -210,7 +210,7 @@ onMounted(async () => {
<view>
<image
v-if="!noArrow"
src="../static/arrow-grey.png"
src="/static/arrow-grey.png"
mode="widthFix"
:style="{ transform: expand ? 'rotateX(180deg)' : 'rotateX(0deg)' }"
/>
+2 -2
View File
@@ -22,7 +22,7 @@ const onClick = () => {
uni.navigateBack();
} else {
uni.redirectTo({
url: "/pages/index",
url: "/pages/index/index",
});
}
}
@@ -42,7 +42,7 @@ onMounted(() => {
<template>
<view class="container">
<view class="back-btn" @click="onClick">
<image src="../static/back-black.png" mode="widthFix" />
<image src="/static/back-black.png" mode="widthFix" />
</view>
<view v-if="pointBook" class="point-book-info">
<text>{{ pointBook.bowType.name }}</text>
+1 -1
View File
@@ -40,7 +40,7 @@ const hide = ref(true);
</view>
<view v-if="type === 'password'" class="eye-btn" @click="hide = !hide">
<image
:src="`../static/${hide ? 'eye-close' : 'eye-open'}.png`"
:src="`/static/${hide ? 'eye-close' : 'eye-open'}.png`"
mode="widthFix"
/>
</view>
+2 -2
View File
@@ -12,7 +12,7 @@ const targetOptions = ref({});
const toDetailPage = () => {
uni.navigateTo({
url: `/pages/detail?id=${props.data.id}`,
url: `/pages/detail/index?id=${props.data.id}`,
});
};
@@ -52,7 +52,7 @@ onMounted(() => {
</view>
</view>
<view>
<image src="../static/bow-target.png" mode="widthFix" />
<image src="/static/bow-target.png" mode="widthFix" />
<view class="arrow-amount">
<text></text>
<text>{{ data.arrows * data.groups }}</text>
+1 -1
View File
@@ -68,7 +68,7 @@ const onBtnClick = debounce(async () => {
<slot />
</block>
<block v-else>
<image src="../static/btn-loading.png" mode="widthFix" class="loading" />
<image src="/static/btn-loading.png" mode="widthFix" class="loading" />
</block>
</view>
</template>
+1 -1
View File
@@ -60,7 +60,7 @@ watch(
mode="widthFix"
/>
<view class="close-btn" @click="onClose" v-if="!noBg">
<image src="../static/close-yellow.png" mode="widthFix" />
<image src="/static/close-yellow.png" mode="widthFix" />
</view>
<slot></slot>
</view>
+2 -2
View File
@@ -20,12 +20,12 @@ const props = defineProps({
<template>
<view class="container" :style="{ display: show ? 'flex' : 'none' }">
<view class="scale-in">
<image src="../static/point-book-tip-bg.png" mode="widthFix" />
<image src="/static/point-book-tip-bg.png" mode="widthFix" />
<slot />
</view>
<IconButton
v-if="!!onClose"
src="../static/close-white-outline.png"
src="/static/close-white-outline.png"
:width="30"
:onClick="onClose"
/>
+3 -3
View File
@@ -19,14 +19,14 @@ const isIOS = computed(() => {
<view class="tabbar" :style="{ paddingBottom: isIOS ? '30rpx' : '0rpx' }">
<view @click="onClick(0)">
<image
:src="`../static/tab-score${selected === 0 ? '-s' : ''}.png`"
:src="`/static/tab-score${selected === 0 ? '-s' : ''}.png`"
mode="widthFix"
/>
<text :style="{ color: selected === 0 ? '#333' : '#999999' }">Score</text>
</view>
<view @click="onClick(1)">
<image
:src="`../static/tab-history${selected === 1 ? '-s' : ''}.png`"
:src="`/static/tab-history${selected === 1 ? '-s' : ''}.png`"
mode="widthFix"
/>
<text :style="{ color: selected === 1 ? '#333' : '#999999' }"
@@ -35,7 +35,7 @@ const isIOS = computed(() => {
</view>
<view @click="onClick(2)">
<image
:src="`../static/tab-user${selected === 2 ? '-s' : ''}.png`"
:src="`/static/tab-user${selected === 2 ? '-s' : ''}.png`"
mode="widthFix"
/>
<text :style="{ color: selected === 2 ? '#333' : '#999999' }"
+11 -8
View File
@@ -1,28 +1,31 @@
{
"pages": [
{
"path": "pages/index"
"path": "pages/index/index"
},
{
"path": "pages/signup"
"path": "pages/signup/index"
},
{
"path": "pages/signin"
"path": "pages/signin/index"
},
{
"path": "pages/create"
"path": "pages/create/index"
},
{
"path": "pages/detail"
"path": "pages/detail/index"
},
{
"path": "pages/edit"
"path": "pages/edit/index"
},
{
"path": "pages/reset-pwd"
"path": "pages/reset-pwd/index"
},
{
"path": "pages/edit-profile"
"path": "pages/edit-profile/index"
},
{
"path": "pages/list/index"
}
],
"globalStyle": {
+2 -2
View File
@@ -26,7 +26,7 @@ const onExpandChange = (index, expand) => {
const toListPage = () => {
uni.navigateTo({
url: "/pages/list",
url: "/pages/list/index",
});
};
const onSelect = (itemIndex, value) => {
@@ -49,7 +49,7 @@ const toEditPage = () => {
amountGroup: amountGroup.value,
});
uni.navigateTo({
url: "/pages/edit",
url: "/pages/edit/index",
});
} else {
uni.showToast({
+4 -4
View File
@@ -68,7 +68,7 @@ const goBack = () => {
});
} else {
uni.redirectTo({
url: "/pages/index",
url: "/pages/index/index",
});
}
};
@@ -126,7 +126,7 @@ onLoad(async (options) => {
>
<text>Stability</text>
<image
src="../static/s-question-mark.png"
src="/static/s-question-mark.png"
mode="widthFix"
class="question-mark"
/>
@@ -154,7 +154,7 @@ onLoad(async (options) => {
@click="() => openTip(3)"
v-if="user.id === record.user.id"
>
<image src="../static/edit.png" mode="widthFix" />
<image src="/static/edit.png" mode="widthFix" />
<text>Notes</text>
</button>
</view>
@@ -163,7 +163,7 @@ onLoad(async (options) => {
<text>Distribution</text>
<!-- <button hover-class="none" @click="() => openTip(2)">
<image
src="../static/s-question-mark.png"
src="/static/s-question-mark.png"
mode="widthFix"
class="question-mark"
/>
+2 -2
View File
@@ -55,7 +55,7 @@ const onSubmit = async () => {
);
if (res.record_id) {
uni.redirectTo({
url: `/pages/detail?id=${res.record_id}`,
url: `/pages/detail/index?id=${res.record_id}`,
});
}
}
@@ -110,7 +110,7 @@ onMounted(() => {
<text>Set {{ currentGroup }}</text>
</view>
<view @click="deleteArrow">
<image src="../static/delete.png" />
<image src="/static/delete.png" />
<text>Delete</text>
</view>
</view>
+3 -3
View File
@@ -101,11 +101,11 @@ const confirmRemove = async () => {
<view>
<view>
<text>Take a photo</text>
<image src="../static/back-grey.png" mode="widthFix" />
<image src="/static/back-grey.png" mode="widthFix" />
</view>
<view>
<text>Choose photo</text>
<image src="../static/back-grey.png" mode="widthFix" />
<image src="/static/back-grey.png" mode="widthFix" />
</view>
</view>
</view>
@@ -117,7 +117,7 @@ const confirmRemove = async () => {
>
<view class="selector">
<view @click="() => (showModal = false)">
<image src="../static/close-grey.png" mode="widthFix" />
<image src="/static/close-grey.png" mode="widthFix" />
</view>
<EditOption
v-show="selectorIndex === 0"
+4 -4
View File
@@ -79,19 +79,19 @@ const onListLoading = async (page) => {
<text :style="{ color: bowType.name ? '#000' : '#999' }">{{
bowType.name || "Please select"
}}</text>
<image src="../static/arrow-grey.png" mode="widthFix" />
<image src="/static/arrow-grey.png" mode="widthFix" />
</view>
<view @click="() => openSelector(1)">
<text :style="{ color: distance ? '#000' : '#999' }">{{
distance ? distance + " m" : "Please select"
}}</text>
<image src="../static/arrow-grey.png" mode="widthFix" />
<image src="/static/arrow-grey.png" mode="widthFix" />
</view>
<view @click="() => openSelector(2)">
<text :style="{ color: bowtargetType.name ? '#000' : '#999' }">{{
bowtargetType.name || "Please select"
}}</text>
<image src="../static/arrow-grey.png" mode="widthFix" />
<image src="/static/arrow-grey.png" mode="widthFix" />
</view>
</view>
<view class="point-records">
@@ -111,7 +111,7 @@ const onListLoading = async (page) => {
<style scoped>
.list {
background: url("../static/app-bg3.png") no-repeat top/contain;
background: url("/static/app-bg3.png") no-repeat top/contain;
}
.list-header {
height: 40px;
+10 -10
View File
@@ -18,13 +18,13 @@ const statusBarHeight = uni.getSystemInfoSync().statusBarHeight;
const toEditPage = (type) => {
uni.navigateTo({
url: "/pages/edit-profile?type=" + type,
url: "/pages/edit-profile/index?type=" + type,
});
};
const toSignInPage = () => {
uni.navigateTo({
url: "/pages/signin",
url: "/pages/signin/index",
});
};
</script>
@@ -39,25 +39,25 @@ const toSignInPage = () => {
<view class="header">
<image :src="user.avatar" mode="widthFix" />
<view @click="editAvatar">
<image src="../static/pen-yellow.png" mode="widthFix" />
<image src="/static/pen-yellow.png" mode="widthFix" />
</view>
</view>
<view class="body">
<view>
<view @click="toEditPage('Name')">
<image src="../static/user-yellow.png" mode="widthFix" />
<image src="/static/user-yellow.png" mode="widthFix" />
<text>Name</text>
<image src="../static/back-grey.png" mode="widthFix" />
<image src="/static/back-grey.png" mode="widthFix" />
</view>
<view @click="toEditPage('Email')">
<image src="../static/email-yellow.png" mode="widthFix" />
<image src="/static/email-yellow.png" mode="widthFix" />
<text>Email</text>
<image src="../static/back-grey.png" mode="widthFix" />
<image src="/static/back-grey.png" mode="widthFix" />
</view>
<view @click="toEditPage('Password')">
<image src="../static/password-yellow.png" mode="widthFix" />
<image src="/static/password-yellow.png" mode="widthFix" />
<text>Password</text>
<image src="../static/back-grey.png" mode="widthFix" />
<image src="/static/back-grey.png" mode="widthFix" />
</view>
</view>
<view @click="toSignInPage">Log out</view>
@@ -74,7 +74,7 @@ const toSignInPage = () => {
display: flex;
flex-direction: column;
align-items: center;
background: url("../static/app-bg6.png") no-repeat top/contain;
background: url("/static/app-bg6.png") no-repeat top/contain;
height: 100%;
position: relative;
}
+17 -17
View File
@@ -32,10 +32,10 @@ const heatMapImageSrc = ref(""); // 存储热力图图片地址
const startScoring = () => {
if (user.value.id)
return uni.navigateTo({
url: "/pages/create",
url: "/pages/create/index",
});
uni.navigateTo({
url: "/pages/signin",
url: "/pages/signin/index",
});
};
@@ -59,7 +59,7 @@ watch(
const signin = () => {
if (!user.value.id) {
uni.navigateTo({
url: "/pages/signin",
url: "/pages/signin/index",
});
}
};
@@ -94,21 +94,21 @@ onMounted(async () => {
borderColor="#333"
/>
<text class="truncate">{{ user.nickName }}</text>
<image v-if="heat" :src="`../static/hot${heat}.png`" mode="widthFix" />
<image v-if="heat" :src="`/static/hot${heat}.png`" mode="widthFix" />
</block>
<block v-else>
<image src="../static/user-icon.png" mode="widthFix" />
<image src="/static/user-icon.png" mode="widthFix" />
<text>Hello~</text>
</block>
</view>
<view class="daily-signin">
<view>
<image src="../static/week-check.png" />
<image src="/static/week-check.png" />
</view>
<view :class="data.weeksCheckIn[0] ? 'checked' : ''">
<image
v-if="data.weeksCheckIn[0]"
src="../static/checked-green2.png"
src="/static/checked-green2.png"
mode="widthFix"
/>
<view v-else></view>
@@ -117,7 +117,7 @@ onMounted(async () => {
<view :class="data.weeksCheckIn[1] ? 'checked' : ''">
<image
v-if="data.weeksCheckIn[1]"
src="../static/checked-green2.png"
src="/static/checked-green2.png"
mode="widthFix"
/>
<view v-else></view>
@@ -126,7 +126,7 @@ onMounted(async () => {
<view :class="data.weeksCheckIn[2] ? 'checked' : ''">
<image
v-if="data.weeksCheckIn[2]"
src="../static/checked-green2.png"
src="/static/checked-green2.png"
mode="widthFix"
/>
<view v-else></view>
@@ -135,7 +135,7 @@ onMounted(async () => {
<view :class="data.weeksCheckIn[3] ? 'checked' : ''">
<image
v-if="data.weeksCheckIn[3]"
src="../static/checked-green2.png"
src="/static/checked-green2.png"
mode="widthFix"
/>
<view v-else></view>
@@ -144,7 +144,7 @@ onMounted(async () => {
<view :class="data.weeksCheckIn[4] ? 'checked' : ''">
<image
v-if="data.weeksCheckIn[4]"
src="../static/checked-green2.png"
src="/static/checked-green2.png"
mode="widthFix"
/>
<view v-else></view>
@@ -153,7 +153,7 @@ onMounted(async () => {
<view :class="data.weeksCheckIn[5] ? 'checked' : ''">
<image
v-if="data.weeksCheckIn[5]"
src="../static/checked-green2.png"
src="/static/checked-green2.png"
mode="widthFix"
/>
<view v-else></view>
@@ -162,7 +162,7 @@ onMounted(async () => {
<view :class="data.weeksCheckIn[6] ? 'checked' : ''">
<image
v-if="data.weeksCheckIn[6]"
src="../static/checked-green2.png"
src="/static/checked-green2.png"
mode="widthFix"
/>
<view v-else></view>
@@ -196,16 +196,16 @@ onMounted(async () => {
</view>
<view>
<view @click="startScoring">
<image src="../static/start-scoring.png" mode="widthFix" />
<image src="/static/start-scoring.png" mode="widthFix" />
</view>
</view>
</view>
<view class="title" :style="{ marginBottom: 0 }">
<image src="../static/point-book-title1.png" mode="widthFix" />
<image src="/static/point-book-title1.png" mode="widthFix" />
</view>
<view class="heat-map">
<image
:src="bowTargetSrc || '../static/bow-target.png'"
:src="bowTargetSrc || '/static/bow-target.png'"
mode="widthFix"
/>
<image v-if="heatMapImageSrc" :src="heatMapImageSrc" mode="aspectFill" />
@@ -234,7 +234,7 @@ onMounted(async () => {
.score {
padding-left: 25rpx;
padding-right: 25rpx;
background: url("../static/app-bg5.png") no-repeat top/contain;
background: url("/static/app-bg5.png") no-repeat top/contain;
}
.statistics {
border-radius: 25rpx;
+6 -6
View File
@@ -7,13 +7,13 @@ const checked = ref(false);
const toSignUpPage = () => {
uni.navigateTo({
url: "/pages/signup",
url: "/pages/signup/index",
});
};
const toResetPasswordPage = () => {
uni.navigateTo({
url: "/pages/reset-pwd",
url: "/pages/reset-pwd/index",
});
};
@@ -24,7 +24,7 @@ const signIn = () => {
<template>
<view class="container">
<image class="app-logo" src="../static/logo.png" mode="widthFix" />
<image class="app-logo" src="/static/logo.png" mode="widthFix" />
<text class="app-name">ARCX</text>
<InputRow type="text" placeholder="email" width="80vw" />
<InputRow type="password" placeholder="password" width="80vw" />
@@ -33,7 +33,7 @@ const signIn = () => {
</view>
<SButton width="80vw" :onClick="signIn">login</SButton>
<view @click.stop="checked = !checked" class="agreement">
<image :src="`../static/${checked ? 'checked' : 'unchecked'}.png`" />
<image :src="`/static/${checked ? 'checked' : 'unchecked'}.png`" />
<text>i read and accept</text>
<view @click.stop="">user agreement</view>
<text>and</text>
@@ -41,11 +41,11 @@ const signIn = () => {
</view>
<view class="thrid-signin">
<view>
<image src="../static/google-icon.png" mode="widthFix" />
<image src="/static/google-icon.png" mode="widthFix" />
<text>login with google</text>
</view>
<view>
<image src="../static/apple-icon.png" mode="widthFix" />
<image src="/static/apple-icon.png" mode="widthFix" />
<text>login with apple</text>
</view>
</view>
+1 -1
View File
@@ -3,7 +3,7 @@ import { defineStore } from "pinia";
const defaultUser = {
id: "",
nickName: "user",
avatar: "../static/user-icon.png",
avatar: "/static/user-icon.png",
};
// 定义游戏相关的 store
-3788
View File
File diff suppressed because it is too large Load Diff