diff --git a/.idea/UniappTool.xml b/.idea/UniappTool.xml
index 8694db6..6b7cefe 100644
--- a/.idea/UniappTool.xml
+++ b/.idea/UniappTool.xml
@@ -4,9 +4,12 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..9ae2fa3
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 7910fe1..28c04eb 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,7 +5,13 @@
+
+
+
+
+
+
@@ -13,9 +19,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{
"associatedIndex": 0
}
@@ -26,11 +98,15 @@
{
"keyToString": {
+ "RunOnceActivity.MCP Project settings loaded": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
+ "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
"RunOnceActivity.git.unshallow": "true",
+ "RunOnceActivity.typescript.service.memoryLimit.init": "true",
+ "codeWithMe.voiceChat.enabledByDefault": "false",
"git-widget-placeholder": "master",
"junie.onboarding.icon.badge.shown": "true",
- "last_opened_file_path": "/Users/gxwebsoft/APP/anshangjia-uniapp",
+ "last_opened_file_path": "/Users/liangxin/Project/Html/miniProgram/aishangjia-uniapp/static",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
@@ -39,18 +115,20 @@
"settings.editor.selected.configurable": "preferences.pluginManager",
"to.speed.mode.migration.done": "true",
"ts.external.directory.path": "/Applications/WebStorm.app/Contents/plugins/javascript-plugin/jsLanguageServicesImpl/external",
- "vue.rearranger.settings.migration": "true"
+ "vue.rearranger.settings.migration": "true",
+ "wxn.project": "true"
}
}
+
-
+
@@ -78,6 +156,12 @@
+
+
+
+
+
+
diff --git a/api/config.js b/api/config.js
index 72be33a..4fb521b 100755
--- a/api/config.js
+++ b/api/config.js
@@ -13,6 +13,7 @@ module.exports = {
// 生产环境
serverUrl: 'https://server.websoft.top/api',
apiUrl: 'https://cms-api.websoft.top/api',
+ // apiUrl: 'http://127.0.0.1:9200/api',
socketUrl: 'wss://server.websoft.top',
// fileUrl: 'https://oss.jimeigroup.cn',
diff --git a/api/house-ai-chat.js b/api/house-ai-chat.js
new file mode 100644
index 0000000..133ccde
--- /dev/null
+++ b/api/house-ai-chat.js
@@ -0,0 +1,8 @@
+import http from './index.js';
+
+// AI找房问答
+export const sendHouseAiMessage = (data) => http.post('/house/ai-chat/message', data)
+
+export default {
+ sendHouseAiMessage
+}
diff --git a/api/house-ai-config.js b/api/house-ai-config.js
new file mode 100644
index 0000000..f956096
--- /dev/null
+++ b/api/house-ai-config.js
@@ -0,0 +1,8 @@
+import http from './index.js';
+
+// 获取当前租户AI配置
+export const getCurrentHouseAiConfig = () => http.get('/house/ai-config/current')
+
+export default {
+ getCurrentHouseAiConfig
+}
diff --git a/api/house-message.js b/api/house-message.js
new file mode 100644
index 0000000..84899a9
--- /dev/null
+++ b/api/house-message.js
@@ -0,0 +1,8 @@
+import http from './index.js';
+
+// 新增AI找房留言
+export const addHouseMessage = (data) => http.post('/house/house-message', data)
+
+export default {
+ addHouseMessage
+}
diff --git a/manifest.json b/manifest.json
index 32a2dbe..9016156 100755
--- a/manifest.json
+++ b/manifest.json
@@ -5,6 +5,7 @@
"versionName" : "2.0.6",
"versionCode" : 206,
"transformPx" : false,
+ "sassImplementationName" : "node-sass",
/* 5+App特有相关 */
"app-plus" : {
"usingComponents" : true,
diff --git a/pages.json b/pages.json
index bf8b43a..f842a0d 100755
--- a/pages.json
+++ b/pages.json
@@ -121,6 +121,13 @@
"navigationBarTitleText": "搜索"
}
},
+ {
+ "path": "pages/ai-house/index",
+ "style": {
+ "navigationBarTitleText": "AI找房",
+ "enablePullDownRefresh": false
+ }
+ },
{
"path": "pages/login/index",
"style": {
@@ -187,4 +194,4 @@
"easycom": {
"^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue"
}
-}
\ No newline at end of file
+}
diff --git a/pages/ai-house/index.vue b/pages/ai-house/index.vue
new file mode 100644
index 0000000..effd58b
--- /dev/null
+++ b/pages/ai-house/index.vue
@@ -0,0 +1,1212 @@
+
+
+
+
+
+
+ AI
+
+ AI找房助手已就位
+ {{ introDesc }}
+
+
+
+
+
+
+
+ 您想要找什么样的房型?
+
+ 多少平方
+
+
+
+ 多少楼层
+
+
+
+ 多少租金
+
+
+
+ 什么地段
+
+
+
+
+
+ 留言已提交
+ 顾问收到后会尽快通过您留下的方式联系您。
+
+
+ 留下联系方式
+ 姓名必填,手机号和微信号二选一,方便顾问继续跟进。
+ 点击填写
+
+
+ 留言板
+ 请填写联系方式,手机号和微信号至少填一项。
+
+ 姓名
+
+
+
+ 手机号
+
+
+
+ 微信号
+
+
+
+ {{ messageSubmitting ? '提交中...' : '提交留言' }}
+
+
+
+
+ {{ message.content }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ message.content || '为您找到以下常见问题答案:' }}
+
+ {{ item.question }}
+ {{ item.answer }}
+
+
+
+ {{ message.content }}
+
+
+
+
+ {{ item.houseTitle }}
+ {{ item.address || item.region || item.city || '位置待补充' }}
+ {{ item.extent }}m²|{{ item.toward }}
+ {{ item.monthlyRent }}元/月
+
+
+
+
+
+ 我
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 找房
+
+
+
+
+ {{ loading ? '停止' : '发送' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/index/index.vue b/pages/index/index.vue
index f18e637..ef0efba 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -1,351 +1,505 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.houseTitle }}
- {{ item.extent }}m²|{{ item.toward }}
- {{ item.monthlyRent }}元/月
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.houseTitle }}
- {{ item.extent }}m²|{{ item.toward }}
- {{ item.monthlyRent }}元/月
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AI 找房
+ 输入需求,自动筛选匹配房源
+
+
+ AI找房
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.houseTitle }}
+
+ {{ item.extent }}m²|{{ item.toward }}
+
+ {{ item.monthlyRent }}元/月
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.houseTitle }}
+
+ {{ item.extent }}m²|{{ item.toward }}
+
+ {{ item.monthlyRent }}元/月
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
+ .ai-entry-desc {
+ margin-top: 8rpx;
+ font-size: 24rpx;
+ color: #667085;
+ }
+ }
+
+ .ai-entry-btn {
+ min-width: 160rpx;
+ height: 70rpx;
+ line-height: 70rpx;
+ text-align: center;
+ color: #ffffff;
+ font-size: 28rpx;
+ font-weight: 600;
+ border-radius: 999rpx;
+ background: linear-gradient(to right, #3f72f4, #7a9cf3);
+ box-shadow: 0 10rpx 20rpx rgba(63, 114, 244, 0.22);
+ }
+ }
+
+ .ai-float-entry {
+ position: fixed;
+ right: 28rpx;
+ bottom: calc(48rpx + env(safe-area-inset-bottom));
+ z-index: 1000;
+ width: 132rpx;
+ height: 132rpx;
+ border-radius: 50%;
+ overflow: hidden;
+ background: #ffffff;
+ box-shadow: 0 12rpx 32rpx rgba(31, 42, 55, 0.2);
+ }
+
+ .ai-float-image {
+ display: block;
+ width: 132rpx;
+ height: 132rpx;
+ }
+
+ .house-list {
+ // width: 700rpx;
+ // margin: 20rpx auto;
+ // display: flex;
+ // flex-wrap: wrap;
+ // justify-content: space-between;
+
+ .item {
+ margin-bottom: 40rpx;
+ border-radius: 20rpx;
+ // box-shadow: 0 3rpx 10rpx 0px #cccccc;
+ background-color: #ffffff;
+ width: 338rpx;
+
+ image {
+ border-radius: 20rpx 20rpx 0 0;
+ height: 420rpx;
+ width: 338rpx;
+ }
+
+ .info {
+ padding: 20rpx 20rpx;
+ display: flex;
+ flex-direction: column;
+
+ .title {
+ font-size: 30rpx;
+ text-overflow: -o-ellipsis-lastline;
+ overflow: hidden; //溢出内容隐藏
+ text-overflow: ellipsis; //文本溢出部分用省略号表示
+ display: -webkit-box; //特别显示模式
+ -webkit-line-clamp: 2; //行数
+ line-clamp: 2;
+ -webkit-box-orient: vertical; //盒子中内容竖直排列
+ }
+
+ .desc {
+ color: #999999;
+ font-size: 28rpx;
+ }
+
+ .price {
+ color: #ff0000;
+ font-size: 30rpx;
+ }
+ }
+ }
+ }
+}
+
+.select-width {
+ width: 200rpx;
+}
+
diff --git a/static/chat.png b/static/chat.png
new file mode 100644
index 0000000..d9623e2
Binary files /dev/null and b/static/chat.png differ
diff --git a/sub_pages/house/detail.vue b/sub_pages/house/detail.vue
index 55cd271..dc6e63f 100644
--- a/sub_pages/house/detail.vue
+++ b/sub_pages/house/detail.vue
@@ -195,7 +195,7 @@
-->
-
+
AI找房
@@ -224,8 +224,6 @@
:apiCall="posterPreviewApiCall"
:apiParam="{}"
/>
-
-
@@ -240,7 +238,6 @@
import ShareSheet from '@/components/share-sheet'
import HousePosterGenerator from '@/components/house-poster-generator'
import GoodsPosterPopup from '@/components/goods-poster-popup'
- import AiChatPopup from '@/components/ai-chat-popup/ai-chat-popup.vue'
const menu = [{
name: '推荐',
@@ -350,8 +347,7 @@
components: {
ShareSheet,
HousePosterGenerator,
- GoodsPosterPopup,
- AiChatPopup
+ GoodsPosterPopup
},
data() {
return {
@@ -397,9 +393,7 @@
showPosterPreview: false,
currentPosterUrl: '',
dealerId: 0,
- mobile: '',
- // AI找房弹窗
- showAIChat: false
+ mobile: ''
};
},
@@ -809,12 +803,11 @@
})
},
- // AI找房:打开对话弹窗
- openAIChat() {
- console.log('openAIChat called, showAIChat before:', this.showAIChat)
- this.showAIChat = true
- console.log('showAIChat after:', this.showAIChat)
- },
+ goAiHouse() {
+ uni.navigateTo({
+ url: '/pages/ai-house/index'
+ })
+ },
// 下载海报图片
downloadPosterImage(imageUrl) {