feat: 新增svg组件,批量替换

This commit is contained in:
rd
2025-09-25 15:26:42 +08:00
parent 9e5bf07c1f
commit 9894380ba9
122 changed files with 414 additions and 370 deletions

View File

@ -3,7 +3,7 @@
<template #title>
<span class="a-card-title">{{ title.name }}</span>
<Tooltip position="tl" :title="title.popover">
<icon-question-circle />
<SvgIcon name="xt-question-circle" />
</Tooltip>
</template>

View File

@ -37,13 +37,13 @@
</div>
<Button type="primary" ghost class="mr-12px" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -17,7 +17,7 @@
<div class="flex items-center">
<Button type="primary" ghost class="mr-12px" size="medium" @click="handleExport">
<template #icon> <icon-download class="mr-8px" /> </template>
<template #icon> <SvgIcon name="xt-download" class="mr-8px" /> </template>
<template #default>导出数据</template>
</Button>
<Button type="primary" ghost size="medium" @click="openCustomColumn">
@ -66,7 +66,7 @@
<img v-if="column.dataIndex === 'ai_evaluate'" width="16" height="16" :src="icon5" class="mr-4px" />
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>
@ -105,8 +105,8 @@
<template v-else-if="column.isRateField" #customRender="{ record }">
<div class="flex items-center rate-row justify-end" :class="record[column.dataIndex] > 0 ? 'up' : 'down'">
<icon-arrow-up v-if="record[column.dataIndex] > 0" size="16" />
<icon-arrow-down v-else size="16" />
<SvgIcon name="xt-arrow-up" v-if="record[column.dataIndex] > 0" size="16" />
<SvgIcon name="xt-arrow-down" v-else size="16" />
{{ formatTableField(column, record) }}
</div>
</template>

View File

@ -63,13 +63,13 @@
<div class="filter-row-item">
<Button type="primary" ghost class="mr-12px" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -19,14 +19,14 @@
<Space size="medium" class="w-240px">
<Input v-model:value="query.name" placeholder="请搜索..." size="middle" allowClear @change="handleSearch">
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</Space>
</div>
<Button type="primary" size="medium" @click="openAdd"
><template #icon>
<icon-plus size="16" class="mr-8px" />
<SvgIcon name="xt-plus" size="16" class="mr-8px" />
</template>
<template #default>添加新分组</template>
</Button>
@ -68,7 +68,7 @@
<span class="s1 mb-16px">暂无分组</span>
<Button type="primary" class="mb-16px" size="medium" @click="openAdd"
><template #icon>
<icon-plus size="16" class="mr-8px" />
<SvgIcon name="xt-plus" size="16" class="mr-8px" />
</template>
<template #default>去添加</template>
</Button>

View File

@ -17,7 +17,7 @@
<div class="flex items-center">
<Button type="primary" ghost class="mr-12px" @click="handleExport">
<template #icon> <icon-download class="mr-8px" /> </template>
<template #icon> <SvgIcon name="xt-download" class="mr-8px" /> </template>
<template #default>导出数据</template>
</Button>
<Button type="primary" ghost @click="openCustomColumn">
@ -61,7 +61,7 @@
<img v-if="column.dataIndex === 'ai_evaluate'" width="16" height="16" :src="icon5" class="mr-4px" />
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>
<template #customRender="{ record }">
@ -101,8 +101,8 @@
</template>
<template v-else-if="column.isRateField">
<div class="flex items-center rate-row justify-end" :class="record[column.dataIndex] > 0 ? 'up' : 'down'">
<icon-arrow-up v-if="record[column.dataIndex] > 0" size="16" />
<icon-arrow-down v-else size="16" />
<SvgIcon name="xt-arrow-up" v-if="record[column.dataIndex] > 0" size="16" />
<SvgIcon name="xt-arrow-down" v-else size="16" />
{{ formatTableField(column, record) }}
</div>
</template>

View File

@ -43,7 +43,7 @@
:showUploadList="false"
>
<div class="upload-box">
<icon-plus size="14" class="mb-16px" />
<SvgIcon name="xt-plus" size="14" class="mb-16px" />
<span class="text mb-4px">点击或拖拽文件到此处上传</span>
<span class="tip">支持 xls, xlsx格式</span>
</div>
@ -58,7 +58,7 @@
}"
>
<div class="flex items-center">
<icon-file size="16" class="flex-shrink-0" />
<SvgIcon name="xt-file" size="16" class="flex-shrink-0" />
<span class="name ml-8px">{{ fileName }}</span>
</div>
<span
@ -132,7 +132,7 @@
<template #label>
<span class="label">同步项目数据</span>
<Tooltip title="同步项目数据后,账户数据将同步到项目中">
<icon-question-circle size="14" class="ml-4px color-#737478" />
<SvgIcon name="xt-question-circle" size="14" class="ml-4px color-#737478" />
</Tooltip>
</template>
<Switch v-model:checked="form.is_sync_project" size="middle" :checkedValue="1" :unCheckedValue="0" />

