From 1e572b05b85218a0268c57c9e5fb8e944342ff86 Mon Sep 17 00:00:00 2001 From: BianLzhaoMin <11485688+bianliangzhaomin123@user.noreply.gitee.com> Date: Mon, 23 Dec 2024 18:21:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=88=97=E8=A1=A8=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84=20=E5=8F=91=E9=80=81=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 4 +- package-lock.json | 7 + package.json | 1 + .../components/details-model.vue | 10 +- src/pages/goods-list/index.vue | 227 ++++++++++++++++-- src/pages/message-pages/index.vue | 56 +++-- src/pages/message/index.vue | 19 +- src/services/message/index.js | 32 +++ vite.config.js | 4 +- 9 files changed, 325 insertions(+), 35 deletions(-) create mode 100644 src/services/message/index.js diff --git a/index.html b/index.html index 407f674..685ae04 100644 --- a/index.html +++ b/index.html @@ -19,7 +19,9 @@ '') - + + 安徽租赁商城 + diff --git a/package-lock.json b/package-lock.json index 9b780f6..115ded8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,6 +26,7 @@ "@vant/area-data": "^2.0.0", "less": "^4.2.1", "less-loader": "^12.2.0", + "lodash-es": "^4.17.21", "moment": "^2.30.1", "pinia": "^2.3.0", "pinia-plugin-persistedstate": "^4.1.3", @@ -9504,6 +9505,12 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://repo.huaweicloud.com/repository/npm/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", diff --git a/package.json b/package.json index a2732cc..80e952b 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "@vant/area-data": "^2.0.0", "less": "^4.2.1", "less-loader": "^12.2.0", + "lodash-es": "^4.17.21", "moment": "^2.30.1", "pinia": "^2.3.0", "pinia-plugin-persistedstate": "^4.1.3", diff --git a/src/pages/goods-details/components/details-model.vue b/src/pages/goods-details/components/details-model.vue index 59dc7c8..eff34f4 100644 --- a/src/pages/goods-details/components/details-model.vue +++ b/src/pages/goods-details/components/details-model.vue @@ -47,7 +47,7 @@ - + { uni.switchTab({ url: '/pages/cart/index' }) } +// 在线聊 +const onLineMessage = () => { + const { companyId, companyName, ownId } = deviceInfo.value + uni.navigateTo({ + url: `/pages/message-pages/index?id=${companyId}&name=${companyName}&ownId=${ownId}`, + }) +} + onLoad(() => { userCompanyId.value = memberStore.userInfo.companyId getDeviceDetailsData() diff --git a/src/pages/goods-list/index.vue b/src/pages/goods-list/index.vue index 4423cbc..ef1539a 100644 --- a/src/pages/goods-list/index.vue +++ b/src/pages/goods-list/index.vue @@ -12,20 +12,32 @@ - - - 使用年限 - - - - 租金 - - - - 上架时间 - + + 使用年限 + + + + + 租金 + + + + + + + 上架时间 + + + + + + + + + 筛选 + @@ -40,6 +52,49 @@ + + + + + + + + 全部筛选 + + + + + + + + + + {{ selectList[activeSelect].selectName }} + + + {{ item.name }} + + + + + + + @@ -50,8 +105,76 @@ import Navbar from '@/components/Navbar/index' import { getDeviceListAPI } from '@/services/index/index.js' import { onLoad } from '@dcloudio/uni-app' import { ref } from 'vue' -const active = ref('') +const activeSelect = ref(0) +const showBottom = ref(false) const deviceList = ref([]) +const selectList = ref([ + { + selectName: '使用年限', + val_list: [ + { + name: '全部', + value: '', + }, + { + name: '0-1年', + value: [0, 1], + }, + ], + }, + { + selectName: '设备类型', + val_list: [ + { + name: '全部', + value: '', + }, + { + name: '0-1年', + value: [0, 1], + }, + ], + }, + { + selectName: '下级分类', + val_list: [ + { + name: '全部', + value: '', + }, + { + name: '0-1年', + value: [0, 1], + }, + ], + }, + { + selectName: '价格区间', + val_list: [ + { + name: '全部', + value: '', + }, + { + name: '0-1年', + value: [0, 1], + }, + ], + }, + { + selectName: '设备所属公司', + val_list: [ + { + name: '全部', + value: '', + }, + { + name: '0-1年', + value: [0, 1], + }, + ], + }, +]) const onScrollTolower = () => { console.log('滚动触底') } @@ -82,6 +205,10 @@ const onClickLeft = () => { url: '/pages/index/index', }) } + +const onFilter = () => { + showBottom.value = true +} onLoad(() => { getDeviceListData() }) @@ -116,15 +243,40 @@ onLoad(() => { } .goods-items { + display: flex; + justify-content: space-between; padding: 10px; box-sizing: border-box; border-top-left-radius: 20px; border-top-right-radius: 20px; background: $uni-bg-color; -} -.flex-row-start view { - margin-right: 6px; + .filter-box { + display: flex; + align-items: center; + + .filter-items { + display: flex; + align-items: center; + + .filter-type { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + padding: 0 6px; + + & .van-icon:first-child { + transform: rotateZ(-90deg); + margin-bottom: -3px; + } + & .van-icon:last-child { + transform: rotateZ(90deg); + margin-top: -3px; + } + } + } + } } .van-tabbar { @@ -141,4 +293,47 @@ onLoad(() => { :deep(.van-nav-bar__title) { color: #333; } + +.filter-bottom { + height: 100%; + display: flex; + flex-direction: column; + overflow-y: hidden; +} + +.filter-content { + flex: 1; + height: 100%; + display: flex; + + .right-btns { + flex: 1; + padding: 10px; + box-sizing: border-box; + + .btns { + display: flex; + flex-wrap: wrap; + margin-top: 15px; + view { + width: calc((100% - 20px) / 3); + margin-bottom: 10px; + margin-right: 10px; + height: 28px; + line-height: 28px; + text-align: center; + border-radius: 14px; + } + + .active_btn { + color: #22ab9b; + background-color: #d1eae7; + } + + & view:nth-child(3n) { + margin-right: 0; + } + } + } +} diff --git a/src/pages/message-pages/index.vue b/src/pages/message-pages/index.vue index 0b83269..b0114f8 100644 --- a/src/pages/message-pages/index.vue +++ b/src/pages/message-pages/index.vue @@ -3,15 +3,15 @@ - 老张租赁 + {{ contactUser }} - - + + - 你还有货吗 + {{ item.messageContent }} - + - 你还有货吗 + {{ item.messageContent }} @@ -38,8 +38,8 @@ - - + + @@ -48,17 +48,44 @@ import { ref } from 'vue' import { useMemberStore } from '@/stores/index.js' import { onLoad } from '@dcloudio/uni-app' +import { debounce } from 'lodash-es' +import { sendMessageAPI, getMessageInfoAPI } from '@/services/message/index.js' const memberStore = useMemberStore() -const userName = ref('') -const userAccount = ref('') +const contactUser = ref('') +const messageList = ref([]) +const myCompanyId = ref() + +const sendParams = ref({ + toUser: '', + toCompany: '', + messageContent: '', +}) const onClickLeft = () => { uni.navigateBack() } -onLoad(() => { - userName.value = memberStore.userInfo.nickName - userAccount.value = memberStore.userInfo.userName +const getMessageInfoData = async () => { + const { data: res } = await getMessageInfoAPI({ toCompany: sendParams.value.toCompany }) + messageList.value = res +} + +// 发送按钮 +const onSendMessage = debounce(async () => { + const res = await sendMessageAPI(sendParams.value) + if (res.code === 200) { + getMessageInfoData() + } else { + showNotify({ type: 'success', message: '发送失败' }) + } +}, 500) + +onLoad((options) => { + myCompanyId.value = memberStore.userInfo?.companyId + sendParams.value.toCompany = options?.id + sendParams.value.toUser = options?.ownId + contactUser.value = options?.name + getMessageInfoData() }) @@ -138,7 +165,8 @@ onLoad(() => { bottom: 0; left: 0; padding: 12px 0; - height: 60px; + // height: 60px; + height: auto; width: 100%; display: flex; align-items: center; diff --git a/src/pages/message/index.vue b/src/pages/message/index.vue index 10a1e09..3f9b637 100644 --- a/src/pages/message/index.vue +++ b/src/pages/message/index.vue @@ -53,16 +53,33 @@