From 879d2e350a14119a867599d59ca5a9fe063b5774 Mon Sep 17 00:00:00 2001 From: YiLin <482244139@qq.com> Date: Thu, 2 Jul 2026 18:01:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=89=93=E5=8C=85?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 44 +- pages.json | 12 + pages/CloudDatabase/CloudDatabase.css | 87 + pages/CloudDatabase/CloudDatabase.vue | 353 ++- pages/CloudDbDetail/CloudDbDetail.css | 546 ++++ pages/CloudDbDetail/CloudDbDetail.vue | 715 +++++ pages/ContactPages/ContactPages.vue | 14 +- pages/WorkSpace/WorkSpace.vue | 303 +- uni_modules/lime-choose-file/encrypt | 2 - .../uni_modules/lime-choose-file/classes.dex | Bin 0 -> 22160 bytes .../uni_modules/lime-choose-file/index.jar | Bin 16744 -> 17038 bytes .../uts/uni_modules/lime-choose-file/index.kt | 277 ++ .../uni_modules/lime-choose-file/index.kt.map | 1 + .../lime-choose-file/manifest.json | 32 + .../dist/build/app-plus/app-config-service.js | 2 +- unpackage/dist/build/app-plus/app-service.js | 4 +- unpackage/dist/build/app-plus/app.css | 2 +- unpackage/dist/build/app-plus/manifest.json | 48 +- .../dist/build/app-plus/pages/Chat/Chat.css | 2 +- .../pages/CloudDatabase/CloudDatabase.css | 1 + .../pages/CloudDbDetail/CloudDbDetail.css | 1 + .../pages/ContactPages/ContactPages.css | 2 +- .../UserProfileModal/UserProfileModal.css | 2 +- .../WorkSpace/TemplateSpace/TemplateSpace.css | 2 +- .../app-plus/pages/WorkSpace/WorkSpace.css | 2 +- .../app-plus/static/iconfont/demo_index.html | 950 +++++-- .../app-plus/static/iconfont/iconfont.css | 274 +- .../app-plus/static/iconfont/iconfont.js | 2 +- .../app-plus/static/iconfont/iconfont.json | 476 ++-- .../app-plus/static/iconfont/iconfont.ttf | Bin 9660 -> 20808 bytes .../app-plus/static/iconfont/iconfont.woff | Bin 0 -> 10892 bytes .../app-plus/static/iconfont/iconfont.woff2 | Bin 0 -> 8976 bytes .../uni_modules/lime-choose-file/changelog.md | 26 - .../l-choose-file/l-choose-file.vue | 38 - .../lime-choose-file/lime-choose-file.uvue | 103 - .../lime-choose-file/lime-choose-file.vue | 36 - .../uni_modules/lime-choose-file/encrypt | 2 - .../uni_modules/lime-choose-file/package.json | 105 - .../lime-choose-file/readme copy.md | 61 - .../uni_modules/lime-choose-file/readme.md | 126 - .../utssdk/app-android/index.uts | 206 -- .../utssdk/app-android/src/index.kt | 262 ++ .../utssdk/app-ios/config.json | 3 - .../lime-choose-file/utssdk/app-ios/index.uts | 138 - .../lime-choose-file/utssdk/index.uts | 35 - .../lime-choose-file/utssdk/interface.uts | 108 - .../lime-choose-file/utssdk/unierror.uts | 40 - .../lime-choose-file/manifest.json | 32 + .../utssdk/app-android/index.kt.map | 1 + .../dist/dev/app-plus/app-config-service.js | 2 +- unpackage/dist/dev/app-plus/app-service.js | 2521 ++++++++++++++--- unpackage/dist/dev/app-plus/manifest.json | 42 +- .../pages/CloudDatabase/CloudDatabase.css | 78 + .../pages/CloudDbDetail/CloudDbDetail.css | 998 +++++++ .../utssdk/app-android/classes.dex | Bin 0 -> 22160 bytes .../utssdk/app-android/config.json | 3 + .../utssdk/app-android/index.kt | 277 ++ unpackage/res/icons/1024x1024.png | Bin 0 -> 322818 bytes unpackage/res/icons/120x120.png | Bin 0 -> 12005 bytes unpackage/res/icons/144x144.png | Bin 0 -> 15652 bytes unpackage/res/icons/152x152.png | Bin 0 -> 17048 bytes unpackage/res/icons/167x167.png | Bin 0 -> 19547 bytes unpackage/res/icons/180x180.png | Bin 0 -> 22000 bytes unpackage/res/icons/192x192.png | Bin 0 -> 24126 bytes unpackage/res/icons/20x20.png | Bin 0 -> 1151 bytes unpackage/res/icons/29x29.png | Bin 0 -> 1807 bytes unpackage/res/icons/40x40.png | Bin 0 -> 2719 bytes unpackage/res/icons/58x58.png | Bin 0 -> 4367 bytes unpackage/res/icons/60x60.png | Bin 0 -> 4594 bytes unpackage/res/icons/72x72.png | Bin 0 -> 5929 bytes unpackage/res/icons/76x76.png | Bin 0 -> 6346 bytes unpackage/res/icons/80x80.png | Bin 0 -> 6722 bytes unpackage/res/icons/87x87.png | Bin 0 -> 7655 bytes unpackage/res/icons/96x96.png | Bin 0 -> 8723 bytes utils/cloud-api.js | 367 ++- 75 files changed, 7499 insertions(+), 2267 deletions(-) create mode 100644 pages/CloudDbDetail/CloudDbDetail.css create mode 100644 pages/CloudDbDetail/CloudDbDetail.vue delete mode 100644 uni_modules/lime-choose-file/encrypt create mode 100644 unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/classes.dex create mode 100644 unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/index.kt create mode 100644 unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/index.kt.map create mode 100644 unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/manifest.json create mode 100644 unpackage/dist/build/app-plus/pages/CloudDatabase/CloudDatabase.css create mode 100644 unpackage/dist/build/app-plus/pages/CloudDbDetail/CloudDbDetail.css create mode 100644 unpackage/dist/build/app-plus/static/iconfont/iconfont.woff create mode 100644 unpackage/dist/build/app-plus/static/iconfont/iconfont.woff2 delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/changelog.md delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/components/l-choose-file/l-choose-file.vue delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/components/lime-choose-file/lime-choose-file.uvue delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/components/lime-choose-file/lime-choose-file.vue delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/encrypt delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/package.json delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/readme copy.md delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/readme.md delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-android/index.uts create mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-android/src/index.kt delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-ios/config.json delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-ios/index.uts delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/index.uts delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/interface.uts delete mode 100644 unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/unierror.uts create mode 100644 unpackage/dist/build/hx/app-plus/app-android/uts/uni_modules/lime-choose-file/manifest.json create mode 100644 unpackage/dist/dev/.sourcemap/app/uni_modules/lime-choose-file/utssdk/app-android/index.kt.map create mode 100644 unpackage/dist/dev/app-plus/pages/CloudDbDetail/CloudDbDetail.css create mode 100644 unpackage/dist/dev/app-plus/uni_modules/lime-choose-file/utssdk/app-android/classes.dex create mode 100644 unpackage/dist/dev/app-plus/uni_modules/lime-choose-file/utssdk/app-android/config.json create mode 100644 unpackage/dist/dev/app-plus/uni_modules/lime-choose-file/utssdk/app-android/index.kt create mode 100644 unpackage/res/icons/1024x1024.png create mode 100644 unpackage/res/icons/120x120.png create mode 100644 unpackage/res/icons/144x144.png create mode 100644 unpackage/res/icons/152x152.png create mode 100644 unpackage/res/icons/167x167.png create mode 100644 unpackage/res/icons/180x180.png create mode 100644 unpackage/res/icons/192x192.png create mode 100644 unpackage/res/icons/20x20.png create mode 100644 unpackage/res/icons/29x29.png create mode 100644 unpackage/res/icons/40x40.png create mode 100644 unpackage/res/icons/58x58.png create mode 100644 unpackage/res/icons/60x60.png create mode 100644 unpackage/res/icons/72x72.png create mode 100644 unpackage/res/icons/76x76.png create mode 100644 unpackage/res/icons/80x80.png create mode 100644 unpackage/res/icons/87x87.png create mode 100644 unpackage/res/icons/96x96.png diff --git a/manifest.json b/manifest.json index 079af25..e28db7a 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "name" : "test1", "appid" : "__UNI__923FD9E", "description" : "", - "versionName" : "1.0.0", + "versionName" : "1.1.1", "versionCode" : "1", "transformPx" : false, /* 5+App特有相关 */ @@ -53,7 +53,47 @@ "dSYMs" : false }, /* SDK配置 */ - "sdkConfigs" : {} + "sdkConfigs" : {}, + "icons" : { + "android" : { + "hdpi" : "unpackage/res/icons/72x72.png", + "xhdpi" : "unpackage/res/icons/96x96.png", + "xxhdpi" : "unpackage/res/icons/144x144.png", + "xxxhdpi" : "unpackage/res/icons/192x192.png" + }, + "ios" : { + "appstore" : "unpackage/res/icons/1024x1024.png", + "ipad" : { + "app" : "unpackage/res/icons/76x76.png", + "app@2x" : "unpackage/res/icons/152x152.png", + "notification" : "unpackage/res/icons/20x20.png", + "notification@2x" : "unpackage/res/icons/40x40.png", + "proapp@2x" : "unpackage/res/icons/167x167.png", + "settings" : "unpackage/res/icons/29x29.png", + "settings@2x" : "unpackage/res/icons/58x58.png", + "spotlight" : "unpackage/res/icons/40x40.png", + "spotlight@2x" : "unpackage/res/icons/80x80.png" + }, + "iphone" : { + "app@2x" : "unpackage/res/icons/120x120.png", + "app@3x" : "unpackage/res/icons/180x180.png", + "notification@2x" : "unpackage/res/icons/40x40.png", + "notification@3x" : "unpackage/res/icons/60x60.png", + "settings@2x" : "unpackage/res/icons/58x58.png", + "settings@3x" : "unpackage/res/icons/87x87.png", + "spotlight@2x" : "unpackage/res/icons/80x80.png", + "spotlight@3x" : "unpackage/res/icons/120x120.png" + } + } + }, + "splashscreen" : { + "androidStyle" : "default", + "android" : { + "hdpi" : "C:/Users/ADMIN/Pictures/480-762.png", + "xhdpi" : "C:/Users/ADMIN/Pictures/720-1242.png", + "xxhdpi" : "C:/Users/ADMIN/Pictures/1080-1882.png" + } + } } }, /* 快应用特有相关 */ diff --git a/pages.json b/pages.json index 57bec78..59b75b2 100644 --- a/pages.json +++ b/pages.json @@ -99,6 +99,18 @@ "softinputMode": "adjustResize" } } + }, + { + "path": "pages/CloudDbDetail/CloudDbDetail", + "style": { + "navigationBarTitleText": "数据库详情", + "navigationStyle": "custom", + "app-plus": { + "titleNView": false, + "bounce": "none", + "softinputMode": "adjustResize" + } + } } ], "uniIdRouter" : {}, diff --git a/pages/CloudDatabase/CloudDatabase.css b/pages/CloudDatabase/CloudDatabase.css index ffa7f69..6ecd123 100644 --- a/pages/CloudDatabase/CloudDatabase.css +++ b/pages/CloudDatabase/CloudDatabase.css @@ -850,4 +850,91 @@ color: #999; margin-bottom: 20rpx; text-align: center; +} + +/* ===== 加载动画 ===== */ +.loading-area { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 60rpx 0; + gap: 16rpx; +} + +.loading-spinner { + width: 56rpx; + height: 56rpx; + border: 4rpx solid #e8e8e8; + border-top-color: #3b86ff; + border-radius: 50%; + animation: spin 0.8s linear infinite; +} + +@keyframes spin { + to { + transform: rotate(360deg); + } +} + +.loading-text { + font-size: 24rpx; + color: #999; +} + +/* ===== 数据库标签 ===== */ +.db-tag { + display: inline-block; + font-size: 20rpx; + font-weight: 500; + padding: 2rpx 12rpx; + border-radius: 8rpx; + margin-left: 10rpx; + vertical-align: middle; +} + +.db-tag.tag-personal { + color: #3b86ff; + background: rgba(59, 134, 255, 0.08); + border: 1rpx solid rgba(59, 134, 255, 0.2); +} + +.db-tag.tag-team { + color: #67c23a; + background: rgba(103, 194, 58, 0.08); + border: 1rpx solid rgba(103, 194, 58, 0.2); +} + +/* ===== 上传数据库弹窗 ===== */ +.upload-db-hint { + font-size: 22rpx; + color: #999; + margin-bottom: 20rpx; + text-align: center; +} + +.upload-file-area { + padding: 40rpx; + border: 2rpx dashed #d0d0d0; + border-radius: 16rpx; + background: #f9fafb; + text-align: center; + margin-bottom: 20rpx; +} + +.upload-file-area:active { + border-color: #3b86ff; + background: rgba(59, 134, 255, 0.03); +} + +.selected-file { + font-size: 26rpx; + color: #3b86ff; + font-weight: 500; + word-break: break-all; +} + +.upload-hint { + font-size: 24rpx; + color: #bbb; } \ No newline at end of file diff --git a/pages/CloudDatabase/CloudDatabase.vue b/pages/CloudDatabase/CloudDatabase.vue index 7bbfed0..339e389 100644 --- a/pages/CloudDatabase/CloudDatabase.vue +++ b/pages/CloudDatabase/CloudDatabase.vue @@ -150,24 +150,39 @@ - - + + - + - 新建{{ currentCategory === 'user' ? '个人' : '团队' }}数据表 - 表名称 + 新建个人数据库 + 数据库名称 - - - 描述 - - + - 取消 - 确认 + 取消 + 确认 + + + + + + + + + + + 上传数据库文件 + 支持 .db / .sqlite / .sqlite3 格式的 SQLite 数据库文件 + + {{ uploadDbFileName }} + 点击选择数据库文件 + + + 取消 + 确认上传 @@ -182,15 +197,15 @@ {{ navbarTitle }} - 完成 + - + @@ -258,31 +273,46 @@ 云端数据库 + {{ !isDbLoading && personalDatabases.length > 0 ? '(' + personalDatabases.length + ')' : '' }} - + + + 上传数据库 + + - 新建表 + 新建数据库 - + + + + 加载中... + + - 暂无数据表 + 暂无数据库 - + - {{ table.name }} - {{ table.desc || '无描述' }} + + {{ db.database_name }} + + {{ db.team_id ? '团队共享' : '个人私有' }} + + + {{ db.table_count || 0 }} 张表 · {{ getAccessLevelLabel(db.access_level) }} - {{ table.rowCount || 0 }} 条记录 + {{ formatDbTime(db.modified_time) }} @@ -376,30 +406,32 @@ 团队云端数据库 - - - - 新建表 - - - + + + + 加载中... + + - 暂无团队数据表 + 暂无团队数据库 - + - {{ table.name }} - {{ table.desc || '无描述' }} + + {{ db.database_name }} + 团队共享 + + {{ db.table_count || 0 }} 张表 · {{ getAccessLevelLabel(db.access_level) }} - {{ table.rowCount || 0 }} 条记录 + {{ formatDbTime(db.modified_time) }} @@ -420,6 +452,7 @@ import { getToken } from '@/utils/user-info.js'; + import { chooseFile } from '@/uni_modules/lime-choose-file'; import { getUserInfo, getCloudFileList, @@ -436,7 +469,11 @@ removeTeamMember, uploadCloudFile, deleteCloudFile, - deleteTeam + deleteTeam, + getCloudDbList, + createCloudDb, + uploadCloudDbFile, + deleteCloudDb } from '@/utils/cloud-api.js'; const userToken = ref(''); @@ -1075,31 +1112,7 @@ // 选择文件并上传 const chooseAndUploadFile = () => { - // #ifdef APP-PLUS - // App 端使用系统文件选择器 - plus.io.chooseFile( - (res) => { - // plus.io.chooseFile 返回格式可能是 { files: [...] } 或直接是数组 - const files = Array.isArray(res) ? res : (res.files || []); - if (files.length === 0) { - uni.showToast({ - title: '未选择文件', - icon: 'none' - }); - return; - } - doUploadFiles(files); - }, - (err) => { - if (err.code !== 11) { // 11 是用户取消 - console.error('选择文件失败:', err); - } - } - ); - // #endif - // #ifndef APP-PLUS - // 小程序/H5 端使用 uni.chooseFile(H5 可能不支持) - uni.chooseFile({ + chooseFile({ count: 10, type: 'all', success: (res) => { @@ -1120,7 +1133,6 @@ console.error('选择文件失败:', err); } }); - // #endif }; // 执行上传 @@ -1152,88 +1164,160 @@ } }; - // ========== 数据库表 ========== - const personalTables = ref([{ - id: '1', - name: 'users', - desc: '用户信息表', - rowCount: 128 - }, - { - id: '2', - name: 'messages', - desc: '聊天记录表', - rowCount: 2048 - }, - { - id: '3', - name: 'settings', - desc: '用户配置表', - rowCount: 56 - } - ]); - const teamTables = ref([{ - id: 't1', - name: 'team_tasks', - desc: '团队任务表', - rowCount: 32 - }, - { - id: 't2', - name: 'team_docs', - desc: '团队文档表', - rowCount: 15 - } - ]); + // ========== 云端数据库 ========== + const allDatabases = ref([]); // API 返回的全部数据库列表 + const isDbLoading = ref(false); // 数据库加载中 + // 个人展示全部数据库(个人私有 + 归属团队的),团队只展示属于当前选中团队的 + const personalDatabases = computed(() => allDatabases.value); + const teamDatabases = computed(() => allDatabases.value.filter(db => db.team_id && String(db.team_id) === String(currentTeamId.value))); - const showNewTable = ref(false); - const newTableName = ref(''); - const newTableDesc = ref(''); + const showNewDb = ref(false); + const newDbName = ref(''); - const openNewTableModal = () => { - showNewTable.value = true; - newTableName.value = ''; - newTableDesc.value = ''; + // 获取数据库列表 + const fetchDbList = async () => { + isDbLoading.value = true; + try { + const token = getToken(); + const list = await getCloudDbList(token); + allDatabases.value = list || []; + } catch (error) { + console.error('获取数据库列表失败:', error); + allDatabases.value = []; + } finally { + isDbLoading.value = false; + } }; - const closeNewTableModal = () => { - showNewTable.value = false; - newTableName.value = ''; - newTableDesc.value = ''; + + const openNewDbModal = () => { + showNewDb.value = true; + newDbName.value = ''; }; - const confirmCreateTable = () => { - const name = newTableName.value.trim(); + const closeNewDbModal = () => { + showNewDb.value = false; + newDbName.value = ''; + }; + const confirmCreateDb = async () => { + const name = newDbName.value.trim(); if (!name) { - uni.showToast({ - title: '请输入表名称', - icon: 'none' - }); + uni.showToast({ title: '请输入数据库名称', icon: 'none' }); return; } - const newTable = { - id: Date.now().toString(), - name: name, - desc: newTableDesc.value.trim() || '无描述', - rowCount: 0 - }; - if (currentCategory.value === 'user') { - personalTables.value.push(newTable); - } else { - teamTables.value.push(newTable); + uni.showLoading({ title: '创建中...' }); + try { + const token = getToken(); + await createCloudDb(token, name); + uni.hideLoading(); + uni.showToast({ title: '创建成功', icon: 'success' }); + closeNewDbModal(); + await fetchDbList(); + } catch (error) { + uni.hideLoading(); + console.error('创建数据库失败:', error); + uni.showToast({ title: '创建失败,请重试', icon: 'error' }); } - uni.showToast({ - title: '创建成功', - icon: 'success' - }); - closeNewTableModal(); }; - const handleTableClick = (table) => { - uni.showToast({ - title: `进入数据表:${table.name}`, - icon: 'none' + // ========== 上传数据库文件 ========== + const showUploadDb = ref(false); + const uploadDbFileName = ref(''); + const uploadDbFilePath = ref(''); + + const openUploadDbModal = () => { + showUploadDb.value = true; + uploadDbFileName.value = ''; + uploadDbFilePath.value = ''; + }; + const closeUploadDbModal = () => { + showUploadDb.value = false; + }; + + const handlePickDbFile = () => { + chooseFile({ + count: 1, + type: 'all', + success: (res) => { + const file = res.tempFiles[0]; + uploadDbFileName.value = file.name || 'unknown'; + uploadDbFilePath.value = file.path; + }, + fail: (err) => { + console.error('选择文件失败:', err); + uni.showToast({ title: '选择文件失败', icon: 'none' }); + } }); }; + const confirmUploadDb = async () => { + if (!uploadDbFilePath.value) { + uni.showToast({ title: '请选择数据库文件', icon: 'none' }); + return; + } + // 校验文件后缀 + const ext = uploadDbFileName.value.split('.').pop()?.toLowerCase(); + const allowedExts = ['db', 'sqlite', 'sqlite3']; + if (!allowedExts.includes(ext)) { + uni.showToast({ title: '仅支持 .db / .sqlite / .sqlite3 文件', icon: 'none' }); + return; + } + uni.showLoading({ title: '上传中...' }); + try { + const token = getToken(); + await uploadCloudDbFile(token, uploadDbFilePath.value); + uni.hideLoading(); + uni.showToast({ title: '上传成功', icon: 'success' }); + closeUploadDbModal(); + await fetchDbList(); + } catch (error) { + uni.hideLoading(); + console.error('上传数据库失败:', error); + uni.showToast({ title: '上传失败,请重试', icon: 'error' }); + } + }; + + const handleDeleteDb = (db) => { + uni.showModal({ + title: '删除数据库', + content: `确定要删除数据库"${db.database_name}"吗?此操作不可恢复。`, + success: async (res) => { + if (res.confirm) { + uni.showLoading({ title: '删除中...' }); + try { + const token = getToken(); + await deleteCloudDb(token, db.database_id); + uni.hideLoading(); + uni.showToast({ title: '删除成功', icon: 'success' }); + await fetchDbList(); + } catch (error) { + uni.hideLoading(); + console.error('删除数据库失败:', error); + uni.showToast({ title: '删除失败,请重试', icon: 'error' }); + } + } + } + }); + }; + + const handleDbClick = (db) => { + uni.navigateTo({ + url: `/pages/CloudDbDetail/CloudDbDetail?databaseId=${db.database_id}&databaseName=${encodeURIComponent(db.database_name)}&teamId=${db.team_id || ''}` + }); + }; + + const formatDbTime = (timestamp) => { + if (!timestamp) return ''; + const date = new Date(timestamp * 1000); + const y = date.getFullYear(); + const m = String(date.getMonth() + 1).padStart(2, '0'); + const d = String(date.getDate()).padStart(2, '0'); + return `${y}-${m}-${d}`; + }; + + const getAccessLevelLabel = (level) => { + const labels = { 0: '无权限', 1: '只读', 2: '读写', 3: '管理' }; + return labels[level] || '未知'; + }; + // ========== 团队管理 ========== const showTeamManage = ref(false); const teamGroups = ref([]); @@ -1568,6 +1652,7 @@ onMounted(async () => { await fetchFileList(); await fetchTeamList(); + await fetchDbList(); }); diff --git a/pages/CloudDbDetail/CloudDbDetail.css b/pages/CloudDbDetail/CloudDbDetail.css new file mode 100644 index 0000000..7b04730 --- /dev/null +++ b/pages/CloudDbDetail/CloudDbDetail.css @@ -0,0 +1,546 @@ +/* ========== 通用 ========== */ +.status-bar { + height: var(--status-bar-height); + background-color: #ffffff; +} + +.page-container { + display: flex; + flex-direction: column; + height: 100vh; + background-color: #f5f6fa; +} + +/* ========== 导航栏 ========== */ +.cloud-db-header { + background-color: #ffffff; + flex-shrink: 0; + position: relative; + z-index: 10; +} + +.custom-navbar { + display: flex; + align-items: center; + justify-content: space-between; + height: 88rpx; + padding: 0 30rpx; +} + +.navbar-left { + display: flex; + align-items: center; + min-width: 120rpx; +} + +.custom-navbar-icon { + font-size: 40rpx; + color: #333; +} + +.navbar-title { + font-size: 34rpx; + font-weight: 600; + color: #333; + flex: 1; + text-align: center; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.navbar-right { + min-width: 120rpx; + display: flex; + justify-content: flex-end; +} + +/* 下拉菜单 */ +.menu-card { + position: absolute; + top: 88rpx; + right: 20rpx; + background: #fff; + border-radius: 16rpx; + box-shadow: 0 8rpx 32rpx rgba(0,0,0,0.12); + z-index: 500; + overflow: hidden; + min-width: 200rpx; +} + +.menu-card-item { + padding: 24rpx 36rpx; + font-size: 28rpx; + color: #333; + text-align: center; +} + +.menu-card-item:active { + background-color: #f5f6fa; +} + +.solid-line { + height: 1rpx; + background-color: #eee; + margin: 0 20rpx; +} + +/* ========== 数据库信息栏 ========== */ +.db-info-bar { + display: flex; + align-items: center; + gap: 24rpx; + padding: 20rpx 30rpx; + background: #fff; + border-bottom: 1rpx solid #f0f0f0; +} + +.db-info-text { + font-size: 24rpx; + color: #999; +} + +/* ========== 内容区域 ========== */ +.cloud-db-content { + flex: 1; + overflow-y: auto; +} + +.section-block { + margin: 20rpx; + background: #fff; + border-radius: 20rpx; + overflow: hidden; +} + +.section-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 24rpx 30rpx; + border-bottom: 1rpx solid #f5f6fa; +} + +.section-title { + display: flex; + align-items: center; + gap: 12rpx; + font-size: 30rpx; + font-weight: 600; + color: #333; +} + +.section-title .iconfont { + font-size: 36rpx; + color: #3b86ff; +} + +.section-actions { + display: flex; + align-items: center; + gap: 16rpx; +} + +.row-count { + font-size: 24rpx; + color: #999; +} + +.section-divider { + height: 1rpx; + background-color: #f0f0f0; + margin: 0 20rpx; +} + +.section-body { + padding: 16rpx 0; +} + +/* ========== 空状态 ========== */ +.empty-tip { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 60rpx 0; + color: #ccc; + font-size: 26rpx; +} + +.empty-tip .iconfont { + font-size: 80rpx; + margin-bottom: 16rpx; +} + +/* ========== 表列表 ========== */ +.table-list { + padding: 0 30rpx; +} + +.table-item { + display: flex; + align-items: center; + padding: 24rpx 0; + border-bottom: 1rpx solid #f5f6fa; +} + +.table-item:last-child { + border-bottom: none; +} + +.table-item:active { + background-color: #fafbfc; + margin: 0 -30rpx; + padding-left: 30rpx; + padding-right: 30rpx; +} + +.table-icon { + width: 72rpx; + height: 72rpx; + border-radius: 16rpx; + background: rgba(59, 134, 255, 0.08); + display: flex; + align-items: center; + justify-content: center; + margin-right: 20rpx; + flex-shrink: 0; +} + +.table-info { + flex: 1; + overflow: hidden; +} + +.table-name { + font-size: 30rpx; + font-weight: 500; + color: #333; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.table-desc { + font-size: 24rpx; + color: #999; + margin-top: 4rpx; +} + +.table-meta { + display: flex; + align-items: center; + gap: 8rpx; + flex-shrink: 0; +} + +/* ========== 数据表格 ========== */ +.data-table-wrapper { + padding: 0; +} + +.data-table-scroll { + width: 100%; +} + +.data-table { + min-width: 100%; +} + +.data-row { + display: flex; + flex-direction: row; + border-bottom: 1rpx solid #f0f0f0; +} + +.data-row:last-child { + border-bottom: none; +} + +.data-header { + background-color: #f8f9fb; +} + +.data-cell { + padding: 16rpx 20rpx; + font-size: 26rpx; + color: #333; + min-width: 160rpx; + max-width: 300rpx; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + border-right: 1rpx solid #f0f0f0; + flex-shrink: 0; +} + +.data-cell:last-child { + border-right: none; +} + +.data-header .data-cell { + font-weight: 600; + color: #666; + font-size: 24rpx; +} + +.index-cell { + min-width: 80rpx !important; + max-width: 80rpx !important; + text-align: center; + color: #999; + font-size: 24rpx; +} + +.data-row:active { + background-color: #f5f7fa; +} + +/* ========== 弹窗通用 ========== */ +.popup-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 900; +} + +.popup-card { + width: 640rpx; + background: #fff; + border-radius: 24rpx; + padding: 40rpx 36rpx 30rpx; + position: relative; +} + +.close-popup-card { + position: absolute; + top: 20rpx; + right: 20rpx; + width: 48rpx; + height: 48rpx; + display: flex; + align-items: center; + justify-content: center; +} + +.close-popup-card .iconfont { + font-size: 36rpx; + color: #999; +} + +.popup-title { + font-size: 34rpx; + font-weight: 600; + color: #333; + text-align: center; + margin-bottom: 30rpx; +} + +.new-folder-name { + font-size: 26rpx; + color: #666; + margin-bottom: 12rpx; +} + +.create-folder-name { + margin-bottom: 24rpx; +} + +.create-folder-name input { + width: 100%; + height: 80rpx; + border: 2rpx solid #e0e0e0; + border-radius: 12rpx; + padding: 0 20rpx; + font-size: 28rpx; + box-sizing: border-box; + background: #f8f9fb; +} + +.upload-file-area { + width: 100%; + height: 120rpx; + border: 2rpx dashed #d0d0d0; + border-radius: 12rpx; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 24rpx; + background: #fafbfc; +} + +.selected-file { + font-size: 26rpx; + color: #3b86ff; +} + +.upload-hint { + font-size: 24rpx; + color: #999; +} + +.option-wrapper { + display: flex; + gap: 20rpx; + margin-top: 10rpx; +} + +.opt-btn { + flex: 1; + height: 80rpx; + border-radius: 12rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 30rpx; +} + +.opt-cancel { + background: #f5f6fa; + color: #666; +} + +.opt-confirm { + background: #3b86ff; + color: #fff; +} + +/* ========== 权限管理 ========== */ +.permission-body { + max-height: 600rpx; + margin-bottom: 20rpx; +} + +.permission-list { + padding: 0 10rpx; +} + +.permission-item { + display: flex; + align-items: center; + padding: 20rpx 10rpx; + border-bottom: 1rpx solid #f0f0f0; +} + +.perm-info { + flex: 1; + display: flex; + flex-direction: column; + gap: 4rpx; +} + +.perm-name { + font-size: 28rpx; + color: #333; +} + +.perm-type { + font-size: 22rpx; + color: #999; +} + +.perm-level { + font-size: 24rpx; + color: #3b86ff; + background: rgba(59, 134, 255, 0.08); + padding: 6rpx 16rpx; + border-radius: 8rpx; + margin: 0 16rpx; +} + +.perm-actions { + display: flex; + gap: 12rpx; +} + +.perm-action-btn { + font-size: 24rpx; + color: #3b86ff; + padding: 8rpx 16rpx; + border: 1rpx solid #3b86ff; + border-radius: 8rpx; +} + +.perm-action-btn.delete { + color: #f56c6c; + border-color: #f56c6c; +} + +.close-permission-btn { + text-align: center; + font-size: 28rpx; + color: #999; + padding: 16rpx 0; +} + +.folder-null { + text-align: center; + padding: 40rpx 0; + font-size: 26rpx; + color: #999; +} + +/* ========== 移交团队 ========== */ +.transfer-body { + max-height: 500rpx; + margin-bottom: 20rpx; +} + +.transfer-list { + padding: 0 10rpx; +} + +.transfer-item { + display: flex; + align-items: center; + justify-content: space-between; + padding: 24rpx 16rpx; + border-bottom: 1rpx solid #f0f0f0; + border-radius: 12rpx; + margin-bottom: 8rpx; +} + +.transfer-item.active { + background: rgba(59, 134, 255, 0.06); +} + +.transfer-name { + font-size: 28rpx; + color: #333; +} + +/* ===== 加载动画 ===== */ +.loading-area { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 60rpx 0; + gap: 16rpx; +} + +.loading-spinner { + width: 56rpx; + height: 56rpx; + border: 4rpx solid #e8e8e8; + border-top-color: #3b86ff; + border-radius: 50%; + animation: spin 0.8s linear infinite; +} + +@keyframes spin { + to { + transform: rotate(360deg); + } +} + +.loading-text { + font-size: 24rpx; + color: #999; +} diff --git a/pages/CloudDbDetail/CloudDbDetail.vue b/pages/CloudDbDetail/CloudDbDetail.vue new file mode 100644 index 0000000..d52995c --- /dev/null +++ b/pages/CloudDbDetail/CloudDbDetail.vue @@ -0,0 +1,715 @@ + + + + + \ No newline at end of file diff --git a/pages/ContactPages/ContactPages.vue b/pages/ContactPages/ContactPages.vue index 1c7e7e5..058b44d 100644 --- a/pages/ContactPages/ContactPages.vue +++ b/pages/ContactPages/ContactPages.vue @@ -194,7 +194,7 @@ - + @@ -389,11 +389,11 @@ label: '添加好友', icon: '➕' }, - { - name: 'videoCall', - label: '视频会议', - icon: '📹' - }, + // { + // name: 'videoCall', + // label: '视频会议', + // icon: '📹' + // }, { name: 'friendRequest', label: '好友申请', diff --git a/pages/WorkSpace/WorkSpace.vue b/pages/WorkSpace/WorkSpace.vue index b19fc3a..da744aa 100644 --- a/pages/WorkSpace/WorkSpace.vue +++ b/pages/WorkSpace/WorkSpace.vue @@ -14,8 +14,8 @@ 目录名称 - + @@ -50,7 +50,9 @@ @click="handleMenu"> - 选择 + + 上传文件 新建文件夹 @@ -88,11 +90,11 @@ - - - + + + - + @@ -107,11 +109,17 @@ getWorkspaceId, getToken } from '@/utils/user-info.js' + import { + chooseFile + } from '@/uni_modules/lime-choose-file'; import { getWorkspaceList, createWorkspaceFolder, daleteWorkspace, - getWorkspaceFileURL + getWorkspaceFileURL, + uploadFileToShortStorage, + workspaceUploadFileByURL, + updateWorkspaceFileName } from '@/utils/cloud-api.js' const UserToken = ref('') @@ -148,6 +156,84 @@ showNewFolder.value = true } + // ========== 上传文件 ========== + const handleUploadFile = () => { + chooseFile({ + count: 10, + type: 'all', + success: async (res) => { + const files = res.tempFiles || []; + if (files.length === 0) { + uni.showToast({ + title: '未选择文件', + icon: 'none' + }); + return; + } + await doUploadWorkspaceFiles(files); + }, + fail: (err) => { + console.error('选择文件失败:', err); + } + }); + }; + + const doUploadWorkspaceFiles = async (files) => { + uni.showLoading({ + title: '上传中...' + }); + try { + const dirPath = folderStack.value.length > 0 ? + './' + folderStack.value.map(f => f.name).join('/') + '/' : + '/'; + + // 1. 一次性上传所有文件到短存云端,获取 URL 数组 + const results = await uploadFileToShortStorage( + workspaceId.value, + files, + dirPath + ); + // results: [{ url, success }, ...] + + // 2. 收集成功的 URL,批量上传到工作区 + const successUrls = results + .filter(r => r.success) + .map(r => r.url); + + if (successUrls.length === 0) { + const errors = results.filter(r => !r.success).map(r => r.error).join('; '); + throw new Error(errors || '所有文件上传失败'); + } + + await workspaceUploadFileByURL( + UserToken.value, + workspaceId.value, + successUrls, + dirPath + ); + + uni.hideLoading(); + const total = files.length; + const failed = total - successUrls.length; + const msg = failed > 0 ? + `上传完成:成功 ${successUrls.length},失败 ${failed}` : + `成功上传 ${total} 个文件`; + uni.showToast({ + title: msg, + icon: successUrls.length > 0 ? 'success' : 'error' + }); + // 刷新文件列表 + initCurrentFolderList(); + } catch (error) { + uni.hideLoading(); + console.error('上传文件失败:', error); + uni.showToast({ + title: typeof error === 'string' ? error : '上传失败,请重试', + icon: 'error' + }); + } + }; + // 当前文件夹路径 const currentFolderPath = computed(() => { if (folderStack.value.length === 0) return '根目录' @@ -168,7 +254,10 @@ const confirmCreateFolder = async () => { const name = newFolderName.value.trim() if (!name) { - uni.showToast({ title: '请输入目录名称', icon: 'none' }) + uni.showToast({ + title: '请输入目录名称', + icon: 'none' + }) return } try { @@ -176,12 +265,18 @@ const folderPath = folderStack.value.map(f => f.name).join('/') const dirPath = folderPath ? `./${folderPath}/${name}` : `./${name}` await createWorkspaceFolder(UserToken.value, workspaceId.value, dirPath) - uni.showToast({ title: '创建成功', icon: 'success' }) + uni.showToast({ + title: '创建成功', + icon: 'success' + }) closeNewFolderModal() initCurrentFolderList() } catch (error) { console.error('创建文件夹失败:', error) - uni.showToast({ title: '创建失败,请重试', icon: 'error' }) + uni.showToast({ + title: '创建失败,请重试', + icon: 'error' + }) } } @@ -189,132 +284,107 @@ const handleLongPress = (folder) => { if (isSelectFolder.value) return; uni.showActionSheet({ - itemList: ['重命名', '删除', '下载', '压缩'], + itemList: ['下载', '删除'], // ['删除', '下载', '压缩', '重命名'] success: (res) => { switch (res.tapIndex) { case 0: - handleRename(folder); + handleDownload(folder); break; case 1: handleDelete(folder); break; - case 2: - handleDownload(folder); - break; - case 3: - handleDownload(folder); - break; + // case 2: + // handleDownload(folder); + // break; + // case 3: + // handleRename(folder); + // break; } } }) } // 重命名 - const handleRename = (folder) => { + const handleRename = async (folder) => { uni.showModal({ title: '重命名', content: '请输入新名称', editable: true, placeholderText: folder.name, - success: (res) => { + success: async (res) => { if (res.confirm && res.content) { - // 更新文件夹名称 - updateFolderName(folder.id, res.content); + try { + uni.showLoading({ + title: '重命名中...' + }); + // 构建文件路径:当前目录 + 文件名 + const dirPath = folderStack.value.length > 0 ? + './' + folderStack.value.map(f => f.name).join('/') + '/' : + '/'; + const filePath = dirPath + folder.name; + await updateWorkspaceFileName( + workspaceId.value, + filePath, + res.content + ); + uni.hideLoading(); + uni.showToast({ + title: '重命名成功', + icon: 'success' + }); + // 刷新文件列表 + initCurrentFolderList(); + } catch (error) { + uni.hideLoading(); + console.error('重命名失败:', error); + uni.showToast({ + title: typeof error === 'string' ? error : '重命名失败,请重试', + icon: 'error' + }); + } } } }); }; - // // 下载文件 - // const handleDownload = async (folder) => { - // // 目录不能下载 - // if (folder.type === 'directory') { - // uni.showToast({ title: '暂不支持下载目录', icon: 'none' }); - // return; - // } - - // try { - // uni.showLoading({ title: '获取下载链接...' }); - - // // 构建文件路径,去掉开头的 ./ - // const filePath = folder.path.startsWith('./') ? folder.path.slice(2) : folder.path; - // const result = await getWorkspaceFileURL(UserToken.value, workspaceId.value, filePath); - - // uni.hideLoading(); - - // // 接口返回数组,取第一个文件的 url - // const fileInfo = Array.isArray(result) ? result[0] : result; - // if (!fileInfo || !fileInfo.url) { - // uni.showToast({ title: '获取下载链接失败', icon: 'error' }); - // return; - // } - - // const downloadUrl = fileInfo.url; - // const fileName = folder.name; - - // uni.showLoading({ title: '下载中...' }); - - // uni.downloadFile({ - // url: downloadUrl, - // success: (downloadRes) => { - // uni.hideLoading(); - // if (downloadRes.statusCode === 200) { - // // 保存到手机相册/文件 - // uni.saveFile({ - // tempFilePath: downloadRes.tempFilePath, - // success: (saveRes) => { - // uni.showToast({ title: '下载成功', icon: 'success' }); - // console.log('文件已保存到:', saveRes.savedFilePath); - // }, - // fail: (err) => { - // console.error('保存文件失败:', err); - // uni.showToast({ title: '保存文件失败', icon: 'error' }); - // } - // }); - // } else { - // uni.showToast({ title: '下载失败', icon: 'error' }); - // } - // }, - // fail: (err) => { - // uni.hideLoading(); - // console.error('下载文件失败:', err); - // uni.showToast({ title: '下载失败,请重试', icon: 'error' }); - // } - // }); - // } catch (error) { - // uni.hideLoading(); - // console.error('获取下载链接失败:', error); - // uni.showToast({ title: '获取下载链接失败,请重试', icon: 'error' }); - // } - // }; const handleDownload = async (folder) => { // 目录不能下载 if (folder.type === 'directory') { - uni.showToast({ title: '暂不支持下载目录', icon: 'none' }); + uni.showToast({ + title: '暂不支持下载目录', + icon: 'none' + }); return; } - + try { - uni.showLoading({ title: '获取下载链接...' }); - + uni.showLoading({ + title: '获取下载链接...' + }); + // 构建文件路径,去掉开头的 ./ const filePath = folder.path.startsWith('./') ? folder.path.slice(2) : folder.path; const result = await getWorkspaceFileURL(UserToken.value, workspaceId.value, filePath); - + uni.hideLoading(); - + // 接口返回数组,取第一个文件的 url const fileInfo = Array.isArray(result) ? result[0] : result; if (!fileInfo || !fileInfo.url) { - uni.showToast({ title: '获取下载链接失败', icon: 'error' }); + uni.showToast({ + title: '获取下载链接失败', + icon: 'error' + }); return; } - + const downloadUrl = fileInfo.url; const fileName = folder.name; - - uni.showLoading({ title: '下载中...' }); - + + uni.showLoading({ + title: '下载中...' + }); + uni.downloadFile({ url: downloadUrl, name: fileName, @@ -325,19 +395,28 @@ // 下载成功,保存到 yxd 目录 saveFileToYxd(fileName, tempPath); } else { - uni.showToast({ title: '下载失败', icon: 'error' }); + uni.showToast({ + title: '下载失败', + icon: 'error' + }); } }, fail: (err) => { uni.hideLoading(); console.error('下载文件失败:', err); - uni.showToast({ title: '下载失败,请重试', icon: 'error' }); + uni.showToast({ + title: '下载失败,请重试', + icon: 'error' + }); } }); } catch (error) { uni.hideLoading(); console.error('获取下载链接失败:', error); - uni.showToast({ title: '获取下载链接失败,请重试', icon: 'error' }); + uni.showToast({ + title: '获取下载链接失败,请重试', + icon: 'error' + }); } }; @@ -352,16 +431,24 @@ callback(dirEntry); }, () => { plus.io.resolveLocalFileSystemURL('/storage/emulated/0/', (rootEntry) => { - rootEntry.getDirectory('yxd', { create: true }, (dirEntry) => { + rootEntry.getDirectory('yxd', { + create: true + }, (dirEntry) => { callback(dirEntry); }, (err) => { console.error('创建 yxd 目录失败:', JSON.stringify(err)); - uni.showToast({ title: '创建目录失败', icon: 'error' }); + uni.showToast({ + title: '创建目录失败', + icon: 'error' + }); openFileConfirm(fileName, tempPath); }); }, (err) => { console.error('访问外部存储根目录失败:', JSON.stringify(err)); - uni.showToast({ title: '无法访问存储目录', icon: 'error' }); + uni.showToast({ + title: '无法访问存储目录', + icon: 'error' + }); openFileConfirm(fileName, tempPath); }); }); @@ -478,13 +565,19 @@ try { // 路径加 ./ 前缀 const filePath = `./${folder.path}` - console.log("删除的是:",filePath); + console.log("删除的是:", filePath); await daleteWorkspace(UserToken.value, workspaceId.value, filePath) - uni.showToast({ title: '删除成功', icon: 'success' }) + uni.showToast({ + title: '删除成功', + icon: 'success' + }) initCurrentFolderList() } catch (error) { console.error('删除失败:', error) - uni.showToast({ title: '删除失败,请重试', icon: 'error' }) + uni.showToast({ + title: '删除失败,请重试', + icon: 'error' + }) } } } diff --git a/uni_modules/lime-choose-file/encrypt b/uni_modules/lime-choose-file/encrypt deleted file mode 100644 index 8e9d757..0000000 --- a/uni_modules/lime-choose-file/encrypt +++ /dev/null @@ -1,2 +0,0 @@ -,P=[&۸6 -IT ]r*IF܃C咺+E|q`(I_+DZsfVqgqݰIC*NRWO5@\7ta `e7HF:Dr|# \ No newline at end of file diff --git a/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/classes.dex b/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/classes.dex new file mode 100644 index 0000000000000000000000000000000000000000..841d32efd0092a5b6d19a6347d01a37d05b565eb GIT binary patch literal 22160 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 literal 0 HcmV?d00001 diff --git a/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/index.jar b/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/index.jar index f6e034625f6ff78b003bad2fc19df5ac0e381d8d..bd1c7599340d2811bdab9fcbd2098742319a37c5 100644 GIT binary patch literal 17038 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 literal 16744 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 diff --git a/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/index.kt b/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/index.kt new file mode 100644 index 0000000..5be51b9 --- /dev/null +++ b/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/index.kt @@ -0,0 +1,277 @@ +@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "SENSELESS_COMPARISON", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") +package uts.sdk.modules.limeChooseFile +import android.content.Intent +import android.net.Uri +import android.provider.OpenableColumns +import io.dcloud.uniapp.* +import io.dcloud.uniapp.extapi.* +import io.dcloud.unicloud.* +import io.dcloud.uts.* +import io.dcloud.uts.Map +import io.dcloud.uts.Set +import io.dcloud.uts.UTSAndroid +import java.io.File +import java.io.FileOutputStream +import kotlin.properties.Delegates +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.async +typealias ChooseFileErrorCode = Number +interface GeneralCallbackResult : IUniError { + override var errCode: ChooseFileErrorCode +} +interface ChooseFile { + var name: String + var path: String + var size: Number + var time: Number + var type: String +} +open class ChooseFileSuccessCallbackResult ( + @JsonNotNull + open var tempFiles: UTSArray, + @JsonNotNull + open var errMsg: String, +) : UTSObject(), IUTSSourceMap { + override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { + return UTSSourceMapPosition("ChooseFileSuccessCallbackResult", "uni_modules/lime-choose-file/utssdk/interface.uts", 34, 13) + } +} +typealias ChooseFileSuccessCallback = (result: ChooseFileSuccessCallbackResult) -> Unit +typealias ChooseFileFailCallback = (res: GeneralCallbackResult) -> Unit +typealias ChooseFileCompleteCallback = (res: GeneralCallbackResult) -> Unit +open class ChooseFileOption ( + open var filename: String? = null, + open var count: Number? = null, + open var type: String? = null, + open var extension: UTSArray? = null, + open var success: ChooseFileSuccessCallback? = null, + open var fail: ChooseFileFailCallback? = null, + open var complete: ChooseFileCompleteCallback? = null, +) : UTSObject(), IUTSSourceMap { + override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { + return UTSSourceMapPosition("ChooseFileOption", "uni_modules/lime-choose-file/utssdk/interface.uts", 45, 13) + } +} +val UniErrorSubject = "chooseFile\"" +val UniErrors: Map = Map(_uA( + _uA( + 9010001, + "chooseFile:ok" + ), + _uA( + 9010002, + "ChooseFile:failed" + ) +)) +open class GeneralCallbackResultImpl : UniError, GeneralCallbackResult, IUTSSourceMap { + override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { + return UTSSourceMapPosition("GeneralCallbackResultImpl", "uni_modules/lime-choose-file/utssdk/unierror.uts", 25, 14) + } + constructor(errCode: ChooseFileErrorCode, errMsg: String? = null) : super() { + this.errSubject = UniErrorSubject + this.errCode = errCode + this.errMsg = errMsg ?: UniErrors[errCode] ?: "" + } +} +val REQUEST_CODE_CHOOSE_FILE: Int = 42 +var resultFunction: ((requestCode: Int, resultCode: Int, data: Intent?) -> Unit)? = null +open class ChooseFileImpl : ChooseFile, IUTSSourceMap { + override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { + return UTSSourceMapPosition("ChooseFileImpl", "uni_modules/lime-choose-file/utssdk/app-android/index.uts", 17, 7) + } + override var name: String = "" + override var path: String = "" + override var size: Number = 0 + override var time: Number = 0 + override var type: String = "file" + private var options: ChooseFileOption + constructor(uri: Uri, options: ChooseFileOption){ + this.options = options + this.time = Date.now() + this.type = this.getFileTypeFromUri(uri) + this.getFileInfoFromUri(uri) + if (this.isCache(options)) { + this.copyFileToCache(uri) + } + } + private fun isCache(options: ChooseFileOption): Boolean { + val extension = this.getFileExtension(this.name) + val extensions = options.extension + val type = options.type ?: "all" + val hasExtension = extensions != null && extension != "" && extensions.includes(extension) + val isVideoOrImage = _uA( + "video", + "image" + ).includes(type) + val isFileAndNotVideoOrImage = type == "file" && !_uA( + "video", + "image" + ).includes(this.type) + if ((type == "all" || isVideoOrImage || isFileAndNotVideoOrImage) && !hasExtension) { + return true + } else { + return false + } + } + private fun getFileExtension(fileName: String): String { + val lastDotIndex = fileName.lastIndexOf(".") + if (lastDotIndex == -1) { + return "" + } + return fileName.substring(lastDotIndex + 1) + } + private fun copyFileToCache(uri: Uri) { + val cacheDir = UTSAndroid.getAppCachePath() + val context = UTSAndroid.getAppContext() + if (cacheDir != null) { + val path = File(cacheDir) + if (!path.exists()) { + path.mkdir() + } + } + var fileName = this.name + if (this.options.filename != null) { + fileName = this.options.filename!! + if (this.options.count != null && this.options.count!! > 1) { + fileName = "" + fileName + "_" + Date.now() + } + val extension = this.getFileExtension(this.name) + fileName = "" + fileName + "." + extension + } + val destFile = File(cacheDir, fileName) + try { + val inputStream = context!!.getContentResolver().openInputStream(uri) + val outputStream = FileOutputStream(destFile) + if (inputStream != null) { + var buffer = ByteArray(1024) + var c = inputStream.read(buffer) + while(c > 0){ + outputStream.write(buffer, 0, c) + c = inputStream.read(buffer) + } + } + this.path = cacheDir + fileName + } + catch (e: Throwable) {} + } + private fun getFileTypeFromUri(uri: Uri): String { + val context = UTSAndroid.getAppContext() + var fileType = "file" + var mimeType = context!!.getContentResolver().getType(uri) + if (mimeType != null) { + if (mimeType.startsWith("video")) { + fileType = "video" + } else if (mimeType.startsWith("image")) { + fileType = "image" + } + } + return fileType + } + private fun getFileInfoFromUri(uri: Uri) { + val context = UTSAndroid.getAppContext() + var cursor = context!!.getContentResolver().query(uri, null, null, null, null) + if (cursor != null && cursor.moveToFirst()) { + this.name = cursor.getString(cursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME)) + val fileSize = cursor.getLong(cursor.getColumnIndexOrThrow(OpenableColumns.SIZE)) + this.size = UTSNumber.from(fileSize) + cursor.close() + } else if ("file".equals(uri.getScheme())) { + this.name = uri.getLastPathSegment() ?: "" + val file = File(uri.getPath() ?: "") + val fileSize = file.length() + this.size = UTSNumber.from(fileSize) + } + } +} +fun chooseFile(options: ChooseFileOption) { + if (resultFunction != null) { + UTSAndroid.offAppActivityResult(resultFunction!!) + } + val type = options.type ?: "all" + val intent = Intent(Intent.ACTION_GET_CONTENT) + if (type.equals("all") || type.equals("file")) { + intent.setType("*/*") + } else if (type.equals("video")) { + intent.setType("video/*") + } else if (type.equals("image")) { + intent.setType("image/*") + } + intent.addCategory(Intent.CATEGORY_OPENABLE) + intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, if (options.count == 1) { + false + } else { + true + } + ) + resultFunction = fun(requestCode: Int, resultCode: Int, data: Intent?){ + if (requestCode == REQUEST_CODE_CHOOSE_FILE) { + UTSAndroid.offAppActivityResult(resultFunction!!) + if (resultCode == -1 && data != null) { + val clipData = data.getClipData() + val tempFiles: UTSArray = _uA() + if (clipData != null) { + run { + var i: Number = 0 + while(i < clipData.getItemCount()){ + val uri = clipData.getItemAt(i.toInt()).getUri() + val chooseFile = ChooseFileImpl(uri, options) + if (chooseFile.path != "") { + tempFiles.push(chooseFile) + } + i++ + } + } + } else { + val uri = data.getData() + if (uri != null) { + val chooseFile = ChooseFileImpl(uri, options) + if (chooseFile.path != "") { + tempFiles.push(chooseFile) + } + } + } + val count = options.count ?: Integer.MAX_VALUE + if (tempFiles.length > 0 && count >= tempFiles.length) { + options.success?.invoke(ChooseFileSuccessCallbackResult(tempFiles = tempFiles, errMsg = "chooseFile:ok")) + } else { + val err = GeneralCallbackResultImpl(9010002, "没有可用的文件或文件超过设置数量") + options.fail?.invoke(err) + options.complete?.invoke(err) + } + } else { + val err = GeneralCallbackResultImpl(9010002, "没有可用的文件") + options.fail?.invoke(err) + options.complete?.invoke(err) + } + } else { + val err = GeneralCallbackResultImpl(9010002, "没有可用的文件") + options.fail?.invoke(err) + options.complete?.invoke(err) + } + } + UTSAndroid.onAppActivityResult(resultFunction!!) + UTSAndroid.getUniActivity()!!.startActivityForResult(Intent.createChooser(intent, "选择文件"), REQUEST_CODE_CHOOSE_FILE) +} +open class ChooseFileOptionJSONObject : UTSJSONObject() { + open var filename: String? = null + open var count: Number? = null + open var type: String? = null + open var extension: UTSArray? = null + open var success: UTSCallback? = null + open var fail: UTSCallback? = null + open var complete: UTSCallback? = null +} +fun chooseFileByJs(options: ChooseFileOptionJSONObject) { + return chooseFile(ChooseFileOption(filename = options.filename, count = options.count, type = options.type, extension = options.extension, success = fun(result: ChooseFileSuccessCallbackResult): Unit { + options.success?.invoke(result) + } + , fail = fun(res: GeneralCallbackResult): Unit { + options.fail?.invoke(res) + } + , complete = fun(res: GeneralCallbackResult): Unit { + options.complete?.invoke(res) + } + )) +} diff --git a/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/index.kt.map b/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/index.kt.map new file mode 100644 index 0000000..27c2988 --- /dev/null +++ b/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/index.kt.map @@ -0,0 +1 @@ +{"version":3,"sources":["uni_modules/lime-choose-file/utssdk/app-android/index.uts","uni_modules/lime-choose-file/utssdk/interface.uts","uni_modules/lime-choose-file/utssdk/unierror.uts"],"sourcesContent":["// @ts-nocheck\r\nimport Intent from 'android.content.Intent';\r\nimport ClipData from 'android.content.ClipData';\r\nimport Uri from 'android.net.Uri';\r\nimport InputStream from 'java.io.InputStream';\r\nimport OpenableColumns from 'android.provider.OpenableColumns';\r\nimport Cursor from 'android.database.Cursor';\r\nimport File from 'java.io.File';\r\nimport FileInputStream from 'java.io.FileInputStream';\r\nimport FileOutputStream from 'java.io.FileOutputStream';\r\nimport BufferedOutputStream from 'java.io.BufferedOutputStream';\r\nimport ByteArrayInputStream from 'java.io.ByteArrayInputStream';\r\n\r\nimport { ChooseFileOption, ChooseFile, ChooseFileSuccessCallbackResult } from '../interface'\r\nimport { GeneralCallbackResultImpl } from '../unierror'\r\n\r\nconst REQUEST_CODE_CHOOSE_FILE : Int = 42\r\nlet resultFunction : ((requestCode : Int, resultCode : Int, data ?: Intent) => void) | null = null\r\n\r\n\r\nclass ChooseFileImpl implements ChooseFile {\r\n\tname : string = ''\r\n\tpath : string = ''\r\n\t// private _path : string = ''\r\n\tsize : number = 0\r\n\ttime : number = 0\r\n\ttype : string = 'file'\r\n\t// private uri : Uri \r\n\tprivate options: ChooseFileOption\r\n\tconstructor(uri : Uri, options : ChooseFileOption) {\r\n\t\t// this.uri = uri\r\n\t\tthis.options = options\r\n\t\tthis.time = Date.now()\r\n\t\tthis.type = this.getFileTypeFromUri(uri);\r\n\t\t// this._path = uri.getPath() ?? ''\r\n\t\tthis.getFileInfoFromUri(uri)\r\n\t\tif (this.isCache(options)) {\r\n\t\t\tthis.copyFileToCache(uri)\r\n\t\t}\r\n\r\n\t}\r\n\tprivate isCache(options : ChooseFileOption) : boolean {\r\n\t\tconst extension = this.getFileExtension(this.name)\r\n\t\tconst extensions = options.extension\r\n\t\tconst type = options.type ?? 'all'\r\n\t\tconst hasExtension = extensions != null && extension != '' && extensions.includes(extension)\r\n\t\tconst isVideoOrImage = ['video', 'image'].includes(type)\r\n\t\tconst isFileAndNotVideoOrImage = type == 'file' && !['video', 'image'].includes(this.type);\r\n\t\tif ((type == 'all' || isVideoOrImage || isFileAndNotVideoOrImage) && !hasExtension) {\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\tprivate getFileExtension(fileName : string) : string {\r\n\t\tconst lastDotIndex = fileName.lastIndexOf(\".\");\r\n\t\tif (lastDotIndex == -1) {\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\t\treturn fileName.substring(lastDotIndex + 1);\r\n\t}\r\n\tprivate copyFileToCache(uri : Uri) {\r\n\t\tconst cacheDir = UTSAndroid.getAppCachePath();\r\n\t\tconst context = UTSAndroid.getAppContext();\r\n\t\tif(cacheDir != null) {\r\n\t\t\tconst path = new File(cacheDir); \r\n\t\t\tif (!path.exists()) { \r\n\t\t\t\tpath.mkdir(); \r\n\t\t\t}\r\n\t\t}\r\n\t\tlet fileName = this.name\r\n\t\tif(this.options.filename != null) {\r\n\t\t\tfileName = this.options.filename!;\r\n\t\t\tif(this.options.count != null && this.options.count! > 1) {\r\n\t\t\t\tfileName = `${fileName}_${Date.now()}`;\r\n\t\t\t}\r\n\t\t\tconst extension = this.getFileExtension(this.name)\r\n\t\t\t\r\n\t\t\tfileName = `${fileName}.${extension}`\r\n\t\t}\r\n\t\tconst destFile = new File(cacheDir, fileName);\r\n\t\t\r\n\t\ttry {\r\n\t\t\tconst inputStream = context!.getContentResolver().openInputStream(uri)\r\n\t\t\tconst outputStream = new FileOutputStream(destFile)\r\n\t\t\tif (inputStream != null) {\r\n\t\t\t\tlet buffer = ByteArray(1024);\r\n\t\t\t\tlet c = inputStream.read(buffer)\r\n\t\t\t\twhile (c > 0) {\r\n\t\t\t\t\toutputStream.write(buffer, 0, c);\r\n\t\t\t\t\tc = inputStream.read(buffer)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.path = cacheDir + fileName//this.name\r\n\t\t} catch (e) {\r\n\t\t\t\r\n\t\t}\r\n\t}\r\n\tprivate getFileTypeFromUri(uri : Uri) : string {\r\n\t\tconst context = UTSAndroid.getAppContext();\r\n\t\tlet fileType = 'file'\r\n\t\tlet mimeType = context!.getContentResolver().getType(uri);\r\n\t\tif (mimeType != null) {\r\n\t\t\tif (mimeType.startsWith(\"video\")) {\r\n\t\t\t\tfileType = \"video\";\r\n\t\t\t} else if (mimeType.startsWith(\"image\")) {\r\n\t\t\t\tfileType = \"image\";\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn fileType;\r\n\t}\r\n\tprivate getFileInfoFromUri(uri : Uri) {\r\n\t\tconst context = UTSAndroid.getAppContext();\r\n\t\tlet cursor = context!.getContentResolver().query(uri, null, null, null, null);\r\n\t\tif (cursor != null && cursor.moveToFirst()) {\r\n\t\t\tthis.name = cursor.getString(cursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME))\r\n\t\t\tconst fileSize = cursor.getLong(cursor.getColumnIndexOrThrow(OpenableColumns.SIZE));\r\n\t\t\tthis.size = Number.from(fileSize)\r\n\t\t\tcursor.close();\r\n\t\t} else if (\"file\".equals(uri.getScheme())) {\r\n\t\t\tthis.name = uri.getLastPathSegment() ?? '';\r\n\t\t\tconst file = new File(uri.getPath() ?? '');\r\n\t\t\tconst fileSize = file.length();\r\n\t\t\tthis.size = Number.from(fileSize)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\nexport function chooseFile(options : ChooseFileOption) {\r\n\tif (resultFunction != null) {\r\n\t\tUTSAndroid.offAppActivityResult(resultFunction!)\r\n\t}\r\n\tconst type = options.type ?? 'all'\r\n\tconst intent = new Intent(Intent.ACTION_GET_CONTENT);\r\n\tif (type.equals(\"all\") || type.equals(\"file\")) {\r\n\t\tintent.setType(\"*/*\");\r\n\t} else if (type.equals(\"video\")) {\r\n\t\tintent.setType(\"video/*\");\r\n\t} else if (type.equals(\"image\")) {\r\n\t\tintent.setType(\"image/*\");\r\n\t}\r\n\tintent.addCategory(Intent.CATEGORY_OPENABLE);\r\n\tintent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, options.count == 1 ? false : true); // 允许多选\r\n\r\n\tresultFunction = (requestCode : Int, resultCode : Int, data ?: Intent) => {\r\n\t\tif (requestCode == REQUEST_CODE_CHOOSE_FILE) {\r\n\t\t\tUTSAndroid.offAppActivityResult(resultFunction!);\r\n\t\t\tif (resultCode == -1 && data != null) {\r\n\t\t\t\tconst clipData = data.getClipData();\r\n\t\t\t\tconst tempFiles : ChooseFile[] = []\r\n\t\t\t\t\r\n\t\t\t\tif (clipData != null) {\r\n\t\t\t\t\t// 多选\r\n\t\t\t\t\t// const itemCount = clipData.getItemCount();\r\n\t\t\t\t\t// if (options.count != null && options.count! > itemCount) {\r\n\t\t\t\t\t// \tconst err = new GeneralCallbackResultImpl(9010002, `选中文件数量超过${options.count}`)\r\n\t\t\t\t\t// \toptions.fail?.(err)\r\n\t\t\t\t\t// \toptions.complete?.(err)\r\n\t\t\t\t\t// \treturn\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tfor (let i = 0; i < clipData.getItemCount(); i++) {\r\n\t\t\t\t\t\tconst uri = clipData.getItemAt(i.toInt()).getUri();\r\n\t\t\t\t\t\tconst chooseFile = new ChooseFileImpl(uri, options);\r\n\t\t\t\t\t\tif(chooseFile.path !=''){\r\n\t\t\t\t\t\t\ttempFiles.push(chooseFile)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// 单选\r\n\t\t\t\t\tconst uri = data.getData();\r\n\t\t\t\t\tif (uri != null) {\r\n\t\t\t\t\t\tconst chooseFile = new ChooseFileImpl(uri, options)\r\n\t\t\t\t\t\tif(chooseFile.path !='' ){\r\n\t\t\t\t\t\t\ttempFiles.push(chooseFile)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tconst count = options.count ?? Integer.MAX_VALUE // Number.MAX_VALUE\r\n\t\t\t\tif(tempFiles.length > 0 && count >= tempFiles.length){\r\n\t\t\t\t\toptions.success?.({\r\n\t\t\t\t\t\ttempFiles,\r\n\t\t\t\t\t\terrMsg: 'chooseFile:ok'\r\n\t\t\t\t\t} as ChooseFileSuccessCallbackResult)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst err = new GeneralCallbackResultImpl(9010002, `没有可用的文件或文件超过设置数量`)\r\n\t\t\t\t\toptions.fail?.(err)\r\n\t\t\t\t\toptions.complete?.(err)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst err = new GeneralCallbackResultImpl(9010002, `没有可用的文件`)\r\n\t\t\t\toptions.fail?.(err)\r\n\t\t\t\toptions.complete?.(err)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst err = new GeneralCallbackResultImpl(9010002, `没有可用的文件`)\r\n\t\t\toptions.fail?.(err)\r\n\t\t\toptions.complete?.(err)\r\n\t\t}\r\n\t}\r\n\r\n\tUTSAndroid.onAppActivityResult(resultFunction!)\r\n\tUTSAndroid.getUniActivity()!.startActivityForResult(Intent.createChooser(intent, \"选择文件\"), REQUEST_CODE_CHOOSE_FILE)\r\n\t// UTSAndroid.getUniActivity()!.overridePendingTransition((10).toInt(), (0).toInt());\r\n}","// @ts-nocheck\r\n/**\r\n * 错误码\r\n * 根据uni错误码规范要求,建议错误码以90开头,以下是错误码示例:\r\n * - 9010001 错误信息1\r\n * - 9010002 错误信息2\r\n */\r\nexport type ChooseFileErrorCode = 9010001 | 9010002 | 1101001 | 1101002 | 1101003 | 1101004 | 1101005 | 1101006 | 1101007 | 1101008 | 1101009 | 1101010;\r\n/**\r\n * myApi 的错误回调参数\r\n */\r\nexport interface GeneralCallbackResult extends IUniError {\r\n\terrCode : ChooseFileErrorCode\r\n};\r\n\r\n\r\n/** 返回选择的文件的本地临时文件对象数组 */\r\n\r\nexport interface ChooseFile {\r\n\t/** 选择的文件名称 */\r\n\tname : string\r\n\t/** 本地临时文件路径 (本地路径) */\r\n\tpath : string\r\n\t/** 本地临时文件大小,单位 B */\r\n\tsize : number\r\n\t/** 选择的文件的会话发送时间,Unix时间戳,工具暂不支持此属性 */\r\n\ttime : number\r\n\t/** 选择的文件类型\r\n\t *\r\n\t * 可选值:\r\n\t * - 'video': 选择了视频文件;\r\n\t * - 'image': 选择了图片文件;\r\n\t * - 'file': 选择了除图片和视频的文件; */\r\n\ttype : 'video' | 'image' | 'file' | 'all'\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nexport type ChooseFileSuccessCallbackResult = {\r\n\t/** 返回选择的文件的本地临时文件对象数组 */\r\n\ttempFiles : ChooseFile[],\r\n\terrMsg : string\r\n}\r\n\r\n\r\n/** 接口调用成功的回调函数 */\r\nexport type ChooseFileSuccessCallback = (\r\n\tresult : ChooseFileSuccessCallbackResult\r\n) => void\r\n\r\n/** 接口调用失败的回调函数 */\r\nexport type ChooseFileFailCallback = (res : GeneralCallbackResult) => void\r\n\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type ChooseFileCompleteCallback = (\r\n\tres : GeneralCallbackResult\r\n) => void\r\n\r\nexport type ChooseFileOption = {\r\n\t/**\r\n\t * 指定文件名,如果是多选就在后面增加上时间\r\n\t */\r\n\tfilename?: string\r\n\t/**\r\n\t * 最多可以选择的文件数量。\r\n\t * @defaultValue 100\r\n\t */\r\n\tcount ?: number | null,\r\n\t/**\r\n\t * 所选文件类型\r\n\t * @defaultValue all\r\n\t */\r\n\ttype ?: string | null,\r\n\t/**\r\n\t * 根据文件拓展名过滤,每一项都不能是空字符串。默认不过滤。仅H5支持\r\n\t */\r\n\textension ?: (string[]) | null,\r\n\t/**\r\n\t * 成功则返回图片的本地文件路径列表 tempFilePaths\r\n\t */\r\n\tsuccess ?: ChooseFileSuccessCallback | null,\r\n\t/**\r\n\t * 接口调用失败的回调函数\r\n\t */\r\n\tfail ?: ChooseFileFailCallback | null,\r\n\t/**\r\n\t * 接口调用结束的回调函数(调用成功、失败都会执行)\r\n\t */\r\n\tcomplete ?: ChooseFileCompleteCallback | null\r\n}","// @ts-nocheck\r\n/* 此规范为 uni 规范,可以按照自己的需要选择是否实现 */\r\nimport { ChooseFileErrorCode, GeneralCallbackResult } from \"./interface.uts\"\r\n/**\r\n * 错误主题\r\n * 注意:错误主题一般为插件名称,每个组件不同,需要使用时请更改。\r\n * [可选实现]\r\n */\r\nexport const UniErrorSubject = 'chooseFile\"';\r\n\r\n\r\n/**\r\n * 错误信息\r\n * @UniError\r\n * [可选实现]\r\n */\r\nexport const UniErrors : Map = new Map([\r\n /**\r\n * 错误码及对应的错误信息\r\n */\r\n [9010001, 'chooseFile:ok'],\r\n [9010002, 'ChooseFile:failed'],\r\n]);\r\n\r\n\r\n/**\r\n * 错误对象实现\r\n */\r\nexport class GeneralCallbackResultImpl extends UniError implements GeneralCallbackResult {\r\n\r\n /**\r\n * 错误对象构造函数\r\n */\r\n constructor(errCode : ChooseFileErrorCode, errMsg: string|null = null) {\r\n super();\r\n this.errSubject = UniErrorSubject;\r\n this.errCode = errCode;\r\n this.errMsg = errMsg ?? UniErrors[errCode] ?? \"\";\r\n }\r\n}"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/manifest.json b/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/manifest.json new file mode 100644 index 0000000..e42fee8 --- /dev/null +++ b/unpackage/cache/uts_custom_android/app-android/uts/uni_modules/lime-choose-file/manifest.json @@ -0,0 +1,32 @@ +{ + "version": "1", + "env": { + "compilerVersion": "5.07" + }, + "files": { + "utssdk/app-android/index.uts": { + "md5": "41a4e16dddeba7d4a58db6399cd86ee8" + }, + "utssdk/index.uts": { + "md5": "e6a6ba045e443b3a4973f9217894fa1c" + }, + "utssdk/interface.uts": { + "md5": "1b0ac84897039cfd08776b87e0c6582a" + }, + "utssdk/unierror.uts": { + "md5": "82736e70a9d5007436651a5d33897b4e" + }, + "package.json": { + "md5": "4d1ca74cea144db04520444b4216f76b" + }, + "readme copy.md": { + "md5": "6a3473bb03cb1f311be627c885b49dbe" + }, + "utssdk/app-android/AndroidManifest.xml": { + "md5": "e7b416d035a0a308cd13eba12b2db438" + }, + "utssdk/app-android/config.json": { + "md5": "49e34dad9b85d9ddf183e599555456fa" + } + } +} \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/app-config-service.js b/unpackage/dist/build/app-plus/app-config-service.js index 1573ffe..84270da 100644 --- a/unpackage/dist/build/app-plus/app-config-service.js +++ b/unpackage/dist/build/app-plus/app-config-service.js @@ -2,7 +2,7 @@ ;(function(){ let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[]; const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"test1","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"5.07","entryPagePath":"pages/Login/Login","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}}; - const __uniRoutes = [{"path":"pages/Login/Login","meta":{"isQuit":true,"isEntry":true,"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"登录页面","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/Chat/Chat","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"聊天页面(主页面)","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/WorkSpace/WorkSpace","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"工作区文件管理","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/UserProfileModal/UserProfileModal","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/ContactPages/ContactPages","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/WorkSpace/TemplateSpace/TemplateSpace","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/text/text","meta":{"navigationBar":{"titleText":"","type":"default"},"isNVue":false}},{"path":"pages/text/text2","meta":{"navigationBar":{"type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute)); + const __uniRoutes = [{"path":"pages/Login/Login","meta":{"isQuit":true,"isEntry":true,"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"登录页面","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/Chat/Chat","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"聊天页面(主页面)","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/WorkSpace/WorkSpace","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"工作区文件管理","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/UserProfileModal/UserProfileModal","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/ContactPages/ContactPages","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/WorkSpace/TemplateSpace/TemplateSpace","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/text/text","meta":{"navigationBar":{"titleText":"","type":"default"},"isNVue":false}},{"path":"pages/text/text2","meta":{"navigationBar":{"type":"default"},"isNVue":false}},{"path":"pages/CloudDatabase/CloudDatabase","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"云端数据","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/CloudDbDetail/CloudDbDetail","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"数据库详情","style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute)); __uniConfig.styles=[];//styles __uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); __uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); diff --git a/unpackage/dist/build/app-plus/app-service.js b/unpackage/dist/build/app-plus/app-service.js index 9d5e885..1144daa 100644 --- a/unpackage/dist/build/app-plus/app-service.js +++ b/unpackage/dist/build/app-plus/app-service.js @@ -1,7 +1,7 @@ -if("undefined"==typeof Promise||Promise.prototype.finally||(Promise.prototype.finally=function(e){const t=this.constructor;return this.then((a=>t.resolve(e()).then((()=>a))),(a=>t.resolve(e()).then((()=>{throw a}))))}),"undefined"!=typeof uni&&uni&&uni.requireGlobal){const e=uni.requireGlobal();ArrayBuffer=e.ArrayBuffer,Int8Array=e.Int8Array,Uint8Array=e.Uint8Array,Uint8ClampedArray=e.Uint8ClampedArray,Int16Array=e.Int16Array,Uint16Array=e.Uint16Array,Int32Array=e.Int32Array,Uint32Array=e.Uint32Array,Float32Array=e.Float32Array,Float64Array=e.Float64Array,BigInt64Array=e.BigInt64Array,BigUint64Array=e.BigUint64Array}uni.restoreGlobal&&uni.restoreGlobal(Vue,weex,plus,setTimeout,clearTimeout,setInterval,clearInterval),function(e){"use strict";function t(e,t,...a){uni.__log__?uni.__log__(e,t,...a):console[e].apply(console,[...a,t])}function a(e,t){return"string"==typeof e?t:e}const n=((t,a=0)=>(a,n=e.getCurrentInstance())=>{!e.isInSSRComponentSetup&&e.injectHook(t,a,n)})("onShow",3),o="https://cloud.yuxindazhineng.com",l=async e=>new Promise(((t,a)=>{uni.request({url:`${o}/get_user_info`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e},success:e=>{var n,o;if(200===e.statusCode){const l=e.data;if(null==l?void 0:l._id)uni.setStorageSync("userId",l._id),t(l);else{const e=(null==(o=null==(n=null==l?void 0:l.detail)?void 0:n[0])?void 0:o.msg)||"获取用户信息出错啦";a(e)}}else a(`获取用户信息失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";a(t)}})})),s=(e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/cloud_api/get_user_avatar`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,user_ids:t},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)a(t.users);else{const e=(null==t?void 0:t.error)||"获取用户头像出错啦";n(e)}}else n(`获取用户头像失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})),c=(e,t)=>{const a=e.__vccOpts||e;for(const[n,o]of t)a[n]=o;return a},i=c({__name:"Login",setup(a){const n=e.ref(""),l=e.ref(!1),s=e.ref(!1),c=()=>{l.value=!0,h.value=!1},i=()=>{l.value=!1},r=()=>{},d=e.ref(""),u=e.ref(!1),m=e.ref(!1),v=()=>{u.value=!0,h.value=!1},p=()=>{u.value=!1},f=e.reactive({username:e.computed((()=>n.value)),password:e.computed((()=>d.value)),remember:!0}),g=e.ref(!1),h=e.ref(!1),w=async()=>{if(k(),!h.value){g.value=!0;try{await(async(e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/login`,method:"POST",data:{username:e,password:t},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data.access_token;if(t)uni.setStorageSync("token",t),a(t);else{const t=e.data.error||"检查用户名和密码";n(t)}}else n(`请求失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})))(n.value,d.value);y(),uni.reLaunch({url:"/pages/Chat/Chat"})}catch(e){t("log","at pages/Login/Login.vue:124","登录失败",e),uni.showToast({title:e||"失败",icon:"error"})}finally{g.value=!1}}},k=()=>{n.value&&d.value||(h.value=!0)},y=()=>{if(f.remember){const e={username:f.username,password:f.password,remember:!0};uni.setStorageSync("login_info",e),uni.setStorageSync("chatType",0)}else uni.removeStorageSync("login_info")};return e.onMounted((()=>{(()=>{try{const e=uni.getStorageSync("login_info");e&&(n.value=e.username||"",d.value=e.password||"",f.remember=e.remember??!0)}catch(e){t("error","at pages/Login/Login.vue:168","读取登录信息失败",e)}})()})),(t,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),e.createElementVNode("view",{class:"login-container page-container"},[e.createElementVNode("view",{class:"login-card"},[e.createElementVNode("view",{class:"login-header"},[e.createElementVNode("view",{class:"login-header-logo"},[e.createElementVNode("view",{class:"icon-wrapper"},[e.createElementVNode("view",{class:"iconfont icon-brain-2-fill danao-style"})]),e.createElementVNode("text",null,"YXD")]),e.createElementVNode("view",{class:"sub-title"},"File Handling Chat")]),e.createElementVNode("view",{class:"form-wrapper"},[e.createElementVNode("view",{class:"form-item"},[e.createElementVNode("view",{class:"form-label"},[e.createElementVNode("text",null,"用户名")]),e.withDirectives(e.createElementVNode("input",{class:e.normalizeClass(["form-input",{focused:l.value,error:s.value}]),"onUpdate:modelValue":a[0]||(a[0]=e=>n.value=e),onFocus:c,onBlur:i,onInput:r,placeholder:"请输入用户名"},null,34),[[e.vModelText,n.value]])]),e.createElementVNode("view",{class:"form-item"},[e.createElementVNode("view",{class:"form-label"},[e.createElementVNode("text",null,"密码")]),e.withDirectives(e.createElementVNode("input",{type:"password",class:e.normalizeClass(["form-input",{focused:u.value,error:m.value}]),"onUpdate:modelValue":a[1]||(a[1]=e=>d.value=e),onFocus:v,onBlur:p,placeholder:"请输入密码"},null,34),[[e.vModelText,d.value]])]),h.value?(e.openBlock(),e.createElementBlock("text",{key:0,class:"error-info"},"用户名或密码不能为空")):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"form-option"},[e.createElementVNode("view",{class:"checkbox-wrapper",onClick:a[2]||(a[2]=e=>f.remember=!f.remember)},[e.createElementVNode("view",{class:e.normalizeClass(["checkbox",{checked:f.remember}])},[f.remember?(e.openBlock(),e.createElementBlock("text",{key:0},"✓")):e.createCommentVNode("",!0)],2),e.createElementVNode("text",{class:"checkbox-text"},"记住密码")]),e.createElementVNode("text",{class:"forget-pwd"},"忘记密码?")]),e.createElementVNode("button",{class:"login-btn",disabled:g.value,loading:g.value,onClick:w},e.toDisplayString(g.value?"Loading...":"登录"),9,["disabled","loading"])])])])],64))}},[["__scopeId","data-v-d4b9d5ac"]]),r=[{font_class:"arrow-down",unicode:""},{font_class:"arrow-left",unicode:""},{font_class:"arrow-right",unicode:""},{font_class:"arrow-up",unicode:""},{font_class:"auth",unicode:""},{font_class:"auth-filled",unicode:""},{font_class:"back",unicode:""},{font_class:"bars",unicode:""},{font_class:"calendar",unicode:""},{font_class:"calendar-filled",unicode:""},{font_class:"camera",unicode:""},{font_class:"camera-filled",unicode:""},{font_class:"cart",unicode:""},{font_class:"cart-filled",unicode:""},{font_class:"chat",unicode:""},{font_class:"chat-filled",unicode:""},{font_class:"chatboxes",unicode:""},{font_class:"chatboxes-filled",unicode:""},{font_class:"chatbubble",unicode:""},{font_class:"chatbubble-filled",unicode:""},{font_class:"checkbox",unicode:""},{font_class:"checkbox-filled",unicode:""},{font_class:"checkmarkempty",unicode:""},{font_class:"circle",unicode:""},{font_class:"circle-filled",unicode:""},{font_class:"clear",unicode:""},{font_class:"close",unicode:""},{font_class:"closeempty",unicode:""},{font_class:"cloud-download",unicode:""},{font_class:"cloud-download-filled",unicode:""},{font_class:"cloud-upload",unicode:""},{font_class:"cloud-upload-filled",unicode:""},{font_class:"color",unicode:""},{font_class:"color-filled",unicode:""},{font_class:"compose",unicode:""},{font_class:"contact",unicode:""},{font_class:"contact-filled",unicode:""},{font_class:"down",unicode:""},{font_class:"bottom",unicode:""},{font_class:"download",unicode:""},{font_class:"download-filled",unicode:""},{font_class:"email",unicode:""},{font_class:"email-filled",unicode:""},{font_class:"eye",unicode:""},{font_class:"eye-filled",unicode:""},{font_class:"eye-slash",unicode:""},{font_class:"eye-slash-filled",unicode:""},{font_class:"fire",unicode:""},{font_class:"fire-filled",unicode:""},{font_class:"flag",unicode:""},{font_class:"flag-filled",unicode:""},{font_class:"folder-add",unicode:""},{font_class:"folder-add-filled",unicode:""},{font_class:"font",unicode:""},{font_class:"forward",unicode:""},{font_class:"gear",unicode:""},{font_class:"gear-filled",unicode:""},{font_class:"gift",unicode:""},{font_class:"gift-filled",unicode:""},{font_class:"hand-down",unicode:""},{font_class:"hand-down-filled",unicode:""},{font_class:"hand-up",unicode:""},{font_class:"hand-up-filled",unicode:""},{font_class:"headphones",unicode:""},{font_class:"heart",unicode:""},{font_class:"heart-filled",unicode:""},{font_class:"help",unicode:""},{font_class:"help-filled",unicode:""},{font_class:"home",unicode:""},{font_class:"home-filled",unicode:""},{font_class:"image",unicode:""},{font_class:"image-filled",unicode:""},{font_class:"images",unicode:""},{font_class:"images-filled",unicode:""},{font_class:"info",unicode:""},{font_class:"info-filled",unicode:""},{font_class:"left",unicode:""},{font_class:"link",unicode:""},{font_class:"list",unicode:""},{font_class:"location",unicode:""},{font_class:"location-filled",unicode:""},{font_class:"locked",unicode:""},{font_class:"locked-filled",unicode:""},{font_class:"loop",unicode:""},{font_class:"mail-open",unicode:""},{font_class:"mail-open-filled",unicode:""},{font_class:"map",unicode:""},{font_class:"map-filled",unicode:""},{font_class:"map-pin",unicode:""},{font_class:"map-pin-ellipse",unicode:""},{font_class:"medal",unicode:""},{font_class:"medal-filled",unicode:""},{font_class:"mic",unicode:""},{font_class:"mic-filled",unicode:""},{font_class:"micoff",unicode:""},{font_class:"micoff-filled",unicode:""},{font_class:"minus",unicode:""},{font_class:"minus-filled",unicode:""},{font_class:"more",unicode:""},{font_class:"more-filled",unicode:""},{font_class:"navigate",unicode:""},{font_class:"navigate-filled",unicode:""},{font_class:"notification",unicode:""},{font_class:"notification-filled",unicode:""},{font_class:"paperclip",unicode:""},{font_class:"paperplane",unicode:""},{font_class:"paperplane-filled",unicode:""},{font_class:"person",unicode:""},{font_class:"person-filled",unicode:""},{font_class:"personadd",unicode:""},{font_class:"personadd-filled",unicode:""},{font_class:"personadd-filled-copy",unicode:""},{font_class:"phone",unicode:""},{font_class:"phone-filled",unicode:""},{font_class:"plus",unicode:""},{font_class:"plus-filled",unicode:""},{font_class:"plusempty",unicode:""},{font_class:"pulldown",unicode:""},{font_class:"pyq",unicode:""},{font_class:"qq",unicode:""},{font_class:"redo",unicode:""},{font_class:"redo-filled",unicode:""},{font_class:"refresh",unicode:""},{font_class:"refresh-filled",unicode:""},{font_class:"refreshempty",unicode:""},{font_class:"reload",unicode:""},{font_class:"right",unicode:""},{font_class:"scan",unicode:""},{font_class:"search",unicode:""},{font_class:"settings",unicode:""},{font_class:"settings-filled",unicode:""},{font_class:"shop",unicode:""},{font_class:"shop-filled",unicode:""},{font_class:"smallcircle",unicode:""},{font_class:"smallcircle-filled",unicode:""},{font_class:"sound",unicode:""},{font_class:"sound-filled",unicode:""},{font_class:"spinner-cycle",unicode:""},{font_class:"staff",unicode:""},{font_class:"staff-filled",unicode:""},{font_class:"star",unicode:""},{font_class:"star-filled",unicode:""},{font_class:"starhalf",unicode:""},{font_class:"trash",unicode:""},{font_class:"trash-filled",unicode:""},{font_class:"tune",unicode:""},{font_class:"tune-filled",unicode:""},{font_class:"undo",unicode:""},{font_class:"undo-filled",unicode:""},{font_class:"up",unicode:""},{font_class:"top",unicode:""},{font_class:"upload",unicode:""},{font_class:"upload-filled",unicode:""},{font_class:"videocam",unicode:""},{font_class:"videocam-filled",unicode:""},{font_class:"vip",unicode:""},{font_class:"vip-filled",unicode:""},{font_class:"wallet",unicode:""},{font_class:"wallet-filled",unicode:""},{font_class:"weibo",unicode:""},{font_class:"weixin",unicode:""}];const d=c({name:"UniIcons",emits:["click"],props:{type:{type:String,default:""},color:{type:String,default:"#333333"},size:{type:[Number,String],default:16},customPrefix:{type:String,default:""},fontFamily:{type:String,default:""}},data:()=>({icons:r}),computed:{unicode(){let e=this.icons.find((e=>e.font_class===this.type));return e?e.unicode:""},iconSize(){return"number"==typeof(e=this.size)||/^[0-9]*$/g.test(e)?e+"px":e;var e},styleObj(){return""!==this.fontFamily?`color: ${this.color}; font-size: ${this.iconSize}; font-family: ${this.fontFamily};`:`color: ${this.color}; font-size: ${this.iconSize};`}},methods:{_onClick(e){this.$emit("click",e)}}},[["render",function(t,a,n,o,l,s){return e.openBlock(),e.createElementBlock("text",{style:e.normalizeStyle(s.styleObj),class:e.normalizeClass(["uni-icons",["uniui-"+n.type,n.customPrefix,n.customPrefix?n.type:""]]),onClick:a[0]||(a[0]=(...e)=>s._onClick&&s._onClick(...e))},[e.renderSlot(t.$slots,"default",{},void 0,!0)],6)}],["__scopeId","data-v-b25a9929"]]),u=()=>uni.getStorageSync("token"),m=()=>{const e=uni.getStorageSync("currentSessionId");return isNaN(Number(e))?e.replace(/-/g,""):e},v=()=>uni.getStorageSync("taskCallId"),p=c(Object.assign({name:"ChatSidebar"},{__name:"ChatSidebar",props:{chatList:{type:Array,required:!0},showNewChatModal:{type:Boolean,default:!1},currentSessionId:{type:[String,Number],required:!0},chatType:{type:Number,required:!0}},emits:["update:showNewChatModal","update:currentSessionId","refresh-conversations","update:chatType"],setup(n,{emit:l}){const s=n,c=l,i=e.toRef(s,"chatList");e.toRef(s,"showNewChatModal");const r=e.toRef(s,"chatType"),m=()=>{uni.navigateTo({url:"/pages/UserProfileModal/UserProfileModal"})},v=e.ref(!1),p=e.ref([]),f=async()=>{try{const e=u();await(async(e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/delete_conversation`,method:"POST",data:{access_token:e,conversation_ids:t},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data;if(null==t?void 0:t.success)a(t.message);else{const e=t.failed_ids.error||"删除对话出错啦";n(e)}}else n(`删除对话失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})))(e,p.value),uni.showToast({title:"删除成功",icon:"success"}),p.value=[],v.value=!1,c("refresh-conversations")}catch(e){t("error","at components/ChatSidebar.vue:188","删除会话失败:",e),uni.showToast({title:"删除失败,请重试",icon:"none"})}},g=e.computed((()=>i.value.length>0&&p.value.length===i.value.length)),h=e.toRef(s,"currentSessionId"),w=(e,a="")=>{t("log","at components/ChatSidebar.vue:206","选择的id是:",e),a&&uni.setStorageSync("receiverId",a),uni.setStorageSync("currentSessionId",e),c("update:currentSessionId",e)},k=()=>{t("log","at components/ChatSidebar.vue:217","点击了新建会话"),c("update:showNewChatModal",!0)},y=()=>{uni.navigateTo({url:"/pages/ContactPages/ContactPages"})},E=e.ref(""),N=e.ref(!1),V=()=>{v.value=!v.value,v.value||(p.value=[])},b=e=>{const t=p.value.indexOf(e);-1===t?p.value.push(e):p.value.splice(t,1)},C=()=>{g.value?p.value=[]:p.value=i.value.map((e=>e._id))};return e.onMounted((()=>{t("log","at components/ChatSidebar.vue:264","会话数据:"),t("log","at components/ChatSidebar.vue:265",s.chatList)})),(t,n)=>{const o=a(e.resolveDynamicComponent("uni-icons"),d);return e.openBlock(),e.createElementBlock("view",{class:"chat-sidebar-container"},[e.createElementVNode("view",{class:"status-bar"}),e.createElementVNode("view",{class:"sidebar-header"},[e.createElementVNode("view",{class:"user-profile-card",onClick:m},[e.createElementVNode("view",{class:"left"},[e.createVNode(o,{type:"contact-filled",size:"50",color:"#007aff"})]),e.createElementVNode("view",{class:"center"},[e.createElementVNode("text",null,"欢迎回来"),e.createElementVNode("text",null,"用户名")]),e.createElementVNode("view",{class:"right"},[e.createElementVNode("view",{class:"status-dot"}),e.createElementVNode("view",{class:"status-text"},[e.createElementVNode("text",null,"在线")])])]),e.createElementVNode("view",{class:"new-chat-btn",onClick:y},[e.createElementVNode("text",null,"+ 聊天列表")])]),e.createElementVNode("view",{class:"chat-history"},[e.createElementVNode("view",{class:"history-header"},[e.createElementVNode("view",{class:"history-title-section"},[e.createElementVNode("text",null,"历史会话"),e.createElementVNode("text",null,e.toDisplayString(i.value.length)+"个对话",1)]),e.createElementVNode("view",{class:"history-management"},[v.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("view",{key:0,class:"history-management-btn iconfont icon-jia icon-jia-style",onClick:k})),v.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("view",{key:1,class:"history-management-btn iconfont icon-duoxuan icon-duoxuan-style",onClick:V})),v.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("view",{key:2,class:"history-management-btn iconfont icon-saochu icon-saochu-style"})),v.value&&p.value.length>0?(e.openBlock(),e.createElementBlock("view",{key:3,class:"history-management-btn iconfont icon-shanchu icon-shanchu-style",onClick:f})):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock("view",{key:4,class:e.normalizeClass(["history-management-btn iconfont icon-total_selection icon-total_selection-style",{active:g.value}]),onClick:C},null,2)):e.createCommentVNode("",!0),v.value?(e.openBlock(),e.createElementBlock("view",{key:5,class:"history-management-btn iconfont icon-quxiao icon-quxiao-style",onClick:V})):e.createCommentVNode("",!0)])]),v.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("view",{key:0,class:"history-search-wrap"},[e.createElementVNode("view",{class:e.normalizeClass(["history-search-inner",{"has-value":E.value||N.value}])},[e.createVNode(o,{type:"search",class:e.normalizeClass([E.value||N.value?"chat-search-icon":"search-icon"])},null,8,["class"]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[0]||(n[0]=e=>E.value=e),onFocus:n[1]||(n[1]=e=>N.value=!0),onBlur:n[2]||(n[2]=e=>N.value=!1),type:"text",placeholder:"搜索会话..."},null,544),[[e.vModelText,E.value]])],2)])),e.createElementVNode("view",{class:"chat-history-list"},[0===r.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(i.value,(t=>(e.openBlock(),e.createElementBlock("view",{key:t._id,"data-chat-id":t._id,class:e.normalizeClass(["chat-history-card",{"is-select-chat":h.value===t._id||p.value.includes(t._id)}]),onClick:e=>v.value?b(t._id):w(t._id)},[v.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"history-chat-checkbox"},[p.value.includes(t._id)?(e.openBlock(),e.createBlock(o,{key:0,type:"checkmarkempty",size:"20",color:"#007aff"})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"history-chat-avatar"},[e.createVNode(o,{type:"chat-filled",size:"26",color:"#007aff"})]),e.createElementVNode("view",null,e.toDisplayString(t.title),1)],10,["data-chat-id","onClick"])))),128)):e.createCommentVNode("",!0),1===r.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(i.value,(t=>(e.openBlock(),e.createElementBlock("view",{key:t.sessionId,"data-chat-id":t.sessionId,class:e.normalizeClass(["chat-history-card",{"is-select-chat":h.value===t.sessionId||p.value.includes(t.sessionId)}]),onClick:e=>v.value?b(t.sessionId):w(t.sessionId,t.receiver)},[v.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"history-chat-checkbox"},[p.value.includes(t.sessionId)?(e.openBlock(),e.createBlock(o,{key:0,type:"checkmarkempty",size:"20",color:"#007aff"})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"history-chat-avatar"},[t.avatar?(e.openBlock(),e.createElementBlock("image",{key:0,src:t.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):e.createCommentVNode("",!0)]),e.createElementVNode("view",null,e.toDisplayString(t.friendNickName),1)],10,["data-chat-id","onClick"])))),128)):e.createCommentVNode("",!0),2===r.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(i.value,(t=>(e.openBlock(),e.createElementBlock("view",{key:t.id,"data-chat-id":t.id,class:e.normalizeClass(["chat-history-card",{"is-select-chat":h.value===t.id||p.value.includes(t.id)}]),onClick:e=>v.value?b(t.id):w(t.id)},[v.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"history-chat-checkbox"},[p.value.includes(t.id)?(e.openBlock(),e.createBlock(o,{key:0,type:"checkmarkempty",size:"20",color:"#007aff"})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"history-chat-avatar"},[e.createElementVNode("view",{class:"iconfont icon-qunliao",style:{"font-size":"80rpx",color:"#fff"}})]),e.createElementVNode("view",null,e.toDisplayString(t.name),1)],10,["data-chat-id","onClick"])))),128)):e.createCommentVNode("",!0)])])])}}}),[["__scopeId","data-v-8ade48e4"]]);var f={"":["",""],_:["",""],"*":["",""],"~":["",""],"\n":["
"]," ":["
"],"-":["
"]};function g(e){return e.replace(RegExp("^"+(e.match(/^(\t| )+/)||"")[0],"gm"),"")}function h(e){return(e+"").replace(/"/g,""").replace(//g,">")}function w(e,t){var a,n,o,l,s,c=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,i=[],r="",d=t||{},u=0;function m(e){var t=f[e[1]||""],a=i[i.length-1]==e;return t?t[1]?(a?i.pop():i.push(e),t[0|a]):t[0]:e}function v(){for(var e="";i.length;)e+=m(i[i.length-1]);return e}for(e=e.replace(/^\[(.+?)\]:\s*(.+)$/gm,(function(e,t,a){return d[t.toLowerCase()]=a,""})).replace(/^\n+|\n+$/g,"");o=c.exec(e);)n=e.substring(u,o.index),u=c.lastIndex,a=o[0],n.match(/[^\\](\\\\)*\\$/)||((s=o[3]||o[4])?a='
"+g(h(s).replace(/^\n+|\n+$/g,""))+"
":(s=o[6])?(s.match(/\./)&&(o[5]=o[5].replace(/^\d+/gm,"")),l=w(g(o[5].replace(/^\s*[>*+.-]/gm,""))),">"==s?s="blockquote":(s=s.match(/\./)?"ol":"ul",l=l.replace(/^(.*)(\n|$)/gm,"
  • $1
  • ")),a="<"+s+">"+l+""):o[8]?a=''+h(o[7])+'':o[10]?(r=r.replace("",''),a=v()+""):o[9]?a="":o[12]||o[14]?a="<"+(s="h"+(o[14]?o[14].length:o[13]>"="?1:2))+">"+w(o[12]||o[15],d)+"":o[16]?a=""+h(o[16])+"":(o[17]||o[1])&&(a=m(o[17]||"--"))),r+=n,r+=a;return(r+e.substring(u)+v()).replace(/^\n+|\n+$/g,"")} +if("undefined"==typeof Promise||Promise.prototype.finally||(Promise.prototype.finally=function(e){const t=this.constructor;return this.then((a=>t.resolve(e()).then((()=>a))),(a=>t.resolve(e()).then((()=>{throw a}))))}),"undefined"!=typeof uni&&uni&&uni.requireGlobal){const e=uni.requireGlobal();ArrayBuffer=e.ArrayBuffer,Int8Array=e.Int8Array,Uint8Array=e.Uint8Array,Uint8ClampedArray=e.Uint8ClampedArray,Int16Array=e.Int16Array,Uint16Array=e.Uint16Array,Int32Array=e.Int32Array,Uint32Array=e.Uint32Array,Float32Array=e.Float32Array,Float64Array=e.Float64Array,BigInt64Array=e.BigInt64Array,BigUint64Array=e.BigUint64Array}uni.restoreGlobal&&uni.restoreGlobal(Vue,weex,plus,setTimeout,clearTimeout,setInterval,clearInterval),function(e){"use strict";function t(e,t,...a){uni.__log__?uni.__log__(e,t,...a):console[e].apply(console,[...a,t])}function a(e,t){return"string"==typeof e?t:e}const n=((t,a=0)=>(a,n=e.getCurrentInstance())=>{!e.isInSSRComponentSetup&&e.injectHook(t,a,n)})("onShow",3),o="https://cloud.yuxindazhineng.com",l=async(e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/delete_conversation`,method:"POST",data:{access_token:e,conversation_ids:t},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data;if(null==t?void 0:t.success)a(t.message);else{const e=t.failed_ids.error||"删除对话出错啦";n(e)}}else n(`删除对话失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})),s=async e=>new Promise(((t,a)=>{uni.request({url:`${o}/get_user_info`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e},success:e=>{var n,o;if(200===e.statusCode){const l=e.data;if(null==l?void 0:l._id)uni.setStorageSync("userId",l._id),t(l);else{const e=(null==(o=null==(n=null==l?void 0:l.detail)?void 0:n[0])?void 0:o.msg)||"获取用户信息出错啦";a(e)}}else a(`获取用户信息失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";a(t)}})})),c=(e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/cloud_api/get_user_avatar`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,user_ids:t},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)a(t.users);else{const e=(null==t?void 0:t.error)||"获取用户头像出错啦";n(e)}}else n(`获取用户头像失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})),i=(e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/cloud_api/search_users`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,keyword:t},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)a(t.users);else{const e=(null==t?void 0:t.error)||"通过用户名或邮箱来去查询用户出错啦";n(e)}}else n(`通过用户名或邮箱来去查询用户失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})),r=(e,t,a)=>new Promise(((n,l)=>{uni.request({url:`${o}/cloud_api/phone/workspace/delete`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,workspaces_id:t,file_path:a},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)n(t.message);else{const e=(null==t?void 0:t.error)||"删除工作区文件出错啦";l(e)}}else l(`删除工作区文件失败:${e.statusCode}`)}})})),u=(e,t,a)=>new Promise(((n,l)=>{uni.request({url:`${o}/cloud_api/phone/workspace/create`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,workspaces_id:t,dir_path:a},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)n(t.message);else{const e=(null==t?void 0:t.error)||"创建工作区文件夹出错啦";l(e)}}else l(`创建工作区文件夹失败:${e.statusCode}`)}})})),d=(e,t,a="/",n="")=>new Promise(((l,s)=>{uni.request({url:`${o}/cloud_api/file/list`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,path:a,type:t,team_id:n},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)l(t.data);else{const e=(null==t?void 0:t.error)||"获取工作区文件目录出错啦";s(e)}}else s(`获取工作区文件目录失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";s(t)}})})),m=async e=>new Promise(((t,a)=>{uni.request({url:`${o}/cloud_api/team/list`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,team_name:""},success:e=>{if(200===e.statusCode){const n=e.data;if(n.success){const e=n.teams.slice(1);t(e)}else{const t=e.data.error||"获取用户可访问的团队列表出错啦";a(t)}}else a(`获取用户可访问的团队列表失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";a(t)}})})),v=(e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/cloud_api/team/get_all_member`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,team_id:t},success:e=>{var t;if(200===e.statusCode){const o=e.data;if(o.success){const e=(null==(t=o.team)?void 0:t.result)||[];a(e)}else{const e=(null==o?void 0:o.error)||"获取团队全部成员出错啦";n(e)}}else n(`获取团队全部成员失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})),p=(e,t,a,n)=>new Promise(((l,s)=>{const c={access_token:e,database_id:t};"user_id"===a?c.user_id=n:"team_id"===a&&(c.team_id=n),uni.request({url:`${o}/cloud_api/database/permission/info`,method:"POST",data:c,header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data;if(null==t?void 0:t.success)l(t.data);else if(Array.isArray(t))l(t);else{const e=(null==t?void 0:t.error)||"查看 个人/团队 数据库权限信息出错啦";s(e)}}else s(`查看 个人/团队 数据库权限信息失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";s(t)}})})),f=(e,t)=>{const a=e.__vccOpts||e;for(const[n,o]of t)a[n]=o;return a},h=f({__name:"Login",setup(a){const n=e.ref(""),l=e.ref(!1),s=e.ref(!1),c=()=>{l.value=!0,g.value=!1},i=()=>{l.value=!1},r=()=>{},u=e.ref(""),d=e.ref(!1),m=e.ref(!1),v=()=>{d.value=!0,g.value=!1},p=()=>{d.value=!1},f=e.reactive({username:e.computed((()=>n.value)),password:e.computed((()=>u.value)),remember:!0}),h=e.ref(!1),g=e.ref(!1),w=async()=>{if(k(),!g.value){h.value=!0;try{await(async(e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/login`,method:"POST",data:{username:e,password:t,login_type:"phone"},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data.access_token;if(t)uni.setStorageSync("token",t),a(t);else{const t=e.data.error||"检查用户名和密码";n(t)}}else n(`请求失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})))(n.value,u.value);y(),uni.reLaunch({url:"/pages/Chat/Chat"})}catch(e){t("log","at pages/Login/Login.vue:124","登录失败",e),uni.showToast({title:e||"失败",icon:"error"})}finally{h.value=!1}}},k=()=>{n.value&&u.value||(g.value=!0)},y=()=>{if(f.remember){const e={username:f.username,password:f.password,remember:!0};uni.setStorageSync("login_info",e),uni.setStorageSync("chatType",0)}else uni.removeStorageSync("login_info")};return e.onMounted((()=>{(()=>{try{const e=uni.getStorageSync("login_info");e&&(n.value=e.username||"",u.value=e.password||"",f.remember=e.remember??!0)}catch(e){t("error","at pages/Login/Login.vue:168","读取登录信息失败",e)}})()})),(t,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),e.createElementVNode("view",{class:"login-container page-container"},[e.createElementVNode("view",{class:"login-card"},[e.createElementVNode("view",{class:"login-header"},[e.createElementVNode("view",{class:"login-header-logo"},[e.createElementVNode("view",{class:"icon-wrapper"},[e.createElementVNode("view",{class:"iconfont icon-brain-2-fill danao-style"})]),e.createElementVNode("text",null,"YXD")]),e.createElementVNode("view",{class:"sub-title"},"File Handling Chat")]),e.createElementVNode("view",{class:"form-wrapper"},[e.createElementVNode("view",{class:"form-item"},[e.createElementVNode("view",{class:"form-label"},[e.createElementVNode("text",null,"用户名")]),e.withDirectives(e.createElementVNode("input",{class:e.normalizeClass(["form-input",{focused:l.value,error:s.value}]),"onUpdate:modelValue":a[0]||(a[0]=e=>n.value=e),onFocus:c,onBlur:i,onInput:r,placeholder:"请输入用户名"},null,34),[[e.vModelText,n.value]])]),e.createElementVNode("view",{class:"form-item"},[e.createElementVNode("view",{class:"form-label"},[e.createElementVNode("text",null,"密码")]),e.withDirectives(e.createElementVNode("input",{type:"password",class:e.normalizeClass(["form-input",{focused:d.value,error:m.value}]),"onUpdate:modelValue":a[1]||(a[1]=e=>u.value=e),onFocus:v,onBlur:p,placeholder:"请输入密码"},null,34),[[e.vModelText,u.value]])]),g.value?(e.openBlock(),e.createElementBlock("text",{key:0,class:"error-info"},"用户名或密码不能为空")):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"form-option"},[e.createElementVNode("view",{class:"checkbox-wrapper",onClick:a[2]||(a[2]=e=>f.remember=!f.remember)},[e.createElementVNode("view",{class:e.normalizeClass(["checkbox",{checked:f.remember}])},[f.remember?(e.openBlock(),e.createElementBlock("text",{key:0},"✓")):e.createCommentVNode("",!0)],2),e.createElementVNode("text",{class:"checkbox-text"},"记住密码")]),e.createElementVNode("text",{class:"forget-pwd"},"忘记密码?")]),e.createElementVNode("button",{class:"login-btn",disabled:h.value,loading:h.value,onClick:w},e.toDisplayString(h.value?"Loading...":"登录"),9,["disabled","loading"])])])])],64))}},[["__scopeId","data-v-d4b9d5ac"]]),g=[{font_class:"arrow-down",unicode:""},{font_class:"arrow-left",unicode:""},{font_class:"arrow-right",unicode:""},{font_class:"arrow-up",unicode:""},{font_class:"auth",unicode:""},{font_class:"auth-filled",unicode:""},{font_class:"back",unicode:""},{font_class:"bars",unicode:""},{font_class:"calendar",unicode:""},{font_class:"calendar-filled",unicode:""},{font_class:"camera",unicode:""},{font_class:"camera-filled",unicode:""},{font_class:"cart",unicode:""},{font_class:"cart-filled",unicode:""},{font_class:"chat",unicode:""},{font_class:"chat-filled",unicode:""},{font_class:"chatboxes",unicode:""},{font_class:"chatboxes-filled",unicode:""},{font_class:"chatbubble",unicode:""},{font_class:"chatbubble-filled",unicode:""},{font_class:"checkbox",unicode:""},{font_class:"checkbox-filled",unicode:""},{font_class:"checkmarkempty",unicode:""},{font_class:"circle",unicode:""},{font_class:"circle-filled",unicode:""},{font_class:"clear",unicode:""},{font_class:"close",unicode:""},{font_class:"closeempty",unicode:""},{font_class:"cloud-download",unicode:""},{font_class:"cloud-download-filled",unicode:""},{font_class:"cloud-upload",unicode:""},{font_class:"cloud-upload-filled",unicode:""},{font_class:"color",unicode:""},{font_class:"color-filled",unicode:""},{font_class:"compose",unicode:""},{font_class:"contact",unicode:""},{font_class:"contact-filled",unicode:""},{font_class:"down",unicode:""},{font_class:"bottom",unicode:""},{font_class:"download",unicode:""},{font_class:"download-filled",unicode:""},{font_class:"email",unicode:""},{font_class:"email-filled",unicode:""},{font_class:"eye",unicode:""},{font_class:"eye-filled",unicode:""},{font_class:"eye-slash",unicode:""},{font_class:"eye-slash-filled",unicode:""},{font_class:"fire",unicode:""},{font_class:"fire-filled",unicode:""},{font_class:"flag",unicode:""},{font_class:"flag-filled",unicode:""},{font_class:"folder-add",unicode:""},{font_class:"folder-add-filled",unicode:""},{font_class:"font",unicode:""},{font_class:"forward",unicode:""},{font_class:"gear",unicode:""},{font_class:"gear-filled",unicode:""},{font_class:"gift",unicode:""},{font_class:"gift-filled",unicode:""},{font_class:"hand-down",unicode:""},{font_class:"hand-down-filled",unicode:""},{font_class:"hand-up",unicode:""},{font_class:"hand-up-filled",unicode:""},{font_class:"headphones",unicode:""},{font_class:"heart",unicode:""},{font_class:"heart-filled",unicode:""},{font_class:"help",unicode:""},{font_class:"help-filled",unicode:""},{font_class:"home",unicode:""},{font_class:"home-filled",unicode:""},{font_class:"image",unicode:""},{font_class:"image-filled",unicode:""},{font_class:"images",unicode:""},{font_class:"images-filled",unicode:""},{font_class:"info",unicode:""},{font_class:"info-filled",unicode:""},{font_class:"left",unicode:""},{font_class:"link",unicode:""},{font_class:"list",unicode:""},{font_class:"location",unicode:""},{font_class:"location-filled",unicode:""},{font_class:"locked",unicode:""},{font_class:"locked-filled",unicode:""},{font_class:"loop",unicode:""},{font_class:"mail-open",unicode:""},{font_class:"mail-open-filled",unicode:""},{font_class:"map",unicode:""},{font_class:"map-filled",unicode:""},{font_class:"map-pin",unicode:""},{font_class:"map-pin-ellipse",unicode:""},{font_class:"medal",unicode:""},{font_class:"medal-filled",unicode:""},{font_class:"mic",unicode:""},{font_class:"mic-filled",unicode:""},{font_class:"micoff",unicode:""},{font_class:"micoff-filled",unicode:""},{font_class:"minus",unicode:""},{font_class:"minus-filled",unicode:""},{font_class:"more",unicode:""},{font_class:"more-filled",unicode:""},{font_class:"navigate",unicode:""},{font_class:"navigate-filled",unicode:""},{font_class:"notification",unicode:""},{font_class:"notification-filled",unicode:""},{font_class:"paperclip",unicode:""},{font_class:"paperplane",unicode:""},{font_class:"paperplane-filled",unicode:""},{font_class:"person",unicode:""},{font_class:"person-filled",unicode:""},{font_class:"personadd",unicode:""},{font_class:"personadd-filled",unicode:""},{font_class:"personadd-filled-copy",unicode:""},{font_class:"phone",unicode:""},{font_class:"phone-filled",unicode:""},{font_class:"plus",unicode:""},{font_class:"plus-filled",unicode:""},{font_class:"plusempty",unicode:""},{font_class:"pulldown",unicode:""},{font_class:"pyq",unicode:""},{font_class:"qq",unicode:""},{font_class:"redo",unicode:""},{font_class:"redo-filled",unicode:""},{font_class:"refresh",unicode:""},{font_class:"refresh-filled",unicode:""},{font_class:"refreshempty",unicode:""},{font_class:"reload",unicode:""},{font_class:"right",unicode:""},{font_class:"scan",unicode:""},{font_class:"search",unicode:""},{font_class:"settings",unicode:""},{font_class:"settings-filled",unicode:""},{font_class:"shop",unicode:""},{font_class:"shop-filled",unicode:""},{font_class:"smallcircle",unicode:""},{font_class:"smallcircle-filled",unicode:""},{font_class:"sound",unicode:""},{font_class:"sound-filled",unicode:""},{font_class:"spinner-cycle",unicode:""},{font_class:"staff",unicode:""},{font_class:"staff-filled",unicode:""},{font_class:"star",unicode:""},{font_class:"star-filled",unicode:""},{font_class:"starhalf",unicode:""},{font_class:"trash",unicode:""},{font_class:"trash-filled",unicode:""},{font_class:"tune",unicode:""},{font_class:"tune-filled",unicode:""},{font_class:"undo",unicode:""},{font_class:"undo-filled",unicode:""},{font_class:"up",unicode:""},{font_class:"top",unicode:""},{font_class:"upload",unicode:""},{font_class:"upload-filled",unicode:""},{font_class:"videocam",unicode:""},{font_class:"videocam-filled",unicode:""},{font_class:"vip",unicode:""},{font_class:"vip-filled",unicode:""},{font_class:"wallet",unicode:""},{font_class:"wallet-filled",unicode:""},{font_class:"weibo",unicode:""},{font_class:"weixin",unicode:""}];const w=f({name:"UniIcons",emits:["click"],props:{type:{type:String,default:""},color:{type:String,default:"#333333"},size:{type:[Number,String],default:16},customPrefix:{type:String,default:""},fontFamily:{type:String,default:""}},data:()=>({icons:g}),computed:{unicode(){let e=this.icons.find((e=>e.font_class===this.type));return e?e.unicode:""},iconSize(){return"number"==typeof(e=this.size)||/^[0-9]*$/g.test(e)?e+"px":e;var e},styleObj(){return""!==this.fontFamily?`color: ${this.color}; font-size: ${this.iconSize}; font-family: ${this.fontFamily};`:`color: ${this.color}; font-size: ${this.iconSize};`}},methods:{_onClick(e){this.$emit("click",e)}}},[["render",function(t,a,n,o,l,s){return e.openBlock(),e.createElementBlock("text",{style:e.normalizeStyle(s.styleObj),class:e.normalizeClass(["uni-icons",["uniui-"+n.type,n.customPrefix,n.customPrefix?n.type:""]]),onClick:a[0]||(a[0]=(...e)=>s._onClick&&s._onClick(...e))},[e.renderSlot(t.$slots,"default",{},void 0,!0)],6)}],["__scopeId","data-v-b25a9929"]]),k=()=>uni.getStorageSync("token"),y=()=>{const e=uni.getStorageSync("currentSessionId");return isNaN(Number(e))?e.replace(/-/g,""):e},E=()=>uni.getStorageSync("taskCallId"),N=()=>(t("log","at utils/user-info.js:50","用户Id(UserId)",uni.getStorageSync("userId")),uni.getStorageSync("userId")),C=f(Object.assign({name:"ChatSidebar"},{__name:"ChatSidebar",props:{chatList:{type:Array,required:!0},showNewChatModal:{type:Boolean,default:!1},currentSessionId:{type:[String,Number],required:!0},chatType:{type:Number,required:!0}},emits:["update:showNewChatModal","update:currentSessionId","refresh-conversations","update:chatType"],setup(n,{emit:o}){const c=n,i=o,r=e.toRef(c,"chatList");e.toRef(c,"showNewChatModal");const u=e.toRef(c,"chatType"),d=()=>{uni.navigateTo({url:"/pages/UserProfileModal/UserProfileModal"})},m=e.ref(!1),v=e.ref([]),p=()=>{0!==v.value.length&&uni.showModal({title:"确认删除",content:`确定要删除全部 ${v.value.length} 个对话吗?此操作不可恢复。`,confirmText:"确认删除",confirmColor:"#ff0000",success:async e=>{if(e.confirm)try{const e=k();await l(e,v.value),uni.showToast({title:"删除成功",icon:"success"}),v.value=[],m.value=!1,i("refresh-conversations")}catch(a){t("error","at components/ChatSidebar.vue:209","删除会话失败:",a),uni.showToast({title:"删除失败,请重试",icon:"none"})}}})},f=()=>{r.value.length?uni.showModal({title:"确认删除",content:`确定要删除全部 ${r.value.length} 个对话吗?此操作不可恢复。`,confirmText:"删除全部",confirmColor:"#ff0000",success:async e=>{if(e.confirm)try{const e=k(),t=r.value.map((e=>e._id));await l(e,t),uni.showToast({title:"已删除全部对话",icon:"success"}),i("refresh-conversations")}catch(a){t("error","at components/ChatSidebar.vue:241","清空全部对话失败:",a),uni.showToast({title:"删除失败,请重试",icon:"none"})}}}):uni.showToast({title:"没有可删除的会话",icon:"none"})},h=e.computed((()=>r.value.length>0&&v.value.length===r.value.length)),g=e.toRef(c,"currentSessionId"),y=(e,a="")=>{t("log","at components/ChatSidebar.vue:259","选择的id是:",e),a&&uni.setStorageSync("receiverId",a),uni.setStorageSync("currentSessionId",e),i("update:currentSessionId",e)},E=()=>{t("log","at components/ChatSidebar.vue:270","点击了新建会话"),i("update:showNewChatModal",!0)},N=()=>{uni.navigateTo({url:"/pages/ContactPages/ContactPages"})},C=e.ref(""),b=e.ref(!1),V=()=>{m.value=!m.value,m.value||(v.value=[])},_=e=>{const t=v.value.indexOf(e);-1===t?v.value.push(e):v.value.splice(t,1)},B=()=>{h.value?v.value=[]:v.value=r.value.map((e=>e._id))},S=e.ref(""),x=e.ref(""),T=e.ref("");return e.onMounted((async()=>{S.value=k();const e=await s(S.value);x.value=e.avatar||"",T.value=e.username||"",t("log","at components/ChatSidebar.vue:320","菜单收到的会话列表:",r.value)})),(t,n)=>{const o=a(e.resolveDynamicComponent("uni-icons"),w);return e.openBlock(),e.createElementBlock("view",{class:"chat-sidebar-container"},[e.createElementVNode("view",{class:"status-bar"}),e.createElementVNode("view",{class:"sidebar-header"},[e.createElementVNode("view",{class:"user-profile-card",onClick:d},[e.createElementVNode("view",{class:"left"},[x.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"avatar-preview"},[e.createElementVNode("image",{src:x.value,mode:"aspectFill"},null,8,["src"])])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"avatar-placeholder"},[e.createVNode(o,{type:"contact-filled",size:"50",color:"#007aff"})]))]),e.createElementVNode("view",{class:"center"},[e.createElementVNode("text",null,"欢迎回来"),e.createElementVNode("text",null,e.toDisplayString(T.value),1)]),e.createElementVNode("view",{class:"right"},[e.createElementVNode("view",{class:"status-dot"}),e.createElementVNode("view",{class:"status-text"},[e.createElementVNode("text",null,"在线")])])]),e.createElementVNode("view",{class:"new-chat-btn",onClick:N},[e.createElementVNode("text",null,"+ 聊天列表")])]),e.createElementVNode("view",{class:"chat-history"},[e.createElementVNode("view",{class:"history-header"},[e.createElementVNode("view",{class:"history-title-section"},[e.createElementVNode("text",null,"历史会话"),e.createElementVNode("text",null,e.toDisplayString(r.value.length)+"个对话",1)]),e.createElementVNode("view",{class:"history-management"},[m.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("view",{key:0,class:"history-management-btn iconfont icon-jia icon-jia-style",onClick:E})),m.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("view",{key:1,class:"history-management-btn iconfont icon-duoxuan icon-duoxuan-style",onClick:V})),m.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("view",{key:2,class:"history-management-btn iconfont icon-saochu icon-saochu-style",onClick:f})),m.value&&v.value.length>0?(e.openBlock(),e.createElementBlock("view",{key:3,class:"history-management-btn iconfont icon-shanchu icon-shanchu-style",onClick:p})):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("view",{key:4,class:e.normalizeClass(["history-management-btn iconfont icon-total_selection icon-total_selection-style",{active:h.value}]),onClick:B},null,2)):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("view",{key:5,class:"history-management-btn iconfont icon-quxiao icon-quxiao-style",onClick:V})):e.createCommentVNode("",!0)])]),m.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("view",{key:0,class:"history-search-wrap"},[e.createElementVNode("view",{class:e.normalizeClass(["history-search-inner",{"has-value":C.value||b.value}])},[e.createVNode(o,{type:"search",class:e.normalizeClass([C.value||b.value?"chat-search-icon":"search-icon"])},null,8,["class"]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[0]||(n[0]=e=>C.value=e),onFocus:n[1]||(n[1]=e=>b.value=!0),onBlur:n[2]||(n[2]=e=>b.value=!1),type:"text",placeholder:"搜索会话..."},null,544),[[e.vModelText,C.value]])],2)])),e.createElementVNode("view",{class:"chat-history-list"},[0===u.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(r.value,(t=>(e.openBlock(),e.createElementBlock("view",{key:t._id,"data-chat-id":t._id,class:e.normalizeClass(["chat-history-card",{"is-select-chat":g.value===t._id||v.value.includes(t._id)}]),onClick:e=>m.value?_(t._id):y(t._id)},[m.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"history-chat-checkbox"},[v.value.includes(t._id)?(e.openBlock(),e.createBlock(o,{key:0,type:"checkmarkempty",size:"20",color:"#007aff"})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"history-chat-avatar"},[e.createVNode(o,{type:"chat-filled",size:"26",color:"#007aff"})]),t.agent_id?(e.openBlock(),e.createElementBlock("view",{key:1},e.toDisplayString(t.agent_data.title),1)):(e.openBlock(),e.createElementBlock("view",{key:2},e.toDisplayString(t.title),1))],10,["data-chat-id","onClick"])))),128)):e.createCommentVNode("",!0),1===u.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(r.value,(t=>(e.openBlock(),e.createElementBlock("view",{key:t.sessionId,"data-chat-id":t.sessionId,class:e.normalizeClass(["chat-history-card",{"is-select-chat":g.value===t.sessionId||v.value.includes(t.sessionId)}]),onClick:e=>m.value?_(t.sessionId):y(t.sessionId,t.receiver)},[m.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"history-chat-checkbox"},[v.value.includes(t.sessionId)?(e.openBlock(),e.createBlock(o,{key:0,type:"checkmarkempty",size:"20",color:"#007aff"})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"history-chat-avatar"},[t.avatar?(e.openBlock(),e.createElementBlock("image",{key:0,src:t.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):e.createCommentVNode("",!0)]),e.createElementVNode("view",null,e.toDisplayString(t.friendNickName),1)],10,["data-chat-id","onClick"])))),128)):e.createCommentVNode("",!0),2===u.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(r.value,(t=>(e.openBlock(),e.createElementBlock("view",{key:t.id,"data-chat-id":t.id,class:e.normalizeClass(["chat-history-card",{"is-select-chat":g.value===t.id||v.value.includes(t.id)}]),onClick:e=>m.value?_(t.id):y(t.id)},[m.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"history-chat-checkbox"},[v.value.includes(t.id)?(e.openBlock(),e.createBlock(o,{key:0,type:"checkmarkempty",size:"20",color:"#007aff"})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"history-chat-avatar"},[e.createElementVNode("view",{class:"iconfont icon-qunliao",style:{"font-size":"80rpx",color:"#fff"}})]),e.createElementVNode("view",null,e.toDisplayString(t.name),1)],10,["data-chat-id","onClick"])))),128)):e.createCommentVNode("",!0)])])])}}}),[["__scopeId","data-v-766a2af1"]]);var b={"":["",""],_:["",""],"*":["",""],"~":["",""],"\n":["
    "]," ":["
    "],"-":["
    "]};function V(e){return e.replace(RegExp("^"+(e.match(/^(\t| )+/)||"")[0],"gm"),"")}function _(e){return(e+"").replace(/"/g,""").replace(//g,">")}function B(e,t){var a,n,o,l,s,c=/((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm,i=[],r="",u=t||{},d=0;function m(e){var t=b[e[1]||""],a=i[i.length-1]==e;return t?t[1]?(a?i.pop():i.push(e),t[0|a]):t[0]:e}function v(){for(var e="";i.length;)e+=m(i[i.length-1]);return e}for(e=e.replace(/^\[(.+?)\]:\s*(.+)$/gm,(function(e,t,a){return u[t.toLowerCase()]=a,""})).replace(/^\n+|\n+$/g,"");o=c.exec(e);)n=e.substring(d,o.index),d=c.lastIndex,a=o[0],n.match(/[^\\](\\\\)*\\$/)||((s=o[3]||o[4])?a='
    "+V(_(s).replace(/^\n+|\n+$/g,""))+"
    ":(s=o[6])?(s.match(/\./)&&(o[5]=o[5].replace(/^\d+/gm,"")),l=B(V(o[5].replace(/^\s*[>*+.-]/gm,""))),">"==s?s="blockquote":(s=s.match(/\./)?"ol":"ul",l=l.replace(/^(.*)(\n|$)/gm,"
  • $1
  • ")),a="<"+s+">"+l+""):o[8]?a=''+_(o[7])+'':o[10]?(r=r.replace("
    ",''),a=v()+""):o[9]?a="":o[12]||o[14]?a="<"+(s="h"+(o[14]?o[14].length:o[13]>"="?1:2))+">"+B(o[12]||o[15],u)+"":o[16]?a=""+_(o[16])+"":(o[17]||o[1])&&(a=m(o[17]||"--"))),r+=n,r+=a;return(r+e.substring(d)+v()).replace(/^\n+|\n+$/g,"")} /*! * pinia v2.1.7 * (c) 2023 Eduardo San Martin Morote * @license MIT */ -let k;const y=e=>k=e,E=Symbol();function N(e){return e&&"object"==typeof e&&"[object Object]"===Object.prototype.toString.call(e)&&"function"!=typeof e.toJSON}var V,b;(b=V||(V={})).direct="direct",b.patchObject="patch object",b.patchFunction="patch function";const C=()=>{};function _(t,a,n,o=C){t.push(a);const l=()=>{const e=t.indexOf(a);e>-1&&(t.splice(e,1),o())};return!n&&e.getCurrentScope()&&e.onScopeDispose(l),l}function x(e,...t){e.slice().forEach((e=>{e(...t)}))}const S=e=>e();function B(t,a){t instanceof Map&&a instanceof Map&&a.forEach(((e,a)=>t.set(a,e))),t instanceof Set&&a instanceof Set&&a.forEach(t.add,t);for(const n in a){if(!a.hasOwnProperty(n))continue;const o=a[n],l=t[n];N(l)&&N(o)&&t.hasOwnProperty(n)&&!e.isRef(o)&&!e.isReactive(o)?t[n]=B(l,o):t[n]=o}return t}const T=Symbol();const{assign:I}=Object;function M(t,a,n={},o,l,s){let c;const i=I({actions:{}},n),r={deep:!0};let d,u,m,v=[],p=[];const f=o.state.value[t];let g;function h(a){let n;d=u=!1,"function"==typeof a?(a(o.state.value[t]),n={type:V.patchFunction,storeId:t,events:m}):(B(o.state.value[t],a),n={type:V.patchObject,payload:a,storeId:t,events:m});const l=g=Symbol();e.nextTick().then((()=>{g===l&&(d=!0)})),u=!0,x(v,n,o.state.value[t])}s||f||(o.state.value[t]={}),e.ref({});const w=s?function(){const{state:e}=n,t=e?e():{};this.$patch((e=>{I(e,t)}))}:C;function k(e,a){return function(){y(o);const n=Array.from(arguments),l=[],s=[];function c(e){l.push(e)}function i(e){s.push(e)}let r;x(p,{args:n,name:e,store:b,after:c,onError:i});try{r=a.apply(this&&this.$id===t?this:b,n)}catch(d){throw x(s,d),d}return r instanceof Promise?r.then((e=>(x(l,e),e))).catch((e=>(x(s,e),Promise.reject(e)))):(x(l,r),r)}}const E={_p:o,$id:t,$onAction:_.bind(null,p),$patch:h,$reset:w,$subscribe(a,n={}){const l=_(v,a,n.detached,(()=>s())),s=c.run((()=>e.watch((()=>o.state.value[t]),(e=>{("sync"===n.flush?u:d)&&a({storeId:t,type:V.direct,events:m},e)}),I({},r,n))));return l},$dispose:function(){c.stop(),v=[],p=[],o._s.delete(t)}},b=e.reactive(E);o._s.set(t,b);const M=(o._a&&o._a.runWithContext||S)((()=>o._e.run((()=>(c=e.effectScope()).run(a)))));for(const y in M){const a=M[y];if(e.isRef(a)&&(z=a,!e.isRef(z)||!z.effect)||e.isReactive(a))s||(!f||N(P=a)&&P.hasOwnProperty(T)||(e.isRef(a)?a.value=f[y]:B(a,f[y])),o.state.value[t][y]=a);else if("function"==typeof a){const e=k(y,a);M[y]=e,i.actions[y]=a}}var P,z;return I(b,M),I(e.toRaw(b),M),Object.defineProperty(b,"$state",{get:()=>o.state.value[t],set:e=>{h((t=>{I(t,e)}))}}),o._p.forEach((e=>{I(b,c.run((()=>e({store:b,app:o._a,pinia:o,options:i}))))})),f&&s&&n.hydrate&&n.hydrate(b.$state,f),d=!0,u=!0,b}function P(t,a,n){let o,l;const s="function"==typeof a;function c(t,n){const c=e.hasInjectionContext();(t=t||(c?e.inject(E,null):null))&&y(t),(t=k)._s.has(o)||(s?M(o,a,l,t):function(t,a,n,o){const{state:l,actions:s,getters:c}=a,i=n.state.value[t];let r;r=M(t,(function(){i||(n.state.value[t]=l?l():{});const a=e.toRefs(n.state.value[t]);return I(a,s,Object.keys(c||{}).reduce(((a,o)=>(a[o]=e.markRaw(e.computed((()=>{y(n);const e=n._s.get(t);return c[o].call(e,e)}))),a)),{}))}),a,n,0,!0)}(o,l,t));return t._s.get(o)}return"string"==typeof t?(o=t,l=s?n:a):(l=t,o=t.id),c.$id=o,c}const z=new class{constructor(){this.ws=null,this.url="wss://cloud.yuxindazhineng.com/chat",this.options={token:"",conversationId:"",onMessage:null,onError:null,onReconnect:null,onOpen:null,onClose:null},this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectDelay=3e3,this.reconnectTimer=null,this.heartbeatTimer=null,this.isManualClose=!1}connect(e={}){this.options={...this.options,...e},this.isManualClose=!1,this.ws&&this.close();try{this.ws=uni.connectSocket({url:this.url,success:()=>{t("log","at utils/socket.js:42","WebSocket 连接请求已发送")},fail:e=>{t("error","at utils/socket.js:45","WebSocket 连接失败:",e),this.handleError(e)}}),this.initEventHandlers()}catch(a){this.handleError(a)}}initEventHandlers(){this.ws&&(this.ws.onOpen((e=>{var a,n,o,l;t("log","at utils/socket.js:72","WebSocket 已连接"),this.reconnectAttempts>0&&(null==(n=(a=this.options).onReconnect)||n.call(a)),null==(l=(o=this.options).onOpen)||l.call(o,e),this.reconnectAttempts=0})),this.ws.onMessage((e=>{try{const a=JSON.parse(e.data);t("log","at utils/socket.js:85","收到了返回消息:",a),this.handleMessage(a)}catch(a){t("error","at utils/socket.js:89","消息解析失败:",a),uni.setStorageSync("currentSessionId",e.data.task_call_id)}})),this.ws.onError((e=>{t("error","at utils/socket.js:94","WebSocket 错误:",e),this.handleError(e)})),this.ws.onClose((e=>{var a,n;t("log","at utils/socket.js:98","WebSocket 已关闭:",e.code,e.reason),null==(n=(a=this.options).onClose)||n.call(a,e),this.stopHeartbeat(),!this.isManualClose&&this.reconnectAttempts{if(!this.isConnected())return void n(new Error("WebSocket 未连接"));const o=JSON.stringify(e);t("log","at utils/socket.js:187","发送的消息是:",o),this.ws.send({data:o,success:()=>a(),fail:e=>{t("error","at utils/socket.js:195","发送消息失败:",e),n(e)}})}))}reconnect(){this.reconnectTimer||(this.reconnectAttempts++,t("log","at utils/socket.js:221",`尝试重连 (${this.reconnectAttempts}/${this.maxReconnectAttempts})...`),this.reconnectTimer=setTimeout((()=>{this.reconnectTimer=null,this.isManualClose||this.connect(this.options)}),this.reconnectDelay*this.reconnectAttempts))}startHeartbeat(){this.stopHeartbeat(),this.heartbeatTimer=setInterval((()=>{this.isConnected()?this.send({ws_event:"ping"}).catch((()=>{t("log","at utils/socket.js:243","心跳发送失败,准备重连"),this.reconnectTimer||this.isManualClose||this.reconnect()})):!this.isManualClose&&this.reconnectAttemptst("log","at utils/socket.js:329","连接已关闭"),fail:e=>t("error","at utils/socket.js:330","关闭失败:",e)})}catch(e){t("error","at utils/socket.js:338","关闭连接出错:",e)}this.ws=null}this.reconnectAttempts=0}updateOptions(e){this.options={...this.options,...e}}},j=P("socket",(()=>{const a=e.ref("disconnected"),n=e.ref([]),o=e.ref(""),l=e.ref({token:"",conversationId:""}),s=e.ref(""),c=e.ref([]),i=e.ref(20),r=e.computed((()=>"connected"===a.value)),d=e.computed((()=>"connecting"===a.value)),u=e.computed((()=>"disconnected"===a.value)),m=e.computed((()=>"error"===a.value)),v=e.computed((()=>n.value[n.value.length-1]));function p(e,a){const n=new Date,o=`${n.getHours().toString().padStart(2,"0")}:${n.getMinutes().toString().padStart(2,"0")}:${n.getSeconds().toString().padStart(2,"0")}`;c.value.push({type:e,connect:a,time:o}),c.value.length>i.value&&(c.value=c.value.slice(-i.value)),t("log","at stores/socket.js:49",`[${e.toUpperCase()}] ${a}`)}function f(){z.close(),a.value="disconnected",p("warn","已主动断开连接")}function g(){a.value="connected",p("success","连接成功!")}function h(){"disconnected"!==a.value&&(a.value="disconnected",p("warn","连接已断开"))}function w(e){p("error",`Socket错误: ${JSON.stringify(e)}`),a.value="error"}function k(e){a.value="connecting",p("warn",`重连中... (${e}/5)`)}function y(e){p("receive",`收到: ${JSON.stringify(e)}`);const{ws_event:a,queue:n,data:c}=e||{};switch((null==c?void 0:c.task_call_id)&&(s.value=c.task_call_id,uni.setStorageSync("taskCallId",c.task_call_id)),a){case"connect":p("success","连接成功"),function(e){const{ws_event:t,queue:a,data:n}=e||{};(null==n?void 0:n.task_call_id)&&z.send({ws_event:"message",data:{task_call_id:s.value,token:l.value.token,conversation_id:l.value.conversationId}})}(e);break;case"disconnect":p("warn","收到服务端断开指令"),f();break;case"message":!function(e){const{ws_event:a,queue:n,data:l}=e,c=(null==l?void 0:l.content)||(null==l?void 0:l.chunk)||"";if("list_tools"===(null==l?void 0:l.cmd)||"catalog"===(null==l?void 0:l.cmd))return z.send({ws_event:"message",data:{task_call_id:s.value,result:{tools:[]}}}),void p("info",`调用工具: ${null==l?void 0:l.module}`);"message"===a&&"render"===n&&(o.value+=c,l.task_call_id&&z.send({ws_event:"message",data:{task_call_id:s.value}}).catch((e=>t("error","at stores/socket.js:230","发送确认失败:",e))))}(e);break;default:p("info",`未知事件类型: ${a}`)}}return{connectionStatus:a,messageString:o,logs:c,config:l,isConnected:r,isConnecting:d,isDisconnected:u,isError:m,lastMessage:v,connect:function(e={}){n.value=[],o.value="",l.value={...l.value,...e},p("info",`准备连接WebSocket。Token:${l.value.token||"未设置"}。ConversationId: ${l.value.conversationId||"未设置"}`),l.value.token&&l.value.conversationId?(a.value="connecting",z.connect({token:l.value.token,conversationId:l.value.conversationId,onMessage:y,onError:w,onOpen:g,onClose:h,onReconnect:k}),setTimeout((()=>{"connecting"===a.value&&(a.value="error",p("error","连接超时(10s)"))}),1e4)):p("error","Token和ConversationId都不能为空")},disconnect:f,send:async function(e){if(!r.value)throw p("error","发送失败: 连接未建立"),new Error("连接未建立");try{return await z.send(e),p("send","string"==typeof e?e:JSON.stringify(e)),!0}catch(t){throw p("error",`发送失败: ${t.message||t}`),t}},addLog:p,clearLogs:function(){c.value=[]},getStatusText:function(){return{connecting:"连接中",connected:"已连接",disconnected:"未连接",error:"连接错误"}[a.value]||"未知状态"}}})),$="http://chat.yuxindazhineng.com",D=async e=>new Promise(((a,n)=>{uni.request({url:`${$}/api/chatList/getChatFriend`,method:"POST",header:{"Content-Type":"application/json"},data:{size:500,current:1,sendId:e},success:e=>{var o;if(200===e.statusCode){const l=e.data;if(t("log","at utils/friend-api.js:20","获取到的好友列表消息",l),0===(null==l?void 0:l.code)||"成功"===(null==l?void 0:l.msg)){const e=null==(o=l.data)?void 0:o.records;if(e.length>0){const t=e[0].receiver;t&&uni.setStorageSync("receiverId",t)}a(e)}else{const t=e.data.error||"获取好友列表出错啦";n(t)}}else n(`获取好友列表失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})),L=async e=>new Promise(((t,a)=>{uni.request({url:`${$}/api/group/getGroup`,method:"POST",header:{"Content-Type":"application/json"},data:{size:500,current:1,contactId:e},success:e=>{var n;if(200===e.statusCode){const o=e.data;if(0===(null==o?void 0:o.code)||"成功"===(null==o?void 0:o.msg)){const e=null==(n=o.data)?void 0:n.records;t(e)}else{const t=e.data.error||"获取群聊列表出错啦";a(t)}}else a(`获取群聊列表失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";a(t)}})}));const F=new class{constructor(){this.ws=null,this.url="ws://wss.yuxindazhineng.com/ws",this.options={token:"",UserId:"",onMessage:null,onError:null,onReconnect:null,onOpen:null,onClose:null},this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectDelay=3e3,this.reconnectTimer=null,this.heartbeatTimer=null,this.isManualClose=!1}connect(e={}){this.options={...this.options,...e},this.isManualClose=!1,this.ws&&this.close();try{this.ws=uni.connectSocket({url:this.url,success:()=>{t("log","at utils/friend-socket.js:44","WebSocket 连接请求已发送")},fail:e=>{t("error","at utils/friend-socket.js:47","WebSocket 连接失败:",e),this.handleError(e)}}),this.initEventHandlers()}catch(a){this.handleError(a)}}initEventHandlers(){this.ws&&(this.ws.onOpen((e=>{var a,n,o,l;t("log","at utils/friend-socket.js:74","WebSocket 已连接"),this.reconnectAttempts>0&&(null==(n=(a=this.options).onReconnect)||n.call(a)),null==(l=(o=this.options).onOpen)||l.call(o,e),this.reconnectAttempts=0})),this.ws.onMessage((e=>{try{const a=JSON.parse(e.data);t("log","at utils/friend-socket.js:87","收到了返回消息:",a),this.handleMessage(a)}catch(a){t("error","at utils/friend-socket.js:90","消息解析失败:",a),uni.setStorageSync("currentSessionId",e.data.task_call_id)}})),this.ws.onError((e=>{t("error","at utils/friend-socket.js:95","WebSocket 错误:",e),this.handleError(e)})),this.ws.onClose((e=>{var a,n;t("log","at utils/friend-socket.js:99","WebSocket 已关闭:",e.code,e.reason),null==(n=(a=this.options).onClose)||n.call(a,e),!this.isManualClose&&this.reconnectAttempts{if(!this.isConnected())return void n(new Error("WebSocket 未连接"));const o=JSON.stringify(e);t("log","at utils/friend-socket.js:170","发送的消息是:",o),this.ws.send({data:o,success:()=>a(),fail:e=>{t("error","at utils/friend-socket.js:178","发送消息失败:",e),n(e)}})}))}reconnect(){this.reconnectTimer||(this.reconnectAttempts++,t("log","at utils/friend-socket.js:204",`尝试重连 (${this.reconnectAttempts}/${this.maxReconnectAttempts})...`),this.reconnectTimer=setTimeout((()=>{this.reconnectTimer=null,this.isManualClose||this.connect(this.options)}),this.reconnectDelay*this.reconnectAttempts))}startHeartbeat(){this.stopHeartbeat(),this.heartbeatTimer=setInterval((()=>{this.isConnected()?this.send({ws_event:"ping"}).catch((()=>{t("log","at utils/friend-socket.js:226","心跳发送失败,准备重连"),this.reconnectTimer||this.isManualClose||this.reconnect()})):!this.isManualClose&&this.reconnectAttemptst("log","at utils/friend-socket.js:312","连接已关闭"),fail:e=>t("error","at utils/friend-socket.js:313","关闭失败:",e)})}catch(e){t("error","at utils/friend-socket.js:321","关闭连接出错:",e)}this.ws=null}this.reconnectAttempts=0}updateOptions(e){this.options={...this.options,...e}}},A=P("friendSocket",(()=>{const a=e.ref("disconnected"),n=e.ref([]),o=e.ref(""),l=e.ref({token:"",UserId:""});e.ref("");const s=e.ref(null),c=e.ref(null),i=e.ref(!1),r=e.ref([]),d=e.ref(20),u=e.computed((()=>"connected"===a.value)),m=e.computed((()=>"connecting"===a.value)),v=e.computed((()=>"disconnected"===a.value)),p=e.computed((()=>"error"===a.value)),f=e.computed((()=>n.value[n.value.length-1]));function g(e,a){const n=new Date,o=`${n.getHours().toString().padStart(2,"0")}:${n.getMinutes().toString().padStart(2,"0")}:${n.getSeconds().toString().padStart(2,"0")}`;r.value.push({type:e,connect:a,time:o}),r.value.length>d.value&&(r.value=r.value.slice(-d.value)),t("log","at stores/friend-socket.js:57",`[${e.toUpperCase()}] ${a}`)}async function h(){const e={version:"1.1",body:{command:7,sender:(t("log","at utils/user-info.js:50","用户Id(UserId)",uni.getStorageSync("userId")),uni.getStorageSync("userId")),avatar:"",sessionId:"",message:"",callBackMessage:!1}};try{return await F.send(e),g("send","string"==typeof e?e:JSON.stringify(e)),!0}catch(a){throw g("error",`发送验证失败: ${a.message||a}`),a}}function w(){a.value="connected",g("success","连接成功!"),h()}function k(){"disconnected"!==a.value&&(a.value="disconnected",g("warn","连接已断开"))}function y(e){g("error",`Socket错误: ${JSON.stringify(e)}`),a.value="error"}function E(e){a.value="connecting",g("warn",`重连中... (${e}/5)`)}function N(e){g("receive",`收到: ${JSON.stringify(e)}`);const a=e.body||e,{callBackMessage:n,groupName:o,command:l,groupId:r}=a||{};switch(l){case 3:s.value=l,c.value=r;break;case 7:s.value=l;break;case 1:t("log","at stores/friend-socket.js:199","有好友消息"),i.value=!0;break;case 9:t("log","at stores/friend-socket.js:204","群消息发送成功/有新群消息"),i.value=!0;break;default:g("info","未知事件类型")}}return{connectionStatus:a,messageString:o,logs:r,config:l,command:s,groupId:c,MessageReceived:i,isConnected:u,isConnecting:m,isDisconnected:v,isError:p,lastMessage:f,connect:function(e={}){n.value=[],o.value="",l.value={...l.value,...e},g("info",`准备连接FriendsWebSocket。Token:${l.value.token||"未设置"}。UserId: ${l.value.UserId||"未设置"}`),l.value.token&&l.value.UserId?(a.value="connecting",F.connect({token:l.value.token,UserId:l.value.UserId,onMessage:N,onError:y,onOpen:w,onClose:k,onReconnect:E}),setTimeout((()=>{"connecting"===a.value&&(a.value="error",g("error","连接超时(10s)"))}),1e4)):g("error","Token和UserId都不能为空")},disconnect:function(){F.close(),a.value="disconnected",g("warn","已主动断开连接")},send:async function(e){if(!u.value)throw g("error","发送失败: 连接未建立"),new Error("连接未建立");try{return await F.send(e),g("send","string"==typeof e?e:JSON.stringify(e)),!0}catch(t){throw g("error",`发送失败: ${t.message||t}`),t}},addLog:g,clearLogs:function(){r.value=[]},getStatusText:function(){return{connecting:"连接中",connected:"已连接",disconnected:"未连接",error:"连接错误"}[a.value]||"未知状态"}}})),O=uni.requireUTSPlugin("uni_modules/lime-choose-file"),U=c({__name:"Chat",setup(c){const i=A(),r=()=>{i.isConnected||(q.value&&W.value?i.connect({token:q.value,UserId:W.value}):t("warn","at pages/Chat/Chat.vue:242","Token或UserId未准备好"))},v=j(),f=e.ref(0),g=e=>{if(!e)return"";e=h(e);try{return w(e)}catch(a){return t("error","at pages/Chat/Chat.vue:279","解析失败",a),e}},h=e=>{const t=/]*>([\s\S]*?)<\/script>/i.test(e),a=/<(form|input|select|textarea|button)\b[^>]*>/i.test(e);let n=e.replace(/]*>([\s\S]*?)<\/script>/gi,"");if(n=n.replace(/<\/?minimax:tool_call>/g,(e=>e.replace(//g,">"))).replace(/<\|[\w]+?\|>/g,(e=>e.replace(//g,">"))),t||a){return'

    表单仅预览,不可操作!!!

    '+n}return n},k=async()=>{try{const e="0123456789abcdef";let t="";for(let o=0;o<24;o++)t+=e[Math.floor(Math.random()*e.length)];const a=await(async(e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/create_workspace`,method:"POST",data:{access_token:e,name:t},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data.workspace_id;if(t)a(t);else{const t=e.data.error||"创建工作区id出错啦";n(t)}}else n(`创建工作区id失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})))(q.value,t);if(!a)return void uni.showToast({title:"工作区创建失败",icon:"none"});const n=uni.getStorageSync("yxd_login_info");let l="";n&&(l=n.username||"");const s=await(async(e,t,a,n)=>new Promise(((l,s)=>{uni.request({url:`${o}/create_conversation`,method:"POST",data:{access_token:e,workspace_id:t,title:a,sender:n},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data.conversation_id;if(t)l(t);else{const t=e.data.error||"创建新对话id出错啦";s(t)}}else s(`创建新对话失败:${e.statusCode}`)}})})))(q.value,a,"新会话",l);if(!s)return void uni.showToast({title:"新会话创建失败",icon:"none"});G()}catch(e){t("error","at pages/Chat/Chat.vue:373","新建普通会话失败:",e),uni.showToast({title:"创建会话失败,请重试",icon:"none"})}},y=e.ref(!1),E=()=>{y.value=!1},N=e.ref(!1),V=()=>{N.value=!N.value},b=()=>{uni.navigateTo({url:"/pages/WorkSpace/WorkSpace"})},C=()=>{uni.reLaunch({url:"/pages/Login/Login"})},_=e.ref([]),x=()=>{t("log","at pages/Chat/Chat.vue:407","点击了拍照上传"),uni.chooseImage({count:1,sourceType:["camera","album"],success:e=>{const t=e.tempFiles,a=e.tempFilePaths;t.forEach(((e,t)=>{_.value.push({path:a[t],name:e.name||`photo_${Date.now()}_${t}.jpg`,size:e.size,type:"image",tempFile:e})}))},fail:e=>{t("error","at pages/Chat/Chat.vue:425","选择图片失败",e)}})},S=e.ref([]),B=e.ref(!1),T=()=>{0===f.value&&P(),1===f.value&&I(),2===f.value&&M()},I=async()=>{i.isConnecting||await r();const e=uni.getStorageSync("receiverId"),t={version:"1.1",body:{command:1,sender:W.value,receiver:e,avatar:"",sessionId:R.value,message:F.value,callBackMessage:!1}};i.send(t);const a={sender:W.value,receiver:e,content:F.value,taskId:null,avatar:null,createTime:"",messageType:"null",contentJson:"null"};te.value=[...te.value,a],F.value="",setTimeout((()=>{se()}),1e3)},M=async()=>{i.isConnecting||await r();const e={version:"1.1",body:{command:9,sender:W.value,groupId:R.value,message:F.value,callBackMessage:!0,messageType:0}};i.send(e);const t={id:te.value.length+1,message:F.value,messageType:0,groupId:null,createTime:"",contentJson:"",sender:W.value};te.value=[...te.value,t],F.value="",setTimeout((()=>{ce()}),1e3)},P=async()=>{try{v.isConnected||v.connect({token:q.value,conversationId:R.value});await(async(e,t,a,n)=>new Promise(((l,s)=>{uni.request({url:`${o}/add_message_dict`,method:"POST",data:{access_token:e,conversation_id:a,message:{role:t,content:n}},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data.message_id;if(t)l(t);else{const t=e.data.error||"用户发送消息出错啦";s(t)}}else s(`用户发送失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";s(t)}})})))(q.value,"user",R.value,F.value)&&(F.value="",B.value=!0),await z()}catch(e){B.value=!1,uni.showToast({title:`用户发送消息失败${e}`,icon:"error"})}},z=()=>new Promise(((a,n)=>{const o=setTimeout((()=>{n(new Error("等待AI回复超时"))}),18e4),l=e.watch((()=>v.isDisconnected),(async e=>{if(t("log","at pages/Chat/Chat.vue:597","创建一个一次性监听器"),e&&v.messageString){t("log","at pages/Chat/Chat.vue:599","ai返回的消息:",v.messageString);try{t("log","at pages/Chat/Chat.vue:601","检测到socket断开,刷新消息列表"),await le(),l(),clearTimeout(o),a()}catch(s){t("error","at pages/Chat/Chat.vue:609","保存AI回复失败:",s),n(s)}finally{B.value=!1,l(),clearTimeout(o)}}}))})),F=e.ref(""),U=e.ref([]),R=e.ref(""),q=e.ref(""),W=e.ref(""),H=e.ref(""),J=e.ref(null),G=async()=>{try{q.value=u(),t("log","at pages/Chat/Chat.vue:650","token:",q.value),U.value=await(async e=>new Promise(((t,a)=>{uni.request({url:`${o}/get_user_conversations`,method:"POST",data:{access_token:e},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const a=e.data.conversations;t(a)}else a(`请求失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";a(t)}})})))(q.value)||[],t("log","at pages/Chat/Chat.vue:652","UserConversations:",U.value),U.value.length>0?R.value=U.value[0]._id:R.value="",t("log","at pages/Chat/Chat.vue:660","保存会话id:",R.value),uni.setStorageSync("currentSessionId",R.value)}catch(e){uni.showToast({title:`获取会话列表失败${e}`,icon:"error"})}},K=e.ref([]),X=e=>{if(!e)return null;const t=K.value.find((t=>t.receiver===e));return(null==t?void 0:t.avatar)||null},Y=async e=>{if(!(null==e?void 0:e.length))return[];try{const t=e.map((e=>e.receiver)),a=await s(q.value,t),n=new Map(a.map((e=>[e.user_id,e]))||[]);return e.map((e=>{const t=n.get(e.receiver);return{...e,avatar:(null==t?void 0:t.avatar)||null}}))}catch(a){return t("error","at pages/Chat/Chat.vue:716","获取好友头像失败",a),e}},Q=e.ref([]),Z=e.ref([]),ee=e=>{if(!e)return null;const t=Z.value.find((t=>t.groupContactId===e));return(null==t?void 0:t.avatar)||null},te=e.ref([]),ae=e.ref("");e.ref(!1);const ne=e.ref(1),oe=e.computed((()=>te.value.slice(-100))),le=async()=>{try{te.value=await(async(e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/get_conversation_messages`,method:"POST",data:{access_token:e,conversation_id:t},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data;if(t)uni.setStorageSync("workspace_id",t.workspace_id),a(t.messages);else{const t=e.data.error||"获取消息出错啦";n(t)}}else n(`请求失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})))(q.value,R.value)||[],de()}catch(e){uni.showToast({title:`获取ai会话内容失败${e}`,icon:"none"})}},se=async()=>{try{te.value=await(async(e,a=1)=>(t("log","at utils/friend-api.js:88","请求的好友消息id:",e),new Promise(((t,n)=>{uni.request({url:`${$}/api/message/list`,method:"POST",data:{sessionId:e,size:100,current:a,beginTime:"",endTime:""},header:{"Content-Type":"application/json"},success:e=>{var a;if(200===e.statusCode){const o=e.data;if(0===o.code){const e=((null==(a=null==o?void 0:o.data)?void 0:a.records)||[]).reverse();t(e)}else{const t=e.data.error||"获取好友消息出错啦";n(t)}}else n(`请求失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})}))))(R.value)||[],t("log","at pages/Chat/Chat.vue:807","好友消息:",JSON.stringify(te.value)),de()}catch(e){uni.showToast({title:`获取好友会话消息失败${e}`,icon:"none"})}},ce=async()=>{try{te.value=await(async(e,a=1)=>(t("log","at utils/friend-api.js:134","请求的群聊消息id:",e),new Promise(((n,o)=>{uni.request({url:`${$}/api/group/getGroupList`,method:"POST",data:{current:a,size:100,groupId:e,beginTime:"",endTime:""},header:{"Content-Type":"application/json"},success:e=>{var a;if(200===e.statusCode){const l=e.data;if(t("log","at utils/friend-api.js:152","获取到的群聊信息:",l),0===l.code){const e=((null==(a=null==l?void 0:l.data)?void 0:a.records)||[]).reverse();n(e)}else{const t=e.data.error||"获取群聊消息出错啦";o(t)}}else o(`请求失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";o(t)}})}))))(R.value)||[],t("log","at pages/Chat/Chat.vue:820","群聊消息:",te.value);const e=await(async e=>new Promise(((t,a)=>{uni.request({url:`${$}/api/group/getGroupMemberList`,method:"POST",header:{"Content-Type":"application/json"},data:{groupId:e,current:1,size:100},success:e=>{if(200===e.statusCode){const n=e.data;if(0===n.code){const e=n.data.records;t(e)}else{const t=e.data.error||"获取群成员出错啦";a(t)}}else a(`请求群成员失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";a(t)}})})))(R.value);t("log","at pages/Chat/Chat.vue:823","获取到的群成员列表:",e),e&&e.length?(Z.value=await(async e=>{if(!(null==e?void 0:e.length))return[];try{const a=e.map((e=>e.groupContactId));t("log","at pages/Chat/Chat.vue:745","请求头像的ID列表:",a);const n=await s(q.value,a);t("log","at pages/Chat/Chat.vue:747","头像接口返回数据:",n);const o=new Map(n.map((e=>[e.user_id,e]))||[]);return t("log","at pages/Chat/Chat.vue:750","userMap的keys:",Array.from(o.keys())),e.map((e=>{const a=e.groupContactId,n=o.get(a);return t("log","at pages/Chat/Chat.vue:755",`查找 ${a} 的头像:`,n),{...e,avatar:(null==n?void 0:n.avatar)||null}}))}catch(a){return t("error","at pages/Chat/Chat.vue:762","获取群成员头像失败",a),e}})(e),t("log","at pages/Chat/Chat.vue:826","群成员列表(带头像):",Z.value)):Z.value=[],de()}catch(e){uni.showToast({title:`获取群聊会话失败${e}`,icon:"none"})}},ie=async()=>{if(t("log","at pages/Chat/Chat.vue:841","加载更多信息"),te.value.length>100*ne.value){ne.value+=1;const t=te.value.slice(-100*ne.value),a=t.length-oe.value.length;oe.value=t,await e.nextTick(),ae.value="msg-"+(a+1)}},re=e=>{},de=async()=>{await e.nextTick(),oe.value.length>0&&(ae.value="msg-"+(oe.value.length-1))};return e.watch((()=>i.MessageReceived),(e=>{if(t("log","at pages/Chat/Chat.vue:869","收到了好友消息"),e)switch(t("log","at pages/Chat/Chat.vue:871","ChatType:",f.value),f.value){case 0:le(),i.MessageReceived=!1;break;case 1:se(),i.MessageReceived=!1;break;case 2:ce(),i.MessageReceived=!1;break;default:t("log","at pages/Chat/Chat.vue:887","default 分支"),i.MessageReceived=!1}}),{immediate:!0}),e.watch(R,(e=>{if(e)switch(uni.setStorageSync("currentSessionId",R.value),f.value){case 0:default:le();break;case 1:se();break;case 2:ce()}}),{immediate:!0}),e.onMounted((()=>{})),n((async()=>{await(async()=>{try{q.value=u(),J.value=await l(q.value),W.value=J.value._id,H.value=J.value.avatar||"",t("log","at pages/Chat/Chat.vue:640","用户信息已加载:",W.value,H.value)}catch(e){t("error","at pages/Chat/Chat.vue:642","获取用户信息失败:",e)}})();const e=uni.getStorageSync("chatType");f.value=e;const a=m();a&&(R.value=a),0===e?(await G(),R.value&&le()):1===e?(await(async()=>{try{t("log","at pages/Chat/Chat.vue:675","开始获取好友列表");const e=await D(W.value);t("log","at pages/Chat/Chat.vue:678","friendList:",e),e&&e.length?K.value=await Y(e):(K.value=[],t("log","at pages/Chat/Chat.vue:683","好友列表为空"))}catch(e){t("error","at pages/Chat/Chat.vue:686","获取好友列表失败:",e),K.value=[]}finally{U.value=K.value}})(),se(),r()):2===e&&(await(async()=>{try{t("log","at pages/Chat/Chat.vue:726","开始获取群聊列表"),Q.value=await L(W.value)}catch(e){t("error","at pages/Chat/Chat.vue:731","获取群聊列表失败:",e),Q.value=[]}finally{U.value=Q.value}})(),await r(),await ce())})),(n,o)=>{const l=a(e.resolveDynamicComponent("uni-icons"),d);return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),y.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"ncd-overlay",onClick:E},[e.createElementVNode("view",{class:"ncd-card",onClick:o[0]||(o[0]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"ncd-header"},[e.createElementVNode("view",{class:"ncd-title-eng"},[e.createElementVNode("text",null,"NEW")]),e.createElementVNode("text",{class:"ncd-title-zh"},"创建对话"),e.createVNode(l,{type:"closeempty",color:"#ff0000",size:"24",onClick:E})]),e.createElementVNode("text",null,"选择对话类型,开启全新会话体验"),e.createElementVNode("view",{class:"ncd-options"},[e.createElementVNode("view",{class:"ncd-option ncd-normal"},[e.createElementVNode("view",{class:"ncd-opt-icon"},[e.createVNode(l,{type:"chat",color:"#000000",size:"30"})]),e.createElementVNode("view",{class:"ncd-opt-title",onClick:k},[e.createElementVNode("view",{class:"ncd-opt-title-1"},"普通会话"),e.createElementVNode("view",{class:"ncd-opt-title-2"},"与AI自由对话,探索任何话题")]),e.createVNode(l,{type:"arrow-right",class:"arrow-right-style"})]),e.createElementVNode("view",{class:"ncd-option ncd-intelligence"},[e.createElementVNode("view",{class:"ncd-opt-icon"},[e.createVNode(l,{type:"star",color:"#ffffff",size:"30"})]),e.createElementVNode("view",{class:"ncd-opt-title"},[e.createElementVNode("view",{class:"ncd-opt-title-1"},"智能体会话"),e.createElementVNode("view",{class:"ncd-opt-title-2"},"选择专属智能体,获得精准专业服务")]),e.createVNode(l,{type:"arrow-right",class:"arrow-right-style"})])])])])):e.createCommentVNode("",!0),B.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"ncd-overlay",onClick:E},[e.createElementVNode("view",{class:"ncd-card ai-card",onClick:o[1]||(o[1]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"thinking-content"},[e.createElementVNode("view",{class:"loading-dots"},[e.createElementVNode("view",{class:"dot"}),e.createElementVNode("view",{class:"dot"}),e.createElementVNode("view",{class:"dot"})]),e.createElementVNode("text",{class:"thinking-text"},"AI 正在思考中...")])])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"chat-page page-container"},[N.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"mask",onClick:V})):e.createCommentVNode("",!0),e.createElementVNode("view",{class:e.normalizeClass(["chat-sidebar",{"sidebar-show":N.value}])},[e.createVNode(p,{chatList:U.value,showNewChatModal:y.value,"onUpdate:showNewChatModal":o[2]||(o[2]=e=>y.value=e),currentSessionId:R.value,"onUpdate:currentSessionId":o[3]||(o[3]=e=>R.value=e),chatType:f.value,"onUpdate:chatType":o[4]||(o[4]=e=>f.value=e),onRefreshConversations:G},null,8,["chatList","showNewChatModal","currentSessionId","chatType"])],2),e.createElementVNode("view",{class:"chat-wrapper"},[e.createElementVNode("view",{class:"chat-hearder"},[e.createElementVNode("view",{class:"chat-btn-group"},[e.createElementVNode("view",{class:"head-btn",onClick:V},[e.createElementVNode("view",{class:"iconfont icon-caidan"})]),e.createElementVNode("view",{class:"head-btn",onClick:b},[e.createElementVNode("view",{class:"iconfont icon-wenjianjia"})]),e.createElementVNode("view",{class:"head-btn log-out",onClick:C},[e.createElementVNode("view",{class:"iconfont icon-tuichu"})])])]),e.createElementVNode("view",{class:"main-chat"},[e.createElementVNode("scroll-view",{class:"chat-messages",direction:"vertical","scroll-y":"","scroll-into-view":ae.value,onScrolltoupper:ie,"upper-threshold":0,"scroll-with-animation":!0,onScroll:re},[0===f.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(oe.value,((t,a)=>{var n;return e.openBlock(),e.createElementBlock("view",{class:e.normalizeClass(["chat-message",{"message-user":"user"===t.role}]),key:a,id:"msg-"+a},["user"===t.role?(e.openBlock(),e.createElementBlock("view",{key:0,class:e.normalizeClass(["chat-avatar",{"chat-avatar-user":"user"===t.role}])},["user"===t.role&&(null==(n=J.value)?void 0:n.avatar)?(e.openBlock(),e.createElementBlock("image",{key:0,src:J.value.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"iconfont icon-yonghuziliao"}))],2)):e.createCommentVNode("",!0),t.content&&""!==String(t.content).trim()?(e.openBlock(),e.createElementBlock("view",{key:1,class:e.normalizeClass(["chat-content",{"chat-content-user":"user"===t.role}])},[e.createElementVNode("view",{innerHTML:g(t.content)},null,8,["innerHTML"])],2)):e.createCommentVNode("",!0)],10,["id"])})),128)):e.createCommentVNode("",!0),1===f.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(oe.value,((t,a)=>{var n;return e.openBlock(),e.createElementBlock("view",{class:e.normalizeClass(["chat-message",{"message-user":t.sender===W.value}]),key:a,id:"msg-"+a},[e.createElementVNode("view",{class:e.normalizeClass(["chat-avatar",{"chat-avatar-user":t.sender===W.value}])},[t.sender===W.value&&(null==(n=J.value)?void 0:n.avatar)?(e.openBlock(),e.createElementBlock("image",{key:0,src:J.value.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):X(t.sender)?(e.openBlock(),e.createElementBlock("image",{key:1,src:X(t.sender),class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:2,class:"iconfont icon-yonghuziliao"}))],2),t.content&&""!==String(t.content).trim()?(e.openBlock(),e.createElementBlock("view",{key:0,class:e.normalizeClass(["chat-content",{"chat-content-user":t.sender===W.value}])},[e.createElementVNode("view",{innerHTML:g(t.content)},null,8,["innerHTML"])],2)):e.createCommentVNode("",!0)],10,["id"])})),128)):e.createCommentVNode("",!0),2===f.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(oe.value,((t,a)=>{var n;return e.openBlock(),e.createElementBlock("view",{class:e.normalizeClass(["chat-message",{"message-user":t.sender===W.value}]),key:a,id:"msg-"+a},[e.createElementVNode("view",{class:e.normalizeClass(["chat-avatar",{"chat-avatar-user":t.sender===W.value}])},[t.sender===W.value&&(null==(n=J.value)?void 0:n.avatar)?(e.openBlock(),e.createElementBlock("image",{key:0,src:J.value.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):Z.value.length>0&&ee(t.sender)?(e.openBlock(),e.createElementBlock("image",{key:1,src:ee(t.sender),class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:2,class:"iconfont icon-yonghuziliao"}))],2),e.createElementVNode("view",{class:e.normalizeClass(["chat-content",{"chat-content-user":t.sender===W.value}])},[t.message&&""!==String(t.message).trim()?(e.openBlock(),e.createElementBlock("view",{key:0,innerHTML:g(t.message)},null,8,["innerHTML"])):e.createCommentVNode("",!0),t.contentJson?(e.openBlock(),e.createElementBlock("view",{key:1,class:"message-file-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(JSON.parse(t.contentJson),((t,a)=>{return e.openBlock(),e.createElementBlock("view",{key:a,class:"file-item"},[["jpg","jpeg","png","gif","webp","bmp"].includes(t.extendName.toLowerCase())?(e.openBlock(),e.createElementBlock("image",{key:0,src:t.url,mode:"widthFix",class:"message-image",onClick:e=>{return a=t.url,void uni.previewImage({urls:[a]});var a}},null,8,["src","onClick"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"message-file",onClick:e=>{return a=t.url,void uni.downloadFile({url:a,success:e=>{uni.openDocument({filePath:e.tempFilePath,showMenu:!0})}});var a}},[e.createElementVNode("view",{class:"file-icon"},"📄"),e.createElementVNode("view",{class:"file-name"},e.toDisplayString(t.name),1),e.createElementVNode("view",{class:"file-size"},e.toDisplayString((n=t.fileSize,n?n<1?(1024*n).toFixed(0)+"KB":n.toFixed(2)+"MB":"0KB")),1)],8,["onClick"]))]);var n})),128))])):e.createCommentVNode("",!0)],2)],10,["id"])})),128)):e.createCommentVNode("",!0)],40,["scroll-into-view"]),e.createElementVNode("view",{class:"chat-interactive-container"},[e.createElementVNode("view",{class:"chat-interactive-group"},[e.createElementVNode("view",{class:"chat-interactive-btn",onClick:x},"拍照上传"),e.createElementVNode("view",{class:"chat-interactive-btn",onClick:o[5]||(o[5]=e=>(t("log","at pages/Chat/Chat.vue:448","点击了上传文件"),void O.chooseFile({count:5,type:"file",success:e=>{S.value=e.tempFiles,_.value.push(...e.tempFiles),uni.showToast({title:`已选择 ${e.tempFiles.length} 个文件`,icon:"success"})},fail:e=>{t("error","at pages/Chat/Chat.vue:463","选择失败:",e),uni.showToast({title:"选择失败",icon:"error"})}})))},"上传文件")]),_.value.length>0?(e.openBlock(),e.createElementBlock("view",{key:0,class:"image-list"},[e.createElementVNode("view",{class:"image-title"},"已选择: ("+e.toDisplayString(_.value.length)+")",1),e.createElementVNode("view",{class:"image-grid"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,((t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"image-item",key:a},[e.createElementVNode("view",{class:"image-info"},[e.createElementVNode("text",{class:"image-name"},e.toDisplayString(t.name),1),e.createElementVNode("text",{class:"delete-btn",onClick:e.withModifiers((e=>(e=>{uni.showModal({title:"提示",content:"确定要删除这张图片吗?",success:t=>{t.confirm&&(_.value.splice(e,1),uni.showToast({title:"删除成功",icon:"success"}))}})})(a)),["stop"])},"删除",8,["onClick"])])])))),128))])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"chat-input-container"},[e.withDirectives(e.createElementVNode("textarea",{class:"message-input",placeholder:"输入消息...",onConfirm:T,"confirm-type":"send","onUpdate:modelValue":o[6]||(o[6]=e=>F.value=e),"auto-height":""},null,544),[[e.vModelText,F.value]]),e.createElementVNode("view",{class:"input-btn-group"},[e.createElementVNode("view",{class:"iconfont icon-tingzhi icon-btn"})])])])])])])],64)}}},[["__scopeId","data-v-fb45d58d"]]),R=c({__name:"WorkSpace",setup(n){const o=e.ref(""),l=e.ref("工作区"),s=e.ref(!1),c=e.ref([]),i=()=>{s.value&&(c.value=[]),s.value=!s.value},r=e=>{uni.showModal({title:"重命名",content:"请输入新名称",editable:!0,placeholderText:e.name,success:t=>{t.confirm&&t.content&&updateFolderName(e.id,t.content)}})},u=e=>{uni.showToast({title:"移动功能开发中",icon:"none"})},m=e=>{uni.showModal({title:"提示",content:`确定要删除文件夹"${e.name}"吗?`,success:e=>{e.confirm&&t("log","at pages/WorkSpace/WorkSpace.vue:147","确认删除文件夹")}})},v=e.ref(!1),p=()=>{v.value=!v.value},f=e.ref(""),g=e.ref(!1),h=()=>{g.value=!g.value},w=e.ref({root:[{id:1,name:"文档资料",parentId:"root",children:[{id:11,name:"工作文档",parentId:1,children:[]},{id:12,name:"学习笔记",parentId:1,children:[]},{id:13,name:"合同模板",parentId:1,children:[]}]},{id:2,name:"图片素材",parentId:"root",children:[{id:21,name:"风景图片",parentId:2,children:[]},{id:22,name:"人物照片",parentId:2,children:[]},{id:23,name:"UI图标",parentId:2,children:[]}]},{id:3,name:"视频文件",parentId:"root",children:[{id:31,name:"教程视频",parentId:3,children:[]},{id:32,name:"会议录像",parentId:3,children:[]}]},{id:4,name:"项目代码",parentId:"root",children:[{id:41,name:"前端项目",parentId:4,children:[]},{id:42,name:"后端服务",parentId:4,children:[]}]},{id:5,name:"安装包",parentId:"root",children:[]},{id:6,name:"备份文件",parentId:"root",children:[]},{id:7,name:"临时文件",parentId:"root",children:[]},{id:8,name:"个人收藏",parentId:"root",children:[]}]}),k=e.ref([]),y=e.ref([]),E=()=>{y.value=(()=>{const e=k.value.length>0?k.value[k.value.length-1].id:"root";if("root"===e)return w.value.root||[];const t=(e,a)=>{for(const n of e){if(n.id===a)return n;if(n.children&&n.children.length>0){const e=t(n.children,a);if(e)return e}}return null},a=t(w.value.root,e);return a?a.children:[]})()},N=()=>{s.value?c.value.length===y.value.length?c.value=[]:c.value=y.value.map((e=>e.id)):k.value.length>0?(k.value.pop(),0===k.value.length?(l.value="工作区",o.value=null):(l.value=k.value[k.value.length-1].name,o.value=k.value.length>1?k.value[k.value.length-2].name:"工作区"),E(),f.value="",g.value=!1):uni.navigateBack({delta:1,fail(){t("log","at pages/WorkSpace/WorkSpace.vue:363","返回失败,进入兜底跳转"),uni.reLaunch({url:"/pages/Chat/Chat"})}})};return e.onMounted((()=>{E()})),(t,n)=>{const w=a(e.resolveDynamicComponent("uni-icons"),d);return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),e.createElementVNode("view",{class:"workspace-container page-container"},[e.createElementVNode("view",{class:"workspace-header"},[e.createElementVNode("view",{class:"custom-navbar"},[e.createElementVNode("view",{class:"navbar-left",onClick:n[0]||(n[0]=(...e)=>N&&N(...e))},[e.createElementVNode("view",{class:"iconfont icon-fanhui custom-navbar-icon"}),e.createElementVNode("view",{class:"navbar-before-title workspace-text"},e.toDisplayString(s.value?"全选":o.value),1)]),e.createElementVNode("view",{class:"navbar-title workspace-text"},e.toDisplayString(l.value),1),e.createElementVNode("view",{class:"navbar-right"},[s.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"navbar-right-text workspace-text",onClick:n[1]||(n[1]=e=>i())}," 完成")):(e.openBlock(),e.createElementBlock("view",{key:1,class:e.normalizeClass(["iconfont icon-gengduo",v.value?"menu-open":"custom-navbar-icon"]),onClick:p},null,2))]),v.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"menu-card"},[e.createElementVNode("view",{class:"menu-card-item",onClick:n[2]||(n[2]=e=>{i(),p()})},"选择"),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("view",{class:"menu-card-item"},"新建文件夹")])):e.createCommentVNode("",!0)]),e.createElementVNode("view",{class:"search-file-warpper"},[e.createElementVNode("view",{class:"search-file"},[e.createElementVNode("view",{class:"iconfont icon-sousuo"}),e.withDirectives(e.createElementVNode("input",{class:"search-file-input",placeholder:"搜索",onFocus:h,"onUpdate:modelValue":n[3]||(n[3]=e=>f.value=e)},null,544),[[e.vModelText,f.value]])]),g.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"cancel-search",onClick:h},"取消")):e.createCommentVNode("",!0)])]),e.createElementVNode("view",{class:"workspace-content"},[0===y.value.length?(e.openBlock(),e.createElementBlock("view",{key:0,class:"folder-null"},[e.createElementVNode("view",{class:"iconfont icon-wenjianjia"}),e.createTextVNode(" 文件夹为空 ")])):e.createCommentVNode("",!0),y.value.length>0?(e.openBlock(),e.createElementBlock("view",{key:1,class:"folder-grid"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:e.normalizeClass(["folder-item",{"select-folder":c.value.includes(t.id)}]),key:t.id,onClick:e=>s.value?(e=>{const t=c.value.indexOf(e);-1!==t?c.value.splice(t,1):c.value.push(e)})(t.id):(e=>{k.value.push({id:e.id,name:e.name}),l.value=e.name,o.value=k.value.length>1?k.value[k.value.length-2].name:"工作区",E(),f.value="",g.value=!1})(t),onLongpress:e=>(e=>{s.value||uni.showActionSheet({itemList:["重命名","删除","下载","压缩"],success:t=>{switch(t.tapIndex){case 0:r(e);break;case 1:m(e);break;case 2:case 3:u()}}})})(t)},[e.createElementVNode("view",{class:"iconfont icon-a-wenjianjiawenjian folder-item-style"}),e.createElementVNode("view",{class:"folder-name"},e.toDisplayString(t.name),1),s.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:e.normalizeClass(["folder-checkbox",{"select-folder":c.value.includes(t.id)}])},[c.value.includes(t.id)?(e.openBlock(),e.createBlock(w,{key:0,type:"checkmarkempty",color:"#fff"})):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],42,["onClick","onLongpress"])))),128))])):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:e.normalizeClass(["workspace-footer",{"folder-actions":c.value.length>0}])},[e.createElementVNode("view",{class:"iconfont icon-shangchuan"}),e.createElementVNode("view",{class:"iconfont icon-fuzhi"}),e.createElementVNode("view",{class:"iconfont icon-wenjian"}),e.createElementVNode("view",{class:"iconfont icon-del"}),e.createElementVNode("view",{class:"iconfont icon-gengduo"})],2)):e.createCommentVNode("",!0)])],64)}}},[["__scopeId","data-v-ea107472"]]),q=c({__name:"UserProfileModal",setup(n){const o=()=>{uni.navigateBack({url:"/pages/Chat/Chat"})},l=()=>{uni.navigateBack({url:"/pages/Chat/Chat"})},s=e.ref(""),c=e.ref("满满华华"),i=e.ref("08042@hh.com"),r=e.ref(!1),u=e.ref(!1),m=()=>{uni.chooseImage({count:1,sizeType:["compressed"],sourceType:["album","camera"],success:e=>{const t=e.tempFilePaths[0];v(t)},fail:e=>{t("log","at pages/UserProfileModal/UserProfileModal.vue:81","选择图片失败",e)}})},v=e=>{s.value=e};return(t,n)=>{const v=a(e.resolveDynamicComponent("uni-icons"),d);return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),e.createElementVNode("view",{class:"user-profile page-container"},[e.createElementVNode("view",{class:"modal-header"},[e.createElementVNode("view",{class:"modal-left",onClick:o},[e.createElementVNode("view",{class:"iconfont icon-fanhui custom-navbar-icon"})]),e.createElementVNode("view",{class:"modal-title"},[e.createElementVNode("view",{class:"title-text"},"编辑资料")]),e.createElementVNode("view",{class:"modal-right",onClick:l},[e.createElementVNode("view",{class:"save-btn"},"保存")])]),e.createElementVNode("view",{class:"modal-body"},[e.createElementVNode("view",{class:"avatar-upload-section",onClick:m},[e.createElementVNode("view",{class:"avatar-upload-container"},[s.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"avatar-preview"},[e.createElementVNode("image",{src:s.value,mode:"aspectFill"},null,8,["src"])])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"avatar-placeholder"},[e.createVNode(v,{type:"person-filled",size:"100rpx",color:"#ffffff"})]))])]),e.createElementVNode("view",{class:"form-card"},[e.createElementVNode("view",{class:"form-field"},[e.createElementVNode("view",{class:"form-text"},"用户名"),e.withDirectives(e.createElementVNode("input",{"adjust-position":"false",class:e.normalizeClass(["form-field-input form-field-username",{"edit-input-focus":r.value}]),"onUpdate:modelValue":n[0]||(n[0]=e=>c.value=e),onFocus:n[1]||(n[1]=e=>r.value=!0),onBlur:n[2]||(n[2]=e=>r.value=!1)},null,34),[[e.vModelText,c.value]])]),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("view",{class:"form-field"},[e.createElementVNode("view",{class:"form-text"},"邮箱"),e.withDirectives(e.createElementVNode("input",{"adjust-position":"false",class:e.normalizeClass(["form-field-input form-field-emile",{"edit-input-focus":u.value}]),"onUpdate:modelValue":n[3]||(n[3]=e=>i.value=e),onFocus:n[4]||(n[4]=e=>u.value=!0),onBlur:n[5]||(n[5]=e=>u.value=!1)},null,34),[[e.vModelText,i.value]])])]),e.createElementVNode("view",{class:"prompt-content"},"*保存后再返回哟")])])],64)}}},[["__scopeId","data-v-d1eea957"]]),W=c({__name:"ContactPages",setup(n){const o=A(),c=()=>{uni.navigateBack({delta:1,fail(){uni.reLaunch({url:"/pages/Chat/Chat"})}})},i=(e,t="")=>{uni.setStorageSync("chatType",e),t&&uni.setStorageSync("currentSessionId",t),uni.reLaunch({url:"/pages/Chat/Chat"})},r=e.ref(0),m=e.reactive([{name:"contacts",label:"通讯录",icon:"📞"},{name:"createGroup",label:"新建群聊",icon:"👥"},{name:"addFriend",label:"添加好友",icon:"➕"},{name:"videoCall",label:"视频会议",icon:"📹"},{name:"friendRequest",label:"好友申请",icon:"📨"}]),v=e=>{r.value=e.detail.current},p=e.ref(""),f=e.ref(""),g="宇恒一号",h=e.ref([]),w=async e=>{if(!(null==e?void 0:e.length))return[];try{const t=e.map((e=>e.receiver)),a=await s(p.value,t),n=new Map(a.map((e=>[e.user_id,e]))||[]);return e.map((e=>{const t=n.get(e.receiver);return{...e,avatar:(null==t?void 0:t.avatar)||null}}))}catch(a){return t("error","at pages/ContactPages/ContactPages.vue:460","获取好友头像失败",a),e}};e.onMounted((async()=>{await(async()=>{try{t("log","at pages/ContactPages/ContactPages.vue:425","开始获取好友列表"),p.value=u();const e=await l(p.value);f.value=e._id,t("log","at pages/ContactPages/ContactPages.vue:429","UserId.value:",f.value);const a=await D(f.value);t("log","at pages/ContactPages/ContactPages.vue:431","friendList:",a),a&&a.length?h.value=await w(a):(h.value=[],t("log","at pages/ContactPages/ContactPages.vue:436","好友列表为空"))}catch(e){t("error","at pages/ContactPages/ContactPages.vue:439","获取好友列表失败:",e),h.value=[]}})(),await y(),o.isConnected||(p.value&&f.value?o.connect({token:p.value,UserId:f.value}):t("warn","at pages/ContactPages/ContactPages.vue:324","Token或UserId未准备好"))}));const k=e.ref([]),y=async()=>{try{t("log","at pages/ContactPages/ContactPages.vue:476","开始获取群聊列表"),p.value=u();const e=await l(p.value);f.value=e._id,t("log","at pages/ContactPages/ContactPages.vue:480","UserId.value:",f.value),k.value=await L(f.value)}catch(e){t("error","at pages/ContactPages/ContactPages.vue:483","获取群聊列表失败:",e),k.value=[]}},E=e.ref(""),N=e.ref(),V=async()=>{try{if(!E.value)return void uni.showToast({title:"群名称不能为空",icon:"none"});if(0===C.value.length)return void uni.showToast({title:"请选择群成员",icon:"none"});await new Promise(((e,a)=>{if(o.isConnected)return void e();if(!p.value||!f.value)return void a(new Error("Token或UserId未准备好"));t("log","at pages/ContactPages/ContactPages.vue:504","friendSocket 未连接,正在建立连接..."),o.connect({token:p.value,UserId:f.value});const n=setInterval((()=>{o.isConnected&&(clearInterval(n),t("log","at pages/ContactPages/ContactPages.vue:513","friendSocket 连接已建立"),e())}),100);setTimeout((()=>{clearInterval(n),o.isConnected||a(new Error("连接超时"))}),1e4)})),N.value={version:"1.1",body:{command:3,userIds:memberIds,message:"我来邀请你们了",sender:f.value,callBackMessage:!0,groupName:E.value,teamCreateReq:{access_token:p.value}}};await o.send(N.value)?await b():t("log","at pages/ContactPages/ContactPages.vue:567","发送新建群聊消息失败")}catch(e){uni.showToast({title:`新建群聊失败${e}`,icon:"error"})}},b=()=>new Promise(((a,n)=>{const l=setTimeout((()=>{n(new Error("超时未返回群聊创建结果"))}),18e4),s=e.watch((()=>o.command),(async e=>{if(t("log","at pages/ContactPages/ContactPages.vue:588","创建一个一次性监听器"),e&&3===o.command){t("log","at pages/ContactPages/ContactPages.vue:590","监听到command的值是3,检查群聊是否创建成功",o.command);try{const e=k.value.find((e=>e.id===o.groupId));e?t("log","at pages/ContactPages/ContactPages.vue:596","✅ 新建群聊成功",e):t("log","at pages/ContactPages/ContactPages.vue:598","❌ 新建群聊失败 / 群组不存在")}catch(a){t("error","at pages/ContactPages/ContactPages.vue:602","保存AI回复失败:",a),n(a)}finally{o.command=null,o.groupId=null,s(),clearTimeout(l)}}}))})),C=e.ref([]),_=e.ref(!1),x=e.ref(""),S=e.ref([]),B=()=>{if(!x.value.trim())return void(S.value=[]);const e=x.value.toLowerCase().trim(),t=U.value.filter((t=>t.nickname.toLowerCase().includes(e)||t.username.toLowerCase().includes(e)||t.email.toLowerCase().includes(e)));S.value=t},T=()=>{_.value=!_.value},I=e.ref(null),M=e=>{const a=U.value.find((t=>t.id===e));a?I.value={...a}:(t("warn","at pages/ContactPages/ContactPages.vue:670","未找到该好友"),I.value=null)},P=()=>{I.value=null,O.value=!1},z=e.ref(!1),j=e.ref(!1),$=()=>{z.value=!z.value},F=()=>{j.value=!j.value},O=e.ref(!1),U=e.ref([{id:1,nickname:"张三",username:"zhangsan",email:"zhangsan@example.com",avatar:"👤"},{id:2,nickname:"李四",username:"lisi",email:"lisi@example.com",avatar:"👥"},{id:3,nickname:"王小明",username:"wangxm",email:"wang@example.com",avatar:"👪"},{id:4,nickname:"赵磊",username:"zhaolei",email:"zhao@example.com",avatar:"🗣️"},{id:5,nickname:"张三2",username:"zhangsan",email:"zhangsan@example.com",avatar:"👤"},{id:6,nickname:"李四2",username:"lisi",email:"lisi@example.com",avatar:"👥"},{id:7,nickname:"王小明2",username:"wangxm",email:"wang@example.com",avatar:"👪"},{id:8,nickname:"赵磊2",username:"zhaolei",email:"zhao@example.com",avatar:"🗣️"}]);return(n,o)=>{const l=a(e.resolveDynamicComponent("uni-icons"),d);return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),I.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"popup-overlay"},[e.createElementVNode("view",{class:"popup-card"},[e.createElementVNode("view",{class:"close-popup-card",onClick:P},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},e.toDisplayString(O.value?"通过好友申请":"申请添加朋友"),1),e.createElementVNode("view",{class:"friend-card"},[e.createElementVNode("view",{class:"friend-card-left"},[e.createElementVNode("view",{class:"friend-avatar"},e.toDisplayString(I.value.avatar),1)]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(I.value.username),1),e.createElementVNode("view",{class:"friend-label"},e.toDisplayString(I.value.sessionId),1)])]),e.createElementVNode("view",{class:"nickname-wrapper"},[e.createElementVNode("view",null,"好友备注"),e.createElementVNode("input",{class:"input-nickname",placeholder:"请输入好友名称"})]),e.createElementVNode("view",{class:"text-btn confirm-btn"},e.toDisplayString(O.value?"确认通过":"发送申请"),1)])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"tabbar-page page-container"},[e.createElementVNode("swiper",{class:"content-swiper",current:r.value,duration:300,onChange:v},[e.createElementVNode("swiper-item",{class:"content-swiper-item"},[e.createElementVNode("view",{class:"tabpage-containner"},[e.createElementVNode("view",{class:"tabpage-header"},[e.createElementVNode("view",{class:"iconfont icon-fanhui",onClick:c}),e.createElementVNode("view",{class:"tabpage-title"},"通讯录")]),e.createElementVNode("view",{class:"tabpage-body"},[e.createElementVNode("scroll-view",{class:"group-member",direction:"vertical","scroll-y":"true"},[e.createElementVNode("view",{class:"friend-list"},[e.createElementVNode("view",{class:"friend-card",onClick:o[0]||(o[0]=e=>i(0))},[e.createElementVNode("view",{class:"friend-card-left"},[e.createElementVNode("view",{class:"friend-avatar",style:{"background-color":"#38bdf8"}},[e.createElementVNode("view",{class:"iconfont icon-Robot",style:{"font-size":"80rpx",color:"#fff"}})])]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(g),1),e.createElementVNode("view",{class:"friend-label"})]),e.createElementVNode("view",{class:"friend-card-right"},[e.createVNode(l,{type:"right"})])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"friend-card",key:t.sessionId,onClick:e=>i(t.type,t.sessionId)},[e.createElementVNode("view",{class:"friend-card-left"},[t.avatar?(e.openBlock(),e.createElementBlock("image",{key:0,src:t.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"friend-avatar"},[e.createVNode(l,{type:"person-filled",size:"100rpx",color:"#ffffff"})]))]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(t.friendNickName),1),e.createElementVNode("view",{class:"friend-label"},e.toDisplayString(t.sessionId),1)]),e.createElementVNode("view",{class:"friend-card-right"},[e.createVNode(l,{type:"right"})])],8,["onClick"])))),128)),e.createElementVNode("view",null,"群聊"),e.createElementVNode("view",{class:"solid-line"}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"friend-card",key:t.id,onClick:e=>i(t.type,t.id)},[e.createElementVNode("view",{class:"friend-card-left"},[e.createElementVNode("view",{class:"friend-avatar",style:{"background-color":"#ffaaff"}},[e.createElementVNode("view",{class:"iconfont icon-qunliao",style:{"font-size":"80rpx",color:"#fff"}})])]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(t.name),1),e.createElementVNode("view",{class:"friend-label"},e.toDisplayString(t.createTime),1)]),e.createElementVNode("view",{class:"friend-card-right"},[e.createVNode(l,{type:"right"})])],8,["onClick"])))),128))])])])])]),e.createElementVNode("swiper-item",{class:"content-swiper-item"},[e.createElementVNode("view",{class:"tabpage-containner"},[e.createElementVNode("view",{class:"tabpage-header"},[e.createElementVNode("view",{class:"iconfont icon-fanhui",onClick:c}),e.createElementVNode("view",{class:"tabpage-title"},"新建群聊")]),e.createElementVNode("view",{class:"tabpage-body"},[e.createElementVNode("view",{class:"group-info"},[e.createElementVNode("view",{class:"group-name"},[e.createElementVNode("view",null,"群名称"),e.withDirectives(e.createElementVNode("input",{class:"input",placeholder:"请输入群名称","onUpdate:modelValue":o[1]||(o[1]=e=>E.value=e)},null,512),[[e.vModelText,E.value]])]),e.createElementVNode("view",{class:"group-member-wrapper"},[e.createElementVNode("view",{class:"member-title"},"群成员"),e.createElementVNode("view",{class:"group-ismember-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C.value,((t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"group-ismember-info",key:a},[e.createElementVNode("view",{class:"group-ismember-name"},e.toDisplayString(t.friendNickName),1)])))),128))])]),e.createElementVNode("view",{class:"create-group-btn",onClick:V},"创建群聊")]),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("scroll-view",{class:"group-member",direction:"vertical","scroll-y":"true"},[e.createElementVNode("view",{class:"friend-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(a=>{var n;return e.openBlock(),e.createElementBlock("view",{class:"friend-card",key:a.receiver},[e.createElementVNode("view",{class:"friend-card-left"},[a.avatar?(e.openBlock(),e.createElementBlock("image",{key:0,src:a.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"friend-avatar"},[e.createVNode(l,{type:"person-filled",size:"100rpx",color:"#ffffff"})]))]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(a.friendNickName),1),e.createElementVNode("view",{class:"friend-label"},e.toDisplayString(a.email),1)]),e.createElementVNode("view",{class:"friend-card-right",onClick:e=>(e=>{t("log","at pages/ContactPages/ContactPages.vue:623","选择的好友id:",e),t("log","at pages/ContactPages/ContactPages.vue:624","selectGroupMember.value=",JSON.stringify(C.value));const a=C.value.findIndex((t=>t.id===e));if(-1===a){const t=h.value.find((t=>t.receiver===e));t&&C.value.push({id:t.receiver,friendNickName:t.friendNickName})}else C.value.splice(a,1)})(a.receiver)},[e.createElementVNode("view",{class:"friend-checkbox"},[(null==(n=C.value)?void 0:n.find((e=>e.id===a.receiver)))?(e.openBlock(),e.createBlock(l,{key:0,type:"checkmarkempty"})):e.createCommentVNode("",!0)])],8,["onClick"])])})),128))])])])])]),e.createElementVNode("swiper-item",{class:"content-swiper-item"},[e.createElementVNode("view",{class:"tabpage-containner"},[e.createElementVNode("view",{class:"tabpage-header"},[e.createElementVNode("view",{class:"iconfont icon-fanhui",onClick:c}),e.createElementVNode("view",{class:"tabpage-title"},"添加好友")]),e.createElementVNode("view",{class:"tabpage-body"},[e.createElementVNode("view",{class:"search-warpper"},[e.withDirectives(e.createElementVNode("input",{class:e.normalizeClass(["search-file-input",{active:_.value}]),onFocus:T,onBlur:T,"onUpdate:modelValue":o[2]||(o[2]=e=>x.value=e)},null,34),[[e.vModelText,x.value]]),e.createElementVNode("view",{class:"iconfont icon-sousuo",onClick:B})]),x.value?S.value.length?(e.openBlock(),e.createElementBlock("view",{key:1,class:"search-result"},[e.createElementVNode("scroll-view",{class:"group-member",direction:"vertical","scroll-y":"true"},[e.createElementVNode("view",{class:"friend-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"friend-card",key:t.id},[e.createElementVNode("view",{class:"friend-card-left"},[e.createElementVNode("view",{class:"friend-avatar"},e.toDisplayString(t.avatar),1)]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(t.nickname),1),e.createElementVNode("view",{class:"friend-label"},e.toDisplayString(t.email),1)]),e.createElementVNode("view",{class:"friend-card-right",onClick:e=>M(t.id)},[e.createElementVNode("view",{class:"add-btn text-btn"},"添加")],8,["onClick"])])))),128))])])])):(e.openBlock(),e.createElementBlock("view",{key:2,class:"no-result"},"未找到相关用户,请尝试其他关键词")):(e.openBlock(),e.createElementBlock("view",{key:0,class:"search-tip"},"请输入用户名或邮箱进行搜索"))])])]),e.createElementVNode("swiper-item",{class:"content-swiper-item"},[e.createElementVNode("view",{class:"tabpage-containner"},[e.createElementVNode("view",{class:"tabpage-header"},[e.createElementVNode("view",{class:"iconfont icon-fanhui",onClick:c}),e.createElementVNode("view",{class:"tabpage-title"},"视频会议")]),e.createElementVNode("view",{class:"tabpage-body"},[e.createElementVNode("view",{class:"join-meeting-wrapper"},[e.createElementVNode("view",null,"加入会议"),e.createElementVNode("input",{class:"input-meeting",placeholder:"请输入会议号"}),e.createElementVNode("view",{class:"meeting-btn text-btn"},"加入会议")]),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("view",{class:"create-meeting-wrapper"},[e.createElementVNode("view",null,"创建会议"),e.createElementVNode("view",{class:"meeting-field"},[e.createElementVNode("view",{class:"meeting-label"},"会议主题"),e.createElementVNode("input",{class:"input-meeting",placeholder:"例如:XXX"})]),e.createElementVNode("view",{class:"meeting-field"},[e.createElementVNode("view",{class:"meeting-label"},"会议密码"),e.createElementVNode("input",{class:"input-meeting",placeholder:"留空则无密码"})]),e.createElementVNode("view",{class:"meeting-field"},[e.createElementVNode("view",{class:"meeting-label"},"邀请好友"),e.createElementVNode("view",{class:"friend-card"},[e.createElementVNode("view",{class:"friend-card-left"},[e.createElementVNode("view",{class:"friend-avatar"},"avatar")]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},"friend.nickname"),e.createElementVNode("view",{class:"friend-label"},"friend.email")]),e.createElementVNode("view",{class:"friend-card-right",onClick:o[3]||(o[3]=e=>M(n.friend.id))},[e.createElementVNode("view",{class:"add-btn text-btn"},"添加")])])]),e.createElementVNode("view",{class:"meeting-toggles"},[e.createElementVNode("view",{class:"meeting-toggles-item"},[e.createElementVNode("view",{class:"meeting-toggles-icon icon-btn"},[e.createVNode(l,{type:"mic-filled"}),e.createTextVNode("开启麦克风入会 ")]),e.createElementVNode("view",{class:"meeting-toggles-switch",onClick:$},[e.createElementVNode("view",{class:e.normalizeClass(["switch-box",{active:z.value}])},[e.createElementVNode("view",{class:"switch-track"})],2)])]),e.createElementVNode("view",{class:"meeting-toggles-item"},[e.createElementVNode("view",{class:"meeting-toggles-icon icon-btn"},[e.createVNode(l,{type:"eye-filled"}),e.createTextVNode("开启摄像头入会 ")]),e.createElementVNode("view",{class:"meeting-toggles-switch",onClick:F},[e.createElementVNode("view",{class:e.normalizeClass(["switch-box",{active:j.value}])},[e.createElementVNode("view",{class:"switch-track"})],2)])])]),e.createElementVNode("view",{class:"meeting-btn text-btn"},"加入会议")])])])]),e.createElementVNode("swiper-item",{class:"content-swiper-item"},[e.createElementVNode("view",{class:"tabpage-containner"},[e.createElementVNode("view",{class:"tabpage-header"},[e.createElementVNode("view",{class:"iconfont icon-fanhui",onClick:c}),e.createElementVNode("view",{class:"tabpage-title"},"好友申请")]),e.createElementVNode("view",{class:"tabpage-body"},[e.createElementVNode("scroll-view",{class:"group-member",direction:"vertical","scroll-y":"true"},[e.createElementVNode("view",{class:"friend-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(U.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"friend-card",key:t.id},[e.createElementVNode("view",{class:"friend-card-left"},[e.createElementVNode("view",{class:"friend-avatar"},e.toDisplayString(t.avatar),1)]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(t.nickname),1),e.createElementVNode("view",{class:"friend-label"},e.toDisplayString(t.email),1)]),e.createElementVNode("view",{class:"friend-card-right"},[e.createElementVNode("view",{class:"friend-option"},[e.createElementVNode("view",{class:"refuse-btn text-btn",onClick:e=>{}},"拒绝",8,["onClick"]),e.createElementVNode("view",{class:"agree-btn text-btn",onClick:e=>(e=>{O.value=!0,I.value={...e}})(t)},"同意",8,["onClick"])])])])))),128))])])])])])],40,["current"]),e.createElementVNode("view",{class:"bottom-tabbar"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m,((t,a)=>(e.openBlock(),e.createElementBlock("view",{key:t.name,onClick:e=>(e=>{r.value=e})(a),class:"tab-item"},[e.createElementVNode("view",{class:"tab-icon"},e.toDisplayString(t.icon),1),e.createElementVNode("view",{class:"tab-label"},e.toDisplayString(t.label),1)],8,["onClick"])))),128))])])],64)}}},[["__scopeId","data-v-35441fc3"]]),H=c({__name:"TemplateSpace",setup(a){const n=e=>{if(!e)return"";const t=Math.floor(e),a=new Date(1e3*t);return`${a.getFullYear()}-${(a.getMonth()+1).toString().padStart(2,"0")}-${a.getDate().toString().padStart(2,"0")} ${a.getHours().toString().padStart(2,"0")}:${a.getMinutes().toString().padStart(2,"0")}:${a.getSeconds().toString().padStart(2,"0")}`},o=e=>{if(!e||0===e)return"0 B";const t=["B","KB","MB","GB","TB"];let a=e,n=0;for(;a>=1024&&n{t("log","at pages/WorkSpace/TemplateSpace/TemplateSpace.vue:188","点击了编辑模板")},c=e.ref(""),i=e.ref([]),r=e=>{c.value=e,"all"===e&&(u.value="全部模板",i.value=y.value),"like"===e&&(u.value="收藏模板",i.value=y.value.filter((e=>!0===e.is_favorite)))},d=e.ref(""),u=e.ref("模板区"),m=e.ref(!1),v=e.ref([]),p=()=>{m.value&&(v.value=[]),m.value=!m.value},f=e.ref(!1),g=()=>{f.value=!f.value},h=e.ref(""),w=e.ref(!1),k=()=>{w.value=!w.value},y=e.ref([{name:"SKILL.md",type:"file",path:"SKILL.md",children:[],file_count:0,directory_count:0,size:4768,modified_time:1776827361.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"khgvshbbthvgbihepiubjhrviifdhiuhrviuehrviuawhiuvrhy"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"khgvshbbthvgbihepiubjhiuvrhy"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"该回家看了的法国红酒看来法帝国海军快来尝尝v吧给v复仇计划曝光vi计划日方提供与i哦的风格和健康"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"的法国红酒看来法帝国海军快来尝尝v吧给"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:""},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"khgvshbbthvgbihepiubjhrviifdhiuhrviuehrviuawhiuvrhy"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"khgvshbbthvgbihepiubjhrviifdhiuhrviuehrviuawhiuvrhy"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"khgvshbbthvgbihepiubjhrviifdhiuhrviuehrviuawhiuvrhy"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"khgvshbbthvgbihepiubjhrviifdhiuhrviuehrviuawhiuvrhy"}]),E=()=>{m.value?v.value.length===i.value.length?v.value=[]:v.value=i.value.map((e=>e.id)):(!m.value&&i.value&&(i.value=[],c.value="",u.value="模板区"),m.value||i.value||uni.navigateBack({delta:1,fail(){t("log","at pages/WorkSpace/TemplateSpace/TemplateSpace.vue:468","返回失败,进入兜底跳转"),uni.reLaunch({url:"/pages/Chat/Chat"})}}))};return(t,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),e.createElementVNode("view",{class:"popup-overlay"},[e.createElementVNode("view",{class:"popup-card"},[e.createElementVNode("view",{class:"close-popup-card"},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},"编辑模板"),e.createElementVNode("view",{class:"edit-template-wrapper"},[e.createElementVNode("view",{class:"edit-template-name"},[e.createElementVNode("view",null,"模板名称"),e.withDirectives(e.createElementVNode("input",{"placeholder-style":"请输入模板名称","onUpdate:modelValue":a[0]||(a[0]=e=>l.value=e)},null,512),[[e.vModelText,l.value]])]),e.createElementVNode("view",{class:"edit-template-name"},[e.createElementVNode("view",null,"模板内容"),e.createElementVNode("view",{class:"markdown-editor-pane"},[e.createElementVNode("view",{class:"markdown-pane-header"}," 编辑 "),e.createElementVNode("textarea")]),e.createElementVNode("view",{class:"markdown-preview-pane"},[e.createElementVNode("view",{class:"markdown-pane-header"}," 预览 "),e.createElementVNode("view")])])])])]),e.createElementVNode("view",{class:"workspace-container page-container"},[e.createElementVNode("view",{class:"workspace-header"},[e.createElementVNode("view",{class:"custom-navbar"},[e.createElementVNode("view",{class:"navbar-left",onClick:a[1]||(a[1]=(...e)=>E&&E(...e))},[e.createElementVNode("view",{class:"iconfont icon-fanhui custom-navbar-icon"}),e.createElementVNode("view",{class:"navbar-before-title workspace-text"},e.toDisplayString(m.value?"全选":d.value),1)]),e.createElementVNode("view",{class:"navbar-title workspace-text"},e.toDisplayString(u.value),1),c.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"navbar-right"},[m.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"navbar-right-text workspace-text",onClick:a[2]||(a[2]=e=>p())}," 完成")):(e.openBlock(),e.createElementBlock("view",{key:1,class:e.normalizeClass(["iconfont icon-gengduo",f.value?"menu-open":"custom-navbar-icon"]),onClick:g},null,2))])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"menu-card"},[e.createElementVNode("view",{class:"menu-card-item",onClick:a[3]||(a[3]=e=>{p(),g()})},"选择"),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("view",{class:"menu-card-item"},"新建模板"),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("view",{class:"menu-card-item"},"上传模板")])):e.createCommentVNode("",!0)]),e.createElementVNode("view",{class:"search-file-warpper"},[e.createElementVNode("view",{class:"search-file"},[e.createElementVNode("view",{class:"iconfont icon-sousuo"}),e.withDirectives(e.createElementVNode("input",{class:"search-file-input",placeholder:"搜索",onFocus:k,"onUpdate:modelValue":a[4]||(a[4]=e=>h.value=e)},null,544),[[e.vModelText,h.value]])]),w.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"cancel-search",onClick:k},"取消")):e.createCommentVNode("",!0)])]),c.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("view",{key:0,class:"folder-grid"},[e.createElementVNode("view",{class:"folder-item",onClick:a[5]||(a[5]=e=>r("all"))},[e.createElementVNode("view",{class:"iconfont icon-a-wenjianjiawenjian folder-item-style"}),e.createElementVNode("view",{class:"folder-name"},"全部模板")]),e.createElementVNode("view",{class:"folder-item",onClick:a[6]||(a[6]=e=>r("like"))},[e.createElementVNode("view",{class:"iconfont icon-a-wenjianjiawenjian folder-item-style"}),e.createElementVNode("view",{class:"folder-name"},"收藏模板")])])),c.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"workspace-content"},[0===i.value.length?(e.openBlock(),e.createElementBlock("view",{key:0,class:"folder-null"},[e.createElementVNode("view",{class:"iconfont icon-wenjianjia"}),e.createTextVNode(" 暂无模板 ")])):e.createCommentVNode("",!0),i.value.length>0?(e.openBlock(),e.createElementBlock("view",{key:1,class:"template-grid"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,((t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"template-card",key:a},[e.createElementVNode("view",{class:"template-name"},e.toDisplayString(t.name),1),e.createElementVNode("view",{class:"template-content"},[e.createElementVNode("view",{class:"template-content-text"},e.toDisplayString(t.content),1)]),e.createElementVNode("view",{class:"template-info-wrapper"},[e.createElementVNode("view",{class:"template-item"},[e.createElementVNode("view",{class:"template-time background-style"},e.toDisplayString(n(t.modified_time)),1),e.createElementVNode("view",{class:"template-cache background-style"},e.toDisplayString(o(t.size)),1)]),e.createElementVNode("view",{class:"template-option"},[e.createElementVNode("view",{class:e.normalizeClass(["iconfont",t.is_favorite?"icon-favorite-fill":"icon-favorite"]),onClick:e=>(e=>{let t;"all"===c.value?t=y.value[e]:"like"===c.value&&(t=y.value.filter((e=>e.is_favorite))[e]);t&&(t.is_favorite=!t.is_favorite),"all"===c.value?i.value=[...y.value]:i.value=y.value.filter((e=>e.is_favorite))})(a)},null,10,["onClick"]),e.createElementVNode("view",{class:"iconfont icon-edit-fill",onClick:s}),e.createElementVNode("view",{class:"iconfont icon-choose-fill"})])])])))),128))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("view",{key:2,class:e.normalizeClass(["workspace-footer",{"folder-actions":v.value.length>0}])},[e.createElementVNode("view",{class:"iconfont icon-shangchuan"}),e.createElementVNode("view",{class:"iconfont icon-fuzhi"}),e.createElementVNode("view",{class:"iconfont icon-wenjian"}),e.createElementVNode("view",{class:"iconfont icon-del"}),e.createElementVNode("view",{class:"iconfont icon-gengduo"})],2)):e.createCommentVNode("",!0)])],64))}},[["__scopeId","data-v-2acd55d4"]]),J={__name:"text",setup(t){const a=e.ref("");return e.onMounted((()=>{a.value='\n明白了!您希望在我的回复中直接嵌入可编辑的表单卡片。让我试试:\n\n---\n\n
    \n

    \n✏️ 直接在下方编辑任务\n

    \n\n
    \n
    \n\n\n
    \n\n
    \n\n\n
    \n\n
    \n
    \n\n\n
    \n
    \n\n\n
    \n
    \n\n
    \n\n\n
    \n\n
    \n\n
    \n\n\n\n
    \n
    \n\n
    \n\n
    \n\n\n\n\n
    \n
    \n\n
    \n\n\n
    \n
    \n
    \n\n\n\n---\n\n**✅ 您现在可以直接在上方的卡片中填写任务信息,点击"添加任务"即可!**\n\n填写完成后告诉我"已填好"或"添加",我会帮您确认是否成功!\n'})),(t,n)=>{return e.openBlock(),e.createElementBlock("view",null,[e.createElementVNode("view",{innerHTML:(o=a.value,o.replace(/<\/?script>/gi,(e=>{let t="";for(let a=0;a{const e=n.connectionStatus;return{"status-connected":"connected"===e,"status-connecting":"connecting"===e,"status-error":"error"===e,"status-disconnected":"disconnected"===e}})),i=()=>{o.value.token?n.connect({token:o.value.token,conversationId:m()}):uni.showToast({title:"请输入Token",icon:"none"})},r=()=>{n.disconnect()},d=async()=>{try{await n.sendPing()}catch(e){uni.showToast({title:"发送失败",icon:"none"})}},p=async()=>{if(l.value.trim())try{const e={ws_event:"message",data:{task_call_id:v(),result:{tools:[]}}};await n.send(e),l.value=""}catch(e){uni.showToast({title:"发送失败",icon:"none"})}},f=()=>{if(l.value.trim())try{const e=JSON.parse(l.value);l.value=JSON.stringify(e,null,2)}catch{uni.showToast({title:"不是有效的JSON",icon:"none"})}},g=()=>{};return e.watch((()=>n.isDisconnected),(e=>{e&&n.messageString&&t("log","at pages/text/text2.vue:253",n.messageString)})),e.onMounted((()=>{n.addLog("info","=== Socket测试页面 ==="),n.addLog("info","页面已加载"),n.isConnected&&n.addLog("info","当前已处于连接状态")})),e.onUnmounted((()=>{n.addLog("info","页面卸载")})),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"container"},[e.createElementVNode("view",{class:"status-card"},[e.createElementVNode("text",{class:"status-label"},"连接状态"),e.createElementVNode("view",{class:e.normalizeClass(["status-value",c.value])},[e.createElementVNode("text",null,e.toDisplayString(e.unref(n).getStatusText()),1)],2),e.unref(n).reconnectAttempts>0?(e.openBlock(),e.createElementBlock("view",{key:0,class:"status-info"},[e.createElementVNode("text",{class:"reconnect-info"},"重连次数: "+e.toDisplayString(e.unref(n).reconnectAttempts),1)])):e.createCommentVNode("",!0)]),e.createElementVNode("view",{class:"config-card"},[e.createElementVNode("text",{class:"section-title"},"连接配置"),e.createElementVNode("view",{class:"input-group"},[e.createElementVNode("text",{class:"input-label"},"Token"),e.withDirectives(e.createElementVNode("input",{class:"input-field","onUpdate:modelValue":a[0]||(a[0]=e=>o.value.token=e),placeholder:"请输入Token"},null,512),[[e.vModelText,o.value.token]])]),e.createElementVNode("view",{class:"input-group"},[e.createElementVNode("text",{class:"input-label"},"Conversation ID"),e.withDirectives(e.createElementVNode("input",{class:"input-field","onUpdate:modelValue":a[1]||(a[1]=e=>o.value.conversationId=e),placeholder:"请输入会话ID(可选)"},null,512),[[e.vModelText,o.value.conversationId]])])]),e.createElementVNode("view",{class:"control-card"},[e.createElementVNode("button",{class:"btn btn-primary",disabled:e.unref(n).isConnected||e.unref(n).isConnecting,onClick:i},e.toDisplayString(e.unref(n).isConnecting?"连接中...":"连接"),9,["disabled"]),e.createElementVNode("button",{class:"btn btn-danger",disabled:!e.unref(n).isConnected,onClick:r}," 断开 ",8,["disabled"]),e.createElementVNode("button",{class:"btn btn-secondary",onClick:d,disabled:!e.unref(n).isConnected}," Ping ",8,["disabled"])]),e.createElementVNode("view",{class:"send-card"},[e.createElementVNode("text",{class:"section-title"},"发送消息"),e.createElementVNode("view",{class:"send-input-wrapper"},[e.withDirectives(e.createElementVNode("textarea",{class:"send-input","onUpdate:modelValue":a[2]||(a[2]=e=>l.value=e),placeholder:"输入要发送的消息(JSON格式)",disabled:!e.unref(n).isConnected},null,8,["disabled"]),[[e.vModelText,l.value]]),e.createElementVNode("view",{class:"send-buttons"},[e.createElementVNode("button",{class:"btn btn-primary btn-small",disabled:!e.unref(n).isConnected||!l.value.trim(),onClick:p}," 发送 ",8,["disabled"]),e.createElementVNode("button",{class:"btn btn-outline btn-small",disabled:!l.value.trim(),onClick:f}," 格式化 ",8,["disabled"])])]),e.createElementVNode("view",{class:"quick-messages"},[e.createElementVNode("text",{class:"quick-label"},"快捷消息:"),e.createElementVNode("view",{class:"quick-btns"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(t=>(e.openBlock(),e.createElementBlock("button",{key:t.label,class:"quick-btn",disabled:!e.unref(n).isConnected,onClick:e=>(async e=>{const t={ws_event:"message",data:{task_call_id:v(),token:u(),conversation_id:m()}};try{await n.send(t)}catch(a){uni.showToast({title:"发送失败",icon:"none"})}})(t.data)},e.toDisplayString(t.label),9,["disabled","onClick"])))),128))])])]),e.createElementVNode("view",{class:"log-card"},[e.createElementVNode("view",{class:"log-header"},[e.createElementVNode("view",{class:"log-title-wrapper"},[e.createElementVNode("text",{class:"section-title"},"日志"),e.createElementVNode("text",{class:"log-count"},"("+e.toDisplayString(e.unref(n).logs.length)+")",1)]),e.createElementVNode("view",{class:"log-actions"},[e.createElementVNode("button",{class:"btn btn-small btn-secondary",onClick:a[3]||(a[3]=(...t)=>e.unref(n).clearLogs&&e.unref(n).clearLogs(...t))},"清空")])]),e.createElementVNode("scroll-view",{class:"log-list","scroll-y":"",onScrolltoupper:g},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n).logs,((t,a)=>(e.openBlock(),e.createElementBlock("view",{key:a,class:e.normalizeClass(["log-item","log-"+t.type])},[e.createElementVNode("text",{class:"log-time"},e.toDisplayString(t.time),1),e.createElementVNode("text",{class:"log-content"},e.toDisplayString(t.content),1)],2)))),128))],32)])]))}},[["__scopeId","data-v-939e1d1d"]]);__definePage("pages/Login/Login",i),__definePage("pages/Chat/Chat",U),__definePage("pages/WorkSpace/WorkSpace",R),__definePage("pages/UserProfileModal/UserProfileModal",q),__definePage("pages/ContactPages/ContactPages",W),__definePage("pages/WorkSpace/TemplateSpace/TemplateSpace",H),__definePage("pages/text/text",J),__definePage("pages/text/text2",G);const K={onLaunch:function(){t("log","at App.vue:4","App Launch")},onShow:function(){t("log","at App.vue:7","App Show")},onHide:function(){t("log","at App.vue:10","App Hide")}};const{app:X,Vuex:Y,Pinia:Q}=function(){const t=e.createVueApp(K),a=function(){const t=e.effectScope(!0),a=t.run((()=>e.ref({})));let n=[],o=[];const l=e.markRaw({install(e){y(l),l._a=e,e.provide(E,l),e.config.globalProperties.$pinia=l,o.forEach((e=>n.push(e))),o=[]},use(e){return this._a?n.push(e):o.push(e),this},_p:n,_a:null,_e:t,_s:new Map,state:a});return l}();return t.use(a),{app:t,pinia:a}}();uni.Vuex=Y,uni.Pinia=Q,X.provide("__globalStyles",__uniConfig.styles),X._component.mpType="app",X._component.render=()=>{},X.mount("#app")}(Vue); +let S;const x=e=>S=e,T=Symbol();function D(e){return e&&"object"==typeof e&&"[object Object]"===Object.prototype.toString.call(e)&&"function"!=typeof e.toJSON}var j,P;(P=j||(j={})).direct="direct",P.patchObject="patch object",P.patchFunction="patch function";const $=()=>{};function L(t,a,n,o=$){t.push(a);const l=()=>{const e=t.indexOf(a);e>-1&&(t.splice(e,1),o())};return!n&&e.getCurrentScope()&&e.onScopeDispose(l),l}function M(e,...t){e.slice().forEach((e=>{e(...t)}))}const I=e=>e();function z(t,a){t instanceof Map&&a instanceof Map&&a.forEach(((e,a)=>t.set(a,e))),t instanceof Set&&a instanceof Set&&a.forEach(t.add,t);for(const n in a){if(!a.hasOwnProperty(n))continue;const o=a[n],l=t[n];D(l)&&D(o)&&t.hasOwnProperty(n)&&!e.isRef(o)&&!e.isReactive(o)?t[n]=z(l,o):t[n]=o}return t}const F=Symbol();const{assign:O}=Object;function A(t,a,n={},o,l,s){let c;const i=O({actions:{}},n),r={deep:!0};let u,d,m,v=[],p=[];const f=o.state.value[t];let h;function g(a){let n;u=d=!1,"function"==typeof a?(a(o.state.value[t]),n={type:j.patchFunction,storeId:t,events:m}):(z(o.state.value[t],a),n={type:j.patchObject,payload:a,storeId:t,events:m});const l=h=Symbol();e.nextTick().then((()=>{h===l&&(u=!0)})),d=!0,M(v,n,o.state.value[t])}s||f||(o.state.value[t]={}),e.ref({});const w=s?function(){const{state:e}=n,t=e?e():{};this.$patch((e=>{O(e,t)}))}:$;function k(e,a){return function(){x(o);const n=Array.from(arguments),l=[],s=[];function c(e){l.push(e)}function i(e){s.push(e)}let r;M(p,{args:n,name:e,store:E,after:c,onError:i});try{r=a.apply(this&&this.$id===t?this:E,n)}catch(u){throw M(s,u),u}return r instanceof Promise?r.then((e=>(M(l,e),e))).catch((e=>(M(s,e),Promise.reject(e)))):(M(l,r),r)}}const y={_p:o,$id:t,$onAction:L.bind(null,p),$patch:g,$reset:w,$subscribe(a,n={}){const l=L(v,a,n.detached,(()=>s())),s=c.run((()=>e.watch((()=>o.state.value[t]),(e=>{("sync"===n.flush?d:u)&&a({storeId:t,type:j.direct,events:m},e)}),O({},r,n))));return l},$dispose:function(){c.stop(),v=[],p=[],o._s.delete(t)}},E=e.reactive(y);o._s.set(t,E);const N=(o._a&&o._a.runWithContext||I)((()=>o._e.run((()=>(c=e.effectScope()).run(a)))));for(const V in N){const a=N[V];if(e.isRef(a)&&(b=a,!e.isRef(b)||!b.effect)||e.isReactive(a))s||(!f||D(C=a)&&C.hasOwnProperty(F)||(e.isRef(a)?a.value=f[V]:z(a,f[V])),o.state.value[t][V]=a);else if("function"==typeof a){const e=k(V,a);N[V]=e,i.actions[V]=a}}var C,b;return O(E,N),O(e.toRaw(E),N),Object.defineProperty(E,"$state",{get:()=>o.state.value[t],set:e=>{g((t=>{O(t,e)}))}}),o._p.forEach((e=>{O(E,c.run((()=>e({store:E,app:o._a,pinia:o,options:i}))))})),f&&s&&n.hydrate&&n.hydrate(E.$state,f),u=!0,d=!0,E}function U(t,a,n){let o,l;const s="function"==typeof a;function c(t,n){const c=e.hasInjectionContext();(t=t||(c?e.inject(T,null):null))&&x(t),(t=S)._s.has(o)||(s?A(o,a,l,t):function(t,a,n,o){const{state:l,actions:s,getters:c}=a,i=n.state.value[t];let r;r=A(t,(function(){i||(n.state.value[t]=l?l():{});const a=e.toRefs(n.state.value[t]);return O(a,s,Object.keys(c||{}).reduce(((a,o)=>(a[o]=e.markRaw(e.computed((()=>{x(n);const e=n._s.get(t);return c[o].call(e,e)}))),a)),{}))}),a,n,0,!0)}(o,l,t));return t._s.get(o)}return"string"==typeof t?(o=t,l=s?n:a):(l=t,o=t.id),c.$id=o,c}const q=new class{constructor(){this.ws=null,this.url="ws://cloud.yuxindazhineng.com/cloud_api/phone/app_ws",this.options={token:"",conversationId:"",onMessage:null,onError:null,onReconnect:null,onOpen:null,onClose:null},this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectDelay=3e3,this.reconnectTimer=null,this.heartbeatTimer=null,this.isManualClose=!1}connect(e={}){this.options={...this.options,...e},this.isManualClose=!1,this.ws&&this.close();try{this.ws=uni.connectSocket({url:this.url,success:()=>{t("log","at utils/socket.js:44","WebSocket 连接请求已发送")},fail:e=>{t("error","at utils/socket.js:47","WebSocket 连接失败:",e),this.handleError(e)}}),this.initEventHandlers()}catch(a){this.handleError(a)}}initEventHandlers(){this.ws&&(this.ws.onOpen((e=>{var a,n,o,l;t("log","at utils/socket.js:74","WebSocket 已连接"),this.reconnectAttempts>0&&(null==(n=(a=this.options).onReconnect)||n.call(a)),null==(l=(o=this.options).onOpen)||l.call(o,e),this.reconnectAttempts=0})),this.ws.onMessage((e=>{try{const a=JSON.parse(e.data);t("log","at utils/socket.js:87","收到了返回消息:",a),this.handleMessage(a)}catch(a){t("error","at utils/socket.js:91","消息解析失败:",a),uni.setStorageSync("currentSessionId",e.data.task_call_id)}})),this.ws.onError((e=>{t("error","at utils/socket.js:96","WebSocket 错误:",e),this.handleError(e)})),this.ws.onClose((e=>{var a,n;t("log","at utils/socket.js:100","WebSocket 已关闭:",e.code,e.reason),null==(n=(a=this.options).onClose)||n.call(a,e),this.stopHeartbeat(),!this.isManualClose&&this.reconnectAttempts{if(!this.isConnected())return void n(new Error("WebSocket 未连接"));const o=JSON.stringify(e);t("log","at utils/socket.js:193","发送的消息是:",o),this.ws.send({data:o,success:()=>a(),fail:e=>{t("error","at utils/socket.js:201","发送消息失败:",e),n(e)}})}))}reconnect(){this.reconnectTimer||(this.reconnectAttempts++,t("log","at utils/socket.js:227",`尝试重连 (${this.reconnectAttempts}/${this.maxReconnectAttempts})...`),this.reconnectTimer=setTimeout((()=>{this.reconnectTimer=null,this.isManualClose||this.connect(this.options)}),this.reconnectDelay*this.reconnectAttempts))}startHeartbeat(){this.stopHeartbeat(),this.heartbeatTimer=setInterval((()=>{this.isConnected()?this.send({ws_event:"ping"}).catch((()=>{t("log","at utils/socket.js:249","心跳发送失败,准备重连"),this.reconnectTimer||this.isManualClose||this.reconnect()})):!this.isManualClose&&this.reconnectAttemptst("log","at utils/socket.js:335","连接已关闭"),fail:e=>t("error","at utils/socket.js:336","关闭失败:",e)})}catch(e){t("error","at utils/socket.js:344","关闭连接出错:",e)}this.ws=null}this.reconnectAttempts=0}updateOptions(e){this.options={...this.options,...e}}},W=U("socket",(()=>{const a=e.ref("disconnected"),n=e.ref([]),o=e.ref(""),l=e.ref(!1),s=e.ref({token:"",conversationId:""});e.ref("");const c=e.ref([]),i=e.ref(20),r=e.computed((()=>"connected"===a.value)),u=e.computed((()=>"connecting"===a.value)),d=e.computed((()=>"disconnected"===a.value)),m=e.computed((()=>"error"===a.value)),v=e.computed((()=>n.value[n.value.length-1]));function p(e,a){const n=new Date,o=`${n.getHours().toString().padStart(2,"0")}:${n.getMinutes().toString().padStart(2,"0")}:${n.getSeconds().toString().padStart(2,"0")}`;c.value.push({type:e,connect:a,time:o}),c.value.length>i.value&&(c.value=c.value.slice(-i.value)),t("log","at stores/socket.js:52",`[${e.toUpperCase()}] ${a}`)}function f(){a.value="connected",p("success","连接成功!发送auth"),t("log","at stores/socket.js:115","连接成功!发送auth"),s.value.token,q.send({type:"auth",access_token:s.value.token})}function h(){"disconnected"!==a.value&&(a.value="disconnected",p("warn","连接已断开"))}function g(e){p("error",`Socket错误: ${JSON.stringify(e)}`),a.value="error"}function w(e){a.value="connecting",p("warn",`重连中... (${e}/5)`)}function k(e){p("receive",`收到: ${JSON.stringify(e)}`);const{type:a,conversation_id:n,message_id:s,data:c}=e||{};switch(t("log","at stores/socket.js:160","[handleMessage] type =",a,", data =",JSON.stringify(c)),a){case"auth_ok":p("success","连接成功");break;case"chat_ack":p("warn","AI成功收到用户发送的消息");break;case"render":p("warn","AI正在回复信息"),function(e){if("exit"===e)return t("log","at stores/socket.js:212","ai结束思考"),void(l.value=!1);if(!e||"object"!=typeof e)return;const{role:a,chunk:n,message_role:s,meaasge_uuid:c,message_type:i,task_call_id:r}=e;l.value||!n&&"assistant"!==s||(t("log","at stores/socket.js:233","ai开始思考"),o.value="",l.value=!0);n&&(o.value+=n)}(c);break;default:p("info",`未知事件类型: ${a}`)}}return{connectionStatus:a,messageString:o,isThinking:l,logs:c,config:s,isConnected:r,isConnecting:u,isDisconnected:d,isError:m,lastMessage:v,connect:function(e={}){n.value=[],o.value="",s.value={...s.value,...e},p("info",`准备连接WebSocket。Token:${s.value.token||"未设置"}。ConversationId: ${s.value.conversationId||"未设置"}`),s.value.token&&s.value.conversationId?(a.value="connecting",q.connect({token:s.value.token,conversationId:s.value.conversationId,onMessage:k,onError:g,onOpen:f,onClose:h,onReconnect:w}),setTimeout((()=>{"connecting"===a.value&&(a.value="error",p("error","连接超时(10s)"))}),1e4)):p("error","Token和ConversationId都不能为空")},disconnect:function(){q.close(),a.value="disconnected",p("warn","已主动断开连接")},send:async function(e){if(t("log","at stores/socket.js:96","检查到要发生消息为:",e),!r.value)throw p("error","发送失败: 连接未建立"),new Error("连接未建立");try{return await q.send(e),p("send","string"==typeof e?e:JSON.stringify(e)),!0}catch(a){throw p("error",`发送失败: ${a.message||a}`),a}},addLog:p,clearLogs:function(){c.value=[]},getStatusText:function(){return{connecting:"连接中",connected:"已连接",disconnected:"未连接",error:"连接错误"}[a.value]||"未知状态"}}})),R="http://chat.yuxindazhineng.com",J=async e=>new Promise(((a,n)=>{uni.request({url:`${R}/api/chatList/getChatFriend`,method:"POST",header:{"Content-Type":"application/json"},data:{size:500,current:1,sendId:e},success:e=>{var o;if(200===e.statusCode){const l=e.data;if(t("log","at utils/friend-api.js:20","获取到的好友列表消息",l),0===(null==l?void 0:l.code)||"成功"===(null==l?void 0:l.msg)){const e=null==(o=l.data)?void 0:o.records;if(e.length>0){const t=e[0].receiver;t&&uni.setStorageSync("receiverId",t)}a(e)}else{const t=e.data.error||"获取好友列表出错啦";n(t)}}else n(`获取好友列表失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})),H=async e=>new Promise(((t,a)=>{uni.request({url:`${R}/api/group/getGroup`,method:"POST",header:{"Content-Type":"application/json"},data:{size:500,current:1,contactId:e},success:e=>{var n;if(200===e.statusCode){const o=e.data;if(0===(null==o?void 0:o.code)||"成功"===(null==o?void 0:o.msg)){const e=null==(n=o.data)?void 0:n.records;t(e)}else{const t=e.data.error||"获取群聊列表出错啦";a(t)}}else a(`获取群聊列表失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";a(t)}})})),G=e=>new Promise(((t,a)=>{uni.uploadFile({url:`${R}/api/file/upload`,filePath:e,name:"file",success:e=>{const n=JSON.parse(e.data);0===n.code?t(n.data):a(n.msg||"上传失败")},fail:e=>{a(e.errMsg||"网络错误")}})}));const X=new class{constructor(){this.ws=null,this.url="wss://wss.yuxindazhineng.com/ws",this.options={token:"",UserId:"",onMessage:null,onError:null,onReconnect:null,onOpen:null,onClose:null},this.reconnectAttempts=0,this.maxReconnectAttempts=5,this.reconnectDelay=3e3,this.reconnectTimer=null,this.heartbeatTimer=null,this.isManualClose=!1}connect(e={}){this.options={...this.options,...e},this.isManualClose=!1,this.ws&&(t("log","at utils/friend-socket.js:37","关闭现有连接"),this.close());try{this.ws=uni.connectSocket({url:this.url,success:()=>{t("log","at utils/friend-socket.js:45","WebSocket 连接请求已发送")},fail:e=>{t("error","at utils/friend-socket.js:48","WebSocket 连接失败:",e),this.handleError(e)}}),this.initEventHandlers()}catch(a){this.handleError(a)}}initEventHandlers(){this.ws&&(this.ws.onOpen((e=>{var a,n,o,l;t("log","at utils/friend-socket.js:75","WebSocket 已连接"),this.reconnectAttempts>0&&(null==(n=(a=this.options).onReconnect)||n.call(a)),null==(l=(o=this.options).onOpen)||l.call(o,e),this.reconnectAttempts=0})),this.ws.onMessage((e=>{try{const a=JSON.parse(e.data);t("log","at utils/friend-socket.js:88","收到了返回消息:",a),this.handleMessage(a)}catch(a){t("error","at utils/friend-socket.js:91","消息解析失败:",a),uni.setStorageSync("currentSessionId",e.data.task_call_id)}})),this.ws.onError((e=>{t("error","at utils/friend-socket.js:96","WebSocket 错误:",JSON.stringify(e)),this.handleError(e)})),this.ws.onClose((e=>{var a,n;t("log","at utils/friend-socket.js:100","WebSocket 已关闭:",e.code,e.reason),null==(n=(a=this.options).onClose)||n.call(a,e),!this.isManualClose&&this.reconnectAttempts{if(!this.isConnected())return void n(new Error("WebSocket 未连接"));const o=JSON.stringify(e);t("log","at utils/friend-socket.js:171","发送的消息是:",o),this.ws.send({data:o,success:()=>a(),fail:e=>{t("error","at utils/friend-socket.js:179","发送消息失败:",e),n(e)}})}))}reconnect(){this.reconnectTimer||(this.reconnectAttempts++,t("log","at utils/friend-socket.js:205",`尝试重连 (${this.reconnectAttempts}/${this.maxReconnectAttempts})...`),this.reconnectTimer=setTimeout((()=>{this.reconnectTimer=null,this.isManualClose||this.connect(this.options)}),this.reconnectDelay*this.reconnectAttempts))}startHeartbeat(){this.stopHeartbeat(),this.heartbeatTimer=setInterval((()=>{this.isConnected()?this.send({ws_event:"ping"}).catch((()=>{t("log","at utils/friend-socket.js:227","心跳发送失败,准备重连"),this.reconnectTimer||this.isManualClose||this.reconnect()})):!this.isManualClose&&this.reconnectAttempts{})),this.ws.onMessage((()=>{})),this.ws.onError((()=>{})),this.ws.onClose((()=>{}));try{this.ws.close({success:()=>t("log","at utils/friend-socket.js:314","连接已关闭"),fail:e=>t("error","at utils/friend-socket.js:315","关闭失败:",e)})}catch(e){t("error","at utils/friend-socket.js:323","关闭连接出错:",e)}this.ws=null}this.reconnectAttempts=0}updateOptions(e){this.options={...this.options,...e}}},K=U("friendSocket",(()=>{const a=e.ref("disconnected"),n=e.ref([]),o=e.ref(""),l=e.ref({token:"",UserId:""});e.ref("");const s=e.ref(null),c=e.ref(null),i=e.ref(!1),r=e.ref([]),u=e.ref(20),d=e.computed((()=>"connected"===a.value)),m=e.computed((()=>"connecting"===a.value)),v=e.computed((()=>"disconnected"===a.value)),p=e.computed((()=>"error"===a.value)),f=e.computed((()=>n.value[n.value.length-1]));function h(e,a){const n=new Date,o=`${n.getHours().toString().padStart(2,"0")}:${n.getMinutes().toString().padStart(2,"0")}:${n.getSeconds().toString().padStart(2,"0")}`;r.value.push({type:e,connect:a,time:o}),r.value.length>u.value&&(r.value=r.value.slice(-u.value)),t("log","at stores/friend-socket.js:57",`[${e.toUpperCase()}] ${a}`)}function g(){a.value="connected",h("success","连接成功!"),async function(){const e={version:"1.1",body:{command:7,sender:N(),avatar:"",sessionId:"",message:"",callBackMessage:!1}};try{await X.send(e),h("send","string"==typeof e?e:JSON.stringify(e))}catch(t){throw h("error",`发送验证失败: ${t.message||t}`),t}}()}function w(){"disconnected"!==a.value&&(a.value="disconnected",h("warn","连接已断开"))}function k(e){h("error",`Socket错误: ${JSON.stringify(e)}`),a.value="error"}function y(e){a.value="connecting",h("warn",`重连中... (${e}/5)`)}function E(e){h("receive",`收到: ${JSON.stringify(e)}`);const a=e.body||e,{callBackMessage:n,groupName:o,command:l,groupId:r}=a||{};switch(l){case 3:s.value=l,c.value=r;break;case 7:s.value=l;break;case 1:t("log","at stores/friend-socket.js:199","有好友消息"),i.value=!0;break;case 9:t("log","at stores/friend-socket.js:204","群消息发送成功/有新群消息"),i.value=!0;break;default:h("info","未知事件类型")}}return{connectionStatus:a,messageString:o,logs:r,config:l,command:s,groupId:c,MessageReceived:i,isConnected:d,isConnecting:m,isDisconnected:v,isError:p,lastMessage:f,connect:function(e={}){n.value=[],o.value="",l.value={...l.value,...e},h("info",`准备连接FriendsWebSocket。Token:${l.value.token||"未设置"}。UserId: ${l.value.UserId||"未设置"}`),l.value.token&&l.value.UserId?(a.value="connecting",X.connect({token:l.value.token,UserId:l.value.UserId,onMessage:E,onError:k,onOpen:g,onClose:w,onReconnect:y}),setTimeout((()=>{"connecting"===a.value&&(a.value="error",h("error","连接超时(10s)"))}),1e4)):h("error","Token和UserId都不能为空")},disconnect:function(){X.close(),a.value="disconnected",h("warn","已主动断开连接")},send:async function(e){if(!d.value)throw h("error","发送失败: 连接未建立"),new Error("连接未建立");try{return await X.send(e),h("send","string"==typeof e?e:JSON.stringify(e)),!0}catch(t){throw h("error",`发送失败: ${t.message||t}`),t}},addLog:h,clearLogs:function(){r.value=[]},getStatusText:function(){return{connecting:"连接中",connected:"已连接",disconnected:"未连接",error:"连接错误"}[a.value]||"未知状态"}}})),{registerUTSInterface:Y,initUTSProxyClass:Q,initUTSProxyFunction:Z,initUTSPackageName:ee,initUTSIndexClassName:te,initUTSClassName:ae}=uni,ne="limeChooseFile",oe=Z(!1,{moduleName:"lime-choose-file 文件选择",moduleType:"",errMsg:"",main:!0,package:ee(ne,true),class:te(ne,true),name:"chooseFileByJs",keepAlive:!1,params:[{name:"options",type:"UTSSDKModulesLimeChooseFileChooseFileOptionJSONObject"}],return:""}),le=f({__name:"Chat",setup(l){const i=K(),r=()=>{i.isConnected||(Q.value&&Z.value?i.connect({token:Q.value,UserId:Z.value}):t("warn","at pages/Chat/Chat.vue:290","Token或UserId未准备好"))},u=W(),d=e.ref(0),m=(e,t)=>{let a='';return e.forEach(((e,n)=>{const o=0===n?"th":"td",l=e.split("|").filter((e=>""!==e.trim()));a+="",l.forEach(((e,n)=>{const l=t[n]?` style="text-align:${t[n]}"`:"";a+=`<${o}${l} style="padding:6px 10px;border:1px solid #ddd">${e.trim()}`})),a+=""})),a+="
    ",a},v=e=>{if(!e)return"";e=p(e);try{e=(e=>{const t=e.split("\n");let a=[],n=!1,o=[],l=[];for(let s=0;se.trim())).map((e=>e.trim().startsWith(":")&&e.trim().endsWith(":")?"center":e.trim().endsWith(":")?"right":"left"));continue}o.push(e),n=!0}else n&&o.length>0&&(a.push(m(o,l)),o=[],l=[],n=!1),a.push(e)}return n&&o.length>0&&a.push(m(o,l)),a.join("\n")})(e);return B(e)}catch(a){return t("error","at pages/Chat/Chat.vue:388","解析失败",a),e}},p=e=>{const t=/]*>([\s\S]*?)<\/script>/i.test(e),a=/<(form|input|select|textarea|button)\b[^>]*>/i.test(e);let n=e.replace(/]*>([\s\S]*?)<\/script>/gi,"");if(n=n.replace(/<\/?minimax:tool_call>/g,(e=>e.replace(//g,">"))).replace(/<\|[\w]+?\|>/g,(e=>e.replace(//g,">"))),t||a){return'

    表单仅预览,不可操作!!!

    '+n}return n},f=e=>{uni.previewImage({urls:[e]})},h=e=>{uni.downloadFile({url:e,success:e=>{uni.openDocument({filePath:e.tempFilePath,showMenu:!0})}})},g=e=>e?e<1?(1024*e).toFixed(0)+"KB":e.toFixed(2)+"MB":"0KB",E=e=>{if(!e||"string"!=typeof e)return{textContent:e||"",files:[]};const a=e.match(/\[文件信息:(\[.*?\])\]/);if(!a)return{textContent:e,files:[]};try{const t=JSON.parse(a[1]);return{textContent:e.replace(a[0],"").trim(),files:t}}catch(n){return t("error","at pages/Chat/Chat.vue:456","解析文件信息失败:",n),{textContent:e,files:[]}}},N=async()=>{try{const e="0123456789abcdef";let t="";for(let o=0;o<24;o++)t+=e[Math.floor(Math.random()*e.length)];const a=await(async(e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/create_workspace`,method:"POST",data:{access_token:e,name:t},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data.workspace_id;if(t)a(t);else{const t=e.data.error||"创建工作区id出错啦";n(t)}}else n(`创建工作区id失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})))(Q.value,t);if(!a)return void uni.showToast({title:"工作区创建失败",icon:"none"});const n=uni.getStorageSync("yxd_login_info");let l="";n&&(l=n.username||"");const s=await(async(e,t,a,n)=>new Promise(((l,s)=>{uni.request({url:`${o}/create_conversation`,method:"POST",data:{access_token:e,workspace_id:t,title:a,sender:n},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data.conversation_id;if(t)l(t);else{const t=e.data.error||"创建新对话id出错啦";s(t)}}else s(`创建新对话失败:${e.statusCode}`)}})})))(Q.value,a,"新会话",l);if(!s)return void uni.showToast({title:"新会话创建失败",icon:"none"});ae()}catch(e){t("error","at pages/Chat/Chat.vue:498","新建普通会话失败:",e),uni.showToast({title:"创建会话失败,请重试",icon:"none"})}},b=e.ref(!1),V=()=>{b.value=!1},_=e.ref(!1),S=()=>{_.value=!_.value},x=()=>{Y.value&&uni.setStorageSync("currentSessionId",Y.value),uni.navigateTo({url:"/pages/WorkSpace/WorkSpace"})},T=()=>{Y.value&&uni.setStorageSync("currentSessionId",Y.value),uni.navigateTo({url:"/pages/CloudDatabase/CloudDatabase"})},D=()=>{uni.reLaunch({url:"/pages/Login/Login"})},j=e.ref([]),P=()=>{t("log","at pages/Chat/Chat.vue:547","点击了拍照上传"),uni.chooseImage({count:1,sourceType:["camera","album"],success:e=>{const t=e.tempFiles,a=e.tempFilePaths;t.forEach(((e,t)=>{j.value.push({path:a[t],name:e.name||`photo_${Date.now()}_${t}.jpg`,size:e.size,type:"image",tempFile:e})}))},fail:e=>{t("error","at pages/Chat/Chat.vue:565","选择图片失败",e)}})},$=e.ref([]),L=e.ref(!1),M=e.ref(!1),I=e.ref([]),z=async()=>{if(q.value.trim()||0!==j.value.length){if(j.value.length>0){M.value=!0,uni.showLoading({title:"上传文件中...",mask:!0});try{const e=[];for(const t of j.value){const a=await G(t.path);e.push(a)}I.value=e,j.value=[]}catch(e){return uni.hideLoading(),t("error","at pages/Chat/Chat.vue:671","文件上传失败:",e),uni.showToast({title:"文件上传失败,请重试",icon:"error"}),void(M.value=!1)}uni.hideLoading(),M.value=!1}0===d.value&&U(),1===d.value&&F(),2===d.value&&O()}},F=async()=>{i.isConnecting||await r();const e=uni.getStorageSync("receiverId"),t=I.value.length>0,a={command:1,sender:Z.value,receiver:e,avatar:"",sessionId:Y.value,message:q.value,callBackMessage:!1};t&&(a.contentType=1,a.uploadVos=I.value);const n={version:"1.1",body:a};i.send(n);const o={sender:Z.value,receiver:e,content:q.value,taskId:null,avatar:null,createTime:"",messageType:"null",contentJson:t?JSON.stringify(I.value):"null"};ue.value=[...ue.value,o],q.value="",I.value=[],setTimeout((()=>{fe()}),1e3)},O=async()=>{i.isConnecting||await r();const e=I.value.length>0,t={command:9,groupId:Y.value,message:q.value||"",callBackMessage:!e,messageType:e?1:0,sender:Z.value};e&&(t.uploadVos=I.value);const a={version:"1.1",body:t};i.send(a);const n={id:ue.value.length+1,message:q.value,messageType:e?1:0,groupId:null,createTime:"",contentJson:e?JSON.stringify(I.value):"",sender:Z.value};ue.value=[...ue.value,n],q.value="",I.value=[],setTimeout((()=>{he()}),1e3)};let A=null;const U=async()=>{try{await new Promise(((t,a)=>{if(u.isConnected)return t();const n=e.watch((()=>u.isConnected),(e=>{e&&(n(),t())})),o=e.watch((()=>u.connectionStatus),(e=>{"error"===e&&(n(),o(),a(new Error("连接失败")))}));u.connect({token:Q.value,conversationId:Y.value})}));let t=q.value;if(I.value.length){const e=JSON.stringify(I.value);t=t?`${t}\n[文件信息:${e}]`:`[文件信息:${e}]`}const a={type:"chat",conversation_id:Y.value,content:t};u.send(a),L.value=!0,A=setTimeout((()=>{uni.showToast({title:"AI回复超时,请重试",icon:"none"}),L.value=!1,q.value="",I.value=[]}),18e4)}catch(t){L.value=!1,uni.showToast({title:`用户发送消息失败${t}`,icon:"error"})}};e.watch((()=>u.isThinking),((e,a)=>{t("log","at pages/Chat/Chat.vue:833","isThinking 变化:",a,"→",e),a&&!e&&u.messageString&&(clearTimeout(A),t("log","at pages/Chat/Chat.vue:837","ai返回的消息:",u.messageString),t("log","at pages/Chat/Chat.vue:838","AI回复结束,刷新消息列表"),pe(),L.value=!1,q.value="",I.value=[])}));const q=e.ref(""),X=e.ref([]),Y=e.ref(""),Q=e.ref(""),Z=e.ref(""),ee=e.ref(""),te=e.ref(null),ae=async()=>{try{Q.value=k(),t("log","at pages/Chat/Chat.vue:874","token:",Q.value),X.value=await(async e=>new Promise(((t,a)=>{uni.request({url:`${o}/get_user_conversations`,method:"POST",data:{access_token:e},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const a=e.data.conversations;t(a)}else a(`请求失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";a(t)}})})))(Q.value)||[];const e=y();e&&X.value.some((t=>t._id===e))?Y.value=e:X.value.length>0?Y.value=X.value[0]._id:Y.value="",t("log","at pages/Chat/Chat.vue:886","保存会话id:",Y.value),uni.setStorageSync("currentSessionId",Y.value)}catch(e){uni.showToast({title:`获取会话列表失败${e}`,icon:"error"})}},ne=e.ref([]),le=e=>{if(!e)return null;const t=ne.value.find((t=>t.receiver===e));return(null==t?void 0:t.avatar)||null},se=async e=>{if(!(null==e?void 0:e.length))return[];try{const t=e.map((e=>e.receiver)),a=await c(Q.value,t),n=new Map(a.map((e=>[e.user_id,e]))||[]);return e.map((e=>{const t=n.get(e.receiver);return{...e,avatar:(null==t?void 0:t.avatar)||null}}))}catch(a){return t("error","at pages/Chat/Chat.vue:942","获取好友头像失败",a),e}},ce=e.ref([]),ie=e.ref([]),re=e=>{if(!e)return null;const t=ie.value.find((t=>t.groupContactId===e));return(null==t?void 0:t.avatar)||null},ue=e.ref([]),de=e.ref("");e.ref(!1);const me=e.ref(1),ve=e.computed((()=>ue.value.slice(-100))),pe=async()=>{try{ue.value=await(async(e,a)=>new Promise(((n,l)=>{uni.request({url:`${o}/get_conversation_messages`,method:"POST",data:{access_token:e,conversation_id:a},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const a=e.data;if(a)t("log","at utils/cloud-api.js:88","工作区id为:",a.workspace_id||"(无)"),a.workspace_id&&uni.setStorageSync("workspace_id",a.workspace_id),n(a.messages);else{const t=e.data.error||"获取消息出错啦";l(t)}}else l(`请求失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";l(t)}})})))(Q.value,Y.value)||[],ke()}catch(e){uni.showToast({title:`获取ai会话内容失败${e}`,icon:"none"})}},fe=async()=>{try{ue.value=await(async(e,a=1)=>(t("log","at utils/friend-api.js:88","请求的好友消息id:",e),new Promise(((t,n)=>{uni.request({url:`${R}/api/message/list`,method:"POST",data:{sessionId:e,size:100,current:a,beginTime:"",endTime:""},header:{"Content-Type":"application/json"},success:e=>{var a;if(200===e.statusCode){const o=e.data;if(0===o.code){const e=((null==(a=null==o?void 0:o.data)?void 0:a.records)||[]).reverse();t(e)}else{const t=e.data.error||"获取好友消息出错啦";n(t)}}else n(`请求失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})}))))(Y.value)||[],t("log","at pages/Chat/Chat.vue:1033","好友消息:",JSON.stringify(ue.value)),ke()}catch(e){uni.showToast({title:`获取好友会话消息失败${e}`,icon:"none"})}},he=async()=>{try{ue.value=await(async(e,a=1)=>(t("log","at utils/friend-api.js:134","请求的群聊消息id:",e),new Promise(((n,o)=>{uni.request({url:`${R}/api/group/getGroupList`,method:"POST",data:{current:a,size:100,groupId:e,beginTime:"",endTime:""},header:{"Content-Type":"application/json"},success:e=>{var a;if(200===e.statusCode){const l=e.data;if(t("log","at utils/friend-api.js:152","获取到的群聊信息:",l),0===l.code){const e=((null==(a=null==l?void 0:l.data)?void 0:a.records)||[]).reverse();n(e)}else{const t=e.data.error||"获取群聊消息出错啦";o(t)}}else o(`请求失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";o(t)}})}))))(Y.value)||[],t("log","at pages/Chat/Chat.vue:1046","群聊消息:",ue.value);const e=await(async e=>new Promise(((t,a)=>{uni.request({url:`${R}/api/group/getGroupMemberList`,method:"POST",header:{"Content-Type":"application/json"},data:{groupId:e,current:1,size:100},success:e=>{if(200===e.statusCode){const n=e.data;if(0===n.code){const e=n.data.records;t(e)}else{const t=e.data.error||"获取群成员出错啦";a(t)}}else a(`请求群成员失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";a(t)}})})))(Y.value);t("log","at pages/Chat/Chat.vue:1049","获取到的群成员列表:",e),e&&e.length?(ie.value=await(async e=>{if(!(null==e?void 0:e.length))return[];try{const a=e.map((e=>e.groupContactId));t("log","at pages/Chat/Chat.vue:971","请求头像的ID列表:",a);const n=await c(Q.value,a);t("log","at pages/Chat/Chat.vue:973","头像接口返回数据:",n);const o=new Map(n.map((e=>[e.user_id,e]))||[]);return t("log","at pages/Chat/Chat.vue:976","userMap的keys:",Array.from(o.keys())),e.map((e=>{const a=e.groupContactId,n=o.get(a);return t("log","at pages/Chat/Chat.vue:981",`查找 ${a} 的头像:`,n),{...e,avatar:(null==n?void 0:n.avatar)||null}}))}catch(a){return t("error","at pages/Chat/Chat.vue:988","获取群成员头像失败",a),e}})(e),t("log","at pages/Chat/Chat.vue:1052","群成员列表(带头像):",ie.value)):ie.value=[],ke()}catch(e){uni.showToast({title:`获取群聊会话失败${e}`,icon:"none"})}},ge=async()=>{if(t("log","at pages/Chat/Chat.vue:1067","加载更多信息"),ue.value.length>100*me.value){me.value+=1;const t=ue.value.slice(-100*me.value),a=t.length-ve.value.length;ve.value=t,await e.nextTick(),de.value="msg-"+(a+1)}},we=e=>{},ke=async()=>{await e.nextTick(),ve.value.length>0&&(de.value="msg-"+(ve.value.length-1))};return e.watch((()=>i.MessageReceived),(e=>{if(t("log","at pages/Chat/Chat.vue:1095","收到了好友消息"),e)switch(t("log","at pages/Chat/Chat.vue:1097","ChatType:",d.value),d.value){case 0:pe(),i.MessageReceived=!1;break;case 1:fe(),i.MessageReceived=!1;break;case 2:he(),i.MessageReceived=!1;break;default:t("log","at pages/Chat/Chat.vue:1113","default 分支"),i.MessageReceived=!1}}),{immediate:!0}),e.watch(Y,(e=>{if(e)switch(uni.setStorageSync("currentSessionId",Y.value),d.value){case 0:default:pe();break;case 1:fe();break;case 2:he()}}),{immediate:!0}),e.onMounted((()=>{})),n((async()=>{await(async()=>{try{Q.value=k(),te.value=await s(Q.value),Z.value=te.value._id,ee.value=te.value.avatar||"",t("log","at pages/Chat/Chat.vue:864","用户信息已加载:",Z.value,ee.value)}catch(e){t("error","at pages/Chat/Chat.vue:866","获取用户信息失败:",e)}})();const e=uni.getStorageSync("chatType");d.value=e;const a=y();a&&(Y.value=a),0===e?(await ae(),Y.value&&pe()):1===e?(await(async()=>{try{t("log","at pages/Chat/Chat.vue:901","开始获取好友列表");const e=await J(Z.value);t("log","at pages/Chat/Chat.vue:904","friendList:",e),e&&e.length?ne.value=await se(e):(ne.value=[],t("log","at pages/Chat/Chat.vue:909","好友列表为空"))}catch(e){t("error","at pages/Chat/Chat.vue:912","获取好友列表失败:",e),ne.value=[]}finally{X.value=ne.value}})(),fe(),r()):2===e&&(await(async()=>{try{t("log","at pages/Chat/Chat.vue:952","开始获取群聊列表"),ce.value=await H(Z.value)}catch(e){t("error","at pages/Chat/Chat.vue:957","获取群聊列表失败:",e),ce.value=[]}finally{X.value=ce.value}})(),await r(),await he())})),(n,o)=>{const l=a(e.resolveDynamicComponent("uni-icons"),w);return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),b.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"ncd-overlay",onClick:V},[e.createElementVNode("view",{class:"ncd-card",onClick:o[0]||(o[0]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"ncd-header"},[e.createElementVNode("view",{class:"ncd-title-eng"},[e.createElementVNode("text",null,"NEW")]),e.createElementVNode("text",{class:"ncd-title-zh"},"创建对话"),e.createVNode(l,{type:"closeempty",color:"#ff0000",size:"24",onClick:V})]),e.createElementVNode("text",null,"选择对话类型,开启全新会话体验"),e.createElementVNode("view",{class:"ncd-options"},[e.createElementVNode("view",{class:"ncd-option ncd-normal"},[e.createElementVNode("view",{class:"ncd-opt-icon"},[e.createVNode(l,{type:"chat",color:"#000000",size:"30"})]),e.createElementVNode("view",{class:"ncd-opt-title",onClick:N},[e.createElementVNode("view",{class:"ncd-opt-title-1"},"普通会话"),e.createElementVNode("view",{class:"ncd-opt-title-2"},"与AI自由对话,探索任何话题")]),e.createVNode(l,{type:"arrow-right",class:"arrow-right-style"})]),e.createElementVNode("view",{class:"ncd-option ncd-intelligence"},[e.createElementVNode("view",{class:"ncd-opt-icon"},[e.createVNode(l,{type:"star",color:"#ffffff",size:"30"})]),e.createElementVNode("view",{class:"ncd-opt-title"},[e.createElementVNode("view",{class:"ncd-opt-title-1"},"智能体会话"),e.createElementVNode("view",{class:"ncd-opt-title-2"},"选择专属智能体,获得精准专业服务")]),e.createVNode(l,{type:"arrow-right",class:"arrow-right-style"})])])])])):e.createCommentVNode("",!0),L.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"ncd-overlay",onClick:V},[e.createElementVNode("view",{class:"ncd-card ai-card",onClick:o[1]||(o[1]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"thinking-content"},[e.createElementVNode("view",{class:"loading-dots"},[e.createElementVNode("view",{class:"dot"}),e.createElementVNode("view",{class:"dot"}),e.createElementVNode("view",{class:"dot"})]),e.createElementVNode("text",{class:"thinking-text"},"AI 正在思考中...")])])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"chat-page page-container"},[_.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"mask",onClick:S})):e.createCommentVNode("",!0),e.createElementVNode("view",{class:e.normalizeClass(["chat-sidebar",{"sidebar-show":_.value}])},[e.createVNode(C,{chatList:X.value,showNewChatModal:b.value,"onUpdate:showNewChatModal":o[2]||(o[2]=e=>b.value=e),currentSessionId:Y.value,"onUpdate:currentSessionId":o[3]||(o[3]=e=>Y.value=e),chatType:d.value,"onUpdate:chatType":o[4]||(o[4]=e=>d.value=e),onRefreshConversations:ae},null,8,["chatList","showNewChatModal","currentSessionId","chatType"])],2),e.createElementVNode("view",{class:"chat-wrapper"},[e.createElementVNode("view",{class:"chat-hearder"},[e.createElementVNode("view",{class:"chat-btn-group"},[e.createElementVNode("view",{class:"head-btn",onClick:S},[e.createElementVNode("view",{class:"iconfont icon-caidan"})]),e.createElementVNode("view",{class:"head-btn",onClick:x},[e.createElementVNode("view",{class:"iconfont icon-wenjianjia"})]),e.createElementVNode("view",{class:"head-btn",onClick:T},[e.createElementVNode("view",{class:"iconfont icon-cloud"})]),e.createElementVNode("view",{class:"head-btn log-out",onClick:D},[e.createElementVNode("view",{class:"iconfont icon-tuichu"})])])]),e.createElementVNode("view",{class:"main-chat"},[e.createElementVNode("scroll-view",{class:"chat-messages",direction:"vertical","scroll-y":"","scroll-into-view":de.value,onScrolltoupper:ge,"upper-threshold":0,"scroll-with-animation":!0,onScroll:we},[0===d.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(ve.value,((t,a)=>{var n;return e.openBlock(),e.createElementBlock("view",{class:e.normalizeClass(["chat-message",{"message-user":"user"===t.role}]),key:a,id:"msg-"+a},["user"===t.role?(e.openBlock(),e.createElementBlock("view",{key:0,class:e.normalizeClass(["chat-avatar",{"chat-avatar-user":"user"===t.role}])},["user"===t.role&&(null==(n=te.value)?void 0:n.avatar)?(e.openBlock(),e.createElementBlock("image",{key:0,src:te.value.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"iconfont icon-yonghuziliao"}))],2)):e.createCommentVNode("",!0),t.content&&""!==String(t.content).trim()?(e.openBlock(),e.createElementBlock("view",{key:1,class:e.normalizeClass(["chat-content",{"chat-content-user":"user"===t.role}])},[E(t.content).textContent?(e.openBlock(),e.createElementBlock("view",{key:0,innerHTML:v(E(t.content).textContent)},null,8,["innerHTML"])):e.createCommentVNode("",!0),E(t.content).files.length>0?(e.openBlock(),e.createElementBlock("view",{key:1,class:"message-file-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E(t.content).files,((t,a)=>(e.openBlock(),e.createElementBlock("view",{key:a,class:"file-item"},[["jpg","jpeg","png","gif","webp","bmp"].includes(t.extendName.toLowerCase())?(e.openBlock(),e.createElementBlock("image",{key:0,src:t.url,mode:"widthFix",class:"message-image",onClick:e=>f(t.url)},null,8,["src","onClick"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"message-file",onClick:e=>h(t.url)},[e.createElementVNode("view",{class:"file-icon"},"📄"),e.createElementVNode("view",{class:"file-name"},e.toDisplayString(t.name),1),e.createElementVNode("view",{class:"file-size"},e.toDisplayString(g(t.fileSize)),1)],8,["onClick"]))])))),128))])):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],10,["id"])})),128)):e.createCommentVNode("",!0),1===d.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(ve.value,((t,a)=>{var n;return e.openBlock(),e.createElementBlock("view",{class:e.normalizeClass(["chat-message",{"message-user":t.sender===Z.value}]),key:a,id:"msg-"+a},[e.createElementVNode("view",{class:e.normalizeClass(["chat-avatar",{"chat-avatar-user":t.sender===Z.value}])},[t.sender===Z.value&&(null==(n=te.value)?void 0:n.avatar)?(e.openBlock(),e.createElementBlock("image",{key:0,src:te.value.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):le(t.sender)?(e.openBlock(),e.createElementBlock("image",{key:1,src:le(t.sender),class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:2,class:"iconfont icon-yonghuziliao"}))],2),e.createElementVNode("view",{class:e.normalizeClass(["chat-content",{"chat-content-user":t.sender===Z.value}])},[t.content&&""!==String(t.content).trim()?(e.openBlock(),e.createElementBlock("view",{key:0,innerHTML:v(t.content)},null,8,["innerHTML"])):e.createCommentVNode("",!0),t.contentJson?(e.openBlock(),e.createElementBlock("view",{key:1,class:"message-file-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(JSON.parse(t.contentJson),((t,a)=>(e.openBlock(),e.createElementBlock("view",{key:a,class:"file-item"},[["jpg","jpeg","png","gif","webp","bmp"].includes(t.extendName.toLowerCase())?(e.openBlock(),e.createElementBlock("image",{key:0,src:t.url,mode:"widthFix",class:"message-image",onClick:e=>f(t.url)},null,8,["src","onClick"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"message-file",onClick:e=>h(t.url)},[e.createElementVNode("view",{class:"file-icon"},"📄"),e.createElementVNode("view",{class:"file-name"},e.toDisplayString(t.name),1),e.createElementVNode("view",{class:"file-size"},e.toDisplayString(g(t.fileSize)),1)],8,["onClick"]))])))),128))])):e.createCommentVNode("",!0)],2)],10,["id"])})),128)):e.createCommentVNode("",!0),2===d.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(ve.value,((t,a)=>{var n;return e.openBlock(),e.createElementBlock("view",{class:e.normalizeClass(["chat-message",{"message-user":t.sender===Z.value}]),key:a,id:"msg-"+a},[e.createElementVNode("view",{class:e.normalizeClass(["chat-avatar",{"chat-avatar-user":t.sender===Z.value}])},[t.sender===Z.value&&(null==(n=te.value)?void 0:n.avatar)?(e.openBlock(),e.createElementBlock("image",{key:0,src:te.value.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):ie.value.length>0&&re(t.sender)?(e.openBlock(),e.createElementBlock("image",{key:1,src:re(t.sender),class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:2,class:"iconfont icon-yonghuziliao"}))],2),e.createElementVNode("view",{class:e.normalizeClass(["chat-content",{"chat-content-user":t.sender===Z.value}])},[t.message&&""!==String(t.message).trim()?(e.openBlock(),e.createElementBlock("view",{key:0,innerHTML:v(t.message)},null,8,["innerHTML"])):e.createCommentVNode("",!0),t.contentJson?(e.openBlock(),e.createElementBlock("view",{key:1,class:"message-file-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(JSON.parse(t.contentJson),((t,a)=>(e.openBlock(),e.createElementBlock("view",{key:a,class:"file-item"},[["jpg","jpeg","png","gif","webp","bmp"].includes(t.extendName.toLowerCase())?(e.openBlock(),e.createElementBlock("image",{key:0,src:t.url,mode:"widthFix",class:"message-image",onClick:e=>f(t.url)},null,8,["src","onClick"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"message-file",onClick:e=>h(t.url)},[e.createElementVNode("view",{class:"file-icon"},"📄"),e.createElementVNode("view",{class:"file-name"},e.toDisplayString(t.name),1),e.createElementVNode("view",{class:"file-size"},e.toDisplayString(g(t.fileSize)),1)],8,["onClick"]))])))),128))])):e.createCommentVNode("",!0)],2)],10,["id"])})),128)):e.createCommentVNode("",!0)],40,["scroll-into-view"]),e.createElementVNode("view",{class:"chat-interactive-container"},[e.createElementVNode("view",{class:"chat-interactive-group"},[e.createElementVNode("view",{class:"chat-interactive-btn",onClick:P},"拍照上传"),e.createElementVNode("view",{class:"chat-interactive-btn",onClick:o[5]||(o[5]=e=>(t("log","at pages/Chat/Chat.vue:588","点击了上传文件"),void oe({count:5,type:"all",success:e=>{t("log","at pages/Chat/Chat.vue:593","成功了"),$.value=e.tempFiles,j.value.push(...e.tempFiles),uni.showToast({title:`已选择 ${e.tempFiles.length} 个文件`,icon:"success"})},fail:e=>{t("error","at pages/Chat/Chat.vue:604","选择失败:",e),uni.showToast({title:"选择失败",icon:"error"})}})))},"上传文件")]),j.value.length>0?(e.openBlock(),e.createElementBlock("view",{key:0,class:"image-list"},[e.createElementVNode("view",{class:"image-title"},"已选择: ("+e.toDisplayString(j.value.length)+")",1),e.createElementVNode("view",{class:"image-grid"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(j.value,((t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"image-item",key:a},[e.createElementVNode("view",{class:"image-info"},[e.createElementVNode("text",{class:"image-name"},e.toDisplayString(t.name),1),e.createElementVNode("text",{class:"delete-btn",onClick:e.withModifiers((e=>(e=>{uni.showModal({title:"提示",content:"确定要删除这张图片吗?",success:t=>{t.confirm&&(j.value.splice(e,1),uni.showToast({title:"删除成功",icon:"success"}))}})})(a)),["stop"])},"删除",8,["onClick"])])])))),128))])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"chat-input-container"},[e.withDirectives(e.createElementVNode("textarea",{class:"message-input",placeholder:"输入消息...",onConfirm:z,"confirm-type":"send","onUpdate:modelValue":o[6]||(o[6]=e=>q.value=e),"auto-height":""},null,544),[[e.vModelText,q.value]]),e.createElementVNode("view",{class:"input-btn-group"},[e.createElementVNode("view",{class:"iconfont icon-tingzhi icon-btn"})])])])])])])],64)}}},[["__scopeId","data-v-92a1a532"]]),se=f({__name:"WorkSpace",setup(n){const l=e.ref(""),s=e.ref(""),c=e.ref(""),i=e.ref("工作区"),d=e.ref(!1),m=e.ref([]),v=e.ref(!1),p=e.ref(!1),f=e.ref(""),h=()=>{v.value=!1,f.value=""},g=()=>{oe({count:10,type:"all",success:async e=>{const t=e.tempFiles||[];0!==t.length?await y(t):uni.showToast({title:"未选择文件",icon:"none"})},fail:e=>{t("error","at pages/WorkSpace/WorkSpace.vue:176","选择文件失败:",e)}})},y=async e=>{uni.showLoading({title:"上传中..."});try{const a=M.value.length>0?"./"+M.value.map((e=>e.name)).join("/")+"/":"/",n=await((e,a,n)=>new Promise(((l,s)=>{const c=(Array.isArray(a)?a:[a]).map((e=>({name:"files",uri:"string"==typeof e?e:e.tempFilePath||e.path||e})));t("log","at utils/cloud-api.js:587","uploadFileToShortStorage 参数:",{workspacesId:e,fileCount:c.length,filePath:n}),uni.uploadFile({url:`${o}/cloud_api/file/temp/upload`,method:"POST",formData:{workspaces_id:e,file_path:n||"/",overwrite:"true"},files:c,success:e=>{if(t("log","at utils/cloud-api.js:599","uploadFileToShortStorage 响应状态:",e.statusCode,"数据:",e.data),200===e.statusCode)try{const t=JSON.parse(e.data);if(Array.isArray(t)&&t.length>0)l(t);else if(t.success)l([{url:t.url||t.message,success:!0}]);else{const e=(null==t?void 0:t.error)||(null==t?void 0:t.message)||"上传文件(到短存云端)获取URL出错啦";s(e)}}catch(a){s("接口返回数据格式异常: "+e.data)}else s(`上传文件(到短存云端)获取URL失败:${e.statusCode} - ${e.data}`)},fail:e=>{const t=e.errMsg||"网络错误";s(t)}})})))(s.value,e,a),c=n.filter((e=>e.success)).map((e=>e.url));if(0===c.length){const e=n.filter((e=>!e.success)).map((e=>e.error)).join("; ");throw new Error(e||"所有文件上传失败")}await((e,t,a,n)=>new Promise(((l,s)=>{const c=Array.isArray(a)?a:a?[a]:[];uni.request({url:`${o}/cloud_api/phone/workspace/upload`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,workspaces_id:t,dir_path:n||"/",urls:c},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)l(t);else{const e=(t.results||[]).filter((e=>!e.success)).map((e=>e.error||"未知错误")),a=e.length>0?`上传失败 ${t.failed_count}/${t.total_files}:${e[0]}`:t.summary||(null==t?void 0:t.error)||"上传文件到工作区出错啦";s(a)}}else s(`上传文件到工作区失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";s(t)}})})))(l.value,s.value,c,a),uni.hideLoading();const i=e.length,r=i-c.length,u=r>0?`上传完成:成功 ${c.length},失败 ${r}`:`成功上传 ${i} 个文件`;uni.showToast({title:u,icon:c.length>0?"success":"error"}),F()}catch(a){uni.hideLoading(),t("error","at pages/WorkSpace/WorkSpace.vue:229","上传文件失败:",a),uni.showToast({title:"string"==typeof a?a:"上传失败,请重试",icon:"error"})}},E=e.computed((()=>0===M.value.length?"根目录":"/"+M.value.map((e=>e.name)).join("/"))),N=e.computed((()=>{const e=M.value.map((e=>e.name)).join("/"),t=f.value.trim();return t?e?`./${e}/${t}`:`./${t}`:e?`./${e}/`:"./"})),C=async()=>{const e=f.value.trim();if(e)try{const t=M.value.map((e=>e.name)).join("/"),a=t?`./${t}/${e}`:`./${e}`;await u(l.value,s.value,a),uni.showToast({title:"创建成功",icon:"success"}),h(),F()}catch(a){t("error","at pages/WorkSpace/WorkSpace.vue:275","创建文件夹失败:",a),uni.showToast({title:"创建失败,请重试",icon:"error"})}else uni.showToast({title:"请输入目录名称",icon:"none"})},b=async e=>{var a,n,c;if("directory"!==e.type)try{uni.showLoading({title:"获取下载链接..."});const i=e.path.startsWith("./")?e.path.slice(2):e.path,r=await(a=l.value,n=s.value,c=i,new Promise(((e,t)=>{uni.request({url:`${o}/cloud_api/phone/workspace/downloadFile`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:a,workspaces_id:n,file_path:c},success:a=>{if(200===a.statusCode){const n=a.data;if(n.success)e(n.message||n.data);else if(Array.isArray(n))e(n);else{const e=(null==n?void 0:n.error)||"获取工作区文URL出错啦";t(e)}}else t(`获取工作区文URL失败:${a.statusCode}`)}})})));uni.hideLoading();const u=Array.isArray(r)?r[0]:r;if(!u||!u.url)return void uni.showToast({title:"获取下载链接失败",icon:"error"});const d=u.url,m=e.name;uni.showLoading({title:"下载中..."}),uni.downloadFile({url:d,name:m,success:e=>{if(uni.hideLoading(),200===e.statusCode){const t=e.tempFilePath;V(m,t)}else uni.showToast({title:"下载失败",icon:"error"})},fail:e=>{uni.hideLoading(),t("error","at pages/WorkSpace/WorkSpace.vue:406","下载文件失败:",e),uni.showToast({title:"下载失败,请重试",icon:"error"})}})}catch(i){uni.hideLoading(),t("error","at pages/WorkSpace/WorkSpace.vue:415","获取下载链接失败:",i),uni.showToast({title:"获取下载链接失败,请重试",icon:"error"})}else uni.showToast({title:"暂不支持下载目录",icon:"none"})},V=(e,a)=>{const n="/storage/emulated/0/yxd/";var o;o=o=>{plus.io.resolveLocalFileSystemURL(a,(l=>{l.copyTo(o,e,(()=>{const a=n+e;t("log","at pages/WorkSpace/WorkSpace.vue:464","文件已保存到:",a),_(e,a)}),(n=>{t("error","at pages/WorkSpace/WorkSpace.vue:468","复制文件失败:",JSON.stringify(n)),_(e,a)}))}),(n=>{t("error","at pages/WorkSpace/WorkSpace.vue:473","读取临时文件失败:",JSON.stringify(n)),_(e,a)}))},plus.io.resolveLocalFileSystemURL(n,(e=>{o(e)}),(()=>{plus.io.resolveLocalFileSystemURL("/storage/emulated/0/",(n=>{n.getDirectory("yxd",{create:!0},(e=>{o(e)}),(n=>{t("error","at pages/WorkSpace/WorkSpace.vue:439","创建 yxd 目录失败:",JSON.stringify(n)),uni.showToast({title:"创建目录失败",icon:"error"}),_(e,a)}))}),(n=>{t("error","at pages/WorkSpace/WorkSpace.vue:447","访问外部存储根目录失败:",JSON.stringify(n)),uni.showToast({title:"无法访问存储目录",icon:"error"}),_(e,a)}))}))},_=(e,t)=>{uni.showActionSheet({title:`${e} 下载完成`,itemList:["打开文件","选择其他应用打开","仅保存"],success:e=>{switch(e.tapIndex){case 0:B(t);break;case 1:S(t);break;case 2:uni.showToast({title:"文件已保存到 yxd 目录",icon:"success"})}},fail:()=>{uni.showToast({title:"文件已保存到 yxd 目录",icon:"success"})}})},B=e=>{uni.openDocument({filePath:e,success:()=>uni.showToast({title:"打开成功",icon:"success"}),fail:e=>{t("error","at pages/WorkSpace/WorkSpace.vue:530","打开文件失败:",e),uni.showToast({title:"无法打开此文件",icon:"error"})}})},S=e=>{uni.openDocument({filePath:e,showMenu:!0,success:()=>uni.showToast({title:"打开成功",icon:"success"}),fail:e=>{t("error","at pages/WorkSpace/WorkSpace.vue:549","打开文件失败:",e),uni.showToast({title:"无法打开此文件",icon:"error"})}})},x=e=>{uni.showModal({title:"提示",content:`确定要删除"${e.name}"吗?`,success:async a=>{if(a.confirm)try{const a=`./${e.path}`;t("log","at pages/WorkSpace/WorkSpace.vue:568","删除的是:",a),await r(l.value,s.value,a),uni.showToast({title:"删除成功",icon:"success"}),F()}catch(n){t("error","at pages/WorkSpace/WorkSpace.vue:576","删除失败:",n),uni.showToast({title:"删除失败,请重试",icon:"error"})}}})},T=e.ref(!1),D=()=>{T.value=!T.value},j=e.ref(""),P=e.ref(!1),$=()=>{P.value=!P.value},L=e.ref({}),M=e.ref([]),I=e.ref([]),z=()=>{var e,a;t("log","at pages/WorkSpace/WorkSpace.vue:657","当前路径为:",JSON.stringify(M.value));const n=M.value.length>0?M.value[M.value.length-1].path:".";if("."===n)return(null==(e=L.value)?void 0:e.children)||[];const o=(e,t)=>{var a;for(const n of e){if(n.path===t)return n;if("directory"===n.type&&(null==(a=n.children)?void 0:a.length)){const e=o(n.children,t);if(e)return e}}return null},l=o((null==(a=L.value)?void 0:a.children)||[],n);return l?l.children:[]},F=async()=>{var e,a;s.value=uni.getStorageSync("workspace_id"),l.value=k(),t("log","at pages/WorkSpace/WorkSpace.vue:684","getWorkspaceId:",s.value),L.value=await(e=l.value,a=s.value,new Promise(((t,n)=>{uni.request({url:`${o}/cloud_api/phone/workspace/list`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,workspaces_id:a,format:"tree",parent_path:"",filter_type:""},success:e=>{if(200===e.statusCode){const a=e.data;if(a.success)t(a.data);else{const e=(null==a?void 0:a.error)||"获取工作区文件目录出错啦";n(e)}}else n(`获取工作区文件目录失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})}))),I.value=z()},O=()=>{d.value?m.value.length===I.value.length?m.value=[]:m.value=I.value.map((e=>e.path)):M.value.length>0?(M.value.pop(),0===M.value.length?(i.value="工作区",c.value=null):(i.value=M.value[M.value.length-1].name,c.value=M.value.length>1?M.value[M.value.length-2].name:"工作区"),F(),j.value="",P.value=!1):uni.navigateBack({delta:1,fail(){t("log","at pages/WorkSpace/WorkSpace.vue:741","返回失败,进入兜底跳转"),uni.reLaunch({url:"/pages/Chat/Chat"})}})};return e.onMounted((()=>{F()})),(t,n)=>{const o=a(e.resolveDynamicComponent("uni-icons"),w);return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),v.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"popup-overlay",onClick:h},[e.createElementVNode("view",{class:"popup-card",onClick:n[3]||(n[3]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"close-popup-card",onClick:h},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},"新建工作区目录"),e.createElementVNode("view",{class:"new-folder-name"},"目录名称"),e.createElementVNode("view",{class:e.normalizeClass(["create-folder-name",{"has-value":p.value||f.value}])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[0]||(n[0]=e=>f.value=e),onFocus:n[1]||(n[1]=e=>p.value=!0),onBlur:n[2]||(n[2]=e=>p.value=!1),type:"text",placeholder:"输入目录名称,如:项目资料/设计图"},null,544),[[e.vModelText,f.value]])],2),e.createElementVNode("view",{class:"nf-path-label"},"当前路径"),e.createElementVNode("view",{class:"nf-path-display"},e.toDisplayString(E.value),1),e.createElementVNode("view",{class:"nf-path-label"},"路径预览"),e.createElementVNode("view",{class:"nf-path-preview"},e.toDisplayString(N.value),1),e.createElementVNode("view",{class:"option-wrapper"},[e.createElementVNode("view",{class:"opt-btn opt-cancel",onClick:h},"取消"),e.createElementVNode("view",{class:"opt-btn opt-confirm",onClick:C},"确认")])])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"workspace-container page-container"},[e.createElementVNode("view",{class:"workspace-header"},[e.createElementVNode("view",{class:"custom-navbar"},[e.createElementVNode("view",{class:"navbar-left",onClick:n[4]||(n[4]=(...e)=>O&&O(...e))},[e.createElementVNode("view",{class:"iconfont icon-fanhui custom-navbar-icon"}),e.createElementVNode("view",{class:"navbar-before-title workspace-text"},e.toDisplayString(d.value?"全选":c.value),1)]),e.createElementVNode("view",{class:"navbar-title workspace-text"},e.toDisplayString(i.value),1),e.createElementVNode("view",{class:"navbar-right"},[d.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"navbar-right-text workspace-text",onClick:n[5]||(n[5]=e=>(d.value&&(m.value=[]),void(d.value=!d.value)))}," 完成")):(e.openBlock(),e.createElementBlock("view",{key:1,class:e.normalizeClass(["iconfont icon-gengduo",T.value?"menu-open":"custom-navbar-icon"]),onClick:D},null,2))]),T.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"menu-card"},[e.createElementVNode("view",{class:"menu-card-item",onClick:n[6]||(n[6]=e=>{g(),D()})},"上传文件"),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("view",{class:"menu-card-item",onClick:n[7]||(n[7]=e=>{v.value=!0,D()})},"新建文件夹")])):e.createCommentVNode("",!0)]),e.createElementVNode("view",{class:"search-file-warpper"},[e.createElementVNode("view",{class:"search-file"},[e.createElementVNode("view",{class:"iconfont icon-sousuo"}),e.withDirectives(e.createElementVNode("input",{class:"search-file-input",placeholder:"搜索",onFocus:$,"onUpdate:modelValue":n[8]||(n[8]=e=>j.value=e)},null,544),[[e.vModelText,j.value]])]),P.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"cancel-search",onClick:$},"取消")):e.createCommentVNode("",!0)])]),e.createElementVNode("view",{class:"workspace-content"},[0===I.value.length?(e.openBlock(),e.createElementBlock("view",{key:0,class:"folder-null"},[e.createElementVNode("view",{class:"iconfont icon-wenjianjia"}),e.createTextVNode(" 文件夹为空 ")])):e.createCommentVNode("",!0),I.value.length>0?(e.openBlock(),e.createElementBlock("view",{key:1,class:"folder-grid"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.value,(t=>{return e.openBlock(),e.createElementBlock("view",{class:e.normalizeClass(["folder-item",{"select-folder":m.value.includes(t.path)}]),key:t.path,onClick:e=>d.value?(e=>{const t=m.value.indexOf(e);-1!==t?m.value.splice(t,1):m.value.push(e)})(t.path):(e=>{"directory"===e.type&&(M.value.push({path:e.path,name:e.name}),i.value=e.name,c.value=M.value.length>1?M.value[M.value.length-2].name:"工作区",I.value=z(),j.value="",P.value=!1)})(t),onLongpress:e=>(e=>{d.value||uni.showActionSheet({itemList:["下载","删除"],success:t=>{switch(t.tapIndex){case 0:b(e);break;case 1:x(e)}}})})(t)},["directory"===t.type?(e.openBlock(),e.createElementBlock("view",{key:0,class:"iconfont icon-a-wenjianjiawenjian folder-item-style"})):(e.openBlock(),e.createElementBlock("view",{key:1,class:e.normalizeClass(["iconfont folder-item-style",(a=t.extension,{".png":"icon-wenjiantupian",".jpg":"icon-wenjiantupian",".jpeg":"icon-wenjiantupian",".gif":"icon-wenjiantupian",".svg":"icon-SVG",".bmp":"icon-wenjiantupian",".webp":"icon-wenjiantupian",".mp4":"icon-wenjianshipin",".avi":"icon-wenjianshipin",".mov":"icon-wenjianshipin",".wmv":"icon-wenjianshipin",".flv":"icon-wenjianshipin",".mkv":"icon-wenjianshipin",".mp3":"icon-wenjianyinpin",".wav":"icon-wenjianyinpin",".flac":"icon-wenjianyinpin",".aac":"icon-wenjianyinpin",".pdf":"icon-PDF",".doc":"icon-DOC",".docx":"icon-DOC",".xls":"icon-XLS",".xlsx":"icon-XLS",".ppt":"icon-PPT",".pptx":"icon-PPT",".txt":"icon-TXT",".md":"icon-file-markdown-fill",".zip":"icon-wenjianyasuo",".rar":"icon-wenjianyasuo",".7z":"icon-wenjianyasuo",".tar":"icon-wenjianyasuo",".gz":"icon-wenjianyasuo",".js":"icon-JS",".ts":"icon-daimawenjia",".vue":"icon-daimawenjia",".html":"icon-HTML",".css":"icon-CSS",".py":"icon-daimawenjian",".java":"icon-daimawenjian",".json":"icon-JSON"}[null==a?void 0:a.toLowerCase()]||"icon-qitawenjian")])},null,2)),e.createElementVNode("view",{class:"folder-name"},e.toDisplayString(t.name),1),d.value?(e.openBlock(),e.createElementBlock("view",{key:2,class:e.normalizeClass(["folder-checkbox",{"select-folder":m.value.includes(t.path)}])},[m.value.includes(t.path)?(e.openBlock(),e.createBlock(o,{key:0,type:"checkmarkempty",color:"#fff"})):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],42,["onClick","onLongpress"]);var a})),128))])):e.createCommentVNode("",!0)]),d.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:e.normalizeClass(["workspace-footer",{"folder-actions":m.value.length>0}])},[e.createElementVNode("view",{class:"iconfont icon-shangchuan",onClick:g}),e.createElementVNode("view",{class:"iconfont icon-del"})],2)):e.createCommentVNode("",!0)])],64)}}},[["__scopeId","data-v-02673744"]]),ce=f({__name:"UserProfileModal",setup(n){const l=()=>{t("log","at pages/UserProfileModal/UserProfileModal.vue:55","点击了返回"),uni.navigateBack({delta:1,fail(){uni.reLaunch({url:"/pages/Chat/Chat"})}})},c=async()=>{if(d.value.trim()){uni.showLoading({title:"保存中...",mask:!0});try{await(e=i.value,a=r.value,n=d.value.trim(),s=m.value.trim(),c=u.value,new Promise(((t,l)=>{uni.request({url:`${o}/cloud_api/update_user_profile`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,user_id:a,username:n,"email:":s,avatar:c},success:e=>{if(200===e.statusCode){const a=e.data;if(a.success)t(a.message);else{const e=(null==a?void 0:a.error)||"修改用户信息出错啦";l(e)}}else l(`修改用户信息失败:${e.statusCode}`)}})}))),uni.hideLoading(),uni.showToast({title:"保存成功",icon:"success"}),setTimeout((()=>{l()}),800)}catch(v){uni.hideLoading();const e="string"==typeof v?v:"保存失败,请稍后重试";uni.showToast({title:e,icon:"none"}),t("error","at pages/UserProfileModal/UserProfileModal.vue:93","保存用户信息失败:",v)}var e,a,n,s,c}else uni.showToast({title:"用户名不能为空",icon:"none"})},i=e.ref(""),r=e.ref(""),u=e.ref(""),d=e.ref(""),m=e.ref(""),v=e.ref(!1),p=e.ref(!1),f=()=>{uni.chooseImage({count:1,sizeType:["compressed"],sourceType:["album","camera"],success:e=>{const t=e.tempFilePaths[0];h(t)},fail:e=>{t("log","at pages/UserProfileModal/UserProfileModal.vue:116","选择图片失败",e)}})},h=e=>{u.value=e};return e.onMounted((async()=>{i.value=k();try{const e=await s(i.value);r.value=e._id||"",u.value=e.avatar||"",d.value=e.username||"",m.value=e.email||""}catch(e){t("error","at pages/UserProfileModal/UserProfileModal.vue:135","获取用户信息失败:",e),uni.showToast({title:"加载用户信息失败",icon:"none"})}})),(t,n)=>{const o=a(e.resolveDynamicComponent("uni-icons"),w);return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),e.createElementVNode("view",{class:"user-profile page-container"},[e.createElementVNode("view",{class:"modal-header"},[e.createElementVNode("view",{class:"modal-left",onClick:l},[e.createElementVNode("view",{class:"iconfont icon-fanhui custom-navbar-icon"})]),e.createElementVNode("view",{class:"modal-title"},[e.createElementVNode("view",{class:"title-text"},"编辑资料")]),e.createElementVNode("view",{class:"modal-right",onClick:c},[e.createElementVNode("view",{class:"save-btn"},"保存")])]),e.createElementVNode("view",{class:"modal-body"},[e.createElementVNode("view",{class:"avatar-upload-section",onClick:f},[e.createElementVNode("view",{class:"avatar-upload-container"},[u.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"avatar-preview"},[e.createElementVNode("image",{src:u.value,mode:"aspectFill"},null,8,["src"])])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"avatar-placeholder"},[e.createVNode(o,{type:"person-filled",size:"100rpx",color:"#ffffff"})]))])]),e.createElementVNode("view",{class:"form-card"},[e.createElementVNode("view",{class:"form-field"},[e.createElementVNode("view",{class:"form-text"},"用户名"),e.withDirectives(e.createElementVNode("input",{"adjust-position":"false",class:e.normalizeClass(["form-field-input form-field-username",{"edit-input-focus":v.value}]),"onUpdate:modelValue":n[0]||(n[0]=e=>d.value=e),onFocus:n[1]||(n[1]=e=>v.value=!0),onBlur:n[2]||(n[2]=e=>v.value=!1)},null,34),[[e.vModelText,d.value]])]),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("view",{class:"form-field"},[e.createElementVNode("view",{class:"form-text"},"邮箱"),e.withDirectives(e.createElementVNode("input",{"adjust-position":"false",class:e.normalizeClass(["form-field-input form-field-emile",{"edit-input-focus":p.value}]),"onUpdate:modelValue":n[3]||(n[3]=e=>m.value=e),onFocus:n[4]||(n[4]=e=>p.value=!0),onBlur:n[5]||(n[5]=e=>p.value=!1)},null,34),[[e.vModelText,m.value]])])]),e.createElementVNode("view",{class:"prompt-content"},"*保存后再返回哟")])])],64)}}},[["__scopeId","data-v-8fad524d"]]),ie=f({__name:"ContactPages",setup(n){const o=K(),l=()=>{uni.navigateBack({delta:1,fail(){uni.reLaunch({url:"/pages/Chat/Chat"})}})},r=(e,t="")=>{uni.setStorageSync("chatType",e),t&&uni.setStorageSync("currentSessionId",t),uni.reLaunch({url:"/pages/Chat/Chat"})},u=e.ref(0),d=e.reactive([{name:"contacts",label:"通讯录",icon:"📞"},{name:"createGroup",label:"新建群聊",icon:"👥"},{name:"addFriend",label:"添加好友",icon:"➕"},{name:"friendRequest",label:"好友申请",icon:"📨"}]),m=e=>{u.value=e.detail.current},v=e.ref(""),p=e.ref(""),f="宇恒一号",h=e.ref([]),g=async()=>{try{t("log","at pages/ContactPages/ContactPages.vue:442","开始获取好友列表"),v.value=k();const e=await s(v.value);p.value=e._id,t("log","at pages/ContactPages/ContactPages.vue:446","UserId.value:",p.value);const a=await J(p.value);t("log","at pages/ContactPages/ContactPages.vue:448","friendList:",a),a&&a.length?h.value=await y(a):(h.value=[],t("log","at pages/ContactPages/ContactPages.vue:453","好友列表为空"))}catch(e){t("error","at pages/ContactPages/ContactPages.vue:456","获取好友列表失败:",e),h.value=[]}},y=async e=>{if(!(null==e?void 0:e.length))return[];try{const t=e.map((e=>e.receiver)),a=await c(v.value,t),n=new Map(a.map((e=>[e.user_id,e]))||[]);return e.map((e=>{const t=n.get(e.receiver);return{...e,avatar:(null==t?void 0:t.avatar)||null}}))}catch(a){return t("error","at pages/ContactPages/ContactPages.vue:477","获取好友头像失败",a),e}};e.onMounted((async()=>{await g(),await N(),await z(),o.isConnected||(v.value&&p.value?o.connect({token:v.value,UserId:p.value}):t("warn","at pages/ContactPages/ContactPages.vue:341","Token或UserId未准备好"))}));const E=e.ref([]),N=async()=>{try{t("log","at pages/ContactPages/ContactPages.vue:494","开始获取群聊列表"),v.value=k();const e=await s(v.value);p.value=e._id,t("log","at pages/ContactPages/ContactPages.vue:498","UserId.value:",p.value),E.value=await H(p.value)}catch(e){t("error","at pages/ContactPages/ContactPages.vue:501","获取群聊列表失败:",e),E.value=[]}},C=e.ref(""),b=e.ref(),V=async()=>{try{if(!C.value)return void uni.showToast({title:"群名称不能为空",icon:"none"});if(0===B.value.length)return void uni.showToast({title:"请选择群成员",icon:"none"});await new Promise(((e,a)=>{if(o.isConnected)return void e();if(!v.value||!p.value)return void a(new Error("Token或UserId未准备好"));t("log","at pages/ContactPages/ContactPages.vue:522","friendSocket 未连接,正在建立连接..."),o.connect({token:v.value,UserId:p.value});const n=setInterval((()=>{o.isConnected&&(clearInterval(n),t("log","at pages/ContactPages/ContactPages.vue:531","friendSocket 连接已建立"),e())}),100);setTimeout((()=>{clearInterval(n),o.isConnected||a(new Error("连接超时"))}),1e4)}));const e=B.value.map((e=>e.id));b.value={version:"1.1",body:{command:3,userIds:e,message:"我来邀请你们了",sender:p.value,callBackMessage:!0,groupName:C.value,teamCreateReq:{access_token:v.value}}};await o.send(b.value)?await _():t("log","at pages/ContactPages/ContactPages.vue:587","发送新建群聊消息失败")}catch(e){t("log","at pages/ContactPages/ContactPages.vue:590",e),uni.showToast({title:`新建群聊失败${e}`,icon:"none"})}},_=()=>new Promise(((a,n)=>{const l=setTimeout((()=>{n(new Error("超时未返回群聊创建结果"))}),18e4),s=e.watch((()=>o.command),(async e=>{if(t("log","at pages/ContactPages/ContactPages.vue:609","创建一个一次性监听器"),e&&3===o.command){t("log","at pages/ContactPages/ContactPages.vue:611","监听到command的值是3,检查群聊是否创建成功",o.command);try{await N();const e=E.value.find((e=>e.id===o.groupId));e?(t("log","at pages/ContactPages/ContactPages.vue:618","✅ 新建群聊成功",e),B.value=[],u.value=0):t("log","at pages/ContactPages/ContactPages.vue:623","❌ 新建群聊失败 / 群组不存在")}catch(a){t("error","at pages/ContactPages/ContactPages.vue:627","保存AI回复失败:",a),n(a)}finally{o.command=null,o.groupId=null,s(),clearTimeout(l)}}}))})),B=e.ref([]),S=e.ref(!1),x=e.ref(""),T=e.ref([]),D=async()=>{if(!x.value.trim())return void(T.value=[]);const e=x.value.toLowerCase().trim();T.value=await i(v.value,e),t("log","at pages/ContactPages/ContactPages.vue:676","searchResultList.value:",JSON.stringify(T.value))},j=()=>{S.value=!S.value},P=e.ref(null),$=()=>{P.value=null,M.value=!1},L=e.ref("");e.ref(!1),e.ref(!1);const M=e.ref(!1),I=e.ref([]),z=async()=>{try{if(!p.value)return;const e=await(async e=>new Promise(((t,a)=>{uni.request({url:`${R}/api/friendship/getFriendship`,method:"POST",data:{current:1,size:100,sendId:e},success:e=>{var n;if(200===e.statusCode){const o=e.data;if(0===(null==o?void 0:o.code)||"成功"===(null==o?void 0:o.msg)){const e=(null==(n=null==o?void 0:o.data)?void 0:n.records)||[];t(e)}else{const t=e.data.msg||"获取添加我的好友出错啦";a(t)}}else a(`获取添加我的好友失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";a(t)}})})))(p.value);e&&e.length?I.value=await F(e):I.value=[]}catch(e){t("error","at pages/ContactPages/ContactPages.vue:732","获取好友申请列表失败:",e),I.value=[]}},F=async e=>{if(!(null==e?void 0:e.length))return[];try{const t=e.map((e=>e.sendId)),a=await c(v.value,t),n=new Map(a.map((e=>[e.user_id,e]))||[]);return e.map((e=>{const t=n.get(e.sendId);return{...e,avatar:(null==t?void 0:t.avatar)||null}}))}catch(a){return t("error","at pages/ContactPages/ContactPages.vue:751","获取申请人头像失败",a),e}},O=async()=>{if(M.value)try{const e=P.value.sendId,t=L.value||P.value.friendNickName||"",a=P.value.sessionId||Date.now(),n=P.value.id;await(async e=>new Promise(((t,a)=>{uni.request({url:`${R}/api/chatList/save`,method:"POST",header:{"Content-Type":"application/json"},data:e,success:e=>{if(200===e.statusCode){const n=e.data;if(0===(null==n?void 0:n.code)||"成功"===(null==n?void 0:n.msg))t("保存好友成功");else{const e=(null==n?void 0:n.msg)||"保存好友出错啦";a(e)}}else a(`保存好友失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";a(t)}})})))([{friendNickName:t,sender:p.value,receiver:e,sessionId:a,friendRelationshipId:n},{friendNickName:"",sender:e,receiver:p.value,sessionId:a,friendRelationshipId:n}]),uni.showToast({title:"已同意好友申请",icon:"none"});const o=I.value.find((t=>t.sendId===e));o&&(o.status=1),$(),await g()}catch(e){t("error","at pages/ContactPages/ContactPages.vue:795","同意好友申请失败:",e),uni.showToast({title:"操作失败",icon:"none"})}else try{const e=P.value._id,a=await(async(e,a,n)=>new Promise(((o,l)=>{t("log","at utils/friend-api.js:239","进入sendFriendRequest"),uni.request({url:`${R}/api/friendship/saveShip`,method:"POST",data:{sendId:e,friendNickName:a,recipientId:n},success:e=>{if(200===e.statusCode){const t=e.data;if(0===(null==t?void 0:t.code)||"成功"===(null==t?void 0:t.msg))o("已成功发送好友申请");else{const t=e.data.msg||"发送好友申请出错啦";l(t)}}else l(`发送好友申请失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";l(t)}})})))(p.value,L.value,e);uni.showToast({title:a,icon:"none"}),$()}catch(e){t("error","at pages/ContactPages/ContactPages.vue:806","发送好友申请失败:",e),uni.showToast({title:"发送申请失败",icon:"none"})}};return(n,o)=>{const s=a(e.resolveDynamicComponent("uni-icons"),w);return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),P.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"popup-overlay"},[e.createElementVNode("view",{class:"popup-card"},[e.createElementVNode("view",{class:"close-popup-card",onClick:$},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},e.toDisplayString(M.value?"通过好友申请":"申请添加朋友"),1),e.createElementVNode("view",{class:"friend-card"},[e.createElementVNode("view",{class:"friend-card-left"},[P.value.avatar?(e.openBlock(),e.createElementBlock("image",{key:0,src:P.value.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"friend-avatar"},[e.createVNode(s,{type:"person-filled",size:"100rpx",color:"#ffffff"})]))]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(P.value.username),1),e.createElementVNode("view",{class:"friend-label"},e.toDisplayString(P.value.sessionId),1)])]),e.createElementVNode("view",{class:"nickname-wrapper"},[e.createElementVNode("view",null,"好友备注"),e.withDirectives(e.createElementVNode("input",{class:"input-nickname",placeholder:"请输入好友名称","onUpdate:modelValue":o[0]||(o[0]=e=>L.value=e)},null,512),[[e.vModelText,L.value]])]),e.createElementVNode("view",{class:"text-btn confirm-btn",onClick:O},e.toDisplayString(M.value?"确认通过":"发送申请"),1)])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"tabbar-page page-container"},[e.createElementVNode("swiper",{class:"content-swiper",current:u.value,duration:300,onChange:m},[e.createElementVNode("swiper-item",{class:"content-swiper-item"},[e.createElementVNode("view",{class:"tabpage-containner"},[e.createElementVNode("view",{class:"tabpage-header"},[e.createElementVNode("view",{class:"iconfont icon-fanhui",onClick:l}),e.createElementVNode("view",{class:"tabpage-title"},"通讯录")]),e.createElementVNode("view",{class:"tabpage-body"},[e.createElementVNode("scroll-view",{class:"group-member",direction:"vertical","scroll-y":"true"},[e.createElementVNode("view",{class:"friend-list"},[e.createElementVNode("view",{class:"friend-card",onClick:o[1]||(o[1]=e=>r(0))},[e.createElementVNode("view",{class:"friend-card-left"},[e.createElementVNode("view",{class:"friend-avatar",style:{"background-color":"#38bdf8"}},[e.createElementVNode("view",{class:"iconfont icon-Robot",style:{"font-size":"80rpx",color:"#fff"}})])]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(f),1),e.createElementVNode("view",{class:"friend-label"})]),e.createElementVNode("view",{class:"friend-card-right"},[e.createVNode(s,{type:"right"})])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"friend-card",key:t.sessionId,onClick:e=>r(t.type,t.sessionId)},[e.createElementVNode("view",{class:"friend-card-left"},[t.avatar?(e.openBlock(),e.createElementBlock("image",{key:0,src:t.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"friend-avatar"},[e.createVNode(s,{type:"person-filled",size:"100rpx",color:"#ffffff"})]))]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(t.friendNickName),1),e.createElementVNode("view",{class:"friend-label"},e.toDisplayString(t.sessionId),1)]),e.createElementVNode("view",{class:"friend-card-right"},[e.createVNode(s,{type:"right"})])],8,["onClick"])))),128)),e.createElementVNode("view",null,"群聊"),e.createElementVNode("view",{class:"solid-line"}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"friend-card",key:t.id,onClick:e=>r(t.type,t.id)},[e.createElementVNode("view",{class:"friend-card-left"},[e.createElementVNode("view",{class:"friend-avatar",style:{"background-color":"#ffaaff"}},[e.createElementVNode("view",{class:"iconfont icon-qunliao",style:{"font-size":"80rpx",color:"#fff"}})])]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(t.name),1),e.createElementVNode("view",{class:"friend-label"},e.toDisplayString(t.createTime),1)]),e.createElementVNode("view",{class:"friend-card-right"},[e.createVNode(s,{type:"right"})])],8,["onClick"])))),128))])])])])]),e.createElementVNode("swiper-item",{class:"content-swiper-item"},[e.createElementVNode("view",{class:"tabpage-containner"},[e.createElementVNode("view",{class:"tabpage-header"},[e.createElementVNode("view",{class:"iconfont icon-fanhui",onClick:l}),e.createElementVNode("view",{class:"tabpage-title"},"新建群聊")]),e.createElementVNode("view",{class:"tabpage-body"},[e.createElementVNode("view",{class:"group-info"},[e.createElementVNode("view",{class:"group-name"},[e.createElementVNode("view",null,"群名称"),e.withDirectives(e.createElementVNode("input",{class:"input",placeholder:"请输入群名称","onUpdate:modelValue":o[2]||(o[2]=e=>C.value=e)},null,512),[[e.vModelText,C.value]])]),e.createElementVNode("view",{class:"group-member-wrapper"},[e.createElementVNode("view",{class:"member-title"},"群成员"),e.createElementVNode("view",{class:"group-ismember-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,((t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"group-ismember-info",key:a},[e.createElementVNode("view",{class:"group-ismember-name"},e.toDisplayString(t.friendNickName),1)])))),128))])]),e.createElementVNode("view",{class:"create-group-btn",onClick:V},"创建群聊")]),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("scroll-view",{class:"group-member",direction:"vertical","scroll-y":"true"},[e.createElementVNode("view",{class:"friend-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(a=>{var n;return e.openBlock(),e.createElementBlock("view",{class:"friend-card",key:a.receiver},[e.createElementVNode("view",{class:"friend-card-left"},[a.avatar?(e.openBlock(),e.createElementBlock("image",{key:0,src:a.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"friend-avatar"},[e.createVNode(s,{type:"person-filled",size:"100rpx",color:"#ffffff"})]))]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(a.friendNickName),1),e.createElementVNode("view",{class:"friend-label"},e.toDisplayString(a.email),1)]),e.createElementVNode("view",{class:"friend-card-right",onClick:e=>(e=>{t("log","at pages/ContactPages/ContactPages.vue:648","选择的好友id:",e),t("log","at pages/ContactPages/ContactPages.vue:649","selectGroupMember.value=",JSON.stringify(B.value));const a=B.value.findIndex((t=>t.id===e));if(-1===a){const t=h.value.find((t=>t.receiver===e));t&&B.value.push({id:t.receiver,friendNickName:t.friendNickName})}else B.value.splice(a,1)})(a.receiver)},[e.createElementVNode("view",{class:"friend-checkbox"},[(null==(n=B.value)?void 0:n.find((e=>e.id===a.receiver)))?(e.openBlock(),e.createBlock(s,{key:0,type:"checkmarkempty"})):e.createCommentVNode("",!0)])],8,["onClick"])])})),128))])])])])]),e.createElementVNode("swiper-item",{class:"content-swiper-item"},[e.createElementVNode("view",{class:"tabpage-containner"},[e.createElementVNode("view",{class:"tabpage-header"},[e.createElementVNode("view",{class:"iconfont icon-fanhui",onClick:l}),e.createElementVNode("view",{class:"tabpage-title"},"添加好友")]),e.createElementVNode("view",{class:"tabpage-body"},[e.createElementVNode("view",{class:"search-warpper"},[e.withDirectives(e.createElementVNode("input",{class:e.normalizeClass(["search-file-input",{active:S.value}]),onFocus:j,onBlur:j,"onUpdate:modelValue":o[3]||(o[3]=e=>x.value=e),"confirm-type":"search",onConfirm:D},null,34),[[e.vModelText,x.value]]),e.createElementVNode("view",{class:"iconfont icon-sousuo",onClick:D})]),x.value?T.value.length?(e.openBlock(),e.createElementBlock("view",{key:1,class:"search-result"},[e.createElementVNode("scroll-view",{class:"group-member",direction:"vertical","scroll-y":"true"},[e.createElementVNode("view",{class:"friend-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.value,(a=>(e.openBlock(),e.createElementBlock("view",{class:"friend-card",key:a.id},[e.createElementVNode("view",{class:"friend-card-left"},[e.createElementVNode("view",{class:"friend-avatar"},[e.createElementVNode("image",{class:"friend-avatar",src:a.avatar,mode:"aspectFill"},null,8,["src"])])]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(a.nickname),1),e.createElementVNode("view",{class:"friend-label"},e.toDisplayString(a.email),1)]),e.createElementVNode("view",{class:"friend-card-right",onClick:e=>(e=>{const a=T.value.find((t=>t._id===e));a?P.value={...a}:(t("warn","at pages/ContactPages/ContactPages.vue:697","未找到该好友"),P.value=null)})(a._id)},[e.createElementVNode("view",{class:"add-btn text-btn"},"添加")],8,["onClick"])])))),128))])])])):(e.openBlock(),e.createElementBlock("view",{key:2,class:"no-result"},"未找到相关用户,请尝试其他关键词")):(e.openBlock(),e.createElementBlock("view",{key:0,class:"search-tip"},"请输入用户名或邮箱进行搜索"))])])]),e.createElementVNode("swiper-item",{class:"content-swiper-item"},[e.createElementVNode("view",{class:"tabpage-containner"},[e.createElementVNode("view",{class:"tabpage-header"},[e.createElementVNode("view",{class:"iconfont icon-fanhui",onClick:l}),e.createElementVNode("view",{class:"tabpage-title"},"好友申请")]),e.createElementVNode("view",{class:"tabpage-body"},[I.value.length?(e.openBlock(),e.createElementBlock("scroll-view",{key:1,class:"group-member",direction:"vertical","scroll-y":"true"},[e.createElementVNode("view",{class:"friend-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"friend-card",key:t.id},[e.createElementVNode("view",{class:"friend-card-left"},[t.avatar?(e.openBlock(),e.createElementBlock("image",{key:0,src:t.avatar,class:"friend-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"friend-avatar"},[e.createVNode(s,{type:"person-filled",size:"100rpx",color:"#ffffff"})]))]),e.createElementVNode("view",{class:"friend-card-middle"},[e.createElementVNode("view",{class:"friend-name"},e.toDisplayString(t.friendNickName||t.sendId),1),e.createElementVNode("view",{class:"friend-label"},e.toDisplayString(t.message||"请求添加你为好友"),1)]),e.createElementVNode("view",{class:"friend-card-right"},[0===t.state?(e.openBlock(),e.createElementBlock("view",{key:0,class:"friend-option"},[e.createElementVNode("view",{class:"agree-btn text-btn",onClick:e=>(e=>{M.value=!0,P.value={...e,username:e.friendNickName||e.sendId}})(t)},"同意",8,["onClick"])])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"friend-status agreed"},"已同意"))])])))),128))])])):(e.openBlock(),e.createElementBlock("view",{key:0,class:"no-result"},"暂无好友申请"))])])])],40,["current"]),e.createElementVNode("view",{class:"bottom-tabbar"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d,((t,a)=>(e.openBlock(),e.createElementBlock("view",{key:t.name,onClick:e=>(e=>{u.value=e})(a),class:"tab-item"},[e.createElementVNode("view",{class:"tab-icon"},e.toDisplayString(t.icon),1),e.createElementVNode("view",{class:"tab-label"},e.toDisplayString(t.label),1)],8,["onClick"])))),128))])])],64)}}},[["__scopeId","data-v-d6fd7c06"]]),re=f({__name:"TemplateSpace",setup(a){const n=e=>{if(!e)return"";const t=Math.floor(e),a=new Date(1e3*t);return`${a.getFullYear()}-${(a.getMonth()+1).toString().padStart(2,"0")}-${a.getDate().toString().padStart(2,"0")} ${a.getHours().toString().padStart(2,"0")}:${a.getMinutes().toString().padStart(2,"0")}:${a.getSeconds().toString().padStart(2,"0")}`},o=e=>{if(!e||0===e)return"0 B";const t=["B","KB","MB","GB","TB"];let a=e,n=0;for(;a>=1024&&n{t("log","at pages/WorkSpace/TemplateSpace/TemplateSpace.vue:188","点击了编辑模板")},c=e.ref(""),i=e.ref([]),r=e=>{c.value=e,"all"===e&&(d.value="全部模板",i.value=y.value),"like"===e&&(d.value="收藏模板",i.value=y.value.filter((e=>!0===e.is_favorite)))},u=e.ref(""),d=e.ref("模板区"),m=e.ref(!1),v=e.ref([]),p=()=>{m.value&&(v.value=[]),m.value=!m.value},f=e.ref(!1),h=()=>{f.value=!f.value},g=e.ref(""),w=e.ref(!1),k=()=>{w.value=!w.value},y=e.ref([{name:"SKILL.md",type:"file",path:"SKILL.md",children:[],file_count:0,directory_count:0,size:4768,modified_time:1776827361.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"khgvshbbthvgbihepiubjhrviifdhiuhrviuehrviuawhiuvrhy"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"khgvshbbthvgbihepiubjhiuvrhy"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"该回家看了的法国红酒看来法帝国海军快来尝尝v吧给v复仇计划曝光vi计划日方提供与i哦的风格和健康"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"的法国红酒看来法帝国海军快来尝尝v吧给"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:""},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"khgvshbbthvgbihepiubjhrviifdhiuhrviuehrviuawhiuvrhy"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"khgvshbbthvgbihepiubjhrviifdhiuhrviuehrviuawhiuvrhy"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"khgvshbbthvgbihepiubjhrviifdhiuhrviuehrviuawhiuvrhy"},{name:"222.md",type:"file",path:"222.md",children:[],file_count:0,directory_count:0,size:5558,modified_time:1776827666.9123552,extension:".md",is_favorite:!1,usage_count:0,sort:0,content:"khgvshbbthvgbihepiubjhrviifdhiuhrviuehrviuawhiuvrhy"}]),E=()=>{m.value?v.value.length===i.value.length?v.value=[]:v.value=i.value.map((e=>e.id)):(!m.value&&i.value&&(i.value=[],c.value="",d.value="模板区"),m.value||i.value||uni.navigateBack({delta:1,fail(){t("log","at pages/WorkSpace/TemplateSpace/TemplateSpace.vue:468","返回失败,进入兜底跳转"),uni.reLaunch({url:"/pages/Chat/Chat"})}}))};return(t,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),e.createElementVNode("view",{class:"popup-overlay"},[e.createElementVNode("view",{class:"popup-card"},[e.createElementVNode("view",{class:"close-popup-card"},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},"编辑模板"),e.createElementVNode("view",{class:"edit-template-wrapper"},[e.createElementVNode("view",{class:"edit-template-name"},[e.createElementVNode("view",null,"模板名称"),e.withDirectives(e.createElementVNode("input",{"placeholder-style":"请输入模板名称","onUpdate:modelValue":a[0]||(a[0]=e=>l.value=e)},null,512),[[e.vModelText,l.value]])]),e.createElementVNode("view",{class:"edit-template-name"},[e.createElementVNode("view",null,"模板内容"),e.createElementVNode("view",{class:"markdown-editor-pane"},[e.createElementVNode("view",{class:"markdown-pane-header"}," 编辑 "),e.createElementVNode("textarea")]),e.createElementVNode("view",{class:"markdown-preview-pane"},[e.createElementVNode("view",{class:"markdown-pane-header"}," 预览 "),e.createElementVNode("view")])])])])]),e.createElementVNode("view",{class:"workspace-container page-container"},[e.createElementVNode("view",{class:"workspace-header"},[e.createElementVNode("view",{class:"custom-navbar"},[e.createElementVNode("view",{class:"navbar-left",onClick:a[1]||(a[1]=(...e)=>E&&E(...e))},[e.createElementVNode("view",{class:"iconfont icon-fanhui custom-navbar-icon"}),e.createElementVNode("view",{class:"navbar-before-title workspace-text"},e.toDisplayString(m.value?"全选":u.value),1)]),e.createElementVNode("view",{class:"navbar-title workspace-text"},e.toDisplayString(d.value),1),c.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"navbar-right"},[m.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"navbar-right-text workspace-text",onClick:a[2]||(a[2]=e=>p())}," 完成")):(e.openBlock(),e.createElementBlock("view",{key:1,class:e.normalizeClass(["iconfont icon-gengduo",f.value?"menu-open":"custom-navbar-icon"]),onClick:h},null,2))])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"menu-card"},[e.createElementVNode("view",{class:"menu-card-item",onClick:a[3]||(a[3]=e=>{p(),h()})},"选择"),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("view",{class:"menu-card-item"},"新建模板"),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("view",{class:"menu-card-item"},"上传模板")])):e.createCommentVNode("",!0)]),e.createElementVNode("view",{class:"search-file-warpper"},[e.createElementVNode("view",{class:"search-file"},[e.createElementVNode("view",{class:"iconfont icon-sousuo"}),e.withDirectives(e.createElementVNode("input",{class:"search-file-input",placeholder:"搜索",onFocus:k,"onUpdate:modelValue":a[4]||(a[4]=e=>g.value=e)},null,544),[[e.vModelText,g.value]])]),w.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"cancel-search",onClick:k},"取消")):e.createCommentVNode("",!0)])]),c.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("view",{key:0,class:"folder-grid"},[e.createElementVNode("view",{class:"folder-item",onClick:a[5]||(a[5]=e=>r("all"))},[e.createElementVNode("view",{class:"iconfont icon-a-wenjianjiawenjian folder-item-style"}),e.createElementVNode("view",{class:"folder-name"},"全部模板")]),e.createElementVNode("view",{class:"folder-item",onClick:a[6]||(a[6]=e=>r("like"))},[e.createElementVNode("view",{class:"iconfont icon-a-wenjianjiawenjian folder-item-style"}),e.createElementVNode("view",{class:"folder-name"},"收藏模板")])])),c.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"workspace-content"},[0===i.value.length?(e.openBlock(),e.createElementBlock("view",{key:0,class:"folder-null"},[e.createElementVNode("view",{class:"iconfont icon-wenjianjia"}),e.createTextVNode(" 暂无模板 ")])):e.createCommentVNode("",!0),i.value.length>0?(e.openBlock(),e.createElementBlock("view",{key:1,class:"template-grid"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,((t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"template-card",key:a},[e.createElementVNode("view",{class:"template-name"},e.toDisplayString(t.name),1),e.createElementVNode("view",{class:"template-content"},[e.createElementVNode("view",{class:"template-content-text"},e.toDisplayString(t.content),1)]),e.createElementVNode("view",{class:"template-info-wrapper"},[e.createElementVNode("view",{class:"template-item"},[e.createElementVNode("view",{class:"template-time background-style"},e.toDisplayString(n(t.modified_time)),1),e.createElementVNode("view",{class:"template-cache background-style"},e.toDisplayString(o(t.size)),1)]),e.createElementVNode("view",{class:"template-option"},[e.createElementVNode("view",{class:e.normalizeClass(["iconfont",t.is_favorite?"icon-favorite-fill":"icon-favorite"]),onClick:e=>(e=>{let t;"all"===c.value?t=y.value[e]:"like"===c.value&&(t=y.value.filter((e=>e.is_favorite))[e]);t&&(t.is_favorite=!t.is_favorite),"all"===c.value?i.value=[...y.value]:i.value=y.value.filter((e=>e.is_favorite))})(a)},null,10,["onClick"]),e.createElementVNode("view",{class:"iconfont icon-edit-fill",onClick:s}),e.createElementVNode("view",{class:"iconfont icon-choose-fill"})])])])))),128))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("view",{key:2,class:e.normalizeClass(["workspace-footer",{"folder-actions":v.value.length>0}])},[e.createElementVNode("view",{class:"iconfont icon-shangchuan"}),e.createElementVNode("view",{class:"iconfont icon-fuzhi"}),e.createElementVNode("view",{class:"iconfont icon-wenjian"}),e.createElementVNode("view",{class:"iconfont icon-del"}),e.createElementVNode("view",{class:"iconfont icon-gengduo"})],2)):e.createCommentVNode("",!0)])],64))}},[["__scopeId","data-v-2acd55d4"]]),ue={__name:"text",setup(t){const a=e.ref("");return e.onMounted((()=>{a.value='\n明白了!您希望在我的回复中直接嵌入可编辑的表单卡片。让我试试:\n\n---\n\n
    \n

    \n✏️ 直接在下方编辑任务\n

    \n\n
    \n
    \n\n\n
    \n\n
    \n\n\n
    \n\n
    \n
    \n\n\n
    \n
    \n\n\n
    \n
    \n\n
    \n\n\n
    \n\n
    \n\n
    \n\n\n\n
    \n
    \n\n
    \n\n
    \n\n\n\n\n
    \n
    \n\n
    \n\n\n
    \n
    \n
    \n\n\n\n---\n\n**✅ 您现在可以直接在上方的卡片中填写任务信息,点击"添加任务"即可!**\n\n填写完成后告诉我"已填好"或"添加",我会帮您确认是否成功!\n'})),(t,n)=>{return e.openBlock(),e.createElementBlock("view",null,[e.createElementVNode("view",{innerHTML:(o=a.value,o.replace(/<\/?script>/gi,(e=>{let t="";for(let a=0;a{const e=n.connectionStatus;return{"status-connected":"connected"===e,"status-connecting":"connecting"===e,"status-error":"error"===e,"status-disconnected":"disconnected"===e}})),i=()=>{o.value.token?n.connect({token:o.value.token,conversationId:y()}):uni.showToast({title:"请输入Token",icon:"none"})},r=()=>{n.disconnect()},u=async()=>{try{await n.sendPing()}catch(e){uni.showToast({title:"发送失败",icon:"none"})}},d=async()=>{if(l.value.trim())try{const e={ws_event:"message",data:{task_call_id:E(),result:{tools:[]}}};await n.send(e),l.value=""}catch(e){uni.showToast({title:"发送失败",icon:"none"})}},m=()=>{if(l.value.trim())try{const e=JSON.parse(l.value);l.value=JSON.stringify(e,null,2)}catch{uni.showToast({title:"不是有效的JSON",icon:"none"})}},v=()=>{};return e.watch((()=>n.isDisconnected),(e=>{e&&n.messageString&&t("log","at pages/text/text2.vue:253",n.messageString)})),e.onMounted((()=>{n.addLog("info","=== Socket测试页面 ==="),n.addLog("info","页面已加载"),n.isConnected&&n.addLog("info","当前已处于连接状态")})),e.onUnmounted((()=>{n.addLog("info","页面卸载")})),(t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"container"},[e.createElementVNode("view",{class:"status-card"},[e.createElementVNode("text",{class:"status-label"},"连接状态"),e.createElementVNode("view",{class:e.normalizeClass(["status-value",c.value])},[e.createElementVNode("text",null,e.toDisplayString(e.unref(n).getStatusText()),1)],2),e.unref(n).reconnectAttempts>0?(e.openBlock(),e.createElementBlock("view",{key:0,class:"status-info"},[e.createElementVNode("text",{class:"reconnect-info"},"重连次数: "+e.toDisplayString(e.unref(n).reconnectAttempts),1)])):e.createCommentVNode("",!0)]),e.createElementVNode("view",{class:"config-card"},[e.createElementVNode("text",{class:"section-title"},"连接配置"),e.createElementVNode("view",{class:"input-group"},[e.createElementVNode("text",{class:"input-label"},"Token"),e.withDirectives(e.createElementVNode("input",{class:"input-field","onUpdate:modelValue":a[0]||(a[0]=e=>o.value.token=e),placeholder:"请输入Token"},null,512),[[e.vModelText,o.value.token]])]),e.createElementVNode("view",{class:"input-group"},[e.createElementVNode("text",{class:"input-label"},"Conversation ID"),e.withDirectives(e.createElementVNode("input",{class:"input-field","onUpdate:modelValue":a[1]||(a[1]=e=>o.value.conversationId=e),placeholder:"请输入会话ID(可选)"},null,512),[[e.vModelText,o.value.conversationId]])])]),e.createElementVNode("view",{class:"control-card"},[e.createElementVNode("button",{class:"btn btn-primary",disabled:e.unref(n).isConnected||e.unref(n).isConnecting,onClick:i},e.toDisplayString(e.unref(n).isConnecting?"连接中...":"连接"),9,["disabled"]),e.createElementVNode("button",{class:"btn btn-danger",disabled:!e.unref(n).isConnected,onClick:r}," 断开 ",8,["disabled"]),e.createElementVNode("button",{class:"btn btn-secondary",onClick:u,disabled:!e.unref(n).isConnected}," Ping ",8,["disabled"])]),e.createElementVNode("view",{class:"send-card"},[e.createElementVNode("text",{class:"section-title"},"发送消息"),e.createElementVNode("view",{class:"send-input-wrapper"},[e.withDirectives(e.createElementVNode("textarea",{class:"send-input","onUpdate:modelValue":a[2]||(a[2]=e=>l.value=e),placeholder:"输入要发送的消息(JSON格式)",disabled:!e.unref(n).isConnected},null,8,["disabled"]),[[e.vModelText,l.value]]),e.createElementVNode("view",{class:"send-buttons"},[e.createElementVNode("button",{class:"btn btn-primary btn-small",disabled:!e.unref(n).isConnected||!l.value.trim(),onClick:d}," 发送 ",8,["disabled"]),e.createElementVNode("button",{class:"btn btn-outline btn-small",disabled:!l.value.trim(),onClick:m}," 格式化 ",8,["disabled"])])]),e.createElementVNode("view",{class:"quick-messages"},[e.createElementVNode("text",{class:"quick-label"},"快捷消息:"),e.createElementVNode("view",{class:"quick-btns"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(t=>(e.openBlock(),e.createElementBlock("button",{key:t.label,class:"quick-btn",disabled:!e.unref(n).isConnected,onClick:e=>(async e=>{const t={ws_event:"message",data:{task_call_id:E(),token:k(),conversation_id:y()}};try{await n.send(t)}catch(a){uni.showToast({title:"发送失败",icon:"none"})}})(t.data)},e.toDisplayString(t.label),9,["disabled","onClick"])))),128))])])]),e.createElementVNode("view",{class:"log-card"},[e.createElementVNode("view",{class:"log-header"},[e.createElementVNode("view",{class:"log-title-wrapper"},[e.createElementVNode("text",{class:"section-title"},"日志"),e.createElementVNode("text",{class:"log-count"},"("+e.toDisplayString(e.unref(n).logs.length)+")",1)]),e.createElementVNode("view",{class:"log-actions"},[e.createElementVNode("button",{class:"btn btn-small btn-secondary",onClick:a[3]||(a[3]=(...t)=>e.unref(n).clearLogs&&e.unref(n).clearLogs(...t))},"清空")])]),e.createElementVNode("scroll-view",{class:"log-list","scroll-y":"",onScrolltoupper:v},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n).logs,((t,a)=>(e.openBlock(),e.createElementBlock("view",{key:a,class:e.normalizeClass(["log-item","log-"+t.type])},[e.createElementVNode("text",{class:"log-time"},e.toDisplayString(t.time),1),e.createElementVNode("text",{class:"log-content"},e.toDisplayString(t.content),1)],2)))),128))],32)])]))}},[["__scopeId","data-v-939e1d1d"]]),me=f({__name:"CloudDatabase",setup(n){const l=e.ref(""),c=e.ref(""),p=e.ref(""),f=e.ref("user"),h=e=>{f.value=e,T.value=[],M()},g=e.ref("云端数据"),y=e.ref(!1),E=e.ref(!1),N=e.ref([]),C=()=>{y.value=!y.value},b=e.computed((()=>{var e;return 0===T.value.length?"":1===T.value.length?"云端数据":(null==(e=T.value[T.value.length-2])?void 0:e.name)||"云端数据"})),V=()=>{T.value.length>0?(T.value.pop(),g.value=T.value.length>0?T.value[T.value.length-1].name:"云端数据",M()):uni.navigateBack({delta:1,fail(){uni.reLaunch({url:"/pages/Chat/Chat"})}})},_=e.ref([]),B=e.ref([]),S=e.ref([]),x=e.ref([]),T=e.ref([]),D=e=>"folder"===e.type,j=e=>{if(D(e))return"icon-a-wenjianjiawenjian";const t=(e=>{if(D(e))return"folder";const t=e.name||"",a=t.lastIndexOf(".");return-1===a?"":t.slice(a).toLowerCase()})(e),a=(e.type||"").toLowerCase(),n={".png":"icon-wenjiantupian",".jpg":"icon-wenjiantupian",".jpeg":"icon-wenjiantupian",".gif":"icon-wenjiantupian",".svg":"icon-SVG",".bmp":"icon-wenjiantupian",".webp":"icon-wenjiantupian",".mp4":"icon-wenjianshipin",".avi":"icon-wenjianshipin",".mov":"icon-wenjianshipin",".wmv":"icon-wenjianshipin",".flv":"icon-wenjianshipin",".mkv":"icon-wenjianshipin",".mp3":"icon-wenjianyinpin",".wav":"icon-wenjianyinpin",".flac":"icon-wenjianyinpin",".aac":"icon-wenjianyinpin",".pdf":"icon-PDF",".doc":"icon-DOC",".docx":"icon-DOC",".xls":"icon-XLS",".xlsx":"icon-XLS",".ppt":"icon-PPT",".pptx":"icon-PPT",".txt":"icon-TXT",".md":"icon-file-markdown-fill",".zip":"icon-wenjianyasuo",".rar":"icon-wenjianyasuo",".7z":"icon-wenjianyasuo",".tar":"icon-wenjianyasuo",".gz":"icon-wenjianyasuo",".js":"icon-JS",".ts":"icon-daimawenjia",".vue":"icon-daimawenjia",".html":"icon-HTML",".css":"icon-CSS",".py":"icon-daimawenjian",".java":"icon-daimawenjian",".json":"icon-JSON"};return t&&n[t]?n[t]:a.startsWith("image/")?"icon-wenjiantupian":a.startsWith("video/")?"icon-wenjianshipin":a.startsWith("audio/")?"icon-wenjianyinpin":a.includes("spreadsheet")||a.includes("excel")?"icon-XLS":a.includes("document")||a.includes("word")?"icon-DOC":a.includes("presentation")||a.includes("powerpoint")?"icon-PPT":a.includes("pdf")?"icon-PDF":a.includes("zip")||a.includes("rar")||a.includes("tar")||a.includes("gzip")?"icon-wenjianyasuo":"icon-qitawenjian"},P=e=>e?e<1024?e+" B":e<1048576?(e/1024).toFixed(1)+" KB":(e/1048576).toFixed(1)+" MB":"",$=e.computed((()=>0===T.value.length?"根目录 (/)":"/"+T.value.map((e=>e.name)).join("/"))),L=e.computed((()=>_.value.length)),M=()=>{const e="user"===f.value?_.value:B.value;if(0===T.value.length)"user"===f.value?S.value=e:x.value=e;else{const e=T.value[T.value.length-1].children||[];"user"===f.value?S.value=e:x.value=e}},I=async()=>{try{l.value=k();const e=await s(l.value);c.value=e._id,p.value=uni.getStorageSync("workspace_id")||"";const t=await d(l.value,"user");_.value=t||[],"user"===f.value&&(S.value=t||[])}catch(e){t("error","at pages/CloudDatabase/CloudDatabase.vue:689","获取文件列表失败:",e),_.value=[],S.value=[]}},z=async e=>{try{e=null==e?"":String(e);const a=await d(l.value,"team","/",e);t("log","at pages/CloudDatabase/CloudDatabase.vue:700","团队云端文件:",JSON.stringify(a)),B.value=a||[],x.value=a||[]}catch(a){t("error","at pages/CloudDatabase/CloudDatabase.vue:704","获取团队文件列表失败:",a),B.value=[],x.value=[]}},F=e=>{D(e)?(T.value.push({path:e.path,name:e.name,children:e.children||[]}),g.value=e.name,M()):A(e)},O=e=>{if(E.value){const t=N.value.indexOf(e.id);return void(-1!==t?N.value.splice(t,1):N.value.push(e.id))}const t=D(e)?["重命名","删除"]:["下载","重命名","删除"];uni.showActionSheet({itemList:t,success:t=>{if(D(e))switch(t.tapIndex){case 0:J(e);break;case 1:H(e)}else switch(t.tapIndex){case 0:A(e);break;case 1:J(e);break;case 2:H(e)}}})},A=async e=>{var a,n;if(D(e))uni.showToast({title:"暂不支持下载目录",icon:"none"});else try{uni.showLoading({title:"获取下载链接..."});const t=await(a=l.value,n=e.id,new Promise(((e,t)=>{uni.request({url:`${o}/cloud_api/file/download`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:a,file_id:n},success:a=>{if(200===a.statusCode){const n=a.data;if(n.success)e(n.data.download_url);else{const e=(null==n?void 0:n.error)||"获取云端文件url出错啦";t(e)}}else t(`获取云端文件url失败:${a.statusCode}`)},fail:e=>{const a=e.errMsg||"网络错误";t(a)}})})));if(uni.hideLoading(),!t)return void uni.showToast({title:"获取下载链接失败",icon:"error"});uni.showLoading({title:"下载中..."}),uni.downloadFile({url:t,success:t=>{if(uni.hideLoading(),200===t.statusCode){const a=t.tempFilePath;U(e.name,a)}else uni.showToast({title:"下载失败",icon:"error"})},fail:()=>{uni.hideLoading(),uni.showToast({title:"下载失败,请重试",icon:"error"})}})}catch(s){uni.hideLoading(),t("error","at pages/CloudDatabase/CloudDatabase.vue:821","下载失败:",s),uni.showToast({title:"下载失败,请重试",icon:"error"})}},U=(e,a)=>{const n="/storage/emulated/0/yxd/";var o;o=o=>{plus.io.resolveLocalFileSystemURL(a,(l=>{l.copyTo(o,e,(()=>{const a=n+e;t("log","at pages/CloudDatabase/CloudDatabase.vue:864","文件已保存到:",a),q(e,a)}),(n=>{t("error","at pages/CloudDatabase/CloudDatabase.vue:868","复制文件失败:",JSON.stringify(n)),q(e,a)}))}),(n=>{t("error","at pages/CloudDatabase/CloudDatabase.vue:873","读取临时文件失败:",JSON.stringify(n)),q(e,a)}))},plus.io.resolveLocalFileSystemURL(n,(e=>{o(e)}),(()=>{plus.io.resolveLocalFileSystemURL("/storage/emulated/0/",(n=>{n.getDirectory("yxd",{create:!0},(e=>{o(e)}),(n=>{t("error","at pages/CloudDatabase/CloudDatabase.vue:845","创建 yxd 目录失败:",JSON.stringify(n)),uni.showToast({title:"创建目录失败",icon:"error"}),q(e,a)}))}),(n=>{t("error","at pages/CloudDatabase/CloudDatabase.vue:850","访问外部存储根目录失败:",JSON.stringify(n)),uni.showToast({title:"无法访问存储目录",icon:"error"}),q(e,a)}))}))},q=(e,t)=>{uni.showActionSheet({title:`${e} 下载完成`,itemList:["打开文件","选择其他应用打开","仅保存"],success:e=>{switch(e.tapIndex){case 0:W(t);break;case 1:R(t);break;case 2:uni.showToast({title:"文件已保存到 yxd 目录",icon:"success"})}},fail:()=>{uni.showToast({title:"文件已保存到 yxd 目录",icon:"success"})}})},W=e=>{uni.openDocument({filePath:e,success:()=>uni.showToast({title:"打开成功",icon:"success"}),fail:a=>{t("error","at pages/CloudDatabase/CloudDatabase.vue:936","打开文件失败:",a),R(e)}})},R=e=>{plus.runtime.openFile(e,{},(e=>{t("log","at pages/CloudDatabase/CloudDatabase.vue:948","文件打开成功")}))},J=e=>{uni.showModal({title:"重命名",content:"请输入新名称",editable:!0,placeholderText:e.name,success:e=>{e.confirm&&e.content&&(uni.showToast({title:"重命名成功",icon:"success"}),G())}})},H=e=>{const a=D(e)?`确定要删除目录"${e.name}"吗?目录内所有文件将被一并删除。`:`确定要删除文件"${e.name}"吗?`;uni.showModal({title:"删除确认",content:a,confirmText:"删除",confirmColor:"#e74c3c",success:async a=>{if(a.confirm){uni.showLoading({title:"删除中..."});try{await(n=l.value,s=e.id,new Promise(((e,t)=>{uni.request({url:`${o}/cloud_api/file/delete`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:n,file_id:s},success:a=>{if(200===a.statusCode){const n=a.data;if(n.success)e(n.message);else{const e=(null==n?void 0:n.error)||"删除云端文件出错啦";t(e)}}else t(`删除云端文件失败:${a.statusCode}`)},fail:e=>{const a=e.errMsg||"网络错误";t(a)}})}))),uni.hideLoading(),uni.showToast({title:"删除成功",icon:"success"}),G()}catch(c){uni.hideLoading(),t("error","at pages/CloudDatabase/CloudDatabase.vue:1014","deleteCloudFile 失败,尝试 daleteWorkspace:",c);try{const t=e.path||"/"+e.name;p.value&&await r(l.value,p.value,t),uni.showToast({title:"删除成功",icon:"success"}),G()}catch(i){t("error","at pages/CloudDatabase/CloudDatabase.vue:1026","删除失败:",i),uni.showToast({title:"删除失败,请重试",icon:"error"})}}}var n,s}})},G=async()=>{"user"===f.value?await I():await z(Te.value)},X=e.ref(!1),K=e.ref(""),Y=()=>{X.value=!1,K.value=""},Q=async()=>{const e=K.value.trim();if(e)try{if(p.value){const t=("根目录 (/)"===$.value?"/":$.value)+e;await u(l.value,p.value,t)}uni.showToast({title:"创建成功",icon:"success"}),Y(),G()}catch(a){t("error","at pages/CloudDatabase/CloudDatabase.vue:1083","创建文件夹失败:",a),uni.showToast({title:"创建失败,请重试",icon:"error"})}else uni.showToast({title:"请输入目录名称",icon:"none"})},Z=e.ref(!1),ee=e.ref("/"),te=()=>{Z.value=!0,ee.value="/"},ae=()=>{Z.value=!1},ne=()=>{ee.value.trim()||(ee.value="/"),Z.value=!1,le()},le=()=>{oe({count:10,type:"all",success:e=>{const t=(e.tempFiles||[]).map((e=>({tempFilePath:e.path||e.tempFilePath,name:e.name})));0!==t.length?se(t):uni.showToast({title:"未选择文件",icon:"none"})},fail:e=>{t("error","at pages/CloudDatabase/CloudDatabase.vue:1133","选择文件失败:",e)}})},se=async e=>{uni.showLoading({title:"上传中..."});try{const t=ee.value.trim()||"/",a="user"===f.value?"user":"team",n="team"===f.value?Te.value:"";await((e,t,a,n,l)=>new Promise(((s,c)=>{const i=null==l?"":String(l);uni.uploadFile({url:`${o}/cloud_api/file/upload`,method:"POST",header:{},formData:{access_token:e,path:a||"/",type:t,team_id:i},files:n.map((e=>({uri:e.tempFilePath,name:"files"}))),success:e=>{if(200===e.statusCode)try{const t=JSON.parse(e.data);if(t.success)s(t.message);else{const e=(null==t?void 0:t.error)||"获取云端文件url出错啦";c(e)}}catch(t){c("接口返回数据格式异常")}else c(`获取云端文件url失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";c(t)}})})))(l.value,a,t,e,n),uni.hideLoading(),uni.showToast({title:"上传成功",icon:"success"}),G()}catch(a){uni.hideLoading(),t("error","at pages/CloudDatabase/CloudDatabase.vue:1159","上传文件失败:",a),uni.showToast({title:"上传失败,请重试",icon:"error"})}},ce=e.ref([]),ie=e.ref(!1),re=e.computed((()=>ce.value)),ue=e.computed((()=>ce.value.filter((e=>e.team_id&&String(e.team_id)===String(Te.value))))),de=e.ref(!1),me=e.ref(""),ve=async()=>{ie.value=!0;try{const e=k(),t=await(e=>new Promise(((t,a)=>{uni.request({url:`${o}/cloud_api/database/list`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e},success:e=>{if(200===e.statusCode){const n=e.data;if(n.success)t(n.databases);else{const e=(null==n?void 0:n.error)||"获取用户可访问的数据库列表出错啦";a(e)}}else a(`获取用户可访问的数据库列表失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";a(t)}})})))(e);ce.value=t||[]}catch(e){t("error","at pages/CloudDatabase/CloudDatabase.vue:1185","获取数据库列表失败:",e),ce.value=[]}finally{ie.value=!1}},pe=()=>{de.value=!0,me.value=""},fe=()=>{de.value=!1,me.value=""},he=async()=>{const e=me.value.trim();if(e){uni.showLoading({title:"创建中..."});try{const t=k();await((e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/cloud_api/database/create`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,database_name:t},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)a(t.message);else{const e=(null==t?void 0:t.error)||"创建数据库出错啦";n(e)}}else n(`创建数据库失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})))(t,e),uni.hideLoading(),uni.showToast({title:"创建成功",icon:"success"}),fe(),await ve()}catch(a){uni.hideLoading(),t("error","at pages/CloudDatabase/CloudDatabase.vue:1216","创建数据库失败:",a),uni.showToast({title:"创建失败,请重试",icon:"error"})}}else uni.showToast({title:"请输入数据库名称",icon:"none"})},ge=e.ref(!1),we=e.ref(""),ke=e.ref(""),ye=()=>{ge.value=!0,we.value="",ke.value=""},Ee=()=>{ge.value=!1},Ne=()=>{oe({count:1,type:"all",success:e=>{const t=e.tempFiles[0];we.value=t.name||"unknown",ke.value=t.path},fail:e=>{t("error","at pages/CloudDatabase/CloudDatabase.vue:1245","选择文件失败:",e),uni.showToast({title:"选择文件失败",icon:"none"})}})},Ce=async()=>{var e;if(!ke.value)return void uni.showToast({title:"请选择数据库文件",icon:"none"});const a=null==(e=we.value.split(".").pop())?void 0:e.toLowerCase();if(["db","sqlite","sqlite3"].includes(a)){uni.showLoading({title:"上传中..."});try{const e=k();await((e,t)=>new Promise(((a,n)=>{const l="string"==typeof t?t:t.tempFilePath||t.path||t,s="string"==typeof t?t.split("/").pop()||"database.db":t.name||"database.db";uni.uploadFile({url:`${o}/cloud_api/database/upload/db`,method:"POST",header:{},formData:{access_token:e},file:{name:s,uri:l},files:[{name:"file",uri:l}],success:e=>{if(200===e.statusCode)try{const t=JSON.parse(e.data);if(t.success)a(t.message);else{const e=(null==t?void 0:t.error)||"上传db出错啦";n(e)}}catch(t){n("接口返回数据格式异常")}else n(`上传db失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})))(e,ke.value),uni.hideLoading(),uni.showToast({title:"上传成功",icon:"success"}),Ee(),await ve()}catch(n){uni.hideLoading(),t("error","at pages/CloudDatabase/CloudDatabase.vue:1273","上传数据库失败:",n),uni.showToast({title:"上传失败,请重试",icon:"error"})}}else uni.showToast({title:"仅支持 .db / .sqlite / .sqlite3 文件",icon:"none"})},be=e=>{uni.showModal({title:"删除数据库",content:`确定要删除数据库"${e.database_name}"吗?此操作不可恢复。`,success:async a=>{if(a.confirm){uni.showLoading({title:"删除中..."});try{const t=k();await((e,t)=>new Promise(((a,n)=>{uni.request({url:`${o}/cloud_api/database/delete`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,database_id:t},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)a(t.message);else{const e=(null==t?void 0:t.error)||"删除数据库出错啦";n(e)}}else n(`删除数据库失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";n(t)}})})))(t,e.database_id),uni.hideLoading(),uni.showToast({title:"删除成功",icon:"success"}),await ve()}catch(n){uni.hideLoading(),t("error","at pages/CloudDatabase/CloudDatabase.vue:1293","删除数据库失败:",n),uni.showToast({title:"删除失败,请重试",icon:"error"})}}}})},Ve=e=>{uni.navigateTo({url:`/pages/CloudDbDetail/CloudDbDetail?databaseId=${e.database_id}&databaseName=${encodeURIComponent(e.database_name)}&teamId=${e.team_id||""}`})},_e=e=>{if(!e)return"";const t=new Date(1e3*e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`},Be=e=>({0:"无权限",1:"只读",2:"读写",3:"管理"}[e]||"未知"),Se=e.ref(!1),xe=e.ref([]),Te=e.ref(""),De=e.ref([]),je=e.ref(""),Pe=e.computed((()=>{if(!Te.value)return"";const e=xe.value.find((e=>e.id===Te.value));return(null==e?void 0:e.description)||""})),$e=e.computed((()=>{if(!Te.value)return"";const e=xe.value.find((e=>e.id===Te.value));return(null==e?void 0:e.type)||""})),Le=e.computed((()=>{if(!c.value||0===De.value.length)return"member";const e=De.value.find((e=>e.receiver===c.value||e.user_id===c.value));return(null==e?void 0:e.role)||"member"}));e.computed((()=>{const e=Le.value;return"admin"===e||"owner"===e}));const Me=async()=>{try{const e=k(),t=await m(e);xe.value=t||[]}catch(e){t("error","at pages/CloudDatabase/CloudDatabase.vue:1362","获取团队列表失败:",e),xe.value=[]}},Ie=async e=>{t("log","at pages/CloudDatabase/CloudDatabase.vue:1368","团队id为",e),Te.value=e;try{const t=k(),a=await v(t,e);De.value=(a||[]).map((e=>{var t,a,n,o,l;return{id:e._id,receiver:e.user_id,user_id:e.user_id,friendNickName:(null==(t=e.user)?void 0:t.username)||"",username:(null==(a=e.user)?void 0:a.username)||"",avatar:(null==(n=e.user)?void 0:n.avatar)||"",email:(null==(o=e.user)?void 0:o.email)||"",role:e.role||(null==(l=e.user)?void 0:l.role)||"member"}}))}catch(a){t("error","at pages/CloudDatabase/CloudDatabase.vue:1385","获取团队成员失败:",a),De.value=[]}T.value=[],g.value="云端数据",await z(e)},ze=async()=>{if(Te.value)try{const e=k(),t=await v(e,Te.value),a=(t||[]).find((e=>e.user_id===c.value)),n=(null==a?void 0:a.role)||"member";if("admin"!==n&&"owner"!==n)return void uni.showToast({title:"仅管理员可管理团队",icon:"none"});De.value=(t||[]).map((e=>{var t,a,n,o,l;return{id:e._id,receiver:e.user_id,user_id:e.user_id,friendNickName:(null==(t=e.user)?void 0:t.username)||"",username:(null==(a=e.user)?void 0:a.username)||"",avatar:(null==(n=e.user)?void 0:n.avatar)||"",email:(null==(o=e.user)?void 0:o.email)||"",role:e.role||(null==(l=e.user)?void 0:l.role)||"member"}}))}catch(e){return t("error","at pages/CloudDatabase/CloudDatabase.vue:1419","获取团队成员失败:",e),void uni.showToast({title:"获取团队信息失败",icon:"none"})}else if(xe.value.length>0){await Ie(xe.value[0].id),Se.value=!0;const e=De.value.find((e=>(e.receiver||e.user_id)===c.value)),t=(null==e?void 0:e.role)||"member";if("admin"!==t&&"owner"!==t)return Se.value=!1,void uni.showToast({title:"仅管理员可管理团队",icon:"none"})}Se.value=!0},Fe=()=>{Se.value=!1,je.value="",Ke.value=[],Ye.value=!1},Oe=e.ref(!1),Ae=e.ref(""),Ue=e.ref(""),qe=e.ref(""),We=()=>{const e=xe.value.find((e=>e.id===Te.value));e?(Ae.value=e.name||"",Ue.value=e.description||"",qe.value=e.type||"",Oe.value=!0):uni.showToast({title:"请先选择团队",icon:"none"})},Re=()=>{Oe.value=!1},Je=async()=>{const e=Ae.value.trim();if(e){uni.showLoading({title:"修改中..."});try{const t=k();await((e,t,a)=>new Promise(((n,l)=>{uni.request({url:`${o}/cloud_api/team/update`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,team_id:t,...a},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)n(t.message);else{const e=(null==t?void 0:t.error)||"修改团队信息出错啦";l(e)}}else l(`修改团队信息失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";l(t)}})})))(t,Te.value,{team_name:e,team_description:Ue.value.trim(),team_type:qe.value.trim()}),uni.hideLoading(),uni.showToast({title:"修改成功",icon:"success"}),Re(),await Me(),Te.value=Te.value}catch(a){uni.hideLoading(),t("error","at pages/CloudDatabase/CloudDatabase.vue:1491","修改团队信息失败:",a),uni.showToast({title:"修改失败,请重试",icon:"error"})}}else uni.showToast({title:"请输入团队名称",icon:"none"})},He=async(e,a)=>{const n=e.friendNickName||e.username||e.name;uni.showModal({title:"admin"===a?"设为管理员":"降为成员",content:`确定将"${n}"${"admin"===a?"设为管理员":"降为普通成员"}吗?`,success:async n=>{if(n.confirm){uni.showLoading({title:"操作中..."});try{const t=k(),n=e.receiver||e.user_id;await((e,t,a,n)=>new Promise(((l,s)=>{uni.request({url:`${o}/cloud_api/team/adjust_member_role`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,team_id:t,user_id:a,role:n},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)l(t.message);else{const e=(null==t?void 0:t.error)||"调整团员身份出错啦";s(e)}}else s(`调整团员身份失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";s(t)}})})))(t,Te.value,n,a),uni.hideLoading(),uni.showToast({title:"已"+("admin"===a?"设为管理员":"降为成员"),icon:"success"}),await Xe()}catch(l){uni.hideLoading(),t("error","at pages/CloudDatabase/CloudDatabase.vue:1516","调整成员身份失败:",l),uni.showToast({title:"操作失败,请重试",icon:"error"})}}}})},Ge=async e=>{const a=e.friendNickName||e.username||e.name;uni.showModal({title:"移除成员",content:`确定要移除"${a}"吗?`,success:async a=>{if(a.confirm){uni.showLoading({title:"移除中..."});try{const t=k(),a=e.receiver||e.user_id;await((e,t,a)=>new Promise(((n,l)=>{uni.request({url:`${o}/cloud_api/team/remove_member`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,team_id:t,user_ids:a},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)n(t.message);else{const e=(null==t?void 0:t.error)||"移除团队成员出错啦";l(e)}}else l(`移除团队成员失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";l(t)}})})))(t,Te.value,[a]),uni.hideLoading(),uni.showToast({title:"已移除",icon:"success"}),await Xe()}catch(n){uni.hideLoading(),t("error","at pages/CloudDatabase/CloudDatabase.vue:1542","移除团队成员失败:",n),uni.showToast({title:"移除失败,请重试",icon:"error"})}}}})},Xe=async()=>{const e=k(),t=await v(e,Te.value);De.value=(t||[]).map((e=>{var t,a,n,o;return{id:e._id,receiver:e.user_id,user_id:e.user_id,friendNickName:(null==(t=e.user)?void 0:t.username)||"",username:(null==(a=e.user)?void 0:a.username)||"",avatar:(null==(n=e.user)?void 0:n.avatar)||"",email:(null==(o=e.user)?void 0:o.email)||"",role:e.role||"member"}}))},Ke=e.ref([]),Ye=e.ref(!1),Qe=async()=>{const e=je.value.trim();if(e)try{const t=k(),a=await i(t,e);Ke.value=a||[],Ye.value=!0,Ke.value.length}catch(a){t("error","at pages/CloudDatabase/CloudDatabase.vue:1584","搜索用户失败:",a),Ke.value=[],Ye.value=!0}else uni.showToast({title:"请输入用户名或邮箱",icon:"none"})},Ze=e=>{uni.showModal({title:"添加成员",content:`确定将"${e.username}"添加到当前团队吗?`,success:async a=>{if(a.confirm){uni.showLoading({title:"添加中..."});try{const t=k();await((e,t,a)=>new Promise(((n,l)=>{uni.request({url:`${o}/cloud_api/team/add_member`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,team_id:t,user_ids:a,role:"admin"},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)n(t.message);else{const e=(null==t?void 0:t.error)||"添加团队成员出错啦";l(e)}}else l(`添加团队成员失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";l(t)}})})))(t,Te.value,[e._id]),uni.hideLoading(),uni.showToast({title:"添加成功",icon:"success"}),je.value="",Ke.value=[],Ye.value=!1,await Xe()}catch(n){uni.hideLoading(),t("error","at pages/CloudDatabase/CloudDatabase.vue:1610","添加团队成员失败:",n),uni.showToast({title:"添加失败,请重试",icon:"error"})}}}})},et=()=>{const e=xe.value.find((e=>e.id===Te.value)),a=e?e.name:"当前团队";uni.showModal({title:"删除团队",content:`确定要删除团队"${a}"吗?此操作不可撤销,团队内所有文件和数据将被永久删除。`,confirmText:"删除",confirmColor:"#e74c3c",success:async e=>{if(e.confirm){uni.showLoading({title:"删除中..."});try{await(a=l.value,n=Te.value,new Promise(((e,t)=>{uni.request({url:`${o}/cloud_api/team/delete`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:a,team_id:n},success:a=>{if(200===a.statusCode){const n=a.data;if(n.success)e(n.message);else{const e=(null==n?void 0:n.error)||"删除团队出错啦";t(e)}}else t(`删除团队失败:${a.statusCode}`)},fail:e=>{const a=e.errMsg||"网络错误";t(a)}})}))),uni.hideLoading(),uni.showToast({title:"团队已删除",icon:"success"}),Te.value="",De.value=[],x.value=[],T.value=[],g.value="云端数据",await Me(),Fe()}catch(s){uni.hideLoading(),t("error","at pages/CloudDatabase/CloudDatabase.vue:1644","删除团队失败:",s),uni.showToast({title:"删除失败,请重试",icon:"error"})}}var a,n}})};return e.onMounted((async()=>{await I(),await Me(),await ve()})),(t,n)=>{const o=a(e.resolveDynamicComponent("uni-icons"),w);return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("view",{class:"status-bar"}),Se.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"popup-overlay",onClick:Fe},[e.createElementVNode("view",{class:"popup-card",onClick:n[1]||(n[1]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"close-popup-card",onClick:Fe},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},"团队管理"),e.createElementVNode("scroll-view",{class:"team-manage-body","scroll-y":""},[0===De.value.length?(e.openBlock(),e.createElementBlock("view",{key:0,class:"folder-null"},"暂无团队成员")):(e.openBlock(),e.createElementBlock("view",{key:1,class:"member-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(De.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"member-item",key:t._id||t.receiver},[e.createElementVNode("view",{class:"member-avatar"},[t.avatar?(e.openBlock(),e.createElementBlock("image",{key:0,src:t.avatar,mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"default-avatar"},[e.createVNode(o,{type:"person-filled",size:"60rpx",color:"#ffffff"})]))]),e.createElementVNode("view",{class:"member-info"},[e.createElementVNode("view",{class:"member-name"},e.toDisplayString(t.friendNickName||t.username||t.name),1),e.createElementVNode("view",{class:"member-label"},e.toDisplayString(t.email||t.sessionId||""),1)]),e.createElementVNode("view",{class:"member-actions"},[(t.receiver||t.user_id)===c.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:e.normalizeClass(["member-role",Le.value])},e.toDisplayString("owner"===Le.value?"创建者":"管理员"),3)):"owner"===t.role?(e.openBlock(),e.createElementBlock("view",{key:1,class:"member-role owner"},"创建者")):"admin"===t.role?(e.openBlock(),e.createElementBlock("view",{key:2,class:"member-actions-right"},[e.createElementVNode("view",{class:"member-action-btn demote-admin",onClick:e=>He(t,"member")},"降为成员",8,["onClick"]),e.createElementVNode("view",{class:"member-action-btn remove-member",onClick:e=>Ge(t)},"移除",8,["onClick"])])):(e.openBlock(),e.createElementBlock("view",{key:3,class:"member-actions-right"},[e.createElementVNode("view",{class:"member-action-btn set-admin",onClick:e=>He(t,"admin")},"设为管理",8,["onClick"]),e.createElementVNode("view",{class:"member-action-btn remove-member",onClick:e=>Ge(t)},"移除",8,["onClick"])]))])])))),128))]))]),e.createElementVNode("view",{class:"invite-section"},[e.createElementVNode("view",{class:"invite-input-wrapper"},[e.withDirectives(e.createElementVNode("input",{class:"invite-input",placeholder:"输入用户名或邮箱搜索","onUpdate:modelValue":n[0]||(n[0]=e=>je.value=e),onConfirm:Qe},null,544),[[e.vModelText,je.value]]),e.createElementVNode("view",{class:"invite-btn text-btn",onClick:Qe},"搜索")]),Ke.value.length>0?(e.openBlock(),e.createElementBlock("view",{key:0,class:"search-result-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Ke.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"search-result-item",key:t._id,onClick:e=>Ze(t)},[t.avatar?(e.openBlock(),e.createElementBlock("image",{key:0,src:t.avatar,class:"result-avatar",mode:"aspectFill"},null,8,["src"])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"result-default-avatar"},[e.createVNode(o,{type:"person-filled",size:"40rpx",color:"#fff"})])),e.createElementVNode("view",{class:"result-info"},[e.createElementVNode("text",{class:"result-name"},e.toDisplayString(t.username),1),e.createElementVNode("text",{class:"result-email"},e.toDisplayString(t.email),1)]),e.createElementVNode("view",{class:"result-add-btn"},"添加")],8,["onClick"])))),128))])):je.value&&Ye.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"search-empty"},"未找到匹配用户")):e.createCommentVNode("",!0)]),e.createElementVNode("view",{class:"edit-team-section"},[e.createElementVNode("view",{class:"edit-team-btn",onClick:We},"修改团队信息")]),e.createElementVNode("view",{class:"delete-team-section"},[e.createElementVNode("view",{class:"delete-team-btn",onClick:et},"删除团队")])])])):e.createCommentVNode("",!0),Oe.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"popup-overlay",onClick:Re},[e.createElementVNode("view",{class:"popup-card",onClick:n[4]||(n[4]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"close-popup-card",onClick:Re},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},"修改团队信息"),e.createElementVNode("view",{class:"edit-team-form"},[e.createElementVNode("view",{class:"form-label"},"团队名称"),e.createElementVNode("view",{class:"create-folder-name"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[2]||(n[2]=e=>Ae.value=e),type:"text",placeholder:"输入团队名称"},null,512),[[e.vModelText,Ae.value]])]),e.createElementVNode("view",{class:"form-label"},"团队描述"),e.createElementVNode("view",{class:"create-folder-name"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[3]||(n[3]=e=>Ue.value=e),type:"text",placeholder:"输入团队描述"},null,512),[[e.vModelText,Ue.value]])])]),e.createElementVNode("view",{class:"option-wrapper"},[e.createElementVNode("view",{class:"opt-btn opt-cancel",onClick:Re},"取消"),e.createElementVNode("view",{class:"opt-btn opt-confirm",onClick:Je},"确认修改")])])])):e.createCommentVNode("",!0),X.value?(e.openBlock(),e.createElementBlock("view",{key:2,class:"popup-overlay",onClick:Y},[e.createElementVNode("view",{class:"popup-card",onClick:n[6]||(n[6]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"close-popup-card",onClick:Y},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},"新建"+e.toDisplayString("user"===f.value?"个人":"团队")+"目录",1),e.createElementVNode("view",{class:"new-folder-name"},"目录名称"),e.createElementVNode("view",{class:"create-folder-name"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[5]||(n[5]=e=>K.value=e),type:"text",placeholder:"输入目录名称"},null,512),[[e.vModelText,K.value]])]),e.createElementVNode("view",{class:"nf-path-label"},"当前路径"),e.createElementVNode("view",{class:"nf-path-display"},e.toDisplayString($.value),1),e.createElementVNode("view",{class:"option-wrapper"},[e.createElementVNode("view",{class:"opt-btn opt-cancel",onClick:Y},"取消"),e.createElementVNode("view",{class:"opt-btn opt-confirm",onClick:Q},"确认")])])])):e.createCommentVNode("",!0),Z.value?(e.openBlock(),e.createElementBlock("view",{key:3,class:"popup-overlay",onClick:ae},[e.createElementVNode("view",{class:"popup-card",onClick:n[8]||(n[8]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"close-popup-card",onClick:ae},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},"上传文件"),e.createElementVNode("view",{class:"upload-path-label"},"上传路径"),e.createElementVNode("view",{class:"create-folder-name"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[7]||(n[7]=e=>ee.value=e),type:"text",placeholder:"输入上传路径,如:/myfolder"},null,512),[[e.vModelText,ee.value]])]),e.createElementVNode("view",{class:"upload-path-hint"},"默认为根目录 /,后端会自动创建不存在的文件夹"),e.createElementVNode("view",{class:"option-wrapper"},[e.createElementVNode("view",{class:"opt-btn opt-cancel",onClick:ae},"取消"),e.createElementVNode("view",{class:"opt-btn opt-confirm",onClick:ne},"确认上传")])])])):e.createCommentVNode("",!0),de.value?(e.openBlock(),e.createElementBlock("view",{key:4,class:"popup-overlay",onClick:fe},[e.createElementVNode("view",{class:"popup-card",onClick:n[10]||(n[10]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"close-popup-card",onClick:fe},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},"新建个人数据库"),e.createElementVNode("view",{class:"new-folder-name"},"数据库名称"),e.createElementVNode("view",{class:"create-folder-name"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[9]||(n[9]=e=>me.value=e),type:"text",placeholder:"输入数据库名称"},null,512),[[e.vModelText,me.value]])]),e.createElementVNode("view",{class:"option-wrapper"},[e.createElementVNode("view",{class:"opt-btn opt-cancel",onClick:fe},"取消"),e.createElementVNode("view",{class:"opt-btn opt-confirm",onClick:he},"确认")])])])):e.createCommentVNode("",!0),ge.value?(e.openBlock(),e.createElementBlock("view",{key:5,class:"popup-overlay",onClick:Ee},[e.createElementVNode("view",{class:"popup-card",onClick:n[11]||(n[11]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"close-popup-card",onClick:Ee},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},"上传数据库文件"),e.createElementVNode("view",{class:"upload-db-hint"},"支持 .db / .sqlite / .sqlite3 格式的 SQLite 数据库文件"),e.createElementVNode("view",{class:"upload-file-area",onClick:Ne},[we.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"selected-file"},e.toDisplayString(we.value),1)):(e.openBlock(),e.createElementBlock("view",{key:1,class:"upload-hint"},"点击选择数据库文件"))]),e.createElementVNode("view",{class:"option-wrapper"},[e.createElementVNode("view",{class:"opt-btn opt-cancel",onClick:Ee},"取消"),e.createElementVNode("view",{class:"opt-btn opt-confirm",onClick:Ce},"确认上传")])])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"cloud-db-container page-container"},[e.createElementVNode("view",{class:"cloud-db-header"},[e.createElementVNode("view",{class:"custom-navbar"},[e.createElementVNode("view",{class:"navbar-left",onClick:V},[e.createElementVNode("view",{class:"iconfont icon-fanhui custom-navbar-icon"}),T.value.length>0?(e.openBlock(),e.createElementBlock("view",{key:0,class:"navbar-before-title"},e.toDisplayString(b.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("view",{class:"navbar-title"},e.toDisplayString(g.value),1),e.createElementVNode("view",{class:"navbar-right"}),y.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"menu-card"},[e.createElementVNode("view",{class:"menu-card-item",onClick:n[12]||(n[12]=e=>{E.value=!E.value,E.value||(N.value=[]),C()})},"选择"),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("view",{class:"menu-card-item",onClick:n[13]||(n[13]=e=>{X.value=!0,K.value="",C()})},"新建文件夹")])):e.createCommentVNode("",!0)]),e.createElementVNode("view",{class:"category-tabs"},[e.createElementVNode("view",{class:e.normalizeClass(["category-tab",{active:"user"===f.value}]),onClick:n[14]||(n[14]=e=>h("user"))}," 个人 ",2),e.createElementVNode("view",{class:e.normalizeClass(["category-tab",{active:"team"===f.value}]),onClick:n[15]||(n[15]=e=>h("team"))}," 团队 ",2)])]),e.createElementVNode("scroll-view",{class:"cloud-db-content","scroll-y":""},["user"===f.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("view",{class:"section-block"},[e.createElementVNode("view",{class:"section-header"},[e.createElementVNode("view",{class:"section-title"},[e.createElementVNode("view",{class:"iconfont icon-wenjianjia"}),e.createElementVNode("text",null,"云端文件"),e.createElementVNode("text",{class:"file-count"},e.toDisplayString(L.value>0?"("+L.value+")":""),1)]),e.createElementVNode("view",{class:"section-actions"},[e.createElementVNode("view",{class:"action-btn",onClick:te},[e.createVNode(o,{type:"upload",size:"16"}),e.createElementVNode("text",null,"上传文件")])])]),e.createElementVNode("view",{class:"section-body"},[0===S.value.length?(e.openBlock(),e.createElementBlock("view",{key:0,class:"empty-tip"},[e.createElementVNode("view",{class:"iconfont icon-wenjianjia"}),e.createElementVNode("text",null,"暂无云端文件")])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"file-grid"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"file-item",key:t.id,onClick:e=>F(t),onLongpress:e=>O(t)},[e.createElementVNode("view",{class:e.normalizeClass(["file-icon",D(t)?"is-directory":"is-file"])},[e.createElementVNode("view",{class:e.normalizeClass(["iconfont",j(t)])},null,2)],2),e.createElementVNode("view",{class:"file-name"},e.toDisplayString(t.name),1),e.createElementVNode("view",{class:"file-meta"},[e.createElementVNode("text",{class:"file-type-tag"},e.toDisplayString(D(t)?"目录":"文件"),1),t.size?(e.openBlock(),e.createElementBlock("text",{key:0,class:"file-size"},e.toDisplayString(P(t.size)),1)):e.createCommentVNode("",!0)])],40,["onClick","onLongpress"])))),128))]))])]),e.createElementVNode("view",{class:"section-divider"}),e.createElementVNode("view",{class:"section-block"},[e.createElementVNode("view",{class:"section-header"},[e.createElementVNode("view",{class:"section-title"},[e.createElementVNode("view",{class:"iconfont icon-shujuku"}),e.createElementVNode("text",null,"云端数据库"),e.createElementVNode("text",{class:"file-count"},e.toDisplayString(!ie.value&&re.value.length>0?"("+re.value.length+")":""),1)]),e.createElementVNode("view",{class:"section-actions"},[e.createElementVNode("view",{class:"action-btn",onClick:ye},[e.createVNode(o,{type:"upload",size:"16"}),e.createElementVNode("text",null,"上传数据库")]),e.createElementVNode("view",{class:"action-btn",onClick:pe},[e.createVNode(o,{type:"plus",size:"16"}),e.createElementVNode("text",null,"新建数据库")])])]),e.createElementVNode("view",{class:"section-body"},[ie.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"loading-area"},[e.createElementVNode("view",{class:"loading-spinner"}),e.createElementVNode("text",{class:"loading-text"},"加载中...")])):0===re.value.length?(e.openBlock(),e.createElementBlock("view",{key:1,class:"empty-tip"},[e.createElementVNode("view",{class:"iconfont icon-shujuku"}),e.createElementVNode("text",null,"暂无数据库")])):(e.openBlock(),e.createElementBlock("view",{key:2,class:"table-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(re.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"table-item",key:t.database_id,onClick:e=>Ve(t),onLongpress:e=>be(t)},[e.createElementVNode("view",{class:"table-icon"},[e.createVNode(o,{type:"compose",size:"22",color:"#3b86ff"})]),e.createElementVNode("view",{class:"table-info"},[e.createElementVNode("view",{class:"table-name"},[e.createTextVNode(e.toDisplayString(t.database_name)+" ",1),e.createElementVNode("text",{class:e.normalizeClass(["db-tag",t.team_id?"tag-team":"tag-personal"])},e.toDisplayString(t.team_id?"团队共享":"个人私有"),3)]),e.createElementVNode("view",{class:"table-desc"},e.toDisplayString(t.table_count||0)+" 张表 · "+e.toDisplayString(Be(t.access_level)),1)]),e.createElementVNode("view",{class:"table-meta"},[e.createElementVNode("text",{class:"table-rows"},e.toDisplayString(_e(t.modified_time)),1),e.createVNode(o,{type:"right",size:"14",color:"#999"})])],40,["onClick","onLongpress"])))),128))]))])])],64)):e.createCommentVNode("",!0),"team"===f.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("view",{class:"section-block team-manage-block",onClick:ze},[e.createElementVNode("view",{class:"section-header"},[e.createElementVNode("view",{class:"section-title"},[e.createElementVNode("view",{class:"iconfont icon-qunliao"}),e.createElementVNode("text",null,"团队管理")]),e.createElementVNode("view",{class:"section-actions"},[e.createElementVNode("text",{class:"team-count"},e.toDisplayString(xe.value.length)+" 个团队",1),e.createVNode(o,{type:"right",size:"14",color:"#999"})])])]),e.createElementVNode("view",{class:"section-divider"}),xe.value.length>0?(e.openBlock(),e.createElementBlock("view",{key:0,class:"team-selector"},[e.createElementVNode("scroll-view",{"scroll-x":"",class:"team-scroll"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(xe.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:e.normalizeClass(["team-chip",{active:Te.value===t.id}]),key:t.id,onClick:e=>Ie(t.id)},e.toDisplayString(t.name),11,["onClick"])))),128))]),$e.value||Pe.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"team-info"},[$e.value?(e.openBlock(),e.createElementBlock("text",{key:0,class:"team-type-tag"},e.toDisplayString($e.value),1)):e.createCommentVNode("",!0),Pe.value?(e.openBlock(),e.createElementBlock("text",{key:1,class:"team-desc-text"},e.toDisplayString(Pe.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),!Te.value&&xe.value.length>0?(e.openBlock(),e.createElementBlock("view",{key:1,class:"empty-tip select-team-tip"},[e.createElementVNode("view",{class:"iconfont icon-qunliao"}),e.createElementVNode("text",null,"请选择一个团队")])):e.createCommentVNode("",!0),Te.value?(e.openBlock(),e.createElementBlock("view",{key:2,class:"section-block"},[e.createElementVNode("view",{class:"section-header"},[e.createElementVNode("view",{class:"section-title"},[e.createElementVNode("view",{class:"iconfont icon-wenjianjia"}),e.createElementVNode("text",null,"团队云端文件")]),e.createElementVNode("view",{class:"section-actions"},[e.createElementVNode("view",{class:"action-btn",onClick:te},[e.createVNode(o,{type:"upload",size:"16"}),e.createElementVNode("text",null,"上传文件")])])]),e.createElementVNode("view",{class:"section-body"},[0===x.value.length?(e.openBlock(),e.createElementBlock("view",{key:0,class:"empty-tip"},[e.createElementVNode("view",{class:"iconfont icon-wenjianjia"}),e.createElementVNode("text",null,"暂无团队云端文件")])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"file-grid"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"file-item",key:t.id,onClick:e=>F(t),onLongpress:e=>O(t)},[e.createElementVNode("view",{class:e.normalizeClass(["file-icon",D(t)?"is-directory":"is-file"])},[e.createElementVNode("view",{class:e.normalizeClass(["iconfont",j(t)])},null,2)],2),e.createElementVNode("view",{class:"file-name"},e.toDisplayString(t.name),1),e.createElementVNode("view",{class:"file-meta"},[e.createElementVNode("text",{class:"file-type-tag"},e.toDisplayString(D(t)?"目录":"文件"),1),t.size?(e.openBlock(),e.createElementBlock("text",{key:0,class:"file-size"},e.toDisplayString(P(t.size)),1)):e.createCommentVNode("",!0)])],40,["onClick","onLongpress"])))),128))]))])])):e.createCommentVNode("",!0),Te.value?(e.openBlock(),e.createElementBlock("view",{key:3,class:"section-divider"})):e.createCommentVNode("",!0),Te.value?(e.openBlock(),e.createElementBlock("view",{key:4,class:"section-block"},[e.createElementVNode("view",{class:"section-header"},[e.createElementVNode("view",{class:"section-title"},[e.createElementVNode("view",{class:"iconfont icon-shujuku"}),e.createElementVNode("text",null,"团队云端数据库")])]),e.createElementVNode("view",{class:"section-body"},[ie.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"loading-area"},[e.createElementVNode("view",{class:"loading-spinner"}),e.createElementVNode("text",{class:"loading-text"},"加载中...")])):0===ue.value.length?(e.openBlock(),e.createElementBlock("view",{key:1,class:"empty-tip"},[e.createElementVNode("view",{class:"iconfont icon-shujuku"}),e.createElementVNode("text",null,"暂无团队数据库")])):(e.openBlock(),e.createElementBlock("view",{key:2,class:"table-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ue.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"table-item",key:t.database_id,onClick:e=>Ve(t)},[e.createElementVNode("view",{class:"table-icon"},[e.createVNode(o,{type:"compose",size:"22",color:"#3b86ff"})]),e.createElementVNode("view",{class:"table-info"},[e.createElementVNode("view",{class:"table-name"},[e.createTextVNode(e.toDisplayString(t.database_name)+" ",1),e.createElementVNode("text",{class:"db-tag tag-team"},"团队共享")]),e.createElementVNode("view",{class:"table-desc"},e.toDisplayString(t.table_count||0)+" 张表 · "+e.toDisplayString(Be(t.access_level)),1)]),e.createElementVNode("view",{class:"table-meta"},[e.createElementVNode("text",{class:"table-rows"},e.toDisplayString(_e(t.modified_time)),1),e.createVNode(o,{type:"right",size:"14",color:"#999"})])],8,["onClick"])))),128))]))])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)])])],64)}}},[["__scopeId","data-v-2d96f7d1"]]),ve=f({__name:"CloudDbDetail",props:{databaseId:{type:String,default:""},databaseName:{type:String,default:""},teamId:{type:String,default:""}},setup(n){const l=n,s=e.ref(l.databaseId||""),c=e.ref(l.databaseName||""),i=e.ref(l.teamId||""),r=e.ref(2),u=e.ref(0),d=e.ref([]),v=e.ref(!1),f=e.ref(null),h=e.ref([]),g=e.computed((()=>{var e;if(h.value.length>0){const e=new Set;return h.value.forEach((t=>Object.keys(t).forEach((t=>e.add(t))))),Array.from(e).filter((e=>"_row_id"!==e&&"_id"!==e))}return(null==(e=f.value)?void 0:e.columns)?f.value.columns.map((e=>e.name)).filter((e=>"_row_id"!==e)):[]})),y=e.ref(!1),E=()=>{y.value=!y.value},C=()=>{uni.navigateBack()},b=async()=>{v.value=!0;try{const e=k(),t=await((e,t,a)=>new Promise(((n,l)=>{uni.request({url:`${o}/cloud_api/database/tables`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,database_id:t,is_detail:a},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)n(t.tables);else{const e=(null==t?void 0:t.error)||"获取用户可访问的数据库列表出错啦";l(e)}}else l(`获取用户可访问的数据库列表失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";l(t)}})})))(e,s.value,!0);d.value=(t||[]).map((e=>({table_name:e.name,row_count:e.row_count||0,columns:e.columns||[]}))),u.value=d.value.length}catch(e){t("error","at pages/CloudDbDetail/CloudDbDetail.vue:282","获取表列表失败:",e),d.value=[]}finally{v.value=!1}},V=async e=>{f.value=e,h.value=[],uni.showLoading({title:"加载中..."});try{const t=k(),a=await((e,t,a,n="20",l="0")=>new Promise(((s,c)=>{uni.request({url:`${o}/cloud_api/database/table/data`,method:"POST",header:{"Content-Type":"application/json"},data:{access_token:e,database_id:t,table_name:a,limit:n,offset:l},success:e=>{if(200===e.statusCode){const t=e.data;if(t.success)s(t.data);else{const e=(null==t?void 0:t.error)||"获取表数据出错啦";c(e)}}else c(`获取表数据失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";c(t)}})})))(t,s.value,e.table_name);h.value=a||[],uni.hideLoading()}catch(t){uni.hideLoading(),uni.showToast({title:"string"==typeof t?t:"加载表数据失败",icon:"none"}),h.value=[]}},_=e=>{uni.showModal({title:"删除表",content:`确定要删除表"${e.table_name}"吗?此操作不可恢复。`,success:async a=>{var n;if(a.confirm){uni.showLoading({title:"删除中..."});try{const t=k();await(async(e,t,a)=>new Promise(((n,l)=>{uni.request({url:`${o}/cloud_api/database/table/drop`,method:"POST",data:{access_token:e,database_id:t,table_name:a},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data;if(null==t?void 0:t.success)n(t.message);else{const e=t.error||"删除数据库中的表出错啦";l(e)}}else l(`删除数据库中的表失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";l(t)}})})))(t,s.value,e.table_name),uni.hideLoading(),uni.showToast({title:"删除成功",icon:"success"}),(null==(n=f.value)?void 0:n.table_name)===e.table_name&&(f.value=null,h.value=[]),await b()}catch(l){uni.hideLoading(),t("error","at pages/CloudDbDetail/CloudDbDetail.vue:335","删除表失败:",l),uni.showToast({title:"删除失败,请重试",icon:"error"})}}}})},B=e=>{const a=e._row_id||e._id;if(!a)return void uni.showToast({title:"无法识别该行",icon:"none"});const n=g.value;if(0===n.length)return void uni.showToast({title:"无可用列",icon:"none"});const l=n[0];uni.showModal({title:`编辑 ${l}`,editable:!0,placeholderText:e[l]||"",content:"",success:async n=>{if(n.confirm&&void 0!==n.content){uni.showLoading({title:"更新中..."});try{const t=k();await((e,t,a,n,l)=>new Promise(((s,c)=>{uni.request({url:`${o}/cloud_api/database/table/update/by/id`,method:"POST",data:{access_token:e,database_id:t,table_name:a,where_data:n,update_data:l},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data;if(null==t?void 0:t.success)s(t.message);else{const e=t.error||"更新表数据出错啦";c(e)}}else c(`更新表数据失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";c(t)}})})))(t,s.value,f.value.table_name,{_row_id:a},{[l]:n.content}),uni.hideLoading(),uni.showToast({title:"更新成功",icon:"success"}),e[l]=n.content}catch(c){uni.hideLoading(),t("error","at pages/CloudDbDetail/CloudDbDetail.vue:397","更新失败:",c),uni.showToast({title:c,icon:"error"})}}}})},S=e.ref(!1),x=e.ref(""),T=e.ref(""),D=e.ref(""),j=()=>{S.value=!1},P=()=>{oe({count:1,type:"all",success:e=>{const t=e.tempFiles[0];T.value=t.name||"unknown",D.value=t.path},fail:e=>{t("error","at pages/CloudDbDetail/CloudDbDetail.vue:434","选择文件失败:",e),uni.showToast({title:"选择文件失败",icon:"none"})}})},$=async()=>{const e=x.value.trim()||"";if(D.value){uni.showLoading({title:"导入中..."});try{const t=k();await((e,t,a,n,l)=>new Promise(((s,c)=>{const i="string"==typeof n?n:n.tempFilePath||n.path||n,r="string"==typeof n?n.split("/").pop()||"file":n.name||"file";uni.uploadFile({url:`${o}/cloud_api/database/import`,method:"POST",header:{},formData:{access_token:e,force_overwrite:t,database_id:a,table_name:l},file:{name:r,uri:i},files:[{name:"file",uri:i}],success:e=>{if(200===e.statusCode)try{const t=JSON.parse(e.data);if(t.success)s(t.message);else{const e=(null==t?void 0:t.error)||"导入文件到数据库出错啦";c(e)}}catch(t){c("接口返回数据格式异常")}else c(`导入文件到数据库失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";c(t)}})})))(t,!1,s.value,D.value,e),uni.hideLoading(),uni.showToast({title:"导入成功",icon:"success"}),j(),await b()}catch(a){uni.hideLoading(),t("error","at pages/CloudDbDetail/CloudDbDetail.vue:474","导入失败:",a),"table_exists"===a?uni.showToast({title:"文件已存在",icon:"error"}):uni.showToast({title:"导入失败,请重试",icon:"error"})}}else uni.showToast({title:"请选择文件",icon:"none"})},L=e.ref(!1),M=e.ref([]),I=async()=>{L.value=!0,uni.showLoading({title:"加载中..."});try{const e=k();let t;t=i.value?await p(e,s.value,"team_id",i.value):await p(e,s.value,"user_id",N());const a=Array.isArray(t)?t:[];M.value=a.map((e=>{var t,a,n;return e.team?{_id:e._id,database_id:e.database_id,access_level:e.access_level,permType:"team_id",id:e.team._id||e.team.id,name:e.team.name}:e.team_id?{database_id:e.database_id,access_level:e.access_level,permType:"team_id",id:e.team_id,name:(null==(t=e.database)?void 0:t.database_name)||""}:{database_id:e.database_id,access_level:e.access_level,permType:"user_id",id:e.user_id||(null==(a=e.database)?void 0:a.user_id)||N(),name:(null==(n=e.database)?void 0:n.database_name)||""}}))}catch(e){t("error","at pages/CloudDbDetail/CloudDbDetail.vue:544","获取权限失败:",e),M.value=[]}uni.hideLoading()},z=()=>{L.value=!1},F=(e,a)=>{if("delete"===a)uni.showModal({title:"移除权限",content:`确定要移除"${e.name}"的权限吗?`,success:async a=>{if(a.confirm){uni.showLoading({title:"移除中..."});try{const t=k();await((e,t,a,n)=>new Promise(((l,s)=>{const c={access_token:e,database_id:t};"user_id"===a?c.user_id=n:"team_id"===a&&(c.team_id=n),uni.request({url:`${o}/cloud_api/database/permission/delete`,method:"POST",data:c,header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data;if(null==t?void 0:t.success)l(t.message);else{const e=t.error||"删除 团队/用户 对数据库权限出错啦";s(e)}}else s(`删除 团队/用户 对数据库权限失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";s(t)}})})))(t,s.value,e.permType,e.id),uni.hideLoading(),uni.showToast({title:"已移除",icon:"success"}),await I()}catch(n){uni.hideLoading(),t("error","at pages/CloudDbDetail/CloudDbDetail.vue:574","移除权限失败:",n),uni.showToast({title:"操作失败,请重试",icon:"error"})}}}});else{const a=["无权限访问","仅访问","管理员完全控制","团队完全控制"],n=e.access_level||0;uni.showActionSheet({title:"选择权限级别",itemList:a.map(((e,t)=>`${t}. ${e}`)),success:async a=>{const l=a.tapIndex;if(l!==n){uni.showLoading({title:"更新中..."});try{const t=k();await((e,t,a,n,l)=>new Promise(((s,c)=>{const i={access_token:e,database_id:t,access_level:l};"user_id"===a?i.user_id=n:"team_id"===a&&(i.team_id=n),uni.request({url:`${o}/cloud_api/database/permission/update`,method:"POST",data:i,header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data;if(null==t?void 0:t.success)s(t.message);else{const e=t.error||"修改/增加 团队/用户 对数据库权限出错啦";c(e)}}else c(`修改/增加 团队/用户 对数据库权限失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";c(t)}})})))(t,s.value,e.permType,e.id,l),uni.hideLoading(),uni.showToast({title:"已更新",icon:"success"}),await I()}catch(c){uni.hideLoading(),t("error","at pages/CloudDbDetail/CloudDbDetail.vue:608","更新权限失败:",c),uni.showToast({title:"操作失败,请重试",icon:"error"})}}}})}},O=e.ref(!1),A=e.ref([]),U=e.ref(""),q=()=>{O.value=!1},W=async()=>{U.value?uni.showModal({title:"确认移交",content:"移交后数据库将归属于该团队,确定继续吗?",success:async e=>{if(e.confirm){uni.showLoading({title:"移交中..."});try{const e=k();await(async(e,t,a)=>new Promise(((n,l)=>{uni.request({url:`${o}/cloud_api/database/transfer_to_team`,method:"POST",data:{access_token:e,database_id:t,team_id:a},header:{"Content-Type":"application/json"},success:e=>{if(200===e.statusCode){const t=e.data;if(null==t?void 0:t.success)n(t.message);else{const e=t.error||"个人数据库移交团队出错啦";l(e)}}else l(`个人数据库移交团队失败:${e.statusCode}`)},fail:e=>{const t=e.errMsg||"网络错误";l(t)}})})))(e,s.value,U.value),uni.hideLoading(),uni.showToast({title:"移交成功",icon:"success"}),q(),setTimeout((()=>{uni.navigateBack()}),1e3)}catch(a){uni.hideLoading(),t("error","at pages/CloudDbDetail/CloudDbDetail.vue:670","移交失败:",a),uni.showToast({title:"移交失败,请重试",icon:"error"})}}}}):uni.showToast({title:"请选择目标团队",icon:"none"})},R=e=>({0:"无权限访问",1:"仅访问",2:"管理员完全控制",3:"团队完全控制"}[e]||"未知");return e.onMounted((()=>{var e;const t=getCurrentPages(),a=t[t.length-1],n=(null==(e=a.$page)?void 0:e.options)||a.options||{};s.value=n.databaseId||"",c.value=decodeURIComponent(n.databaseName||"数据库详情"),i.value=n.teamId||"",s.value&&b()})),(n,o)=>{const l=a(e.resolveDynamicComponent("uni-icons"),w);return e.openBlock(),e.createElementBlock("view",{class:"cloud-db-detail-wrapper"},[e.createElementVNode("view",{class:"status-bar"}),S.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"popup-overlay",onClick:j},[e.createElementVNode("view",{class:"popup-card",onClick:o[1]||(o[1]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"close-popup-card",onClick:j},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},"导入文件到数据库"),e.createElementVNode("view",{class:"new-folder-name"},"表名称"),e.createElementVNode("view",{class:"create-folder-name"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":o[0]||(o[0]=e=>x.value=e),type:"text",placeholder:"输入表名称"},null,512),[[e.vModelText,x.value]])]),e.createElementVNode("view",{class:"new-folder-name"},"文件"),e.createElementVNode("view",{class:"upload-file-area",onClick:P},[T.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"selected-file"},e.toDisplayString(T.value),1)):(e.openBlock(),e.createElementBlock("view",{key:1,class:"upload-hint"},"点击选择文件(支持 CSV/Excel/SQLite)"))]),e.createElementVNode("view",{class:"option-wrapper"},[e.createElementVNode("view",{class:"opt-btn opt-cancel",onClick:j},"取消"),e.createElementVNode("view",{class:"opt-btn opt-confirm",onClick:$},"确认导入")])])])):e.createCommentVNode("",!0),L.value?(e.openBlock(),e.createElementBlock("view",{key:1,class:"popup-overlay",onClick:z},[e.createElementVNode("view",{class:"popup-card",onClick:o[2]||(o[2]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"close-popup-card",onClick:z},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},"权限管理"),e.createElementVNode("scroll-view",{class:"permission-body","scroll-y":""},[0===M.value.length?(e.openBlock(),e.createElementBlock("view",{key:0,class:"folder-null"},"暂无权限记录")):(e.openBlock(),e.createElementBlock("view",{key:1,class:"permission-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"permission-item",key:t._id||t.id},[e.createElementVNode("view",{class:"perm-info"},[e.createElementVNode("text",{class:"perm-type"},e.toDisplayString("team_id"===t.permType?"团队":"个人"),1)]),e.createElementVNode("view",{class:"perm-level"},e.toDisplayString(R(t.access_level)),1),e.createElementVNode("view",{class:"perm-actions"},[e.createElementVNode("view",{class:"perm-action-btn",onClick:e=>F(t,"change")},"修改",8,["onClick"]),e.createElementVNode("view",{class:"perm-action-btn delete",onClick:e=>F(t,"delete")},"移除",8,["onClick"])])])))),128))]))]),e.createElementVNode("view",{class:"close-permission-btn",onClick:z},"关闭")])])):e.createCommentVNode("",!0),O.value?(e.openBlock(),e.createElementBlock("view",{key:2,class:"popup-overlay",onClick:q},[e.createElementVNode("view",{class:"popup-card",onClick:o[3]||(o[3]=e.withModifiers((()=>{}),["stop"]))},[e.createElementVNode("view",{class:"close-popup-card",onClick:q},[e.createElementVNode("view",{class:"iconfont icon-quxiao"})]),e.createElementVNode("view",{class:"popup-title"},"移交数据库到团队"),e.createElementVNode("scroll-view",{class:"transfer-body","scroll-y":""},[0===A.value.length?(e.openBlock(),e.createElementBlock("view",{key:0,class:"folder-null"},"暂无可用团队")):(e.openBlock(),e.createElementBlock("view",{key:1,class:"transfer-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:e.normalizeClass(["transfer-item",{active:U.value===t.id}]),key:t.id,onClick:e=>U.value=t.id},[e.createElementVNode("text",{class:"transfer-name"},e.toDisplayString(t.name),1),U.value===t.id?(e.openBlock(),e.createBlock(l,{key:0,type:"checkmarkempty",size:"20",color:"#3b86ff"})):e.createCommentVNode("",!0)],10,["onClick"])))),128))]))]),e.createElementVNode("view",{class:"option-wrapper"},[e.createElementVNode("view",{class:"opt-btn opt-cancel",onClick:q},"取消"),e.createElementVNode("view",{class:"opt-btn opt-confirm",onClick:W},"确认移交")])])])):e.createCommentVNode("",!0),e.createElementVNode("view",{class:"cloud-db-detail page-container"},[e.createElementVNode("view",{class:"cloud-db-header"},[e.createElementVNode("view",{class:"custom-navbar"},[e.createElementVNode("view",{class:"navbar-left",onClick:C},[e.createElementVNode("view",{class:"iconfont icon-fanhui custom-navbar-icon"})]),e.createElementVNode("view",{class:"navbar-title"},e.toDisplayString(c.value),1),e.createElementVNode("view",{class:"navbar-right"},[e.createElementVNode("view",{class:"iconfont icon-gengduo custom-navbar-icon",onClick:E})])]),y.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"menu-card"},[e.createElementVNode("view",{class:"menu-card-item",onClick:o[4]||(o[4]=e=>{S.value=!0,x.value="",T.value="",D.value="",E()})},"导入文件"),e.createElementVNode("view",{class:"solid-line"}),e.createElementVNode("view",{class:"menu-card-item",onClick:o[5]||(o[5]=e=>{I(),E()})},"权限管理"),i.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("view",{key:0,class:"solid-line"})),i.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("view",{key:1,class:"menu-card-item",onClick:o[6]||(o[6]=e=>{(async()=>{O.value=!0,U.value="";try{const e=k(),t=await m(e);A.value=t||[]}catch(e){t("error","at pages/CloudDbDetail/CloudDbDetail.vue:632","获取团队列表失败:",e),A.value=[]}})(),E()})},"移交团队"))])):e.createCommentVNode("",!0)]),e.createElementVNode("scroll-view",{class:"cloud-db-content","scroll-y":""},[e.createElementVNode("view",{class:"db-info-bar"},[e.createElementVNode("text",{class:"db-info-text"},e.toDisplayString(u.value)+" 张表",1),e.createElementVNode("text",{class:"db-info-text"},"权限:"+e.toDisplayString(R(r.value)),1)]),e.createElementVNode("view",{class:"section-block"},[e.createElementVNode("view",{class:"section-header"},[e.createElementVNode("view",{class:"section-title"},[e.createElementVNode("view",{class:"iconfont icon-biaoge"}),e.createElementVNode("text",null,"数据表")])]),e.createElementVNode("view",{class:"section-body"},[v.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"loading-area"},[e.createElementVNode("view",{class:"loading-spinner"}),e.createElementVNode("text",{class:"loading-text"},"加载中...")])):0===d.value.length?(e.openBlock(),e.createElementBlock("view",{key:1,class:"empty-tip"},[e.createElementVNode("view",{class:"iconfont icon-shujuku"}),e.createElementVNode("text",null,"暂无数据表")])):(e.openBlock(),e.createElementBlock("view",{key:2,class:"table-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(t=>(e.openBlock(),e.createElementBlock("view",{class:"table-item",key:t.table_name,onClick:e=>V(t),onLongpress:e=>_(t)},[e.createElementVNode("view",{class:"table-icon"},[e.createVNode(l,{type:"compose",size:"22",color:"#3b86ff"})]),e.createElementVNode("view",{class:"table-info"},[e.createElementVNode("view",{class:"table-name"},e.toDisplayString(t.table_name),1),e.createElementVNode("view",{class:"table-desc"},e.toDisplayString(t.row_count||0)+" 条记录",1)]),e.createElementVNode("view",{class:"table-meta"},[e.createVNode(l,{type:"right",size:"14",color:"#999"})])],40,["onClick","onLongpress"])))),128))]))])]),f.value?(e.openBlock(),e.createElementBlock("view",{key:0,class:"section-block"},[e.createElementVNode("view",{class:"section-divider"}),e.createElementVNode("view",{class:"section-header"},[e.createElementVNode("view",{class:"section-title"},[e.createElementVNode("view",{class:"iconfont icon-biaoge"}),e.createElementVNode("text",null,e.toDisplayString(f.value.table_name),1)]),e.createElementVNode("view",{class:"section-actions"},[e.createElementVNode("text",{class:"row-count"},e.toDisplayString(h.value.length)+" / "+e.toDisplayString(f.value.row_count||0)+" 条",1)])]),e.createElementVNode("view",{class:"section-body"},[0===h.value.length?(e.openBlock(),e.createElementBlock("view",{key:0,class:"empty-tip"},[e.createElementVNode("text",null,"暂无数据")])):(e.openBlock(),e.createElementBlock("view",{key:1,class:"data-table-wrapper"},[e.createElementVNode("scroll-view",{"scroll-x":"",class:"data-table-scroll"},[e.createElementVNode("view",{class:"data-table"},[e.createElementVNode("view",{class:"data-row data-header"},[e.createElementVNode("view",{class:"data-cell index-cell"},"#"),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,(t=>(e.openBlock(),e.createElementBlock("view",{key:t,class:"data-cell"},e.toDisplayString(t),1)))),128))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,((t,a)=>(e.openBlock(),e.createElementBlock("view",{class:"data-row",key:t._row_id||a,onClick:e=>B(t)},[e.createElementVNode("view",{class:"data-cell index-cell"},e.toDisplayString(a+1),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,(a=>{return e.openBlock(),e.createElementBlock("view",{key:a,class:"data-cell"},e.toDisplayString(null==(n=t[a])?"":"object"==typeof n?JSON.stringify(n):String(n)),1);var n})),128))],8,["onClick"])))),128))])])]))])])):e.createCommentVNode("",!0)])])])}}},[["__scopeId","data-v-144a6cf9"]]);__definePage("pages/Login/Login",h),__definePage("pages/Chat/Chat",le),__definePage("pages/WorkSpace/WorkSpace",se),__definePage("pages/UserProfileModal/UserProfileModal",ce),__definePage("pages/ContactPages/ContactPages",ie),__definePage("pages/WorkSpace/TemplateSpace/TemplateSpace",re),__definePage("pages/text/text",ue),__definePage("pages/text/text2",de),__definePage("pages/CloudDatabase/CloudDatabase",me),__definePage("pages/CloudDbDetail/CloudDbDetail",ve);const pe={onLaunch:function(){t("log","at App.vue:4","App Launch")},onShow:function(){t("log","at App.vue:7","App Show")},onHide:function(){t("log","at App.vue:10","App Hide")}};const{app:fe,Vuex:he,Pinia:ge}=function(){const t=e.createVueApp(pe),a=function(){const t=e.effectScope(!0),a=t.run((()=>e.ref({})));let n=[],o=[];const l=e.markRaw({install(e){x(l),l._a=e,e.provide(T,l),e.config.globalProperties.$pinia=l,o.forEach((e=>n.push(e))),o=[]},use(e){return this._a?n.push(e):o.push(e),this},_p:n,_a:null,_e:t,_s:new Map,state:a});return l}();return t.use(a),{app:t,pinia:a}}();uni.Vuex=he,uni.Pinia=ge,fe.provide("__globalStyles",__uniConfig.styles),fe._component.mpType="app",fe._component.render=()=>{},fe.mount("#app")}(Vue); diff --git a/unpackage/dist/build/app-plus/app.css b/unpackage/dist/build/app-plus/app.css index 766d33e..526cbeb 100644 --- a/unpackage/dist/build/app-plus/app.css +++ b/unpackage/dist/build/app-plus/app.css @@ -1,3 +1,3 @@ *{margin:0;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}html,body{-webkit-user-select:none;user-select:none;width:100%}html{height:100%;height:100vh;width:100%;width:100vw}body{overflow-x:hidden;background-color:#fff;height:100%;font-size:16px}#app{height:100%}input[type=search]::-webkit-search-cancel-button{display:none}.uni-loading,uni-button[loading]:before{background:transparent url(data:image/svg+xml;base64,\ PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat}.uni-loading{width:20px;height:20px;display:inline-block;vertical-align:middle;animation:uni-loading 1s steps(12,end) infinite;background-size:100%}@keyframes uni-loading{0%{transform:rotate3d(0,0,1,0)}to{transform:rotate3d(0,0,1,360deg)}}@media (prefers-color-scheme: dark){html{--UI-BG-COLOR-ACTIVE: #373737;--UI-BORDER-COLOR-1: #373737;--UI-BG: #000;--UI-BG-0: #191919;--UI-BG-1: #1f1f1f;--UI-BG-2: #232323;--UI-BG-3: #2f2f2f;--UI-BG-4: #606060;--UI-BG-5: #2c2c2c;--UI-FG: #fff;--UI-FG-0: hsla(0, 0%, 100%, .8);--UI-FG-HALF: hsla(0, 0%, 100%, .6);--UI-FG-1: hsla(0, 0%, 100%, .5);--UI-FG-2: hsla(0, 0%, 100%, .3);--UI-FG-3: hsla(0, 0%, 100%, .05)}body{background-color:var(--UI-BG-0);color:var(--UI-FG-0)}}[nvue] uni-view,[nvue] uni-label,[nvue] uni-swiper-item,[nvue] uni-scroll-view{display:flex;flex-shrink:0;flex-grow:0;flex-basis:auto;align-items:stretch;align-content:flex-start}[nvue] uni-button{margin:0}[nvue-dir-row] uni-view,[nvue-dir-row] uni-label,[nvue-dir-row] uni-swiper-item{flex-direction:row}[nvue-dir-column] uni-view,[nvue-dir-column] uni-label,[nvue-dir-column] uni-swiper-item{flex-direction:column}[nvue-dir-row-reverse] uni-view,[nvue-dir-row-reverse] uni-label,[nvue-dir-row-reverse] uni-swiper-item{flex-direction:row-reverse}[nvue-dir-column-reverse] uni-view,[nvue-dir-column-reverse] uni-label,[nvue-dir-column-reverse] uni-swiper-item{flex-direction:column-reverse}[nvue] uni-view,[nvue] uni-image,[nvue] uni-input,[nvue] uni-scroll-view,[nvue] uni-swiper,[nvue] uni-swiper-item,[nvue] uni-text,[nvue] uni-textarea,[nvue] uni-video{position:relative;border:0px solid #000000;box-sizing:border-box}[nvue] uni-swiper-item{position:absolute}@keyframes once-show{0%{top:0}}uni-resize-sensor,uni-resize-sensor>div{position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden}uni-resize-sensor{display:block;z-index:-1;visibility:hidden;animation:once-show 1ms}uni-resize-sensor>div>div{position:absolute;left:0;top:0}uni-resize-sensor>div:first-child>div{width:100000px;height:100000px}uni-resize-sensor>div:last-child>div{width:200%;height:200%}uni-text[selectable]{cursor:auto;-webkit-user-select:text;user-select:text}uni-text{white-space:pre-line}uni-view{display:block}uni-view[hidden]{display:none}uni-ad .uni-ad-container{width:100%;height:100%;min-height:1px}uni-button{position:relative;display:block;margin-left:auto;margin-right:auto;padding-left:14px;padding-right:14px;box-sizing:border-box;font-size:18px;text-align:center;text-decoration:none;line-height:2.55555556;border-radius:5px;-webkit-tap-highlight-color:transparent;overflow:hidden;color:#000;background-color:#f8f8f8;cursor:pointer}uni-button[hidden]{display:none!important}uni-button:after{content:" ";width:200%;height:200%;position:absolute;top:0;left:0;border:1px solid rgba(0,0,0,.2);transform:scale(.5);transform-origin:0 0;box-sizing:border-box;border-radius:10px}uni-button[native]{padding-left:0;padding-right:0}uni-button[native] .uni-button-cover-view-wrapper{border:inherit;border-color:inherit;border-radius:inherit;background-color:inherit}uni-button[native] .uni-button-cover-view-inner{padding-left:14px;padding-right:14px}uni-button uni-cover-view{line-height:inherit;white-space:inherit}uni-button[type=default]{color:#000;background-color:#f8f8f8}uni-button[type=primary]{color:#fff;background-color:#007aff}uni-button[type=warn]{color:#fff;background-color:#e64340}uni-button[disabled]{color:rgba(255,255,255,.6);cursor:not-allowed}uni-button[disabled][type=default],uni-button[disabled]:not([type]){color:rgba(0,0,0,.3);background-color:#f7f7f7}uni-button[disabled][type=primary]{background-color:rgba(0,122,255,.6)}uni-button[disabled][type=warn]{background-color:#ec8b89}uni-button[type=primary][plain]{color:#007aff;border:1px solid #007aff;background-color:transparent}uni-button[type=primary][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=primary][plain]:after{border-width:0}uni-button[type=default][plain]{color:#353535;border:1px solid #353535;background-color:transparent}uni-button[type=default][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=default][plain]:after{border-width:0}uni-button[plain]{color:#353535;border:1px solid #353535;background-color:transparent}uni-button[plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[plain]:after{border-width:0}uni-button[plain][native] .uni-button-cover-view-inner{padding:0}uni-button[type=warn][plain]{color:#e64340;border:1px solid #e64340;background-color:transparent}uni-button[type=warn][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=warn][plain]:after{border-width:0}uni-button[size=mini]{display:inline-block;line-height:2.3;font-size:13px;padding:0 1.34em}uni-button[size=mini][native]{padding:0}uni-button[size=mini][native] .uni-button-cover-view-inner{padding:0 1.34em}uni-button[loading]:not([disabled]){cursor:progress}uni-button[loading]:before{content:" ";display:inline-block;width:18px;height:18px;vertical-align:middle;animation:uni-loading 1s steps(12,end) infinite;background-size:100%}uni-button[loading][type=primary]{color:rgba(255,255,255,.6);background-color:#0062cc}uni-button[loading][type=primary][plain]{color:#007aff;background-color:transparent}uni-button[loading][type=default]{color:rgba(0,0,0,.6);background-color:#dedede}uni-button[loading][type=default][plain]{color:#353535;background-color:transparent}uni-button[loading][type=warn]{color:rgba(255,255,255,.6);background-color:#ce3c39}uni-button[loading][type=warn][plain]{color:#e64340;background-color:transparent}uni-button[loading][native]:before{content:none}.button-hover{color:rgba(0,0,0,.6);background-color:#dedede}.button-hover[plain]{color:rgba(53,53,53,.6);border-color:rgba(53,53,53,.6);background-color:transparent}.button-hover[type=primary]{color:rgba(255,255,255,.6);background-color:#0062cc}.button-hover[type=primary][plain]{color:rgba(0,122,255,.6);border-color:rgba(0,122,255,.6);background-color:transparent}.button-hover[type=default]{color:rgba(0,0,0,.6);background-color:#dedede}.button-hover[type=default][plain]{color:rgba(53,53,53,.6);border-color:rgba(53,53,53,.6);background-color:transparent}.button-hover[type=warn]{color:rgba(255,255,255,.6);background-color:#ce3c39}.button-hover[type=warn][plain]{color:rgba(230,67,64,.6);border-color:rgba(230,67,64,.6);background-color:transparent}@media (prefers-color-scheme: dark){uni-button,uni-button[type=default]{color:#d6d6d6;background-color:#343434}.button-hover,.button-hover[type=default]{color:#d6d6d6;background-color:rgba(255,255,255,.1)}uni-button[disabled][type=default],uni-button[disabled]:not([type]){color:rgba(255,255,255,.2);background-color:rgba(255,255,255,.08)}uni-button[type=primary][plain][disabled]{color:rgba(255,255,255,.2);border-color:rgba(255,255,255,.2)}uni-button[type=default][plain]{color:#d6d6d6;border:1px solid #d6d6d6}.button-hover[type=default][plain]{color:rgba(150,150,150,.6);border-color:rgba(150,150,150,.6);background-color:rgba(50,50,50,.2)}uni-button[type=default][plain][disabled]{border-color:rgba(255,255,255,.2);color:rgba(255,255,255,.2)}}uni-canvas{width:300px;height:150px;display:block;position:relative}uni-canvas>.uni-canvas-canvas{position:absolute;top:0;left:0;width:100%;height:100%}uni-checkbox{-webkit-tap-highlight-color:transparent;display:inline-block;cursor:pointer}uni-checkbox[hidden]{display:none}uni-checkbox[disabled]{cursor:not-allowed}.uni-checkbox-wrapper{display:inline-flex;align-items:center;vertical-align:middle}.uni-checkbox-input{margin-right:5px;-webkit-appearance:none;appearance:none;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:22px;height:22px;position:relative}.uni-checkbox-input svg{color:#007aff;font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73)}@media (hover: hover){uni-checkbox:not([disabled]) .uni-checkbox-input:hover{border-color:var(--HOVER-BD-COLOR, #007aff)!important}}uni-checkbox-group{display:block}uni-checkbox-group[hidden]{display:none}uni-cover-image{display:block;line-height:1.2;overflow:hidden;height:100%;width:100%;pointer-events:auto}uni-cover-image[hidden]{display:none}uni-cover-image .uni-cover-image{width:100%;height:100%}uni-cover-view{display:block;line-height:1.2;overflow:hidden;white-space:nowrap;pointer-events:auto}uni-cover-view[hidden]{display:none}uni-cover-view .uni-cover-view{width:100%;height:100%;visibility:hidden;text-overflow:inherit;white-space:inherit;align-items:inherit;justify-content:inherit;flex-direction:inherit;flex-wrap:inherit;display:inherit;overflow:inherit}.ql-container{display:block;position:relative;box-sizing:border-box;-webkit-user-select:text;user-select:text;outline:none;overflow:hidden;width:100%;height:200px;min-height:200px}.ql-container[hidden]{display:none}.ql-container .ql-editor{position:relative;font-size:inherit;line-height:inherit;font-family:inherit;min-height:inherit;width:100%;height:100%;padding:0;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-overflow-scrolling:touch}.ql-container .ql-editor::-webkit-scrollbar{width:0!important}.ql-container .ql-editor.scroll-disabled{overflow:hidden}.ql-container .ql-image-overlay{display:flex;position:absolute;box-sizing:border-box;border:1px dashed #ccc;justify-content:center;align-items:center;-webkit-user-select:none;user-select:none}.ql-container .ql-image-overlay .ql-image-size{position:absolute;padding:4px 8px;text-align:center;background-color:#fff;color:#888;border:1px solid #ccc;box-sizing:border-box;opacity:.8;right:4px;top:4px;font-size:12px;display:inline-block;width:auto}.ql-container .ql-image-overlay .ql-image-toolbar{position:relative;text-align:center;box-sizing:border-box;background:#000;border-radius:5px;color:#fff;font-size:0;min-height:24px;z-index:100}.ql-container .ql-image-overlay .ql-image-toolbar span{display:inline-block;cursor:pointer;padding:5px;font-size:12px;border-right:1px solid #fff}.ql-container .ql-image-overlay .ql-image-toolbar span:last-child{border-right:0}.ql-container .ql-image-overlay .ql-image-toolbar span.triangle-up{padding:0;position:absolute;top:-12px;left:50%;transform:translate(-50%);width:0;height:0;border-width:6px;border-style:solid;border-color:transparent transparent black transparent}.ql-container .ql-image-overlay .ql-image-handle{position:absolute;height:12px;width:12px;border-radius:50%;border:1px solid #ccc;box-sizing:border-box;background:#fff}.ql-container img{display:inline-block;max-width:100%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;height:100%;outline:none;overflow-y:auto;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"•"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"☑"}.ql-editor ul[data-checked=false]>li:before{content:"☐"}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em}.ql-editor li.ql-direction-rtl:before{margin-right:-1.5em}.ql-editor li:before{display:inline-block;white-space:nowrap;width:2em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:2em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:2em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:2em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:4em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:4em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:4em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:6em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:8em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:8em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:8em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:10em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:10em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:10em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:12em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:14em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:14em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:14em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:16em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:16em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:16em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:18em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;pointer-events:none;position:absolute}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}uni-icon{display:inline-block;font-size:0;box-sizing:border-box}uni-icon[hidden]{display:none}uni-image{width:320px;height:240px;display:inline-block;overflow:hidden;position:relative}uni-image[hidden]{display:none}uni-image>div{width:100%;height:100%;background-repeat:no-repeat}uni-image>img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;display:block;position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}uni-image>.uni-image-will-change{will-change:transform}uni-input{display:block;font-size:16px;line-height:1.4em;height:1.4em;min-height:1.4em;overflow:hidden}uni-input[hidden]{display:none}.uni-input-wrapper,.uni-input-placeholder,.uni-input-form,.uni-input-input{outline:none;border:none;padding:0;margin:0;text-decoration:inherit}.uni-input-wrapper,.uni-input-form{display:flex;position:relative;width:100%;height:100%;flex-direction:column;justify-content:center}.uni-input-placeholder,.uni-input-input{width:100%}.uni-input-placeholder{position:absolute;top:auto!important;left:0;color:gray;overflow:hidden;text-overflow:clip;white-space:pre;word-break:keep-all;pointer-events:none;line-height:inherit}.uni-input-input{position:relative;display:block;height:100%;background:none;color:inherit;opacity:1;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-indent:inherit;text-transform:inherit;text-shadow:inherit}.uni-input-input[type=search]::-webkit-search-cancel-button,.uni-input-input[type=search]::-webkit-search-decoration{display:none}.uni-input-input::-webkit-outer-spin-button,.uni-input-input::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.uni-input-input[type=number]{-moz-appearance:textfield}.uni-input-input:disabled{-webkit-text-fill-color:currentcolor}.uni-label-pointer{cursor:pointer}uni-live-pusher{width:320px;height:240px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-live-pusher[hidden]{display:none}.uni-live-pusher-container{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden;background-color:#000}.uni-live-pusher-slot{position:absolute;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none}uni-map{width:300px;height:225px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-map[hidden]{display:none}.uni-map-container{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden;background-color:transparent}.uni-map-slot{position:absolute;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none}uni-map.web{position:relative;width:300px;height:150px;display:block}uni-map.web[hidden]{display:none}uni-map.web .amap-marker-label{padding:0;border:none;background-color:transparent}uni-map.web .amap-marker>.amap-icon>img{left:0!important;top:0!important}uni-map.web .uni-map-control{position:absolute;width:0;height:0;top:0;left:0;z-index:999}uni-map.web .uni-map-control-icon{position:absolute;max-width:initial}.uni-system-choose-location{display:block;position:fixed;left:0;top:0;width:100%;height:100%;background:#f8f8f8;z-index:999}.uni-system-choose-location .map{position:absolute;top:0;left:0;width:100%;height:300px}.uni-system-choose-location .map-location{position:absolute;left:50%;bottom:50%;width:32px;height:52px;margin-left:-16px;cursor:pointer;background-size:100%}.uni-system-choose-location .map-move{position:absolute;bottom:50px;right:10px;width:40px;height:40px;box-sizing:border-box;line-height:40px;background-color:#fff;border-radius:50%;pointer-events:auto;cursor:pointer;box-shadow:0 0 5px 1px rgba(0,0,0,.3)}.uni-system-choose-location .map-move>svg{display:block;width:100%;height:100%;box-sizing:border-box;padding:8px}.uni-system-choose-location .nav{position:absolute;top:0;left:0;width:100%;height:calc(44px + var(--status-bar-height));background-color:transparent;background-image:linear-gradient(to bottom,rgba(0,0,0,.3),rgba(0,0,0,0))}.uni-system-choose-location .nav-btn{position:absolute;box-sizing:border-box;top:var(--status-bar-height);left:0;width:60px;height:44px;padding:6px;line-height:32px;font-size:26px;color:#fff;text-align:center;cursor:pointer}.uni-system-choose-location .nav-btn.confirm{left:auto;right:0}.uni-system-choose-location .nav-btn.disable{opacity:.4}.uni-system-choose-location .nav-btn>svg{display:block;width:100%;height:100%;border-radius:2px;box-sizing:border-box;padding:3px}.uni-system-choose-location .nav-btn.confirm>svg{background-color:#007aff;padding:5px}.uni-system-choose-location .menu{position:absolute;top:300px;left:0;width:100%;bottom:0;background-color:#fff}.uni-system-choose-location .search{display:flex;flex-direction:row;height:50px;padding:8px;line-height:34px;box-sizing:border-box;background-color:#fff}.uni-system-choose-location .search-input{flex:1;height:100%;border-radius:5px;padding:0 5px;background:#ebebeb}.uni-system-choose-location .search-btn{margin-left:5px;color:#007aff;font-size:17px;text-align:center}.uni-system-choose-location .list{position:absolute;top:50px;left:0;width:100%;bottom:0;padding-bottom:10px}.uni-system-choose-location .list-loading{display:flex;height:50px;justify-content:center;align-items:center}.uni-system-choose-location .list-item{position:relative;padding:10px 40px 10px 10px;cursor:pointer}.uni-system-choose-location .list-item>svg{display:none;position:absolute;top:50%;right:10px;width:30px;height:30px;margin-top:-15px;box-sizing:border-box;padding:5px}.uni-system-choose-location .list-item.selected>svg{display:block}.uni-system-choose-location .list-item:not(:last-child):after{position:absolute;content:"";height:1px;left:10px;bottom:0;width:100%;background-color:#d3d3d3}.uni-system-choose-location .list-item-title{font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.uni-system-choose-location .list-item-detail{font-size:12px;color:gray;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media screen and (min-width: 800px){.uni-system-choose-location .map{top:0;height:100%}.uni-system-choose-location .map-move{bottom:10px;right:320px}.uni-system-choose-location .menu{top:calc(54px + var(--status-bar-height));left:auto;right:10px;width:300px;bottom:10px;max-height:600px;box-shadow:0 0 20px 5px rgba(0,0,0,.3)}}.uni-system-open-location{display:block;position:fixed;left:0;top:0;width:100%;height:100%;background:#f8f8f8;z-index:999}.uni-system-open-location .map{position:absolute;top:0;left:0;width:100%;bottom:80px;height:auto}.uni-system-open-location .info{position:absolute;bottom:0;left:0;width:100%;height:80px;background-color:#fff;padding:15px;box-sizing:border-box;line-height:1.5}.uni-system-open-location .info>.name{font-size:17px;color:#111;padding-right:50px}.uni-system-open-location .info>.address{font-size:14px;color:#666}.uni-system-open-location .info>.nav{position:absolute;top:50%;right:15px;width:50px;height:50px;border-radius:50%;margin-top:-25px;background-color:#007aff}.uni-system-open-location .info>.nav>svg{display:block;width:100%;height:100%;padding:10px;box-sizing:border-box}.uni-system-open-location .map-move{position:absolute;bottom:50px;right:10px;width:40px;height:40px;box-sizing:border-box;line-height:40px;background-color:#fff;border-radius:50%;pointer-events:auto;cursor:pointer;box-shadow:0 0 5px 1px rgba(0,0,0,.3)}.uni-system-open-location .map-move>svg{display:block;width:100%;height:100%;box-sizing:border-box;padding:8px}.uni-system-open-location .nav-btn-back{position:absolute;box-sizing:border-box;top:var(--status-bar-height);left:0;width:44px;height:44px;padding:6px;cursor:pointer}.uni-system-open-location .nav-btn-back>svg{display:block;width:100%;height:100%;border-radius:50%;background-color:rgba(0,0,0,.5);padding:3px;box-sizing:border-box}.uni-system-open-location .map-content{position:absolute;left:0;top:0;width:100%;bottom:0;overflow:hidden}.uni-system-open-location .map-content.fix-position{top:-74px;bottom:-44px}.uni-system-open-location .map-content>iframe{width:100%;height:100%;border:none}.uni-system-open-location .actTonav{position:absolute;right:16px;bottom:56px;width:60px;height:60px;border-radius:60px}.uni-system-open-location .nav-view{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;flex-direction:column}.uni-system-open-location .nav-view-top-placeholder{width:100%;height:var(--status-bar-height);background-color:#fff}.uni-system-open-location .nav-view-frame{width:100%;flex:1}uni-movable-area{display:block;position:relative;width:10px;height:10px}uni-movable-area[hidden]{display:none}uni-movable-view{display:inline-block;width:10px;height:10px;top:0;left:0;position:absolute;cursor:grab}uni-movable-view[hidden]{display:none}uni-navigator{height:auto;width:auto;display:block;cursor:pointer}uni-navigator[hidden]{display:none}.navigator-hover{background-color:rgba(0,0,0,.1);opacity:.7}.navigator-wrap,.navigator-wrap:link,.navigator-wrap:visited,.navigator-wrap:hover,.navigator-wrap:active{text-decoration:none;color:inherit;cursor:pointer}uni-picker-view{display:block}.uni-picker-view-wrapper{display:flex;position:relative;overflow:hidden;height:100%}uni-picker-view[hidden]{display:none}uni-picker-view-column{flex:1;position:relative;height:100%;overflow:hidden}uni-picker-view-column[hidden]{display:none}.uni-picker-view-group{height:100%;overflow:hidden}.uni-picker-view-mask{transform:translateZ(0)}.uni-picker-view-indicator,.uni-picker-view-mask{position:absolute;left:0;width:100%;z-index:3;pointer-events:none}.uni-picker-view-mask{top:0;height:100%;margin:0 auto;background-image:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.6)),linear-gradient(0deg,rgba(255,255,255,.95),rgba(255,255,255,.6));background-position:top,bottom;background-size:100% 102px;background-repeat:no-repeat;transform:translateZ(0)}.uni-picker-view-indicator{height:34px;top:50%;transform:translateY(-50%)}.uni-picker-view-content{position:absolute;top:0;left:0;width:100%;will-change:transform;padding:102px 0;cursor:pointer}.uni-picker-view-content>*{height:var(--picker-view-column-indicator-height);overflow:hidden}.uni-picker-view-indicator:before{top:0;border-top:1px solid #e5e5e5;transform-origin:0 0;transform:scaleY(.5)}.uni-picker-view-indicator:after{bottom:0;border-bottom:1px solid #e5e5e5;transform-origin:0 100%;transform:scaleY(.5)}.uni-picker-view-indicator:after,.uni-picker-view-indicator:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}@media (prefers-color-scheme: dark){.uni-picker-view-indicator:before{border-top-color:var(--UI-FG-3)}.uni-picker-view-indicator:after{border-bottom-color:var(--UI-FG-3)}.uni-picker-view-mask{background-image:linear-gradient(180deg,rgba(35,35,35,.95),rgba(35,35,35,.6)),linear-gradient(0deg,rgba(35,35,35,.95),rgba(35,35,35,.6))}}uni-progress{display:flex;align-items:center}uni-progress[hidden]{display:none}.uni-progress-bar{flex:1}.uni-progress-inner-bar{width:0;height:100%}.uni-progress-info{margin-top:0;margin-bottom:0;min-width:2em;margin-left:15px;font-size:16px}uni-radio{-webkit-tap-highlight-color:transparent;display:inline-block;cursor:pointer}uni-radio[hidden]{display:none}uni-radio[disabled]{cursor:not-allowed}.uni-radio-wrapper{display:inline-flex;align-items:center;vertical-align:middle}.uni-radio-input{-webkit-appearance:none;appearance:none;margin-right:5px;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:50%;width:22px;height:22px;position:relative}@media (hover: hover){uni-radio:not([disabled]) .uni-radio-input:hover{border-color:var(--HOVER-BD-COLOR, #007aff)!important}}.uni-radio-input svg{color:#fff;font-size:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73)}.uni-radio-input.uni-radio-input-disabled{background-color:#e1e1e1;border-color:#d1d1d1}.uni-radio-input.uni-radio-input-disabled svg{color:#adadad}uni-radio-group{display:block}uni-radio-group[hidden]{display:none}uni-scroll-view{display:block;width:100%}uni-scroll-view[hidden]{display:none}.uni-scroll-view{position:relative;-webkit-overflow-scrolling:touch;width:100%;height:100%;max-height:inherit}.uni-scroll-view-scrollbar-hidden::-webkit-scrollbar{display:none}.uni-scroll-view-scrollbar-hidden{-moz-scrollbars:none;scrollbar-width:none}.uni-scroll-view-content{width:100%;height:100%}.uni-scroll-view-refresher{position:relative;overflow:hidden;flex-shrink:0}.uni-scroll-view-refresher-container{position:absolute;width:100%;bottom:0;display:flex;flex-direction:column-reverse}.uni-scroll-view-refresh{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:row;justify-content:center;align-items:center}.uni-scroll-view-refresh-inner{display:flex;align-items:center;justify-content:center;line-height:0;width:40px;height:40px;border-radius:50%;background-color:#fff;box-shadow:0 1px 6px rgba(0,0,0,.118),0 1px 4px rgba(0,0,0,.118)}.uni-scroll-view-refresh__spinner{transform-origin:center center;animation:uni-scroll-view-refresh-rotate 2s linear infinite}.uni-scroll-view-refresh__spinner>circle{stroke:currentColor;stroke-linecap:round;animation:uni-scroll-view-refresh-dash 2s linear infinite}@keyframes uni-scroll-view-refresh-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes uni-scroll-view-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}uni-slider{margin:10px 18px;padding:0;display:block}uni-slider[hidden]{display:none}uni-slider .uni-slider-wrapper{display:flex;align-items:center;min-height:16px}uni-slider .uni-slider-tap-area{flex:1;padding:8px 0}uni-slider .uni-slider-handle-wrapper{position:relative;height:2px;border-radius:5px;background-color:#e9e9e9;cursor:pointer;transition:background-color .3s ease;-webkit-tap-highlight-color:transparent}uni-slider .uni-slider-track{height:100%;border-radius:6px;background-color:#007aff;transition:background-color .3s ease}uni-slider .uni-slider-handle,uni-slider .uni-slider-thumb{position:absolute;left:50%;top:50%;cursor:pointer;border-radius:50%;transition:border-color .3s ease}uni-slider .uni-slider-handle{width:28px;height:28px;margin-top:-14px;margin-left:-14px;background-color:transparent;z-index:3;cursor:grab}uni-slider .uni-slider-thumb{z-index:2;box-shadow:0 0 4px rgba(0,0,0,.2)}uni-slider .uni-slider-step{position:absolute;width:100%;height:2px;background:transparent;z-index:1}uni-slider .uni-slider-value{width:3ch;color:#888;font-size:14px;margin-left:1em}uni-slider .uni-slider-disabled .uni-slider-track{background-color:#ccc}uni-slider .uni-slider-disabled .uni-slider-thumb{background-color:#fff;border-color:#ccc}uni-swiper{display:block;height:150px}uni-swiper[hidden]{display:none}.uni-swiper-wrapper{overflow:hidden;position:relative;width:100%;height:100%;transform:translateZ(0)}.uni-swiper-slides{position:absolute;left:0;top:0;right:0;bottom:0}.uni-swiper-slide-frame{position:absolute;left:0;top:0;width:100%;height:100%;will-change:transform}.uni-swiper-dots{position:absolute;font-size:0}.uni-swiper-dots-horizontal{left:50%;bottom:10px;text-align:center;white-space:nowrap;transform:translate(-50%)}.uni-swiper-dots-horizontal .uni-swiper-dot{margin-right:8px}.uni-swiper-dots-horizontal .uni-swiper-dot:last-child{margin-right:0}.uni-swiper-dots-vertical{right:10px;top:50%;text-align:right;transform:translateY(-50%)}.uni-swiper-dots-vertical .uni-swiper-dot{display:block;margin-bottom:9px}.uni-swiper-dots-vertical .uni-swiper-dot:last-child{margin-bottom:0}.uni-swiper-dot{display:inline-block;width:8px;height:8px;cursor:pointer;transition-property:background-color;transition-timing-function:ease;background:rgba(0,0,0,.3);border-radius:50%}.uni-swiper-dot-active{background-color:#000}.uni-swiper-navigation{width:26px;height:26px;cursor:pointer;position:absolute;top:50%;margin-top:-13px;display:flex;align-items:center;transition:all .2s;border-radius:50%;opacity:1}.uni-swiper-navigation-disabled{opacity:.35;cursor:not-allowed}.uni-swiper-navigation-hide{opacity:0;cursor:auto;pointer-events:none}.uni-swiper-navigation-prev{left:10px}.uni-swiper-navigation-prev svg{margin-left:-1px;left:10px}.uni-swiper-navigation-prev.uni-swiper-navigation-vertical{top:18px;left:50%;margin-left:-13px}.uni-swiper-navigation-prev.uni-swiper-navigation-vertical svg{transform:rotate(90deg);margin-left:auto;margin-top:-2px}.uni-swiper-navigation-next{right:10px}.uni-swiper-navigation-next svg{transform:rotate(180deg)}.uni-swiper-navigation-next.uni-swiper-navigation-vertical{top:auto;bottom:5px;left:50%;margin-left:-13px}.uni-swiper-navigation-next.uni-swiper-navigation-vertical svg{margin-top:2px;transform:rotate(270deg)}uni-swiper-item{display:block;overflow:hidden;will-change:transform;position:absolute;width:100%;height:100%;cursor:grab}uni-swiper-item[hidden]{display:none}uni-switch{-webkit-tap-highlight-color:transparent;display:inline-block;cursor:pointer}uni-switch[hidden]{display:none}uni-switch[disabled]{cursor:not-allowed}uni-switch[disabled] .uni-switch-input{opacity:.7}.uni-switch-wrapper{display:inline-flex;align-items:center;vertical-align:middle}.uni-switch-input{-webkit-appearance:none;appearance:none;position:relative;width:52px;height:32px;margin-right:5px;border:1px solid #dfdfdf;outline:0;border-radius:16px;box-sizing:border-box;background-color:#dfdfdf;transition:background-color .1s,border .1s}.uni-switch-input:before{content:" ";position:absolute;top:0;left:0;width:50px;height:30px;border-radius:15px;background-color:#fdfdfd;transition:transform .3s}.uni-switch-input:after{content:" ";position:absolute;top:0;left:0;width:30px;height:30px;border-radius:15px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);transition:transform .3s}.uni-switch-input.uni-switch-input-checked{border-color:#007aff;background-color:#007aff}.uni-switch-input.uni-switch-input-checked:before{transform:scale(0)}.uni-switch-input.uni-switch-input-checked:after{transform:translate(20px)}uni-switch .uni-checkbox-input{margin-right:5px;-webkit-appearance:none;appearance:none;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:22px;height:22px;position:relative;color:#007aff}uni-switch:not([disabled]) .uni-checkbox-input:hover{border-color:#007aff}uni-switch .uni-checkbox-input svg{fill:#007aff;font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73)}.uni-checkbox-input.uni-checkbox-input-disabled{background-color:#e1e1e1}.uni-checkbox-input.uni-checkbox-input-disabled:before{color:#adadad}@media (prefers-color-scheme: dark){uni-switch .uni-switch-input{border-color:#3b3b3f}uni-switch .uni-switch-input,uni-switch .uni-switch-input:before{background-color:#3b3b3f}uni-switch .uni-switch-input:after{background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}uni-switch .uni-checkbox-input{background-color:#2c2c2c;border:1px solid #656565}}uni-textarea{width:300px;height:150px;display:block;position:relative;font-size:16px;line-height:normal;white-space:pre-wrap;word-break:break-all}uni-textarea[hidden]{display:none}uni-textarea[auto-height=true]{height:-webkit-fit-content!important;height:fit-content!important}.uni-textarea-wrapper,.uni-textarea-placeholder,.uni-textarea-line,.uni-textarea-compute,.uni-textarea-textarea{outline:none;border:none;padding:0;margin:0;text-decoration:inherit}.uni-textarea-wrapper{display:block;position:relative;width:100%;height:100%;min-height:inherit;overflow-y:hidden}.uni-textarea-placeholder,.uni-textarea-line,.uni-textarea-compute,.uni-textarea-textarea{position:absolute;width:100%;height:100%;left:0;top:0;white-space:inherit;word-break:inherit}.uni-textarea-placeholder{color:gray;overflow:hidden}.uni-textarea-line,.uni-textarea-compute{visibility:hidden;height:auto}.uni-textarea-line{width:1em}.uni-textarea-compute-auto-height{overflow-wrap:break-word}.uni-textarea-textarea{resize:none;background:none;color:inherit;opacity:1;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-indent:inherit;text-transform:inherit;text-shadow:inherit}.uni-textarea-textarea-fix-margin{width:auto;right:0;margin:0 -3px}.uni-textarea-textarea:disabled{-webkit-text-fill-color:currentcolor}uni-video{width:300px;height:225px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-video[hidden]{display:none}.uni-video-container{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden;background-color:#000}.uni-video-slot{position:absolute;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none}uni-web-view{display:inline-block;position:absolute;left:0;right:0;top:0;bottom:0} -@font-face{font-family:iconfont;src:url(static/iconfont/iconfont.ttf?t=1776936195904) format("truetype")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-del:before{content:"\e616"}.icon-zhaoxiangji:before{content:"\e663"}.icon-duoxuan:before{content:"\e630"}.icon-jia:before{content:"\e659"}.icon-quxiao:before{content:"\e625"}.icon-tuichu:before{content:"\e617"}.icon-fuzhi:before{content:"\e6e6"}.icon-shangchuan:before{content:"\e797"}.icon-total_selection:before{content:"\e660"}.icon-tingzhi:before{content:"\e611"}.icon-wenjianjia:before{content:"\e64b"}.icon-caidan:before{content:"\eaf1"}.icon-wenjian:before{content:"\e729"}.icon-biezhen:before{content:"\e647"}.icon-bianji:before{content:"\e605"}.icon-fasong:before{content:"\e705"}.icon-download:before{content:"\e61a"}.icon-edit-fill:before{content:"\e61d"}.icon-favorite-fill:before{content:"\e61f"}.icon-favorite:before{content:"\e620"}.icon-upload:before{content:"\e63e"}.icon-yonghuziliao:before{content:"\e6a1"}.icon-pen-fill:before{content:"\e667"}.icon-qunliao:before{content:"\e606"}.icon-shipintonghua:before{content:"\e609"}.icon-tianjia:before{content:"\e60d"}.icon-tongxunlu:before{content:"\e612"}.icon-tianjiahaoyou:before{content:"\e613"}.icon-shanchu:before{content:"\e6d3"}.icon-choose-fill:before{content:"\e6a2"}.icon-a-wenjianjiawenjian:before{content:"\e69e"}.icon-sousuo:before{content:"\e6eb"}.icon-Robot:before{content:"\e661"}.icon-saochu:before{content:"\e6a3"}.icon-fanhui:before{content:"\e765"}.icon-brain-2-fill:before{content:"\e800"}.icon-gengduo:before{content:"\e6c5"}.status-bar{height:var(--status-bar-height);width:100%}.page-container{width:100%;height:calc(100vh - var(--status-bar-height))}.solid-line{width:100%;border-bottom:.03125rem solid #999}.icon-btn,.text-btn{padding:.3125rem;border-radius:.625rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.switch-box{width:42px;height:20px;background-color:#999;border-radius:10px;display:flex;align-items:center;padding:1px}.switch-box.active{justify-content:flex-end;background-color:#0af}.switch-track{width:20px;height:20px;background-color:#fff;border-radius:50%}.popup-overlay{position:fixed;width:100%;height:100%;left:0;top:0;display:flex;align-items:center;justify-content:center;background-color:rgba(193,193,193,.4);z-index:1000}.popup-card{width:90%;height:auto;background-color:#fff;border-radius:1.5625rem;padding:1.5625rem;box-sizing:border-box;display:flex;flex-direction:column;position:relative}.close-popup-card{position:absolute;top:.3125rem;right:.3125rem;color:red;padding:.3125rem;box-sizing:border-box}.popup-title{width:100%;display:flex;justify-content:center;align-items:center} +@font-face{font-family:iconfont;src:url(static/iconfont/iconfont.woff2?t=1782200893170) format("woff2"),url(static/iconfont/iconfont.woff?t=1782200893170) format("woff"),url(static/iconfont/iconfont.ttf?t=1782200893170) format("truetype")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-cloud:before{content:"\e988"}.icon-qitawenjian:before{content:"\e7b6"}.icon-wenjianyasuo:before{content:"\e643"}.icon-wenjianshipin:before{content:"\e644"}.icon-wenjianyinpin:before{content:"\e645"}.icon-wenjiantupian:before{content:"\e646"}.icon-daimawenjian:before{content:"\e66a"}.icon-file-markdown-fill:before{content:"\ebb1"}.icon-SVG:before{content:"\e614"}.icon-HTML:before{content:"\e615"}.icon-CSS:before{content:"\e618"}.icon-CSV:before{content:"\e619"}.icon-JSON:before{content:"\e61b"}.icon-JS:before{content:"\e61c"}.icon-PDF:before{content:"\e61e"}.icon-PHP:before{content:"\e621"}.icon-TXT:before{content:"\e622"}.icon-XLS:before{content:"\e623"}.icon-DOC:before{content:"\e624"}.icon-PPT:before{content:"\e626"}.icon-SQL:before{content:"\e627"}.icon-bianji:before{content:"\e605"}.icon-fasong:before{content:"\e705"}.icon-download:before{content:"\e61a"}.icon-edit-fill:before{content:"\e61d"}.icon-favorite-fill:before{content:"\e61f"}.icon-favorite:before{content:"\e620"}.icon-upload:before{content:"\e63e"}.icon-yonghuziliao:before{content:"\e6a1"}.icon-pen-fill:before{content:"\e67c"}.icon-qunliao:before{content:"\e606"}.icon-shipintonghua:before{content:"\e609"}.icon-tianjia:before{content:"\e60d"}.icon-tongxunlu:before{content:"\e612"}.icon-tianjiahaoyou:before{content:"\e613"}.icon-shanchu:before{content:"\e6d3"}.icon-choose-fill:before{content:"\e6a2"}.icon-a-wenjianjiawenjian:before{content:"\e69e"}.icon-sousuo:before{content:"\e6eb"}.icon-Robot:before{content:"\e67d"}.icon-saochu:before{content:"\e6a3"}.icon-fanhui:before{content:"\e765"}.icon-brain-2-fill:before{content:"\e800"}.icon-gengduo:before{content:"\e6c5"}.icon-del:before{content:"\e616"}.icon-zhaoxiangji:before{content:"\e663"}.icon-duoxuan:before{content:"\e630"}.icon-jia:before{content:"\e659"}.icon-quxiao:before{content:"\e625"}.icon-tuichu:before{content:"\e617"}.icon-fuzhi:before{content:"\e6e6"}.icon-shangchuan:before{content:"\e797"}.icon-total_selection:before{content:"\e660"}.icon-tingzhi:before{content:"\e611"}.icon-wenjianjia:before{content:"\e64b"}.icon-caidan:before{content:"\eaf1"}.icon-wenjian:before{content:"\e729"}.icon-biezhen:before{content:"\e647"}.icon-qita:before{content:"\e600"}.status-bar{height:var(--status-bar-height);width:100%}.page-container{width:100%;height:calc(100vh - var(--status-bar-height))}.solid-line{width:100%;border-bottom:.03125rem solid #999}.icon-btn,.text-btn{padding:.3125rem;border-radius:.625rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.switch-box{width:42px;height:20px;background-color:#999;border-radius:10px;display:flex;align-items:center;padding:1px}.switch-box.active{justify-content:flex-end;background-color:#0af}.switch-track{width:20px;height:20px;background-color:#fff;border-radius:50%}.popup-overlay{position:fixed;width:100%;height:100%;left:0;top:0;display:flex;align-items:center;justify-content:center;background-color:rgba(193,193,193,.4);z-index:1000}.popup-card{width:90%;height:auto;background-color:#fff;border-radius:1.5625rem;padding:1.5625rem;box-sizing:border-box;display:flex;flex-direction:column;position:relative}.close-popup-card{position:absolute;top:.3125rem;right:.3125rem;color:red;padding:.3125rem;box-sizing:border-box}.popup-title{width:100%;display:flex;justify-content:center;align-items:center} diff --git a/unpackage/dist/build/app-plus/manifest.json b/unpackage/dist/build/app-plus/manifest.json index 25a2450..38263bf 100644 --- a/unpackage/dist/build/app-plus/manifest.json +++ b/unpackage/dist/build/app-plus/manifest.json @@ -7,7 +7,7 @@ "id": "__UNI__923FD9E", "name": "test1", "version": { - "name": "1.0.0", + "name": "1.1.1", "code": "1" }, "description": "", @@ -17,6 +17,7 @@ "url": "" }, "permissions": { + "Camera": {}, "UniNView": { "description": "UniNView原生渲染" } @@ -45,6 +46,46 @@ "nvueStyleCompiler": "uni-app", "compilerVersion": 3, "distribute": { + "icons": { + "android": { + "hdpi": "unpackage/res/icons/72x72.png", + "xhdpi": "unpackage/res/icons/96x96.png", + "xxhdpi": "unpackage/res/icons/144x144.png", + "xxxhdpi": "unpackage/res/icons/192x192.png" + }, + "ios": { + "appstore": "unpackage/res/icons/1024x1024.png", + "ipad": { + "app": "unpackage/res/icons/76x76.png", + "app@2x": "unpackage/res/icons/152x152.png", + "notification": "unpackage/res/icons/20x20.png", + "notification@2x": "unpackage/res/icons/40x40.png", + "proapp@2x": "unpackage/res/icons/167x167.png", + "settings": "unpackage/res/icons/29x29.png", + "settings@2x": "unpackage/res/icons/58x58.png", + "spotlight": "unpackage/res/icons/40x40.png", + "spotlight@2x": "unpackage/res/icons/80x80.png" + }, + "iphone": { + "app@2x": "unpackage/res/icons/120x120.png", + "app@3x": "unpackage/res/icons/180x180.png", + "notification@2x": "unpackage/res/icons/40x40.png", + "notification@3x": "unpackage/res/icons/60x60.png", + "settings@2x": "unpackage/res/icons/58x58.png", + "settings@3x": "unpackage/res/icons/87x87.png", + "spotlight@2x": "unpackage/res/icons/80x80.png", + "spotlight@3x": "unpackage/res/icons/120x120.png" + } + } + }, + "splashscreen": { + "androidStyle": "default", + "android": { + "hdpi": "C:/Users/ADMIN/Pictures/480-762.png", + "xhdpi": "C:/Users/ADMIN/Pictures/720-1242.png", + "xxhdpi": "C:/Users/ADMIN/Pictures/1080-1882.png" + } + }, "google": { "permissions": [ "", @@ -61,7 +102,10 @@ "", "", "", - "" + "", + "", + "", + "" ] }, "apple": { diff --git a/unpackage/dist/build/app-plus/pages/Chat/Chat.css b/unpackage/dist/build/app-plus/pages/Chat/Chat.css index 88a2a64..fb50b73 100644 --- a/unpackage/dist/build/app-plus/pages/Chat/Chat.css +++ b/unpackage/dist/build/app-plus/pages/Chat/Chat.css @@ -1 +1 @@ -.uniui-cart-filled[data-v-b25a9929]:before{content:"\e6d0"}.uniui-gift-filled[data-v-b25a9929]:before{content:"\e6c4"}.uniui-color[data-v-b25a9929]:before{content:"\e6cf"}.uniui-wallet[data-v-b25a9929]:before{content:"\e6b1"}.uniui-settings-filled[data-v-b25a9929]:before{content:"\e6ce"}.uniui-auth-filled[data-v-b25a9929]:before{content:"\e6cc"}.uniui-shop-filled[data-v-b25a9929]:before{content:"\e6cd"}.uniui-staff-filled[data-v-b25a9929]:before{content:"\e6cb"}.uniui-vip-filled[data-v-b25a9929]:before{content:"\e6c6"}.uniui-plus-filled[data-v-b25a9929]:before{content:"\e6c7"}.uniui-folder-add-filled[data-v-b25a9929]:before{content:"\e6c8"}.uniui-color-filled[data-v-b25a9929]:before{content:"\e6c9"}.uniui-tune-filled[data-v-b25a9929]:before{content:"\e6ca"}.uniui-calendar-filled[data-v-b25a9929]:before{content:"\e6c0"}.uniui-notification-filled[data-v-b25a9929]:before{content:"\e6c1"}.uniui-wallet-filled[data-v-b25a9929]:before{content:"\e6c2"}.uniui-medal-filled[data-v-b25a9929]:before{content:"\e6c3"}.uniui-fire-filled[data-v-b25a9929]:before{content:"\e6c5"}.uniui-refreshempty[data-v-b25a9929]:before{content:"\e6bf"}.uniui-location-filled[data-v-b25a9929]:before{content:"\e6af"}.uniui-person-filled[data-v-b25a9929]:before{content:"\e69d"}.uniui-personadd-filled[data-v-b25a9929]:before{content:"\e698"}.uniui-arrowthinleft[data-v-b25a9929]:before{content:"\e6d2"}.uniui-arrowthinup[data-v-b25a9929]:before{content:"\e6d3"}.uniui-arrowthindown[data-v-b25a9929]:before{content:"\e6d4"}.uniui-back[data-v-b25a9929]:before{content:"\e6b9"}.uniui-forward[data-v-b25a9929]:before{content:"\e6ba"}.uniui-arrow-right[data-v-b25a9929]:before{content:"\e6bb"}.uniui-arrow-left[data-v-b25a9929]:before{content:"\e6bc"}.uniui-arrow-up[data-v-b25a9929]:before{content:"\e6bd"}.uniui-arrow-down[data-v-b25a9929]:before{content:"\e6be"}.uniui-arrowthinright[data-v-b25a9929]:before{content:"\e6d1"}.uniui-down[data-v-b25a9929]:before{content:"\e6b8"}.uniui-bottom[data-v-b25a9929]:before{content:"\e6b8"}.uniui-arrowright[data-v-b25a9929]:before{content:"\e6d5"}.uniui-right[data-v-b25a9929]:before{content:"\e6b5"}.uniui-up[data-v-b25a9929]:before{content:"\e6b6"}.uniui-top[data-v-b25a9929]:before{content:"\e6b6"}.uniui-left[data-v-b25a9929]:before{content:"\e6b7"}.uniui-arrowup[data-v-b25a9929]:before{content:"\e6d6"}.uniui-eye[data-v-b25a9929]:before{content:"\e651"}.uniui-eye-filled[data-v-b25a9929]:before{content:"\e66a"}.uniui-eye-slash[data-v-b25a9929]:before{content:"\e6b3"}.uniui-eye-slash-filled[data-v-b25a9929]:before{content:"\e6b4"}.uniui-info-filled[data-v-b25a9929]:before{content:"\e649"}.uniui-reload[data-v-b25a9929]:before{content:"\e6b2"}.uniui-micoff-filled[data-v-b25a9929]:before{content:"\e6b0"}.uniui-map-pin-ellipse[data-v-b25a9929]:before{content:"\e6ac"}.uniui-map-pin[data-v-b25a9929]:before{content:"\e6ad"}.uniui-location[data-v-b25a9929]:before{content:"\e6ae"}.uniui-starhalf[data-v-b25a9929]:before{content:"\e683"}.uniui-star[data-v-b25a9929]:before{content:"\e688"}.uniui-star-filled[data-v-b25a9929]:before{content:"\e68f"}.uniui-calendar[data-v-b25a9929]:before{content:"\e6a0"}.uniui-fire[data-v-b25a9929]:before{content:"\e6a1"}.uniui-medal[data-v-b25a9929]:before{content:"\e6a2"}.uniui-font[data-v-b25a9929]:before{content:"\e6a3"}.uniui-gift[data-v-b25a9929]:before{content:"\e6a4"}.uniui-link[data-v-b25a9929]:before{content:"\e6a5"}.uniui-notification[data-v-b25a9929]:before{content:"\e6a6"}.uniui-staff[data-v-b25a9929]:before{content:"\e6a7"}.uniui-vip[data-v-b25a9929]:before{content:"\e6a8"}.uniui-folder-add[data-v-b25a9929]:before{content:"\e6a9"}.uniui-tune[data-v-b25a9929]:before{content:"\e6aa"}.uniui-auth[data-v-b25a9929]:before{content:"\e6ab"}.uniui-person[data-v-b25a9929]:before{content:"\e699"}.uniui-email-filled[data-v-b25a9929]:before{content:"\e69a"}.uniui-phone-filled[data-v-b25a9929]:before{content:"\e69b"}.uniui-phone[data-v-b25a9929]:before{content:"\e69c"}.uniui-email[data-v-b25a9929]:before{content:"\e69e"}.uniui-personadd[data-v-b25a9929]:before{content:"\e69f"}.uniui-chatboxes-filled[data-v-b25a9929]:before{content:"\e692"}.uniui-contact[data-v-b25a9929]:before{content:"\e693"}.uniui-chatbubble-filled[data-v-b25a9929]:before{content:"\e694"}.uniui-contact-filled[data-v-b25a9929]:before{content:"\e695"}.uniui-chatboxes[data-v-b25a9929]:before{content:"\e696"}.uniui-chatbubble[data-v-b25a9929]:before{content:"\e697"}.uniui-upload-filled[data-v-b25a9929]:before{content:"\e68e"}.uniui-upload[data-v-b25a9929]:before{content:"\e690"}.uniui-weixin[data-v-b25a9929]:before{content:"\e691"}.uniui-compose[data-v-b25a9929]:before{content:"\e67f"}.uniui-qq[data-v-b25a9929]:before{content:"\e680"}.uniui-download-filled[data-v-b25a9929]:before{content:"\e681"}.uniui-pyq[data-v-b25a9929]:before{content:"\e682"}.uniui-sound[data-v-b25a9929]:before{content:"\e684"}.uniui-trash-filled[data-v-b25a9929]:before{content:"\e685"}.uniui-sound-filled[data-v-b25a9929]:before{content:"\e686"}.uniui-trash[data-v-b25a9929]:before{content:"\e687"}.uniui-videocam-filled[data-v-b25a9929]:before{content:"\e689"}.uniui-spinner-cycle[data-v-b25a9929]:before{content:"\e68a"}.uniui-weibo[data-v-b25a9929]:before{content:"\e68b"}.uniui-videocam[data-v-b25a9929]:before{content:"\e68c"}.uniui-download[data-v-b25a9929]:before{content:"\e68d"}.uniui-help[data-v-b25a9929]:before{content:"\e679"}.uniui-navigate-filled[data-v-b25a9929]:before{content:"\e67a"}.uniui-plusempty[data-v-b25a9929]:before{content:"\e67b"}.uniui-smallcircle[data-v-b25a9929]:before{content:"\e67c"}.uniui-minus-filled[data-v-b25a9929]:before{content:"\e67d"}.uniui-micoff[data-v-b25a9929]:before{content:"\e67e"}.uniui-closeempty[data-v-b25a9929]:before{content:"\e66c"}.uniui-clear[data-v-b25a9929]:before{content:"\e66d"}.uniui-navigate[data-v-b25a9929]:before{content:"\e66e"}.uniui-minus[data-v-b25a9929]:before{content:"\e66f"}.uniui-image[data-v-b25a9929]:before{content:"\e670"}.uniui-mic[data-v-b25a9929]:before{content:"\e671"}.uniui-paperplane[data-v-b25a9929]:before{content:"\e672"}.uniui-close[data-v-b25a9929]:before{content:"\e673"}.uniui-help-filled[data-v-b25a9929]:before{content:"\e674"}.uniui-paperplane-filled[data-v-b25a9929]:before{content:"\e675"}.uniui-plus[data-v-b25a9929]:before{content:"\e676"}.uniui-mic-filled[data-v-b25a9929]:before{content:"\e677"}.uniui-image-filled[data-v-b25a9929]:before{content:"\e678"}.uniui-locked-filled[data-v-b25a9929]:before{content:"\e668"}.uniui-info[data-v-b25a9929]:before{content:"\e669"}.uniui-locked[data-v-b25a9929]:before{content:"\e66b"}.uniui-camera-filled[data-v-b25a9929]:before{content:"\e658"}.uniui-chat-filled[data-v-b25a9929]:before{content:"\e659"}.uniui-camera[data-v-b25a9929]:before{content:"\e65a"}.uniui-circle[data-v-b25a9929]:before{content:"\e65b"}.uniui-checkmarkempty[data-v-b25a9929]:before{content:"\e65c"}.uniui-chat[data-v-b25a9929]:before{content:"\e65d"}.uniui-circle-filled[data-v-b25a9929]:before{content:"\e65e"}.uniui-flag[data-v-b25a9929]:before{content:"\e65f"}.uniui-flag-filled[data-v-b25a9929]:before{content:"\e660"}.uniui-gear-filled[data-v-b25a9929]:before{content:"\e661"}.uniui-home[data-v-b25a9929]:before{content:"\e662"}.uniui-home-filled[data-v-b25a9929]:before{content:"\e663"}.uniui-gear[data-v-b25a9929]:before{content:"\e664"}.uniui-smallcircle-filled[data-v-b25a9929]:before{content:"\e665"}.uniui-map-filled[data-v-b25a9929]:before{content:"\e666"}.uniui-map[data-v-b25a9929]:before{content:"\e667"}.uniui-refresh-filled[data-v-b25a9929]:before{content:"\e656"}.uniui-refresh[data-v-b25a9929]:before{content:"\e657"}.uniui-cloud-upload[data-v-b25a9929]:before{content:"\e645"}.uniui-cloud-download-filled[data-v-b25a9929]:before{content:"\e646"}.uniui-cloud-download[data-v-b25a9929]:before{content:"\e647"}.uniui-cloud-upload-filled[data-v-b25a9929]:before{content:"\e648"}.uniui-redo[data-v-b25a9929]:before{content:"\e64a"}.uniui-images-filled[data-v-b25a9929]:before{content:"\e64b"}.uniui-undo-filled[data-v-b25a9929]:before{content:"\e64c"}.uniui-more[data-v-b25a9929]:before{content:"\e64d"}.uniui-more-filled[data-v-b25a9929]:before{content:"\e64e"}.uniui-undo[data-v-b25a9929]:before{content:"\e64f"}.uniui-images[data-v-b25a9929]:before{content:"\e650"}.uniui-paperclip[data-v-b25a9929]:before{content:"\e652"}.uniui-settings[data-v-b25a9929]:before{content:"\e653"}.uniui-search[data-v-b25a9929]:before{content:"\e654"}.uniui-redo-filled[data-v-b25a9929]:before{content:"\e655"}.uniui-list[data-v-b25a9929]:before{content:"\e644"}.uniui-mail-open-filled[data-v-b25a9929]:before{content:"\e63a"}.uniui-hand-down-filled[data-v-b25a9929]:before{content:"\e63c"}.uniui-hand-down[data-v-b25a9929]:before{content:"\e63d"}.uniui-hand-up-filled[data-v-b25a9929]:before{content:"\e63e"}.uniui-hand-up[data-v-b25a9929]:before{content:"\e63f"}.uniui-heart-filled[data-v-b25a9929]:before{content:"\e641"}.uniui-mail-open[data-v-b25a9929]:before{content:"\e643"}.uniui-heart[data-v-b25a9929]:before{content:"\e639"}.uniui-loop[data-v-b25a9929]:before{content:"\e633"}.uniui-pulldown[data-v-b25a9929]:before{content:"\e632"}.uniui-scan[data-v-b25a9929]:before{content:"\e62a"}.uniui-bars[data-v-b25a9929]:before{content:"\e627"}.uniui-checkbox[data-v-b25a9929]:before{content:"\e62b"}.uniui-checkbox-filled[data-v-b25a9929]:before{content:"\e62c"}.uniui-shop[data-v-b25a9929]:before{content:"\e62f"}.uniui-headphones[data-v-b25a9929]:before{content:"\e630"}.uniui-cart[data-v-b25a9929]:before{content:"\e631"}@font-face{font-family:uniicons;src:url(../../assets/uniicons.32e978a5.ttf)}.uni-icons[data-v-b25a9929]{font-family:uniicons;text-decoration:none;text-align:center}.chat-sidebar-container[data-v-8ade48e4]{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;background-color:#f8f8f8;color:#000;box-sizing:border-box}.sidebar-header[data-v-8ade48e4]{padding:1.25rem;width:100%;box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;flex-direction:column;border-bottom:.03125rem solid #bbbbbb}.user-profile-card[data-v-8ade48e4]{padding:.3125rem .625rem;width:100%;display:flex;align-items:center;background-color:#fff;box-sizing:border-box;border-radius:.9375rem;box-shadow:0 0 .25rem #ccc}.user-profile-card .left[data-v-8ade48e4]{flex-shrink:0;display:flex;justify-content:center;align-items:center;margin-right:.1875rem}.user-profile-card .center[data-v-8ade48e4]{flex:1;height:0;display:flex;flex-direction:column;align-items:start;justify-content:center}.user-profile-card .right[data-v-8ade48e4]{flex-shrink:0;margin-left:.1875rem;display:flex;align-items:center}.user-profile-card .right .status-dot[data-v-8ade48e4]{width:.3125rem;height:.3125rem;border-radius:50%;background-color:#10b981;margin-right:.5rem;animation:statusDotPulse-8ade48e4 2s ease-in-out infinite}@keyframes statusDotPulse-8ade48e4{0%,to{box-shadow:0 0 .46875rem rgba(59,130,246,.8);transform:scale(1)}50%{box-shadow:0 0 .9375rem rgba(59,130,246,.7);transform:scale(1.1)}}.new-chat-btn[data-v-8ade48e4]{margin-top:.625rem;width:100%;padding:.9375rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center;background:linear-gradient(to right,#3b86ff,#2463df);border-radius:.9375rem;box-shadow:0 0 .25rem rgba(59,134,255,.6)}.new-chat-btn uni-text[data-v-8ade48e4]{font-size:.875rem;font-weight:700;color:#fff}.chat-history[data-v-8ade48e4]{width:100%;padding:.625rem 0;box-sizing:border-box;flex:1;height:0;overflow-y:auto;overflow-x:hidden}.chat-history[data-v-8ade48e4]::-webkit-scrollbar{width:.25rem}.chat-history[data-v-8ade48e4]::-webkit-scrollbar-thumb{background:rgba(59,134,255,.4);border-radius:.09375rem}.chat-history[data-v-8ade48e4]::-webkit-scrollbar-track{background:transparent}.history-header[data-v-8ade48e4]{width:100%;padding:.9375rem;box-sizing:border-box;border-bottom:.03125rem solid #bbbbbb;display:flex;justify-content:space-between;align-items:center}.history-header .history-title-section[data-v-8ade48e4]{display:flex;flex-direction:column}.history-header .history-management[data-v-8ade48e4]{display:flex}.history-header .history-management .history-management-btn[data-v-8ade48e4]{margin-left:.625rem;width:1.875rem;height:1.875rem;display:flex;justify-content:center;align-items:center;font-size:.8125rem;background-color:rgba(221,221,221,.5);border-radius:.3125rem}.history-header .history-management .icon-jia-style[data-v-8ade48e4]{background-color:rgba(16,185,129,.2);color:#059669}.history-header .history-management .icon-duoxuan-style[data-v-8ade48e4]{color:#666}.history-header .history-management .icon-saochu-style[data-v-8ade48e4]{color:red}.history-header .history-management .icon-quxiao-style[data-v-8ade48e4]{color:#3b86ff;box-sizing:border-box}.history-header .history-management .icon-total_selection-style[data-v-8ade48e4]{color:#666}.history-header .history-management .icon-total_selection-style.active[data-v-8ade48e4]{color:#2463df;background:rgba(59,134,255,.2)}.history-header .history-management .icon-shanchu-style[data-v-8ade48e4]{color:red}.history-search-wrap[data-v-8ade48e4]{display:flex;flex-direction:column;width:100%;padding:.625rem .9375rem .1875rem;box-sizing:border-box}.history-search-wrap .history-search-inner[data-v-8ade48e4]{display:flex;width:100%;padding:.3125rem .625rem;box-sizing:border-box;align-items:center;background-color:rgba(194,191,211,.1);border-radius:.9375rem}.history-search-wrap .history-search-inner .search-icon[data-v-8ade48e4]{color:#666!important;font-weight:700;font-size:1.125rem!important}.history-search-wrap .history-search-inner .chat-search-icon[data-v-8ade48e4]{color:#aaf!important;font-weight:700;font-size:1.125rem!important}.history-search-wrap .history-search-inner uni-input[data-v-8ade48e4]{margin-left:.3125rem;box-sizing:border-box}.history-search-wrap .history-search-inner.has-value[data-v-8ade48e4]{background-color:#fff;border:.0625rem solid #aaaaff;box-shadow:0 0 .46875rem #aaf}.chat-history-list[data-v-8ade48e4]{padding:.3125rem .9375rem}.chat-history-list .chat-history-card[data-v-8ade48e4]{display:flex;align-items:center;border:.03125rem solid #3b86ff;background-color:#fff;border-radius:.9375rem;padding:.9375rem;margin-top:.3125rem;box-sizing:border-box}.chat-history-list .is-select-chat[data-v-8ade48e4]{box-shadow:0 0 .15625rem #2463df;background-color:rgba(59,134,255,.1)}.chat-history-list .history-chat-checkbox[data-v-8ade48e4]{width:.9375rem;height:.9375rem;border-radius:.3125rem;display:flex;justify-content:center;align-items:center;border:.03125rem solid #3b86ff}.chat-history-list .history-chat-avatar[data-v-8ade48e4]{width:2.0625rem;height:2.0625rem;border-radius:.625rem;display:flex;justify-content:center;align-items:center;background:rgba(59,134,255,.4);margin-left:.625rem;box-sizing:border-box}.chat-history-list .friend-avatar[data-v-8ade48e4]{display:flex;justify-content:center;align-items:center;border-radius:.625rem;width:100%;height:100%;overflow:hidden}.chat-page[data-v-fb45d58d]{position:relative}.mask[data-v-fb45d58d]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);z-index:998;animation:fadeIn-fb45d58d 1s ease}@keyframes fadeIn-fb45d58d{0%{opacity:0}to{opacity:1}}.chat-sidebar[data-v-fb45d58d]{position:fixed;top:0;left:0;width:calc(100% - 3.125rem);max-width:21.25rem;height:100%;transform:translate(-100%);transition:transform .5s ease;z-index:999}.chat-sidebar.sidebar-show[data-v-fb45d58d]{transform:translate(0)}.ncd-overlay[data-v-fb45d58d]{position:fixed;width:100%;height:100%;left:0;top:0;display:flex;align-items:center;justify-content:center;background-color:rgba(193,193,193,.4);z-index:1000;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(6px)}.ncd-card[data-v-fb45d58d]{width:90%;height:auto;background-color:#fff;border-radius:1.5625rem;padding:1.5625rem;box-sizing:border-box}.ncd-header[data-v-fb45d58d]{display:flex;justify-content:center;width:100%}.ncd-title-eng[data-v-fb45d58d]{display:flex;flex-shrink:0;background-color:#000;padding:.15625rem .25rem;border-radius:.3125rem;justify-content:center;align-items:center}.ncd-title-eng uni-text[data-v-fb45d58d]{color:#fff;font-weight:700;font-size:.9375rem}.ncd-title-zh[data-v-fb45d58d]{margin-left:.3125rem;display:flex;flex:1;height:0;font-size:1.1875rem;font-weight:700;color:#000}.ncd-header uni-icons[data-v-fb45d58d]{display:flex;flex-shrink:0}.ncd-options[data-v-fb45d58d]{display:flex;flex-direction:column;width:100%;justify-content:center;align-items:center;margin-top:.3125rem;box-sizing:border-box}.ncd-option[data-v-fb45d58d]{width:100%;background:#f8fafc;padding:1.5625rem .9375rem;display:flex;border-radius:1rem;margin-top:.625rem;box-sizing:border-box;justify-content:center;align-items:center}.ncd-normal[data-v-fb45d58d]{border:.03125rem solid #e8edf3}.ncd-opt-icon[data-v-fb45d58d]{width:2.5rem;height:2.5rem;border-radius:.9375rem;padding:.3125rem;box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;align-items:center}.ncd-normal .ncd-opt-icon[data-v-fb45d58d]{background-color:#e2e8f0}.ncd-opt-title[data-v-fb45d58d]{display:flex;flex-direction:column;margin:0 .5rem;box-sizing:border-box;justify-content:center;flex:1;height:0}.ncd-opt-title-1[data-v-fb45d58d]{font-size:.9375rem;font-weight:700;color:#000}.ncd-opt-title-2[data-v-fb45d58d]{font-size:.8125rem;color:#666}.arrow-right-style[data-v-fb45d58d]{display:flex;flex-shrink:0;font-weight:700!important;font-size:.9375rem!important;color:#666!important}.ncd-intelligence[data-v-fb45d58d]{background:linear-gradient(to right,#f5f3ff,#ede9fe);border:.03125rem solid #c4b5fd}.ncd-intelligence .ncd-opt-icon[data-v-fb45d58d]{background-color:#8b5cf6}.close-option-card[data-v-fb45d58d]{width:100%;display:flex;justify-content:flex-end}.close-option-card .iconfont[data-v-fb45d58d]{color:red!important}.chat-option-list[data-v-fb45d58d]{display:flex;width:100%;flex-direction:column}.chat-option[data-v-fb45d58d]{display:flex;justify-content:flex-start;align-items:center;margin:.3125rem 0;box-sizing:border-box}.chat-option .iconfont[data-v-fb45d58d]{font-size:30px}.option-name[data-v-fb45d58d]{font-size:18px;font-weight:400;margin-left:10px;box-sizing:border-box}.chat-wrapper[data-v-fb45d58d]{position:relative;width:100%;height:100%;display:flex;flex-direction:column}.chat-hearder[data-v-fb45d58d]{width:100%;height:auto;padding:.625rem .3125rem;box-sizing:border-box;display:flex;flex-shrink:0;justify-content:flex-start;align-items:center;border-bottom:.03125rem solid #ede9fe}.chat-btn-group[data-v-fb45d58d]{width:100%;height:auto;display:flex;justify-content:flex-start;align-items:center}.head-btn[data-v-fb45d58d]{padding:.3125rem;border:.03125rem solid #ede9fe;border-radius:.625rem;margin:0 .3125rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.chat-btn-group .head-btn:nth-child(1) .iconfont[data-v-fb45d58d]{color:#c4b5fd}.chat-btn-group .head-btn:nth-child(2) .iconfont[data-v-fb45d58d]{color:#6495ed}.head-btn .iconfont[data-v-fb45d58d]{font-size:1.5625rem}.log-out .iconfont[data-v-fb45d58d]{color:red}.main-chat[data-v-fb45d58d]{display:flex;flex:1;height:0;width:100%;flex-direction:column}.chat-messages[data-v-fb45d58d]{display:flex;flex:1;height:0;width:100%;padding:0 .625rem;box-sizing:border-box;flex-direction:column;overflow:auto}.chat-message[data-v-fb45d58d]{display:flex;align-items:flex-start;margin:.3125rem 0;box-sizing:border-box}.message-user[data-v-fb45d58d]{flex-direction:row-reverse}.chat-avatar[data-v-fb45d58d]{display:flex;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;box-sizing:border-box;border-radius:.3125rem;margin-right:.3125rem}.friend-avatar[data-v-fb45d58d]{display:flex;justify-content:center;align-items:center;border-radius:.625rem;width:100%;height:100%;overflow:hidden}.chat-avatar-user[data-v-fb45d58d]{margin-right:0;margin-left:.3125rem}.chat-content[data-v-fb45d58d]{width:auto;height:auto;padding:.625rem;box-sizing:border-box;border:.03125rem solid #999;overflow-x:auto}.chat-content-user[data-v-fb45d58d]{background-color:#c4b5fd;color:#fff;border-radius:.625rem}.message-image[data-v-fb45d58d]{max-width:9.375rem;border-radius:.25rem;margin:.1875rem 0}.message-file-list[data-v-fb45d58d]{margin:.25rem 0}.file-item[data-v-fb45d58d]{margin:.1875rem 0}.message-file[data-v-fb45d58d]{display:flex;align-items:center;padding:.375rem .5rem;background:#f7f8fa;border-radius:.25rem;max-width:10.9375rem}.file-icon[data-v-fb45d58d]{font-size:1rem;margin-right:.375rem}.file-name[data-v-fb45d58d]{flex:1;font-size:.8125rem;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size[data-v-fb45d58d]{font-size:.6875rem;color:#999;margin-left:.25rem}.chat-interactive-container[data-v-fb45d58d]{display:flex;flex-shrink:0;width:100%;padding:.625rem;box-sizing:border-box;flex-direction:column}.chat-interactive-group[data-v-fb45d58d]{display:flex;width:100%;padding:.625rem;box-sizing:border-box;justify-content:flex-start;align-items:center}.chat-interactive-btn[data-v-fb45d58d]{display:flex;align-items:center;justify-content:center;border:.03125rem solid #000000;border-radius:.3125rem;padding:.3125rem .5rem;margin-right:.625rem;box-sizing:border-box}.chat-input-container[data-v-fb45d58d]{display:flex;width:100%;padding:.625rem;box-sizing:border-box;border:.03125rem solid #c4b5fd;border-radius:.9375rem;align-items:flex-end}.message-input[data-v-fb45d58d]{flex:1;max-height:4.6875rem;min-height:1.875rem;overflow-y:auto;margin:.3125rem;box-sizing:border-box}.input-btn-group[data-v-fb45d58d]{flex-shrink:0;display:flex;justify-content:center;align-items:center;padding:.5rem;box-sizing:border-box;background:#ffd4d4;border:.03125rem solid #ff0000;border-radius:.625rem;width:2.5rem;height:2.5rem}.input-btn-group .iconfont[data-v-fb45d58d]{color:red;font-size:1.25rem}.ai-card[data-v-fb45d58d]{width:auto;border:.03125rem solid #409eff;box-shadow:0 0 .625rem #c4b5fd}.thinking-content[data-v-fb45d58d]{display:flex;flex-direction:column;align-items:center;width:100%}.loading-dots[data-v-fb45d58d]{display:flex;width:100%;align-items:center;justify-content:center}.dot[data-v-fb45d58d]{width:.5rem;height:.5rem;margin:.1875rem;border-radius:50%;background:#409eff;animation:dotBlink-fb45d58d 1.2s infinite ease-in-out}@keyframes dotBlink-fb45d58d{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.dot[data-v-fb45d58d]:nth-child(2){animation-delay:.2s}.dot[data-v-fb45d58d]:nth-child(3){animation-delay:.4s}.thinking-text[data-v-fb45d58d]{margin:.625rem 0;font-size:22px;font-weight:500;color:#409eff} +.uniui-cart-filled[data-v-b25a9929]:before{content:"\e6d0"}.uniui-gift-filled[data-v-b25a9929]:before{content:"\e6c4"}.uniui-color[data-v-b25a9929]:before{content:"\e6cf"}.uniui-wallet[data-v-b25a9929]:before{content:"\e6b1"}.uniui-settings-filled[data-v-b25a9929]:before{content:"\e6ce"}.uniui-auth-filled[data-v-b25a9929]:before{content:"\e6cc"}.uniui-shop-filled[data-v-b25a9929]:before{content:"\e6cd"}.uniui-staff-filled[data-v-b25a9929]:before{content:"\e6cb"}.uniui-vip-filled[data-v-b25a9929]:before{content:"\e6c6"}.uniui-plus-filled[data-v-b25a9929]:before{content:"\e6c7"}.uniui-folder-add-filled[data-v-b25a9929]:before{content:"\e6c8"}.uniui-color-filled[data-v-b25a9929]:before{content:"\e6c9"}.uniui-tune-filled[data-v-b25a9929]:before{content:"\e6ca"}.uniui-calendar-filled[data-v-b25a9929]:before{content:"\e6c0"}.uniui-notification-filled[data-v-b25a9929]:before{content:"\e6c1"}.uniui-wallet-filled[data-v-b25a9929]:before{content:"\e6c2"}.uniui-medal-filled[data-v-b25a9929]:before{content:"\e6c3"}.uniui-fire-filled[data-v-b25a9929]:before{content:"\e6c5"}.uniui-refreshempty[data-v-b25a9929]:before{content:"\e6bf"}.uniui-location-filled[data-v-b25a9929]:before{content:"\e6af"}.uniui-person-filled[data-v-b25a9929]:before{content:"\e69d"}.uniui-personadd-filled[data-v-b25a9929]:before{content:"\e698"}.uniui-arrowthinleft[data-v-b25a9929]:before{content:"\e6d2"}.uniui-arrowthinup[data-v-b25a9929]:before{content:"\e6d3"}.uniui-arrowthindown[data-v-b25a9929]:before{content:"\e6d4"}.uniui-back[data-v-b25a9929]:before{content:"\e6b9"}.uniui-forward[data-v-b25a9929]:before{content:"\e6ba"}.uniui-arrow-right[data-v-b25a9929]:before{content:"\e6bb"}.uniui-arrow-left[data-v-b25a9929]:before{content:"\e6bc"}.uniui-arrow-up[data-v-b25a9929]:before{content:"\e6bd"}.uniui-arrow-down[data-v-b25a9929]:before{content:"\e6be"}.uniui-arrowthinright[data-v-b25a9929]:before{content:"\e6d1"}.uniui-down[data-v-b25a9929]:before{content:"\e6b8"}.uniui-bottom[data-v-b25a9929]:before{content:"\e6b8"}.uniui-arrowright[data-v-b25a9929]:before{content:"\e6d5"}.uniui-right[data-v-b25a9929]:before{content:"\e6b5"}.uniui-up[data-v-b25a9929]:before{content:"\e6b6"}.uniui-top[data-v-b25a9929]:before{content:"\e6b6"}.uniui-left[data-v-b25a9929]:before{content:"\e6b7"}.uniui-arrowup[data-v-b25a9929]:before{content:"\e6d6"}.uniui-eye[data-v-b25a9929]:before{content:"\e651"}.uniui-eye-filled[data-v-b25a9929]:before{content:"\e66a"}.uniui-eye-slash[data-v-b25a9929]:before{content:"\e6b3"}.uniui-eye-slash-filled[data-v-b25a9929]:before{content:"\e6b4"}.uniui-info-filled[data-v-b25a9929]:before{content:"\e649"}.uniui-reload[data-v-b25a9929]:before{content:"\e6b2"}.uniui-micoff-filled[data-v-b25a9929]:before{content:"\e6b0"}.uniui-map-pin-ellipse[data-v-b25a9929]:before{content:"\e6ac"}.uniui-map-pin[data-v-b25a9929]:before{content:"\e6ad"}.uniui-location[data-v-b25a9929]:before{content:"\e6ae"}.uniui-starhalf[data-v-b25a9929]:before{content:"\e683"}.uniui-star[data-v-b25a9929]:before{content:"\e688"}.uniui-star-filled[data-v-b25a9929]:before{content:"\e68f"}.uniui-calendar[data-v-b25a9929]:before{content:"\e6a0"}.uniui-fire[data-v-b25a9929]:before{content:"\e6a1"}.uniui-medal[data-v-b25a9929]:before{content:"\e6a2"}.uniui-font[data-v-b25a9929]:before{content:"\e6a3"}.uniui-gift[data-v-b25a9929]:before{content:"\e6a4"}.uniui-link[data-v-b25a9929]:before{content:"\e6a5"}.uniui-notification[data-v-b25a9929]:before{content:"\e6a6"}.uniui-staff[data-v-b25a9929]:before{content:"\e6a7"}.uniui-vip[data-v-b25a9929]:before{content:"\e6a8"}.uniui-folder-add[data-v-b25a9929]:before{content:"\e6a9"}.uniui-tune[data-v-b25a9929]:before{content:"\e6aa"}.uniui-auth[data-v-b25a9929]:before{content:"\e6ab"}.uniui-person[data-v-b25a9929]:before{content:"\e699"}.uniui-email-filled[data-v-b25a9929]:before{content:"\e69a"}.uniui-phone-filled[data-v-b25a9929]:before{content:"\e69b"}.uniui-phone[data-v-b25a9929]:before{content:"\e69c"}.uniui-email[data-v-b25a9929]:before{content:"\e69e"}.uniui-personadd[data-v-b25a9929]:before{content:"\e69f"}.uniui-chatboxes-filled[data-v-b25a9929]:before{content:"\e692"}.uniui-contact[data-v-b25a9929]:before{content:"\e693"}.uniui-chatbubble-filled[data-v-b25a9929]:before{content:"\e694"}.uniui-contact-filled[data-v-b25a9929]:before{content:"\e695"}.uniui-chatboxes[data-v-b25a9929]:before{content:"\e696"}.uniui-chatbubble[data-v-b25a9929]:before{content:"\e697"}.uniui-upload-filled[data-v-b25a9929]:before{content:"\e68e"}.uniui-upload[data-v-b25a9929]:before{content:"\e690"}.uniui-weixin[data-v-b25a9929]:before{content:"\e691"}.uniui-compose[data-v-b25a9929]:before{content:"\e67f"}.uniui-qq[data-v-b25a9929]:before{content:"\e680"}.uniui-download-filled[data-v-b25a9929]:before{content:"\e681"}.uniui-pyq[data-v-b25a9929]:before{content:"\e682"}.uniui-sound[data-v-b25a9929]:before{content:"\e684"}.uniui-trash-filled[data-v-b25a9929]:before{content:"\e685"}.uniui-sound-filled[data-v-b25a9929]:before{content:"\e686"}.uniui-trash[data-v-b25a9929]:before{content:"\e687"}.uniui-videocam-filled[data-v-b25a9929]:before{content:"\e689"}.uniui-spinner-cycle[data-v-b25a9929]:before{content:"\e68a"}.uniui-weibo[data-v-b25a9929]:before{content:"\e68b"}.uniui-videocam[data-v-b25a9929]:before{content:"\e68c"}.uniui-download[data-v-b25a9929]:before{content:"\e68d"}.uniui-help[data-v-b25a9929]:before{content:"\e679"}.uniui-navigate-filled[data-v-b25a9929]:before{content:"\e67a"}.uniui-plusempty[data-v-b25a9929]:before{content:"\e67b"}.uniui-smallcircle[data-v-b25a9929]:before{content:"\e67c"}.uniui-minus-filled[data-v-b25a9929]:before{content:"\e67d"}.uniui-micoff[data-v-b25a9929]:before{content:"\e67e"}.uniui-closeempty[data-v-b25a9929]:before{content:"\e66c"}.uniui-clear[data-v-b25a9929]:before{content:"\e66d"}.uniui-navigate[data-v-b25a9929]:before{content:"\e66e"}.uniui-minus[data-v-b25a9929]:before{content:"\e66f"}.uniui-image[data-v-b25a9929]:before{content:"\e670"}.uniui-mic[data-v-b25a9929]:before{content:"\e671"}.uniui-paperplane[data-v-b25a9929]:before{content:"\e672"}.uniui-close[data-v-b25a9929]:before{content:"\e673"}.uniui-help-filled[data-v-b25a9929]:before{content:"\e674"}.uniui-paperplane-filled[data-v-b25a9929]:before{content:"\e675"}.uniui-plus[data-v-b25a9929]:before{content:"\e676"}.uniui-mic-filled[data-v-b25a9929]:before{content:"\e677"}.uniui-image-filled[data-v-b25a9929]:before{content:"\e678"}.uniui-locked-filled[data-v-b25a9929]:before{content:"\e668"}.uniui-info[data-v-b25a9929]:before{content:"\e669"}.uniui-locked[data-v-b25a9929]:before{content:"\e66b"}.uniui-camera-filled[data-v-b25a9929]:before{content:"\e658"}.uniui-chat-filled[data-v-b25a9929]:before{content:"\e659"}.uniui-camera[data-v-b25a9929]:before{content:"\e65a"}.uniui-circle[data-v-b25a9929]:before{content:"\e65b"}.uniui-checkmarkempty[data-v-b25a9929]:before{content:"\e65c"}.uniui-chat[data-v-b25a9929]:before{content:"\e65d"}.uniui-circle-filled[data-v-b25a9929]:before{content:"\e65e"}.uniui-flag[data-v-b25a9929]:before{content:"\e65f"}.uniui-flag-filled[data-v-b25a9929]:before{content:"\e660"}.uniui-gear-filled[data-v-b25a9929]:before{content:"\e661"}.uniui-home[data-v-b25a9929]:before{content:"\e662"}.uniui-home-filled[data-v-b25a9929]:before{content:"\e663"}.uniui-gear[data-v-b25a9929]:before{content:"\e664"}.uniui-smallcircle-filled[data-v-b25a9929]:before{content:"\e665"}.uniui-map-filled[data-v-b25a9929]:before{content:"\e666"}.uniui-map[data-v-b25a9929]:before{content:"\e667"}.uniui-refresh-filled[data-v-b25a9929]:before{content:"\e656"}.uniui-refresh[data-v-b25a9929]:before{content:"\e657"}.uniui-cloud-upload[data-v-b25a9929]:before{content:"\e645"}.uniui-cloud-download-filled[data-v-b25a9929]:before{content:"\e646"}.uniui-cloud-download[data-v-b25a9929]:before{content:"\e647"}.uniui-cloud-upload-filled[data-v-b25a9929]:before{content:"\e648"}.uniui-redo[data-v-b25a9929]:before{content:"\e64a"}.uniui-images-filled[data-v-b25a9929]:before{content:"\e64b"}.uniui-undo-filled[data-v-b25a9929]:before{content:"\e64c"}.uniui-more[data-v-b25a9929]:before{content:"\e64d"}.uniui-more-filled[data-v-b25a9929]:before{content:"\e64e"}.uniui-undo[data-v-b25a9929]:before{content:"\e64f"}.uniui-images[data-v-b25a9929]:before{content:"\e650"}.uniui-paperclip[data-v-b25a9929]:before{content:"\e652"}.uniui-settings[data-v-b25a9929]:before{content:"\e653"}.uniui-search[data-v-b25a9929]:before{content:"\e654"}.uniui-redo-filled[data-v-b25a9929]:before{content:"\e655"}.uniui-list[data-v-b25a9929]:before{content:"\e644"}.uniui-mail-open-filled[data-v-b25a9929]:before{content:"\e63a"}.uniui-hand-down-filled[data-v-b25a9929]:before{content:"\e63c"}.uniui-hand-down[data-v-b25a9929]:before{content:"\e63d"}.uniui-hand-up-filled[data-v-b25a9929]:before{content:"\e63e"}.uniui-hand-up[data-v-b25a9929]:before{content:"\e63f"}.uniui-heart-filled[data-v-b25a9929]:before{content:"\e641"}.uniui-mail-open[data-v-b25a9929]:before{content:"\e643"}.uniui-heart[data-v-b25a9929]:before{content:"\e639"}.uniui-loop[data-v-b25a9929]:before{content:"\e633"}.uniui-pulldown[data-v-b25a9929]:before{content:"\e632"}.uniui-scan[data-v-b25a9929]:before{content:"\e62a"}.uniui-bars[data-v-b25a9929]:before{content:"\e627"}.uniui-checkbox[data-v-b25a9929]:before{content:"\e62b"}.uniui-checkbox-filled[data-v-b25a9929]:before{content:"\e62c"}.uniui-shop[data-v-b25a9929]:before{content:"\e62f"}.uniui-headphones[data-v-b25a9929]:before{content:"\e630"}.uniui-cart[data-v-b25a9929]:before{content:"\e631"}@font-face{font-family:uniicons;src:url(../../assets/uniicons.32e978a5.ttf)}.uni-icons[data-v-b25a9929]{font-family:uniicons;text-decoration:none;text-align:center}.chat-sidebar-container[data-v-766a2af1]{display:flex;flex-direction:column;align-items:center;width:100%;height:100%;background-color:#f8f8f8;color:#000;box-sizing:border-box}.sidebar-header[data-v-766a2af1]{padding:1.25rem;width:100%;box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;flex-direction:column;border-bottom:.03125rem solid #bbbbbb}.user-profile-card[data-v-766a2af1]{padding:.3125rem .625rem;width:100%;display:flex;align-items:center;background-color:#fff;box-sizing:border-box;border-radius:.9375rem;box-shadow:0 0 .25rem #ccc}.user-profile-card .left[data-v-766a2af1]{flex-shrink:0;display:flex;justify-content:center;align-items:center;margin-right:.3125rem}.user-profile-card .left .avatar-preview[data-v-766a2af1]{display:flex;justify-content:center;align-items:center;width:3.75rem;height:3.75rem;border-radius:50%;overflow:hidden}.user-profile-card .left .avatar-preview uni-image[data-v-766a2af1]{width:100%;height:100%;object-fit:cover}.user-profile-card .left .avatar-placeholder[data-v-766a2af1]{display:flex;justify-content:center;align-items:center;box-sizing:border-box;border-radius:50%;width:3.75rem;height:3.75rem}.user-profile-card .center[data-v-766a2af1]{flex:1;height:0;display:flex;flex-direction:column;align-items:start;justify-content:center}.user-profile-card .right[data-v-766a2af1]{flex-shrink:0;margin-left:.1875rem;display:flex;align-items:center}.user-profile-card .right .status-dot[data-v-766a2af1]{width:.3125rem;height:.3125rem;border-radius:50%;background-color:#10b981;margin-right:.5rem;animation:statusDotPulse-766a2af1 2s ease-in-out infinite}@keyframes statusDotPulse-766a2af1{0%,to{box-shadow:0 0 .46875rem rgba(59,130,246,.8);transform:scale(1)}50%{box-shadow:0 0 .9375rem rgba(59,130,246,.7);transform:scale(1.1)}}.new-chat-btn[data-v-766a2af1]{margin-top:.625rem;width:100%;padding:.9375rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center;background:linear-gradient(to right,#3b86ff,#2463df);border-radius:.9375rem;box-shadow:0 0 .25rem rgba(59,134,255,.6)}.new-chat-btn uni-text[data-v-766a2af1]{font-size:.875rem;font-weight:700;color:#fff}.chat-history[data-v-766a2af1]{width:100%;padding:.625rem 0;box-sizing:border-box;flex:1;height:0;overflow-y:auto;overflow-x:hidden}.chat-history[data-v-766a2af1]::-webkit-scrollbar{width:.25rem}.chat-history[data-v-766a2af1]::-webkit-scrollbar-thumb{background:rgba(59,134,255,.4);border-radius:.09375rem}.chat-history[data-v-766a2af1]::-webkit-scrollbar-track{background:transparent}.history-header[data-v-766a2af1]{width:100%;padding:.9375rem;box-sizing:border-box;border-bottom:.03125rem solid #bbbbbb;display:flex;justify-content:space-between;align-items:center}.history-header .history-title-section[data-v-766a2af1]{display:flex;flex-direction:column}.history-header .history-management[data-v-766a2af1]{display:flex}.history-header .history-management .history-management-btn[data-v-766a2af1]{margin-left:.625rem;width:1.875rem;height:1.875rem;display:flex;justify-content:center;align-items:center;font-size:.8125rem;background-color:rgba(221,221,221,.5);border-radius:.3125rem}.history-header .history-management .icon-jia-style[data-v-766a2af1]{background-color:rgba(16,185,129,.2);color:#059669}.history-header .history-management .icon-duoxuan-style[data-v-766a2af1]{color:#666}.history-header .history-management .icon-saochu-style[data-v-766a2af1]{color:red}.history-header .history-management .icon-quxiao-style[data-v-766a2af1]{color:#3b86ff;box-sizing:border-box}.history-header .history-management .icon-total_selection-style[data-v-766a2af1]{color:#666}.history-header .history-management .icon-total_selection-style.active[data-v-766a2af1]{color:#2463df;background:rgba(59,134,255,.2)}.history-header .history-management .icon-shanchu-style[data-v-766a2af1]{color:red}.history-search-wrap[data-v-766a2af1]{display:flex;flex-direction:column;width:100%;padding:.625rem .9375rem .1875rem;box-sizing:border-box}.history-search-wrap .history-search-inner[data-v-766a2af1]{display:flex;width:100%;padding:.3125rem .625rem;box-sizing:border-box;align-items:center;background-color:rgba(194,191,211,.1);border-radius:.9375rem}.history-search-wrap .history-search-inner .search-icon[data-v-766a2af1]{color:#666!important;font-weight:700;font-size:1.125rem!important}.history-search-wrap .history-search-inner .chat-search-icon[data-v-766a2af1]{color:#aaf!important;font-weight:700;font-size:1.125rem!important}.history-search-wrap .history-search-inner uni-input[data-v-766a2af1]{margin-left:.3125rem;box-sizing:border-box}.history-search-wrap .history-search-inner.has-value[data-v-766a2af1]{background-color:#fff;border:.0625rem solid #aaaaff;box-shadow:0 0 .46875rem #aaf}.chat-history-list[data-v-766a2af1]{padding:.3125rem .9375rem}.chat-history-list .chat-history-card[data-v-766a2af1]{display:flex;align-items:center;border:.03125rem solid #3b86ff;background-color:#fff;border-radius:.9375rem;padding:.9375rem;margin-top:.3125rem;box-sizing:border-box}.chat-history-list .is-select-chat[data-v-766a2af1]{box-shadow:0 0 .15625rem #2463df;background-color:rgba(59,134,255,.1)}.chat-history-list .history-chat-checkbox[data-v-766a2af1]{width:.9375rem;height:.9375rem;border-radius:.3125rem;display:flex;justify-content:center;align-items:center;border:.03125rem solid #3b86ff}.chat-history-list .history-chat-avatar[data-v-766a2af1]{width:2.0625rem;height:2.0625rem;border-radius:.625rem;display:flex;justify-content:center;align-items:center;background:rgba(59,134,255,.4);margin-left:.625rem;box-sizing:border-box}.chat-history-list .friend-avatar[data-v-766a2af1]{display:flex;justify-content:center;align-items:center;border-radius:.625rem;width:100%;height:100%;overflow:hidden}.chat-page[data-v-92a1a532]{position:relative}.mask[data-v-92a1a532]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);z-index:998;animation:fadeIn-92a1a532 1s ease}@keyframes fadeIn-92a1a532{0%{opacity:0}to{opacity:1}}.chat-sidebar[data-v-92a1a532]{position:fixed;top:0;left:0;width:calc(100% - 3.125rem);max-width:21.25rem;height:100%;transform:translate(-100%);transition:transform .5s ease;z-index:999}.chat-sidebar.sidebar-show[data-v-92a1a532]{transform:translate(0)}.ncd-overlay[data-v-92a1a532]{position:fixed;width:100%;height:100%;left:0;top:0;display:flex;align-items:center;justify-content:center;background-color:rgba(193,193,193,.4);z-index:1000;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(6px)}.ncd-card[data-v-92a1a532]{width:90%;height:auto;background-color:#fff;border-radius:1.5625rem;padding:1.5625rem;box-sizing:border-box}.ncd-header[data-v-92a1a532]{display:flex;justify-content:center;width:100%}.ncd-title-eng[data-v-92a1a532]{display:flex;flex-shrink:0;background-color:#000;padding:.15625rem .25rem;border-radius:.3125rem;justify-content:center;align-items:center}.ncd-title-eng uni-text[data-v-92a1a532]{color:#fff;font-weight:700;font-size:.9375rem}.ncd-title-zh[data-v-92a1a532]{margin-left:.3125rem;display:flex;flex:1;height:0;font-size:1.1875rem;font-weight:700;color:#000}.ncd-header uni-icons[data-v-92a1a532]{display:flex;flex-shrink:0}.ncd-options[data-v-92a1a532]{display:flex;flex-direction:column;width:100%;justify-content:center;align-items:center;margin-top:.3125rem;box-sizing:border-box}.ncd-option[data-v-92a1a532]{width:100%;background:#f8fafc;padding:1.5625rem .9375rem;display:flex;border-radius:1rem;margin-top:.625rem;box-sizing:border-box;justify-content:center;align-items:center}.ncd-normal[data-v-92a1a532]{border:.03125rem solid #e8edf3}.ncd-opt-icon[data-v-92a1a532]{width:2.5rem;height:2.5rem;border-radius:.9375rem;padding:.3125rem;box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;align-items:center}.ncd-normal .ncd-opt-icon[data-v-92a1a532]{background-color:#e2e8f0}.ncd-opt-title[data-v-92a1a532]{display:flex;flex-direction:column;margin:0 .5rem;box-sizing:border-box;justify-content:center;flex:1;height:0}.ncd-opt-title-1[data-v-92a1a532]{font-size:.9375rem;font-weight:700;color:#000}.ncd-opt-title-2[data-v-92a1a532]{font-size:.8125rem;color:#666}.arrow-right-style[data-v-92a1a532]{display:flex;flex-shrink:0;font-weight:700!important;font-size:.9375rem!important;color:#666!important}.ncd-intelligence[data-v-92a1a532]{background:linear-gradient(to right,#f5f3ff,#ede9fe);border:.03125rem solid #c4b5fd}.ncd-intelligence .ncd-opt-icon[data-v-92a1a532]{background-color:#8b5cf6}.close-option-card[data-v-92a1a532]{width:100%;display:flex;justify-content:flex-end}.close-option-card .iconfont[data-v-92a1a532]{color:red!important}.chat-option-list[data-v-92a1a532]{display:flex;width:100%;flex-direction:column}.chat-option[data-v-92a1a532]{display:flex;justify-content:flex-start;align-items:center;margin:.3125rem 0;box-sizing:border-box}.chat-option .iconfont[data-v-92a1a532]{font-size:30px}.option-name[data-v-92a1a532]{font-size:18px;font-weight:400;margin-left:10px;box-sizing:border-box}.chat-wrapper[data-v-92a1a532]{position:relative;width:100%;height:100%;display:flex;flex-direction:column}.chat-hearder[data-v-92a1a532]{width:100%;height:auto;padding:.625rem .3125rem;box-sizing:border-box;display:flex;flex-shrink:0;justify-content:flex-start;align-items:center;border-bottom:.03125rem solid #ede9fe}.chat-btn-group[data-v-92a1a532]{width:100%;height:auto;display:flex;justify-content:flex-start;align-items:center}.head-btn[data-v-92a1a532]{padding:.3125rem;border:.03125rem solid #ede9fe;border-radius:.625rem;margin:0 .3125rem;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.chat-btn-group .head-btn:nth-child(1) .iconfont[data-v-92a1a532]{color:#c4b5fd}.chat-btn-group .head-btn:nth-child(2) .iconfont[data-v-92a1a532]{color:#6495ed}.head-btn .iconfont[data-v-92a1a532]{font-size:1.5625rem}.log-out .iconfont[data-v-92a1a532]{color:red}.main-chat[data-v-92a1a532]{display:flex;flex:1;height:0;width:100%;flex-direction:column}.chat-messages[data-v-92a1a532]{display:flex;flex:1;height:0;width:100%;padding:0 .625rem;box-sizing:border-box;flex-direction:column;overflow:auto}.chat-message[data-v-92a1a532]{display:flex;align-items:flex-start;margin:.3125rem 0;box-sizing:border-box}.message-user[data-v-92a1a532]{flex-direction:row-reverse}.chat-avatar[data-v-92a1a532]{display:flex;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;box-sizing:border-box;border-radius:.3125rem;margin-right:.3125rem}.friend-avatar[data-v-92a1a532]{display:flex;justify-content:center;align-items:center;border-radius:.625rem;width:100%;height:100%;overflow:hidden}.chat-avatar-user[data-v-92a1a532]{margin-right:0;margin-left:.3125rem}.chat-content[data-v-92a1a532]{width:auto;max-width:calc(100% - 3.125rem);height:auto;padding:.625rem;box-sizing:border-box;border:.03125rem solid #999;overflow-x:auto}.chat-content-user[data-v-92a1a532]{background-color:#c4b5fd;color:#fff;border-radius:.625rem}.message-image[data-v-92a1a532]{max-width:9.375rem;border-radius:.25rem;margin:.1875rem 0}.message-file-list[data-v-92a1a532]{margin:.25rem 0}.file-item[data-v-92a1a532]{margin:.1875rem 0}.message-file[data-v-92a1a532]{display:flex;align-items:center;padding:.375rem .5rem;background:#f7f8fa;border-radius:.25rem;max-width:10.9375rem}.file-icon[data-v-92a1a532]{font-size:1rem;margin-right:.375rem}.file-name[data-v-92a1a532]{flex:1;font-size:.8125rem;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size[data-v-92a1a532]{font-size:.6875rem;color:#999;margin-left:.25rem}.chat-interactive-container[data-v-92a1a532]{display:flex;flex-shrink:0;width:100%;padding:.625rem;box-sizing:border-box;flex-direction:column}.chat-interactive-group[data-v-92a1a532]{display:flex;width:100%;padding:.625rem;box-sizing:border-box;justify-content:flex-start;align-items:center}.chat-interactive-btn[data-v-92a1a532]{display:flex;align-items:center;justify-content:center;border:.03125rem solid #000000;border-radius:.3125rem;padding:.3125rem .5rem;margin-right:.625rem;box-sizing:border-box}.chat-input-container[data-v-92a1a532]{display:flex;width:100%;padding:.625rem;box-sizing:border-box;border:.03125rem solid #c4b5fd;border-radius:.9375rem;align-items:flex-end}.message-input[data-v-92a1a532]{flex:1;max-height:4.6875rem;min-height:1.875rem;overflow-y:auto;margin:.3125rem;box-sizing:border-box}.input-btn-group[data-v-92a1a532]{flex-shrink:0;display:flex;justify-content:center;align-items:center;padding:.5rem;box-sizing:border-box;background:#ffd4d4;border:.03125rem solid #ff0000;border-radius:.625rem;width:2.5rem;height:2.5rem}.input-btn-group .iconfont[data-v-92a1a532]{color:red;font-size:1.25rem}.ai-card[data-v-92a1a532]{width:auto;border:.03125rem solid #409eff;box-shadow:0 0 .625rem #c4b5fd}.thinking-content[data-v-92a1a532]{display:flex;flex-direction:column;align-items:center;width:100%}.loading-dots[data-v-92a1a532]{display:flex;width:100%;align-items:center;justify-content:center}.dot[data-v-92a1a532]{width:.5rem;height:.5rem;margin:.1875rem;border-radius:50%;background:#409eff;animation:dotBlink-92a1a532 1.2s infinite ease-in-out}@keyframes dotBlink-92a1a532{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.dot[data-v-92a1a532]:nth-child(2){animation-delay:.2s}.dot[data-v-92a1a532]:nth-child(3){animation-delay:.4s}.thinking-text[data-v-92a1a532]{margin:.625rem 0;font-size:22px;font-weight:500;color:#409eff} diff --git a/unpackage/dist/build/app-plus/pages/CloudDatabase/CloudDatabase.css b/unpackage/dist/build/app-plus/pages/CloudDatabase/CloudDatabase.css new file mode 100644 index 0000000..2c0443e --- /dev/null +++ b/unpackage/dist/build/app-plus/pages/CloudDatabase/CloudDatabase.css @@ -0,0 +1 @@ +.uniui-cart-filled[data-v-b25a9929]:before{content:"\e6d0"}.uniui-gift-filled[data-v-b25a9929]:before{content:"\e6c4"}.uniui-color[data-v-b25a9929]:before{content:"\e6cf"}.uniui-wallet[data-v-b25a9929]:before{content:"\e6b1"}.uniui-settings-filled[data-v-b25a9929]:before{content:"\e6ce"}.uniui-auth-filled[data-v-b25a9929]:before{content:"\e6cc"}.uniui-shop-filled[data-v-b25a9929]:before{content:"\e6cd"}.uniui-staff-filled[data-v-b25a9929]:before{content:"\e6cb"}.uniui-vip-filled[data-v-b25a9929]:before{content:"\e6c6"}.uniui-plus-filled[data-v-b25a9929]:before{content:"\e6c7"}.uniui-folder-add-filled[data-v-b25a9929]:before{content:"\e6c8"}.uniui-color-filled[data-v-b25a9929]:before{content:"\e6c9"}.uniui-tune-filled[data-v-b25a9929]:before{content:"\e6ca"}.uniui-calendar-filled[data-v-b25a9929]:before{content:"\e6c0"}.uniui-notification-filled[data-v-b25a9929]:before{content:"\e6c1"}.uniui-wallet-filled[data-v-b25a9929]:before{content:"\e6c2"}.uniui-medal-filled[data-v-b25a9929]:before{content:"\e6c3"}.uniui-fire-filled[data-v-b25a9929]:before{content:"\e6c5"}.uniui-refreshempty[data-v-b25a9929]:before{content:"\e6bf"}.uniui-location-filled[data-v-b25a9929]:before{content:"\e6af"}.uniui-person-filled[data-v-b25a9929]:before{content:"\e69d"}.uniui-personadd-filled[data-v-b25a9929]:before{content:"\e698"}.uniui-arrowthinleft[data-v-b25a9929]:before{content:"\e6d2"}.uniui-arrowthinup[data-v-b25a9929]:before{content:"\e6d3"}.uniui-arrowthindown[data-v-b25a9929]:before{content:"\e6d4"}.uniui-back[data-v-b25a9929]:before{content:"\e6b9"}.uniui-forward[data-v-b25a9929]:before{content:"\e6ba"}.uniui-arrow-right[data-v-b25a9929]:before{content:"\e6bb"}.uniui-arrow-left[data-v-b25a9929]:before{content:"\e6bc"}.uniui-arrow-up[data-v-b25a9929]:before{content:"\e6bd"}.uniui-arrow-down[data-v-b25a9929]:before{content:"\e6be"}.uniui-arrowthinright[data-v-b25a9929]:before{content:"\e6d1"}.uniui-down[data-v-b25a9929]:before{content:"\e6b8"}.uniui-bottom[data-v-b25a9929]:before{content:"\e6b8"}.uniui-arrowright[data-v-b25a9929]:before{content:"\e6d5"}.uniui-right[data-v-b25a9929]:before{content:"\e6b5"}.uniui-up[data-v-b25a9929]:before{content:"\e6b6"}.uniui-top[data-v-b25a9929]:before{content:"\e6b6"}.uniui-left[data-v-b25a9929]:before{content:"\e6b7"}.uniui-arrowup[data-v-b25a9929]:before{content:"\e6d6"}.uniui-eye[data-v-b25a9929]:before{content:"\e651"}.uniui-eye-filled[data-v-b25a9929]:before{content:"\e66a"}.uniui-eye-slash[data-v-b25a9929]:before{content:"\e6b3"}.uniui-eye-slash-filled[data-v-b25a9929]:before{content:"\e6b4"}.uniui-info-filled[data-v-b25a9929]:before{content:"\e649"}.uniui-reload[data-v-b25a9929]:before{content:"\e6b2"}.uniui-micoff-filled[data-v-b25a9929]:before{content:"\e6b0"}.uniui-map-pin-ellipse[data-v-b25a9929]:before{content:"\e6ac"}.uniui-map-pin[data-v-b25a9929]:before{content:"\e6ad"}.uniui-location[data-v-b25a9929]:before{content:"\e6ae"}.uniui-starhalf[data-v-b25a9929]:before{content:"\e683"}.uniui-star[data-v-b25a9929]:before{content:"\e688"}.uniui-star-filled[data-v-b25a9929]:before{content:"\e68f"}.uniui-calendar[data-v-b25a9929]:before{content:"\e6a0"}.uniui-fire[data-v-b25a9929]:before{content:"\e6a1"}.uniui-medal[data-v-b25a9929]:before{content:"\e6a2"}.uniui-font[data-v-b25a9929]:before{content:"\e6a3"}.uniui-gift[data-v-b25a9929]:before{content:"\e6a4"}.uniui-link[data-v-b25a9929]:before{content:"\e6a5"}.uniui-notification[data-v-b25a9929]:before{content:"\e6a6"}.uniui-staff[data-v-b25a9929]:before{content:"\e6a7"}.uniui-vip[data-v-b25a9929]:before{content:"\e6a8"}.uniui-folder-add[data-v-b25a9929]:before{content:"\e6a9"}.uniui-tune[data-v-b25a9929]:before{content:"\e6aa"}.uniui-auth[data-v-b25a9929]:before{content:"\e6ab"}.uniui-person[data-v-b25a9929]:before{content:"\e699"}.uniui-email-filled[data-v-b25a9929]:before{content:"\e69a"}.uniui-phone-filled[data-v-b25a9929]:before{content:"\e69b"}.uniui-phone[data-v-b25a9929]:before{content:"\e69c"}.uniui-email[data-v-b25a9929]:before{content:"\e69e"}.uniui-personadd[data-v-b25a9929]:before{content:"\e69f"}.uniui-chatboxes-filled[data-v-b25a9929]:before{content:"\e692"}.uniui-contact[data-v-b25a9929]:before{content:"\e693"}.uniui-chatbubble-filled[data-v-b25a9929]:before{content:"\e694"}.uniui-contact-filled[data-v-b25a9929]:before{content:"\e695"}.uniui-chatboxes[data-v-b25a9929]:before{content:"\e696"}.uniui-chatbubble[data-v-b25a9929]:before{content:"\e697"}.uniui-upload-filled[data-v-b25a9929]:before{content:"\e68e"}.uniui-upload[data-v-b25a9929]:before{content:"\e690"}.uniui-weixin[data-v-b25a9929]:before{content:"\e691"}.uniui-compose[data-v-b25a9929]:before{content:"\e67f"}.uniui-qq[data-v-b25a9929]:before{content:"\e680"}.uniui-download-filled[data-v-b25a9929]:before{content:"\e681"}.uniui-pyq[data-v-b25a9929]:before{content:"\e682"}.uniui-sound[data-v-b25a9929]:before{content:"\e684"}.uniui-trash-filled[data-v-b25a9929]:before{content:"\e685"}.uniui-sound-filled[data-v-b25a9929]:before{content:"\e686"}.uniui-trash[data-v-b25a9929]:before{content:"\e687"}.uniui-videocam-filled[data-v-b25a9929]:before{content:"\e689"}.uniui-spinner-cycle[data-v-b25a9929]:before{content:"\e68a"}.uniui-weibo[data-v-b25a9929]:before{content:"\e68b"}.uniui-videocam[data-v-b25a9929]:before{content:"\e68c"}.uniui-download[data-v-b25a9929]:before{content:"\e68d"}.uniui-help[data-v-b25a9929]:before{content:"\e679"}.uniui-navigate-filled[data-v-b25a9929]:before{content:"\e67a"}.uniui-plusempty[data-v-b25a9929]:before{content:"\e67b"}.uniui-smallcircle[data-v-b25a9929]:before{content:"\e67c"}.uniui-minus-filled[data-v-b25a9929]:before{content:"\e67d"}.uniui-micoff[data-v-b25a9929]:before{content:"\e67e"}.uniui-closeempty[data-v-b25a9929]:before{content:"\e66c"}.uniui-clear[data-v-b25a9929]:before{content:"\e66d"}.uniui-navigate[data-v-b25a9929]:before{content:"\e66e"}.uniui-minus[data-v-b25a9929]:before{content:"\e66f"}.uniui-image[data-v-b25a9929]:before{content:"\e670"}.uniui-mic[data-v-b25a9929]:before{content:"\e671"}.uniui-paperplane[data-v-b25a9929]:before{content:"\e672"}.uniui-close[data-v-b25a9929]:before{content:"\e673"}.uniui-help-filled[data-v-b25a9929]:before{content:"\e674"}.uniui-paperplane-filled[data-v-b25a9929]:before{content:"\e675"}.uniui-plus[data-v-b25a9929]:before{content:"\e676"}.uniui-mic-filled[data-v-b25a9929]:before{content:"\e677"}.uniui-image-filled[data-v-b25a9929]:before{content:"\e678"}.uniui-locked-filled[data-v-b25a9929]:before{content:"\e668"}.uniui-info[data-v-b25a9929]:before{content:"\e669"}.uniui-locked[data-v-b25a9929]:before{content:"\e66b"}.uniui-camera-filled[data-v-b25a9929]:before{content:"\e658"}.uniui-chat-filled[data-v-b25a9929]:before{content:"\e659"}.uniui-camera[data-v-b25a9929]:before{content:"\e65a"}.uniui-circle[data-v-b25a9929]:before{content:"\e65b"}.uniui-checkmarkempty[data-v-b25a9929]:before{content:"\e65c"}.uniui-chat[data-v-b25a9929]:before{content:"\e65d"}.uniui-circle-filled[data-v-b25a9929]:before{content:"\e65e"}.uniui-flag[data-v-b25a9929]:before{content:"\e65f"}.uniui-flag-filled[data-v-b25a9929]:before{content:"\e660"}.uniui-gear-filled[data-v-b25a9929]:before{content:"\e661"}.uniui-home[data-v-b25a9929]:before{content:"\e662"}.uniui-home-filled[data-v-b25a9929]:before{content:"\e663"}.uniui-gear[data-v-b25a9929]:before{content:"\e664"}.uniui-smallcircle-filled[data-v-b25a9929]:before{content:"\e665"}.uniui-map-filled[data-v-b25a9929]:before{content:"\e666"}.uniui-map[data-v-b25a9929]:before{content:"\e667"}.uniui-refresh-filled[data-v-b25a9929]:before{content:"\e656"}.uniui-refresh[data-v-b25a9929]:before{content:"\e657"}.uniui-cloud-upload[data-v-b25a9929]:before{content:"\e645"}.uniui-cloud-download-filled[data-v-b25a9929]:before{content:"\e646"}.uniui-cloud-download[data-v-b25a9929]:before{content:"\e647"}.uniui-cloud-upload-filled[data-v-b25a9929]:before{content:"\e648"}.uniui-redo[data-v-b25a9929]:before{content:"\e64a"}.uniui-images-filled[data-v-b25a9929]:before{content:"\e64b"}.uniui-undo-filled[data-v-b25a9929]:before{content:"\e64c"}.uniui-more[data-v-b25a9929]:before{content:"\e64d"}.uniui-more-filled[data-v-b25a9929]:before{content:"\e64e"}.uniui-undo[data-v-b25a9929]:before{content:"\e64f"}.uniui-images[data-v-b25a9929]:before{content:"\e650"}.uniui-paperclip[data-v-b25a9929]:before{content:"\e652"}.uniui-settings[data-v-b25a9929]:before{content:"\e653"}.uniui-search[data-v-b25a9929]:before{content:"\e654"}.uniui-redo-filled[data-v-b25a9929]:before{content:"\e655"}.uniui-list[data-v-b25a9929]:before{content:"\e644"}.uniui-mail-open-filled[data-v-b25a9929]:before{content:"\e63a"}.uniui-hand-down-filled[data-v-b25a9929]:before{content:"\e63c"}.uniui-hand-down[data-v-b25a9929]:before{content:"\e63d"}.uniui-hand-up-filled[data-v-b25a9929]:before{content:"\e63e"}.uniui-hand-up[data-v-b25a9929]:before{content:"\e63f"}.uniui-heart-filled[data-v-b25a9929]:before{content:"\e641"}.uniui-mail-open[data-v-b25a9929]:before{content:"\e643"}.uniui-heart[data-v-b25a9929]:before{content:"\e639"}.uniui-loop[data-v-b25a9929]:before{content:"\e633"}.uniui-pulldown[data-v-b25a9929]:before{content:"\e632"}.uniui-scan[data-v-b25a9929]:before{content:"\e62a"}.uniui-bars[data-v-b25a9929]:before{content:"\e627"}.uniui-checkbox[data-v-b25a9929]:before{content:"\e62b"}.uniui-checkbox-filled[data-v-b25a9929]:before{content:"\e62c"}.uniui-shop[data-v-b25a9929]:before{content:"\e62f"}.uniui-headphones[data-v-b25a9929]:before{content:"\e630"}.uniui-cart[data-v-b25a9929]:before{content:"\e631"}@font-face{font-family:uniicons;src:url(../../assets/uniicons.32e978a5.ttf)}.uni-icons[data-v-b25a9929]{font-family:uniicons;text-decoration:none;text-align:center}.cloud-db-container[data-v-2d96f7d1]{display:flex;flex-direction:column;width:100%;height:100vh;background-color:#f5f6fa}.cloud-db-header[data-v-2d96f7d1]{flex-shrink:0;background-color:#fff;padding-bottom:0}.custom-navbar[data-v-2d96f7d1]{display:flex;align-items:center;justify-content:space-between;padding:.625rem .9375rem;box-sizing:border-box;position:relative}.navbar-left[data-v-2d96f7d1]{display:flex;align-items:center;min-width:5rem}.custom-navbar-icon[data-v-2d96f7d1]{font-size:1.375rem;color:#333}.navbar-title[data-v-2d96f7d1]{font-size:1.125rem;font-weight:600;color:#1a1a2e}.navbar-right[data-v-2d96f7d1]{width:auto;min-width:2.5rem;display:flex;align-items:center;justify-content:flex-end}.navbar-before-title[data-v-2d96f7d1]{font-size:.8125rem;color:#3b86ff;margin-left:.25rem}.navbar-right-text[data-v-2d96f7d1]{font-size:.875rem;color:#3b86ff;font-weight:500}.menu-open[data-v-2d96f7d1]{color:#3b86ff}.menu-card[data-v-2d96f7d1]{position:absolute;top:2.5rem;right:.625rem;background:#fff;border-radius:.5rem;box-shadow:0 .125rem .625rem rgba(0,0,0,.1);padding:.375rem 0;z-index:100;min-width:6.25rem}.menu-card-item[data-v-2d96f7d1]{padding:.625rem 1rem;font-size:.875rem;color:#333}.menu-card-item[data-v-2d96f7d1]:active{background:#f5f6fa}.solid-line[data-v-2d96f7d1]{height:.03125rem;background:#eee;margin:.125rem .625rem}.file-count[data-v-2d96f7d1]{font-size:.75rem;color:#999;font-weight:400}.category-tabs[data-v-2d96f7d1]{display:flex;padding:.3125rem .9375rem 0;gap:1.25rem;border-bottom:.0625rem solid #eee}.category-tab[data-v-2d96f7d1]{font-size:.9375rem;color:#999;padding-bottom:.625rem;position:relative;font-weight:500;transition:color .3s}.category-tab.active[data-v-2d96f7d1]{color:#3b86ff;font-weight:600}.category-tab.active[data-v-2d96f7d1]:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:1.5rem;height:.1875rem;background:#3b86ff;border-radius:.09375rem}.cloud-db-content[data-v-2d96f7d1]{flex:1;min-height:0;padding:.625rem .9375rem;box-sizing:border-box}.section-block[data-v-2d96f7d1]{background:#fff;border-radius:.625rem;padding:.75rem;margin-bottom:.625rem;box-shadow:0 .0625rem .375rem rgba(0,0,0,.04)}.section-header[data-v-2d96f7d1]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.section-title[data-v-2d96f7d1]{display:flex;align-items:center;gap:.375rem;font-size:1rem;font-weight:600;color:#1a1a2e}.section-title .iconfont[data-v-2d96f7d1]{font-size:1.125rem;color:#3b86ff}.section-actions[data-v-2d96f7d1]{display:flex;align-items:center;gap:.3125rem}.action-btn[data-v-2d96f7d1]{display:flex;align-items:center;gap:.1875rem;padding:.3125rem .625rem;background:rgba(59,134,255,.08);color:#3b86ff;border-radius:.9375rem;font-size:.75rem;font-weight:500}.section-divider[data-v-2d96f7d1]{height:.0625rem;margin:.125rem 0 .625rem}.empty-tip[data-v-2d96f7d1]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.875rem 0;color:#bbb;font-size:.8125rem;gap:.5rem}.empty-tip .iconfont[data-v-2d96f7d1]{font-size:2.5rem;color:#ddd}.file-grid[data-v-2d96f7d1]{display:flex;flex-wrap:wrap;gap:.5rem}.file-item[data-v-2d96f7d1]{width:calc(33.33% - .375rem);display:flex;flex-direction:column;align-items:center;padding:.625rem .3125rem;border-radius:.5rem;background:#f8f9fc;border:.0625rem solid transparent;transition:all .2s;box-sizing:border-box}.file-item[data-v-2d96f7d1]:active{border-color:#3b86ff;background:rgba(59,134,255,.04)}.file-icon[data-v-2d96f7d1]{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:.5rem;margin-bottom:.3125rem}.file-icon.is-directory[data-v-2d96f7d1]{background:rgba(255,170,0,.12)}.file-icon.is-directory .iconfont[data-v-2d96f7d1]{font-size:1.5rem;color:orange}.file-icon.is-file[data-v-2d96f7d1]{background:rgba(59,134,255,.1)}.file-icon.is-file .iconfont[data-v-2d96f7d1]{font-size:1.375rem;color:#3b86ff}.file-name[data-v-2d96f7d1]{font-size:.75rem;color:#333;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;margin-bottom:.1875rem}.file-meta[data-v-2d96f7d1]{display:flex;gap:.25rem;align-items:center}.file-type-tag[data-v-2d96f7d1]{font-size:.625rem;color:#999;background:#f0f0f0;padding:.0625rem .3125rem;border-radius:.25rem}.file-size[data-v-2d96f7d1]{font-size:.625rem;color:#bbb}.table-list[data-v-2d96f7d1]{display:flex;flex-direction:column;gap:.375rem}.table-item[data-v-2d96f7d1]{display:flex;align-items:center;padding:.625rem;border-radius:.4375rem;background:#f8f9fc;border:.0625rem solid transparent;transition:all .2s}.table-item[data-v-2d96f7d1]:active{border-color:#3b86ff;background:rgba(59,134,255,.03)}.table-icon[data-v-2d96f7d1]{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:rgba(59,134,255,.08);border-radius:.4375rem;margin-right:.625rem;flex-shrink:0}.table-info[data-v-2d96f7d1]{flex:1;min-width:0}.table-name[data-v-2d96f7d1]{font-size:.875rem;font-weight:600;color:#1a1a2e;margin-bottom:.125rem}.table-desc[data-v-2d96f7d1]{font-size:.6875rem;color:#999;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-meta[data-v-2d96f7d1]{display:flex;align-items:center;gap:.1875rem;flex-shrink:0}.table-rows[data-v-2d96f7d1]{font-size:.6875rem;color:#bbb}.team-manage-block[data-v-2d96f7d1]{cursor:pointer}.team-count[data-v-2d96f7d1]{font-size:.75rem;color:#999}.team-selector[data-v-2d96f7d1]{padding:0 0 .625rem}.team-scroll[data-v-2d96f7d1]{white-space:nowrap}.team-chip[data-v-2d96f7d1]{display:inline-block;padding:.375rem .875rem;margin-right:.5rem;border-radius:.9375rem;font-size:.8125rem;color:#666;background:#f0f2f5;transition:all .2s}.team-chip.active[data-v-2d96f7d1]{color:#fff;background:#3b86ff;font-weight:500}.team-info[data-v-2d96f7d1]{margin-top:.4375rem;display:flex;align-items:center;flex-wrap:wrap;gap:.375rem}.team-type-tag[data-v-2d96f7d1]{font-size:.6875rem;color:#3b86ff;background:rgba(59,134,255,.1);padding:.1875rem .5rem;border-radius:.25rem;font-weight:500}.team-desc-text[data-v-2d96f7d1]{font-size:.75rem;color:#999;line-height:1.5;flex:1;min-width:0}.select-team-tip[data-v-2d96f7d1]{padding:2.5rem 0}.popup-overlay[data-v-2d96f7d1]{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.4);z-index:999;display:flex;align-items:center;justify-content:center}.popup-card[data-v-2d96f7d1]{width:18.75rem;background:#fff;border-radius:.9375rem;padding:1.25rem .9375rem;box-sizing:border-box;position:relative;max-height:80vh;display:flex;flex-direction:column}.close-popup-card[data-v-2d96f7d1]{position:absolute;top:.625rem;right:.625rem;width:1.5625rem;height:1.5625rem;display:flex;align-items:center;justify-content:center}.close-popup-card .iconfont[data-v-2d96f7d1]{font-size:1.25rem;color:#999}.popup-title[data-v-2d96f7d1]{font-size:1.0625rem;font-weight:600;color:#1a1a2e;margin-bottom:.9375rem;text-align:center}.new-folder-name[data-v-2d96f7d1]{font-size:.8125rem;color:#666;margin-bottom:.3125rem}.create-folder-name[data-v-2d96f7d1]{margin-bottom:.625rem}.create-folder-name uni-input[data-v-2d96f7d1]{width:100%;height:auto;padding:.625rem;box-sizing:border-box;border:.03125rem solid #e0e0e0;border-radius:.5rem;font-size:.875rem;background:#f9fafb}.create-folder-name uni-input[data-v-2d96f7d1]:focus{border-color:#3b86ff;background:#fff}.nf-path-label[data-v-2d96f7d1]{font-size:.75rem;color:#999;margin-bottom:.25rem}.nf-path-display[data-v-2d96f7d1]{font-size:.75rem;color:#3b86ff;background:rgba(59,134,255,.06);padding:.375rem .5rem;border-radius:.3125rem;margin-bottom:.625rem}.option-wrapper[data-v-2d96f7d1]{display:flex;gap:.625rem;justify-content:flex-end;margin-top:.3125rem}.opt-btn[data-v-2d96f7d1]{padding:.5rem 1.25rem;border-radius:.9375rem;font-size:.875rem;font-weight:500}.opt-cancel[data-v-2d96f7d1]{color:#999;background:#f0f2f5}.opt-confirm[data-v-2d96f7d1]{color:#fff;background:#3b86ff}.team-manage-body[data-v-2d96f7d1]{flex:1;min-height:0;max-height:15.625rem;margin-bottom:.625rem}.member-list[data-v-2d96f7d1]{display:flex;flex-direction:column;gap:.3125rem}.member-item[data-v-2d96f7d1]{display:flex;align-items:center;padding:.5rem;border-radius:.4375rem;background:#f8f9fc}.member-avatar[data-v-2d96f7d1]{width:2.1875rem;height:2.1875rem;border-radius:50%;overflow:hidden;margin-right:.5rem;flex-shrink:0}.member-avatar uni-image[data-v-2d96f7d1]{width:100%;height:100%}.default-avatar[data-v-2d96f7d1]{width:100%;height:100%;background:#ccc;display:flex;align-items:center;justify-content:center}.member-info[data-v-2d96f7d1]{flex:1;min-width:0}.member-name[data-v-2d96f7d1]{font-size:.875rem;font-weight:500;color:#333}.member-label[data-v-2d96f7d1]{font-size:.6875rem;color:#999;margin-top:.125rem}.member-actions[data-v-2d96f7d1]{flex-shrink:0}.member-role[data-v-2d96f7d1]{font-size:.6875rem;padding:.1875rem .5rem;border-radius:.625rem}.member-role.owner[data-v-2d96f7d1]{color:#e6a23c;background:rgba(230,162,60,.1)}.member-role.admin[data-v-2d96f7d1]{color:#3b86ff;background:rgba(59,134,255,.1)}.member-role.member[data-v-2d96f7d1]{color:#67c23a;background:rgba(103,194,58,.1)}.member-actions-right[data-v-2d96f7d1]{display:flex;gap:.25rem}.member-action-btn[data-v-2d96f7d1]{font-size:.625rem;padding:.25rem .4375rem;border-radius:.5rem}.set-admin[data-v-2d96f7d1]{color:#3b86ff;border:.03125rem solid #3b86ff}.demote-admin[data-v-2d96f7d1]{color:#e6a23c;border:.03125rem solid #e6a23c}.remove-member[data-v-2d96f7d1]{color:#f56c6c;border:.03125rem solid #f56c6c}.invite-section[data-v-2d96f7d1]{border-top:.03125rem solid #eee;padding-top:.625rem}.invite-input-wrapper[data-v-2d96f7d1]{display:flex;align-items:center;gap:.5rem}.invite-input[data-v-2d96f7d1]{flex:1;height:auto;padding:.5625rem .625rem;box-sizing:border-box;border:.03125rem solid #e0e0e0;border-radius:.9375rem;font-size:.8125rem;background:#f9fafb}.invite-btn[data-v-2d96f7d1]{background:#3b86ff;color:#fff;font-size:.75rem;padding:.4375rem 1rem}.search-result-list[data-v-2d96f7d1]{margin-top:.5rem;border-radius:.4375rem;overflow:hidden;background:#f8f9fc}.search-result-item[data-v-2d96f7d1]{display:flex;align-items:center;padding:.5625rem .625rem;border-bottom:.03125rem solid #eee}.search-result-item[data-v-2d96f7d1]:last-child{border-bottom:none}.search-result-item[data-v-2d96f7d1]:active{background:rgba(59,134,255,.05)}.result-avatar[data-v-2d96f7d1]{width:2rem;height:2rem;border-radius:50%;flex-shrink:0;margin-right:.5rem}.result-default-avatar[data-v-2d96f7d1]{width:2rem;height:2rem;border-radius:50%;background:linear-gradient(135deg,#3b86ff,#6db3ff);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:.5rem}.result-info[data-v-2d96f7d1]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.result-name[data-v-2d96f7d1]{font-size:.875rem;color:#333;font-weight:500}.result-email[data-v-2d96f7d1]{font-size:.6875rem;color:#999;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-add-btn[data-v-2d96f7d1]{flex-shrink:0;font-size:.75rem;color:#3b86ff;padding:.3125rem .75rem;border:.03125rem solid #3b86ff;border-radius:.625rem}.search-empty[data-v-2d96f7d1]{margin-top:.5rem;text-align:center;font-size:.75rem;color:#bbb;padding:.625rem 0}.folder-null[data-v-2d96f7d1]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.875rem 0;color:#bbb;font-size:.8125rem;gap:.375rem}.folder-null .iconfont[data-v-2d96f7d1]{font-size:2rem;color:#ddd}.delete-team-section[data-v-2d96f7d1]{border-top:.03125rem solid #eee;padding-top:.625rem;margin-top:.3125rem}.delete-team-btn[data-v-2d96f7d1]{text-align:center;padding:.5625rem;font-size:.8125rem;color:#e74c3c;background:rgba(231,76,60,.06);border-radius:.4375rem;border:.03125rem solid rgba(231,76,60,.2)}.delete-team-btn[data-v-2d96f7d1]:active{background:rgba(231,76,60,.12)}.edit-team-section[data-v-2d96f7d1]{border-top:.03125rem solid #eee;padding-top:.625rem;margin-top:.3125rem}.edit-team-btn[data-v-2d96f7d1]{text-align:center;padding:.5625rem;font-size:.8125rem;color:#3b86ff;background:rgba(59,134,255,.06);border-radius:.4375rem;border:.03125rem solid rgba(59,134,255,.2)}.edit-team-btn[data-v-2d96f7d1]:active{background:rgba(59,134,255,.12)}.edit-team-form[data-v-2d96f7d1]{margin-bottom:.3125rem}.form-label[data-v-2d96f7d1]{font-size:.8125rem;color:#666;margin-bottom:.25rem;margin-top:.5625rem}.text-btn[data-v-2d96f7d1]{padding:.25rem .625rem;border-radius:.9375rem;font-size:14px;font-weight:500}.upload-path-label[data-v-2d96f7d1]{font-size:.8125rem;color:#666;margin-bottom:.3125rem}.upload-path-hint[data-v-2d96f7d1]{font-size:.6875rem;color:#999;margin-bottom:.625rem;text-align:center}.loading-area[data-v-2d96f7d1]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.875rem 0;gap:.5rem}.loading-spinner[data-v-2d96f7d1]{width:1.75rem;height:1.75rem;border:.125rem solid #e8e8e8;border-top-color:#3b86ff;border-radius:50%;animation:spin-2d96f7d1 .8s linear infinite}@keyframes spin-2d96f7d1{to{transform:rotate(360deg)}}.loading-text[data-v-2d96f7d1]{font-size:.75rem;color:#999}.db-tag[data-v-2d96f7d1]{display:inline-block;font-size:.625rem;font-weight:500;padding:.0625rem .375rem;border-radius:.25rem;margin-left:.3125rem;vertical-align:middle}.db-tag.tag-personal[data-v-2d96f7d1]{color:#3b86ff;background:rgba(59,134,255,.08);border:.03125rem solid rgba(59,134,255,.2)}.db-tag.tag-team[data-v-2d96f7d1]{color:#67c23a;background:rgba(103,194,58,.08);border:.03125rem solid rgba(103,194,58,.2)}.upload-db-hint[data-v-2d96f7d1]{font-size:.6875rem;color:#999;margin-bottom:.625rem;text-align:center}.upload-file-area[data-v-2d96f7d1]{padding:1.25rem;border:.0625rem dashed #d0d0d0;border-radius:.5rem;background:#f9fafb;text-align:center;margin-bottom:.625rem}.upload-file-area[data-v-2d96f7d1]:active{border-color:#3b86ff;background:rgba(59,134,255,.03)}.selected-file[data-v-2d96f7d1]{font-size:.8125rem;color:#3b86ff;font-weight:500;word-break:break-all}.upload-hint[data-v-2d96f7d1]{font-size:.75rem;color:#bbb} diff --git a/unpackage/dist/build/app-plus/pages/CloudDbDetail/CloudDbDetail.css b/unpackage/dist/build/app-plus/pages/CloudDbDetail/CloudDbDetail.css new file mode 100644 index 0000000..06239d4 --- /dev/null +++ b/unpackage/dist/build/app-plus/pages/CloudDbDetail/CloudDbDetail.css @@ -0,0 +1 @@ +.uniui-cart-filled[data-v-b25a9929]:before{content:"\e6d0"}.uniui-gift-filled[data-v-b25a9929]:before{content:"\e6c4"}.uniui-color[data-v-b25a9929]:before{content:"\e6cf"}.uniui-wallet[data-v-b25a9929]:before{content:"\e6b1"}.uniui-settings-filled[data-v-b25a9929]:before{content:"\e6ce"}.uniui-auth-filled[data-v-b25a9929]:before{content:"\e6cc"}.uniui-shop-filled[data-v-b25a9929]:before{content:"\e6cd"}.uniui-staff-filled[data-v-b25a9929]:before{content:"\e6cb"}.uniui-vip-filled[data-v-b25a9929]:before{content:"\e6c6"}.uniui-plus-filled[data-v-b25a9929]:before{content:"\e6c7"}.uniui-folder-add-filled[data-v-b25a9929]:before{content:"\e6c8"}.uniui-color-filled[data-v-b25a9929]:before{content:"\e6c9"}.uniui-tune-filled[data-v-b25a9929]:before{content:"\e6ca"}.uniui-calendar-filled[data-v-b25a9929]:before{content:"\e6c0"}.uniui-notification-filled[data-v-b25a9929]:before{content:"\e6c1"}.uniui-wallet-filled[data-v-b25a9929]:before{content:"\e6c2"}.uniui-medal-filled[data-v-b25a9929]:before{content:"\e6c3"}.uniui-fire-filled[data-v-b25a9929]:before{content:"\e6c5"}.uniui-refreshempty[data-v-b25a9929]:before{content:"\e6bf"}.uniui-location-filled[data-v-b25a9929]:before{content:"\e6af"}.uniui-person-filled[data-v-b25a9929]:before{content:"\e69d"}.uniui-personadd-filled[data-v-b25a9929]:before{content:"\e698"}.uniui-arrowthinleft[data-v-b25a9929]:before{content:"\e6d2"}.uniui-arrowthinup[data-v-b25a9929]:before{content:"\e6d3"}.uniui-arrowthindown[data-v-b25a9929]:before{content:"\e6d4"}.uniui-back[data-v-b25a9929]:before{content:"\e6b9"}.uniui-forward[data-v-b25a9929]:before{content:"\e6ba"}.uniui-arrow-right[data-v-b25a9929]:before{content:"\e6bb"}.uniui-arrow-left[data-v-b25a9929]:before{content:"\e6bc"}.uniui-arrow-up[data-v-b25a9929]:before{content:"\e6bd"}.uniui-arrow-down[data-v-b25a9929]:before{content:"\e6be"}.uniui-arrowthinright[data-v-b25a9929]:before{content:"\e6d1"}.uniui-down[data-v-b25a9929]:before{content:"\e6b8"}.uniui-bottom[data-v-b25a9929]:before{content:"\e6b8"}.uniui-arrowright[data-v-b25a9929]:before{content:"\e6d5"}.uniui-right[data-v-b25a9929]:before{content:"\e6b5"}.uniui-up[data-v-b25a9929]:before{content:"\e6b6"}.uniui-top[data-v-b25a9929]:before{content:"\e6b6"}.uniui-left[data-v-b25a9929]:before{content:"\e6b7"}.uniui-arrowup[data-v-b25a9929]:before{content:"\e6d6"}.uniui-eye[data-v-b25a9929]:before{content:"\e651"}.uniui-eye-filled[data-v-b25a9929]:before{content:"\e66a"}.uniui-eye-slash[data-v-b25a9929]:before{content:"\e6b3"}.uniui-eye-slash-filled[data-v-b25a9929]:before{content:"\e6b4"}.uniui-info-filled[data-v-b25a9929]:before{content:"\e649"}.uniui-reload[data-v-b25a9929]:before{content:"\e6b2"}.uniui-micoff-filled[data-v-b25a9929]:before{content:"\e6b0"}.uniui-map-pin-ellipse[data-v-b25a9929]:before{content:"\e6ac"}.uniui-map-pin[data-v-b25a9929]:before{content:"\e6ad"}.uniui-location[data-v-b25a9929]:before{content:"\e6ae"}.uniui-starhalf[data-v-b25a9929]:before{content:"\e683"}.uniui-star[data-v-b25a9929]:before{content:"\e688"}.uniui-star-filled[data-v-b25a9929]:before{content:"\e68f"}.uniui-calendar[data-v-b25a9929]:before{content:"\e6a0"}.uniui-fire[data-v-b25a9929]:before{content:"\e6a1"}.uniui-medal[data-v-b25a9929]:before{content:"\e6a2"}.uniui-font[data-v-b25a9929]:before{content:"\e6a3"}.uniui-gift[data-v-b25a9929]:before{content:"\e6a4"}.uniui-link[data-v-b25a9929]:before{content:"\e6a5"}.uniui-notification[data-v-b25a9929]:before{content:"\e6a6"}.uniui-staff[data-v-b25a9929]:before{content:"\e6a7"}.uniui-vip[data-v-b25a9929]:before{content:"\e6a8"}.uniui-folder-add[data-v-b25a9929]:before{content:"\e6a9"}.uniui-tune[data-v-b25a9929]:before{content:"\e6aa"}.uniui-auth[data-v-b25a9929]:before{content:"\e6ab"}.uniui-person[data-v-b25a9929]:before{content:"\e699"}.uniui-email-filled[data-v-b25a9929]:before{content:"\e69a"}.uniui-phone-filled[data-v-b25a9929]:before{content:"\e69b"}.uniui-phone[data-v-b25a9929]:before{content:"\e69c"}.uniui-email[data-v-b25a9929]:before{content:"\e69e"}.uniui-personadd[data-v-b25a9929]:before{content:"\e69f"}.uniui-chatboxes-filled[data-v-b25a9929]:before{content:"\e692"}.uniui-contact[data-v-b25a9929]:before{content:"\e693"}.uniui-chatbubble-filled[data-v-b25a9929]:before{content:"\e694"}.uniui-contact-filled[data-v-b25a9929]:before{content:"\e695"}.uniui-chatboxes[data-v-b25a9929]:before{content:"\e696"}.uniui-chatbubble[data-v-b25a9929]:before{content:"\e697"}.uniui-upload-filled[data-v-b25a9929]:before{content:"\e68e"}.uniui-upload[data-v-b25a9929]:before{content:"\e690"}.uniui-weixin[data-v-b25a9929]:before{content:"\e691"}.uniui-compose[data-v-b25a9929]:before{content:"\e67f"}.uniui-qq[data-v-b25a9929]:before{content:"\e680"}.uniui-download-filled[data-v-b25a9929]:before{content:"\e681"}.uniui-pyq[data-v-b25a9929]:before{content:"\e682"}.uniui-sound[data-v-b25a9929]:before{content:"\e684"}.uniui-trash-filled[data-v-b25a9929]:before{content:"\e685"}.uniui-sound-filled[data-v-b25a9929]:before{content:"\e686"}.uniui-trash[data-v-b25a9929]:before{content:"\e687"}.uniui-videocam-filled[data-v-b25a9929]:before{content:"\e689"}.uniui-spinner-cycle[data-v-b25a9929]:before{content:"\e68a"}.uniui-weibo[data-v-b25a9929]:before{content:"\e68b"}.uniui-videocam[data-v-b25a9929]:before{content:"\e68c"}.uniui-download[data-v-b25a9929]:before{content:"\e68d"}.uniui-help[data-v-b25a9929]:before{content:"\e679"}.uniui-navigate-filled[data-v-b25a9929]:before{content:"\e67a"}.uniui-plusempty[data-v-b25a9929]:before{content:"\e67b"}.uniui-smallcircle[data-v-b25a9929]:before{content:"\e67c"}.uniui-minus-filled[data-v-b25a9929]:before{content:"\e67d"}.uniui-micoff[data-v-b25a9929]:before{content:"\e67e"}.uniui-closeempty[data-v-b25a9929]:before{content:"\e66c"}.uniui-clear[data-v-b25a9929]:before{content:"\e66d"}.uniui-navigate[data-v-b25a9929]:before{content:"\e66e"}.uniui-minus[data-v-b25a9929]:before{content:"\e66f"}.uniui-image[data-v-b25a9929]:before{content:"\e670"}.uniui-mic[data-v-b25a9929]:before{content:"\e671"}.uniui-paperplane[data-v-b25a9929]:before{content:"\e672"}.uniui-close[data-v-b25a9929]:before{content:"\e673"}.uniui-help-filled[data-v-b25a9929]:before{content:"\e674"}.uniui-paperplane-filled[data-v-b25a9929]:before{content:"\e675"}.uniui-plus[data-v-b25a9929]:before{content:"\e676"}.uniui-mic-filled[data-v-b25a9929]:before{content:"\e677"}.uniui-image-filled[data-v-b25a9929]:before{content:"\e678"}.uniui-locked-filled[data-v-b25a9929]:before{content:"\e668"}.uniui-info[data-v-b25a9929]:before{content:"\e669"}.uniui-locked[data-v-b25a9929]:before{content:"\e66b"}.uniui-camera-filled[data-v-b25a9929]:before{content:"\e658"}.uniui-chat-filled[data-v-b25a9929]:before{content:"\e659"}.uniui-camera[data-v-b25a9929]:before{content:"\e65a"}.uniui-circle[data-v-b25a9929]:before{content:"\e65b"}.uniui-checkmarkempty[data-v-b25a9929]:before{content:"\e65c"}.uniui-chat[data-v-b25a9929]:before{content:"\e65d"}.uniui-circle-filled[data-v-b25a9929]:before{content:"\e65e"}.uniui-flag[data-v-b25a9929]:before{content:"\e65f"}.uniui-flag-filled[data-v-b25a9929]:before{content:"\e660"}.uniui-gear-filled[data-v-b25a9929]:before{content:"\e661"}.uniui-home[data-v-b25a9929]:before{content:"\e662"}.uniui-home-filled[data-v-b25a9929]:before{content:"\e663"}.uniui-gear[data-v-b25a9929]:before{content:"\e664"}.uniui-smallcircle-filled[data-v-b25a9929]:before{content:"\e665"}.uniui-map-filled[data-v-b25a9929]:before{content:"\e666"}.uniui-map[data-v-b25a9929]:before{content:"\e667"}.uniui-refresh-filled[data-v-b25a9929]:before{content:"\e656"}.uniui-refresh[data-v-b25a9929]:before{content:"\e657"}.uniui-cloud-upload[data-v-b25a9929]:before{content:"\e645"}.uniui-cloud-download-filled[data-v-b25a9929]:before{content:"\e646"}.uniui-cloud-download[data-v-b25a9929]:before{content:"\e647"}.uniui-cloud-upload-filled[data-v-b25a9929]:before{content:"\e648"}.uniui-redo[data-v-b25a9929]:before{content:"\e64a"}.uniui-images-filled[data-v-b25a9929]:before{content:"\e64b"}.uniui-undo-filled[data-v-b25a9929]:before{content:"\e64c"}.uniui-more[data-v-b25a9929]:before{content:"\e64d"}.uniui-more-filled[data-v-b25a9929]:before{content:"\e64e"}.uniui-undo[data-v-b25a9929]:before{content:"\e64f"}.uniui-images[data-v-b25a9929]:before{content:"\e650"}.uniui-paperclip[data-v-b25a9929]:before{content:"\e652"}.uniui-settings[data-v-b25a9929]:before{content:"\e653"}.uniui-search[data-v-b25a9929]:before{content:"\e654"}.uniui-redo-filled[data-v-b25a9929]:before{content:"\e655"}.uniui-list[data-v-b25a9929]:before{content:"\e644"}.uniui-mail-open-filled[data-v-b25a9929]:before{content:"\e63a"}.uniui-hand-down-filled[data-v-b25a9929]:before{content:"\e63c"}.uniui-hand-down[data-v-b25a9929]:before{content:"\e63d"}.uniui-hand-up-filled[data-v-b25a9929]:before{content:"\e63e"}.uniui-hand-up[data-v-b25a9929]:before{content:"\e63f"}.uniui-heart-filled[data-v-b25a9929]:before{content:"\e641"}.uniui-mail-open[data-v-b25a9929]:before{content:"\e643"}.uniui-heart[data-v-b25a9929]:before{content:"\e639"}.uniui-loop[data-v-b25a9929]:before{content:"\e633"}.uniui-pulldown[data-v-b25a9929]:before{content:"\e632"}.uniui-scan[data-v-b25a9929]:before{content:"\e62a"}.uniui-bars[data-v-b25a9929]:before{content:"\e627"}.uniui-checkbox[data-v-b25a9929]:before{content:"\e62b"}.uniui-checkbox-filled[data-v-b25a9929]:before{content:"\e62c"}.uniui-shop[data-v-b25a9929]:before{content:"\e62f"}.uniui-headphones[data-v-b25a9929]:before{content:"\e630"}.uniui-cart[data-v-b25a9929]:before{content:"\e631"}@font-face{font-family:uniicons;src:url(../../assets/uniicons.32e978a5.ttf)}.uni-icons[data-v-b25a9929]{font-family:uniicons;text-decoration:none;text-align:center}.status-bar[data-v-144a6cf9]{height:var(--status-bar-height);background-color:#fff}.page-container[data-v-144a6cf9]{display:flex;flex-direction:column;height:100vh;background-color:#f5f6fa}.cloud-db-header[data-v-144a6cf9]{background-color:#fff;flex-shrink:0;position:relative;z-index:10}.custom-navbar[data-v-144a6cf9]{display:flex;align-items:center;justify-content:space-between;height:2.75rem;padding:0 .9375rem}.navbar-left[data-v-144a6cf9]{display:flex;align-items:center;min-width:3.75rem}.custom-navbar-icon[data-v-144a6cf9]{font-size:1.25rem;color:#333}.navbar-title[data-v-144a6cf9]{font-size:1.0625rem;font-weight:600;color:#333;flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-right[data-v-144a6cf9]{min-width:3.75rem;display:flex;justify-content:flex-end}.menu-card[data-v-144a6cf9]{position:absolute;top:2.75rem;right:.625rem;background:#fff;border-radius:.5rem;box-shadow:0 .25rem 1rem rgba(0,0,0,.12);z-index:500;overflow:hidden;min-width:6.25rem}.menu-card-item[data-v-144a6cf9]{padding:.75rem 1.125rem;font-size:.875rem;color:#333;text-align:center}.menu-card-item[data-v-144a6cf9]:active{background-color:#f5f6fa}.solid-line[data-v-144a6cf9]{height:.03125rem;background-color:#eee;margin:0 .625rem}.db-info-bar[data-v-144a6cf9]{display:flex;align-items:center;gap:.75rem;padding:.625rem .9375rem;background:#fff;border-bottom:.03125rem solid #f0f0f0}.db-info-text[data-v-144a6cf9]{font-size:.75rem;color:#999}.cloud-db-content[data-v-144a6cf9]{flex:1;overflow-y:auto}.section-block[data-v-144a6cf9]{margin:.625rem;background:#fff;border-radius:.625rem;overflow:hidden}.section-header[data-v-144a6cf9]{display:flex;align-items:center;justify-content:space-between;padding:.75rem .9375rem;border-bottom:.03125rem solid #f5f6fa}.section-title[data-v-144a6cf9]{display:flex;align-items:center;gap:.375rem;font-size:.9375rem;font-weight:600;color:#333}.section-title .iconfont[data-v-144a6cf9]{font-size:1.125rem;color:#3b86ff}.section-actions[data-v-144a6cf9]{display:flex;align-items:center;gap:.5rem}.row-count[data-v-144a6cf9]{font-size:.75rem;color:#999}.section-divider[data-v-144a6cf9]{height:.03125rem;background-color:#f0f0f0;margin:0 .625rem}.section-body[data-v-144a6cf9]{padding:.5rem 0}.empty-tip[data-v-144a6cf9]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.875rem 0;color:#ccc;font-size:.8125rem}.empty-tip .iconfont[data-v-144a6cf9]{font-size:2.5rem;margin-bottom:.5rem}.table-list[data-v-144a6cf9]{padding:0 .9375rem}.table-item[data-v-144a6cf9]{display:flex;align-items:center;padding:.75rem 0;border-bottom:.03125rem solid #f5f6fa}.table-item[data-v-144a6cf9]:last-child{border-bottom:none}.table-item[data-v-144a6cf9]:active{background-color:#fafbfc;margin:0 -.9375rem;padding-left:.9375rem;padding-right:.9375rem}.table-icon[data-v-144a6cf9]{width:2.25rem;height:2.25rem;border-radius:.5rem;background:rgba(59,134,255,.08);display:flex;align-items:center;justify-content:center;margin-right:.625rem;flex-shrink:0}.table-info[data-v-144a6cf9]{flex:1;overflow:hidden}.table-name[data-v-144a6cf9]{font-size:.9375rem;font-weight:500;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-desc[data-v-144a6cf9]{font-size:.75rem;color:#999;margin-top:.125rem}.table-meta[data-v-144a6cf9]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.data-table-wrapper[data-v-144a6cf9]{padding:0}.data-table-scroll[data-v-144a6cf9]{width:100%}.data-table[data-v-144a6cf9]{min-width:100%}.data-row[data-v-144a6cf9]{display:flex;flex-direction:row;border-bottom:.03125rem solid #f0f0f0}.data-row[data-v-144a6cf9]:last-child{border-bottom:none}.data-header[data-v-144a6cf9]{background-color:#f8f9fb}.data-cell[data-v-144a6cf9]{padding:.5rem .625rem;font-size:.8125rem;color:#333;min-width:5rem;max-width:9.375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-right:.03125rem solid #f0f0f0;flex-shrink:0}.data-cell[data-v-144a6cf9]:last-child{border-right:none}.data-header .data-cell[data-v-144a6cf9]{font-weight:600;color:#666;font-size:.75rem}.index-cell[data-v-144a6cf9]{min-width:2.5rem!important;max-width:2.5rem!important;text-align:center;color:#999;font-size:.75rem}.data-row[data-v-144a6cf9]:active{background-color:#f5f7fa}.popup-overlay[data-v-144a6cf9]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:900}.popup-card[data-v-144a6cf9]{width:20rem;background:#fff;border-radius:.75rem;padding:1.25rem 1.125rem .9375rem;position:relative}.close-popup-card[data-v-144a6cf9]{position:absolute;top:.625rem;right:.625rem;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center}.close-popup-card .iconfont[data-v-144a6cf9]{font-size:1.125rem;color:#999}.popup-title[data-v-144a6cf9]{font-size:1.0625rem;font-weight:600;color:#333;text-align:center;margin-bottom:.9375rem}.new-folder-name[data-v-144a6cf9]{font-size:.8125rem;color:#666;margin-bottom:.375rem}.create-folder-name[data-v-144a6cf9]{margin-bottom:.75rem}.create-folder-name uni-input[data-v-144a6cf9]{width:100%;height:2.5rem;border:.0625rem solid #e0e0e0;border-radius:.375rem;padding:0 .625rem;font-size:.875rem;box-sizing:border-box;background:#f8f9fb}.upload-file-area[data-v-144a6cf9]{width:100%;height:3.75rem;border:.0625rem dashed #d0d0d0;border-radius:.375rem;display:flex;align-items:center;justify-content:center;margin-bottom:.75rem;background:#fafbfc}.selected-file[data-v-144a6cf9]{font-size:.8125rem;color:#3b86ff}.upload-hint[data-v-144a6cf9]{font-size:.75rem;color:#999}.option-wrapper[data-v-144a6cf9]{display:flex;gap:.625rem;margin-top:.3125rem}.opt-btn[data-v-144a6cf9]{flex:1;height:2.5rem;border-radius:.375rem;display:flex;align-items:center;justify-content:center;font-size:.9375rem}.opt-cancel[data-v-144a6cf9]{background:#f5f6fa;color:#666}.opt-confirm[data-v-144a6cf9]{background:#3b86ff;color:#fff}.permission-body[data-v-144a6cf9]{max-height:18.75rem;margin-bottom:.625rem}.permission-list[data-v-144a6cf9]{padding:0 .3125rem}.permission-item[data-v-144a6cf9]{display:flex;align-items:center;padding:.625rem .3125rem;border-bottom:.03125rem solid #f0f0f0}.perm-info[data-v-144a6cf9]{flex:1;display:flex;flex-direction:column;gap:.125rem}.perm-name[data-v-144a6cf9]{font-size:.875rem;color:#333}.perm-type[data-v-144a6cf9]{font-size:.6875rem;color:#999}.perm-level[data-v-144a6cf9]{font-size:.75rem;color:#3b86ff;background:rgba(59,134,255,.08);padding:.1875rem .5rem;border-radius:.25rem;margin:0 .5rem}.perm-actions[data-v-144a6cf9]{display:flex;gap:.375rem}.perm-action-btn[data-v-144a6cf9]{font-size:.75rem;color:#3b86ff;padding:.25rem .5rem;border:.03125rem solid #3b86ff;border-radius:.25rem}.perm-action-btn.delete[data-v-144a6cf9]{color:#f56c6c;border-color:#f56c6c}.close-permission-btn[data-v-144a6cf9]{text-align:center;font-size:.875rem;color:#999;padding:.5rem 0}.folder-null[data-v-144a6cf9]{text-align:center;padding:1.25rem 0;font-size:.8125rem;color:#999}.transfer-body[data-v-144a6cf9]{max-height:15.625rem;margin-bottom:.625rem}.transfer-list[data-v-144a6cf9]{padding:0 .3125rem}.transfer-item[data-v-144a6cf9]{display:flex;align-items:center;justify-content:space-between;padding:.75rem .5rem;border-bottom:.03125rem solid #f0f0f0;border-radius:.375rem;margin-bottom:.25rem}.transfer-item.active[data-v-144a6cf9]{background:rgba(59,134,255,.06)}.transfer-name[data-v-144a6cf9]{font-size:.875rem;color:#333}.loading-area[data-v-144a6cf9]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.875rem 0;gap:.5rem}.loading-spinner[data-v-144a6cf9]{width:1.75rem;height:1.75rem;border:.125rem solid #e8e8e8;border-top-color:#3b86ff;border-radius:50%;animation:spin-144a6cf9 .8s linear infinite}@keyframes spin-144a6cf9{to{transform:rotate(360deg)}}.loading-text[data-v-144a6cf9]{font-size:.75rem;color:#999} diff --git a/unpackage/dist/build/app-plus/pages/ContactPages/ContactPages.css b/unpackage/dist/build/app-plus/pages/ContactPages/ContactPages.css index ee251b8..79a1ec5 100644 --- a/unpackage/dist/build/app-plus/pages/ContactPages/ContactPages.css +++ b/unpackage/dist/build/app-plus/pages/ContactPages/ContactPages.css @@ -1 +1 @@ -.uniui-cart-filled[data-v-b25a9929]:before{content:"\e6d0"}.uniui-gift-filled[data-v-b25a9929]:before{content:"\e6c4"}.uniui-color[data-v-b25a9929]:before{content:"\e6cf"}.uniui-wallet[data-v-b25a9929]:before{content:"\e6b1"}.uniui-settings-filled[data-v-b25a9929]:before{content:"\e6ce"}.uniui-auth-filled[data-v-b25a9929]:before{content:"\e6cc"}.uniui-shop-filled[data-v-b25a9929]:before{content:"\e6cd"}.uniui-staff-filled[data-v-b25a9929]:before{content:"\e6cb"}.uniui-vip-filled[data-v-b25a9929]:before{content:"\e6c6"}.uniui-plus-filled[data-v-b25a9929]:before{content:"\e6c7"}.uniui-folder-add-filled[data-v-b25a9929]:before{content:"\e6c8"}.uniui-color-filled[data-v-b25a9929]:before{content:"\e6c9"}.uniui-tune-filled[data-v-b25a9929]:before{content:"\e6ca"}.uniui-calendar-filled[data-v-b25a9929]:before{content:"\e6c0"}.uniui-notification-filled[data-v-b25a9929]:before{content:"\e6c1"}.uniui-wallet-filled[data-v-b25a9929]:before{content:"\e6c2"}.uniui-medal-filled[data-v-b25a9929]:before{content:"\e6c3"}.uniui-fire-filled[data-v-b25a9929]:before{content:"\e6c5"}.uniui-refreshempty[data-v-b25a9929]:before{content:"\e6bf"}.uniui-location-filled[data-v-b25a9929]:before{content:"\e6af"}.uniui-person-filled[data-v-b25a9929]:before{content:"\e69d"}.uniui-personadd-filled[data-v-b25a9929]:before{content:"\e698"}.uniui-arrowthinleft[data-v-b25a9929]:before{content:"\e6d2"}.uniui-arrowthinup[data-v-b25a9929]:before{content:"\e6d3"}.uniui-arrowthindown[data-v-b25a9929]:before{content:"\e6d4"}.uniui-back[data-v-b25a9929]:before{content:"\e6b9"}.uniui-forward[data-v-b25a9929]:before{content:"\e6ba"}.uniui-arrow-right[data-v-b25a9929]:before{content:"\e6bb"}.uniui-arrow-left[data-v-b25a9929]:before{content:"\e6bc"}.uniui-arrow-up[data-v-b25a9929]:before{content:"\e6bd"}.uniui-arrow-down[data-v-b25a9929]:before{content:"\e6be"}.uniui-arrowthinright[data-v-b25a9929]:before{content:"\e6d1"}.uniui-down[data-v-b25a9929]:before{content:"\e6b8"}.uniui-bottom[data-v-b25a9929]:before{content:"\e6b8"}.uniui-arrowright[data-v-b25a9929]:before{content:"\e6d5"}.uniui-right[data-v-b25a9929]:before{content:"\e6b5"}.uniui-up[data-v-b25a9929]:before{content:"\e6b6"}.uniui-top[data-v-b25a9929]:before{content:"\e6b6"}.uniui-left[data-v-b25a9929]:before{content:"\e6b7"}.uniui-arrowup[data-v-b25a9929]:before{content:"\e6d6"}.uniui-eye[data-v-b25a9929]:before{content:"\e651"}.uniui-eye-filled[data-v-b25a9929]:before{content:"\e66a"}.uniui-eye-slash[data-v-b25a9929]:before{content:"\e6b3"}.uniui-eye-slash-filled[data-v-b25a9929]:before{content:"\e6b4"}.uniui-info-filled[data-v-b25a9929]:before{content:"\e649"}.uniui-reload[data-v-b25a9929]:before{content:"\e6b2"}.uniui-micoff-filled[data-v-b25a9929]:before{content:"\e6b0"}.uniui-map-pin-ellipse[data-v-b25a9929]:before{content:"\e6ac"}.uniui-map-pin[data-v-b25a9929]:before{content:"\e6ad"}.uniui-location[data-v-b25a9929]:before{content:"\e6ae"}.uniui-starhalf[data-v-b25a9929]:before{content:"\e683"}.uniui-star[data-v-b25a9929]:before{content:"\e688"}.uniui-star-filled[data-v-b25a9929]:before{content:"\e68f"}.uniui-calendar[data-v-b25a9929]:before{content:"\e6a0"}.uniui-fire[data-v-b25a9929]:before{content:"\e6a1"}.uniui-medal[data-v-b25a9929]:before{content:"\e6a2"}.uniui-font[data-v-b25a9929]:before{content:"\e6a3"}.uniui-gift[data-v-b25a9929]:before{content:"\e6a4"}.uniui-link[data-v-b25a9929]:before{content:"\e6a5"}.uniui-notification[data-v-b25a9929]:before{content:"\e6a6"}.uniui-staff[data-v-b25a9929]:before{content:"\e6a7"}.uniui-vip[data-v-b25a9929]:before{content:"\e6a8"}.uniui-folder-add[data-v-b25a9929]:before{content:"\e6a9"}.uniui-tune[data-v-b25a9929]:before{content:"\e6aa"}.uniui-auth[data-v-b25a9929]:before{content:"\e6ab"}.uniui-person[data-v-b25a9929]:before{content:"\e699"}.uniui-email-filled[data-v-b25a9929]:before{content:"\e69a"}.uniui-phone-filled[data-v-b25a9929]:before{content:"\e69b"}.uniui-phone[data-v-b25a9929]:before{content:"\e69c"}.uniui-email[data-v-b25a9929]:before{content:"\e69e"}.uniui-personadd[data-v-b25a9929]:before{content:"\e69f"}.uniui-chatboxes-filled[data-v-b25a9929]:before{content:"\e692"}.uniui-contact[data-v-b25a9929]:before{content:"\e693"}.uniui-chatbubble-filled[data-v-b25a9929]:before{content:"\e694"}.uniui-contact-filled[data-v-b25a9929]:before{content:"\e695"}.uniui-chatboxes[data-v-b25a9929]:before{content:"\e696"}.uniui-chatbubble[data-v-b25a9929]:before{content:"\e697"}.uniui-upload-filled[data-v-b25a9929]:before{content:"\e68e"}.uniui-upload[data-v-b25a9929]:before{content:"\e690"}.uniui-weixin[data-v-b25a9929]:before{content:"\e691"}.uniui-compose[data-v-b25a9929]:before{content:"\e67f"}.uniui-qq[data-v-b25a9929]:before{content:"\e680"}.uniui-download-filled[data-v-b25a9929]:before{content:"\e681"}.uniui-pyq[data-v-b25a9929]:before{content:"\e682"}.uniui-sound[data-v-b25a9929]:before{content:"\e684"}.uniui-trash-filled[data-v-b25a9929]:before{content:"\e685"}.uniui-sound-filled[data-v-b25a9929]:before{content:"\e686"}.uniui-trash[data-v-b25a9929]:before{content:"\e687"}.uniui-videocam-filled[data-v-b25a9929]:before{content:"\e689"}.uniui-spinner-cycle[data-v-b25a9929]:before{content:"\e68a"}.uniui-weibo[data-v-b25a9929]:before{content:"\e68b"}.uniui-videocam[data-v-b25a9929]:before{content:"\e68c"}.uniui-download[data-v-b25a9929]:before{content:"\e68d"}.uniui-help[data-v-b25a9929]:before{content:"\e679"}.uniui-navigate-filled[data-v-b25a9929]:before{content:"\e67a"}.uniui-plusempty[data-v-b25a9929]:before{content:"\e67b"}.uniui-smallcircle[data-v-b25a9929]:before{content:"\e67c"}.uniui-minus-filled[data-v-b25a9929]:before{content:"\e67d"}.uniui-micoff[data-v-b25a9929]:before{content:"\e67e"}.uniui-closeempty[data-v-b25a9929]:before{content:"\e66c"}.uniui-clear[data-v-b25a9929]:before{content:"\e66d"}.uniui-navigate[data-v-b25a9929]:before{content:"\e66e"}.uniui-minus[data-v-b25a9929]:before{content:"\e66f"}.uniui-image[data-v-b25a9929]:before{content:"\e670"}.uniui-mic[data-v-b25a9929]:before{content:"\e671"}.uniui-paperplane[data-v-b25a9929]:before{content:"\e672"}.uniui-close[data-v-b25a9929]:before{content:"\e673"}.uniui-help-filled[data-v-b25a9929]:before{content:"\e674"}.uniui-paperplane-filled[data-v-b25a9929]:before{content:"\e675"}.uniui-plus[data-v-b25a9929]:before{content:"\e676"}.uniui-mic-filled[data-v-b25a9929]:before{content:"\e677"}.uniui-image-filled[data-v-b25a9929]:before{content:"\e678"}.uniui-locked-filled[data-v-b25a9929]:before{content:"\e668"}.uniui-info[data-v-b25a9929]:before{content:"\e669"}.uniui-locked[data-v-b25a9929]:before{content:"\e66b"}.uniui-camera-filled[data-v-b25a9929]:before{content:"\e658"}.uniui-chat-filled[data-v-b25a9929]:before{content:"\e659"}.uniui-camera[data-v-b25a9929]:before{content:"\e65a"}.uniui-circle[data-v-b25a9929]:before{content:"\e65b"}.uniui-checkmarkempty[data-v-b25a9929]:before{content:"\e65c"}.uniui-chat[data-v-b25a9929]:before{content:"\e65d"}.uniui-circle-filled[data-v-b25a9929]:before{content:"\e65e"}.uniui-flag[data-v-b25a9929]:before{content:"\e65f"}.uniui-flag-filled[data-v-b25a9929]:before{content:"\e660"}.uniui-gear-filled[data-v-b25a9929]:before{content:"\e661"}.uniui-home[data-v-b25a9929]:before{content:"\e662"}.uniui-home-filled[data-v-b25a9929]:before{content:"\e663"}.uniui-gear[data-v-b25a9929]:before{content:"\e664"}.uniui-smallcircle-filled[data-v-b25a9929]:before{content:"\e665"}.uniui-map-filled[data-v-b25a9929]:before{content:"\e666"}.uniui-map[data-v-b25a9929]:before{content:"\e667"}.uniui-refresh-filled[data-v-b25a9929]:before{content:"\e656"}.uniui-refresh[data-v-b25a9929]:before{content:"\e657"}.uniui-cloud-upload[data-v-b25a9929]:before{content:"\e645"}.uniui-cloud-download-filled[data-v-b25a9929]:before{content:"\e646"}.uniui-cloud-download[data-v-b25a9929]:before{content:"\e647"}.uniui-cloud-upload-filled[data-v-b25a9929]:before{content:"\e648"}.uniui-redo[data-v-b25a9929]:before{content:"\e64a"}.uniui-images-filled[data-v-b25a9929]:before{content:"\e64b"}.uniui-undo-filled[data-v-b25a9929]:before{content:"\e64c"}.uniui-more[data-v-b25a9929]:before{content:"\e64d"}.uniui-more-filled[data-v-b25a9929]:before{content:"\e64e"}.uniui-undo[data-v-b25a9929]:before{content:"\e64f"}.uniui-images[data-v-b25a9929]:before{content:"\e650"}.uniui-paperclip[data-v-b25a9929]:before{content:"\e652"}.uniui-settings[data-v-b25a9929]:before{content:"\e653"}.uniui-search[data-v-b25a9929]:before{content:"\e654"}.uniui-redo-filled[data-v-b25a9929]:before{content:"\e655"}.uniui-list[data-v-b25a9929]:before{content:"\e644"}.uniui-mail-open-filled[data-v-b25a9929]:before{content:"\e63a"}.uniui-hand-down-filled[data-v-b25a9929]:before{content:"\e63c"}.uniui-hand-down[data-v-b25a9929]:before{content:"\e63d"}.uniui-hand-up-filled[data-v-b25a9929]:before{content:"\e63e"}.uniui-hand-up[data-v-b25a9929]:before{content:"\e63f"}.uniui-heart-filled[data-v-b25a9929]:before{content:"\e641"}.uniui-mail-open[data-v-b25a9929]:before{content:"\e643"}.uniui-heart[data-v-b25a9929]:before{content:"\e639"}.uniui-loop[data-v-b25a9929]:before{content:"\e633"}.uniui-pulldown[data-v-b25a9929]:before{content:"\e632"}.uniui-scan[data-v-b25a9929]:before{content:"\e62a"}.uniui-bars[data-v-b25a9929]:before{content:"\e627"}.uniui-checkbox[data-v-b25a9929]:before{content:"\e62b"}.uniui-checkbox-filled[data-v-b25a9929]:before{content:"\e62c"}.uniui-shop[data-v-b25a9929]:before{content:"\e62f"}.uniui-headphones[data-v-b25a9929]:before{content:"\e630"}.uniui-cart[data-v-b25a9929]:before{content:"\e631"}@font-face{font-family:uniicons;src:url(../../assets/uniicons.32e978a5.ttf)}.uni-icons[data-v-b25a9929]{font-family:uniicons;text-decoration:none;text-align:center}.tabbar-page[data-v-35441fc3]{display:flex;flex-direction:column}.content-swiper[data-v-35441fc3]{width:100%;height:calc(100% - 3.125rem)}.tabpage-content[data-v-35441fc3]{display:flex;flex-direction:column;width:100%;height:100%}.tabpage-containner[data-v-35441fc3]{width:100%;height:100%;display:flex;align-items:center;flex-direction:column}.tabpage-header[data-v-35441fc3]{width:100%;display:flex;align-items:center;flex-shrink:0}.tabpage-header .iconfont[data-v-35441fc3]{font-size:1.5625rem;margin-right:.3125rem}.tabpage-title[data-v-35441fc3]{font-size:1.25rem}.tabpage-body[data-v-35441fc3]{width:100%;display:flex;flex:1;min-height:0;align-items:center;flex-direction:column;padding:.625rem;box-sizing:border-box}.group-info[data-v-35441fc3]{width:100%;height:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;flex-shrink:0}.group-name[data-v-35441fc3]{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.group-name .input[data-v-35441fc3]{width:100%;height:auto;padding:.625rem;box-sizing:border-box;border:.03125rem solid #007aff;border-radius:.9375rem}.group-member-wrapper[data-v-35441fc3]{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:.625rem;box-sizing:border-box;background-color:rgba(16,185,129,.05);border:.03125rem solid rgba(16,185,129,.2);border-radius:.9375rem;margin:.3125rem 0}.group-member-wrapper .member-title[data-v-35441fc3]{color:#059669;font-weight:700}.group-ismember-list[data-v-35441fc3]{display:flex;flex-wrap:wrap;margin-top:.3125rem;box-sizing:border-box;max-height:6.25rem;overflow-y:auto}.group-ismember-info[data-v-35441fc3]{padding:.3125rem .5rem;box-sizing:border-box;border:.03125rem solid rgba(16,185,129,.8);background-color:#fff;border-radius:.9375rem;margin:.15625rem .3125rem}.group-ismember-name[data-v-35441fc3]{font-size:.6875rem;color:#059669}.create-group-btn[data-v-35441fc3]{width:100%;background:#007aff;border-radius:.9375rem;padding:.625rem;box-sizing:border-box;font-weight:700;color:#fff;display:flex;justify-content:center;align-items:center;margin-bottom:.3125rem}.group-member[data-v-35441fc3]{display:flex;flex-direction:column;flex:1;min-height:0;padding:.3125rem;margin-top:.3125rem;box-sizing:border-box}.friend-list[data-v-35441fc3]{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.friend-card[data-v-35441fc3]{display:flex;justify-content:flex-start;align-items:center;width:100%;padding:.625rem;margin:.3125rem 0;box-sizing:border-box;border:.03125rem solid #aaaaff;border-radius:.9375rem}.friend-card-left[data-v-35441fc3]{flex-shrink:0;margin-right:.3125rem}.friend-avatar[data-v-35441fc3]{display:flex;justify-content:center;align-items:center;width:3.125rem;height:3.125rem;border-radius:50%;overflow:hidden}.friend-card-middle[data-v-35441fc3]{flex:1;height:auto;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.friend-name[data-v-35441fc3]{font-weight:500;font-size:1rem}.friend-card-right[data-v-35441fc3]{width:auto;flex-shrink:0;display:flex;justify-content:center;align-items:center}.friend-checkbox[data-v-35441fc3]{width:.9375rem;height:.9375rem;border-radius:.3125rem;display:flex;justify-content:center;align-items:center;border:.03125rem solid #3b86ff}.search-warpper[data-v-35441fc3]{width:100%;display:flex;align-items:center}.search-warpper .search-file-input[data-v-35441fc3]{flex:1;background-color:#f9fafb;border:.0625rem solid rgba(139,195,232,.2);padding:.625rem;margin-right:.625rem;height:auto;box-sizing:border-box;border-radius:.9375rem}.search-file-input.active[data-v-35441fc3]{background-color:#fff;box-shadow:0 0 .46875rem #aaf;border-color:#007aff}.search-warpper .iconfont[data-v-35441fc3]{flex-shrink:0;font-size:1.1875rem;font-weight:700;color:#fff;background-color:#007aff;padding:.5625rem;box-sizing:border-box;border-radius:.625rem}.search-result[data-v-35441fc3]{width:100%}.add-btn[data-v-35441fc3]{background:#3b86ff;color:#fff;font-size:14px;font-weight:500}.nickname-wrapper[data-v-35441fc3]{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;margin:.625rem 0;box-sizing:border-box}.input-nickname[data-v-35441fc3]{width:100%;height:auto;padding:.625rem;border:.03125rem solid #007aff;border-radius:.9375rem;margin:.625rem 0;box-sizing:border-box}.confirm-btn[data-v-35441fc3]{background:#3b86ff;color:#fff;font-size:16px;font-weight:500;padding:10px}.create-meeting-wrapper[data-v-35441fc3],.join-meeting-wrapper[data-v-35441fc3]{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:.625rem .9375rem;box-sizing:border-box}.input-meeting[data-v-35441fc3]{width:100%;height:auto;padding:.625rem;border:.03125rem solid #007aff;border-radius:.9375rem;margin:.3125rem 0;box-sizing:border-box}.meeting-btn[data-v-35441fc3]{width:100%;background:#007aff;margin:.3125rem 0;color:#fff}.meeting-field[data-v-35441fc3]{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.meeting-toggles[data-v-35441fc3]{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.meeting-toggles-item[data-v-35441fc3]{width:100%;display:flex;justify-content:space-between}.friend-option[data-v-35441fc3]{display:flex;justify-content:center;align-items:center}.agree-btn[data-v-35441fc3],.refuse-btn[data-v-35441fc3]{font-size:14px;font-weight:500;border:1px solid #666;margin-left:.3125rem;box-sizing:border-box}.contact-list[data-v-35441fc3]{display:flex;height:100%;padding:.3125rem;margin-top:.3125rem;box-sizing:border-box}.bottom-tabbar[data-v-35441fc3]{width:100%;height:4.375rem;display:flex;justify-content:space-between;align-items:center;padding:.625rem;box-sizing:border-box;background:rgba(200,200,200,.1)}.tab-item[data-v-35441fc3]{display:flex;flex-direction:column;justify-content:center;align-items:center}.tab-label[data-v-35441fc3]{font-size:.875rem} +.uniui-cart-filled[data-v-b25a9929]:before{content:"\e6d0"}.uniui-gift-filled[data-v-b25a9929]:before{content:"\e6c4"}.uniui-color[data-v-b25a9929]:before{content:"\e6cf"}.uniui-wallet[data-v-b25a9929]:before{content:"\e6b1"}.uniui-settings-filled[data-v-b25a9929]:before{content:"\e6ce"}.uniui-auth-filled[data-v-b25a9929]:before{content:"\e6cc"}.uniui-shop-filled[data-v-b25a9929]:before{content:"\e6cd"}.uniui-staff-filled[data-v-b25a9929]:before{content:"\e6cb"}.uniui-vip-filled[data-v-b25a9929]:before{content:"\e6c6"}.uniui-plus-filled[data-v-b25a9929]:before{content:"\e6c7"}.uniui-folder-add-filled[data-v-b25a9929]:before{content:"\e6c8"}.uniui-color-filled[data-v-b25a9929]:before{content:"\e6c9"}.uniui-tune-filled[data-v-b25a9929]:before{content:"\e6ca"}.uniui-calendar-filled[data-v-b25a9929]:before{content:"\e6c0"}.uniui-notification-filled[data-v-b25a9929]:before{content:"\e6c1"}.uniui-wallet-filled[data-v-b25a9929]:before{content:"\e6c2"}.uniui-medal-filled[data-v-b25a9929]:before{content:"\e6c3"}.uniui-fire-filled[data-v-b25a9929]:before{content:"\e6c5"}.uniui-refreshempty[data-v-b25a9929]:before{content:"\e6bf"}.uniui-location-filled[data-v-b25a9929]:before{content:"\e6af"}.uniui-person-filled[data-v-b25a9929]:before{content:"\e69d"}.uniui-personadd-filled[data-v-b25a9929]:before{content:"\e698"}.uniui-arrowthinleft[data-v-b25a9929]:before{content:"\e6d2"}.uniui-arrowthinup[data-v-b25a9929]:before{content:"\e6d3"}.uniui-arrowthindown[data-v-b25a9929]:before{content:"\e6d4"}.uniui-back[data-v-b25a9929]:before{content:"\e6b9"}.uniui-forward[data-v-b25a9929]:before{content:"\e6ba"}.uniui-arrow-right[data-v-b25a9929]:before{content:"\e6bb"}.uniui-arrow-left[data-v-b25a9929]:before{content:"\e6bc"}.uniui-arrow-up[data-v-b25a9929]:before{content:"\e6bd"}.uniui-arrow-down[data-v-b25a9929]:before{content:"\e6be"}.uniui-arrowthinright[data-v-b25a9929]:before{content:"\e6d1"}.uniui-down[data-v-b25a9929]:before{content:"\e6b8"}.uniui-bottom[data-v-b25a9929]:before{content:"\e6b8"}.uniui-arrowright[data-v-b25a9929]:before{content:"\e6d5"}.uniui-right[data-v-b25a9929]:before{content:"\e6b5"}.uniui-up[data-v-b25a9929]:before{content:"\e6b6"}.uniui-top[data-v-b25a9929]:before{content:"\e6b6"}.uniui-left[data-v-b25a9929]:before{content:"\e6b7"}.uniui-arrowup[data-v-b25a9929]:before{content:"\e6d6"}.uniui-eye[data-v-b25a9929]:before{content:"\e651"}.uniui-eye-filled[data-v-b25a9929]:before{content:"\e66a"}.uniui-eye-slash[data-v-b25a9929]:before{content:"\e6b3"}.uniui-eye-slash-filled[data-v-b25a9929]:before{content:"\e6b4"}.uniui-info-filled[data-v-b25a9929]:before{content:"\e649"}.uniui-reload[data-v-b25a9929]:before{content:"\e6b2"}.uniui-micoff-filled[data-v-b25a9929]:before{content:"\e6b0"}.uniui-map-pin-ellipse[data-v-b25a9929]:before{content:"\e6ac"}.uniui-map-pin[data-v-b25a9929]:before{content:"\e6ad"}.uniui-location[data-v-b25a9929]:before{content:"\e6ae"}.uniui-starhalf[data-v-b25a9929]:before{content:"\e683"}.uniui-star[data-v-b25a9929]:before{content:"\e688"}.uniui-star-filled[data-v-b25a9929]:before{content:"\e68f"}.uniui-calendar[data-v-b25a9929]:before{content:"\e6a0"}.uniui-fire[data-v-b25a9929]:before{content:"\e6a1"}.uniui-medal[data-v-b25a9929]:before{content:"\e6a2"}.uniui-font[data-v-b25a9929]:before{content:"\e6a3"}.uniui-gift[data-v-b25a9929]:before{content:"\e6a4"}.uniui-link[data-v-b25a9929]:before{content:"\e6a5"}.uniui-notification[data-v-b25a9929]:before{content:"\e6a6"}.uniui-staff[data-v-b25a9929]:before{content:"\e6a7"}.uniui-vip[data-v-b25a9929]:before{content:"\e6a8"}.uniui-folder-add[data-v-b25a9929]:before{content:"\e6a9"}.uniui-tune[data-v-b25a9929]:before{content:"\e6aa"}.uniui-auth[data-v-b25a9929]:before{content:"\e6ab"}.uniui-person[data-v-b25a9929]:before{content:"\e699"}.uniui-email-filled[data-v-b25a9929]:before{content:"\e69a"}.uniui-phone-filled[data-v-b25a9929]:before{content:"\e69b"}.uniui-phone[data-v-b25a9929]:before{content:"\e69c"}.uniui-email[data-v-b25a9929]:before{content:"\e69e"}.uniui-personadd[data-v-b25a9929]:before{content:"\e69f"}.uniui-chatboxes-filled[data-v-b25a9929]:before{content:"\e692"}.uniui-contact[data-v-b25a9929]:before{content:"\e693"}.uniui-chatbubble-filled[data-v-b25a9929]:before{content:"\e694"}.uniui-contact-filled[data-v-b25a9929]:before{content:"\e695"}.uniui-chatboxes[data-v-b25a9929]:before{content:"\e696"}.uniui-chatbubble[data-v-b25a9929]:before{content:"\e697"}.uniui-upload-filled[data-v-b25a9929]:before{content:"\e68e"}.uniui-upload[data-v-b25a9929]:before{content:"\e690"}.uniui-weixin[data-v-b25a9929]:before{content:"\e691"}.uniui-compose[data-v-b25a9929]:before{content:"\e67f"}.uniui-qq[data-v-b25a9929]:before{content:"\e680"}.uniui-download-filled[data-v-b25a9929]:before{content:"\e681"}.uniui-pyq[data-v-b25a9929]:before{content:"\e682"}.uniui-sound[data-v-b25a9929]:before{content:"\e684"}.uniui-trash-filled[data-v-b25a9929]:before{content:"\e685"}.uniui-sound-filled[data-v-b25a9929]:before{content:"\e686"}.uniui-trash[data-v-b25a9929]:before{content:"\e687"}.uniui-videocam-filled[data-v-b25a9929]:before{content:"\e689"}.uniui-spinner-cycle[data-v-b25a9929]:before{content:"\e68a"}.uniui-weibo[data-v-b25a9929]:before{content:"\e68b"}.uniui-videocam[data-v-b25a9929]:before{content:"\e68c"}.uniui-download[data-v-b25a9929]:before{content:"\e68d"}.uniui-help[data-v-b25a9929]:before{content:"\e679"}.uniui-navigate-filled[data-v-b25a9929]:before{content:"\e67a"}.uniui-plusempty[data-v-b25a9929]:before{content:"\e67b"}.uniui-smallcircle[data-v-b25a9929]:before{content:"\e67c"}.uniui-minus-filled[data-v-b25a9929]:before{content:"\e67d"}.uniui-micoff[data-v-b25a9929]:before{content:"\e67e"}.uniui-closeempty[data-v-b25a9929]:before{content:"\e66c"}.uniui-clear[data-v-b25a9929]:before{content:"\e66d"}.uniui-navigate[data-v-b25a9929]:before{content:"\e66e"}.uniui-minus[data-v-b25a9929]:before{content:"\e66f"}.uniui-image[data-v-b25a9929]:before{content:"\e670"}.uniui-mic[data-v-b25a9929]:before{content:"\e671"}.uniui-paperplane[data-v-b25a9929]:before{content:"\e672"}.uniui-close[data-v-b25a9929]:before{content:"\e673"}.uniui-help-filled[data-v-b25a9929]:before{content:"\e674"}.uniui-paperplane-filled[data-v-b25a9929]:before{content:"\e675"}.uniui-plus[data-v-b25a9929]:before{content:"\e676"}.uniui-mic-filled[data-v-b25a9929]:before{content:"\e677"}.uniui-image-filled[data-v-b25a9929]:before{content:"\e678"}.uniui-locked-filled[data-v-b25a9929]:before{content:"\e668"}.uniui-info[data-v-b25a9929]:before{content:"\e669"}.uniui-locked[data-v-b25a9929]:before{content:"\e66b"}.uniui-camera-filled[data-v-b25a9929]:before{content:"\e658"}.uniui-chat-filled[data-v-b25a9929]:before{content:"\e659"}.uniui-camera[data-v-b25a9929]:before{content:"\e65a"}.uniui-circle[data-v-b25a9929]:before{content:"\e65b"}.uniui-checkmarkempty[data-v-b25a9929]:before{content:"\e65c"}.uniui-chat[data-v-b25a9929]:before{content:"\e65d"}.uniui-circle-filled[data-v-b25a9929]:before{content:"\e65e"}.uniui-flag[data-v-b25a9929]:before{content:"\e65f"}.uniui-flag-filled[data-v-b25a9929]:before{content:"\e660"}.uniui-gear-filled[data-v-b25a9929]:before{content:"\e661"}.uniui-home[data-v-b25a9929]:before{content:"\e662"}.uniui-home-filled[data-v-b25a9929]:before{content:"\e663"}.uniui-gear[data-v-b25a9929]:before{content:"\e664"}.uniui-smallcircle-filled[data-v-b25a9929]:before{content:"\e665"}.uniui-map-filled[data-v-b25a9929]:before{content:"\e666"}.uniui-map[data-v-b25a9929]:before{content:"\e667"}.uniui-refresh-filled[data-v-b25a9929]:before{content:"\e656"}.uniui-refresh[data-v-b25a9929]:before{content:"\e657"}.uniui-cloud-upload[data-v-b25a9929]:before{content:"\e645"}.uniui-cloud-download-filled[data-v-b25a9929]:before{content:"\e646"}.uniui-cloud-download[data-v-b25a9929]:before{content:"\e647"}.uniui-cloud-upload-filled[data-v-b25a9929]:before{content:"\e648"}.uniui-redo[data-v-b25a9929]:before{content:"\e64a"}.uniui-images-filled[data-v-b25a9929]:before{content:"\e64b"}.uniui-undo-filled[data-v-b25a9929]:before{content:"\e64c"}.uniui-more[data-v-b25a9929]:before{content:"\e64d"}.uniui-more-filled[data-v-b25a9929]:before{content:"\e64e"}.uniui-undo[data-v-b25a9929]:before{content:"\e64f"}.uniui-images[data-v-b25a9929]:before{content:"\e650"}.uniui-paperclip[data-v-b25a9929]:before{content:"\e652"}.uniui-settings[data-v-b25a9929]:before{content:"\e653"}.uniui-search[data-v-b25a9929]:before{content:"\e654"}.uniui-redo-filled[data-v-b25a9929]:before{content:"\e655"}.uniui-list[data-v-b25a9929]:before{content:"\e644"}.uniui-mail-open-filled[data-v-b25a9929]:before{content:"\e63a"}.uniui-hand-down-filled[data-v-b25a9929]:before{content:"\e63c"}.uniui-hand-down[data-v-b25a9929]:before{content:"\e63d"}.uniui-hand-up-filled[data-v-b25a9929]:before{content:"\e63e"}.uniui-hand-up[data-v-b25a9929]:before{content:"\e63f"}.uniui-heart-filled[data-v-b25a9929]:before{content:"\e641"}.uniui-mail-open[data-v-b25a9929]:before{content:"\e643"}.uniui-heart[data-v-b25a9929]:before{content:"\e639"}.uniui-loop[data-v-b25a9929]:before{content:"\e633"}.uniui-pulldown[data-v-b25a9929]:before{content:"\e632"}.uniui-scan[data-v-b25a9929]:before{content:"\e62a"}.uniui-bars[data-v-b25a9929]:before{content:"\e627"}.uniui-checkbox[data-v-b25a9929]:before{content:"\e62b"}.uniui-checkbox-filled[data-v-b25a9929]:before{content:"\e62c"}.uniui-shop[data-v-b25a9929]:before{content:"\e62f"}.uniui-headphones[data-v-b25a9929]:before{content:"\e630"}.uniui-cart[data-v-b25a9929]:before{content:"\e631"}@font-face{font-family:uniicons;src:url(../../assets/uniicons.32e978a5.ttf)}.uni-icons[data-v-b25a9929]{font-family:uniicons;text-decoration:none;text-align:center}.tabbar-page[data-v-d6fd7c06]{display:flex;flex-direction:column}.content-swiper[data-v-d6fd7c06]{width:100%;height:calc(100% - 3.125rem)}.tabpage-content[data-v-d6fd7c06]{display:flex;flex-direction:column;width:100%;height:100%}.tabpage-containner[data-v-d6fd7c06]{width:100%;height:100%;display:flex;align-items:center;flex-direction:column}.tabpage-header[data-v-d6fd7c06]{width:100%;display:flex;align-items:center;flex-shrink:0}.tabpage-header .iconfont[data-v-d6fd7c06]{font-size:1.5625rem;margin-right:.3125rem}.tabpage-title[data-v-d6fd7c06]{font-size:1.25rem}.tabpage-body[data-v-d6fd7c06]{width:100%;display:flex;flex:1;min-height:0;align-items:center;flex-direction:column;padding:.625rem;box-sizing:border-box}.group-info[data-v-d6fd7c06]{width:100%;height:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;flex-shrink:0}.group-name[data-v-d6fd7c06]{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.group-name .input[data-v-d6fd7c06]{width:100%;height:auto;padding:.625rem;box-sizing:border-box;border:.03125rem solid #007aff;border-radius:.9375rem}.group-member-wrapper[data-v-d6fd7c06]{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:.625rem;box-sizing:border-box;background-color:rgba(16,185,129,.05);border:.03125rem solid rgba(16,185,129,.2);border-radius:.9375rem;margin:.3125rem 0}.group-member-wrapper .member-title[data-v-d6fd7c06]{color:#059669;font-weight:700}.group-ismember-list[data-v-d6fd7c06]{display:flex;flex-wrap:wrap;margin-top:.3125rem;box-sizing:border-box;max-height:6.25rem;overflow-y:auto}.group-ismember-info[data-v-d6fd7c06]{padding:.3125rem .5rem;box-sizing:border-box;border:.03125rem solid rgba(16,185,129,.8);background-color:#fff;border-radius:.9375rem;margin:.15625rem .3125rem}.group-ismember-name[data-v-d6fd7c06]{font-size:.6875rem;color:#059669}.create-group-btn[data-v-d6fd7c06]{width:100%;background:#007aff;border-radius:.9375rem;padding:.625rem;box-sizing:border-box;font-weight:700;color:#fff;display:flex;justify-content:center;align-items:center;margin-bottom:.3125rem}.group-member[data-v-d6fd7c06]{display:flex;flex-direction:column;flex:1;min-height:0;padding:.3125rem;margin-top:.3125rem;box-sizing:border-box}.friend-list[data-v-d6fd7c06]{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.friend-card[data-v-d6fd7c06]{display:flex;justify-content:flex-start;align-items:center;width:100%;padding:.625rem;margin:.3125rem 0;box-sizing:border-box;border:.03125rem solid #aaaaff;border-radius:.9375rem}.friend-card-left[data-v-d6fd7c06]{flex-shrink:0;margin-right:.3125rem}.friend-avatar[data-v-d6fd7c06]{display:flex;justify-content:center;align-items:center;width:3.125rem;height:3.125rem;border-radius:50%;overflow:hidden}.friend-card-middle[data-v-d6fd7c06]{flex:1;height:auto;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.friend-name[data-v-d6fd7c06]{font-weight:500;font-size:1rem}.friend-card-right[data-v-d6fd7c06]{width:auto;flex-shrink:0;display:flex;justify-content:center;align-items:center}.friend-checkbox[data-v-d6fd7c06]{width:.9375rem;height:.9375rem;border-radius:.3125rem;display:flex;justify-content:center;align-items:center;border:.03125rem solid #3b86ff}.search-warpper[data-v-d6fd7c06]{width:100%;display:flex;align-items:center}.search-warpper .search-file-input[data-v-d6fd7c06]{flex:1;background-color:#f9fafb;border:.0625rem solid rgba(139,195,232,.2);padding:.625rem;margin-right:.625rem;height:auto;box-sizing:border-box;border-radius:.9375rem}.search-file-input.active[data-v-d6fd7c06]{background-color:#fff;box-shadow:0 0 .46875rem #aaf;border-color:#007aff}.search-warpper .iconfont[data-v-d6fd7c06]{flex-shrink:0;font-size:1.1875rem;font-weight:700;color:#fff;background-color:#007aff;padding:.5625rem;box-sizing:border-box;border-radius:.625rem}.search-result[data-v-d6fd7c06]{width:100%}.add-btn[data-v-d6fd7c06]{background:#3b86ff;color:#fff;font-size:14px;font-weight:500}.nickname-wrapper[data-v-d6fd7c06]{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;margin:.625rem 0;box-sizing:border-box}.input-nickname[data-v-d6fd7c06]{width:100%;height:auto;padding:.625rem;border:.03125rem solid #007aff;border-radius:.9375rem;margin:.625rem 0;box-sizing:border-box}.confirm-btn[data-v-d6fd7c06]{background:#3b86ff;color:#fff;font-size:16px;font-weight:500;padding:10px}.create-meeting-wrapper[data-v-d6fd7c06],.join-meeting-wrapper[data-v-d6fd7c06]{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:.625rem .9375rem;box-sizing:border-box}.input-meeting[data-v-d6fd7c06]{width:100%;height:auto;padding:.625rem;border:.03125rem solid #007aff;border-radius:.9375rem;margin:.3125rem 0;box-sizing:border-box}.meeting-btn[data-v-d6fd7c06]{width:100%;background:#007aff;margin:.3125rem 0;color:#fff}.meeting-field[data-v-d6fd7c06]{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.meeting-toggles[data-v-d6fd7c06]{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.meeting-toggles-item[data-v-d6fd7c06]{width:100%;display:flex;justify-content:space-between}.friend-option[data-v-d6fd7c06]{display:flex;justify-content:center;align-items:center}.agree-btn[data-v-d6fd7c06]{font-size:14px;font-weight:500;border:1px solid #3b86ff;color:#3b86ff;box-sizing:border-box}.friend-status[data-v-d6fd7c06]{font-size:14px;font-weight:500;padding:.25rem .625rem;border-radius:.9375rem}.friend-status.agreed[data-v-d6fd7c06]{color:#059669;background-color:rgba(16,185,129,.1)}.contact-list[data-v-d6fd7c06]{display:flex;height:100%;padding:.3125rem;margin-top:.3125rem;box-sizing:border-box}.bottom-tabbar[data-v-d6fd7c06]{width:100%;height:4.375rem;display:flex;justify-content:space-between;align-items:center;padding:.625rem;box-sizing:border-box;background:rgba(200,200,200,.1)}.tab-item[data-v-d6fd7c06]{display:flex;flex-direction:column;justify-content:center;align-items:center}.tab-label[data-v-d6fd7c06]{font-size:.875rem} diff --git a/unpackage/dist/build/app-plus/pages/UserProfileModal/UserProfileModal.css b/unpackage/dist/build/app-plus/pages/UserProfileModal/UserProfileModal.css index 65df7d2..139ae75 100644 --- a/unpackage/dist/build/app-plus/pages/UserProfileModal/UserProfileModal.css +++ b/unpackage/dist/build/app-plus/pages/UserProfileModal/UserProfileModal.css @@ -1 +1 @@ -.uniui-cart-filled[data-v-b25a9929]:before{content:"\e6d0"}.uniui-gift-filled[data-v-b25a9929]:before{content:"\e6c4"}.uniui-color[data-v-b25a9929]:before{content:"\e6cf"}.uniui-wallet[data-v-b25a9929]:before{content:"\e6b1"}.uniui-settings-filled[data-v-b25a9929]:before{content:"\e6ce"}.uniui-auth-filled[data-v-b25a9929]:before{content:"\e6cc"}.uniui-shop-filled[data-v-b25a9929]:before{content:"\e6cd"}.uniui-staff-filled[data-v-b25a9929]:before{content:"\e6cb"}.uniui-vip-filled[data-v-b25a9929]:before{content:"\e6c6"}.uniui-plus-filled[data-v-b25a9929]:before{content:"\e6c7"}.uniui-folder-add-filled[data-v-b25a9929]:before{content:"\e6c8"}.uniui-color-filled[data-v-b25a9929]:before{content:"\e6c9"}.uniui-tune-filled[data-v-b25a9929]:before{content:"\e6ca"}.uniui-calendar-filled[data-v-b25a9929]:before{content:"\e6c0"}.uniui-notification-filled[data-v-b25a9929]:before{content:"\e6c1"}.uniui-wallet-filled[data-v-b25a9929]:before{content:"\e6c2"}.uniui-medal-filled[data-v-b25a9929]:before{content:"\e6c3"}.uniui-fire-filled[data-v-b25a9929]:before{content:"\e6c5"}.uniui-refreshempty[data-v-b25a9929]:before{content:"\e6bf"}.uniui-location-filled[data-v-b25a9929]:before{content:"\e6af"}.uniui-person-filled[data-v-b25a9929]:before{content:"\e69d"}.uniui-personadd-filled[data-v-b25a9929]:before{content:"\e698"}.uniui-arrowthinleft[data-v-b25a9929]:before{content:"\e6d2"}.uniui-arrowthinup[data-v-b25a9929]:before{content:"\e6d3"}.uniui-arrowthindown[data-v-b25a9929]:before{content:"\e6d4"}.uniui-back[data-v-b25a9929]:before{content:"\e6b9"}.uniui-forward[data-v-b25a9929]:before{content:"\e6ba"}.uniui-arrow-right[data-v-b25a9929]:before{content:"\e6bb"}.uniui-arrow-left[data-v-b25a9929]:before{content:"\e6bc"}.uniui-arrow-up[data-v-b25a9929]:before{content:"\e6bd"}.uniui-arrow-down[data-v-b25a9929]:before{content:"\e6be"}.uniui-arrowthinright[data-v-b25a9929]:before{content:"\e6d1"}.uniui-down[data-v-b25a9929]:before{content:"\e6b8"}.uniui-bottom[data-v-b25a9929]:before{content:"\e6b8"}.uniui-arrowright[data-v-b25a9929]:before{content:"\e6d5"}.uniui-right[data-v-b25a9929]:before{content:"\e6b5"}.uniui-up[data-v-b25a9929]:before{content:"\e6b6"}.uniui-top[data-v-b25a9929]:before{content:"\e6b6"}.uniui-left[data-v-b25a9929]:before{content:"\e6b7"}.uniui-arrowup[data-v-b25a9929]:before{content:"\e6d6"}.uniui-eye[data-v-b25a9929]:before{content:"\e651"}.uniui-eye-filled[data-v-b25a9929]:before{content:"\e66a"}.uniui-eye-slash[data-v-b25a9929]:before{content:"\e6b3"}.uniui-eye-slash-filled[data-v-b25a9929]:before{content:"\e6b4"}.uniui-info-filled[data-v-b25a9929]:before{content:"\e649"}.uniui-reload[data-v-b25a9929]:before{content:"\e6b2"}.uniui-micoff-filled[data-v-b25a9929]:before{content:"\e6b0"}.uniui-map-pin-ellipse[data-v-b25a9929]:before{content:"\e6ac"}.uniui-map-pin[data-v-b25a9929]:before{content:"\e6ad"}.uniui-location[data-v-b25a9929]:before{content:"\e6ae"}.uniui-starhalf[data-v-b25a9929]:before{content:"\e683"}.uniui-star[data-v-b25a9929]:before{content:"\e688"}.uniui-star-filled[data-v-b25a9929]:before{content:"\e68f"}.uniui-calendar[data-v-b25a9929]:before{content:"\e6a0"}.uniui-fire[data-v-b25a9929]:before{content:"\e6a1"}.uniui-medal[data-v-b25a9929]:before{content:"\e6a2"}.uniui-font[data-v-b25a9929]:before{content:"\e6a3"}.uniui-gift[data-v-b25a9929]:before{content:"\e6a4"}.uniui-link[data-v-b25a9929]:before{content:"\e6a5"}.uniui-notification[data-v-b25a9929]:before{content:"\e6a6"}.uniui-staff[data-v-b25a9929]:before{content:"\e6a7"}.uniui-vip[data-v-b25a9929]:before{content:"\e6a8"}.uniui-folder-add[data-v-b25a9929]:before{content:"\e6a9"}.uniui-tune[data-v-b25a9929]:before{content:"\e6aa"}.uniui-auth[data-v-b25a9929]:before{content:"\e6ab"}.uniui-person[data-v-b25a9929]:before{content:"\e699"}.uniui-email-filled[data-v-b25a9929]:before{content:"\e69a"}.uniui-phone-filled[data-v-b25a9929]:before{content:"\e69b"}.uniui-phone[data-v-b25a9929]:before{content:"\e69c"}.uniui-email[data-v-b25a9929]:before{content:"\e69e"}.uniui-personadd[data-v-b25a9929]:before{content:"\e69f"}.uniui-chatboxes-filled[data-v-b25a9929]:before{content:"\e692"}.uniui-contact[data-v-b25a9929]:before{content:"\e693"}.uniui-chatbubble-filled[data-v-b25a9929]:before{content:"\e694"}.uniui-contact-filled[data-v-b25a9929]:before{content:"\e695"}.uniui-chatboxes[data-v-b25a9929]:before{content:"\e696"}.uniui-chatbubble[data-v-b25a9929]:before{content:"\e697"}.uniui-upload-filled[data-v-b25a9929]:before{content:"\e68e"}.uniui-upload[data-v-b25a9929]:before{content:"\e690"}.uniui-weixin[data-v-b25a9929]:before{content:"\e691"}.uniui-compose[data-v-b25a9929]:before{content:"\e67f"}.uniui-qq[data-v-b25a9929]:before{content:"\e680"}.uniui-download-filled[data-v-b25a9929]:before{content:"\e681"}.uniui-pyq[data-v-b25a9929]:before{content:"\e682"}.uniui-sound[data-v-b25a9929]:before{content:"\e684"}.uniui-trash-filled[data-v-b25a9929]:before{content:"\e685"}.uniui-sound-filled[data-v-b25a9929]:before{content:"\e686"}.uniui-trash[data-v-b25a9929]:before{content:"\e687"}.uniui-videocam-filled[data-v-b25a9929]:before{content:"\e689"}.uniui-spinner-cycle[data-v-b25a9929]:before{content:"\e68a"}.uniui-weibo[data-v-b25a9929]:before{content:"\e68b"}.uniui-videocam[data-v-b25a9929]:before{content:"\e68c"}.uniui-download[data-v-b25a9929]:before{content:"\e68d"}.uniui-help[data-v-b25a9929]:before{content:"\e679"}.uniui-navigate-filled[data-v-b25a9929]:before{content:"\e67a"}.uniui-plusempty[data-v-b25a9929]:before{content:"\e67b"}.uniui-smallcircle[data-v-b25a9929]:before{content:"\e67c"}.uniui-minus-filled[data-v-b25a9929]:before{content:"\e67d"}.uniui-micoff[data-v-b25a9929]:before{content:"\e67e"}.uniui-closeempty[data-v-b25a9929]:before{content:"\e66c"}.uniui-clear[data-v-b25a9929]:before{content:"\e66d"}.uniui-navigate[data-v-b25a9929]:before{content:"\e66e"}.uniui-minus[data-v-b25a9929]:before{content:"\e66f"}.uniui-image[data-v-b25a9929]:before{content:"\e670"}.uniui-mic[data-v-b25a9929]:before{content:"\e671"}.uniui-paperplane[data-v-b25a9929]:before{content:"\e672"}.uniui-close[data-v-b25a9929]:before{content:"\e673"}.uniui-help-filled[data-v-b25a9929]:before{content:"\e674"}.uniui-paperplane-filled[data-v-b25a9929]:before{content:"\e675"}.uniui-plus[data-v-b25a9929]:before{content:"\e676"}.uniui-mic-filled[data-v-b25a9929]:before{content:"\e677"}.uniui-image-filled[data-v-b25a9929]:before{content:"\e678"}.uniui-locked-filled[data-v-b25a9929]:before{content:"\e668"}.uniui-info[data-v-b25a9929]:before{content:"\e669"}.uniui-locked[data-v-b25a9929]:before{content:"\e66b"}.uniui-camera-filled[data-v-b25a9929]:before{content:"\e658"}.uniui-chat-filled[data-v-b25a9929]:before{content:"\e659"}.uniui-camera[data-v-b25a9929]:before{content:"\e65a"}.uniui-circle[data-v-b25a9929]:before{content:"\e65b"}.uniui-checkmarkempty[data-v-b25a9929]:before{content:"\e65c"}.uniui-chat[data-v-b25a9929]:before{content:"\e65d"}.uniui-circle-filled[data-v-b25a9929]:before{content:"\e65e"}.uniui-flag[data-v-b25a9929]:before{content:"\e65f"}.uniui-flag-filled[data-v-b25a9929]:before{content:"\e660"}.uniui-gear-filled[data-v-b25a9929]:before{content:"\e661"}.uniui-home[data-v-b25a9929]:before{content:"\e662"}.uniui-home-filled[data-v-b25a9929]:before{content:"\e663"}.uniui-gear[data-v-b25a9929]:before{content:"\e664"}.uniui-smallcircle-filled[data-v-b25a9929]:before{content:"\e665"}.uniui-map-filled[data-v-b25a9929]:before{content:"\e666"}.uniui-map[data-v-b25a9929]:before{content:"\e667"}.uniui-refresh-filled[data-v-b25a9929]:before{content:"\e656"}.uniui-refresh[data-v-b25a9929]:before{content:"\e657"}.uniui-cloud-upload[data-v-b25a9929]:before{content:"\e645"}.uniui-cloud-download-filled[data-v-b25a9929]:before{content:"\e646"}.uniui-cloud-download[data-v-b25a9929]:before{content:"\e647"}.uniui-cloud-upload-filled[data-v-b25a9929]:before{content:"\e648"}.uniui-redo[data-v-b25a9929]:before{content:"\e64a"}.uniui-images-filled[data-v-b25a9929]:before{content:"\e64b"}.uniui-undo-filled[data-v-b25a9929]:before{content:"\e64c"}.uniui-more[data-v-b25a9929]:before{content:"\e64d"}.uniui-more-filled[data-v-b25a9929]:before{content:"\e64e"}.uniui-undo[data-v-b25a9929]:before{content:"\e64f"}.uniui-images[data-v-b25a9929]:before{content:"\e650"}.uniui-paperclip[data-v-b25a9929]:before{content:"\e652"}.uniui-settings[data-v-b25a9929]:before{content:"\e653"}.uniui-search[data-v-b25a9929]:before{content:"\e654"}.uniui-redo-filled[data-v-b25a9929]:before{content:"\e655"}.uniui-list[data-v-b25a9929]:before{content:"\e644"}.uniui-mail-open-filled[data-v-b25a9929]:before{content:"\e63a"}.uniui-hand-down-filled[data-v-b25a9929]:before{content:"\e63c"}.uniui-hand-down[data-v-b25a9929]:before{content:"\e63d"}.uniui-hand-up-filled[data-v-b25a9929]:before{content:"\e63e"}.uniui-hand-up[data-v-b25a9929]:before{content:"\e63f"}.uniui-heart-filled[data-v-b25a9929]:before{content:"\e641"}.uniui-mail-open[data-v-b25a9929]:before{content:"\e643"}.uniui-heart[data-v-b25a9929]:before{content:"\e639"}.uniui-loop[data-v-b25a9929]:before{content:"\e633"}.uniui-pulldown[data-v-b25a9929]:before{content:"\e632"}.uniui-scan[data-v-b25a9929]:before{content:"\e62a"}.uniui-bars[data-v-b25a9929]:before{content:"\e627"}.uniui-checkbox[data-v-b25a9929]:before{content:"\e62b"}.uniui-checkbox-filled[data-v-b25a9929]:before{content:"\e62c"}.uniui-shop[data-v-b25a9929]:before{content:"\e62f"}.uniui-headphones[data-v-b25a9929]:before{content:"\e630"}.uniui-cart[data-v-b25a9929]:before{content:"\e631"}@font-face{font-family:uniicons;src:url(../../assets/uniicons.32e978a5.ttf)}.uni-icons[data-v-b25a9929]{font-family:uniicons;text-decoration:none;text-align:center}.user-profile[data-v-d1eea957]{display:flex;flex-direction:column;align-items:center;background-color:rgba(193,193,193,.1)}.modal-header[data-v-d1eea957]{position:relative;width:100%;height:auto;padding:.625rem;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.modal-header .modal-left[data-v-d1eea957]{display:flex;align-items:center;justify-content:center}.modal-header .modal-title[data-v-d1eea957]{display:flex;align-items:center;justify-content:center;position:absolute;width:100%;height:auto;left:50%;transform:translate(-50%)}.modal-header .modal-title .title-text[data-v-d1eea957]{font-size:16px;font-weight:500}.modal-header .modal-right[data-v-d1eea957]{display:flex;align-items:center;justify-content:center;size:1.25rem}.modal-header .modal-right .save-btn[data-v-d1eea957]{background-color:#3b82f6;color:#fff;padding:.25rem .625rem;box-sizing:border-box;border-radius:.3125rem}.modal-body[data-v-d1eea957]{width:100%;height:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1.5625rem;box-sizing:border-box}.modal-body .avatar-upload-section[data-v-d1eea957]{display:flex;justify-content:center;align-items:center;flex-direction:column;margin-bottom:.3125rem;box-sizing:border-box}.modal-body .avatar-upload-section .avatar-upload-container[data-v-d1eea957]{width:6.25rem;height:6.25rem;border-radius:50%;padding:.15625rem;margin-top:.625rem;background:#f3f4f6;display:flex;justify-content:center;align-items:center;border:.15625rem solid #dddddd;box-sizing:border-box}.modal-body .avatar-upload-section .avatar-upload-container .avatar-preview[data-v-d1eea957]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;border-radius:50%;overflow:hidden}.modal-body .avatar-upload-section .avatar-upload-container .avatar-preview uni-image[data-v-d1eea957]{width:100%;height:100%;object-fit:cover}.modal-body .avatar-upload-section .avatar-upload-container .avatar-placeholder[data-v-d1eea957]{display:flex;justify-content:center;align-items:center;padding:.3125rem;box-sizing:border-box;border-radius:50%;background:#9ca3af}.modal-body .form-card[data-v-d1eea957]{width:100%;padding:.625rem;background:#fff;box-sizing:border-box;border-radius:.625rem;margin:.625rem 0}.modal-body .form-field[data-v-d1eea957]{display:flex;justify-content:center;align-items:flex-start;flex-direction:column;margin:.625rem 0;width:100%}.modal-body .form-field .form-text[data-v-d1eea957]{font-size:15px;font-weight:300}.modal-body .form-field .form-field-input[data-v-d1eea957]{width:100%;height:2.5rem}.modal-body .form-field .edit-input-focus[data-v-d1eea957]{background:rgba(170,255,255,.1)}.modal-body .prompt-content[data-v-d1eea957]{width:100%;font-size:10px;color:#9ca3af} +.uniui-cart-filled[data-v-b25a9929]:before{content:"\e6d0"}.uniui-gift-filled[data-v-b25a9929]:before{content:"\e6c4"}.uniui-color[data-v-b25a9929]:before{content:"\e6cf"}.uniui-wallet[data-v-b25a9929]:before{content:"\e6b1"}.uniui-settings-filled[data-v-b25a9929]:before{content:"\e6ce"}.uniui-auth-filled[data-v-b25a9929]:before{content:"\e6cc"}.uniui-shop-filled[data-v-b25a9929]:before{content:"\e6cd"}.uniui-staff-filled[data-v-b25a9929]:before{content:"\e6cb"}.uniui-vip-filled[data-v-b25a9929]:before{content:"\e6c6"}.uniui-plus-filled[data-v-b25a9929]:before{content:"\e6c7"}.uniui-folder-add-filled[data-v-b25a9929]:before{content:"\e6c8"}.uniui-color-filled[data-v-b25a9929]:before{content:"\e6c9"}.uniui-tune-filled[data-v-b25a9929]:before{content:"\e6ca"}.uniui-calendar-filled[data-v-b25a9929]:before{content:"\e6c0"}.uniui-notification-filled[data-v-b25a9929]:before{content:"\e6c1"}.uniui-wallet-filled[data-v-b25a9929]:before{content:"\e6c2"}.uniui-medal-filled[data-v-b25a9929]:before{content:"\e6c3"}.uniui-fire-filled[data-v-b25a9929]:before{content:"\e6c5"}.uniui-refreshempty[data-v-b25a9929]:before{content:"\e6bf"}.uniui-location-filled[data-v-b25a9929]:before{content:"\e6af"}.uniui-person-filled[data-v-b25a9929]:before{content:"\e69d"}.uniui-personadd-filled[data-v-b25a9929]:before{content:"\e698"}.uniui-arrowthinleft[data-v-b25a9929]:before{content:"\e6d2"}.uniui-arrowthinup[data-v-b25a9929]:before{content:"\e6d3"}.uniui-arrowthindown[data-v-b25a9929]:before{content:"\e6d4"}.uniui-back[data-v-b25a9929]:before{content:"\e6b9"}.uniui-forward[data-v-b25a9929]:before{content:"\e6ba"}.uniui-arrow-right[data-v-b25a9929]:before{content:"\e6bb"}.uniui-arrow-left[data-v-b25a9929]:before{content:"\e6bc"}.uniui-arrow-up[data-v-b25a9929]:before{content:"\e6bd"}.uniui-arrow-down[data-v-b25a9929]:before{content:"\e6be"}.uniui-arrowthinright[data-v-b25a9929]:before{content:"\e6d1"}.uniui-down[data-v-b25a9929]:before{content:"\e6b8"}.uniui-bottom[data-v-b25a9929]:before{content:"\e6b8"}.uniui-arrowright[data-v-b25a9929]:before{content:"\e6d5"}.uniui-right[data-v-b25a9929]:before{content:"\e6b5"}.uniui-up[data-v-b25a9929]:before{content:"\e6b6"}.uniui-top[data-v-b25a9929]:before{content:"\e6b6"}.uniui-left[data-v-b25a9929]:before{content:"\e6b7"}.uniui-arrowup[data-v-b25a9929]:before{content:"\e6d6"}.uniui-eye[data-v-b25a9929]:before{content:"\e651"}.uniui-eye-filled[data-v-b25a9929]:before{content:"\e66a"}.uniui-eye-slash[data-v-b25a9929]:before{content:"\e6b3"}.uniui-eye-slash-filled[data-v-b25a9929]:before{content:"\e6b4"}.uniui-info-filled[data-v-b25a9929]:before{content:"\e649"}.uniui-reload[data-v-b25a9929]:before{content:"\e6b2"}.uniui-micoff-filled[data-v-b25a9929]:before{content:"\e6b0"}.uniui-map-pin-ellipse[data-v-b25a9929]:before{content:"\e6ac"}.uniui-map-pin[data-v-b25a9929]:before{content:"\e6ad"}.uniui-location[data-v-b25a9929]:before{content:"\e6ae"}.uniui-starhalf[data-v-b25a9929]:before{content:"\e683"}.uniui-star[data-v-b25a9929]:before{content:"\e688"}.uniui-star-filled[data-v-b25a9929]:before{content:"\e68f"}.uniui-calendar[data-v-b25a9929]:before{content:"\e6a0"}.uniui-fire[data-v-b25a9929]:before{content:"\e6a1"}.uniui-medal[data-v-b25a9929]:before{content:"\e6a2"}.uniui-font[data-v-b25a9929]:before{content:"\e6a3"}.uniui-gift[data-v-b25a9929]:before{content:"\e6a4"}.uniui-link[data-v-b25a9929]:before{content:"\e6a5"}.uniui-notification[data-v-b25a9929]:before{content:"\e6a6"}.uniui-staff[data-v-b25a9929]:before{content:"\e6a7"}.uniui-vip[data-v-b25a9929]:before{content:"\e6a8"}.uniui-folder-add[data-v-b25a9929]:before{content:"\e6a9"}.uniui-tune[data-v-b25a9929]:before{content:"\e6aa"}.uniui-auth[data-v-b25a9929]:before{content:"\e6ab"}.uniui-person[data-v-b25a9929]:before{content:"\e699"}.uniui-email-filled[data-v-b25a9929]:before{content:"\e69a"}.uniui-phone-filled[data-v-b25a9929]:before{content:"\e69b"}.uniui-phone[data-v-b25a9929]:before{content:"\e69c"}.uniui-email[data-v-b25a9929]:before{content:"\e69e"}.uniui-personadd[data-v-b25a9929]:before{content:"\e69f"}.uniui-chatboxes-filled[data-v-b25a9929]:before{content:"\e692"}.uniui-contact[data-v-b25a9929]:before{content:"\e693"}.uniui-chatbubble-filled[data-v-b25a9929]:before{content:"\e694"}.uniui-contact-filled[data-v-b25a9929]:before{content:"\e695"}.uniui-chatboxes[data-v-b25a9929]:before{content:"\e696"}.uniui-chatbubble[data-v-b25a9929]:before{content:"\e697"}.uniui-upload-filled[data-v-b25a9929]:before{content:"\e68e"}.uniui-upload[data-v-b25a9929]:before{content:"\e690"}.uniui-weixin[data-v-b25a9929]:before{content:"\e691"}.uniui-compose[data-v-b25a9929]:before{content:"\e67f"}.uniui-qq[data-v-b25a9929]:before{content:"\e680"}.uniui-download-filled[data-v-b25a9929]:before{content:"\e681"}.uniui-pyq[data-v-b25a9929]:before{content:"\e682"}.uniui-sound[data-v-b25a9929]:before{content:"\e684"}.uniui-trash-filled[data-v-b25a9929]:before{content:"\e685"}.uniui-sound-filled[data-v-b25a9929]:before{content:"\e686"}.uniui-trash[data-v-b25a9929]:before{content:"\e687"}.uniui-videocam-filled[data-v-b25a9929]:before{content:"\e689"}.uniui-spinner-cycle[data-v-b25a9929]:before{content:"\e68a"}.uniui-weibo[data-v-b25a9929]:before{content:"\e68b"}.uniui-videocam[data-v-b25a9929]:before{content:"\e68c"}.uniui-download[data-v-b25a9929]:before{content:"\e68d"}.uniui-help[data-v-b25a9929]:before{content:"\e679"}.uniui-navigate-filled[data-v-b25a9929]:before{content:"\e67a"}.uniui-plusempty[data-v-b25a9929]:before{content:"\e67b"}.uniui-smallcircle[data-v-b25a9929]:before{content:"\e67c"}.uniui-minus-filled[data-v-b25a9929]:before{content:"\e67d"}.uniui-micoff[data-v-b25a9929]:before{content:"\e67e"}.uniui-closeempty[data-v-b25a9929]:before{content:"\e66c"}.uniui-clear[data-v-b25a9929]:before{content:"\e66d"}.uniui-navigate[data-v-b25a9929]:before{content:"\e66e"}.uniui-minus[data-v-b25a9929]:before{content:"\e66f"}.uniui-image[data-v-b25a9929]:before{content:"\e670"}.uniui-mic[data-v-b25a9929]:before{content:"\e671"}.uniui-paperplane[data-v-b25a9929]:before{content:"\e672"}.uniui-close[data-v-b25a9929]:before{content:"\e673"}.uniui-help-filled[data-v-b25a9929]:before{content:"\e674"}.uniui-paperplane-filled[data-v-b25a9929]:before{content:"\e675"}.uniui-plus[data-v-b25a9929]:before{content:"\e676"}.uniui-mic-filled[data-v-b25a9929]:before{content:"\e677"}.uniui-image-filled[data-v-b25a9929]:before{content:"\e678"}.uniui-locked-filled[data-v-b25a9929]:before{content:"\e668"}.uniui-info[data-v-b25a9929]:before{content:"\e669"}.uniui-locked[data-v-b25a9929]:before{content:"\e66b"}.uniui-camera-filled[data-v-b25a9929]:before{content:"\e658"}.uniui-chat-filled[data-v-b25a9929]:before{content:"\e659"}.uniui-camera[data-v-b25a9929]:before{content:"\e65a"}.uniui-circle[data-v-b25a9929]:before{content:"\e65b"}.uniui-checkmarkempty[data-v-b25a9929]:before{content:"\e65c"}.uniui-chat[data-v-b25a9929]:before{content:"\e65d"}.uniui-circle-filled[data-v-b25a9929]:before{content:"\e65e"}.uniui-flag[data-v-b25a9929]:before{content:"\e65f"}.uniui-flag-filled[data-v-b25a9929]:before{content:"\e660"}.uniui-gear-filled[data-v-b25a9929]:before{content:"\e661"}.uniui-home[data-v-b25a9929]:before{content:"\e662"}.uniui-home-filled[data-v-b25a9929]:before{content:"\e663"}.uniui-gear[data-v-b25a9929]:before{content:"\e664"}.uniui-smallcircle-filled[data-v-b25a9929]:before{content:"\e665"}.uniui-map-filled[data-v-b25a9929]:before{content:"\e666"}.uniui-map[data-v-b25a9929]:before{content:"\e667"}.uniui-refresh-filled[data-v-b25a9929]:before{content:"\e656"}.uniui-refresh[data-v-b25a9929]:before{content:"\e657"}.uniui-cloud-upload[data-v-b25a9929]:before{content:"\e645"}.uniui-cloud-download-filled[data-v-b25a9929]:before{content:"\e646"}.uniui-cloud-download[data-v-b25a9929]:before{content:"\e647"}.uniui-cloud-upload-filled[data-v-b25a9929]:before{content:"\e648"}.uniui-redo[data-v-b25a9929]:before{content:"\e64a"}.uniui-images-filled[data-v-b25a9929]:before{content:"\e64b"}.uniui-undo-filled[data-v-b25a9929]:before{content:"\e64c"}.uniui-more[data-v-b25a9929]:before{content:"\e64d"}.uniui-more-filled[data-v-b25a9929]:before{content:"\e64e"}.uniui-undo[data-v-b25a9929]:before{content:"\e64f"}.uniui-images[data-v-b25a9929]:before{content:"\e650"}.uniui-paperclip[data-v-b25a9929]:before{content:"\e652"}.uniui-settings[data-v-b25a9929]:before{content:"\e653"}.uniui-search[data-v-b25a9929]:before{content:"\e654"}.uniui-redo-filled[data-v-b25a9929]:before{content:"\e655"}.uniui-list[data-v-b25a9929]:before{content:"\e644"}.uniui-mail-open-filled[data-v-b25a9929]:before{content:"\e63a"}.uniui-hand-down-filled[data-v-b25a9929]:before{content:"\e63c"}.uniui-hand-down[data-v-b25a9929]:before{content:"\e63d"}.uniui-hand-up-filled[data-v-b25a9929]:before{content:"\e63e"}.uniui-hand-up[data-v-b25a9929]:before{content:"\e63f"}.uniui-heart-filled[data-v-b25a9929]:before{content:"\e641"}.uniui-mail-open[data-v-b25a9929]:before{content:"\e643"}.uniui-heart[data-v-b25a9929]:before{content:"\e639"}.uniui-loop[data-v-b25a9929]:before{content:"\e633"}.uniui-pulldown[data-v-b25a9929]:before{content:"\e632"}.uniui-scan[data-v-b25a9929]:before{content:"\e62a"}.uniui-bars[data-v-b25a9929]:before{content:"\e627"}.uniui-checkbox[data-v-b25a9929]:before{content:"\e62b"}.uniui-checkbox-filled[data-v-b25a9929]:before{content:"\e62c"}.uniui-shop[data-v-b25a9929]:before{content:"\e62f"}.uniui-headphones[data-v-b25a9929]:before{content:"\e630"}.uniui-cart[data-v-b25a9929]:before{content:"\e631"}@font-face{font-family:uniicons;src:url(../../assets/uniicons.32e978a5.ttf)}.uni-icons[data-v-b25a9929]{font-family:uniicons;text-decoration:none;text-align:center}.user-profile[data-v-8fad524d]{display:flex;flex-direction:column;align-items:center;background-color:rgba(193,193,193,.1)}.modal-header[data-v-8fad524d]{position:relative;width:100%;height:auto;padding:.625rem;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.modal-header .modal-left[data-v-8fad524d]{display:flex;align-items:center;justify-content:center;z-index:2}.modal-header .modal-title[data-v-8fad524d]{display:flex;align-items:center;justify-content:center;position:absolute;width:100%;height:auto;left:50%;transform:translate(-50%)}.modal-header .modal-title .title-text[data-v-8fad524d]{font-size:16px;font-weight:500}.modal-header .modal-right[data-v-8fad524d]{display:flex;align-items:center;justify-content:center;size:1.25rem;z-index:2}.modal-header .modal-right .save-btn[data-v-8fad524d]{background-color:#3b82f6;color:#fff;padding:.25rem .625rem;box-sizing:border-box;border-radius:.3125rem}.modal-body[data-v-8fad524d]{width:100%;height:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1.5625rem;box-sizing:border-box}.modal-body .avatar-upload-section[data-v-8fad524d]{display:flex;justify-content:center;align-items:center;flex-direction:column;margin-bottom:.3125rem;box-sizing:border-box}.modal-body .avatar-upload-section .avatar-upload-container[data-v-8fad524d]{width:6.25rem;height:6.25rem;border-radius:50%;padding:.15625rem;margin-top:.625rem;background:#f3f4f6;display:flex;justify-content:center;align-items:center;border:.15625rem solid #dddddd;box-sizing:border-box}.modal-body .avatar-upload-section .avatar-upload-container .avatar-preview[data-v-8fad524d]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;border-radius:50%;overflow:hidden}.modal-body .avatar-upload-section .avatar-upload-container .avatar-preview uni-image[data-v-8fad524d]{width:100%;height:100%;object-fit:cover}.modal-body .avatar-upload-section .avatar-upload-container .avatar-placeholder[data-v-8fad524d]{display:flex;justify-content:center;align-items:center;padding:.3125rem;box-sizing:border-box;border-radius:50%;background:#9ca3af}.modal-body .form-card[data-v-8fad524d]{width:100%;padding:.625rem;background:#fff;box-sizing:border-box;border-radius:.625rem;margin:.625rem 0}.modal-body .form-field[data-v-8fad524d]{display:flex;justify-content:center;align-items:flex-start;flex-direction:column;margin:.625rem 0;width:100%}.modal-body .form-field .form-text[data-v-8fad524d]{font-size:15px;font-weight:300}.modal-body .form-field .form-field-input[data-v-8fad524d]{width:100%;height:2.5rem}.modal-body .form-field .edit-input-focus[data-v-8fad524d]{background:rgba(170,255,255,.1)}.modal-body .prompt-content[data-v-8fad524d]{width:100%;font-size:10px;color:#9ca3af} diff --git a/unpackage/dist/build/app-plus/pages/WorkSpace/TemplateSpace/TemplateSpace.css b/unpackage/dist/build/app-plus/pages/WorkSpace/TemplateSpace/TemplateSpace.css index cadb516..dfd706b 100644 --- a/unpackage/dist/build/app-plus/pages/WorkSpace/TemplateSpace/TemplateSpace.css +++ b/unpackage/dist/build/app-plus/pages/WorkSpace/TemplateSpace/TemplateSpace.css @@ -1 +1 @@ -.workspace-container[data-v-2acd55d4]{display:flex;flex-direction:column;background:rgba(140,140,140,.1)}.workspace-text[data-v-2acd55d4]{color:#0073ff;font-weight:700}.workspace-header[data-v-2acd55d4]{width:100%;display:flex;flex-shrink:0;flex-direction:column;align-items:center;padding:.5rem 0;box-sizing:border-box;border-bottom:.03125rem solid #ddd}.custom-navbar[data-v-2acd55d4]{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.625rem .3125rem;box-sizing:border-box;position:relative}.navbar-left[data-v-2acd55d4]{display:flex;justify-content:center;align-items:center}.navbar-before-title[data-v-2acd55d4]{display:flex;justify-content:center;align-items:center;text-align:center}.navbar-title[data-v-2acd55d4]{display:flex;flex:1;justify-content:center;align-items:center;position:absolute;left:50%;transform:translate(-50%)}.navbar-right[data-v-2acd55d4]{display:flex;justify-content:center;align-items:center;margin-right:.625rem;box-sizing:border-box}.navbar-right .menu-open[data-v-2acd55d4]{color:#3ab0ff!important;font-size:1.25rem!important}.custom-navbar-icon[data-v-2acd55d4]{color:#0073ff!important;font-size:1.25rem!important}.search-file-warpper[data-v-2acd55d4]{display:flex;width:90%;align-items:center}.search-file[data-v-2acd55d4]{display:flex;flex:1;align-items:center;background:#fff;padding:.5rem;box-sizing:border-box;border-radius:.9375rem}.icon-sousuo[data-v-2acd55d4]{font-weight:700}.search-file-input[data-v-2acd55d4]{margin-left:.625rem}.cancel-search[data-v-2acd55d4]{display:flex;flex-shrink:0;padding:0 0 0 .625rem;box-sizing:border-box;color:#0073ff}.workspace-content[data-v-2acd55d4]{width:100%;display:block;flex:1;overflow:auto;box-sizing:border-box;position:relative}.menu-card[data-v-2acd55d4]{position:absolute;top:100%;right:.625rem;width:9.375rem;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff;border-radius:.9375rem;z-index:1}.menu-card-item[data-v-2acd55d4]{width:100%;padding:.625rem;box-sizing:border-box}.folder-null[data-v-2acd55d4]{width:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;position:absolute;left:50%;top:30%;transform:translate(-50%);font-size:1rem}.folder-null .iconfont[data-v-2acd55d4]{font-size:5.625rem}.folder-grid[data-v-2acd55d4]{width:100%;display:grid;grid-template-columns:repeat(3,1fr);padding:.625rem;box-sizing:border-box;gap:.625rem;align-items:start}.folder-item[data-v-2acd55d4]{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative}.folder-item.select-folder[data-v-2acd55d4]{border-radius:.9375rem;background:rgba(9,9,9,.1)}.folder-item-style[data-v-2acd55d4]{font-size:5rem!important;font-weight:.3125rem!important;color:#3ab0ff!important}.folder-checkbox[data-v-2acd55d4]{width:1.5625rem;height:1.5625rem;border:.1875rem solid #fff;border-radius:50%;box-shadow:0 .0625rem .09375rem #333;background:rgba(255,255,255,.2);box-sizing:border-box;position:absolute;left:50%;top:30%;transform:translate(-50%);display:flex;justify-content:center;align-items:center}.folder-checkbox.select-folder[data-v-2acd55d4]{background-color:#0073ff}.workspace-footer[data-v-2acd55d4]{width:100%;display:flex;flex-shrink:0;justify-content:space-between;padding:.9375rem;box-sizing:border-box;color:#999;background:#eee}.workspace-footer.folder-actions[data-v-2acd55d4]{color:#0073ff}.workspace-footer .iconfont[data-v-2acd55d4]{font-size:1.25rem!important}.template-grid[data-v-2acd55d4]{width:100%;display:grid;grid-template-columns:repeat(2,1fr);padding:.625rem;box-sizing:border-box;gap:.625rem;align-items:start}.template-card[data-v-2acd55d4]{display:flex;flex-direction:column;box-sizing:border-box;border-radius:.625rem;border:.03125rem solid #ddd;box-shadow:0 .0625rem .375rem rgba(0,0,0,.05);overflow:hidden;background-color:#fff}.template-name[data-v-2acd55d4]{width:100%;background:linear-gradient(to right,rgba(0,122,255,.8),rgba(170,170,255,.8));color:#fff;font-weight:700;font-size:18px;padding:.3125rem .625rem;box-sizing:border-box}.template-content[data-v-2acd55d4]{display:flex;flex-wrap:wrap;min-height:6.25rem;padding:.5625rem;margin:.1875rem .1875rem 0;box-sizing:border-box;border:1px solid #eee;border-radius:.625rem;box-shadow:.0625rem .15625rem .25rem rgba(170,170,255,.3);overflow:hidden}.template-content-text[data-v-2acd55d4]{width:100%;color:#666;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:1.4}.template-info-wrapper[data-v-2acd55d4]{padding:0 .5rem}.template-item[data-v-2acd55d4]{display:flex;flex-direction:column;color:#007aff;font-size:12px}.template-item .background-style[data-v-2acd55d4]{display:flex;box-sizing:border-box;border-radius:.3125rem;align-self:flex-start;margin-top:.1875rem}.template-option[data-v-2acd55d4]{display:flex;justify-content:space-between;align-items:center;margin:.3125rem}.template-option .iconfont[data-v-2acd55d4]{color:#007aff}.iconfont.icon-favorite-fill[data-v-2acd55d4]{color:#fa0} +.create-folder-name[data-v-2acd55d4]{display:flex;width:100%;padding:.3125rem .625rem;box-sizing:border-box;align-items:center;background-color:rgba(194,191,211,.1);border-radius:.3125rem}.create-folder-name uni-input[data-v-2acd55d4]{box-sizing:border-box;width:100%}.create-folder-name.has-value[data-v-2acd55d4]{background-color:#fff;border:.0625rem solid #aaaaff;box-shadow:0 0 .46875rem #aaf}.new-folder-name[data-v-2acd55d4]{font-size:.875rem;color:#666;margin-bottom:.375rem}.nf-path-label[data-v-2acd55d4]{font-size:.8125rem;color:#999;margin-top:.75rem;margin-bottom:.25rem}.nf-path-display[data-v-2acd55d4]{font-size:.875rem;color:#333;padding:.375rem .625rem;background:#f5f5f5;border-radius:.3125rem;word-break:break-all}.nf-path-preview[data-v-2acd55d4]{font-size:.875rem;color:#0073ff;padding:.375rem .625rem;background:rgba(0,115,255,.05);border:.0625rem dashed rgba(0,115,255,.3);border-radius:.3125rem;word-break:break-all}.option-wrapper[data-v-2acd55d4]{display:flex;justify-content:space-between;gap:.625rem;margin-top:1.25rem}.opt-btn[data-v-2acd55d4]{flex:1;display:flex;justify-content:center;align-items:center;padding:.75rem 0;border-radius:.375rem;font-size:.9375rem}.opt-cancel[data-v-2acd55d4]{background:#f5f5f5;color:#666}.opt-confirm[data-v-2acd55d4]{background:linear-gradient(135deg,#0073ff,#3ab0ff);color:#fff}.workspace-container[data-v-2acd55d4]{display:flex;flex-direction:column;background:rgba(140,140,140,.1)}.workspace-text[data-v-2acd55d4]{color:#0073ff;font-weight:700}.workspace-header[data-v-2acd55d4]{width:100%;display:flex;flex-shrink:0;flex-direction:column;align-items:center;padding:.5rem 0;box-sizing:border-box;border-bottom:.03125rem solid #ddd}.custom-navbar[data-v-2acd55d4]{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.625rem .3125rem;box-sizing:border-box;position:relative}.navbar-left[data-v-2acd55d4]{display:flex;justify-content:center;align-items:center}.navbar-before-title[data-v-2acd55d4]{display:flex;justify-content:center;align-items:center;text-align:center}.navbar-title[data-v-2acd55d4]{display:flex;flex:1;justify-content:center;align-items:center;position:absolute;left:50%;transform:translate(-50%)}.navbar-right[data-v-2acd55d4]{display:flex;justify-content:center;align-items:center;margin-right:.625rem;box-sizing:border-box}.navbar-right .menu-open[data-v-2acd55d4]{color:#3ab0ff!important;font-size:1.25rem!important}.custom-navbar-icon[data-v-2acd55d4]{color:#0073ff!important;font-size:1.25rem!important}.search-file-warpper[data-v-2acd55d4]{display:flex;width:90%;align-items:center}.search-file[data-v-2acd55d4]{display:flex;flex:1;align-items:center;background:#fff;padding:.5rem;box-sizing:border-box;border-radius:.9375rem}.icon-sousuo[data-v-2acd55d4]{font-weight:700}.search-file-input[data-v-2acd55d4]{margin-left:.625rem}.cancel-search[data-v-2acd55d4]{display:flex;flex-shrink:0;padding:0 0 0 .625rem;box-sizing:border-box;color:#0073ff}.workspace-content[data-v-2acd55d4]{width:100%;display:block;flex:1;overflow:auto;box-sizing:border-box;position:relative}.menu-card[data-v-2acd55d4]{position:absolute;top:100%;right:.625rem;width:9.375rem;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff;border-radius:.9375rem;z-index:1}.menu-card-item[data-v-2acd55d4]{width:100%;padding:.625rem;box-sizing:border-box}.folder-null[data-v-2acd55d4]{width:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;position:absolute;left:50%;top:30%;transform:translate(-50%);font-size:1rem}.folder-null .iconfont[data-v-2acd55d4]{font-size:5.625rem}.folder-grid[data-v-2acd55d4]{width:100%;display:grid;grid-template-columns:repeat(3,1fr);padding:.625rem;box-sizing:border-box;gap:.625rem;align-items:start}.folder-item[data-v-2acd55d4]{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;min-width:0}.folder-item.select-folder[data-v-2acd55d4]{border-radius:.9375rem;background:rgba(9,9,9,.1)}.folder-item .folder-name[data-v-2acd55d4]{max-width:4.6875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;text-align:center;line-height:1.25rem;min-width:0}.folder-item-style[data-v-2acd55d4]{font-size:5rem!important;font-weight:.3125rem!important;color:#3ab0ff!important}.folder-checkbox[data-v-2acd55d4]{width:1.5625rem;height:1.5625rem;border:.1875rem solid #fff;border-radius:50%;box-shadow:0 .0625rem .09375rem #333;background:rgba(255,255,255,.2);box-sizing:border-box;position:absolute;left:50%;top:30%;transform:translate(-50%);display:flex;justify-content:center;align-items:center}.folder-checkbox.select-folder[data-v-2acd55d4]{background-color:#0073ff}.workspace-footer[data-v-2acd55d4]{width:100%;display:flex;flex-shrink:0;justify-content:space-between;padding:.9375rem;box-sizing:border-box;color:#999;background:#eee}.workspace-footer.folder-actions[data-v-2acd55d4]{color:#0073ff}.workspace-footer .iconfont[data-v-2acd55d4]{font-size:1.25rem!important}.template-grid[data-v-2acd55d4]{width:100%;display:grid;grid-template-columns:repeat(2,1fr);padding:.625rem;box-sizing:border-box;gap:.625rem;align-items:start}.template-card[data-v-2acd55d4]{display:flex;flex-direction:column;box-sizing:border-box;border-radius:.625rem;border:.03125rem solid #ddd;box-shadow:0 .0625rem .375rem rgba(0,0,0,.05);overflow:hidden;background-color:#fff}.template-name[data-v-2acd55d4]{width:100%;background:linear-gradient(to right,rgba(0,122,255,.8),rgba(170,170,255,.8));color:#fff;font-weight:700;font-size:18px;padding:.3125rem .625rem;box-sizing:border-box}.template-content[data-v-2acd55d4]{display:flex;flex-wrap:wrap;min-height:6.25rem;padding:.5625rem;margin:.1875rem .1875rem 0;box-sizing:border-box;border:1px solid #eee;border-radius:.625rem;box-shadow:.0625rem .15625rem .25rem rgba(170,170,255,.3);overflow:hidden}.template-content-text[data-v-2acd55d4]{width:100%;color:#666;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:1.4}.template-info-wrapper[data-v-2acd55d4]{padding:0 .5rem}.template-item[data-v-2acd55d4]{display:flex;flex-direction:column;color:#007aff;font-size:12px}.template-item .background-style[data-v-2acd55d4]{display:flex;box-sizing:border-box;border-radius:.3125rem;align-self:flex-start;margin-top:.1875rem}.template-option[data-v-2acd55d4]{display:flex;justify-content:space-between;align-items:center;margin:.3125rem}.template-option .iconfont[data-v-2acd55d4]{color:#007aff}.iconfont.icon-favorite-fill[data-v-2acd55d4]{color:#fa0} diff --git a/unpackage/dist/build/app-plus/pages/WorkSpace/WorkSpace.css b/unpackage/dist/build/app-plus/pages/WorkSpace/WorkSpace.css index 862fcc6..525c5cc 100644 --- a/unpackage/dist/build/app-plus/pages/WorkSpace/WorkSpace.css +++ b/unpackage/dist/build/app-plus/pages/WorkSpace/WorkSpace.css @@ -1 +1 @@ -.uniui-cart-filled[data-v-b25a9929]:before{content:"\e6d0"}.uniui-gift-filled[data-v-b25a9929]:before{content:"\e6c4"}.uniui-color[data-v-b25a9929]:before{content:"\e6cf"}.uniui-wallet[data-v-b25a9929]:before{content:"\e6b1"}.uniui-settings-filled[data-v-b25a9929]:before{content:"\e6ce"}.uniui-auth-filled[data-v-b25a9929]:before{content:"\e6cc"}.uniui-shop-filled[data-v-b25a9929]:before{content:"\e6cd"}.uniui-staff-filled[data-v-b25a9929]:before{content:"\e6cb"}.uniui-vip-filled[data-v-b25a9929]:before{content:"\e6c6"}.uniui-plus-filled[data-v-b25a9929]:before{content:"\e6c7"}.uniui-folder-add-filled[data-v-b25a9929]:before{content:"\e6c8"}.uniui-color-filled[data-v-b25a9929]:before{content:"\e6c9"}.uniui-tune-filled[data-v-b25a9929]:before{content:"\e6ca"}.uniui-calendar-filled[data-v-b25a9929]:before{content:"\e6c0"}.uniui-notification-filled[data-v-b25a9929]:before{content:"\e6c1"}.uniui-wallet-filled[data-v-b25a9929]:before{content:"\e6c2"}.uniui-medal-filled[data-v-b25a9929]:before{content:"\e6c3"}.uniui-fire-filled[data-v-b25a9929]:before{content:"\e6c5"}.uniui-refreshempty[data-v-b25a9929]:before{content:"\e6bf"}.uniui-location-filled[data-v-b25a9929]:before{content:"\e6af"}.uniui-person-filled[data-v-b25a9929]:before{content:"\e69d"}.uniui-personadd-filled[data-v-b25a9929]:before{content:"\e698"}.uniui-arrowthinleft[data-v-b25a9929]:before{content:"\e6d2"}.uniui-arrowthinup[data-v-b25a9929]:before{content:"\e6d3"}.uniui-arrowthindown[data-v-b25a9929]:before{content:"\e6d4"}.uniui-back[data-v-b25a9929]:before{content:"\e6b9"}.uniui-forward[data-v-b25a9929]:before{content:"\e6ba"}.uniui-arrow-right[data-v-b25a9929]:before{content:"\e6bb"}.uniui-arrow-left[data-v-b25a9929]:before{content:"\e6bc"}.uniui-arrow-up[data-v-b25a9929]:before{content:"\e6bd"}.uniui-arrow-down[data-v-b25a9929]:before{content:"\e6be"}.uniui-arrowthinright[data-v-b25a9929]:before{content:"\e6d1"}.uniui-down[data-v-b25a9929]:before{content:"\e6b8"}.uniui-bottom[data-v-b25a9929]:before{content:"\e6b8"}.uniui-arrowright[data-v-b25a9929]:before{content:"\e6d5"}.uniui-right[data-v-b25a9929]:before{content:"\e6b5"}.uniui-up[data-v-b25a9929]:before{content:"\e6b6"}.uniui-top[data-v-b25a9929]:before{content:"\e6b6"}.uniui-left[data-v-b25a9929]:before{content:"\e6b7"}.uniui-arrowup[data-v-b25a9929]:before{content:"\e6d6"}.uniui-eye[data-v-b25a9929]:before{content:"\e651"}.uniui-eye-filled[data-v-b25a9929]:before{content:"\e66a"}.uniui-eye-slash[data-v-b25a9929]:before{content:"\e6b3"}.uniui-eye-slash-filled[data-v-b25a9929]:before{content:"\e6b4"}.uniui-info-filled[data-v-b25a9929]:before{content:"\e649"}.uniui-reload[data-v-b25a9929]:before{content:"\e6b2"}.uniui-micoff-filled[data-v-b25a9929]:before{content:"\e6b0"}.uniui-map-pin-ellipse[data-v-b25a9929]:before{content:"\e6ac"}.uniui-map-pin[data-v-b25a9929]:before{content:"\e6ad"}.uniui-location[data-v-b25a9929]:before{content:"\e6ae"}.uniui-starhalf[data-v-b25a9929]:before{content:"\e683"}.uniui-star[data-v-b25a9929]:before{content:"\e688"}.uniui-star-filled[data-v-b25a9929]:before{content:"\e68f"}.uniui-calendar[data-v-b25a9929]:before{content:"\e6a0"}.uniui-fire[data-v-b25a9929]:before{content:"\e6a1"}.uniui-medal[data-v-b25a9929]:before{content:"\e6a2"}.uniui-font[data-v-b25a9929]:before{content:"\e6a3"}.uniui-gift[data-v-b25a9929]:before{content:"\e6a4"}.uniui-link[data-v-b25a9929]:before{content:"\e6a5"}.uniui-notification[data-v-b25a9929]:before{content:"\e6a6"}.uniui-staff[data-v-b25a9929]:before{content:"\e6a7"}.uniui-vip[data-v-b25a9929]:before{content:"\e6a8"}.uniui-folder-add[data-v-b25a9929]:before{content:"\e6a9"}.uniui-tune[data-v-b25a9929]:before{content:"\e6aa"}.uniui-auth[data-v-b25a9929]:before{content:"\e6ab"}.uniui-person[data-v-b25a9929]:before{content:"\e699"}.uniui-email-filled[data-v-b25a9929]:before{content:"\e69a"}.uniui-phone-filled[data-v-b25a9929]:before{content:"\e69b"}.uniui-phone[data-v-b25a9929]:before{content:"\e69c"}.uniui-email[data-v-b25a9929]:before{content:"\e69e"}.uniui-personadd[data-v-b25a9929]:before{content:"\e69f"}.uniui-chatboxes-filled[data-v-b25a9929]:before{content:"\e692"}.uniui-contact[data-v-b25a9929]:before{content:"\e693"}.uniui-chatbubble-filled[data-v-b25a9929]:before{content:"\e694"}.uniui-contact-filled[data-v-b25a9929]:before{content:"\e695"}.uniui-chatboxes[data-v-b25a9929]:before{content:"\e696"}.uniui-chatbubble[data-v-b25a9929]:before{content:"\e697"}.uniui-upload-filled[data-v-b25a9929]:before{content:"\e68e"}.uniui-upload[data-v-b25a9929]:before{content:"\e690"}.uniui-weixin[data-v-b25a9929]:before{content:"\e691"}.uniui-compose[data-v-b25a9929]:before{content:"\e67f"}.uniui-qq[data-v-b25a9929]:before{content:"\e680"}.uniui-download-filled[data-v-b25a9929]:before{content:"\e681"}.uniui-pyq[data-v-b25a9929]:before{content:"\e682"}.uniui-sound[data-v-b25a9929]:before{content:"\e684"}.uniui-trash-filled[data-v-b25a9929]:before{content:"\e685"}.uniui-sound-filled[data-v-b25a9929]:before{content:"\e686"}.uniui-trash[data-v-b25a9929]:before{content:"\e687"}.uniui-videocam-filled[data-v-b25a9929]:before{content:"\e689"}.uniui-spinner-cycle[data-v-b25a9929]:before{content:"\e68a"}.uniui-weibo[data-v-b25a9929]:before{content:"\e68b"}.uniui-videocam[data-v-b25a9929]:before{content:"\e68c"}.uniui-download[data-v-b25a9929]:before{content:"\e68d"}.uniui-help[data-v-b25a9929]:before{content:"\e679"}.uniui-navigate-filled[data-v-b25a9929]:before{content:"\e67a"}.uniui-plusempty[data-v-b25a9929]:before{content:"\e67b"}.uniui-smallcircle[data-v-b25a9929]:before{content:"\e67c"}.uniui-minus-filled[data-v-b25a9929]:before{content:"\e67d"}.uniui-micoff[data-v-b25a9929]:before{content:"\e67e"}.uniui-closeempty[data-v-b25a9929]:before{content:"\e66c"}.uniui-clear[data-v-b25a9929]:before{content:"\e66d"}.uniui-navigate[data-v-b25a9929]:before{content:"\e66e"}.uniui-minus[data-v-b25a9929]:before{content:"\e66f"}.uniui-image[data-v-b25a9929]:before{content:"\e670"}.uniui-mic[data-v-b25a9929]:before{content:"\e671"}.uniui-paperplane[data-v-b25a9929]:before{content:"\e672"}.uniui-close[data-v-b25a9929]:before{content:"\e673"}.uniui-help-filled[data-v-b25a9929]:before{content:"\e674"}.uniui-paperplane-filled[data-v-b25a9929]:before{content:"\e675"}.uniui-plus[data-v-b25a9929]:before{content:"\e676"}.uniui-mic-filled[data-v-b25a9929]:before{content:"\e677"}.uniui-image-filled[data-v-b25a9929]:before{content:"\e678"}.uniui-locked-filled[data-v-b25a9929]:before{content:"\e668"}.uniui-info[data-v-b25a9929]:before{content:"\e669"}.uniui-locked[data-v-b25a9929]:before{content:"\e66b"}.uniui-camera-filled[data-v-b25a9929]:before{content:"\e658"}.uniui-chat-filled[data-v-b25a9929]:before{content:"\e659"}.uniui-camera[data-v-b25a9929]:before{content:"\e65a"}.uniui-circle[data-v-b25a9929]:before{content:"\e65b"}.uniui-checkmarkempty[data-v-b25a9929]:before{content:"\e65c"}.uniui-chat[data-v-b25a9929]:before{content:"\e65d"}.uniui-circle-filled[data-v-b25a9929]:before{content:"\e65e"}.uniui-flag[data-v-b25a9929]:before{content:"\e65f"}.uniui-flag-filled[data-v-b25a9929]:before{content:"\e660"}.uniui-gear-filled[data-v-b25a9929]:before{content:"\e661"}.uniui-home[data-v-b25a9929]:before{content:"\e662"}.uniui-home-filled[data-v-b25a9929]:before{content:"\e663"}.uniui-gear[data-v-b25a9929]:before{content:"\e664"}.uniui-smallcircle-filled[data-v-b25a9929]:before{content:"\e665"}.uniui-map-filled[data-v-b25a9929]:before{content:"\e666"}.uniui-map[data-v-b25a9929]:before{content:"\e667"}.uniui-refresh-filled[data-v-b25a9929]:before{content:"\e656"}.uniui-refresh[data-v-b25a9929]:before{content:"\e657"}.uniui-cloud-upload[data-v-b25a9929]:before{content:"\e645"}.uniui-cloud-download-filled[data-v-b25a9929]:before{content:"\e646"}.uniui-cloud-download[data-v-b25a9929]:before{content:"\e647"}.uniui-cloud-upload-filled[data-v-b25a9929]:before{content:"\e648"}.uniui-redo[data-v-b25a9929]:before{content:"\e64a"}.uniui-images-filled[data-v-b25a9929]:before{content:"\e64b"}.uniui-undo-filled[data-v-b25a9929]:before{content:"\e64c"}.uniui-more[data-v-b25a9929]:before{content:"\e64d"}.uniui-more-filled[data-v-b25a9929]:before{content:"\e64e"}.uniui-undo[data-v-b25a9929]:before{content:"\e64f"}.uniui-images[data-v-b25a9929]:before{content:"\e650"}.uniui-paperclip[data-v-b25a9929]:before{content:"\e652"}.uniui-settings[data-v-b25a9929]:before{content:"\e653"}.uniui-search[data-v-b25a9929]:before{content:"\e654"}.uniui-redo-filled[data-v-b25a9929]:before{content:"\e655"}.uniui-list[data-v-b25a9929]:before{content:"\e644"}.uniui-mail-open-filled[data-v-b25a9929]:before{content:"\e63a"}.uniui-hand-down-filled[data-v-b25a9929]:before{content:"\e63c"}.uniui-hand-down[data-v-b25a9929]:before{content:"\e63d"}.uniui-hand-up-filled[data-v-b25a9929]:before{content:"\e63e"}.uniui-hand-up[data-v-b25a9929]:before{content:"\e63f"}.uniui-heart-filled[data-v-b25a9929]:before{content:"\e641"}.uniui-mail-open[data-v-b25a9929]:before{content:"\e643"}.uniui-heart[data-v-b25a9929]:before{content:"\e639"}.uniui-loop[data-v-b25a9929]:before{content:"\e633"}.uniui-pulldown[data-v-b25a9929]:before{content:"\e632"}.uniui-scan[data-v-b25a9929]:before{content:"\e62a"}.uniui-bars[data-v-b25a9929]:before{content:"\e627"}.uniui-checkbox[data-v-b25a9929]:before{content:"\e62b"}.uniui-checkbox-filled[data-v-b25a9929]:before{content:"\e62c"}.uniui-shop[data-v-b25a9929]:before{content:"\e62f"}.uniui-headphones[data-v-b25a9929]:before{content:"\e630"}.uniui-cart[data-v-b25a9929]:before{content:"\e631"}@font-face{font-family:uniicons;src:url(../../assets/uniicons.32e978a5.ttf)}.uni-icons[data-v-b25a9929]{font-family:uniicons;text-decoration:none;text-align:center}.workspace-container[data-v-ea107472]{display:flex;flex-direction:column;background:rgba(140,140,140,.1)}.workspace-text[data-v-ea107472]{color:#0073ff;font-weight:700}.workspace-header[data-v-ea107472]{width:100%;display:flex;flex-shrink:0;flex-direction:column;align-items:center;padding:.5rem 0;box-sizing:border-box;border-bottom:.03125rem solid #ddd}.custom-navbar[data-v-ea107472]{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.625rem .3125rem;box-sizing:border-box;position:relative}.navbar-left[data-v-ea107472]{display:flex;justify-content:center;align-items:center}.navbar-before-title[data-v-ea107472]{display:flex;justify-content:center;align-items:center;text-align:center}.navbar-title[data-v-ea107472]{display:flex;flex:1;justify-content:center;align-items:center;position:absolute;left:50%;transform:translate(-50%)}.navbar-right[data-v-ea107472]{display:flex;justify-content:center;align-items:center;margin-right:.625rem;box-sizing:border-box}.navbar-right .menu-open[data-v-ea107472]{color:#3ab0ff!important;font-size:1.25rem!important}.custom-navbar-icon[data-v-ea107472]{color:#0073ff!important;font-size:1.25rem!important}.search-file-warpper[data-v-ea107472]{display:flex;width:90%;align-items:center}.search-file[data-v-ea107472]{display:flex;flex:1;align-items:center;background:#fff;padding:.5rem;box-sizing:border-box;border-radius:.9375rem}.icon-sousuo[data-v-ea107472]{font-weight:700}.search-file-input[data-v-ea107472]{margin-left:.625rem}.cancel-search[data-v-ea107472]{display:flex;flex-shrink:0;padding:0 0 0 .625rem;box-sizing:border-box;color:#0073ff}.workspace-content[data-v-ea107472]{width:100%;display:block;flex:1;overflow:auto;box-sizing:border-box;position:relative}.menu-card[data-v-ea107472]{position:absolute;top:100%;right:.625rem;width:9.375rem;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff;border-radius:.9375rem;z-index:1}.menu-card-item[data-v-ea107472]{width:100%;padding:.625rem;box-sizing:border-box}.folder-null[data-v-ea107472]{width:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;position:absolute;left:50%;top:30%;transform:translate(-50%);font-size:1rem}.folder-null .iconfont[data-v-ea107472]{font-size:5.625rem}.folder-grid[data-v-ea107472]{width:100%;display:grid;grid-template-columns:repeat(3,1fr);padding:.625rem;box-sizing:border-box;gap:.625rem;align-items:start}.folder-item[data-v-ea107472]{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative}.folder-item.select-folder[data-v-ea107472]{border-radius:.9375rem;background:rgba(9,9,9,.1)}.folder-item-style[data-v-ea107472]{font-size:5rem!important;font-weight:.3125rem!important;color:#3ab0ff!important}.folder-checkbox[data-v-ea107472]{width:1.5625rem;height:1.5625rem;border:.1875rem solid #fff;border-radius:50%;box-shadow:0 .0625rem .09375rem #333;background:rgba(255,255,255,.2);box-sizing:border-box;position:absolute;left:50%;top:30%;transform:translate(-50%);display:flex;justify-content:center;align-items:center}.folder-checkbox.select-folder[data-v-ea107472]{background-color:#0073ff}.workspace-footer[data-v-ea107472]{width:100%;display:flex;flex-shrink:0;justify-content:space-between;padding:.9375rem;box-sizing:border-box;color:#999;background:#eee}.workspace-footer.folder-actions[data-v-ea107472]{color:#0073ff}.workspace-footer .iconfont[data-v-ea107472]{font-size:1.25rem!important} +.uniui-cart-filled[data-v-b25a9929]:before{content:"\e6d0"}.uniui-gift-filled[data-v-b25a9929]:before{content:"\e6c4"}.uniui-color[data-v-b25a9929]:before{content:"\e6cf"}.uniui-wallet[data-v-b25a9929]:before{content:"\e6b1"}.uniui-settings-filled[data-v-b25a9929]:before{content:"\e6ce"}.uniui-auth-filled[data-v-b25a9929]:before{content:"\e6cc"}.uniui-shop-filled[data-v-b25a9929]:before{content:"\e6cd"}.uniui-staff-filled[data-v-b25a9929]:before{content:"\e6cb"}.uniui-vip-filled[data-v-b25a9929]:before{content:"\e6c6"}.uniui-plus-filled[data-v-b25a9929]:before{content:"\e6c7"}.uniui-folder-add-filled[data-v-b25a9929]:before{content:"\e6c8"}.uniui-color-filled[data-v-b25a9929]:before{content:"\e6c9"}.uniui-tune-filled[data-v-b25a9929]:before{content:"\e6ca"}.uniui-calendar-filled[data-v-b25a9929]:before{content:"\e6c0"}.uniui-notification-filled[data-v-b25a9929]:before{content:"\e6c1"}.uniui-wallet-filled[data-v-b25a9929]:before{content:"\e6c2"}.uniui-medal-filled[data-v-b25a9929]:before{content:"\e6c3"}.uniui-fire-filled[data-v-b25a9929]:before{content:"\e6c5"}.uniui-refreshempty[data-v-b25a9929]:before{content:"\e6bf"}.uniui-location-filled[data-v-b25a9929]:before{content:"\e6af"}.uniui-person-filled[data-v-b25a9929]:before{content:"\e69d"}.uniui-personadd-filled[data-v-b25a9929]:before{content:"\e698"}.uniui-arrowthinleft[data-v-b25a9929]:before{content:"\e6d2"}.uniui-arrowthinup[data-v-b25a9929]:before{content:"\e6d3"}.uniui-arrowthindown[data-v-b25a9929]:before{content:"\e6d4"}.uniui-back[data-v-b25a9929]:before{content:"\e6b9"}.uniui-forward[data-v-b25a9929]:before{content:"\e6ba"}.uniui-arrow-right[data-v-b25a9929]:before{content:"\e6bb"}.uniui-arrow-left[data-v-b25a9929]:before{content:"\e6bc"}.uniui-arrow-up[data-v-b25a9929]:before{content:"\e6bd"}.uniui-arrow-down[data-v-b25a9929]:before{content:"\e6be"}.uniui-arrowthinright[data-v-b25a9929]:before{content:"\e6d1"}.uniui-down[data-v-b25a9929]:before{content:"\e6b8"}.uniui-bottom[data-v-b25a9929]:before{content:"\e6b8"}.uniui-arrowright[data-v-b25a9929]:before{content:"\e6d5"}.uniui-right[data-v-b25a9929]:before{content:"\e6b5"}.uniui-up[data-v-b25a9929]:before{content:"\e6b6"}.uniui-top[data-v-b25a9929]:before{content:"\e6b6"}.uniui-left[data-v-b25a9929]:before{content:"\e6b7"}.uniui-arrowup[data-v-b25a9929]:before{content:"\e6d6"}.uniui-eye[data-v-b25a9929]:before{content:"\e651"}.uniui-eye-filled[data-v-b25a9929]:before{content:"\e66a"}.uniui-eye-slash[data-v-b25a9929]:before{content:"\e6b3"}.uniui-eye-slash-filled[data-v-b25a9929]:before{content:"\e6b4"}.uniui-info-filled[data-v-b25a9929]:before{content:"\e649"}.uniui-reload[data-v-b25a9929]:before{content:"\e6b2"}.uniui-micoff-filled[data-v-b25a9929]:before{content:"\e6b0"}.uniui-map-pin-ellipse[data-v-b25a9929]:before{content:"\e6ac"}.uniui-map-pin[data-v-b25a9929]:before{content:"\e6ad"}.uniui-location[data-v-b25a9929]:before{content:"\e6ae"}.uniui-starhalf[data-v-b25a9929]:before{content:"\e683"}.uniui-star[data-v-b25a9929]:before{content:"\e688"}.uniui-star-filled[data-v-b25a9929]:before{content:"\e68f"}.uniui-calendar[data-v-b25a9929]:before{content:"\e6a0"}.uniui-fire[data-v-b25a9929]:before{content:"\e6a1"}.uniui-medal[data-v-b25a9929]:before{content:"\e6a2"}.uniui-font[data-v-b25a9929]:before{content:"\e6a3"}.uniui-gift[data-v-b25a9929]:before{content:"\e6a4"}.uniui-link[data-v-b25a9929]:before{content:"\e6a5"}.uniui-notification[data-v-b25a9929]:before{content:"\e6a6"}.uniui-staff[data-v-b25a9929]:before{content:"\e6a7"}.uniui-vip[data-v-b25a9929]:before{content:"\e6a8"}.uniui-folder-add[data-v-b25a9929]:before{content:"\e6a9"}.uniui-tune[data-v-b25a9929]:before{content:"\e6aa"}.uniui-auth[data-v-b25a9929]:before{content:"\e6ab"}.uniui-person[data-v-b25a9929]:before{content:"\e699"}.uniui-email-filled[data-v-b25a9929]:before{content:"\e69a"}.uniui-phone-filled[data-v-b25a9929]:before{content:"\e69b"}.uniui-phone[data-v-b25a9929]:before{content:"\e69c"}.uniui-email[data-v-b25a9929]:before{content:"\e69e"}.uniui-personadd[data-v-b25a9929]:before{content:"\e69f"}.uniui-chatboxes-filled[data-v-b25a9929]:before{content:"\e692"}.uniui-contact[data-v-b25a9929]:before{content:"\e693"}.uniui-chatbubble-filled[data-v-b25a9929]:before{content:"\e694"}.uniui-contact-filled[data-v-b25a9929]:before{content:"\e695"}.uniui-chatboxes[data-v-b25a9929]:before{content:"\e696"}.uniui-chatbubble[data-v-b25a9929]:before{content:"\e697"}.uniui-upload-filled[data-v-b25a9929]:before{content:"\e68e"}.uniui-upload[data-v-b25a9929]:before{content:"\e690"}.uniui-weixin[data-v-b25a9929]:before{content:"\e691"}.uniui-compose[data-v-b25a9929]:before{content:"\e67f"}.uniui-qq[data-v-b25a9929]:before{content:"\e680"}.uniui-download-filled[data-v-b25a9929]:before{content:"\e681"}.uniui-pyq[data-v-b25a9929]:before{content:"\e682"}.uniui-sound[data-v-b25a9929]:before{content:"\e684"}.uniui-trash-filled[data-v-b25a9929]:before{content:"\e685"}.uniui-sound-filled[data-v-b25a9929]:before{content:"\e686"}.uniui-trash[data-v-b25a9929]:before{content:"\e687"}.uniui-videocam-filled[data-v-b25a9929]:before{content:"\e689"}.uniui-spinner-cycle[data-v-b25a9929]:before{content:"\e68a"}.uniui-weibo[data-v-b25a9929]:before{content:"\e68b"}.uniui-videocam[data-v-b25a9929]:before{content:"\e68c"}.uniui-download[data-v-b25a9929]:before{content:"\e68d"}.uniui-help[data-v-b25a9929]:before{content:"\e679"}.uniui-navigate-filled[data-v-b25a9929]:before{content:"\e67a"}.uniui-plusempty[data-v-b25a9929]:before{content:"\e67b"}.uniui-smallcircle[data-v-b25a9929]:before{content:"\e67c"}.uniui-minus-filled[data-v-b25a9929]:before{content:"\e67d"}.uniui-micoff[data-v-b25a9929]:before{content:"\e67e"}.uniui-closeempty[data-v-b25a9929]:before{content:"\e66c"}.uniui-clear[data-v-b25a9929]:before{content:"\e66d"}.uniui-navigate[data-v-b25a9929]:before{content:"\e66e"}.uniui-minus[data-v-b25a9929]:before{content:"\e66f"}.uniui-image[data-v-b25a9929]:before{content:"\e670"}.uniui-mic[data-v-b25a9929]:before{content:"\e671"}.uniui-paperplane[data-v-b25a9929]:before{content:"\e672"}.uniui-close[data-v-b25a9929]:before{content:"\e673"}.uniui-help-filled[data-v-b25a9929]:before{content:"\e674"}.uniui-paperplane-filled[data-v-b25a9929]:before{content:"\e675"}.uniui-plus[data-v-b25a9929]:before{content:"\e676"}.uniui-mic-filled[data-v-b25a9929]:before{content:"\e677"}.uniui-image-filled[data-v-b25a9929]:before{content:"\e678"}.uniui-locked-filled[data-v-b25a9929]:before{content:"\e668"}.uniui-info[data-v-b25a9929]:before{content:"\e669"}.uniui-locked[data-v-b25a9929]:before{content:"\e66b"}.uniui-camera-filled[data-v-b25a9929]:before{content:"\e658"}.uniui-chat-filled[data-v-b25a9929]:before{content:"\e659"}.uniui-camera[data-v-b25a9929]:before{content:"\e65a"}.uniui-circle[data-v-b25a9929]:before{content:"\e65b"}.uniui-checkmarkempty[data-v-b25a9929]:before{content:"\e65c"}.uniui-chat[data-v-b25a9929]:before{content:"\e65d"}.uniui-circle-filled[data-v-b25a9929]:before{content:"\e65e"}.uniui-flag[data-v-b25a9929]:before{content:"\e65f"}.uniui-flag-filled[data-v-b25a9929]:before{content:"\e660"}.uniui-gear-filled[data-v-b25a9929]:before{content:"\e661"}.uniui-home[data-v-b25a9929]:before{content:"\e662"}.uniui-home-filled[data-v-b25a9929]:before{content:"\e663"}.uniui-gear[data-v-b25a9929]:before{content:"\e664"}.uniui-smallcircle-filled[data-v-b25a9929]:before{content:"\e665"}.uniui-map-filled[data-v-b25a9929]:before{content:"\e666"}.uniui-map[data-v-b25a9929]:before{content:"\e667"}.uniui-refresh-filled[data-v-b25a9929]:before{content:"\e656"}.uniui-refresh[data-v-b25a9929]:before{content:"\e657"}.uniui-cloud-upload[data-v-b25a9929]:before{content:"\e645"}.uniui-cloud-download-filled[data-v-b25a9929]:before{content:"\e646"}.uniui-cloud-download[data-v-b25a9929]:before{content:"\e647"}.uniui-cloud-upload-filled[data-v-b25a9929]:before{content:"\e648"}.uniui-redo[data-v-b25a9929]:before{content:"\e64a"}.uniui-images-filled[data-v-b25a9929]:before{content:"\e64b"}.uniui-undo-filled[data-v-b25a9929]:before{content:"\e64c"}.uniui-more[data-v-b25a9929]:before{content:"\e64d"}.uniui-more-filled[data-v-b25a9929]:before{content:"\e64e"}.uniui-undo[data-v-b25a9929]:before{content:"\e64f"}.uniui-images[data-v-b25a9929]:before{content:"\e650"}.uniui-paperclip[data-v-b25a9929]:before{content:"\e652"}.uniui-settings[data-v-b25a9929]:before{content:"\e653"}.uniui-search[data-v-b25a9929]:before{content:"\e654"}.uniui-redo-filled[data-v-b25a9929]:before{content:"\e655"}.uniui-list[data-v-b25a9929]:before{content:"\e644"}.uniui-mail-open-filled[data-v-b25a9929]:before{content:"\e63a"}.uniui-hand-down-filled[data-v-b25a9929]:before{content:"\e63c"}.uniui-hand-down[data-v-b25a9929]:before{content:"\e63d"}.uniui-hand-up-filled[data-v-b25a9929]:before{content:"\e63e"}.uniui-hand-up[data-v-b25a9929]:before{content:"\e63f"}.uniui-heart-filled[data-v-b25a9929]:before{content:"\e641"}.uniui-mail-open[data-v-b25a9929]:before{content:"\e643"}.uniui-heart[data-v-b25a9929]:before{content:"\e639"}.uniui-loop[data-v-b25a9929]:before{content:"\e633"}.uniui-pulldown[data-v-b25a9929]:before{content:"\e632"}.uniui-scan[data-v-b25a9929]:before{content:"\e62a"}.uniui-bars[data-v-b25a9929]:before{content:"\e627"}.uniui-checkbox[data-v-b25a9929]:before{content:"\e62b"}.uniui-checkbox-filled[data-v-b25a9929]:before{content:"\e62c"}.uniui-shop[data-v-b25a9929]:before{content:"\e62f"}.uniui-headphones[data-v-b25a9929]:before{content:"\e630"}.uniui-cart[data-v-b25a9929]:before{content:"\e631"}@font-face{font-family:uniicons;src:url(../../assets/uniicons.32e978a5.ttf)}.uni-icons[data-v-b25a9929]{font-family:uniicons;text-decoration:none;text-align:center}.create-folder-name[data-v-02673744]{display:flex;width:100%;padding:.3125rem .625rem;box-sizing:border-box;align-items:center;background-color:rgba(194,191,211,.1);border-radius:.3125rem}.create-folder-name uni-input[data-v-02673744]{box-sizing:border-box;width:100%}.create-folder-name.has-value[data-v-02673744]{background-color:#fff;border:.0625rem solid #aaaaff;box-shadow:0 0 .46875rem #aaf}.new-folder-name[data-v-02673744]{font-size:.875rem;color:#666;margin-bottom:.375rem}.nf-path-label[data-v-02673744]{font-size:.8125rem;color:#999;margin-top:.75rem;margin-bottom:.25rem}.nf-path-display[data-v-02673744]{font-size:.875rem;color:#333;padding:.375rem .625rem;background:#f5f5f5;border-radius:.3125rem;word-break:break-all}.nf-path-preview[data-v-02673744]{font-size:.875rem;color:#0073ff;padding:.375rem .625rem;background:rgba(0,115,255,.05);border:.0625rem dashed rgba(0,115,255,.3);border-radius:.3125rem;word-break:break-all}.option-wrapper[data-v-02673744]{display:flex;justify-content:space-between;gap:.625rem;margin-top:1.25rem}.opt-btn[data-v-02673744]{flex:1;display:flex;justify-content:center;align-items:center;padding:.75rem 0;border-radius:.375rem;font-size:.9375rem}.opt-cancel[data-v-02673744]{background:#f5f5f5;color:#666}.opt-confirm[data-v-02673744]{background:linear-gradient(135deg,#0073ff,#3ab0ff);color:#fff}.workspace-container[data-v-02673744]{display:flex;flex-direction:column;background:rgba(140,140,140,.1)}.workspace-text[data-v-02673744]{color:#0073ff;font-weight:700}.workspace-header[data-v-02673744]{width:100%;display:flex;flex-shrink:0;flex-direction:column;align-items:center;padding:.5rem 0;box-sizing:border-box;border-bottom:.03125rem solid #ddd}.custom-navbar[data-v-02673744]{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.625rem .3125rem;box-sizing:border-box;position:relative}.navbar-left[data-v-02673744]{display:flex;justify-content:center;align-items:center}.navbar-before-title[data-v-02673744]{display:flex;justify-content:center;align-items:center;text-align:center}.navbar-title[data-v-02673744]{display:flex;flex:1;justify-content:center;align-items:center;position:absolute;left:50%;transform:translate(-50%)}.navbar-right[data-v-02673744]{display:flex;justify-content:center;align-items:center;margin-right:.625rem;box-sizing:border-box}.navbar-right .menu-open[data-v-02673744]{color:#3ab0ff!important;font-size:1.25rem!important}.custom-navbar-icon[data-v-02673744]{color:#0073ff!important;font-size:1.25rem!important}.search-file-warpper[data-v-02673744]{display:flex;width:90%;align-items:center}.search-file[data-v-02673744]{display:flex;flex:1;align-items:center;background:#fff;padding:.5rem;box-sizing:border-box;border-radius:.9375rem}.icon-sousuo[data-v-02673744]{font-weight:700}.search-file-input[data-v-02673744]{margin-left:.625rem}.cancel-search[data-v-02673744]{display:flex;flex-shrink:0;padding:0 0 0 .625rem;box-sizing:border-box;color:#0073ff}.workspace-content[data-v-02673744]{width:100%;display:block;flex:1;overflow:auto;box-sizing:border-box;position:relative}.menu-card[data-v-02673744]{position:absolute;top:100%;right:.625rem;width:9.375rem;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#fff;border-radius:.9375rem;z-index:1}.menu-card-item[data-v-02673744]{width:100%;padding:.625rem;box-sizing:border-box}.folder-null[data-v-02673744]{width:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;position:absolute;left:50%;top:30%;transform:translate(-50%);font-size:1rem}.folder-null .iconfont[data-v-02673744]{font-size:5.625rem}.folder-grid[data-v-02673744]{width:100%;display:grid;grid-template-columns:repeat(3,1fr);padding:.625rem;box-sizing:border-box;gap:.625rem;align-items:start}.folder-item[data-v-02673744]{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;min-width:0}.folder-item.select-folder[data-v-02673744]{border-radius:.9375rem;background:rgba(9,9,9,.1)}.folder-item .folder-name[data-v-02673744]{max-width:4.6875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;text-align:center;line-height:1.25rem;min-width:0}.folder-item-style[data-v-02673744]{font-size:5rem!important;font-weight:.3125rem!important;color:#3ab0ff!important}.folder-checkbox[data-v-02673744]{width:1.5625rem;height:1.5625rem;border:.1875rem solid #fff;border-radius:50%;box-shadow:0 .0625rem .09375rem #333;background:rgba(255,255,255,.2);box-sizing:border-box;position:absolute;left:50%;top:30%;transform:translate(-50%);display:flex;justify-content:center;align-items:center}.folder-checkbox.select-folder[data-v-02673744]{background-color:#0073ff}.workspace-footer[data-v-02673744]{width:100%;display:flex;flex-shrink:0;justify-content:space-between;padding:.9375rem;box-sizing:border-box;color:#999;background:#eee}.workspace-footer.folder-actions[data-v-02673744]{color:#0073ff}.workspace-footer .iconfont[data-v-02673744]{font-size:1.25rem!important} diff --git a/unpackage/dist/build/app-plus/static/iconfont/demo_index.html b/unpackage/dist/build/app-plus/static/iconfont/demo_index.html index 1d50130..3bfb318 100644 --- a/unpackage/dist/build/app-plus/static/iconfont/demo_index.html +++ b/unpackage/dist/build/app-plus/static/iconfont/demo_index.html @@ -47,11 +47,277 @@
  • Symbol
  • +
    查看项目 +
      +
    • + +
      云端,云,云服务
      +
      &#xe988;
      +
    • + +
    • + +
      其他文件
      +
      &#xe7b6;
      +
    • + +
    • + +
      文件-压缩
      +
      &#xe643;
      +
    • + +
    • + +
      文件-视频
      +
      &#xe644;
      +
    • + +
    • + +
      文件-音频
      +
      &#xe645;
      +
    • + +
    • + +
      文件-图片
      +
      &#xe646;
      +
    • + +
    • + +
      代码文件
      +
      &#xe66a;
      +
    • + +
    • + +
      markdown文件
      +
      &#xebb1;
      +
    • + +
    • + +
      SVG
      +
      &#xe614;
      +
    • + +
    • + +
      HTML
      +
      &#xe615;
      +
    • + +
    • + +
      CSS
      +
      &#xe618;
      +
    • + +
    • + +
      CSV
      +
      &#xe619;
      +
    • + +
    • + +
      JSON
      +
      &#xe61b;
      +
    • + +
    • + +
      JS
      +
      &#xe61c;
      +
    • + +
    • + +
      PDF
      +
      &#xe61e;
      +
    • + +
    • + +
      PHP
      +
      &#xe621;
      +
    • + +
    • + +
      TXT
      +
      &#xe622;
      +
    • + +
    • + +
      XLS
      +
      &#xe623;
      +
    • + +
    • + +
      DOC
      +
      &#xe624;
      +
    • + +
    • + +
      PPT
      +
      &#xe626;
      +
    • + +
    • + +
      SQL
      +
      &#xe627;
      +
    • + +
    • + +
      编辑
      +
      &#xe605;
      +
    • + +
    • + +
      发送
      +
      &#xe705;
      +
    • + +
    • + +
      下载
      +
      &#xe61a;
      +
    • + +
    • + +
      编辑
      +
      &#xe61d;
      +
    • + +
    • + +
      收藏
      +
      &#xe61f;
      +
    • + +
    • + +
      收藏
      +
      &#xe620;
      +
    • + +
    • + +
      上传
      +
      &#xe63e;
      +
    • + +
    • + +
      用户资料
      +
      &#xe6a1;
      +
    • + +
    • + +
      +
      &#xe67c;
      +
    • + +
    • + +
      群聊
      +
      &#xe606;
      +
    • + +
    • + +
      视频通话
      +
      &#xe609;
      +
    • + +
    • + +
      添加
      +
      &#xe60d;
      +
    • + +
    • + +
      通讯录
      +
      &#xe612;
      +
    • + +
    • + +
      添加好友
      +
      &#xe613;
      +
    • + +
    • + +
      删除
      +
      &#xe6d3;
      +
    • + +
    • + +
      选择箭头-fill
      +
      &#xe6a2;
      +
    • + +
    • + +
      文件夹,文件
      +
      &#xe69e;
      +
    • + +
    • + +
      搜索
      +
      &#xe6eb;
      +
    • + +
    • + +
      Robot
      +
      &#xe67d;
      +
    • + +
    • + +
      扫除
      +
      &#xe6a3;
      +
    • + +
    • + +
      返回
      +
      &#xe765;
      +
    • + +
    • + +
      brain-2-fill
      +
      &#xe800;
      +
    • + +
    • + +
      更多
      +
      &#xe6c5;
      +
    • +
    • 垃圾桶
      @@ -137,141 +403,9 @@
    • - -
      编辑
      -
      &#xe605;
      -
    • - -
    • - -
      发送
      -
      &#xe705;
      -
    • - -
    • - -
      下载
      -
      &#xe61a;
      -
    • - -
    • - -
      编辑
      -
      &#xe61d;
      -
    • - -
    • - -
      收藏
      -
      &#xe61f;
      -
    • - -
    • - -
      收藏
      -
      &#xe620;
      -
    • - -
    • - -
      上传
      -
      &#xe63e;
      -
    • - -
    • - -
      用户资料
      -
      &#xe6a1;
      -
    • - -
    • - -
      -
      &#xe667;
      -
    • - -
    • - -
      群聊
      -
      &#xe606;
      -
    • - -
    • - -
      视频通话
      -
      &#xe609;
      -
    • - -
    • - -
      添加
      -
      &#xe60d;
      -
    • - -
    • - -
      通讯录
      -
      &#xe612;
      -
    • - -
    • - -
      添加好友
      -
      &#xe613;
      -
    • - -
    • - -
      删除
      -
      &#xe6d3;
      -
    • - -
    • - -
      选择箭头-fill
      -
      &#xe6a2;
      -
    • - -
    • - -
      文件夹,文件
      -
      &#xe69e;
      -
    • - -
    • - -
      搜索
      -
      &#xe6eb;
      -
    • - -
    • - -
      Robot
      -
      &#xe661;
      -
    • - -
    • - -
      扫除
      -
      &#xe6a3;
      -
    • - -
    • - -
      返回
      -
      &#xe765;
      -
    • - -
    • - -
      brain-2-fill
      -
      &#xe800;
      -
    • - -
    • - -
      更多
      -
      &#xe6c5;
      + +
      其它
      +
      &#xe600;
    @@ -292,7 +426,9 @@
    @font-face {
       font-family: 'iconfont';
    -  src: url('iconfont.ttf?t=1776936195904') format('truetype');
    +  src: url('iconfont.woff2?t=1782200893170') format('woff2'),
    +       url('iconfont.woff?t=1782200893170') format('woff'),
    +       url('iconfont.ttf?t=1782200893170') format('truetype');
     }
     

    第二步:定义使用 iconfont 的样式

    @@ -319,128 +455,191 @@
    • - +
      - 垃圾桶 + 云端,云,云服务
      -
      .icon-del +
      .icon-cloud
    • - +
      - 照相机 + 其他文件
      -
      .icon-zhaoxiangji +
      .icon-qitawenjian
    • - +
      - 多选 + 文件-压缩
      -
      .icon-duoxuan +
      .icon-wenjianyasuo
    • - +
      - 加 + 文件-视频
      -
      .icon-jia +
      .icon-wenjianshipin
    • - +
      - 取消 + 文件-音频
      -
      .icon-quxiao +
      .icon-wenjianyinpin
    • - +
      - 退出 + 文件-图片
      -
      .icon-tuichu +
      .icon-wenjiantupian
    • - +
      - 复制 + 代码文件
      -
      .icon-fuzhi +
      .icon-daimawenjian
    • - +
      - 上传 + markdown文件
      -
      .icon-shangchuan +
      .icon-file-markdown-fill
    • - +
      - 全选 + SVG
      -
      .icon-total_selection +
      .icon-SVG
    • - +
      - 停止 + HTML
      -
      .icon-tingzhi +
      .icon-HTML
    • - +
      - 文件夹 + CSS
      -
      .icon-wenjianjia +
      .icon-CSS
    • - +
      - 菜单 + CSV
      -
      .icon-caidan +
      .icon-CSV
    • - +
      - 文件 + JSON
      -
      .icon-wenjian +
      .icon-JSON
    • - +
      - 别针 + JS
      -
      .icon-biezhen +
      .icon-JS +
      +
    • + +
    • + +
      + PDF +
      +
      .icon-PDF +
      +
    • + +
    • + +
      + PHP +
      +
      .icon-PHP +
      +
    • + +
    • + +
      + TXT +
      +
      .icon-TXT +
      +
    • + +
    • + +
      + XLS +
      +
      .icon-XLS +
      +
    • + +
    • + +
      + DOC +
      +
      .icon-DOC +
      +
    • + +
    • + +
      + PPT +
      +
      .icon-PPT +
      +
    • + +
    • + +
      + SQL +
      +
      .icon-SQL
    • @@ -651,6 +850,141 @@
    +
  • + +
    + 垃圾桶 +
    +
    .icon-del +
    +
  • + +
  • + +
    + 照相机 +
    +
    .icon-zhaoxiangji +
    +
  • + +
  • + +
    + 多选 +
    +
    .icon-duoxuan +
    +
  • + +
  • + +
    + 加 +
    +
    .icon-jia +
    +
  • + +
  • + +
    + 取消 +
    +
    .icon-quxiao +
    +
  • + +
  • + +
    + 退出 +
    +
    .icon-tuichu +
    +
  • + +
  • + +
    + 复制 +
    +
    .icon-fuzhi +
    +
  • + +
  • + +
    + 上传 +
    +
    .icon-shangchuan +
    +
  • + +
  • + +
    + 全选 +
    +
    .icon-total_selection +
    +
  • + +
  • + +
    + 停止 +
    +
    .icon-tingzhi +
    +
  • + +
  • + +
    + 文件夹 +
    +
    .icon-wenjianjia +
    +
  • + +
  • + +
    + 菜单 +
    +
    .icon-caidan +
    +
  • + +
  • + +
    + 文件 +
    +
    .icon-wenjian +
    +
  • + +
  • + +
    + 别针 +
    +
    .icon-biezhen +
    +
  • + +
  • + +
    + 其它 +
    +
    .icon-qita +
    +
  • +

    font-class 引用

    @@ -680,114 +1014,170 @@
  • -
    垃圾桶
    -
    #icon-del
    +
    云端,云,云服务
    +
    #icon-cloud
  • -
    照相机
    -
    #icon-zhaoxiangji
    +
    其他文件
    +
    #icon-qitawenjian
  • -
    多选
    -
    #icon-duoxuan
    +
    文件-压缩
    +
    #icon-wenjianyasuo
  • -
    -
    #icon-jia
    +
    文件-视频
    +
    #icon-wenjianshipin
  • -
    取消
    -
    #icon-quxiao
    +
    文件-音频
    +
    #icon-wenjianyinpin
  • -
    退出
    -
    #icon-tuichu
    +
    文件-图片
    +
    #icon-wenjiantupian
  • -
    复制
    -
    #icon-fuzhi
    +
    代码文件
    +
    #icon-daimawenjian
  • -
    上传
    -
    #icon-shangchuan
    +
    markdown文件
    +
    #icon-file-markdown-fill
  • -
    全选
    -
    #icon-total_selection
    +
    SVG
    +
    #icon-SVG
  • -
    停止
    -
    #icon-tingzhi
    +
    HTML
    +
    #icon-HTML
  • -
    文件夹
    -
    #icon-wenjianjia
    +
    CSS
    +
    #icon-CSS
  • -
    菜单
    -
    #icon-caidan
    +
    CSV
    +
    #icon-CSV
  • -
    文件
    -
    #icon-wenjian
    +
    JSON
    +
    #icon-JSON
  • -
    别针
    -
    #icon-biezhen
    +
    JS
    +
    #icon-JS
    +
  • + +
  • + +
    PDF
    +
    #icon-PDF
    +
  • + +
  • + +
    PHP
    +
    #icon-PHP
    +
  • + +
  • + +
    TXT
    +
    #icon-TXT
    +
  • + +
  • + +
    XLS
    +
    #icon-XLS
    +
  • + +
  • + +
    DOC
    +
    #icon-DOC
    +
  • + +
  • + +
    PPT
    +
    #icon-PPT
    +
  • + +
  • + +
    SQL
    +
    #icon-SQL
  • @@ -974,6 +1364,126 @@
    #icon-gengduo
  • +
  • + +
    垃圾桶
    +
    #icon-del
    +
  • + +
  • + +
    照相机
    +
    #icon-zhaoxiangji
    +
  • + +
  • + +
    多选
    +
    #icon-duoxuan
    +
  • + +
  • + +
    +
    #icon-jia
    +
  • + +
  • + +
    取消
    +
    #icon-quxiao
    +
  • + +
  • + +
    退出
    +
    #icon-tuichu
    +
  • + +
  • + +
    复制
    +
    #icon-fuzhi
    +
  • + +
  • + +
    上传
    +
    #icon-shangchuan
    +
  • + +
  • + +
    全选
    +
    #icon-total_selection
    +
  • + +
  • + +
    停止
    +
    #icon-tingzhi
    +
  • + +
  • + +
    文件夹
    +
    #icon-wenjianjia
    +
  • + +
  • + +
    菜单
    +
    #icon-caidan
    +
  • + +
  • + +
    文件
    +
    #icon-wenjian
    +
  • + +
  • + +
    别针
    +
    #icon-biezhen
    +
  • + +
  • + +
    其它
    +
    #icon-qita
    +
  • +

    Symbol 引用

    diff --git a/unpackage/dist/build/app-plus/static/iconfont/iconfont.css b/unpackage/dist/build/app-plus/static/iconfont/iconfont.css index 0e76239..bee14e5 100644 --- a/unpackage/dist/build/app-plus/static/iconfont/iconfont.css +++ b/unpackage/dist/build/app-plus/static/iconfont/iconfont.css @@ -1,6 +1,8 @@ @font-face { - font-family: "iconfont"; /* Project id */ - src: url('iconfont.ttf?t=1776936195904') format('truetype'); + font-family: "iconfont"; /* Project id 4890805 */ + src: url('iconfont.woff2?t=1782200893170') format('woff2'), + url('iconfont.woff?t=1782200893170') format('woff'), + url('iconfont.ttf?t=1782200893170') format('truetype'); } .iconfont { @@ -11,6 +13,182 @@ -moz-osx-font-smoothing: grayscale; } +.icon-cloud:before { + content: "\e988"; +} + +.icon-qitawenjian:before { + content: "\e7b6"; +} + +.icon-wenjianyasuo:before { + content: "\e643"; +} + +.icon-wenjianshipin:before { + content: "\e644"; +} + +.icon-wenjianyinpin:before { + content: "\e645"; +} + +.icon-wenjiantupian:before { + content: "\e646"; +} + +.icon-daimawenjian:before { + content: "\e66a"; +} + +.icon-file-markdown-fill:before { + content: "\ebb1"; +} + +.icon-SVG:before { + content: "\e614"; +} + +.icon-HTML:before { + content: "\e615"; +} + +.icon-CSS:before { + content: "\e618"; +} + +.icon-CSV:before { + content: "\e619"; +} + +.icon-JSON:before { + content: "\e61b"; +} + +.icon-JS:before { + content: "\e61c"; +} + +.icon-PDF:before { + content: "\e61e"; +} + +.icon-PHP:before { + content: "\e621"; +} + +.icon-TXT:before { + content: "\e622"; +} + +.icon-XLS:before { + content: "\e623"; +} + +.icon-DOC:before { + content: "\e624"; +} + +.icon-PPT:before { + content: "\e626"; +} + +.icon-SQL:before { + content: "\e627"; +} + +.icon-bianji:before { + content: "\e605"; +} + +.icon-fasong:before { + content: "\e705"; +} + +.icon-download:before { + content: "\e61a"; +} + +.icon-edit-fill:before { + content: "\e61d"; +} + +.icon-favorite-fill:before { + content: "\e61f"; +} + +.icon-favorite:before { + content: "\e620"; +} + +.icon-upload:before { + content: "\e63e"; +} + +.icon-yonghuziliao:before { + content: "\e6a1"; +} + +.icon-pen-fill:before { + content: "\e67c"; +} + +.icon-qunliao:before { + content: "\e606"; +} + +.icon-shipintonghua:before { + content: "\e609"; +} + +.icon-tianjia:before { + content: "\e60d"; +} + +.icon-tongxunlu:before { + content: "\e612"; +} + +.icon-tianjiahaoyou:before { + content: "\e613"; +} + +.icon-shanchu:before { + content: "\e6d3"; +} + +.icon-choose-fill:before { + content: "\e6a2"; +} + +.icon-a-wenjianjiawenjian:before { + content: "\e69e"; +} + +.icon-sousuo:before { + content: "\e6eb"; +} + +.icon-Robot:before { + content: "\e67d"; +} + +.icon-saochu:before { + content: "\e6a3"; +} + +.icon-fanhui:before { + content: "\e765"; +} + +.icon-brain-2-fill:before { + content: "\e800"; +} + +.icon-gengduo:before { + content: "\e6c5"; +} + .icon-del:before { content: "\e616"; } @@ -67,95 +245,7 @@ content: "\e647"; } -.icon-bianji:before { - content: "\e605"; -} - -.icon-fasong:before { - content: "\e705"; -} - -.icon-download:before { - content: "\e61a"; -} - -.icon-edit-fill:before { - content: "\e61d"; -} - -.icon-favorite-fill:before { - content: "\e61f"; -} - -.icon-favorite:before { - content: "\e620"; -} - -.icon-upload:before { - content: "\e63e"; -} - -.icon-yonghuziliao:before { - content: "\e6a1"; -} - -.icon-pen-fill:before { - content: "\e667"; -} - -.icon-qunliao:before { - content: "\e606"; -} - -.icon-shipintonghua:before { - content: "\e609"; -} - -.icon-tianjia:before { - content: "\e60d"; -} - -.icon-tongxunlu:before { - content: "\e612"; -} - -.icon-tianjiahaoyou:before { - content: "\e613"; -} - -.icon-shanchu:before { - content: "\e6d3"; -} - -.icon-choose-fill:before { - content: "\e6a2"; -} - -.icon-a-wenjianjiawenjian:before { - content: "\e69e"; -} - -.icon-sousuo:before { - content: "\e6eb"; -} - -.icon-Robot:before { - content: "\e661"; -} - -.icon-saochu:before { - content: "\e6a3"; -} - -.icon-fanhui:before { - content: "\e765"; -} - -.icon-brain-2-fill:before { - content: "\e800"; -} - -.icon-gengduo:before { - content: "\e6c5"; +.icon-qita:before { + content: "\e600"; } diff --git a/unpackage/dist/build/app-plus/static/iconfont/iconfont.js b/unpackage/dist/build/app-plus/static/iconfont/iconfont.js index ec9c3a7..d9e46f5 100644 --- a/unpackage/dist/build/app-plus/static/iconfont/iconfont.js +++ b/unpackage/dist/build/app-plus/static/iconfont/iconfont.js @@ -1 +1 @@ -window._iconfont_svg_string_='',(a=>{var l=(c=(c=document.getElementsByTagName("script"))[c.length-1]).getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var i,h,t,o,s,e=function(l,c){c.parentNode.insertBefore(l,c)};if(l&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(l){console&&console.log(l)}}i=function(){var l,c=document.createElement("div");c.innerHTML=a._iconfont_svg_string_,(c=c.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",c=c,(l=document.body).firstChild?e(c,l.firstChild):l.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(i,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),i()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(t=i,o=a.document,s=!1,n(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,d())})}function d(){s||(s=!0,t())}function n(){try{o.documentElement.doScroll("left")}catch(l){return void setTimeout(n,50)}d()}})(window); \ No newline at end of file +window._iconfont_svg_string_4890805='',(c=>{var a=(h=(h=document.getElementsByTagName("script"))[h.length-1]).getAttribute("data-injectcss"),h=h.getAttribute("data-disable-injectsvg");if(!h){var l,v,t,i,z,o=function(a,h){h.parentNode.insertBefore(a,h)};if(a&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}l=function(){var a,h=document.createElement("div");h.innerHTML=c._iconfont_svg_string_4890805,(h=h.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",h=h,(a=document.body).firstChild?o(h,a.firstChild):a.appendChild(h))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(v=function(){document.removeEventListener("DOMContentLoaded",v,!1),l()},document.addEventListener("DOMContentLoaded",v,!1)):document.attachEvent&&(t=l,i=c.document,z=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,p())})}function p(){z||(z=!0,t())}function m(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(m,50)}p()}})(window); \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/static/iconfont/iconfont.json b/unpackage/dist/build/app-plus/static/iconfont/iconfont.json index 05311a0..36b9730 100644 --- a/unpackage/dist/build/app-plus/static/iconfont/iconfont.json +++ b/unpackage/dist/build/app-plus/static/iconfont/iconfont.json @@ -1,10 +1,318 @@ { - "id": "", - "name": "", + "id": "4890805", + "name": "information", "font_family": "iconfont", "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "18170211", + "name": "云端,云,云服务", + "font_class": "cloud", + "unicode": "e988", + "unicode_decimal": 59784 + }, + { + "icon_id": "35959059", + "name": "其他文件", + "font_class": "qitawenjian", + "unicode": "e7b6", + "unicode_decimal": 59318 + }, + { + "icon_id": "1004650", + "name": "文件-压缩", + "font_class": "wenjianyasuo", + "unicode": "e643", + "unicode_decimal": 58947 + }, + { + "icon_id": "1004652", + "name": "文件-视频", + "font_class": "wenjianshipin", + "unicode": "e644", + "unicode_decimal": 58948 + }, + { + "icon_id": "1004653", + "name": "文件-音频", + "font_class": "wenjianyinpin", + "unicode": "e645", + "unicode_decimal": 58949 + }, + { + "icon_id": "1004654", + "name": "文件-图片", + "font_class": "wenjiantupian", + "unicode": "e646", + "unicode_decimal": 58950 + }, + { + "icon_id": "26618450", + "name": "代码文件", + "font_class": "daimawenjian", + "unicode": "e66a", + "unicode_decimal": 58986 + }, + { + "icon_id": "19702974", + "name": "markdown文件", + "font_class": "file-markdown-fill", + "unicode": "ebb1", + "unicode_decimal": 60337 + }, + { + "icon_id": "12904094", + "name": "SVG", + "font_class": "SVG", + "unicode": "e614", + "unicode_decimal": 58900 + }, + { + "icon_id": "12904096", + "name": "HTML", + "font_class": "HTML", + "unicode": "e615", + "unicode_decimal": 58901 + }, + { + "icon_id": "12904097", + "name": "CSS", + "font_class": "CSS", + "unicode": "e618", + "unicode_decimal": 58904 + }, + { + "icon_id": "12904100", + "name": "CSV", + "font_class": "CSV", + "unicode": "e619", + "unicode_decimal": 58905 + }, + { + "icon_id": "12904101", + "name": "JSON", + "font_class": "JSON", + "unicode": "e61b", + "unicode_decimal": 58907 + }, + { + "icon_id": "12904102", + "name": "JS", + "font_class": "JS", + "unicode": "e61c", + "unicode_decimal": 58908 + }, + { + "icon_id": "12904106", + "name": "PDF", + "font_class": "PDF", + "unicode": "e61e", + "unicode_decimal": 58910 + }, + { + "icon_id": "12904107", + "name": "PHP", + "font_class": "PHP", + "unicode": "e621", + "unicode_decimal": 58913 + }, + { + "icon_id": "12904108", + "name": "TXT", + "font_class": "TXT", + "unicode": "e622", + "unicode_decimal": 58914 + }, + { + "icon_id": "12904109", + "name": "XLS", + "font_class": "XLS", + "unicode": "e623", + "unicode_decimal": 58915 + }, + { + "icon_id": "12904116", + "name": "DOC", + "font_class": "DOC", + "unicode": "e624", + "unicode_decimal": 58916 + }, + { + "icon_id": "12904119", + "name": "PPT", + "font_class": "PPT", + "unicode": "e626", + "unicode_decimal": 58918 + }, + { + "icon_id": "12904126", + "name": "SQL", + "font_class": "SQL", + "unicode": "e627", + "unicode_decimal": 58919 + }, + { + "icon_id": "7515699", + "name": "编辑", + "font_class": "bianji", + "unicode": "e605", + "unicode_decimal": 58885 + }, + { + "icon_id": "8440993", + "name": "发送", + "font_class": "fasong", + "unicode": "e705", + "unicode_decimal": 59141 + }, + { + "icon_id": "9512543", + "name": "下载", + "font_class": "download", + "unicode": "e61a", + "unicode_decimal": 58906 + }, + { + "icon_id": "9512544", + "name": "编辑", + "font_class": "edit-fill", + "unicode": "e61d", + "unicode_decimal": 58909 + }, + { + "icon_id": "9512556", + "name": "收藏", + "font_class": "favorite-fill", + "unicode": "e61f", + "unicode_decimal": 58911 + }, + { + "icon_id": "9512559", + "name": "收藏", + "font_class": "favorite", + "unicode": "e620", + "unicode_decimal": 58912 + }, + { + "icon_id": "9512675", + "name": "上传", + "font_class": "upload", + "unicode": "e63e", + "unicode_decimal": 58942 + }, + { + "icon_id": "11633996", + "name": "用户资料", + "font_class": "yonghuziliao", + "unicode": "e6a1", + "unicode_decimal": 59041 + }, + { + "icon_id": "17775968", + "name": "笔", + "font_class": "pen-fill", + "unicode": "e67c", + "unicode_decimal": 59004 + }, + { + "icon_id": "18537099", + "name": "群聊", + "font_class": "qunliao", + "unicode": "e606", + "unicode_decimal": 58886 + }, + { + "icon_id": "18537375", + "name": "视频通话", + "font_class": "shipintonghua", + "unicode": "e609", + "unicode_decimal": 58889 + }, + { + "icon_id": "18654056", + "name": "添加", + "font_class": "tianjia", + "unicode": "e60d", + "unicode_decimal": 58893 + }, + { + "icon_id": "18655694", + "name": "通讯录", + "font_class": "tongxunlu", + "unicode": "e612", + "unicode_decimal": 58898 + }, + { + "icon_id": "18656610", + "name": "添加好友", + "font_class": "tianjiahaoyou", + "unicode": "e613", + "unicode_decimal": 58899 + }, + { + "icon_id": "24660909", + "name": "删除", + "font_class": "shanchu", + "unicode": "e6d3", + "unicode_decimal": 59091 + }, + { + "icon_id": "25015243", + "name": "选择箭头-fill", + "font_class": "choose-fill", + "unicode": "e6a2", + "unicode_decimal": 59042 + }, + { + "icon_id": "27229314", + "name": "文件夹,文件", + "font_class": "a-wenjianjiawenjian", + "unicode": "e69e", + "unicode_decimal": 59038 + }, + { + "icon_id": "27995029", + "name": "搜索", + "font_class": "sousuo", + "unicode": "e6eb", + "unicode_decimal": 59115 + }, + { + "icon_id": "28661052", + "name": "Robot", + "font_class": "Robot", + "unicode": "e67d", + "unicode_decimal": 59005 + }, + { + "icon_id": "32429618", + "name": "扫除", + "font_class": "saochu", + "unicode": "e6a3", + "unicode_decimal": 59043 + }, + { + "icon_id": "38950621", + "name": "返回", + "font_class": "fanhui", + "unicode": "e765", + "unicode_decimal": 59237 + }, + { + "icon_id": "42230703", + "name": "brain-2-fill", + "font_class": "brain-2-fill", + "unicode": "e800", + "unicode_decimal": 59392 + }, + { + "icon_id": "43005043", + "name": "更多", + "font_class": "gengduo", + "unicode": "e6c5", + "unicode_decimal": 59077 + }, { "icon_id": "109713", "name": "垃圾桶", @@ -104,165 +412,11 @@ "unicode_decimal": 58951 }, { - "icon_id": "7515699", - "name": "编辑", - "font_class": "bianji", - "unicode": "e605", - "unicode_decimal": 58885 - }, - { - "icon_id": "8440993", - "name": "发送", - "font_class": "fasong", - "unicode": "e705", - "unicode_decimal": 59141 - }, - { - "icon_id": "9512543", - "name": "下载", - "font_class": "download", - "unicode": "e61a", - "unicode_decimal": 58906 - }, - { - "icon_id": "9512544", - "name": "编辑", - "font_class": "edit-fill", - "unicode": "e61d", - "unicode_decimal": 58909 - }, - { - "icon_id": "9512556", - "name": "收藏", - "font_class": "favorite-fill", - "unicode": "e61f", - "unicode_decimal": 58911 - }, - { - "icon_id": "9512559", - "name": "收藏", - "font_class": "favorite", - "unicode": "e620", - "unicode_decimal": 58912 - }, - { - "icon_id": "9512675", - "name": "上传", - "font_class": "upload", - "unicode": "e63e", - "unicode_decimal": 58942 - }, - { - "icon_id": "11633996", - "name": "用户资料", - "font_class": "yonghuziliao", - "unicode": "e6a1", - "unicode_decimal": 59041 - }, - { - "icon_id": "17775968", - "name": "笔", - "font_class": "pen-fill", - "unicode": "e667", - "unicode_decimal": 58983 - }, - { - "icon_id": "18537099", - "name": "群聊", - "font_class": "qunliao", - "unicode": "e606", - "unicode_decimal": 58886 - }, - { - "icon_id": "18537375", - "name": "视频通话", - "font_class": "shipintonghua", - "unicode": "e609", - "unicode_decimal": 58889 - }, - { - "icon_id": "18654056", - "name": "添加", - "font_class": "tianjia", - "unicode": "e60d", - "unicode_decimal": 58893 - }, - { - "icon_id": "18655694", - "name": "通讯录", - "font_class": "tongxunlu", - "unicode": "e612", - "unicode_decimal": 58898 - }, - { - "icon_id": "18656610", - "name": "添加好友", - "font_class": "tianjiahaoyou", - "unicode": "e613", - "unicode_decimal": 58899 - }, - { - "icon_id": "24660909", - "name": "删除", - "font_class": "shanchu", - "unicode": "e6d3", - "unicode_decimal": 59091 - }, - { - "icon_id": "25015243", - "name": "选择箭头-fill", - "font_class": "choose-fill", - "unicode": "e6a2", - "unicode_decimal": 59042 - }, - { - "icon_id": "27229314", - "name": "文件夹,文件", - "font_class": "a-wenjianjiawenjian", - "unicode": "e69e", - "unicode_decimal": 59038 - }, - { - "icon_id": "27995029", - "name": "搜索", - "font_class": "sousuo", - "unicode": "e6eb", - "unicode_decimal": 59115 - }, - { - "icon_id": "28661052", - "name": "Robot", - "font_class": "Robot", - "unicode": "e661", - "unicode_decimal": 58977 - }, - { - "icon_id": "32429618", - "name": "扫除", - "font_class": "saochu", - "unicode": "e6a3", - "unicode_decimal": 59043 - }, - { - "icon_id": "38950621", - "name": "返回", - "font_class": "fanhui", - "unicode": "e765", - "unicode_decimal": 59237 - }, - { - "icon_id": "42230703", - "name": "brain-2-fill", - "font_class": "brain-2-fill", - "unicode": "e800", - "unicode_decimal": 59392 - }, - { - "icon_id": "43005043", - "name": "更多", - "font_class": "gengduo", - "unicode": "e6c5", - "unicode_decimal": 59077 + "icon_id": "1250", + "name": "其它", + "font_class": "qita", + "unicode": "e600", + "unicode_decimal": 58880 } ] } diff --git a/unpackage/dist/build/app-plus/static/iconfont/iconfont.ttf b/unpackage/dist/build/app-plus/static/iconfont/iconfont.ttf index 0f6a066867badd4a54666a0913bf851d7a3eac33..d1f39be32b34b20232739b749d8e96912e7a89dd 100644 GIT binary patch literal 20808 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 QZF@$J?H(DGX}uZyf67c0#Q*>R delta 1149 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 L+;;-M7U=&0#Mk!f literal 0 HcmV?d00001 diff --git a/unpackage/dist/build/app-plus/static/iconfont/iconfont.woff2 b/unpackage/dist/build/app-plus/static/iconfont/iconfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a7a3a3b174c6d43309f64fec97187a5ae7ebf598 GIT binary patch literal 8976 zcmV+rBk$aIPew8T0RR9103#3p3jhEB08vN)03yEt0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/changelog.md b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/changelog.md deleted file mode 100644 index f1fdae0..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/changelog.md +++ /dev/null @@ -1,26 +0,0 @@ -## 0.1.3(2025-09-16) -- chore: 更新文档 -## 0.1.2(2025-06-07) -- chore: 更新文档 -## 0.1.1(2025-06-02) -- feat: 兼容鸿蒙next -## 0.1.0(2025-04-04) -- chore: 更新文档 -## 0.0.9(2025-03-11) -- fix: 修复安卓报错的问题 -## 0.0.8(2025-03-11) -- fix: 修复报错的问题 -## 0.0.7(2025-03-10) -- feat: 增加重命名选项 -## 0.0.6(2025-02-28) -- feat: 修复uniapp ios路径问题 -## 0.0.5(2024-10-31) -- feat: 修复uniapp ios无法使用 -## 0.0.4(2024-10-26) -- feat: 规范类型 -## 0.0.3(2024-07-10) -- fext: 兼容ios -## 0.0.2(2024-05-21) -- fix: 修复uniapp找不到文件的错误 -## 0.0.1(2024-04-15) -- init diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/components/l-choose-file/l-choose-file.vue b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/components/l-choose-file/l-choose-file.vue deleted file mode 100644 index f60f5cb..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/components/l-choose-file/l-choose-file.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - - \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/components/lime-choose-file/lime-choose-file.uvue b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/components/lime-choose-file/lime-choose-file.uvue deleted file mode 100644 index 4eac8c6..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/components/lime-choose-file/lime-choose-file.uvue +++ /dev/null @@ -1,103 +0,0 @@ - - - - - \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/components/lime-choose-file/lime-choose-file.vue b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/components/lime-choose-file/lime-choose-file.vue deleted file mode 100644 index 7b3067d..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/components/lime-choose-file/lime-choose-file.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - - \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/encrypt b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/encrypt deleted file mode 100644 index 8e9d757..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/encrypt +++ /dev/null @@ -1,2 +0,0 @@ -,P=[&۸6 -IT ]r*IF܃C咺+E|q`(I_+DZsfVqgqݰIC*NRWO5@\7ta `e7HF:Dr|# \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/package.json b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/package.json deleted file mode 100644 index 6288892..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "id": "lime-choose-file", - "displayName": "lime-choose-file 文件选择", - "version": "0.1.3", - "description": "lime-choose-file 文件选择参考uni.chooseFile API实现的UTS API,用法保持一致,从本地选择文件。兼容uniapp/uniappX", - "keywords": [ - "chooseFile", - "文件选择", - "uts" -], - "repository": "", - "engines": { - "HBuilderX": "^4.11", - "uni-app": "^4.61", - "uni-app-x": "^4.61" - }, - "dcloudext": { - "type": "uts", - "sale": { - "regular": { - "price": "29.00" - }, - "sourcecode": { - "price": "268.00" - } - }, - "contact": { - "qq": "" - }, - "declaration": { - "ads": "无", - "data": "无", - "permissions": "无" - }, - "npmurl": "", - "darkmode": "x", - "i18n": "x", - "widescreen": "x" - }, - "uni_modules": { - "dependencies": [], - "encrypt": [], - "platforms": { - "cloud": { - "tcb": "√", - "aliyun": "√", - "alipay": "√" - }, - "client": { - "uni-app": { - "vue": { - "vue2": "√", - "vue3": "√" - }, - "web": { - "safari": "√", - "chrome": "√" - }, - "app": { - "vue": "√", - "nvue": "√", - "android": { - "extVersion": "", - "minVersion": "21" - }, - "ios": "√", - "harmony": "√" - }, - "mp": { - "weixin": "√", - "alipay": "-", - "toutiao": "-", - "baidu": "-", - "kuaishou": "-", - "jd": "-", - "harmony": "-", - "qq": "-", - "lark": "-" - }, - "quickapp": { - "huawei": "-", - "union": "-" - } - }, - "uni-app-x": { - "web": { - "safari": "√", - "chrome": "√" - }, - "app": { - "android": { - "extVersion": "", - "minVersion": "21" - }, - "ios": "√", - "harmony": "√" - }, - "mp": { - "weixin": "√" - } - } - } - } - } -} \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/readme copy.md b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/readme copy.md deleted file mode 100644 index 45dcce2..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/readme copy.md +++ /dev/null @@ -1,61 +0,0 @@ -# lime-choosefile 文件选择 -文件选择UTS API系参考小程序chooseFile API实现的,用法保持一致,目前仅支持uniappX(web,ios,安卓,鸿蒙) - - -## 文档 - 🚀 [choose-file【站点1】](https://limex.qcoon.cn/native/choose-file.html) - 🌍 [choose-file【站点2】](https://limeui.netlify.app/native/choose-file.html) - 🔥 [choose-file【站点3】](https://limeui.familyzone.top/native/choose-file.html) - - - -## 安装 -插件市场导入,APP需要在页面上引入,然后自定义基座,完成自定义基座后,选择自定义基座运行 - -## 使用 -### UNIAPPX -```js -import { chooseFile, type ChooseFileOption } from '@/uni_modules/lime-choose-file' - -const images = ref([]) -const onClick = () => { - chooseFile({ - filename: 'xxxx', // 可选 用于给文件重命名(安卓、IOS) - type: 'image', - success(res){ - images.value = res.tempFiles.map((item):string => item.path) - console.log('res', res.tempFiles) - }, - fail(err){ - console.log('err', err) - } - } as ChooseFileOption) -} -``` - -### UNIAPP -```js -import { chooseFile } from '@/uni_modules/lime-choose-file' - -const images = ref([]) -const onClick = () => { - chooseFile({ - filename: 'xxxx', // 可选 用于给文件重命名(安卓、IOS) - type: 'image', - success(res){ - images.value = res.tempFiles.map((item):string => item.path) - console.log('res', res.tempFiles) - }, - fail(err){ - console.log('err', err) - } - }) -} -``` - -## 常见问题 -- 1、IOS路径是中文时无法上传到服务器,这时候需要设置`filename`给文件重命名 - - -## API -因为直接参照小程序`chooseFile`API,所以可以直接按[chooseFile](https://uniapp.dcloud.net.cn/api/media/file.html#choosefile)文档来 \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/readme.md b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/readme.md deleted file mode 100644 index fde224f..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/readme.md +++ /dev/null @@ -1,126 +0,0 @@ -# lime-choose-file 文件选择组件 -一个基于UTS实现的文件选择插件,参考小程序chooseFile API实现,用法保持一致。支持安卓、iOS、鸿蒙和H5平台。提供了选择图片、视频和其他文件类型的功能。组件提供了简单易用的API,使开发者能够方便地在应用中集成文件选择功能。 - -## 文档链接 -📚 组件详细文档请访问以下站点: -- [文件选择组件文档 - 站点1](https://limex.qcoon.cn/native/choose-file.html) -- [文件选择组件文档 - 站点2](https://limeui.netlify.app/native/choose-file.html) -- [文件选择组件文档 - 站点3](https://limeui.familyzone.top/native/choose-file.html) - -## 安装方法 -1. 在uni-app插件市场中搜索并导入`lime-choose-file` -2. 导入后在页面引入相关方法 -3. 需要自定义基座才能使用 -4. 试用符合需求后才购买,插件无法退款 - -## 代码演示 - -### UNIAPPX 使用方式 -```ts -import { chooseFile, type ChooseFileOption } from '@/uni_modules/lime-choose-file' - -const images = ref([]) -const onClick = () => { - chooseFile({ - filename: 'xxxx', // 可选 用于给文件重命名(安卓、iOS) - type: 'image', - success(res){ - images.value = res.tempFiles.map((item):string => item.path) - console.log('选择结果:', res.tempFiles) - }, - fail(err){ - console.log('选择失败:', err) - } - } as ChooseFileOption) -} -``` - -### UNIAPP 使用方式 -```ts -import { chooseFile } from '@/uni_modules/lime-choose-file' - -const images = ref([]) -const onClick = () => { - chooseFile({ - filename: 'xxxx', // 可选 用于给文件重命名(安卓、iOS) - type: 'image', - success(res){ - images.value = res.tempFiles.map((item):string => item.path) - console.log('选择结果:', res.tempFiles) - }, - fail(err){ - console.log('选择失败:', err) - } - }) -} -``` - -## API文档 - -### chooseFile 方法 - -| 参数 | 说明 | 类型 | 必填 | -| --- | --- | --- | --- | -| options | 文件选择选项 | _ChooseFileOption_ | 是 | - -### ChooseFileOption 选项 - -| 参数 | 类型 | 必填 | 说明 | -| --- | --- | --- | --- | -| filename | _string_ | 否 | 指定文件名,用于给文件重命名(安卓、iOS) | -| count | _number_ | 否 | 最多可以选择的文件数量,默认为100 | -| type | _string_ | 否 | 所选文件类型,默认为'all' | -| extension | _string[]_ | 否 | 根据文件拓展名过滤,每一项都不能是空字符串。默认不过滤。仅H5支持 | -| success | _(result: ChooseFileSuccessCallbackResult) => void_ | 否 | 接口调用成功的回调函数 | -| fail | _(res: GeneralCallbackResult) => void_ | 否 | 接口调用失败的回调函数 | -| complete | _(res: GeneralCallbackResult) => void_ | 否 | 接口调用结束的回调函数 | - -### ChooseFileSuccessCallbackResult 返回参数 - -| 参数 | 类型 | 说明 | -| --- | --- | --- | -| tempFiles | _ChooseFile[]_ | 返回选择的文件的本地临时文件对象数组 | -| errMsg | _string_ | 错误信息 | - -### ChooseFile 对象结构 - -| 参数 | 类型 | 说明 | -| --- | --- | --- | -| name | _string_ | 选择的文件名称 | -| path | _string_ | 本地临时文件路径 (本地路径) | -| size | _number_ | 本地临时文件大小,单位 B | -| time | _number_ | 选择的文件的会话发送时间,Unix时间戳 | -| type | _'video' \| 'image' \| 'file' \| 'all'_ | 选择的文件类型 | - -### 文件类型说明 - -| 类型值 | 说明 | -| --- | --- | -| video | 视频文件 | -| image | 图片文件 | -| file | 除图片和视频外的其他文件 | -| all | 所有类型文件 | - -## 功能特点 - -- 支持多种文件类型的选择,包括图片、视频和其他文件 -- 支持文件重命名功能 -- 兼容安卓、iOS、鸿蒙和H5平台 -- 提供简单易用的API接口 -- 支持指定最大选择数量 -- 支持文件扩展名过滤(H5平台) - -## 常见问题 - -- iOS路径是中文时无法上传到服务器,这时候需要设置`filename`给文件重命名 -- APP端需要自定义基座才能使用 -- 文件选择后会返回临时文件路径,需要及时使用或保存 -- H5端可以通过extension参数过滤文件类型 - -## 支持与赞赏 - -如果你觉得本插件解决了你的问题,可以考虑支持作者: - -| 支付宝赞助 | 微信赞助 | -|------------|------------| -| ![](https://testingcf.jsdelivr.net/gh/liangei/image@1.9/alipay.png) | ![](https://testingcf.jsdelivr.net/gh/liangei/image@1.9/wpay.png) | diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-android/index.uts b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-android/index.uts deleted file mode 100644 index f003b1d..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-android/index.uts +++ /dev/null @@ -1,206 +0,0 @@ -// @ts-nocheck -import Intent from 'android.content.Intent'; -import ClipData from 'android.content.ClipData'; -import Uri from 'android.net.Uri'; -import InputStream from 'java.io.InputStream'; -import OpenableColumns from 'android.provider.OpenableColumns'; -import Cursor from 'android.database.Cursor'; -import File from 'java.io.File'; -import FileInputStream from 'java.io.FileInputStream'; -import FileOutputStream from 'java.io.FileOutputStream'; -import BufferedOutputStream from 'java.io.BufferedOutputStream'; -import ByteArrayInputStream from 'java.io.ByteArrayInputStream'; - -import { ChooseFileOption, ChooseFile, ChooseFileSuccessCallbackResult } from '../interface' -import { GeneralCallbackResultImpl } from '../unierror' - -const REQUEST_CODE_CHOOSE_FILE : Int = 42 -let resultFunction : ((requestCode : Int, resultCode : Int, data ?: Intent) => void) | null = null - - -class ChooseFileImpl implements ChooseFile { - name : string = '' - path : string = '' - // private _path : string = '' - size : number = 0 - time : number = 0 - type : string = 'file' - // private uri : Uri - private options: ChooseFileOption - constructor(uri : Uri, options : ChooseFileOption) { - // this.uri = uri - this.options = options - this.time = Date.now() - this.type = this.getFileTypeFromUri(uri); - // this._path = uri.getPath() ?? '' - this.getFileInfoFromUri(uri) - if (this.isCache(options)) { - this.copyFileToCache(uri) - } - - } - private isCache(options : ChooseFileOption) : boolean { - const extension = this.getFileExtension(this.name) - const extensions = options.extension - const type = options.type ?? 'all' - const hasExtension = extensions != null && extension != '' && extensions.includes(extension) - const isVideoOrImage = ['video', 'image'].includes(type) - const isFileAndNotVideoOrImage = type == 'file' && !['video', 'image'].includes(this.type); - if ((type == 'all' || isVideoOrImage || isFileAndNotVideoOrImage) && !hasExtension) { - return true - } else { - return false - } - } - private getFileExtension(fileName : string) : string { - const lastDotIndex = fileName.lastIndexOf("."); - if (lastDotIndex == -1) { - return ""; - } - return fileName.substring(lastDotIndex + 1); - } - private copyFileToCache(uri : Uri) { - const cacheDir = UTSAndroid.getAppCachePath(); - const context = UTSAndroid.getAppContext(); - if(cacheDir != null) { - const path = new File(cacheDir); - if (!path.exists()) { - path.mkdir(); - } - } - let fileName = this.name - if(this.options.filename != null) { - fileName = this.options.filename!; - if(this.options.count != null && this.options.count! > 1) { - fileName = `${fileName}_${Date.now()}`; - } - const extension = this.getFileExtension(this.name) - - fileName = `${fileName}.${extension}` - } - const destFile = new File(cacheDir, fileName); - - try { - const inputStream = context!.getContentResolver().openInputStream(uri) - const outputStream = new FileOutputStream(destFile) - if (inputStream != null) { - let buffer = ByteArray(1024); - let c = inputStream.read(buffer) - while (c > 0) { - outputStream.write(buffer, 0, c); - c = inputStream.read(buffer) - } - } - this.path = cacheDir + fileName//this.name - } catch (e) { - - } - } - private getFileTypeFromUri(uri : Uri) : string { - const context = UTSAndroid.getAppContext(); - let fileType = 'file' - let mimeType = context!.getContentResolver().getType(uri); - if (mimeType != null) { - if (mimeType.startsWith("video")) { - fileType = "video"; - } else if (mimeType.startsWith("image")) { - fileType = "image"; - } - } - return fileType; - } - private getFileInfoFromUri(uri : Uri) { - const context = UTSAndroid.getAppContext(); - let cursor = context!.getContentResolver().query(uri, null, null, null, null); - if (cursor != null && cursor.moveToFirst()) { - this.name = cursor.getString(cursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME)) - const fileSize = cursor.getLong(cursor.getColumnIndexOrThrow(OpenableColumns.SIZE)); - this.size = Number.from(fileSize) - cursor.close(); - } else if ("file".equals(uri.getScheme())) { - this.name = uri.getLastPathSegment() ?? ''; - const file = new File(uri.getPath() ?? ''); - const fileSize = file.length(); - this.size = Number.from(fileSize) - } - } -} - - -export function chooseFile(options : ChooseFileOption) { - if (resultFunction != null) { - UTSAndroid.offAppActivityResult(resultFunction!) - } - const type = options.type ?? 'all' - const intent = new Intent(Intent.ACTION_GET_CONTENT); - if (type.equals("all") || type.equals("file")) { - intent.setType("*/*"); - } else if (type.equals("video")) { - intent.setType("video/*"); - } else if (type.equals("image")) { - intent.setType("image/*"); - } - intent.addCategory(Intent.CATEGORY_OPENABLE); - intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, options.count == 1 ? false : true); // 允许多选 - - resultFunction = (requestCode : Int, resultCode : Int, data ?: Intent) => { - if (requestCode == REQUEST_CODE_CHOOSE_FILE) { - UTSAndroid.offAppActivityResult(resultFunction!); - if (resultCode == -1 && data != null) { - const clipData = data.getClipData(); - const tempFiles : ChooseFile[] = [] - - if (clipData != null) { - // 多选 - // const itemCount = clipData.getItemCount(); - // if (options.count != null && options.count! > itemCount) { - // const err = new GeneralCallbackResultImpl(9010002, `选中文件数量超过${options.count}`) - // options.fail?.(err) - // options.complete?.(err) - // return - // } - for (let i = 0; i < clipData.getItemCount(); i++) { - const uri = clipData.getItemAt(i.toInt()).getUri(); - const chooseFile = new ChooseFileImpl(uri, options); - if(chooseFile.path !=''){ - tempFiles.push(chooseFile) - } - } - } else { - // 单选 - const uri = data.getData(); - if (uri != null) { - const chooseFile = new ChooseFileImpl(uri, options) - if(chooseFile.path !='' ){ - tempFiles.push(chooseFile) - } - - } - } - const count = options.count ?? Integer.MAX_VALUE // Number.MAX_VALUE - if(tempFiles.length > 0 && count >= tempFiles.length){ - options.success?.({ - tempFiles, - errMsg: 'chooseFile:ok' - } as ChooseFileSuccessCallbackResult) - } else { - const err = new GeneralCallbackResultImpl(9010002, `没有可用的文件或文件超过设置数量`) - options.fail?.(err) - options.complete?.(err) - } - } else { - const err = new GeneralCallbackResultImpl(9010002, `没有可用的文件`) - options.fail?.(err) - options.complete?.(err) - } - } else { - const err = new GeneralCallbackResultImpl(9010002, `没有可用的文件`) - options.fail?.(err) - options.complete?.(err) - } - } - - UTSAndroid.onAppActivityResult(resultFunction!) - UTSAndroid.getUniActivity()!.startActivityForResult(Intent.createChooser(intent, "选择文件"), REQUEST_CODE_CHOOSE_FILE) - // UTSAndroid.getUniActivity()!.overridePendingTransition((10).toInt(), (0).toInt()); -} \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-android/src/index.kt b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-android/src/index.kt new file mode 100644 index 0000000..15800f5 --- /dev/null +++ b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-android/src/index.kt @@ -0,0 +1,262 @@ +@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "SENSELESS_COMPARISON", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") +package uts.sdk.modules.limeChooseFile +import android.content.Intent +import android.net.Uri +import android.provider.OpenableColumns +import io.dcloud.uniapp.* +import io.dcloud.uniapp.extapi.* +import io.dcloud.uts.* +import io.dcloud.uts.Map +import io.dcloud.uts.Set +import io.dcloud.uts.UTSAndroid +import java.io.File +import java.io.FileOutputStream +import kotlin.properties.Delegates +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.async +typealias ChooseFileErrorCode = Number +interface GeneralCallbackResult : IUniError { + override var errCode: ChooseFileErrorCode +} +interface ChooseFile { + var name: String + var path: String + var size: Number + var time: Number + var type: String +} +open class ChooseFileSuccessCallbackResult ( + @JsonNotNull + open var tempFiles: UTSArray, + @JsonNotNull + open var errMsg: String, +) : UTSObject() +typealias ChooseFileSuccessCallback = (result: ChooseFileSuccessCallbackResult) -> Unit +typealias ChooseFileFailCallback = (res: GeneralCallbackResult) -> Unit +typealias ChooseFileCompleteCallback = (res: GeneralCallbackResult) -> Unit +open class ChooseFileOption ( + open var filename: String? = null, + open var count: Number? = null, + open var type: String? = null, + open var extension: UTSArray? = null, + open var success: ChooseFileSuccessCallback? = null, + open var fail: ChooseFileFailCallback? = null, + open var complete: ChooseFileCompleteCallback? = null, +) : UTSObject() +val UniErrorSubject = "chooseFile\"" +val UniErrors: Map = Map(_uA( + _uA( + 9010001, + "chooseFile:ok" + ), + _uA( + 9010002, + "ChooseFile:failed" + ) +)) +open class GeneralCallbackResultImpl : UniError, GeneralCallbackResult { + constructor(errCode: ChooseFileErrorCode, errMsg: String? = null) : super() { + this.errSubject = UniErrorSubject + this.errCode = errCode + this.errMsg = errMsg ?: UniErrors[errCode] ?: "" + } +} +val REQUEST_CODE_CHOOSE_FILE: Int = 42 +var resultFunction: ((requestCode: Int, resultCode: Int, data: Intent?) -> Unit)? = null +open class ChooseFileImpl : ChooseFile { + override var name: String = "" + override var path: String = "" + override var size: Number = 0 + override var time: Number = 0 + override var type: String = "file" + private var options: ChooseFileOption + constructor(uri: Uri, options: ChooseFileOption){ + this.options = options + this.time = Date.now() + this.type = this.getFileTypeFromUri(uri) + this.getFileInfoFromUri(uri) + if (this.isCache(options)) { + this.copyFileToCache(uri) + } + } + private fun isCache(options: ChooseFileOption): Boolean { + val extension = this.getFileExtension(this.name) + val extensions = options.extension + val type = options.type ?: "all" + val hasExtension = extensions != null && extension != "" && extensions.includes(extension) + val isVideoOrImage = _uA( + "video", + "image" + ).includes(type) + val isFileAndNotVideoOrImage = type == "file" && !_uA( + "video", + "image" + ).includes(this.type) + if ((type == "all" || isVideoOrImage || isFileAndNotVideoOrImage) && !hasExtension) { + return true + } else { + return false + } + } + private fun getFileExtension(fileName: String): String { + val lastDotIndex = fileName.lastIndexOf(".") + if (lastDotIndex == -1) { + return "" + } + return fileName.substring(lastDotIndex + 1) + } + private fun copyFileToCache(uri: Uri) { + val cacheDir = UTSAndroid.getAppCachePath() + val context = UTSAndroid.getAppContext() + if (cacheDir != null) { + val path = File(cacheDir) + if (!path.exists()) { + path.mkdir() + } + } + var fileName = this.name + if (this.options.filename != null) { + fileName = this.options.filename!! + if (this.options.count != null && this.options.count!! > 1) { + fileName = "" + fileName + "_" + Date.now() + } + val extension = this.getFileExtension(this.name) + fileName = "" + fileName + "." + extension + } + val destFile = File(cacheDir, fileName) + try { + val inputStream = context!!.getContentResolver().openInputStream(uri) + val outputStream = FileOutputStream(destFile) + if (inputStream != null) { + var buffer = ByteArray(1024) + var c = inputStream.read(buffer) + while(c > 0){ + outputStream.write(buffer, 0, c) + c = inputStream.read(buffer) + } + } + this.path = cacheDir + fileName + } + catch (e: Throwable) {} + } + private fun getFileTypeFromUri(uri: Uri): String { + val context = UTSAndroid.getAppContext() + var fileType = "file" + var mimeType = context!!.getContentResolver().getType(uri) + if (mimeType != null) { + if (mimeType.startsWith("video")) { + fileType = "video" + } else if (mimeType.startsWith("image")) { + fileType = "image" + } + } + return fileType + } + private fun getFileInfoFromUri(uri: Uri) { + val context = UTSAndroid.getAppContext() + var cursor = context!!.getContentResolver().query(uri, null, null, null, null) + if (cursor != null && cursor.moveToFirst()) { + this.name = cursor.getString(cursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME)) + val fileSize = cursor.getLong(cursor.getColumnIndexOrThrow(OpenableColumns.SIZE)) + this.size = UTSNumber.from(fileSize) + cursor.close() + } else if ("file".equals(uri.getScheme())) { + this.name = uri.getLastPathSegment() ?: "" + val file = File(uri.getPath() ?: "") + val fileSize = file.length() + this.size = UTSNumber.from(fileSize) + } + } +} +fun chooseFile(options: ChooseFileOption) { + if (resultFunction != null) { + UTSAndroid.offAppActivityResult(resultFunction!!) + } + val type = options.type ?: "all" + val intent = Intent(Intent.ACTION_GET_CONTENT) + if (type.equals("all") || type.equals("file")) { + intent.setType("*/*") + } else if (type.equals("video")) { + intent.setType("video/*") + } else if (type.equals("image")) { + intent.setType("image/*") + } + intent.addCategory(Intent.CATEGORY_OPENABLE) + intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, if (options.count == 1) { + false + } else { + true + } + ) + resultFunction = fun(requestCode: Int, resultCode: Int, data: Intent?){ + if (requestCode == REQUEST_CODE_CHOOSE_FILE) { + UTSAndroid.offAppActivityResult(resultFunction!!) + if (resultCode == -1 && data != null) { + val clipData = data.getClipData() + val tempFiles: UTSArray = _uA() + if (clipData != null) { + run { + var i: Number = 0 + while(i < clipData.getItemCount()){ + val uri = clipData.getItemAt(i.toInt()).getUri() + val chooseFile = ChooseFileImpl(uri, options) + if (chooseFile.path != "") { + tempFiles.push(chooseFile) + } + i++ + } + } + } else { + val uri = data.getData() + if (uri != null) { + val chooseFile = ChooseFileImpl(uri, options) + if (chooseFile.path != "") { + tempFiles.push(chooseFile) + } + } + } + val count = options.count ?: Integer.MAX_VALUE + if (tempFiles.length > 0 && count >= tempFiles.length) { + options.success?.invoke(ChooseFileSuccessCallbackResult(tempFiles = tempFiles, errMsg = "chooseFile:ok")) + } else { + val err = GeneralCallbackResultImpl(9010002, "没有可用的文件或文件超过设置数量") + options.fail?.invoke(err) + options.complete?.invoke(err) + } + } else { + val err = GeneralCallbackResultImpl(9010002, "没有可用的文件") + options.fail?.invoke(err) + options.complete?.invoke(err) + } + } else { + val err = GeneralCallbackResultImpl(9010002, "没有可用的文件") + options.fail?.invoke(err) + options.complete?.invoke(err) + } + } + UTSAndroid.onAppActivityResult(resultFunction!!) + UTSAndroid.getUniActivity()!!.startActivityForResult(Intent.createChooser(intent, "选择文件"), REQUEST_CODE_CHOOSE_FILE) +} +open class ChooseFileOptionJSONObject : UTSJSONObject() { + open var filename: String? = null + open var count: Number? = null + open var type: String? = null + open var extension: UTSArray? = null + open var success: UTSCallback? = null + open var fail: UTSCallback? = null + open var complete: UTSCallback? = null +} +fun chooseFileByJs(options: ChooseFileOptionJSONObject) { + return chooseFile(ChooseFileOption(filename = options.filename, count = options.count, type = options.type, extension = options.extension, success = fun(result: ChooseFileSuccessCallbackResult): Unit { + options.success?.invoke(result) + } + , fail = fun(res: GeneralCallbackResult): Unit { + options.fail?.invoke(res) + } + , complete = fun(res: GeneralCallbackResult): Unit { + options.complete?.invoke(res) + } + )) +} diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-ios/config.json b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-ios/config.json deleted file mode 100644 index 721b81e..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-ios/config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deploymentTarget": "9" -} \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-ios/index.uts b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-ios/index.uts deleted file mode 100644 index 413fa87..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/app-ios/index.uts +++ /dev/null @@ -1,138 +0,0 @@ -// @ts-nocheck -import { ChooseFileOption, ChooseFile, ChooseFileSuccessCallbackResult } from '../interface' -import { UIDocumentPickerDelegate, UIDocumentPickerMode } from "UIKit" -import { URL, FileManager } from 'Foundation'; -import { GeneralCallbackResultImpl } from '../unierror' -import { DispatchQueue } from 'Dispatch'; - -const documentTypes : Map = new Map([ - ["all", ["public.item"]], - ["file", [ - "public.text", - "public.zip-archive", - "public.data", - "com.adobe.pdf", - "com.microsoft.word.doc", - "com.microsoft.word.docx", - "com.microsoft.excel.xls", - "com.microsoft.excel.xlsx" - ] - ], - ["video", ["public.movie"]], - ["image", ["public.image"]], -]) - -class ChooseFileImpl { - name : string = '' - path : string = '' - size : number = 0 - time : number = 0 - type : string = 'file' - constructor(uri : URL, options : ChooseFileOption) { - try { - const originalFileName = uri.lastPathComponent; - const attributes = UTSiOS.try(FileManager.default.attributesOfItem(atPath = uri.path)) - const fileSize = attributes[FileAttributeKey.size] as number - const pathExtension = `${uri.pathExtension}` - - const imageFormats = ['jpeg', 'jpg', 'png', 'gif', 'bmp', 'tiff', 'svg'] - const videoFormats = ['mov', 'm4v', 'mp4', 'avi'] - - - let fileName = originalFileName - if(options.filename != null) { - fileName = options.filename! - if(options.count != null && options.count! > 1) { - fileName = `${fileName}_${Date.now()}`; - } - fileName = `${fileName}.${pathExtension}` - } - - // #ifdef UNI-APP-X - const dataPath = UTSiOS.getDataPath() - // #endif - // #ifndef UNI-APP-X - const dataPath = UTSiOS.getDataPath().replace(/data$/, "doc"); - // #endif - const file = new URL(fileURLWithPath = dataPath).appendingPathComponent(fileName)//.absoluteString - const fileData = FileManager.default.contents(atPath = uri.path); - UTSiOS.try(fileData?.write(to = file)) - - if (imageFormats.includes(pathExtension)) { - this.type = 'image' - } else if (videoFormats.includes(pathExtension)) { - this.type = 'video' - } else { - this.type = 'file' - } - - this.name = `${originalFileName}` - this.size = fileSize - this.path = `${file.absoluteString}` - } catch (e) { - - } - } -} - -class FilePickerManager implements UIDocumentPickerDelegate { - options : ChooseFileOption = {} - constructor() { } - chooseFile(options : ChooseFileOption) { - DispatchQueue.main.async(execute = () : void => { - this.options = options - const type = options.type ?? 'all' - const count = options.count ?? 1 - const types = (documentTypes.get(type) ?? documentTypes.get('all')) as string[] - let documentPicker = UIDocumentPickerViewController( - documentTypes = types, - in = UIDocumentPickerMode.import - ) - documentPicker.delegate = this - // 多选要大于 ios11 - if (UTSiOS.available("iOS 11.0, *")) { - documentPicker.allowsMultipleSelection = count > 1 - } - UTSiOS.getCurrentViewController().present(documentPicker, animated = true) - }) - } - documentPicker(controller : UIDocumentPickerViewController, @argumentLabel("didPickDocumentsAt") urls : URL[]) { - DispatchQueue.main.async(execute = () : void => { - const tempFiles : ChooseFile[] = [] - for (let i = 0; i < urls.length; i++) { - const url = urls[i] - const chooseFile = new ChooseFileImpl(url, this.options); - // IOS -> js 无法传class? - const file : ChooseFile = { - name: chooseFile.name, - path: chooseFile.path, - size: chooseFile.size, - time: chooseFile.time, - type: chooseFile.type, - } - if (chooseFile.path != '') { - tempFiles.push(file) - } - } - - const count = this.options.count ?? Number.from(Double.greatestFiniteMagnitude) //Number.from(Double.MAX_VALUE) - if (tempFiles.length > 0 && count >= tempFiles.length) { - const res : ChooseFileSuccessCallbackResult = { - tempFiles, - errMsg: 'chooseFile:ok' - } - this.options.success?.(res) - } else { - const err = new GeneralCallbackResultImpl(9010002, `没有可用的文件或文件超过设置数量`) - this.options.fail?.(err) - this.options.complete?.(err) - } - }) - } -} - -const fileManager = new FilePickerManager() - -export function chooseFile(options : ChooseFileOption) { - fileManager.chooseFile(options) -} \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/index.uts b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/index.uts deleted file mode 100644 index 29c01ab..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/index.uts +++ /dev/null @@ -1,35 +0,0 @@ -// @ts-nocheck -export * from './interface'; -import { type ChooseFileOption } from './interface'; - -export function chooseFile(options: ChooseFileOption){ - // #ifdef WEB || APP-HARMONY - uni.chooseFile({ - count: options.count ?? 100, - type: options.type, - extension: options.extension, - success(res) { - options.success?.({ - // tempFilePaths - errMsg : 'ok', - tempFiles: res.tempFiles - }) - }, - fail(err) { - options.fail?.({ - errCode: err.errCode, - errSubject: 'lime-choose-file' - }) - }, - complete(res) { - // options.complete?.(res) - } - }) - // #endif - // #ifdef MP-WEIXIN - uni.chooseMessageFile(options) - // #endif - // #ifndef WEB || MP-WEIXIN || APP-HARMONY - console.error('chooseFile 不支持该平台') - // #endif -} \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/interface.uts b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/interface.uts deleted file mode 100644 index 2f433ac..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/interface.uts +++ /dev/null @@ -1,108 +0,0 @@ -// @ts-nocheck -/** - * 错误码 - * 根据uni错误码规范要求,建议错误码以90开头,以下是错误码示例: - * - 9010001 错误信息1 - * - 9010002 错误信息2 - */ -export type ChooseFileErrorCode = 9010001 | 9010002 | 1101001 | 1101002 | 1101003 | 1101004 | 1101005 | 1101006 | 1101007 | 1101008 | 1101009 | 1101010; -/** - * myApi 的错误回调参数 - */ -export interface GeneralCallbackResult extends IUniError { - errCode : ChooseFileErrorCode -}; - - -/** 返回选择的文件的本地临时文件对象数组 */ -// #ifdef APP-ANDROID -export interface ChooseFile { - /** 选择的文件名称 */ - name : string - /** 本地临时文件路径 (本地路径) */ - path : string - /** 本地临时文件大小,单位 B */ - size : number - /** 选择的文件的会话发送时间,Unix时间戳,工具暂不支持此属性 */ - time : number - /** 选择的文件类型 - * - * 可选值: - * - 'video': 选择了视频文件; - * - 'image': 选择了图片文件; - * - 'file': 选择了除图片和视频的文件; */ - type : 'video' | 'image' | 'file' | 'all' -} -// #endif -// #ifndef APP-ANDROID -export type ChooseFile = { - /** 选择的文件名称 */ - name : string - /** 本地临时文件路径 (本地路径) */ - path : string - /** 本地临时文件大小,单位 B */ - size : number - /** 选择的文件的会话发送时间,Unix时间戳,工具暂不支持此属性 */ - time : number - /** 选择的文件类型 - * - * 可选值: - * - 'video': 选择了视频文件; - * - 'image': 选择了图片文件; - * - 'file': 选择了除图片和视频的文件; */ - type : 'video' | 'image' | 'file' | 'all' -} -// #endif - -export type ChooseFileSuccessCallbackResult = { - /** 返回选择的文件的本地临时文件对象数组 */ - tempFiles : ChooseFile[], - errMsg : string -} - - -/** 接口调用成功的回调函数 */ -export type ChooseFileSuccessCallback = ( - result : ChooseFileSuccessCallbackResult -) => void - -/** 接口调用失败的回调函数 */ -export type ChooseFileFailCallback = (res : GeneralCallbackResult) => void - -/** 接口调用结束的回调函数(调用成功、失败都会执行) */ -export type ChooseFileCompleteCallback = ( - res : GeneralCallbackResult -) => void - -export type ChooseFileOption = { - /** - * 指定文件名,如果是多选就在后面增加上时间 - */ - filename?: string - /** - * 最多可以选择的文件数量。 - * @defaultValue 100 - */ - count ?: number | null, - /** - * 所选文件类型 - * @defaultValue all - */ - type ?: string | null, - /** - * 根据文件拓展名过滤,每一项都不能是空字符串。默认不过滤。仅H5支持 - */ - extension ?: (string[]) | null, - /** - * 成功则返回图片的本地文件路径列表 tempFilePaths - */ - success ?: ChooseFileSuccessCallback | null, - /** - * 接口调用失败的回调函数 - */ - fail ?: ChooseFileFailCallback | null, - /** - * 接口调用结束的回调函数(调用成功、失败都会执行) - */ - complete ?: ChooseFileCompleteCallback | null -} \ No newline at end of file diff --git a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/unierror.uts b/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/unierror.uts deleted file mode 100644 index d6c2b73..0000000 --- a/unpackage/dist/build/app-plus/uni_modules/lime-choose-file/utssdk/unierror.uts +++ /dev/null @@ -1,40 +0,0 @@ -// @ts-nocheck -/* 此规范为 uni 规范,可以按照自己的需要选择是否实现 */ -import { ChooseFileErrorCode, GeneralCallbackResult } from "./interface.uts" -/** - * 错误主题 - * 注意:错误主题一般为插件名称,每个组件不同,需要使用时请更改。 - * [可选实现] - */ -export const UniErrorSubject = 'chooseFile"'; - - -/** - * 错误信息 - * @UniError - * [可选实现] - */ -export const UniErrors : Map = new Map([ - /** - * 错误码及对应的错误信息 - */ - [9010001, 'chooseFile:ok'], - [9010002, 'ChooseFile:failed'], -]); - - -/** - * 错误对象实现 - */ -export class GeneralCallbackResultImpl extends UniError implements GeneralCallbackResult { - - /** - * 错误对象构造函数 - */ - constructor(errCode : ChooseFileErrorCode, errMsg: string|null = null) { - super(); - this.errSubject = UniErrorSubject; - this.errCode = errCode; - this.errMsg = errMsg ?? UniErrors[errCode] ?? ""; - } -} \ No newline at end of file diff --git a/unpackage/dist/build/hx/app-plus/app-android/uts/uni_modules/lime-choose-file/manifest.json b/unpackage/dist/build/hx/app-plus/app-android/uts/uni_modules/lime-choose-file/manifest.json new file mode 100644 index 0000000..e42fee8 --- /dev/null +++ b/unpackage/dist/build/hx/app-plus/app-android/uts/uni_modules/lime-choose-file/manifest.json @@ -0,0 +1,32 @@ +{ + "version": "1", + "env": { + "compilerVersion": "5.07" + }, + "files": { + "utssdk/app-android/index.uts": { + "md5": "41a4e16dddeba7d4a58db6399cd86ee8" + }, + "utssdk/index.uts": { + "md5": "e6a6ba045e443b3a4973f9217894fa1c" + }, + "utssdk/interface.uts": { + "md5": "1b0ac84897039cfd08776b87e0c6582a" + }, + "utssdk/unierror.uts": { + "md5": "82736e70a9d5007436651a5d33897b4e" + }, + "package.json": { + "md5": "4d1ca74cea144db04520444b4216f76b" + }, + "readme copy.md": { + "md5": "6a3473bb03cb1f311be627c885b49dbe" + }, + "utssdk/app-android/AndroidManifest.xml": { + "md5": "e7b416d035a0a308cd13eba12b2db438" + }, + "utssdk/app-android/config.json": { + "md5": "49e34dad9b85d9ddf183e599555456fa" + } + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/app/uni_modules/lime-choose-file/utssdk/app-android/index.kt.map b/unpackage/dist/dev/.sourcemap/app/uni_modules/lime-choose-file/utssdk/app-android/index.kt.map new file mode 100644 index 0000000..27c2988 --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/app/uni_modules/lime-choose-file/utssdk/app-android/index.kt.map @@ -0,0 +1 @@ +{"version":3,"sources":["uni_modules/lime-choose-file/utssdk/app-android/index.uts","uni_modules/lime-choose-file/utssdk/interface.uts","uni_modules/lime-choose-file/utssdk/unierror.uts"],"sourcesContent":["// @ts-nocheck\r\nimport Intent from 'android.content.Intent';\r\nimport ClipData from 'android.content.ClipData';\r\nimport Uri from 'android.net.Uri';\r\nimport InputStream from 'java.io.InputStream';\r\nimport OpenableColumns from 'android.provider.OpenableColumns';\r\nimport Cursor from 'android.database.Cursor';\r\nimport File from 'java.io.File';\r\nimport FileInputStream from 'java.io.FileInputStream';\r\nimport FileOutputStream from 'java.io.FileOutputStream';\r\nimport BufferedOutputStream from 'java.io.BufferedOutputStream';\r\nimport ByteArrayInputStream from 'java.io.ByteArrayInputStream';\r\n\r\nimport { ChooseFileOption, ChooseFile, ChooseFileSuccessCallbackResult } from '../interface'\r\nimport { GeneralCallbackResultImpl } from '../unierror'\r\n\r\nconst REQUEST_CODE_CHOOSE_FILE : Int = 42\r\nlet resultFunction : ((requestCode : Int, resultCode : Int, data ?: Intent) => void) | null = null\r\n\r\n\r\nclass ChooseFileImpl implements ChooseFile {\r\n\tname : string = ''\r\n\tpath : string = ''\r\n\t// private _path : string = ''\r\n\tsize : number = 0\r\n\ttime : number = 0\r\n\ttype : string = 'file'\r\n\t// private uri : Uri \r\n\tprivate options: ChooseFileOption\r\n\tconstructor(uri : Uri, options : ChooseFileOption) {\r\n\t\t// this.uri = uri\r\n\t\tthis.options = options\r\n\t\tthis.time = Date.now()\r\n\t\tthis.type = this.getFileTypeFromUri(uri);\r\n\t\t// this._path = uri.getPath() ?? ''\r\n\t\tthis.getFileInfoFromUri(uri)\r\n\t\tif (this.isCache(options)) {\r\n\t\t\tthis.copyFileToCache(uri)\r\n\t\t}\r\n\r\n\t}\r\n\tprivate isCache(options : ChooseFileOption) : boolean {\r\n\t\tconst extension = this.getFileExtension(this.name)\r\n\t\tconst extensions = options.extension\r\n\t\tconst type = options.type ?? 'all'\r\n\t\tconst hasExtension = extensions != null && extension != '' && extensions.includes(extension)\r\n\t\tconst isVideoOrImage = ['video', 'image'].includes(type)\r\n\t\tconst isFileAndNotVideoOrImage = type == 'file' && !['video', 'image'].includes(this.type);\r\n\t\tif ((type == 'all' || isVideoOrImage || isFileAndNotVideoOrImage) && !hasExtension) {\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\tprivate getFileExtension(fileName : string) : string {\r\n\t\tconst lastDotIndex = fileName.lastIndexOf(\".\");\r\n\t\tif (lastDotIndex == -1) {\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\t\treturn fileName.substring(lastDotIndex + 1);\r\n\t}\r\n\tprivate copyFileToCache(uri : Uri) {\r\n\t\tconst cacheDir = UTSAndroid.getAppCachePath();\r\n\t\tconst context = UTSAndroid.getAppContext();\r\n\t\tif(cacheDir != null) {\r\n\t\t\tconst path = new File(cacheDir); \r\n\t\t\tif (!path.exists()) { \r\n\t\t\t\tpath.mkdir(); \r\n\t\t\t}\r\n\t\t}\r\n\t\tlet fileName = this.name\r\n\t\tif(this.options.filename != null) {\r\n\t\t\tfileName = this.options.filename!;\r\n\t\t\tif(this.options.count != null && this.options.count! > 1) {\r\n\t\t\t\tfileName = `${fileName}_${Date.now()}`;\r\n\t\t\t}\r\n\t\t\tconst extension = this.getFileExtension(this.name)\r\n\t\t\t\r\n\t\t\tfileName = `${fileName}.${extension}`\r\n\t\t}\r\n\t\tconst destFile = new File(cacheDir, fileName);\r\n\t\t\r\n\t\ttry {\r\n\t\t\tconst inputStream = context!.getContentResolver().openInputStream(uri)\r\n\t\t\tconst outputStream = new FileOutputStream(destFile)\r\n\t\t\tif (inputStream != null) {\r\n\t\t\t\tlet buffer = ByteArray(1024);\r\n\t\t\t\tlet c = inputStream.read(buffer)\r\n\t\t\t\twhile (c > 0) {\r\n\t\t\t\t\toutputStream.write(buffer, 0, c);\r\n\t\t\t\t\tc = inputStream.read(buffer)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.path = cacheDir + fileName//this.name\r\n\t\t} catch (e) {\r\n\t\t\t\r\n\t\t}\r\n\t}\r\n\tprivate getFileTypeFromUri(uri : Uri) : string {\r\n\t\tconst context = UTSAndroid.getAppContext();\r\n\t\tlet fileType = 'file'\r\n\t\tlet mimeType = context!.getContentResolver().getType(uri);\r\n\t\tif (mimeType != null) {\r\n\t\t\tif (mimeType.startsWith(\"video\")) {\r\n\t\t\t\tfileType = \"video\";\r\n\t\t\t} else if (mimeType.startsWith(\"image\")) {\r\n\t\t\t\tfileType = \"image\";\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn fileType;\r\n\t}\r\n\tprivate getFileInfoFromUri(uri : Uri) {\r\n\t\tconst context = UTSAndroid.getAppContext();\r\n\t\tlet cursor = context!.getContentResolver().query(uri, null, null, null, null);\r\n\t\tif (cursor != null && cursor.moveToFirst()) {\r\n\t\t\tthis.name = cursor.getString(cursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME))\r\n\t\t\tconst fileSize = cursor.getLong(cursor.getColumnIndexOrThrow(OpenableColumns.SIZE));\r\n\t\t\tthis.size = Number.from(fileSize)\r\n\t\t\tcursor.close();\r\n\t\t} else if (\"file\".equals(uri.getScheme())) {\r\n\t\t\tthis.name = uri.getLastPathSegment() ?? '';\r\n\t\t\tconst file = new File(uri.getPath() ?? '');\r\n\t\t\tconst fileSize = file.length();\r\n\t\t\tthis.size = Number.from(fileSize)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n\r\nexport function chooseFile(options : ChooseFileOption) {\r\n\tif (resultFunction != null) {\r\n\t\tUTSAndroid.offAppActivityResult(resultFunction!)\r\n\t}\r\n\tconst type = options.type ?? 'all'\r\n\tconst intent = new Intent(Intent.ACTION_GET_CONTENT);\r\n\tif (type.equals(\"all\") || type.equals(\"file\")) {\r\n\t\tintent.setType(\"*/*\");\r\n\t} else if (type.equals(\"video\")) {\r\n\t\tintent.setType(\"video/*\");\r\n\t} else if (type.equals(\"image\")) {\r\n\t\tintent.setType(\"image/*\");\r\n\t}\r\n\tintent.addCategory(Intent.CATEGORY_OPENABLE);\r\n\tintent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, options.count == 1 ? false : true); // 允许多选\r\n\r\n\tresultFunction = (requestCode : Int, resultCode : Int, data ?: Intent) => {\r\n\t\tif (requestCode == REQUEST_CODE_CHOOSE_FILE) {\r\n\t\t\tUTSAndroid.offAppActivityResult(resultFunction!);\r\n\t\t\tif (resultCode == -1 && data != null) {\r\n\t\t\t\tconst clipData = data.getClipData();\r\n\t\t\t\tconst tempFiles : ChooseFile[] = []\r\n\t\t\t\t\r\n\t\t\t\tif (clipData != null) {\r\n\t\t\t\t\t// 多选\r\n\t\t\t\t\t// const itemCount = clipData.getItemCount();\r\n\t\t\t\t\t// if (options.count != null && options.count! > itemCount) {\r\n\t\t\t\t\t// \tconst err = new GeneralCallbackResultImpl(9010002, `选中文件数量超过${options.count}`)\r\n\t\t\t\t\t// \toptions.fail?.(err)\r\n\t\t\t\t\t// \toptions.complete?.(err)\r\n\t\t\t\t\t// \treturn\r\n\t\t\t\t\t// }\r\n\t\t\t\t\tfor (let i = 0; i < clipData.getItemCount(); i++) {\r\n\t\t\t\t\t\tconst uri = clipData.getItemAt(i.toInt()).getUri();\r\n\t\t\t\t\t\tconst chooseFile = new ChooseFileImpl(uri, options);\r\n\t\t\t\t\t\tif(chooseFile.path !=''){\r\n\t\t\t\t\t\t\ttempFiles.push(chooseFile)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// 单选\r\n\t\t\t\t\tconst uri = data.getData();\r\n\t\t\t\t\tif (uri != null) {\r\n\t\t\t\t\t\tconst chooseFile = new ChooseFileImpl(uri, options)\r\n\t\t\t\t\t\tif(chooseFile.path !='' ){\r\n\t\t\t\t\t\t\ttempFiles.push(chooseFile)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tconst count = options.count ?? Integer.MAX_VALUE // Number.MAX_VALUE\r\n\t\t\t\tif(tempFiles.length > 0 && count >= tempFiles.length){\r\n\t\t\t\t\toptions.success?.({\r\n\t\t\t\t\t\ttempFiles,\r\n\t\t\t\t\t\terrMsg: 'chooseFile:ok'\r\n\t\t\t\t\t} as ChooseFileSuccessCallbackResult)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst err = new GeneralCallbackResultImpl(9010002, `没有可用的文件或文件超过设置数量`)\r\n\t\t\t\t\toptions.fail?.(err)\r\n\t\t\t\t\toptions.complete?.(err)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst err = new GeneralCallbackResultImpl(9010002, `没有可用的文件`)\r\n\t\t\t\toptions.fail?.(err)\r\n\t\t\t\toptions.complete?.(err)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst err = new GeneralCallbackResultImpl(9010002, `没有可用的文件`)\r\n\t\t\toptions.fail?.(err)\r\n\t\t\toptions.complete?.(err)\r\n\t\t}\r\n\t}\r\n\r\n\tUTSAndroid.onAppActivityResult(resultFunction!)\r\n\tUTSAndroid.getUniActivity()!.startActivityForResult(Intent.createChooser(intent, \"选择文件\"), REQUEST_CODE_CHOOSE_FILE)\r\n\t// UTSAndroid.getUniActivity()!.overridePendingTransition((10).toInt(), (0).toInt());\r\n}","// @ts-nocheck\r\n/**\r\n * 错误码\r\n * 根据uni错误码规范要求,建议错误码以90开头,以下是错误码示例:\r\n * - 9010001 错误信息1\r\n * - 9010002 错误信息2\r\n */\r\nexport type ChooseFileErrorCode = 9010001 | 9010002 | 1101001 | 1101002 | 1101003 | 1101004 | 1101005 | 1101006 | 1101007 | 1101008 | 1101009 | 1101010;\r\n/**\r\n * myApi 的错误回调参数\r\n */\r\nexport interface GeneralCallbackResult extends IUniError {\r\n\terrCode : ChooseFileErrorCode\r\n};\r\n\r\n\r\n/** 返回选择的文件的本地临时文件对象数组 */\r\n\r\nexport interface ChooseFile {\r\n\t/** 选择的文件名称 */\r\n\tname : string\r\n\t/** 本地临时文件路径 (本地路径) */\r\n\tpath : string\r\n\t/** 本地临时文件大小,单位 B */\r\n\tsize : number\r\n\t/** 选择的文件的会话发送时间,Unix时间戳,工具暂不支持此属性 */\r\n\ttime : number\r\n\t/** 选择的文件类型\r\n\t *\r\n\t * 可选值:\r\n\t * - 'video': 选择了视频文件;\r\n\t * - 'image': 选择了图片文件;\r\n\t * - 'file': 选择了除图片和视频的文件; */\r\n\ttype : 'video' | 'image' | 'file' | 'all'\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nexport type ChooseFileSuccessCallbackResult = {\r\n\t/** 返回选择的文件的本地临时文件对象数组 */\r\n\ttempFiles : ChooseFile[],\r\n\terrMsg : string\r\n}\r\n\r\n\r\n/** 接口调用成功的回调函数 */\r\nexport type ChooseFileSuccessCallback = (\r\n\tresult : ChooseFileSuccessCallbackResult\r\n) => void\r\n\r\n/** 接口调用失败的回调函数 */\r\nexport type ChooseFileFailCallback = (res : GeneralCallbackResult) => void\r\n\r\n/** 接口调用结束的回调函数(调用成功、失败都会执行) */\r\nexport type ChooseFileCompleteCallback = (\r\n\tres : GeneralCallbackResult\r\n) => void\r\n\r\nexport type ChooseFileOption = {\r\n\t/**\r\n\t * 指定文件名,如果是多选就在后面增加上时间\r\n\t */\r\n\tfilename?: string\r\n\t/**\r\n\t * 最多可以选择的文件数量。\r\n\t * @defaultValue 100\r\n\t */\r\n\tcount ?: number | null,\r\n\t/**\r\n\t * 所选文件类型\r\n\t * @defaultValue all\r\n\t */\r\n\ttype ?: string | null,\r\n\t/**\r\n\t * 根据文件拓展名过滤,每一项都不能是空字符串。默认不过滤。仅H5支持\r\n\t */\r\n\textension ?: (string[]) | null,\r\n\t/**\r\n\t * 成功则返回图片的本地文件路径列表 tempFilePaths\r\n\t */\r\n\tsuccess ?: ChooseFileSuccessCallback | null,\r\n\t/**\r\n\t * 接口调用失败的回调函数\r\n\t */\r\n\tfail ?: ChooseFileFailCallback | null,\r\n\t/**\r\n\t * 接口调用结束的回调函数(调用成功、失败都会执行)\r\n\t */\r\n\tcomplete ?: ChooseFileCompleteCallback | null\r\n}","// @ts-nocheck\r\n/* 此规范为 uni 规范,可以按照自己的需要选择是否实现 */\r\nimport { ChooseFileErrorCode, GeneralCallbackResult } from \"./interface.uts\"\r\n/**\r\n * 错误主题\r\n * 注意:错误主题一般为插件名称,每个组件不同,需要使用时请更改。\r\n * [可选实现]\r\n */\r\nexport const UniErrorSubject = 'chooseFile\"';\r\n\r\n\r\n/**\r\n * 错误信息\r\n * @UniError\r\n * [可选实现]\r\n */\r\nexport const UniErrors : Map = new Map([\r\n /**\r\n * 错误码及对应的错误信息\r\n */\r\n [9010001, 'chooseFile:ok'],\r\n [9010002, 'ChooseFile:failed'],\r\n]);\r\n\r\n\r\n/**\r\n * 错误对象实现\r\n */\r\nexport class GeneralCallbackResultImpl extends UniError implements GeneralCallbackResult {\r\n\r\n /**\r\n * 错误对象构造函数\r\n */\r\n constructor(errCode : ChooseFileErrorCode, errMsg: string|null = null) {\r\n super();\r\n this.errSubject = UniErrorSubject;\r\n this.errCode = errCode;\r\n this.errMsg = errMsg ?? UniErrors[errCode] ?? \"\";\r\n }\r\n}"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/app-config-service.js b/unpackage/dist/dev/app-plus/app-config-service.js index 010c1d8..84270da 100644 --- a/unpackage/dist/dev/app-plus/app-config-service.js +++ b/unpackage/dist/dev/app-plus/app-config-service.js @@ -2,7 +2,7 @@ ;(function(){ let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[]; const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"test1","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"5.07","entryPagePath":"pages/Login/Login","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}}; - const __uniRoutes = [{"path":"pages/Login/Login","meta":{"isQuit":true,"isEntry":true,"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"登录页面","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/Chat/Chat","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"聊天页面(主页面)","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/WorkSpace/WorkSpace","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"工作区文件管理","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/UserProfileModal/UserProfileModal","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/ContactPages/ContactPages","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/WorkSpace/TemplateSpace/TemplateSpace","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/text/text","meta":{"navigationBar":{"titleText":"","type":"default"},"isNVue":false}},{"path":"pages/text/text2","meta":{"navigationBar":{"type":"default"},"isNVue":false}},{"path":"pages/CloudDatabase/CloudDatabase","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"云端数据","style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute)); + const __uniRoutes = [{"path":"pages/Login/Login","meta":{"isQuit":true,"isEntry":true,"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"登录页面","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/Chat/Chat","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"聊天页面(主页面)","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/WorkSpace/WorkSpace","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"工作区文件管理","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/UserProfileModal/UserProfileModal","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/ContactPages/ContactPages","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/WorkSpace/TemplateSpace/TemplateSpace","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/text/text","meta":{"navigationBar":{"titleText":"","type":"default"},"isNVue":false}},{"path":"pages/text/text2","meta":{"navigationBar":{"type":"default"},"isNVue":false}},{"path":"pages/CloudDatabase/CloudDatabase","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"云端数据","style":"custom","type":"default"},"isNVue":false}},{"path":"pages/CloudDbDetail/CloudDbDetail","meta":{"titleNView":false,"bounce":"none","softinputMode":"adjustResize","navigationBar":{"titleText":"数据库详情","style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute)); __uniConfig.styles=[];//styles __uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); __uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js index a2bec02..43f754c 100644 --- a/unpackage/dist/dev/app-plus/app-service.js +++ b/unpackage/dist/dev/app-plus/app-service.js @@ -498,6 +498,122 @@ if (uni.restoreGlobal) { }); }); }; + const workspaceUploadFileByURL = (token, workspacesId, urls, dirPath) => { + return new Promise((resolve, reject) => { + const urlList = Array.isArray(urls) ? urls : urls ? [urls] : []; + uni.request({ + url: `${BASE_URL}/cloud_api/phone/workspace/upload`, + method: "POST", + header: { + "Content-Type": "application/json" + }, + data: { + "access_token": token, + "workspaces_id": workspacesId, + "dir_path": dirPath || "/", + "urls": urlList + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond.success) { + resolve(respond); + } else { + const failedItems = (respond.results || []).filter((r2) => !r2.success).map((r2) => r2.error || "未知错误"); + const msg = failedItems.length > 0 ? `上传失败 ${respond.failed_count}/${respond.total_files}:${failedItems[0]}` : respond.summary || (respond == null ? void 0 : respond.error) || "上传文件到工作区出错啦"; + reject(msg); + } + } else { + reject(`上传文件到工作区失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const uploadFileToShortStorage = (workspacesId, files, filePath) => { + return new Promise((resolve, reject) => { + const fileList = Array.isArray(files) ? files : [files]; + const uploadFiles = fileList.map((file) => { + const fileUri = typeof file === "string" ? file : file.tempFilePath || file.path || file; + return { + name: "files", + uri: fileUri + }; + }); + formatAppLog("log", "at utils/cloud-api.js:587", "uploadFileToShortStorage 参数:", { workspacesId, fileCount: uploadFiles.length, filePath }); + uni.uploadFile({ + url: `${BASE_URL}/cloud_api/file/temp/upload`, + method: "POST", + formData: { + workspaces_id: workspacesId, + file_path: filePath || "/", + overwrite: "true" + }, + files: uploadFiles, + success: (res) => { + formatAppLog("log", "at utils/cloud-api.js:599", "uploadFileToShortStorage 响应状态:", res.statusCode, "数据:", res.data); + if (res.statusCode === 200) { + try { + const respond = JSON.parse(res.data); + if (Array.isArray(respond) && respond.length > 0) { + resolve(respond); + } else if (respond.success) { + resolve([{ url: respond.url || respond.message, success: true }]); + } else { + const msg = (respond == null ? void 0 : respond.error) || (respond == null ? void 0 : respond.message) || "上传文件(到短存云端)获取URL出错啦"; + reject(msg); + } + } catch (e2) { + reject("接口返回数据格式异常: " + res.data); + } + } else { + reject(`上传文件(到短存云端)获取URL失败:${res.statusCode} - ${res.data}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const updateWorkspaceFileName = (token, workspacesId, oldPath, newName) => { + return new Promise((resolve, reject) => { + uni.request({ + url: `${BASE_URL}/workspace/file/rename`, + method: "POST", + header: { + "Content-Type": "application/json" + }, + data: { + "workspaces_id": workspacesId, + "file_path": oldPath, + "new_name": newName + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond.success) { + resolve(respond.message || respond); + } else { + const msg = (respond == null ? void 0 : respond.error) || "重命名工作区文件出错啦"; + reject(msg); + } + } else { + reject(`重命名工作区文件失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; const updateUserInfo = (token, userId, username, email, avatarURL) => { return new Promise((resolve, reject) => { uni.request({ @@ -908,6 +1024,478 @@ if (uni.restoreGlobal) { }); }); }; + const getCloudDbList = (token) => { + return new Promise((resolve, reject) => { + uni.request({ + url: `${BASE_URL}/cloud_api/database/list`, + method: "POST", + header: { + "Content-Type": "application/json" + }, + data: { + "access_token": token + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond.success) { + resolve(respond.databases); + } else { + const msg = (respond == null ? void 0 : respond.error) || "获取用户可访问的数据库列表出错啦"; + reject(msg); + } + } else { + reject(`获取用户可访问的数据库列表失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const createCloudDb = (token, databaseName) => { + return new Promise((resolve, reject) => { + uni.request({ + url: `${BASE_URL}/cloud_api/database/create`, + method: "POST", + header: { + "Content-Type": "application/json" + }, + data: { + "access_token": token, + "database_name": databaseName + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond.success) { + resolve(respond.message); + } else { + const msg = (respond == null ? void 0 : respond.error) || "创建数据库出错啦"; + reject(msg); + } + } else { + reject(`创建数据库失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const uploadCloudDbFile = (token, filePath) => { + return new Promise((resolve, reject) => { + const fileUri = typeof filePath === "string" ? filePath : filePath.tempFilePath || filePath.path || filePath; + const fileName = typeof filePath === "string" ? filePath.split("/").pop() || "database.db" : filePath.name || "database.db"; + uni.uploadFile({ + url: `${BASE_URL}/cloud_api/database/upload/db`, + method: "POST", + header: {}, + formData: { + access_token: token + }, + file: { + name: fileName, + uri: fileUri + }, + files: [{ + name: "file", + uri: fileUri + }], + success: (res) => { + if (res.statusCode === 200) { + try { + const respond = JSON.parse(res.data); + if (respond.success) { + resolve(respond.message); + } else { + const msg = (respond == null ? void 0 : respond.error) || "上传db出错啦"; + reject(msg); + } + } catch (e2) { + reject("接口返回数据格式异常"); + } + } else { + reject(`上传db失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const deleteCloudDb = (token, databaseId) => { + return new Promise((resolve, reject) => { + uni.request({ + url: `${BASE_URL}/cloud_api/database/delete`, + method: "POST", + header: { + "Content-Type": "application/json" + }, + data: { + "access_token": token, + "database_id": databaseId + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond.success) { + resolve(respond.message); + } else { + const msg = (respond == null ? void 0 : respond.error) || "删除数据库出错啦"; + reject(msg); + } + } else { + reject(`删除数据库失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const getCloudDbTables = (token, databaseId, isDetail) => { + return new Promise((resolve, reject) => { + uni.request({ + url: `${BASE_URL}/cloud_api/database/tables`, + method: "POST", + header: { + "Content-Type": "application/json" + }, + data: { + "access_token": token, + "database_id": databaseId, + "is_detail": isDetail + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond.success) { + resolve(respond.tables); + } else { + const msg = (respond == null ? void 0 : respond.error) || "获取用户可访问的数据库列表出错啦"; + reject(msg); + } + } else { + reject(`获取用户可访问的数据库列表失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const getCloudDbTableData = (token, databaseId, tableName, limit = "20", offset = "0") => { + return new Promise((resolve, reject) => { + uni.request({ + url: `${BASE_URL}/cloud_api/database/table/data`, + method: "POST", + header: { + "Content-Type": "application/json" + }, + data: { + "access_token": token, + "database_id": databaseId, + "table_name": tableName, + "limit": limit, + "offset": offset + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond.success) { + resolve(respond.data); + } else { + const msg = (respond == null ? void 0 : respond.error) || "获取表数据出错啦"; + reject(msg); + } + } else { + reject(`获取表数据失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const deleteCloudDbTable = async (token, databaseId, tableName) => { + return new Promise((resolve, reject) => { + uni.request({ + url: `${BASE_URL}/cloud_api/database/table/drop`, + method: "POST", + data: { + "access_token": token, + "database_id": databaseId, + "table_name": tableName + }, + header: { + "Content-Type": "application/json" + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond == null ? void 0 : respond.success) { + resolve(respond.message); + } else { + const msg = respond.error || "删除数据库中的表出错啦"; + reject(msg); + } + } else { + reject(`删除数据库中的表失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const updateCloudDbTableData = (token, databaseId, tableName, whereData, updateData) => { + return new Promise((resolve, reject) => { + uni.request({ + url: `${BASE_URL}/cloud_api/database/table/update/by/id`, + method: "POST", + data: { + "access_token": token, + "database_id": databaseId, + "table_name": tableName, + "where_data": whereData, + "update_data": updateData + }, + header: { + "Content-Type": "application/json" + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond == null ? void 0 : respond.success) { + resolve(respond.message); + } else { + const msg = respond.error || "更新表数据出错啦"; + reject(msg); + } + } else { + reject(`更新表数据失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const importFileToCloudDb = (token, forceOverwrite, databaseId, filePath, tableName) => { + return new Promise((resolve, reject) => { + const fileUri = typeof filePath === "string" ? filePath : filePath.tempFilePath || filePath.path || filePath; + const fileName = typeof filePath === "string" ? filePath.split("/").pop() || "file" : filePath.name || "file"; + uni.uploadFile({ + url: `${BASE_URL}/cloud_api/database/import`, + method: "POST", + header: {}, + formData: { + access_token: token, + force_overwrite: forceOverwrite, + database_id: databaseId, + table_name: tableName + }, + // uni.uploadFile 的 file 参数需要是对象格式:{ name, uri } + file: { + name: fileName, + uri: fileUri + }, + // 同时用 files 方式兜底 + files: [{ + name: "file", + uri: fileUri + }], + success: (res) => { + if (res.statusCode === 200) { + try { + const respond = JSON.parse(res.data); + if (respond.success) { + resolve(respond.message); + } else { + const msg = (respond == null ? void 0 : respond.error) || "导入文件到数据库出错啦"; + reject(msg); + } + } catch (e2) { + reject("接口返回数据格式异常"); + } + } else { + reject(`导入文件到数据库失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const getCloudDbPermission = (token, databaseId, type, id) => { + return new Promise((resolve, reject) => { + const requestData = { + "access_token": token, + "database_id": databaseId + }; + if (type === "user_id") { + requestData.user_id = id; + } else if (type === "team_id") { + requestData.team_id = id; + } + uni.request({ + url: `${BASE_URL}/cloud_api/database/permission/info`, + method: "POST", + data: requestData, + header: { + "Content-Type": "application/json" + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond == null ? void 0 : respond.success) { + resolve(respond.data); + } else if (Array.isArray(respond)) { + resolve(respond); + } else { + const msg = (respond == null ? void 0 : respond.error) || "查看 个人/团队 数据库权限信息出错啦"; + reject(msg); + } + } else { + reject(`查看 个人/团队 数据库权限信息失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const deleteCloudDbPermission = (token, databaseId, type, id) => { + return new Promise((resolve, reject) => { + const requestData = { + "access_token": token, + "database_id": databaseId + }; + if (type === "user_id") { + requestData.user_id = id; + } else if (type === "team_id") { + requestData.team_id = id; + } + uni.request({ + url: `${BASE_URL}/cloud_api/database/permission/delete`, + method: "POST", + data: requestData, + header: { + "Content-Type": "application/json" + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond == null ? void 0 : respond.success) { + resolve(respond.message); + } else { + const msg = respond.error || "删除 团队/用户 对数据库权限出错啦"; + reject(msg); + } + } else { + reject(`删除 团队/用户 对数据库权限失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const updateCloudDbPermission = (token, databaseId, type, id, level) => { + return new Promise((resolve, reject) => { + const requestData = { + "access_token": token, + "database_id": databaseId, + "access_level": level + }; + if (type === "user_id") { + requestData.user_id = id; + } else if (type === "team_id") { + requestData.team_id = id; + } + uni.request({ + url: `${BASE_URL}/cloud_api/database/permission/update`, + method: "POST", + data: requestData, + header: { + "Content-Type": "application/json" + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond == null ? void 0 : respond.success) { + resolve(respond.message); + } else { + const msg = respond.error || "修改/增加 团队/用户 对数据库权限出错啦"; + reject(msg); + } + } else { + reject(`修改/增加 团队/用户 对数据库权限失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; + const dbTransferToTeam = async (token, databaseId, teamId) => { + return new Promise((resolve, reject) => { + uni.request({ + url: `${BASE_URL}/cloud_api/database/transfer_to_team`, + method: "POST", + data: { + "access_token": token, + "database_id": databaseId, + "team_id": teamId + }, + header: { + "Content-Type": "application/json" + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond == null ? void 0 : respond.success) { + resolve(respond.message); + } else { + const msg = respond.error || "个人数据库移交团队出错啦"; + reject(msg); + } + } else { + reject(`个人数据库移交团队失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || "网络错误"; + reject(msg); + } + }); + }); + }; const _export_sfc = (sfc, props) => { const target = sfc.__vccOpts || sfc; for (const [key, val] of props) { @@ -915,7 +1503,7 @@ if (uni.restoreGlobal) { } return target; }; - const _sfc_main$b = { + const _sfc_main$c = { __name: "Login", setup(__props, { expose: __expose }) { __expose(); @@ -1009,7 +1597,7 @@ if (uni.restoreGlobal) { return __returned__; } }; - function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) { + function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock( vue.Fragment, null, @@ -1107,7 +1695,7 @@ if (uni.restoreGlobal) { /* STABLE_FRAGMENT */ ); } - const PagesLoginLogin = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__scopeId", "data-v-461d1d79"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/Login/Login.vue"]]); + const PagesLoginLogin = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b], ["__scopeId", "data-v-461d1d79"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/Login/Login.vue"]]); const fontData = [ { "font_class": "arrow-down", @@ -1758,7 +2346,7 @@ if (uni.restoreGlobal) { const reg = /^[0-9]*$/g; return typeof val === "number" || reg.test(val) ? val + "px" : val; }; - const _sfc_main$a = { + const _sfc_main$b = { name: "UniIcons", emits: ["click"], props: { @@ -1812,7 +2400,7 @@ if (uni.restoreGlobal) { } } }; - function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) { + function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock( "text", { @@ -1827,7 +2415,7 @@ if (uni.restoreGlobal) { /* CLASS, STYLE */ ); } - const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9], ["__scopeId", "data-v-d31e1c47"], ["__file", "D:/Projects/uniapp/app-test/test1/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"]]); + const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a], ["__scopeId", "data-v-d31e1c47"], ["__file", "D:/Projects/uniapp/app-test/test1/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"]]); const getToken = () => { return uni.getStorageSync("token"); }; @@ -1854,7 +2442,7 @@ if (uni.restoreGlobal) { const getWorkspaceId = () => { return uni.getStorageSync("workspace_id"); }; - const _sfc_main$9 = /* @__PURE__ */ Object.assign({ + const _sfc_main$a = /* @__PURE__ */ Object.assign({ name: "ChatSidebar" }, { __name: "ChatSidebar", @@ -2018,7 +2606,7 @@ if (uni.restoreGlobal) { return __returned__; } }); - function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) { + function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_0); return vue.openBlock(), vue.createElementBlock("view", { class: "chat-sidebar-container" }, [ vue.createElementVNode("view", { class: "status-bar" }), @@ -2287,7 +2875,7 @@ if (uni.restoreGlobal) { ]) ]); } - const ChatSidebar = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__scopeId", "data-v-0c6c7315"], ["__file", "D:/Projects/uniapp/app-test/test1/components/ChatSidebar.vue"]]); + const ChatSidebar = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9], ["__scopeId", "data-v-0c6c7315"], ["__file", "D:/Projects/uniapp/app-test/test1/components/ChatSidebar.vue"]]); var e = { "": ["", ""], _: ["", ""], "*": ["", ""], "~": ["", ""], "\n": ["
    "], " ": ["
    "], "-": ["
    "] }; function n(e2) { return e2.replace(RegExp("^" + (e2.match(/^(\t| )+/) || "")[0], "gm"), ""); @@ -4949,12 +5537,9 @@ This will fail in production.`); const is_uni_modules = true; const pkg = /* @__PURE__ */ initUTSPackageName(name, is_uni_modules); const cls = /* @__PURE__ */ initUTSIndexClassName(name, is_uni_modules); - const exports$1 = { __esModule: true }; - exports$1.chooseFile = /* @__PURE__ */ initUTSProxyFunction(false, { moduleName, moduleType, errMsg, main: true, package: pkg, class: cls, name: "chooseFileByJs", keepAlive: false, params: [{ "name": "options", "type": "UTSSDKModulesLimeChooseFileChooseFileOptionJSONObject" }], return: "" }); - uni.registerUTSPlugin("uni_modules/lime-choose-file", exports$1); - const limeChooseFile_utsProxy = uni.requireUTSPlugin("uni_modules/lime-choose-file"); + const chooseFile = /* @__PURE__ */ initUTSProxyFunction(false, { moduleName, moduleType, errMsg, main: true, package: pkg, class: cls, name: "chooseFileByJs", keepAlive: false, params: [{ "name": "options", "type": "UTSSDKModulesLimeChooseFileChooseFileOptionJSONObject" }], return: "" }); const pageInfoNumber = 100; - const _sfc_main$8 = { + const _sfc_main$9 = { __name: "Chat", setup(__props, { expose: __expose }) { __expose(); @@ -5201,7 +5786,7 @@ This will fail in production.`); const fileList = vue.ref([]); const uploadFile = () => { formatAppLog("log", "at pages/Chat/Chat.vue:588", "点击了上传文件"); - limeChooseFile_utsProxy.chooseFile({ + chooseFile({ count: 5, type: "all", success: (res) => { @@ -5725,7 +6310,7 @@ This will fail in production.`); }, get useFriendSocketStore() { return useFriendSocketStore; }, get chooseFile() { - return limeChooseFile_utsProxy.chooseFile; + return chooseFile; }, get socketManager() { return socketManager; } }; @@ -5733,7 +6318,7 @@ This will fail in production.`); return __returned__; } }; - function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) { + function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_0); return vue.openBlock(), vue.createElementBlock( vue.Fragment, @@ -6263,8 +6848,8 @@ This will fail in production.`); /* STABLE_FRAGMENT */ ); } - const PagesChatChat = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__scopeId", "data-v-5eb7b895"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/Chat/Chat.vue"]]); - const _sfc_main$7 = { + const PagesChatChat = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8], ["__scopeId", "data-v-5eb7b895"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/Chat/Chat.vue"]]); + const _sfc_main$8 = { __name: "WorkSpace", setup(__props, { expose: __expose }) { __expose(); @@ -6298,6 +6883,66 @@ This will fail in production.`); const newWorkspaceFolder = () => { showNewFolder.value = true; }; + const handleUploadFile = () => { + chooseFile({ + count: 10, + type: "all", + success: async (res) => { + const files = res.tempFiles || []; + if (files.length === 0) { + uni.showToast({ + title: "未选择文件", + icon: "none" + }); + return; + } + await doUploadWorkspaceFiles(files); + }, + fail: (err) => { + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:176", "选择文件失败:", err); + } + }); + }; + const doUploadWorkspaceFiles = async (files) => { + uni.showLoading({ + title: "上传中..." + }); + try { + const dirPath = folderStack.value.length > 0 ? "./" + folderStack.value.map((f) => f.name).join("/") + "/" : "/"; + const results = await uploadFileToShortStorage( + workspaceId.value, + files, + dirPath + ); + const successUrls = results.filter((r2) => r2.success).map((r2) => r2.url); + if (successUrls.length === 0) { + const errors = results.filter((r2) => !r2.success).map((r2) => r2.error).join("; "); + throw new Error(errors || "所有文件上传失败"); + } + await workspaceUploadFileByURL( + UserToken.value, + workspaceId.value, + successUrls, + dirPath + ); + uni.hideLoading(); + const total = files.length; + const failed = total - successUrls.length; + const msg = failed > 0 ? `上传完成:成功 ${successUrls.length},失败 ${failed}` : `成功上传 ${total} 个文件`; + uni.showToast({ + title: msg, + icon: successUrls.length > 0 ? "success" : "error" + }); + initCurrentFolderList(); + } catch (error) { + uni.hideLoading(); + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:229", "上传文件失败:", error); + uni.showToast({ + title: typeof error === "string" ? error : "上传失败,请重试", + icon: "error" + }); + } + }; const currentFolderPath = vue.computed(() => { if (folderStack.value.length === 0) return "根目录"; @@ -6314,75 +6959,113 @@ This will fail in production.`); const confirmCreateFolder = async () => { const name2 = newFolderName.value.trim(); if (!name2) { - uni.showToast({ title: "请输入目录名称", icon: "none" }); + uni.showToast({ + title: "请输入目录名称", + icon: "none" + }); return; } try { const folderPath = folderStack.value.map((f) => f.name).join("/"); const dirPath = folderPath ? `./${folderPath}/${name2}` : `./${name2}`; await createWorkspaceFolder(UserToken.value, workspaceId.value, dirPath); - uni.showToast({ title: "创建成功", icon: "success" }); + uni.showToast({ + title: "创建成功", + icon: "success" + }); closeNewFolderModal(); initCurrentFolderList(); } catch (error) { - formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:183", "创建文件夹失败:", error); - uni.showToast({ title: "创建失败,请重试", icon: "error" }); + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:275", "创建文件夹失败:", error); + uni.showToast({ + title: "创建失败,请重试", + icon: "error" + }); } }; const handleLongPress = (folder) => { if (isSelectFolder.value) return; uni.showActionSheet({ - itemList: ["重命名", "删除", "下载", "压缩"], + itemList: ["下载", "删除"], + // ['删除', '下载', '压缩', '重命名'] success: (res) => { switch (res.tapIndex) { case 0: - handleRename(folder); + handleDownload(folder); break; case 1: handleDelete(folder); break; - case 2: - handleDownload(folder); - break; - case 3: - handleDownload(folder); - break; } } }); }; - const handleRename = (folder) => { + const handleRename = async (folder) => { uni.showModal({ title: "重命名", content: "请输入新名称", editable: true, placeholderText: folder.name, - success: (res) => { + success: async (res) => { if (res.confirm && res.content) { - updateFolderName(folder.id, res.content); + try { + uni.showLoading({ + title: "重命名中..." + }); + const dirPath = folderStack.value.length > 0 ? "./" + folderStack.value.map((f) => f.name).join("/") + "/" : "/"; + const filePath = dirPath + folder.name; + await updateWorkspaceFileName( + workspaceId.value, + filePath, + res.content + ); + uni.hideLoading(); + uni.showToast({ + title: "重命名成功", + icon: "success" + }); + initCurrentFolderList(); + } catch (error) { + uni.hideLoading(); + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:339", "重命名失败:", error); + uni.showToast({ + title: typeof error === "string" ? error : "重命名失败,请重试", + icon: "error" + }); + } } } }); }; const handleDownload = async (folder) => { if (folder.type === "directory") { - uni.showToast({ title: "暂不支持下载目录", icon: "none" }); + uni.showToast({ + title: "暂不支持下载目录", + icon: "none" + }); return; } try { - uni.showLoading({ title: "获取下载链接..." }); + uni.showLoading({ + title: "获取下载链接..." + }); const filePath = folder.path.startsWith("./") ? folder.path.slice(2) : folder.path; const result = await getWorkspaceFileURL(UserToken.value, workspaceId.value, filePath); uni.hideLoading(); const fileInfo = Array.isArray(result) ? result[0] : result; if (!fileInfo || !fileInfo.url) { - uni.showToast({ title: "获取下载链接失败", icon: "error" }); + uni.showToast({ + title: "获取下载链接失败", + icon: "error" + }); return; } const downloadUrl = fileInfo.url; const fileName = folder.name; - uni.showLoading({ title: "下载中..." }); + uni.showLoading({ + title: "下载中..." + }); uni.downloadFile({ url: downloadUrl, name: fileName, @@ -6392,19 +7075,28 @@ This will fail in production.`); const tempPath = downloadRes.tempFilePath; saveFileToYxd(fileName, tempPath); } else { - uni.showToast({ title: "下载失败", icon: "error" }); + uni.showToast({ + title: "下载失败", + icon: "error" + }); } }, fail: (err) => { uni.hideLoading(); - formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:333", "下载文件失败:", err); - uni.showToast({ title: "下载失败,请重试", icon: "error" }); + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:406", "下载文件失败:", err); + uni.showToast({ + title: "下载失败,请重试", + icon: "error" + }); } }); } catch (error) { uni.hideLoading(); - formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:339", "获取下载链接失败:", error); - uni.showToast({ title: "获取下载链接失败,请重试", icon: "error" }); + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:415", "获取下载链接失败:", error); + uni.showToast({ + title: "获取下载链接失败,请重试", + icon: "error" + }); } }; const saveFileToYxd = (fileName, tempPath) => { @@ -6414,16 +7106,24 @@ This will fail in production.`); callback(dirEntry); }, () => { plus.io.resolveLocalFileSystemURL("/storage/emulated/0/", (rootEntry) => { - rootEntry.getDirectory("yxd", { create: true }, (dirEntry) => { + rootEntry.getDirectory("yxd", { + create: true + }, (dirEntry) => { callback(dirEntry); }, (err) => { - formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:358", "创建 yxd 目录失败:", JSON.stringify(err)); - uni.showToast({ title: "创建目录失败", icon: "error" }); + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:439", "创建 yxd 目录失败:", JSON.stringify(err)); + uni.showToast({ + title: "创建目录失败", + icon: "error" + }); openFileConfirm(fileName, tempPath); }); }, (err) => { - formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:363", "访问外部存储根目录失败:", JSON.stringify(err)); - uni.showToast({ title: "无法访问存储目录", icon: "error" }); + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:447", "访问外部存储根目录失败:", JSON.stringify(err)); + uni.showToast({ + title: "无法访问存储目录", + icon: "error" + }); openFileConfirm(fileName, tempPath); }); }); @@ -6435,16 +7135,16 @@ This will fail in production.`); fileName, () => { const targetPath = YXD_PATH + fileName; - formatAppLog("log", "at pages/WorkSpace/WorkSpace.vue:377", "文件已保存到:", targetPath); + formatAppLog("log", "at pages/WorkSpace/WorkSpace.vue:464", "文件已保存到:", targetPath); openFileConfirm(fileName, targetPath); }, (err) => { - formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:381", "复制文件失败:", JSON.stringify(err)); + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:468", "复制文件失败:", JSON.stringify(err)); openFileConfirm(fileName, tempPath); } ); }, (err) => { - formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:386", "读取临时文件失败:", JSON.stringify(err)); + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:473", "读取临时文件失败:", JSON.stringify(err)); openFileConfirm(fileName, tempPath); }); }); @@ -6485,7 +7185,7 @@ This will fail in production.`); icon: "success" }), fail: (err) => { - formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:443", "打开文件失败:", err); + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:530", "打开文件失败:", err); uni.showToast({ title: "无法打开此文件", icon: "error" @@ -6502,7 +7202,7 @@ This will fail in production.`); icon: "success" }), fail: (err) => { - formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:462", "打开文件失败:", err); + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:549", "打开文件失败:", err); uni.showToast({ title: "无法打开此文件", icon: "error" @@ -6518,13 +7218,19 @@ This will fail in production.`); if (res.confirm) { try { const filePath = `./${folder.path}`; - formatAppLog("log", "at pages/WorkSpace/WorkSpace.vue:481", "删除的是:", filePath); + formatAppLog("log", "at pages/WorkSpace/WorkSpace.vue:568", "删除的是:", filePath); await daleteWorkspace(UserToken.value, workspaceId.value, filePath); - uni.showToast({ title: "删除成功", icon: "success" }); + uni.showToast({ + title: "删除成功", + icon: "success" + }); initCurrentFolderList(); } catch (error) { - formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:486", "删除失败:", error); - uni.showToast({ title: "删除失败,请重试", icon: "error" }); + formatAppLog("error", "at pages/WorkSpace/WorkSpace.vue:576", "删除失败:", error); + uni.showToast({ + title: "删除失败,请重试", + icon: "error" + }); } } } @@ -6588,7 +7294,7 @@ This will fail in production.`); const currentFolderList = vue.ref([]); const getCurrentFolderList = () => { var _a, _b; - formatAppLog("log", "at pages/WorkSpace/WorkSpace.vue:564", "当前路径为:", JSON.stringify(folderStack.value)); + formatAppLog("log", "at pages/WorkSpace/WorkSpace.vue:657", "当前路径为:", JSON.stringify(folderStack.value)); const currentPath = folderStack.value.length > 0 ? folderStack.value[folderStack.value.length - 1].path : "."; if (currentPath === ".") { return ((_a = allFoldersData.value) == null ? void 0 : _a.children) || []; @@ -6612,7 +7318,7 @@ This will fail in production.`); const initCurrentFolderList = async () => { workspaceId.value = getWorkspaceId(); UserToken.value = getToken(); - formatAppLog("log", "at pages/WorkSpace/WorkSpace.vue:591", "getWorkspaceId:", workspaceId.value); + formatAppLog("log", "at pages/WorkSpace/WorkSpace.vue:684", "getWorkspaceId:", workspaceId.value); allFoldersData.value = await getWorkspaceList(UserToken.value, workspaceId.value); currentFolderList.value = getCurrentFolderList(); }; @@ -6657,7 +7363,7 @@ This will fail in production.`); uni.navigateBack({ delta: 1, fail() { - formatAppLog("log", "at pages/WorkSpace/WorkSpace.vue:648", "返回失败,进入兜底跳转"); + formatAppLog("log", "at pages/WorkSpace/WorkSpace.vue:741", "返回失败,进入兜底跳转"); uni.reLaunch({ url: "/pages/Chat/Chat" }); @@ -6668,10 +7374,12 @@ This will fail in production.`); vue.onMounted(() => { initCurrentFolderList(); }); - const __returned__ = { UserToken, workspaceId, navbarBeforeTitle, navbarTitle, isSelectFolder, selectFileList, handleSelectFolder, selectFolder, showNewFolder, isNFNFocused, newFolderName, closeNewFolderModal, newWorkspaceFolder, currentFolderPath, folderPathPreview, confirmCreateFolder, handleLongPress, handleRename, handleDownload, saveFileToYxd, openFileConfirm, openFile, openFileWithMenu, handleDelete, isMenuOpen, handleMenu, searchKeyword, isSearchFocus, handleSearchFocus, getFileIcon, allFoldersData, folderStack, currentFolderList, getCurrentFolderList, initCurrentFolderList, handleFolderClick, handleSelectAll, handleBackOrCheck, onMounted: vue.onMounted, ref: vue.ref, computed: vue.computed, get getWorkspaceId() { + const __returned__ = { UserToken, workspaceId, navbarBeforeTitle, navbarTitle, isSelectFolder, selectFileList, handleSelectFolder, selectFolder, showNewFolder, isNFNFocused, newFolderName, closeNewFolderModal, newWorkspaceFolder, handleUploadFile, doUploadWorkspaceFiles, currentFolderPath, folderPathPreview, confirmCreateFolder, handleLongPress, handleRename, handleDownload, saveFileToYxd, openFileConfirm, openFile, openFileWithMenu, handleDelete, isMenuOpen, handleMenu, searchKeyword, isSearchFocus, handleSearchFocus, getFileIcon, allFoldersData, folderStack, currentFolderList, getCurrentFolderList, initCurrentFolderList, handleFolderClick, handleSelectAll, handleBackOrCheck, onMounted: vue.onMounted, ref: vue.ref, computed: vue.computed, get getWorkspaceId() { return getWorkspaceId; }, get getToken() { return getToken; + }, get chooseFile() { + return chooseFile; }, get getWorkspaceList() { return getWorkspaceList; }, get createWorkspaceFolder() { @@ -6680,12 +7388,18 @@ This will fail in production.`); return daleteWorkspace; }, get getWorkspaceFileURL() { return getWorkspaceFileURL; + }, get uploadFileToShortStorage() { + return uploadFileToShortStorage; + }, get workspaceUploadFileByURL() { + return workspaceUploadFileByURL; + }, get updateWorkspaceFileName() { + return updateWorkspaceFileName; } }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }; - function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) { + function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_0); return vue.openBlock(), vue.createElementBlock( vue.Fragment, @@ -6810,10 +7524,10 @@ This will fail in production.`); vue.createElementVNode("view", { class: "menu-card-item", onClick: _cache[6] || (_cache[6] = ($event) => { - $setup.handleSelectFolder(); + $setup.handleUploadFile(); $setup.handleMenu(); }) - }, "选择"), + }, "上传文件"), vue.createElementVNode("view", { class: "solid-line" }), vue.createElementVNode("view", { class: "menu-card-item", @@ -6921,11 +7635,11 @@ This will fail in production.`); class: vue.normalizeClass(["workspace-footer", { "folder-actions": $setup.selectFileList.length > 0 }]) }, [ - vue.createElementVNode("view", { class: "iconfont icon-shangchuan" }), - vue.createElementVNode("view", { class: "iconfont icon-fuzhi" }), - vue.createElementVNode("view", { class: "iconfont icon-wenjian" }), - vue.createElementVNode("view", { class: "iconfont icon-del" }), - vue.createElementVNode("view", { class: "iconfont icon-gengduo" }) + vue.createElementVNode("view", { + class: "iconfont icon-shangchuan", + onClick: $setup.handleUploadFile + }), + vue.createElementVNode("view", { class: "iconfont icon-del" }) ], 2 /* CLASS */ @@ -6936,8 +7650,8 @@ This will fail in production.`); /* STABLE_FRAGMENT */ ); } - const PagesWorkSpaceWorkSpace = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__scopeId", "data-v-c1a60359"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/WorkSpace/WorkSpace.vue"]]); - const _sfc_main$6 = { + const PagesWorkSpaceWorkSpace = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__scopeId", "data-v-c1a60359"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/WorkSpace/WorkSpace.vue"]]); + const _sfc_main$7 = { __name: "UserProfileModal", setup(__props, { expose: __expose }) { __expose(); @@ -7026,7 +7740,7 @@ This will fail in production.`); return __returned__; } }; - function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) { + function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_0); return vue.openBlock(), vue.createElementBlock( vue.Fragment, @@ -7124,8 +7838,8 @@ This will fail in production.`); /* STABLE_FRAGMENT */ ); } - const PagesUserProfileModalUserProfileModal = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__scopeId", "data-v-d2908b51"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/UserProfileModal/UserProfileModal.vue"]]); - const _sfc_main$5 = { + const PagesUserProfileModalUserProfileModal = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6], ["__scopeId", "data-v-d2908b51"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/UserProfileModal/UserProfileModal.vue"]]); + const _sfc_main$6 = { __name: "ContactPages", setup(__props, { expose: __expose }) { __expose(); @@ -7178,11 +7892,11 @@ This will fail in production.`); label: "添加好友", icon: "➕" }, - { - name: "videoCall", - label: "视频会议", - icon: "📹" - }, + // { + // name: 'videoCall', + // label: '视频会议', + // icon: '📹' + // }, { name: "friendRequest", label: "好友申请", @@ -7545,7 +8259,7 @@ This will fail in production.`); return __returned__; } }; - function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) { + function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_0); return vue.openBlock(), vue.createElementBlock( vue.Fragment, @@ -8011,110 +8725,6 @@ This will fail in production.`); ]) ]) ]), - vue.createElementVNode("swiper-item", { class: "content-swiper-item" }, [ - vue.createElementVNode("view", { class: "tabpage-containner" }, [ - vue.createElementVNode("view", { class: "tabpage-header" }, [ - vue.createElementVNode("view", { - class: "iconfont icon-fanhui", - onClick: $setup.handleBack - }), - vue.createElementVNode("view", { class: "tabpage-title" }, "视频会议") - ]), - vue.createElementVNode("view", { class: "tabpage-body" }, [ - vue.createElementVNode("view", { class: "join-meeting-wrapper" }, [ - vue.createElementVNode("view", null, "加入会议"), - vue.createElementVNode("input", { - class: "input-meeting", - placeholder: "请输入会议号" - }), - vue.createElementVNode("view", { class: "meeting-btn text-btn" }, "加入会议") - ]), - vue.createElementVNode("view", { class: "solid-line" }), - vue.createElementVNode("view", { class: "create-meeting-wrapper" }, [ - vue.createElementVNode("view", null, "创建会议"), - vue.createElementVNode("view", { class: "meeting-field" }, [ - vue.createElementVNode("view", { class: "meeting-label" }, "会议主题"), - vue.createElementVNode("input", { - class: "input-meeting", - placeholder: "例如:XXX" - }) - ]), - vue.createElementVNode("view", { class: "meeting-field" }, [ - vue.createElementVNode("view", { class: "meeting-label" }, "会议密码"), - vue.createElementVNode("input", { - class: "input-meeting", - placeholder: "留空则无密码" - }) - ]), - vue.createElementVNode("view", { class: "meeting-field" }, [ - vue.createElementVNode("view", { class: "meeting-label" }, "邀请好友"), - vue.createElementVNode("view", { class: "friend-card" }, [ - vue.createElementVNode("view", { class: "friend-card-left" }, [ - vue.createElementVNode("view", { class: "friend-avatar" }, "avatar") - ]), - vue.createElementVNode("view", { class: "friend-card-middle" }, [ - vue.createElementVNode("view", { class: "friend-name" }, "friend.nickname"), - vue.createElementVNode("view", { class: "friend-label" }, "friend.email") - ]), - vue.createElementVNode("view", { - class: "friend-card-right", - onClick: _cache[4] || (_cache[4] = ($event) => _ctx.addMeetingMembers(_ctx.friend.id)) - }, [ - vue.createElementVNode("view", { class: "add-btn text-btn" }, "添加") - ]) - ]) - ]), - vue.createElementVNode("view", { class: "meeting-toggles" }, [ - vue.createElementVNode("view", { class: "meeting-toggles-item" }, [ - vue.createElementVNode("view", { class: "meeting-toggles-icon icon-btn" }, [ - vue.createVNode(_component_uni_icons, { type: "mic-filled" }), - vue.createTextVNode("开启麦克风入会 ") - ]), - vue.createElementVNode("view", { - class: "meeting-toggles-switch", - onClick: $setup.togglesVoice - }, [ - vue.createElementVNode( - "view", - { - class: vue.normalizeClass(["switch-box", { active: $setup.isVoice }]) - }, - [ - vue.createElementVNode("view", { class: "switch-track" }) - ], - 2 - /* CLASS */ - ) - ]) - ]), - vue.createElementVNode("view", { class: "meeting-toggles-item" }, [ - vue.createElementVNode("view", { class: "meeting-toggles-icon icon-btn" }, [ - vue.createVNode(_component_uni_icons, { type: "eye-filled" }), - vue.createTextVNode("开启摄像头入会 ") - ]), - vue.createElementVNode("view", { - class: "meeting-toggles-switch", - onClick: $setup.togglesCamera - }, [ - vue.createElementVNode( - "view", - { - class: vue.normalizeClass(["switch-box", { active: $setup.isCamera }]) - }, - [ - vue.createElementVNode("view", { class: "switch-track" }) - ], - 2 - /* CLASS */ - ) - ]) - ]) - ]), - vue.createElementVNode("view", { class: "meeting-btn text-btn" }, "加入会议") - ]) - ]) - ]) - ]), vue.createElementVNode("swiper-item", { class: "content-swiper-item" }, [ vue.createElementVNode("view", { class: "tabpage-containner" }, [ vue.createElementVNode("view", { class: "tabpage-header" }, [ @@ -8237,8 +8847,8 @@ This will fail in production.`); /* STABLE_FRAGMENT */ ); } - const PagesContactPagesContactPages = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-976117c3"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/ContactPages/ContactPages.vue"]]); - const _sfc_main$4 = { + const PagesContactPagesContactPages = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__scopeId", "data-v-976117c3"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/ContactPages/ContactPages.vue"]]); + const _sfc_main$5 = { __name: "TemplateSpace", setup(__props, { expose: __expose }) { __expose(); @@ -8552,7 +9162,7 @@ This will fail in production.`); return __returned__; } }; - function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) { + function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock( vue.Fragment, null, @@ -8795,8 +9405,8 @@ This will fail in production.`); /* STABLE_FRAGMENT */ ); } - const PagesWorkSpaceTemplateSpaceTemplateSpace = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__scopeId", "data-v-769edd25"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/WorkSpace/TemplateSpace/TemplateSpace.vue"]]); - const _sfc_main$3 = { + const PagesWorkSpaceTemplateSpaceTemplateSpace = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-769edd25"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/WorkSpace/TemplateSpace/TemplateSpace.vue"]]); + const _sfc_main$4 = { __name: "text", setup(__props, { expose: __expose }) { __expose(); @@ -8951,15 +9561,15 @@ This will fail in production.`); return __returned__; } }; - function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) { + function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock("view", null, [ vue.createElementVNode("view", { innerHTML: $setup.sanitizeContent($setup.formHtml) }, null, 8, ["innerHTML"]) ]); } - const PagesTextText = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__file", "D:/Projects/uniapp/app-test/test1/pages/text/text.vue"]]); - const _sfc_main$2 = { + const PagesTextText = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__file", "D:/Projects/uniapp/app-test/test1/pages/text/text.vue"]]); + const _sfc_main$3 = { __name: "text2", setup(__props, { expose: __expose }) { __expose(); @@ -9116,7 +9726,7 @@ This will fail in production.`); return __returned__; } }; - function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { + function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) { return vue.openBlock(), vue.createElementBlock("view", { class: "container" }, [ vue.createElementVNode("view", { class: "status-card" }, [ vue.createElementVNode("text", { class: "status-label" }, "连接状态"), @@ -9313,8 +9923,8 @@ This will fail in production.`); ]) ]); } - const PagesTextText2 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__scopeId", "data-v-cd5869b7"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/text/text2.vue"]]); - const _sfc_main$1 = { + const PagesTextText2 = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__scopeId", "data-v-cd5869b7"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/text/text2.vue"]]); + const _sfc_main$2 = { __name: "CloudDatabase", setup(__props, { expose: __expose }) { __expose(); @@ -9502,7 +10112,7 @@ This will fail in production.`); personalFiles.value = personalData || []; } } catch (error) { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:652", "获取文件列表失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:689", "获取文件列表失败:", error); rawPersonalFileData.value = []; personalFiles.value = []; } @@ -9511,11 +10121,11 @@ This will fail in production.`); try { teamId = teamId == null ? "" : String(teamId); const teamData = await getCloudFileList(userToken.value, "team", "/", teamId); - formatAppLog("log", "at pages/CloudDatabase/CloudDatabase.vue:663", "团队云端文件:", JSON.stringify(teamData)); + formatAppLog("log", "at pages/CloudDatabase/CloudDatabase.vue:700", "团队云端文件:", JSON.stringify(teamData)); rawTeamFileData.value = teamData || []; teamFiles.value = teamData || []; } catch (error) { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:667", "获取团队文件列表失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:704", "获取团队文件列表失败:", error); rawTeamFileData.value = []; teamFiles.value = []; } @@ -9620,7 +10230,7 @@ This will fail in production.`); }); } catch (error) { uni.hideLoading(); - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:784", "下载失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:821", "下载失败:", error); uni.showToast({ title: "下载失败,请重试", icon: "error" @@ -9637,12 +10247,12 @@ This will fail in production.`); rootEntry.getDirectory("yxd", { create: true }, (dirEntry) => { callback(dirEntry); }, (err) => { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:808", "创建 yxd 目录失败:", JSON.stringify(err)); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:845", "创建 yxd 目录失败:", JSON.stringify(err)); uni.showToast({ title: "创建目录失败", icon: "error" }); openFileConfirm(fileName, tempPath); }); }, (err) => { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:813", "访问外部存储根目录失败:", JSON.stringify(err)); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:850", "访问外部存储根目录失败:", JSON.stringify(err)); uni.showToast({ title: "无法访问存储目录", icon: "error" }); openFileConfirm(fileName, tempPath); }); @@ -9655,16 +10265,16 @@ This will fail in production.`); fileName, () => { const targetPath = YXD_PATH + fileName; - formatAppLog("log", "at pages/CloudDatabase/CloudDatabase.vue:827", "文件已保存到:", targetPath); + formatAppLog("log", "at pages/CloudDatabase/CloudDatabase.vue:864", "文件已保存到:", targetPath); openFileConfirm(fileName, targetPath); }, (err) => { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:831", "复制文件失败:", JSON.stringify(err)); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:868", "复制文件失败:", JSON.stringify(err)); openFileConfirm(fileName, tempPath); } ); }, (err) => { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:836", "读取临时文件失败:", JSON.stringify(err)); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:873", "读取临时文件失败:", JSON.stringify(err)); openFileConfirm(fileName, tempPath); }); }); @@ -9705,14 +10315,14 @@ This will fail in production.`); icon: "success" }), fail: (err) => { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:899", "打开文件失败:", err); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:936", "打开文件失败:", err); openFileWithMenu(filePath); } }); }; const openFileWithMenu = (filePath) => { plus.runtime.openFile(filePath, {}, (e2) => { - formatAppLog("log", "at pages/CloudDatabase/CloudDatabase.vue:911", "文件打开成功"); + formatAppLog("log", "at pages/CloudDatabase/CloudDatabase.vue:948", "文件打开成功"); }); }; const handleRename = (file) => { @@ -9754,7 +10364,7 @@ This will fail in production.`); refreshCurrentFileList(); } catch (error) { uni.hideLoading(); - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:977", "deleteCloudFile 失败,尝试 daleteWorkspace:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1014", "deleteCloudFile 失败,尝试 daleteWorkspace:", error); try { const filePath = file.path || "/" + file.name; if (workspaceId.value) { @@ -9766,7 +10376,7 @@ This will fail in production.`); }); refreshCurrentFileList(); } catch (err2) { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:989", "删除失败:", err2); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1026", "删除失败:", err2); uni.showToast({ title: "删除失败,请重试", icon: "error" @@ -9816,7 +10426,7 @@ This will fail in production.`); closeNewFolderModal(); refreshCurrentFileList(); } catch (error) { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1046", "创建文件夹失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1083", "创建文件夹失败:", error); uni.showToast({ title: "创建失败,请重试", icon: "error" @@ -9841,24 +10451,27 @@ This will fail in production.`); chooseAndUploadFile(); }; const chooseAndUploadFile = () => { - plus.io.chooseFile( - (res) => { - const files = Array.isArray(res) ? res : res.files || []; - if (files.length === 0) { + chooseFile({ + count: 10, + type: "all", + success: (res) => { + const tempFiles = (res.tempFiles || []).map((f) => ({ + tempFilePath: f.path || f.tempFilePath, + name: f.name + })); + if (tempFiles.length === 0) { uni.showToast({ title: "未选择文件", icon: "none" }); return; } - doUploadFiles(files); + doUploadFiles(tempFiles); }, - (err) => { - if (err.code !== 11) { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1095", "选择文件失败:", err); - } + fail: (err) => { + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1133", "选择文件失败:", err); } - ); + }); }; const doUploadFiles = async (files) => { uni.showLoading({ @@ -9877,92 +10490,152 @@ This will fail in production.`); refreshCurrentFileList(); } catch (error) { uni.hideLoading(); - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1147", "上传文件失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1159", "上传文件失败:", error); uni.showToast({ title: "上传失败,请重试", icon: "error" }); } }; - const personalTables = vue.ref([ - { - id: "1", - name: "users", - desc: "用户信息表", - rowCount: 128 - }, - { - id: "2", - name: "messages", - desc: "聊天记录表", - rowCount: 2048 - }, - { - id: "3", - name: "settings", - desc: "用户配置表", - rowCount: 56 + const allDatabases = vue.ref([]); + const isDbLoading = vue.ref(false); + const personalDatabases = vue.computed(() => allDatabases.value); + const teamDatabases = vue.computed(() => allDatabases.value.filter((db) => db.team_id && String(db.team_id) === String(currentTeamId.value))); + const showNewDb = vue.ref(false); + const newDbName = vue.ref(""); + const fetchDbList = async () => { + isDbLoading.value = true; + try { + const token = getToken(); + const list = await getCloudDbList(token); + allDatabases.value = list || []; + } catch (error) { + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1185", "获取数据库列表失败:", error); + allDatabases.value = []; + } finally { + isDbLoading.value = false; } - ]); - const teamTables = vue.ref([ - { - id: "t1", - name: "team_tasks", - desc: "团队任务表", - rowCount: 32 - }, - { - id: "t2", - name: "team_docs", - desc: "团队文档表", - rowCount: 15 - } - ]); - const showNewTable = vue.ref(false); - const newTableName = vue.ref(""); - const newTableDesc = vue.ref(""); - const openNewTableModal = () => { - showNewTable.value = true; - newTableName.value = ""; - newTableDesc.value = ""; }; - const closeNewTableModal = () => { - showNewTable.value = false; - newTableName.value = ""; - newTableDesc.value = ""; + const openNewDbModal = () => { + showNewDb.value = true; + newDbName.value = ""; }; - const confirmCreateTable = () => { - const name2 = newTableName.value.trim(); + const closeNewDbModal = () => { + showNewDb.value = false; + newDbName.value = ""; + }; + const confirmCreateDb = async () => { + const name2 = newDbName.value.trim(); if (!name2) { - uni.showToast({ - title: "请输入表名称", - icon: "none" - }); + uni.showToast({ title: "请输入数据库名称", icon: "none" }); return; } - const newTable = { - id: Date.now().toString(), - name: name2, - desc: newTableDesc.value.trim() || "无描述", - rowCount: 0 - }; - if (currentCategory.value === "user") { - personalTables.value.push(newTable); - } else { - teamTables.value.push(newTable); + uni.showLoading({ title: "创建中..." }); + try { + const token = getToken(); + await createCloudDb(token, name2); + uni.hideLoading(); + uni.showToast({ title: "创建成功", icon: "success" }); + closeNewDbModal(); + await fetchDbList(); + } catch (error) { + uni.hideLoading(); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1216", "创建数据库失败:", error); + uni.showToast({ title: "创建失败,请重试", icon: "error" }); } - uni.showToast({ - title: "创建成功", - icon: "success" - }); - closeNewTableModal(); }; - const handleTableClick = (table) => { - uni.showToast({ - title: `进入数据表:${table.name}`, - icon: "none" + const showUploadDb = vue.ref(false); + const uploadDbFileName = vue.ref(""); + const uploadDbFilePath = vue.ref(""); + const openUploadDbModal = () => { + showUploadDb.value = true; + uploadDbFileName.value = ""; + uploadDbFilePath.value = ""; + }; + const closeUploadDbModal = () => { + showUploadDb.value = false; + }; + const handlePickDbFile = () => { + chooseFile({ + count: 1, + type: "all", + success: (res) => { + const file = res.tempFiles[0]; + uploadDbFileName.value = file.name || "unknown"; + uploadDbFilePath.value = file.path; + }, + fail: (err) => { + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1245", "选择文件失败:", err); + uni.showToast({ title: "选择文件失败", icon: "none" }); + } }); }; + const confirmUploadDb = async () => { + var _a; + if (!uploadDbFilePath.value) { + uni.showToast({ title: "请选择数据库文件", icon: "none" }); + return; + } + const ext = (_a = uploadDbFileName.value.split(".").pop()) == null ? void 0 : _a.toLowerCase(); + const allowedExts = ["db", "sqlite", "sqlite3"]; + if (!allowedExts.includes(ext)) { + uni.showToast({ title: "仅支持 .db / .sqlite / .sqlite3 文件", icon: "none" }); + return; + } + uni.showLoading({ title: "上传中..." }); + try { + const token = getToken(); + await uploadCloudDbFile(token, uploadDbFilePath.value); + uni.hideLoading(); + uni.showToast({ title: "上传成功", icon: "success" }); + closeUploadDbModal(); + await fetchDbList(); + } catch (error) { + uni.hideLoading(); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1273", "上传数据库失败:", error); + uni.showToast({ title: "上传失败,请重试", icon: "error" }); + } + }; + const handleDeleteDb = (db) => { + uni.showModal({ + title: "删除数据库", + content: `确定要删除数据库"${db.database_name}"吗?此操作不可恢复。`, + success: async (res) => { + if (res.confirm) { + uni.showLoading({ title: "删除中..." }); + try { + const token = getToken(); + await deleteCloudDb(token, db.database_id); + uni.hideLoading(); + uni.showToast({ title: "删除成功", icon: "success" }); + await fetchDbList(); + } catch (error) { + uni.hideLoading(); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1293", "删除数据库失败:", error); + uni.showToast({ title: "删除失败,请重试", icon: "error" }); + } + } + } + }); + }; + const handleDbClick = (db) => { + uni.navigateTo({ + url: `/pages/CloudDbDetail/CloudDbDetail?databaseId=${db.database_id}&databaseName=${encodeURIComponent(db.database_name)}&teamId=${db.team_id || ""}` + }); + }; + const formatDbTime = (timestamp) => { + if (!timestamp) + return ""; + const date = new Date(timestamp * 1e3); + const y = date.getFullYear(); + const m = String(date.getMonth() + 1).padStart(2, "0"); + const d = String(date.getDate()).padStart(2, "0"); + return `${y}-${m}-${d}`; + }; + const getAccessLevelLabel = (level) => { + const labels = { 0: "无权限", 1: "只读", 2: "读写", 3: "管理" }; + return labels[level] || "未知"; + }; const showTeamManage = vue.ref(false); const teamGroups = vue.ref([]); const currentTeamId = vue.ref(""); @@ -9996,12 +10669,12 @@ This will fail in production.`); const groups = await getTeamList(token); teamGroups.value = groups || []; } catch (error) { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1278", "获取团队列表失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1362", "获取团队列表失败:", error); teamGroups.value = []; } }; const selectTeam = async (teamId) => { - formatAppLog("log", "at pages/CloudDatabase/CloudDatabase.vue:1284", "团队id为", teamId); + formatAppLog("log", "at pages/CloudDatabase/CloudDatabase.vue:1368", "团队id为", teamId); currentTeamId.value = teamId; try { const token = getToken(); @@ -10020,7 +10693,7 @@ This will fail in production.`); }; }); } catch (error) { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1301", "获取团队成员失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1385", "获取团队成员失败:", error); currentTeamMembers.value = []; } currentFolderPath.value = []; @@ -10052,7 +10725,7 @@ This will fail in production.`); }; }); } catch (error) { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1335", "获取团队成员失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1419", "获取团队成员失败:", error); uni.showToast({ title: "获取团队信息失败", icon: "none" }); return; } @@ -10114,7 +10787,7 @@ This will fail in production.`); currentTeamId.value = currentTeamId.value; } catch (error) { uni.hideLoading(); - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1407", "修改团队信息失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1491", "修改团队信息失败:", error); uni.showToast({ title: "修改失败,请重试", icon: "error" }); } }; @@ -10135,7 +10808,7 @@ This will fail in production.`); await refreshTeamMembers(); } catch (error) { uni.hideLoading(); - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1432", "调整成员身份失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1516", "调整成员身份失败:", error); uni.showToast({ title: "操作失败,请重试", icon: "error" }); } } @@ -10159,7 +10832,7 @@ This will fail in production.`); await refreshTeamMembers(); } catch (error) { uni.hideLoading(); - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1458", "移除团队成员失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1542", "移除团队成员失败:", error); uni.showToast({ title: "移除失败,请重试", icon: "error" }); } } @@ -10199,7 +10872,7 @@ This will fail in production.`); if (searchResultList.value.length === 0) { } } catch (error) { - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1500", "搜索用户失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1584", "搜索用户失败:", error); searchResultList.value = []; searched.value = true; } @@ -10222,7 +10895,7 @@ This will fail in production.`); await refreshTeamMembers(); } catch (error) { uni.hideLoading(); - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1526", "添加团队成员失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1610", "添加团队成员失败:", error); uni.showToast({ title: "添加失败,请重试", icon: "error" }); } } @@ -10253,7 +10926,7 @@ This will fail in production.`); closeTeamManage(); } catch (error) { uni.hideLoading(); - formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1560", "删除团队失败:", error); + formatAppLog("error", "at pages/CloudDatabase/CloudDatabase.vue:1644", "删除团队失败:", error); uni.showToast({ title: "删除失败,请重试", icon: "error" }); } } @@ -10263,9 +10936,12 @@ This will fail in production.`); vue.onMounted(async () => { await fetchFileList(); await fetchTeamList(); + await fetchDbList(); }); - const __returned__ = { userToken, userId, workspaceId, currentCategory, switchCategory, navbarTitle, isMenuOpen, isSelectFolder, selectFileList, handleMenu, handleSelectFolder, parentFolderName, handleBackOrUp, rawPersonalFileData, rawTeamFileData, personalFiles, teamFiles, currentFolderPath, isFolder, getFileExtension, getFileIcon, formatFileSize, currentFolderDisplayPath, personalFileCount, findFolderByPath, loadCurrentFiles, fetchFileList, fetchTeamFileList, handleFileClick, handleFileLongPress, handleDownload, saveFileToYxd, openFileConfirm, openFile, openFileWithMenu, handleRename, handleDeleteFile, refreshCurrentFileList, showNewFolder, newFolderName, openNewFolderModal, closeNewFolderModal, confirmCreateFolder, showUploadPathInput, uploadPath, handleUploadFile, closeUploadPathInput, confirmUploadPath, chooseAndUploadFile, doUploadFiles, personalTables, teamTables, showNewTable, newTableName, newTableDesc, openNewTableModal, closeNewTableModal, confirmCreateTable, handleTableClick, showTeamManage, teamGroups, currentTeamId, currentTeamMembers, inviteKeyword, currentTeamDescription, currentTeamType, currentUserRoleInTeam, isTeamAdmin, fetchTeamList, selectTeam, openTeamManage, closeTeamManage, showEditTeam, editTeamName, editTeamDesc, editTeamType, openEditTeamModal, closeEditTeamModal, confirmEditTeam, toggleMemberRole, removeTeamMemberHandler, refreshTeamMembers, searchResultList, searched, searchTeamMember, addTeamMemberHandler, handleDeleteTeam, onMounted: vue.onMounted, ref: vue.ref, computed: vue.computed, get getToken() { + const __returned__ = { userToken, userId, workspaceId, currentCategory, switchCategory, navbarTitle, isMenuOpen, isSelectFolder, selectFileList, handleMenu, handleSelectFolder, parentFolderName, handleBackOrUp, rawPersonalFileData, rawTeamFileData, personalFiles, teamFiles, currentFolderPath, isFolder, getFileExtension, getFileIcon, formatFileSize, currentFolderDisplayPath, personalFileCount, findFolderByPath, loadCurrentFiles, fetchFileList, fetchTeamFileList, handleFileClick, handleFileLongPress, handleDownload, saveFileToYxd, openFileConfirm, openFile, openFileWithMenu, handleRename, handleDeleteFile, refreshCurrentFileList, showNewFolder, newFolderName, openNewFolderModal, closeNewFolderModal, confirmCreateFolder, showUploadPathInput, uploadPath, handleUploadFile, closeUploadPathInput, confirmUploadPath, chooseAndUploadFile, doUploadFiles, allDatabases, isDbLoading, personalDatabases, teamDatabases, showNewDb, newDbName, fetchDbList, openNewDbModal, closeNewDbModal, confirmCreateDb, showUploadDb, uploadDbFileName, uploadDbFilePath, openUploadDbModal, closeUploadDbModal, handlePickDbFile, confirmUploadDb, handleDeleteDb, handleDbClick, formatDbTime, getAccessLevelLabel, showTeamManage, teamGroups, currentTeamId, currentTeamMembers, inviteKeyword, currentTeamDescription, currentTeamType, currentUserRoleInTeam, isTeamAdmin, fetchTeamList, selectTeam, openTeamManage, closeTeamManage, showEditTeam, editTeamName, editTeamDesc, editTeamType, openEditTeamModal, closeEditTeamModal, confirmEditTeam, toggleMemberRole, removeTeamMemberHandler, refreshTeamMembers, searchResultList, searched, searchTeamMember, addTeamMemberHandler, handleDeleteTeam, onMounted: vue.onMounted, ref: vue.ref, computed: vue.computed, get getToken() { return getToken; + }, get chooseFile() { + return chooseFile; }, get getUserInfo() { return getUserInfo; }, get getCloudFileList() { @@ -10298,12 +10974,20 @@ This will fail in production.`); return deleteCloudFile; }, get deleteTeam() { return deleteTeam; + }, get getCloudDbList() { + return getCloudDbList; + }, get createCloudDb() { + return createCloudDb; + }, get uploadCloudDbFile() { + return uploadCloudDbFile; + }, get deleteCloudDb() { + return deleteCloudDb; } }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }; - function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_0); return vue.openBlock(), vue.createElementBlock( vue.Fragment, @@ -10682,10 +11366,55 @@ This will fail in production.`); ]) ]) ])) : vue.createCommentVNode("v-if", true), - $setup.showNewTable ? (vue.openBlock(), vue.createElementBlock("view", { + $setup.showNewDb ? (vue.openBlock(), vue.createElementBlock("view", { key: 4, class: "popup-overlay", - onClick: $setup.closeNewTableModal + onClick: $setup.closeNewDbModal + }, [ + vue.createElementVNode("view", { + class: "popup-card", + onClick: _cache[10] || (_cache[10] = vue.withModifiers(() => { + }, ["stop"])) + }, [ + vue.createElementVNode("view", { + class: "close-popup-card", + onClick: $setup.closeNewDbModal + }, [ + vue.createElementVNode("view", { class: "iconfont icon-quxiao" }) + ]), + vue.createElementVNode("view", { class: "popup-title" }, "新建个人数据库"), + vue.createElementVNode("view", { class: "new-folder-name" }, "数据库名称"), + vue.createElementVNode("view", { class: "create-folder-name" }, [ + vue.withDirectives(vue.createElementVNode( + "input", + { + "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => $setup.newDbName = $event), + type: "text", + placeholder: "输入数据库名称" + }, + null, + 512 + /* NEED_PATCH */ + ), [ + [vue.vModelText, $setup.newDbName] + ]) + ]), + vue.createElementVNode("view", { class: "option-wrapper" }, [ + vue.createElementVNode("view", { + class: "opt-btn opt-cancel", + onClick: $setup.closeNewDbModal + }, "取消"), + vue.createElementVNode("view", { + class: "opt-btn opt-confirm", + onClick: $setup.confirmCreateDb + }, "确认") + ]) + ]) + ])) : vue.createCommentVNode("v-if", true), + $setup.showUploadDb ? (vue.openBlock(), vue.createElementBlock("view", { + key: 5, + class: "popup-overlay", + onClick: $setup.closeUploadDbModal }, [ vue.createElementVNode("view", { class: "popup-card", @@ -10694,58 +11423,39 @@ This will fail in production.`); }, [ vue.createElementVNode("view", { class: "close-popup-card", - onClick: $setup.closeNewTableModal + onClick: $setup.closeUploadDbModal }, [ vue.createElementVNode("view", { class: "iconfont icon-quxiao" }) ]), - vue.createElementVNode( - "view", - { class: "popup-title" }, - "新建" + vue.toDisplayString($setup.currentCategory === "user" ? "个人" : "团队") + "数据表", - 1 - /* TEXT */ - ), - vue.createElementVNode("view", { class: "new-folder-name" }, "表名称"), - vue.createElementVNode("view", { class: "create-folder-name" }, [ - vue.withDirectives(vue.createElementVNode( - "input", + vue.createElementVNode("view", { class: "popup-title" }, "上传数据库文件"), + vue.createElementVNode("view", { class: "upload-db-hint" }, "支持 .db / .sqlite / .sqlite3 格式的 SQLite 数据库文件"), + vue.createElementVNode("view", { + class: "upload-file-area", + onClick: $setup.handlePickDbFile + }, [ + $setup.uploadDbFileName ? (vue.openBlock(), vue.createElementBlock( + "view", { - "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => $setup.newTableName = $event), - type: "text", - placeholder: "输入表名称,如:users" + key: 0, + class: "selected-file" }, - null, - 512 - /* NEED_PATCH */ - ), [ - [vue.vModelText, $setup.newTableName] - ]) - ]), - vue.createElementVNode("view", { class: "new-folder-name" }, "描述"), - vue.createElementVNode("view", { class: "create-folder-name" }, [ - vue.withDirectives(vue.createElementVNode( - "input", - { - "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => $setup.newTableDesc = $event), - type: "text", - placeholder: "输入表描述(可选)" - }, - null, - 512 - /* NEED_PATCH */ - ), [ - [vue.vModelText, $setup.newTableDesc] - ]) + vue.toDisplayString($setup.uploadDbFileName), + 1 + /* TEXT */ + )) : (vue.openBlock(), vue.createElementBlock("view", { + key: 1, + class: "upload-hint" + }, "点击选择数据库文件")) ]), vue.createElementVNode("view", { class: "option-wrapper" }, [ vue.createElementVNode("view", { class: "opt-btn opt-cancel", - onClick: $setup.closeNewTableModal + onClick: $setup.closeUploadDbModal }, "取消"), vue.createElementVNode("view", { class: "opt-btn opt-confirm", - onClick: $setup.confirmCreateTable - }, "确认") + onClick: $setup.confirmUploadDb + }, "确认上传") ]) ]) ])) : vue.createCommentVNode("v-if", true), @@ -10775,30 +11485,34 @@ This will fail in production.`); 1 /* TEXT */ ), - vue.createElementVNode("view", { class: "navbar-right" }, [ - $setup.isSelectFolder ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "navbar-right-text", - onClick: $setup.handleSelectFolder - }, "完成")) : (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 1, - class: vue.normalizeClass(["iconfont icon-gengduo", $setup.isMenuOpen ? "menu-open" : "custom-navbar-icon"]), - onClick: $setup.handleMenu - }, - null, - 2 - /* CLASS */ - )) - ]) + vue.createElementVNode("view", { class: "navbar-right" }), + $setup.isMenuOpen ? (vue.openBlock(), vue.createElementBlock("view", { + key: 0, + class: "menu-card" + }, [ + vue.createElementVNode("view", { + class: "menu-card-item", + onClick: _cache[12] || (_cache[12] = ($event) => { + $setup.handleSelectFolder(); + $setup.handleMenu(); + }) + }, "选择"), + vue.createElementVNode("view", { class: "solid-line" }), + vue.createElementVNode("view", { + class: "menu-card-item", + onClick: _cache[13] || (_cache[13] = ($event) => { + $setup.openNewFolderModal(); + $setup.handleMenu(); + }) + }, "新建文件夹") + ])) : vue.createCommentVNode("v-if", true) ]), vue.createElementVNode("view", { class: "category-tabs" }, [ vue.createElementVNode( "view", { class: vue.normalizeClass(["category-tab", { active: $setup.currentCategory === "user" }]), - onClick: _cache[12] || (_cache[12] = ($event) => $setup.switchCategory("user")) + onClick: _cache[14] || (_cache[14] = ($event) => $setup.switchCategory("user")) }, " 个人 ", 2 @@ -10808,7 +11522,7 @@ This will fail in production.`); "view", { class: vue.normalizeClass(["category-tab", { active: $setup.currentCategory === "team" }]), - onClick: _cache[13] || (_cache[13] = ($event) => $setup.switchCategory("team")) + onClick: _cache[15] || (_cache[15] = ($event) => $setup.switchCategory("team")) }, " 团队 ", 2 @@ -10929,40 +11643,64 @@ This will fail in production.`); vue.createElementVNode("view", { class: "section-header" }, [ vue.createElementVNode("view", { class: "section-title" }, [ vue.createElementVNode("view", { class: "iconfont icon-shujuku" }), - vue.createElementVNode("text", null, "云端数据库") + vue.createElementVNode("text", null, "云端数据库"), + vue.createElementVNode( + "text", + { class: "file-count" }, + vue.toDisplayString(!$setup.isDbLoading && $setup.personalDatabases.length > 0 ? "(" + $setup.personalDatabases.length + ")" : ""), + 1 + /* TEXT */ + ) ]), vue.createElementVNode("view", { class: "section-actions" }, [ vue.createElementVNode("view", { class: "action-btn", - onClick: $setup.openNewTableModal + onClick: $setup.openUploadDbModal + }, [ + vue.createVNode(_component_uni_icons, { + type: "upload", + size: "16" + }), + vue.createElementVNode("text", null, "上传数据库") + ]), + vue.createElementVNode("view", { + class: "action-btn", + onClick: $setup.openNewDbModal }, [ vue.createVNode(_component_uni_icons, { type: "plus", size: "16" }), - vue.createElementVNode("text", null, "新建表") + vue.createElementVNode("text", null, "新建数据库") ]) ]) ]), vue.createElementVNode("view", { class: "section-body" }, [ - $setup.personalTables.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { + $setup.isDbLoading ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, + class: "loading-area" + }, [ + vue.createElementVNode("view", { class: "loading-spinner" }), + vue.createElementVNode("text", { class: "loading-text" }, "加载中...") + ])) : $setup.personalDatabases.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { + key: 1, class: "empty-tip" }, [ vue.createElementVNode("view", { class: "iconfont icon-shujuku" }), - vue.createElementVNode("text", null, "暂无数据表") + vue.createElementVNode("text", null, "暂无数据库") ])) : (vue.openBlock(), vue.createElementBlock("view", { - key: 1, + key: 2, class: "table-list" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, - vue.renderList($setup.personalTables, (table) => { + vue.renderList($setup.personalDatabases, (db) => { return vue.openBlock(), vue.createElementBlock("view", { class: "table-item", - key: table.id, - onClick: ($event) => $setup.handleTableClick(table) + key: db.database_id, + onClick: ($event) => $setup.handleDbClick(db), + onLongpress: ($event) => $setup.handleDeleteDb(db) }, [ vue.createElementVNode("view", { class: "table-icon" }, [ vue.createVNode(_component_uni_icons, { @@ -10972,17 +11710,26 @@ This will fail in production.`); }) ]), vue.createElementVNode("view", { class: "table-info" }, [ - vue.createElementVNode( - "view", - { class: "table-name" }, - vue.toDisplayString(table.name), - 1 - /* TEXT */ - ), + vue.createElementVNode("view", { class: "table-name" }, [ + vue.createTextVNode( + vue.toDisplayString(db.database_name) + " ", + 1 + /* TEXT */ + ), + vue.createElementVNode( + "text", + { + class: vue.normalizeClass(["db-tag", db.team_id ? "tag-team" : "tag-personal"]) + }, + vue.toDisplayString(db.team_id ? "团队共享" : "个人私有"), + 3 + /* TEXT, CLASS */ + ) + ]), vue.createElementVNode( "view", { class: "table-desc" }, - vue.toDisplayString(table.desc || "无描述"), + vue.toDisplayString(db.table_count || 0) + " 张表 · " + vue.toDisplayString($setup.getAccessLevelLabel(db.access_level)), 1 /* TEXT */ ) @@ -10991,7 +11738,7 @@ This will fail in production.`); vue.createElementVNode( "text", { class: "table-rows" }, - vue.toDisplayString(table.rowCount || 0) + " 条记录", + vue.toDisplayString($setup.formatDbTime(db.modified_time)), 1 /* TEXT */ ), @@ -11001,7 +11748,7 @@ This will fail in production.`); color: "#999" }) ]) - ], 8, ["onClick"]); + ], 40, ["onClick", "onLongpress"]); }), 128 /* KEYED_FRAGMENT */ @@ -11206,39 +11953,33 @@ This will fail in production.`); vue.createElementVNode("view", { class: "section-title" }, [ vue.createElementVNode("view", { class: "iconfont icon-shujuku" }), vue.createElementVNode("text", null, "团队云端数据库") - ]), - vue.createElementVNode("view", { class: "section-actions" }, [ - vue.createElementVNode("view", { - class: "action-btn", - onClick: $setup.openNewTableModal - }, [ - vue.createVNode(_component_uni_icons, { - type: "plus", - size: "16" - }), - vue.createElementVNode("text", null, "新建表") - ]) ]) ]), vue.createElementVNode("view", { class: "section-body" }, [ - $setup.teamTables.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { + $setup.isDbLoading ? (vue.openBlock(), vue.createElementBlock("view", { key: 0, + class: "loading-area" + }, [ + vue.createElementVNode("view", { class: "loading-spinner" }), + vue.createElementVNode("text", { class: "loading-text" }, "加载中...") + ])) : $setup.teamDatabases.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { + key: 1, class: "empty-tip" }, [ vue.createElementVNode("view", { class: "iconfont icon-shujuku" }), - vue.createElementVNode("text", null, "暂无团队数据表") + vue.createElementVNode("text", null, "暂无团队数据库") ])) : (vue.openBlock(), vue.createElementBlock("view", { - key: 1, + key: 2, class: "table-list" }, [ (vue.openBlock(true), vue.createElementBlock( vue.Fragment, null, - vue.renderList($setup.teamTables, (table) => { + vue.renderList($setup.teamDatabases, (db) => { return vue.openBlock(), vue.createElementBlock("view", { class: "table-item", - key: table.id, - onClick: ($event) => $setup.handleTableClick(table) + key: db.database_id, + onClick: ($event) => $setup.handleDbClick(db) }, [ vue.createElementVNode("view", { class: "table-icon" }, [ vue.createVNode(_component_uni_icons, { @@ -11248,17 +11989,18 @@ This will fail in production.`); }) ]), vue.createElementVNode("view", { class: "table-info" }, [ - vue.createElementVNode( - "view", - { class: "table-name" }, - vue.toDisplayString(table.name), - 1 - /* TEXT */ - ), + vue.createElementVNode("view", { class: "table-name" }, [ + vue.createTextVNode( + vue.toDisplayString(db.database_name) + " ", + 1 + /* TEXT */ + ), + vue.createElementVNode("text", { class: "db-tag tag-team" }, "团队共享") + ]), vue.createElementVNode( "view", { class: "table-desc" }, - vue.toDisplayString(table.desc || "无描述"), + vue.toDisplayString(db.table_count || 0) + " 张表 · " + vue.toDisplayString($setup.getAccessLevelLabel(db.access_level)), 1 /* TEXT */ ) @@ -11267,7 +12009,7 @@ This will fail in production.`); vue.createElementVNode( "text", { class: "table-rows" }, - vue.toDisplayString(table.rowCount || 0) + " 条记录", + vue.toDisplayString($setup.formatDbTime(db.modified_time)), 1 /* TEXT */ ), @@ -11296,7 +12038,967 @@ This will fail in production.`); /* STABLE_FRAGMENT */ ); } - const PagesCloudDatabaseCloudDatabase = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__scopeId", "data-v-51006ffb"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/CloudDatabase/CloudDatabase.vue"]]); + const PagesCloudDatabaseCloudDatabase = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__scopeId", "data-v-51006ffb"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/CloudDatabase/CloudDatabase.vue"]]); + const _sfc_main$1 = { + __name: "CloudDbDetail", + props: { + databaseId: { + type: String, + default: "" + }, + databaseName: { + type: String, + default: "" + }, + teamId: { + type: String, + default: "" + } + }, + setup(__props, { expose: __expose }) { + __expose(); + const props = __props; + const databaseId = vue.ref(props.databaseId || ""); + const databaseName = vue.ref(props.databaseName || ""); + const teamId = vue.ref(props.teamId || ""); + const dbAccessLevel = vue.ref(2); + const dbTableCount = vue.ref(0); + const tableList = vue.ref([]); + const isTableLoading = vue.ref(false); + const currentTable = vue.ref(null); + const tableData = vue.ref([]); + const tableColumns = vue.computed(() => { + var _a; + if (tableData.value.length > 0) { + const keys = /* @__PURE__ */ new Set(); + tableData.value.forEach((row) => Object.keys(row).forEach((k) => keys.add(k))); + return Array.from(keys).filter((k) => k !== "_row_id" && k !== "_id"); + } + if ((_a = currentTable.value) == null ? void 0 : _a.columns) { + return currentTable.value.columns.map((c) => c.name).filter((n2) => n2 !== "_row_id"); + } + return []; + }); + const isMenuOpen = vue.ref(false); + const handleMenu = () => { + isMenuOpen.value = !isMenuOpen.value; + }; + const handleBack = () => { + uni.navigateBack(); + }; + const fetchTables = async () => { + isTableLoading.value = true; + try { + const token = getToken(); + const tables = await getCloudDbTables(token, databaseId.value, true); + tableList.value = (tables || []).map((t2) => ({ + table_name: t2.name, + row_count: t2.row_count || 0, + columns: t2.columns || [] + })); + dbTableCount.value = tableList.value.length; + } catch (error) { + formatAppLog("error", "at pages/CloudDbDetail/CloudDbDetail.vue:282", "获取表列表失败:", error); + tableList.value = []; + } finally { + isTableLoading.value = false; + } + }; + const selectTable = async (table) => { + currentTable.value = table; + tableData.value = []; + uni.showLoading({ + title: "加载中..." + }); + try { + const token = getToken(); + const data = await getCloudDbTableData(token, databaseId.value, table.table_name); + tableData.value = data || []; + uni.hideLoading(); + } catch (err) { + uni.hideLoading(); + uni.showToast({ + title: typeof err === "string" ? err : "加载表数据失败", + icon: "none" + }); + tableData.value = []; + } + }; + const handleDeleteTable = (table) => { + uni.showModal({ + title: "删除表", + content: `确定要删除表"${table.table_name}"吗?此操作不可恢复。`, + success: async (res) => { + var _a; + if (res.confirm) { + uni.showLoading({ + title: "删除中..." + }); + try { + const token = getToken(); + await deleteCloudDbTable(token, databaseId.value, table.table_name); + uni.hideLoading(); + uni.showToast({ + title: "删除成功", + icon: "success" + }); + if (((_a = currentTable.value) == null ? void 0 : _a.table_name) === table.table_name) { + currentTable.value = null; + tableData.value = []; + } + await fetchTables(); + } catch (error) { + uni.hideLoading(); + formatAppLog("error", "at pages/CloudDbDetail/CloudDbDetail.vue:335", "删除表失败:", error); + uni.showToast({ + title: "删除失败,请重试", + icon: "error" + }); + } + } + } + }); + }; + const openEditRow = (row) => { + const rowId = row._row_id || row._id; + if (!rowId) { + uni.showToast({ + title: "无法识别该行", + icon: "none" + }); + return; + } + const columns = tableColumns.value; + if (columns.length === 0) { + uni.showToast({ + title: "无可用列", + icon: "none" + }); + return; + } + const firstCol = columns[0]; + uni.showModal({ + title: `编辑 ${firstCol}`, + editable: true, + placeholderText: row[firstCol] || "", + content: "", + success: async (res) => { + if (res.confirm && res.content !== void 0) { + uni.showLoading({ + title: "更新中..." + }); + try { + const token = getToken(); + await updateCloudDbTableData( + token, + databaseId.value, + currentTable.value.table_name, + { + _row_id: rowId + }, + { + [firstCol]: res.content + } + ); + uni.hideLoading(); + uni.showToast({ + title: "更新成功", + icon: "success" + }); + row[firstCol] = res.content; + } catch (error) { + uni.hideLoading(); + formatAppLog("error", "at pages/CloudDbDetail/CloudDbDetail.vue:397", "更新失败:", error); + uni.showToast({ + title: error, + icon: "error" + }); + } + } + } + }); + }; + const showNewTable = vue.ref(false); + const importTableName = vue.ref(""); + const importFileName = vue.ref(""); + const importFilePath = vue.ref(""); + const openImportModal = () => { + showNewTable.value = true; + importTableName.value = ""; + importFileName.value = ""; + importFilePath.value = ""; + }; + const closeNewTableModal = () => { + showNewTable.value = false; + }; + const handlePickFile = () => { + chooseFile({ + count: 1, + type: "all", + success: (res) => { + const file = res.tempFiles[0]; + importFileName.value = file.name || "unknown"; + importFilePath.value = file.path; + }, + fail: (err) => { + formatAppLog("error", "at pages/CloudDbDetail/CloudDbDetail.vue:434", "选择文件失败:", err); + uni.showToast({ + title: "选择文件失败", + icon: "none" + }); + } + }); + }; + const confirmImportFile = async () => { + const tableName = importTableName.value.trim() || ""; + if (!importFilePath.value) { + uni.showToast({ + title: "请选择文件", + icon: "none" + }); + return; + } + uni.showLoading({ + title: "导入中..." + }); + try { + const token = getToken(); + await importFileToCloudDb(token, false, databaseId.value, importFilePath.value, tableName); + uni.hideLoading(); + uni.showToast({ + title: "导入成功", + icon: "success" + }); + closeNewTableModal(); + await fetchTables(); + } catch (error) { + uni.hideLoading(); + formatAppLog("error", "at pages/CloudDbDetail/CloudDbDetail.vue:474", "导入失败:", error); + if (error === "table_exists") { + uni.showToast({ + title: "文件已存在", + icon: "error" + }); + } else { + uni.showToast({ + title: "导入失败,请重试", + icon: "error" + }); + } + } + }; + const showPermission = vue.ref(false); + const permissionList = vue.ref([]); + const openPermissionModal = async () => { + showPermission.value = true; + uni.showLoading({ + title: "加载中..." + }); + try { + const token = getToken(); + let result; + if (teamId.value) { + result = await getCloudDbPermission(token, databaseId.value, "team_id", teamId.value); + } else { + result = await getCloudDbPermission(token, databaseId.value, "user_id", getUserId()); + } + const rawList = Array.isArray(result) ? result : []; + permissionList.value = rawList.map((item) => { + var _a, _b, _c; + if (item.team) { + return { + _id: item._id, + database_id: item.database_id, + access_level: item.access_level, + permType: "team_id", + id: item.team._id || item.team.id, + name: item.team.name + }; + } else if (item.team_id) { + return { + database_id: item.database_id, + access_level: item.access_level, + permType: "team_id", + id: item.team_id, + name: ((_a = item.database) == null ? void 0 : _a.database_name) || "" + }; + } else { + return { + database_id: item.database_id, + access_level: item.access_level, + permType: "user_id", + id: item.user_id || ((_b = item.database) == null ? void 0 : _b.user_id) || getUserId(), + name: ((_c = item.database) == null ? void 0 : _c.database_name) || "" + }; + } + }); + } catch (error) { + formatAppLog("error", "at pages/CloudDbDetail/CloudDbDetail.vue:544", "获取权限失败:", error); + permissionList.value = []; + } + uni.hideLoading(); + }; + const closePermissionModal = () => { + showPermission.value = false; + }; + const changePermission = (perm, action) => { + if (action === "delete") { + uni.showModal({ + title: "移除权限", + content: `确定要移除"${perm.name}"的权限吗?`, + success: async (res) => { + if (res.confirm) { + uni.showLoading({ + title: "移除中..." + }); + try { + const token = getToken(); + await deleteCloudDbPermission(token, databaseId.value, perm.permType, perm.id); + uni.hideLoading(); + uni.showToast({ + title: "已移除", + icon: "success" + }); + await openPermissionModal(); + } catch (error) { + uni.hideLoading(); + formatAppLog("error", "at pages/CloudDbDetail/CloudDbDetail.vue:574", "移除权限失败:", error); + uni.showToast({ + title: "操作失败,请重试", + icon: "error" + }); + } + } + } + }); + } else { + const levels = ["无权限访问", "仅访问", "管理员完全控制", "团队完全控制"]; + const currentLevel = perm.access_level || 0; + uni.showActionSheet({ + title: "选择权限级别", + itemList: levels.map((label, idx) => `${idx}. ${label}`), + success: async (res) => { + const newLevel = res.tapIndex; + if (newLevel === currentLevel) + return; + uni.showLoading({ + title: "更新中..." + }); + try { + const token = getToken(); + await updateCloudDbPermission( + token, + databaseId.value, + perm.permType, + perm.id, + newLevel + ); + uni.hideLoading(); + uni.showToast({ + title: "已更新", + icon: "success" + }); + await openPermissionModal(); + } catch (error) { + uni.hideLoading(); + formatAppLog("error", "at pages/CloudDbDetail/CloudDbDetail.vue:608", "更新权限失败:", error); + uni.showToast({ + title: "操作失败,请重试", + icon: "error" + }); + } + } + }); + } + }; + const showTransfer = vue.ref(false); + const teamList = vue.ref([]); + const selectedTeamId = vue.ref(""); + const openTransferModal = async () => { + showTransfer.value = true; + selectedTeamId.value = ""; + try { + const token = getToken(); + const teams = await getTeamList(token); + teamList.value = teams || []; + } catch (error) { + formatAppLog("error", "at pages/CloudDbDetail/CloudDbDetail.vue:632", "获取团队列表失败:", error); + teamList.value = []; + } + }; + const closeTransferModal = () => { + showTransfer.value = false; + }; + const confirmTransfer = async () => { + if (!selectedTeamId.value) { + uni.showToast({ + title: "请选择目标团队", + icon: "none" + }); + return; + } + uni.showModal({ + title: "确认移交", + content: "移交后数据库将归属于该团队,确定继续吗?", + success: async (res) => { + if (res.confirm) { + uni.showLoading({ + title: "移交中..." + }); + try { + const token = getToken(); + await dbTransferToTeam(token, databaseId.value, selectedTeamId.value); + uni.hideLoading(); + uni.showToast({ + title: "移交成功", + icon: "success" + }); + closeTransferModal(); + setTimeout(() => { + uni.navigateBack(); + }, 1e3); + } catch (error) { + uni.hideLoading(); + formatAppLog("error", "at pages/CloudDbDetail/CloudDbDetail.vue:670", "移交失败:", error); + uni.showToast({ + title: "移交失败,请重试", + icon: "error" + }); + } + } + } + }); + }; + const getAccessLevelLabel = (level) => { + const labels = { + 0: "无权限访问", + 1: "仅访问", + 2: "管理员完全控制", + 3: "团队完全控制" + }; + return labels[level] || "未知"; + }; + const formatCellValue = (val) => { + if (val === null || val === void 0) + return ""; + if (typeof val === "object") + return JSON.stringify(val); + return String(val); + }; + vue.onMounted(() => { + var _a; + const pages = getCurrentPages(); + const currentPage = pages[pages.length - 1]; + const options = ((_a = currentPage.$page) == null ? void 0 : _a.options) || currentPage.options || {}; + databaseId.value = options.databaseId || ""; + databaseName.value = decodeURIComponent(options.databaseName || "数据库详情"); + teamId.value = options.teamId || ""; + if (databaseId.value) { + fetchTables(); + } + }); + const __returned__ = { props, databaseId, databaseName, teamId, dbAccessLevel, dbTableCount, tableList, isTableLoading, currentTable, tableData, tableColumns, isMenuOpen, handleMenu, handleBack, fetchTables, selectTable, handleDeleteTable, openEditRow, showNewTable, importTableName, importFileName, importFilePath, openImportModal, closeNewTableModal, handlePickFile, confirmImportFile, showPermission, permissionList, openPermissionModal, closePermissionModal, changePermission, showTransfer, teamList, selectedTeamId, openTransferModal, closeTransferModal, confirmTransfer, getAccessLevelLabel, formatCellValue, onMounted: vue.onMounted, ref: vue.ref, computed: vue.computed, get getToken() { + return getToken; + }, get getUserId() { + return getUserId; + }, get chooseFile() { + return chooseFile; + }, get getCloudDbTables() { + return getCloudDbTables; + }, get deleteCloudDbTable() { + return deleteCloudDbTable; + }, get getCloudDbTableData() { + return getCloudDbTableData; + }, get updateCloudDbTableData() { + return updateCloudDbTableData; + }, get importFileToCloudDb() { + return importFileToCloudDb; + }, get getCloudDbPermission() { + return getCloudDbPermission; + }, get deleteCloudDbPermission() { + return deleteCloudDbPermission; + }, get updateCloudDbPermission() { + return updateCloudDbPermission; + }, get dbTransferToTeam() { + return dbTransferToTeam; + }, get getTeamList() { + return getTeamList; + } }; + Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); + return __returned__; + } + }; + function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_0); + return vue.openBlock(), vue.createElementBlock("view", { class: "cloud-db-detail-wrapper" }, [ + vue.createElementVNode("view", { class: "status-bar" }), + $setup.showNewTable ? (vue.openBlock(), vue.createElementBlock("view", { + key: 0, + class: "popup-overlay", + onClick: $setup.closeNewTableModal + }, [ + vue.createElementVNode("view", { + class: "popup-card", + onClick: _cache[1] || (_cache[1] = vue.withModifiers(() => { + }, ["stop"])) + }, [ + vue.createElementVNode("view", { + class: "close-popup-card", + onClick: $setup.closeNewTableModal + }, [ + vue.createElementVNode("view", { class: "iconfont icon-quxiao" }) + ]), + vue.createElementVNode("view", { class: "popup-title" }, "导入文件到数据库"), + vue.createElementVNode("view", { class: "new-folder-name" }, "表名称"), + vue.createElementVNode("view", { class: "create-folder-name" }, [ + vue.withDirectives(vue.createElementVNode( + "input", + { + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $setup.importTableName = $event), + type: "text", + placeholder: "输入表名称" + }, + null, + 512 + /* NEED_PATCH */ + ), [ + [vue.vModelText, $setup.importTableName] + ]) + ]), + vue.createElementVNode("view", { class: "new-folder-name" }, "文件"), + vue.createElementVNode("view", { + class: "upload-file-area", + onClick: $setup.handlePickFile + }, [ + $setup.importFileName ? (vue.openBlock(), vue.createElementBlock( + "view", + { + key: 0, + class: "selected-file" + }, + vue.toDisplayString($setup.importFileName), + 1 + /* TEXT */ + )) : (vue.openBlock(), vue.createElementBlock("view", { + key: 1, + class: "upload-hint" + }, "点击选择文件(支持 CSV/Excel/SQLite)")) + ]), + vue.createElementVNode("view", { class: "option-wrapper" }, [ + vue.createElementVNode("view", { + class: "opt-btn opt-cancel", + onClick: $setup.closeNewTableModal + }, "取消"), + vue.createElementVNode("view", { + class: "opt-btn opt-confirm", + onClick: $setup.confirmImportFile + }, "确认导入") + ]) + ]) + ])) : vue.createCommentVNode("v-if", true), + $setup.showPermission ? (vue.openBlock(), vue.createElementBlock("view", { + key: 1, + class: "popup-overlay", + onClick: $setup.closePermissionModal + }, [ + vue.createElementVNode("view", { + class: "popup-card", + onClick: _cache[2] || (_cache[2] = vue.withModifiers(() => { + }, ["stop"])) + }, [ + vue.createElementVNode("view", { + class: "close-popup-card", + onClick: $setup.closePermissionModal + }, [ + vue.createElementVNode("view", { class: "iconfont icon-quxiao" }) + ]), + vue.createElementVNode("view", { class: "popup-title" }, "权限管理"), + vue.createElementVNode("scroll-view", { + class: "permission-body", + "scroll-y": "" + }, [ + $setup.permissionList.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { + key: 0, + class: "folder-null" + }, "暂无权限记录")) : (vue.openBlock(), vue.createElementBlock("view", { + key: 1, + class: "permission-list" + }, [ + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList($setup.permissionList, (perm) => { + return vue.openBlock(), vue.createElementBlock("view", { + class: "permission-item", + key: perm._id || perm.id + }, [ + vue.createElementVNode("view", { class: "perm-info" }, [ + vue.createElementVNode( + "text", + { class: "perm-type" }, + vue.toDisplayString(perm.permType === "team_id" ? "团队" : "个人"), + 1 + /* TEXT */ + ) + ]), + vue.createElementVNode( + "view", + { class: "perm-level" }, + vue.toDisplayString($setup.getAccessLevelLabel(perm.access_level)), + 1 + /* TEXT */ + ), + vue.createElementVNode("view", { class: "perm-actions" }, [ + vue.createElementVNode("view", { + class: "perm-action-btn", + onClick: ($event) => $setup.changePermission(perm, "change") + }, "修改", 8, ["onClick"]), + vue.createElementVNode("view", { + class: "perm-action-btn delete", + onClick: ($event) => $setup.changePermission(perm, "delete") + }, "移除", 8, ["onClick"]) + ]) + ]); + }), + 128 + /* KEYED_FRAGMENT */ + )) + ])) + ]), + vue.createElementVNode("view", { + class: "close-permission-btn", + onClick: $setup.closePermissionModal + }, "关闭") + ]) + ])) : vue.createCommentVNode("v-if", true), + $setup.showTransfer ? (vue.openBlock(), vue.createElementBlock("view", { + key: 2, + class: "popup-overlay", + onClick: $setup.closeTransferModal + }, [ + vue.createElementVNode("view", { + class: "popup-card", + onClick: _cache[3] || (_cache[3] = vue.withModifiers(() => { + }, ["stop"])) + }, [ + vue.createElementVNode("view", { + class: "close-popup-card", + onClick: $setup.closeTransferModal + }, [ + vue.createElementVNode("view", { class: "iconfont icon-quxiao" }) + ]), + vue.createElementVNode("view", { class: "popup-title" }, "移交数据库到团队"), + vue.createElementVNode("scroll-view", { + class: "transfer-body", + "scroll-y": "" + }, [ + $setup.teamList.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { + key: 0, + class: "folder-null" + }, "暂无可用团队")) : (vue.openBlock(), vue.createElementBlock("view", { + key: 1, + class: "transfer-list" + }, [ + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList($setup.teamList, (team) => { + return vue.openBlock(), vue.createElementBlock("view", { + class: vue.normalizeClass(["transfer-item", { active: $setup.selectedTeamId === team.id }]), + key: team.id, + onClick: ($event) => $setup.selectedTeamId = team.id + }, [ + vue.createElementVNode( + "text", + { class: "transfer-name" }, + vue.toDisplayString(team.name), + 1 + /* TEXT */ + ), + $setup.selectedTeamId === team.id ? (vue.openBlock(), vue.createBlock(_component_uni_icons, { + key: 0, + type: "checkmarkempty", + size: "20", + color: "#3b86ff" + })) : vue.createCommentVNode("v-if", true) + ], 10, ["onClick"]); + }), + 128 + /* KEYED_FRAGMENT */ + )) + ])) + ]), + vue.createElementVNode("view", { class: "option-wrapper" }, [ + vue.createElementVNode("view", { + class: "opt-btn opt-cancel", + onClick: $setup.closeTransferModal + }, "取消"), + vue.createElementVNode("view", { + class: "opt-btn opt-confirm", + onClick: $setup.confirmTransfer + }, "确认移交") + ]) + ]) + ])) : vue.createCommentVNode("v-if", true), + vue.createElementVNode("view", { class: "cloud-db-detail page-container" }, [ + vue.createElementVNode("view", { class: "cloud-db-header" }, [ + vue.createElementVNode("view", { class: "custom-navbar" }, [ + vue.createElementVNode("view", { + class: "navbar-left", + onClick: $setup.handleBack + }, [ + vue.createElementVNode("view", { class: "iconfont icon-fanhui custom-navbar-icon" }) + ]), + vue.createElementVNode( + "view", + { class: "navbar-title" }, + vue.toDisplayString($setup.databaseName), + 1 + /* TEXT */ + ), + vue.createElementVNode("view", { class: "navbar-right" }, [ + vue.createElementVNode("view", { + class: "iconfont icon-gengduo custom-navbar-icon", + onClick: $setup.handleMenu + }) + ]) + ]), + $setup.isMenuOpen ? (vue.openBlock(), vue.createElementBlock("view", { + key: 0, + class: "menu-card" + }, [ + vue.createElementVNode("view", { + class: "menu-card-item", + onClick: _cache[4] || (_cache[4] = ($event) => { + $setup.openImportModal(); + $setup.handleMenu(); + }) + }, "导入文件"), + vue.createElementVNode("view", { class: "solid-line" }), + vue.createElementVNode("view", { + class: "menu-card-item", + onClick: _cache[5] || (_cache[5] = ($event) => { + $setup.openPermissionModal(); + $setup.handleMenu(); + }) + }, "权限管理"), + !$setup.teamId ? (vue.openBlock(), vue.createElementBlock("view", { + key: 0, + class: "solid-line" + })) : vue.createCommentVNode("v-if", true), + !$setup.teamId ? (vue.openBlock(), vue.createElementBlock("view", { + key: 1, + class: "menu-card-item", + onClick: _cache[6] || (_cache[6] = ($event) => { + $setup.openTransferModal(); + $setup.handleMenu(); + }) + }, "移交团队")) : vue.createCommentVNode("v-if", true) + ])) : vue.createCommentVNode("v-if", true) + ]), + vue.createElementVNode("scroll-view", { + class: "cloud-db-content", + "scroll-y": "" + }, [ + vue.createElementVNode("view", { class: "db-info-bar" }, [ + vue.createElementVNode( + "text", + { class: "db-info-text" }, + vue.toDisplayString($setup.dbTableCount) + " 张表", + 1 + /* TEXT */ + ), + vue.createElementVNode( + "text", + { class: "db-info-text" }, + "权限:" + vue.toDisplayString($setup.getAccessLevelLabel($setup.dbAccessLevel)), + 1 + /* TEXT */ + ) + ]), + vue.createElementVNode("view", { class: "section-block" }, [ + vue.createElementVNode("view", { class: "section-header" }, [ + vue.createElementVNode("view", { class: "section-title" }, [ + vue.createElementVNode("view", { class: "iconfont icon-biaoge" }), + vue.createElementVNode("text", null, "数据表") + ]) + ]), + vue.createElementVNode("view", { class: "section-body" }, [ + $setup.isTableLoading ? (vue.openBlock(), vue.createElementBlock("view", { + key: 0, + class: "loading-area" + }, [ + vue.createElementVNode("view", { class: "loading-spinner" }), + vue.createElementVNode("text", { class: "loading-text" }, "加载中...") + ])) : $setup.tableList.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { + key: 1, + class: "empty-tip" + }, [ + vue.createElementVNode("view", { class: "iconfont icon-shujuku" }), + vue.createElementVNode("text", null, "暂无数据表") + ])) : (vue.openBlock(), vue.createElementBlock("view", { + key: 2, + class: "table-list" + }, [ + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList($setup.tableList, (table) => { + return vue.openBlock(), vue.createElementBlock("view", { + class: "table-item", + key: table.table_name, + onClick: ($event) => $setup.selectTable(table), + onLongpress: ($event) => $setup.handleDeleteTable(table) + }, [ + vue.createElementVNode("view", { class: "table-icon" }, [ + vue.createVNode(_component_uni_icons, { + type: "compose", + size: "22", + color: "#3b86ff" + }) + ]), + vue.createElementVNode("view", { class: "table-info" }, [ + vue.createElementVNode( + "view", + { class: "table-name" }, + vue.toDisplayString(table.table_name), + 1 + /* TEXT */ + ), + vue.createElementVNode( + "view", + { class: "table-desc" }, + vue.toDisplayString(table.row_count || 0) + " 条记录", + 1 + /* TEXT */ + ) + ]), + vue.createElementVNode("view", { class: "table-meta" }, [ + vue.createVNode(_component_uni_icons, { + type: "right", + size: "14", + color: "#999" + }) + ]) + ], 40, ["onClick", "onLongpress"]); + }), + 128 + /* KEYED_FRAGMENT */ + )) + ])) + ]) + ]), + $setup.currentTable ? (vue.openBlock(), vue.createElementBlock("view", { + key: 0, + class: "section-block" + }, [ + vue.createElementVNode("view", { class: "section-divider" }), + vue.createElementVNode("view", { class: "section-header" }, [ + vue.createElementVNode("view", { class: "section-title" }, [ + vue.createElementVNode("view", { class: "iconfont icon-biaoge" }), + vue.createElementVNode( + "text", + null, + vue.toDisplayString($setup.currentTable.table_name), + 1 + /* TEXT */ + ) + ]), + vue.createElementVNode("view", { class: "section-actions" }, [ + vue.createElementVNode( + "text", + { class: "row-count" }, + vue.toDisplayString($setup.tableData.length) + " / " + vue.toDisplayString($setup.currentTable.row_count || 0) + " 条", + 1 + /* TEXT */ + ) + ]) + ]), + vue.createElementVNode("view", { class: "section-body" }, [ + $setup.tableData.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { + key: 0, + class: "empty-tip" + }, [ + vue.createElementVNode("text", null, "暂无数据") + ])) : (vue.openBlock(), vue.createElementBlock("view", { + key: 1, + class: "data-table-wrapper" + }, [ + vue.createElementVNode("scroll-view", { + "scroll-x": "", + class: "data-table-scroll" + }, [ + vue.createElementVNode("view", { class: "data-table" }, [ + vue.createElementVNode("view", { class: "data-row data-header" }, [ + vue.createElementVNode("view", { class: "data-cell index-cell" }, "#"), + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList($setup.tableColumns, (col) => { + return vue.openBlock(), vue.createElementBlock( + "view", + { + key: col, + class: "data-cell" + }, + vue.toDisplayString(col), + 1 + /* TEXT */ + ); + }), + 128 + /* KEYED_FRAGMENT */ + )) + ]), + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList($setup.tableData, (row, rowIdx) => { + return vue.openBlock(), vue.createElementBlock("view", { + class: "data-row", + key: row._row_id || rowIdx, + onClick: ($event) => $setup.openEditRow(row) + }, [ + vue.createElementVNode( + "view", + { class: "data-cell index-cell" }, + vue.toDisplayString(rowIdx + 1), + 1 + /* TEXT */ + ), + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList($setup.tableColumns, (col) => { + return vue.openBlock(), vue.createElementBlock( + "view", + { + key: col, + class: "data-cell" + }, + vue.toDisplayString($setup.formatCellValue(row[col])), + 1 + /* TEXT */ + ); + }), + 128 + /* KEYED_FRAGMENT */ + )) + ], 8, ["onClick"]); + }), + 128 + /* KEYED_FRAGMENT */ + )) + ]) + ]) + ])) + ]) + ])) : vue.createCommentVNode("v-if", true) + ]) + ]) + ]); + } + const PagesCloudDbDetailCloudDbDetail = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__scopeId", "data-v-96fa4671"], ["__file", "D:/Projects/uniapp/app-test/test1/pages/CloudDbDetail/CloudDbDetail.vue"]]); __definePage("pages/Login/Login", PagesLoginLogin); __definePage("pages/Chat/Chat", PagesChatChat); __definePage("pages/WorkSpace/WorkSpace", PagesWorkSpaceWorkSpace); @@ -11306,6 +13008,7 @@ This will fail in production.`); __definePage("pages/text/text", PagesTextText); __definePage("pages/text/text2", PagesTextText2); __definePage("pages/CloudDatabase/CloudDatabase", PagesCloudDatabaseCloudDatabase); + __definePage("pages/CloudDbDetail/CloudDbDetail", PagesCloudDbDetailCloudDbDetail); const _sfc_main = { onLaunch: function() { formatAppLog("log", "at App.vue:4", "App Launch"); diff --git a/unpackage/dist/dev/app-plus/manifest.json b/unpackage/dist/dev/app-plus/manifest.json index 703d9f6..e24e9c0 100644 --- a/unpackage/dist/dev/app-plus/manifest.json +++ b/unpackage/dist/dev/app-plus/manifest.json @@ -7,7 +7,7 @@ "id": "__UNI__923FD9E", "name": "test1", "version": { - "name": "1.0.0", + "name": "1.1.1", "code": "1" }, "description": "", @@ -46,6 +46,46 @@ "nvueStyleCompiler": "uni-app", "compilerVersion": 3, "distribute": { + "icons": { + "android": { + "hdpi": "unpackage/res/icons/72x72.png", + "xhdpi": "unpackage/res/icons/96x96.png", + "xxhdpi": "unpackage/res/icons/144x144.png", + "xxxhdpi": "unpackage/res/icons/192x192.png" + }, + "ios": { + "appstore": "unpackage/res/icons/1024x1024.png", + "ipad": { + "app": "unpackage/res/icons/76x76.png", + "app@2x": "unpackage/res/icons/152x152.png", + "notification": "unpackage/res/icons/20x20.png", + "notification@2x": "unpackage/res/icons/40x40.png", + "proapp@2x": "unpackage/res/icons/167x167.png", + "settings": "unpackage/res/icons/29x29.png", + "settings@2x": "unpackage/res/icons/58x58.png", + "spotlight": "unpackage/res/icons/40x40.png", + "spotlight@2x": "unpackage/res/icons/80x80.png" + }, + "iphone": { + "app@2x": "unpackage/res/icons/120x120.png", + "app@3x": "unpackage/res/icons/180x180.png", + "notification@2x": "unpackage/res/icons/40x40.png", + "notification@3x": "unpackage/res/icons/60x60.png", + "settings@2x": "unpackage/res/icons/58x58.png", + "settings@3x": "unpackage/res/icons/87x87.png", + "spotlight@2x": "unpackage/res/icons/80x80.png", + "spotlight@3x": "unpackage/res/icons/120x120.png" + } + } + }, + "splashscreen": { + "androidStyle": "default", + "android": { + "hdpi": "C:/Users/ADMIN/Pictures/480-762.png", + "xhdpi": "C:/Users/ADMIN/Pictures/720-1242.png", + "xxhdpi": "C:/Users/ADMIN/Pictures/1080-1882.png" + } + }, "google": { "permissions": [ "", diff --git a/unpackage/dist/dev/app-plus/pages/CloudDatabase/CloudDatabase.css b/unpackage/dist/dev/app-plus/pages/CloudDatabase/CloudDatabase.css index c177277..1bc4f43 100644 --- a/unpackage/dist/dev/app-plus/pages/CloudDatabase/CloudDatabase.css +++ b/unpackage/dist/dev/app-plus/pages/CloudDatabase/CloudDatabase.css @@ -1276,3 +1276,81 @@ margin-bottom: 0.625rem; text-align: center; } + +/* ===== 加载动画 ===== */ +.loading-area[data-v-51006ffb] { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 1.875rem 0; + gap: 0.5rem; +} +.loading-spinner[data-v-51006ffb] { + width: 1.75rem; + height: 1.75rem; + border: 0.125rem solid #e8e8e8; + border-top-color: #3b86ff; + border-radius: 50%; + animation: spin-51006ffb 0.8s linear infinite; +} +@keyframes spin-51006ffb { +to { + transform: rotate(360deg); +} +} +.loading-text[data-v-51006ffb] { + font-size: 0.75rem; + color: #999; +} + +/* ===== 数据库标签 ===== */ +.db-tag[data-v-51006ffb] { + display: inline-block; + font-size: 0.625rem; + font-weight: 500; + padding: 0.0625rem 0.375rem; + border-radius: 0.25rem; + margin-left: 0.3125rem; + vertical-align: middle; +} +.db-tag.tag-personal[data-v-51006ffb] { + color: #3b86ff; + background: rgba(59, 134, 255, 0.08); + border: 0.03125rem solid rgba(59, 134, 255, 0.2); +} +.db-tag.tag-team[data-v-51006ffb] { + color: #67c23a; + background: rgba(103, 194, 58, 0.08); + border: 0.03125rem solid rgba(103, 194, 58, 0.2); +} + +/* ===== 上传数据库弹窗 ===== */ +.upload-db-hint[data-v-51006ffb] { + font-size: 0.6875rem; + color: #999; + margin-bottom: 0.625rem; + text-align: center; +} +.upload-file-area[data-v-51006ffb] { + padding: 1.25rem; + border: 0.0625rem dashed #d0d0d0; + border-radius: 0.5rem; + background: #f9fafb; + text-align: center; + margin-bottom: 0.625rem; +} +.upload-file-area[data-v-51006ffb]:active { + border-color: #3b86ff; + background: rgba(59, 134, 255, 0.03); +} +.selected-file[data-v-51006ffb] { + font-size: 0.8125rem; + color: #3b86ff; + font-weight: 500; + word-break: break-all; +} +.upload-hint[data-v-51006ffb] { + font-size: 0.75rem; + color: #bbb; +} diff --git a/unpackage/dist/dev/app-plus/pages/CloudDbDetail/CloudDbDetail.css b/unpackage/dist/dev/app-plus/pages/CloudDbDetail/CloudDbDetail.css new file mode 100644 index 0000000..861d016 --- /dev/null +++ b/unpackage/dist/dev/app-plus/pages/CloudDbDetail/CloudDbDetail.css @@ -0,0 +1,998 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ +/* 颜色变量 */ +/* 行为相关颜色 */ +/* 文字基本颜色 */ +/* 背景颜色 */ +/* 边框颜色 */ +/* 尺寸变量 */ +/* 文字尺寸 */ +/* 图片尺寸 */ +/* Border Radius */ +/* 水平间距 */ +/* 垂直间距 */ +/* 透明度 */ +/* 文章场景相关 */ +.uniui-cart-filled[data-v-d31e1c47]:before { + content: "\e6d0"; +} +.uniui-gift-filled[data-v-d31e1c47]:before { + content: "\e6c4"; +} +.uniui-color[data-v-d31e1c47]:before { + content: "\e6cf"; +} +.uniui-wallet[data-v-d31e1c47]:before { + content: "\e6b1"; +} +.uniui-settings-filled[data-v-d31e1c47]:before { + content: "\e6ce"; +} +.uniui-auth-filled[data-v-d31e1c47]:before { + content: "\e6cc"; +} +.uniui-shop-filled[data-v-d31e1c47]:before { + content: "\e6cd"; +} +.uniui-staff-filled[data-v-d31e1c47]:before { + content: "\e6cb"; +} +.uniui-vip-filled[data-v-d31e1c47]:before { + content: "\e6c6"; +} +.uniui-plus-filled[data-v-d31e1c47]:before { + content: "\e6c7"; +} +.uniui-folder-add-filled[data-v-d31e1c47]:before { + content: "\e6c8"; +} +.uniui-color-filled[data-v-d31e1c47]:before { + content: "\e6c9"; +} +.uniui-tune-filled[data-v-d31e1c47]:before { + content: "\e6ca"; +} +.uniui-calendar-filled[data-v-d31e1c47]:before { + content: "\e6c0"; +} +.uniui-notification-filled[data-v-d31e1c47]:before { + content: "\e6c1"; +} +.uniui-wallet-filled[data-v-d31e1c47]:before { + content: "\e6c2"; +} +.uniui-medal-filled[data-v-d31e1c47]:before { + content: "\e6c3"; +} +.uniui-fire-filled[data-v-d31e1c47]:before { + content: "\e6c5"; +} +.uniui-refreshempty[data-v-d31e1c47]:before { + content: "\e6bf"; +} +.uniui-location-filled[data-v-d31e1c47]:before { + content: "\e6af"; +} +.uniui-person-filled[data-v-d31e1c47]:before { + content: "\e69d"; +} +.uniui-personadd-filled[data-v-d31e1c47]:before { + content: "\e698"; +} +.uniui-arrowthinleft[data-v-d31e1c47]:before { + content: "\e6d2"; +} +.uniui-arrowthinup[data-v-d31e1c47]:before { + content: "\e6d3"; +} +.uniui-arrowthindown[data-v-d31e1c47]:before { + content: "\e6d4"; +} +.uniui-back[data-v-d31e1c47]:before { + content: "\e6b9"; +} +.uniui-forward[data-v-d31e1c47]:before { + content: "\e6ba"; +} +.uniui-arrow-right[data-v-d31e1c47]:before { + content: "\e6bb"; +} +.uniui-arrow-left[data-v-d31e1c47]:before { + content: "\e6bc"; +} +.uniui-arrow-up[data-v-d31e1c47]:before { + content: "\e6bd"; +} +.uniui-arrow-down[data-v-d31e1c47]:before { + content: "\e6be"; +} +.uniui-arrowthinright[data-v-d31e1c47]:before { + content: "\e6d1"; +} +.uniui-down[data-v-d31e1c47]:before { + content: "\e6b8"; +} +.uniui-bottom[data-v-d31e1c47]:before { + content: "\e6b8"; +} +.uniui-arrowright[data-v-d31e1c47]:before { + content: "\e6d5"; +} +.uniui-right[data-v-d31e1c47]:before { + content: "\e6b5"; +} +.uniui-up[data-v-d31e1c47]:before { + content: "\e6b6"; +} +.uniui-top[data-v-d31e1c47]:before { + content: "\e6b6"; +} +.uniui-left[data-v-d31e1c47]:before { + content: "\e6b7"; +} +.uniui-arrowup[data-v-d31e1c47]:before { + content: "\e6d6"; +} +.uniui-eye[data-v-d31e1c47]:before { + content: "\e651"; +} +.uniui-eye-filled[data-v-d31e1c47]:before { + content: "\e66a"; +} +.uniui-eye-slash[data-v-d31e1c47]:before { + content: "\e6b3"; +} +.uniui-eye-slash-filled[data-v-d31e1c47]:before { + content: "\e6b4"; +} +.uniui-info-filled[data-v-d31e1c47]:before { + content: "\e649"; +} +.uniui-reload[data-v-d31e1c47]:before { + content: "\e6b2"; +} +.uniui-micoff-filled[data-v-d31e1c47]:before { + content: "\e6b0"; +} +.uniui-map-pin-ellipse[data-v-d31e1c47]:before { + content: "\e6ac"; +} +.uniui-map-pin[data-v-d31e1c47]:before { + content: "\e6ad"; +} +.uniui-location[data-v-d31e1c47]:before { + content: "\e6ae"; +} +.uniui-starhalf[data-v-d31e1c47]:before { + content: "\e683"; +} +.uniui-star[data-v-d31e1c47]:before { + content: "\e688"; +} +.uniui-star-filled[data-v-d31e1c47]:before { + content: "\e68f"; +} +.uniui-calendar[data-v-d31e1c47]:before { + content: "\e6a0"; +} +.uniui-fire[data-v-d31e1c47]:before { + content: "\e6a1"; +} +.uniui-medal[data-v-d31e1c47]:before { + content: "\e6a2"; +} +.uniui-font[data-v-d31e1c47]:before { + content: "\e6a3"; +} +.uniui-gift[data-v-d31e1c47]:before { + content: "\e6a4"; +} +.uniui-link[data-v-d31e1c47]:before { + content: "\e6a5"; +} +.uniui-notification[data-v-d31e1c47]:before { + content: "\e6a6"; +} +.uniui-staff[data-v-d31e1c47]:before { + content: "\e6a7"; +} +.uniui-vip[data-v-d31e1c47]:before { + content: "\e6a8"; +} +.uniui-folder-add[data-v-d31e1c47]:before { + content: "\e6a9"; +} +.uniui-tune[data-v-d31e1c47]:before { + content: "\e6aa"; +} +.uniui-auth[data-v-d31e1c47]:before { + content: "\e6ab"; +} +.uniui-person[data-v-d31e1c47]:before { + content: "\e699"; +} +.uniui-email-filled[data-v-d31e1c47]:before { + content: "\e69a"; +} +.uniui-phone-filled[data-v-d31e1c47]:before { + content: "\e69b"; +} +.uniui-phone[data-v-d31e1c47]:before { + content: "\e69c"; +} +.uniui-email[data-v-d31e1c47]:before { + content: "\e69e"; +} +.uniui-personadd[data-v-d31e1c47]:before { + content: "\e69f"; +} +.uniui-chatboxes-filled[data-v-d31e1c47]:before { + content: "\e692"; +} +.uniui-contact[data-v-d31e1c47]:before { + content: "\e693"; +} +.uniui-chatbubble-filled[data-v-d31e1c47]:before { + content: "\e694"; +} +.uniui-contact-filled[data-v-d31e1c47]:before { + content: "\e695"; +} +.uniui-chatboxes[data-v-d31e1c47]:before { + content: "\e696"; +} +.uniui-chatbubble[data-v-d31e1c47]:before { + content: "\e697"; +} +.uniui-upload-filled[data-v-d31e1c47]:before { + content: "\e68e"; +} +.uniui-upload[data-v-d31e1c47]:before { + content: "\e690"; +} +.uniui-weixin[data-v-d31e1c47]:before { + content: "\e691"; +} +.uniui-compose[data-v-d31e1c47]:before { + content: "\e67f"; +} +.uniui-qq[data-v-d31e1c47]:before { + content: "\e680"; +} +.uniui-download-filled[data-v-d31e1c47]:before { + content: "\e681"; +} +.uniui-pyq[data-v-d31e1c47]:before { + content: "\e682"; +} +.uniui-sound[data-v-d31e1c47]:before { + content: "\e684"; +} +.uniui-trash-filled[data-v-d31e1c47]:before { + content: "\e685"; +} +.uniui-sound-filled[data-v-d31e1c47]:before { + content: "\e686"; +} +.uniui-trash[data-v-d31e1c47]:before { + content: "\e687"; +} +.uniui-videocam-filled[data-v-d31e1c47]:before { + content: "\e689"; +} +.uniui-spinner-cycle[data-v-d31e1c47]:before { + content: "\e68a"; +} +.uniui-weibo[data-v-d31e1c47]:before { + content: "\e68b"; +} +.uniui-videocam[data-v-d31e1c47]:before { + content: "\e68c"; +} +.uniui-download[data-v-d31e1c47]:before { + content: "\e68d"; +} +.uniui-help[data-v-d31e1c47]:before { + content: "\e679"; +} +.uniui-navigate-filled[data-v-d31e1c47]:before { + content: "\e67a"; +} +.uniui-plusempty[data-v-d31e1c47]:before { + content: "\e67b"; +} +.uniui-smallcircle[data-v-d31e1c47]:before { + content: "\e67c"; +} +.uniui-minus-filled[data-v-d31e1c47]:before { + content: "\e67d"; +} +.uniui-micoff[data-v-d31e1c47]:before { + content: "\e67e"; +} +.uniui-closeempty[data-v-d31e1c47]:before { + content: "\e66c"; +} +.uniui-clear[data-v-d31e1c47]:before { + content: "\e66d"; +} +.uniui-navigate[data-v-d31e1c47]:before { + content: "\e66e"; +} +.uniui-minus[data-v-d31e1c47]:before { + content: "\e66f"; +} +.uniui-image[data-v-d31e1c47]:before { + content: "\e670"; +} +.uniui-mic[data-v-d31e1c47]:before { + content: "\e671"; +} +.uniui-paperplane[data-v-d31e1c47]:before { + content: "\e672"; +} +.uniui-close[data-v-d31e1c47]:before { + content: "\e673"; +} +.uniui-help-filled[data-v-d31e1c47]:before { + content: "\e674"; +} +.uniui-paperplane-filled[data-v-d31e1c47]:before { + content: "\e675"; +} +.uniui-plus[data-v-d31e1c47]:before { + content: "\e676"; +} +.uniui-mic-filled[data-v-d31e1c47]:before { + content: "\e677"; +} +.uniui-image-filled[data-v-d31e1c47]:before { + content: "\e678"; +} +.uniui-locked-filled[data-v-d31e1c47]:before { + content: "\e668"; +} +.uniui-info[data-v-d31e1c47]:before { + content: "\e669"; +} +.uniui-locked[data-v-d31e1c47]:before { + content: "\e66b"; +} +.uniui-camera-filled[data-v-d31e1c47]:before { + content: "\e658"; +} +.uniui-chat-filled[data-v-d31e1c47]:before { + content: "\e659"; +} +.uniui-camera[data-v-d31e1c47]:before { + content: "\e65a"; +} +.uniui-circle[data-v-d31e1c47]:before { + content: "\e65b"; +} +.uniui-checkmarkempty[data-v-d31e1c47]:before { + content: "\e65c"; +} +.uniui-chat[data-v-d31e1c47]:before { + content: "\e65d"; +} +.uniui-circle-filled[data-v-d31e1c47]:before { + content: "\e65e"; +} +.uniui-flag[data-v-d31e1c47]:before { + content: "\e65f"; +} +.uniui-flag-filled[data-v-d31e1c47]:before { + content: "\e660"; +} +.uniui-gear-filled[data-v-d31e1c47]:before { + content: "\e661"; +} +.uniui-home[data-v-d31e1c47]:before { + content: "\e662"; +} +.uniui-home-filled[data-v-d31e1c47]:before { + content: "\e663"; +} +.uniui-gear[data-v-d31e1c47]:before { + content: "\e664"; +} +.uniui-smallcircle-filled[data-v-d31e1c47]:before { + content: "\e665"; +} +.uniui-map-filled[data-v-d31e1c47]:before { + content: "\e666"; +} +.uniui-map[data-v-d31e1c47]:before { + content: "\e667"; +} +.uniui-refresh-filled[data-v-d31e1c47]:before { + content: "\e656"; +} +.uniui-refresh[data-v-d31e1c47]:before { + content: "\e657"; +} +.uniui-cloud-upload[data-v-d31e1c47]:before { + content: "\e645"; +} +.uniui-cloud-download-filled[data-v-d31e1c47]:before { + content: "\e646"; +} +.uniui-cloud-download[data-v-d31e1c47]:before { + content: "\e647"; +} +.uniui-cloud-upload-filled[data-v-d31e1c47]:before { + content: "\e648"; +} +.uniui-redo[data-v-d31e1c47]:before { + content: "\e64a"; +} +.uniui-images-filled[data-v-d31e1c47]:before { + content: "\e64b"; +} +.uniui-undo-filled[data-v-d31e1c47]:before { + content: "\e64c"; +} +.uniui-more[data-v-d31e1c47]:before { + content: "\e64d"; +} +.uniui-more-filled[data-v-d31e1c47]:before { + content: "\e64e"; +} +.uniui-undo[data-v-d31e1c47]:before { + content: "\e64f"; +} +.uniui-images[data-v-d31e1c47]:before { + content: "\e650"; +} +.uniui-paperclip[data-v-d31e1c47]:before { + content: "\e652"; +} +.uniui-settings[data-v-d31e1c47]:before { + content: "\e653"; +} +.uniui-search[data-v-d31e1c47]:before { + content: "\e654"; +} +.uniui-redo-filled[data-v-d31e1c47]:before { + content: "\e655"; +} +.uniui-list[data-v-d31e1c47]:before { + content: "\e644"; +} +.uniui-mail-open-filled[data-v-d31e1c47]:before { + content: "\e63a"; +} +.uniui-hand-down-filled[data-v-d31e1c47]:before { + content: "\e63c"; +} +.uniui-hand-down[data-v-d31e1c47]:before { + content: "\e63d"; +} +.uniui-hand-up-filled[data-v-d31e1c47]:before { + content: "\e63e"; +} +.uniui-hand-up[data-v-d31e1c47]:before { + content: "\e63f"; +} +.uniui-heart-filled[data-v-d31e1c47]:before { + content: "\e641"; +} +.uniui-mail-open[data-v-d31e1c47]:before { + content: "\e643"; +} +.uniui-heart[data-v-d31e1c47]:before { + content: "\e639"; +} +.uniui-loop[data-v-d31e1c47]:before { + content: "\e633"; +} +.uniui-pulldown[data-v-d31e1c47]:before { + content: "\e632"; +} +.uniui-scan[data-v-d31e1c47]:before { + content: "\e62a"; +} +.uniui-bars[data-v-d31e1c47]:before { + content: "\e627"; +} +.uniui-checkbox[data-v-d31e1c47]:before { + content: "\e62b"; +} +.uniui-checkbox-filled[data-v-d31e1c47]:before { + content: "\e62c"; +} +.uniui-shop[data-v-d31e1c47]:before { + content: "\e62f"; +} +.uniui-headphones[data-v-d31e1c47]:before { + content: "\e630"; +} +.uniui-cart[data-v-d31e1c47]:before { + content: "\e631"; +} +@font-face { + font-family: uniicons; + src: url("../../assets/uniicons.32e978a5.ttf"); +} +.uni-icons[data-v-d31e1c47] { + font-family: uniicons; + text-decoration: none; + text-align: center; +} +/* ========== 通用 ========== */ +.status-bar[data-v-96fa4671] { + height: var(--status-bar-height); + background-color: #ffffff; +} +.page-container[data-v-96fa4671] { + display: flex; + flex-direction: column; + height: 100vh; + background-color: #f5f6fa; +} +/* ========== 导航栏 ========== */ +.cloud-db-header[data-v-96fa4671] { + background-color: #ffffff; + flex-shrink: 0; + position: relative; + z-index: 10; +} +.custom-navbar[data-v-96fa4671] { + display: flex; + align-items: center; + justify-content: space-between; + height: 2.75rem; + padding: 0 0.9375rem; +} +.navbar-left[data-v-96fa4671] { + display: flex; + align-items: center; + min-width: 3.75rem; +} +.custom-navbar-icon[data-v-96fa4671] { + font-size: 1.25rem; + color: #333; +} +.navbar-title[data-v-96fa4671] { + font-size: 1.0625rem; + font-weight: 600; + color: #333; + flex: 1; + text-align: center; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.navbar-right[data-v-96fa4671] { + min-width: 3.75rem; + display: flex; + justify-content: flex-end; +} +/* 下拉菜单 */ +.menu-card[data-v-96fa4671] { + position: absolute; + top: 2.75rem; + right: 0.625rem; + background: #fff; + border-radius: 0.5rem; + box-shadow: 0 0.25rem 1rem rgba(0,0,0,0.12); + z-index: 500; + overflow: hidden; + min-width: 6.25rem; +} +.menu-card-item[data-v-96fa4671] { + padding: 0.75rem 1.125rem; + font-size: 0.875rem; + color: #333; + text-align: center; +} +.menu-card-item[data-v-96fa4671]:active { + background-color: #f5f6fa; +} +.solid-line[data-v-96fa4671] { + height: 0.03125rem; + background-color: #eee; + margin: 0 0.625rem; +} +/* ========== 数据库信息栏 ========== */ +.db-info-bar[data-v-96fa4671] { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.625rem 0.9375rem; + background: #fff; + border-bottom: 0.03125rem solid #f0f0f0; +} +.db-info-text[data-v-96fa4671] { + font-size: 0.75rem; + color: #999; +} +/* ========== 内容区域 ========== */ +.cloud-db-content[data-v-96fa4671] { + flex: 1; + overflow-y: auto; +} +.section-block[data-v-96fa4671] { + margin: 0.625rem; + background: #fff; + border-radius: 0.625rem; + overflow: hidden; +} +.section-header[data-v-96fa4671] { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.75rem 0.9375rem; + border-bottom: 0.03125rem solid #f5f6fa; +} +.section-title[data-v-96fa4671] { + display: flex; + align-items: center; + gap: 0.375rem; + font-size: 0.9375rem; + font-weight: 600; + color: #333; +} +.section-title .iconfont[data-v-96fa4671] { + font-size: 1.125rem; + color: #3b86ff; +} +.section-actions[data-v-96fa4671] { + display: flex; + align-items: center; + gap: 0.5rem; +} +.row-count[data-v-96fa4671] { + font-size: 0.75rem; + color: #999; +} +.section-divider[data-v-96fa4671] { + height: 0.03125rem; + background-color: #f0f0f0; + margin: 0 0.625rem; +} +.section-body[data-v-96fa4671] { + padding: 0.5rem 0; +} +/* ========== 空状态 ========== */ +.empty-tip[data-v-96fa4671] { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 1.875rem 0; + color: #ccc; + font-size: 0.8125rem; +} +.empty-tip .iconfont[data-v-96fa4671] { + font-size: 2.5rem; + margin-bottom: 0.5rem; +} +/* ========== 表列表 ========== */ +.table-list[data-v-96fa4671] { + padding: 0 0.9375rem; +} +.table-item[data-v-96fa4671] { + display: flex; + align-items: center; + padding: 0.75rem 0; + border-bottom: 0.03125rem solid #f5f6fa; +} +.table-item[data-v-96fa4671]:last-child { + border-bottom: none; +} +.table-item[data-v-96fa4671]:active { + background-color: #fafbfc; + margin: 0 -0.9375rem; + padding-left: 0.9375rem; + padding-right: 0.9375rem; +} +.table-icon[data-v-96fa4671] { + width: 2.25rem; + height: 2.25rem; + border-radius: 0.5rem; + background: rgba(59, 134, 255, 0.08); + display: flex; + align-items: center; + justify-content: center; + margin-right: 0.625rem; + flex-shrink: 0; +} +.table-info[data-v-96fa4671] { + flex: 1; + overflow: hidden; +} +.table-name[data-v-96fa4671] { + font-size: 0.9375rem; + font-weight: 500; + color: #333; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.table-desc[data-v-96fa4671] { + font-size: 0.75rem; + color: #999; + margin-top: 0.125rem; +} +.table-meta[data-v-96fa4671] { + display: flex; + align-items: center; + gap: 0.25rem; + flex-shrink: 0; +} +/* ========== 数据表格 ========== */ +.data-table-wrapper[data-v-96fa4671] { + padding: 0; +} +.data-table-scroll[data-v-96fa4671] { + width: 100%; +} +.data-table[data-v-96fa4671] { + min-width: 100%; +} +.data-row[data-v-96fa4671] { + display: flex; + flex-direction: row; + border-bottom: 0.03125rem solid #f0f0f0; +} +.data-row[data-v-96fa4671]:last-child { + border-bottom: none; +} +.data-header[data-v-96fa4671] { + background-color: #f8f9fb; +} +.data-cell[data-v-96fa4671] { + padding: 0.5rem 0.625rem; + font-size: 0.8125rem; + color: #333; + min-width: 5rem; + max-width: 9.375rem; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + border-right: 0.03125rem solid #f0f0f0; + flex-shrink: 0; +} +.data-cell[data-v-96fa4671]:last-child { + border-right: none; +} +.data-header .data-cell[data-v-96fa4671] { + font-weight: 600; + color: #666; + font-size: 0.75rem; +} +.index-cell[data-v-96fa4671] { + min-width: 2.5rem !important; + max-width: 2.5rem !important; + text-align: center; + color: #999; + font-size: 0.75rem; +} +.data-row[data-v-96fa4671]:active { + background-color: #f5f7fa; +} +/* ========== 弹窗通用 ========== */ +.popup-overlay[data-v-96fa4671] { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 900; +} +.popup-card[data-v-96fa4671] { + width: 20rem; + background: #fff; + border-radius: 0.75rem; + padding: 1.25rem 1.125rem 0.9375rem; + position: relative; +} +.close-popup-card[data-v-96fa4671] { + position: absolute; + top: 0.625rem; + right: 0.625rem; + width: 1.5rem; + height: 1.5rem; + display: flex; + align-items: center; + justify-content: center; +} +.close-popup-card .iconfont[data-v-96fa4671] { + font-size: 1.125rem; + color: #999; +} +.popup-title[data-v-96fa4671] { + font-size: 1.0625rem; + font-weight: 600; + color: #333; + text-align: center; + margin-bottom: 0.9375rem; +} +.new-folder-name[data-v-96fa4671] { + font-size: 0.8125rem; + color: #666; + margin-bottom: 0.375rem; +} +.create-folder-name[data-v-96fa4671] { + margin-bottom: 0.75rem; +} +.create-folder-name uni-input[data-v-96fa4671] { + width: 100%; + height: 2.5rem; + border: 0.0625rem solid #e0e0e0; + border-radius: 0.375rem; + padding: 0 0.625rem; + font-size: 0.875rem; + box-sizing: border-box; + background: #f8f9fb; +} +.upload-file-area[data-v-96fa4671] { + width: 100%; + height: 3.75rem; + border: 0.0625rem dashed #d0d0d0; + border-radius: 0.375rem; + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 0.75rem; + background: #fafbfc; +} +.selected-file[data-v-96fa4671] { + font-size: 0.8125rem; + color: #3b86ff; +} +.upload-hint[data-v-96fa4671] { + font-size: 0.75rem; + color: #999; +} +.option-wrapper[data-v-96fa4671] { + display: flex; + gap: 0.625rem; + margin-top: 0.3125rem; +} +.opt-btn[data-v-96fa4671] { + flex: 1; + height: 2.5rem; + border-radius: 0.375rem; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.9375rem; +} +.opt-cancel[data-v-96fa4671] { + background: #f5f6fa; + color: #666; +} +.opt-confirm[data-v-96fa4671] { + background: #3b86ff; + color: #fff; +} +/* ========== 权限管理 ========== */ +.permission-body[data-v-96fa4671] { + max-height: 18.75rem; + margin-bottom: 0.625rem; +} +.permission-list[data-v-96fa4671] { + padding: 0 0.3125rem; +} +.permission-item[data-v-96fa4671] { + display: flex; + align-items: center; + padding: 0.625rem 0.3125rem; + border-bottom: 0.03125rem solid #f0f0f0; +} +.perm-info[data-v-96fa4671] { + flex: 1; + display: flex; + flex-direction: column; + gap: 0.125rem; +} +.perm-name[data-v-96fa4671] { + font-size: 0.875rem; + color: #333; +} +.perm-type[data-v-96fa4671] { + font-size: 0.6875rem; + color: #999; +} +.perm-level[data-v-96fa4671] { + font-size: 0.75rem; + color: #3b86ff; + background: rgba(59, 134, 255, 0.08); + padding: 0.1875rem 0.5rem; + border-radius: 0.25rem; + margin: 0 0.5rem; +} +.perm-actions[data-v-96fa4671] { + display: flex; + gap: 0.375rem; +} +.perm-action-btn[data-v-96fa4671] { + font-size: 0.75rem; + color: #3b86ff; + padding: 0.25rem 0.5rem; + border: 0.03125rem solid #3b86ff; + border-radius: 0.25rem; +} +.perm-action-btn.delete[data-v-96fa4671] { + color: #f56c6c; + border-color: #f56c6c; +} +.close-permission-btn[data-v-96fa4671] { + text-align: center; + font-size: 0.875rem; + color: #999; + padding: 0.5rem 0; +} +.folder-null[data-v-96fa4671] { + text-align: center; + padding: 1.25rem 0; + font-size: 0.8125rem; + color: #999; +} +/* ========== 移交团队 ========== */ +.transfer-body[data-v-96fa4671] { + max-height: 15.625rem; + margin-bottom: 0.625rem; +} +.transfer-list[data-v-96fa4671] { + padding: 0 0.3125rem; +} +.transfer-item[data-v-96fa4671] { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.75rem 0.5rem; + border-bottom: 0.03125rem solid #f0f0f0; + border-radius: 0.375rem; + margin-bottom: 0.25rem; +} +.transfer-item.active[data-v-96fa4671] { + background: rgba(59, 134, 255, 0.06); +} +.transfer-name[data-v-96fa4671] { + font-size: 0.875rem; + color: #333; +} +/* ===== 加载动画 ===== */ +.loading-area[data-v-96fa4671] { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 1.875rem 0; + gap: 0.5rem; +} +.loading-spinner[data-v-96fa4671] { + width: 1.75rem; + height: 1.75rem; + border: 0.125rem solid #e8e8e8; + border-top-color: #3b86ff; + border-radius: 50%; + animation: spin-96fa4671 0.8s linear infinite; +} +@keyframes spin-96fa4671 { +to { + transform: rotate(360deg); +} +} +.loading-text[data-v-96fa4671] { + font-size: 0.75rem; + color: #999; +} diff --git a/unpackage/dist/dev/app-plus/uni_modules/lime-choose-file/utssdk/app-android/classes.dex b/unpackage/dist/dev/app-plus/uni_modules/lime-choose-file/utssdk/app-android/classes.dex new file mode 100644 index 0000000000000000000000000000000000000000..841d32efd0092a5b6d19a6347d01a37d05b565eb GIT binary patch literal 22160 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 literal 0 HcmV?d00001 diff --git a/unpackage/dist/dev/app-plus/uni_modules/lime-choose-file/utssdk/app-android/config.json b/unpackage/dist/dev/app-plus/uni_modules/lime-choose-file/utssdk/app-android/config.json new file mode 100644 index 0000000..bf95925 --- /dev/null +++ b/unpackage/dist/dev/app-plus/uni_modules/lime-choose-file/utssdk/app-android/config.json @@ -0,0 +1,3 @@ +{ + "minSdkVersion": "21" +} \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/uni_modules/lime-choose-file/utssdk/app-android/index.kt b/unpackage/dist/dev/app-plus/uni_modules/lime-choose-file/utssdk/app-android/index.kt new file mode 100644 index 0000000..5be51b9 --- /dev/null +++ b/unpackage/dist/dev/app-plus/uni_modules/lime-choose-file/utssdk/app-android/index.kt @@ -0,0 +1,277 @@ +@file:Suppress("UNCHECKED_CAST", "USELESS_CAST", "INAPPLICABLE_JVM_NAME", "UNUSED_ANONYMOUS_PARAMETER", "SENSELESS_COMPARISON", "NAME_SHADOWING", "UNNECESSARY_NOT_NULL_ASSERTION") +package uts.sdk.modules.limeChooseFile +import android.content.Intent +import android.net.Uri +import android.provider.OpenableColumns +import io.dcloud.uniapp.* +import io.dcloud.uniapp.extapi.* +import io.dcloud.unicloud.* +import io.dcloud.uts.* +import io.dcloud.uts.Map +import io.dcloud.uts.Set +import io.dcloud.uts.UTSAndroid +import java.io.File +import java.io.FileOutputStream +import kotlin.properties.Delegates +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.async +typealias ChooseFileErrorCode = Number +interface GeneralCallbackResult : IUniError { + override var errCode: ChooseFileErrorCode +} +interface ChooseFile { + var name: String + var path: String + var size: Number + var time: Number + var type: String +} +open class ChooseFileSuccessCallbackResult ( + @JsonNotNull + open var tempFiles: UTSArray, + @JsonNotNull + open var errMsg: String, +) : UTSObject(), IUTSSourceMap { + override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { + return UTSSourceMapPosition("ChooseFileSuccessCallbackResult", "uni_modules/lime-choose-file/utssdk/interface.uts", 34, 13) + } +} +typealias ChooseFileSuccessCallback = (result: ChooseFileSuccessCallbackResult) -> Unit +typealias ChooseFileFailCallback = (res: GeneralCallbackResult) -> Unit +typealias ChooseFileCompleteCallback = (res: GeneralCallbackResult) -> Unit +open class ChooseFileOption ( + open var filename: String? = null, + open var count: Number? = null, + open var type: String? = null, + open var extension: UTSArray? = null, + open var success: ChooseFileSuccessCallback? = null, + open var fail: ChooseFileFailCallback? = null, + open var complete: ChooseFileCompleteCallback? = null, +) : UTSObject(), IUTSSourceMap { + override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { + return UTSSourceMapPosition("ChooseFileOption", "uni_modules/lime-choose-file/utssdk/interface.uts", 45, 13) + } +} +val UniErrorSubject = "chooseFile\"" +val UniErrors: Map = Map(_uA( + _uA( + 9010001, + "chooseFile:ok" + ), + _uA( + 9010002, + "ChooseFile:failed" + ) +)) +open class GeneralCallbackResultImpl : UniError, GeneralCallbackResult, IUTSSourceMap { + override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { + return UTSSourceMapPosition("GeneralCallbackResultImpl", "uni_modules/lime-choose-file/utssdk/unierror.uts", 25, 14) + } + constructor(errCode: ChooseFileErrorCode, errMsg: String? = null) : super() { + this.errSubject = UniErrorSubject + this.errCode = errCode + this.errMsg = errMsg ?: UniErrors[errCode] ?: "" + } +} +val REQUEST_CODE_CHOOSE_FILE: Int = 42 +var resultFunction: ((requestCode: Int, resultCode: Int, data: Intent?) -> Unit)? = null +open class ChooseFileImpl : ChooseFile, IUTSSourceMap { + override fun `__$getOriginalPosition`(): UTSSourceMapPosition? { + return UTSSourceMapPosition("ChooseFileImpl", "uni_modules/lime-choose-file/utssdk/app-android/index.uts", 17, 7) + } + override var name: String = "" + override var path: String = "" + override var size: Number = 0 + override var time: Number = 0 + override var type: String = "file" + private var options: ChooseFileOption + constructor(uri: Uri, options: ChooseFileOption){ + this.options = options + this.time = Date.now() + this.type = this.getFileTypeFromUri(uri) + this.getFileInfoFromUri(uri) + if (this.isCache(options)) { + this.copyFileToCache(uri) + } + } + private fun isCache(options: ChooseFileOption): Boolean { + val extension = this.getFileExtension(this.name) + val extensions = options.extension + val type = options.type ?: "all" + val hasExtension = extensions != null && extension != "" && extensions.includes(extension) + val isVideoOrImage = _uA( + "video", + "image" + ).includes(type) + val isFileAndNotVideoOrImage = type == "file" && !_uA( + "video", + "image" + ).includes(this.type) + if ((type == "all" || isVideoOrImage || isFileAndNotVideoOrImage) && !hasExtension) { + return true + } else { + return false + } + } + private fun getFileExtension(fileName: String): String { + val lastDotIndex = fileName.lastIndexOf(".") + if (lastDotIndex == -1) { + return "" + } + return fileName.substring(lastDotIndex + 1) + } + private fun copyFileToCache(uri: Uri) { + val cacheDir = UTSAndroid.getAppCachePath() + val context = UTSAndroid.getAppContext() + if (cacheDir != null) { + val path = File(cacheDir) + if (!path.exists()) { + path.mkdir() + } + } + var fileName = this.name + if (this.options.filename != null) { + fileName = this.options.filename!! + if (this.options.count != null && this.options.count!! > 1) { + fileName = "" + fileName + "_" + Date.now() + } + val extension = this.getFileExtension(this.name) + fileName = "" + fileName + "." + extension + } + val destFile = File(cacheDir, fileName) + try { + val inputStream = context!!.getContentResolver().openInputStream(uri) + val outputStream = FileOutputStream(destFile) + if (inputStream != null) { + var buffer = ByteArray(1024) + var c = inputStream.read(buffer) + while(c > 0){ + outputStream.write(buffer, 0, c) + c = inputStream.read(buffer) + } + } + this.path = cacheDir + fileName + } + catch (e: Throwable) {} + } + private fun getFileTypeFromUri(uri: Uri): String { + val context = UTSAndroid.getAppContext() + var fileType = "file" + var mimeType = context!!.getContentResolver().getType(uri) + if (mimeType != null) { + if (mimeType.startsWith("video")) { + fileType = "video" + } else if (mimeType.startsWith("image")) { + fileType = "image" + } + } + return fileType + } + private fun getFileInfoFromUri(uri: Uri) { + val context = UTSAndroid.getAppContext() + var cursor = context!!.getContentResolver().query(uri, null, null, null, null) + if (cursor != null && cursor.moveToFirst()) { + this.name = cursor.getString(cursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME)) + val fileSize = cursor.getLong(cursor.getColumnIndexOrThrow(OpenableColumns.SIZE)) + this.size = UTSNumber.from(fileSize) + cursor.close() + } else if ("file".equals(uri.getScheme())) { + this.name = uri.getLastPathSegment() ?: "" + val file = File(uri.getPath() ?: "") + val fileSize = file.length() + this.size = UTSNumber.from(fileSize) + } + } +} +fun chooseFile(options: ChooseFileOption) { + if (resultFunction != null) { + UTSAndroid.offAppActivityResult(resultFunction!!) + } + val type = options.type ?: "all" + val intent = Intent(Intent.ACTION_GET_CONTENT) + if (type.equals("all") || type.equals("file")) { + intent.setType("*/*") + } else if (type.equals("video")) { + intent.setType("video/*") + } else if (type.equals("image")) { + intent.setType("image/*") + } + intent.addCategory(Intent.CATEGORY_OPENABLE) + intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, if (options.count == 1) { + false + } else { + true + } + ) + resultFunction = fun(requestCode: Int, resultCode: Int, data: Intent?){ + if (requestCode == REQUEST_CODE_CHOOSE_FILE) { + UTSAndroid.offAppActivityResult(resultFunction!!) + if (resultCode == -1 && data != null) { + val clipData = data.getClipData() + val tempFiles: UTSArray = _uA() + if (clipData != null) { + run { + var i: Number = 0 + while(i < clipData.getItemCount()){ + val uri = clipData.getItemAt(i.toInt()).getUri() + val chooseFile = ChooseFileImpl(uri, options) + if (chooseFile.path != "") { + tempFiles.push(chooseFile) + } + i++ + } + } + } else { + val uri = data.getData() + if (uri != null) { + val chooseFile = ChooseFileImpl(uri, options) + if (chooseFile.path != "") { + tempFiles.push(chooseFile) + } + } + } + val count = options.count ?: Integer.MAX_VALUE + if (tempFiles.length > 0 && count >= tempFiles.length) { + options.success?.invoke(ChooseFileSuccessCallbackResult(tempFiles = tempFiles, errMsg = "chooseFile:ok")) + } else { + val err = GeneralCallbackResultImpl(9010002, "没有可用的文件或文件超过设置数量") + options.fail?.invoke(err) + options.complete?.invoke(err) + } + } else { + val err = GeneralCallbackResultImpl(9010002, "没有可用的文件") + options.fail?.invoke(err) + options.complete?.invoke(err) + } + } else { + val err = GeneralCallbackResultImpl(9010002, "没有可用的文件") + options.fail?.invoke(err) + options.complete?.invoke(err) + } + } + UTSAndroid.onAppActivityResult(resultFunction!!) + UTSAndroid.getUniActivity()!!.startActivityForResult(Intent.createChooser(intent, "选择文件"), REQUEST_CODE_CHOOSE_FILE) +} +open class ChooseFileOptionJSONObject : UTSJSONObject() { + open var filename: String? = null + open var count: Number? = null + open var type: String? = null + open var extension: UTSArray? = null + open var success: UTSCallback? = null + open var fail: UTSCallback? = null + open var complete: UTSCallback? = null +} +fun chooseFileByJs(options: ChooseFileOptionJSONObject) { + return chooseFile(ChooseFileOption(filename = options.filename, count = options.count, type = options.type, extension = options.extension, success = fun(result: ChooseFileSuccessCallbackResult): Unit { + options.success?.invoke(result) + } + , fail = fun(res: GeneralCallbackResult): Unit { + options.fail?.invoke(res) + } + , complete = fun(res: GeneralCallbackResult): Unit { + options.complete?.invoke(res) + } + )) +} diff --git a/unpackage/res/icons/1024x1024.png b/unpackage/res/icons/1024x1024.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b1e65ec5e92a4452dab318f70a2b603c89203b GIT binary patch literal 322818 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

    1aY#!DIJRV`>PvtlG>Slj% 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

    _uHB&$bA+ty`DF@p7l&>8oo-bX(K6eQyaG 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

    tx&eKN3FpUJ0;RfyLm|VMKWAQh4>$%1T9kcCiFi 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

    =u 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
      R~vv#(eU32W@t-vOs+ljd+ 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 literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/120x120.png b/unpackage/res/icons/120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..2119cde3b778d2d0862158f059f81b605605533e GIT binary patch literal 12005 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 literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/144x144.png b/unpackage/res/icons/144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..8874c0a369a3dfe9742ee7cfad7e77682e16e45e GIT binary patch literal 15652 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 literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/152x152.png b/unpackage/res/icons/152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..9901d7352adaa82325a2a032171af2fd2e4544e7 GIT binary patch literal 17048 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 literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/167x167.png b/unpackage/res/icons/167x167.png new file mode 100644 index 0000000000000000000000000000000000000000..22350c624f3d0eefe271cf12f3faf03c02717da7 GIT binary patch literal 19547 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 literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/20x20.png b/unpackage/res/icons/20x20.png new file mode 100644 index 0000000000000000000000000000000000000000..b69e436cf759871a8e8ebe9b9674cd3f128b442f GIT binary patch literal 1151 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1SFYWcSQjy&H|6fVg?4jBOuH;Rhv&5D5zTE z8c~vxSdwa$T$Bo=7>o>z%ybQmb&bqI3=FM|O|1+}wG9lc3=CF%mY9#CAvZrIGp!Q0 zhTH2FC<8TUz-=hW%uOvWNz5(4)MID@vE*4=*EI$P=GmSujv*GkxgpU$BHd~{&{}x;I=Y_tvByMlfpQ`@*(yS@>!hL+4rF}1pNt^U; z)i<-_U|hNK7TcP&)0;SUH7Ip&=-z$$ozCHNXU?6u-@bNvaYCb@2k#~Pq)2~ z^uN9`!G%5er?K$o({sghmaDJ2?;({cR4RCBS@e;O;b~`MQ-fOHD7G*hxVQY1Zus+v zPa500Z^+J_f7VjA+~o4nV+`?+(`TPL5;XDCn$ou57W_#-x@Yd>#> zcqw<>5WigC|5DvuJT6Xo+ZEC7DY4gT-cR{=FurqH(ZZd__CHVZ`MRmP_`8<2mn4J7 zEWh$A85|Xdco`d03p5!L(mj4HihJAlEbnaOWh=Am8gFIiZqf-7|G0W#iO%zFW$49mzC`b zHV2LG_owVu>kZdBviW1yL(V^J-Um*$&d!HbpI@%P{S5-$a&m=`b;DjoD)`xq7Xa z-G+<*Pk!CGdGfEmtBXzrvn`mB9-@Eyj`{C1|2h7=8 zbsZl*nNgNyvpO=b)hAv@{P5#n&$oW^&pmFv`(Mj{)}WM5fd$LD7b=|+Vq)ORC@61^y;d})rG+x{F| zWsZBk(yJN8UbZBjcsG3;Bg5C~8*>#C-97Ha=vZ_dE^eEi8gjcLJ^scyYX$+1AO2h9 zH75M8KEc8vz_6fYLNo8d)%@al%g<`HuGSS}eDEjVxw-i}SLBi3g$x=~_Lx{t5Z%Af r#mKm@epx{p$IU&NcQ^eN{h%Lsd{x@U_CPsc)@JZ@^>bP0l+XkK@el`D literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/29x29.png b/unpackage/res/icons/29x29.png new file mode 100644 index 0000000000000000000000000000000000000000..2dfc629816b67bc5096a9a1d561c0d3297c09fe2 GIT binary patch literal 1807 zcmZ{lc`(}vAI5)Lt9XUd*43u$I$mc*+;>*lMjf>gM_i={p^6G|C)iTTR;Ut3;wW{6 zqKPe5^|ozIo52mo|vrgDC<1uBnsl z1QJQF4)faEeR$jD6ef&f?&L2tIl2+sOGu3lPsmWJz+b-JDrz<3_M?gWd~Zb*J9twkXU@@1i3_yweh?RV zC@LeY+9uZK?SR@{+p5wRGYvR5@?hQ!3(v|gtpi|mF>-dFUF)ZL$1vUEm zgOu=}T}^wI*%AbnZ9GNiaV&;drXh~Io)n97$nAK)SwMmZt&(Nm!K@Tn%!EFsjN(FJ z{T8hCY)`Z2 z($EqeK%2{BXd$d$~?bs=EB z@)g%kdc2d(TW8A9(%EoBd`)e+Bq5$Oapu-BzZmcH*Fkst=IDc?XU_GqvVG2cpZi#| zlNE(qN75OS2M?zGNGb=x_f|M$al-G>Vp?iVGw3Wvh`*`!?9*x^>KXTZa;kx(zh#V! z9u*!(db2lewrHgwRIZc2nWErOX>&aRoHtj;{HuqWSr;J>sIeQi&c5wLk7a`}R+o*N zqgGVOGzkpGe|*Pxc5GGjClNsW9zt=M*#HOPokVO^Tu`z+JNR5+zRrtODnlx{gg#B% zzNTiSD1_|GuVPM6B5I44fr9XW5YW;c3Q88Thd`p{X@>M6ggjrmyPajwR?E6gUV1ws zx#FDEi@eYL3&5!es^cc9f~JOIYp=P?2abI|$bPMUw(Z#jRSvuca>~(_sW+s6luIjP zEMM+kQ+}RXqGRv;V2I)Bqik;glddM3lG+#TJSiyMKNxe_SGx>mblt||xbvreoBP&B z;2n3Ke~0~StV4ymq$gdkMq;v*s5(Ym)t{Qg=Tdi82eagb)#3(rrzegln_hV>lEXi! zGF5;*1>*X{%D$=2{%nb9ib~A!R0_NnvZB|;^dhx4HNW9*Z5=rF#Pze>R?{TN0$m{R zw4}AVg5B)tmDq`9(_`L+%ev}EUwl;ql$q|03YjnuVA$b}nZwiwm@ZLycp1N2U+Wev z#Gx#o4{sse7huNRfd&cJvx11`_4ACj_5Bk3C99V)a)j+MG2ZooH(%1ItKIQ4Qg&LPPy#e!;})K% z#%Yc#QX7}BI-C_`Gx?VuF0gDq(b2oAOaq}w>y`w1{JAhBZa6#RT; zF=J#tkmwT6?`z%Q|D$4i;Q)mDG0}6v?^%bhjsoN+Y9;pf6lK2COMg nH)s6`$83g1^aoQM?U+kuiq~kb-TLt4)c_XeHfFV^9tnQ|3yx>@ literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/40x40.png b/unpackage/res/icons/40x40.png new file mode 100644 index 0000000000000000000000000000000000000000..0239fbfa95b8f3f795b65e54d73e4761907ecc58 GIT binary patch literal 2719 zcmZ{mc{J3I8pglY$dZthF~$-i8rd?!R3j#a>|2vc#xgOsFj*pnq3qk(^UL&O4B4BO z$xekV!2!a^+!Cpn&NVM%VS~Yu3g?YogLcI43I0Zdrpas>{ zI%VJp)q&~i!=U<_P$&!vtzMTc`!65>cf${Z|Np>bZMpIup#GnPFuwrr(6DO(LI2C> z=>0on0h2Pm*YpJvan{lGes=*rNcxsc@9Vl3i=}Mh8|xMLX-UV7^Wp+$&s0?W?YnHp zxqgV;>|WbY!y(l6RzG7(9)L@`jh|~DGfxvZC~b}qX9^HNy#A6%OVMoWa~Rd>(9N*d zzr0k1Gaxr2$eT_mlWwkMKCRoNtt#qShj+XfhywockXN+lT zrfbaR1oukdXYWPlBWuLfWE2QXeh&?M!Z0}#-E8l{BCBci@D`6XLTU|UxZ%P8r~Zz8 zrpEA3QEB!bn{CB9WpIl`F1Lz>ry>*#G;j>{edmu3mCQ*IzVDhSI_U;#u45)*Qf1=? zR3!Qog*^&$dN&hc_Wxw_Y$jcZM5_h|ylSXXwV#8c(Km~95aVJ?xb(W(RIH#7WJr#s z(VC0j0R{JrTnIPFf;(KSaY&KR-Vb__@HO$mtp_YxL&bz50sRnnPydv%m|Z3e@Z6!@3A~gKYJtV@(H*##7ge`M(#p9qO(< zW#l;74j}GYcDN~F4E&V{5!kT-RQ=Tvh!C*w;MWbPr1zi^L~C7f`8`I~fx*SJr-S5M&dAy(=t{thV5xeX=Q^s*>)e z5nO1W_=ptt8g=n8)r1&Gcyb`gUO~Sn4Kc!hJ*et@LrNDNRm&a%c-M_x<`>m+J6Uwk zh=F7FE;V<^Vyoh+7_r>43Az1G0Iqr&o2f%n4CGWXrDB|=fFxnlqN=F`f)a5CME_O?Acl#wjtPa{k`{Nx>ZXZvlELXK)KPY#St+Fje> zLvp84_JR5dfFrXf0(s6mK~>xdh-%h)=acVtvzvF;U*Owp{aY zz}C6hamD4X@JoX#Ze}J8rauj0X!dSv_Aa2Eu6hQ0zq$G(@^o=HvZLW$Y9JVbGb)Xa zwDrZKT$OImDQ$IATkuJ+A!n zLPvZ*;^C2p&fFRb!araIN^;2oS^>eGCoau*3&dhMxTK$^#^4f%L#l#8t8@+Bw5<-x28x+pp(Oar)wYlG9XuJ># z|30VKjm-qh=We;d@nNynXEvumjEx-v zG7v{C`eILM}+1Hiyi~aqsyCuBbHGln>5gE+& zQpy#i=`W{(v-4m!HJIkr%WFG`Z^YhjDjbkWH4@274wS#?b3=dW-S|C36W9I@(W<{S z^)6&^>d+Lu;C3U-Aj%fXQZzczb+4Rs^7P1zEJ`n zaw%)TWh^q^$0pyzBbIo|*HMab2c+Ia5Ub9_R@y$vb4A3rZ(OW4@w;((Zl&bi@$<@Y zD)H+9_G#vYR81}(;w{CdybDc=qUf#`wX#QFsjWr|iuSR#htDXzy-2FAcaRKJn2T=F zkhJE?vF>BUH-uG0vnUC-ea-7I(BJhMKlV<@e95(nQI6SM)X0x%pnla8&O*1?MCg9h zlM1q`B6l5^9OYQ#ptXig1K^%#CZ4bD6cD&0k*lA17dyqV{{* zEk)zoqe2(!VA=V^%Hzg8S~?Wf8YwS-GqpIjH@KBpTD{*w{{yr5!!RfZr8g0xpgAOhu>PVK&ed?QR~HLG^2e7XIeavkqyt&h~4jo|x1nWB?%1V}Q^-qyW>L zo4C6&96Q<3nR(!7MWMKP=dJ;T+z5~U4aHwBU1m)3MY%h8{UQlSt(|cHIv7>TYWXyj zeu<|~+hXAy?+|E|;FodY`2eXOt)vm+s?j@ddZuHC`R&V0i(^7z3W<0G6AzZ1%^c`> z-^!n6@pDkIb|)!{!%1VAaOVHA;Cq#ZZ4DNjqSo1b5iNH#jrnAOFmfJ!FNlwYWf&XZ zZ6~LPJFbXODIK0_JF4@>3<_)ahpv^^@MpKb0l>w_2niHpc;Y5=N@mSQw2H0GemZeS zN%WKZU|`wO&NrWbHF~1Ab`Jw3BDwLPx+yX6mz;v9jYjofEG;DmC(OKMHT`q#-7Y(2 znoVIRXvc7I71*txIk0tKP0n<>nQCo z$sq2fsQ>EVCS|zZ8841LCw{O#bv{A|I=_r-i zt3-3LYigl=y3f}h!dz-Dyf9xNvLsWnG7aIgpcy63eASb-8R literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/58x58.png b/unpackage/res/icons/58x58.png new file mode 100644 index 0000000000000000000000000000000000000000..4fa836321f644a7f0de9819563eff74109288656 GIT binary patch literal 4367 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

      nO^_%7qb}d1P%Oz*RUW z-B@vKi8A0KLL>Bazqw$5)J#pGKi`OD)NnP&Z-@hj!)W|*QEOv9?oUpW?bV0t(vAdP z>4iPUceibLAIWnNJG9syAqc@jRBQwIe7Gd*uI4FMZIn8n2uy<{x-f8~8N$THDxPD#fp!C09oGSStRjG9aBKd9 zxwQMVGbdKLDFF*+?Hs-|BU!&vcwm?CP<1xHeijY1OwP#yQ3V#o_i0=Qhq95W#OnWG zF>I}wZ@Z*ogyAVt!?gT9TV5Qzy?E@x-39R67^ZLwcBa{aIu<*@Zsrc}$y*AKP z_LnT#+5q}~Vw=16R}p^g{0;*gt|H59`$cMd@ER#_Cp1{aNIuaOs&^Z$W!DFtwffrm zW7&NZRGfko^CGQ(hHw6R^>APju5Izg&0_bRu$)j|8FSNmNr+po)*<3MP2{g#i;K$bMp3 z(l9J+_d7zfaddj@0H}96CIoPG$mq)UKGAXN`0PZc;^5@W+mN!8yL0JYuzLP>$Y%WA zFqJqV4nk_H+XyoEfMmCx+`e&s()ya-_ZgB50K{0min>-L6IoZ7mNR5YLr|w29I+nH zx;+7$W(#?3Aq+hz=ONQ6l@(^??&_)p5+)9&*s9Mb?*t!teW<;MT)v^%EyPIw6Wx|#)WE!`g^2}Rr2G{XlCm|lL@K@yywRdY`Q&rQ8}-5W z?SPnMalbK8NL|y>WHyIWoKLKL@iDf-kK&u3#VX1MIQe}^C3Kk7rNOl9e$<4KsDwxwykGf|cfN!M+28m|$WmUSY zJbDg~EX>G?8l55T_Y0q;a3t)TU;{kt`3$#1@PVRLGc_akt2V2*45ql$!Yj=F0$<48ftC=QfrFUJ$`x6rwWd99F-&(x z#%myBHK**SvK7+@>}CIKn~T0T{i$NtSKnGHbHoo*ue~kRBF4FZGQ#tPb(EWXPc;Sd z0G!Dimo0R%>T}1W;eRIR8tj}iC@h8l8F$|8H4DWPlYB>a@2qWLkXkbDy|c_@RG2cF z!VufW>q%S=t{vC_f$>F;%xo*6iyD&8T z;_GdgM(z~T`I-@83}o?kxXfy3&1i#LtA%Q!t#v>BJKKj}Q9wxmFVRX=M!%%VF``{Q zLq1_-nAz%%)nj0a=G^z^f5p!qOD1yD{rItPgcQi8OJ4Bm_BnC@GbT9*PO-#sgJ*sf zgn|d{)xO+&gpx|Zi=)4+d;)T`7SBK`{}%=6a( literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/72x72.png b/unpackage/res/icons/72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..95bc2dfe0afe332353f3bd1f44d1e317fd34f322 GIT binary patch literal 5929 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 literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/76x76.png b/unpackage/res/icons/76x76.png new file mode 100644 index 0000000000000000000000000000000000000000..c43cdae4d82eaf40b4b29258e3710d2ec9eb8b1f GIT binary patch literal 6346 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 Gg#H&j9p63x literal 0 HcmV?d00001 diff --git a/unpackage/res/icons/87x87.png b/unpackage/res/icons/87x87.png new file mode 100644 index 0000000000000000000000000000000000000000..6c5d514a5c056b6802244868d1b64fd9a4fda052 GIT binary patch literal 7655 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 Yr*MaaVme9xd$$0{N-9ZIi { }) } -// 上传文件到工作区(手机弃用,仅支持pc本地前缀) -// export const workspaceUploadFile = (workspacesId,file,path) => { -// return new Promise((resolve, reject) => { -// uni.request({ -// url: `${BASE_URL}/workspace/file/upload`, -// method: "POST", -// header: { -// 'Content-Type': 'application/json' -// }, -// data: { -// workspaces_id: workspacesId, -// file: file, -// file_path: path, -// overwrite: true -// }, -// success: (res) => { -// if(res.statusCode === 200){ -// const respond = res.data -// if (respond.success) { -// resolve(respond)Z -// } else { -// const msg = respond?.error || '上传文件到工作区出错啦' -// reject(msg) -// } -// }else { -// reject(`上传文件到工作区失败:${res.statusCode}`) -// } -// } -// }) -// }) -// } +// 上传文件(通过url)到工作区 +export const workspaceUploadFileByURL = (token, workspacesId, urls, dirPath) => { + return new Promise((resolve, reject) => { + // urls 支持字符串或数组 + const urlList = Array.isArray(urls) ? urls : (urls ? [urls] : []); + uni.request({ + url: `${BASE_URL}/cloud_api/phone/workspace/upload`, + method: "POST", + header: { + 'Content-Type': 'application/json' + }, + data: { + "access_token": token, + "workspaces_id": workspacesId, + "dir_path": dirPath || '/', + "urls": urlList + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + // 接口返回: { success, total_files, success_count, failed_count, results: [{ url, success, error }], summary } + if (respond.success) { + resolve(respond); + } else { + // 部分/全部失败时,收集失败信息 + const failedItems = (respond.results || []) + .filter(r => !r.success) + .map(r => r.error || '未知错误'); + const msg = failedItems.length > 0 + ? `上传失败 ${respond.failed_count}/${respond.total_files}:${failedItems[0]}` + : (respond.summary || respond?.error || '上传文件到工作区出错啦'); + reject(msg); + } + } else { + reject(`上传文件到工作区失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || '网络错误'; + reject(msg); + } + }); + }); +}; + + + +// 上传文件(到短存云端)获取URL +// files: 文件数组,每个元素为 { path, name } 或字符串路径 +// 返回格式: [{ url: "https://...", success: true }] +export const uploadFileToShortStorage = (workspacesId, files, filePath) => { + return new Promise((resolve, reject) => { + // 统一转为文件数组 + const fileList = Array.isArray(files) ? files : [files]; + + // 构建 files 数组供 uni.uploadFile 使用 + const uploadFiles = fileList.map((file) => { + const fileUri = typeof file === 'string' ? file : (file.tempFilePath || file.path || file); + return { + name: 'files', + uri: fileUri + }; + }); + + console.log('uploadFileToShortStorage 参数:', { workspacesId, fileCount: uploadFiles.length, filePath }); + + uni.uploadFile({ + url: `${BASE_URL}/cloud_api/file/temp/upload`, + method: "POST", + formData: { + workspaces_id: workspacesId, + file_path: filePath || '/', + overwrite: 'true' + }, + files: uploadFiles, + success: (res) => { + console.log('uploadFileToShortStorage 响应状态:', res.statusCode, '数据:', res.data); + if (res.statusCode === 200) { + try { + const respond = JSON.parse(res.data); + // 接口返回 [{ url, success }] 数组 + if (Array.isArray(respond) && respond.length > 0) { + // 返回完整的 results 数组,调用方可遍历 + resolve(respond); + } else if (respond.success) { + // 兼容 { success: true, url: "..." } 格式 + resolve([{ url: respond.url || respond.message, success: true }]); + } else { + const msg = respond?.error || respond?.message || '上传文件(到短存云端)获取URL出错啦'; + reject(msg); + } + } catch (e) { + reject('接口返回数据格式异常: ' + res.data); + } + } else { + reject(`上传文件(到短存云端)获取URL失败:${res.statusCode} - ${res.data}`); + } + }, + fail: (err) => { + const msg = err.errMsg || '网络错误'; + reject(msg); + } + }); + }); +}; + +// 重命名工作区文件/文件夹(电脑端) +export const updateWorkspaceFileName = (token, workspacesId, oldPath, newName) => { + return new Promise((resolve, reject) => { + uni.request({ + url: `${BASE_URL}/workspace/file/rename`, + method: "POST", + header: { + 'Content-Type': 'application/json' + }, + data: { + "workspaces_id": workspacesId, + "file_path": oldPath, + "new_name": newName + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data; + if (respond.success) { + resolve(respond.message || respond); + } else { + const msg = respond?.error || '重命名工作区文件出错啦'; + reject(msg); + } + } else { + reject(`重命名工作区文件失败:${res.statusCode}`); + } + }, + fail: (err) => { + const msg = err.errMsg || '网络错误'; + reject(msg); + } + }); + }); +}; // 上传用户头像 export const uploadUserAvatar = (token, userId, username, email, avatarURL) => { @@ -1113,23 +1222,31 @@ export const createCloudDb = (token, databaseName) => { }) } -// 上传db -export const uploadCloudDbFile = (token, file) => { +// 上传db文件(.db / .sqlite 等数据库文件) +export const uploadCloudDbFile = (token, filePath) => { return new Promise((resolve, reject) => { + // filePath 可能是字符串路径或 { tempFilePath, name } 对象 + const fileUri = typeof filePath === 'string' ? filePath : (filePath.tempFilePath || filePath.path || + filePath); + const fileName = typeof filePath === 'string' ? + filePath.split('/').pop() || 'database.db' : + (filePath.name || 'database.db'); uni.uploadFile({ url: `${BASE_URL}/cloud_api/database/upload/db`, method: "POST", - // 不要手动设置 Content-Type,浏览器自动生成 multipart/form-data - header: { - // 如果后端把token放header就写这里,放表单里就写到formData - }, - // 普通文本参数(对应form-data里的文本项) + header: {}, formData: { access_token: token }, - // 多文件:每个文件name都叫files,和Postman保持一致 - file: files, + file: { + name: fileName, + uri: fileUri + }, + files: [{ + name: 'file', + uri: fileUri + }], success: (res) => { if (res.statusCode === 200) { try { @@ -1168,7 +1285,7 @@ export const deleteCloudDb = (token, databaseId) => { }, data: { "access_token": token, - "database_id": databaseName + "database_id": databaseId }, success: (res) => { if (res.statusCode === 200) { @@ -1195,7 +1312,7 @@ export const deleteCloudDb = (token, databaseId) => { export const getCloudDbTables = (token, databaseId, isDetail) => { return new Promise((resolve, reject) => { uni.request({ - url: `${BASE_URL}/cloud_api/database/list`, + url: `${BASE_URL}/cloud_api/database/tables`, method: "POST", header: { 'Content-Type': 'application/json' @@ -1226,16 +1343,54 @@ export const getCloudDbTables = (token, databaseId, isDetail) => { }) } +// 获取表数据 +export const getCloudDbTableData = (token, databaseId, tableName, limit = "20", offset = "0") => { + return new Promise((resolve, reject) => { + uni.request({ + url: `${BASE_URL}/cloud_api/database/table/data`, + method: "POST", + header: { + 'Content-Type': 'application/json' + }, + data: { + "access_token": token, + "database_id": databaseId, + "table_name": tableName, + "limit": limit, + "offset": offset + }, + success: (res) => { + if (res.statusCode === 200) { + const respond = res.data + if (respond.success) { + resolve(respond.data) + } else { + const msg = respond?.error || '获取表数据出错啦' + reject(msg) + } + } else { + reject(`获取表数据失败:${res.statusCode}`) + } + }, + fail: (err) => { + const msg = err.errMsg || '网络错误' + reject(msg) + } + }) + }) +} + + // 删除数据库中的表 export const deleteCloudDbTable = async (token, databaseId, tableName) => { return new Promise((resolve, reject) => { uni.request({ - url: `${BASE_URL}/delete_conversation`, + url: `${BASE_URL}/cloud_api/database/table/drop`, method: "POST", data: { "access_token": token, "database_id": databaseId, - "table_name": table_name + "table_name": tableName }, header: { 'Content-Type': 'application/json' @@ -1246,7 +1401,7 @@ export const deleteCloudDbTable = async (token, databaseId, tableName) => { if (respond?.success) { resolve(respond.message) } else { - const msg = respond.failed_ids.error || '删除数据库中的表出错啦' + const msg = respond.error || '删除数据库中的表出错啦' reject(msg) } } else { @@ -1262,7 +1417,7 @@ export const deleteCloudDbTable = async (token, databaseId, tableName) => { } // 更新表数据 -export const updateCloudDbTableData = async (token, databaseId, tableName, whereData, updateData) => { +export const updateCloudDbTableData = (token, databaseId, tableName, whereData, updateData) => { return new Promise((resolve, reject) => { uni.request({ url: `${BASE_URL}/cloud_api/database/table/update/by/id`, @@ -1270,13 +1425,9 @@ export const updateCloudDbTableData = async (token, databaseId, tableName, where data: { "access_token": token, "database_id": databaseId, - "table_name": table_name, - "where_data": { - "_row_id": 2 - }, - "update_data": { - "问题": "《水土保持监理规范2344444》制定的目的是什么" - } + "table_name": tableName, + "where_data": whereData, + "update_data": updateData }, header: { 'Content-Type': 'application/json' @@ -1287,7 +1438,7 @@ export const updateCloudDbTableData = async (token, databaseId, tableName, where if (respond?.success) { resolve(respond.message) } else { - const msg = respond.failed_ids.error || '更新表数据出错啦' + const msg = respond.error || '更新表数据出错啦' reject(msg) } } else { @@ -1304,24 +1455,35 @@ export const updateCloudDbTableData = async (token, databaseId, tableName, where // 导入文件到数据库 -export const importFileToCloudDb = (token, forceOverwrite, databaseId, file, tableName) => { +export const importFileToCloudDb = (token, forceOverwrite, databaseId, filePath, tableName) => { return new Promise((resolve, reject) => { + // filePath 可能是字符串路径或 { tempFilePath, name } 对象 + const fileUri = typeof filePath === 'string' ? filePath : (filePath.tempFilePath || filePath.path || + filePath); + const fileName = typeof filePath === 'string' ? + filePath.split('/').pop() || 'file' : + (filePath.name || 'file'); + uni.uploadFile({ - url: `${BASE_URL}/cloud_api/file/upload`, + url: `${BASE_URL}/cloud_api/database/import`, method: "POST", - // 不要手动设置 Content-Type,浏览器自动生成 multipart/form-data - header: { - // 如果后端把token放header就写这里,放表单里就写到formData - }, - // 普通文本参数(对应form-data里的文本项) + header: {}, formData: { access_token: token, force_overwrite: forceOverwrite, database_id: databaseId, - team_id: teamIdStr, table_name: tableName }, - file: file, + // uni.uploadFile 的 file 参数需要是对象格式:{ name, uri } + file: { + name: fileName, + uri: fileUri + }, + // 同时用 files 方式兜底 + files: [{ + name: 'file', + uri: fileUri + }], success: (res) => { if (res.statusCode === 200) { @@ -1349,18 +1511,23 @@ export const importFileToCloudDb = (token, forceOverwrite, databaseId, file, tab }; // 查看 个人/团队 数据库权限信息 -export const getCloudDbPermission = async (token, databaseId, type, Id) => { +export const getCloudDbPermission = (token, databaseId, type, id) => { return new Promise((resolve, reject) => { + const requestData = { + "access_token": token, + "database_id": databaseId + }; + // type 只能是 user_id 或 team_id + if (type === 'user_id') { + requestData.user_id = id; + } else if (type === 'team_id') { + requestData.team_id = id; + } + uni.request({ url: `${BASE_URL}/cloud_api/database/permission/info`, method: "POST", - data: { - "access_token": token, - "database_id": databaseId, - type: Id - // "team_id": "6a02f6f0d99a03faefd1f437", - // "user_id": "690c72a6b8ffa329af2d5607", - }, + data: requestData, header: { 'Content-Type': 'application/json' }, @@ -1368,9 +1535,13 @@ export const getCloudDbPermission = async (token, databaseId, type, Id) => { if (res.statusCode === 200) { const respond = res.data if (respond?.success) { - resolve(respond.message) + // team_id 格式: { success: true, data: [...] } + resolve(respond.data) + } else if (Array.isArray(respond)) { + // user_id 格式: 直接返回数组 [...] + resolve(respond) } else { - const msg = respond.failed_ids.error || '查看 个人/团队 数据库权限信息出错啦' + const msg = respond?.error || '查看 个人/团队 数据库权限信息出错啦' reject(msg) } } else { @@ -1386,18 +1557,22 @@ export const getCloudDbPermission = async (token, databaseId, type, Id) => { } // 删除 团队/用户 对数据库权限 -export const deleteCloudDbPermission = async (token, databaseId, type, Id) => { +export const deleteCloudDbPermission = (token, databaseId, type, id) => { return new Promise((resolve, reject) => { + const requestData = { + "access_token": token, + "database_id": databaseId + }; + if (type === 'user_id') { + requestData.user_id = id; + } else if (type === 'team_id') { + requestData.team_id = id; + } + uni.request({ url: `${BASE_URL}/cloud_api/database/permission/delete`, method: "POST", - data: { - "access_token": token, - "database_id": databaseId, - type: Id - // "team_id": "6a02f6f0d99a03faefd1f437", - // "user_id": "690c72a6b8ffa329af2d5607", - }, + data: requestData, header: { 'Content-Type': 'application/json' }, @@ -1407,7 +1582,7 @@ export const deleteCloudDbPermission = async (token, databaseId, type, Id) => { if (respond?.success) { resolve(respond.message) } else { - const msg = respond.failed_ids.error || '删除 团队/用户 对数据库权限出错啦' + const msg = respond.error || '删除 团队/用户 对数据库权限出错啦' reject(msg) } } else { @@ -1423,19 +1598,23 @@ export const deleteCloudDbPermission = async (token, databaseId, type, Id) => { } // 修改/增加 团队/用户 对数据库权限 -export const updateCloudDbPermission = async (token, databaseId, type, Id, level) => { +export const updateCloudDbPermission = (token, databaseId, type, id, level) => { return new Promise((resolve, reject) => { + const requestData = { + "access_token": token, + "database_id": databaseId, + "access_level": level + }; + if (type === 'user_id') { + requestData.user_id = id; + } else if (type === 'team_id') { + requestData.team_id = id; + } + uni.request({ url: `${BASE_URL}/cloud_api/database/permission/update`, method: "POST", - data: { - "access_token": token, - "database_id": databaseId, - "access_level": "3", - type: Id, - // "team_id": "6a02f6f0d99a03faefd1f437", - // "user_id": "690c72a6b8ffa329af2d5607", - }, + data: requestData, header: { 'Content-Type': 'application/json' }, @@ -1445,7 +1624,7 @@ export const updateCloudDbPermission = async (token, databaseId, type, Id, level if (respond?.success) { resolve(respond.message) } else { - const msg = respond.failed_ids.error || '修改/增加 团队/用户 对数据库权限出错啦' + const msg = respond.error || '修改/增加 团队/用户 对数据库权限出错啦' reject(msg) } } else { @@ -1461,7 +1640,7 @@ export const updateCloudDbPermission = async (token, databaseId, type, Id, level } // 个人数据库移交团队 -export const dbTransferToTeam = async (token, databaseId,teamId) => { +export const dbTransferToTeam = async (token, databaseId, teamId) => { return new Promise((resolve, reject) => { uni.request({ url: `${BASE_URL}/cloud_api/database/transfer_to_team`, @@ -1480,7 +1659,7 @@ export const dbTransferToTeam = async (token, databaseId,teamId) => { if (respond?.success) { resolve(respond.message) } else { - const msg = respond.failed_ids.error || '个人数据库移交团队出错啦' + const msg = respond.error || '个人数据库移交团队出错啦' reject(msg) } } else {