diff --git a/app.json b/app.json
index 3d4e2b9..126b57a 100644
--- a/app.json
+++ b/app.json
@@ -82,7 +82,9 @@
"pages/mineJob/index",
"pages/memberGroupList/index",
"pages/sendCreatorCode/index",
- "pages/creatorSelectPage/index"
+ "pages/creatorSelectPage/index",
+ "components/chat/text",
+ "components/chat/hello"
],
"permission": {
"scope.userLocation": {
@@ -102,7 +104,8 @@
"billShowInfo/index",
"systemMessage/index",
"todayBill/index",
- "addAddress/index"
+ "addAddress/index",
+ "chat/index"
]
}
],
@@ -116,8 +119,7 @@
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle": "black"
},
- "plugins": {
- },
+ "plugins": {},
"tabBar": {
"custom": true,
"color": "#444",
@@ -148,7 +150,6 @@
"pagePath": "pages/myBill/index",
"text": "工单"
},
-
{
"iconPath": "./assets/images/tabbar/user.png",
"selectedIconPath": "./assets/images/tabbar/user_active.png",
diff --git a/assets/iconfont/iconfont.wxss b/assets/iconfont/iconfont.wxss
index 12a510a..cab1aed 100644
--- a/assets/iconfont/iconfont.wxss
+++ b/assets/iconfont/iconfont.wxss
@@ -1,8 +1,8 @@
@font-face {
- font-family: "iconfont"; /* Project id 2708790 */
- src: url('//at.alicdn.com/t/c/font_2708790_0dvih56qdt3.woff2?t=1741316773850') format('woff2'),
- url('//at.alicdn.com/t/c/font_2708790_0dvih56qdt3.woff?t=1741316773850') format('woff'),
- url('//at.alicdn.com/t/c/font_2708790_0dvih56qdt3.ttf?t=1741316773850') format('truetype');
+ font-family: 'iconfont'; /* Project id 2708790 */
+ src: url('//at.alicdn.com/t/c/font_2708790_qvphqofg7ek.woff2?t=1741660802324') format('woff2'),
+ url('//at.alicdn.com/t/c/font_2708790_qvphqofg7ek.woff?t=1741660802324') format('woff'),
+ url('//at.alicdn.com/t/c/font_2708790_qvphqofg7ek.ttf?t=1741660802324') format('truetype');
}
.iconfont {
@@ -13,6 +13,34 @@
-moz-osx-font-smoothing: grayscale;
}
+.icon-fuzhi11:before {
+ content: "\e606";
+}
+
+.icon-fenxiangfenxiangshare:before {
+ content: "\e697";
+}
+
+.icon-huatongyuyin:before {
+ content: "\e64d";
+}
+
+.icon-fasong1:before {
+ content: "\100c0";
+}
+
+.icon-weixinjianpan2:before {
+ content: "\e67c";
+}
+
+.icon-useful:before {
+ content: "\100c4";
+}
+
+.icon-un_useful:before {
+ content: "\100c5";
+}
+
.icon-file-copy:before {
content: "\e7f6";
}
@@ -1492,3 +1520,4 @@
.icon-xiayiye1:before {
content: "\e695";
}
+
diff --git a/assets/images/chat.svg b/assets/images/chat.svg
new file mode 100644
index 0000000..57bcfe5
--- /dev/null
+++ b/assets/images/chat.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/components/chat/hello.js b/components/chat/hello.js
new file mode 100644
index 0000000..f11bd15
--- /dev/null
+++ b/components/chat/hello.js
@@ -0,0 +1,66 @@
+// components/chat/hello.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ },
+})
\ No newline at end of file
diff --git a/components/chat/hello.json b/components/chat/hello.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/components/chat/hello.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/components/chat/hello.wxml b/components/chat/hello.wxml
new file mode 100644
index 0000000..560319c
--- /dev/null
+++ b/components/chat/hello.wxml
@@ -0,0 +1,15 @@
+
+
+ Hi,我是
+ 大鹏
+ ,你的智能工作助理。
+
+
+ 以后找工作不用跟老板谈了,直接来跟
+ 大鹏
+ 谈。
+
+
+ 来说说你的要求,我们开始吧…
+
+
\ No newline at end of file
diff --git a/components/chat/hello.wxss b/components/chat/hello.wxss
new file mode 100644
index 0000000..d4547e0
--- /dev/null
+++ b/components/chat/hello.wxss
@@ -0,0 +1,10 @@
+/* components/chat/hello.wxss */
+.g_fw_600{
+ font-weight: 600;
+}
+.g_ml_4{
+ margin-left: 4px;
+}
+.g_mr_4{
+ margin-right: 4px;
+}
diff --git a/components/chat/text.js b/components/chat/text.js
new file mode 100644
index 0000000..4fa6bdf
--- /dev/null
+++ b/components/chat/text.js
@@ -0,0 +1,76 @@
+// components/chat/text.js
+Component({
+ properties: {
+ message: {
+ type: String,
+ value: ''
+ },
+ color: {
+ type: String,
+ value: ''
+ },
+ },
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/components/chat/text.json b/components/chat/text.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/components/chat/text.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/components/chat/text.wxml b/components/chat/text.wxml
new file mode 100644
index 0000000..c1705ae
--- /dev/null
+++ b/components/chat/text.wxml
@@ -0,0 +1,3 @@
+
+ {{message}}
+
\ No newline at end of file
diff --git a/components/chat/text.wxss b/components/chat/text.wxss
new file mode 100644
index 0000000..ee8a91e
--- /dev/null
+++ b/components/chat/text.wxss
@@ -0,0 +1,7 @@
+/* components/chat/text.wxss */
+.cblack{
+ color: #000;
+}
+.cwhite{
+ color: #fff;
+}
\ No newline at end of file
diff --git a/pages/message/index.js b/pages/message/index.js
index fc93aa9..37be0d0 100644
--- a/pages/message/index.js
+++ b/pages/message/index.js
@@ -49,6 +49,14 @@ Page({
content: '按偏好订阅每日接收推送',
time: '下午 1:30',
},
+ {
+ title: '智能匹配助手',
+ url: '/subPage/chat/index?title=智能匹配助手',
+ img: '../../assets/images/chat.svg',
+ content: 'AI大模型智能匹配',
+ time: '下午 1:30',
+ },
+
]
},
diff --git a/subPage/chat/index.js b/subPage/chat/index.js
new file mode 100644
index 0000000..8bfb273
--- /dev/null
+++ b/subPage/chat/index.js
@@ -0,0 +1,162 @@
+// subPage/chat/index.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ eventType:'input',// 底部事件类型 input 键盘输入,voice 语音输入
+ list:[
+ {
+ id:-1,
+ type:'text',
+ isUp:false,
+ isDown:false,
+ },
+ {
+ id:-1,
+ type:'text',
+ isUp:false,
+ isDown:false,
+ content:'测试输入框发送测试输入框发送测试输入框发送测试输入框发送'
+ },
+ {
+ id:0,
+ type:'text',
+ isUp:false,
+ isDown:false,
+ content:'我是AI回复,自定义回复'
+ },
+ {
+ id:1,
+ type:'text',
+ isUp:false,
+ isDown:false,
+ content:'再次发送再次发送再次发送'
+ },
+ ]
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ wx.setNavigationBarTitle({
+ title: options.title,
+ })
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ },
+
+ handleEvent(e){
+ let that = this;
+ that.animate();
+ that.setData({
+ eventType:e.currentTarget.dataset.type == 'input' ? 'voice':'input'
+ })
+ },
+ handleUp(e){
+ let that = this;
+ that.animate();
+ const list = [...that.data.list];
+ const index = e.currentTarget.dataset.index;
+ list[index].isUp = !list[index].isUp;
+ that.setData({
+ list: list
+ });
+ },
+ handleDown(e){
+ let that = this;
+ that.animate();
+ const list = [...that.data.list];
+ const index = e.currentTarget.dataset.index;
+ list[index].isDown = !list[index].isDown;
+ that.setData({
+ list: list
+ });
+ },
+ handleCopy(e){
+ let that = this;
+ that.animate();
+ const index = e.currentTarget.dataset.index;
+ let content = that.data.list[index].content; // 获取要复制的内容
+ if(index == 0){
+ content = "Hi,我是大鹏,你的智能工作助理。以后找工作不用跟老板谈了,直接来跟大鹏谈。来说说你的要求,我们开始吧…"
+ }
+ wx.setClipboardData({
+ data: content,
+ success: function (res) {
+ wx.showToast({
+ title: '复制成功',
+ icon: 'success',
+ duration: 2000
+ });
+ },
+ fail: function (res) {
+ wx.showToast({
+ title: '复制失败',
+ icon: 'none',
+ duration: 2000
+ });
+ }
+ });
+ },
+ handleShare(){
+ let that = this;
+ that.animate();
+ },
+
+
+ animate($type='light') {
+ wx.vibrateShort({
+ type:$type
+ });
+ },
+})
\ No newline at end of file
diff --git a/subPage/chat/index.json b/subPage/chat/index.json
new file mode 100644
index 0000000..68d7397
--- /dev/null
+++ b/subPage/chat/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "hello-panel": "../../components/chat/hello",
+ "text-panel": "../../components/chat/text"
+ }
+}
\ No newline at end of file
diff --git a/subPage/chat/index.wxml b/subPage/chat/index.wxml
new file mode 100644
index 0000000..93b1efb
--- /dev/null
+++ b/subPage/chat/index.wxml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 按住 说话
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/subPage/chat/index.wxss b/subPage/chat/index.wxss
new file mode 100644
index 0000000..dcdcde1
--- /dev/null
+++ b/subPage/chat/index.wxss
@@ -0,0 +1,246 @@
+.p-home-chat {
+ background-color: #f5f5f5;
+ height: 100%;
+}
+.p-home-chat .g_bg_f0a {
+ background-color: #CC463A;
+}
+.p-home-chat .chat-content {
+ width: calc(100%);
+ margin: 0 auto;
+ min-height: calc(8vh);
+ padding-bottom: 92px;
+}
+.p-home-chat .chat-content .chat-left {
+ padding: 0 10px;
+}
+.p-home-chat .chat-content .chat-left .msg {
+ border-radius: 12px;
+ line-height: 1.5;
+ word-break: break-all;
+}
+.p-home-chat .chat-content .chat-right {
+ padding: 0 10px;
+}
+.p-home-chat .chat-content .chat-right .msg {
+ border-radius: 12px;
+ line-height: 1.5;
+ word-break: break-all;
+}
+.p-home-chat .chat-operate {
+ position: fixed;
+ width: 100%;
+ left: 0;
+ bottom: 0px;
+ z-index: 1;
+ padding-top: 12px;
+ background-color: #f5f5f5;
+ padding-bottom: 24px;
+}
+.p-home-chat .chat-operate .m-input {
+ width: calc(100% - 20px);
+ margin: 0 auto;
+ border-radius: 40px;
+ height: 56px;
+ font-size: 16px;
+ background-color: #fff;
+ position: relative;
+}
+.p-home-chat .chat-operate .m-input .i-box{
+ width: 48px;
+}
+.p-home-chat .chat-operate .m-input .icon{
+ font-size: 22px;
+}
+.p-home-chat .chat-operate .m-input .right-box{
+ width: 48px;
+}
+.p-home-chat .chat-operate .m-input .right-box .icon{
+ font-size: 32px;
+ color: #bbb;
+}
+.p-home-chat .chat-operate .m-input .input-box{
+ padding: 0 12px;
+}
+.p-home-chat .chat-operate .m-input .voice-box{
+ padding: 0 12px;
+ width: 100%;
+ text-align: center;
+ font-size: 17px;
+ font-weight: 700;
+}
+.p-home-chat .chat-operate input {
+ height: 56px;
+}
+.p-home-chat .btn-share {
+ position: absolute;
+ right: 0;
+ top: 0;
+ z-index: 1;
+ width: 100%;
+ height: 100%;
+ opacity: 0;
+}
+.p-home-chat .longpress-top-mask {
+ position: fixed;
+ left: 0;
+ width: 100vw;
+ z-index: 99;
+ background-color: rgba(245, 245, 245, 0.5);
+ box-shadow: 0 -5px 10px rgba(245, 245, 245, 0.5);
+}
+.p-home-chat .longpress-bottom-mask {
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ width: 100vw;
+ z-index: 99;
+ background-color: rgba(245, 245, 245, 0.5);
+ box-shadow: 0 -5px 10px rgba(245, 245, 245, 0.5);
+}
+.p-home-chat .longpress-bottom-down {
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ width: 100vw;
+ z-index: 99;
+ background-color: #3578f6;
+ box-shadow: 0 -5px 10px rgba(245, 245, 245, 0.5);
+}
+@keyframes voi_animate {
+ 0% {
+ height: 50%;
+ background-color: #1677ff;
+ }
+ 20% {
+ height: 50%;
+ background-color: #92F7FE;
+ }
+ 50% {
+ height: 100%;
+ background-color: #1989fa;
+ }
+ 80% {
+ height: 50%;
+ background-color: #92F7FE;
+ }
+ 100% {
+ height: 50%;
+ background-color: #1677ff;
+ }
+}
+.p-home-chat .column-voice {
+ width: 100%;
+ height: 22px;
+ overflow: hidden;
+ max-width: calc(-40%);
+ margin: 0 auto;
+}
+.p-home-chat .column-voice .column-item {
+ width: 3px;
+ height: 100%;
+ margin-left: 6px;
+ border-radius: 10px;
+ background-color: #1677ff;
+ vertical-align: middle;
+ display: inline-block;
+}
+/* 容器样式 */
+.loader {
+ display: flex;
+}
+/* 单个点的样式 */
+.dot {
+ width: 10px;
+ height: 10px;
+ margin: 0 2px;
+ border-radius: 50%;
+ background-color: #666;
+ animation: dotPulse 1s infinite ease-in-out;
+}
+/* 动画定义 */
+@keyframes dotPulse {
+ 0%,
+ 80%,
+ 100% {
+ transform: scale(0.9);
+ }
+ 40% {
+ transform: scale(1.1);
+ }
+}
+/* 第二个点的延时 */
+.dot:nth-child(2) {
+ animation-delay: -0.33s;
+}
+/* 第三个点的延时 */
+.dot:nth-child(3) {
+ animation-delay: -0.66s;
+}
+textarea {
+ resize: none;
+ /* 禁止手动调整大小 */
+ overflow: hidden;
+ /* 隐藏超出部分 */
+ width: 100%;
+ /* 设置宽度 */
+}
+.hasTopPadding {
+ padding-top: 8px !important;
+ box-sizing: content-box !important;
+}
+.biggerSize::after {
+ content: "";
+ /* display: inline-block; */
+ width: 60px;
+ height: 60px;
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ z-index: 99;
+ transform: translate(-50%, -50%);
+}
+
+.chat-card{
+ padding: 0 10px;
+ margin-bottom: 10px;
+}
+.chat-card:last-child{
+ margin-bottom: 24px;
+}
+.bg-obj{
+ background-color: #fff;
+ border-radius: 12px;
+ line-height: 1.5;
+ word-break: break-all;
+ padding: 12px;
+}
+.main-obj{
+ background-color: #3578f6;
+ border-radius: 12px;
+ line-height: 1.5;
+ word-break: break-all;
+ padding: 12px;
+}
+.item-opera{
+ margin-top: 10px;
+}
+.era-icon{
+ font-size: 20px;
+ color: #888888;
+}
+.g_mr_12{
+ margin-right: 12px;
+}
+.icon-active{
+ color: #3578f6;
+}
+.g_w_all{
+ width: 100%;
+}
+.min80{
+ min-width: 80vw;
+}
+.max80{
+ max-width: 80vw;
+}
\ No newline at end of file