初始化

main
CHINAMI-3V5PQ9A\Administrator 2023-12-08 17:39:09 +08:00
commit 9da58db536
67 changed files with 21459 additions and 0 deletions

21
.gitignore vendored Normal file
View File

@ -0,0 +1,21 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
.DS_Store
dist
*.local
# Editor directories and files
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

16
.hbuilderx/launch.json Normal file
View File

@ -0,0 +1,16 @@
{ // launch.json configurations app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
// launchtypelocalremote, localremote
"version": "0.0",
"configurations": [{
"default" :
{
"launchtype" : "local"
},
"mp-weixin" :
{
"launchtype" : "local"
},
"type" : "uniCloud"
}
]
}

20
index.html Normal file
View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title></title>
<!--preload-links-->
<!--app-context-->
</head>
<body>
<div id="app"><!--app-html--></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

19661
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

72
package.json Normal file
View File

@ -0,0 +1,72 @@
{
"name": "uni-preset-vue",
"version": "0.0.0",
"scripts": {
"dev:app": "uni -p app",
"dev:app-android": "uni -p app-android",
"dev:app-ios": "uni -p app-ios",
"dev:custom": "uni -p",
"dev:h5": "uni",
"dev:h5:ssr": "uni --ssr",
"dev:mp-alipay": "uni -p mp-alipay",
"dev:mp-baidu": "uni -p mp-baidu",
"dev:mp-jd": "uni -p mp-jd",
"dev:mp-kuaishou": "uni -p mp-kuaishou",
"dev:mp-lark": "uni -p mp-lark",
"dev:mp-qq": "uni -p mp-qq",
"dev:mp-toutiao": "uni -p mp-toutiao",
"dev:mp-weixin": "uni -p mp-weixin",
"dev:quickapp-webview": "uni -p quickapp-webview",
"dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei",
"dev:quickapp-webview-union": "uni -p quickapp-webview-union",
"build:app": "uni build -p app",
"build:app-android": "uni build -p app-android",
"build:app-ios": "uni build -p app-ios",
"build:custom": "uni build -p",
"build:h5": "uni build",
"build:h5:ssr": "uni build --ssr",
"build:mp-alipay": "uni build -p mp-alipay",
"build:mp-baidu": "uni build -p mp-baidu",
"build:mp-jd": "uni build -p mp-jd",
"build:mp-kuaishou": "uni build -p mp-kuaishou",
"build:mp-lark": "uni build -p mp-lark",
"build:mp-qq": "uni build -p mp-qq",
"build:mp-toutiao": "uni build -p mp-toutiao",
"build:mp-weixin": "uni build -p mp-weixin",
"build:quickapp-webview": "uni build -p quickapp-webview",
"build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei",
"build:quickapp-webview-union": "uni build -p quickapp-webview-union",
"type-check": "vue-tsc --noEmit"
},
"dependencies": {
"@dcloudio/uni-app": "3.0.0-3081220230817001",
"@dcloudio/uni-app-plus": "3.0.0-3081220230817001",
"@dcloudio/uni-components": "3.0.0-3081220230817001",
"@dcloudio/uni-h5": "3.0.0-3081220230817001",
"@dcloudio/uni-mp-alipay": "3.0.0-3081220230817001",
"@dcloudio/uni-mp-baidu": "3.0.0-3081220230817001",
"@dcloudio/uni-mp-jd": "3.0.0-3081220230817001",
"@dcloudio/uni-mp-kuaishou": "3.0.0-3081220230817001",
"@dcloudio/uni-mp-lark": "3.0.0-3081220230817001",
"@dcloudio/uni-mp-qq": "3.0.0-3081220230817001",
"@dcloudio/uni-mp-toutiao": "3.0.0-3081220230817001",
"@dcloudio/uni-mp-weixin": "3.0.0-3081220230817001",
"@dcloudio/uni-quickapp-webview": "3.0.0-3081220230817001",
"@dcloudio/uni-ui": "^1.4.28",
"vue": "^3.2.45",
"vue-i18n": "^9.1.9"
},
"devDependencies": {
"@dcloudio/types": "^3.3.2",
"@dcloudio/uni-automator": "3.0.0-3081220230817001",
"@dcloudio/uni-cli-shared": "3.0.0-3081220230817001",
"@dcloudio/uni-stacktracey": "3.0.0-3081220230817001",
"@dcloudio/vite-plugin-uni": "3.0.0-3081220230817001",
"@vue/runtime-core": "^3.2.45",
"@vue/tsconfig": "^0.1.3",
"sass": "^1.69.5",
"typescript": "^4.9.4",
"vite": "4.1.4",
"vue-tsc": "^1.0.24"
}
}

10
shims-uni.d.ts vendored Normal file
View File

@ -0,0 +1,10 @@
/// <reference types='@dcloudio/types' />
import 'vue'
declare module '@vue/runtime-core' {
type Hooks = App.AppInstance & Page.PageInstance;
interface ComponentCustomOptions extends Hooks {
}
}

13
src/App.vue Normal file
View File

@ -0,0 +1,13 @@
<script setup lang="ts">
import { onLaunch, onShow, onHide } from "@dcloudio/uni-app";
onLaunch(() => {
console.log("App Launch");
});
onShow(() => {
console.log("App Show");
});
onHide(() => {
console.log("App Hide");
});
</script>
<style></style>

