租房新通知
This commit is contained in:
parent
1457029a1e
commit
6e511ab2ef
@ -5,8 +5,8 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import login from "@/components/public/login.vue"
|
import login from "@/components/public/login.vue"
|
||||||
import store from "@/store"
|
import store from "@/store"
|
||||||
import {onMounted, watch, watchEffect} from "vue"
|
import { onMounted, watch, watchEffect } from "vue"
|
||||||
import {useRoute} from "vue-router"
|
import { useRoute } from "vue-router"
|
||||||
import api from "./utils/api"
|
import api from "./utils/api"
|
||||||
let socketTask = null
|
let socketTask = null
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ const timedTransmission = () => {
|
|||||||
// if (socketTask.readyState != 1 || timedTransmissionState) return
|
// if (socketTask.readyState != 1 || timedTransmissionState) return
|
||||||
if (socketTask.readyState != 1) return
|
if (socketTask.readyState != 1) return
|
||||||
// timedTransmissionState = true
|
// timedTransmissionState = true
|
||||||
socketTask.send(JSON.stringify({type: "ping"}))
|
socketTask.send(JSON.stringify({ type: "ping" }))
|
||||||
console.log("ping", new Date())
|
console.log("ping", new Date())
|
||||||
setTimeout(() => timedTransmission(), useSocketInterval)
|
setTimeout(() => timedTransmission(), useSocketInterval)
|
||||||
}
|
}
|
||||||
|
6
src/assets/img/user/WeChat-icon-blue.svg
Normal file
6
src/assets/img/user/WeChat-icon-blue.svg
Normal file
File diff suppressed because one or more lines are too long
6
src/assets/img/user/arrow-circular-blue.svg
Normal file
6
src/assets/img/user/arrow-circular-blue.svg
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="18px" height="18px" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g transform="matrix(1 0 0 1 -220 -734 )">
|
||||||
|
<path d="M 7.875 15.0703125 C 8.078125 15.0703125 8.25390625 14.99609375 8.40234375 14.84765625 L 13.72265625 9.52734375 C 13.87109375 9.37890625 13.9453125 9.203125 13.9453125 9 C 13.9453125 8.796875 13.87109375 8.62109375 13.72265625 8.47265625 L 8.40234375 3.15234375 C 8.25390625 3.00390625 8.078125 2.9296875 7.875 2.9296875 C 7.671875 2.9296875 7.49609375 3.00390625 7.34765625 3.15234375 L 6.15234375 4.34765625 C 6.00390625 4.49609375 5.9296875 4.671875 5.9296875 4.875 C 5.9296875 5.078125 6.00390625 5.25390625 6.15234375 5.40234375 L 9.75 9 L 6.15234375 12.59765625 C 6.00390625 12.74609375 5.9296875 12.921875 5.9296875 13.125 C 5.9296875 13.328125 6.00390625 13.50390625 6.15234375 13.65234375 L 7.34765625 14.84765625 C 7.49609375 14.99609375 7.671875 15.0703125 7.875 15.0703125 Z M 16.79296875 4.482421875 C 17.59765625 5.861328125 18 7.3671875 18 9 C 18 10.6328125 17.59765625 12.138671875 16.79296875 13.517578125 C 15.98828125 14.896484375 14.896484375 15.98828125 13.517578125 16.79296875 C 12.138671875 17.59765625 10.6328125 18 9 18 C 7.3671875 18 5.861328125 17.59765625 4.482421875 16.79296875 C 3.103515625 15.98828125 2.01171875 14.896484375 1.20703125 13.517578125 C 0.40234375 12.138671875 0 10.6328125 0 9 C 0 7.3671875 0.40234375 5.861328125 1.20703125 4.482421875 C 2.01171875 3.103515625 3.103515625 2.01171875 4.482421875 1.20703125 C 5.861328125 0.402343749999998 7.3671875 0 9 0 C 10.6328125 0 12.138671875 0.402343749999998 13.517578125 1.20703125 C 14.896484375 2.01171875 15.98828125 3.103515625 16.79296875 4.482421875 Z " fill-rule="nonzero" fill="#266cbf" stroke="none" transform="matrix(1 0 0 1 220 734 )" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
@ -168,7 +168,6 @@ watchEffect(() => {
|
|||||||
let carouselIndex = ref(0) // 轮播图的索引
|
let carouselIndex = ref(0) // 轮播图的索引
|
||||||
|
|
||||||
const carouselChange = value => {
|
const carouselChange = value => {
|
||||||
console.log("value", value)
|
|
||||||
carouselIndex.value = value
|
carouselIndex.value = value
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -4,19 +4,18 @@
|
|||||||
<div class="header flexflex">
|
<div class="header flexflex">
|
||||||
<img class="header-icon" src="@/assets/img/user/inform-icon.png" />
|
<img class="header-icon" src="@/assets/img/user/inform-icon.png" />
|
||||||
<img class="header-text" src="@/assets/img/user/inform-text.png" />
|
<img class="header-text" src="@/assets/img/user/inform-text.png" />
|
||||||
<img class="circle" src="@/assets/img/user/big-circle.svg">
|
<img class="circle" src="@/assets/img/user/big-circle.svg" />
|
||||||
<img class="circle" src="@/assets/img/user/small-circle.svg">
|
<img class="circle" src="@/assets/img/user/small-circle.svg" />
|
||||||
<img class="white-cross" @click="emit('close')" src="@/assets/img/publicImage/white-cross.svg">
|
<img class="white-cross" @click="emit('close')" src="@/assets/img/publicImage/white-cross.svg" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="attention flexacenter" v-if="issubscribe == 0">
|
<div class="attention flexacenter" v-if="issubscribe == 0">
|
||||||
<div class="attention-text">关注寄托服务号,第一时间收到消息通知</div>
|
<div class="attention-text">关注寄托服务号,第一时间收到消息通知</div>
|
||||||
<el-popover placement="bottom" popper-class="flexcenter" :width="160" trigger="click"
|
<el-popover placement="bottom" popper-class="flexcenter" :width="160" trigger="click" popper-style="border-radius: 14px;padding: 20px;">
|
||||||
popper-style="border-radius: 14px;padding: 20px;">
|
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<div class="attention-btn flexcenter">关注</div>
|
<div class="attention-btn flexcenter">关注</div>
|
||||||
</template>
|
</template>
|
||||||
<img class="QR-code" :src="qrcode" alt="">
|
<img class="QR-code" :src="qrcode" alt="" />
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -27,118 +26,171 @@
|
|||||||
<template v-for="(item, index) in list" :key="index">
|
<template v-for="(item, index) in list" :key="index">
|
||||||
<!-- event: certapplication 群发 middlemanauth 中介 tenementcertified 个人 tenementreport 举报 -->
|
<!-- event: certapplication 群发 middlemanauth 中介 tenementcertified 个人 tenementreport 举报 -->
|
||||||
<div class="item flexflex" v-if="item['event'] == 'certapplication'">
|
<div class="item flexflex" v-if="item['event'] == 'certapplication'">
|
||||||
<img class="new" v-if="item['isread'] == 0" src="@/assets/img/user/new.png">
|
<img class="new" v-if="item['isread'] == 0" src="@/assets/img/user/new.png" />
|
||||||
<div class="time">{{ item['timestamp'] }}</div>
|
<div class="time">{{ item["timestamp"] }}</div>
|
||||||
<div class="text">{{ item['message'] }}</div>
|
<div class="text">{{ item["message"] }}</div>
|
||||||
<el-popover placement="bottom" :width="464" trigger="click" :show-arrow="false"
|
<div class="footer-list flexflex">
|
||||||
popper-style="background: transparent;padding:0;box-shadow: none;border: none;">
|
<el-popover placement="bottom" :width="464" trigger="click" :show-arrow="false" popper-style="background: transparent;padding:0;box-shadow: none;border: none;">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<div class="footer flexcenter" v-if="item['data'] && item['data']['url']">
|
<div class="footer flex1 flexcenter" v-if="item['data'] && item['data']['url']">{{ item.data.type == "intermediary" ? "身份" : "房源" }}认证<img class="green-arrow" src="@/assets/img/user/arrow-circular-blue.svg" /></div>
|
||||||
去认证<img class="green-arrow" src="@/assets/img/publicImage/green-arrow.svg">
|
</template>
|
||||||
|
|
||||||
|
<div v-if="item['data']['url']?.indexOf('middlemanAuth') != -1" class="btn-qrcode">
|
||||||
|
<authentication-info :type="2" style="height: 217px;"></authentication-info>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- <img v-if="item['data']['url'].indexOf('middlemanAuth') != -1" style="width: 360px;"
|
<div v-else class="btn-qrcode flexcenter">
|
||||||
src="@/assets/img/publicImage/mediation-authentication-code.svg">
|
<authentication-info :type="1" style="height: 217px;"></authentication-info>
|
||||||
<img v-else style="width: 360px;" src="@/assets/img/publicImage/housing-certification-code.svg"> -->
|
</div>
|
||||||
|
</el-popover>
|
||||||
<div v-if="item['data']['url'].indexOf('middlemanAuth') != -1" class="btn-qrcode">
|
<el-popover placement="bottom" popper-class="consult-popover flexcenter" :width="464" trigger="click" :show-arrow="false" popper-style="background: transparent;padding:0;box-shadow: none;border: none;">
|
||||||
<authentication-info :type="2" style="height: 217px ;"></authentication-info>
|
<template #reference>
|
||||||
<!-- <img class="bj" src="@/assets/img/publicImage/mediation-authentication-bj.jpg">
|
<div class="footer flex1 flexcenter helper">
|
||||||
<img class="QR-code" src="https://app.gter.net/tenement/pc/api/qrcode?type=middlemanAuth"> -->
|
<img class="green-arrow" src="@/assets/img/user/WeChat-icon-blue.svg" />
|
||||||
</div>
|
添加小助手
|
||||||
|
</div>
|
||||||
<div v-else class="btn-qrcode flexcenter">
|
</template>
|
||||||
<authentication-info :type="1" style="height: 217px ;"></authentication-info>
|
<div class="consult-pop flexacenter">
|
||||||
<!-- <img class="bj" src="@/assets/img/publicImage/housing-certification-bj.jpg">
|
<div class="consult-title flexacenter">欢迎联系 <b>方同学的小助手</b> 咨询</div>
|
||||||
<img class="QR-code" src="https://app.gter.net/tenement/pc/api/qrcode?type=propertyAuth"> -->
|
<div class="consult-QRcode flexcenter">
|
||||||
</div>
|
<img class="consult-QRcode-img" :src="wechat['wechatqrcode']" />
|
||||||
|
</div>
|
||||||
</el-popover>
|
<div class="consult-hint">微信扫码添加好友</div>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item flexflex" v-else-if="item['event'] == 'middlemanauth'">
|
<div class="item flexflex" v-else-if="item['event'] == 'middlemanauth'">
|
||||||
<img class="new" v-if="item['isread'] == 0" src="@/assets/img/user/new.png">
|
<img class="new" v-if="item['isread'] == 0" src="@/assets/img/user/new.png" />
|
||||||
<div class="time">{{ item['timestamp'] }}</div>
|
<div class="time">{{ item["timestamp"] }}</div>
|
||||||
<div class="text">{{ item['message'] }}</div>
|
<div class="text">{{ item["message"] }}</div>
|
||||||
<el-popover placement="bottom" :width="464" trigger="click" :show-arrow="false"
|
<div class="footer-list flexflex">
|
||||||
popper-style="background: transparent;padding:0;box-shadow: none;border: none;">
|
<el-popover placement="bottom" :width="464" trigger="click" :show-arrow="false" popper-style="background: transparent;padding:0;box-shadow: none;border: none;">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<div class="footer flexcenter"
|
<div class="footer flex1 flexcenter" v-if="item.data && item.data['middlemanauthstatus'] == 0 && item.data.url">身份认证<img class="green-arrow" src="@/assets/img/user/arrow-circular-blue.svg" /></div>
|
||||||
v-if="item.data && item.data['middlemanauthstatus'] == 0 && item.data.url">
|
</template>
|
||||||
去认证<img class="green-arrow" src="@/assets/img/publicImage/green-arrow.svg">
|
<div class="btn-qrcode flexcenter">
|
||||||
|
<authentication-info :type="2" style="height: 217px;"></authentication-info>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</el-popover>
|
||||||
<div class="btn-qrcode flexcenter">
|
<el-popover placement="bottom" popper-class="consult-popover flexcenter" :width="464" trigger="click" :show-arrow="false" popper-style="background: transparent;padding:0;box-shadow: none;border: none;">
|
||||||
<authentication-info :type="2" style="height: 217px ;"></authentication-info>
|
<template #reference>
|
||||||
<!-- <img class="bj" src="@/assets/img/publicImage/mediation-authentication-bj.jpg">
|
<div class="footer flex1 flexcenter helper">
|
||||||
<img class="QR-code" src="https://app.gter.net/tenement/pc/api/qrcode?type=middlemanAuth"> -->
|
<img class="green-arrow" src="@/assets/img/user/WeChat-icon-blue.svg" />
|
||||||
</div>
|
添加小助手
|
||||||
<!-- <img style="width: 360px;" src="@/assets/img/publicImage/mediation-authentication-code.svg"> -->
|
</div>
|
||||||
</el-popover>
|
</template>
|
||||||
</div>
|
<div class="consult-pop flexacenter">
|
||||||
|
<div class="consult-title flexacenter">欢迎联系 <b>方同学的小助手</b> 咨询</div>
|
||||||
<div class="item flexflex" v-else-if="item['event'] == 'tenementcertified'">
|
<div class="consult-QRcode flexcenter">
|
||||||
<img class="new" v-if="item['isread'] == 0" src="@/assets/img/user/new.png">
|
<img class="consult-QRcode-img" :src="wechat['wechatqrcode']" />
|
||||||
<div class="time">{{ item['timestamp'] }}</div>
|
</div>
|
||||||
<div class="text">{{ item['message'] }}</div>
|
<div class="consult-hint">微信扫码添加好友</div>
|
||||||
<div class="info flexacenter" v-if="item['data']">
|
</div>
|
||||||
<img class="soldOut" v-if="item['data']['status'] != 1" src="@/assets/img/user/u75.png" alt="">
|
</el-popover>
|
||||||
<img class="img-icon" v-if="item['data']['isimage'] == 1"
|
|
||||||
src="@/assets/img/publicImage/img-icon.png">
|
|
||||||
<div class="title flex1 ellipsis">{{ item['data']['subject'] }}</div>
|
|
||||||
<div class="id">房源ID:{{ item['data']['id'] }}</div>
|
|
||||||
</div>
|
</div>
|
||||||
<el-popover placement="bottom" :width="464" trigger="click" :show-arrow="false"
|
|
||||||
popper-style="background: transparent;padding:0;box-shadow: none;border: none;">
|
|
||||||
<template #reference>
|
|
||||||
<div class="footer flexcenter"
|
|
||||||
v-if="item.data && item.data['tenementcertifiedstatus'] == 0 && item.data.url">
|
|
||||||
去认证<img class="green-arrow" src="@/assets/img/publicImage/green-arrow.svg">
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<div class="btn-qrcode flexcenter">
|
|
||||||
<authentication-info :type="1" style="height: 217px ;"></authentication-info>
|
|
||||||
<!-- <img class="bj" src="@/assets/img/publicImage/housing-certification-bj.jpg">
|
|
||||||
<img class="QR-code" src="https://app.gter.net/tenement/pc/api/qrcode?type=propertyAuth"> -->
|
|
||||||
</div>
|
|
||||||
<!-- <img style="width: 360px;" src="@/assets/img/publicImage/housing-certification-code.svg"> -->
|
|
||||||
</el-popover>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="item flexflex" v-else-if="item['event'] == 'tenementcertified'">
|
||||||
<div class="item flexflex" v-else>
|
<img class="new" v-if="item['isread'] == 0" src="@/assets/img/user/new.png" />
|
||||||
<img class="new" v-if="item['isread'] == 0" src="@/assets/img/user/new.png">
|
<div class="time">{{ item["timestamp"] }}</div>
|
||||||
<div class="time">{{ item['timestamp'] }}</div>
|
<div class="text">{{ item["message"] }}</div>
|
||||||
<div class="text">{{ item['message'] }}</div>
|
|
||||||
<div class="text" v-for="item in item['data']['reportnummessage']">- {{ item }}</div>
|
|
||||||
<div class="info flexacenter" v-if="item['data']">
|
<div class="info flexacenter" v-if="item['data']">
|
||||||
<img class="soldOut" v-if="item['data']['status'] != 1" src="@/assets/img/user/u75.png" alt="">
|
<img class="soldOut" v-if="item['data']['status'] != 1" src="@/assets/img/user/u75.png" alt="" />
|
||||||
<img class="img-icon" v-if="item['data']['isimage'] == 1"
|
<img class="img-icon" v-if="item['data']['isimage'] == 1" src="@/assets/img/publicImage/img-icon.png" />
|
||||||
src="@/assets/img/publicImage/img-icon.png">
|
<div class="title flex1 ellipsis">{{ item["data"]["subject"] }}</div>
|
||||||
<div class="title flex1 ellipsis"
|
<div class="id" v-if="item['data']['id']">房源ID:{{ item["data"]["id"] }}</div>
|
||||||
@click="goDetail(item['data']['uniqid'], item['data']['status'])">{{
|
</div>
|
||||||
item['data']['subject'] }}</div>
|
<div class="footer-list flexflex">
|
||||||
<div class="id">房源ID:{{ item['data']['id'] }}</div>
|
<el-popover placement="bottom" :width="464" trigger="click" :show-arrow="false" popper-style="background: transparent;padding:0;box-shadow: none;border: none;">
|
||||||
|
<template #reference>
|
||||||
|
<div class="footer flex1 flexcenter" v-if="item.data && item.data['tenementcertifiedstatus'] == 0 && item.data.url">房源认证<img class="green-arrow" src="@/assets/img/user/arrow-circular-blue.svg" /></div>
|
||||||
|
</template>
|
||||||
|
<div class="btn-qrcode flexcenter">
|
||||||
|
<authentication-info :type="1" style="height: 217px;"></authentication-info>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
<el-popover placement="bottom" popper-class="consult-popover flexcenter" :width="464" trigger="click" :show-arrow="false" popper-style="background: transparent;padding:0;box-shadow: none;border: none;">
|
||||||
|
<template #reference>
|
||||||
|
<div class="footer flex1 flexcenter helper">
|
||||||
|
<img class="green-arrow" src="@/assets/img/user/WeChat-icon-blue.svg" />
|
||||||
|
添加小助手
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<div class="consult-pop flexacenter">
|
||||||
|
<div class="consult-title flexacenter">欢迎联系 <b>方同学的小助手</b> 咨询</div>
|
||||||
|
<div class="consult-QRcode flexcenter">
|
||||||
|
<img class="consult-QRcode-img" :src="wechat['wechatqrcode']" />
|
||||||
|
</div>
|
||||||
|
<div class="consult-hint">微信扫码添加好友</div>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="item flexflex" v-else-if="item['event'] == 'overduenotice'">
|
||||||
|
<img class="new" v-if="item['isread'] == 0" src="@/assets/img/user/new.png" />
|
||||||
|
<div class="time">{{ item["timestamp"] }}</div>
|
||||||
|
<div class="text">{{ item["message"] }}</div>
|
||||||
|
<div class="footer-list flexflex">
|
||||||
|
<el-popover placement="bottom" :width="464" trigger="click" :show-arrow="false" popper-style="background: transparent;padding:0;box-shadow: none;border: none;">
|
||||||
|
<template #reference>
|
||||||
|
<div class="footer flex1 flexcenter">{{ item.data.type == "intermediary" ? "身份认证" : "房源认证" }}<img class="green-arrow" src="@/assets/img/user/arrow-circular-blue.svg" /></div>
|
||||||
|
</template>
|
||||||
|
<div class="btn-qrcode flexcenter">
|
||||||
|
<authentication-info :type="item.data.type == 'intermediary' ? 2 : 1" style="height: 217px;"></authentication-info>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
|
||||||
|
<el-popover placement="bottom" popper-class="consult-popover flexcenter" :width="464" trigger="click" :show-arrow="false" popper-style="background: transparent;padding:0;box-shadow: none;border: none;">
|
||||||
|
<template #reference>
|
||||||
|
<div class="footer flex1 flexcenter helper">
|
||||||
|
<img class="green-arrow" src="@/assets/img/user/WeChat-icon-blue.svg" />
|
||||||
|
添加小助手
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<div class="consult-pop flexacenter">
|
||||||
|
<div class="consult-title flexacenter">欢迎联系 <b>方同学的小助手</b> 咨询</div>
|
||||||
|
<div class="consult-QRcode flexcenter">
|
||||||
|
<img class="consult-QRcode-img" :src="wechat['wechatqrcode']" />
|
||||||
|
</div>
|
||||||
|
<div class="consult-hint">微信扫码添加好友</div>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="item flexflex" v-else>
|
||||||
|
<img class="new" v-if="item['isread'] == 0" src="@/assets/img/user/new.png" />
|
||||||
|
<div class="time">{{ item["timestamp"] }}</div>
|
||||||
|
<div class="text">{{ item["message"] }}</div>
|
||||||
|
<div class="text" v-for="(item, index) in item['data']['reportnummessage']" :key="index">- {{ item }}</div>
|
||||||
|
<div class="info flexacenter" v-if="item['data']">
|
||||||
|
<img class="soldOut" v-if="item['data']['status'] != 1" src="@/assets/img/user/u75.png" alt="" />
|
||||||
|
<img class="img-icon" v-if="item['data']['isimage'] == 1" src="@/assets/img/publicImage/img-icon.png" />
|
||||||
|
<div class="title flex1 ellipsis" @click="goDetail(item['data']['uniqid'], item['data']['status'])">{{ item["data"]["subject"] }}</div>
|
||||||
|
<div class="id" v-if="item['data']['id']">房源ID:{{ item["data"]["id"] }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import emptyDuck from '@/components/public/empty-duck.vue'
|
import emptyDuck from "@/components/public/empty-duck.vue"
|
||||||
import { onMounted, getCurrentInstance, ref, onUnmounted, defineEmits } from 'vue'
|
import { onMounted, getCurrentInstance, ref, toRefs, onUnmounted, defineEmits } from "vue"
|
||||||
import { useRouter } from 'vue-router';
|
import { useStore } from "vuex"
|
||||||
import authenticationInfo from '../seachModule/authenticationInfo.vue';
|
import { useRouter } from "vue-router"
|
||||||
import store from '../../store/index';
|
import authenticationInfo from "../seachModule/authenticationInfo.vue"
|
||||||
|
import store from "../../store/index"
|
||||||
|
|
||||||
if (store.state.user) store.state.user['messagenum'] = 0
|
if (store.state.user) store.state.user["messagenum"] = 0
|
||||||
|
|
||||||
const emit = defineEmits(['close'])
|
const emit = defineEmits(["close"])
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter()
|
||||||
|
|
||||||
|
const usestore = useStore()
|
||||||
|
const { wechat } = toRefs(usestore.state)
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance()
|
const { proxy } = getCurrentInstance()
|
||||||
|
|
||||||
@ -146,7 +198,6 @@ onMounted(() => {
|
|||||||
init()
|
init()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
let show = ref(false) //是否展示
|
let show = ref(false) //是否展示
|
||||||
|
|
||||||
let qrcode = ref("") // 关注二维码
|
let qrcode = ref("") // 关注二维码
|
||||||
@ -157,42 +208,46 @@ let page = 1 // 页数
|
|||||||
const init = () => {
|
const init = () => {
|
||||||
if (page == 0 || state.value) return
|
if (page == 0 || state.value) return
|
||||||
state.value = true
|
state.value = true
|
||||||
proxy.$post("/tenement/pc/api/user/messageList", {
|
proxy
|
||||||
page
|
.$post("/tenement/pc/api/user/messageList", {
|
||||||
}).then((res) => {
|
page,
|
||||||
if (res.code != 200) {
|
})
|
||||||
emit('close')
|
.then(res => {
|
||||||
return
|
if (res.code != 200) {
|
||||||
}
|
emit("close")
|
||||||
let data = res.data
|
return
|
||||||
qrcode.value = data['qrcode']
|
}
|
||||||
issubscribe.value = data['issubscribe']
|
let data = res.data
|
||||||
list.value = list.value.concat(data['data'])
|
|
||||||
page = data['page'] * data['limit'] < data['count'] ? page + 1 : 0
|
qrcode.value = data["qrcode"]
|
||||||
show.value = true
|
issubscribe.value = data["issubscribe"]
|
||||||
}).catch((err) => {
|
list.value = list.value.concat(data["data"])
|
||||||
emit('close')
|
page = data["page"] * data["limit"] < data["count"] ? page + 1 : 0
|
||||||
}).finally(() => {
|
show.value = true
|
||||||
state.value = false
|
})
|
||||||
})
|
.catch(err => {
|
||||||
|
emit("close")
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
state.value = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleScroll = (event) => {
|
const handleScroll = event => {
|
||||||
if (page == 0 || state.value) return
|
if (page == 0 || state.value) return
|
||||||
const scrollContainer = event.target; // 获取滚动容器元素
|
const scrollContainer = event.target // 获取滚动容器元素
|
||||||
const scrollHeight = scrollContainer.scrollHeight; // 元素内容的总高度
|
const scrollHeight = scrollContainer.scrollHeight // 元素内容的总高度
|
||||||
const scrollTop = scrollContainer.scrollTop; // 滚动条距离滚动容器顶部的距离
|
const scrollTop = scrollContainer.scrollTop // 滚动条距离滚动容器顶部的距离
|
||||||
const clientHeight = scrollContainer.clientHeight; // 可见区域的高度
|
const clientHeight = scrollContainer.clientHeight // 可见区域的高度
|
||||||
|
|
||||||
if (scrollHeight - scrollTop === clientHeight) init()
|
if (scrollHeight - scrollTop === clientHeight) init()
|
||||||
};
|
}
|
||||||
|
|
||||||
// 点击跳转详情页
|
// 点击跳转详情页
|
||||||
const goDetail = (uniqid, status) => {
|
const goDetail = (uniqid, status) => {
|
||||||
if (status != 1) return
|
if (status != 1) return
|
||||||
router.push(`/detail?id=${uniqid}`);
|
router.push(`/detail?id=${uniqid}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
@ -264,7 +319,7 @@ const goDetail = (uniqid, status) => {
|
|||||||
-webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.0784313725490196);
|
-webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.0784313725490196);
|
||||||
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.0784313725490196);
|
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.0784313725490196);
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #7F7F7F;
|
color: #7f7f7f;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
padding-left: 16px;
|
padding-left: 16px;
|
||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
@ -274,7 +329,7 @@ const goDetail = (uniqid, status) => {
|
|||||||
height: 36px;
|
height: 36px;
|
||||||
background-color: rgba(253, 218, 85, 1);
|
background-color: rgba(253, 218, 85, 1);
|
||||||
border-radius: 54px;
|
border-radius: 54px;
|
||||||
font-family: 'PingFangSC-Regular', 'PingFang SC', sans-serif;
|
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
@ -319,11 +374,10 @@ const goDetail = (uniqid, status) => {
|
|||||||
color: #aaaaaa;
|
color: #aaaaaa;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
padding: 18px 16px 14px;
|
padding: 18px 16px 14px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.text {
|
.text {
|
||||||
color: #7F7F7F;
|
color: #7f7f7f;
|
||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
padding: 0 16px;
|
padding: 0 16px;
|
||||||
@ -362,18 +416,30 @@ const goDetail = (uniqid, status) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.id {
|
.id {
|
||||||
color: #AAAAAA;
|
color: #aaaaaa;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer {
|
.footer {
|
||||||
|
&:not(:last-of-type) {
|
||||||
|
border-right: 1px solid #ebebeb;
|
||||||
|
}
|
||||||
border-top: 1px solid #ebebeb;
|
border-top: 1px solid #ebebeb;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #50E3C2;
|
// color: #50e3c2;
|
||||||
|
color: #266cbf;
|
||||||
height: 45px;
|
height: 45px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
|
&.helper {
|
||||||
|
.green-arrow {
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.green-arrow {
|
.green-arrow {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
width: 14px;
|
width: 14px;
|
||||||
@ -408,4 +474,65 @@ const goDetail = (uniqid, status) => {
|
|||||||
transform: translateX(-50%);
|
transform: translateX(-50%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
|
||||||
|
.el-popover.el-popper.consult-popover {
|
||||||
|
.consult-pop {
|
||||||
|
width: 300px;
|
||||||
|
height: 300px;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding-top: 45px;
|
||||||
|
font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
|
||||||
|
-moz-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.101960784313725);
|
||||||
|
-webkit-box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.101960784313725);
|
||||||
|
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.101960784313725);
|
||||||
|
background-color: #fff;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.consult-title {
|
||||||
|
font-size: 15px;
|
||||||
|
color: #555555;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
|
||||||
|
b {
|
||||||
|
color: #000;
|
||||||
|
font-weight: 650;
|
||||||
|
margin: 0 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.consult-QRcode {
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
border-radius: 20px;
|
||||||
|
-moz-box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.101960784313725);
|
||||||
|
-webkit-box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.101960784313725);
|
||||||
|
box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.101960784313725);
|
||||||
|
margin-bottom: 20px;
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
|
.consult-QRcode-img {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.consult-hint {
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.consult-hint,
|
||||||
|
.consult-remark {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #555555;
|
||||||
|
line-height: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.consult-remark {
|
||||||
|
b {
|
||||||
|
font-weight: 650;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -38,7 +38,6 @@ import locale from "element-plus/lib/locale/lang/zh-cn"
|
|||||||
import zhCn from "element-plus/dist/locale/zh-cn.mjs"
|
import zhCn from "element-plus/dist/locale/zh-cn.mjs"
|
||||||
|
|
||||||
import lazyPlugin from "vue3-lazyload"
|
import lazyPlugin from "vue3-lazyload"
|
||||||
console.log("lazyPlugin", lazyPlugin)
|
|
||||||
|
|
||||||
// import zhCn from 'element-plus/lib/locale/lang/zh-cn'
|
// import zhCn from 'element-plus/lib/locale/lang/zh-cn'
|
||||||
import api from "./utils/api"
|
import api from "./utils/api"
|
||||||
|
@ -20,7 +20,7 @@ axios.interceptors.request.use(
|
|||||||
if (config.url != "/tenement/pc/api/user/operation" && !noMask) showFullScreenLoading()
|
if (config.url != "/tenement/pc/api/user/operation" && !noMask) showFullScreenLoading()
|
||||||
// 开发时登录用的,可以直接替换小程序的 authorization
|
// 开发时登录用的,可以直接替换小程序的 authorization
|
||||||
// if (process.env.NODE_ENV == "development") config['headers']['authorization'] = "x2mmnl9grt51bpplj2k6ioiuummzhnw3"
|
// if (process.env.NODE_ENV == "development") config['headers']['authorization'] = "x2mmnl9grt51bpplj2k6ioiuummzhnw3"
|
||||||
if (process.env.NODE_ENV == "development") config["headers"]["authorization"] = "813blr43ue2hhf2kjnlfibyy9swlxm2x"
|
if (process.env.NODE_ENV == "development") config["headers"]["authorization"] = "63ffbd4e4790accd31a0dafd21cd5f12"
|
||||||
|
|
||||||
// 当 noMask == true 和 confing.method == 'get' 时,删除 config.params['noMask']
|
// 当 noMask == true 和 confing.method == 'get' 时,删除 config.params['noMask']
|
||||||
if (noMask && config.method == "get") delete config.params["noMask"]
|
if (noMask && config.method == "get") delete config.params["noMask"]
|
||||||
|
@ -216,14 +216,11 @@ const getMoreScroll = () => {
|
|||||||
|
|
||||||
// 处理列表的点击收藏
|
// 处理列表的点击收藏
|
||||||
const handlecollect = uniqid => {
|
const handlecollect = uniqid => {
|
||||||
console.log("uniqid", uniqid)
|
|
||||||
let targetData = {}
|
|
||||||
let targetIndex = 0
|
let targetIndex = 0
|
||||||
let token = ""
|
let token = ""
|
||||||
|
|
||||||
list.value.forEach((element, index) => {
|
list.value.forEach((element, index) => {
|
||||||
if (element.uniqid == uniqid) {
|
if (element.uniqid == uniqid) {
|
||||||
targetData = element
|
|
||||||
targetIndex = index
|
targetIndex = index
|
||||||
token = element.token || ""
|
token = element.token || ""
|
||||||
}
|
}
|
||||||
@ -232,7 +229,6 @@ const handlecollect = uniqid => {
|
|||||||
api.apartmentCollection({ token }).then(res => {
|
api.apartmentCollection({ token }).then(res => {
|
||||||
if (res.code != 200) return
|
if (res.code != 200) return
|
||||||
const data = res.data
|
const data = res.data
|
||||||
// console.log("data", data)
|
|
||||||
list.value[targetIndex]["iscollect"] = data.status
|
list.value[targetIndex]["iscollect"] = data.status
|
||||||
ElMessage.success(res.message)
|
ElMessage.success(res.message)
|
||||||
})
|
})
|
||||||
|
@ -697,6 +697,7 @@ onUnmounted(() => {
|
|||||||
height: 140px;
|
height: 140px;
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
.apartment-header-content {
|
.apartment-header-content {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user