feat: use lucide icons
This commit is contained in:
@@ -71,7 +71,7 @@ async function handleGenerateQrCode(row: MpAccountApi.Account) {
|
|||||||
/** 清空 API 配额 */
|
/** 清空 API 配额 */
|
||||||
async function handleCleanQuota(row: MpAccountApi.Account) {
|
async function handleCleanQuota(row: MpAccountApi.Account) {
|
||||||
const hideLoading = message.loading({
|
const hideLoading = message.loading({
|
||||||
content: $t('ui.actionMessage.processing', ['清空 API 配额']),
|
content: '正在清空 API 配额',
|
||||||
duration: 0,
|
duration: 0,
|
||||||
});
|
});
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
|
|||||||
},
|
},
|
||||||
gridOptions: {
|
gridOptions: {
|
||||||
columns: useGridColumns(Number(msgType.value) as MsgType),
|
columns: useGridColumns(Number(msgType.value) as MsgType),
|
||||||
height: 'calc(100vh - 300px)',
|
height: 'auto',
|
||||||
keepSource: true,
|
keepSource: true,
|
||||||
proxyConfig: {
|
proxyConfig: {
|
||||||
ajax: {
|
ajax: {
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ defineExpose({
|
|||||||
<img :src="mapImageUrl" alt="地图位置" />
|
<img :src="mapImageUrl" alt="地图位置" />
|
||||||
</Row>
|
</Row>
|
||||||
<Row class="mt-2">
|
<Row class="mt-2">
|
||||||
<IconifyIcon icon="mdi:map-marker" class="mr-1" />
|
<IconifyIcon icon="lucide:map-pin" class="mr-1" />
|
||||||
{{ label }}
|
{{ label }}
|
||||||
</Row>
|
</Row>
|
||||||
</Col>
|
</Col>
|
||||||
|
|||||||
@@ -298,7 +298,7 @@ watch(
|
|||||||
<Button type="primary" @click="selectMaterialFun(item)">
|
<Button type="primary" @click="selectMaterialFun(item)">
|
||||||
选择
|
选择
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:check-circle" />
|
<IconifyIcon icon="lucide:circle-check" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</Row>
|
</Row>
|
||||||
@@ -325,7 +325,7 @@ watch(
|
|||||||
<Button type="link" @click="selectMaterialFun(row)">
|
<Button type="link" @click="selectMaterialFun(row)">
|
||||||
选择
|
选择
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:plus" />
|
<IconifyIcon icon="lucide:plus" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
@@ -342,7 +342,7 @@ watch(
|
|||||||
<Button type="link" @click="selectMaterialFun(row)">
|
<Button type="link" @click="selectMaterialFun(row)">
|
||||||
选择
|
选择
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:plus-circle" />
|
<IconifyIcon icon="lucide:circle-plus" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
@@ -360,7 +360,7 @@ watch(
|
|||||||
<Button type="primary" @click="selectMaterialFun(item)">
|
<Button type="primary" @click="selectMaterialFun(item)">
|
||||||
选择
|
选择
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:check-circle" />
|
<IconifyIcon icon="lucide:circle-check" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</Row>
|
</Row>
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ defineProps<{
|
|||||||
<div v-else-if="item.type === MsgType.Link" class="flex flex-col gap-2">
|
<div v-else-if="item.type === MsgType.Link" class="flex flex-col gap-2">
|
||||||
<a :href="item.url" target="_blank" class="text-success no-underline">
|
<a :href="item.url" target="_blank" class="text-success no-underline">
|
||||||
<div class="flex items-center text-sm font-medium text-[#52c41a]">
|
<div class="flex items-center text-sm font-medium text-[#52c41a]">
|
||||||
<IconifyIcon icon="mdi:link" class="mr-1" />
|
<IconifyIcon icon="lucide:link" class="mr-1" />
|
||||||
{{ item.title }}
|
{{ item.title }}
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ function selectMaterial(item: any) {
|
|||||||
<Row class="ope-row" justify="center">
|
<Row class="ope-row" justify="center">
|
||||||
<Button danger shape="circle" @click="onDelete">
|
<Button danger shape="circle" @click="onDelete">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:delete" />
|
<IconifyIcon icon="lucide:trash-2" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</Row>
|
</Row>
|
||||||
@@ -121,7 +121,7 @@ function selectMaterial(item: any) {
|
|||||||
<Button type="primary" @click="showDialog = true">
|
<Button type="primary" @click="showDialog = true">
|
||||||
素材库选择
|
素材库选择
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:check-circle" />
|
<IconifyIcon icon="lucide:circle-check" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
<Modal
|
<Modal
|
||||||
@@ -152,7 +152,7 @@ function selectMaterial(item: any) {
|
|||||||
<Button type="primary">
|
<Button type="primary">
|
||||||
上传图片
|
上传图片
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:upload" />
|
<IconifyIcon icon="lucide:upload" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</Upload>
|
</Upload>
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ function selectMaterial(item: any) {
|
|||||||
/>
|
/>
|
||||||
<IconifyIcon
|
<IconifyIcon
|
||||||
v-else
|
v-else
|
||||||
icon="mdi:plus"
|
icon="lucide:plus"
|
||||||
:size="40"
|
:size="40"
|
||||||
class="text-gray-400"
|
class="text-gray-400"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ function onDelete() {
|
|||||||
<Col class="ope-row">
|
<Col class="ope-row">
|
||||||
<Button danger shape="circle" @click="onDelete">
|
<Button danger shape="circle" @click="onDelete">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:delete" />
|
<IconifyIcon icon="lucide:trash-2" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</Col>
|
</Col>
|
||||||
@@ -67,7 +67,7 @@ function onDelete() {
|
|||||||
: '选择草稿箱图文'
|
: '选择草稿箱图文'
|
||||||
}}
|
}}
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:check-circle" />
|
<IconifyIcon icon="lucide:circle-check" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</Col>
|
</Col>
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ function selectMaterial(item: any) {
|
|||||||
<Button type="primary" @click="showDialog = true">
|
<Button type="primary" @click="showDialog = true">
|
||||||
素材库选择
|
素材库选择
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:check-circle" />
|
<IconifyIcon icon="lucide:circle-check" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
<Modal
|
<Modal
|
||||||
@@ -171,7 +171,7 @@ function selectMaterial(item: any) {
|
|||||||
<Button type="primary">
|
<Button type="primary">
|
||||||
新建视频
|
新建视频
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:upload" />
|
<IconifyIcon icon="lucide:upload" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</Upload>
|
</Upload>
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ function selectMaterial(item: Reply) {
|
|||||||
<Row class="ope-row" justify="center">
|
<Row class="ope-row" justify="center">
|
||||||
<Button danger shape="circle" @click="onDelete">
|
<Button danger shape="circle" @click="onDelete">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:delete" />
|
<IconifyIcon icon="lucide:trash-2" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</Row>
|
</Row>
|
||||||
@@ -121,7 +121,7 @@ function selectMaterial(item: Reply) {
|
|||||||
<Button type="primary" @click="showDialog = true">
|
<Button type="primary" @click="showDialog = true">
|
||||||
素材库选择
|
素材库选择
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:check-circle" />
|
<IconifyIcon icon="lucide:circle-check" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
<Modal
|
<Modal
|
||||||
@@ -152,7 +152,7 @@ function selectMaterial(item: Reply) {
|
|||||||
<Button type="primary">
|
<Button type="primary">
|
||||||
点击上传
|
点击上传
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:upload" />
|
<IconifyIcon icon="lucide:upload" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</Upload>
|
</Upload>
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ defineExpose({
|
|||||||
<Tabs.TabPane :key="ReplyType.Text">
|
<Tabs.TabPane :key="ReplyType.Text">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<Row align="middle">
|
<Row align="middle">
|
||||||
<IconifyIcon icon="mdi:text" class="mr-1" />
|
<IconifyIcon icon="lucide:file-text" class="mr-1" />
|
||||||
文本
|
文本
|
||||||
</Row>
|
</Row>
|
||||||
</template>
|
</template>
|
||||||
@@ -100,7 +100,7 @@ defineExpose({
|
|||||||
<Tabs.TabPane :key="ReplyType.Image">
|
<Tabs.TabPane :key="ReplyType.Image">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<Row align="middle">
|
<Row align="middle">
|
||||||
<IconifyIcon icon="mdi:image" class="mr-1" />
|
<IconifyIcon icon="lucide:image" class="mr-1" />
|
||||||
图片
|
图片
|
||||||
</Row>
|
</Row>
|
||||||
</template>
|
</template>
|
||||||
@@ -111,7 +111,7 @@ defineExpose({
|
|||||||
<Tabs.TabPane :key="ReplyType.Voice">
|
<Tabs.TabPane :key="ReplyType.Voice">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<Row align="middle">
|
<Row align="middle">
|
||||||
<IconifyIcon icon="mdi:microphone" class="mr-1" />
|
<IconifyIcon icon="lucide:mic" class="mr-1" />
|
||||||
语音
|
语音
|
||||||
</Row>
|
</Row>
|
||||||
</template>
|
</template>
|
||||||
@@ -122,7 +122,7 @@ defineExpose({
|
|||||||
<Tabs.TabPane :key="ReplyType.Video">
|
<Tabs.TabPane :key="ReplyType.Video">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<Row align="middle">
|
<Row align="middle">
|
||||||
<IconifyIcon icon="mdi:video" class="mr-1" />
|
<IconifyIcon icon="lucide:video" class="mr-1" />
|
||||||
视频
|
视频
|
||||||
</Row>
|
</Row>
|
||||||
</template>
|
</template>
|
||||||
@@ -133,7 +133,7 @@ defineExpose({
|
|||||||
<Tabs.TabPane :key="ReplyType.News">
|
<Tabs.TabPane :key="ReplyType.News">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<Row align="middle">
|
<Row align="middle">
|
||||||
<IconifyIcon icon="mdi:newspaper" class="mr-1" />
|
<IconifyIcon icon="lucide:newspaper" class="mr-1" />
|
||||||
图文
|
图文
|
||||||
</Row>
|
</Row>
|
||||||
</template>
|
</template>
|
||||||
@@ -144,7 +144,7 @@ defineExpose({
|
|||||||
<Tabs.TabPane :key="ReplyType.Music">
|
<Tabs.TabPane :key="ReplyType.Music">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<Row align="middle">
|
<Row align="middle">
|
||||||
<IconifyIcon icon="mdi:music" class="mr-1" />
|
<IconifyIcon icon="lucide:music" class="mr-1" />
|
||||||
音乐
|
音乐
|
||||||
</Row>
|
</Row>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ function playVideo() {
|
|||||||
<div class="cursor-pointer" @click="playVideo()">
|
<div class="cursor-pointer" @click="playVideo()">
|
||||||
<!-- 提示 -->
|
<!-- 提示 -->
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<IconifyIcon icon="mdi:play-circle" :size="32" class="mr-2" />
|
<IconifyIcon icon="lucide:circle-play" :size="32" class="mr-2" />
|
||||||
<p class="text-sm">点击播放视频</p>
|
<p class="text-sm">点击播放视频</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -68,8 +68,12 @@ function amrStop() {
|
|||||||
<!-- 微信消息 - 语音播放 -->
|
<!-- 微信消息 - 语音播放 -->
|
||||||
<div class="wx-voice-div cursor-pointer" @click="playVoice">
|
<div class="wx-voice-div cursor-pointer" @click="playVoice">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<IconifyIcon v-if="playing !== true" icon="mdi:play-circle" :size="32" />
|
<IconifyIcon
|
||||||
<IconifyIcon v-else icon="mdi:pause-circle" :size="32" />
|
v-if="playing !== true"
|
||||||
|
icon="lucide:circle-play"
|
||||||
|
:size="32"
|
||||||
|
/>
|
||||||
|
<IconifyIcon v-else icon="lucide:circle-pause" :size="32" />
|
||||||
<span v-if="duration" class="amr-duration">{{ duration }} 秒</span>
|
<span v-if="duration" class="amr-duration">{{ duration }} 秒</span>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="content" class="mt-2">
|
<div v-if="content" class="mt-2">
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ const { hasAccessByCodes } = useAccess();
|
|||||||
@click="emit('delete', item.id)"
|
@click="emit('delete', item.id)"
|
||||||
>
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:delete" />
|
<IconifyIcon icon="lucide:trash-2" />
|
||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ const customRequest: UploadProps['customRequest'] = async function (options) {
|
|||||||
class="mb-4"
|
class="mb-4"
|
||||||
>
|
>
|
||||||
<Button type="primary">
|
<Button type="primary">
|
||||||
<IconifyIcon icon="mdi:upload" class="mr-1" />
|
<IconifyIcon icon="lucide:upload" class="mr-1" />
|
||||||
点击上传
|
点击上传
|
||||||
</Button>
|
</Button>
|
||||||
<template #itemRender="{ file, actions }">
|
<template #itemRender="{ file, actions }">
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ const customRequest: UploadProps['customRequest'] = async function (options) {
|
|||||||
class="mb-4"
|
class="mb-4"
|
||||||
>
|
>
|
||||||
<Button type="primary">
|
<Button type="primary">
|
||||||
<IconifyIcon icon="mdi:video-plus" class="mr-1" />
|
<IconifyIcon icon="lucide:video" class="mr-1" />
|
||||||
选择视频
|
选择视频
|
||||||
</Button>
|
</Button>
|
||||||
</Upload>
|
</Upload>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { watch } from 'vue';
|
|||||||
|
|
||||||
import { useAccess } from '@vben/access';
|
import { useAccess } from '@vben/access';
|
||||||
import { IconifyIcon } from '@vben/icons';
|
import { IconifyIcon } from '@vben/icons';
|
||||||
import { formatDate2 } from '@vben/utils';
|
import { formatDate2, openWindow } from '@vben/utils';
|
||||||
|
|
||||||
import { Button } from 'ant-design-vue';
|
import { Button } from 'ant-design-vue';
|
||||||
|
|
||||||
@@ -90,10 +90,6 @@ const [Grid, gridApi] = useVbenVxeGrid({
|
|||||||
} as VxeTableGridOptions<any>, // TODO @dylan:这里有个告警哈;
|
} as VxeTableGridOptions<any>, // TODO @dylan:这里有个告警哈;
|
||||||
});
|
});
|
||||||
|
|
||||||
function handleDownload(url: string) {
|
|
||||||
window.open(url, '_blank');
|
|
||||||
}
|
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => props.list,
|
() => props.list,
|
||||||
(list: any[]) => {
|
(list: any[]) => {
|
||||||
@@ -125,8 +121,8 @@ watch(
|
|||||||
{{ formatDate2(row.createTime) }}
|
{{ formatDate2(row.createTime) }}
|
||||||
</template>
|
</template>
|
||||||
<template #actions="{ row }">
|
<template #actions="{ row }">
|
||||||
<Button type="link" @click="handleDownload(row.url)">
|
<Button type="link" @click="openWindow(row.url)">
|
||||||
<IconifyIcon icon="mdi:download" />
|
<IconifyIcon icon="lucide:download" />
|
||||||
下载
|
下载
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
@@ -135,7 +131,7 @@ watch(
|
|||||||
type="link"
|
type="link"
|
||||||
@click="emit('delete', row.id)"
|
@click="emit('delete', row.id)"
|
||||||
>
|
>
|
||||||
<IconifyIcon icon="mdi:delete" />
|
<IconifyIcon icon="lucide:trash-2" />
|
||||||
删除
|
删除
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { watch } from 'vue';
|
|||||||
|
|
||||||
import { useAccess } from '@vben/access';
|
import { useAccess } from '@vben/access';
|
||||||
import { IconifyIcon } from '@vben/icons';
|
import { IconifyIcon } from '@vben/icons';
|
||||||
import { formatDate2 } from '@vben/utils';
|
import { formatDate2, openWindow } from '@vben/utils';
|
||||||
|
|
||||||
import { Button } from 'ant-design-vue';
|
import { Button } from 'ant-design-vue';
|
||||||
|
|
||||||
@@ -78,10 +78,6 @@ const [Grid, gridApi] = useVbenVxeGrid({
|
|||||||
} as VxeTableGridOptions<any>, // TODO @dylan:这里有个告警哈;
|
} as VxeTableGridOptions<any>, // TODO @dylan:这里有个告警哈;
|
||||||
});
|
});
|
||||||
|
|
||||||
function handleDownload(url: string) {
|
|
||||||
window.open(url, '_blank');
|
|
||||||
}
|
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => props.list,
|
() => props.list,
|
||||||
(list: any[]) => {
|
(list: any[]) => {
|
||||||
@@ -113,8 +109,8 @@ watch(
|
|||||||
{{ formatDate2(row.createTime) }}
|
{{ formatDate2(row.createTime) }}
|
||||||
</template>
|
</template>
|
||||||
<template #actions="{ row }">
|
<template #actions="{ row }">
|
||||||
<Button type="link" @click="handleDownload(row.url)">
|
<Button type="link" @click="openWindow(row.url)">
|
||||||
<IconifyIcon icon="mdi:download" />
|
<IconifyIcon icon="lucide:download" />
|
||||||
下载
|
下载
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
@@ -123,7 +119,7 @@ watch(
|
|||||||
type="link"
|
type="link"
|
||||||
@click="emit('delete', row.id)"
|
@click="emit('delete', row.id)"
|
||||||
>
|
>
|
||||||
<IconifyIcon icon="mdi:delete" />
|
<IconifyIcon icon="lucide:trash-2" />
|
||||||
删除
|
删除
|
||||||
</Button>
|
</Button>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import { provide, reactive, ref } from 'vue';
|
import { provide, reactive, ref } from 'vue';
|
||||||
|
|
||||||
import { useAccess } from '@vben/access';
|
import { useAccess } from '@vben/access';
|
||||||
import { Page } from '@vben/common-ui';
|
import { DocAlert, Page } from '@vben/common-ui';
|
||||||
import { IconifyIcon } from '@vben/icons';
|
import { IconifyIcon } from '@vben/icons';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@@ -99,6 +99,9 @@ async function handleDelete(id: number) {
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<Page auto-content-height>
|
<Page auto-content-height>
|
||||||
|
<template #doc>
|
||||||
|
<DocAlert title="公众号素材" url="https://doc.iocoder.cn/mp/material/" />
|
||||||
|
</template>
|
||||||
<div class="h-full">
|
<div class="h-full">
|
||||||
<!-- 搜索工作栏 -->
|
<!-- 搜索工作栏 -->
|
||||||
<Card class="h-[10%]" :bordered="false">
|
<Card class="h-[10%]" :bordered="false">
|
||||||
@@ -109,13 +112,13 @@ async function handleDelete(id: number) {
|
|||||||
</Form>
|
</Form>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<Card :bordered="false" class="mt-4 h-[90%]">
|
<Card :bordered="false" class="mt-4 h-[88%]">
|
||||||
<Tabs v-model:active-key="type" @change="onTabChange">
|
<Tabs v-model:active-key="type" @change="onTabChange">
|
||||||
<!-- tab 1:图片 -->
|
<!-- tab 1:图片 -->
|
||||||
<Tabs.TabPane :key="UploadType.Image">
|
<Tabs.TabPane :key="UploadType.Image">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<span class="flex items-center">
|
<span class="flex items-center">
|
||||||
<IconifyIcon icon="mdi:image" class="mr-1" />
|
<IconifyIcon icon="lucide:image" class="mr-1" />
|
||||||
图片
|
图片
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
@@ -149,7 +152,7 @@ async function handleDelete(id: number) {
|
|||||||
<Tabs.TabPane :key="UploadType.Voice">
|
<Tabs.TabPane :key="UploadType.Voice">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<span class="flex items-center">
|
<span class="flex items-center">
|
||||||
<IconifyIcon icon="mdi:microphone" class="mr-1" />
|
<IconifyIcon icon="lucide:mic" class="mr-1" />
|
||||||
语音
|
语音
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
@@ -183,7 +186,7 @@ async function handleDelete(id: number) {
|
|||||||
<Tabs.TabPane :key="UploadType.Video">
|
<Tabs.TabPane :key="UploadType.Video">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<span class="flex items-center">
|
<span class="flex items-center">
|
||||||
<IconifyIcon icon="mdi:video" class="mr-1" />
|
<IconifyIcon icon="lucide:video" class="mr-1" />
|
||||||
视频
|
视频
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import { getDictOptions } from '@vben/hooks';
|
|||||||
import { IconifyIcon } from '@vben/icons';
|
import { IconifyIcon } from '@vben/icons';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
Button,
|
||||||
DatePicker,
|
DatePicker,
|
||||||
Form,
|
Form,
|
||||||
FormItem,
|
FormItem,
|
||||||
@@ -106,7 +107,7 @@ function showTotal(total: number) {
|
|||||||
<template>
|
<template>
|
||||||
<Page auto-content-height class="flex flex-col">
|
<Page auto-content-height class="flex flex-col">
|
||||||
<!-- 搜索工作栏 -->
|
<!-- 搜索工作栏 -->
|
||||||
<div class="mb-4 rounded-lg bg-white p-4">
|
<div class="bg-background mb-4 rounded-lg p-4">
|
||||||
<Form
|
<Form
|
||||||
ref="queryFormRef"
|
ref="queryFormRef"
|
||||||
:model="queryParams"
|
:model="queryParams"
|
||||||
@@ -147,24 +148,24 @@ function showTotal(total: number) {
|
|||||||
/>
|
/>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
<FormItem>
|
<FormItem>
|
||||||
<a-button type="primary" @click="handleQuery">
|
<Button type="primary" @click="handleQuery">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:magnify" />
|
<IconifyIcon icon="mdi:magnify" />
|
||||||
</template>
|
</template>
|
||||||
搜索
|
搜索
|
||||||
</a-button>
|
</Button>
|
||||||
<a-button class="ml-2" @click="resetQuery">
|
<Button class="ml-2" @click="resetQuery">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<IconifyIcon icon="mdi:refresh" />
|
<IconifyIcon icon="mdi:refresh" />
|
||||||
</template>
|
</template>
|
||||||
重置
|
重置
|
||||||
</a-button>
|
</Button>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
<div class="flex-1 rounded-lg bg-white p-4">
|
<div class="bg-background flex-1 rounded-lg p-4">
|
||||||
<MessageTable :list="list" :loading="loading" @send="handleSend" />
|
<MessageTable :list="list" :loading="loading" @send="handleSend" />
|
||||||
<div v-show="total > 0" class="mt-4 flex justify-end">
|
<div v-show="total > 0" class="mt-4 flex justify-end">
|
||||||
<Pagination
|
<Pagination
|
||||||
|
|||||||
Reference in New Issue
Block a user