8
src/env.d.ts vendored Normal file
View File

@ -0,0 +1,8 @@
/// <reference types="vite/client" />
declare module '*.vue' {
import { DefineComponent } from 'vue'
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
const component: DefineComponent<{}, {}, any>
export default component
}

8
src/main.ts Normal file
View File

@ -0,0 +1,8 @@
import { createSSRApp } from "vue";
import App from "./App.vue";
export function createApp() {
const app = createSSRApp(App);
return {
app,
};
}

91
src/manifest.json Normal file
View File

@ -0,0 +1,91 @@
{
"name": "报修",
"appid": "__UNI__2C329A7",
"description": "",
"versionName": "1.0.0",
"versionCode": "100",
"transformPx": false,
"h5": {
"devServer": {
// "port" : 8085, //
"https": false,
"proxy": {
"/local": {
// "target" : "http://172.16.8.98:5610", // http://172.16.8.25:8200
"target": "http://1.14.15.135:5610", // 172.16.8.98:5610
// target: 'https://6u18q42299.zicp.fun/ty-api',
"changeOrigin": true,
"secure": false,
"pathRewrite": {
"^/local": ""
}
}
}
}
},
/* 5+App */
"app-plus": {
"usingComponents": true,
"nvueStyleCompiler": "uni-app",
"compilerVersion": 3,
"splashscreen": {
"alwaysShowBeforeRender": true,
"waiting": true,
"autoclose": true,
"delay": 0
},
/* */
"modules": {},
/* */
"distribute": {
/* android */
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios": {},
/* SDK */
"sdkConfigs": {}
}
},
/* */
"quickapp": {},
/* */
"mp-weixin": {
"appid": "wx9345e0504abf9ea6",
"setting": {
"urlCheck": false
},
"usingComponents": true
},
"mp-alipay": {
"usingComponents": true
},
"mp-baidu": {
"usingComponents": true
},
"mp-toutiao": {
"usingComponents": true
},
"uniStatistics": {
"enable": false
},
"vueVersion": "3"
}

110
src/pages.json Normal file
View File

@ -0,0 +1,110 @@
{
"easycom": {
"autoscan": true,
"custom": {
// uni-ui
"^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
}
},
"pages": [ //pageshttps://uniapp.dcloud.io/collocation/pages
{
"path": "pages/IMB/IMB",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "uni-app"
}
}, {
"path": "pages/login/login",
"style": {
"navigationBarTitleText": "登录",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
"path": "pages/circle/circle",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
"path": "pages/mall/mall",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
"path": "pages/live/live",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
"path": "pages/mine/mine",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}
],
"tabBar": {
"color": "#7a7e83",
"selectedColor": "#091227",
"borderStyle": "white",
"backgroundColor": "#fff",
"list": [{
"pagePath": "pages/circle/circle",
"text": "车友圈",
"iconPath": "static/tabs/sel.png",
"selectedIconPath": "static/tabs/sel-select.png"
},
{
"pagePath": "pages/mall/mall",
"text": "商城",
"iconPath": "static/tabs/mall.png",
"selectedIconPath": "static/tabs/mall-select.png"
},
{
"pagePath": "pages/IMB/IMB",
"text": "IMOBAO",
"iconPath": "static/tabs/imb.png",
"selectedIconPath": "static/tabs/imb-select.png"
},
{
"pagePath": "pages/live/live",
"text": "生活",
"iconPath": "static/tabs/live.png",
"selectedIconPath": "static/tabs/live-select.png"
},
{
"pagePath": "pages/mine/mine",
"text": "我的",
"iconPath": "static/tabs/my.png",
"selectedIconPath": "static/tabs/my-select.png"
}
]
},
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
},
"uniIdRouter": {}
}

19
src/pages/IMB/IMB.vue Normal file
View File

@ -0,0 +1,19 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
};
}
}
</script>
<style lang="scss">
</style>

115
src/pages/circle/circle.vue Normal file
View File

@ -0,0 +1,115 @@
<template>
<view>
<view class="circle-title">
<view class="circle-title-nav">
<view class="circle-title-nav-list">
<text v-for="(item,index) in navItem" :key="index"
:class="{'nav-item':true,'nav-select':selectNav===index}" @click="handSelectNav(index)">
{{item.text}}
</text>
</view>
</view>
</view>
<view class="circle-edit">
<image src="../../static/common/edit.png" mode="" class="image"></image>
</view>
<view class="circle-discover">
<scroll-view style="height: 100%;" :scroll-top="500" scroll-y="true" class="scroll-Y" refresher-enabled
refresher-background="#F8F8FA">
<Discover></Discover>
</scroll-view>
</view>
</view>
</template>
<script lang="ts" setup>
import Discover from './components/discover.vue'
import {
userData
} from './hook/userData'
const {
navItem,
selectNav,
handSelectNav
} = userData()
</script>
<style lang="scss">
page {
width: 100%;
height: 100%;
background: #F8F8FA;
}
.circle-title {
width: 100%;
height: 137rpx;
background-image: url(../../static/common/top-bg.png);
background-size: 100% 100%;
// background-position: 100rpx;
padding-top: 118rpx;
position: sticky;
top: 0;
left: 0;
z-index: 999;
.circle-title-nav {
width: 100%;
padding: 28rpx;
box-sizing: border-box;
.circle-title-nav-list {
width: 80%;
display: flex;
font-size: 32rpx;
color: rgba(43, 43, 53, 0.6);
.nav-item {
width: 20%;
color: rgba(43, 43, 53, 0.6);
}
.nav-item:last-child {
width: 25%;
}
.nav-select {
font-size: 36rpx;
font-weight: 600;
color: #08080D;
padding-right: 15rpx;
}
.nav-select::after {
display: inline-block;
width: 15rpx;
height: 30rpx;
content: '';
background-image: url(../../static/common/icon-halving.png);
background-size: 100% 100%;
}
}
}
}
.circle-edit {
display: inline-block;
position: fixed;
right: 32rpx;
bottom: 188rpx;
.image {
width: 144rpx;
height: 144rpx;
}
}
.circle-discover {
height: 500px;
// padding-top: 255rpx;
}
</style>

