From 4765dad14342d62847ed8cae4cbda5376fff9609 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 3 Apr 2026 09:49:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=9B=B4=E6=96=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 4 +- .env.test | 4 +- ci/project.config.json | 2 +- dist/build/mp-weixin/app.json | 6 + .../mp-weixin/common/libraries/setTabBar.js | 2 +- dist/build/mp-weixin/custom-tab-bar/index.js | 54 +- .../build/mp-weixin/custom-tab-bar/index.wxml | 8 +- .../build/mp-weixin/custom-tab-bar/index.wxss | 19 +- dist/build/mp-weixin/pages/ai/chat.js | 2 +- dist/build/mp-weixin/pages/ai/chat.wxml | 2 +- dist/build/mp-weixin/pages/ai/chat.wxss | 2 +- .../pages/index/components/AiInput.js | 2 +- .../pages/index/components/AiInput.wxml | 2 +- .../pages/index/components/AiInput.wxss | 2 +- .../pages/index/components/ModalServer.js | 2 +- .../pages/index/components/ModalServer.wxml | 2 +- .../pages/index/components/ModalServer.wxss | 2 +- dist/dev/mp-weixin/app.js | 1 + dist/dev/mp-weixin/app.json | 7 + .../dev/mp-weixin/common/libraries/request.js | 2 +- .../mp-weixin/common/libraries/setTabBar.js | 48 +- .../common/libraries/userUserLogin.js | 5 +- .../common/store/useWeAppAuthStore.js | 20 +- dist/dev/mp-weixin/common/vendor.js | 593 +++++++++--------- dist/dev/mp-weixin/custom-tab-bar/index.js | 65 +- dist/dev/mp-weixin/custom-tab-bar/index.wxml | 13 +- dist/dev/mp-weixin/custom-tab-bar/index.wxss | 33 +- dist/dev/mp-weixin/pages/ai/chat.js | 169 ++--- dist/dev/mp-weixin/pages/ai/chat.json | 4 +- dist/dev/mp-weixin/pages/ai/chat.wxml | 2 +- dist/dev/mp-weixin/pages/ai/chat.wxss | 22 +- src/common/libraries/setTabBar.ts | 56 +- src/common/libraries/userUserLogin.ts | 1 + src/common/store/useWeAppAuthStore.ts | 22 +- src/custom-tab-bar/index.js | 65 +- src/custom-tab-bar/index.wxml | 13 +- src/custom-tab-bar/index.wxss | 33 +- src/pages.json | 27 +- src/pages/ai/chat.vue | 138 ++-- src/pages/ai/style.scss | 31 +- 40 files changed, 862 insertions(+), 625 deletions(-) diff --git a/.env.development b/.env.development index 00c0ba4..21c5ad3 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ NODE_ENV= development -VITE_HTTP_BASE_URL = http://10.39.13.78:8002/api/ +# VITE_HTTP_BASE_URL = http://10.39.13.78:8002/api/ # VITE_HTTP_BASE_URL = https://test-weapp-api.linyikj.com.cn/api/ -# VITE_HTTP_BASE_URL = https://weapp-api.linyikj.com.cn/api/ +VITE_HTTP_BASE_URL = https://weapp-api.linyikj.com.cn/api/ VITE_ACCESS_TOKEN_KEY= 'ACCESS_TOKEN_CUSTOMER' \ No newline at end of file diff --git a/.env.test b/.env.test index 8ce9028..1ebfc59 100644 --- a/.env.test +++ b/.env.test @@ -1,4 +1,4 @@ NODE_ENV= test -VITE_HTTP_BASE_URL= https://test-weapp-api.linyikj.com.cn/api/ -# VITE_HTTP_BASE_URL= https://weapp-api.linyikj.com.cn/api/ +# VITE_HTTP_BASE_URL= https://test-weapp-api.linyikj.com.cn/api/ +VITE_HTTP_BASE_URL= https://weapp-api.linyikj.com.cn/api/ VITE_ACCESS_TOKEN_KEY= 'NCHL_TEST_ACCESS_TOKEN_CUSTOMER' \ No newline at end of file diff --git a/ci/project.config.json b/ci/project.config.json index 5c89890..6e07504 100644 --- a/ci/project.config.json +++ b/ci/project.config.json @@ -1,3 +1,3 @@ { - "version": "0.0.78" + "version": "0.0.80" } \ No newline at end of file diff --git a/dist/build/mp-weixin/app.json b/dist/build/mp-weixin/app.json index 1b68f9d..b20c5fc 100644 --- a/dist/build/mp-weixin/app.json +++ b/dist/build/mp-weixin/app.json @@ -94,6 +94,12 @@ "iconPath": "/static/tabbar/home_icon.png", "selectedIconPath": "/static/tabbar/home_active.png" }, + { + "pagePath": "pages/ai/chat", + "text": "管家在线", + "iconPath": "/static/tabbar/news_active.png", + "selectedIconPath": "/static/tabbar/news_active.png" + }, { "pagePath": "pages/me/index", "text": "我的", diff --git a/dist/build/mp-weixin/common/libraries/setTabBar.js b/dist/build/mp-weixin/common/libraries/setTabBar.js index ad188e3..33a8f53 100644 --- a/dist/build/mp-weixin/common/libraries/setTabBar.js +++ b/dist/build/mp-weixin/common/libraries/setTabBar.js @@ -1 +1 @@ -"use strict";let t=[{pagePath:"/pages/index/index",iconPath:"/static/tabbar/home_icon.png",selectedIconPath:"/static/tabbar/home_active.png",text:"首页"},{pagePath:"/pages/me/index",iconPath:"/static/tabbar/news_icon.png",selectedIconPath:"/static/tabbar/news_active.png",text:"我的"}];exports.setTabBar=function(e){var a,n,l,o,i;const c=getCurrentPages(),u=c[c.length-1];if(u){const o=(null==u?void 0:u.getTabBar)?null==u?void 0:u.getTabBar():null;let i=null==(l=null==(n=null==(a=null==e?void 0:e.companyConfig)?void 0:a.config_value)?void 0:n.menu)?void 0:l.map((t=>{var e,a,n,l;return{...t,iconPath:null==(a=null==(e=t.iconPath)?void 0:e[0])?void 0:a.url,selectedIconPath:null==(l=null==(n=t.selectedIconPath)?void 0:n[0])?void 0:l.url}}));getApp().globalData.menuList=i||t,o&&o.setData({list:i||t})}console.log("App.globalData.selectedOrg",null==(i=null==(o=null==e?void 0:e.companyConfig)?void 0:o.config_value)?void 0:i.menu)}; +"use strict";let t=[{pagePath:"/pages/index/index",iconPath:"/static/tabbar/home_icon.png",selectedIconPath:"/static/tabbar/home_active.png",text:"首页"},{pagePath:"/pages/ai/chat",iconPath:"/static/tabbar/news_icon.png",selectedIconPath:"/static/tabbar/news_active.png",text:"管家在线"},{pagePath:"/pages/me/index",iconPath:"/static/tabbar/news_icon.png",selectedIconPath:"/static/tabbar/news_active.png",text:"我的"}];exports.setTabBar=function(a){var e,n,l,o,c,i,s,u;const g=getCurrentPages(),p=g[g.length-1];if(p){const s=(null==p?void 0:p.getTabBar)?null==p?void 0:p.getTabBar():null;let u=null==(l=null==(n=null==(e=null==a?void 0:a.companyConfig)?void 0:e.config_value)?void 0:n.menu)?void 0:l.map((t=>{var a,e,n,l;return{...t,iconPath:null==(e=null==(a=t.iconPath)?void 0:a[0])?void 0:e.url,selectedIconPath:null==(l=null==(n=t.selectedIconPath)?void 0:n[0])?void 0:l.url}}));u.splice((null==(i=null==(c=null==(o=null==a?void 0:a.companyConfig)?void 0:o.config_value)?void 0:c.menu)?void 0:i.length)/2,0,{pagePath:"/pages/ai/chat",iconPath:"https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN63WTGSX2T5X8N233CJ5K0Q.png",selectedIconPath:"https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN63WTGSX2T5X8N233CJ5K0Q.png",text:"管家在线"}),getApp().globalData.menuList=u||t,s&&s.setData({list:u||t})}console.log("App.globalData.selectedOrg",null==(u=null==(s=null==a?void 0:a.companyConfig)?void 0:s.config_value)?void 0:u.menu)}; diff --git a/dist/build/mp-weixin/custom-tab-bar/index.js b/dist/build/mp-weixin/custom-tab-bar/index.js index 90a8c5a..3cce33f 100644 --- a/dist/build/mp-weixin/custom-tab-bar/index.js +++ b/dist/build/mp-weixin/custom-tab-bar/index.js @@ -1,23 +1,32 @@ -const App = getApp(); +const App = getApp() Component({ data: { selected: App.globalData.selectedIndex, - color: "#3D3D3D", - selectedColor: "#3D3D3D", - list: [{ - pagePath: "/pages/index/index", - iconPath: "/static/tabbar/home_icon.png", - selectedIconPath: "/static/tabbar/home_active.png", - text: "首页" - }, { - pagePath: "/pages/me/index", - iconPath: "/static/tabbar/news_icon.png", - selectedIconPath: "/static/tabbar/news_active.png", - text: "我的" - },] + color: '#3D3D3D', + selectedColor: '#3D3D3D', + list: [ + { + pagePath: '/pages/index/index', + iconPath: '/static/tabbar/home_icon.png', + selectedIconPath: '/static/tabbar/home_active.png', + text: '首页' + }, + { + pagePath: '/pages/ai/chat', + iconPath: '/static/tabbar/news_icon.png', + selectedIconPath: '/static/tabbar/news_active.png', + text: '管家在线' + }, + { + pagePath: '/pages/me/index', + iconPath: '/static/tabbar/news_icon.png', + selectedIconPath: '/static/tabbar/news_active.png', + text: '我的' + } + ] }, lifetimes: { - attached: function() { + attached: function () { // 监听路由变化,自动更新tab-bar选中状态 const updateTabBar = () => { let _this = this @@ -58,11 +67,14 @@ Component({ selected: data.index, list: getApp().globalData.menuList }) - console.log('switchTab fail', url) - wx.switchTab({url, fail: (res) => { - // wx.navigateTo({url}) - console.log('switchTab fail', res) - }}) + console.log('switchTab fail', url) + wx.switchTab({ + url, + fail: res => { + // wx.navigateTo({url}) + console.log('switchTab fail', res) + } + }) } } -}) \ No newline at end of file +}) diff --git a/dist/build/mp-weixin/custom-tab-bar/index.wxml b/dist/build/mp-weixin/custom-tab-bar/index.wxml index 3ce2f86..67375b5 100644 --- a/dist/build/mp-weixin/custom-tab-bar/index.wxml +++ b/dist/build/mp-weixin/custom-tab-bar/index.wxml @@ -1,8 +1,8 @@ - - - - {{item.text}} + + + + {{item.text}} diff --git a/dist/build/mp-weixin/custom-tab-bar/index.wxss b/dist/build/mp-weixin/custom-tab-bar/index.wxss index dc8a9ee..49012fb 100644 --- a/dist/build/mp-weixin/custom-tab-bar/index.wxss +++ b/dist/build/mp-weixin/custom-tab-bar/index.wxss @@ -4,7 +4,11 @@ left: 0; right: 0; height: 48px; - background: white; + /* background: url('https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN62JHV37KC4W8K8A391MS3Y.png') + no-repeat; */ + background: url(' https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN62VGEVV8NSR4GDDQAYC2JV.png') + no-repeat; + background-size: 100% auto; display: flex; padding-bottom: env(safe-area-inset-bottom); } @@ -27,12 +31,25 @@ align-items: center; flex-direction: column; } +.tab-bar-item-center { + flex: 1; + text-align: center; + display: flex; + justify-content: center; + align-items: center; +} .tab-bar-item image { width: 27px; height: 27px; } +.tab-bar-item-center .tab-bar-item-icon { + width: 120rpx !important; + height: 120rpx !important; + margin-bottom: 70rpx; +} + .tab-bar-item view { font-size: 10px; } diff --git a/dist/build/mp-weixin/pages/ai/chat.js b/dist/build/mp-weixin/pages/ai/chat.js index d914fa0..a468f04 100644 --- a/dist/build/mp-weixin/pages/ai/chat.js +++ b/dist/build/mp-weixin/pages/ai/chat.js @@ -1 +1 @@ -"use strict";const e=require("../../common/vendor.js");require("../../common/libraries/request.js");const t=require("../../common/store/useWeAppAuthStore.js");require("../../common/store/useWorkStore.js");const o=require("../../common/libraries/upload.js"),a=require("../../common/libraries/public.js");if(require("../../gen/Apis.js"),require("../../common/libraries/setTabBar.js"),require("../../common/libraries/apiLoading.js"),!Array){e.resolveComponent("uni-icons")()}Math;const s=e.defineComponent({__name:"chat",setup(s){e.dayjs.extend(e.relativeTime),e.dayjs.locale("zh-cn");const n=t.useWeAppAuthStore(),l=e.ref(""),r=e.ref([]),i=e.ref(!1),u=e.ref([{role:"ai",content:"您好!我是物业客服,有什么可以帮助您的吗?",quickQuestions:[]}]),c=e.ref(!1),m=e.ref("正在输入中...");let g=null,d=e.ref(!1);const p="https://kf-api-test.linyikj.com.cn",v=e.ref(1),f=e.ref(10),y=e.ref(!0),_=e.ref(!1),h=e.ref(""),k=e.ref(0),q=e.ref([]),S=e.ref(""),C=(t,o)=>{e.index.previewImage({current:t,urls:o})},w=t=>{t?e.index.setClipboardData({data:t,success:()=>{e.index.showToast({title:"复制成功",icon:"success"})},fail:()=>{e.index.showToast({title:"复制失败",icon:"none"})}}):e.index.showToast({title:"暂无内容可复制",icon:"none"})},A=t=>{if(!t)return"";try{const o=e.dayjs(t);return o.isValid()?o.fromNow():""}catch(o){return console.error("时间格式化错误:",o),""}},x=()=>{e.nextTick$1((()=>{e.index.pageScrollTo({scrollTop:999999,duration:300})}))},T=async(t=1)=>{var o,a;const s=null==(a=null==(o=n.data)?void 0:o.user)?void 0:a.phone;if(s){if(!_.value)try{_.value=!0;const o=(t-1)*f.value;k.value=o,console.log("分页信息 - 页码:",t,"每页数量:",f.value,"计算出的offset:",o);const a=await e.index.request({url:`${p}/api/public/customer/init`,method:"POST",data:{platform:"property",platform_user_id:s,limit:f.value,offset:o}});if(200===a.statusCode){const s=a.data;let n=[];s.conversation&&s.conversation.id?(h.value=s.conversation.id,console.log("获取到会话ID:",h.value)):s.conversation_id?(h.value=s.conversation_id,console.log("获取到会话ID:",h.value)):s.conversations&&s.conversations.id&&(h.value=s.conversations.id,console.log("获取到会话ID:",h.value)),s.messages&&Array.isArray(s.messages)?(n=s.messages.map((e=>{const t={role:"customer"===e.sender_type?"user":"ai",content:e.message||e.content||"",created_at:e.created_at||e.timestamp||(new Date).toISOString()};e.message_type&&(t.message_type=e.message_type);let o=null;return e.image_url&&Array.isArray(e.image_url)?o=e.image_url:e.images&&Array.isArray(e.images)?o=e.images:e.metadata&&e.metadata.image_url&&Array.isArray(e.metadata.image_url)&&(o=e.metadata.image_url),o&&(t.image_url=o,t.images=o),e.metadata&&(t.metadata=e.metadata),t})),console.log("从messages字段获取到历史记录:",n.length)):s.data&&Array.isArray(s.data)?(n=s.data.map((e=>{const t={role:"customer"===e.sender_type?"user":"ai",content:e.message||e.content||"",created_at:e.created_at||e.timestamp||(new Date).toISOString()};e.message_type&&(t.message_type=e.message_type);let o=null;return e.image_url&&Array.isArray(e.image_url)?o=e.image_url:e.images&&Array.isArray(e.images)?o=e.images:e.metadata&&e.metadata.image_url&&Array.isArray(e.metadata.image_url)&&(o=e.metadata.image_url),o&&(t.image_url=o,t.images=o),e.metadata&&(t.metadata=e.metadata),t})),console.log("从data字段获取到历史记录:",n.length)):s.list&&Array.isArray(s.list)&&(n=s.list.map((e=>{const t={role:"customer"===e.sender_type?"user":"ai",content:e.message||e.content||"",created_at:e.created_at||e.timestamp||(new Date).toISOString()};e.message_type&&(t.message_type=e.message_type);let o=null;return e.image_url&&Array.isArray(e.image_url)?o=e.image_url:e.images&&Array.isArray(e.images)?o=e.images:e.metadata&&e.metadata.image_url&&Array.isArray(e.metadata.image_url)&&(o=e.metadata.image_url),o&&(t.image_url=o,t.images=o),e.metadata&&(t.metadata=e.metadata),t})),console.log("从list字段获取到历史记录:",n.length)),1===t?(n.length>0?(u.value=n,console.log("第一页历史记录已加载,总共",n.length,"条消息")):(console.log("没有历史记录"),u.value=[]),e.nextTick$1((()=>{if(q.value.length>0){const e={role:"ai",content:"您好!我是物业客服,有什么可以帮助您的吗?",quickQuestions:q.value,created_at:(new Date).toISOString()};u.value.push(e),console.log("[Customer] 获取历史记录成功后,在历史记录后面push新开场白消息"),x()}}))):n.length>0&&setTimeout((()=>{u.value.unshift(...n),console.log("加载更多历史记录,新增",n.length,"条消息,总共",u.value.length,"条")}),300);const l=s.total||s.count||s.total_count||0;y.value=l>u.value.length,v.value=t,t>1&&!y.value&&(console.log("分页加载完成,当前页:",t,"hasMore:",y.value,"展示开场白"),setTimeout((()=>{D(!0)}),500)),console.log("第",t,"页数据加载完成,offset:",o,", limit:",f.value,", 总数据:",l,", 当前已加载:",u.value.length,", 是否有更多:",y.value),1===t&&(setTimeout((()=>{x()}),100),console.log("[Customer] 历史记录加载完成,开始建立WebSocket连接"),b())}else console.error("获取历史记录失败,状态码:",a.statusCode)}catch(l){console.error("获取历史记录异常:",l)}finally{_.value=!1}}else console.log("用户未登录,无法获取历史记录")};e.onPullDownRefresh((async()=>{if(_.value||!y.value)return console.log("正在加载或没有更多数据"),void e.index.stopPullDownRefresh();console.log("触发下拉分页,加载更多历史记录");const t=v.value+1;try{await T(t),await new Promise((e=>setTimeout(e,500)))}catch(o){console.error("加载历史记录失败:",o)}finally{e.index.stopPullDownRefresh()}}));const b=()=>{if(!g)try{const t="wss://kf-api-test.linyikj.com.cn/ws/socket.io/?EIO=4&transport=websocket";console.log("正在建立Socket.IO连接"),console.log("连接URL:",t),g=e.index.connectSocket({url:t,header:{"content-type":"application/json"}}),e.index.onSocketOpen((t=>{console.log("[Customer] WebSocket connected",t),d.value=!0;e.index.sendSocketMessage({data:'40/customer,{"jwt":""}',success:()=>{console.log("[Customer] Socket.IO连接包发送成功"),h.value&&setTimeout((()=>{const t=`42/customer,["join_conversation",{"conversation_id":"${h.value}"}]`;console.log("[Customer] 加入会话房间:",t),e.index.sendSocketMessage({data:t,success:()=>{console.log("[Customer] 成功加入会话房间")},fail:e=>{console.error("[Customer] 加入会话房间失败:",e)}})}),200)},fail:e=>{console.error("[Customer] Socket.IO连接包发送失败:",e)}})})),e.index.onSocketError((e=>{console.error("[Customer] WebSocket error:",e),d.value=!1,g=null})),e.index.onSocketClose((e=>{console.log("[Customer] WebSocket disconnected",e),d.value=!1,g=null})),e.index.onSocketMessage((t=>{console.log("收到WebSocket原始消息:",t),console.log("消息数据类型:",typeof t.data),console.log("消息内容:",t.data);const o=t.data;if("string"==typeof o)if(o.startsWith("42/customer,")){const e=o.substring(12);try{const t=JSON.parse(e);console.log("解析Socket.IO事件:",t),O(t)}catch(a){console.error("解析Socket.IO数据失败:",a,"原始数据:",e)}}else if(o.startsWith("40/customer"))console.log("Socket.IO连接确认");else if(o.startsWith("2"))e.index.sendSocketMessage({data:"3"});else if(o.startsWith("0"))console.log("Socket.IO握手成功");else try{const e=JSON.parse(o);console.log("解析JSON消息:",e),j(e)}catch(a){console.log("非JSON格式的字符串消息:",o)}else"object"==typeof o?(console.log("收到对象类型消息:",o),I(o)):console.log("收到其他类型消息,类型:",typeof o)}))}catch(t){console.error("初始化Socket.IO异常:",t),d.value=!1,g=null}},O=e=>{if(Array.isArray(e)&&e.length>=2){const t=e[0],o=e[1];console.log("[Customer] Socket.IO事件类型:",t,"事件数据:",o),"new_message"===t?W(o):"join_conversation_response"===t?console.log("[Customer] Joined room:",o):"message"===t?W(o):"typing"===t?Q(o):console.log("[Customer] 未处理的Socket.IO事件类型:",t)}},j=e=>{console.log("[Customer] 处理JSON消息:",e),"message"===e.type||"new_message"===e.event?W(e.data||e):"typing"===e.type||"typing"===e.event?Q(e.data||e):e.message||e.content?W(e):console.log("[Customer] 未识别的JSON消息结构:",e)},I=e=>{console.log("[Customer] 处理对象消息:",e),e.message||e.content||e.text?W(e):void 0!==e.is_typing?Q(e):console.log("[Customer] 未识别的对象消息结构:",e)},Q=e=>{console.log("[Customer] 处理typing指示器:",e),e.is_typing&&"staff"===e.user_type?(c.value=!0,m.value="客服正在输入..."):c.value=!1},D=(e=!1)=>{if(0===q.value.length)return;if(!(q.value.length>0))return;const t={role:"ai",content:"您好!我是物业客服,有什么可以帮助您的吗?",quickQuestions:q.value,created_at:(new Date).toISOString()};console.log("[Customer] 创建开场白消息,是否最后一页:",e),0===u.value.length?(u.value=[t],console.log("[Customer] 设置开场白为第一条消息")):(u.value.unshift(t),console.log("[Customer] 在第一条消息前面插入开场白"))},W=e=>{if(console.log("[Customer] 处理消息数据:",e),"customer"===e.sender_type||"user"===e.role)return void console.log("[Customer] 过滤掉客户消息");let t="";if(t="string"==typeof e?e:e.message||e.content||e.text||e.body||"收到回复","string"==typeof t&&(t=t.replace(/↵/g,"\n").replace(/\\n/g,"\n")),console.log("[Customer] 收到新消息内容:",t),t===S.value)return console.log("[Customer] 消息与HTTP返回的消息相同,跳过显示"),void(S.value="");c.value=!1;const o={role:"ai",content:t,created_at:e.created_at||e.timestamp||e.time||(new Date).toISOString()};e.suggested_questions&&Array.isArray(e.suggested_questions)&&e.suggested_questions.length>0?o.quickQuestions=e.suggested_questions:e.quickQuestions&&Array.isArray(e.quickQuestions)&&e.quickQuestions.length>0&&(o.quickQuestions=e.quickQuestions),void 0!==e.need_confirmation&&(o.needConfirmation=e.need_confirmation),void 0!==e.confirmation_type&&(o.confirmationType=e.confirmation_type),u.value.push(o),x()},P=e=>{l.value=e.message,J()},z=(e,t)=>{void 0===e.selectedConfirmation&&(e.selectedConfirmation=t,setTimeout((()=>{l.value=t,J()}),300))},F=async()=>{if(r.value.length>=9)e.index.showToast({title:"最多选择9张图片",icon:"none"});else try{const t=9-r.value.length,a=await o.upload(t,2,["image"]);if(a&&Array.isArray(a)&&a.length>0){const t=a.map((e=>e.url));r.value.push(...t),e.index.showToast({title:"图片上传成功",icon:"success"})}}catch(t){console.error("选择图片失败:",t),e.index.showToast({title:"选择图片失败",icon:"none"})}},J=async()=>{var t,o,a,s,i,g;const v=l.value.trim(),f=r.value.length>0;if(!v&&!f||c.value)return;const y=null==(o=null==(t=n.data)?void 0:t.user)?void 0:o.phone,_=null==(s=null==(a=n.data)?void 0:a.selected_house)?void 0:s.asset_projects_id,k=null==(g=null==(i=n.data)?void 0:i.selected_house)?void 0:g.full_name;if(!y||!_)return void e.index.showToast({title:"请先登录并绑定房屋",icon:"none"});d.value||(b(),await new Promise((e=>setTimeout(e,1e3))));const q=r.value;let C="text";f&&v?C="mixed":f&&!v&&(C="image");const w={role:"user",content:v||"",created_at:(new Date).toISOString(),message_type:C,image_url:q.length>0?q:void 0,images:q.length>0?q:void 0};u.value.push(w),l.value="",r.value=[],x(),v&&v.includes("查询")?m.value="正在查询中请稍后...":m.value="正在输入中...",c.value=!0;try{const t=await e.index.request({url:`${p}/api/public/chat`,method:"POST",data:{platform:"property",message:v||"",tenant_project_id:_,tenant_project_name:k||"",platform_user_id:y,conversation_id:h.value,message_type:C,image_url:q.length>0?q:void 0},header:{"Content-Type":"application/json"}});if(200!==t.statusCode)throw new Error("请求失败");{const e=t.data;console.log("[Customer] HTTP接口响应数据:",e);let o=null,a=[],s=!1,n=null;if(e.reply&&"string"==typeof e.reply?(o=e.reply,a=e.suggested_questions||[],s=e.need_confirmation||!1,n=e.confirmation_type||null):e.reply&&e.reply.message?(o=e.reply.message,a=e.reply.suggested_questions||e.suggested_questions||[],s=e.reply.need_confirmation||e.need_confirmation||!1,n=e.reply.confirmation_type||e.confirmation_type||null):e.reply&&e.reply.content?(o=e.reply.content,a=e.reply.suggested_questions||e.suggested_questions||[],s=e.reply.need_confirmation||e.need_confirmation||!1,n=e.reply.confirmation_type||e.confirmation_type||null):e.message?(o=e.message,a=e.suggested_questions||[],s=e.need_confirmation||!1,n=e.confirmation_type||null):e.content?(o=e.content,a=e.suggested_questions||[],s=e.need_confirmation||!1,n=e.confirmation_type||null):e.answer?(o=e.answer,a=e.suggested_questions||[],s=e.need_confirmation||!1,n=e.confirmation_type||null):e.response?(o=e.response,a=e.suggested_questions||[],s=e.need_confirmation||!1,n=e.confirmation_type||null):"string"==typeof e&&(o=e),o){console.log("[Customer] HTTP接口返回回答消息:",o),console.log("[Customer] 建议问题:",a),console.log("[Customer] 需要确认:",s,"确认类型:",n);let e=o;"string"==typeof e&&(e=e.replace(/↵/g,"\n").replace(/\\n/g,"\n")),S.value=e,c.value=!1,u.value.push({role:"ai",content:e,created_at:(new Date).toISOString(),quickQuestions:a.length>0?a:void 0,needConfirmation:s,confirmationType:n}),x()}else console.log("[Customer] 消息发送成功,等待WebSocket回复")}}catch(A){console.error("发送消息失败:",A),e.index.showToast({title:"发送失败,请稍后重试",icon:"none"}),u.value.push({role:"ai",content:"抱歉,网络连接出现问题,请稍后再试。"}),c.value=!1,x()}};return e.onUnmounted((()=>{(g||d.value)&&(e.index.closeSocket(),g=null,d.value=!1,console.log("页面卸载,WebSocket连接已关闭"))})),e.onLoad((async t=>{q.value=await(async()=>{try{const t=await e.index.request({url:`${p}/api/public/quick-questions`,method:"GET"});if(200===t.statusCode){const e=t.data;let o=[];return e.data&&Array.isArray(e.data)?o=e.data.map((e=>e.question||e.title||e.text||e)):e.questions&&Array.isArray(e.questions)?o=e.questions.map((e=>e.question||e.title||e.text||e)):Array.isArray(e)&&(o=e.map((e=>e.question||e.title||e.text||e))),console.log("获取到开场白按钮数据:",o),o}return console.error("获取开场白数据失败,状态码:",t.statusCode),[]}catch(t){return console.error("获取开场白数据异常:",t),[]}})(),console.log("页面加载时已获取开场白按钮数据:",q.value.length),T(1),(null==t?void 0:t.message)&&P(t)})),(t,o)=>e.e({a:e.f(u.value,((t,o,a)=>{return e.e({a:"ai"===t.role},(t.role,{}),{b:t.image_url&&t.image_url.length>0},t.image_url&&t.image_url.length>0?{c:e.f(t.image_url,((o,a,s)=>({a:o,b:e.o((e=>C(o,t.image_url)),a),c:a}))),d:1===t.image_url.length?"widthFix":"aspectFill",e:1===t.image_url.length?1:""}:t.images&&t.images.length>0?{g:e.f(t.images,((o,a,s)=>({a:o,b:e.o((e=>C(o,t.images)),a),c:a}))),h:1===t.images.length?"widthFix":"aspectFill",i:1===t.images.length?1:""}:t.metadata&&t.metadata.image_url&&t.metadata.image_url.length>0?{k:e.f(t.metadata.image_url,((o,a,s)=>({a:o,b:e.o((e=>C(o,t.metadata.image_url)),a),c:a}))),l:1===t.metadata.image_url.length?"widthFix":"aspectFill",m:1===t.metadata.image_url.length?1:""}:{},{f:t.images&&t.images.length>0,j:t.metadata&&t.metadata.image_url&&t.metadata.image_url.length>0,n:t.content&&t.content.trim()},t.content&&t.content.trim()?{o:e.f((s=t.content,s&&"string"==typeof s?s.split("\n").filter((e=>""!==e.trim())):[""]),((t,o,a)=>({a:e.t(t),b:"text-"+o})))}:{},{p:t.quickQuestions&&t.quickQuestions.length>0},t.quickQuestions&&t.quickQuestions.length>0?{q:e.f(t.quickQuestions,((t,o,a)=>({a:e.t(t),b:o,c:e.o((e=>(e=>{l.value=e,J()})(t)),o)})))}:{},{r:t.needConfirmation},t.needConfirmation?{s:"是"===t.selectedConfirmation?1:"",t:void 0!==t.selectedConfirmation?1:"",v:e.o((e=>z(t,"是")),o),w:"否"===t.selectedConfirmation?1:"",x:void 0!==t.selectedConfirmation?1:"",y:e.o((e=>z(t,"否")),o)}:{},{z:t.created_at&&!t.quickQuestions},t.created_at&&!t.quickQuestions?e.e({A:"ai"===t.role},"ai"===t.role?{B:e.o((e=>w(t.content)),o)}:{},{C:e.t(A(t.created_at)),D:"user"===t.role},"user"===t.role?{E:e.o((e=>w(t.content)),o)}:{}):{},{F:o,G:`msg-${o}`,H:e.n("user"===t.role?"user-message":"ai-message")});var s})),b:c.value},c.value?{c:e.t(m.value)}:{},{d:r.value.length>0},r.value.length>0?e.e({e:e.f(r.value,((t,o,a)=>({a:t,b:"f3306fff-0-"+a,c:e.o((e=>(e=>{r.value.splice(e,1)})(o)),o),d:o}))),f:e.p({type:"closeempty",size:"14",color:"#fff"}),g:r.value.length<9},r.value.length<9?{h:e.p({type:"plus",size:"30",color:"#999"}),i:e.o(F)}:{}):{},{j:e.f(e.unref(a.quickActions),((t,o,a)=>({a:e.t(t.label),b:o,c:e.o((e=>P(t)),o)}))),k:e.o((e=>i.value=!0)),l:e.o((e=>i.value=!1)),m:e.o(J),n:l.value,o:e.o((e=>l.value=e.detail.value)),p:!l.value.trim()&&!i.value&&0===r.value.length},l.value.trim()||i.value||0!==r.value.length?{}:{q:e.p({type:"camera",size:"24",color:"#666"}),r:e.o(F)},{s:(l.value.trim()||i.value||r.value.length>0)&&!c.value},(l.value.trim()||i.value||r.value.length>0)&&!c.value?{t:e.p({type:"paperplane-filled",size:"20",color:"#fff"}),v:e.o(J)}:{},{w:c.value},c.value?{x:e.p({type:"spinner-cycle",size:"20",color:"#ccc"})}:{})}}),n=e._export_sfc(s,[["__scopeId","data-v-f3306fff"]]);wx.createPage(n); +"use strict";const e=require("../../common/vendor.js");require("../../common/libraries/request.js");const t=require("../../common/store/useWeAppAuthStore.js");require("../../common/store/useWorkStore.js");const o=require("../../common/libraries/upload.js");if(require("../../gen/Apis.js"),require("../../common/libraries/setTabBar.js"),require("../../common/libraries/apiLoading.js"),!Array){e.resolveComponent("uni-icons")()}Math;const a=e.defineComponent({__name:"chat",setup(a){e.dayjs.extend(e.relativeTime),e.dayjs.locale("zh-cn");const s=t.useWeAppAuthStore(),n=e.ref(""),l=e.ref([]),r=e.ref(!1),i=e.ref([{role:"ai",content:"您好!我是物业客服,有什么可以帮助您的吗?",quickQuestions:[]}]),u=e.ref(!1),c=e.ref("正在输入中...");let m=null,g=e.ref(!1);const d="https://kf-api-test.linyikj.com.cn",p=e.ref(1),v=e.ref(10),y=e.ref(!0),_=e.ref(!1),f=e.ref(""),h=e.ref(0),k=e.ref([]),S=e.ref(""),q=e.ref(!0),C=e.ref(0);e.onPageScroll((e=>{console.log(e.scrollTop,C.value),C.value>0&&C.value>e.scrollTop&&(q.value=!1),C.value-e.scrollTop<50&&(q.value=!0),(0===C.value||C.value{e.index.previewImage({current:t,urls:o})},A=t=>{t?e.index.setClipboardData({data:t,success:()=>{e.index.showToast({title:"复制成功",icon:"success"})},fail:()=>{e.index.showToast({title:"复制失败",icon:"none"})}}):e.index.showToast({title:"暂无内容可复制",icon:"none"})},x=t=>{if(!t)return"";try{const o=e.dayjs(t);return o.isValid()?o.fromNow():""}catch(o){return console.error("时间格式化错误:",o),""}},T=()=>{e.nextTick$1((()=>{e.index.pageScrollTo({scrollTop:999999,duration:300})}))},b=async(t=1)=>{var o,a;const n=null==(a=null==(o=s.data)?void 0:o.user)?void 0:a.phone;if(n){if(!_.value)try{_.value=!0;const o=(t-1)*v.value;h.value=o,console.log("分页信息 - 页码:",t,"每页数量:",v.value,"计算出的offset:",o);const a=await e.index.request({url:`${d}/api/public/customer/init`,method:"POST",data:{platform:"property",platform_user_id:n,limit:v.value,offset:o}});if(200===a.statusCode){const s=a.data;let n=[];s.conversation&&s.conversation.id?(f.value=s.conversation.id,console.log("获取到会话ID:",f.value)):s.conversation_id?(f.value=s.conversation_id,console.log("获取到会话ID:",f.value)):s.conversations&&s.conversations.id&&(f.value=s.conversations.id,console.log("获取到会话ID:",f.value)),s.messages&&Array.isArray(s.messages)?(n=s.messages.map((e=>{const t={role:"customer"===e.sender_type?"user":"ai",content:e.message||e.content||"",created_at:e.created_at||e.timestamp||(new Date).toISOString()};e.message_type&&(t.message_type=e.message_type);let o=null;return e.image_url&&Array.isArray(e.image_url)?o=e.image_url:e.images&&Array.isArray(e.images)?o=e.images:e.metadata&&e.metadata.image_url&&Array.isArray(e.metadata.image_url)&&(o=e.metadata.image_url),o&&(t.image_url=o,t.images=o),e.metadata&&(t.metadata=e.metadata),t})),console.log("从messages字段获取到历史记录:",n.length)):s.data&&Array.isArray(s.data)?(n=s.data.map((e=>{const t={role:"customer"===e.sender_type?"user":"ai",content:e.message||e.content||"",created_at:e.created_at||e.timestamp||(new Date).toISOString()};e.message_type&&(t.message_type=e.message_type);let o=null;return e.image_url&&Array.isArray(e.image_url)?o=e.image_url:e.images&&Array.isArray(e.images)?o=e.images:e.metadata&&e.metadata.image_url&&Array.isArray(e.metadata.image_url)&&(o=e.metadata.image_url),o&&(t.image_url=o,t.images=o),e.metadata&&(t.metadata=e.metadata),t})),console.log("从data字段获取到历史记录:",n.length)):s.list&&Array.isArray(s.list)&&(n=s.list.map((e=>{const t={role:"customer"===e.sender_type?"user":"ai",content:e.message||e.content||"",created_at:e.created_at||e.timestamp||(new Date).toISOString()};e.message_type&&(t.message_type=e.message_type);let o=null;return e.image_url&&Array.isArray(e.image_url)?o=e.image_url:e.images&&Array.isArray(e.images)?o=e.images:e.metadata&&e.metadata.image_url&&Array.isArray(e.metadata.image_url)&&(o=e.metadata.image_url),o&&(t.image_url=o,t.images=o),e.metadata&&(t.metadata=e.metadata),t})),console.log("从list字段获取到历史记录:",n.length)),1===t?(n.length>0?(i.value=n,console.log("第一页历史记录已加载,总共",n.length,"条消息")):(console.log("没有历史记录"),i.value=[]),e.nextTick$1((()=>{if(k.value.length>0){const e={role:"ai",content:"您好!我是物业客服,有什么可以帮助您的吗?",quickQuestions:k.value,created_at:(new Date).toISOString()};i.value.push(e),console.log("[Customer] 获取历史记录成功后,在历史记录后面push新开场白消息"),T()}}))):n.length>0&&setTimeout((()=>{i.value.unshift(...n),console.log("加载更多历史记录,新增",n.length,"条消息,总共",i.value.length,"条")}),300);const l=s.total||s.count||s.total_count||0;y.value=l>i.value.length,p.value=t,t>1&&!y.value&&(console.log("分页加载完成,当前页:",t,"hasMore:",y.value,"展示开场白"),setTimeout((()=>{W(!0)}),500)),console.log("第",t,"页数据加载完成,offset:",o,", limit:",v.value,", 总数据:",l,", 当前已加载:",i.value.length,", 是否有更多:",y.value),1===t&&(setTimeout((()=>{T()}),100),console.log("[Customer] 历史记录加载完成,开始建立WebSocket连接"),O())}else console.error("获取历史记录失败,状态码:",a.statusCode)}catch(l){console.error("获取历史记录异常:",l)}finally{_.value=!1}}else console.log("用户未登录,无法获取历史记录")};e.onPullDownRefresh((async()=>{if(_.value||!y.value)return console.log("正在加载或没有更多数据"),void e.index.stopPullDownRefresh();console.log("触发下拉分页,加载更多历史记录");const t=p.value+1;try{await b(t),await new Promise((e=>setTimeout(e,500)))}catch(o){console.error("加载历史记录失败:",o)}finally{e.index.stopPullDownRefresh()}}));const O=()=>{if(!m)try{const t="wss://kf-api-test.linyikj.com.cn/ws/socket.io/?EIO=4&transport=websocket";console.log("正在建立Socket.IO连接"),console.log("连接URL:",t),m=e.index.connectSocket({url:t,header:{"content-type":"application/json"}}),e.index.onSocketOpen((t=>{console.log("[Customer] WebSocket connected",t),g.value=!0;e.index.sendSocketMessage({data:'40/customer,{"jwt":""}',success:()=>{console.log("[Customer] Socket.IO连接包发送成功"),f.value&&setTimeout((()=>{const t=`42/customer,["join_conversation",{"conversation_id":"${f.value}"}]`;console.log("[Customer] 加入会话房间:",t),e.index.sendSocketMessage({data:t,success:()=>{console.log("[Customer] 成功加入会话房间")},fail:e=>{console.error("[Customer] 加入会话房间失败:",e)}})}),200)},fail:e=>{console.error("[Customer] Socket.IO连接包发送失败:",e)}})})),e.index.onSocketError((e=>{console.error("[Customer] WebSocket error:",e),g.value=!1,m=null})),e.index.onSocketClose((e=>{console.log("[Customer] WebSocket disconnected",e),g.value=!1,m=null})),e.index.onSocketMessage((t=>{console.log("收到WebSocket原始消息:",t),console.log("消息数据类型:",typeof t.data),console.log("消息内容:",t.data);const o=t.data;if("string"==typeof o)if(o.startsWith("42/customer,")){const e=o.substring(12);try{const t=JSON.parse(e);console.log("解析Socket.IO事件:",t),j(t)}catch(a){console.error("解析Socket.IO数据失败:",a,"原始数据:",e)}}else if(o.startsWith("40/customer"))console.log("Socket.IO连接确认");else if(o.startsWith("2"))e.index.sendSocketMessage({data:"3"});else if(o.startsWith("0"))console.log("Socket.IO握手成功");else try{const e=JSON.parse(o);console.log("解析JSON消息:",e),I(e)}catch(a){console.log("非JSON格式的字符串消息:",o)}else"object"==typeof o?(console.log("收到对象类型消息:",o),Q(o)):console.log("收到其他类型消息,类型:",typeof o)}))}catch(t){console.error("初始化Socket.IO异常:",t),g.value=!1,m=null}},j=e=>{if(Array.isArray(e)&&e.length>=2){const t=e[0],o=e[1];console.log("[Customer] Socket.IO事件类型:",t,"事件数据:",o),"new_message"===t?P(o):"join_conversation_response"===t?console.log("[Customer] Joined room:",o):"message"===t?P(o):"typing"===t?D(o):console.log("[Customer] 未处理的Socket.IO事件类型:",t)}},I=e=>{console.log("[Customer] 处理JSON消息:",e),"message"===e.type||"new_message"===e.event?P(e.data||e):"typing"===e.type||"typing"===e.event?D(e.data||e):e.message||e.content?P(e):console.log("[Customer] 未识别的JSON消息结构:",e)},Q=e=>{console.log("[Customer] 处理对象消息:",e),e.message||e.content||e.text?P(e):void 0!==e.is_typing?D(e):console.log("[Customer] 未识别的对象消息结构:",e)},D=e=>{console.log("[Customer] 处理typing指示器:",e),e.is_typing&&"staff"===e.user_type?(u.value=!0,c.value="客服正在输入..."):u.value=!1},W=(e=!1)=>{if(0===k.value.length)return;if(!(k.value.length>0))return;const t={role:"ai",content:"您好!我是物业客服,有什么可以帮助您的吗?",quickQuestions:k.value,created_at:(new Date).toISOString()};console.log("[Customer] 创建开场白消息,是否最后一页:",e),0===i.value.length?(i.value=[t],console.log("[Customer] 设置开场白为第一条消息")):(i.value.unshift(t),console.log("[Customer] 在第一条消息前面插入开场白"))},P=e=>{if(console.log("[Customer] 处理消息数据:",e),"customer"===e.sender_type||"user"===e.role)return void console.log("[Customer] 过滤掉客户消息");let t="";if(t="string"==typeof e?e:e.message||e.content||e.text||e.body||"收到回复","string"==typeof t&&(t=t.replace(/↵/g,"\n").replace(/\\n/g,"\n")),console.log("[Customer] 收到新消息内容:",t),t===S.value)return console.log("[Customer] 消息与HTTP返回的消息相同,跳过显示"),void(S.value="");u.value=!1;const o={role:"ai",content:t,created_at:e.created_at||e.timestamp||e.time||(new Date).toISOString()};e.suggested_questions&&Array.isArray(e.suggested_questions)&&e.suggested_questions.length>0?o.quickQuestions=e.suggested_questions:e.quickQuestions&&Array.isArray(e.quickQuestions)&&e.quickQuestions.length>0&&(o.quickQuestions=e.quickQuestions),void 0!==e.need_confirmation&&(o.needConfirmation=e.need_confirmation),void 0!==e.confirmation_type&&(o.confirmationType=e.confirmation_type),i.value.push(o),T()},z=(e,t)=>{void 0===e.selectedConfirmation&&(e.selectedConfirmation=t,setTimeout((()=>{n.value=t,J()}),300))},F=async()=>{if(l.value.length>=9)e.index.showToast({title:"最多选择9张图片",icon:"none"});else try{const t=9-l.value.length,a=await o.upload(t,2,["image"]);if(a&&Array.isArray(a)&&a.length>0){const t=a.map((e=>e.url));l.value.push(...t),e.index.showToast({title:"图片上传成功",icon:"success"})}}catch(t){console.error("选择图片失败:",t),e.index.showToast({title:"选择图片失败",icon:"none"})}},J=async()=>{var t,o,a,r,m,p;const v=n.value.trim(),y=l.value.length>0;if(!v&&!y||u.value)return;const _=null==(o=null==(t=s.data)?void 0:t.user)?void 0:o.phone,h=null==(r=null==(a=s.data)?void 0:a.selected_house)?void 0:r.asset_projects_id,k=null==(p=null==(m=s.data)?void 0:m.selected_house)?void 0:p.full_name;if(!_||!h)return void e.index.showToast({title:"请先登录并绑定房屋",icon:"none"});g.value||(O(),await new Promise((e=>setTimeout(e,1e3))));const q=l.value;let C="text";y&&v?C="mixed":y&&!v&&(C="image");const w={role:"user",content:v||"",created_at:(new Date).toISOString(),message_type:C,image_url:q.length>0?q:void 0,images:q.length>0?q:void 0};i.value.push(w),n.value="",l.value=[],T(),v&&v.includes("查询")?c.value="正在查询中请稍后...":c.value="正在输入中...",u.value=!0;try{const t=await e.index.request({url:`${d}/api/public/chat`,method:"POST",data:{platform:"property",message:v||"",tenant_project_id:h,tenant_project_name:k||"",platform_user_id:_,conversation_id:f.value,message_type:C,image_url:q.length>0?q:void 0},header:{"Content-Type":"application/json"}});if(200!==t.statusCode)throw new Error("请求失败");{const e=t.data;console.log("[Customer] HTTP接口响应数据:",e);let o=null,a=[],s=!1,n=null;if(e.reply&&"string"==typeof e.reply?(o=e.reply,a=e.suggested_questions||[],s=e.need_confirmation||!1,n=e.confirmation_type||null):e.reply&&e.reply.message?(o=e.reply.message,a=e.reply.suggested_questions||e.suggested_questions||[],s=e.reply.need_confirmation||e.need_confirmation||!1,n=e.reply.confirmation_type||e.confirmation_type||null):e.reply&&e.reply.content?(o=e.reply.content,a=e.reply.suggested_questions||e.suggested_questions||[],s=e.reply.need_confirmation||e.need_confirmation||!1,n=e.reply.confirmation_type||e.confirmation_type||null):e.message?(o=e.message,a=e.suggested_questions||[],s=e.need_confirmation||!1,n=e.confirmation_type||null):e.content?(o=e.content,a=e.suggested_questions||[],s=e.need_confirmation||!1,n=e.confirmation_type||null):e.answer?(o=e.answer,a=e.suggested_questions||[],s=e.need_confirmation||!1,n=e.confirmation_type||null):e.response?(o=e.response,a=e.suggested_questions||[],s=e.need_confirmation||!1,n=e.confirmation_type||null):"string"==typeof e&&(o=e),o){console.log("[Customer] HTTP接口返回回答消息:",o),console.log("[Customer] 建议问题:",a),console.log("[Customer] 需要确认:",s,"确认类型:",n);let e=o;"string"==typeof e&&(e=e.replace(/↵/g,"\n").replace(/\\n/g,"\n")),S.value=e,u.value=!1,i.value.push({role:"ai",content:e,created_at:(new Date).toISOString(),quickQuestions:a.length>0?a:void 0,needConfirmation:s,confirmationType:n}),T()}else console.log("[Customer] 消息发送成功,等待WebSocket回复")}}catch(A){console.error("发送消息失败:",A),e.index.showToast({title:"发送失败,请稍后重试",icon:"none"}),i.value.push({role:"ai",content:"抱歉,网络连接出现问题,请稍后再试。"}),u.value=!1,T()}};return e.onUnmounted((()=>{(m||g.value)&&(e.index.closeSocket(),m=null,g.value=!1,console.log("页面卸载,WebSocket连接已关闭"))})),e.onLoad((async t=>{var o;k.value=await(async()=>{try{const t=await e.index.request({url:`${d}/api/public/quick-questions`,method:"GET"});if(200===t.statusCode){const e=t.data;let o=[];return e.data&&Array.isArray(e.data)?o=e.data.map((e=>e.question||e.title||e.text||e)):e.questions&&Array.isArray(e.questions)?o=e.questions.map((e=>e.question||e.title||e.text||e)):Array.isArray(e)&&(o=e.map((e=>e.question||e.title||e.text||e))),console.log("获取到开场白按钮数据:",o),o}return console.error("获取开场白数据失败,状态码:",t.statusCode),[]}catch(t){return console.error("获取开场白数据异常:",t),[]}})(),console.log("页面加载时已获取开场白按钮数据:",k.value.length),b(1),(null==t?void 0:t.message)&&(o=t,n.value=o.message,J())})),(t,o)=>e.e({a:e.f(i.value,((t,o,a)=>{return e.e({a:"ai"===t.role},(t.role,{}),{b:t.image_url&&t.image_url.length>0},t.image_url&&t.image_url.length>0?{c:e.f(t.image_url,((o,a,s)=>({a:o,b:e.o((e=>w(o,t.image_url)),a),c:a}))),d:1===t.image_url.length?"widthFix":"aspectFill",e:1===t.image_url.length?1:""}:t.images&&t.images.length>0?{g:e.f(t.images,((o,a,s)=>({a:o,b:e.o((e=>w(o,t.images)),a),c:a}))),h:1===t.images.length?"widthFix":"aspectFill",i:1===t.images.length?1:""}:t.metadata&&t.metadata.image_url&&t.metadata.image_url.length>0?{k:e.f(t.metadata.image_url,((o,a,s)=>({a:o,b:e.o((e=>w(o,t.metadata.image_url)),a),c:a}))),l:1===t.metadata.image_url.length?"widthFix":"aspectFill",m:1===t.metadata.image_url.length?1:""}:{},{f:t.images&&t.images.length>0,j:t.metadata&&t.metadata.image_url&&t.metadata.image_url.length>0,n:t.content&&t.content.trim()},t.content&&t.content.trim()?{o:e.f((s=t.content,s&&"string"==typeof s?s.split("\n").filter((e=>""!==e.trim())):[""]),((t,o,a)=>({a:e.t(t),b:"text-"+o})))}:{},{p:t.quickQuestions&&t.quickQuestions.length>0},t.quickQuestions&&t.quickQuestions.length>0?{q:e.f(t.quickQuestions,((t,o,a)=>({a:e.t(t),b:o,c:e.o((e=>(e=>{n.value=e,J()})(t)),o)})))}:{},{r:t.needConfirmation},t.needConfirmation?{s:"是"===t.selectedConfirmation?1:"",t:void 0!==t.selectedConfirmation?1:"",v:e.o((e=>z(t,"是")),o),w:"否"===t.selectedConfirmation?1:"",x:void 0!==t.selectedConfirmation?1:"",y:e.o((e=>z(t,"否")),o)}:{},{z:t.created_at&&!t.quickQuestions},t.created_at&&!t.quickQuestions?e.e({A:"ai"===t.role},"ai"===t.role?{B:e.o((e=>A(t.content)),o)}:{},{C:e.t(x(t.created_at)),D:"user"===t.role},"user"===t.role?{E:e.o((e=>A(t.content)),o)}:{}):{},{F:o,G:`msg-${o}`,H:e.n("user"===t.role?"user-message":"ai-message")});var s})),b:u.value},u.value?{c:e.t(c.value)}:{},{d:l.value.length>0},l.value.length>0?e.e({e:e.f(l.value,((t,o,a)=>({a:t,b:"25c36616-0-"+a,c:e.o((e=>(e=>{l.value.splice(e,1)})(o)),o),d:o}))),f:e.p({type:"closeempty",size:"14",color:"#fff"}),g:l.value.length<9},l.value.length<9?{h:e.p({type:"plus",size:"30",color:"#999"}),i:e.o(F)}:{}):{},{j:e.o((e=>r.value=!0)),k:e.o((e=>r.value=!1)),l:e.o(J),m:n.value,n:e.o((e=>n.value=e.detail.value)),o:!n.value.trim()&&!r.value&&0===l.value.length},n.value.trim()||r.value||0!==l.value.length?{}:{p:e.p({type:"camera",size:"24",color:"#666"}),q:e.o(F)},{r:(n.value.trim()||r.value||l.value.length>0)&&!u.value},(n.value.trim()||r.value||l.value.length>0)&&!u.value?{s:e.p({type:"paperplane-filled",size:"20",color:"#fff"}),t:e.o(J)}:{},{v:u.value},u.value?{w:e.p({type:"spinner-cycle",size:"20",color:"#ccc"})}:{})}});a.__runtimeHooks=1,wx.createPage(a); diff --git a/dist/build/mp-weixin/pages/ai/chat.wxml b/dist/build/mp-weixin/pages/ai/chat.wxml index d70992b..232818b 100644 --- a/dist/build/mp-weixin/pages/ai/chat.wxml +++ b/dist/build/mp-weixin/pages/ai/chat.wxml @@ -1 +1 @@ -{{line.a}}{{question.a}}{{message.C}}{{c}}添加图片{{action.a}} \ No newline at end of file + 我是管家-邻邻,有什么可以帮助您的吗? 房屋绑定 物业缴费 工单报事 社区服务 访客邀请 房屋管理 {{line.a}}{{question.a}}{{message.C}}{{c}}添加图片 \ No newline at end of file diff --git a/dist/build/mp-weixin/pages/ai/chat.wxss b/dist/build/mp-weixin/pages/ai/chat.wxss index 4ed689c..9e08a0b 100644 --- a/dist/build/mp-weixin/pages/ai/chat.wxss +++ b/dist/build/mp-weixin/pages/ai/chat.wxss @@ -1 +1 @@ -.chat-container.data-v-f3306fff{display:flex;flex-direction:column;min-height:100vh;width:100vw}.chat-messages.data-v-f3306fff{width:100%;padding:30rpx 20rpx;padding-bottom:calc(220rpx + env(safe-area-inset-bottom));box-sizing:border-box;flex:1}.message-item.data-v-f3306fff{display:flex;width:100%;box-sizing:border-box;margin-bottom:30rpx;animation:fadeIn-f3306fff .3s ease-in}.ai-message.data-v-f3306fff,.ai-message .message-content-wrapper.data-v-f3306fff{align-items:flex-start}.ai-message .message-content.data-v-f3306fff{background-color:#f5f5f5;color:#333;margin-left:12rpx;margin-right:0;flex-shrink:0}.ai-message .message-time.data-v-f3306fff{color:#999;font-size:22rpx;min-width:80rpx}.ai-message .message-meta.data-v-f3306fff{display:flex;align-items:center;justify-content:flex-start;margin-top:6rpx;gap:8rpx;margin-left:12rpx;flex-direction:row}.ai-message .message-avatar.data-v-f3306fff{margin-right:0;flex-shrink:0}.user-message.data-v-f3306fff{justify-content:flex-end;align-items:flex-start}.user-message .message-content-wrapper.data-v-f3306fff{align-items:flex-end}.user-message .message-content.data-v-f3306fff{background-color:#1c64f2;color:#fff;margin-right:0;flex-shrink:0}.user-message .message-content .message-images.data-v-f3306fff{margin-bottom:20rpx}.user-message .message-content .message-images .message-image-item.data-v-f3306fff{border-radius:8rpx}.user-message .message-time.data-v-f3306fff{color:#999;font-size:22rpx;margin-top:6rpx;text-align:right;min-width:80rpx}.user-message .message-meta.data-v-f3306fff{display:flex;align-items:center;justify-content:flex-end;margin-top:6rpx;gap:8rpx;flex-direction:row}@keyframes fadeIn-f3306fff{0%{opacity:0;transform:translateY(10rpx)}to{opacity:1;transform:translateY(0)}}.message-avatar.data-v-f3306fff{width:80rpx;height:80rpx;border-radius:50%;overflow:hidden;flex-shrink:0}.message-avatar image.data-v-f3306fff{width:100%;height:100%}.message-avatar .user-avatar-image.data-v-f3306fff{width:100%;height:100%;border-radius:50%}.message-avatar .user-avatar.data-v-f3306fff{width:100%;height:100%;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:24rpx;font-weight:500}.message-content-wrapper.data-v-f3306fff{display:flex;flex-direction:column;max-width:calc(100vw - 100rpx)}.message-content.data-v-f3306fff{padding:20rpx 24rpx;border-radius:16rpx;font-size:28rpx;line-height:1.5;word-wrap:break-word;word-break:break-all;box-sizing:border-box;background-color:#1c64f2}.message-content.loading.data-v-f3306fff{opacity:.7}.message-content.data-v-f3306fff:has(.message-images){padding:12rpx}.user-message .message-content.data-v-f3306fff:has(.message-images){padding:8rpx}.message-content view.data-v-f3306fff{display:block;width:100%;word-wrap:break-word;word-break:break-all}.message-content view.data-v-f3306fff:not(:last-child){margin-bottom:8rpx}.message-content text.data-v-f3306fff{display:inline;word-wrap:break-word;word-break:break-all}.quick-questions.data-v-f3306fff{margin-top:16rpx;display:flex;flex-direction:column;gap:12rpx;padding-left:12rpx}.question-btn.data-v-f3306fff{background-color:#f0f7ff;border:1px solid #d0e3ff;border-radius:12rpx;padding:16rpx 20rpx;font-size:26rpx;color:#1c64f2;line-height:1.4;transition:all .2s ease}.question-btn.data-v-f3306fff:active{background-color:#e6f2ff;transform:scale(.98)}.question-btn text.data-v-f3306fff{display:block;word-wrap:break-word;word-break:break-all}.confirmation-buttons.data-v-f3306fff{margin-top:16rpx;display:flex;gap:16rpx;justify-content:flex-start;padding-left:12rpx}.confirmation-btn.data-v-f3306fff{width:38rpx;border-radius:10rpx;padding:16rpx 22rpx;font-size:24rpx;line-height:1.4;text-align:center;transition:all .2s ease;background-color:#fff;color:#000;border:1px solid #e5e5e5}.confirmation-btn.data-v-f3306fff:active:not(.disabled){transform:scale(.98)}.confirmation-btn.selected.data-v-f3306fff{background-color:#1c64f2;color:#fff;border-color:#1c64f2}.confirmation-btn.disabled.data-v-f3306fff{opacity:.6;cursor:not-allowed}.confirmation-btn text.data-v-f3306fff{display:block;font-weight:500}.chat-input-area.data-v-f3306fff{position:fixed;bottom:0;left:0;right:0;background-color:#f8f8f8;border-top:1px solid #eee;padding:20rpx;padding-bottom:calc(30rpx + env(safe-area-inset-bottom));z-index:100}.input-container.data-v-f3306fff{display:flex;align-items:center;background-color:#fff;border-radius:50rpx;padding:10rpx 20rpx}.message-input.data-v-f3306fff{flex:1;height:70rpx;font-size:28rpx;padding:0 20rpx;background-color:transparent}.send-button.data-v-f3306fff{width:70rpx;height:70rpx;background:linear-gradient(135deg,#1c64f2 0%,#0e4aa7 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-left:20rpx}.send-button.disabled.data-v-f3306fff{opacity:.5;pointer-events:none}.upload-button.data-v-f3306fff{width:70rpx;height:70rpx;background-color:#f5f5f5;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-left:20rpx}.image-preview-area.data-v-f3306fff{margin-bottom:20rpx}.quick-actions-bar.data-v-f3306fff{display:flex;flex-wrap:wrap;gap:16rpx;padding:0 0 16rpx}.quick-action-btn.data-v-f3306fff{height:60rpx;padding:0 24rpx;background-color:#fff;border:1px solid #e5e5e5;border-radius:100rpx;font-size:23rpx;color:#333;display:flex;align-items:center;justify-content:center;transition:all .2s ease;white-space:nowrap}.quick-action-btn.data-v-f3306fff:active{transform:scale(.98);background-color:#f8f8f8}.quick-action-btn text.data-v-f3306fff{display:block}.image-preview-list.data-v-f3306fff{display:flex;flex-wrap:wrap;gap:16rpx}.image-preview-item.data-v-f3306fff{position:relative;width:120rpx;height:120rpx;border-radius:12rpx;overflow:hidden}.image-preview-item.add-more-button.data-v-f3306fff{background-color:#f5f5f5;border:2rpx dashed #ddd;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.image-preview-item.add-more-button.data-v-f3306fff:active{background-color:#e8e8e8}.preview-image.data-v-f3306fff{width:100%;height:100%}.add-more-text.data-v-f3306fff{font-size:22rpx;color:#999;margin-top:8rpx}.remove-image.data-v-f3306fff{position:absolute;top:8rpx;right:8rpx;width:40rpx;height:40rpx;background-color:rgba(0,0,0,.6);border-radius:50%;display:flex;align-items:center;justify-content:center}.message-images.data-v-f3306fff{display:flex;flex-wrap:wrap;gap:12rpx;margin-bottom:12rpx;max-width:500rpx}.user-message .message-images.data-v-f3306fff{margin-bottom:0}.message-image-item.data-v-f3306fff{border-radius:12rpx;overflow:hidden}.message-image-item.single-image.data-v-f3306fff{max-width:500rpx;width:500rpx!important;height:auto!important}.user-message .message-image-item.single-image.data-v-f3306fff{max-width:450rpx;width:450rpx!important}.message-image-item.data-v-f3306fff:not(.single-image){width:200rpx;height:200rpx}.message-image.data-v-f3306fff{width:100%;height:100%;display:block}.message-text-line.data-v-f3306fff{margin-bottom:4rpx}.message-text-line.data-v-f3306fff:last-child{margin-bottom:0}.copy-button.data-v-f3306fff{width:32rpx;height:32rpx;display:flex;align-items:center;justify-content:center;border-radius:4rpx;transition:background-color .2s ease}.copy-button.data-v-f3306fff:active{background-color:rgba(0,0,0,.05)}.copy-button .copy-icon.data-v-f3306fff{width:26rpx;height:26rpx;opacity:.7} +.chat_container_linear_gradient{position:fixed;z-index:1;top:0;left:0;width:100%;height:100vh;background:linear-gradient(180deg,rgba(208,229,255,.44) 0%,rgba(255,255,255,0) 300rpx),linear-gradient(159deg,#d3d7ff 0%,rgba(255,255,255,0) 150rpx),linear-gradient(188deg,#dffff3 -8%,#f7f7f7 300rpx);background-repeat:no-repeat}.chat_messages_body{position:relative;z-index:100}.chat-container{display:flex;flex-direction:column;min-height:100vh;width:100vw}.chat-messages{width:100%;padding:314rpx 30rpx 0;padding-bottom:calc(260rpx + env(safe-area-inset-bottom));box-sizing:border-box;flex:1}.message-item{display:flex;width:100%;box-sizing:border-box;margin-bottom:30rpx;animation:fadeIn .3s ease-in}.ai-message,.ai-message .message-content-wrapper{align-items:flex-start}.ai-message .message-content{background-color:#fff;color:#333;margin-left:12rpx;margin-right:0;flex-shrink:0}.ai-message .message-time{color:#999;font-size:22rpx;min-width:80rpx}.ai-message .message-meta{display:flex;align-items:center;justify-content:flex-start;margin-top:6rpx;gap:8rpx;margin-left:12rpx;flex-direction:row}.ai-message .message-avatar{margin-right:0;flex-shrink:0}.user-message{justify-content:flex-end;align-items:flex-start}.user-message .message-content-wrapper{align-items:flex-end}.user-message .message-content{background-color:#1c64f2;color:#fff;margin-right:0;flex-shrink:0}.user-message .message-content .message-images{margin-bottom:20rpx}.user-message .message-content .message-images .message-image-item{border-radius:8rpx}.user-message .message-time{color:#999;font-size:22rpx;margin-top:6rpx;text-align:right;min-width:80rpx}.user-message .message-meta{display:flex;align-items:center;justify-content:flex-end;margin-top:6rpx;gap:8rpx;flex-direction:row}@keyframes fadeIn{0%{opacity:0;transform:translateY(10rpx)}to{opacity:1;transform:translateY(0)}}.message-avatar{width:80rpx;height:80rpx;border-radius:50%;overflow:hidden;flex-shrink:0}.message-avatar image{width:100%;height:100%}.message-avatar .user-avatar-image{width:100%;height:100%;border-radius:50%}.message-avatar .user-avatar{width:100%;height:100%;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:24rpx;font-weight:500}.message-content-wrapper{display:flex;flex-direction:column;max-width:calc(100vw - 100rpx)}.message-content{padding:20rpx 24rpx;border-radius:16rpx;font-size:28rpx;line-height:1.5;word-wrap:break-word;word-break:break-all;box-sizing:border-box;background-color:#1c64f2}.message-content.loading{opacity:.7}.message-content:has(.message-images){padding:12rpx}.user-message .message-content:has(.message-images){padding:8rpx}.message-content view{display:block;width:100%;word-wrap:break-word;word-break:break-all}.message-content view:not(:last-child){margin-bottom:8rpx}.message-content text{display:inline;word-wrap:break-word;word-break:break-all}.quick-questions{margin-top:16rpx;display:flex;flex-direction:column;gap:12rpx;padding-left:12rpx}.question-btn{background-color:#f0f7ff;border:1px solid #d0e3ff;border-radius:12rpx;padding:16rpx 20rpx;font-size:26rpx;color:#1c64f2;line-height:1.4;transition:all .2s ease}.question-btn:active{background-color:#e6f2ff;transform:scale(.98)}.question-btn text{display:block;word-wrap:break-word;word-break:break-all}.confirmation-buttons{margin-top:16rpx;display:flex;gap:16rpx;justify-content:flex-start;padding-left:12rpx}.confirmation-btn{width:38rpx;border-radius:10rpx;padding:16rpx 22rpx;font-size:24rpx;line-height:1.4;text-align:center;transition:all .2s ease;background-color:#fff;color:#000;border:1px solid #e5e5e5}.confirmation-btn:active:not(.disabled){transform:scale(.98)}.confirmation-btn.selected{background-color:#1c64f2;color:#fff;border-color:#1c64f2}.confirmation-btn.disabled{opacity:.6;cursor:not-allowed}.confirmation-btn text{display:block;font-weight:500}.chat-input-area{position:fixed;bottom:0;left:0;right:0;background-color:#fff;border-top:1px solid #f8f8f8;padding:20rpx;padding-bottom:calc(155rpx + env(safe-area-inset-bottom));z-index:100}.input-container{display:flex;align-items:center;background-color:#f7f7f7;border-radius:50rpx;padding:10rpx 20rpx}.message-input{flex:1;height:70rpx;font-size:28rpx;padding:0 20rpx;background-color:transparent}.send-button{width:70rpx;height:70rpx;background:linear-gradient(135deg,#1c64f2 0%,#0e4aa7 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-left:20rpx}.send-button.disabled{opacity:.5;pointer-events:none}.upload-button{width:70rpx;height:70rpx;background-color:#f7f7f7;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-left:20rpx}.image-preview-area{margin-bottom:20rpx}.quick-actions-bar{display:flex;flex-wrap:wrap;gap:16rpx;padding:0 0 16rpx}.quick-action-btn{height:60rpx;padding:0 24rpx;background-color:#fff;border:1px solid #e5e5e5;border-radius:100rpx;font-size:23rpx;color:#333;display:flex;align-items:center;justify-content:center;transition:all .2s ease;white-space:nowrap}.quick-action-btn:active{transform:scale(.98);background-color:#f8f8f8}.quick-action-btn text{display:block}.image-preview-list{display:flex;flex-wrap:wrap;gap:16rpx}.image-preview-item{position:relative;width:120rpx;height:120rpx;border-radius:12rpx;overflow:hidden}.image-preview-item.add-more-button{background-color:#f5f5f5;border:2rpx dashed #ddd;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.image-preview-item.add-more-button:active{background-color:#e8e8e8}.preview-image{width:100%;height:100%}.add-more-text{font-size:22rpx;color:#999;margin-top:8rpx}.remove-image{position:absolute;top:8rpx;right:8rpx;width:40rpx;height:40rpx;background-color:rgba(0,0,0,.6);border-radius:50%;display:flex;align-items:center;justify-content:center}.message-images{display:flex;flex-wrap:wrap;gap:12rpx;margin-bottom:12rpx;max-width:500rpx}.user-message .message-images{margin-bottom:0}.message-image-item{border-radius:12rpx;overflow:hidden}.message-image-item.single-image{max-width:500rpx;width:500rpx!important;height:auto!important}.user-message .message-image-item.single-image{max-width:450rpx;width:450rpx!important}.message-image-item:not(.single-image){width:200rpx;height:200rpx}.message-image{width:100%;height:100%;display:block}.message-text-line{margin-bottom:4rpx}.message-text-line:last-child{margin-bottom:0}.copy-button{width:32rpx;height:32rpx;display:flex;align-items:center;justify-content:center;border-radius:4rpx;transition:background-color .2s ease}.copy-button:active{background-color:rgba(0,0,0,.05)}.copy-button .copy-icon{width:26rpx;height:26rpx;opacity:.7}.opening_remarks{padding:30rpx 30rpx 10rpx;z-index:1000;position:fixed;top:0;left:0;right:0;background:linear-gradient(180deg,rgba(208,229,255,.44) 0%,rgba(255,255,255,0) 300rpx),linear-gradient(159deg,#d3d7ff 0%,rgba(255,255,255,0) 150rpx),linear-gradient(188deg,#dffff3 -8%,#f7f7f7 300rpx);background-repeat:no-repeat}.opening_remarks .opening_remarks_body{height:254rpx;border-radius:20rpx;border:1px solid #ffffff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;background:linear-gradient(58deg,#e3faff 1%,rgba(255,255,255,0) 24%),linear-gradient(221deg,#dbe3ff 0%,rgba(255,255,255,0) 19%),rgba(255,255,255,.5)}.opening_remarks .opening_remarks_body .opening_remarks_server_img{width:56rpx;height:224rpx;margin:0 40rpx}.opening_remarks .opening_remarks_body .opening_remarks_server_img image{width:56rpx;height:224rpx}.opening_remarks .opening_remarks_body .opening_remarks_server_info{flex:1;padding-right:30rpx}.opening_remarks .opening_remarks_body .label{font-size:28rpx;color:#333;overflow:hidden;white-space:nowrap;width:0;display:inline-block;animation:typing 3s steps(30,end) forwards,blink .75s step-end infinite}.opening_remarks .opening_remarks_body .group_btn{display:flex;align-items:center;flex-wrap:wrap}.opening_remarks .opening_remarks_body .group_btn_item{background-color:#fff;border-radius:100rpx;font-size:24rpx;color:#333;padding:15rpx 25rpx;margin-top:15rpx;margin-right:30rpx}.opening_remarks .opening_remarks_body .group_btn_item:nth-child(3n){margin-right:0}@keyframes typing{0%{width:0}to{width:100%}} diff --git a/dist/build/mp-weixin/pages/index/components/AiInput.js b/dist/build/mp-weixin/pages/index/components/AiInput.js index 455b02b..7cb1d6c 100644 --- a/dist/build/mp-weixin/pages/index/components/AiInput.js +++ b/dist/build/mp-weixin/pages/index/components/AiInput.js @@ -1 +1 @@ -"use strict";const e=require("../../../common/vendor.js");require("../../../common/libraries/getPageConfig.js");const r=require("../../../common/libraries/public.js");if(require("../../../common/store/useWeAppAuthStore.js"),require("../../../gen/Apis.js"),require("../../../common/libraries/request.js"),require("../../../common/store/useWorkStore.js"),require("../../../common/libraries/setTabBar.js"),require("../../../common/libraries/apiLoading.js"),!Array){e.resolveComponent("uni-icons")()}Math;const o=e.defineComponent({__name:"AiInput",setup(o){const i=()=>{e.index.navigateTo({url:"/pages/ai/chat"})};return(o,s)=>({a:e.p({type:"arrow-right",size:"20",color:"#A4A4A4"}),b:e.o(i),c:e.f(e.unref(r.quickActions),((r,o,i)=>({a:`/static/svg/${r.icon}`,b:e.t(r.label),c:`item_${o}`,d:e.o((o=>(r=>{e.index.navigateTo({url:`/pages/ai/chat?message=${null==r?void 0:r.message}`})})(r)),`item_${o}`)})))})}}),i=e._export_sfc(o,[["__scopeId","data-v-165fd657"]]);wx.createComponent(i); +"use strict";const e=require("../../../common/vendor.js");require("../../../common/libraries/getPageConfig.js");const r=require("../../../common/libraries/public.js");if(require("../../../common/store/useWeAppAuthStore.js"),require("../../../gen/Apis.js"),require("../../../common/libraries/request.js"),require("../../../common/store/useWorkStore.js"),require("../../../common/libraries/setTabBar.js"),require("../../../common/libraries/apiLoading.js"),!Array){e.resolveComponent("uni-icons")()}Math;const o=e.defineComponent({__name:"AiInput",setup(o){const i=()=>{e.index.navigateTo({url:"/pages/ai/chat"})};return(o,s)=>({a:e.p({type:"arrow-right",size:"20",color:"#A4A4A4"}),b:e.o(i),c:e.f(e.unref(r.quickActions),((r,o,i)=>({a:`/static/svg/${r.icon}`,b:e.t(r.label),c:`item_${o}`,d:e.o((o=>(r=>{e.index.navigateTo({url:`/pages/ai/chat?message=${null==r?void 0:r.message}`})})(r)),`item_${o}`)})))})}}),i=e._export_sfc(o,[["__scopeId","data-v-726ad5ed"]]);wx.createComponent(i); diff --git a/dist/build/mp-weixin/pages/index/components/AiInput.wxml b/dist/build/mp-weixin/pages/index/components/AiInput.wxml index 670fc69..4716d2f 100644 --- a/dist/build/mp-weixin/pages/index/components/AiInput.wxml +++ b/dist/build/mp-weixin/pages/index/components/AiInput.wxml @@ -1 +1 @@ -我是客服邻邻,遇到问题了,可以问我哦~ 点击联系在线客服 {{i.b}} \ No newline at end of file +我是客服邻邻,遇到问题了,可以问我哦~ 点击联系在线客服 {{i.b}} \ No newline at end of file diff --git a/dist/build/mp-weixin/pages/index/components/AiInput.wxss b/dist/build/mp-weixin/pages/index/components/AiInput.wxss index 46e4125..2eb9829 100644 --- a/dist/build/mp-weixin/pages/index/components/AiInput.wxss +++ b/dist/build/mp-weixin/pages/index/components/AiInput.wxss @@ -1 +1 @@ -.ai_contents.data-v-165fd657{background-color:#fff;padding:6rpx;border-radius:20rpx;height:320rpx;margin:30rpx}.ai_contents .ai_contents_center.data-v-165fd657{border-radius:20rpx;background:linear-gradient(307deg,rgba(255,137,24,.06) -1%,rgba(255,255,255,0) 29%),linear-gradient(243deg,rgba(75,72,255,.06) 1%,rgba(255,255,255,0) 20%),linear-gradient(303deg,rgba(255,255,255,0) 71%,rgba(40,26,255,.08) 100%),linear-gradient(231deg,rgba(255,255,255,0) 76%,rgba(255,105,0,.06) 98%,rgba(255,145,68,.06) 98%);width:100%;height:100%}.ai_contents .ai_contents_center button.data-v-165fd657{padding:0;margin:0 30rpx;text-align:left;display:flex;align-items:center;background-color:transparent;height:90rpx;border-radius:100rpx;box-shadow:0 4px 10px 3px rgba(231,231,231,.3)}.ai_contents .ai_contents_header.data-v-165fd657{display:flex;align-items:center;color:#333;font-size:28rpx;padding:0 0 0 50rpx}.ai_contents .ai_contents_header image.data-v-165fd657{height:130rpx;position:relative;margin-top:-22rpx}.ai_contents .ai_contents_header text.data-v-165fd657{padding:5rpx 0 0 15rpx}.ai_contents .ai_contents_input.data-v-165fd657{display:flex;align-items:center;justify-content:space-between;background-color:#fff;border-radius:10rpx;padding:15rpx 20rpx;margin:5rpx 30rpx;box-shadow:0 4px 10px rgba(231,231,231,.3)}.ai_contents .ai_contents_input .ai_input.data-v-165fd657{flex:1;font-size:28rpx;color:#666}.ai_contents .ai_contents_input .ai_input input.data-v-165fd657{height:100%}.ai_contents .ai_footer.data-v-165fd657{padding:25rpx 0 0;white-space:nowrap}.ai_contents .ai_footer .items.data-v-165fd657{background-color:#fff;box-shadow:0 0 6px 3px rgba(199,199,199,.1);border-radius:10rpx;display:inline-block;height:70rpx;color:#3d3d3d;font-size:24rpx;padding:0 20rpx;margin-right:15rpx}.ai_contents .ai_footer .items.data-v-165fd657:first-child{margin-left:30rpx}.ai_contents .ai_footer .items.data-v-165fd657:last-child{margin-right:30rpx}.ai_contents .ai_footer .items .items_center.data-v-165fd657{display:flex;align-items:center;height:100%}.ai_contents .ai_footer .items image.data-v-165fd657{width:40rpx;height:40rpx;margin-right:10rpx} +.ai_contents.data-v-726ad5ed{background-color:#fff;padding:6rpx;border-radius:20rpx;height:320rpx;margin:30rpx}.ai_contents .ai_contents_center.data-v-726ad5ed{border-radius:20rpx;background:linear-gradient(307deg,rgba(255,137,24,.06) -1%,rgba(255,255,255,0) 29%),linear-gradient(243deg,rgba(75,72,255,.06) 1%,rgba(255,255,255,0) 20%),linear-gradient(303deg,rgba(255,255,255,0) 71%,rgba(40,26,255,.08) 100%),linear-gradient(231deg,rgba(255,255,255,0) 76%,rgba(255,105,0,.06) 98%,rgba(255,145,68,.06) 98%);width:100%;height:100%}.ai_contents .ai_contents_center button.data-v-726ad5ed{padding:0;margin:0 30rpx;text-align:left;display:flex;align-items:center;background-color:transparent;height:90rpx;border-radius:100rpx;box-shadow:0 4px 10px 3px rgba(231,231,231,.3)}.ai_contents .ai_contents_header.data-v-726ad5ed{display:flex;align-items:center;color:#333;font-size:28rpx;padding:0 0 0 50rpx}.ai_contents .ai_contents_header image.data-v-726ad5ed{width:56rpx;height:130rpx;position:relative;margin-top:-22rpx}.ai_contents .ai_contents_header text.data-v-726ad5ed{padding:5rpx 0 0 15rpx}.ai_contents .ai_contents_input.data-v-726ad5ed{display:flex;align-items:center;justify-content:space-between;background-color:#fff;border-radius:10rpx;padding:15rpx 20rpx;margin:5rpx 30rpx;box-shadow:0 4px 10px rgba(231,231,231,.3)}.ai_contents .ai_contents_input .ai_input.data-v-726ad5ed{flex:1;font-size:28rpx;color:#666}.ai_contents .ai_contents_input .ai_input input.data-v-726ad5ed{height:100%}.ai_contents .ai_footer.data-v-726ad5ed{padding:25rpx 0 0;white-space:nowrap}.ai_contents .ai_footer .items.data-v-726ad5ed{background-color:#fff;box-shadow:0 0 6px 3px rgba(199,199,199,.1);border-radius:10rpx;display:inline-block;height:70rpx;color:#3d3d3d;font-size:24rpx;padding:0 20rpx;margin-right:15rpx}.ai_contents .ai_footer .items.data-v-726ad5ed:first-child{margin-left:30rpx}.ai_contents .ai_footer .items.data-v-726ad5ed:last-child{margin-right:30rpx}.ai_contents .ai_footer .items .items_center.data-v-726ad5ed{display:flex;align-items:center;height:100%}.ai_contents .ai_footer .items image.data-v-726ad5ed{width:40rpx;height:40rpx;margin-right:10rpx} diff --git a/dist/build/mp-weixin/pages/index/components/ModalServer.js b/dist/build/mp-weixin/pages/index/components/ModalServer.js index 65b177d..a943a17 100644 --- a/dist/build/mp-weixin/pages/index/components/ModalServer.js +++ b/dist/build/mp-weixin/pages/index/components/ModalServer.js @@ -1 +1 @@ -"use strict";const e=require("../../../common/vendor.js"),o=require("../../../common/libraries/apiLoading.js"),n=require("../../../gen/Apis.js");require("../../../common/libraries/request.js");const s=require("../../../common/store/useWeAppAuthStore.js");if(require("../../../common/store/useWorkStore.js"),require("../../../common/libraries/setTabBar.js"),!Array){(e.resolveComponent("hs-button")+e.resolveComponent("uni-icons")+e.resolveComponent("hs-popup-custom"))()}Math||((()=>"../../../components/hs-button/hs-button.js")+(()=>"../../../uni_modules/uni-icons/components/uni-icons/uni-icons.js")+(()=>"../../../components/hs-popup-custom/hs-popup-custom.js"))();const t=e.defineComponent({__name:"ModalServer",setup(t){const u=s.useWeAppAuthStore(),i=e.ref(!1),l=e.ref(!1),r=o=>{e.index.navigateTo({url:o||""})},a=()=>{i.value=!1,l.value=!1};e.onHide((()=>{a()}));return e.watch((()=>{var e;return null==(e=null==u?void 0:u.data)?void 0:e.is_house_exist}),(()=>{var e,o,n,s;!(null==(e=null==u?void 0:u.data)?void 0:e.user)||(null==(o=null==u?void 0:u.data)?void 0:o.house_occupant)||(null==(n=null==u?void 0:u.data)?void 0:n.house_register)||(i.value=!0),console.log(null==(s=null==u?void 0:u.data)?void 0:s.house_occupant,"house_occupant2")}),{deep:!0}),e.watch((()=>{var e;return null==(e=null==u?void 0:u.data)?void 0:e.user}),(()=>{var e,o;(null==(e=null==u?void 0:u.data)?void 0:e.user)&&(null==(o=null==u?void 0:u.data)||o.selected_house)}),{deep:!0}),e.onShow((async()=>{var s,t,i;await(null==(s=e.getCurrentInstance())?void 0:s.appContext.config.globalProperties.$onLaunched),(null==(t=null==u?void 0:u.data)?void 0:t.user)&&(null==(i=null==u?void 0:u.data)?void 0:i.selected_house)&&o.getApiLoading(n.Apis.Archive.HouseRegisters.GetOwnerIsAudit,{}).then((e=>{(null==e?void 0:e.data)&&(l.value=!0),console.log(e)}))})),(o,n)=>({a:e.o((e=>r("/INDEX/binding/index"))),b:e.p({label:"前往入住登记",size:"md",type:"primary"}),c:e.o(a),d:e.p({type:"close",size:"35",color:"#fff"}),e:e.o(a),f:e.p({show:i.value,mode:"center",title:"入住登记提醒"}),g:e.o((e=>r("/INDEX/owner_audit_list/index"))),h:e.p({label:"前往审核",size:"md",type:"primary"}),i:e.o(a),j:e.p({type:"close",size:"35",color:"#fff"}),k:e.o(a),l:e.p({show:l.value,mode:"center",title:"住户审核通知"})})}}),u=e._export_sfc(t,[["__scopeId","data-v-5109beae"]]);wx.createComponent(u); +"use strict";const e=require("../../../common/vendor.js"),o=require("../../../common/libraries/apiLoading.js"),n=require("../../../gen/Apis.js");require("../../../common/libraries/request.js");const s=require("../../../common/store/useWeAppAuthStore.js");if(require("../../../common/store/useWorkStore.js"),require("../../../common/libraries/setTabBar.js"),!Array){(e.resolveComponent("hs-button")+e.resolveComponent("uni-icons")+e.resolveComponent("hs-popup-custom"))()}Math||((()=>"../../../components/hs-button/hs-button.js")+(()=>"../../../uni_modules/uni-icons/components/uni-icons/uni-icons.js")+(()=>"../../../components/hs-popup-custom/hs-popup-custom.js"))();const t=e.defineComponent({__name:"ModalServer",setup(t){const u=e.ref(!1),l=s.useWeAppAuthStore(),i=e.ref(!1),r=e.ref(!1),a=o=>{e.index.navigateTo({url:o||""})},d=()=>{i.value=!1,r.value=!1};e.onHide((()=>{d()}));return e.watch((()=>{var e;return null==(e=null==l?void 0:l.data)?void 0:e.is_house_exist}),(()=>{var e,o,n,s;!(null==(e=null==l?void 0:l.data)?void 0:e.user)||(null==(o=null==l?void 0:l.data)?void 0:o.house_occupant)||(null==(n=null==l?void 0:l.data)?void 0:n.house_register)||(i.value=!0),console.log(null==(s=null==l?void 0:l.data)?void 0:s.house_occupant,"house_occupant2")}),{deep:!0}),e.watch((()=>{var e;return null==(e=null==l?void 0:l.data)?void 0:e.user}),(()=>{var e,o;(null==(e=null==l?void 0:l.data)?void 0:e.user)&&(null==(o=null==l?void 0:l.data)||o.selected_house)}),{deep:!0}),e.onShow((async()=>{var s,t,i;await(null==(s=e.getCurrentInstance())?void 0:s.appContext.config.globalProperties.$onLaunched),(null==(t=null==l?void 0:l.data)?void 0:t.user)&&(null==(i=null==l?void 0:l.data)?void 0:i.selected_house)&&(u.value||o.getApiLoading(n.Apis.Archive.HouseRegisters.GetOwnerIsAudit,{}).then((e=>{(null==e?void 0:e.data)&&(r.value=!0,u.value=!0),console.log(e)})))})),(o,n)=>({a:e.o((e=>a("/INDEX/binding/index"))),b:e.p({label:"前往入住登记",size:"md",type:"primary"}),c:e.o(d),d:e.p({type:"close",size:"35",color:"#fff"}),e:e.o(d),f:e.p({show:i.value,mode:"center",title:"入住登记提醒"}),g:e.o((e=>a("/INDEX/owner_audit_list/index"))),h:e.p({label:"前往审核",size:"md",type:"primary"}),i:e.o(d),j:e.p({type:"close",size:"35",color:"#fff"}),k:e.o(d),l:e.p({show:r.value,mode:"center",title:"住户审核通知"})})}}),u=e._export_sfc(t,[["__scopeId","data-v-2c4ba4e3"]]);wx.createComponent(u); diff --git a/dist/build/mp-weixin/pages/index/components/ModalServer.wxml b/dist/build/mp-weixin/pages/index/components/ModalServer.wxml index 2dd7964..3c07ca0 100644 --- a/dist/build/mp-weixin/pages/index/components/ModalServer.wxml +++ b/dist/build/mp-weixin/pages/index/components/ModalServer.wxml @@ -1 +1 @@ - 为了给您提供更精准的社区服务请先完成房屋绑定哦~ 稍后绑定 您有一条房屋绑定审核申请请及时处理~ 稍后处理 \ No newline at end of file + 为了给您提供更精准的社区服务请先完成房屋绑定哦~ 稍后绑定 您有一条房屋绑定审核申请请及时处理~ 稍后处理 \ No newline at end of file diff --git a/dist/build/mp-weixin/pages/index/components/ModalServer.wxss b/dist/build/mp-weixin/pages/index/components/ModalServer.wxss index 21ea146..11a3543 100644 --- a/dist/build/mp-weixin/pages/index/components/ModalServer.wxss +++ b/dist/build/mp-weixin/pages/index/components/ModalServer.wxss @@ -1 +1 @@ -.popup_custom_content.data-v-5109beae{text-align:center}.popup_custom_content .bind_des.data-v-5109beae{line-height:50rpx;padding:10rpx 0}.popup_custom_content .bind_house_popup_footer.data-v-5109beae{padding:40rpx 40rpx 0}.popup_custom_content .bind_house_popup_footer .bind_house_popup_footer_later.data-v-5109beae{text-align:center;color:#000;font-size:28rpx;padding:30rpx 0}.bind_house_popup_close.data-v-5109beae{text-align:center;padding-top:40rpx} +.popup_custom_content.data-v-2c4ba4e3{text-align:center}.popup_custom_content .bind_des.data-v-2c4ba4e3{line-height:50rpx;padding:10rpx 0}.popup_custom_content .bind_house_popup_footer.data-v-2c4ba4e3{padding:40rpx 40rpx 0}.popup_custom_content .bind_house_popup_footer .bind_house_popup_footer_later.data-v-2c4ba4e3{text-align:center;color:#000;font-size:28rpx;padding:30rpx 0}.bind_house_popup_close.data-v-2c4ba4e3{text-align:center;padding-top:40rpx} diff --git a/dist/dev/mp-weixin/app.js b/dist/dev/mp-weixin/app.js index 35aeff4..7d9abdd 100644 --- a/dist/dev/mp-weixin/app.js +++ b/dist/dev/mp-weixin/app.js @@ -15,6 +15,7 @@ if (!Math) { "./pages/forward/index.js"; "./pages/me/index.js"; "./pages/ai/chat.js"; + "./pages/ai/index.js"; "./pages/web_view/index.js"; "./WORKORDER/list/index.js"; "./WORKORDER/add/index.js"; diff --git a/dist/dev/mp-weixin/app.json b/dist/dev/mp-weixin/app.json index 1b68f9d..31ca5d0 100644 --- a/dist/dev/mp-weixin/app.json +++ b/dist/dev/mp-weixin/app.json @@ -6,6 +6,7 @@ "pages/forward/index", "pages/me/index", "pages/ai/chat", + "pages/ai/index", "pages/web_view/index" ], "subPackages": [ @@ -94,6 +95,12 @@ "iconPath": "/static/tabbar/home_icon.png", "selectedIconPath": "/static/tabbar/home_active.png" }, + { + "pagePath": "pages/ai/index", + "text": "管家在线", + "iconPath": "/static/tabbar/news_active.png", + "selectedIconPath": "/static/tabbar/news_active.png" + }, { "pagePath": "pages/me/index", "text": "我的", diff --git a/dist/dev/mp-weixin/common/libraries/request.js b/dist/dev/mp-weixin/common/libraries/request.js index 1dcb1ce..a3f4133 100644 --- a/dist/dev/mp-weixin/common/libraries/request.js +++ b/dist/dev/mp-weixin/common/libraries/request.js @@ -3,7 +3,7 @@ const common_vendor = require("../vendor.js"); const common_store_useWeAppAuthStore = require("../store/useWeAppAuthStore.js"); const http = new common_vendor.Request(); http.setConfig((config) => { - config.baseURL = "http://10.39.13.78:8002/api/"; + config.baseURL = "https://weapp-api.linyikj.com.cn/api/"; config.header = { ...config.header }; diff --git a/dist/dev/mp-weixin/common/libraries/setTabBar.js b/dist/dev/mp-weixin/common/libraries/setTabBar.js index 171f8cc..cd8c36a 100644 --- a/dist/dev/mp-weixin/common/libraries/setTabBar.js +++ b/dist/dev/mp-weixin/common/libraries/setTabBar.js @@ -1,32 +1,52 @@ "use strict"; -let menu = [{ - pagePath: "/pages/index/index", - iconPath: "/static/tabbar/home_icon.png", - selectedIconPath: "/static/tabbar/home_active.png", - text: "首页" -}, { - pagePath: "/pages/me/index", - iconPath: "/static/tabbar/news_icon.png", - selectedIconPath: "/static/tabbar/news_active.png", - text: "我的" -}]; +let menu = [ + { + pagePath: "/pages/index/index", + iconPath: "/static/tabbar/home_icon.png", + selectedIconPath: "/static/tabbar/home_active.png", + text: "首页" + }, + { + pagePath: "/pages/ai/chat", + iconPath: "/static/tabbar/news_icon.png", + selectedIconPath: "/static/tabbar/news_active.png", + text: "管家在线" + }, + { + pagePath: "/pages/me/index", + iconPath: "/static/tabbar/news_icon.png", + selectedIconPath: "/static/tabbar/news_active.png", + text: "我的" + } +]; function setTabBar(res) { - var _a, _b, _c, _d, _e; + var _a, _b, _c, _d, _e, _f, _g, _h; const pages = getCurrentPages(); const currentPage = pages[pages.length - 1]; if (currentPage) { const tabBar = (currentPage == null ? void 0 : currentPage.getTabBar) ? currentPage == null ? void 0 : currentPage.getTabBar() : null; let list = (_c = (_b = (_a = res == null ? void 0 : res.companyConfig) == null ? void 0 : _a.config_value) == null ? void 0 : _b.menu) == null ? void 0 : _c.map((i) => { var _a2, _b2, _c2, _d2; - return { ...i, iconPath: (_b2 = (_a2 = i.iconPath) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.url, selectedIconPath: (_d2 = (_c2 = i.selectedIconPath) == null ? void 0 : _c2[0]) == null ? void 0 : _d2.url }; + return { + ...i, + iconPath: (_b2 = (_a2 = i.iconPath) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.url, + selectedIconPath: (_d2 = (_c2 = i.selectedIconPath) == null ? void 0 : _c2[0]) == null ? void 0 : _d2.url + }; + }); + list.splice(((_f = (_e = (_d = res == null ? void 0 : res.companyConfig) == null ? void 0 : _d.config_value) == null ? void 0 : _e.menu) == null ? void 0 : _f.length) / 2, 0, { + pagePath: "/pages/ai/index", + iconPath: "https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN63WTGSX2T5X8N233CJ5K0Q.png", + selectedIconPath: "https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN63WTGSX2T5X8N233CJ5K0Q.png", + text: "管家在线" }); getApp().globalData.menuList = list || menu; + console.log("getApp().globalData", getApp().globalData, list); if (tabBar) { tabBar.setData({ list: list || menu }); } } - console.log("App.globalData.selectedOrg", (_e = (_d = res == null ? void 0 : res.companyConfig) == null ? void 0 : _d.config_value) == null ? void 0 : _e.menu); + console.log("App.globalData.selectedOrg", (_h = (_g = res == null ? void 0 : res.companyConfig) == null ? void 0 : _g.config_value) == null ? void 0 : _h.menu); } exports.setTabBar = setTabBar; diff --git a/dist/dev/mp-weixin/common/libraries/userUserLogin.js b/dist/dev/mp-weixin/common/libraries/userUserLogin.js index 3222551..f6a23be 100644 --- a/dist/dev/mp-weixin/common/libraries/userUserLogin.js +++ b/dist/dev/mp-weixin/common/libraries/userUserLogin.js @@ -29,8 +29,9 @@ const getUserLogin = { } }, getLoginStatus() { - var _a; - if (!((_a = auth == null ? void 0 : auth.data) == null ? void 0 : _a.user)) { + var _a, _b; + console.log("auth?.data?.user:", (_a = auth == null ? void 0 : auth.data) == null ? void 0 : _a.user); + if (!((_b = auth == null ? void 0 : auth.data) == null ? void 0 : _b.user)) { return false; } else { return true; diff --git a/dist/dev/mp-weixin/common/store/useWeAppAuthStore.js b/dist/dev/mp-weixin/common/store/useWeAppAuthStore.js index dd141fe..3504641 100644 --- a/dist/dev/mp-weixin/common/store/useWeAppAuthStore.js +++ b/dist/dev/mp-weixin/common/store/useWeAppAuthStore.js @@ -32,19 +32,19 @@ const useWeAppAuthStore = common_vendor.defineStore("we_app_auth", () => { gen_Apis.Apis.Login.Auth.Login({ code, app_id: wxAppId }).then((res) => { var _a, _b, _c, _d, _e, _f; console.log("登录", res == null ? void 0 : res.data); - data.value.user = (_a = res.data) == null ? void 0 : _a.user; - data.value.selected_house = (_b = res.data) == null ? void 0 : _b.selected_house; - data.value.config = (_c = res.data) == null ? void 0 : _c.config; - common_libraries_setTabBar.setTabBar((_d = res == null ? void 0 : res.data) == null ? void 0 : _d.config); - common_vendor.index.setStorageSync("ACCESS_TOKEN_CUSTOMER", (_f = (_e = res == null ? void 0 : res.data) == null ? void 0 : _e.token) == null ? void 0 : _f.token); - if (data.value.user) { - getIsHouseExist(); - } + common_vendor.index.setStorageSync("ACCESS_TOKEN_CUSTOMER", (_b = (_a = res == null ? void 0 : res.data) == null ? void 0 : _a.token) == null ? void 0 : _b.token); + app == null ? void 0 : app.appContext.config.globalProperties.$isResolve(); setTimeout(() => { loading.value = false; hasError.value = false; }, 300); - app == null ? void 0 : app.appContext.config.globalProperties.$isResolve(); + data.value.selected_house = (_c = res.data) == null ? void 0 : _c.selected_house; + data.value.user = (_d = res.data) == null ? void 0 : _d.user; + data.value.config = (_e = res.data) == null ? void 0 : _e.config; + common_libraries_setTabBar.setTabBar((_f = res == null ? void 0 : res.data) == null ? void 0 : _f.config); + if (data.value.user) { + getIsHouseExist(); + } }).catch(() => { loading.value = false; hasError.value = true; @@ -64,7 +64,6 @@ const useWeAppAuthStore = common_vendor.defineStore("we_app_auth", () => { data.value.user = res.data.user; data.value.config = (_a = res.data) == null ? void 0 : _a.config; data.value.selected_house = (_b = res.data) == null ? void 0 : _b.selected_house; - common_libraries_setTabBar.setTabBar((_c = res == null ? void 0 : res.data) == null ? void 0 : _c.config); console.log("me", res.data); if (data.value.user) { getIsHouseExist(); @@ -73,6 +72,7 @@ const useWeAppAuthStore = common_vendor.defineStore("we_app_auth", () => { loading.value = false; hasError.value = false; }, 300); + common_libraries_setTabBar.setTabBar((_c = res == null ? void 0 : res.data) == null ? void 0 : _c.config); return fun == null ? void 0 : fun(); }); } diff --git a/dist/dev/mp-weixin/common/vendor.js b/dist/dev/mp-weixin/common/vendor.js index 4a194b1..d0a79b6 100644 --- a/dist/dev/mp-weixin/common/vendor.js +++ b/dist/dev/mp-weixin/common/vendor.js @@ -11680,316 +11680,305 @@ class Request2 { } } var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; -function getDefaultExportFromCjs(x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; -} -var dayjs_minExports$1 = {}; +var dayjs_minExports = {}; var dayjs_min = { get exports() { - return dayjs_minExports$1; + return dayjs_minExports; }, set exports(v) { - dayjs_minExports$1 = v; + dayjs_minExports = v; } }; -var hasRequiredDayjs_min; -function requireDayjs_min() { - if (hasRequiredDayjs_min) - return dayjs_minExports$1; - hasRequiredDayjs_min = 1; - (function(module2, exports2) { - !function(t2, e2) { - module2.exports = e2(); - }(commonjsGlobal, function() { - var t2 = 1e3, e2 = 6e4, n2 = 36e5, r2 = "millisecond", i = "second", s2 = "minute", u = "hour", a = "day", o2 = "week", c = "month", f2 = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t3) { - var e3 = ["th", "st", "nd", "rd"], n3 = t3 % 100; - return "[" + t3 + (e3[(n3 - 20) % 10] || e3[n3] || e3[0]) + "]"; - } }, m = function(t3, e3, n3) { - var r3 = String(t3); - return !r3 || r3.length >= e3 ? t3 : "" + Array(e3 + 1 - r3.length).join(n3) + t3; - }, v = { s: m, z: function(t3) { - var e3 = -t3.utcOffset(), n3 = Math.abs(e3), r3 = Math.floor(n3 / 60), i2 = n3 % 60; - return (e3 <= 0 ? "+" : "-") + m(r3, 2, "0") + ":" + m(i2, 2, "0"); - }, m: function t3(e3, n3) { - if (e3.date() < n3.date()) - return -t3(n3, e3); - var r3 = 12 * (n3.year() - e3.year()) + (n3.month() - e3.month()), i2 = e3.clone().add(r3, c), s3 = n3 - i2 < 0, u2 = e3.clone().add(r3 + (s3 ? -1 : 1), c); - return +(-(r3 + (n3 - i2) / (s3 ? i2 - u2 : u2 - i2)) || 0); - }, a: function(t3) { - return t3 < 0 ? Math.ceil(t3) || 0 : Math.floor(t3); - }, p: function(t3) { - return { M: c, y: h, w: o2, d: a, D: d, h: u, m: s2, s: i, ms: r2, Q: f2 }[t3] || String(t3 || "").toLowerCase().replace(/s$/, ""); - }, u: function(t3) { - return void 0 === t3; - } }, g = "en", D = {}; - D[g] = M; - var p2 = "$isDayjsObject", S = function(t3) { - return t3 instanceof _ || !(!t3 || !t3[p2]); - }, w = function t3(e3, n3, r3) { - var i2; - if (!e3) - return g; - if ("string" == typeof e3) { - var s3 = e3.toLowerCase(); - D[s3] && (i2 = s3), n3 && (D[s3] = n3, i2 = s3); - var u2 = e3.split("-"); - if (!i2 && u2.length > 1) - return t3(u2[0]); - } else { - var a2 = e3.name; - D[a2] = e3, i2 = a2; - } - return !r3 && i2 && (g = i2), i2 || !r3 && g; - }, O = function(t3, e3) { - if (S(t3)) - return t3.clone(); - var n3 = "object" == typeof e3 ? e3 : {}; - return n3.date = t3, n3.args = arguments, new _(n3); - }, b = v; - b.l = w, b.i = S, b.w = function(t3, e3) { - return O(t3, { locale: e3.$L, utc: e3.$u, x: e3.$x, $offset: e3.$offset }); - }; - var _ = function() { - function M2(t3) { - this.$L = w(t3.locale, null, true), this.parse(t3), this.$x = this.$x || t3.x || {}, this[p2] = true; - } - var m2 = M2.prototype; - return m2.parse = function(t3) { - this.$d = function(t4) { - var e3 = t4.date, n3 = t4.utc; - if (null === e3) - return new Date(NaN); - if (b.u(e3)) - return new Date(); - if (e3 instanceof Date) - return new Date(e3); - if ("string" == typeof e3 && !/Z$/i.test(e3)) { - var r3 = e3.match($); - if (r3) { - var i2 = r3[2] - 1 || 0, s3 = (r3[7] || "0").substring(0, 3); - return n3 ? new Date(Date.UTC(r3[1], i2, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3)) : new Date(r3[1], i2, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3); - } - } +(function(module2, exports2) { + !function(t2, e2) { + module2.exports = e2(); + }(commonjsGlobal, function() { + var t2 = 1e3, e2 = 6e4, n2 = 36e5, r2 = "millisecond", i = "second", s2 = "minute", u = "hour", a = "day", o2 = "week", c = "month", f2 = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t3) { + var e3 = ["th", "st", "nd", "rd"], n3 = t3 % 100; + return "[" + t3 + (e3[(n3 - 20) % 10] || e3[n3] || e3[0]) + "]"; + } }, m = function(t3, e3, n3) { + var r3 = String(t3); + return !r3 || r3.length >= e3 ? t3 : "" + Array(e3 + 1 - r3.length).join(n3) + t3; + }, v = { s: m, z: function(t3) { + var e3 = -t3.utcOffset(), n3 = Math.abs(e3), r3 = Math.floor(n3 / 60), i2 = n3 % 60; + return (e3 <= 0 ? "+" : "-") + m(r3, 2, "0") + ":" + m(i2, 2, "0"); + }, m: function t3(e3, n3) { + if (e3.date() < n3.date()) + return -t3(n3, e3); + var r3 = 12 * (n3.year() - e3.year()) + (n3.month() - e3.month()), i2 = e3.clone().add(r3, c), s3 = n3 - i2 < 0, u2 = e3.clone().add(r3 + (s3 ? -1 : 1), c); + return +(-(r3 + (n3 - i2) / (s3 ? i2 - u2 : u2 - i2)) || 0); + }, a: function(t3) { + return t3 < 0 ? Math.ceil(t3) || 0 : Math.floor(t3); + }, p: function(t3) { + return { M: c, y: h, w: o2, d: a, D: d, h: u, m: s2, s: i, ms: r2, Q: f2 }[t3] || String(t3 || "").toLowerCase().replace(/s$/, ""); + }, u: function(t3) { + return void 0 === t3; + } }, g = "en", D = {}; + D[g] = M; + var p2 = "$isDayjsObject", S = function(t3) { + return t3 instanceof _ || !(!t3 || !t3[p2]); + }, w = function t3(e3, n3, r3) { + var i2; + if (!e3) + return g; + if ("string" == typeof e3) { + var s3 = e3.toLowerCase(); + D[s3] && (i2 = s3), n3 && (D[s3] = n3, i2 = s3); + var u2 = e3.split("-"); + if (!i2 && u2.length > 1) + return t3(u2[0]); + } else { + var a2 = e3.name; + D[a2] = e3, i2 = a2; + } + return !r3 && i2 && (g = i2), i2 || !r3 && g; + }, O = function(t3, e3) { + if (S(t3)) + return t3.clone(); + var n3 = "object" == typeof e3 ? e3 : {}; + return n3.date = t3, n3.args = arguments, new _(n3); + }, b = v; + b.l = w, b.i = S, b.w = function(t3, e3) { + return O(t3, { locale: e3.$L, utc: e3.$u, x: e3.$x, $offset: e3.$offset }); + }; + var _ = function() { + function M2(t3) { + this.$L = w(t3.locale, null, true), this.parse(t3), this.$x = this.$x || t3.x || {}, this[p2] = true; + } + var m2 = M2.prototype; + return m2.parse = function(t3) { + this.$d = function(t4) { + var e3 = t4.date, n3 = t4.utc; + if (null === e3) + return new Date(NaN); + if (b.u(e3)) + return new Date(); + if (e3 instanceof Date) return new Date(e3); - }(t3), this.init(); - }, m2.init = function() { - var t3 = this.$d; - this.$y = t3.getFullYear(), this.$M = t3.getMonth(), this.$D = t3.getDate(), this.$W = t3.getDay(), this.$H = t3.getHours(), this.$m = t3.getMinutes(), this.$s = t3.getSeconds(), this.$ms = t3.getMilliseconds(); - }, m2.$utils = function() { - return b; - }, m2.isValid = function() { - return !(this.$d.toString() === l); - }, m2.isSame = function(t3, e3) { - var n3 = O(t3); - return this.startOf(e3) <= n3 && n3 <= this.endOf(e3); - }, m2.isAfter = function(t3, e3) { - return O(t3) < this.startOf(e3); - }, m2.isBefore = function(t3, e3) { - return this.endOf(e3) < O(t3); - }, m2.$g = function(t3, e3, n3) { - return b.u(t3) ? this[e3] : this.set(n3, t3); - }, m2.unix = function() { - return Math.floor(this.valueOf() / 1e3); - }, m2.valueOf = function() { - return this.$d.getTime(); - }, m2.startOf = function(t3, e3) { - var n3 = this, r3 = !!b.u(e3) || e3, f3 = b.p(t3), l2 = function(t4, e4) { - var i2 = b.w(n3.$u ? Date.UTC(n3.$y, e4, t4) : new Date(n3.$y, e4, t4), n3); - return r3 ? i2 : i2.endOf(a); - }, $2 = function(t4, e4) { - return b.w(n3.toDate()[t4].apply(n3.toDate("s"), (r3 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e4)), n3); - }, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : ""); - switch (f3) { - case h: - return r3 ? l2(1, 0) : l2(31, 11); - case c: - return r3 ? l2(1, M3) : l2(0, M3 + 1); - case o2: - var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2; - return l2(r3 ? m3 - D2 : m3 + (6 - D2), M3); - case a: - case d: - return $2(v2 + "Hours", 0); - case u: - return $2(v2 + "Minutes", 1); - case s2: - return $2(v2 + "Seconds", 2); - case i: - return $2(v2 + "Milliseconds", 3); - default: - return this.clone(); + if ("string" == typeof e3 && !/Z$/i.test(e3)) { + var r3 = e3.match($); + if (r3) { + var i2 = r3[2] - 1 || 0, s3 = (r3[7] || "0").substring(0, 3); + return n3 ? new Date(Date.UTC(r3[1], i2, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3)) : new Date(r3[1], i2, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3); + } } - }, m2.endOf = function(t3) { - return this.startOf(t3, false); - }, m2.$set = function(t3, e3) { - var n3, o3 = b.p(t3), f3 = "set" + (this.$u ? "UTC" : ""), l2 = (n3 = {}, n3[a] = f3 + "Date", n3[d] = f3 + "Date", n3[c] = f3 + "Month", n3[h] = f3 + "FullYear", n3[u] = f3 + "Hours", n3[s2] = f3 + "Minutes", n3[i] = f3 + "Seconds", n3[r2] = f3 + "Milliseconds", n3)[o3], $2 = o3 === a ? this.$D + (e3 - this.$W) : e3; - if (o3 === c || o3 === h) { - var y2 = this.clone().set(d, 1); - y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d; - } else - l2 && this.$d[l2]($2); - return this.init(), this; - }, m2.set = function(t3, e3) { - return this.clone().$set(t3, e3); - }, m2.get = function(t3) { - return this[b.p(t3)](); - }, m2.add = function(r3, f3) { - var d2, l2 = this; - r3 = Number(r3); - var $2 = b.p(f3), y2 = function(t3) { - var e3 = O(l2); - return b.w(e3.date(e3.date() + Math.round(t3 * r3)), l2); - }; - if ($2 === c) - return this.set(c, this.$M + r3); - if ($2 === h) - return this.set(h, this.$y + r3); - if ($2 === a) - return y2(1); - if ($2 === o2) - return y2(7); - var M3 = (d2 = {}, d2[s2] = e2, d2[u] = n2, d2[i] = t2, d2)[$2] || 1, m3 = this.$d.getTime() + r3 * M3; - return b.w(m3, this); - }, m2.subtract = function(t3, e3) { - return this.add(-1 * t3, e3); - }, m2.format = function(t3) { - var e3 = this, n3 = this.$locale(); - if (!this.isValid()) - return n3.invalidDate || l; - var r3 = t3 || "YYYY-MM-DDTHH:mm:ssZ", i2 = b.z(this), s3 = this.$H, u2 = this.$m, a2 = this.$M, o3 = n3.weekdays, c2 = n3.months, f3 = n3.meridiem, h2 = function(t4, n4, i3, s4) { - return t4 && (t4[n4] || t4(e3, r3)) || i3[n4].slice(0, s4); - }, d2 = function(t4) { - return b.s(s3 % 12 || 12, t4, "0"); - }, $2 = f3 || function(t4, e4, n4) { - var r4 = t4 < 12 ? "AM" : "PM"; - return n4 ? r4.toLowerCase() : r4; - }; - return r3.replace(y, function(t4, r4) { - return r4 || function(t5) { - switch (t5) { - case "YY": - return String(e3.$y).slice(-2); - case "YYYY": - return b.s(e3.$y, 4, "0"); - case "M": - return a2 + 1; - case "MM": - return b.s(a2 + 1, 2, "0"); - case "MMM": - return h2(n3.monthsShort, a2, c2, 3); - case "MMMM": - return h2(c2, a2); - case "D": - return e3.$D; - case "DD": - return b.s(e3.$D, 2, "0"); - case "d": - return String(e3.$W); - case "dd": - return h2(n3.weekdaysMin, e3.$W, o3, 2); - case "ddd": - return h2(n3.weekdaysShort, e3.$W, o3, 3); - case "dddd": - return o3[e3.$W]; - case "H": - return String(s3); - case "HH": - return b.s(s3, 2, "0"); - case "h": - return d2(1); - case "hh": - return d2(2); - case "a": - return $2(s3, u2, true); - case "A": - return $2(s3, u2, false); - case "m": - return String(u2); - case "mm": - return b.s(u2, 2, "0"); - case "s": - return String(e3.$s); - case "ss": - return b.s(e3.$s, 2, "0"); - case "SSS": - return b.s(e3.$ms, 3, "0"); - case "Z": - return i2; - } - return null; - }(t4) || i2.replace(":", ""); - }); - }, m2.utcOffset = function() { - return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); - }, m2.diff = function(r3, d2, l2) { - var $2, y2 = this, M3 = b.p(d2), m3 = O(r3), v2 = (m3.utcOffset() - this.utcOffset()) * e2, g2 = this - m3, D2 = function() { - return b.m(y2, m3); - }; - switch (M3) { - case h: - $2 = D2() / 12; - break; - case c: - $2 = D2(); - break; - case f2: - $2 = D2() / 3; - break; - case o2: - $2 = (g2 - v2) / 6048e5; - break; - case a: - $2 = (g2 - v2) / 864e5; - break; - case u: - $2 = g2 / n2; - break; - case s2: - $2 = g2 / e2; - break; - case i: - $2 = g2 / t2; - break; - default: - $2 = g2; - } - return l2 ? $2 : b.a($2); - }, m2.daysInMonth = function() { - return this.endOf(c).$D; - }, m2.$locale = function() { - return D[this.$L]; - }, m2.locale = function(t3, e3) { - if (!t3) - return this.$L; - var n3 = this.clone(), r3 = w(t3, e3, true); - return r3 && (n3.$L = r3), n3; - }, m2.clone = function() { - return b.w(this.$d, this); - }, m2.toDate = function() { - return new Date(this.valueOf()); - }, m2.toJSON = function() { - return this.isValid() ? this.toISOString() : null; - }, m2.toISOString = function() { - return this.$d.toISOString(); - }, m2.toString = function() { - return this.$d.toUTCString(); - }, M2; - }(), k = _.prototype; - return O.prototype = k, [["$ms", r2], ["$s", i], ["$m", s2], ["$H", u], ["$W", a], ["$M", c], ["$y", h], ["$D", d]].forEach(function(t3) { - k[t3[1]] = function(e3) { - return this.$g(e3, t3[0], t3[1]); + return new Date(e3); + }(t3), this.init(); + }, m2.init = function() { + var t3 = this.$d; + this.$y = t3.getFullYear(), this.$M = t3.getMonth(), this.$D = t3.getDate(), this.$W = t3.getDay(), this.$H = t3.getHours(), this.$m = t3.getMinutes(), this.$s = t3.getSeconds(), this.$ms = t3.getMilliseconds(); + }, m2.$utils = function() { + return b; + }, m2.isValid = function() { + return !(this.$d.toString() === l); + }, m2.isSame = function(t3, e3) { + var n3 = O(t3); + return this.startOf(e3) <= n3 && n3 <= this.endOf(e3); + }, m2.isAfter = function(t3, e3) { + return O(t3) < this.startOf(e3); + }, m2.isBefore = function(t3, e3) { + return this.endOf(e3) < O(t3); + }, m2.$g = function(t3, e3, n3) { + return b.u(t3) ? this[e3] : this.set(n3, t3); + }, m2.unix = function() { + return Math.floor(this.valueOf() / 1e3); + }, m2.valueOf = function() { + return this.$d.getTime(); + }, m2.startOf = function(t3, e3) { + var n3 = this, r3 = !!b.u(e3) || e3, f3 = b.p(t3), l2 = function(t4, e4) { + var i2 = b.w(n3.$u ? Date.UTC(n3.$y, e4, t4) : new Date(n3.$y, e4, t4), n3); + return r3 ? i2 : i2.endOf(a); + }, $2 = function(t4, e4) { + return b.w(n3.toDate()[t4].apply(n3.toDate("s"), (r3 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e4)), n3); + }, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : ""); + switch (f3) { + case h: + return r3 ? l2(1, 0) : l2(31, 11); + case c: + return r3 ? l2(1, M3) : l2(0, M3 + 1); + case o2: + var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2; + return l2(r3 ? m3 - D2 : m3 + (6 - D2), M3); + case a: + case d: + return $2(v2 + "Hours", 0); + case u: + return $2(v2 + "Minutes", 1); + case s2: + return $2(v2 + "Seconds", 2); + case i: + return $2(v2 + "Milliseconds", 3); + default: + return this.clone(); + } + }, m2.endOf = function(t3) { + return this.startOf(t3, false); + }, m2.$set = function(t3, e3) { + var n3, o3 = b.p(t3), f3 = "set" + (this.$u ? "UTC" : ""), l2 = (n3 = {}, n3[a] = f3 + "Date", n3[d] = f3 + "Date", n3[c] = f3 + "Month", n3[h] = f3 + "FullYear", n3[u] = f3 + "Hours", n3[s2] = f3 + "Minutes", n3[i] = f3 + "Seconds", n3[r2] = f3 + "Milliseconds", n3)[o3], $2 = o3 === a ? this.$D + (e3 - this.$W) : e3; + if (o3 === c || o3 === h) { + var y2 = this.clone().set(d, 1); + y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d; + } else + l2 && this.$d[l2]($2); + return this.init(), this; + }, m2.set = function(t3, e3) { + return this.clone().$set(t3, e3); + }, m2.get = function(t3) { + return this[b.p(t3)](); + }, m2.add = function(r3, f3) { + var d2, l2 = this; + r3 = Number(r3); + var $2 = b.p(f3), y2 = function(t3) { + var e3 = O(l2); + return b.w(e3.date(e3.date() + Math.round(t3 * r3)), l2); }; - }), O.extend = function(t3, e3) { - return t3.$i || (t3(e3, _, O), t3.$i = true), O; - }, O.locale = w, O.isDayjs = S, O.unix = function(t3) { - return O(1e3 * t3); - }, O.en = D[g], O.Ls = D, O.p = {}, O; - }); - })(dayjs_min); - return dayjs_minExports$1; -} -var dayjs_minExports = requireDayjs_min(); -const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports); + if ($2 === c) + return this.set(c, this.$M + r3); + if ($2 === h) + return this.set(h, this.$y + r3); + if ($2 === a) + return y2(1); + if ($2 === o2) + return y2(7); + var M3 = (d2 = {}, d2[s2] = e2, d2[u] = n2, d2[i] = t2, d2)[$2] || 1, m3 = this.$d.getTime() + r3 * M3; + return b.w(m3, this); + }, m2.subtract = function(t3, e3) { + return this.add(-1 * t3, e3); + }, m2.format = function(t3) { + var e3 = this, n3 = this.$locale(); + if (!this.isValid()) + return n3.invalidDate || l; + var r3 = t3 || "YYYY-MM-DDTHH:mm:ssZ", i2 = b.z(this), s3 = this.$H, u2 = this.$m, a2 = this.$M, o3 = n3.weekdays, c2 = n3.months, f3 = n3.meridiem, h2 = function(t4, n4, i3, s4) { + return t4 && (t4[n4] || t4(e3, r3)) || i3[n4].slice(0, s4); + }, d2 = function(t4) { + return b.s(s3 % 12 || 12, t4, "0"); + }, $2 = f3 || function(t4, e4, n4) { + var r4 = t4 < 12 ? "AM" : "PM"; + return n4 ? r4.toLowerCase() : r4; + }; + return r3.replace(y, function(t4, r4) { + return r4 || function(t5) { + switch (t5) { + case "YY": + return String(e3.$y).slice(-2); + case "YYYY": + return b.s(e3.$y, 4, "0"); + case "M": + return a2 + 1; + case "MM": + return b.s(a2 + 1, 2, "0"); + case "MMM": + return h2(n3.monthsShort, a2, c2, 3); + case "MMMM": + return h2(c2, a2); + case "D": + return e3.$D; + case "DD": + return b.s(e3.$D, 2, "0"); + case "d": + return String(e3.$W); + case "dd": + return h2(n3.weekdaysMin, e3.$W, o3, 2); + case "ddd": + return h2(n3.weekdaysShort, e3.$W, o3, 3); + case "dddd": + return o3[e3.$W]; + case "H": + return String(s3); + case "HH": + return b.s(s3, 2, "0"); + case "h": + return d2(1); + case "hh": + return d2(2); + case "a": + return $2(s3, u2, true); + case "A": + return $2(s3, u2, false); + case "m": + return String(u2); + case "mm": + return b.s(u2, 2, "0"); + case "s": + return String(e3.$s); + case "ss": + return b.s(e3.$s, 2, "0"); + case "SSS": + return b.s(e3.$ms, 3, "0"); + case "Z": + return i2; + } + return null; + }(t4) || i2.replace(":", ""); + }); + }, m2.utcOffset = function() { + return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); + }, m2.diff = function(r3, d2, l2) { + var $2, y2 = this, M3 = b.p(d2), m3 = O(r3), v2 = (m3.utcOffset() - this.utcOffset()) * e2, g2 = this - m3, D2 = function() { + return b.m(y2, m3); + }; + switch (M3) { + case h: + $2 = D2() / 12; + break; + case c: + $2 = D2(); + break; + case f2: + $2 = D2() / 3; + break; + case o2: + $2 = (g2 - v2) / 6048e5; + break; + case a: + $2 = (g2 - v2) / 864e5; + break; + case u: + $2 = g2 / n2; + break; + case s2: + $2 = g2 / e2; + break; + case i: + $2 = g2 / t2; + break; + default: + $2 = g2; + } + return l2 ? $2 : b.a($2); + }, m2.daysInMonth = function() { + return this.endOf(c).$D; + }, m2.$locale = function() { + return D[this.$L]; + }, m2.locale = function(t3, e3) { + if (!t3) + return this.$L; + var n3 = this.clone(), r3 = w(t3, e3, true); + return r3 && (n3.$L = r3), n3; + }, m2.clone = function() { + return b.w(this.$d, this); + }, m2.toDate = function() { + return new Date(this.valueOf()); + }, m2.toJSON = function() { + return this.isValid() ? this.toISOString() : null; + }, m2.toISOString = function() { + return this.$d.toISOString(); + }, m2.toString = function() { + return this.$d.toUTCString(); + }, M2; + }(), k = _.prototype; + return O.prototype = k, [["$ms", r2], ["$s", i], ["$m", s2], ["$H", u], ["$W", a], ["$M", c], ["$y", h], ["$D", d]].forEach(function(t3) { + k[t3[1]] = function(e3) { + return this.$g(e3, t3[0], t3[1]); + }; + }), O.extend = function(t3, e3) { + return t3.$i || (t3(e3, _, O), t3.$i = true), O; + }, O.locale = w, O.isDayjs = S, O.unix = function(t3) { + return O(1e3 * t3); + }, O.en = D[g], O.Ls = D, O.p = {}, O; + }); +})(dayjs_min); +const dayjs = dayjs_minExports; var relativeTimeExports = {}; var relativeTime$1 = { get exports() { @@ -12053,7 +12042,7 @@ var zhCn = { }; (function(module2, exports2) { !function(e2, _) { - module2.exports = _(requireDayjs_min()); + module2.exports = _(dayjs_minExports); }(commonjsGlobal, function(e2) { function _(e3) { return e3 && "object" == typeof e3 && "default" in e3 ? e3 : { default: e3 }; diff --git a/dist/dev/mp-weixin/custom-tab-bar/index.js b/dist/dev/mp-weixin/custom-tab-bar/index.js index 90a8c5a..7ab000e 100644 --- a/dist/dev/mp-weixin/custom-tab-bar/index.js +++ b/dist/dev/mp-weixin/custom-tab-bar/index.js @@ -1,39 +1,53 @@ -const App = getApp(); +const App = getApp() Component({ data: { selected: App.globalData.selectedIndex, - color: "#3D3D3D", - selectedColor: "#3D3D3D", - list: [{ - pagePath: "/pages/index/index", - iconPath: "/static/tabbar/home_icon.png", - selectedIconPath: "/static/tabbar/home_active.png", - text: "首页" - }, { - pagePath: "/pages/me/index", - iconPath: "/static/tabbar/news_icon.png", - selectedIconPath: "/static/tabbar/news_active.png", - text: "我的" - },] + color: '#3D3D3D', + selectedColor: '#3D3D3D', + list: [ + { + pagePath: '/pages/index/index', + iconPath: '/static/tabbar/home_icon.png', + selectedIconPath: '/static/tabbar/home_active.png', + text: '首页' + }, + { + pagePath: '/pages/ai/index', + iconPath: + 'https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN63WTGSX2T5X8N233CJ5K0Q.png', + selectedIconPath: + 'https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN63WTGSX2T5X8N233CJ5K0Q.png', + text: '管家在线' + }, + { + pagePath: '/pages/me/index', + iconPath: '/static/tabbar/news_icon.png', + selectedIconPath: '/static/tabbar/news_active.png', + text: '我的' + } + ] }, lifetimes: { - attached: function() { + attached: function () { // 监听路由变化,自动更新tab-bar选中状态 const updateTabBar = () => { let _this = this const pages = getCurrentPages() const currentPage = pages[pages.length - 1] - console.log('currentList', getApp().globalData.menuList) - if (currentPage) { + console.log('currentList', getApp().globalData, currentPage) + if (currentPage && this.data.list) { const currentPath = currentPage.route const index = this.data.list.findIndex(item => item.pagePath === `/${currentPath}`) if (index !== -1) { this.setData({ selected: index, - list: getApp().globalData.menuList + list: this.data.list }) App.globalData.selectedIndex = index } + if (!getApp().globalData.menuList) { + getApp().globalData.menuList = this.data.list + } } } // 初始化时执行一次 @@ -58,11 +72,14 @@ Component({ selected: data.index, list: getApp().globalData.menuList }) - console.log('switchTab fail', url) - wx.switchTab({url, fail: (res) => { - // wx.navigateTo({url}) - console.log('switchTab fail', res) - }}) + console.log('switchTab fail', url) + wx.switchTab({ + url, + fail: res => { + // wx.navigateTo({url}) + console.log('switchTab fail', res) + } + }) } } -}) \ No newline at end of file +}) diff --git a/dist/dev/mp-weixin/custom-tab-bar/index.wxml b/dist/dev/mp-weixin/custom-tab-bar/index.wxml index 3ce2f86..6a5b259 100644 --- a/dist/dev/mp-weixin/custom-tab-bar/index.wxml +++ b/dist/dev/mp-weixin/custom-tab-bar/index.wxml @@ -1,8 +1,11 @@ - - - - - {{item.text}} + + + + + + {{item.text}} + + diff --git a/dist/dev/mp-weixin/custom-tab-bar/index.wxss b/dist/dev/mp-weixin/custom-tab-bar/index.wxss index dc8a9ee..f1796a7 100644 --- a/dist/dev/mp-weixin/custom-tab-bar/index.wxss +++ b/dist/dev/mp-weixin/custom-tab-bar/index.wxss @@ -3,12 +3,22 @@ bottom: 0; left: 0; right: 0; - height: 48px; - background: white; - display: flex; - padding-bottom: env(safe-area-inset-bottom); -} + /* padding-bottom: env(safe-area-inset-bottom); */ +} +.safe-area-inset-bottom { + width: 100%; + height: env(safe-area-inset-bottom); + background-color: #fff; +} +.tab-bar-content { + display: flex; + height: 48px; + width: 100%; + background: url('https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN6H4Z5VTWGPRGQZ35CPYHF5.png') + center no-repeat; + background-size: 100%; +} .tab-bar-border { background-color: rgba(0, 0, 0, 0.33); position: absolute; @@ -27,12 +37,25 @@ align-items: center; flex-direction: column; } +.tab-bar-item-center { + flex: 1; + text-align: center; + display: flex; + justify-content: center; + align-items: center; +} .tab-bar-item image { width: 27px; height: 27px; } +.tab-bar-item-center .tab-bar-item-icon { + width: 120rpx !important; + height: 120rpx !important; + margin-bottom: 70rpx; +} + .tab-bar-item view { font-size: 10px; } diff --git a/dist/dev/mp-weixin/pages/ai/chat.js b/dist/dev/mp-weixin/pages/ai/chat.js index cf60264..35befea 100644 --- a/dist/dev/mp-weixin/pages/ai/chat.js +++ b/dist/dev/mp-weixin/pages/ai/chat.js @@ -4,34 +4,33 @@ require("../../common/libraries/request.js"); const common_store_useWeAppAuthStore = require("../../common/store/useWeAppAuthStore.js"); require("../../common/store/useWorkStore.js"); const common_libraries_upload = require("../../common/libraries/upload.js"); -const common_libraries_public = require("../../common/libraries/public.js"); +const common_libraries_userUserLogin = require("../../common/libraries/userUserLogin.js"); require("../../gen/Apis.js"); require("../../common/libraries/setTabBar.js"); require("../../common/libraries/apiLoading.js"); if (!Array) { const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons"); - _easycom_uni_icons2(); + const _easycom_hs_empty2 = common_vendor.resolveComponent("hs-empty"); + const _easycom_hs_button2 = common_vendor.resolveComponent("hs-button"); + (_easycom_uni_icons2 + _easycom_hs_empty2 + _easycom_hs_button2)(); } const _easycom_uni_icons = () => "../../uni_modules/uni-icons/components/uni-icons/uni-icons.js"; +const _easycom_hs_empty = () => "../../components/hs-empty/hs-empty.js"; +const _easycom_hs_button = () => "../../components/hs-button/hs-button.js"; if (!Math) { - _easycom_uni_icons(); + (_easycom_uni_icons + _easycom_hs_empty + _easycom_hs_button)(); } -const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ +const _sfc_defineComponent = /* @__PURE__ */ common_vendor.defineComponent({ __name: "chat", setup(__props) { common_vendor.dayjs.extend(common_vendor.relativeTime); common_vendor.dayjs.locale("zh-cn"); const auth = common_store_useWeAppAuthStore.useWeAppAuthStore(); + const userLoginStatus = common_vendor.ref(false); const inputMessage = common_vendor.ref(""); const selectedImages = common_vendor.ref([]); const isInputFocused = common_vendor.ref(false); - const messages = common_vendor.ref([ - { - role: "ai", - content: "您好!我是物业客服,有什么可以帮助您的吗?", - quickQuestions: [] - } - ]); + const messages = common_vendor.ref([]); const loading = common_vendor.ref(false); const loadingText = common_vendor.ref("正在输入中..."); let socketTask = null; @@ -44,30 +43,20 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ const isLoadingHistory = common_vendor.ref(false); const conversationId = common_vendor.ref(""); const currentOffset = common_vendor.ref(0); - const quickQuestionsData = common_vendor.ref([]); + const quickQuestionsData = common_vendor.ref({}); const lastMessageContent = common_vendor.ref(""); const getQuickQuestions = async () => { + var _a; try { + let selected_house = (_a = auth == null ? void 0 : auth.data) == null ? void 0 : _a.selected_house; const response = await common_vendor.index.request({ - url: `${API_BASE_URL}/api/public/quick-questions`, + url: `${API_BASE_URL}/api/public/quick-questions?platform=property&company_id=${selected_house == null ? void 0 : selected_house.companies_id}&project_id=${selected_house == null ? void 0 : selected_house.asset_projects_id}`, method: "GET" }); if (response.statusCode === 200) { const result = response.data; - let quickQuestions = []; - if (result.data && Array.isArray(result.data)) { - quickQuestions = result.data.map( - (item) => item.question || item.title || item.text || item - ); - } else if (result.questions && Array.isArray(result.questions)) { - quickQuestions = result.questions.map( - (item) => item.question || item.title || item.text || item - ); - } else if (Array.isArray(result)) { - quickQuestions = result.map((item) => item.question || item.title || item.text || item); - } - console.log("获取到开场白按钮数据:", quickQuestions); - return quickQuestions; + console.log("获取到开场白按钮数据2:", result); + return result; } else { console.error("获取开场白数据失败,状态码:", response.statusCode); return []; @@ -77,6 +66,11 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ return []; } }; + const goToPageLogin = () => { + common_vendor.index.navigateTo({ + url: "/pages/login" + }); + }; const formatMessageContent = (content) => { if (!content || typeof content !== "string") { return [""]; @@ -267,19 +261,6 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ console.log("没有历史记录"); messages.value = []; } - common_vendor.nextTick$1(() => { - if (quickQuestionsData.value.length > 0) { - const welcomeMessage = { - role: "ai", - content: "您好!我是物业客服,有什么可以帮助您的吗?", - quickQuestions: quickQuestionsData.value, - created_at: new Date().toISOString() - }; - messages.value.push(welcomeMessage); - console.log("[Customer] 获取历史记录成功后,在历史记录后面push新开场白消息"); - scrollToBottom(); - } - }); } else { if (historyMessages.length > 0) { setTimeout(() => { @@ -567,6 +548,9 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ inputMessage.value = question; handleSendMessage(); }; + const handleQuickFast = (name) => { + handleQuickAction({ message: name }); + }; const handleQuickAction = (action) => { inputMessage.value = action.message; handleSendMessage(); @@ -770,16 +754,41 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ } }); common_vendor.onLoad(async (op) => { - quickQuestionsData.value = await getQuickQuestions(); - console.log("页面加载时已获取开场白按钮数据:", quickQuestionsData.value.length); - getHistoryMessages(1); - if (op == null ? void 0 : op.message) { - handleQuickAction(op); + var _a, _b, _c; + console.log( + "页面加载时已获取开场白按钮数据1:", + quickQuestionsData.value.length, + (_a = common_libraries_userUserLogin.getUserLogin) == null ? void 0 : _a.getLoginStatus() + ); + await ((_b = common_vendor.getCurrentInstance()) == null ? void 0 : _b.appContext.config.globalProperties.$onLaunched); + if ((_c = common_libraries_userUserLogin.getUserLogin) == null ? void 0 : _c.getLoginStatus()) { + userLoginStatus.value = true; + console.log("页面加载时已获取开场白按钮数据3:", quickQuestionsData.value.length); + quickQuestionsData.value = await getQuickQuestions(); + console.log("页面加载时已获取开场白按钮数据2:", quickQuestionsData.value.length); + getHistoryMessages(1); + if (op == null ? void 0 : op.message) { + handleQuickAction(op); + } + } else { + userLoginStatus.value = false; + messages.value = []; } }); return (_ctx, _cache) => { + var _a, _b; return common_vendor.e({ - a: common_vendor.f(messages.value, (message, index, i0) => { + a: userLoginStatus.value + }, userLoginStatus.value ? common_vendor.e({ + b: common_vendor.t(((_a = quickQuestionsData.value) == null ? void 0 : _a.greeting_text) || "我是管家-邻邻,有什么可以帮助您的吗?"), + c: common_vendor.f((_b = quickQuestionsData.value) == null ? void 0 : _b.questions, (i, index, i0) => { + return { + a: common_vendor.t(i), + b: `item_${index}`, + c: common_vendor.o(($event) => handleQuickFast(i), `item_${index}`) + }; + }), + d: common_vendor.f(messages.value, (message, index, i0) => { return common_vendor.e({ a: message.role === "ai" }, message.role === "ai" ? {} : {}, { @@ -861,13 +870,13 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ H: common_vendor.n(message.role === "user" ? "user-message" : "ai-message") }); }), - b: loading.value + e: loading.value }, loading.value ? { - c: common_vendor.t(loadingText.value) + f: common_vendor.t(loadingText.value) } : {}, { - d: selectedImages.value.length > 0 + g: selectedImages.value.length > 0 }, selectedImages.value.length > 0 ? common_vendor.e({ - e: common_vendor.f(selectedImages.value, (image, index, i0) => { + h: common_vendor.f(selectedImages.value, (image, index, i0) => { return { a: image, b: "25c36616-0-" + i0, @@ -875,60 +884,68 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ d: index }; }), - f: common_vendor.p({ + i: common_vendor.p({ type: "closeempty", size: "14", color: "#fff" }), - g: selectedImages.value.length < 9 + j: selectedImages.value.length < 9 }, selectedImages.value.length < 9 ? { - h: common_vendor.p({ + k: common_vendor.p({ type: "plus", size: "30", color: "#999" }), - i: common_vendor.o(chooseImage) + l: common_vendor.o(chooseImage) } : {}) : {}, { - j: common_vendor.f(common_vendor.unref(common_libraries_public.quickActions), (action, index, i0) => { - return { - a: common_vendor.t(action.label), - b: index, - c: common_vendor.o(($event) => handleQuickAction(action), index) - }; - }), - k: common_vendor.o(($event) => isInputFocused.value = true), - l: common_vendor.o(($event) => isInputFocused.value = false), - m: common_vendor.o(handleSendMessage), - n: inputMessage.value, - o: common_vendor.o(($event) => inputMessage.value = $event.detail.value), - p: !inputMessage.value.trim() && !isInputFocused.value && selectedImages.value.length === 0 + m: common_vendor.o(($event) => isInputFocused.value = true), + n: common_vendor.o(($event) => isInputFocused.value = false), + o: common_vendor.o(handleSendMessage), + p: inputMessage.value, + q: common_vendor.o(($event) => inputMessage.value = $event.detail.value), + r: !inputMessage.value.trim() && !isInputFocused.value && selectedImages.value.length === 0 }, !inputMessage.value.trim() && !isInputFocused.value && selectedImages.value.length === 0 ? { - q: common_vendor.p({ + s: common_vendor.p({ type: "camera", size: "24", color: "#666" }), - r: common_vendor.o(chooseImage) + t: common_vendor.o(chooseImage) } : {}, { - s: (inputMessage.value.trim() || isInputFocused.value || selectedImages.value.length > 0) && !loading.value + v: (inputMessage.value.trim() || isInputFocused.value || selectedImages.value.length > 0) && !loading.value }, (inputMessage.value.trim() || isInputFocused.value || selectedImages.value.length > 0) && !loading.value ? { - t: common_vendor.p({ + w: common_vendor.p({ type: "paperplane-filled", size: "20", color: "#fff" }), - v: common_vendor.o(handleSendMessage) + x: common_vendor.o(handleSendMessage) } : {}, { - w: loading.value + y: loading.value }, loading.value ? { - x: common_vendor.p({ + z: common_vendor.p({ type: "spinner-cycle", size: "20", color: "#ccc" }) - } : {}); + } : {}) : { + A: common_vendor.p({ + height: "20vh", + baseStyle: { + paddingTop: "35%" + }, + text: "登录体验更多功能" + }), + B: common_vendor.o(goToPageLogin), + C: common_vendor.p({ + label: "去登录", + size: "md", + type: "primary" + }) + }); }; } }); -const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "/Users/zsq/Sources/github/2025property-pay/pay-customer/src/pages/ai/chat.vue"]]); +_sfc_defineComponent.__runtimeHooks = 1; +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_defineComponent, [["__file", "/Users/zsq/Sources/github/2025property-pay/pay-customer/src/pages/ai/chat.vue"]]); wx.createPage(MiniProgramPage); diff --git a/dist/dev/mp-weixin/pages/ai/chat.json b/dist/dev/mp-weixin/pages/ai/chat.json index cab5d4c..bdb9392 100644 --- a/dist/dev/mp-weixin/pages/ai/chat.json +++ b/dist/dev/mp-weixin/pages/ai/chat.json @@ -2,6 +2,8 @@ "navigationBarTitleText": "客服服务", "enablePullDownRefresh": true, "usingComponents": { - "uni-icons": "../../uni_modules/uni-icons/components/uni-icons/uni-icons" + "uni-icons": "../../uni_modules/uni-icons/components/uni-icons/uni-icons", + "hs-empty": "../../components/hs-empty/hs-empty", + "hs-button": "../../components/hs-button/hs-button" } } \ No newline at end of file diff --git a/dist/dev/mp-weixin/pages/ai/chat.wxml b/dist/dev/mp-weixin/pages/ai/chat.wxml index 6a2d067..ce9cbf7 100644 --- a/dist/dev/mp-weixin/pages/ai/chat.wxml +++ b/dist/dev/mp-weixin/pages/ai/chat.wxml @@ -1 +1 @@ - 我是管家-邻邻,有什么可以帮助您的吗? 房屋绑定 物业缴费 工单报事 社区服务 访客邀请 房屋管理 {{line.a}}{{question.a}}{{message.C}}{{c}}添加图片{{action.a}} \ No newline at end of file +{{b}}{{i.a}}{{line.a}}{{question.a}}{{message.C}}{{f}}添加图片 \ No newline at end of file diff --git a/dist/dev/mp-weixin/pages/ai/chat.wxss b/dist/dev/mp-weixin/pages/ai/chat.wxss index 2f9ab8f..8b369cb 100644 --- a/dist/dev/mp-weixin/pages/ai/chat.wxss +++ b/dist/dev/mp-weixin/pages/ai/chat.wxss @@ -5,13 +5,16 @@ left: 0; width: 100%; height: 100vh; - background: linear-gradient(180deg, rgba(208, 229, 255, 0.44) 0%, rgba(255, 255, 255, 0) 600rpx), linear-gradient(159deg, #d3d7ff 0%, rgba(255, 255, 255, 0) 400rpx), linear-gradient(188deg, #dffff3 -8%, #f7f7f7 600rpx); + background: linear-gradient(180deg, rgba(208, 229, 255, 0.44) 0%, rgba(255, 255, 255, 0) 300rpx), linear-gradient(159deg, #d3d7ff 0%, rgba(255, 255, 255, 0) 150rpx), linear-gradient(188deg, #dffff3 -8%, #f7f7f7 300rpx); background-repeat: no-repeat; } .chat_messages_body { position: relative; z-index: 100; } +.chat_messages_body .login_btn { + padding: 0 50rpx; +} .chat-container { display: flex; flex-direction: column; @@ -22,10 +25,13 @@ width: 100%; padding: 0 30rpx; padding-top: 314rpx; - padding-bottom: calc(220rpx + env(safe-area-inset-bottom)); + padding-bottom: calc(260rpx + env(safe-area-inset-bottom)); box-sizing: border-box; flex: 1; } +.chat-messages-chat { + padding-bottom: calc(160rpx + env(safe-area-inset-bottom)); +} .message-item { display: flex; width: 100%; @@ -242,9 +248,12 @@ to { background-color: #fff; border-top: 1px solid #f8f8f8; padding: 20rpx 20rpx; - padding-bottom: calc(30rpx + env(safe-area-inset-bottom)); + padding-bottom: calc(155rpx + env(safe-area-inset-bottom)); z-index: 100; } +.chat-input-area-chat { + padding-bottom: calc(30rpx + env(safe-area-inset-bottom)); +} .input-container { display: flex; align-items: center; @@ -414,13 +423,14 @@ to { opacity: 0.7; } .opening_remarks { - padding: 30rpx; + padding: 30rpx 30rpx 10rpx 30rpx; z-index: 1000; position: fixed; top: 0; left: 0; right: 0; - background: linear-gradient(180deg, rgba(208, 229, 255, 0.44) 0%, rgba(255, 255, 255, 0) 600rpx), linear-gradient(159deg, #d3d7ff 0%, rgba(255, 255, 255, 0) 400rpx), linear-gradient(188deg, #dffff3 -8%, #f7f7f7 600rpx); + background: linear-gradient(180deg, rgba(208, 229, 255, 0.44) 0%, rgba(255, 255, 255, 0) 300rpx), linear-gradient(159deg, #d3d7ff 0%, rgba(255, 255, 255, 0) 150rpx), linear-gradient(188deg, #dffff3 -8%, #f7f7f7 300rpx); + background-repeat: no-repeat; } .opening_remarks .opening_remarks_body { height: 254rpx; @@ -459,6 +469,8 @@ to { display: flex; align-items: center; flex-wrap: wrap; + overflow: hidden; + height: 160rpx; } .opening_remarks .opening_remarks_body .group_btn_item { background-color: #fff; diff --git a/src/common/libraries/setTabBar.ts b/src/common/libraries/setTabBar.ts index 569d295..d7372f0 100644 --- a/src/common/libraries/setTabBar.ts +++ b/src/common/libraries/setTabBar.ts @@ -1,27 +1,49 @@ import { Merchant, Investor, Agent } from './updateMenu' import AllPages from '../../pages.json' -let menu = [{ - pagePath: "/pages/index/index", - iconPath: "/static/tabbar/home_icon.png", - selectedIconPath: "/static/tabbar/home_active.png", - text: "首页" - }, { - pagePath: "/pages/me/index", - iconPath: "/static/tabbar/news_icon.png", - selectedIconPath: "/static/tabbar/news_active.png", - text: "我的" - }] +let menu = [ + { + pagePath: '/pages/index/index', + iconPath: '/static/tabbar/home_icon.png', + selectedIconPath: '/static/tabbar/home_active.png', + text: '首页' + }, + { + pagePath: '/pages/ai/chat', + iconPath: '/static/tabbar/news_icon.png', + selectedIconPath: '/static/tabbar/news_active.png', + text: '管家在线' + }, + { + pagePath: '/pages/me/index', + iconPath: '/static/tabbar/news_icon.png', + selectedIconPath: '/static/tabbar/news_active.png', + text: '我的' + } +] export function setTabBar(res: any) { - const pages = getCurrentPages(); - const currentPage: any = pages[pages.length - 1]; + const pages = getCurrentPages() + const currentPage: any = pages[pages.length - 1] if (currentPage) { - const tabBar = currentPage?.getTabBar ? currentPage?.getTabBar() : null; - let list = res?.companyConfig?.config_value?.menu?.map((i:any) =>({...i,iconPath: i.iconPath?.[0]?.url,selectedIconPath: i.selectedIconPath?.[0]?.url})) + const tabBar = currentPage?.getTabBar ? currentPage?.getTabBar() : null + let list = res?.companyConfig?.config_value?.menu?.map((i: any) => ({ + ...i, + iconPath: i.iconPath?.[0]?.url, + selectedIconPath: i.selectedIconPath?.[0]?.url + })) + list.splice(res?.companyConfig?.config_value?.menu?.length / 2, 0, { + pagePath: '/pages/ai/index', + iconPath: + 'https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN63WTGSX2T5X8N233CJ5K0Q.png', + selectedIconPath: + 'https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN63WTGSX2T5X8N233CJ5K0Q.png', + text: '管家在线' + }) getApp().globalData.menuList = list || menu + console.log('getApp().globalData', getApp().globalData, list) if (tabBar) { tabBar.setData({ - list: list || menu - }); + list: list || menu + }) } } console.log('App.globalData.selectedOrg', res?.companyConfig?.config_value?.menu) diff --git a/src/common/libraries/userUserLogin.ts b/src/common/libraries/userUserLogin.ts index 3c52250..a2e80c4 100644 --- a/src/common/libraries/userUserLogin.ts +++ b/src/common/libraries/userUserLogin.ts @@ -26,6 +26,7 @@ export default { } }, getLoginStatus() { + console.log('auth?.data?.user:', auth?.data?.user) if (!auth?.data?.user) { // 是否登录 return false diff --git a/src/common/store/useWeAppAuthStore.ts b/src/common/store/useWeAppAuthStore.ts index 3cf062d..7c18ce5 100644 --- a/src/common/store/useWeAppAuthStore.ts +++ b/src/common/store/useWeAppAuthStore.ts @@ -65,20 +65,20 @@ export const useWeAppAuthStore = defineStore('we_app_auth', () => { Apis.Login.Auth.Login({ code: code, app_id: wxAppId }) .then(res => { console.log('登录', res?.data) - data.value.user = res.data?.user - data.value.selected_house = res.data?.selected_house - data.value.config = res.data?.config - //设置底部菜单 - setTabBar(res?.data?.config) uni.setStorageSync(import.meta.env.VITE_ACCESS_TOKEN_KEY, res?.data?.token?.token) - if (data.value.user) { - getIsHouseExist() - } + app?.appContext.config.globalProperties.$isResolve() setTimeout(() => { loading.value = false hasError.value = false }, 300) - app?.appContext.config.globalProperties.$isResolve() + data.value.selected_house = res.data?.selected_house + data.value.user = res.data?.user + data.value.config = res.data?.config + //设置底部菜单 + setTabBar(res?.data?.config) + if (data.value.user) { + getIsHouseExist() + } }) .catch(() => { loading.value = false @@ -99,8 +99,6 @@ export const useWeAppAuthStore = defineStore('we_app_auth', () => { data.value.user = res.data.user data.value.config = res.data?.config data.value.selected_house = res.data?.selected_house - //设置底部菜单 - setTabBar(res?.data?.config) console.log('me', res.data) if (data.value.user) { getIsHouseExist() @@ -109,6 +107,8 @@ export const useWeAppAuthStore = defineStore('we_app_auth', () => { loading.value = false hasError.value = false }, 300) + //设置底部菜单 + setTabBar(res?.data?.config) return fun?.() }) } diff --git a/src/custom-tab-bar/index.js b/src/custom-tab-bar/index.js index 90a8c5a..7ab000e 100644 --- a/src/custom-tab-bar/index.js +++ b/src/custom-tab-bar/index.js @@ -1,39 +1,53 @@ -const App = getApp(); +const App = getApp() Component({ data: { selected: App.globalData.selectedIndex, - color: "#3D3D3D", - selectedColor: "#3D3D3D", - list: [{ - pagePath: "/pages/index/index", - iconPath: "/static/tabbar/home_icon.png", - selectedIconPath: "/static/tabbar/home_active.png", - text: "首页" - }, { - pagePath: "/pages/me/index", - iconPath: "/static/tabbar/news_icon.png", - selectedIconPath: "/static/tabbar/news_active.png", - text: "我的" - },] + color: '#3D3D3D', + selectedColor: '#3D3D3D', + list: [ + { + pagePath: '/pages/index/index', + iconPath: '/static/tabbar/home_icon.png', + selectedIconPath: '/static/tabbar/home_active.png', + text: '首页' + }, + { + pagePath: '/pages/ai/index', + iconPath: + 'https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN63WTGSX2T5X8N233CJ5K0Q.png', + selectedIconPath: + 'https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN63WTGSX2T5X8N233CJ5K0Q.png', + text: '管家在线' + }, + { + pagePath: '/pages/me/index', + iconPath: '/static/tabbar/news_icon.png', + selectedIconPath: '/static/tabbar/news_active.png', + text: '我的' + } + ] }, lifetimes: { - attached: function() { + attached: function () { // 监听路由变化,自动更新tab-bar选中状态 const updateTabBar = () => { let _this = this const pages = getCurrentPages() const currentPage = pages[pages.length - 1] - console.log('currentList', getApp().globalData.menuList) - if (currentPage) { + console.log('currentList', getApp().globalData, currentPage) + if (currentPage && this.data.list) { const currentPath = currentPage.route const index = this.data.list.findIndex(item => item.pagePath === `/${currentPath}`) if (index !== -1) { this.setData({ selected: index, - list: getApp().globalData.menuList + list: this.data.list }) App.globalData.selectedIndex = index } + if (!getApp().globalData.menuList) { + getApp().globalData.menuList = this.data.list + } } } // 初始化时执行一次 @@ -58,11 +72,14 @@ Component({ selected: data.index, list: getApp().globalData.menuList }) - console.log('switchTab fail', url) - wx.switchTab({url, fail: (res) => { - // wx.navigateTo({url}) - console.log('switchTab fail', res) - }}) + console.log('switchTab fail', url) + wx.switchTab({ + url, + fail: res => { + // wx.navigateTo({url}) + console.log('switchTab fail', res) + } + }) } } -}) \ No newline at end of file +}) diff --git a/src/custom-tab-bar/index.wxml b/src/custom-tab-bar/index.wxml index 3ce2f86..6a5b259 100644 --- a/src/custom-tab-bar/index.wxml +++ b/src/custom-tab-bar/index.wxml @@ -1,8 +1,11 @@ - - - - - {{item.text}} + + + + + + {{item.text}} + + diff --git a/src/custom-tab-bar/index.wxss b/src/custom-tab-bar/index.wxss index dc8a9ee..f1796a7 100644 --- a/src/custom-tab-bar/index.wxss +++ b/src/custom-tab-bar/index.wxss @@ -3,12 +3,22 @@ bottom: 0; left: 0; right: 0; - height: 48px; - background: white; - display: flex; - padding-bottom: env(safe-area-inset-bottom); -} + /* padding-bottom: env(safe-area-inset-bottom); */ +} +.safe-area-inset-bottom { + width: 100%; + height: env(safe-area-inset-bottom); + background-color: #fff; +} +.tab-bar-content { + display: flex; + height: 48px; + width: 100%; + background: url('https://pay-prod-1369486729.cos.ap-guangzhou.myqcloud.com/uploads/cs-test/01KN6H4Z5VTWGPRGQZ35CPYHF5.png') + center no-repeat; + background-size: 100%; +} .tab-bar-border { background-color: rgba(0, 0, 0, 0.33); position: absolute; @@ -27,12 +37,25 @@ align-items: center; flex-direction: column; } +.tab-bar-item-center { + flex: 1; + text-align: center; + display: flex; + justify-content: center; + align-items: center; +} .tab-bar-item image { width: 27px; height: 27px; } +.tab-bar-item-center .tab-bar-item-icon { + width: 120rpx !important; + height: 120rpx !important; + margin-bottom: 70rpx; +} + .tab-bar-item view { font-size: 10px; } diff --git a/src/pages.json b/src/pages.json index be24d46..0bcba19 100644 --- a/src/pages.json +++ b/src/pages.json @@ -34,13 +34,20 @@ "navigationStyle": "custom" } }, - { + { "path": "pages/ai/chat", "style": { "navigationBarTitleText": "客服服务", "enablePullDownRefresh": true } }, + { + "path": "pages/ai/index", + "style": { + "navigationBarTitleText": "客服服务", + "enablePullDownRefresh": true + } + }, { "path": "pages/web_view/index" } @@ -205,12 +212,14 @@ "style": { "navigationBarTitleText": "工单提报" } - },{ + }, + { "path": "pass/index", "style": { "navigationBarTitleText": "通行证" } - },{ + }, + { "path": "release_items/list/index", "style": { "navigationBarTitleText": "放行记录" @@ -361,12 +370,14 @@ "style": { "navigationBarTitleText": "停车缴费记录" } - },{ + }, + { "path": "visitor_applies/add/index", "style": { "navigationBarTitleText": "访客邀请" } - },{ + }, + { "path": "visitor_applies/list/index", "style": { "navigationBarTitleText": "访客邀请记录" @@ -398,6 +409,12 @@ "iconPath": "/static/tabbar/home_icon.png", "selectedIconPath": "/static/tabbar/home_active.png" }, + { + "pagePath": "pages/ai/index", + "text": "管家在线", + "iconPath": "/static/tabbar/news_active.png", + "selectedIconPath": "/static/tabbar/news_active.png" + }, { "pagePath": "pages/me/index", "text": "我的", diff --git a/src/pages/ai/chat.vue b/src/pages/ai/chat.vue index 3ca52ce..e909d46 100644 --- a/src/pages/ai/chat.vue +++ b/src/pages/ai/chat.vue @@ -1,7 +1,7 @@ diff --git a/src/pages/ai/style.scss b/src/pages/ai/style.scss index 6d9618c..5021608 100644 --- a/src/pages/ai/style.scss +++ b/src/pages/ai/style.scss @@ -6,14 +6,17 @@ width: 100%; height: 100vh; background: - linear-gradient(180deg, rgba(208, 229, 255, 0.44) 0%, rgba(255, 255, 255, 0) 600rpx), - linear-gradient(159deg, #d3d7ff 0%, rgba(255, 255, 255, 0) 400rpx), - linear-gradient(188deg, #dffff3 -8%, #f7f7f7 600rpx); + linear-gradient(180deg, rgba(208, 229, 255, 0.44) 0%, rgba(255, 255, 255, 0) 300rpx), + linear-gradient(159deg, #d3d7ff 0%, rgba(255, 255, 255, 0) 150rpx), + linear-gradient(188deg, #dffff3 -8%, #f7f7f7 300rpx); background-repeat: no-repeat; } .chat_messages_body { position: relative; z-index: 100; + .login_btn { + padding: 0 50rpx; + } } .chat-container { display: flex; @@ -27,10 +30,13 @@ width: 100%; padding: 0 30rpx; padding-top: 314rpx; - padding-bottom: calc(220rpx + env(safe-area-inset-bottom)); + padding-bottom: calc(260rpx + env(safe-area-inset-bottom)); box-sizing: border-box; flex: 1; } +.chat-messages-chat { + padding-bottom: calc(160rpx + env(safe-area-inset-bottom)); +} .message-item { display: flex; @@ -285,9 +291,12 @@ background-color: #fff; border-top: 1px solid #f8f8f8; padding: 20rpx 20rpx; - padding-bottom: calc(30rpx + env(safe-area-inset-bottom)); + padding-bottom: calc(155rpx + env(safe-area-inset-bottom)); z-index: 100; } +.chat-input-area-chat { + padding-bottom: calc(30rpx + env(safe-area-inset-bottom)); +} .input-container { display: flex; @@ -490,16 +499,18 @@ } .opening_remarks { - padding: 30rpx; + padding: 30rpx 30rpx 10rpx 30rpx; z-index: 1000; position: fixed; top: 0; left: 0; right: 0; background: - linear-gradient(180deg, rgba(208, 229, 255, 0.44) 0%, rgba(255, 255, 255, 0) 600rpx), - linear-gradient(159deg, #d3d7ff 0%, rgba(255, 255, 255, 0) 400rpx), - linear-gradient(188deg, #dffff3 -8%, #f7f7f7 600rpx); + linear-gradient(180deg, rgba(208, 229, 255, 0.44) 0%, rgba(255, 255, 255, 0) 300rpx), + linear-gradient(159deg, #d3d7ff 0%, rgba(255, 255, 255, 0) 150rpx), + linear-gradient(188deg, #dffff3 -8%, #f7f7f7 300rpx); + background-repeat: no-repeat; + .opening_remarks_body { height: 254rpx; border-radius: 20rpx; @@ -539,6 +550,8 @@ display: flex; align-items: center; flex-wrap: wrap; + overflow: hidden; + height: 160rpx; &_item { background-color: #fff; border-radius: 100rpx;