diff --git a/AGENTS.md b/AGENTS.md
index 1c48ead..d6285e6 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -70,12 +70,10 @@ interface UserDTO {
- **组件规范**:组合式 API(setup 语法)
### cashier-mobile / customer-mobile(移动端)
-- **框架**:待定(根据需求选择 uni-app、React Native、Flutter 等)
-- **选型原则**:
- - uni-app:跨平台、快速开发、适合小程序+H5+App
- - React Native:性能要求高、需要原生能力
- - Flutter:高性能、自定义 UI
+- **框架**:uni-app(Vue3)
+- **支持平台**:小程序、H5、App
- **包管理器**:pnpm(推荐)或 npm
+- **UI 框架**:uni-ui 或 uview-plus
### 通用规范
1. **代码风格**:遵循项目现有 ESLint/Prettier 配置
diff --git a/cashier-mobile/App.vue b/cashier-mobile/App.vue
new file mode 100644
index 0000000..a647757
--- /dev/null
+++ b/cashier-mobile/App.vue
@@ -0,0 +1,22 @@
+
+
+
diff --git a/cashier-mobile/main.js b/cashier-mobile/main.js
new file mode 100644
index 0000000..ffcc69d
--- /dev/null
+++ b/cashier-mobile/main.js
@@ -0,0 +1,9 @@
+import { createSSRApp } from 'vue'
+import App from './App.vue'
+
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
diff --git a/cashier-mobile/manifest.json b/cashier-mobile/manifest.json
new file mode 100644
index 0000000..ee65b88
--- /dev/null
+++ b/cashier-mobile/manifest.json
@@ -0,0 +1,30 @@
+{
+ "name": "收银系统",
+ "appid": "__UNI__CASHIER001",
+ "description": "睿核科技收银系统移动端",
+ "versionName": "1.0.0",
+ "versionCode": "100",
+ "transformPx": false,
+ "app-plus": {
+ "usingComponents": true,
+ "splashscreen": {
+ "alwaysShowBeforeRender": true,
+ "waiting": true,
+ "autoclose": true,
+ "delay": 0
+ }
+ },
+ "mp-weixin": {
+ "appid": "",
+ "setting": {
+ "urlCheck": false
+ },
+ "usingComponents": true
+ },
+ "h5": {
+ "title": "收银系统",
+ "router": {
+ "mode": "hash"
+ }
+ }
+}
diff --git a/cashier-mobile/package.json b/cashier-mobile/package.json
index 2817332..6941c05 100644
--- a/cashier-mobile/package.json
+++ b/cashier-mobile/package.json
@@ -1,15 +1,25 @@
{
"name": "cashier-mobile",
- "version": "0.1.0",
- "description": "收银系统移动端",
- "private": true,
- "type": "module",
+ "version": "1.0.0",
+ "description": "收银系统移动端 - uni-app",
+ "main": "main.js",
"scripts": {
- "dev": "echo '待配置开发命令'",
- "build": "echo '待配置构建命令'",
- "lint": "echo '待配置'",
- "type-check": "echo '待配置'"
+ "dev:h5": "uni",
+ "dev:mp-weixin": "uni --platform mp-weixin",
+ "dev:app": "uni --platform app",
+ "build:h5": "uni build",
+ "build:mp-weixin": "uni build --platform mp-weixin",
+ "build:app": "uni build --platform app"
},
- "dependencies": {},
- "devDependencies": {}
+ "dependencies": {
+ "@dcloudio/uni-app": "3.0.0",
+ "vue": "^3.3.0",
+ "vuex": "^4.1.0"
+ },
+ "devDependencies": {
+ "@dcloudio/types": "^3.3.0",
+ "@dcloudio/uni-cli-shared": "3.0.0",
+ "@dcloudio/vite-plugin-uni": "3.0.0",
+ "vite": "^4.4.0"
+ }
}
diff --git a/cashier-mobile/pages.json b/cashier-mobile/pages.json
new file mode 100644
index 0000000..2156d8d
--- /dev/null
+++ b/cashier-mobile/pages.json
@@ -0,0 +1,44 @@
+{
+ "pages": [
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "收银台"
+ }
+ },
+ {
+ "path": "pages/order/order",
+ "style": {
+ "navigationBarTitleText": "订单管理"
+ }
+ },
+ {
+ "path": "pages/member/member",
+ "style": {
+ "navigationBarTitleText": "会员管理"
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "收银系统",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "tabBar": {
+ "list": [
+ {
+ "pagePath": "pages/index/index",
+ "text": "收银"
+ },
+ {
+ "pagePath": "pages/order/order",
+ "text": "订单"
+ },
+ {
+ "pagePath": "pages/member/member",
+ "text": "会员"
+ }
+ ]
+ }
+}
diff --git a/cashier-mobile/pages/index/index.vue b/cashier-mobile/pages/index/index.vue
new file mode 100644
index 0000000..ba44715
--- /dev/null
+++ b/cashier-mobile/pages/index/index.vue
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cashier-mobile/pages/member/member.vue b/cashier-mobile/pages/member/member.vue
new file mode 100644
index 0000000..4518038
--- /dev/null
+++ b/cashier-mobile/pages/member/member.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+ {{ member.name }}
+ {{ member.phone }}
+
+
+
+
+
+
+
+
diff --git a/cashier-mobile/pages/order/order.vue b/cashier-mobile/pages/order/order.vue
new file mode 100644
index 0000000..76f3ae0
--- /dev/null
+++ b/cashier-mobile/pages/order/order.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+ {{ order.orderNo }}
+ ¥{{ order.amount }}
+ {{ order.status }}
+
+
+
+
+
+
+
+
diff --git a/customer-mobile/App.vue b/customer-mobile/App.vue
new file mode 100644
index 0000000..8d95268
--- /dev/null
+++ b/customer-mobile/App.vue
@@ -0,0 +1,22 @@
+
+
+
diff --git a/customer-mobile/main.js b/customer-mobile/main.js
new file mode 100644
index 0000000..ffcc69d
--- /dev/null
+++ b/customer-mobile/main.js
@@ -0,0 +1,9 @@
+import { createSSRApp } from 'vue'
+import App from './App.vue'
+
+export function createApp() {
+ const app = createSSRApp(App)
+ return {
+ app
+ }
+}
diff --git a/customer-mobile/manifest.json b/customer-mobile/manifest.json
new file mode 100644
index 0000000..922d361
--- /dev/null
+++ b/customer-mobile/manifest.json
@@ -0,0 +1,30 @@
+{
+ "name": "顾客端",
+ "appid": "__UNI__CUSTOMER001",
+ "description": "睿核科技顾客端移动端",
+ "versionName": "1.0.0",
+ "versionCode": "100",
+ "transformPx": false,
+ "app-plus": {
+ "usingComponents": true,
+ "splashscreen": {
+ "alwaysShowBeforeRender": true,
+ "waiting": true,
+ "autoclose": true,
+ "delay": 0
+ }
+ },
+ "mp-weixin": {
+ "appid": "",
+ "setting": {
+ "urlCheck": false
+ },
+ "usingComponents": true
+ },
+ "h5": {
+ "title": "顾客端",
+ "router": {
+ "mode": "hash"
+ }
+ }
+}
diff --git a/customer-mobile/package.json b/customer-mobile/package.json
index 3178cb6..cfeed37 100644
--- a/customer-mobile/package.json
+++ b/customer-mobile/package.json
@@ -1,15 +1,25 @@
{
"name": "customer-mobile",
- "version": "0.1.0",
- "description": "收银系统顾客端",
- "private": true,
- "type": "module",
+ "version": "1.0.0",
+ "description": "顾客端移动端 - uni-app",
+ "main": "main.js",
"scripts": {
- "dev": "echo '待配置开发命令'",
- "build": "echo '待配置构建命令'",
- "lint": "echo '待配置'",
- "type-check": "echo '待配置'"
+ "dev:h5": "uni",
+ "dev:mp-weixin": "uni --platform mp-weixin",
+ "dev:app": "uni --platform app",
+ "build:h5": "uni build",
+ "build:mp-weixin": "uni build --platform mp-weixin",
+ "build:app": "uni build --platform app"
},
- "dependencies": {},
- "devDependencies": {}
+ "dependencies": {
+ "@dcloudio/uni-app": "3.0.0",
+ "vue": "^3.3.0",
+ "vuex": "^4.1.0"
+ },
+ "devDependencies": {
+ "@dcloudio/types": "^3.3.0",
+ "@dcloudio/uni-cli-shared": "3.0.0",
+ "@dcloudio/vite-plugin-uni": "3.0.0",
+ "vite": "^4.4.0"
+ }
}
diff --git a/customer-mobile/pages.json b/customer-mobile/pages.json
new file mode 100644
index 0000000..8d5a48f
--- /dev/null
+++ b/customer-mobile/pages.json
@@ -0,0 +1,44 @@
+{
+ "pages": [
+ {
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "首页"
+ }
+ },
+ {
+ "path": "pages/order/order",
+ "style": {
+ "navigationBarTitleText": "我的订单"
+ }
+ },
+ {
+ "path": "pages/member/member",
+ "style": {
+ "navigationBarTitleText": "会员中心"
+ }
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "black",
+ "navigationBarTitleText": "顾客端",
+ "navigationBarBackgroundColor": "#F8F8F8",
+ "backgroundColor": "#F8F8F8"
+ },
+ "tabBar": {
+ "list": [
+ {
+ "pagePath": "pages/index/index",
+ "text": "首页"
+ },
+ {
+ "pagePath": "pages/order/order",
+ "text": "订单"
+ },
+ {
+ "pagePath": "pages/member/member",
+ "text": "我的"
+ }
+ ]
+ }
+}
diff --git a/customer-mobile/pages/index/index.vue b/customer-mobile/pages/index/index.vue
new file mode 100644
index 0000000..9df08df
--- /dev/null
+++ b/customer-mobile/pages/index/index.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/customer-mobile/pages/member/member.vue b/customer-mobile/pages/member/member.vue
new file mode 100644
index 0000000..87128e8
--- /dev/null
+++ b/customer-mobile/pages/member/member.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+ 张三
+ 黄金会员
+
+
+
+ 100
+ 积分
+
+
+ 5
+ 优惠券
+
+
+
+
+
+
+
+
+
diff --git a/customer-mobile/pages/order/order.vue b/customer-mobile/pages/order/order.vue
new file mode 100644
index 0000000..45c08e8
--- /dev/null
+++ b/customer-mobile/pages/order/order.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+ {{ order.orderNo }}
+ ¥{{ order.amount }}
+ {{ order.status }}
+
+
+
+
+
+
+
+