View File

@ -0,0 +1,179 @@
<template>
<view class="container">
<view class="hotTopic">
<text class="hotTopic-title">热门话题</text>
<view class="topicList">
<view class="topicList-item">
<image src="../../../static/common/topic.png" mode="aspectFit" class="topicList-item-iamge"></image>
<text class="topicList-item-text">如何有效防止摔车</text>
</view>
<view class="topicList-item">
<image src="../../../static/common/topic.png" mode="aspectFit" class="topicList-item-iamge"></image>
<text class="topicList-item-text">10月摩旅最美路线</text>
</view>
<view class="topicList-item">
<image src="../../../static/common/topic.png" mode="aspectFit" class="topicList-item-iamge"></image>
<text class="topicList-item-text">如何有效</text>
</view>
<view class="topicList-item">
<image src="../../../static/common/topic.png" mode="aspectFit" class="topicList-item-iamge"></image>
<text class="topicList-item-text">10月摩旅最美路线</text>
</view>
<view class="topicList-item">
<image src="../../../static/common/topic.png" mode="aspectFit" class="topicList-item-iamge"></image>
<text class="topicList-item-text">如何有效防止摔车</text>
</view>
<view class="topicList-item">
<image src="../../../static/common/topic.png" mode="aspectFit" class="topicList-item-iamge"></image>
<text class="topicList-item-text">10月摩旅最美路线</text>
</view>
</view>
</view>
<view class="article">
<view class="article-item">
<view class="article-item-head">
<image src="../../../static/mine/lv1.png" mode="" class="avatar"></image>
<view class="article-item-head-center">
<view class="center-head">
<text class="center-head-name">金卡纳练习会</text>
<image src="../../../static/common/vip.png" class="vip-img" mode=""></image>
</view>
<view class="center-foot">
<text style="padding-right: 22rpx;">12-31</text>
<text>豪爵铃木 DL250车主发布</text>
</view>
</view>
<view class="article-item-head-right">
<text>关注</text>
</view>
</view>
<view class="article-item-head">
</view>
</view>
</view>
</view>
</template>
<script>
</script>
<style lang="scss" scoped>
page {
height: 500px;
}
.hotTopic {
background-color: #fff;
width: 100%;
padding: 28rpx;
padding-bottom: 0;
box-sizing: border-box;
margin: 16rpx 0;
.hotTopic-title {
font-size: 32rpx;
color: #08080D;
font-weight: 600;
}
.topicList {
display: flex;
justify-content: space-between;
align-items: center;
padding: 32rpx 0;
flex-wrap: wrap;
}
.topicList-item {
// height: 48rpx;
background: rgba(54, 103, 189, 0.12);
border-radius: 8rpx;
padding: 8rpx 16rpx;
display: inline-block;
width: 48%;
box-sizing: border-box;
margin: 10rpx 0;
.topicList-item-iamge {
width: 48rpx;
height: 48rpx;
vertical-align: middle;
padding-right: 16rpx;
}
.topicList-item-text {
height: 36rpx;
font-size: 24rpx;
font-family: AlibabaPuHuiTi_2_55_Regular;
color: #08080D;
line-height: 36rpx;
}
}
}
.article {
background-color: #fff;
padding: 34rpx;
box-sizing: border-box;
.article-item {
.article-item-head {
display: flex;
align-items: center;
justify-content: space-between;
.avatar {
width: 76rpx;
height: 76rpx;
}
.article-item-head-center {
margin-left: -100rpx;
.center-head-name {
font-weight: 600;
font-size: 32rpx;
color: #08080D;
}
.vip-img {
width: 48rpx;
height: 48rpx;
vertical-align: middle;
margin-left: 8rpx;
}
.center-foot {
font-size: 24rpx;
font-family: AlibabaPuHuiTi_2_55_Regular;
color: rgba(43, 43, 53, 0.4);
line-height: 36rpx;
}
}
.article-item-head-right {
width: 104rpx;
height: 48rpx;
background: linear-gradient(270deg, #5B8FF0 0%, #1E5099 100%);
border-radius: 8rpx;
text-align: center;
text {
height: 44rpx;
font-size: 26rpx;
font-family: AlibabaPuHuiTi_2_55_Regular;
color: #FFFFFF;
line-height: 44rpx;
}
}
}
}
}
</style>

View File

@ -0,0 +1,19 @@
import { ref, onMounted, shallowRef, watchEffect, watch } from 'vue';
// 动态获取图片
// const getAssetsImages = (name) => {
// return new URL(`../../../static/mine/${name}.png`, import.meta.url).href
// }
export function userData() {
const selectNav = ref<number>(1)
const navItem = ref<any>([{ text: '关注', id: 0 }, { text: '发现', id: 1 }, { text: '活动', id: 2 }, { text: '闲置', id: 3 }, { text: '二手车', id: 4 }])
const handSelectNav = function (index : number) {
selectNav.value = index
}
return {
selectNav,
navItem,
handSelectNav
}
}

52
src/pages/index/index.vue Normal file
View File

@ -0,0 +1,52 @@
<template>
<view class="content">
<image class="logo" src="/static/logo.png"></image>
<view class="text-area">
<text class="title">{{title}}</text>
</view>
</view>
</template>
<script>
export default {
data() {
return {
title: 'Hello'
}
},
onLoad() {
},
methods: {
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.text-area {
display: flex;
justify-content: center;
}
.title {
font-size: 36rpx;
color: #8f8f94;
}
</style>

19
src/pages/live/live.vue Normal file
View File

@ -0,0 +1,19 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
};
}
}
</script>
<style lang="scss">
</style>

