feat: modal组件替换

This commit is contained in:
rd
2025-09-03 12:04:15 +08:00
parent db67274583
commit 64a5b41a4e
54 changed files with 358 additions and 278 deletions

View File

@ -1,9 +1,10 @@
<template> <template>
<a-modal title-align="start" modal-class="modal" body-class="body" v-bind="$attrs"> <Modal title-align="start" wrapClassName="modal" body-class="body" v-bind="$attrs" centered>
<slot></slot> <slot></slot>
</a-modal> </Modal>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { Modal } from 'ant-design-vue';
</script> </script>
<style lang="scss"> <style lang="scss">
.modal { .modal {

View File

@ -55,7 +55,7 @@ const checkHasInviteCode = () => {
<template> <template>
<Layout :class="['layout-wrap', { mobile: appStore.hideMenu }]" class="h-full flex flex-col w-full"> <Layout :class="['layout-wrap', { mobile: appStore.hideMenu }]" class="h-full flex flex-col w-full">
<JoinModal v-model:visible="joinEnterpriseVisible" ref="joinModalRef" /> <JoinModal v-model:open="joinEnterpriseVisible" centered ref="joinModalRef" />
<Layout.Header class="layout-header-wrap"> <Layout.Header class="layout-header-wrap">
<Navbar /> <Navbar />
</Layout.Header> </Layout.Header>

View File

@ -2,10 +2,7 @@
<view> <view>
<topHeader ref="topHeaderRef" @search="search"></topHeader> <topHeader ref="topHeaderRef" @search="search"></topHeader>
<!-- tabel --> <!-- tabel -->
<a-space <a-space direction="vertical" class="bg-#fff rounded-8px w-100% py-0 px-20px mb-24px">
direction="vertical"
class="bg-#fff rounded-8px w-100% py-0 px-20px mb-24px"
>
<div class="title-row"> <div class="title-row">
<span class="title mr-4px">行业热门话题洞察</span> <span class="title mr-4px">行业热门话题洞察</span>
<a-tooltip> <a-tooltip>
@ -78,7 +75,14 @@
</template> </template>
</a-table> </a-table>
</a-space> </a-space>
<Modal v-model:open="visible" unmountOnClose centered wrapClassName="hot-translation-modal" width="640px" @cancel="handleCancel"> <Modal
v-model:open="visible"
unmountOnClose
centered
wrapClassName="hot-translation-modal"
width="640px"
@cancel="handleCancel"
>
<template #title> <template #title>
<span style="text-align: left; width: 100%">行业热门话题洞察</span> <span style="text-align: left; width: 100%">行业热门话题洞察</span>
</template> </template>

View File

@ -36,7 +36,7 @@
</Button> </Button>
</template> </template>
</a-table> </a-table>
<Modal v-model:visible="addAccountVisible" width="480px" title="添加子账号" :okText="okText" @ok="handleOk" > <Modal v-model:open="addAccountVisible" centered width="480px" title="添加子账号" :okText="okText" @ok="handleOk" >
<div v-if="canAddAccount" class="add-account-container"> <div v-if="canAddAccount" class="add-account-container">
<h2 class="add-account-title">生成企业专属链接成员通过访问即可注册并加入企业账号</h2> <h2 class="add-account-title">生成企业专属链接成员通过访问即可注册并加入企业账号</h2>
<p class="add-account-subtitle">子账号可独立登录权限继承主账号配置</p> <p class="add-account-subtitle">子账号可独立登录权限继承主账号配置</p>
@ -53,8 +53,8 @@
<p class="cannot-add-account-subtitle">如需添加更多子账号您可联系销售人员进行购买和权限扩展</p> <p class="cannot-add-account-subtitle">如需添加更多子账号您可联系销售人员进行购买和权限扩展</p>
</div> </div>
</Modal> </Modal>
<CustomerServiceModal v-model:visible="customerServiceVisible" /> <CustomerServiceModal v-model:open="customerServiceVisible" centered/>
<DeleteModal v-model:open="deleteVisible" :content="deleteTitle" @ok="handleDelete" @close="deleteVisible = false"> <DeleteModal v-model:open="deleteVisible" centered :content="deleteTitle" @ok="handleDelete" @cancel="deleteVisible = false">
</DeleteModal> </DeleteModal>
</div> </div>
</template> </template>

View File

@ -14,7 +14,7 @@
<Button class="edit-button" size="small" type="primary" ghost @click="handleUpdate">修改</Button> <Button class="edit-button" size="small" type="primary" ghost @click="handleUpdate">修改</Button>
</template> </template>
</a-table> </a-table>
<Modal v-model:visible="infoVisible" width="480px" title="修改企业名称" :okText="okText" @ok="handleOk"> <Modal v-model:open="infoVisible" width="480px" centered title="修改企业名称" :okText="okText" @ok="handleOk">
<p class="tips"> <p class="tips">
企业名称只能修改2次请谨慎操作<span 企业名称只能修改2次请谨慎操作<span
>剩余{{ enterpriseInfo!.update_name_quota - enterpriseInfo!.used_update_name_count }} >剩余{{ enterpriseInfo!.update_name_quota - enterpriseInfo!.used_update_name_count }}
@ -32,7 +32,7 @@
</a-form-item> </a-form-item>
</a-form> </a-form>
</Modal> </Modal>
<CustomerServiceModal v-model:visible="customerServiceVisible" /> <CustomerServiceModal v-model:open="customerServiceVisible" centered />
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">

View File

@ -19,7 +19,7 @@
<icon-edit size="13" class="ml-8px" @click="openEditMobileModal" /> <icon-edit size="13" class="ml-8px" @click="openEditMobileModal" />
</template> </template>
</a-table> </a-table>
<Modal v-model:visible="infoVisible" title="修改用户信息" @ok="handleSubmitUserInfo"> <Modal v-model:open="infoVisible" centered title="修改用户信息" @ok="handleSubmitUserInfo">
<a-form <a-form
class="form" class="form"
:model="userInfoForm" :model="userInfoForm"
@ -46,10 +46,10 @@
</a-form-item> </a-form-item>
</a-form> </a-form>
</Modal> </Modal>
<Modal v-model:visible="imageVisible" title="头像裁剪"> <Modal v-model:open="imageVisible" centered title="头像裁剪">
<VueCropper></VueCropper> <VueCropper></VueCropper>
</Modal> </Modal>
<Modal v-model:visible="mobileVisible" title="修改手机号" @ok="handleUpdateMobile"> <Modal v-model:open="mobileVisible" centered title="修改手机号" @ok="handleUpdateMobile">
<a-form <a-form
ref="formRef" ref="formRef"
:model="form" :model="form"

View File

@ -64,7 +64,7 @@
<Button v-if="props.product.status === Status.Disable" size="small" type="default" ghost> 免费试用7天 </Button> <Button v-if="props.product.status === Status.Disable" size="small" type="default" ghost> 免费试用7天 </Button>
</a-popconfirm> </a-popconfirm>
</div> </div>
<CustomerServiceModal v-model:visible="visible" /> <CustomerServiceModal v-model:open="visible" centered/>
</div> </div>
</template> </template>

View File

@ -1,9 +1,10 @@
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
title="删除内容稿件" title="删除内容稿件"
width="480px" width="480px"
@close="onClose" centered
@cancel="onClose"
> >
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
@ -15,12 +16,12 @@
>确认删除</Button >确认删除</Button
> >
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { deleteWork } from '@/api/all/generationWorkshop'; import { deleteWork } from '@/api/all/generationWorkshop';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';

View File

@ -1,9 +1,10 @@
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
:title="action === 'exit' ? '退出审核' : '切换内容稿件'" :title="action === 'exit' ? '退出审核' : '切换内容稿件'"
width="480px" width="480px"
@close="onClose" centered
@cancel="onClose"
> >
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
@ -19,12 +20,12 @@
{{ action === 'exit' ? '确认退出' : '确认切换' }} {{ action === 'exit' ? '确认退出' : '确认切换' }}
</Button> </Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';

View File

@ -1,10 +1,11 @@
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
title="提示" title="提示"
width="480px" width="480px"
@close="onClose" @close="onClose"
modal-class="upload-success11-modal" centered
wrapClassName="upload-success11-modal"
:footer="null" :footer="null"
> >
<div class="flex items-center flex-col justify-center"> <div class="flex items-center flex-col justify-center">
@ -13,11 +14,12 @@
<p class="text-14px lh-22px font-400 color-#737478 ld">想让内容更抓眼球更吸流量吗</p> <p class="text-14px lh-22px font-400 color-#737478 ld">想让内容更抓眼球更吸流量吗</p>
<p class="text-14px lh-22px font-400 color-#737478 ld">试试内容稿件分析功能吧</p> <p class="text-14px lh-22px font-400 color-#737478 ld">试试内容稿件分析功能吧</p>
</div> </div>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button, Modal } from 'ant-design-vue';
import icon1 from '@/assets/img/media-account/icon-feedback-success.png'; import icon1 from '@/assets/img/media-account/icon-feedback-success.png';
const router = useRouter(); const router = useRouter();

View File

@ -1,6 +1,6 @@
<script lang="jsx"> <script lang="jsx">
import { Button } from 'ant-design-vue'; import { Button } from 'ant-design-vue';
import { Table, Modal, TableColumn, Pagination, Tooltip } from '@arco-design/web-vue'; import { Table, TableColumn, Pagination, Tooltip, Modal } from '@arco-design/web-vue';
import CommonSelect from '@/components/common-select'; import CommonSelect from '@/components/common-select';
import TextOverTips from '@/components/text-over-tips'; import TextOverTips from '@/components/text-over-tips';
import ShareModal from '@/views/material-center/components/finished-products/manuscript/components/share-manuscript-modal/share-modal'; import ShareModal from '@/views/material-center/components/finished-products/manuscript/components/share-manuscript-modal/share-modal';
@ -126,12 +126,13 @@ export default {
return () => ( return () => (
<> <>
<Modal <Modal
v-model:visible={visible.value} v-model:open={visible.value}
title="分享内容稿件" title="分享内容稿件"
width="920px" width="920px"
onClose={onClose} onCancel={onClose}
unmount-on-close centered
modal-class="share-manuscript-modal" destroyOnClose
modalClass="share-manuscript-modal"
v-slots={{ v-slots={{
footer: () => ( footer: () => (
<div class="flex justify-between w-full items-center"> <div class="flex justify-between w-full items-center">

View File

@ -1,6 +1,6 @@
<script lang="jsx"> <script lang="jsx">
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { Modal, Form, FormItem, Input, Message as AMessage } from '@arco-design/web-vue'; import { Form, FormItem, Input, Message as AMessage } from '@arco-design/web-vue';
import CommonSelect from '@/components/common-select'; import CommonSelect from '@/components/common-select';
import { useClipboard } from '@vueuse/core'; import { useClipboard } from '@vueuse/core';
@ -97,11 +97,12 @@ export default {
}); });
return () => ( return () => (
<Modal <Modal
v-model:visible={visible.value} v-model:open={visible.value}
title="分享内容稿件" title="分享内容稿件"
width="480px" width="480px"
onClose={onClose} onCancel={onClose}
unmount-on-close destroyOnClose
centered
auto-label-width auto-label-width
v-slots={{ v-slots={{
footer: () => ( footer: () => (

View File

@ -1,16 +1,6 @@
<script lang="jsx"> <script lang="jsx">
import { import { Modal, Button } from 'ant-design-vue';
Modal, import { Form, FormItem, Input, RadioGroup, Radio, Upload, Message as AMessage, Textarea } from '@arco-design/web-vue';
Form,
FormItem,
Input,
RadioGroup,
Radio,
Upload,
Button,
Message as AMessage,
Textarea,
} from '@arco-design/web-vue';
import { useClipboard } from '@vueuse/core'; import { useClipboard } from '@vueuse/core';
import { getWriterLinksGenerate, getTemplateUrl, postWorksByLink, postWorksByFile } from '@/api/all/generationWorkshop'; import { getWriterLinksGenerate, getTemplateUrl, postWorksByLink, postWorksByFile } from '@/api/all/generationWorkshop';
import { generateFullUrl } from '@/utils/tools'; import { generateFullUrl } from '@/utils/tools';
@ -332,36 +322,30 @@ export default {
const renderFooterButtons = () => { const renderFooterButtons = () => {
const buttonMap = { const buttonMap = {
[TASK_STATUS.LOADING]: () => ( [TASK_STATUS.LOADING]: () => (
<Button type="primary" size="medium" onClick={onCancelUpload}> <Button type="primary" onClick={onCancelUpload}>
取消上传 取消上传
</Button> </Button>
), ),
[TASK_STATUS.DEFAULT]: () => ( [TASK_STATUS.DEFAULT]: () => (
<> <>
<Button size="medium" onClick={onClose}> <Button onClick={onClose}>取消</Button>
取消 <Button type="primary" onClick={onSubmit}>
</Button>
<Button type="primary" size="medium" onClick={onSubmit}>
{isHandwrite.value ? '复制链接' : '确认'} {isHandwrite.value ? '复制链接' : '确认'}
</Button> </Button>
</> </>
), ),
[TASK_STATUS.FAILED]: () => ( [TASK_STATUS.FAILED]: () => (
<> <>
<Button size="medium" onClick={onClose}> <Button onClick={onClose}>取消</Button>
取消 <Button type="primary" onClick={onClose}>
</Button>
<Button type="primary" size="medium" onClick={onClose}>
重新上传 重新上传
</Button> </Button>
</> </>
), ),
[TASK_STATUS.SUCCESS]: () => ( [TASK_STATUS.SUCCESS]: () => (
<> <>
<Button size="medium" onClick={onClose}> <Button onClick={onClose}>取消</Button>
取消 <Button type="primary" onClick={goUpload}>
</Button>
<Button type="primary" size="medium" onClick={goUpload}>
确认 确认
</Button> </Button>
</> </>
@ -375,13 +359,15 @@ export default {
return () => ( return () => (
<Modal <Modal
v-model:visible={visible.value} centered
v-model:open={visible.value}
title={getTitle()} title={getTitle()}
modal-class="upload-manuscript-modal" wrapClassName="upload-manuscript-modal"
width="500px" width="500px"
mask-closable={false} maskClosable={false}
unmount-on-close destroyOnClose
onClose={onClose} centered
onCancel={onClose}
footer={!(isDefault.value && isLocal.value)} footer={!(isDefault.value && isLocal.value)}
v-slots={{ v-slots={{
footer: () => renderFooterButtons(), footer: () => renderFooterButtons(),

View File

@ -1,5 +1,5 @@
<template> <template>
<a-modal v-model:visible="visible" title="退出编辑" width="480px" @close="onClose"> <Modal v-model:open="visible" title="退出编辑" centered width="480px" @cancel="onClose">
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>内容已修改尚未保存若退出编辑本次修改将不保存</span> <span>内容已修改尚未保存若退出编辑本次修改将不保存</span>
@ -8,12 +8,12 @@
<Button size="medium" @click="onClose">继续编辑</Button> <Button size="medium" @click="onClose">继续编辑</Button>
<Button type="primary" class="ml-8px" size="medium" @click="onConfirm">确认退出</Button> <Button type="primary" class="ml-8px" size="medium" @click="onConfirm">确认退出</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';
const router = useRouter(); const router = useRouter();

View File

@ -1,5 +1,5 @@
<template> <template>
<a-modal v-model:visible="visible" title="删除稿件" width="480px" @close="onClose"> <Modal v-model:open="visible" title="删除稿件" centered width="480px" @cancel="onClose">
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>确认删除 {{ projectName }} 这个稿件吗</span> <span>确认删除 {{ projectName }} 这个稿件吗</span>
@ -8,12 +8,12 @@
<Button size="large" @click="onClose">取消</Button> <Button size="large" @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button> <Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { deleteWork } from '@/api/all/generationWorkshop'; import { deleteWork } from '@/api/all/generationWorkshop';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';

View File

@ -1,5 +1,5 @@
<template> <template>
<a-modal v-model:visible="visible" title="确认提示" width="480px" @close="onClose"> <Modal v-model:open="visible" centered title="确认提示" width="480px" @cancel="onClose">
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>确认取消上传这 {{ num }} 个文件吗此操作不可恢复</span> <span>确认取消上传这 {{ num }} 个文件吗此操作不可恢复</span>
@ -8,12 +8,12 @@
<Button size="medium" @click="onClose">继续编辑</Button> <Button size="medium" @click="onClose">继续编辑</Button>
<Button type="primary" class="ml-8px" size="medium" @click="onConfirm">确认取消</Button> <Button type="primary" class="ml-8px" size="medium" @click="onConfirm">确认取消</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';
const router = useRouter(); const router = useRouter();

View File

@ -1,5 +1,12 @@
<template> <template>
<a-modal v-model:visible="visible" title="提示" width="480px" @close="onClose" modal-class="upload-success11-modal"> <Modal
v-model:open="visible"
title="提示"
centered
width="480px"
@cancel="onClose"
wrapClassName="upload-success11-modal"
>
<div class="flex items-center flex-col justify-center"> <div class="flex items-center flex-col justify-center">
<img :src="icon1" width="80" height="80" class="mb-16px" /> <img :src="icon1" width="80" height="80" class="mb-16px" />
<span class="text-18px lh-26px font-400 color-#211F24 md">上传成功</span> <span class="text-18px lh-26px font-400 color-#211F24 md">上传成功</span>
@ -10,12 +17,12 @@
<Button size="medium" @click="onBack">回到列表</Button> <Button size="medium" @click="onBack">回到列表</Button>
<Button type="primary" class="ml-8px" size="medium" @click="onConfirm">批量审核</Button> <Button type="primary" class="ml-8px" size="medium" @click="onConfirm">批量审核</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { slsWithCatch } from '@/utils/stroage.ts'; import { slsWithCatch } from '@/utils/stroage.ts';
import icon1 from '@/assets/img/media-account/icon-feedback-success.png'; import icon1 from '@/assets/img/media-account/icon-feedback-success.png';

View File

@ -1,5 +1,5 @@
<template> <template>
<a-modal v-model:visible="visible" title="删除文件" width="480px" @close="onClose"> <Modal v-model:open="visible" title="删除文件" centered width="480px" @cancel="onClose">
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>确认删除 {{ fileName }} 文件吗</span> <span>确认删除 {{ fileName }} 文件吗</span>
@ -8,12 +8,12 @@
<Button size="medium" @click="onClose">取消</Button> <Button size="medium" @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" danger size="medium" @click="onDelete">确认删除</Button> <Button type="primary" class="ml-16px" danger size="medium" @click="onDelete">确认删除</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { deleteRawMaterial, batchDeleteRawMaterials } from '@/api/all/generationWorkshop'; import { deleteRawMaterial, batchDeleteRawMaterials } from '@/api/all/generationWorkshop';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';

View File

@ -106,7 +106,14 @@ export default defineComponent({
</div> </div>
<div class="table-wrap bg-#fff rounded-8px px-24px py-24px flex flex-col"> <div class="table-wrap bg-#fff rounded-8px px-24px py-24px flex flex-col">
<div class="flex justify-end mb-12px"> <div class="flex justify-end mb-12px">
<Button type="primary" ghost class="w-fit" size="medium" onClick={handleBatchDelete}> <Button
type="primary"
ghost
class="w-fit"
size="medium"
onClick={handleBatchDelete}
disabled={!selectedRows.value.length}
>
批量删除 批量删除
</Button> </Button>
</div> </div>

View File

@ -35,9 +35,10 @@
</Button> </Button>
</div> </div>
</div> </div>
<a-modal <Modal
v-model:visible="modalVisible" v-model:open="modalVisible"
:mask-closable="false" :maskClosable="false"
centered
:esc-to-close="false" :esc-to-close="false"
width="510px" width="510px"
@cancel="handleModalCancel" @cancel="handleModalCancel"
@ -68,7 +69,7 @@
<Button @click="handleModalCancel" class="mr-8px">取消</Button> <Button @click="handleModalCancel" class="mr-8px">取消</Button>
<Button type="primary" @click="handleModalOk">{{ btn_str }}</Button> <Button type="primary" @click="handleModalOk">{{ btn_str }}</Button>
</template> </template>
</a-modal> </Modal>
</div> </div>
</div> </div>
<div <div
@ -127,7 +128,7 @@
import { ref, computed, reactive, onMounted } from 'vue'; import { ref, computed, reactive, onMounted } from 'vue';
import { Message } from '@arco-design/web-vue'; import { Message } from '@arco-design/web-vue';
import { IconDelete } from '@arco-design/web-vue/es/icon'; import { IconDelete } from '@arco-design/web-vue/es/icon';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { import {
addMaterials, addMaterials,

View File

@ -3,7 +3,14 @@
* @Date: 2025-06-27 14:41:20 * @Date: 2025-06-27 14:41:20
--> -->
<template> <template>
<a-modal v-model:visible="visible" title="暂停同步" width="400px" modal-class="account-manage-modal" @close="onClose"> <Modal
v-model:open="visible"
title="暂停同步"
centered
width="400px"
wrapClassName="account-manage-modal"
@cancel="onClose"
>
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>确认暂停同步 {{ accountName }} 这个账号的数据吗</span> <span>确认暂停同步 {{ accountName }} 这个账号的数据吗</span>
@ -12,11 +19,11 @@
<Button size="large" @click="onClose">取消</Button> <Button size="large" @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" size="large" @click="onConfirm">确定</Button> <Button type="primary" class="ml-16px" size="large" @click="onConfirm">确定</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { ref } from 'vue'; import { ref } from 'vue';
import { pausePatchAccount } from '@/api/all/propertyMarketing'; import { pausePatchAccount } from '@/api/all/propertyMarketing';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';

View File

@ -4,9 +4,8 @@
--> -->
<script lang="jsx"> <script lang="jsx">
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { import {
Modal,
Form, Form,
FormItem, FormItem,
Input, Input,
@ -277,12 +276,13 @@ export default {
return () => ( return () => (
<Modal <Modal
v-model:visible={visible.value} v-model:open={visible.value}
title={isEdit.value ? '编辑账号' : '添加账号'} title={isEdit.value ? '编辑账号' : '添加账号'}
modal-class="add-account-modal" wrapClassName="add-account-modal"
width="500px" width="500px"
mask-closable={false} centered
onClose={onClose} maskClosable={false}
onCancel={onClose}
footer={null} footer={null}
> >
<Form ref={formRef} model={form.value} rules={rules} layout="horizontal" auto-label-width> <Form ref={formRef} model={form.value} rules={rules} layout="horizontal" auto-label-width>
@ -394,7 +394,12 @@ export default {
</FormItem> </FormItem>
<FormItem label="选择标签"> <FormItem label="选择标签">
<CommonSelect v-model={form.value.tag_ids} options={tagOptions.value} placeholder="请选择…" size="large" /> <CommonSelect
v-model={form.value.tag_ids}
options={tagOptions.value}
placeholder="请选择…"
size="large"
/>
</FormItem> </FormItem>
<FormItem <FormItem
label="笔记链接" label="笔记链接"

View File

@ -3,14 +3,15 @@
* @Date: 2025-06-25 17:51:46 * @Date: 2025-06-25 17:51:46
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
width="480px" width="480px"
title="授权账号" title="授权账号"
modal-class="authorized-account-modal" centered
:mask-closable="false" wrapClassName="authorized-account-modal"
:maskClosable="false"
:footer="modalState !== MODAL_STATE.LOADING" :footer="modalState !== MODAL_STATE.LOADING"
@close="close" @cancel="close"
> >
<div class="flex flex-col items-center"> <div class="flex flex-col items-center">
<!-- 加载中状态 --> <!-- 加载中状态 -->
@ -86,7 +87,7 @@
{{ confirmBtnText }} {{ confirmBtnText }}
</Button> </Button>
</template> </template>
</a-modal> </Modal>
<SyncDataModal ref="syncDataModalRef" /> <SyncDataModal ref="syncDataModalRef" />
</template> </template>
@ -94,7 +95,7 @@
<script setup> <script setup>
import { defineExpose, ref, computed } from 'vue'; import { defineExpose, ref, computed } from 'vue';
import { Message as AMessage } from '@arco-design/web-vue'; import { Message as AMessage } from '@arco-design/web-vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { getAuthorizedImage, getMediaAccountsAuthorizedStatus } from '@/api/all/propertyMarketing'; import { getAuthorizedImage, getMediaAccountsAuthorizedStatus } from '@/api/all/propertyMarketing';
import SyncDataModal from '../sync-data-modal'; import SyncDataModal from '../sync-data-modal';

View File

@ -3,12 +3,13 @@
* @Date: 2025-06-27 09:35:49 * @Date: 2025-06-27 09:35:49
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
title="批量标签" title="批量标签"
modal-class="batch-tag-modal" wrapClassName="batch-tag-modal"
width="800px" width="800px"
:mask-closable="false" centered
:maskClosable="false"
> >
<div class="mb-16px t1"> <div class="mb-16px t1">
{{ `已选${accountTagList.length}个账号` }} {{ `已选${accountTagList.length}个账号` }}
@ -79,12 +80,12 @@
<Button size="large" @click="onClose">取消</Button> <Button size="large" @click="onClose">取消</Button>
<Button type="primary" size="large" @click="onSubmit">确定</Button> <Button type="primary" size="large" @click="onSubmit">确定</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref, reactive } from 'vue'; import { ref, reactive } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { fetchAccountTags, batchPutTag } from '@/api/all/propertyMarketing'; import { fetchAccountTags, batchPutTag } from '@/api/all/propertyMarketing';
import icon1 from '@/assets/img/icon-question.png'; import icon1 from '@/assets/img/icon-question.png';

View File

@ -3,12 +3,13 @@
* @Date: 2025-06-26 11:44:17 * @Date: 2025-06-26 11:44:17
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
:title="isEdit ? '编辑分组' : '添加新分组'" :title="isEdit ? '编辑分组' : '添加新分组'"
modal-class="account-manage-modal" wrapClassName="group-manage-modal"
width="400px" width="400px"
@close="onClose" centered
@cancel="onClose"
> >
<a-form ref="formRef" :model="form" :rules="rules" layout="horizontal" auto-label-width> <a-form ref="formRef" :model="form" :rules="rules" layout="horizontal" auto-label-width>
<a-form-item :label="isEdit ? '分组名称' : '新分组名称'" field="name" required> <a-form-item :label="isEdit ? '分组名称' : '新分组名称'" field="name" required>
@ -19,12 +20,12 @@
<Button @click="onClose">取消</Button> <Button @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" @click="onSubmit">确认</Button> <Button type="primary" class="ml-16px" @click="onSubmit">确认</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref, watch, nextTick } from 'vue'; import { ref, watch, nextTick } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { postAccountGroups, putGroup } from '@/api/all/propertyMarketing'; import { postAccountGroups, putGroup } from '@/api/all/propertyMarketing';
const emits = defineEmits(['success', 'close']); const emits = defineEmits(['success', 'close']);

View File

@ -3,7 +3,14 @@
* @Date: 2025-06-26 11:45:05 * @Date: 2025-06-26 11:45:05
--> -->
<template> <template>
<a-modal v-model:visible="visible" title="删除分组" width="400px" modal-class="account-manage-modal" @close="onClose"> <Modal
v-model:open="visible"
title="删除分组"
centered
width="400px"
wrapClassName="account-manage-modal"
@cancel="onClose"
>
<div class="flex items-center mb-24px"> <div class="flex items-center mb-24px">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>确认删除 "{{ groupName }}" 这个分组吗</span> <span>确认删除 "{{ groupName }}" 这个分组吗</span>
@ -12,12 +19,12 @@
<Button size="large" @click="onClose">取消</Button> <Button size="large" @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button> <Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { deleteGroup } from '@/api/all/propertyMarketing'; import { deleteGroup } from '@/api/all/propertyMarketing';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';

View File

@ -3,14 +3,15 @@
* @Date: 2025-06-25 17:51:46 * @Date: 2025-06-25 17:51:46
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
width="900px" width="900px"
modal-class="account-manage-modal" wrapClassName="account-manage-modal"
:footer="false" :footer="false"
centered
title="分组管理" title="分组管理"
:mask-closable="false" :maskClosable="false"
@close="close" @cancel="close"
> >
<div class="flex items-center justify-between mb-16px"> <div class="flex items-center justify-between mb-16px">
<div class="filter-row-item flex items-center"> <div class="filter-row-item flex items-center">
@ -76,12 +77,12 @@
<AddGroup ref="addGroupRef" @success="update" /> <AddGroup ref="addGroupRef" @success="update" />
<DeleteGroup ref="deleteGroupRef" @success="update" /> <DeleteGroup ref="deleteGroupRef" @success="update" />
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref, reactive, onMounted } from 'vue'; import { ref, reactive, onMounted } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { getAccountGroup } from '@/api/all/propertyMarketing'; import { getAccountGroup } from '@/api/all/propertyMarketing';
import { exactFormatTime } from '@/utils/tools'; import { exactFormatTime } from '@/utils/tools';

View File

@ -3,13 +3,14 @@
* @Date: 2025-06-25 17:51:46 * @Date: 2025-06-25 17:51:46
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
width="480px" width="480px"
title="导入提示" title="导入提示"
modal-class="import-prompt-modal" wrapClassName="import-prompt-modal"
:mask-closable="false" :maskClosable="false"
@close="close" centered
@cancel="close"
> >
<div class="flex flex-col items-center"> <div class="flex flex-col items-center">
<div class="flex items-center"> <div class="flex items-center">
@ -24,11 +25,11 @@
<Button size="large" @click="close">取消</Button> <Button size="large" @click="close">取消</Button>
<Button type="primary" size="large" @click="handleOk"> 去授权 </Button> <Button type="primary" size="large" @click="handleOk"> 去授权 </Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { defineExpose } from 'vue'; import { defineExpose } from 'vue';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';

View File

@ -3,14 +3,15 @@
* @Date: 2025-06-25 17:51:46 * @Date: 2025-06-25 17:51:46
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
width="500px" width="500px"
centered
title="重新授权" title="重新授权"
modal-class="reauthorize-account-modal" wrapClassName="reauthorize-account-modal"
:mask-closable="false" :maskClosable="false"
:footer="modalState !== MODAL_STATE.LOADING" :footer="modalState !== MODAL_STATE.LOADING"
@close="close" @cancel="close"
> >
<div class="flex flex-col items-center"> <div class="flex flex-col items-center">
<!-- 加载中状态 --> <!-- 加载中状态 -->
@ -92,9 +93,7 @@
</div> </div>
<template #footer> <template #footer>
<Button v-if="modalState === MODAL_STATE.QR_READY" size="large" @click="handleRefreshQrCode"> <Button v-if="modalState === MODAL_STATE.QR_READY" size="large" @click="handleRefreshQrCode"> 重新生成 </Button>
重新生成
</Button>
<Button <Button
v-if="modalState === MODAL_STATE.SUCCESS || modalState === MODAL_STATE.FAILED" v-if="modalState === MODAL_STATE.SUCCESS || modalState === MODAL_STATE.FAILED"
size="large" size="large"
@ -106,7 +105,7 @@
{{ confirmBtnText }} {{ confirmBtnText }}
</Button> </Button>
</template> </template>
</a-modal> </Modal>
<SyncDataModal ref="syncDataModalRef" /> <SyncDataModal ref="syncDataModalRef" />
</template> </template>
@ -114,7 +113,7 @@
<script setup> <script setup>
import { defineExpose, ref, computed } from 'vue'; import { defineExpose, ref, computed } from 'vue';
import { Message as AMessage } from '@arco-design/web-vue'; import { Message as AMessage } from '@arco-design/web-vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { getMediaAccountsAuthorizedStatus, getAuthorizedImage } from '@/api/all/propertyMarketing'; import { getMediaAccountsAuthorizedStatus, getAuthorizedImage } from '@/api/all/propertyMarketing';
import SyncDataModal from '../sync-data-modal'; import SyncDataModal from '../sync-data-modal';

View File

@ -3,13 +3,14 @@
* @Date: 2025-06-25 17:51:46 * @Date: 2025-06-25 17:51:46
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
width="480px" width="480px"
title="更新数据" title="更新数据"
modal-class="sync-data-modal" centered
:mask-closable="false" wrapClassName="sync-data-modal"
@close="close" :maskClosable="false"
@cancel="close"
> >
<div class="flex flex-col items-center"> <div class="flex flex-col items-center">
<div class="flex items-center"> <div class="flex items-center">
@ -23,12 +24,12 @@
<Button size="large" @click="close">稍后再说</Button> <Button size="large" @click="close">稍后再说</Button>
<Button type="primary" size="large" @click="handleOk"> 更新数据 </Button> <Button type="primary" size="large" @click="handleOk"> 更新数据 </Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { defineExpose } from 'vue'; import { defineExpose } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';

View File

@ -1,10 +1,11 @@
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
:title="isEdit ? '编辑标签' : '添加新标签'" :title="isEdit ? '编辑标签' : '添加新标签'"
modal-class="tags-manage-modal" wrapClassName="tags-manage-modal"
width="400px" width="400px"
@close="onClose" centered
@cancel="onClose"
> >
<a-form ref="formRef" :model="form" :rules="rules" layout="horizontal" auto-label-width> <a-form ref="formRef" :model="form" :rules="rules" layout="horizontal" auto-label-width>
<a-form-item :label="isEdit ? '标签名称' : '新标签名称'" field="name" required> <a-form-item :label="isEdit ? '标签名称' : '新标签名称'" field="name" required>
@ -15,12 +16,12 @@
<Button @click="onClose">取消</Button> <Button @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" @click="onSubmit">确认</Button> <Button type="primary" class="ml-16px" @click="onSubmit">确认</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref, nextTick } from 'vue'; import { ref, nextTick } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { postAccountTags, putTag } from '@/api/all/propertyMarketing'; import { postAccountTags, putTag } from '@/api/all/propertyMarketing';
const emits = defineEmits(['success', 'close']); const emits = defineEmits(['success', 'close']);

View File

@ -3,18 +3,23 @@
* @Date: 2025-06-26 17:23:52 * @Date: 2025-06-26 17:23:52
--> -->
<template> <template>
<a-modal v-model:visible="visible" title="删除标签" width="400px" modal-class="account-manage-modal" @close="onClose"> <Modal
v-model:open="visible"
title="删除标签"
centered
width="400px"
wrapClassName="account-manage-modal"
@cancel="onClose"
>
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>确认删除 "{{ tagName }}" 这个标签吗</span> <span>确认删除 "{{ tagName }}" 这个标签吗</span>
</div> </div>
<template #footer> <template #footer>
<Button size="large" @click="onClose">取消</Button> <Button size="large" @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" danger size="large" @click="onDelete" <Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button>
>确认删除</Button
>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>

View File

@ -3,14 +3,15 @@
* @Date: 2025-06-25 17:58:28 * @Date: 2025-06-25 17:58:28
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
width="800px" width="800px"
modal-class="tags-manage-modal" wrapClassName="tags-manage-modal"
:footer="false" :footer="false"
centered
title="标签管理" title="标签管理"
:mask-closable="false" :maskClosable="false"
@close="close" @cancel="close"
> >
<div class="flex items-center justify-between mb-16px"> <div class="flex items-center justify-between mb-16px">
<div class="filter-row-item flex items-center"> <div class="filter-row-item flex items-center">
@ -55,12 +56,12 @@
<AddTag ref="addTagRef" @success="update" /> <AddTag ref="addTagRef" @success="update" />
<DeleteTag ref="deleteTagRef" @success="update" /> <DeleteTag ref="deleteTagRef" @success="update" />
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { getTagsList } from '@/api/all/propertyMarketing'; import { getTagsList } from '@/api/all/propertyMarketing';
import AddTag from './add-tag.vue'; import AddTag from './add-tag.vue';

View File

@ -1,11 +1,12 @@
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
title="添加项目" title="添加项目"
modal-class="add-project-modal" wrapClassName="add-project-modal"
width="960px" width="960px"
:mask-closable="false" centered
@close="onClose" :maskClosable="false"
@cancel="onClose"
> >
<div class="content"> <div class="content">
<a-steps changeable :current="currentStep" @change="setCurrent" class="mb-24px mx-79px"> <a-steps changeable :current="currentStep" @change="setCurrent" class="mb-24px mx-79px">
@ -25,12 +26,12 @@
</div> </div>
</div> </div>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { postAddProject, putProject, getProjectDetail } from '@/api/all/propertyMarketing'; import { postAddProject, putProject, getProjectDetail } from '@/api/all/propertyMarketing';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import StepOne from './stepOne.vue'; import StepOne from './stepOne.vue';
import StepTwo from './stepTwo.vue'; import StepTwo from './stepTwo.vue';

View File

@ -3,12 +3,13 @@
* @Date: 2025-06-26 17:44:16 * @Date: 2025-06-26 17:44:16
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
title="删除项目" title="删除项目"
width="480px" width="480px"
modal-class="project-manage-modal" centered
@close="onClose" wrapClassName="project-manage-modal"
@cancel="onClose"
> >
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
@ -20,12 +21,12 @@
>确认删除</Button >确认删除</Button
> >
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { deleteProject } from '@/api/all/propertyMarketing'; import { deleteProject } from '@/api/all/propertyMarketing';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';

View File

@ -3,12 +3,13 @@
* @Date: 2025-06-26 11:44:17 * @Date: 2025-06-26 11:44:17
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
:title="isEdit ? '编辑分组' : '添加新分组'" :title="isEdit ? '编辑分组' : '添加新分组'"
modal-class="account-manage-modal" wrapClassName="account-manage-modal"
width="400px" width="400px"
@close="onClose" centered
@cancel="onClose"
> >
<a-form ref="formRef" :model="form" :rules="rules" layout="horizontal" auto-label-width> <a-form ref="formRef" :model="form" :rules="rules" layout="horizontal" auto-label-width>
<a-form-item :label="isEdit ? '分组名称' : '新分组名称'" field="name" required> <a-form-item :label="isEdit ? '分组名称' : '新分组名称'" field="name" required>
@ -19,12 +20,12 @@
<Button @click="onClose">取消</Button> <Button @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" @click="onSubmit">确认</Button> <Button type="primary" class="ml-16px" @click="onSubmit">确认</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref, watch, nextTick } from 'vue'; import { ref, watch, nextTick } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { postPlacementAccountProjectGroups, putPlacementAccountProjectGroups } from '@/api/all/propertyMarketing'; import { postPlacementAccountProjectGroups, putPlacementAccountProjectGroups } from '@/api/all/propertyMarketing';
const emits = defineEmits(['success', 'close']); const emits = defineEmits(['success', 'close']);

View File

@ -3,7 +3,7 @@
* @Date: 2025-06-26 11:45:05 * @Date: 2025-06-26 11:45:05
--> -->
<template> <template>
<a-modal v-model:visible="visible" title="删除分组" width="400px" modal-class="account-manage-modal" @close="onClose"> <Modal v-model:open="visible" centered title="删除分组" width="400px" wrapClassName="account-manage-modal" @cancel="onClose">
<div class="flex items-center mb-24px"> <div class="flex items-center mb-24px">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>确认删除 "{{ groupName }}" 这个分组吗</span> <span>确认删除 "{{ groupName }}" 这个分组吗</span>
@ -12,12 +12,12 @@
<Button size="large" @click="onClose">取消</Button> <Button size="large" @click="onClose">取消</Button>
<Button type="primary" class="ml-16px danger-btn" danger size="large" @click="onDelete">确认删除</Button> <Button type="primary" class="ml-16px danger-btn" danger size="large" @click="onDelete">确认删除</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { deletePlacementAccountProjectGroups } from '@/api/all/propertyMarketing'; import { deletePlacementAccountProjectGroups } from '@/api/all/propertyMarketing';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';

View File

@ -3,14 +3,15 @@
* @Date: 2025-06-25 17:51:46 * @Date: 2025-06-25 17:51:46
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
width="900px" width="900px"
modal-class="put-account-group-manage-modal" wrapClassName="put-account-group-manage-modal"
:footer="false" :footer="false"
title="分组管理" title="分组管理"
:mask-closable="false" centered
@close="close" :maskClosable="false"
@cancel="close"
> >
<div class="flex items-center justify-between mb-16px"> <div class="flex items-center justify-between mb-16px">
<div class="filter-row-item flex items-center"> <div class="filter-row-item flex items-center">
@ -75,12 +76,12 @@
<AddGroup ref="addGroupRef" @success="update" /> <AddGroup ref="addGroupRef" @success="update" />
<DeleteGroup ref="deleteGroupRef" @success="update" /> <DeleteGroup ref="deleteGroupRef" @success="update" />
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref, reactive, onMounted } from 'vue'; import { ref, reactive, onMounted } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { getPlacementAccountProjectGroups } from '@/api/all/propertyMarketing'; import { getPlacementAccountProjectGroups } from '@/api/all/propertyMarketing';
import { exactFormatTime } from '@/utils/tools'; import { exactFormatTime } from '@/utils/tools';

View File

@ -3,12 +3,13 @@
* @Date: 2025-06-26 17:44:16 * @Date: 2025-06-26 17:44:16
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
:title="isBatch ? '批量删除账户' : '删除账户'" :title="isBatch ? '批量删除账户' : '删除账户'"
width="480px" width="480px"
modal-class="account-manage-modal" centered
@close="onClose" wrapClassName="account-manage-modal"
@cancel="onClose"
> >
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
@ -18,10 +19,12 @@
<Button size="large" @click="onClose">取消</Button> <Button size="large" @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button> <Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
// 添加Modal导入
import { Modal } from 'ant-design-vue';
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button } from 'ant-design-vue';
import { deletePlacementAccount, batchDeletePlacementAccounts } from '@/api/all/propertyMarketing'; import { deletePlacementAccount, batchDeletePlacementAccounts } from '@/api/all/propertyMarketing';

View File

@ -3,7 +3,14 @@
* @Date: 2025-06-27 14:41:20 * @Date: 2025-06-27 14:41:20
--> -->
<template> <template>
<a-modal v-model:visible="visible" title="暂停同步" width="480px" modal-class="account-manage-modal" @close="onClose"> <Modal
v-model:open="visible"
title="暂停同步"
width="480px"
wrapClassName="account-manage-modal"
@cancel="onClose"
centered
>
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>确认暂停同步 {{ accountName }} 这个账号的数据吗</span> <span>确认暂停同步 {{ accountName }} 这个账号的数据吗</span>
@ -12,7 +19,7 @@
<Button size="large" @click="onClose">取消</Button> <Button size="large" @click="onClose">取消</Button>
<Button type="primary" class="ml-16px !bg-#f64b31" size="large" @click="onConfirm">确定</Button> <Button type="primary" class="ml-16px !bg-#f64b31" size="large" @click="onConfirm">确定</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>

View File

@ -3,14 +3,15 @@
* @Date: 2025-06-25 17:51:46 * @Date: 2025-06-25 17:51:46
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
:title="isEdit ? '编辑账户' : '添加账户'" :title="isEdit ? '编辑账户' : '添加账户'"
modal-class="add-put-account-modal" wrapClassName="add-put-account-modal"
width="500px" width="500px"
:mask-closable="false" :maskClosable="false"
unmount-on-close unmount-on-close
@close="onClose" centered
@cancel="onClose"
> >
<a-form ref="formRef" :model="form" :rules="rules" layout="horizontal" auto-label-width> <a-form ref="formRef" :model="form" :rules="rules" layout="horizontal" auto-label-width>
<a-form-item v-if="!isEdit" label="上传方式" required> <a-form-item v-if="!isEdit" label="上传方式" required>
@ -142,10 +143,12 @@
<AuthorizedAccountModal ref="authorizedAccountModalRef" /> <AuthorizedAccountModal ref="authorizedAccountModalRef" />
<!-- <ImportPromptModal ref="importPromptModalRef" /> --> <!-- <ImportPromptModal ref="importPromptModalRef" /> -->
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
// 添加Modal导入
import { Modal } from 'ant-design-vue';
import { ref, defineEmits } from 'vue'; import { ref, defineEmits } from 'vue';
import { Button } from 'ant-design-vue'; import { Button } from 'ant-design-vue';

View File

@ -3,14 +3,15 @@
* @Date: 2025-06-25 17:51:46 * @Date: 2025-06-25 17:51:46
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
width="480px" width="480px"
title="获取凭证" title="获取凭证"
modal-class="authorized-account-modal" wrapClassName="authorized-account-modal"
:mask-closable="false" :maskClosable="false"
:footer="!isLoading" :footer="!isLoading"
@close="close" centered
@cancel="close"
> >
<!-- <div v-if="showSyncTip"> <!-- <div v-if="showSyncTip">
<div class="flex items-center mb-20px"> <div class="flex items-center mb-20px">
@ -58,12 +59,14 @@
<Button size="large" @click="close">取消</Button> <Button size="large" @click="close">取消</Button>
<Button type="primary" size="large" @click="handleOk">{{ confirmBtnText }} </Button> <Button type="primary" size="large" @click="handleOk">{{ confirmBtnText }} </Button>
</template> </template>
</a-modal> </Modal>
<SelectSubAccountModal ref="selectSubAccountModalRef" /> <SelectSubAccountModal ref="selectSubAccountModalRef" />
</template> </template>
<script setup> <script setup>
// 添加Modal导入
import { Modal } from 'ant-design-vue';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { Button } from 'ant-design-vue'; import { Button } from 'ant-design-vue';
import { defineExpose, ref, computed, defineEmits } from 'vue'; import { defineExpose, ref, computed, defineEmits } from 'vue';

View File

@ -3,13 +3,13 @@
* @Date: 2025-06-25 17:51:46 * @Date: 2025-06-25 17:51:46
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
width="480px" width="480px"
title="导入提示" title="导入提示"
modal-class="import-prompt-modal" wrapClassName="import-prompt-modal"
:mask-closable="false" :maskClosable="false"
@close="close" @cancel="close"
> >
<div class="flex flex-col items-center"> <div class="flex flex-col items-center">
<div class="flex items-center"> <div class="flex items-center">
@ -21,12 +21,12 @@
<Button size="large" @click="close">取消</Button> <Button size="large" @click="close">取消</Button>
<Button type="primary" size="large" @click="handleOk"> 去授权 </Button> <Button type="primary" size="large" @click="handleOk"> 去授权 </Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { defineExpose } from 'vue'; import { defineExpose } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';

View File

@ -1,10 +1,12 @@
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
@cancel="onClose"
centered
title="选择子账户" title="选择子账户"
modal-class="select-sub-account-modal" modal-class="select-sub-account-modal"
width="720px" width="720px"
:mask-closable="false" :maskClosable="false"
@close="onClose" @close="onClose"
> >
<div class="filter-row flex mb-16px"> <div class="filter-row flex mb-16px">
@ -109,7 +111,7 @@
> >
</div> </div>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
@ -118,6 +120,7 @@ import { INITIAL_FORM, INITIAL_PAGE_INFO, TABLE_COLUMNS } from './constants';
import { formatTableField } from '@/utils/tools'; import { formatTableField } from '@/utils/tools';
import { postSubAccount, postAddSubAccount } from '@/api/all/propertyMarketing'; import { postSubAccount, postAddSubAccount } from '@/api/all/propertyMarketing';
import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination'; import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination';
import { Modal } from 'ant-design-vue';
const emits = defineEmits('confirm'); const emits = defineEmits('confirm');
const update = inject('update'); const update = inject('update');
@ -207,3 +210,4 @@ defineExpose({ open });
<style lang="scss"> <style lang="scss">
@import './style.scss'; @import './style.scss';
</style> </style>

View File

@ -1,5 +1,5 @@
<template> <template>
<a-modal v-model:visible="visible" title="删除内容稿件" width="480px" @close="onClose"> <Modal v-model:open="visible" title="删除内容稿件" width="480px" @cancel="onClose" centered>
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>确认删除 {{ projectName }} 这个内容稿件吗</span> <span>确认删除 {{ projectName }} 这个内容稿件吗</span>
@ -8,12 +8,12 @@
<Button @click="onClose">取消</Button> <Button @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" danger @click="onDelete">确认删除</Button> <Button type="primary" class="ml-16px" danger @click="onDelete">确认删除</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { deleteWorkWriter } from '@/api/all/generationWorkshop-writer.ts'; import { deleteWorkWriter } from '@/api/all/generationWorkshop-writer.ts';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';

View File

@ -1,6 +1,8 @@
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
@cancel="onClose"
centered
:title="action === 'exit' ? '退出审核' : '切换内容稿件'" :title="action === 'exit' ? '退出审核' : '切换内容稿件'"
width="480px" width="480px"
@close="onClose" @close="onClose"
@ -19,7 +21,7 @@
{{ action === 'exit' ? '确认退出' : '确认切换' }} {{ action === 'exit' ? '确认退出' : '确认切换' }}
</Button> </Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>

View File

@ -1,10 +1,12 @@
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
@cancel="onClose"
centered
title="提示" title="提示"
width="480px" width="480px"
@close="onClose" @close="onClose"
modal-class="upload-success11-modal" wrapClassName="upload-success11-modal"
:footer="null" :footer="null"
> >
<div class="flex items-center flex-col justify-center"> <div class="flex items-center flex-col justify-center">
@ -13,10 +15,12 @@
<!-- <p class="text-14px lh-22px font-400 color-#737478 ld">想让内容更抓眼球更吸流量吗</p> <!-- <p class="text-14px lh-22px font-400 color-#737478 ld">想让内容更抓眼球更吸流量吗</p>
<p class="text-14px lh-22px font-400 color-#737478 ld">试试内容稿件分析功能吧</p> --> <p class="text-14px lh-22px font-400 color-#737478 ld">试试内容稿件分析功能吧</p> -->
</div> </div>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
// 添加Modal导入
import { Modal } from 'ant-design-vue';
import { ref, onUnmounted } from 'vue'; import { ref, onUnmounted } from 'vue';
import icon1 from '@/assets/img/media-account/icon-feedback-success.png'; import icon1 from '@/assets/img/media-account/icon-feedback-success.png';

View File

@ -1,13 +1,6 @@
<script lang="jsx"> <script lang="jsx">
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { import { Form, FormItem, Upload, Message as AMessage, Textarea } from '@arco-design/web-vue';
Modal,
Form,
FormItem,
Upload,
Message as AMessage,
Textarea,
} from '@arco-design/web-vue';
import { import {
getTemplateUrlWriter, getTemplateUrlWriter,
postWorksByLinkWriter, postWorksByLinkWriter,
@ -304,9 +297,7 @@ export default {
), ),
[TASK_STATUS.DEFAULT]: () => ( [TASK_STATUS.DEFAULT]: () => (
<> <>
<Button onClick={onClose}> <Button onClick={onClose}>取消</Button>
取消
</Button>
<Button type="primary" onClick={onSubmit}> <Button type="primary" onClick={onSubmit}>
确认 确认
</Button> </Button>
@ -314,9 +305,7 @@ export default {
), ),
[TASK_STATUS.FAILED]: () => ( [TASK_STATUS.FAILED]: () => (
<> <>
<Button onClick={onClose}> <Button onClick={onClose}>取消</Button>
取消
</Button>
<Button type="primary" onClick={onClose}> <Button type="primary" onClick={onClose}>
重新上传 重新上传
</Button> </Button>
@ -324,9 +313,7 @@ export default {
), ),
[TASK_STATUS.SUCCESS]: () => ( [TASK_STATUS.SUCCESS]: () => (
<> <>
<Button onClick={onClose}> <Button onClick={onClose}>取消</Button>
取消
</Button>
<Button type="primary" onClick={goUpload}> <Button type="primary" onClick={goUpload}>
确认 确认
</Button> </Button>
@ -341,13 +328,13 @@ export default {
return () => ( return () => (
<Modal <Modal
v-model:visible={visible.value} v-model:open={visible.value}
title={getTitle()} title={getTitle()}
modal-class="upload-manuscript-modal" wrapClassName="upload-manuscript-modal"
width="500px" width="500px"
mask-closable={false} maskClosable={false}
unmount-on-close unmount-on-close
onClose={onClose} onCancel={onClose}
footer={!(isDefault.value && isLocal.value)} footer={!(isDefault.value && isLocal.value)}
v-slots={{ v-slots={{
footer: () => renderFooterButtons(), footer: () => renderFooterButtons(),

View File

@ -1,5 +1,5 @@
<template> <template>
<a-modal v-model:visible="visible" title="退出编辑" width="480px" @close="onClose"> <Modal v-model:open="visible" title="退出编辑" width="480px" @cancel="onClose" centered>
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>内容已修改尚未保存若退出编辑本次修改将不保存</span> <span>内容已修改尚未保存若退出编辑本次修改将不保存</span>
@ -8,12 +8,12 @@
<Button @click="onClose">继续编辑</Button> <Button @click="onClose">继续编辑</Button>
<Button type="primary" class="ml-8px" @click="onConfirm">确认退出</Button> <Button type="primary" class="ml-8px" @click="onConfirm">确认退出</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';
const router = useRouter(); const router = useRouter();

View File

@ -1,5 +1,5 @@
<template> <template>
<a-modal v-model:visible="visible" title="删除稿件" width="480px" @close="onClose"> <Modal v-model:open="visible" title="删除稿件" width="480px" centered @cancel="onClose">
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>确认删除 {{ projectName }} 这个稿件吗</span> <span>确认删除 {{ projectName }} 这个稿件吗</span>
@ -8,12 +8,12 @@
<Button size="large" @click="onClose">取消</Button> <Button size="large" @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button> <Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { deleteWorkWriter } from '@/api/all/generationWorkshop-writer.ts'; import { deleteWorkWriter } from '@/api/all/generationWorkshop-writer.ts';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';
@ -52,3 +52,16 @@ async function onDelete() {
defineExpose({ open }); defineExpose({ open });
</script> </script>
<template>
<Modal v-model:open="visible" title="删除稿件" width="480px" @cancel="onClose" centered>
<div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" />
<span>确认删除 {{ projectName }} 这个稿件吗</span>
</div>
<template #footer>
<Button size="large" @click="onClose">取消</Button>
<Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button>
</template>
</Modal>
</template>

View File

@ -1,5 +1,5 @@
<template> <template>
<a-modal v-model:visible="visible" title="确认提示" width="480px" @close="onClose"> <Modal v-model:open="visible" title="确认提示" width="480px" @cancel="onClose" centered>
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
<span>确认取消上传这 {{ num }} 个文件吗此操作不可恢复</span> <span>确认取消上传这 {{ num }} 个文件吗此操作不可恢复</span>
@ -8,12 +8,12 @@
<Button @click="onClose">继续编辑</Button> <Button @click="onClose">继续编辑</Button>
<Button type="primary" class="ml-8px" @click="onConfirm">确认取消</Button> <Button type="primary" class="ml-8px" @click="onConfirm">确认取消</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import icon1 from '@/assets/img/media-account/icon-warn-1.png'; import icon1 from '@/assets/img/media-account/icon-warn-1.png';
const router = useRouter(); const router = useRouter();

View File

@ -1,5 +1,12 @@
<template> <template>
<a-modal v-model:visible="visible" title="提示" width="480px" @close="onClose" modal-class="upload-success11-modal"> <Modal
v-model:open="visible"
title="提示"
width="480px"
@cancel="onClose"
wrapClassName="upload-success11-modal"
centered
>
<div class="flex items-center flex-col justify-center"> <div class="flex items-center flex-col justify-center">
<img :src="icon1" width="80" height="80" class="mb-16px" /> <img :src="icon1" width="80" height="80" class="mb-16px" />
<span class="text-18px lh-26px font-400 color-#211F24 md">上传成功</span> <span class="text-18px lh-26px font-400 color-#211F24 md">上传成功</span>
@ -10,12 +17,12 @@
<Button @click="onBack">回到列表</Button> <Button @click="onBack">回到列表</Button>
<Button type="primary" class="ml-8px" @click="onConfirm">批量审核</Button> <Button type="primary" class="ml-8px" @click="onConfirm">批量审核</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue'; import { Button, Modal } from 'ant-design-vue';
import { slsWithCatch } from '@/utils/stroage.ts'; import { slsWithCatch } from '@/utils/stroage.ts';
import icon1 from '@/assets/img/media-account/icon-feedback-success.png'; import icon1 from '@/assets/img/media-account/icon-feedback-success.png';