From f0ddd4478c8e5196f6b880189a43d0e7cde98381 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期三, 30 十月 2024 20:30:04 +0800 Subject: [PATCH] 搜索优化 --- src/views/train/data-list/index.vue | 87 ++++++++++++++++++++++++++----------------- 1 files changed, 53 insertions(+), 34 deletions(-) diff --git a/src/views/train/data-list/index.vue b/src/views/train/data-list/index.vue index 369cad7..c2865a2 100644 --- a/src/views/train/data-list/index.vue +++ b/src/views/train/data-list/index.vue @@ -4,40 +4,54 @@ <div class="list-content w-full overflow-x-hidden"> <el-row :gutter="20"> <el-col :span="6" v-for="item in props.dataList" class="mb-5"> - <el-card shadow="hover" class="list-card cursor-pointer" :body-style="{ padding: 0 }" - @click="itemClick(item)"> + <el-card + shadow="hover" + :class="{'list-card': true, 'cursor-pointer':item.status === 1, 'disable-click': item.status !== 1}" + :body-style="{ padding: 0 }" + @click="itemClick(item)" + > <div class="img-container w-full"> - <img src="@/assets/image/list-card-bg.jpg" class="w-full"> + <img src="@/assets/image/list-card-bg.jpg" class="w-full" /> </div> - <div class="item-info p-3"> + <div class="item-info p-3" style="position: relative"> <div class="info-title font-bold">{{ item.meetName }}</div> - <div class="info-teacher flex text-sm text-gray-500"> - <div class="info-label">涓昏:</div> - <div class="info-text">{{ item.teacherName }}</div> + <div class="info-teacher flex text-sm text-gray-500" style="margin-top: 5px"> + <div class="info-label">涓昏锛�</div> + <div class="info-text">{{ item.teacherNamesStr }}</div> </div> <div class="info-time flex text-sm text-gray-500"> - <div class="info-label">寮�濮嬫椂闂�:</div> + <div class="info-label">寮�濮嬫椂闂达細</div> <div class="info-text">{{ item.startTime }}</div> </div> <div class="info-time flex text-sm text-gray-500"> - <div class="info-label">缁撴潫鏃堕棿:</div> + <div class="info-label">缁撴潫鏃堕棿锛�</div> <div class="info-text">{{ item.endTime }}</div> + </div> + <div class="info-text" style="position: absolute; top: 12px; right: 2px"> + <el-tag type="info" effect="dark" v-if="item.status === 0"> + 寰呭紑濮� + </el-tag> + <el-tag type="danger" effect="dark" v-else-if="item.status === 1"> + 杩涜涓� + </el-tag> + <el-tag type="warning" effect="dark" v-else-if="item.status === 2"> + 宸茬粨鏉� + </el-tag> </div> </div> </el-card> </el-col> </el-row> </div> - </el-scrollbar> </div> </template> <script setup> -import {storeToRefs} from 'pinia'; -import {useRouter} from 'vue-router'; -import {useUserStore} from '@/store/index.js'; -import {classMeet} from '@/api/modules/meet.js'; +import { storeToRefs } from "pinia"; +import { useRouter } from "vue-router"; +import { useUserStore } from "@/store/index.js"; +import { classMeet } from "@/api/modules/meet.js"; const userStore = useUserStore(); const { userInfo } = storeToRefs(userStore); @@ -45,31 +59,36 @@ const props = defineProps({ dataList: { type: Array, - default: () => [] - } + default: () => [], + }, }); - - +const userId = JSON.parse(localStorage.getItem('user')).userInfo.id const itemClick = (item) => { - classMeet(item.id).then(res => { - if (window.webBridge) { - window.webBridge.openNewWindow(JSON.stringify(item)); - } else { - let path = router.resolve({ - path: "/meet", - query: { meetName: item.meetName, id: item.id, userName: userInfo.value?.realName || '', userCode: userInfo.value?.phone || '' } - }); - window.open(path.href, '_blank'); - } - }).catch(err => { - - }); - -} - + classMeet(item.id) + .then((res) => { + if (window.webBridge) { + window.webBridge.openNewWindow(JSON.stringify(item)); + } else { + let path = router.resolve({ + path: "/meet", + query: { + meetName: item.meetName, + id: item.id, + userName: userInfo.value?.realName + "_" + userId || "", + userCode: userInfo.value?.phone + "_" + userId || "", + }, + }); + window.open(path.href, "_blank"); + } + }) + .catch((err) => {}); +}; </script> <style lang="scss" scoped> +.disable-click { + pointer-events: none; +} .item { width: 100%; min-height: 120px; -- Gitblit v1.8.0