From f6cc5b4accb06a0e3974cd83f88bde159c40bc80 Mon Sep 17 00:00:00 2001 From: zq <136432190602163.com> Date: Fri, 30 May 2025 14:50:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B0=94=E6=B3=A1=E5=BC=B9?= =?UTF-8?q?=E5=87=BA=E6=A1=86=E5=AE=9A=E4=BD=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/style/theme/common.scss | 8 ++++ src/views/super/Ranking/RankBatchList.vue | 62 ++++++++++++++++++++----------- 2 files changed, 48 insertions(+), 22 deletions(-) diff --git a/src/style/theme/common.scss b/src/style/theme/common.scss index d9312ec..01abe15 100644 --- a/src/style/theme/common.scss +++ b/src/style/theme/common.scss @@ -951,6 +951,14 @@ body { .el-popover { padding: 32px; } +::v-deep .custom-popover { + position: fixed !important; + max-height: 290px; + overflow-y: auto; + margin-top: 0 !important; + margin-left: 0 !important; + transform: none !important; +} // 日历区间背景颜色 .el-date-table td.in-range div { diff --git a/src/views/super/Ranking/RankBatchList.vue b/src/views/super/Ranking/RankBatchList.vue index dd6b547..2da66f0 100644 --- a/src/views/super/Ranking/RankBatchList.vue +++ b/src/views/super/Ranking/RankBatchList.vue @@ -26,7 +26,7 @@ <GuipTable :tableData="tableData" style="width: 100%" :border="true" @sort-change="handleSortChange" :loading="loading" @cell-mouse-enter="handleRowHover"> <el-table-column fixed="left" prop="sort" label="排序" width="70"></el-table-column> - <el-table-column + <el-table-column v-if="(dataRank == 1 || dataRank == 2) && (dataType == 'ver_type' || dataType == 'check_type')" prop="name" :key="selectedType" :label="type_select[selectedType]" min-width="120"> @@ -47,20 +47,23 @@ <el-table-column v-else prop="name" :label="type_desc[dataType]" width="150"></el-table-column> <el-table-column v-for="(field, index) in valueFields" :key="field" :label="labels[index]" - :prop="String(index + 1)" + :prop="String(index + 1)" :render-header=" (h, scope) => index == 3 ? renderHeaderWithIcon(h, scope, require('@/assets/require.svg')) : scope.column.label" sortable="custom" min-width="170"> <!--产品利润排行展示查看更多--> <template v-if="index == 3 && dataRank == 1" v-slot="{ row, $index }"> - <el-popover v-model="row.id_popover" placement="top" trigger="manual" + <!-- <el-popover v-model="row.id_popover" placement="top" trigger="manual" :ref="`popover-${$index}`" :append-to-body="false" :visible-arrow="true" - popper-class="custom-popover" @show="popshow"> + popper-class="custom-popover" @show="popshow"> --> + <el-popover v-model="row.id_popover" :ref="`popover-${row.id}`" + placement="top" trigger="manual" :append-to-body="false" :visible-arrow="true" + popper-class="custom-popover" @show="popshow" > <div v-if="type != 'agent'" class="pop-wrap"> <div class="flex-between flex pop-top"> <h3> - {{ text }} {{ row.name }} + {{ row.name }} <span class="lookMore" @click="goLookMoreData(row.id)">查看更多</span> </h3> <span class="flex point" @click="closePop(row,'id')"> @@ -82,7 +85,7 @@ <div v-else class="pop-wrap"> <div class="flex-between flex pop-top"> <h3> - {{ text }} {{ row.name }} + {{ row.name }} <span class="lookMore" @click="goLookCheckTypeRank(row.id)">查看更多</span> </h3> <span class="flex point" @click="closePop(row,'id')"> @@ -91,7 +94,7 @@ </div> <el-table :data="tableData1" style="width: 100%"> <el-table-column prop="sort" width="95" label="排序"> - + </el-table-column> <el-table-column prop="name" width="250" label="服务名称"></el-table-column> <el-table-column prop="rate" width="130" label="毛利占比"> @@ -114,15 +117,15 @@ <div class="flex" slot="reference"> {{ row[field] }} - <svg-icon v-if="row[field] > 0" :size="14" - :path="require('@/assets/super/list-detail.svg')" :color="'#8A9099'" - :hoverColor="'#006AFF'" @click="handleClick(row, $index, 'id')" /> + <svg-icon :size="14" v-if="row[field] *100 != 0" + :path="require('@/assets/super/list-detail.svg')" :color="'#8A9099'" + :hoverColor="'#006AFF'" @click="handleClick(row, $index, 'id')" /> </div> </el-popover> </template> - <template v-else slot-scope="scope" > - <div class="flex" > + <template v-else slot-scope="scope"> + <div class="flex"> {{ scope.row[field] }} </div> </template> @@ -133,9 +136,10 @@ :render-header=" (h, scope) => renderHeaderWithIcon(h, scope, require('@/assets/require.svg')) " key="top" prop="top" label="代理商排行" width="250" fixed="right"> <template v-slot="{ row, $index }"> - <el-popover v-model="row.id_popover_2" placement="top" trigger="manual" - popper-class="custom-popover" - :ref="`popover_2-${$index}`" @show="popshow" :append-to-body="false" :visible-arrow="true"> + <el-popover v-model="row.id_popover_2" :ref="`popover_2-${$index}`" placement="top" trigger="manual" + popper-class="custom-popover" @show="popshow" :append-to-body="false" + :visible-arrow="true" + > <div class="pop-wrap"> <div class="flex-between flex pop-top"> <h3> @@ -152,7 +156,7 @@ <el-table-column prop="value_1" width="200" label="销售额"></el-table-column> </el-table> </div> - <span v-if="top_list[row.id]" slot="reference"> + <span v-if="top_list[row.id]" slot="reference" class="flex"> No.1 {{ top_list[row.id]['name'] }} <svg-icon :size="14" @click="handleClick2(row, $index, 'id')" :path="require('@/assets/super/list-detail.svg')" :color="'#8A9099'" @@ -177,6 +181,7 @@ import GuipTable from '@/components/GuipTable.vue'; import CustomDropdown from '@/components/CustomDropdown.vue'; import SvgIcon from '@/components/SvgIcon.vue'; import GuipToolTip from '@/components/GuipToolTip.vue'; +// import HoverImage from '@/components/super/HoverImage.vue'; export default { name: 'rank_batch_list', props: { @@ -372,6 +377,7 @@ export default { } }, handleClick2(row, index, type) { + console.log('执行了'); // 关闭其他行的弹框 this.tableData.forEach((item, i) => { item[type + '_popover'] = false; @@ -406,7 +412,7 @@ export default { }) }, handleSortChange({ prop, order }) { - console.log('prop--排序',prop); + console.log('prop--排序', prop); this.sort_by = 4; this.sort_order = 2; if (order == 'ascending') { @@ -598,16 +604,26 @@ export default { } </script> <style scoped lang="scss"> -.pagetitle{ - h4{ +.pagetitle { + h4 { margin-bottom: 0; } } +::v-deep .custom-popover { + position: fixed !important; + max-height: 290px; + overflow-y: auto; + margin-top: 0 !important; + margin-left: 0 !important; + transform: none !important; +} + .lookMore { cursor: pointer; font-weight: 400; } -.beforeNotice{ + +.beforeNotice { margin-top: 12px; border-radius: 4px; background: #F2F7FF; @@ -615,12 +631,14 @@ export default { padding: 20px 14px; color: #1E2226; letter-spacing: 0.08em; - .noticeTop{ + + .noticeTop { gap: 8px; margin-bottom: 12px; } - .noticeBot{ + + .noticeBot { gap: 10px; }