View File

@ -17,7 +17,7 @@
@change="handleSearch"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
@ -59,13 +59,13 @@
<div class="filter-row-item">
<Button type="primary" ghost class="mr-12px" size="medium" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button size="medium" @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -21,7 +21,7 @@
@change="reload"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
@ -36,7 +36,7 @@
@change="reload"
>
<template #prefix>
<icon-search />
<SvgIcon name="xt-search" />
</template>
</Input>
</div>
@ -72,7 +72,7 @@
<template #title>
<span class="cts mr-4px">{{ column.title }}</span>
<Tooltip v-if="column.tooltip" :title="column.tooltip" placement="top">
<icon-question-circle class="tooltip-icon color-#737478" size="16" />
<SvgIcon name="xt-question-circle" class="tooltip-icon color-#737478" size="16" />
</Tooltip>
</template>

View File

@ -10,7 +10,7 @@
<div class="flex items-center">
<Button type="primary" class="w-112px" @click="handleOpenAccountModal">
<template #icon>
<icon-plus size="16" />
<SvgIcon name="xt-plus" size="16" />
</template>
<template #default>添加账户</template>
</Button>

View File

@ -4,13 +4,13 @@
<div class="part-div-header">
<span class="part-div-header-title">投放行动指南</span>
<Tooltip position="tl" title="投放建议优化。">
<icon-question-circle />
<SvgIcon name="xt-question-circle" size="16" class="color-#737478"/>
</Tooltip>
</div>
<Space>
<span class="player-title">表现分析</span>
<Tooltip position="tl" title="表现分析。">
<icon-question-circle />
<SvgIcon name="xt-question-circle" size="16" class="color-#737478"/>
</Tooltip>
</Space>
<div style="margin-right: 24px">
@ -79,7 +79,7 @@
<Space>
<span class="player-title">新投放建议生成</span>
<Tooltip position="tl" title="新投放建议生成。">
<icon-question-circle />
<SvgIcon name="xt-question-circle" size="16" class="color-#737478"/>
</Tooltip>
</Space>
<Row class="grid-demo" :gutter="24">
@ -137,7 +137,6 @@
<script setup lang="ts">
import { Space, Tooltip, Row, Col } from "ant-design-vue"
import { IconQuestionCircle } from '@arco-design/web-vue/es/icon';
const props = defineProps({
action_guide: {

View File

@ -3,10 +3,10 @@
<div class="part-div-header">
<span class="part-div-header-title">总体摘要</span>
<Tooltip position="tl" title="于筛选出来的投流账户/计划的情况生成的总体描述。">
<icon-question-circle />
<SvgIcon name="xt-question-circle" size="16" class="color-#737478"/>
</Tooltip>
<span @click="copyData" class="copybtn">
<icon-copy :style="{ fontSize: '14px' }" />
<SvgIcon name="xt-copy" :style="{ fontSize: '14px' }" />
复制
</span>
</div>
@ -24,7 +24,6 @@
</template>
<script setup lang="ts">
import { IconQuestionCircle } from '@arco-design/web-vue/es/icon';
import { defineProps } from 'vue';
import { Space, message, Tooltip } from "ant-design-vue"

View File

@ -3,7 +3,7 @@
<div class="part-div-header">
<span class="part-div-header-title">投放建议优化</span>
<Tooltip position="tl" title="基于筛选出来的投流账户/计划的情况生成的优化建议。">
<icon-question-circle />
<SvgIcon name="xt-question-circle" />
</Tooltip>
</div>
<NoData v-if="isEmptyData" style="height: 100px" text="暂无数据" />
@ -15,7 +15,7 @@
<span class="placement-optimization-title"
>总体策略
<Tooltip position="tl" title="优化建议的整体调整概述。">
<icon-question-circle />
<SvgIcon name="xt-question-circle" />
</Tooltip>
</span>
<span class="placement-optimization-str">{{ props.optimization?.[0]?.['content'] }}</span>
@ -28,7 +28,7 @@
<span class="placement-optimization-title"
>预算分配
<Tooltip position="tl" title="优化建议在预算分配部分的详细描述。">
<icon-question-circle />
<SvgIcon name="xt-question-circle" />
</Tooltip>
</span>
<span class="placement-optimization-str">{{ props.optimization?.[1]?.['content'] }}</span>
@ -39,7 +39,7 @@
<span class="placement-optimization-title"
>时段优化
<Tooltip position="tl" title="优化建议在时段优化部分的详细描述。">
<icon-question-circle />
<SvgIcon name="xt-question-circle" />
</Tooltip>
</span>
<span class="placement-optimization-str">{{ props.optimization?.[2]?.['content'] }}</span>
@ -52,7 +52,7 @@
<span class="placement-optimization-title"
>人群包优化
<Tooltip position="tl" title="优化建议在人群包优化部分的详细描述。">
<icon-question-circle />
<SvgIcon name="xt-question-circle" />
</Tooltip>
</span>
<span class="placement-optimization-str">{{ props?.optimization?.[3]?.['content'] }}</span>
@ -63,7 +63,7 @@
<span class="placement-optimization-title"
>素材优化
<Tooltip position="tl" title="优化建议在素材优化部分的详细描述。">
<icon-question-circle />
<SvgIcon name="xt-question-circle" />
</Tooltip>
</span>
<span class="placement-optimization-str">{{ props?.optimization?.[4]?.['content'] }}</span>

View File

@ -48,7 +48,7 @@
cancelText="取消"
@confirm="deleteData(record.id)"
>
<icon-delete></icon-delete>
<SvgIcon name="xt-delete" size="14" class="color-#55585f"/>
</Popconfirm>
</Space>
<Space>
@ -63,7 +63,6 @@
</template>
<script setup lang="ts">
import { Button, Space, Table, message, Popconfirm } from 'ant-design-vue';
import { IconDelete } from '@arco-design/web-vue/es/icon';
import { PLATFORM_LIST } from '@/utils/platform';

View File

@ -31,13 +31,13 @@
<div class="filter-row-item flex items-center">
<Button type="primary" ghost class="mr-12px" :disabled="disabled" @click="handleSearch">
<template #icon>
<icon-search class="mr-8px" />
<SvgIcon name="xt-search" class="mr-8px" />
</template>
<template #default>搜索</template>
</Button>
<Button @click="handleReset">
<template #icon>
<icon-refresh class="mr-8px" />
<SvgIcon name="xt-refresh" class="mr-8px" />
</template>
<template #default>重置</template>
</Button>

View File

@ -47,7 +47,7 @@
<Space>
<span>本周总消耗</span>
<Tooltip position="tl" title="当前周内所有投流账户的累计广告花费,反映整体投放规模。">
<icon-question-circle />
<SvgIcon name="xt-question-circle" />
</Tooltip>
</Space>
</template>
@ -66,7 +66,7 @@
<Space>
<span>本周总消耗环比</span>
<Tooltip position="tl" title="本周消耗金额与上周对比的变化百分比,用于衡量预算投放趋势。">
<icon-question-circle />
<SvgIcon name="xt-question-circle" />
</Tooltip>
</Space>
</template>
@ -80,8 +80,8 @@
}"
>
<template #prefix>
<icon-arrow-rise v-if="record.pre_total_use_amount_chain > 0" />
<icon-arrow-down v-else />
<SvgIcon name="xt-arrow-up" v-if="record.pre_total_use_amount_chain > 0" />
<SvgIcon name="xt-arrow-down" v-else />
</template>
<template #suffix>%</template>
</Statistic>
@ -98,7 +98,7 @@
<Space>
<span>ROI</span>
<Tooltip position="tl" title="投资回报率ROI= 收益 ÷ 投入成本反映整体投流账户的收益效率">
<icon-question-circle />
<SvgIcon name="xt-question-circle" />
</Tooltip>
</Space>
</template>
@ -114,7 +114,7 @@
<Space>
<span>CTR</span>
<Tooltip position="tl" title="点击率CTR= 点击量 ÷ 展示量是衡量广告素材吸引力的关键指标">
<icon-question-circle />
<SvgIcon name="xt-question-circle" />
</Tooltip>
</Space>
</template>

View File

@ -63,7 +63,7 @@
<Space class="down-btn">
<Button type="primary" ghost :loading="exportLoading" @click="downPage">
<template #icon>
<icon-download class="mr-8px"/>
<SvgIcon name="xt-download" class="mr-8px"/>
</template>
<template #default>下载</template>
</Button>

View File

@ -55,13 +55,13 @@
<Space class="down-btn">
<Button type="primary" ghost :loading="exportLoading" @click="downPage">
<template #icon>
<icon-download class="mr-8px"/>
<SvgIcon name="xt-download" class="mr-8px"/>
</template>
<template #default>下载</template>
</Button>
<Button type="primary" @click="handleSave">
<template #icon>
<icon-drive-file class="mr-8px"/>
<SvgIcon name="xt-file" class="mr-8px"/>
</template>
<template #default>保存</template>
</Button>