feat: scaffold merged miniapp shell

This commit is contained in:
gqt
2026-06-08 20:39:04 +08:00
parent b4cfb109eb
commit eb8c260530
10 changed files with 14373 additions and 0 deletions
+156
View File
@@ -0,0 +1,156 @@
<script>
export default {
onLaunch() {
console.log('Merged Venue Miniapp Launch')
},
onShow() {
console.log('Merged Venue Miniapp Show')
},
onHide() {
console.log('Merged Venue Miniapp Hide')
}
}
</script>
<style lang="scss">
page {
background-color: $bg-color-soft;
color: $text-color-main;
font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "Segoe UI", Arial, sans-serif;
font-size: 28rpx;
line-height: 1.5;
box-sizing: border-box;
-webkit-text-size-adjust: 100%;
}
view,
scroll-view,
swiper,
button,
input,
textarea,
label,
image {
box-sizing: border-box;
}
button {
margin: 0;
padding: 0;
line-height: 1;
}
button::after {
border: none;
}
.container {
min-height: 100vh;
padding: $spacing-md;
background-color: $bg-color-soft;
}
.page-bottom-safe {
padding-bottom: calc(128rpx + env(safe-area-inset-bottom));
}
.card {
@include minimal-card;
}
.badge {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 88rpx;
height: 36rpx;
padding: 0 14rpx;
border-radius: $border-radius-sm;
font-size: 20rpx;
font-weight: 700;
&.primary {
color: $color-primary;
background: $color-primary-light;
}
&.success {
color: $color-success;
background: $color-success-light;
}
&.warning {
color: $color-warning;
background: $color-warning-light;
}
&.danger {
color: $color-danger;
background: $color-danger-light;
}
&.muted {
color: $text-color-muted;
background: $bg-color-hover;
}
}
.primary-button {
height: 88rpx;
border-radius: $border-radius-base;
background: $text-color-main;
color: #FFFFFF;
font-size: 28rpx;
font-weight: 800;
display: flex;
align-items: center;
justify-content: center;
&[disabled],
&.disabled {
background: $text-color-light;
color: #FFFFFF;
}
}
.ghost-button {
height: 72rpx;
border-radius: $border-radius-base;
border: 1rpx solid $border-color;
background: $bg-color-main;
color: $text-color-regular;
font-size: 26rpx;
font-weight: 700;
display: flex;
align-items: center;
justify-content: center;
}
.empty-state,
.load-more-tip {
padding: $spacing-xl $spacing-md;
text-align: center;
color: $text-color-light;
font-size: 24rpx;
}
.fixed-action-bar {
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 20;
display: flex;
align-items: center;
gap: $spacing-md;
padding: $spacing-sm $spacing-md calc($spacing-sm + env(safe-area-inset-bottom));
background: rgba(255, 255, 255, 0.96);
border-top: 1rpx solid $border-color;
}
.price-text {
color: $text-color-main;
font-size: 34rpx;
font-weight: 900;
}
</style>
+15
View File
@@ -0,0 +1,15 @@
import { createSSRApp } from 'vue'
import App from './App.vue'
import * as Pinia from 'pinia'
import uviewPlus from 'uview-plus'
import 'uview-plus/index.scss'
export function createApp() {
const app = createSSRApp(App)
app.use(Pinia.createPinia())
app.use(uviewPlus)
return {
app,
Pinia
}
}
+19
View File
@@ -0,0 +1,19 @@
{
"name": "场馆服务",
"appid": "",
"description": "冰场馆与综合场馆合并版会员服务小程序",
"versionName": "0.1.0",
"versionCode": "100",
"transformPx": false,
"mp-weixin": {
"appid": "wx516b3e0d9940c788",
"setting": {
"urlCheck": false,
"es6": true,
"postcss": true,
"minified": true
},
"usingComponents": true
},
"vueVersion": "3"
}
+43
View File
@@ -0,0 +1,43 @@
$bg-color-main: #FFFFFF;
$bg-color-soft: #F8FAFC;
$bg-color-hover: #F1F5F9;
$bg-color-panel: #EFF6FF;
$text-color-main: #0F172A;
$text-color-regular: #334155;
$text-color-muted: #64748B;
$text-color-light: #94A3B8;
$color-primary: #0EA5E9;
$color-primary-light: #E0F2FE;
$color-success: #10B981;
$color-success-light: #D1FAE5;
$color-warning: #F59E0B;
$color-warning-light: #FEF3C7;
$color-danger: #EF4444;
$color-danger-light: #FEE2E2;
$border-color: #E2E8F0;
$border-radius-sm: 6rpx;
$border-radius-base: 12rpx;
$border-radius-lg: 20rpx;
$spacing-xs: 8rpx;
$spacing-sm: 16rpx;
$spacing-md: 24rpx;
$spacing-lg: 32rpx;
$spacing-xl: 48rpx;
@mixin minimal-card {
background: $bg-color-main;
border: 1rpx solid $border-color;
border-radius: $border-radius-base;
padding: $spacing-md;
box-shadow: 0 2rpx 8rpx rgba(15, 23, 42, 0.03);
}
@mixin text-ellipsis {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
+2
View File
@@ -0,0 +1,2 @@
@use "@/styles/variables.scss" as *;
@import "uview-plus/theme.scss";