feat: scaffold merged miniapp shell
This commit is contained in:
@@ -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>
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
@use "@/styles/variables.scss" as *;
|
||||
@import "uview-plus/theme.scss";
|
||||
Reference in New Issue
Block a user