From 33950f41fd4e92f6e128a5c600af40d1f4ad614a Mon Sep 17 00:00:00 2001 From: "zhonghua.li" Date: Sat, 7 Feb 2026 16:45:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BA=E5=BC=B9=E5=87=BA?= =?UTF-8?q?=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../quality-coverage-popup.vue | 254 ++++++++++++++++ .../quality_coverage/quality_coverage.vue | 221 -------------- .../recording-duration-popup.vue | 274 ++++++++++++++++++ .../recording_duration/recording_duration.vue | 226 --------------- pages.json | 15 +- pages/ai_analysis/ai_analysis.vue | 85 +++++- .../dist/dev/.sourcemap/mp-weixin/app.js.map | 2 +- .../.sourcemap/mp-weixin/common/store.js.map | 2 +- .../quality-coverage-popup.js.map | 1 + .../recording-duration-popup.js.map | 1 + .../recording_duration.js.map | 2 +- .../pages/ai_analysis/ai_analysis.js.map | 2 +- unpackage/dist/dev/mp-weixin/app.js | 2 - unpackage/dist/dev/mp-weixin/app.json | 2 - unpackage/dist/dev/mp-weixin/common/store.js | 15 +- .../quality-coverage-popup.js | 63 ++++ .../quality-coverage-popup.json | 6 + .../quality-coverage-popup.wxml | 1 + .../quality-coverage-popup.wxss | 148 ++++++++++ ...uration.js => recording-duration-popup.js} | 35 ++- .../recording-duration-popup.json | 6 + .../recording-duration-popup.wxml | 1 + .../recording-duration-popup.wxss | 167 +++++++++++ .../recording_duration.json | 4 - .../recording_duration.wxml | 1 - .../recording_duration.wxss | 127 -------- .../pages/ai_analysis/ai_analysis.js | 88 +++++- .../pages/ai_analysis/ai_analysis.json | 2 + .../pages/ai_analysis/ai_analysis.wxml | 2 +- 29 files changed, 1116 insertions(+), 639 deletions(-) create mode 100644 pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.vue delete mode 100644 pages-subpackage/ai_features/quality_coverage/quality_coverage.vue create mode 100644 pages-subpackage/ai_features/recording_duration/recording-duration-popup.vue delete mode 100644 pages-subpackage/ai_features/recording_duration/recording_duration.vue create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.js.map create mode 100644 unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.js create mode 100644 unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.json create mode 100644 unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.wxss rename unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/{recording_duration.js => recording-duration-popup.js} (54%) create mode 100644 unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.json create mode 100644 unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.wxss delete mode 100644 unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.json delete mode 100644 unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.wxml delete mode 100644 unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.wxss diff --git a/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.vue b/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.vue new file mode 100644 index 0000000..e42cc1f --- /dev/null +++ b/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.vue @@ -0,0 +1,254 @@ + + + + + + diff --git a/pages-subpackage/ai_features/quality_coverage/quality_coverage.vue b/pages-subpackage/ai_features/quality_coverage/quality_coverage.vue deleted file mode 100644 index b1bebfa..0000000 --- a/pages-subpackage/ai_features/quality_coverage/quality_coverage.vue +++ /dev/null @@ -1,221 +0,0 @@ - - - - - diff --git a/pages-subpackage/ai_features/recording_duration/recording-duration-popup.vue b/pages-subpackage/ai_features/recording_duration/recording-duration-popup.vue new file mode 100644 index 0000000..0683eb1 --- /dev/null +++ b/pages-subpackage/ai_features/recording_duration/recording-duration-popup.vue @@ -0,0 +1,274 @@ + + + + + + diff --git a/pages-subpackage/ai_features/recording_duration/recording_duration.vue b/pages-subpackage/ai_features/recording_duration/recording_duration.vue deleted file mode 100644 index 456e2ea..0000000 --- a/pages-subpackage/ai_features/recording_duration/recording_duration.vue +++ /dev/null @@ -1,226 +0,0 @@ - - - - - diff --git a/pages.json b/pages.json index abffb76..4119b66 100644 --- a/pages.json +++ b/pages.json @@ -34,6 +34,9 @@ "path": "pages/ai_analysis/ai_analysis", "style": { "navigationStyle": "custom" + }, + "componentPlaceholder": { + "RecordingDurationPopup": "pages-subpackage/ai_features/recording_duration/recording-duration-popup" } }, // #ifdef APP @@ -269,24 +272,12 @@ "enablePullDownRefresh": true } }, - { - "path": "ai_features/recording_duration/recording_duration", - "style": { - "navigationStyle": "custom" - } - }, { "path": "ai_features/customer_count/customer_count", "style": { "navigationStyle": "custom" } }, - { - "path": "ai_features/quality_coverage/quality_coverage", - "style": { - "navigationStyle": "custom" - } - }, { "path": "ai_features/speech_rating/speech_rating", "style": { diff --git a/pages/ai_analysis/ai_analysis.vue b/pages/ai_analysis/ai_analysis.vue index 022b4c7..93c606a 100644 --- a/pages/ai_analysis/ai_analysis.vue +++ b/pages/ai_analysis/ai_analysis.vue @@ -25,7 +25,7 @@ 录音和接待统计 - + ⏱️ 录音时长 统计录音总时长 @@ -45,8 +45,8 @@ 质量管控 - - 🎯 + + 📊 质检覆盖率 质检录音覆盖统计 @@ -104,6 +104,18 @@ + + + + + + @@ -111,11 +123,21 @@ // #ifdef APP import statusBar from "@/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar"; // #endif +import RecordingDurationPopup from "@/pages-subpackage/ai_features/recording_duration/recording-duration-popup.vue"; +import QualityCoveragePopup from "@/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.vue"; export default { // #ifdef APP components: { - statusBar + statusBar, + RecordingDurationPopup, + QualityCoveragePopup + }, + // #endif + // #ifndef APP + components: { + RecordingDurationPopup, + QualityCoveragePopup }, // #endif data() { @@ -131,6 +153,7 @@ export default { return { contentTop: totalNavbarHeight + 'rpx', // 内容区域距离顶部的距离 contentBottom: '96rpx', // 内容区域距离底部的距离(默认值,会在 onReady 中更新) + popupReady: false, // 弹出框组件是否准备就绪 } }, computed: { @@ -148,6 +171,12 @@ export default { onLoad() { // 更新导航栏位置 this.updateNavbarPosition(); + // 延迟设置弹出框就绪状态,确保组件已加载 + this.$nextTick(() => { + setTimeout(() => { + this.popupReady = true; + }, 100); + }); }, onShow() { // 每次页面显示时都重新计算导航栏位置 @@ -229,10 +258,52 @@ export default { console.log('[AIAnalysis] 延迟更新tabbar高度:', tabbarHeight, 'px =', tabbarHeightRpx, 'rpx, 调整后:', adjustedBottom, 'rpx'); } }).exec(); - }, 200); - }); - }, + }, 200); + }); + }, methods: { + // 显示录音时长弹出框 + showRecordingDurationPopup() { + // 确保组件已准备就绪 + if (!this.popupReady) { + console.warn('[AIAnalysis] Popup component not ready yet'); + return; + } + + this.$nextTick(() => { + const popup = this.$refs.recordingDurationPopup; + if (popup && typeof popup.open === 'function') { + popup.open(); + } else { + console.error('[AIAnalysis] recordingDurationPopup ref not found or open method not available'); + } + }); + }, + // 弹出框关闭事件 + onPopupClose() { + // 弹出框关闭时的处理 + }, + // 显示质检覆盖率弹出框 + showQualityCoveragePopup() { + // 确保组件已准备就绪 + if (!this.popupReady) { + console.warn('[AIAnalysis] Popup component not ready yet'); + return; + } + + this.$nextTick(() => { + const popup = this.$refs.qualityCoveragePopup; + if (popup && typeof popup.open === 'function') { + popup.open(); + } else { + console.error('[AIAnalysis] qualityCoveragePopup ref not found or open method not available'); + } + }); + }, + // 质检覆盖率弹出框关闭事件 + onQualityCoveragePopupClose() { + // 弹出框关闭时的处理 + }, // 计算并更新导航栏和内容区域的位置 updateNavbarPosition() { const systemInfo = uni.getSystemInfoSync(); diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map index 1515db5..e374e09 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map @@ -1 +1 @@ -{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["\n\n\n\n\n","import App from './App'\r\nimport i18n from './lang/i18n'\r\n\r\n\r\n// #ifndef VUE3\r\nimport Vue from 'vue'\r\nVue.config.productionTip = false\r\nApp.mpType = 'app'\r\nconst app = new Vue({\r\n\ti18n,\r\n\t...App\r\n})\r\napp.$mount()\r\n// #endif\r\n\r\n\r\n// #ifdef VUE3\r\nimport {createSSRApp} from 'vue'\r\n\r\nexport function createApp() {\r\n\tconst app = createSSRApp(App)\r\n\tapp.use(i18n)\r\n\treturn {app}\r\n}\r\n// #endif\r\n"],"names":["uni","initApp","uniIdPageInit","mutations","store","createSSRApp","i18n"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["\n\n\n\n\n","import App from './App'\r\nimport i18n from './lang/i18n'\r\n\r\n\r\n// #ifndef VUE3\r\nimport Vue from 'vue'\r\nVue.config.productionTip = false\r\nApp.mpType = 'app'\r\nconst app = new Vue({\r\n\ti18n,\r\n\t...App\r\n})\r\napp.$mount()\r\n// #endif\r\n\r\n\r\n// #ifdef VUE3\r\nimport {createSSRApp} from 'vue'\r\n\r\nexport function createApp() {\r\n\tconst app = createSSRApp(App)\r\n\tapp.use(i18n)\r\n\treturn {app}\r\n}\r\n// #endif\r\n"],"names":["uni","initApp","uniIdPageInit","mutations","store","createSSRApp","i18n"],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/store.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/store.js.map index fd2a615..1494f90 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/store.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/store.js.map @@ -1 +1 @@ -{"version":3,"file":"store.js","sources":["common/store.js"],"sourcesContent":["import pagesJson from '@/pages.json'\r\nimport { getApiUrl } from '@/common/config.js'\r\n\r\n// 由于 store.js 在主包中,无法直接访问子包中的 config.js\r\n// 使用默认配置值\r\nconst config = {\r\n\tsetPasswordAfterLogin: false // 默认值,如果需要修改,可以在这里调整\r\n}\r\n\r\n// 获取用户信息,避免在模块加载时就执行 uni-app API\r\nlet hostUserInfo = null\r\n\r\nfunction getHostUserInfo() {\r\n\t// 总是从存储中读取最新值,确保登录状态的实时性\r\n\t// 特别是在微信小程序中,页面跳转可能导致模块重新加载\r\n\ttry {\r\n\t\tif (typeof uni !== 'undefined' && uni && typeof uni.getStorageSync === 'function') {\r\n\t\t\tconst storedUserInfo = uni.getStorageSync('uni-id-pages-userInfo') || {};\r\n\t\t\treturn storedUserInfo;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\t// 在模块初始化时,uni可能还未完全初始化,静默失败\r\n\t}\r\n\treturn {};\r\n}\r\n\r\n// 初始化用户信息(只调用一次)\r\nconst initialUserInfo = getHostUserInfo() || {};\r\n\r\nconst data = {\r\n\tuserInfo: initialUserInfo,\r\n\thasLogin: Object.keys(initialUserInfo).length != 0\r\n}\r\n\r\n// 定义 mutations, 修改属性\r\nexport const mutations = {\r\n\t// 更新用户信息(简化版,不使用数据库)\r\n\tasync updateUserInfo(data = false) {\r\n\t\tif (data) {\r\n\t\t\t// 直接更新本地用户信息\r\n\t\t\tthis.setUserInfo(data)\r\n\t\t\tif (typeof uni !== 'undefined' && uni.showToast) {\r\n\t\t\t\tuni.showToast({\r\n\t\t\t\t\ttitle: \"更新成功\",\r\n\t\t\t\t\ticon: 'none',\r\n\t\t\t\t\tduration: 3000\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// 如果没有传入数据,不做任何操作(不再从数据库获取)\r\n\t\t\t// #ifdef APP-PLUS || H5 || MP-ALIPAY\r\n\t\t\tconsole.log('updateUserInfo called without data, skipping database operation')\r\n\t\t\t// #endif\r\n\t\t}\r\n\t},\r\n\t/**\r\n\t * 从本地存储中重新加载用户信息到store\r\n\t * 用于解决store初始化时uni未准备好导致的问题\r\n\t */\r\n\tsyncUserInfoFromStorage() {\r\n\t\ttry {\r\n\t\t\tif (typeof uni !== 'undefined' && uni && typeof uni.getStorageSync === 'function') {\r\n\t\t\t\tconst storedUserInfo = uni.getStorageSync('uni-id-pages-userInfo') || {};\r\n\t\t\t\tif (Object.keys(storedUserInfo).length > 0) {\r\n\t\t\t\t\tthis.setUserInfo(storedUserInfo, { cover: true });\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\t// 静默失败\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\tsetUserInfo(data, {cover}={cover:false}) {\r\n\t\t// 确保data是一个对象\r\n\t\tconst safeData = data && typeof data === 'object' ? data : {};\r\n\t\tlet userInfo = cover ? safeData : Object.assign({}, store.userInfo || {}, safeData);\r\n\t\tstore.userInfo = Object.assign({}, userInfo);\r\n\t\tstore.hasLogin = Object.keys(store.userInfo).length != 0;\r\n\r\n\t\tif (typeof uni !== 'undefined' && uni && typeof uni.setStorageSync === 'function') {\r\n\t\t\ttry {\r\n\t\t\t\tuni.setStorageSync('uni-id-pages-userInfo', store.userInfo);\r\n\t\t\t} catch (e) {\r\n\t\t\t\t// 静默失败\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn safeData;\r\n\t},\r\n\tasync logout() {\r\n\t\t// 检查 uni 是否可用\r\n\t\tif (typeof uni === 'undefined') {\r\n\t\t\tconsole.warn('uni API not available for logout')\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// 优先调用后端自定义登出接口(/api/sys/auth/logout),失败也不影响本地清理\r\n\t\tconst backendUserId = uni.getStorageSync('backend-user-id')\r\n\t\tif (backendUserId) {\r\n\t\t\ttry {\r\n\t\t\t\tawait uni.request({\r\n\t\t\t\t\turl: getApiUrl('/api/sys/auth/logout'),\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\theader: {\r\n\t\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\tuserId: backendUserId\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error('后端登出接口调用失败:', e)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// 清理本地登录状态(后端 token + 旧 uni-id token + tenantId)\r\n\t\tuni.removeStorageSync('backend-token')\r\n\t\tuni.removeStorageSync('backend-login-response')\r\n\t\tuni.removeStorageSync('backend-user-id')\r\n\t\tuni.removeStorageSync('backend-tenant-id') // 清除 tenantId\r\n\t\tuni.removeStorageSync('uni_id_token');\r\n\t\tuni.setStorageSync('uni_id_token_expired', 0)\r\n this.setUserInfo({},{cover:true})\r\n uni.$emit('uni-id-pages-logout')\r\n\t\tuni.redirectTo({\r\n\t\t\turl: `/${pagesJson.uniIdRouter && pagesJson.uniIdRouter.loginPage ? pagesJson.uniIdRouter.loginPage: 'uni_modules/uni-id-pages/pages/login/login-withoutpwd'}`,\r\n\t\t});\r\n\t},\r\n\tloginBack (e = {}) {\r\n\t\t// 检查 uni 是否可用\r\n\t\tif (typeof uni === 'undefined') {\r\n\t\t\tconsole.warn('uni API not available for loginBack')\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst {uniIdRedirectUrl = ''} = e\r\n\t\tlet delta = 0; //判断需要返回几层\r\n\t\tlet pages = getCurrentPages();\r\n\t\t// console.log(pages);\r\n\t\tpages.forEach((page, index) => {\r\n\t\t\tif (pages[pages.length - index - 1].route.split('/')[3] == 'login') {\r\n\t\t\t\tdelta++\r\n\t\t\t}\r\n\t\t})\r\n\t\t// console.log('判断需要返回几层:', delta);\r\n\t\tif (uniIdRedirectUrl) {\r\n\t\t\treturn uni.redirectTo({\r\n\t\t\t\turl: uniIdRedirectUrl,\r\n\t\t\t\tfail: (err1) => {\r\n\t\t\t\t\tuni.switchTab({\r\n\t\t\t\t\t\turl:uniIdRedirectUrl,\r\n\t\t\t\t\t\tfail: (err2) => {\r\n\t\t\t\t\t\t\tconsole.log(err1,err2)\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})\r\n\t\t}\r\n\t\t// #ifdef H5\r\n\t\tif (e.loginType == 'weixin') {\r\n\t\t\t// console.log('window.history', window.history);\r\n\t\t\treturn window.history.go(-3)\r\n\t\t}\r\n\t\t// #endif\r\n\r\n\t\tif (delta) {\r\n\t\t\tconst page = pagesJson.pages[0]\r\n\t\t\treturn uni.reLaunch({\r\n\t\t\t\turl: `/${page.path}`\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tuni.navigateBack({\r\n\t\t\tdelta\r\n\t\t})\r\n\t},\r\n\tloginSuccess(e = {}){\r\n\t\tconst {\r\n\t\t\tshowToast = true, toastText = '登录成功', autoBack = true, uniIdRedirectUrl = '', passwordConfirmed\r\n\t\t} = e\r\n\t\t// console.log({toastText,autoBack});\r\n\r\n\t\t// 检查 uni 是否可用\r\n\t\tif (typeof uni === 'undefined') {\r\n\t\t\tconsole.warn('uni API not available for loginSuccess')\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (showToast) {\r\n\t\t\tuni.showToast({\r\n\t\t\t\ttitle: toastText,\r\n\t\t\t\ticon: 'none',\r\n\t\t\t\tduration: 3000\r\n\t\t\t});\r\n\t\t}\r\n // 异步调用(更新用户信息)防止获取头像等操作阻塞页面返回\r\n\t\tthis.updateUserInfo()\r\n\r\n\t\tuni.$emit('uni-id-pages-login-success')\r\n\r\n\t\tif (config.setPasswordAfterLogin && !passwordConfirmed) {\r\n\t\t\treturn uni.redirectTo({\r\n\t\t\t\turl: uniIdRedirectUrl ? `/uni_modules/uni-id-pages/pages/userinfo/set-pwd/set-pwd?uniIdRedirectUrl=${uniIdRedirectUrl}&loginType=${e.loginType}`: `/uni_modules/uni-id-pages/pages/userinfo/set-pwd/set-pwd?loginType=${e.loginType}`,\r\n\t\t\t\tfail: (err) => {\r\n\t\t\t\t\tconsole.log(err)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (autoBack) {\r\n\t\t\tthis.loginBack({uniIdRedirectUrl})\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n// #ifdef VUE2\r\nimport Vue from 'vue'\r\n// 通过Vue.observable创建一个可响应的对象\r\nexport const store = Vue.observable(data)\r\n// #endif\r\n\r\n// #ifdef VUE3\r\n// 在小程序环境中,可能 reactive 不可用,使用简单的对象\r\nexport const store = data\r\n// #endif\r\n"],"names":["uni","data","getApiUrl","pages"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"store.js","sources":["common/store.js"],"sourcesContent":["import pagesJson from '@/pages.json'\r\nimport { getApiUrl } from '@/common/config.js'\r\n\r\n// 由于 store.js 在主包中,无法直接访问子包中的 config.js\r\n// 使用默认配置值\r\nconst config = {\r\n\tsetPasswordAfterLogin: false // 默认值,如果需要修改,可以在这里调整\r\n}\r\n\r\n// 获取用户信息,避免在模块加载时就执行 uni-app API\r\nlet hostUserInfo = null\r\n\r\nfunction getHostUserInfo() {\r\n\t// 总是从存储中读取最新值,确保登录状态的实时性\r\n\t// 特别是在微信小程序中,页面跳转可能导致模块重新加载\r\n\ttry {\r\n\t\tif (typeof uni !== 'undefined' && uni && typeof uni.getStorageSync === 'function') {\r\n\t\t\tconst storedUserInfo = uni.getStorageSync('uni-id-pages-userInfo') || {};\r\n\t\t\treturn storedUserInfo;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\t// 在模块初始化时,uni可能还未完全初始化,静默失败\r\n\t}\r\n\treturn {};\r\n}\r\n\r\n// 初始化用户信息(只调用一次)\r\nconst initialUserInfo = getHostUserInfo() || {};\r\n\r\nconst data = {\r\n\tuserInfo: initialUserInfo,\r\n\thasLogin: Object.keys(initialUserInfo).length != 0\r\n}\r\n\r\n// 定义 mutations, 修改属性\r\nexport const mutations = {\r\n\t// 更新用户信息(简化版,不使用数据库)\r\n\tasync updateUserInfo(data = false) {\r\n\t\tif (data) {\r\n\t\t\t// 直接更新本地用户信息\r\n\t\t\tthis.setUserInfo(data)\r\n\t\t\tif (typeof uni !== 'undefined' && uni.showToast) {\r\n\t\t\t\tuni.showToast({\r\n\t\t\t\t\ttitle: \"更新成功\",\r\n\t\t\t\t\ticon: 'none',\r\n\t\t\t\t\tduration: 3000\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// 如果没有传入数据,不做任何操作(不再从数据库获取)\r\n\t\t\t// #ifdef APP-PLUS || H5 || MP-ALIPAY\r\n\t\t\tconsole.log('updateUserInfo called without data, skipping database operation')\r\n\t\t\t// #endif\r\n\t\t}\r\n\t},\r\n\t/**\r\n\t * 从本地存储中重新加载用户信息到store\r\n\t * 用于解决store初始化时uni未准备好导致的问题\r\n\t */\r\n\tsyncUserInfoFromStorage() {\r\n\t\ttry {\r\n\t\t\tif (typeof uni !== 'undefined' && uni && typeof uni.getStorageSync === 'function') {\r\n\t\t\t\tconst storedUserInfo = uni.getStorageSync('uni-id-pages-userInfo') || {};\r\n\t\t\t\tif (Object.keys(storedUserInfo).length > 0) {\r\n\t\t\t\t\tthis.setUserInfo(storedUserInfo, { cover: true });\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\t// 静默失败\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\tsetUserInfo(data, {cover}={cover:false}) {\r\n\t\t// 确保data是一个对象\r\n\t\tconst safeData = data && typeof data === 'object' ? data : {};\r\n\t\tlet userInfo = cover ? safeData : Object.assign({}, store.userInfo || {}, safeData);\r\n\t\tstore.userInfo = Object.assign({}, userInfo);\r\n\t\tstore.hasLogin = Object.keys(store.userInfo).length != 0;\r\n\r\n\t\tif (typeof uni !== 'undefined' && uni && typeof uni.setStorageSync === 'function') {\r\n\t\t\ttry {\r\n\t\t\t\tuni.setStorageSync('uni-id-pages-userInfo', store.userInfo);\r\n\t\t\t} catch (e) {\r\n\t\t\t\t// 静默失败\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn safeData;\r\n\t},\r\n\tasync logout() {\r\n\t\t// 检查 uni 是否可用\r\n\t\tif (typeof uni === 'undefined') {\r\n\t\t\tconsole.warn('uni API not available for logout')\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// 优先调用后端自定义登出接口(/api/sys/auth/logout),失败也不影响本地清理\r\n\t\tconst backendUserId = uni.getStorageSync('backend-user-id')\r\n\t\tif (backendUserId) {\r\n\t\t\ttry {\r\n\t\t\t\tawait uni.request({\r\n\t\t\t\t\turl: getApiUrl('/api/sys/auth/logout'),\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\theader: {\r\n\t\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\tuserId: backendUserId\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error('后端登出接口调用失败:', e)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// 清理本地登录状态(后端 token + 旧 uni-id token + tenantId)\r\n\t\tuni.removeStorageSync('backend-token')\r\n\t\tuni.removeStorageSync('backend-login-response')\r\n\t\tuni.removeStorageSync('backend-user-id')\r\n\t\tuni.removeStorageSync('backend-tenant-id') // 清除 tenantId\r\n\t\tuni.removeStorageSync('uni_id_token');\r\n\t\tuni.setStorageSync('uni_id_token_expired', 0)\r\n this.setUserInfo({},{cover:true})\r\n uni.$emit('uni-id-pages-logout')\r\n\t\tuni.redirectTo({\r\n\t\t\turl: `/${pagesJson.uniIdRouter && pagesJson.uniIdRouter.loginPage ? pagesJson.uniIdRouter.loginPage: 'uni_modules/uni-id-pages/pages/login/login-withoutpwd'}`,\r\n\t\t});\r\n\t},\r\n\tloginBack (e = {}) {\r\n\t\t// 检查 uni 是否可用\r\n\t\tif (typeof uni === 'undefined') {\r\n\t\t\tconsole.warn('uni API not available for loginBack')\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst {uniIdRedirectUrl = ''} = e\r\n\t\tlet delta = 0; //判断需要返回几层\r\n\t\tlet pages = getCurrentPages();\r\n\t\t// console.log(pages);\r\n\t\tpages.forEach((page, index) => {\r\n\t\t\tif (pages[pages.length - index - 1].route.split('/')[3] == 'login') {\r\n\t\t\t\tdelta++\r\n\t\t\t}\r\n\t\t})\r\n\t\t// console.log('判断需要返回几层:', delta);\r\n\t\tif (uniIdRedirectUrl) {\r\n\t\t\treturn uni.redirectTo({\r\n\t\t\t\turl: uniIdRedirectUrl,\r\n\t\t\t\tfail: (err1) => {\r\n\t\t\t\t\tuni.switchTab({\r\n\t\t\t\t\t\turl:uniIdRedirectUrl,\r\n\t\t\t\t\t\tfail: (err2) => {\r\n\t\t\t\t\t\t\tconsole.log(err1,err2)\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})\r\n\t\t}\r\n\t\t// #ifdef H5\r\n\t\tif (e.loginType == 'weixin') {\r\n\t\t\t// console.log('window.history', window.history);\r\n\t\t\treturn window.history.go(-3)\r\n\t\t}\r\n\t\t// #endif\r\n\r\n\t\tif (delta) {\r\n\t\t\tconst page = pagesJson.pages[0]\r\n\t\t\treturn uni.reLaunch({\r\n\t\t\t\turl: `/${page.path}`\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tuni.navigateBack({\r\n\t\t\tdelta\r\n\t\t})\r\n\t},\r\n\tloginSuccess(e = {}){\r\n\t\tconst {\r\n\t\t\tshowToast = true, toastText = '登录成功', autoBack = true, uniIdRedirectUrl = '', passwordConfirmed\r\n\t\t} = e\r\n\t\t// console.log({toastText,autoBack});\r\n\r\n\t\t// 检查 uni 是否可用\r\n\t\tif (typeof uni === 'undefined') {\r\n\t\t\tconsole.warn('uni API not available for loginSuccess')\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (showToast) {\r\n\t\t\tuni.showToast({\r\n\t\t\t\ttitle: toastText,\r\n\t\t\t\ticon: 'none',\r\n\t\t\t\tduration: 3000\r\n\t\t\t});\r\n\t\t}\r\n // 异步调用(更新用户信息)防止获取头像等操作阻塞页面返回\r\n\t\tthis.updateUserInfo()\r\n\r\n\t\tuni.$emit('uni-id-pages-login-success')\r\n\r\n\t\tif (config.setPasswordAfterLogin && !passwordConfirmed) {\r\n\t\t\treturn uni.redirectTo({\r\n\t\t\t\turl: uniIdRedirectUrl ? `/uni_modules/uni-id-pages/pages/userinfo/set-pwd/set-pwd?uniIdRedirectUrl=${uniIdRedirectUrl}&loginType=${e.loginType}`: `/uni_modules/uni-id-pages/pages/userinfo/set-pwd/set-pwd?loginType=${e.loginType}`,\r\n\t\t\t\tfail: (err) => {\r\n\t\t\t\t\tconsole.log(err)\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tif (autoBack) {\r\n\t\t\tthis.loginBack({uniIdRedirectUrl})\r\n\t\t}\r\n\t}\r\n\r\n}\r\n\r\n// #ifdef VUE2\r\nimport Vue from 'vue'\r\n// 通过Vue.observable创建一个可响应的对象\r\nexport const store = Vue.observable(data)\r\n// #endif\r\n\r\n// #ifdef VUE3\r\n// 在小程序环境中,可能 reactive 不可用,使用简单的对象\r\nexport const store = data\r\n// #endif\r\n"],"names":["uni","data","getApiUrl","pages"],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.js.map new file mode 100644 index 0000000..d9d0e75 --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.js.map @@ -0,0 +1 @@ +{"version":3,"file":"quality-coverage-popup.js","sources":["pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.vue","../../../work/soft/HBuilderX.4.87.20251210/plugins/uniapp-cli-vite/uniComponent:/RDovd29yazIvY29kZS9zbWFydERyaXZlRUVVbmlBcHAxMTExL3BhZ2VzLXN1YnBhY2thZ2UvYWlfZmVhdHVyZXMvcXVhbGl0eV9jb3ZlcmFnZS9xdWFsaXR5LWNvdmVyYWdlLXBvcHVwLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n","import Component from 'D:/work2/code/smartDriveEEUniApp1111/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;AAkDA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AACL,WAAO;AAAA,MACL,cAAc;AAAA,MACd,eAAe;AAAA,MACf,UAAU;AAAA,QACR,EAAE,MAAM,cAAc,aAAa,WAAW,MAAM,OAAQ;AAAA,QAC5D,EAAE,MAAM,cAAc,aAAa,WAAW,MAAM,OAAQ;AAAA,QAC5D,EAAE,MAAM,cAAc,aAAa,WAAW,MAAM,OAAQ;AAAA,QAC5D,EAAE,MAAM,cAAc,aAAa,YAAY,MAAM,OAAQ;AAAA,QAC7D,EAAE,MAAM,cAAc,aAAa,SAAS,MAAM,OAAO;AAAA,MAC3D;AAAA,IACF;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACP,OAAO;AACL,WAAK,MAAM,MAAM,KAAK;AAAA,IACvB;AAAA,IACD,QAAQ;AACN,WAAK,MAAM,MAAM,MAAM;AAAA,IACxB;AAAA,IACD,cAAc,GAAG;AACf,UAAI,CAAC,EAAE,MAAM;AACX,aAAK,MAAM,OAAO;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7EA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.js.map new file mode 100644 index 0000000..4937b30 --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.js.map @@ -0,0 +1 @@ +{"version":3,"file":"recording-duration-popup.js","sources":["pages-subpackage/ai_features/recording_duration/recording-duration-popup.vue","../../../work/soft/HBuilderX.4.87.20251210/plugins/uniapp-cli-vite/uniComponent:/RDovd29yazIvY29kZS9zbWFydERyaXZlRUVVbmlBcHAxMTExL3BhZ2VzLXN1YnBhY2thZ2UvYWlfZmVhdHVyZXMvcmVjb3JkaW5nX2R1cmF0aW9uL3JlY29yZGluZy1kdXJhdGlvbi1wb3B1cC52dWU"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n","import Component from 'D:/work2/code/smartDriveEEUniApp1111/pages-subpackage/ai_features/recording_duration/recording-duration-popup.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;AAkDA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AACL,WAAO;AAAA,MACL,eAAe;AAAA,MACf,eAAe;AAAA,MACf,UAAU;AAAA,QACR,EAAE,MAAM,cAAc,aAAa,UAAU,UAAU,SAAU;AAAA,QACjE,EAAE,MAAM,cAAc,aAAa,UAAU,UAAU,SAAU;AAAA,QACjE,EAAE,MAAM,cAAc,aAAa,QAAQ,UAAU,SAAU;AAAA,QAC/D,EAAE,MAAM,cAAc,aAAa,QAAQ,UAAU,SAAU;AAAA,QAC/D,EAAE,MAAM,cAAc,aAAa,UAAU,UAAU,SAAS;AAAA,MAClE;AAAA,IACF;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACP,OAAO;AACL,WAAK,MAAM,MAAM,KAAK;AAAA,IACvB;AAAA,IACD,QAAQ;AACN,WAAK,MAAM,MAAM,MAAM;AAAA,IACxB;AAAA,IACD,cAAc,GAAG;AACf,UAAI,CAAC,EAAE,MAAM;AACX,aAAK,MAAM,OAAO;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7EA,GAAG,gBAAgB,SAAS;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.js.map index 4d26511..d7312c2 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.js.map @@ -1 +1 @@ -{"version":3,"file":"recording_duration.js","sources":["pages-subpackage/ai_features/recording_duration/recording_duration.vue","../../../work/soft/HBuilderX.4.87.20251210/plugins/uniapp-cli-vite/uniPage:/cGFnZXMtc3VicGFja2FnZVxhaV9mZWF0dXJlc1xyZWNvcmRpbmdfZHVyYXRpb25ccmVjb3JkaW5nX2R1cmF0aW9uLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/work2/code/smartDriveEEUniApp1111/pages-subpackage/ai_features/recording_duration/recording_duration.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni"],"mappings":";;AAqDA,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,eAAe;AAAA,MACf,eAAe;AAAA,MACf,UAAU;AAAA,QACR,EAAE,MAAM,cAAc,aAAa,UAAU,UAAU,SAAU;AAAA,QACjE,EAAE,MAAM,cAAc,aAAa,UAAU,UAAU,SAAU;AAAA,QACjE,EAAE,MAAM,cAAc,aAAa,QAAQ,UAAU,SAAU;AAAA,QAC/D,EAAE,MAAM,cAAc,aAAa,QAAQ,UAAU,SAAU;AAAA,QAC/D,EAAE,MAAM,cAAc,aAAa,UAAU,UAAU,SAAS;AAAA,MAClE;AAAA,IACF;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AACPA,oBAAAA,MAAI,aAAa;AAAA,IACnB;AAAA,EACF;AACF;;;;;;;;;;;;;;;;;ACvEA,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"recording_duration.js","sources":["pages-subpackage/ai_features/recording_duration/recording_duration.vue","../../../work/soft/HBuilderX.4.87.20251210/plugins/uniapp-cli-vite/uniPage:/cGFnZXMtc3VicGFja2FnZVxhaV9mZWF0dXJlc1xyZWNvcmRpbmdfZHVyYXRpb25ccmVjb3JkaW5nX2R1cmF0aW9uLnZ1ZQ"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/work2/code/smartDriveEEUniApp1111/pages-subpackage/ai_features/recording_duration/recording_duration.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni"],"mappings":";;AAqDA,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,eAAe;AAAA,MACf,eAAe;AAAA,MACf,UAAU;AAAA,QACR,EAAE,MAAM,cAAc,aAAa,UAAU,UAAU,SAAU;AAAA,QACjE,EAAE,MAAM,cAAc,aAAa,UAAU,UAAU,SAAU;AAAA,QACjE,EAAE,MAAM,cAAc,aAAa,QAAQ,UAAU,SAAU;AAAA,QAC/D,EAAE,MAAM,cAAc,aAAa,QAAQ,UAAU,SAAU;AAAA,QAC/D,EAAE,MAAM,cAAc,aAAa,UAAU,UAAU,SAAS;AAAA,MAClE;AAAA,IACF;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACP,SAAS;AACPA,oBAAAA,MAAI,aAAa;AAAA,IACnB;AAAA,EACF;AACF;;;;;;;;;;;;;;;;;ACvEA,GAAG,WAAW,eAAe;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/ai_analysis/ai_analysis.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/ai_analysis/ai_analysis.js.map index 9657cce..05c3131 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/ai_analysis/ai_analysis.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/ai_analysis/ai_analysis.js.map @@ -1 +1 @@ -{"version":3,"file":"ai_analysis.js","sources":["pages/ai_analysis/ai_analysis.vue","../../../work/soft/HBuilderX.4.87.20251210/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvYWlfYW5hbHlzaXMvYWlfYW5hbHlzaXMudnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/work2/code/smartDriveEEUniApp1111/pages/ai_analysis/ai_analysis.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ai_analysis.js","sources":["pages/ai_analysis/ai_analysis.vue","../../../work/soft/HBuilderX.4.87.20251210/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvYWlfYW5hbHlzaXMvYWlfYW5hbHlzaXMudnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/work2/code/smartDriveEEUniApp1111/pages/ai_analysis/ai_analysis.vue'\nwx.createPage(MiniProgramPage)"],"names":["uni"],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/app.js b/unpackage/dist/dev/mp-weixin/app.js index ae4135b..857fac7 100644 --- a/unpackage/dist/dev/mp-weixin/app.js +++ b/unpackage/dist/dev/mp-weixin/app.js @@ -42,9 +42,7 @@ if (!Math) { "./pages-subpackage/uni-agree/uni-agree.js"; "./pages-subpackage/ucenter/settings/settings.js"; "./pages-subpackage/ucenter/read-news-log/read-news-log.js"; - "./pages-subpackage/ai_features/recording_duration/recording_duration.js"; "./pages-subpackage/ai_features/customer_count/customer_count.js"; - "./pages-subpackage/ai_features/quality_coverage/quality_coverage.js"; "./pages-subpackage/ai_features/speech_rating/speech_rating.js"; "./pages-subpackage/ai_features/intent_level/intent_level.js"; "./pages-subpackage/ai_features/deal_attribution/deal_attribution.js"; diff --git a/unpackage/dist/dev/mp-weixin/app.json b/unpackage/dist/dev/mp-weixin/app.json index 0192d38..676e383 100644 --- a/unpackage/dist/dev/mp-weixin/app.json +++ b/unpackage/dist/dev/mp-weixin/app.json @@ -50,9 +50,7 @@ "uni-agree/uni-agree", "ucenter/settings/settings", "ucenter/read-news-log/read-news-log", - "ai_features/recording_duration/recording_duration", "ai_features/customer_count/customer_count", - "ai_features/quality_coverage/quality_coverage", "ai_features/speech_rating/speech_rating", "ai_features/intent_level/intent_level", "ai_features/deal_attribution/deal_attribution", diff --git a/unpackage/dist/dev/mp-weixin/common/store.js b/unpackage/dist/dev/mp-weixin/common/store.js index 26327cb..07cd3b5 100644 --- a/unpackage/dist/dev/mp-weixin/common/store.js +++ b/unpackage/dist/dev/mp-weixin/common/store.js @@ -36,6 +36,9 @@ const pages = [ path: "pages/ai_analysis/ai_analysis", style: { navigationStyle: "custom" + }, + componentPlaceholder: { + RecordingDurationPopup: "pages-subpackage/ai_features/recording_duration/recording-duration-popup" } } ]; @@ -245,24 +248,12 @@ const subPackages = [ enablePullDownRefresh: true } }, - { - path: "ai_features/recording_duration/recording_duration", - style: { - navigationStyle: "custom" - } - }, { path: "ai_features/customer_count/customer_count", style: { navigationStyle: "custom" } }, - { - path: "ai_features/quality_coverage/quality_coverage", - style: { - navigationStyle: "custom" - } - }, { path: "ai_features/speech_rating/speech_rating", style: { diff --git a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.js b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.js new file mode 100644 index 0000000..89df561 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.js @@ -0,0 +1,63 @@ +"use strict"; +const common_vendor = require("../../../common/vendor.js"); +const _sfc_main = { + name: "QualityCoveragePopup", + data() { + return { + coverageRate: "87.5", + todayCoverage: "92.3", + dataList: [ + { date: "2024-02-07", description: "今日质检覆盖率", rate: "92.3" }, + { date: "2024-02-06", description: "昨日质检覆盖率", rate: "89.1" }, + { date: "2024-02-05", description: "前日质检覆盖率", rate: "85.7" }, + { date: "2024-02-04", description: "工作日平均覆盖率", rate: "88.4" }, + { date: "2024-02-03", description: "周末覆盖率", rate: "91.2" } + ] + }; + }, + methods: { + open() { + this.$refs.popup.open(); + }, + close() { + this.$refs.popup.close(); + }, + onPopupChange(e) { + if (!e.show) { + this.$emit("close"); + } + } + } +}; +if (!Array) { + const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup"); + _easycom_uni_popup2(); +} +const _easycom_uni_popup = () => "../../../uni_modules/uni-popup/components/uni-popup/uni-popup.js"; +if (!Math) { + _easycom_uni_popup(); +} +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.o((...args) => $options.close && $options.close(...args)), + b: common_vendor.t($data.coverageRate), + c: common_vendor.t($data.todayCoverage), + d: common_vendor.f($data.dataList, (item, index, i0) => { + return { + a: common_vendor.t(item.date), + b: common_vendor.t(item.description), + c: common_vendor.t(item.rate), + d: index + }; + }), + e: common_vendor.sr("popup", "220853f7-0"), + f: common_vendor.o($options.onPopupChange), + g: common_vendor.p({ + type: "center", + ["mask-click"]: true + }) + }; +} +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-220853f7"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.json b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.json new file mode 100644 index 0000000..b7fc8a8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "uni-popup": "../../../uni_modules/uni-popup/components/uni-popup/uni-popup" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.wxml b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.wxml new file mode 100644 index 0000000..1d7503c --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.wxml @@ -0,0 +1 @@ +质检覆盖率统计×{{b}}%总体覆盖率{{c}}%今日覆盖率覆盖率趋势图📊 图表区域此处将显示质检覆盖率趋势图表详细数据{{item.a}}{{item.b}}{{item.c}}% \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.wxss b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.wxss new file mode 100644 index 0000000..1c34bad --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.wxss @@ -0,0 +1,148 @@ + +.quality-coverage-popup.data-v-220853f7 { + width: 680rpx; + max-height: 80vh; + background-color: #FFFFFF; + border-radius: 16rpx; + display: flex; + flex-direction: column; + box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.2); + overflow: hidden; + position: relative; +} +.popup-header.data-v-220853f7 { + display: flex; + align-items: center; + justify-content: space-between; + padding: 6rpx 32rpx; + border-bottom: 1rpx solid #E0E0E0; + flex-shrink: 0; + background-color: #FFFFFF; + box-sizing: border-box; +} +.popup-title.data-v-220853f7 { + font-size: 24rpx; + font-weight: 500; + color: #333; +} +.popup-close.data-v-220853f7 { + width: 40rpx; + height: 40rpx; + min-width: 40rpx; + min-height: 40rpx; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + flex-shrink: 0; + background-color: rgba(0, 0, 0, 0.05); + border-radius: 50%; + transition: background-color 0.2s; +} +.popup-close.data-v-220853f7:active { + background-color: rgba(0, 0, 0, 0.1); +} +.close-icon.data-v-220853f7 { + font-size: 32rpx; + color: #333; + line-height: 1; + display: block; +} +.popup-content.data-v-220853f7 { + flex: 1; + min-height: 0; + overflow-y: auto; + max-height: calc(80vh - 52rpx); +} +.popup-stats-card.data-v-220853f7 { + display: flex; + margin: 20rpx 30rpx; + background: #f8f9fa; + border-radius: 16rpx; + padding: 40rpx 30rpx; +} +.popup-stat-item.data-v-220853f7 { + flex: 1; + text-align: center; +} +.popup-stat-item.data-v-220853f7:not(:last-child) { + border-right: 1rpx solid #e9ecef; +} +.popup-stat-value.data-v-220853f7 { + display: block; + font-size: 48rpx; + font-weight: bold; + color: #007aff; + margin-bottom: 10rpx; +} +.popup-stat-label.data-v-220853f7 { + display: block; + font-size: 24rpx; + color: #666666; +} +.popup-chart-section.data-v-220853f7, +.popup-data-list.data-v-220853f7 { + margin: 20rpx 30rpx; + background: #f8f9fa; + border-radius: 16rpx; + overflow: hidden; +} +.popup-section-title.data-v-220853f7 { + display: block; + font-size: 32rpx; + font-weight: bold; + color: #333333; + padding: 30rpx; + border-bottom: 1rpx solid #e9ecef; + background: #ffffff; +} +.popup-chart-placeholder.data-v-220853f7 { + padding: 80rpx 30rpx; + text-align: center; + background: #ffffff; +} +.popup-placeholder-text.data-v-220853f7 { + display: block; + font-size: 48rpx; + margin-bottom: 20rpx; +} +.popup-placeholder-desc.data-v-220853f7 { + display: block; + font-size: 28rpx; + color: #666666; +} +.popup-list-item.data-v-220853f7 { + display: flex; + align-items: center; + justify-content: space-between; + padding: 30rpx; + border-bottom: 1rpx solid #f0f0f0; + background: #ffffff; +} +.popup-list-item.data-v-220853f7:last-child { + border-bottom: none; +} +.popup-item-left.data-v-220853f7 { + flex: 1; +} +.popup-item-date.data-v-220853f7 { + display: block; + font-size: 28rpx; + font-weight: bold; + color: #333333; + margin-bottom: 8rpx; +} +.popup-item-desc.data-v-220853f7 { + display: block; + font-size: 24rpx; + color: #666666; +} +.popup-item-right.data-v-220853f7 { + text-align: right; +} +.popup-item-rate.data-v-220853f7 { + display: block; + font-size: 28rpx; + font-weight: bold; + color: #007aff; +} diff --git a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.js b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.js similarity index 54% rename from unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.js rename to unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.js index 7be11f4..2991903 100644 --- a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.js +++ b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.js @@ -1,6 +1,7 @@ "use strict"; const common_vendor = require("../../../common/vendor.js"); const _sfc_main = { + name: "RecordingDurationPopup", data() { return { totalDuration: "125.5 小时", @@ -15,14 +16,30 @@ const _sfc_main = { }; }, methods: { - goBack() { - common_vendor.index.navigateBack(); + open() { + this.$refs.popup.open(); + }, + close() { + this.$refs.popup.close(); + }, + onPopupChange(e) { + if (!e.show) { + this.$emit("close"); + } } } }; +if (!Array) { + const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup"); + _easycom_uni_popup2(); +} +const _easycom_uni_popup = () => "../../../uni_modules/uni-popup/components/uni-popup/uni-popup.js"; +if (!Math) { + _easycom_uni_popup(); +} function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return { - a: common_vendor.o((...args) => $options.goBack && $options.goBack(...args)), + a: common_vendor.o((...args) => $options.close && $options.close(...args)), b: common_vendor.t($data.totalDuration), c: common_vendor.t($data.todayDuration), d: common_vendor.f($data.dataList, (item, index, i0) => { @@ -32,9 +49,15 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { c: common_vendor.t(item.duration), d: index }; + }), + e: common_vendor.sr("popup", "d9e635c3-0"), + f: common_vendor.o($options.onPopupChange), + g: common_vendor.p({ + type: "top", + ["mask-click"]: true }) }; } -const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-582d7c51"]]); -wx.createPage(MiniProgramPage); -//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.js.map +const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-d9e635c3"]]); +wx.createComponent(Component); +//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.json b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.json new file mode 100644 index 0000000..b7fc8a8 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "uni-popup": "../../../uni_modules/uni-popup/components/uni-popup/uni-popup" + } +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.wxml b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.wxml new file mode 100644 index 0000000..3cd574d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.wxml @@ -0,0 +1 @@ +录音时长统计×{{b}}总录音时长{{c}}今日录音时长时长趋势图📊 图表区域此处将显示录音时长趋势图表详细数据{{item.a}}{{item.b}}{{item.c}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.wxss b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.wxss new file mode 100644 index 0000000..c6d559d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording-duration-popup.wxss @@ -0,0 +1,167 @@ + +/* 确保弹出框在导航栏之上 */ +.data-v-d9e635c3 .uni-popup.top { + z-index: 9999 !important; +} + +/* 确保弹出框 wrapper 正确显示 */ +.data-v-d9e635c3 .uni-popup.top .uni-popup__wrapper { + overflow: visible !important; + position: relative !important; +} +.recording-duration-popup.data-v-d9e635c3 { + background-color: #FFFFFF; + border-radius: 16rpx; + display: flex; + flex-direction: column; + box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.2); + overflow: hidden; + position: relative; +} +.popup-header.data-v-d9e635c3 { + display: flex; + align-items: center; + justify-content: space-between; + padding: 32rpx; + border-bottom: 1rpx solid #E0E0E0; + flex-shrink: 0; + background-color: #FFFFFF; + box-sizing: border-box; + min-height: 112rpx; + position: relative; + z-index: 10; + overflow: visible; + width: 100%; +} +.popup-title.data-v-d9e635c3 { + font-size: 32rpx; + font-weight: 500; + color: #333; +} +.popup-close.data-v-d9e635c3 { + width: 64rpx; + height: 64rpx; + min-width: 64rpx; + min-height: 64rpx; + display: flex !important; + align-items: center; + justify-content: center; + cursor: pointer; + flex-shrink: 0; + background-color: rgba(0, 0, 0, 0.05); + border-radius: 50%; + transition: background-color 0.2s; + position: relative; + z-index: 20; + overflow: visible; + visibility: visible !important; + opacity: 1 !important; +} +.popup-close.data-v-d9e635c3:active { + background-color: rgba(0, 0, 0, 0.05); +} +.close-icon.data-v-d9e635c3 { + font-size: 48rpx; + color: #333; + line-height: 1; + display: block !important; + visibility: visible !important; + opacity: 1 !important; +} +.popup-content.data-v-d9e635c3 { + flex: 1; + min-height: 0; + overflow-y: auto; +} +.popup-stats-card.data-v-d9e635c3 { + display: flex; + margin: 20rpx 30rpx; + background: #f8f9fa; + border-radius: 16rpx; + padding: 40rpx 30rpx; +} +.popup-stat-item.data-v-d9e635c3 { + flex: 1; + text-align: center; +} +.popup-stat-item.data-v-d9e635c3:not(:last-child) { + border-right: 1rpx solid #e9ecef; +} +.popup-stat-value.data-v-d9e635c3 { + display: block; + font-size: 48rpx; + font-weight: bold; + color: #007aff; + margin-bottom: 10rpx; +} +.popup-stat-label.data-v-d9e635c3 { + display: block; + font-size: 24rpx; + color: #666666; +} +.popup-chart-section.data-v-d9e635c3, +.popup-data-list.data-v-d9e635c3 { + margin: 20rpx 30rpx; + background: #f8f9fa; + border-radius: 16rpx; + overflow: hidden; +} +.popup-section-title.data-v-d9e635c3 { + display: block; + font-size: 32rpx; + font-weight: bold; + color: #333333; + padding: 30rpx; + border-bottom: 1rpx solid #e9ecef; + background: #ffffff; +} +.popup-chart-placeholder.data-v-d9e635c3 { + padding: 80rpx 30rpx; + text-align: center; + background: #ffffff; +} +.popup-placeholder-text.data-v-d9e635c3 { + display: block; + font-size: 48rpx; + margin-bottom: 20rpx; +} +.popup-placeholder-desc.data-v-d9e635c3 { + display: block; + font-size: 28rpx; + color: #666666; +} +.popup-list-item.data-v-d9e635c3 { + display: flex; + align-items: center; + justify-content: space-between; + padding: 30rpx; + border-bottom: 1rpx solid #f0f0f0; + background: #ffffff; +} +.popup-list-item.data-v-d9e635c3:last-child { + border-bottom: none; +} +.popup-item-left.data-v-d9e635c3 { + flex: 1; +} +.popup-item-date.data-v-d9e635c3 { + display: block; + font-size: 28rpx; + font-weight: bold; + color: #333333; + margin-bottom: 8rpx; +} +.popup-item-desc.data-v-d9e635c3 { + display: block; + font-size: 24rpx; + color: #666666; +} +.popup-item-right.data-v-d9e635c3 { + text-align: right; +} +.popup-item-duration.data-v-d9e635c3 { + display: block; + font-size: 28rpx; + font-weight: bold; + color: #007aff; +} diff --git a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.json b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.json deleted file mode 100644 index ced5b27..0000000 --- a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "navigationStyle": "custom", - "usingComponents": {} -} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.wxml b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.wxml deleted file mode 100644 index 4bc3750..0000000 --- a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.wxml +++ /dev/null @@ -1 +0,0 @@ -录音时长统计{{b}}总录音时长{{c}}今日录音时长时长趋势图📊 图表区域此处将显示录音时长趋势图表详细数据{{item.a}}{{item.b}}{{item.c}} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.wxss b/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.wxss deleted file mode 100644 index 1ca83f4..0000000 --- a/unpackage/dist/dev/mp-weixin/pages-subpackage/ai_features/recording_duration/recording_duration.wxss +++ /dev/null @@ -1,127 +0,0 @@ - -.feature-page.data-v-582d7c51 { - min-height: 100vh; - background: #f8f9fa; -} -.page-header.data-v-582d7c51 { - background: #ffffff; - border-bottom: 1rpx solid #e9ecef; -} -.nav-bar.data-v-582d7c51 { - display: flex; - align-items: center; - height: 88rpx; - padding: 0 30rpx; -} -.nav-left.data-v-582d7c51 { - width: 60rpx; - height: 60rpx; - display: flex; - align-items: center; - justify-content: center; - margin-right: 20rpx; -} -.back-icon.data-v-582d7c51 { - font-size: 36rpx; - color: #333333; -} -.nav-title.data-v-582d7c51 { - flex: 1; - text-align: center; - font-size: 32rpx; - font-weight: bold; - color: #333333; -} -.content-scroll.data-v-582d7c51 { - height: calc(100vh - 88rpx); -} -.stats-card.data-v-582d7c51 { - display: flex; - margin: 20rpx 30rpx; - background: #ffffff; - border-radius: 16rpx; - padding: 40rpx 30rpx; - box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1); -} -.stat-item.data-v-582d7c51 { - flex: 1; - text-align: center; -} -.stat-item.data-v-582d7c51:not(:last-child) { - border-right: 1rpx solid #e9ecef; -} -.stat-value.data-v-582d7c51 { - display: block; - font-size: 48rpx; - font-weight: bold; - color: #007aff; - margin-bottom: 10rpx; -} -.stat-label.data-v-582d7c51 { - display: block; - font-size: 24rpx; - color: #666666; -} -.chart-section.data-v-582d7c51, .data-list.data-v-582d7c51 { - margin: 20rpx 30rpx; - background: #ffffff; - border-radius: 16rpx; - overflow: hidden; - box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1); -} -.section-title.data-v-582d7c51 { - display: block; - font-size: 32rpx; - font-weight: bold; - color: #333333; - padding: 30rpx; - border-bottom: 1rpx solid #e9ecef; -} -.chart-placeholder.data-v-582d7c51 { - padding: 80rpx 30rpx; - text-align: center; -} -.placeholder-text.data-v-582d7c51 { - display: block; - font-size: 48rpx; - margin-bottom: 20rpx; -} -.placeholder-desc.data-v-582d7c51 { - display: block; - font-size: 28rpx; - color: #666666; -} -.list-item.data-v-582d7c51 { - display: flex; - align-items: center; - justify-content: space-between; - padding: 30rpx; - border-bottom: 1rpx solid #f0f0f0; -} -.list-item.data-v-582d7c51:last-child { - border-bottom: none; -} -.item-left.data-v-582d7c51 { - flex: 1; -} -.item-date.data-v-582d7c51 { - display: block; - font-size: 28rpx; - font-weight: bold; - color: #333333; - margin-bottom: 8rpx; -} -.item-desc.data-v-582d7c51 { - display: block; - font-size: 24rpx; - color: #666666; -} -.item-right.data-v-582d7c51 { - text-align: right; -} -.item-duration.data-v-582d7c51 { - display: block; - font-size: 28rpx; - font-weight: bold; - color: #007aff; -} diff --git a/unpackage/dist/dev/mp-weixin/pages/ai_analysis/ai_analysis.js b/unpackage/dist/dev/mp-weixin/pages/ai_analysis/ai_analysis.js index 97ed7c8..903bef6 100644 --- a/unpackage/dist/dev/mp-weixin/pages/ai_analysis/ai_analysis.js +++ b/unpackage/dist/dev/mp-weixin/pages/ai_analysis/ai_analysis.js @@ -1,6 +1,12 @@ "use strict"; const common_vendor = require("../../common/vendor.js"); +const RecordingDurationPopup = () => "../../pages-subpackage/ai_features/recording_duration/recording-duration-popup.js"; +const QualityCoveragePopup = () => "../../pages-subpackage/ai_features/quality_coverage/quality-coverage-popup.js"; const _sfc_main = { + components: { + RecordingDurationPopup, + QualityCoveragePopup + }, data() { const systemInfo = common_vendor.index.getSystemInfoSync(); const statusBarHeight = systemInfo.statusBarHeight || 20; @@ -11,8 +17,10 @@ const _sfc_main = { return { contentTop: totalNavbarHeight + "rpx", // 内容区域距离顶部的距离 - contentBottom: "96rpx" + contentBottom: "96rpx", // 内容区域距离底部的距离(默认值,会在 onReady 中更新) + popupReady: false + // 弹出框组件是否准备就绪 }; }, computed: { @@ -29,6 +37,11 @@ const _sfc_main = { }, onLoad() { this.updateNavbarPosition(); + this.$nextTick(() => { + setTimeout(() => { + this.popupReady = true; + }, 100); + }); }, onShow() { this.$nextTick(() => { @@ -47,7 +60,7 @@ const _sfc_main = { const actualHeightRpx = actualHeight * 2; const adjustedHeight = Math.max(actualHeightRpx - 4, 0); this.$set(this, "contentTop", adjustedHeight + "rpx"); - common_vendor.index.__f__("log", "at pages/ai_analysis/ai_analysis.vue:175", "[AIAnalysis] 使用实际导航栏高度:", actualHeight, "px =", actualHeightRpx, "rpx, 调整后:", adjustedHeight, "rpx"); + common_vendor.index.__f__("log", "at pages/ai_analysis/ai_analysis.vue:204", "[AIAnalysis] 使用实际导航栏高度:", actualHeight, "px =", actualHeightRpx, "rpx, 调整后:", adjustedHeight, "rpx"); } else { const systemInfo = common_vendor.index.getSystemInfoSync(); const statusBarHeight = systemInfo.statusBarHeight || 20; @@ -66,7 +79,7 @@ const _sfc_main = { const tabbarHeightRpx = tabbarHeight * 2; const adjustedBottom = Math.max(tabbarHeightRpx - 4, 0); this.$set(this, "contentBottom", adjustedBottom + "rpx"); - common_vendor.index.__f__("log", "at pages/ai_analysis/ai_analysis.vue:199", "[AIAnalysis] 使用实际tabbar高度:", tabbarHeight, "px =", tabbarHeightRpx, "rpx, 调整后:", adjustedBottom, "rpx"); + common_vendor.index.__f__("log", "at pages/ai_analysis/ai_analysis.vue:228", "[AIAnalysis] 使用实际tabbar高度:", tabbarHeight, "px =", tabbarHeightRpx, "rpx, 调整后:", adjustedBottom, "rpx"); } else { this.$set(this, "contentBottom", "96rpx"); } @@ -79,7 +92,7 @@ const _sfc_main = { const actualHeightRpx = actualHeight * 2; const adjustedHeight = Math.max(actualHeightRpx - 4, 0); this.$set(this, "contentTop", adjustedHeight + "rpx"); - common_vendor.index.__f__("log", "at pages/ai_analysis/ai_analysis.vue:217", "[AIAnalysis] 延迟更新导航栏高度:", actualHeight, "px =", actualHeightRpx, "rpx, 调整后:", adjustedHeight, "rpx"); + common_vendor.index.__f__("log", "at pages/ai_analysis/ai_analysis.vue:246", "[AIAnalysis] 延迟更新导航栏高度:", actualHeight, "px =", actualHeightRpx, "rpx, 调整后:", adjustedHeight, "rpx"); } }).exec(); const queryTabbar2 = common_vendor.index.createSelectorQuery().in(this); @@ -89,13 +102,49 @@ const _sfc_main = { const tabbarHeightRpx = tabbarHeight * 2; const adjustedBottom = Math.max(tabbarHeightRpx - 4, 0); this.$set(this, "contentBottom", adjustedBottom + "rpx"); - common_vendor.index.__f__("log", "at pages/ai_analysis/ai_analysis.vue:229", "[AIAnalysis] 延迟更新tabbar高度:", tabbarHeight, "px =", tabbarHeightRpx, "rpx, 调整后:", adjustedBottom, "rpx"); + common_vendor.index.__f__("log", "at pages/ai_analysis/ai_analysis.vue:258", "[AIAnalysis] 延迟更新tabbar高度:", tabbarHeight, "px =", tabbarHeightRpx, "rpx, 调整后:", adjustedBottom, "rpx"); } }).exec(); }, 200); }); }, methods: { + // 显示录音时长弹出框 + showRecordingDurationPopup() { + if (!this.popupReady) { + common_vendor.index.__f__("warn", "at pages/ai_analysis/ai_analysis.vue:269", "[AIAnalysis] Popup component not ready yet"); + return; + } + this.$nextTick(() => { + const popup = this.$refs.recordingDurationPopup; + if (popup && typeof popup.open === "function") { + popup.open(); + } else { + common_vendor.index.__f__("error", "at pages/ai_analysis/ai_analysis.vue:278", "[AIAnalysis] recordingDurationPopup ref not found or open method not available"); + } + }); + }, + // 弹出框关闭事件 + onPopupClose() { + }, + // 显示质检覆盖率弹出框 + showQualityCoveragePopup() { + if (!this.popupReady) { + common_vendor.index.__f__("warn", "at pages/ai_analysis/ai_analysis.vue:290", "[AIAnalysis] Popup component not ready yet"); + return; + } + this.$nextTick(() => { + const popup = this.$refs.qualityCoveragePopup; + if (popup && typeof popup.open === "function") { + popup.open(); + } else { + common_vendor.index.__f__("error", "at pages/ai_analysis/ai_analysis.vue:299", "[AIAnalysis] qualityCoveragePopup ref not found or open method not available"); + } + }); + }, + // 质检覆盖率弹出框关闭事件 + onQualityCoveragePopupClose() { + }, // 计算并更新导航栏和内容区域的位置 updateNavbarPosition() { const systemInfo = common_vendor.index.getSystemInfoSync(); @@ -111,12 +160,12 @@ const _sfc_main = { goBack() { const pages = getCurrentPages(); if (pages.length <= 1) { - common_vendor.index.__f__("log", "at pages/ai_analysis/ai_analysis.vue:258", "[AIAnalysis][goBack] 当前是第一个页面,无法返回"); + common_vendor.index.__f__("log", "at pages/ai_analysis/ai_analysis.vue:329", "[AIAnalysis][goBack] 当前是第一个页面,无法返回"); return; } common_vendor.index.navigateBack({ fail: (err) => { - common_vendor.index.__f__("error", "at pages/ai_analysis/ai_analysis.vue:263", "[AIAnalysis][goBack] 返回失败:", err); + common_vendor.index.__f__("error", "at pages/ai_analysis/ai_analysis.vue:334", "[AIAnalysis][goBack] 返回失败:", err); } }); }, @@ -125,7 +174,7 @@ const _sfc_main = { common_vendor.index.navigateTo({ url: `/${pagePath}`, fail: (err) => { - common_vendor.index.__f__("error", "at pages/ai_analysis/ai_analysis.vue:272", "导航失败:", err); + common_vendor.index.__f__("error", "at pages/ai_analysis/ai_analysis.vue:343", "导航失败:", err); common_vendor.index.showToast({ title: "页面跳转失败", icon: "none" @@ -137,14 +186,16 @@ const _sfc_main = { }; if (!Array) { const _easycom_uni_nav_bar2 = common_vendor.resolveComponent("uni-nav-bar"); - _easycom_uni_nav_bar2(); + const _component_RecordingDurationPopup = common_vendor.resolveComponent("RecordingDurationPopup"); + const _component_QualityCoveragePopup = common_vendor.resolveComponent("QualityCoveragePopup"); + (_easycom_uni_nav_bar2 + _component_RecordingDurationPopup + _component_QualityCoveragePopup)(); } const _easycom_uni_nav_bar = () => "../../uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.js"; if (!Math) { _easycom_uni_nav_bar(); } function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { - return { + return common_vendor.e({ a: common_vendor.o($options.goBack), b: common_vendor.p({ fixed: true, @@ -154,9 +205,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { color: "#333", backgroundColor: "#FFFFFF" }), - c: common_vendor.o(($event) => $options.navigateToPage("recording_duration")), + c: common_vendor.o((...args) => $options.showRecordingDurationPopup && $options.showRecordingDurationPopup(...args)), d: common_vendor.o(($event) => $options.navigateToPage("customer_count")), - e: common_vendor.o(($event) => $options.navigateToPage("quality_coverage")), + e: common_vendor.o((...args) => $options.showQualityCoveragePopup && $options.showQualityCoveragePopup(...args)), f: common_vendor.o(($event) => $options.navigateToPage("speech_rating")), g: common_vendor.o(($event) => $options.navigateToPage("intent_level")), h: common_vendor.o(($event) => $options.navigateToPage("deal_attribution")), @@ -164,8 +215,17 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { j: common_vendor.o(($event) => $options.navigateToPage("over_commitment")), k: common_vendor.o(($event) => $options.navigateToPage("red_line_touch")), l: $options.computedContentTop || $data.contentTop, - m: $data.contentBottom || "96rpx" - }; + m: $data.contentBottom || "96rpx", + n: $data.popupReady + }, $data.popupReady ? { + o: common_vendor.sr("recordingDurationPopup", "8462a2f1-1"), + p: common_vendor.o($options.onPopupClose) + } : {}, { + q: $data.popupReady + }, $data.popupReady ? { + r: common_vendor.sr("qualityCoveragePopup", "8462a2f1-2"), + s: common_vendor.o($options.onQualityCoveragePopupClose) + } : {}); } const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-8462a2f1"]]); wx.createPage(MiniProgramPage); diff --git a/unpackage/dist/dev/mp-weixin/pages/ai_analysis/ai_analysis.json b/unpackage/dist/dev/mp-weixin/pages/ai_analysis/ai_analysis.json index af4bb32..e7f7e55 100644 --- a/unpackage/dist/dev/mp-weixin/pages/ai_analysis/ai_analysis.json +++ b/unpackage/dist/dev/mp-weixin/pages/ai_analysis/ai_analysis.json @@ -1,6 +1,8 @@ { "navigationStyle": "custom", "usingComponents": { + "recording-duration-popup": "../../pages-subpackage/ai_features/recording_duration/recording-duration-popup", + "quality-coverage-popup": "../../pages-subpackage/ai_features/quality_coverage/quality-coverage-popup", "uni-nav-bar": "../../uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar" } } \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/ai_analysis/ai_analysis.wxml b/unpackage/dist/dev/mp-weixin/pages/ai_analysis/ai_analysis.wxml index 0616d41..c9f4047 100644 --- a/unpackage/dist/dev/mp-weixin/pages/ai_analysis/ai_analysis.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/ai_analysis/ai_analysis.wxml @@ -1 +1 @@ -📊录音和接待统计⏱️录音时长统计录音总时长👥接待客户数统计接待客户数量质量管控🎯质检覆盖率质检录音覆盖统计🗣️员工话术评分员工沟通质量评分📈销售分析🎯客户意向分级客户购买意向分析💰成交归因成交成功因素分析🚪开口率客户主动开口统计⚠️风险监控🚨过度承诺统计监控过度承诺情况🔴触及红线统计违规行为监控统计 \ No newline at end of file +📊录音和接待统计⏱️录音时长统计录音总时长👥接待客户数统计接待客户数量质量管控📊质检覆盖率质检录音覆盖统计🗣️员工话术评分员工沟通质量评分📈销售分析🎯客户意向分级客户购买意向分析💰成交归因成交成功因素分析🚪开口率客户主动开口统计⚠️风险监控🚨过度承诺统计监控过度承诺情况🔴触及红线统计违规行为监控统计 \ No newline at end of file