|
@@ -0,0 +1,151 @@
|
|
|
+<template>
|
|
|
+ <div class="briefing-container">
|
|
|
+ <div class="float-box" @click="onClick">
|
|
|
+ <van-icon name="plus" class="addIcon" />
|
|
|
+ </div>
|
|
|
+ <van-pull-refresh
|
|
|
+ v-model="refreshing"
|
|
|
+ style="height: calc(100% - 1px); overflow: auto"
|
|
|
+ @refresh="onRefresh"
|
|
|
+ >
|
|
|
+ <van-list
|
|
|
+ v-model:loading="loading"
|
|
|
+ :finished="finished"
|
|
|
+ finished-text="没有更多了"
|
|
|
+ @load="onLoad"
|
|
|
+ >
|
|
|
+ <van-cell
|
|
|
+ v-for="(item, index) in list"
|
|
|
+ :key="index"
|
|
|
+ :name="item"
|
|
|
+ :context="item"
|
|
|
+ class="event-card-item"
|
|
|
+ >
|
|
|
+ <div class="event-card">
|
|
|
+ <div class="unitname">{{ item.name }}</div>
|
|
|
+ <div style="color: black">{{ item.time }}</div>
|
|
|
+ </div>
|
|
|
+ <div style="color: black; text-align: left">{{ item.context }}</div>
|
|
|
+ <div style="color: black; text-align: left">
|
|
|
+ 图片:
|
|
|
+ <img
|
|
|
+ v-for="file in item.image"
|
|
|
+ :key="file.uid"
|
|
|
+ class="image"
|
|
|
+ :src="get_img_url(file.url)"
|
|
|
+ style="max-width: 100px; max-height: 100px"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </van-cell>
|
|
|
+ </van-list>
|
|
|
+ </van-pull-refresh>
|
|
|
+ <Workbenches v-if="isClick" v-model="isClick" />
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup lang="ts">
|
|
|
+import { ref } from "vue";
|
|
|
+import Workbenches from "./Workbenches.vue";
|
|
|
+
|
|
|
+let isClick = ref(false);
|
|
|
+const onClick = () => {
|
|
|
+ isClick.value = true;
|
|
|
+};
|
|
|
+const baseUrl = import.meta.env.VITE_BASE_API;
|
|
|
+const downLoadApi = import.meta.env.VITE_BASE_DOWNLOAD_API;
|
|
|
+
|
|
|
+const get_img_url = url => {
|
|
|
+ return baseUrl + downLoadApi + url;
|
|
|
+};
|
|
|
+const list = ref([
|
|
|
+ {
|
|
|
+ name: "单位名称",
|
|
|
+ context:
|
|
|
+ "简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容",
|
|
|
+ time: "2025-1-2 08:23:22",
|
|
|
+ image: [
|
|
|
+ {
|
|
|
+ uid: "8bf8c488-a191-11ef-9d8e-fa163e4bf12e",
|
|
|
+ status: "success",
|
|
|
+ name: "13339589652658371.jpeg",
|
|
|
+ url: "852860d8-a190-11ef-a379-fa163e4bf12e.jpeg"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "单位名称2",
|
|
|
+ context:
|
|
|
+ "简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容",
|
|
|
+ time: "2025-1-2 08:23:22",
|
|
|
+ image: [
|
|
|
+ {
|
|
|
+ uid: "8bf8c488-a191-11ef-9d8e-fa163e4bf12e",
|
|
|
+ status: "success",
|
|
|
+ name: "13339589652658371.jpeg",
|
|
|
+ url: "852860d8-a190-11ef-a379-fa163e4bf12e.jpeg"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+]);
|
|
|
+const loading = ref(false);
|
|
|
+const finished = ref(false);
|
|
|
+const refreshing = ref(false);
|
|
|
+const onLoad = () => {
|
|
|
+ loading.value = false;
|
|
|
+ finished.value = true;
|
|
|
+};
|
|
|
+const onRefresh = () => {
|
|
|
+ // 清空列表数据
|
|
|
+ finished.value = false;
|
|
|
+
|
|
|
+ // 重新加载数据
|
|
|
+ // 将 loading 设置为 true,表示处于加载状态
|
|
|
+ loading.value = true;
|
|
|
+ onLoad();
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped lang="scss">
|
|
|
+.briefing-container {
|
|
|
+ position: relative;
|
|
|
+ width: 100%;
|
|
|
+ height: calc(100% - 43px);
|
|
|
+ padding-top: 1px;
|
|
|
+}
|
|
|
+
|
|
|
+.float-box {
|
|
|
+ display: flex;
|
|
|
+ position: absolute;
|
|
|
+ right: 10px;
|
|
|
+ bottom: 10px;
|
|
|
+ z-index: 10;
|
|
|
+ background-color: #1890ff;
|
|
|
+ border-radius: 50%;
|
|
|
+ width: 50px;
|
|
|
+ height: 50px;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+.addIcon {
|
|
|
+ color: white;
|
|
|
+}
|
|
|
+.event-card {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+}
|
|
|
+.unitname {
|
|
|
+ background-color: #aaaaaa;
|
|
|
+ color: white;
|
|
|
+ padding-left: 15px;
|
|
|
+ padding-right: 15px;
|
|
|
+ margin-right: 10px;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+.event-card-item {
|
|
|
+ background-color: #f2f2f2;
|
|
|
+ width: 360px;
|
|
|
+ left: 8px;
|
|
|
+ top: 8px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+}
|
|
|
+</style>
|