项目启动

This commit is contained in:
comlibmb
2026-01-21 16:41:11 +08:00
parent d7f95f7fa5
commit 9eb05253d3
8 changed files with 328 additions and 2 deletions

45
.gitignore vendored Normal file
View File

@@ -0,0 +1,45 @@
# Ignore Claude related files and directories
claude/
claude*
*.claude
# Ignore Cursor related files and directories
.cursor/
.cursor*
*.cursor
# Common editor and IDE files
.DS_Store
.idea/
.vscode/
*.sublime-workspace
*.sublime-project
# Logs and databases
*.log
*.sql
*.sqlite
# Dependency directories
node_modules/
# Local development files
.env
.env.local
.env.*.local
# Build output
dist/
build/
# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# Project specific ignores
# Add any other project specific ignores below this line

14
App.uvue Normal file
View File

@@ -0,0 +1,14 @@
<template>
<view class="app-root">
<slot />
</view>
</template>
<script setup lang="uts">
</script>
<style>
.app-root {
min-height: 100vh;
}
</style>

22
index.html Normal file
View File

@@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>Mall</title>
<script>
// Uni-app 3.0 需要这个全局变量
window.process = { env: { NODE_ENV: 'development' } };
</script>
</head>
<body>
<div id="app">
<!-- 应用内容将由 uni-app 渲染 -->
</div>
<!-- 自动生成的脚本会在这里注入 -->
</body>
</html>

7
main.uts Normal file
View File

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

73
manifest.json Normal file
View File

@@ -0,0 +1,73 @@
{
"name": "mall",
"appid": "__UNI__YOUR_APP_ID__",
"description": "A multi-role e-commerce application.",
"versionName": "1.0.0",
"versionCode": "100",
"transformPx": false,
"app-plus": {
"usingComponents": true,
"nvueStyleCompiler": "uni-app",
"compilerVersion": 3,
"splashscreen": {
"alwaysShowBeforeRender": true,
"waiting": true,
"autoclose": true,
"delay": 0
},
"modules": {},
"distribute": {
"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\"/>",
"<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.autofocus\"/>",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.INTERNET\"/>"
]
},
"ios": {},
"sdkConfigs": {}
}
},
"quickapp": {},
"mp-weixin": {
"appid": "",
"setting": {
"urlCheck": false
},
"usingComponents": true
},
"mp-alipay": {
"usingComponents": true
},
"mp-baidu": {
"usingComponents": true
},
"mp-toutiao": {
"usingComponents": true
},
"uniStatistics": {
"enable": false
},
"vueVersion": "3",
"h5": {
"title": "mall",
"router": {
"mode": "hash",
"base": "./"
}
}
}

151
pages.json Normal file
View File

@@ -0,0 +1,151 @@
{
"pages": [
{
"path": "pages/user/login",
"style": {
"navigationBarTitleText": "登录"
}
},
{
"path": "pages/user/register",
"style": {
"navigationBarTitleText": "注册"
}
},
{
"path": "pages/user/forgot-password",
"style": {
"navigationBarTitleText": "忘记密码"
}
},
{
"path": "pages/user/center",
"style": {
"navigationBarTitleText": "用户中心"
}
},
{
"path": "pages/user/profile",
"style": {
"navigationBarTitleText": "个人资料"
}
},
{
"path": "pages/mall/consumer/index",
"style": {
"navigationBarTitleText": "商城首页",
"navigationStyle": "custom"
}
},
{
"path": "pages/mall/merchant/index",
"style": {
"navigationBarTitleText": "商家中心",
"navigationStyle": "custom"
}
},
{
"path": "pages/mall/delivery/index",
"style": {
"navigationBarTitleText": "配送中心",
"navigationStyle": "custom"
}
},
{
"path": "pages/mall/admin/index",
"style": {
"navigationBarTitleText": "管理后台",
"navigationStyle": "custom"
}
},
{
"path": "pages/mall/service/index",
"style": {
"navigationBarTitleText": "客服工作台",
"navigationStyle": "custom"
}
},
{
"path": "pages/mall/analytics/index",
"style": {
"navigationBarTitleText": "数据分析",
"navigationStyle": "custom"
}
}
],
"subPackages": [
{
"root": "pages/mall",
"pages": [
{
"path": "consumer/product-detail",
"style": {
"navigationBarTitleText": "商品详情"
}
},
{
"path": "consumer/order-detail",
"style": {
"navigationBarTitleText": "订单详情"
}
},
{
"path": "consumer/profile",
"style": {
"navigationBarTitleText": "个人中心"
}
},
{
"path": "consumer/subscription/plan-list",
"style": {
"navigationBarTitleText": "软件订阅"
}
},
{
"path": "consumer/subscription/plan-detail",
"style": {
"navigationBarTitleText": "订阅详情"
}
},
{
"path": "consumer/subscription/subscribe-checkout",
"style": {
"navigationBarTitleText": "确认订阅"
}
},
{
"path": "consumer/subscription/my-subscriptions",
"style": {
"navigationBarTitleText": "我的订阅"
}
},
{
"path": "admin/subscription/plan-management",
"style": {
"navigationBarTitleText": "订阅方案管理"
}
},
{
"path": "admin/subscription/user-subscriptions",
"style": {
"navigationBarTitleText": "用户订阅管理"
}
},
{
"path": "nfc/security/index",
"style": {
"navigationBarTitleText": "安保工作台",
"enablePullDownRefresh": true,
"backgroundColor": "#f8f9fa"
}
}
]
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "mall",
"navigationBarBackgroundColor": "#FFFFFF",
"backgroundColor": "#F8F8F8"
}
}

View File

@@ -204,7 +204,9 @@
<script setup lang="uts"> <script setup lang="uts">
// 消息操作 // 消息操作
// #ifdef APP
import { setClipboardData, getClipboardData, SetClipboardDataOption, GetClipboardDataOption, GetClipboardDataSuccessCallbackOption } from '@/uni_modules/lime-clipboard' import { setClipboardData, getClipboardData, SetClipboardDataOption, GetClipboardDataOption, GetClipboardDataSuccessCallbackOption } from '@/uni_modules/lime-clipboard'
// #endif
import supa from '@/components/supadb/aksupainstance.uts' import supa from '@/components/supadb/aksupainstance.uts'
import { requestCanvasCompletion } from '@/components/supadb/rag.uts' import { requestCanvasCompletion } from '@/components/supadb/rag.uts'
import { RagReq } from '@/uni_modules/rag-req/rag-req.uts' import { RagReq } from '@/uni_modules/rag-req/rag-req.uts'
@@ -365,6 +367,7 @@
const copyMessage = async (message : ChatMessageData) => { const copyMessage = async (message : ChatMessageData) => {
const content = message.content const content = message.content
try { try {
// #ifdef APP
setClipboardData({ setClipboardData({
data: content, data: content,
success(res) { success(res) {
@@ -375,8 +378,18 @@
}) })
} }
} as SetClipboardDataOption) } as SetClipboardDataOption)
// #endif
// #ifndef APP
uni.setClipboardData({
data: content,
success: () => {
uni.showToast({ title: '已复制到剪贴板', icon: 'success' })
},
fail: () => {
uni.showToast({ title: '复制失败', icon: 'none' })
}
})
// #endif
} catch (error) { } catch (error) {
console.error('复制失败:', error) console.error('复制失败:', error)
} }

1
uni.scss Normal file
View File

@@ -0,0 +1 @@
/* Global styles entry. Keep minimal to avoid affecting existing pages. */