feat:我的动态;我的评价
This commit is contained in:
1 parent
55a222e2d6
commit
6c78e14257
7 files changed
+62
-60
No files matched your search
+6
-11
@@ -2,7 +2,7 @@
|
||||
"name" : "荷塘月色",
|
||||
"appid" : "__UNI__5B53E65",
|
||||
"description" : "聊天交友app",
|
||||
"versionName" : "2025.10",
|
||||
"versionName" : "0.0.0",
|
||||
"versionCode" : 0,
|
||||
"transformPx" : false,
|
||||
"app-plus" : {
|
||||
@@ -28,7 +28,8 @@
|
||||
"VideoPlayer" : {},
|
||||
"OAuth" : {},
|
||||
"Camera" : {},
|
||||
"Geolocation" : {}
|
||||
"Geolocation" : {},
|
||||
"FaceID" : {}
|
||||
},
|
||||
"distribute" : {
|
||||
"android" : {
|
||||
@@ -66,7 +67,7 @@
|
||||
"<uses-permission android:name=\"android.permission.RECEIVE_USER_PRESENT\"/>"
|
||||
],
|
||||
"minSdkVersion" : 21,
|
||||
"schemes" : "shopro",
|
||||
"schemes" : "荷塘月色",
|
||||
"excludePermissions" : [
|
||||
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>"
|
||||
]
|
||||
@@ -80,7 +81,7 @@
|
||||
"NSCameraUsageDescription" : "需要同意访问您的摄像头拍摄照片才能完善该条目",
|
||||
"NSUserTrackingUsageDescription" : "开启追踪并不会获取您在其它站点的隐私信息,该行为仅用于标识设备,保障服务安全和提升浏览体验"
|
||||
},
|
||||
"urltypes" : "shopro",
|
||||
"urltypes" : "荷塘月色",
|
||||
"capabilities" : {
|
||||
"entitlements" : {
|
||||
"com.apple.developer.associated-domains" : [ "applinks:shopro.sheepjs.com" ]
|
||||
@@ -91,13 +92,7 @@
|
||||
"sdkConfigs" : {
|
||||
"speech" : {},
|
||||
"ad" : {},
|
||||
"oauth" : {
|
||||
"apple" : {},
|
||||
"weixin" : {
|
||||
"appid" : "wxae7a0c156da9383b",
|
||||
"UniversalLinks" : "https://shopro.sheepjs.com/uni-universallinks/__UNI__082C0BA/"
|
||||
}
|
||||
},
|
||||
"oauth" : {},
|
||||
"payment" : {
|
||||
"weixin" : {
|
||||
"__platform__" : [ "ios", "android" ],
|
||||
|
||||
@@ -121,7 +121,12 @@
|
||||
theme="paragraph"
|
||||
/>
|
||||
</view>
|
||||
<moment-card v-else-if="listData.length" v-for="item in listData" :data="item" />
|
||||
<moment-card
|
||||
v-else-if="listData.length"
|
||||
v-for="item in listData"
|
||||
:data="item"
|
||||
:show-chat="false"
|
||||
/>
|
||||
<wd-status-tip v-else image="content" tip="暂无内容" />
|
||||
</scroll-list>
|
||||
|
||||
@@ -301,7 +306,7 @@
|
||||
await RecentApi.recentOperate({
|
||||
memberId: userDetail.value.member.memberId,
|
||||
memberRecentId: userDetail.value.id,
|
||||
action: 'RECENT_REPORT',
|
||||
action: 'MEMBER_REPORT',
|
||||
reportType: '1',
|
||||
});
|
||||
return;
|
||||
|
||||
@@ -29,13 +29,7 @@
|
||||
/>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
<moment-card
|
||||
v-if="listData.length"
|
||||
v-for="item in listData"
|
||||
:data="item"
|
||||
@detail="goDetail(item)"
|
||||
/>
|
||||
<view v-else class="flex px-4 py-4" v-for="index in 3" :key="index">
|
||||
<view v-if="isRefreshing" class="flex px-4 py-4" v-for="index in 3" :key="index">
|
||||
<wd-skeleton :row-col="[{ size: '50px', type: 'circle' }]" animation="flashed" />
|
||||
<wd-skeleton
|
||||
:custom-style="{ width: '100%', marginLeft: '12px' }"
|
||||
@@ -43,6 +37,13 @@
|
||||
theme="paragraph"
|
||||
/>
|
||||
</view>
|
||||
<moment-card
|
||||
v-else-if="listData.length"
|
||||
v-for="item in listData"
|
||||
:data="item"
|
||||
@detail="goDetail(item)"
|
||||
/>
|
||||
<wd-status-tip v-else image="content" tip="暂无内容" />
|
||||
</scroll-list>
|
||||
</template>
|
||||
|
||||
@@ -67,7 +68,7 @@
|
||||
city: userCity.value.t,
|
||||
memberId: '',
|
||||
});
|
||||
const { listData, loadMoreStatus, refreshList, listLoadMore } = useScroll(
|
||||
const { isRefreshing, listData, loadMoreStatus, refreshList, listLoadMore } = useScroll(
|
||||
RecentApi.quickPage,
|
||||
params,
|
||||
);
|
||||
|
||||
@@ -21,15 +21,7 @@
|
||||
@refresh="refreshList"
|
||||
@loadMore="listLoadMore"
|
||||
>
|
||||
<moment-card v-if="listData.length" v-for="item in listData" :data="item" />
|
||||
<view v-else class="flex px-4 py-4" v-for="index in 4" :key="index">
|
||||
<wd-skeleton :row-col="[{ size: '50px', type: 'circle' }]" animation="flashed" />
|
||||
<wd-skeleton
|
||||
:custom-style="{ width: '100%', marginLeft: '12px' }"
|
||||
animation="flashed"
|
||||
theme="paragraph"
|
||||
/>
|
||||
</view>
|
||||
<moment-card v-for="item in listData" :data="item" :showChat="false" />
|
||||
</scroll-list>
|
||||
</wd-config-provider>
|
||||
</template>
|
||||
@@ -39,11 +31,11 @@
|
||||
import ScrollList from '@/sheep/components/scroll-list/scroll-list.vue';
|
||||
import useScroll from '@/sheep/hooks/use-scroll';
|
||||
import RecentApi from '@/sheep/api/member/recent';
|
||||
import { reactive } from 'vue';
|
||||
import { onMounted } from 'vue';
|
||||
|
||||
const params = reactive({});
|
||||
const { listData, loadMoreStatus, refreshList, listLoadMore } = useScroll(
|
||||
RecentApi.myMomentList,
|
||||
params,
|
||||
);
|
||||
const { listData, loadMoreStatus, refreshList, listLoadMore } = useScroll(RecentApi.myMomentList);
|
||||
|
||||
onMounted(() => {
|
||||
refreshList();
|
||||
});
|
||||
</script>
|
||||
@@ -103,28 +103,28 @@
|
||||
:safe-area-inset-bottom="true"
|
||||
>
|
||||
<view class="w-90vw h-400rpx flex-col-center gap-4 flex-wrap">
|
||||
<view class="text-color-theme text-lg">我的评价</view>
|
||||
<view class="text-color-theme text-lg">我的评价{{ myEvaluation.evaluateCount }}</view>
|
||||
<view class="w-90% flex justify-around">
|
||||
<view class="bg-color-theme-dark flex items-center p-1 rounded-1">
|
||||
<text class="mr-2 text-xs">身材</text>
|
||||
<wd-rate v-model="myEvaluation.a" readonly />
|
||||
<wd-rate v-model="myEvaluation.scoreSc" readonly />
|
||||
</view>
|
||||
<view class="bg-color-theme-dark flex items-center p-1 rounded-1">
|
||||
<text class="mr-2 text-xs">颜值</text>
|
||||
<wd-rate v-model="myEvaluation.a" readonly />
|
||||
<wd-rate v-model="myEvaluation.scoreSk" readonly />
|
||||
</view>
|
||||
</view>
|
||||
<view class="w-90% flex justify-around">
|
||||
<view class="bg-color-theme-dark flex items-center p-1 rounded-1">
|
||||
<text class="mr-2 text-xs">有趣</text>
|
||||
<wd-rate v-model="myEvaluation.a" readonly />
|
||||
<wd-rate v-model="myEvaluation.scoreYq" readonly />
|
||||
</view>
|
||||
<view class="bg-color-theme-dark flex items-center p-1 rounded-1">
|
||||
<text class="mr-2 text-xs">耐心</text>
|
||||
<wd-rate v-model="myEvaluation.a" readonly />
|
||||
<wd-rate v-model="myEvaluation.scoreNx" readonly />
|
||||
</view>
|
||||
</view>
|
||||
<view class="text-color-theme text-lg">综合评分 1.0</view>
|
||||
<view class="text-color-theme text-lg">综合评分 {{ myEvaluation.avgScore }}</view>
|
||||
</view>
|
||||
</wd-popup>
|
||||
<wd-curtain
|
||||
@@ -162,9 +162,15 @@
|
||||
shieldTotal: 0,
|
||||
collectTotal: 0,
|
||||
});
|
||||
|
||||
// 我的评价数据
|
||||
const myEvaluation = reactive({
|
||||
a: 0,
|
||||
scoreSc: 0,
|
||||
scoreNx: 0,
|
||||
scoreSk: 0,
|
||||
scoreYq: 0,
|
||||
avgScore: 0,
|
||||
evaluateCount: 0,
|
||||
});
|
||||
const myEvaluationShow = ref(false); // 我的评价弹窗
|
||||
const curtainShow = ref(false); // 关注公众号弹窗
|
||||
@@ -193,9 +199,13 @@
|
||||
|
||||
// 查看我的评价
|
||||
const lookMyEvaluation = async () => {
|
||||
await RecentApi.myEvaluate();
|
||||
myEvaluation.a = 1;
|
||||
myEvaluationShow.value = true;
|
||||
const { data = null } = await RecentApi.myEvaluate();
|
||||
if (data) {
|
||||
Object.assign(myEvaluation, data);
|
||||
myEvaluationShow.value = true;
|
||||
return;
|
||||
}
|
||||
uni.showToast({ title: '查看失败', icon: 'none' });
|
||||
};
|
||||
|
||||
// 关注公众号
|
||||
@@ -215,7 +225,7 @@
|
||||
{ title: '我的收益', value: '', icon: 'wallet', to: '' },
|
||||
{ title: '访客记录', value: '', icon: 'dong', to: '/pages/profile/view-record' },
|
||||
{ title: '认证中心', value: '', icon: 'user', to: '/pages/profile/face-verify' },
|
||||
{ title: '我的动态', value: '', icon: 'star', to: '/pages/profile/my-moment' },
|
||||
{ title: '我的动态√', value: '', icon: 'star', to: '/pages/profile/my-moment' },
|
||||
{ title: '我的评价', value: '', icon: 'view-module', to: '', click: lookMyEvaluation },
|
||||
{ title: '问题反馈√', value: '', icon: 'backtop-rectangle', to: '', click: goFeedback },
|
||||
// { title: '客服助手', value: '', icon: 'service', to: '' },
|
||||
|
||||
@@ -95,7 +95,7 @@ const RecentApi = {
|
||||
// 查看我的动态
|
||||
myMomentList: (data: any) => {
|
||||
return request({
|
||||
url: '/member/recent/xxx/xxx',
|
||||
url: '/member/recent/dynamic-page',
|
||||
method: 'POST',
|
||||
data,
|
||||
custom: {
|
||||
@@ -119,7 +119,7 @@ const RecentApi = {
|
||||
// 查看我的评价
|
||||
myEvaluate: () => {
|
||||
return request({
|
||||
url: '/member/recent/xxx/xxx',
|
||||
url: '/member/recent/evaluate-detail',
|
||||
method: 'POST',
|
||||
custom: {
|
||||
showLoading: true,
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
<uni-icons v-else type="heart" size="22" color="#B5B4BC" @click="handleLike" />
|
||||
<text>{{ data.operationTotal || 0 }} 喜欢</text>
|
||||
</view>
|
||||
<view v-if="!pageId" class="flex items-center gap-10rpx text-sm" @click="goChat">
|
||||
<view v-if="props.showChat" class="flex items-center gap-10rpx text-sm" @click="goChat">
|
||||
<uni-icons type="chat" size="22" color="#B5B4BC" />
|
||||
<text>打招呼</text>
|
||||
</view>
|
||||
@@ -81,24 +81,23 @@
|
||||
import { computed, reactive, ref } from 'vue';
|
||||
import { formatDate } from '@/sheep/util/index';
|
||||
import { getGender } from '@/sheep/util/index';
|
||||
import { onLoad } from '@dcloudio/uni-app';
|
||||
import useConfigStore from '@/chat-store/configStore.js';
|
||||
import useChatStore from '@/chat-store/chatStore.js';
|
||||
import useFriendStore from '@/chat-store/friendStore.js';
|
||||
import request from '@/common/request';
|
||||
|
||||
const props = defineProps<{
|
||||
data: any;
|
||||
}>();
|
||||
const props = withDefaults(
|
||||
defineProps<{
|
||||
data: any;
|
||||
showChat?: boolean;
|
||||
}>(),
|
||||
{
|
||||
showChat: true,
|
||||
},
|
||||
);
|
||||
const emit = defineEmits<(e: 'detail') => void>();
|
||||
|
||||
const member = computed(() => props.data.member || {});
|
||||
const pageId = ref();
|
||||
|
||||
onLoad((options: any) => {
|
||||
const { memberId = null } = options;
|
||||
pageId.value = memberId;
|
||||
});
|
||||
|
||||
const isLike = ref(false);
|
||||
const params = reactive({
|
||||
|
||||
Reference in new issue
Block a user