chore: scaffold linhelp applications
This commit is contained in:
21
.gitignore
vendored
Normal file
21
.gitignore
vendored
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
.worktrees/
|
||||||
|
target/
|
||||||
|
*.class
|
||||||
|
*.log
|
||||||
|
|
||||||
|
node_modules/
|
||||||
|
dist/
|
||||||
|
.vite/
|
||||||
|
coverage/
|
||||||
|
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.iml
|
||||||
|
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
|
||||||
|
backend/logs/
|
||||||
|
deploy/.data/
|
||||||
|
miniapp/miniprogram_npm/
|
||||||
|
miniapp/private.*
|
||||||
23
README.md
Normal file
23
README.md
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# LinHelp
|
||||||
|
|
||||||
|
LinHelp is the phase-one implementation workspace for "Lin Xiao Bang", a community life service MVP.
|
||||||
|
|
||||||
|
## Stack
|
||||||
|
|
||||||
|
- Backend: Java 8, Spring Boot 2.7.18, MyBatis Plus, Sa-Token, MySQL, Redis, Flyway, Knife4j, MinIO
|
||||||
|
- Admin web: Vue 3, TypeScript, Vite, Element Plus
|
||||||
|
- Resident miniapp: WeChat native mini program, WXML, WXSS, JavaScript
|
||||||
|
- Rider H5: Vue 3, TypeScript, Vite
|
||||||
|
|
||||||
|
## Local Runtime
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
docker compose -f deploy/docker-compose.dev.yml up -d
|
||||||
|
cd backend
|
||||||
|
mvn test
|
||||||
|
```
|
||||||
|
|
||||||
|
Project docs:
|
||||||
|
|
||||||
|
- `docs/superpowers/specs/2026-07-07-linxiaobang-prd-design.md`
|
||||||
|
- `docs/superpowers/plans/2026-07-07-linxiaobang-phase-one-implementation.md`
|
||||||
27
admin-web/package.json
Normal file
27
admin-web/package.json
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"name": "linhelp-admin-web",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite --host 0.0.0.0 --port 5173",
|
||||||
|
"build": "vue-tsc -b && vite build",
|
||||||
|
"test": "vitest run",
|
||||||
|
"lint": "eslint ."
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@element-plus/icons-vue": "^2.3.1",
|
||||||
|
"axios": "^1.7.2",
|
||||||
|
"element-plus": "^2.7.6",
|
||||||
|
"pinia": "^2.1.7",
|
||||||
|
"vue": "^3.4.31",
|
||||||
|
"vue-router": "^4.4.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@vitejs/plugin-vue": "^5.0.5",
|
||||||
|
"typescript": "^5.5.3",
|
||||||
|
"vite": "^5.3.3",
|
||||||
|
"vitest": "^2.0.2",
|
||||||
|
"vue-tsc": "^2.0.26"
|
||||||
|
}
|
||||||
|
}
|
||||||
9
admin-web/vite.config.ts
Normal file
9
admin-web/vite.config.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import { defineConfig } from 'vite'
|
||||||
|
import vue from '@vitejs/plugin-vue'
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
plugins: [vue()],
|
||||||
|
server: {
|
||||||
|
port: 5173
|
||||||
|
}
|
||||||
|
})
|
||||||
112
backend/pom.xml
Normal file
112
backend/pom.xml
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>com.linhelp</groupId>
|
||||||
|
<artifactId>linhelp-backend</artifactId>
|
||||||
|
<version>0.1.0-SNAPSHOT</version>
|
||||||
|
<name>linhelp-backend</name>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<java.version>1.8</java.version>
|
||||||
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>1.8</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<spring-boot.version>2.7.18</spring-boot.version>
|
||||||
|
<mybatis-plus.version>3.5.5</mybatis-plus.version>
|
||||||
|
<sa-token.version>1.38.0</sa-token.version>
|
||||||
|
<knife4j.version>4.4.0</knife4j.version>
|
||||||
|
<minio.version>8.5.11</minio.version>
|
||||||
|
<mysql.version>8.0.33</mysql.version>
|
||||||
|
<maven-compiler-plugin.version>3.11.0</maven-compiler-plugin.version>
|
||||||
|
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-dependencies</artifactId>
|
||||||
|
<version>${spring-boot.version}</version>
|
||||||
|
<type>pom</type>
|
||||||
|
<scope>import</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-validation</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||||
|
<version>${mybatis-plus.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.dev33</groupId>
|
||||||
|
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||||
|
<version>${sa-token.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-j</artifactId>
|
||||||
|
<version>${mysql.version}</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.flywaydb</groupId>
|
||||||
|
<artifactId>flyway-core</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
|
<artifactId>knife4j-openapi3-spring-boot-starter</artifactId>
|
||||||
|
<version>${knife4j.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.minio</groupId>
|
||||||
|
<artifactId>minio</artifactId>
|
||||||
|
<version>${minio.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>${maven-compiler-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<source>1.8</source>
|
||||||
|
<target>1.8</target>
|
||||||
|
<encoding>UTF-8</encoding>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
<version>${spring-boot.version}</version>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<version>${maven-surefire-plugin.version}</version>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
||||||
12
backend/src/main/java/com/linhelp/LinHelpApplication.java
Normal file
12
backend/src/main/java/com/linhelp/LinHelpApplication.java
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package com.linhelp;
|
||||||
|
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
public class LinHelpApplication {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(LinHelpApplication.class, args);
|
||||||
|
}
|
||||||
|
}
|
||||||
26
backend/src/main/resources/application-dev.yml
Normal file
26
backend/src/main/resources/application-dev.yml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
spring:
|
||||||
|
datasource:
|
||||||
|
url: jdbc:mysql://localhost:3306/linhelp?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
|
||||||
|
username: linhelp
|
||||||
|
password: linhelp
|
||||||
|
redis:
|
||||||
|
host: localhost
|
||||||
|
port: 6379
|
||||||
|
flyway:
|
||||||
|
enabled: true
|
||||||
|
locations: classpath:db/migration
|
||||||
|
|
||||||
|
mybatis-plus:
|
||||||
|
configuration:
|
||||||
|
map-underscore-to-camel-case: true
|
||||||
|
|
||||||
|
sa-token:
|
||||||
|
token-name: Authorization
|
||||||
|
timeout: 2592000
|
||||||
|
|
||||||
|
linhelp:
|
||||||
|
storage:
|
||||||
|
endpoint: http://localhost:9000
|
||||||
|
access-key: linhelp
|
||||||
|
secret-key: linhelp123
|
||||||
|
bucket: linhelp
|
||||||
11
backend/src/main/resources/application.yml
Normal file
11
backend/src/main/resources/application.yml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
spring:
|
||||||
|
profiles:
|
||||||
|
active: dev
|
||||||
|
application:
|
||||||
|
name: linhelp-backend
|
||||||
|
|
||||||
|
server:
|
||||||
|
port: 8080
|
||||||
|
|
||||||
|
knife4j:
|
||||||
|
enable: true
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.linhelp;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
|
@SpringBootTest(properties = {
|
||||||
|
"spring.flyway.enabled=false",
|
||||||
|
"spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration"
|
||||||
|
})
|
||||||
|
class LinHelpApplicationTests {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void contextLoads() {
|
||||||
|
}
|
||||||
|
}
|
||||||
30
deploy/docker-compose.dev.yml
Normal file
30
deploy/docker-compose.dev.yml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
services:
|
||||||
|
mysql:
|
||||||
|
image: mysql:8.4
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: root
|
||||||
|
MYSQL_DATABASE: linhelp
|
||||||
|
MYSQL_USER: linhelp
|
||||||
|
MYSQL_PASSWORD: linhelp
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
volumes:
|
||||||
|
- mysql_data:/var/lib/mysql
|
||||||
|
redis:
|
||||||
|
image: redis:7
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
minio:
|
||||||
|
image: minio/minio:RELEASE.2025-04-22T22-12-26Z
|
||||||
|
command: server /data --console-address ":9001"
|
||||||
|
environment:
|
||||||
|
MINIO_ROOT_USER: linhelp
|
||||||
|
MINIO_ROOT_PASSWORD: linhelp123
|
||||||
|
ports:
|
||||||
|
- "9000:9000"
|
||||||
|
- "9001:9001"
|
||||||
|
volumes:
|
||||||
|
- minio_data:/data
|
||||||
|
volumes:
|
||||||
|
mysql_data:
|
||||||
|
minio_data:
|
||||||
6
miniapp/miniprogram/app.js
Normal file
6
miniapp/miniprogram/app.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
App({
|
||||||
|
globalData: {
|
||||||
|
apiBaseUrl: 'http://localhost:8080',
|
||||||
|
token: ''
|
||||||
|
}
|
||||||
|
})
|
||||||
46
miniapp/miniprogram/app.json
Normal file
46
miniapp/miniprogram/app.json
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"pages": [
|
||||||
|
"pages/home/index",
|
||||||
|
"pages/products/index",
|
||||||
|
"pages/products/detail",
|
||||||
|
"pages/orders/index",
|
||||||
|
"pages/orders/detail",
|
||||||
|
"pages/express/create",
|
||||||
|
"pages/group-buy/index",
|
||||||
|
"pages/group-buy/detail",
|
||||||
|
"pages/second-hand/index",
|
||||||
|
"pages/second-hand/create",
|
||||||
|
"pages/notices/index",
|
||||||
|
"pages/profile/index",
|
||||||
|
"pages/address/index"
|
||||||
|
],
|
||||||
|
"window": {
|
||||||
|
"navigationBarTitleText": "邻小帮",
|
||||||
|
"navigationBarBackgroundColor": "#ffffff",
|
||||||
|
"navigationBarTextStyle": "black",
|
||||||
|
"backgroundColor": "#f6f7f9"
|
||||||
|
},
|
||||||
|
"tabBar": {
|
||||||
|
"color": "#6b7280",
|
||||||
|
"selectedColor": "#0f766e",
|
||||||
|
"backgroundColor": "#ffffff",
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"pagePath": "pages/home/index",
|
||||||
|
"text": "首页"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pagePath": "pages/group-buy/index",
|
||||||
|
"text": "团购"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pagePath": "pages/second-hand/index",
|
||||||
|
"text": "闲置"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pagePath": "pages/profile/index",
|
||||||
|
"text": "我的"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
9
miniapp/miniprogram/app.wxss
Normal file
9
miniapp/miniprogram/app.wxss
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
page {
|
||||||
|
background: #f6f7f9;
|
||||||
|
color: #111827;
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page {
|
||||||
|
padding: 24rpx;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/address/index.js
Normal file
1
miniapp/miniprogram/pages/address/index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/address/index.json
Normal file
3
miniapp/miniprogram/pages/address/index.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "地址管理"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/address/index.wxml
Normal file
1
miniapp/miniprogram/pages/address/index.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">地址管理</view>
|
||||||
3
miniapp/miniprogram/pages/address/index.wxss
Normal file
3
miniapp/miniprogram/pages/address/index.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/express/create.js
Normal file
1
miniapp/miniprogram/pages/express/create.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/express/create.json
Normal file
3
miniapp/miniprogram/pages/express/create.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "代取快递"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/express/create.wxml
Normal file
1
miniapp/miniprogram/pages/express/create.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">代取快递</view>
|
||||||
3
miniapp/miniprogram/pages/express/create.wxss
Normal file
3
miniapp/miniprogram/pages/express/create.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/group-buy/detail.js
Normal file
1
miniapp/miniprogram/pages/group-buy/detail.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/group-buy/detail.json
Normal file
3
miniapp/miniprogram/pages/group-buy/detail.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "团购详情"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/group-buy/detail.wxml
Normal file
1
miniapp/miniprogram/pages/group-buy/detail.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">团购详情</view>
|
||||||
3
miniapp/miniprogram/pages/group-buy/detail.wxss
Normal file
3
miniapp/miniprogram/pages/group-buy/detail.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/group-buy/index.js
Normal file
1
miniapp/miniprogram/pages/group-buy/index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/group-buy/index.json
Normal file
3
miniapp/miniprogram/pages/group-buy/index.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "今日团购"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/group-buy/index.wxml
Normal file
1
miniapp/miniprogram/pages/group-buy/index.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">今日团购</view>
|
||||||
3
miniapp/miniprogram/pages/group-buy/index.wxss
Normal file
3
miniapp/miniprogram/pages/group-buy/index.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/home/index.js
Normal file
1
miniapp/miniprogram/pages/home/index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/home/index.json
Normal file
3
miniapp/miniprogram/pages/home/index.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "邻小帮"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/home/index.wxml
Normal file
1
miniapp/miniprogram/pages/home/index.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">邻小帮</view>
|
||||||
3
miniapp/miniprogram/pages/home/index.wxss
Normal file
3
miniapp/miniprogram/pages/home/index.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/notices/index.js
Normal file
1
miniapp/miniprogram/pages/notices/index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/notices/index.json
Normal file
3
miniapp/miniprogram/pages/notices/index.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "社区公告"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/notices/index.wxml
Normal file
1
miniapp/miniprogram/pages/notices/index.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">社区公告</view>
|
||||||
3
miniapp/miniprogram/pages/notices/index.wxss
Normal file
3
miniapp/miniprogram/pages/notices/index.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/orders/detail.js
Normal file
1
miniapp/miniprogram/pages/orders/detail.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/orders/detail.json
Normal file
3
miniapp/miniprogram/pages/orders/detail.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "订单详情"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/orders/detail.wxml
Normal file
1
miniapp/miniprogram/pages/orders/detail.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">订单详情</view>
|
||||||
3
miniapp/miniprogram/pages/orders/detail.wxss
Normal file
3
miniapp/miniprogram/pages/orders/detail.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/orders/index.js
Normal file
1
miniapp/miniprogram/pages/orders/index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/orders/index.json
Normal file
3
miniapp/miniprogram/pages/orders/index.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "我的订单"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/orders/index.wxml
Normal file
1
miniapp/miniprogram/pages/orders/index.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">我的订单</view>
|
||||||
3
miniapp/miniprogram/pages/orders/index.wxss
Normal file
3
miniapp/miniprogram/pages/orders/index.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/products/detail.js
Normal file
1
miniapp/miniprogram/pages/products/detail.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/products/detail.json
Normal file
3
miniapp/miniprogram/pages/products/detail.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "商品详情"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/products/detail.wxml
Normal file
1
miniapp/miniprogram/pages/products/detail.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">商品详情</view>
|
||||||
3
miniapp/miniprogram/pages/products/detail.wxss
Normal file
3
miniapp/miniprogram/pages/products/detail.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/products/index.js
Normal file
1
miniapp/miniprogram/pages/products/index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/products/index.json
Normal file
3
miniapp/miniprogram/pages/products/index.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "商品预定"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/products/index.wxml
Normal file
1
miniapp/miniprogram/pages/products/index.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">商品预定</view>
|
||||||
3
miniapp/miniprogram/pages/products/index.wxss
Normal file
3
miniapp/miniprogram/pages/products/index.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/profile/index.js
Normal file
1
miniapp/miniprogram/pages/profile/index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/profile/index.json
Normal file
3
miniapp/miniprogram/pages/profile/index.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "我的"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/profile/index.wxml
Normal file
1
miniapp/miniprogram/pages/profile/index.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">我的</view>
|
||||||
3
miniapp/miniprogram/pages/profile/index.wxss
Normal file
3
miniapp/miniprogram/pages/profile/index.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/second-hand/create.js
Normal file
1
miniapp/miniprogram/pages/second-hand/create.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/second-hand/create.json
Normal file
3
miniapp/miniprogram/pages/second-hand/create.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "发布闲置"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/second-hand/create.wxml
Normal file
1
miniapp/miniprogram/pages/second-hand/create.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">发布闲置</view>
|
||||||
3
miniapp/miniprogram/pages/second-hand/create.wxss
Normal file
3
miniapp/miniprogram/pages/second-hand/create.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/second-hand/index.js
Normal file
1
miniapp/miniprogram/pages/second-hand/index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Page({})
|
||||||
3
miniapp/miniprogram/pages/second-hand/index.json
Normal file
3
miniapp/miniprogram/pages/second-hand/index.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"navigationBarTitleText": "二手闲置"
|
||||||
|
}
|
||||||
1
miniapp/miniprogram/pages/second-hand/index.wxml
Normal file
1
miniapp/miniprogram/pages/second-hand/index.wxml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<view class="page">二手闲置</view>
|
||||||
3
miniapp/miniprogram/pages/second-hand/index.wxss
Normal file
3
miniapp/miniprogram/pages/second-hand/index.wxss
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
26
miniapp/miniprogram/utils/request.js
Normal file
26
miniapp/miniprogram/utils/request.js
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
function request(options) {
|
||||||
|
const app = getApp()
|
||||||
|
const token = app.globalData.token
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
wx.request({
|
||||||
|
url: app.globalData.apiBaseUrl + options.url,
|
||||||
|
method: options.method || 'GET',
|
||||||
|
data: options.data || {},
|
||||||
|
header: Object.assign({
|
||||||
|
Authorization: token
|
||||||
|
}, options.header || {}),
|
||||||
|
success(res) {
|
||||||
|
if (res.statusCode >= 200 && res.statusCode < 300 && res.data && res.data.code === 0) {
|
||||||
|
resolve(res.data.data)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
reject(new Error((res.data && res.data.message) || '请求失败'))
|
||||||
|
},
|
||||||
|
fail: reject
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
request
|
||||||
|
}
|
||||||
13
miniapp/package.json
Normal file
13
miniapp/package.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"name": "linhelp-miniapp",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"test": "jest --runInBand",
|
||||||
|
"ci:preview": "miniprogram-ci preview --pp ./project.config.json --robot 1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"jest": "^29.7.0",
|
||||||
|
"miniprogram-ci": "^2.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
13
miniapp/project.config.json
Normal file
13
miniapp/project.config.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"appid": "touristappid",
|
||||||
|
"projectname": "linhelp-miniapp",
|
||||||
|
"miniprogramRoot": "miniprogram/",
|
||||||
|
"setting": {
|
||||||
|
"urlCheck": false,
|
||||||
|
"es6": true,
|
||||||
|
"enhance": true,
|
||||||
|
"postcss": true,
|
||||||
|
"minified": true
|
||||||
|
},
|
||||||
|
"compileType": "miniprogram"
|
||||||
|
}
|
||||||
25
rider-h5/package.json
Normal file
25
rider-h5/package.json
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"name": "linhelp-rider-h5",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite --host 0.0.0.0 --port 5174",
|
||||||
|
"build": "vue-tsc -b && vite build",
|
||||||
|
"test": "vitest run",
|
||||||
|
"lint": "eslint ."
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"axios": "^1.7.2",
|
||||||
|
"pinia": "^2.1.7",
|
||||||
|
"vue": "^3.4.31",
|
||||||
|
"vue-router": "^4.4.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@vitejs/plugin-vue": "^5.0.5",
|
||||||
|
"typescript": "^5.5.3",
|
||||||
|
"vite": "^5.3.3",
|
||||||
|
"vitest": "^2.0.2",
|
||||||
|
"vue-tsc": "^2.0.26"
|
||||||
|
}
|
||||||
|
}
|
||||||
9
rider-h5/vite.config.ts
Normal file
9
rider-h5/vite.config.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import { defineConfig } from 'vite'
|
||||||
|
import vue from '@vitejs/plugin-vue'
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
plugins: [vue()],
|
||||||
|
server: {
|
||||||
|
port: 5174
|
||||||
|
}
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user