From f812a5d9c4a973930a79581e0c1de91a7054b547 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期二, 29 七月 2025 14:57:01 +0800 Subject: [PATCH] 中间数据产品 1. 新增报告生成提示; 2. 新增报告文件下载; 3. 修复报告页面展示时,相同名称的列数据无法正确展示的问题; --- src/views/fysp/task/components/CompMonitorObj.vue | 106 +++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 90 insertions(+), 16 deletions(-) diff --git a/src/views/fysp/task/components/CompMonitorObj.vue b/src/views/fysp/task/components/CompMonitorObj.vue index 327787e..65da3fe 100644 --- a/src/views/fysp/task/components/CompMonitorObj.vue +++ b/src/views/fysp/task/components/CompMonitorObj.vue @@ -1,17 +1,64 @@ <template> - <div> - <el-segmented :model-value="activeName" :options="activeTabs" @change="tabChange" /> + <div class="monitor-obj-wrapper"> + <el-affix v-if="affix" :offset="60" target=".monitor-obj-wrapper"> + <el-scrollbar class="p-b-8" always> + <!-- <el-segmented + :model-value="activeName" + :options="activeTabs" + @change="tabChange" + /> --> + <el-tabs v-model="activeName" @tab-change="tabChange"> + <el-tab-pane + v-for="item in activeTabs" + :key="item" + :label="item" + :name="item" + ></el-tab-pane> + </el-tabs> + </el-scrollbar> + </el-affix> + <el-scrollbar class="" always v-else> + <!-- <el-segmented + :model-value="activeName" + :options="activeTabs" + @change="tabChange" + /> --> + <el-tabs v-model="activeName" @tab-change="tabChange"> + <el-tab-pane + v-for="item in activeTabs" + :key="item" + :label="item" + :name="item" + ></el-tab-pane> + </el-tabs> + </el-scrollbar> + <el-space size="large"> + <el-tag type="info"> 鎬绘暟锛歿{ activeData.length }} </el-tag> + <el-checkbox-group v-model="checkList"> + <el-checkbox label="鏈洃绠�" :value="0" /> + <el-checkbox label="宸茬洃绠�" :value="1" /> + <el-checkbox label="宸插鏍�" :value="2" /> + </el-checkbox-group> + </el-space> + <el-scrollbar :height="height"> + <el-space wrap> + <ItemMonitorObj v-for="obj in activeData" :key="obj.movid" :item="obj"> + <template #default="{ item }"> + <slot :item="item"> + <el-button + v-if="showBtn" + size="small" + plain + :type="btnType" + @click="itemClick(item)" + >{{ btnName }}</el-button + > + </slot> + </template> + </ItemMonitorObj> + </el-space> + </el-scrollbar> </div> - <el-space wrap> - <ItemMonitorObj v-for="obj in activeData" :key="obj.movid" :item="obj"> - <template #default="{ item }"> - <!-- <slot :item="item"></slot> --> - <el-button v-if="showBtn" size="small" type="danger" @click="itemClick(item)">{{ - btnName - }}</el-button> - </template> - </ItemMonitorObj> - </el-space> </template> <script> @@ -34,20 +81,47 @@ btnName: { type: String, default: '绉婚櫎' - } + }, + btnType: { + type: String, + default: 'default' + }, + // 澶撮儴閫夐」鏄惁鍚搁《 + affix: Boolean, + height: String }, emits: ['update:tabName', 'update:showData', 'itemClick'], data() { return { activeName: defaultTabName, - tabs: [] + tabs: [], + checkList: [0, 1, 2] }; }, computed: { activeData() { const list = this.data.filter((v) => { - return this.activeName == defaultTabName || v.sceneType == this.activeName; - // return this.tabName == defaultTabName || v.sceneType == this.tabName; + // 绛涢�夊綋鍓嶉�夋嫨鐨勬爣绛鹃〉瀵瑰簲鐨勫満鏅被鍨� + const b1 = + this.activeName == defaultTabName || v.sceneType == this.activeName; + + // 璁$畻鍦烘櫙鐨勭洃绠$姸鎬� + let status; + if (v.extension1 == undefined || null) { + // 鏈洃绠� + status = 0; + } else { + const num = parseInt(v.extension1); + if (num >= 2) { + // 宸插鏍� + status = 2; + } else { + // 宸茬洃绠★紙1娆★級 + status = num; + } + } + const b2 = this.checkList.indexOf(status) != -1; + return b1 && b2; }); this.$emit('update:showData', list); return list; -- Gitblit v1.9.3