项目启动
This commit is contained in:
45
.gitignore
vendored
Normal file
45
.gitignore
vendored
Normal 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
14
App.uvue
Normal 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
22
index.html
Normal 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
7
main.uts
Normal 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
73
manifest.json
Normal 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
151
pages.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user