208
src/pages/login/login.vue Normal file
View File

@ -0,0 +1,208 @@
<template>
<view class="contenter">
<view class="login-container">
<video src="https://rzyx-tycm.bj.bcebos.com/prod/model/bg-Video.mp4" class="background-video active"
autoplay loop muted :controls="false" object-fit="fill" page-gesture="true"></video>
<!-- 其他登录内容 -->
<div class="page flex-col">
<div class="box_1 flex-col">
<div class="box_2 flex-col">
<div class="box_10 flex-row">
<div class="image-text_3 flex-row justify-between">
<img class="label_1" referrerpolicy="no-referrer"
src="../../static/login/login-logo.png" />
</div>
</div>
</div>
<div class="group_1 flex-col">
<div class="text-wrapper_1 flex-col">
<span class="text_2">登录</span>
</div>
<p class="text_3">验证码登录</p>
<!-- <img class="image_2" referrerpolicy="no-referrer"
src="https://lanhu.oss-cn-beijing.aliyuncs.com/SketchPngd7aa8d817a93e8ef4a0790671d6112e8d1e5fa4ddcc92ee6b8456c2be89ff85a" /> -->
</div>
</div>
</div>
</view>
</view>
</template>
<script lang="ts" setup>
</script>
<style lang="scss">
.contenter {
height: 100%;
}
page {
height: 100%;
}
.page {
background-color: rgba(255, 255, 255, 0);
position: absolute;
overflow: hidden;
height: 100%;
z-index: 5555;
top: 0;
left: 0;
width: 100%;
}
.box_1 {
// background-image: url(https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/47e4c4b4f3a343cf969acc38dfc638ee_mergeImage.png);
height: 100%;
width: 100%;
// background-color: antiquewhite;
}
.box_2 {
// background: url(https://lanhu.oss-cn-beijing.aliyuncs.com/SketchPngf3685e2d0733710a64e1f0e64ffbb1c99821414a453e4c3f357b82185bae24dd) 100% no-repeat;
background-size: 100% 100%;
padding: 14px 14px 21px 16px;
}
.box_9 {
margin-left: 5px;
}
.text_5 {
overflow-wrap: break-word;
color: rgba(255, 255, 255, 1);
font-size: 15px;
letter-spacing: -0.30000001192092896px;
font-family: PingFangSC-Medium;
font-weight: 500;
text-align: right;
white-space: nowrap;
line-height: 21px;
}
.thumbnail_5 {
width: 17px;
height: 11px;
margin: 4px 0 6px 219px;
}
.thumbnail_6 {
width: 15px;
height: 11px;
margin: 3px 0 7px 5px;
}
.image_6 {
width: 25px;
height: 12px;
margin: 3px 0 6px 5px;
}
.box_10 {
margin: 33px 229px 0 0;
}
.image-text_3 {
width: 116px;
vertical-align: middle;
}
.label_1 {
width: 240rpx;
height: 50rpx;
vertical-align: top;
}
.text-group_1 {
height: 25px;
overflow-wrap: break-word;
color: rgba(255, 255, 255, 1);
font-size: 20px;
font-family: YouSheBiaoTiHei;
font-weight: NaN;
text-align: left;
white-space: nowrap;
line-height: 24px;
}
.group_1 {
padding: 808rpx 60rpx 404rpx;
text-align: center;
}
.text-wrapper_1 {
height: 112rpx;
// width: 630rpx;
// background-color: aqua;
border-radius: 16rpx;
background: linear-gradient(to right, #1E5099, #5B8FF0);
background-repeat: no-repeat;
// padding: 15px 86px 15px 87px;
line-height: 112rpx;
}
.text_2 {
overflow-wrap: break-word;
color: rgba(255, 255, 255, 1);
font-size: 18px;
font-family: AlibabaPuHuiTi_2_55_Regular;
font-weight: NaN;
text-align: right;
white-space: nowrap;
line-height: 26px;
}
.text_3 {
overflow-wrap: break-word;
color: rgba(255, 255, 255, 1);
font-size: 16px;
font-family: AlibabaPuHuiTi_2_55_Regular;
text-align: right;
white-space: nowrap;
line-height: 24px;
align-self: center;
margin-top: 24px;
text-align: center;
margin: 48rpx 0;
opacity: .9;
}
.image_2 {
width: 112px;
height: 40px;
margin: 32px 100px 0 103px;
}
.section_1 {
width: 178px;
height: 16px;
align-self: center;
margin-top: 24px;
}
.image_7 {
width: 134px;
height: 5px;
align-self: center;
margin-top: 29px;
}
.login-container {
position: relative;
width: 100%;
height: 100vh;
overflow: hidden;
}
.background-video {
width: 100%;
height: 100%;
}
</style>

22
src/pages/mall/mall.vue Normal file
View File

@ -0,0 +1,22 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>

View File

@ -0,0 +1,68 @@
import { ref, onMounted, shallowRef, watchEffect, watch } from 'vue';
// 动态获取图片
// const getAssetsImages = (name) => {
// return new URL(`../../../static/mine/${name}.png`, import.meta.url).href
// }
export function userDate() {
const basicData = ref<any>([{
text: '动态',
url: '',
num: '165'
}, {
text: '关注',
url: '',
num: '24'
}, {
text: '粉丝',
url: '',
num: '1345'
}, {
text: '获赞',
url: '',
num: '10w+'
}, {
text: '礼物',
url: '',
num: '434'
}])
const feature = ref<any>([{
icon: '/static/mine/warranty.png',
text: '我的保单',
id: 1
}, {
icon: '/static/mine/signUp.png',
text: '我的报名',
id: 2
}, {
icon: '/static/mine/collect.png',
text: '我的收藏',
id: 3
}, {
icon: '/static/mine/idle.png',
text: '我的闲置',
id: 4
}])
const assist = ref<any>([{
icon: '/static/mine/feedback.png',
text: '帮助与反馈',
id: 5
}, {
icon: '/static/mine/alarm-wx.png',
text: '微信告警通知',
id: 6
}, {
icon: '/static/mine/service.png',
text: '在线客服',
id: 7
}, {
icon: '/static/mine/settings.png',
text: '设置',
id: 8
}])
return {
basicData,
feature,
assist
}
}

485
src/pages/mine/mine.vue Normal file
View File

@ -0,0 +1,485 @@
<template>
<view class="contenter">
<view class="mine-title">
<view class="title-avatar">
<img src="../../static/mine/avater.png" style="width:180rpx;height: 180rpx;" />
<view class="title-center">
<span style="font-weight: 600;">欢迎来到爱摩宝</span>
<span v-if="false">/</span>
<view v-else-if="false" class="title-boundVehicle">
<span class="text">绑定车辆记录骑行</span>
<span class="title-boundVehicle-icon"></span>
</view>
<view v-else class="title-car-info">
<view style="display: flex;align-items: center;">
<view class="image"></view>
<span>阿普利亚 GPR 125</span>
</view>
<view style="display: flex;align-items: center;">
<view class="image2"></view>
<span>黑铁骑士</span>
</view>
</view>
</view>
<view class="title-right" v-if="false">
<span class="login">注册/登录</span>
</view>
<view v-else>
<view class="image" style="margin-top: 30rpx;"></view>
</view>
</view>
<view class="mine-basicData">
<view class="mine-basicData-item" v-for="(item,index) in basicData" :key="index">
<span>{{item.num}}</span>
<span>{{item.text}}</span>
</view>
</view>
</view>
<view class="mine-content">
<view class="equityCard">
<img src="../../static/mine/mine-bd.png" alt="" class="image">
<view class="equityCard-text">
<view class="equityCard-text-top">
<p>爱摩保VIP专属权益</p>
<view style="display: flex;width: 100rpx;">
<span>开通</span>
<!-- <img src="../../static/mine/icon-right.png" class="img" alt=""> -->
<view class="img">
</view>
</view>
</view>
<span>保障齐全 10日赔付 智能精准定位 骑行低功耗自动记录</span>
</view>
</view>
<view class="mine-carData">
<view class="mine-carData-left">
<span style="font-size: 28rpx;font-style: normal;" class="mine-carData-left-item">骑行</span>
<span class="mine-carData-left-item"><text>0</text>km</span>
<span class="mine-carData-left-item"><text>0</text>h<span><text
style="padding-left: 4rpx;">0</text>min</span></span>
<view class="mine-carData-left-item">
<progress :percent="60" activeColor="rgba(255, 255, 255, 0.60)"
backgroundColor="rgba(255, 255, 255, 0.33)" stroke-width="3" />
</view>
<span class="mine-carData-left-item"
style="font-style: normal;font-size: 18rpx;opacity: 0.6;">再骑344km可达黄金骑士</span>
</view>
<view class="mine-carData-center">
<span style="font-size: 28rpx;font-style: normal;" class="mine-carData-center-item">车库</span>
<span class="mine-carData-left-item"><text>0</text>车辆</span>
<view class="mine-carData-center-bind">
<text>绑定车辆</text>
</view>
</view>
<view class="mine-carData-right">
<span style="font-size: 28rpx;font-style: normal;" class="mine-carData-center-item">积分</span>
<span class="mine-carData-left-item"><text>668</text></span>
<view class="mine-carData-right-sign">
<text>签到</text>
</view>
</view>
</view>
<view class="mine-function">
<view class="mine-function-item" v-for="(item,index) in feature" :key="index">
<img :src="item.icon" alt="" class="item-img" />
<span>{{item.text}}</span>
</view>
</view>
<view class="mine-assist">
<view class="mine-assist-item" v-for="(item,index) in assist" :key="index">
<img :src="item.icon" alt="" class="item-img" />
<span>{{item.text}}</span>
</view>
</view>
<view class="footer">
<img src="../../static/mine/imb.png" alt="" class="footer-img">
</view>
</view>
</view>
</template>
<script lang="ts" setup>
import { userDate } from './hook/user-Data'
const { feature, assist, basicData } = userDate()
</script>
<style lang="scss">
page {
height: calc(100% - 176rpx);
width: 100%;
}
.contenter {
width: 100%;
height: 100%;
.mine-title {
background-image: url(../../static/mine/mine-title.png);
background-repeat: no-repeat;
width: 100%;
background-size: 100% 100%;
padding-top: 160rpx;
// box-sizing: border-box;
.title-avatar {
display: flex;
// align-items: center;
justify-content: space-between;
padding: 0 32rpx;
// :first-child {
// width: 188rpx;
// height: 200rpx;
// margin-bottom: -50rpx;
// }
.title-center {
display: flex;
flex-direction: column;
justify-content: space-between;
height: 120rpx;
font-size: 32rpx;
padding: 15rpx 40rpx 15rpx 0;
// margin-left: -100rpx;
box-sizing: border-box;
flex: 1;
.title-boundVehicle {
width: 250rpx;
background: linear-gradient(270deg, #CCD5E5 0%, #B7C6DF 100%);
border-radius: 8rpx;
border: 1rpx solid;
border-image: linear-gradient(180deg, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0)) 1 1;
padding: 3rpx 18rpx;
box-sizing: border-box;
.text {
width: 100%;
height: 32rpx;
font-size: 20rpx;
font-family: AlibabaPuHuiTi_2_65_Medium;
color: #20529D;
line-height: 32rpx;
}
.title-boundVehicle-icon {
display: inline-block;
background-image: url(../../static/mine/icon-right-mini.png);
width: 22rpx;
height: 22rpx;
background-size: 100% 100%;
background-position: 0 5rpx;
margin-left: 8rpx;
}
}
// :first-child {
// font-weight: 600;
// width: 100%;
// margin-bottom: -9px
// }
:last-child {
font-weight: normal;
font-size: 24rpx;
color: rgba(43, 43, 53, 0.60);
}
}
.title-right {
height: 120rpx;
line-height: 120rpx;
.login {
padding: 10rpx 26rpx;
box-sizing: border-box;
width: 176rpx;
height: 64rpx;
line-height: 64rpx;
text-align: center;
border: 1rpx solid;
color: rgba(32, 81, 156, 1);
font-size: 28rpx;
border-image: linear-gradient(90deg, rgba(30, 80, 153, 1), rgba(60, 109, 198, 1)) 1 1;
}
}
.image {
background-image: url(../../static/mine/icon-right-black.png);
background-repeat: no-repeat;
width: 48rpx;
height: 48rpx;
background-size: 100% 100%;
// margin-top: 35rpx;
}
.title-car-info {
display: flex;
justify-content: space-between;
.image,
.image2 {
background-image: url(../../static/mine/mine-car-select.png);
background-repeat: no-repeat;
width: 48rpx;
height: 48rpx;
background-size: 100% 100%;
// margin-top: 35rpx;
}
.image2 {
background-image: url(../../static/mine/lv1.png);
width: 36rpx;
height: 36rpx;
}
}
}
.mine-basicData {
display: flex;
padding: 32rpx;
.mine-basicData-item {
display: flex;
flex-direction: column;
flex: 1;
font-size: 28rpx;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 400;
color: rgba(43, 43, 53, 0.6);
line-height: 40rpx;
align-items: center;
text-align: center;
:first-child {
font-size: 32rpx;
font-family: SFProDisplay, SFProDisplay;
font-weight: 700;
color: #08080D;
line-height: 38rpx;
// font-style: italic;
}
}
}
}
.equityCard {
position: relative;
width: 100%;
height: 162rpx;
background-image: url(../../static/mine/mine-bg.png);
background-repeat: no-repeat;
background-size: 100% 100%;
padding: 34rpx 16rpx 62rpx 120rpx;
box-sizing: border-box;
.equityCard-text {
width: 100%;
.equityCard-text-top {
display: flex;
width: 100%;
justify-content: space-between;
:first-child {
width: 290rpx;
height: 32rpx;
font-size: 30rpx;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: bold;
color: #FDDCA1;
line-height: 32rpx;
}
.img {
width: 150rpx;
height: 30rpx;
background-image: url(../../static/mine/icon-right.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
}
:last-child {
height: 20rpx;
font-size: 20rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
color: rgba(255, 255, 255, 0.8);
line-height: 20rpx;
}
}
.image {
position: absolute;
width: 100%;
height: 24rpx;
bottom: 0;
left: 0;
}
}
.mine-content {
width: 100%;
padding: 0 32rpx;
background: #F8F8FA;
height: calc(100% - 270rpx);
position: relative;
box-sizing: border-box;
.mine-carData {
display: flex;
padding: 18rpx 0;
justify-content: space-between;
margin-bottom: 30rpx;
box-sizing: border-box;
.mine-carData-left,
.mine-carData-center,
.mine-carData-right {
width: 294rpx;
height: 260rpx;
background: linear-gradient(270deg, #3C6DC6 0%, #1E5099 100%);
border-radius: 8rpx;
display: flex;
flex-direction: column;
padding: 24rpx;
box-sizing: border-box;
color: #FFFFFF;
.mine-carData-left-item,
.mine-carData-center-item {
font-size: 24rpx;
font-style: italic;
// line-height: 48rpx;
padding-bottom: 16rpx;
text {
font-size: 40rpx;
line-height: 48rpx;
padding-right: 4rpx;
font-weight: 550;
}
}
:last-child {
padding-bottom: 0;
}
}
.mine-carData-center {
width: 180rpx;
height: 260rpx;
background: linear-gradient(270deg, #F9A374 0%, #FF7A38 100%);
border-radius: 8rpx;
.mine-carData-center-bind {
height: 56rpx;
background: linear-gradient(200deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
border-radius: 4rpx;
border: 1rpx solid;
border-image: linear-gradient(360deg, rgba(243, 243, 243, 0), rgba(236, 238, 241, 1)) 1 1;
backdrop-filter: blur(2px);
text-align: center;
line-height: 56rpx;
margin-top: 52rpx;
text {
width: 96rpx;
height: 34rpx;
font-size: 24rpx;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 400;
color: #FFFFFF;
// line-height: 34rpx;
}
}
}
.mine-carData-right {
width: 180rpx;
height: 260rpx;
background: linear-gradient(270deg, #F2F3F6 0%, #E1E4E9 100%);
border-radius: 8rpx;
color: #08080D;
.mine-carData-right-sign {
width: 132rpx;
height: 56rpx;
background: linear-gradient(90deg, #1D2330 0%, #162135 100%);
border-radius: 4rpx;
text-align: center;
margin-top: 48rpx;
text {
width: 48rpx;
height: 56rpx;
font-size: 24rpx;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 400;
color: #FFFFFF;
line-height: 56rpx;
}
}
}
}
.mine-function,
.mine-assist {
height: 188rpx;
width: 100%;
font-size: 24rpx;
background-color: rgba(255, 255, 255, 1);
border-radius: 8rpx;
display: flex;
align-items: center;
justify-content: center;
.mine-function-item,
.mine-assist-item {
display: flex;
flex-direction: column;
align-items: center;
flex: 1;
.item-img {
width: 64rpx;
height: 64rpx;
margin-bottom: 16rpx;
}
}
}
.mine-assist {
margin-top: 32rpx;
}
}
.footer {
position: absolute;
width: 100%;
bottom: 36rpx;
left: 0;
text-align: center;
.footer-img {
width: 178rpx;
height: 42rpx;
}
}
}
</style>

6
src/shime-uni.d.ts vendored Normal file
View File

@ -0,0 +1,6 @@
export {}
declare module "vue" {
type Hooks = App.AppInstance & Page.PageInstance;
interface ComponentCustomOptions extends Hooks {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

BIN
src/static/common/edit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
src/static/common/topic.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/static/common/vip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
src/static/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/static/mine/avater.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
src/static/mine/collect.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

BIN
src/static/mine/idle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 913 B

BIN
src/static/mine/imb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/static/mine/lv1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
src/static/mine/mine-bd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 B

BIN
src/static/mine/mine-bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
src/static/mine/service.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/static/mine/signUp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
src/static/tabs/imb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
src/static/tabs/live.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 558 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
src/static/tabs/mall.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
src/static/tabs/my.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
src/static/tabs/sel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

53
src/styles/repair.scss Normal file
View File

@ -0,0 +1,53 @@
.type-color-1 {
// background-image: linear-gradient(to right, rgb(238, 131, 101), rgb(229, 56, 43));
background-image: url(../static/images/weixiu.png);
background-size: 100% 100%;
}
.type-color-2 {
// background-image: linear-gradient(to right, rgb(77, 145, 247), rgb(56, 90, 246));
background-image: url(../static/images/chuxian.png);
background-size: 100% 100%;
}
.type-color-3 {
// background-image: linear-gradient(to right, rgb(137, 75, 73), rgb(128, 5, 52));
background-image: url(../static/images/luntai.png);
background-size: 100% 100%;
}
.type-color-4 {
// background-image: linear-gradient(to right, rgb(245, 140, 58), rgb(231, 103, 2));
background-image: url(../static/images/zhihuan.png);
background-size: 100% 100%;
}
.type-color-5 {
// background-image: linear-gradient(to right, rgb(210, 10, 68), rgb(246, 120, 110));
background-image: url(../static/images/dashigu.png);
background-size: 100% 100%;
}
.type-color-6 {
// background-image: linear-gradient(to right, rgb(210,0,215), rgb(220, 120, 150));
background-image: url(../static/images/dasunshi.png);
background-size: 100% 100%;
}
.type-color-7 {
// background-image: linear-gradient(to right, rgb(210,0,215), rgb(220, 120, 150));
background-image: url(../static/images/chongdian.png);
background-size: 100% 100%;
}
.type-color-8 {
// background-image: linear-gradient(to right, rgb(210,0,215), rgb(220, 120, 150));
background-image: url(../static/images/chongdianzonghe.png);
background-size: 100% 100%;
}
.type-color-9 {
// background-image: linear-gradient(to right, rgb(210,0,215), rgb(220, 120, 150));
background-image: url(../static/images/cheyi.png);
background-size: 100% 100%;
}
.type-color-10 {
// background-image: linear-gradient(to right, rgb(210,0,215), rgb(220, 120, 150));
background-image: url(../static/images/yanbao.png);
background-size: 100% 100%;
}

53
src/styles/variables.scss Normal file
View File

@ -0,0 +1,53 @@
$background-color: #f6f6f6;
// $theme-color: #e54d42; // e54d42 DD785B
// $theme-color-disable: #f8b5a8; // f8b5a8 fadcd5
$theme-color: #23487C; // e54d42 DD785B
$theme-color-disable: #a2aef3; // f8b5a8 fadcd5
$status-error: #EB4139;
$status-error-bg: #FFEEEB;
$status-warning: #F27716;
$status-warning-bg: #FFEFDD;
$status-success: #55A340;
$status-success-bg: #EFFAF2;
$status-link: #6276eb; // 0074DA
$status-link-bg: #E1F1FF;
.flex-1 {
flex-grow: 1;
}
.flex-row-center {
display: flex;
flex-direction: row;
align-items: center;
}
.flex-row-space-between {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.flex-column-center {
display: flex;
flex-direction: column;
align-items: center;
}
.flex-column-stretch {
display: flex;
flex-direction: column;
align-items: stretch;
}
.flex-center {
display: flex;
align-items: center;
justify-content: center;
}
.load-more {
padding: 20rpx;
background-color: $background-color;
}

76
src/uni.scss Normal file
View File

@ -0,0 +1,76 @@
/**
* uni-app
*
* uni-app https://ext.dcloud.net.cn使
* 使scss使 import 便App
*
*/
/**
* App使
*
* 使scss scss 使 import
*/
/* 颜色变量 */
/* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;
/* 文字基本颜色 */
$uni-text-color: #333; //
$uni-text-color-inverse: #fff; //
$uni-text-color-grey: #999; //
$uni-text-color-placeholder: #808080;
$uni-text-color-disable: #c0c0c0;
/* 背景颜色 */
$uni-bg-color: #fff;
$uni-bg-color-grey: #f8f8f8;
$uni-bg-color-hover: #f1f1f1; //
$uni-bg-color-mask: rgba(0, 0, 0, 0.4); //
/* 边框颜色 */
$uni-border-color: #c8c7cc;
/* 尺寸变量 */
/* 文字尺寸 */
$uni-font-size-sm: 12px;
$uni-font-size-base: 14px;
$uni-font-size-lg: 16;
/* 图片尺寸 */
$uni-img-size-sm: 20px;
$uni-img-size-base: 26px;
$uni-img-size-lg: 40px;
/* Border Radius */
$uni-border-radius-sm: 2px;
$uni-border-radius-base: 3px;
$uni-border-radius-lg: 6px;
$uni-border-radius-circle: 50%;
/* 水平间距 */
$uni-spacing-row-sm: 5px;
$uni-spacing-row-base: 10px;
$uni-spacing-row-lg: 15px;
/* 垂直间距 */
$uni-spacing-col-sm: 4px;
$uni-spacing-col-base: 8px;
$uni-spacing-col-lg: 12px;
/* 透明度 */
$uni-opacity-disabled: 0.3; //
/* 文章场景相关 */
$uni-color-title: #2c405a; //
$uni-font-size-title: 20px;
$uni-color-subtitle: #555; //
$uni-font-size-subtitle: 18px;
$uni-color-paragraph: #3f536e; //
$uni-font-size-paragraph: 15px;

13
tsconfig.json Normal file
View File

@ -0,0 +1,13 @@
{
"extends": "@vue/tsconfig/tsconfig.json",
"compilerOptions": {
"sourceMap": true,
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
},
"lib": ["esnext", "dom"],
"types": ["@dcloudio/types"]
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}

42
vite.config.ts Normal file
View File

@ -0,0 +1,42 @@
import { defineConfig } from "vite";
import { resolve } from "path"
import uni from "@dcloudio/vite-plugin-uni";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [uni()],
resolve: {
alias: [
{
find: "@",
replacement: resolve(__dirname, 'src')
}
]
},
css: {
preprocessorOptions: {
// 全局样式引入
scss: {
additionalData: '@import "./src/styles/variables.scss";',
javascriptEnabled: true
}
}
},
server: {
proxy: {
'/local': {
target: 'http://1.14.15.135:5610', // 172.16.8.98:5610
// target: 'https://6u18q42299.zicp.fun/ty-api',
changeOrigin: true,
rewrite: path => {
return path.replace(/^\/local/, '')
}
},
}
},
esbuild: {
// drop: ["console", "debugger"],
drop: ["debugger"],
},
});