feat: button组件替换

This commit is contained in:
rd
2025-09-03 11:15:37 +08:00
parent 01d561cfb2
commit db67274583
128 changed files with 805 additions and 745 deletions

View File

@ -9,6 +9,7 @@
width="960px" width="960px"
unmountOnClose unmountOnClose
titleAlign="start" titleAlign="start"
centered
wrapClassName="custom-table-column-modal" wrapClassName="custom-table-column-modal"
@cancel="close" @cancel="close"
> >
@ -64,7 +65,7 @@
</div> </div>
<template #footer> <template #footer>
<div style="text-align: right"> <div class="flex">
<Button @click="close">取消</Button> <Button @click="close">取消</Button>
<Button type="primary" @click="onSubmit">确定</Button> <Button type="primary" @click="onSubmit">确定</Button>
</div> </div>

View File

@ -1,13 +1,31 @@
<template> <template>
<a-modal modal-class="delete-modal" body-class="body" cancel-text="返回" ok-text="确定删除" v-bind="$attrs"> <Modal wrapClassName="delete-modal" body-class="body" v-bind="$attrs" centered title="删除账号">
<h2 class="delete-modal-title flex item-center"> <h2 class="delete-modal-title flex item-center">
<img src="@/assets/warning.svg" alt="" /> <img src="@/assets/warning.svg" alt="" />
{{ $attrs.title }} {{ $attrs.content }}
</h2> </h2>
<slot></slot> <p class="delete-modal-content">删除后该账号将无法登录您的企业</p>
</a-modal> <template #footer>
<div style="text-align: right">
<Button @click="close">返回</Button>
<Button type="primary" danger @click="onSubmit">确定删除</Button>
</div>
</template> </template>
<script setup lang="ts"></script> </Modal>
</template>
<script setup lang="ts">
import { Modal, Button } from 'ant-design-vue';
const emit = defineEmits(['close', 'ok']);
const close = () => {
emit('close');
};
const onSubmit = () => {
emit('ok');
};
</script>
<style lang="scss"> <style lang="scss">
:deep(.arco-btn-status-danger) { :deep(.arco-btn-status-danger) {
background-color: red !important; background-color: red !important;
@ -18,7 +36,7 @@
display: none; display: none;
} }
.delete-modal-title { .delete-modal-title {
margin-top: 24px; // margin-top: 24px;
font-family: $font-family-medium; font-family: $font-family-medium;
font-weight: 400; font-weight: 400;
font-size: 14px; font-size: 14px;
@ -29,6 +47,14 @@
margin-right: 12px; margin-right: 12px;
} }
} }
.delete-modal-content {
margin-left: 34px;
margin-top: 16px;
font-family: $font-family-medium;
font-weight: 400;
font-size: 12px;
color: var(--Text-2, rgba(60, 64, 67, 1));
}
.arco-modal-footer { .arco-modal-footer {
border-top: none; border-top: none;
:first-child { :first-child {
@ -53,5 +79,6 @@
} }
.body { .body {
padding: 0 24px; padding: 0 24px;
} }
</style> </style>

View File

@ -3,7 +3,8 @@
<slot></slot> <slot></slot>
</a-modal> </a-modal>
</template> </template>
<script setup lang="ts"></script> <script setup lang="ts">
</script>
<style lang="scss"> <style lang="scss">
.modal { .modal {
.arco-modal-header { .arco-modal-header {

View File

@ -1,5 +1,5 @@
<script lang="tsx"> <script lang="tsx">
import { Button } from '@arco-design/web-vue'; import { Button } from 'ant-design-vue';
import { Bubble } from '@/components/xt-chat/xt-bubble'; import { Bubble } from '@/components/xt-chat/xt-bubble';
import Http from '@/api'; import Http from '@/api';
@ -79,8 +79,8 @@ export default {
<header class="header flex justify-end items-center mb-16px px-32px"> <header class="header flex justify-end items-center mb-16px px-32px">
{hasMediaCenter.value && ( {hasMediaCenter.value && (
<Button <Button
type="outline" type="primary"
size="medium" ghost
class="mr-16px" class="mr-16px"
v-slots={{ icon: () => <icon-plus size="14" /> }} v-slots={{ icon: () => <icon-plus size="14" /> }}
onClick={onAddMediaCenter} onClick={onAddMediaCenter}
@ -90,8 +90,8 @@ export default {
)} )}
<Button <Button
type="outline" type="primary"
size="medium" ghost
class="mr-16px" class="mr-16px"
v-slots={{ icon: () => <icon-plus size="14" /> }} v-slots={{ icon: () => <icon-plus size="14" /> }}
onClick={onAddTaskManage} onClick={onAddTaskManage}

View File

@ -1,4 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { Button } from 'ant-design-vue';
import { useRouter } from 'vue-router';
const router = useRouter(); const router = useRouter();
const back = () => { const back = () => {
router.replace('/'); router.replace('/');
@ -8,8 +11,8 @@ const back = () => {
<template> <template>
<div class="content"> <div class="content">
<a-result class="result" status="404" subtitle="页面跑路了" /> <a-result class="result" status="404" subtitle="页面跑路了" />
<div class="operation-row"> <div class="operation-row flex justify-center">
<a-button key="back" type="primary" @click="back">返回</a-button> <Button key="back" type="primary" @click="back">返回</Button>
</div> </div>
</div> </div>
</template> </template>

View File

@ -3,13 +3,14 @@
* @Date: 2025-06-26 17:23:52 * @Date: 2025-06-26 17:23:52
--> -->
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
width="400px" width="400px"
modal-class="exit-account-modal" wrapClassName="exit-account-modal"
show-close="false" show-close="false"
:footer="false" :footer="false"
@close="onClose" @cancel="onClose"
centered
> >
<div class="flex items-center mb-16px"> <div class="flex items-center mb-16px">
<img :src="icon1" width="20" height="20" class="mr-12px" /> <img :src="icon1" width="20" height="20" class="mr-12px" />
@ -17,15 +18,14 @@
</div> </div>
<p class="m-0 p-0 mb-24px s2 ml-32px">退出登录后你将无法收到该账号的通知</p> <p class="m-0 p-0 mb-24px s2 ml-32px">退出登录后你将无法收到该账号的通知</p>
<div class="flex items-center justify-end"> <div class="flex items-center justify-end">
<a-button class="!rounded-4px" size="medium" @click="onClose">返回</a-button> <Button @click="onClose">返回</Button>
<a-button type="primary" class="ml-16px danger-btn" status="danger" size="medium" @click="onLogout" <Button danger type="primary" @click="onLogout" class="ml-8px">退出登录</Button>
>退出登录</a-button
>
</div> </div>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { Modal, Button } from 'ant-design-vue';
import { ref } from 'vue'; import { ref } from 'vue';
import { fetchLogOut } from '@/api/all/login'; import { fetchLogOut } from '@/api/all/login';
import { handleUserLogout } from '@/utils/user'; import { handleUserLogout } from '@/utils/user';
@ -56,14 +56,14 @@ defineExpose({ open });
<style lang="scss"> <style lang="scss">
.exit-account-modal { .exit-account-modal {
border-radius: 8px; // border-radius: 8px;
border: 1px solid var(--BG-300, #e6e6e8) !important; // border: 1px solid var(--BG-300, #e6e6e8) !important;
background-color: var(--BG-white, #fff) !important; // background-color: var(--BG-white, #fff) !important;
box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.1); // box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.1);
.arco-modal-header { .ant-modal-header {
display: none; display: none;
} }
.arco-modal-body { .ant-modal-body {
padding: 24px; padding: 24px;
.s1 { .s1 {
color: var(--Text-1, #211f24); color: var(--Text-1, #211f24);
@ -81,15 +81,6 @@ defineExpose({ open });
font-weight: 400; font-weight: 400;
line-height: 20px; /* 166.667% */ line-height: 20px; /* 166.667% */
} }
.cancel-btn {
border-radius: 4px;
}
.danger-btn {
background: var(--Functional-Danger-6, #f64b31) !important;
&:hover {
background: var(--Functional-Danger-6, #f64b31) !important;
}
}
} }
} }
</style> </style>

View File

@ -1,24 +1,24 @@
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
:title="isBatch ? '批量删除下载记录' : '删除下载记录'" :title="isBatch ? '批量删除下载记录' : '删除下载记录'"
width="400px" width="400px"
@close="onClose" @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>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px !bg-#f64b31 !border-none" status="danger" size="large" @click="onDelete" <Button type="primary" danger @click="onDelete">确定</Button>
>确定</a-button
>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { Modal, Button } from 'ant-design-vue';
import { ref } from 'vue'; import { ref } from 'vue';
import { deleteTask, deleteBatchTasks } from '@/api/all/common'; import { deleteTask, deleteBatchTasks } from '@/api/all/common';
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,7 @@
<script lang="jsx"> <script lang="jsx">
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { Input, Table, TableColumn, Checkbox, Pagination, Button, Tooltip, Notification } from '@arco-design/web-vue'; import { Button } from 'ant-design-vue';
import { Input, Table, TableColumn, Checkbox, Pagination, Tooltip, Notification } from '@arco-design/web-vue';
import { IconSearch, IconClose, IconQuestionCircle } from '@arco-design/web-vue/es/icon'; import { IconSearch, IconClose, IconQuestionCircle } from '@arco-design/web-vue/es/icon';
import NoData from '@/components/no-data'; import NoData from '@/components/no-data';
import { getTask, postRedoTask, postBatchDownload, batchQueryTaskStatus } from '@/api/all/common'; import { getTask, postRedoTask, postBatchDownload, batchQueryTaskStatus } from '@/api/all/common';
@ -343,7 +344,7 @@ export default {
onClick={() => handleDelete(record)} onClick={() => handleDelete(record)}
/> />
{record.status !== enumTaskStatus.Exporting && ( {record.status !== enumTaskStatus.Exporting && (
<Button type="outline" size="mini" class="search-btn" onClick={() => handleDownload(record)}> <Button type="primary" ghost size="small" class="search-btn" onClick={() => handleDownload(record)}>
{record.status === enumTaskStatus.Failed ? '重新导出' : '下载'} {record.status === enumTaskStatus.Failed ? '重新导出' : '下载'}
</Button> </Button>
)} )}

View File

@ -1,25 +1,25 @@
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
:title="isBatch ? '批量删除导入记录' : '删除导入记录'" :title="isBatch ? '批量删除导入记录' : '删除导入记录'"
width="400px" width="400px"
@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" />
<span>确认删除 {{ accountName }} 这条记录吗</span> <span>确认删除 {{ accountName }} 这条记录吗</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px !bg-#f64b31 !border-none" status="danger" size="large" @click="onDelete" <Button type="primary" danger @click="onDelete">确定</Button>
>确定</a-button
>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Modal, Button } from 'ant-design-vue';
import { deleteTask, deleteBatchTasks } from '@/api/all/common'; import { deleteTask, deleteBatchTasks } from '@/api/all/common';
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,7 @@
<script lang="jsx"> <script lang="jsx">
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { Input, Table, TableColumn, Checkbox, Pagination, Button, Tooltip, Notification } from '@arco-design/web-vue'; import { Button } from 'ant-design-vue';
import { Input, Table, TableColumn, Checkbox, Pagination, Tooltip, Notification } from '@arco-design/web-vue';
import { IconSearch, IconClose, IconQuestionCircle } from '@arco-design/web-vue/es/icon'; import { IconSearch, IconClose, IconQuestionCircle } from '@arco-design/web-vue/es/icon';
import NoData from '@/components/no-data'; import NoData from '@/components/no-data';
import { getTask } from '@/api/all/common'; import { getTask } from '@/api/all/common';
@ -257,7 +258,7 @@ export default {
onClick={() => handleDelete(record)} onClick={() => handleDelete(record)}
/> />
{record.status === enumTaskStatus.Failed && ( {record.status === enumTaskStatus.Failed && (
<Button type="outline" size="mini" class="search-btn" onClick={() => handleDownload(record)}> <Button type="primary" ghost size="small" class="search-btn" onClick={() => handleDownload(record)}>
下载问题表格 下载问题表格
</Button> </Button>
)} )}

View File

@ -1,12 +1,13 @@
<template> <template>
<a-modal <Modal
v-model:visible="visible" v-model:open="visible"
title="任务中心" title="任务中心"
modal-class="task-center-modal" wrapClassName="task-center-modal"
width="860px" width="860px"
:mask-closable="false" :mask-closable="false"
:footer="false" :footer="false"
@close="onClose" @cancel="onClose"
centered
> >
<a-tabs :active-key="activeTab" @tab-click="handleTabClick"> <a-tabs :active-key="activeTab" @tab-click="handleTabClick">
<a-tab-pane key="0" title="导入"> </a-tab-pane> <a-tab-pane key="0" title="导入"> </a-tab-pane>
@ -15,10 +16,11 @@
<div class="content"> <div class="content">
<component :is="activeTab === '0' ? ImportTask : ExportTask" ref="componentRef" /> <component :is="activeTab === '0' ? ImportTask : ExportTask" ref="componentRef" />
</div> </div>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { Checkbox, Modal, Button } from 'ant-design-vue';
import { Notification } from '@arco-design/web-vue'; import { Notification } from '@arco-design/web-vue';
import ExportTask from './components/export-task'; import ExportTask from './components/export-task';

View File

@ -1,7 +1,7 @@
.task-center-modal { .task-center-modal {
.arco-modal-header { .ant-modal-header {
border-bottom: none !important; border-bottom: none !important;
.arco-modal-title { .ant-modal-title {
color: var(--Text-1, #211f24); color: var(--Text-1, #211f24);
font-size: 16px; font-size: 16px;
font-style: normal; font-style: normal;
@ -10,7 +10,7 @@
font-family: $font-family-medium; font-family: $font-family-medium;
} }
} }
.arco-modal-body { .ant-modal-body {
padding: 0 !important; padding: 0 !important;
display: flex; display: flex;
flex-direction: column; flex-direction: column;

View File

@ -1,89 +1,89 @@
// import { IconBookmark } from '@arco-design/web-vue/es/icon'; import { IconBookmark } from '@arco-design/web-vue/es/icon';
// import type { AppRouteRecordRaw } from '../types'; import type { AppRouteRecordRaw } from '../types';
// import { MENU_GROUP_IDS } from '@/router/constants'; import { MENU_GROUP_IDS } from '@/router/constants';
// const COMPONENTS: AppRouteRecordRaw[] = [ const COMPONENTS: AppRouteRecordRaw[] = [
// { {
// path: '/dataEngine', path: '/dataEngine',
// name: 'DataEngine', name: 'DataEngine',
// redirect: 'dataEngine/hotTranslation', redirect: 'dataEngine/hotTranslation',
// meta: { meta: {
// locale: '全域数据引擎', locale: '全域数据引擎',
// icon: IconBookmark, icon: IconBookmark,
// requiresAuth: true, requiresAuth: true,
// requireLogin: true, requireLogin: true,
// roles: ['*'], roles: ['*'],
// id: MENU_GROUP_IDS.DATA_ENGINE_ID, id: MENU_GROUP_IDS.DATA_ENGINE_ID,
// }, },
// children: [ children: [
// { {
// path: 'hotTranslation', path: 'hotTranslation',
// name: 'DataEngineHotTranslation', name: 'DataEngineHotTranslation',
// meta: { meta: {
// locale: '行业热门话题洞察', locale: '行业热门话题洞察',
// requiresAuth: true, requiresAuth: true,
// requireLogin: true, requireLogin: true,
// roles: ['*'], roles: ['*'],
// }, },
// component: () => import('@/views/components/dataEngine/hotTranslation.vue'), component: () => import('@/views/components/dataEngine/hotTranslation.vue'),
// }, },
// { {
// path: 'hotCloud', path: 'hotCloud',
// name: 'DataEngineHotCloud', name: 'DataEngineHotCloud',
// meta: { meta: {
// locale: '行业词云', locale: '行业词云',
// requiresAuth: true, requiresAuth: true,
// requireLogin: true, requireLogin: true,
// roles: ['*'], roles: ['*'],
// }, },
// component: () => import('@/views/components/dataEngine/hotCloud.vue'), component: () => import('@/views/components/dataEngine/hotCloud.vue'),
// }, },
// { {
// path: 'keyWord', path: 'keyWord',
// name: 'DataEngineKeyWord', name: 'DataEngineKeyWord',
// meta: { meta: {
// locale: '行业关键词动向', locale: '行业关键词动向',
// requiresAuth: true, requiresAuth: true,
// requireLogin: true, requireLogin: true,
// roles: ['*'], roles: ['*'],
// }, },
// component: () => import('@/views/components/dataEngine/keyWord.vue'), component: () => import('@/views/components/dataEngine/keyWord.vue'),
// }, },
// { {
// path: 'userPainPoints', path: 'userPainPoints',
// name: 'DataEngineUserPainPoints', name: 'DataEngineUserPainPoints',
// meta: { meta: {
// locale: '用户痛点观察', locale: '用户痛点观察',
// requiresAuth: true, requiresAuth: true,
// requireLogin: true, requireLogin: true,
// roles: ['*'], roles: ['*'],
// }, },
// component: () => import('@/views/components/dataEngine/userPainPoints.vue'), component: () => import('@/views/components/dataEngine/userPainPoints.vue'),
// }, },
// { {
// path: 'keyBrandMovement', path: 'keyBrandMovement',
// name: 'DataEngineKeyBrandMovement', name: 'DataEngineKeyBrandMovement',
// meta: { meta: {
// locale: '重点品牌动向', locale: '重点品牌动向',
// requiresAuth: true, requiresAuth: true,
// requireLogin: true, requireLogin: true,
// roles: ['*'], roles: ['*'],
// }, },
// component: () => import('@/views/components/dataEngine/keyBrandMovement.vue'), component: () => import('@/views/components/dataEngine/keyBrandMovement.vue'),
// }, },
// { {
// path: 'userPersona', path: 'userPersona',
// name: 'DataEngineUserPersona', name: 'DataEngineUserPersona',
// meta: { meta: {
// locale: '用户画像', locale: '用户画像',
// requiresAuth: true, requiresAuth: true,
// requireLogin: true, requireLogin: true,
// roles: ['*'], roles: ['*'],
// }, },
// component: () => import('@/views/components/dataEngine/userPersona.vue'), component: () => import('@/views/components/dataEngine/userPersona.vue'),
// }, },
// ], ],
// }, },
// ]; ];
// export default COMPONENTS; export default COMPONENTS;

View File

@ -8,6 +8,8 @@
font-weight: 400 !important; font-weight: 400 !important;
line-height: 22px !important; line-height: 22px !important;
padding: 0 16px; padding: 0 16px;
display: flex;
align-items: center;
&.ant-btn-lg { &.ant-btn-lg {
height: 36px; height: 36px;
padding: 0 20px; padding: 0 20px;
@ -75,6 +77,38 @@
} }
} }
} }
&.ant-btn-background-ghost {
border: 1px solid $color-primary !important;
color: $color-primary !important;
background-color: #fff !important;
&:disabled {
border-color: $color-primary-3 !important;
color: $color-primary-3 !important;
background-color: #fff !important;
}
&:not(:disabled) {
&:hover {
border-color: $color-primary-5 !important;
color: $color-primary-5 !important;
background-color: #fff !important;
}
}
&.ant-btn-dangerous {
border: 1px solid $color-error !important;
color: $color-error !important;
background-color: #fff !important;
&:disabled {
border-color: $color-error-3 !important;
color: $color-error-3 !important;
}
&:not(:disabled) {
&:hover {
border-color: $color-error-5 !important;
color: $color-error-5 !important;
}
}
}
}
} }
.ant-btn-outline { .ant-btn-outline {

View File

@ -45,13 +45,14 @@
</a-select> </a-select>
</a-form-item> </a-form-item>
</a-form> </a-form>
<a-button class="submit-btn" type="primary" :disabled="loading" @click="handleSubmit">提交执行</a-button> <Button class="submit-btn" type="primary" :disabled="loading" @click="handleSubmit">提交执行</Button>
</div> </div>
</template> </template>
<script setup> <script setup>
import { defineProps, defineEmits } from 'vue'; import { defineProps, defineEmits } from 'vue';
import ImageUpload from '@/components/upload/ImageUpload.vue'; import ImageUpload from '@/components/upload/ImageUpload.vue';
import FileUpload from '@/components/upload/FileUpload.vue'; import FileUpload from '@/components/upload/FileUpload.vue';
import { Button } from 'ant-design-vue';
const props = defineProps({ const props = defineProps({
formFields: { formFields: {

View File

@ -107,15 +107,16 @@
</div> </div>
</div> </div>
<a-modal style="width: 500px" v-model:visible="editHistoryVisible"> <Modal style="width: 500px" v-model:open="editHistoryVisible">
<template #title> Title</template> <template #title> Title</template>
<div></div> <div></div>
</a-modal> </Modal>
</div> </div>
</template> </template>
<script setup> <script setup>
import { ref, reactive } from 'vue'; import { ref, reactive } from 'vue';
import { Modal } from 'ant-design-vue';
import DynamicForm from './components/DynamicForm.vue'; import DynamicForm from './components/DynamicForm.vue';
import { import {
executeWorkFlow, executeWorkFlow,

View File

@ -74,11 +74,11 @@
</template> </template>
<template #optional="{ record }"> <template #optional="{ record }">
<a-button type="outline" class="!rounded-4px" @click="gotoDetail(record)">详情</a-button> <Button type="primary" ghost @click="gotoDetail(record)">详情</Button>
</template> </template>
</a-table> </a-table>
</a-space> </a-space>
<a-modal :visible="visible" unmountOnClose modal-class="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>
@ -133,15 +133,16 @@
</a-space> </a-space>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="handleCancel">取消</a-button> <Button size="large" @click="handleCancel">取消</Button>
<a-button type="primary" size="large" class="rounded-4px" @click="handleOk"> 确定 </a-button> <Button type="primary" size="large" @click="handleOk"> 确定 </Button>
</template> </template>
</a-modal> </Modal>
</view> </view>
</template> </template>
<script setup> <script setup>
import topHeader from './topHeader.vue'; import topHeader from './topHeader.vue';
import { Modal, Button } from 'ant-design-vue';
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { fetchIndustriesTree, fetchIndustryTopics, fetchIndustryTopicDetail } from '@/api/all/index'; import { fetchIndustriesTree, fetchIndustryTopics, fetchIndustryTopicDetail } from '@/api/all/index';
import star1 from '@/assets/img/hottranslation/star-fill1.png'; import star1 from '@/assets/img/hottranslation/star-fill1.png';

View File

@ -207,15 +207,16 @@
</div> </div>
</template> </template>
<template #optional="{ record }"> <template #optional="{ record }">
<a-button type="outline" @click="gotoDetail(record)">详情</a-button> <Button type="primary" ghost @click="gotoDetail(record)">详情</Button>
</template> </template>
</a-table> </a-table>
</a-space> </a-space>
<!-- modal --> <!-- modal -->
<a-modal <Modal
:visible="visible" v-model:open="visible"
modal-class="keyword-modal" wrapClassName="keyword-modal"
unmountOnClose unmountOnClose
centered
width="640px" width="640px"
@ok="handleOk" @ok="handleOk"
@cancel="handleCancel" @cancel="handleCancel"
@ -260,15 +261,16 @@
</a-space> </a-space>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="handleCancel">取消</a-button> <Button size="large" @click="handleCancel">取消</Button>
<a-button type="primary" size="large" class="rounded-4px" @click="handleOk"> 确定 </a-button> <Button type="primary" size="large" @click="handleOk"> 确定 </Button>
</template> </template>
</a-modal> </Modal>
</view> </view>
</template> </template>
<script setup> <script setup>
import topHeader from './topHeader.vue'; import topHeader from './topHeader.vue';
import { Checkbox, Modal, Button } from 'ant-design-vue';
import { import {
fetchKeywordTrendsList, fetchKeywordTrendsList,
fetchIndustryEmotions, fetchIndustryEmotions,

View File

@ -70,19 +70,19 @@
</a-space> </a-space>
<!-- 搜索区域 --> <!-- 搜索区域 -->
<a-space style="margin-left: 'auto'"> <a-space style="margin-left: 'auto'">
<a-button type="primary" size="medium" @click="handleSearch"> <Button type="primary" @click="handleSearch">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px"/>
</template> </template>
<!-- Use the default slot to avoid extra spaces --> <!-- Use the default slot to avoid extra spaces -->
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button class="w-84px reset-btn" size="medium" @click="handleReset"> <Button class="w-84px reset-btn" @click="handleReset">
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px"/>
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</a-space> </a-space>
</a-space> </a-space>
</view> </view>
@ -91,7 +91,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { fetchIndustriesTree } from '@/api/all/index'; import { fetchIndustriesTree } from '@/api/all/index';
import { Button } from 'ant-design-vue';
const emit = defineEmits<(e: 'search') => void>(); const emit = defineEmits<(e: 'search') => void>();
// 行业大类 // 行业大类
const industriesTree = ref([]); const industriesTree = ref([]);

View File

@ -52,14 +52,15 @@
</template> </template>
<template #optional="{ record }"> <template #optional="{ record }">
<a-button type="outline" class="!rounded-4px" @click="gotoDetail(record)">详情</a-button> <Button type="primary" ghost @click="gotoDetail(record)">详情</Button>
</template> </template>
</a-table> </a-table>
</a-space> </a-space>
<a-modal <Modal
:visible="visible" v-model:open="visible"
modal-class="user-pain-points-modal" wrapClassName="user-pain-points-modal"
centered
unmountOnClose unmountOnClose
width="640px" width="640px"
@ok="handleOk" @ok="handleOk"
@ -110,15 +111,16 @@
</a-space> </a-space>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="handleCancel">取消</a-button> <Button size="large" @click="handleCancel">取消</Button>
<a-button type="primary" size="large" class="rounded-4px" @click="handleOk"> 确定 </a-button> <Button type="primary" size="large" @click="handleOk"> 确定 </Button>
</template> </template>
</a-modal> </Modal>
</view> </view>
</template> </template>
<script setup> <script setup>
import topHeader from './topHeader.vue'; import topHeader from './topHeader.vue';
import { Modal, Button } from 'ant-design-vue';
import { fetchUserPainPointsDetail, fetchUserPainPointsList } from '@/api/all/index'; import { fetchUserPainPointsDetail, fetchUserPainPointsList } from '@/api/all/index';
import { ref, onMounted, computed } from 'vue'; import { ref, onMounted, computed } from 'vue';
import top1 from '@/assets/img/captcha/top1.svg'; import top1 from '@/assets/img/captcha/top1.svg';

View File

@ -54,7 +54,7 @@
</div> </div>
</a-form-item> </a-form-item>
<a-form-item hide-label class="mt-68px mb-16px"> <a-form-item hide-label class="mt-68px mb-16px">
<a-button <Button
type="primary" type="primary"
class="w-480 h-48 !text-16px !rounded-8px" class="w-480 h-48 !text-16px !rounded-8px"
:class="disabledSubmitBtn ? 'cursor-no-drop' : 'cursor-pointer'" :class="disabledSubmitBtn ? 'cursor-no-drop' : 'cursor-pointer'"
@ -62,7 +62,7 @@
@click="handleSubmit" @click="handleSubmit"
> >
{{ isLogin ? '登录' : '注册并开通企业账号' }} {{ isLogin ? '登录' : '注册并开通企业账号' }}
</a-button> </Button>
</a-form-item> </a-form-item>
</a-form> </a-form>
<a-space class="text-12px color-#737478 justify-start items-center"> <a-space class="text-12px color-#737478 justify-start items-center">
@ -85,7 +85,7 @@
@submit="handleVerificationSubmit" @submit="handleVerificationSubmit"
@cancel="isVerificationVisible = false" @cancel="isVerificationVisible = false"
/> />
<a-modal :visible="visible" unmountOnClose hide-cancel @ok="handleOk" @cancel="handleCancel"> <Modal v-model:open="visible" centered unmountOnClose @cancel="handleCancel">
<template #title> <template #title>
<span style="text-align: left; width: 100%">选择账号</span> <span style="text-align: left; width: 100%">选择账号</span>
</template> </template>
@ -119,11 +119,16 @@
</a-list> </a-list>
</a-card> </a-card>
</div> </div>
</a-modal> <template #footer>
<div class="flex">
<Button type="primary" @click="handleOk">确定</Button>
</div>
</template>
</Modal>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { Checkbox } from "ant-design-vue"; import { Checkbox, Modal, Button } from 'ant-design-vue';
import PuzzleVerification from './components/PuzzleVerification.vue'; import PuzzleVerification from './components/PuzzleVerification.vue';
import { fetchLoginCaptCha, fetchAuthorizationsCaptcha, fetchProfileInfo } from '@/api/all/login'; import { fetchLoginCaptCha, fetchAuthorizationsCaptcha, fetchProfileInfo } from '@/api/all/login';
import { joinEnterpriseByInviteCode } from '@/api/all'; import { joinEnterpriseByInviteCode } from '@/api/all';

View File

@ -2,7 +2,7 @@
<div class="bg-#fff rounded-8px w-100% py-0 px-20px mt-24px pb-24px"> <div class="bg-#fff rounded-8px w-100% py-0 px-20px mt-24px pb-24px">
<div class="title-row"> <div class="title-row">
<span class="title">账号管理</span> <span class="title">账号管理</span>
<a-button type="outline" class="add-account-button" @click="handleAddAccount">添加子账号</a-button> <Button type="primary" ghost class="add-account-button" @click="handleAddAccount">添加子账号</Button>
</div> </div>
<a-table <a-table
:columns="columns" :columns="columns"
@ -23,16 +23,17 @@
</div> </div>
</template> </template>
<template #action="{ record }"> <template #action="{ record }">
<a-button <Button
v-if="record.type !== 0" v-if="record.type !== 0"
class="delete-button" class="delete-button"
size="mini" size="small"
type="outline" type="primary"
status="danger" ghost
danger
@click="openDeleteModal(record)" @click="openDeleteModal(record)"
> >
删除 删除
</a-button> </Button>
</template> </template>
</a-table> </a-table>
<Modal v-model:visible="addAccountVisible" width="480px" title="添加子账号" :okText="okText" @ok="handleOk" > <Modal v-model:visible="addAccountVisible" width="480px" title="添加子账号" :okText="okText" @ok="handleOk" >
@ -53,14 +54,15 @@
</div> </div>
</Modal> </Modal>
<CustomerServiceModal v-model:visible="customerServiceVisible" /> <CustomerServiceModal v-model:visible="customerServiceVisible" />
<DeleteModal v-model:visible="deleteVisible" :title="deleteTitle" @ok="handleDelete"> <DeleteModal v-model:open="deleteVisible" :content="deleteTitle" @ok="handleDelete" @close="deleteVisible = false">
<p class="delete-modal-content">删除后该账号将无法登录您的企业</p>
</DeleteModal> </DeleteModal>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import Container from '@/components/container.vue'; import Container from '@/components/container.vue';
import { ref, onMounted, reactive, computed } from 'vue'; import { ref, onMounted, reactive, computed } from 'vue';
import { Button } from 'ant-design-vue';
import { fetchSubAccountPage, removeEnterpriseAccount, getEnterpriseInviteCode } from '@/api/all'; import { fetchSubAccountPage, removeEnterpriseAccount, getEnterpriseInviteCode } from '@/api/all';
import Modal from '@/components/modal.vue'; import Modal from '@/components/modal.vue';
import DeleteModal from '@/components/delete-modal.vue'; import DeleteModal from '@/components/delete-modal.vue';
@ -275,14 +277,7 @@ onMounted(() => {
color: var(--Text-2, rgba(60, 64, 67, 1)); color: var(--Text-2, rgba(60, 64, 67, 1));
} }
} }
.delete-modal-content {
margin-left: 34px;
margin-top: 16px;
font-family: $font-family-medium;
font-weight: 400;
font-size: 12px;
color: var(--Text-2, rgba(60, 64, 67, 1));
}
.title-row { .title-row {
display: flex; display: flex;
height: 64px; height: 64px;

View File

@ -11,7 +11,7 @@
{{ record.name }} {{ record.name }}
</template> </template>
<template #action> <template #action>
<a-button class="edit-button" size="mini" type="outline" @click="handleUpdate">修改</a-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:visible="infoVisible" width="480px" title="修改企业名称" :okText="okText" @ok="handleOk">
@ -36,6 +36,7 @@
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { Button } from 'ant-design-vue';
import Container from '@/components/container.vue'; import Container from '@/components/container.vue';
import Modal from '@/components/modal.vue'; import Modal from '@/components/modal.vue';
import { ref, reactive, computed } from 'vue'; import { ref, reactive, computed } from 'vue';

View File

@ -37,7 +37,7 @@
style="display: none" style="display: none"
@change="handleFileChange" @change="handleFileChange"
/> />
<a-button><icon-upload />上传新头像</a-button> <Button><icon-upload />上传新头像</Button>
</span> </span>
</div> </div>
</a-form-item> </a-form-item>
@ -80,6 +80,7 @@
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { Button } from 'ant-design-vue';
import Container from '@/components/container.vue'; import Container from '@/components/container.vue';
import Modal from '@/components/modal.vue'; import Modal from '@/components/modal.vue';
import PuzzleVerification from '@/views/components/login/components/PuzzleVerification.vue'; import PuzzleVerification from '@/views/components/login/components/PuzzleVerification.vue';

View File

@ -1,34 +0,0 @@
<!--
* @Author: 田鑫
* @Date: 2023-03-05 15:13:44
* @LastEditors: 田鑫
* @LastEditTime: 2023-03-05 15:43:18
* @Description: 模拟登录鉴权页
-->
<template>
<a-modal title="登录鉴权页" :visible="true" :footer="false">
<div w100 align-center>
<a-button w-160 @click="login" :loading="loading" type="primary">登录</a-button>
</div>
</a-modal>
</template>
<script lang="ts" setup>
const route = useRoute();
const router = useRouter();
const loading = ref(false);
function login() {
loading.value = true;
localStorage.setItem('satoken', '123asdzxc');
AMessage.success('登录鉴权成功,准备跳转');
setTimeout(() => {
loading.value = false;
router.push({ name: route.query?.redirect ? route.query?.redirect : 'dashboard' });
}, 1500);
}
</script>
<style lang="scss" scoped>
</style>

View File

@ -1,19 +0,0 @@
<!--
* @Author: 田鑫
* @Date: 2023-03-05 14:27:21
* @LastEditors: 田鑫
* @LastEditTime: 2023-03-05 15:14:15
* @Description:
-->
<template>
<a-modal title="选择企业:" :visible="true">
<a-select v-model="enterprise" placeholder="请选择您的企业"></a-select>
</a-modal>
</template>
<script lang="ts" setup>
const enterprise = ref('');
</script>
<style lang="scss" scoped>
</style>

View File

@ -22,44 +22,46 @@
</p> </p>
</div> </div>
<div class="footer flex arco-row-justify-start"> <div class="footer flex arco-row-justify-start">
<a-button <Button
v-if="props.product.status === Status.Enable || props.product.status === Status.ON_TRIAL" v-if="props.product.status === Status.Enable || props.product.status === Status.ON_TRIAL"
type="primary" type="primary"
size="mini" size="small"
class="mr-8px" class="mr-8px"
@click="gotoModule(props.product.id)" @click="gotoModule(props.product.id)"
> >
进入模块 进入模块
</a-button> </Button>
<a-button <Button
v-if="props.product.status === Status.TRIAL_ENDS || props.product.status === Status.EXPIRED" v-if="props.product.status === Status.TRIAL_ENDS || props.product.status === Status.EXPIRED"
size="mini" size="small"
type="primary" type="primary"
class="mr-8px" class="mr-8px"
@click="visible = true" @click="visible = true"
> >
立即购买 立即购买
</a-button> </Button>
<a-button <Button
v-if="props.product.status === Status.ON_TRIAL" v-if="props.product.status === Status.ON_TRIAL"
class="mr-8px" class="mr-8px"
size="mini" size="small"
type="outline" type="primary"
ghost
@click="visible = true" @click="visible = true"
> >
升级购买 升级购买
</a-button> </Button>
<a-button <Button
v-if="props.product.status === Status.TRIAL_ENDS || props.product.status === Status.EXPIRED" v-if="props.product.status === Status.TRIAL_ENDS || props.product.status === Status.EXPIRED"
class="mr-8px" class="mr-8px"
size="mini" size="small"
type="outline" type="primary"
ghost
@click="visible = true" @click="visible = true"
> >
联系客服 联系客服
</a-button> </Button>
<a-popconfirm focusLock title="试用产品" content="确定试用该产品吗?" @ok="handleTrial(props.product.id)"> <a-popconfirm focusLock title="试用产品" content="确定试用该产品吗?" @ok="handleTrial(props.product.id)">
<a-button v-if="props.product.status === Status.Disable" size="mini" type="outline"> 免费试用7天 </a-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:visible="visible" />
@ -71,6 +73,7 @@ import { now } from '@vueuse/core';
import { trialProduct } from '@/api/all'; import { trialProduct } from '@/api/all';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import CustomerServiceModal from '@/components/customer-service-modal.vue'; import CustomerServiceModal from '@/components/customer-service-modal.vue';
import { Button } from 'ant-design-vue';
import { useSidebarStore } from '@/stores/modules/side-bar'; import { useSidebarStore } from '@/stores/modules/side-bar';
import { useEnterpriseStore } from '@/stores/modules/enterprise'; import { useEnterpriseStore } from '@/stores/modules/enterprise';

View File

@ -1,20 +1,19 @@
<template> <template>
<a-modal v-model:visible="visible" title="删除对话" width="400px" @close="onClose"> <Modal v-model:open="visible" title="删除对话" width="400px" @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>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px !bg-#f64b31 !border-none" status="danger" size="large" @click="onDelete" <Button type="primary" danger @click="onDelete">确定</Button>
>确定</a-button
>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Modal, Button } from 'ant-design-vue';
import { deleteHistoryItem } from '@/api/all/chat'; import { deleteHistoryItem } from '@/api/all/chat';
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,18 +1,19 @@
<template> <template>
<a-modal v-model:visible="visible" title="确定删除评论?" width="400px" @close="onClose"> <Modal v-model:open="visible" title="确定删除评论?" width="400px" @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>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px !border-none" size="large" @click="onDelete">删除</a-button> <Button type="primary" danger @click="onDelete">确定</Button>
</template> </template>
</a-modal> </Modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Modal, Button } 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 emits = defineEmits(['delete', 'close']); const emits = defineEmits(['delete', 'close']);

View File

@ -1,5 +1,6 @@
<script lang="jsx"> <script lang="jsx">
import { Image, Spin, Button, Input, Textarea, Affix } from '@arco-design/web-vue'; import { Button } from 'ant-design-vue';
import { Image, Spin, Input, Textarea, Affix } from '@arco-design/web-vue';
import TextOverTips from '@/components/text-over-tips'; import TextOverTips from '@/components/text-over-tips';
import SvgIcon from '@/components/svg-icon/index.vue'; import SvgIcon from '@/components/svg-icon/index.vue';
import DeleteCommentModal from './delete-comment-modal.vue'; import DeleteCommentModal from './delete-comment-modal.vue';
@ -138,10 +139,10 @@ export default {
{comment.value && ( {comment.value && (
<div class="flex justify-end mt-12px"> <div class="flex justify-end mt-12px">
<Button type="outline" class="mr-12px rounded-8px" size="medium" onClick={onClearComment}> <Button type="primary" ghost class="mr-12px rounded-8px" onClick={onClearComment}>
取消 取消
</Button> </Button>
<Button type="primary" class="rounded-8px" size="medium" onClick={onComment}> <Button type="primary" class="rounded-8px" onClick={onComment}>
发送 发送
</Button> </Button>
</div> </div>

View File

@ -1,5 +1,6 @@
<script lang="jsx"> <script lang="jsx">
import { Image, Spin, Button } from '@arco-design/web-vue'; import { Button } from 'ant-design-vue';
import { Spin } from '@arco-design/web-vue';
import AiSuggest from './components/ai-suggest/'; import AiSuggest from './components/ai-suggest/';
import { getShareWorksList, getShareWorksDetail, patchShareWorksConfirm } from '@/api/all/generationWorkshop.ts'; import { getShareWorksList, getShareWorksDetail, patchShareWorksConfirm } from '@/api/all/generationWorkshop.ts';
@ -186,7 +187,7 @@ export default {
下一条 下一条
</Button> </Button>
)} )}
<Button type="outline" size="large" class="mr-12px" onClick={onBackList}> <Button type="primary" ghost size="large" class="mr-12px" onClick={onBackList}>
返回列表 返回列表
</Button> </Button>
{renderConfirmBtn()} {renderConfirmBtn()}

View File

@ -1,5 +1,5 @@
<script lang="tsx"> <script lang="tsx">
import { Tabs, TabPane } from 'ant-design-vue'; import { Tabs, TabPane, Button } from 'ant-design-vue';
import ManuscriptList from './manuscript/list/index.vue'; import ManuscriptList from './manuscript/list/index.vue';
import ManuscriptCheckList from './manuscript/check-list/index.vue'; import ManuscriptCheckList from './manuscript/check-list/index.vue';
import ShareManuscriptModal from '@/views/material-center/components/finished-products/manuscript/components/share-manuscript-modal/index.vue'; import ShareManuscriptModal from '@/views/material-center/components/finished-products/manuscript/components/share-manuscript-modal/index.vue';
@ -33,17 +33,17 @@ export default defineComponent({
v-slots={{ v-slots={{
rightExtra: () => ( rightExtra: () => (
<div class="flex items-center"> <div class="flex items-center">
<a-button type="outline" size="medium" onClick={handleShareModal}> <Button type="primary" ghost size="medium" onClick={handleShareModal}>
分享内容稿件 分享内容稿件
</a-button> </Button>
{showManuscriptList.value && ( {showManuscriptList.value && (
<a-button <Button
type="primary" type="primary"
size="medium" size="medium"
class="ml-12px" class="ml-12px"
onClick={openUploadModal} onClick={openUploadModal}
v-slots={{ v-slots={{
icon: () => <icon-plus size="16" />, icon: () => <icon-plus size="16" class="mr-8px" />,
default: () => '上传内容稿件', default: () => '上传内容稿件',
}} }}
/> />

View File

@ -81,24 +81,25 @@
</template> </template>
<div class="filter-row-item"> <div class="filter-row-item">
<a-button type="outline" class="mr-12px" size="medium" @click="handleSearch"> <Button type="primary" ghost class="mr-12px" size="medium" @click="handleSearch">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px"/>
</template> </template>
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button size="medium" @click="handleReset"> <Button size="medium" @click="handleReset">
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px" />
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup> <script setup>
import { Button } from 'ant-design-vue';
import { defineEmits, defineProps } from 'vue'; import { defineEmits, defineProps } from 'vue';
import { PLATFORMS } from '@/views/material-center/components/finished-products/manuscript/check-list/constants'; import { PLATFORMS } from '@/views/material-center/components/finished-products/manuscript/check-list/constants';
import { AuditStatus } from '@/views/material-center/components/finished-products/constants'; import { AuditStatus } from '@/views/material-center/components/finished-products/constants';

View File

@ -10,9 +10,9 @@
<span>确认删除 {{ projectName }} 这个内容稿件吗</span> <span>确认删除 {{ projectName }} 这个内容稿件吗</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="medium" @click="onClose">取消</a-button> <Button size="medium" @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px" status="danger" size="medium" @click="onDelete" <Button type="primary" class="ml-16px" danger size="medium" @click="onDelete"
>确认删除</a-button >确认删除</Button
> >
</template> </template>
</a-modal> </a-modal>
@ -20,6 +20,7 @@
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } 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

@ -103,17 +103,23 @@
<template v-else-if="column.dataIndex === 'operation'" #cell="{ record }"> <template v-else-if="column.dataIndex === 'operation'" #cell="{ record }">
<div class="flex items-center"> <div class="flex items-center">
<img class="mr-8px cursor-pointer" :src="icon1" width="14" height="14" @click="onDelete(record)" /> <img class="mr-8px cursor-pointer" :src="icon1" width="14" height="14" @click="onDelete(record)" />
<a-button type="outline" size="mini" @click="onShare(record)" v-if="audit_status === AuditStatus.Passed" <Button
>分享</a-button type="primary"
ghost
size="small"
@click="onShare(record)"
v-if="audit_status === AuditStatus.Passed"
>分享</Button
> >
<a-button <Button
type="outline" type="primary"
size="mini" ghost
size="small"
@click="onCheck(record)" @click="onCheck(record)"
v-else-if="audit_status === AuditStatus.Pending" v-else-if="audit_status === AuditStatus.Pending"
>审核</a-button >审核</Button
> >
<a-button type="outline" size="mini" @click="onScan(record)" v-else>查看</a-button> <Button type="primary" ghost size="small" @click="onScan(record)" v-else>查看</Button>
</div> </div>
</template> </template>
<template v-else #cell="{ record }"> <template v-else #cell="{ record }">
@ -128,6 +134,7 @@
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue';
import { formatTableField, exactFormatTime } from '@/utils/tools'; import { formatTableField, exactFormatTime } from '@/utils/tools';
import { EnumManuscriptType } from '@/views/material-center/components/finished-products/manuscript/list/constants'; import { EnumManuscriptType } from '@/views/material-center/components/finished-products/manuscript/list/constants';
import { patchWorkAuditsAudit } from '@/api/all/generationWorkshop'; import { patchWorkAuditsAudit } from '@/api/all/generationWorkshop';

View File

@ -13,21 +13,23 @@
class="flex justify-end mb-12px" class="flex justify-end mb-12px"
v-if="[AuditStatus.Pending, AuditStatus.Auditing].includes(query.audit_status)" v-if="[AuditStatus.Pending, AuditStatus.Auditing].includes(query.audit_status)"
> >
<a-button <Button
type="outline" type="primary"
ghost
class="w-fit" class="w-fit"
size="medium" size="medium"
@click="handleBatchCheck" @click="handleBatchCheck"
v-if="query.audit_status === AuditStatus.Pending" v-if="query.audit_status === AuditStatus.Pending"
>批量审核</a-button >批量审核</Button
> >
<a-button <Button
type="outline" type="primary"
ghost
class="w-fit" class="w-fit"
size="medium" size="medium"
@click="handleBatchView" @click="handleBatchView"
v-if="query.audit_status === AuditStatus.Auditing" v-if="query.audit_status === AuditStatus.Auditing"
>批量查看</a-button >批量查看</Button
> >
</div> </div>
@ -62,7 +64,8 @@
</div> </div>
</template> </template>
<script lang="jsx" setup> <script lang="jsx" setup>
import { Button, Message as AMessage } from '@arco-design/web-vue'; import { Button } from 'ant-design-vue';
import { Message as AMessage } from '@arco-design/web-vue';
import FilterBlock from './components/filter-block'; import FilterBlock from './components/filter-block';
import ManuscriptCheckTable from './components/manuscript-check-table'; import ManuscriptCheckTable from './components/manuscript-check-table';
import DeleteManuscriptModal from './components/manuscript-check-table/delete-manuscript-modal.vue'; import DeleteManuscriptModal from './components/manuscript-check-table/delete-manuscript-modal.vue';
@ -175,7 +178,6 @@ const handleDelete = (item) => {
deleteManuscriptModalRef.value?.open({ id, name: `${title}` }); deleteManuscriptModalRef.value?.open({ id, name: `${title}` });
}; };
watch( watch(
() => props.audit_status, () => props.audit_status,
(newVal) => { (newVal) => {

View File

@ -14,16 +14,17 @@
}}</span> }}</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="medium" @click="onClose">继续编辑</a-button> <Button size="medium" @click="onClose">继续编辑</Button>
<a-button type="primary" class="ml-8px" size="medium" @click="onConfirm"> <Button type="primary" class="ml-8px" size="medium" @click="onConfirm">
{{ action === 'exit' ? '确认退出' : '确认切换' }} {{ action === 'exit' ? '确认退出' : '确认切换' }}
</a-button> </Button>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } 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

@ -13,9 +13,6 @@
<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>
<!-- <template #footer>
<a-button type="primary" class="ml-8px" size="medium" @click="onConfirm">内容稿件分析</a-button>
</template> -->
</a-modal> </a-modal>
</template> </template>

View File

@ -1,6 +1,7 @@
<script lang="jsx"> <script lang="jsx">
import axios from 'axios'; import axios from 'axios';
import { Swiper, SwiperSlide } from 'swiper/vue'; import { Swiper, SwiperSlide } from 'swiper/vue';
import { Button } from 'ant-design-vue';
import { IconLoading } from '@arco-design/web-vue/es/icon'; import { IconLoading } from '@arco-design/web-vue/es/icon';
import { import {
Image, Image,
@ -8,7 +9,6 @@ import {
FormItem, FormItem,
Input, Input,
Textarea, Textarea,
Button,
Tabs, Tabs,
Upload, Upload,
TabPane, TabPane,
@ -190,11 +190,11 @@ export default {
const renderFooterRow = () => { const renderFooterRow = () => {
return ( return (
<> <>
<Button class="mr-12px" size="medium" onClick={onAgainCheck} disabled={isDisabled.value}> <Button class="mr-12px" onClick={onAgainCheck} disabled={isDisabled.value}>
再次审核 再次审核
</Button> </Button>
{isTextTab.value ? ( {isTextTab.value ? (
<Button size="medium" type="outline" class="w-123px check-btn" onClick={onAiReplace} disabled={isDisabled.value}> <Button type="primary" ghost class="w-123px check-btn" onClick={onAiReplace} disabled={isDisabled.value}>
{aiReplaceLoading.value ? ( {aiReplaceLoading.value ? (
<> <>
<IconLoading size={14} /> <IconLoading size={14} />
@ -210,7 +210,7 @@ export default {
) : ( ) : (
<div class="w-88px"> <div class="w-88px">
{renderUpload( {renderUpload(
<Button size="medium" type="outline"> <Button type="primary" ghost>
图片替换 图片替换
</Button>, </Button>,
'replaceImage', 'replaceImage',

View File

@ -1,5 +1,6 @@
<script lang="jsx"> <script lang="jsx">
import { Button, Message as AMessage, Spin } from '@arco-design/web-vue'; import { Button } from 'ant-design-vue';
import { Message as AMessage, Spin } from '@arco-design/web-vue';
import CancelCheckModal from './cancel-check-modal.vue'; import CancelCheckModal from './cancel-check-modal.vue';
import CheckSuccessModal from './check-success-modal.vue'; import CheckSuccessModal from './check-success-modal.vue';
import HeaderCard from './components/header-card'; import HeaderCard from './components/header-card';
@ -181,13 +182,13 @@ export default {
const renderFooterRow = () => { const renderFooterRow = () => {
return ( return (
<> <>
<Button size="medium" type="outline" class="mr-12px" onClick={onExit}> <Button type="primary" ghost class="mr-12px" onClick={onExit}>
退出 退出
</Button> </Button>
<Button size="medium" type="outline" class="mr-12px" onClick={onSave}> <Button type="primary" ghost class="mr-12px" onClick={onSave}>
保存 保存
</Button> </Button>
<Button type="primary" size="medium" onClick={onSubmit} loading={submitLoading.value}> <Button type="primary" onClick={onSubmit} loading={submitLoading.value}>
{submitLoading.value ? '通过审核中...' : '通过审核'} {submitLoading.value ? '通过审核中...' : '通过审核'}
</Button> </Button>
</> </>

View File

@ -1,6 +1,7 @@
<script lang="jsx"> <script lang="jsx">
import axios from 'axios'; import axios from 'axios';
import { Form, FormItem, Input, Textarea, Upload, Message as AMessage, Button } from '@arco-design/web-vue'; import { Button } from 'ant-design-vue';
import { Form, FormItem, Input, Textarea, Upload, Message as AMessage } from '@arco-design/web-vue';
// import CommonSelect from '@/components/common-select'; // import CommonSelect from '@/components/common-select';
// import { VueDraggable } from 'vue-draggable-plus'; // import { VueDraggable } from 'vue-draggable-plus';
import TextOverTips from '@/components/text-over-tips'; import TextOverTips from '@/components/text-over-tips';

View File

@ -1,22 +1,16 @@
<script lang="jsx"> <script lang="jsx">
import { import { Button } from 'ant-design-vue';
Input, import { Table, Modal, TableColumn, Pagination, Tooltip } from '@arco-design/web-vue';
Table,
Modal,
TableColumn,
Checkbox,
Pagination,
Button,
Tooltip,
Notification,
} 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';
import { INITIAL_FORM, TABLE_COLUMNS } from './constants'; import { INITIAL_FORM, TABLE_COLUMNS } from './constants';
import { formatTableField, exactFormatTime } from '@/utils/tools'; import { formatTableField, exactFormatTime } from '@/utils/tools';
import { CHECK_STATUS, EnumManuscriptType } from '@/views/material-center/components/finished-products/manuscript/list/constants'; import {
CHECK_STATUS,
EnumManuscriptType,
} from '@/views/material-center/components/finished-products/manuscript/list/constants';
import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination'; import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination';
import { getWorksPage, getWriterLinksGenerate } from '@/api/all/generationWorkshop.ts'; import { getWorksPage, getWriterLinksGenerate } from '@/api/all/generationWorkshop.ts';
@ -145,16 +139,8 @@ export default {
已选择 <span class="cts color-#211F24 bold">{selectedRows.value.length}</span> 已选择 <span class="cts color-#211F24 bold">{selectedRows.value.length}</span>
</p> </p>
<div class="flex items-center"> <div class="flex items-center">
<Button size="medium" onClick={onClose}> <Button onClick={onClose}>取消</Button>
取消 <Button type="primary" class="ml-16px" onClick={onShare} disabled={!selectedRows.value.length}>
</Button>
<Button
type="primary"
class="ml-16px"
size="medium"
onClick={onShare}
disabled={!selectedRows.value.length}
>
分享 分享
</Button> </Button>
</div> </div>

View File

@ -1,5 +1,6 @@
<script lang="jsx"> <script lang="jsx">
import { Modal, Form, FormItem, Input, Button, Message as AMessage } from '@arco-design/web-vue'; import { Button } from 'ant-design-vue';
import { Modal, 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';
@ -105,10 +106,8 @@ export default {
v-slots={{ v-slots={{
footer: () => ( footer: () => (
<> <>
<Button size="medium" onClick={onClose}> <Button onClick={onClose}>取消</Button>
取消 <Button type="primary" class="ml-16px" onClick={onGenerateLink} disabled={loading.value}>
</Button>
<Button type="primary" class="ml-16px" size="medium" onClick={onGenerateLink} disabled={loading.value}>
{loading.value ? '生成中...' : '生成链接'} {loading.value ? '生成中...' : '生成链接'}
</Button> </Button>
</> </>

View File

@ -5,14 +5,15 @@
<span>内容已修改尚未保存若退出编辑本次修改将不保存</span> <span>内容已修改尚未保存若退出编辑本次修改将不保存</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="medium" @click="onClose">继续编辑</a-button> <Button size="medium" @click="onClose">继续编辑</Button>
<a-button type="primary" class="ml-8px" size="medium" @click="onConfirm">确认退出</a-button> <Button type="primary" class="ml-8px" size="medium" @click="onConfirm">确认退出</Button>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } 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

@ -66,24 +66,25 @@
/> />
</div> </div>
<div class="filter-row-item"> <div class="filter-row-item">
<a-button type="outline" class="mr-12px" size="medium" @click="handleSearch"> <Button type="primary" ghost class="mr-12px" size="medium" @click="handleSearch">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px"/>
</template> </template>
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button size="medium" @click="handleReset"> <Button size="medium" @click="handleReset">
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px"/>
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup> <script setup>
import { Button } from 'ant-design-vue';
import { defineEmits, defineProps } from 'vue'; import { defineEmits, defineProps } from 'vue';
import { CHECK_STATUS } from '@/views/material-center/components/finished-products/manuscript/list/constants'; import { CHECK_STATUS } from '@/views/material-center/components/finished-products/manuscript/list/constants';
import CommonSelect from '@/components/common-select'; import CommonSelect from '@/components/common-select';

View File

@ -67,7 +67,7 @@ export const TABLE_COLUMNS = [
{ {
title: '操作', title: '操作',
dataIndex: 'operation', dataIndex: 'operation',
width: 180, width: 200,
fixed: 'right', fixed: 'right',
}, },
]; ];

View File

@ -1,25 +1,19 @@
<template> <template>
<a-modal <a-modal v-model:visible="visible" title="删除稿件" width="480px" @close="onClose">
v-model:visible="visible"
title="删除稿件"
width="480px"
@close="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>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button size="large" @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px" status="danger" size="large" @click="onDelete" <Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button>
>确认删除</a-button
>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } 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';
@ -49,7 +43,7 @@ async function onDelete() {
const { code } = await deleteWork(projectId.value); const { code } = await deleteWork(projectId.value);
if (code === 200) { if (code === 200) {
AMessage.success('删除成功'); AMessage.success('删除成功');
update() update();
onClose(); onClose();
} }
} }

View File

@ -92,8 +92,8 @@
<template v-else-if="column.dataIndex === 'operation'" #cell="{ record }"> <template v-else-if="column.dataIndex === 'operation'" #cell="{ record }">
<div class="flex items-center"> <div class="flex items-center">
<img class="mr-8px cursor-pointer" :src="icon1" width="14" height="14" @click="onDelete(record)" /> <img class="mr-8px cursor-pointer" :src="icon1" width="14" height="14" @click="onDelete(record)" />
<a-button type="outline" size="mini" class="mr-8px" @click="onEdit(record)">编辑</a-button> <Button type="primary" ghost size="small" class="mr-8px" @click="onEdit(record)">编辑</Button>
<a-button type="outline" size="mini" @click="onDetail(record)">详情</a-button> <Button type="primary" ghost size="small" @click="onDetail(record)">详情</Button>
</div> </div>
</template> </template>
<template v-else #cell="{ record }"> <template v-else #cell="{ record }">
@ -106,6 +106,7 @@
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue';
import { formatTableField, exactFormatTime } from '@/utils/tools'; import { formatTableField, exactFormatTime } from '@/utils/tools';
import { TABLE_COLUMNS } from './constants'; import { TABLE_COLUMNS } from './constants';
import { CHECK_STATUS, EnumManuscriptType } from '@/views/material-center/components/finished-products/manuscript/list/constants'; import { CHECK_STATUS, EnumManuscriptType } from '@/views/material-center/components/finished-products/manuscript/list/constants';

View File

@ -5,14 +5,15 @@
<span>确认取消上传这 {{ num }} 个文件吗此操作不可恢复</span> <span>确认取消上传这 {{ num }} 个文件吗此操作不可恢复</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="medium" @click="onClose">继续编辑</a-button> <Button size="medium" @click="onClose">继续编辑</Button>
<a-button type="primary" class="ml-8px" size="medium" @click="onConfirm">确认取消</a-button> <Button type="primary" class="ml-8px" size="medium" @click="onConfirm">确认取消</Button>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } 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,6 @@
<script lang="jsx"> <script lang="jsx">
import { Button, Message as AMessage } from '@arco-design/web-vue'; import { Button } from 'ant-design-vue';
import { Message as AMessage } from '@arco-design/web-vue';
import TextOverTips from '@/components/text-over-tips'; import TextOverTips from '@/components/text-over-tips';
import EditForm, { ENUM_UPLOAD_STATUS, INITIAL_VIDEO_INFO } from '../components/edit-form'; import EditForm, { ENUM_UPLOAD_STATUS, INITIAL_VIDEO_INFO } from '../components/edit-form';
import CancelUploadModal from './cancel-upload-modal.vue'; import CancelUploadModal from './cancel-upload-modal.vue';
@ -145,10 +146,10 @@ export default {
if (works.value.length > 1) { if (works.value.length > 1) {
return ( return (
<> <>
<Button size="medium" type="outline" onClick={onCancel} class="mr-12px"> <Button type="primary" ghost onClick={onCancel} class="mr-12px">
取消上传 取消上传
</Button> </Button>
<Button type="primary" size="medium" onClick={() => onUpload('batchUpload')} loading={uploadLoading.value}> <Button type="primary" onClick={() => onUpload('batchUpload')} loading={uploadLoading.value}>
{uploadLoading.value ? '批量上传中...' : '批量上传'} {uploadLoading.value ? '批量上传中...' : '批量上传'}
</Button> </Button>
</> </>
@ -156,12 +157,13 @@ export default {
} else { } else {
return ( return (
<> <>
<Button size="medium" type="outline" onClick={onCancel} class="mr-12px"> <Button type="primary" ghost onClick={onCancel} class="mr-12px">
取消上传 取消上传
</Button> </Button>
<Button <Button
size="medium" size="medium"
type="outline" type="primary"
ghost
onClick={() => onUpload('singleUpload')} onClick={() => onUpload('singleUpload')}
class="mr-12px" class="mr-12px"
loading={uploadLoading.value} loading={uploadLoading.value}

View File

@ -7,14 +7,15 @@
<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>
<template #footer> <template #footer>
<a-button size="medium" @click="onBack">回到列表</a-button> <Button size="medium" @click="onBack">回到列表</Button>
<a-button type="primary" class="ml-8px" size="medium" @click="onConfirm">批量审核</a-button> <Button type="primary" class="ml-8px" size="medium" @click="onConfirm">批量审核</Button>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } 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

@ -56,18 +56,18 @@
/> />
</div> </div>
<div class="filter-row-item"> <div class="filter-row-item">
<a-button type="outline" class="mr-12px" size="medium" @click="handleSearch"> <Button type="primary" ghost class="mr-12px" size="medium" @click="handleSearch">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px"/>
</template> </template>
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button size="medium" @click="handleReset"> <Button size="medium" @click="handleReset">
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px"/>
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</div> </div>
</div> </div>
</div> </div>
@ -76,6 +76,7 @@
<script setup> <script setup>
import { defineEmits, defineProps } from 'vue'; import { defineEmits, defineProps } from 'vue';
// import CommonSelect from '@/components/common-select'; // import CommonSelect from '@/components/common-select';
import { Button } from 'ant-design-vue';
const props = defineProps({ const props = defineProps({
query: { query: {

View File

@ -5,14 +5,15 @@
<span>确认删除 {{ fileName }} 文件吗</span> <span>确认删除 {{ fileName }} 文件吗</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="medium" @click="onClose">取消</a-button> <Button size="medium" @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px" status="danger" size="medium" @click="onDelete">确认删除</a-button> <Button type="primary" class="ml-16px" danger size="medium" @click="onDelete">确认删除</Button>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } 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

@ -71,7 +71,7 @@
<template v-else-if="column.dataIndex === 'operation'" #cell="{ record }"> <template v-else-if="column.dataIndex === 'operation'" #cell="{ record }">
<div class="flex items-center"> <div class="flex items-center">
<img class="mr-8px cursor-pointer" :src="icon1" width="14" height="14" @click="onDelete(record)" /> <img class="mr-8px cursor-pointer" :src="icon1" width="14" height="14" @click="onDelete(record)" />
<a-button type="outline" size="mini" @click="onDownload(record)">下载</a-button> <Button type="primary" ghost size="small" @click="onDownload(record)">下载</Button>
</div> </div>
</template> </template>
<template v-else #cell="{ record }"> <template v-else #cell="{ record }">
@ -84,6 +84,7 @@
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue';
import { formatTableField, exactFormatTime, formatFileSize, downloadByUrl } from '@/utils/tools'; import { formatTableField, exactFormatTime, formatFileSize, downloadByUrl } from '@/utils/tools';
import { slsWithCatch } from '@/utils/stroage.ts'; import { slsWithCatch } from '@/utils/stroage.ts';
import { TABS_LIST, ORIGIN_LIST } from '../../constants'; import { TABS_LIST, ORIGIN_LIST } from '../../constants';

View File

@ -1,6 +1,6 @@
<script lang="tsx"> <script lang="tsx">
import { provide } from 'vue'; import { provide } from 'vue';
import { Tabs, TabPane } from 'ant-design-vue'; import { Tabs, TabPane, Button } from 'ant-design-vue';
import { TABS_LIST, RawMaterialType, INITIAL_QUERY, TABLE_COLUMNS } from './constants'; import { TABS_LIST, RawMaterialType, INITIAL_QUERY, TABLE_COLUMNS } from './constants';
import FilterBlock from './components/filter-block/index.vue'; import FilterBlock from './components/filter-block/index.vue';
import RawMaterialTable from './components/table/index.vue'; import RawMaterialTable from './components/table/index.vue';
@ -106,9 +106,9 @@ 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">
<a-button type="outline" class="w-fit" size="medium" onClick={handleBatchDelete}> <Button type="primary" ghost class="w-fit" size="medium" onClick={handleBatchDelete}>
批量删除 批量删除
</a-button> </Button>
</div> </div>
<RawMaterialTable <RawMaterialTable

View File

@ -4,7 +4,7 @@
<div class="top flex h-64px px-24px py-10px justify-between items-center"> <div class="top flex h-64px px-24px py-10px justify-between items-center">
<p class="text-18px font-400 lh-26px color-#211F24 title">品牌物料</p> <p class="text-18px font-400 lh-26px color-#211F24 title">品牌物料</p>
<div class="flex items-center"> <div class="flex items-center">
<a-button class="add-btn" type="primary" @click="handleAdd">+ 添加品牌</a-button> <Button type="primary" class="add-btn" @click="handleAdd">+ 添加品牌</Button>
</div> </div>
</div> </div>
@ -21,18 +21,18 @@
</a-space> </a-space>
</div> </div>
<div class="filter-row flex"> <div class="filter-row flex">
<a-button type="outline" class="mr-12px" size="medium" @click="handleSearch"> <Button type="outline" ghost class="mr-12px" @click="handleSearch">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px"/>
</template> </template>
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button size="medium" @click="handleReset"> <Button @click="handleReset">
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px"/>
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</div> </div>
</div> </div>
<a-modal <a-modal
@ -65,8 +65,8 @@
</a-form-item> </a-form-item>
</a-form> </a-form>
<template #footer> <template #footer>
<a-button @click="handleModalCancel">取消</a-button> <Button @click="handleModalCancel" class="mr-8px">取消</Button>
<a-button type="primary" @click="handleModalOk">{{ btn_str }}</a-button> <Button type="primary" @click="handleModalOk">{{ btn_str }}</Button>
</template> </template>
</a-modal> </a-modal>
</div> </div>
@ -98,7 +98,7 @@
</a-popconfirm> </a-popconfirm>
</a-space> </a-space>
<a-space> <a-space>
<a-button class="edit-btn" type="outline" @click="handleEdit(record.id)">编辑</a-button> <Button type="outline" class="edit-btn" size="small" @click="handleEdit(record.id)">编辑</Button>
</a-space> </a-space>
</a-space> </a-space>
</template> </template>
@ -127,6 +127,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 { import {
addMaterials, addMaterials,

View File

@ -25,18 +25,18 @@
</div> </div>
<div class="filter-row flex"> <div class="filter-row flex">
<a-button type="outline" class="mr-12px" size="medium"> <Button class="mr-12px outline-btn">
<template #icon> <template #icon>
<icon-search /> <icon-search />
</template> </template>
<template #default>搜索</template> 搜索
</a-button> </Button>
<a-button size="medium"> <Button>
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh />
</template> </template>
<template #default>重置</template> 重置
</a-button> </Button>
</div> </div>
</div> </div>
</div> </div>
@ -65,6 +65,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { reactive, ref } from 'vue'; import { reactive, ref } from 'vue';
import { Button } from 'ant-design-vue';
const pageInfo = reactive({ const pageInfo = reactive({
page: 1, page: 1,
@ -140,10 +141,12 @@ const columns = [
display: flex; display: flex;
flex-direction: column; flex-direction: column;
:deep(.search-btn) { :deep(.outline-btn) {
border-radius: 4px; border: 1px solid #d9d9d9;
border: 1px solid var(--Brand-Brand-6, #6d4cfe); &:hover {
color: #6d4cfe; color: #6d4cfe;
border-color: #6d4cfe;
}
} }
:deep(.edit-btn) { :deep(.edit-btn) {

View File

@ -25,18 +25,18 @@
</div> </div>
<div class="filter-row flex"> <div class="filter-row flex">
<a-button type="outline" class="mr-12px" size="medium"> <Button type="primary" ghost class="mr-12px">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px" />
</template> </template>
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button size="medium"> <Button>
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px" />
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</div> </div>
</div> </div>
</div> </div>
@ -44,8 +44,7 @@
<div <div
class="table-wrap bg-#fff rounded-8px border-1px border-#D7D7D9 border-solid px-24px py-24px flex-1 flex flex-col" class="table-wrap bg-#fff rounded-8px border-1px border-#D7D7D9 border-solid px-24px py-24px flex-1 flex flex-col"
> >
<a-table :columns="columns" :data="tableData" @change="handleChange" :pagination="false"> <a-table :columns="columns" :data="tableData" @change="handleChange" :pagination="false"> </a-table>
</a-table>
<div class="pagination-row"> <div class="pagination-row">
<a-pagination <a-pagination
:total="pageInfo.total" :total="pageInfo.total"
@ -64,6 +63,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { Button } from 'ant-design-vue';
import { reactive, ref } from 'vue'; import { reactive, ref } from 'vue';
const pageInfo = reactive({ const pageInfo = reactive({

View File

@ -9,6 +9,7 @@
width="960px" width="960px"
unmountOnClose unmountOnClose
titleAlign="start" titleAlign="start"
centered
wrapClassName="custom-table-column-modal-98" wrapClassName="custom-table-column-modal-98"
@cancel="close" @cancel="close"
> >
@ -64,7 +65,7 @@
</div> </div>
<template #footer> <template #footer>
<div style="text-align: right"> <div class="flex">
<Button @click="close">取消</Button> <Button @click="close">取消</Button>
<Button type="primary" @click="onSubmit">确定</Button> <Button type="primary" @click="onSubmit">确定</Button>
</div> </div>

View File

@ -51,24 +51,25 @@
</a-select> </a-select>
</div> </div>
<div class="filter-row-item flex items-center"> <div class="filter-row-item flex items-center">
<a-button type="outline" class="w-84px mr-12px" size="medium" @click="handleSearch"> <Button type="primary" ghost class="w-84px mr-12px" @click="handleSearch">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px" />
</template> </template>
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button class="w-84px" size="medium" @click="handleReset"> <Button class="w-84px" @click="handleReset">
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px" />
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup> <script setup>
import { Button } from 'ant-design-vue';
import { reactive, defineEmits, defineProps } from 'vue'; import { reactive, defineEmits, defineProps } from 'vue';
import { fetchAccountGroups, fetchAccountOperators } from '@/api/all/propertyMarketing'; import { fetchAccountGroups, fetchAccountOperators } from '@/api/all/propertyMarketing';
import StatusSelect from '@/views/property-marketing/media-account/components/status-select'; import StatusSelect from '@/views/property-marketing/media-account/components/status-select';

View File

@ -36,18 +36,18 @@
/> />
</a-space> </a-space>
</div> </div>
<a-button type="outline" class="w-84px mr-12px" size="medium" @click="handleSearch"> <Button type="primary" ghost class="w-84px mr-12px" @click="handleSearch">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px"/>
</template> </template>
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button class="w-84px" size="medium" @click="handleReset"> <Button class="w-84px" @click="handleReset">
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px" />
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</div> </div>
<a-table <a-table
:data="dataSource" :data="dataSource"
@ -114,6 +114,7 @@
</template> </template>
<script setup> <script setup>
import { Button } from 'ant-design-vue';
import { TABLE_COLUMNS, INITIAL_QUERY, INITIAL_PAGE_INFO } from './constants'; import { TABLE_COLUMNS, INITIAL_QUERY, INITIAL_PAGE_INFO } from './constants';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { formatTableField, exactFormatTime, formatNumberShow } from '@/utils/tools'; import { formatTableField, exactFormatTime, formatNumberShow } from '@/utils/tools';

View File

@ -115,10 +115,10 @@
<span class="name !mb-0">{{ getErrorStatusText(item) }}</span> <span class="name !mb-0">{{ getErrorStatusText(item) }}</span>
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<a-button type="outline" class="mr-8px" size="mini" @click="handleCancel(item)">取消</a-button> <Button type="primary" ghost class="mr-8px" size="small" @click="handleCancel(item)">取消</Button>
<a-button type="outline" size="mini" @click="handleConfirm(item)" v-if="showConfirmBtn(item)">{{ <Button type="primary" ghost size="small" @click="handleConfirm(item)" v-if="showConfirmBtn(item)">{{
getConfirmBtnText(item) getConfirmBtnText(item)
}}</a-button> }}</Button>
</div> </div>
</div> </div>
</a-spin> </a-spin>
@ -130,7 +130,7 @@
<script setup> <script setup>
import { defineProps, ref, computed, inject } from 'vue'; import { defineProps, ref, computed, inject } from 'vue';
import { Checkbox } from 'ant-design-vue'; import { Checkbox, Button } from 'ant-design-vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { deleteSyncStatus } from '@/api/all/propertyMarketing'; import { deleteSyncStatus } from '@/api/all/propertyMarketing';
import { exactFormatTime } from '@/utils/tools'; import { exactFormatTime } from '@/utils/tools';

View File

@ -9,13 +9,14 @@
<span>确认暂停同步 {{ accountName }} 这个账号的数据吗</span> <span>确认暂停同步 {{ accountName }} 这个账号的数据吗</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button size="large" @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px" size="large" @click="onConfirm">确定</a-button> <Button type="primary" class="ml-16px" size="large" @click="onConfirm">确定</Button>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { Button } 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,6 +4,7 @@
--> -->
<script lang="jsx"> <script lang="jsx">
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { Button } from 'ant-design-vue';
import { import {
Modal, Modal,
Form, Form,
@ -12,10 +13,8 @@ import {
RadioGroup, RadioGroup,
Radio, Radio,
Upload, Upload,
Button,
Switch, Switch,
Tooltip, Tooltip,
Notification,
Message as AMessage, Message as AMessage,
Textarea, Textarea,
} from '@arco-design/web-vue'; } from '@arco-design/web-vue';

View File

@ -76,15 +76,15 @@
</div> </div>
<template #footer> <template #footer>
<a-button v-if="modalState === MODAL_STATE.QR_READY" size="large" @click="handleRefreshQrCode"> <Button v-if="modalState === MODAL_STATE.QR_READY" size="large" @click="handleRefreshQrCode">
重新生成 重新生成
</a-button> </Button>
<a-button v-if="[MODAL_STATE.SUCCESS, MODAL_STATE.FAILED].includes(modalState)" size="large" @click="close"> <Button v-if="[MODAL_STATE.SUCCESS, MODAL_STATE.FAILED].includes(modalState)" size="large" @click="close">
取消 取消
</a-button> </Button>
<a-button type="primary" size="large" @click="handleOk"> <Button type="primary" size="large" @click="handleOk">
{{ confirmBtnText }} {{ confirmBtnText }}
</a-button> </Button>
</template> </template>
</a-modal> </a-modal>
@ -94,6 +94,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 { 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

@ -76,14 +76,15 @@
</template> </template>
</a-form> </a-form>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button size="large" @click="onClose">取消</Button>
<a-button type="primary" size="large" @click="onSubmit">确定</a-button> <Button type="primary" size="large" @click="onSubmit">确定</Button>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref, reactive } from 'vue'; import { ref, reactive } from 'vue';
import { Button } 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

@ -76,18 +76,18 @@
</a-space> </a-space>
</div> </div>
<div class="filter-row-item"> <div class="filter-row-item">
<a-button type="outline" class="w-84px mr-12px" size="medium" @click="handleSearch"> <Button type="primary" ghost class="w-84px mr-12px"@click="handleSearch">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px"/>
</template> </template>
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button class="w-84px" size="medium" @click="handleReset"> <Button class="w-84px" @click="handleReset">
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px"/>
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</div> </div>
</div> </div>
</div> </div>
@ -95,6 +95,7 @@
<script setup> <script setup>
import { reactive, defineEmits, defineProps } from 'vue'; import { reactive, defineEmits, defineProps } from 'vue';
import { Button } from 'ant-design-vue';
import { import {
fetchAccountTags, fetchAccountTags,
getProjectList, getProjectList,

View File

@ -16,14 +16,15 @@
</a-form-item> </a-form-item>
</a-form> </a-form>
<template #footer> <template #footer>
<a-button @click="onClose">取消</a-button> <Button @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px" @click="onSubmit">确认</a-button> <Button type="primary" class="ml-16px" @click="onSubmit">确认</Button>
</template> </template>
</a-modal> </a-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 { 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

@ -9,16 +9,15 @@
<span>确认删除 "{{ groupName }}" 这个分组吗</span> <span>确认删除 "{{ groupName }}" 这个分组吗</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button size="large" @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px danger-btn" status="danger" size="large" @click="onDelete" <Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button>
>确认删除</a-button
>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } 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

@ -23,12 +23,12 @@
</a-input> </a-input>
</a-space> </a-space>
</div> </div>
<a-button type="primary" size="medium" @click="openAdd" <Button type="primary" size="middle" @click="openAdd"
><template #icon> ><template #icon>
<icon-plus size="16" /> <icon-plus size="16" class="mr-8px"/>
</template> </template>
<template #default>添加新分组</template> <template #default>添加新分组</template>
</a-button> </Button>
</div> </div>
<a-table <a-table
@ -45,18 +45,18 @@
<template #empty> <template #empty>
<NoData> <NoData>
<span class="s1 mb-16px">暂无分组</span> <span class="s1 mb-16px">暂无分组</span>
<a-button type="primary" class="mb-16px" size="medium" @click="openAdd" <Button type="primary" class="mb-16px" size="middle" @click="openAdd"
><template #icon> ><template #icon>
<icon-plus size="16"/> <icon-plus size="16" class="mr-8px"/>
</template> </template>
<template #default>去添加</template> <template #default>去添加</template>
</a-button> </Button>
</NoData> </NoData>
</template> </template>
<template #action="{ record }"> <template #action="{ record }">
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="16" height="16" class="mr-8px cursor-pointer" @click="openDelete(record)" /> <img :src="icon1" width="16" height="16" class="mr-8px cursor-pointer" @click="openDelete(record)" />
<a-button type="primary" @click="openEdit(record)">编辑</a-button> <Button type="primary" size="small" @click="openEdit(record)">编辑</Button>
</div> </div>
</template> </template>
</a-table> </a-table>
@ -81,6 +81,7 @@
<script setup> <script setup>
import { ref, reactive, onMounted } from 'vue'; import { ref, reactive, onMounted } from 'vue';
import { Button } 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

@ -21,13 +21,14 @@
</div> </div>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="close">取消</a-button> <Button size="large" @click="close">取消</Button>
<a-button type="primary" size="large" @click="handleOk"> 去授权 </a-button> <Button type="primary" size="large" @click="handleOk"> 去授权 </Button>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { Button } 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

@ -92,19 +92,19 @@
</div> </div>
<template #footer> <template #footer>
<a-button v-if="modalState === MODAL_STATE.QR_READY" size="large" @click="handleRefreshQrCode"> <Button v-if="modalState === MODAL_STATE.QR_READY" size="large" @click="handleRefreshQrCode">
重新生成 重新生成
</a-button> </Button>
<a-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"
@click="close" @click="close"
> >
取消 取消
</a-button> </Button>
<a-button type="primary" size="large" @click="handleOk"> <Button type="primary" size="large" @click="handleOk">
{{ confirmBtnText }} {{ confirmBtnText }}
</a-button> </Button>
</template> </template>
</a-modal> </a-modal>
@ -114,6 +114,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 { 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

@ -20,14 +20,15 @@
</div> </div>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="close">稍后再说</a-button> <Button size="large" @click="close">稍后再说</Button>
<a-button type="primary" size="large" @click="handleOk"> 更新数据 </a-button> <Button type="primary" size="large" @click="handleOk"> 更新数据 </Button>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { defineExpose } from 'vue'; import { defineExpose } from 'vue';
import { Button } 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

@ -12,14 +12,15 @@
</a-form-item> </a-form-item>
</a-form> </a-form>
<template #footer> <template #footer>
<a-button @click="onClose">取消</a-button> <Button @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px" @click="onSubmit">确认</a-button> <Button type="primary" class="ml-16px" @click="onSubmit">确认</Button>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref, nextTick } from 'vue'; import { ref, nextTick } from 'vue';
import { Button } 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

@ -9,9 +9,9 @@
<span>确认删除 "{{ tagName }}" 这个标签吗</span> <span>确认删除 "{{ tagName }}" 这个标签吗</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button size="large" @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px danger-btn" status="danger" size="large" @click="onDelete" <Button type="primary" class="ml-16px" danger size="large" @click="onDelete"
>确认删除</a-button >确认删除</Button
> >
</template> </template>
</a-modal> </a-modal>
@ -19,6 +19,7 @@
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue';
import { deleteTag } from '@/api/all/propertyMarketing'; import { deleteTag } 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

@ -23,12 +23,12 @@
</a-input> </a-input>
</a-space> </a-space>
</div> </div>
<a-button type="primary" size="medium" @click="openAdd"> <Button type="primary" @click="openAdd">
<template #icon> <template #icon>
<icon-plus size="16" /> <icon-plus size="16" class="mr-8px"/>
</template> </template>
<template #default>添加新标签</template> <template #default>添加新标签</template>
</a-button> </Button>
</div> </div>
<div class="h-300px"> <div class="h-300px">
@ -43,12 +43,12 @@
<template v-else> <template v-else>
<NoData> <NoData>
<span class="s1 mb-16px">暂无标签</span> <span class="s1 mb-16px">暂无标签</span>
<a-button type="primary" class="mb-16px" size="medium" @click="openAdd"> <Button type="primary" class="mb-16px" @click="openAdd">
<template #icon> <template #icon>
<icon-plus size="16" /> <icon-plus size="16" class="mr-8px"/>
</template> </template>
<template #default>去添加</template> <template #default>去添加</template>
</a-button> </Button>
</NoData> </NoData>
</template> </template>
</div> </div>
@ -60,6 +60,7 @@
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } 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

@ -8,24 +8,24 @@
<div class="top flex h-64px px-24px py-10px justify-between items-center"> <div class="top flex h-64px px-24px py-10px justify-between items-center">
<p class="text-18px font-400 lh-26px color-#211F24 title">账号管理</p> <p class="text-18px font-400 lh-26px color-#211F24 title">账号管理</p>
<div class="flex items-center"> <div class="flex items-center">
<a-button class="w-112px mr-12px" type="outline" size="medium" @click="handleOpenTagsModal"> <Button class="w-112px mr-12px" type="primary" ghost size="middle" @click="handleOpenTagsModal">
<template #icon> <template #icon>
<img :src="icon3" width="16" height="16" /> <img :src="icon3" width="16" height="16" class="mr-8px" />
</template> </template>
<template #default>标签管理</template> 标签管理
</a-button> </Button>
<a-button class="w-112px mr-12px" type="outline" size="medium" @click="handleOpenGroupModal"> <Button class="w-112px mr-12px" type="outline" size="middle" @click="handleOpenGroupModal">
<template #icon> <template #icon>
<img :src="icon2" width="16" height="16" /> <img :src="icon2" width="16" height="16" class="mr-8px" />
</template> </template>
<template #default>分组管理</template> 分组管理
</a-button> </Button>
<a-button type="primary" class="w-112px" size="medium" @click="handleOpenAccountModal"> <Button type="primary" class="w-112px" size="middle" @click="handleOpenAccountModal">
<template #icon> <template #icon>
<icon-plus size="16"/> <icon-plus size="16" class="mr-8px"/>
</template> </template>
<template #default>添加账号</template> <template #default>添加账号</template>
</a-button> </Button>
</div> </div>
</div> </div>
<FilterBlock ref="filterBlockRef" v-model:query="query" @onSearch="handleSearch" @onReset="handleReset" /> <FilterBlock ref="filterBlockRef" v-model:query="query" @onSearch="handleSearch" @onReset="handleReset" />
@ -33,7 +33,7 @@
<div <div
v-if="dataSource.length > 0" v-if="dataSource.length > 0"
class="tip-row flex justify-between px-16px py-10px w-100% my-12px h-42px" class="tip-row flex justify-between px-16px py-10px w-100% my-12px"
:class="selectedItems.length > 0 ? 'selected' : isAbNormalStatus ? 'abnormal' : 'normal'" :class="selectedItems.length > 0 ? 'selected' : isAbNormalStatus ? 'abnormal' : 'normal'"
> >
<div class="flex items-center"> <div class="flex items-center">
@ -70,9 +70,9 @@
</template> </template>
<div v-else> <div v-else>
<a-space v-if="isAbNormalStatus" class="flex items-center"> <a-space v-if="isAbNormalStatus" class="flex items-center">
<a-button type="primary" status="danger" size="mini" @click="handleOpenAbnormalAccount"> <Button type="primary" danger size="small" @click="handleOpenAbnormalAccount">
<template #default>查看异常账号</template> <template #default>查看异常账号</template>
</a-button> </Button>
</a-space> </a-space>
</div> </div>
</div> </div>

View File

@ -17,11 +17,11 @@
<template #footer> <template #footer>
<div class="flex justify-between items-center w-100%"> <div class="flex justify-between items-center w-100%">
<div> <div>
<a-button type="outline" size="medium" @click="onPrev" v-if="!isFirstStep">上一步</a-button> <Button type="primary" ghost size="middle" @click="onPrev" v-if="!isFirstStep">上一步</Button>
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<a-button size="medium" class="mr-8px" @click="onCancel">取消</a-button> <Button size="middle" class="mr-8px" @click="onCancel">取消</Button>
<a-button type="primary" size="medium" @click="onSubmit">{{ isLastStep ? '确认添加' : '下一步' }}</a-button> <Button type="primary" size="middle" @click="onSubmit">{{ isLastStep ? '确认添加' : '下一步' }}</Button>
</div> </div>
</div> </div>
</template> </template>
@ -30,6 +30,7 @@
<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 StepOne from './stepOne.vue'; import StepOne from './stepOne.vue';
import StepTwo from './stepTwo.vue'; import StepTwo from './stepTwo.vue';

View File

@ -94,7 +94,7 @@
<div class="right w-320px px-12px flex flex-col"> <div class="right w-320px px-12px flex flex-col">
<div class="flex justify-between"> <div class="flex justify-between">
<p class="mb-16px s1">{{ `已选择(${selectedRows?.length ?? 0}` }}</p> <p class="mb-16px s1">{{ `已选择(${selectedRows?.length ?? 0}` }}</p>
<a-button type="text" @click="onClearSelect" v-if="selectedRows.length">清空</a-button> <Button type="text" @click="onClearSelect" v-if="selectedRows.length">清空</Button>
</div> </div>
<div class="flex-1 overflow-y-auto overflow-x-hidden"> <div class="flex-1 overflow-y-auto overflow-x-hidden">
<template v-if="selectedRows?.length"> <template v-if="selectedRows?.length">
@ -113,6 +113,7 @@
<script setup> <script setup>
import { formatTableField, exactFormatTime } from '@/utils/tools'; import { formatTableField, exactFormatTime } from '@/utils/tools';
import { Button } from 'ant-design-vue';
import { getPlacementAccountOperators, getWorksList } from '@/api/all/propertyMarketing'; import { getPlacementAccountOperators, getWorksList } from '@/api/all/propertyMarketing';
import { getUserList } from '@/api/all/common'; import { getUserList } from '@/api/all/common';

View File

@ -97,7 +97,7 @@
<div class="right w-320px px-12px flex flex-col"> <div class="right w-320px px-12px flex flex-col">
<div class="flex justify-between"> <div class="flex justify-between">
<p class="mb-16px s1">{{ `已选择(${selectedRows?.length ?? 0}` }}</p> <p class="mb-16px s1">{{ `已选择(${selectedRows?.length ?? 0}` }}</p>
<a-button type="text" @click="onClearSelect" v-if="selectedRows.length">清空</a-button> <Button type="text" @click="onClearSelect" v-if="selectedRows.length">清空</Button>
</div> </div>
<div class="flex-1 overflow-y-auto overflow-x-hidden"> <div class="flex-1 overflow-y-auto overflow-x-hidden">
<template v-if="selectedRows?.length"> <template v-if="selectedRows?.length">
@ -117,6 +117,7 @@
<script setup> <script setup>
import { PLATFORM_LIST, getPutAccountPlatformLogo } from '@/utils/platform'; import { PLATFORM_LIST, getPutAccountPlatformLogo } from '@/utils/platform';
import { formatTableField } from '@/utils/tools'; import { formatTableField } from '@/utils/tools';
import { Button } from 'ant-design-vue';
import { getPlacementAccountOperators, getPlacementAccountsList } from '@/api/all/propertyMarketing'; import { getPlacementAccountOperators, getPlacementAccountsList } from '@/api/all/propertyMarketing';
import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination'; import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination';

View File

@ -97,7 +97,7 @@
<div class="right w-320px px-12px flex flex-col"> <div class="right w-320px px-12px flex flex-col">
<div class="flex justify-between"> <div class="flex justify-between">
<p class="mb-16px s1">{{ `已选择(${selectedRows?.length ?? 0}` }}</p> <p class="mb-16px s1">{{ `已选择(${selectedRows?.length ?? 0}` }}</p>
<a-button type="text" @click="onClearSelect" v-if="selectedRows.length">清空</a-button> <Button type="text" @click="onClearSelect" v-if="selectedRows.length">清空</Button>
</div> </div>
<div class="flex-1 overflow-y-auto"> <div class="flex-1 overflow-y-auto">
<div class="flex flex-wrap" v-if="selectedRows?.length"> <div class="flex flex-wrap" v-if="selectedRows?.length">
@ -115,6 +115,7 @@
<script setup> <script setup>
import { MEDIA_ACCOUNT_PLATFORMS, getMediaAccountPlatformLogo } from '@/utils/platform'; import { MEDIA_ACCOUNT_PLATFORMS, getMediaAccountPlatformLogo } from '@/utils/platform';
import { formatTableField } from '@/utils/tools'; import { formatTableField } from '@/utils/tools';
import { Button } from 'ant-design-vue';
import { fetchAccountOperators, getMediaAccountList } from '@/api/all/propertyMarketing'; import { fetchAccountOperators, getMediaAccountList } from '@/api/all/propertyMarketing';
import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination'; import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination';

View File

@ -24,18 +24,18 @@
</a-space> </a-space>
</div> </div>
<div class="filter-row-item flex items-center"> <div class="filter-row-item flex items-center">
<a-button type="outline" class="mr-12px" size="medium" @click="handleSearch"> <Button type="primary" ghost class="mr-12px"@click="handleSearch">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px"/>
</template> </template>
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button size="medium" @click="handleReset"> <Button @click="handleReset">
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px"/>
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</div> </div>
</div> </div>
</div> </div>
@ -43,6 +43,7 @@
<script setup> <script setup>
import { defineEmits, defineProps } from 'vue'; import { defineEmits, defineProps } from 'vue';
import { Button } from 'ant-design-vue';
const props = defineProps({ const props = defineProps({
query: { query: {

View File

@ -15,9 +15,9 @@
<span>确认删除 {{ projectName }} 这个项目吗</span> <span>确认删除 {{ projectName }} 这个项目吗</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button size="large" @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px" status="danger" size="large" @click="onDelete" <Button type="primary" class="ml-16px" danger size="large" @click="onDelete"
>确认删除</a-button >确认删除</Button
> >
</template> </template>
</a-modal> </a-modal>
@ -25,6 +25,7 @@
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } 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

@ -41,7 +41,7 @@
<template v-else-if="column.dataIndex === 'operation'" #cell="{ record }"> <template v-else-if="column.dataIndex === 'operation'" #cell="{ record }">
<div class="flex items-center"> <div class="flex items-center">
<img class="mr-8px cursor-pointer" :src="icon1" width="14" height="14" @click="onDelete(record)" /> <img class="mr-8px cursor-pointer" :src="icon1" width="14" height="14" @click="onDelete(record)" />
<a-button type="outline" size="mini" @click="onEdit(record)">编辑</a-button> <Button type="primary" ghost size="small" @click="onEdit(record)">编辑</Button>
</div> </div>
</template> </template>
@ -55,6 +55,7 @@
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue';
import { formatTableField, exactFormatTime } from '@/utils/tools'; import { formatTableField, exactFormatTime } from '@/utils/tools';
import { TABLE_COLUMNS } from './constants'; import { TABLE_COLUMNS } from './constants';

View File

@ -4,12 +4,12 @@
<div class="top flex h-64px px-24px py-10px justify-between items-center"> <div class="top flex h-64px px-24px py-10px justify-between items-center">
<p class="text-18px font-400 lh-26px color-#211F24 title">项目列表</p> <p class="text-18px font-400 lh-26px color-#211F24 title">项目列表</p>
<div class="flex items-center"> <div class="flex items-center">
<a-button type="primary" class="w-112px search-btn" size="medium" @click="handleOpenAddProjectModal"> <Button type="primary" class="w-112px search-btn" size="medium" @click="handleOpenAddProjectModal">
<template #icon> <template #icon>
<icon-plus size="16" /> <icon-plus size="16" />
</template> </template>
<template #default>添加项目</template> <template #default>添加项目</template>
</a-button> </Button>
</div> </div>
</div> </div>
<FilterBlock v-model:query="query" @onSearch="handleSearch" @onReset="handleReset" /> <FilterBlock v-model:query="query" @onSearch="handleSearch" @onReset="handleReset" />
@ -43,6 +43,7 @@
<script setup> <script setup>
import { INITIAL_QUERY } from './constants'; import { INITIAL_QUERY } from './constants';
import { Button } from 'ant-design-vue';
import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination'; import { useTableSelectionWithPagination } from '@/hooks/useTableSelectionWithPagination';
import { getProjects } from '@/api/all/propertyMarketing'; import { getProjects } from '@/api/all/propertyMarketing';

View File

@ -43,18 +43,18 @@
<a-range-picker v-model="query.data_time" size="medium" allow-clear format="YYYY-MM-DD" class="w-100%" /> <a-range-picker v-model="query.data_time" size="medium" allow-clear format="YYYY-MM-DD" class="w-100%" />
</a-space> </a-space>
</div> </div>
<a-button type="outline" class="mr-12px" size="medium" @click="handleSearch"> <Button type="primary" ghost class="mr-12px" @click="handleSearch">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px" />
</template> </template>
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button size="medium" @click="handleReset"> <Button @click="handleReset">
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px" />
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</div> </div>
</div> </div>
</div> </div>
@ -75,6 +75,7 @@
<script setup lang="ts"> <script setup lang="ts">
import EchartsItem from './components/echarts-item/index'; import EchartsItem from './components/echarts-item/index';
import { PLATFORM_LIST } from '@/utils/platform'; import { PLATFORM_LIST } from '@/utils/platform';
import { Button } from 'ant-design-vue';
import { import {
getPlacementAccountsTrend, getPlacementAccountsTrend,
getPlacementAccountProjectsTrend, getPlacementAccountProjectsTrend,

View File

@ -16,16 +16,16 @@
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<a-button type="outline" class="mr-12px" size="medium" @click="handleExport"> <Button type="primary" ghost class="mr-12px" size="medium" @click="handleExport">
<template #icon> <icon-download /> </template> <template #icon> <icon-download class="mr-8px" /> </template>
<template #default>导出数据</template> <template #default>导出数据</template>
</a-button> </Button>
<a-button type="outline" size="medium" @click="openCustomColumn"> <Button type="primary" ghost size="medium" @click="openCustomColumn">
<template #icon> <template #icon>
<img :src="icon1" width="14" height="14" /> <img :src="icon1" width="14" height="14" class="mr-8px" />
</template> </template>
<template #default>自定义列</template> <template #default>自定义列</template>
</a-button> </Button>
</div> </div>
</div> </div>
@ -106,7 +106,7 @@
</div> </div>
</template> </template>
<template v-else-if="column.dataIndex === 'operation'" #cell="{ record }"> <template v-else-if="column.dataIndex === 'operation'" #cell="{ record }">
<a-button type="outline" size="small" @click="handleDetail(record)">详情</a-button> <Button type="primary" ghost size="small" @click="handleDetail(record)">详情</Button>
</template> </template>
<template v-else-if="column.isRateField" #cell="{ record }"> <template v-else-if="column.isRateField" #cell="{ record }">
@ -134,7 +134,7 @@
</template> </template>
<script setup> <script setup>
import { Checkbox } from 'ant-design-vue'; import { Checkbox, Button } from 'ant-design-vue';
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { STATUS_LIST } from '@/views/property-marketing/put-account/components/status-select/constants'; import { STATUS_LIST } from '@/views/property-marketing/put-account/components/status-select/constants';
import { formatTableField, exactFormatTime } from '@/utils/tools'; import { formatTableField, exactFormatTime } from '@/utils/tools';

View File

@ -55,24 +55,25 @@
/> />
</a-space> </a-space>
</div> </div>
<a-button type="outline" class="mr-12px" size="medium" @click="handleSearch"> <Button type="primary" ghost class="mr-12px" @click="handleSearch">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px" />
</template> </template>
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button size="medium" @click="handleReset"> <Button @click="handleReset">
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px" />
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</div> </div>
</div> </div>
</template> </template>
<script setup> <script setup>
import { reactive, defineEmits, defineProps } from 'vue'; import { reactive, defineEmits, defineProps } from 'vue';
import { Button } from 'ant-design-vue';
import { import {
getPlacementAccountProjectGroupsList, getPlacementAccountProjectGroupsList,
getPlacementAccountsList, getPlacementAccountsList,

View File

@ -16,14 +16,15 @@
</a-form-item> </a-form-item>
</a-form> </a-form>
<template #footer> <template #footer>
<a-button @click="onClose">取消</a-button> <Button @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px" @click="onSubmit">确认</a-button> <Button type="primary" class="ml-16px" @click="onSubmit">确认</Button>
</template> </template>
</a-modal> </a-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 { 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

@ -9,16 +9,15 @@
<span>确认删除 "{{ groupName }}" 这个分组吗</span> <span>确认删除 "{{ groupName }}" 这个分组吗</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button size="large" @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px danger-btn" status="danger" size="large" @click="onDelete" <Button type="primary" class="ml-16px danger-btn" danger size="large" @click="onDelete">确认删除</Button>
>确认删除</a-button
>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } 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

@ -23,12 +23,12 @@
</a-input> </a-input>
</a-space> </a-space>
</div> </div>
<a-button type="primary" size="medium" @click="openAdd" <Button type="primary" size="medium" @click="openAdd"
><template #icon> ><template #icon>
<icon-plus size="16" /> <icon-plus size="16" class="mr-8px"/>
</template> </template>
<template #default>添加新分组</template> <template #default>添加新分组</template>
</a-button> </Button>
</div> </div>
<a-table <a-table
column-resizable column-resizable
@ -44,18 +44,18 @@
<template #empty> <template #empty>
<NoData> <NoData>
<span class="s1 mb-16px">暂无分组</span> <span class="s1 mb-16px">暂无分组</span>
<a-button type="primary" class="mb-16px" size="medium" @click="openAdd" <Button type="primary" class="mb-16px" size="medium" @click="openAdd"
><template #icon> ><template #icon>
<icon-plus size="16" /> <icon-plus size="16" class="mr-8px"/>
</template> </template>
<template #default>去添加</template> <template #default>去添加</template>
</a-button> </Button>
</NoData> </NoData>
</template> </template>
<template #action="{ record }"> <template #action="{ record }">
<div class="flex items-center"> <div class="flex items-center">
<img :src="icon1" width="16" height="16" class="mr-8px cursor-pointer" @click="openDelete(record)" /> <img :src="icon1" width="16" height="16" class="mr-8px cursor-pointer" @click="openDelete(record)" />
<a-button type="primary" @click="openEdit(record)">编辑</a-button> <Button type="primary" @click="openEdit(record)">编辑</Button>
</div> </div>
</template> </template>
</a-table> </a-table>
@ -80,6 +80,7 @@
<script setup> <script setup>
import { ref, reactive, onMounted } from 'vue'; import { ref, reactive, onMounted } from 'vue';
import { Button } 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

@ -16,16 +16,16 @@
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<a-button type="outline" class="mr-12px" size="medium" @click="handleExport"> <Button type="primary" ghost class="mr-12px" @click="handleExport">
<template #icon> <icon-download /> </template> <template #icon> <icon-download class="mr-8px" /> </template>
<template #default>导出数据</template> <template #default>导出数据</template>
</a-button> </Button>
<a-button type="outline" size="medium" @click="openCustomColumn"> <Button type="primary" ghost @click="openCustomColumn">
<template #icon> <template #icon>
<img :src="icon1" width="14" height="14" /> <img :src="icon1" width="14" height="14" class="mr-8px" />
</template> </template>
<template #default>自定义列</template> <template #default>自定义列</template>
</a-button> </Button>
</div> </div>
</div> </div>
@ -106,7 +106,7 @@
</div> </div>
</template> </template>
<template v-else-if="column.dataIndex === 'operation'" #cell="{ record }"> <template v-else-if="column.dataIndex === 'operation'" #cell="{ record }">
<a-button type="outline" size="small" @click="handleDetail(record)">详情</a-button> <Button type="primary" ghost size="small" @click="handleDetail(record)">详情</Button>
</template> </template>
<template v-else-if="column.isRateField" #cell="{ record }"> <template v-else-if="column.isRateField" #cell="{ record }">
@ -132,7 +132,7 @@
</template> </template>
<script setup> <script setup>
import { Checkbox } from 'ant-design-vue'; import { Checkbox, Button } from 'ant-design-vue';
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { STATUS_LIST } from '@/views/property-marketing/put-account/components/status-select/constants'; import { STATUS_LIST } from '@/views/property-marketing/put-account/components/status-select/constants';
import { formatTableField } from '@/utils/tools'; import { formatTableField } from '@/utils/tools';

View File

@ -9,12 +9,12 @@
<a-tab-pane key="1" title="账户"></a-tab-pane> <a-tab-pane key="1" title="账户"></a-tab-pane>
<a-tab-pane key="2" title="计划"></a-tab-pane> <a-tab-pane key="2" title="计划"></a-tab-pane>
<template v-if="!isAccountTab" #extra> <template v-if="!isAccountTab" #extra>
<a-button type="outline" class="mr-12px flex items-center" size="medium" @click="handleOpenGroupModal"> <Button type="primary" ghost class="mr-12px flex items-center" @click="handleOpenGroupModal">
<template #icon> <template #icon>
<img :src="icon2" width="16" height="16" /> <img :src="icon2" width="16" height="16" class="mr-8px" />
</template> </template>
<template #default>分组管理</template> <template #default>分组管理</template>
</a-button> </Button>
</template> </template>
</a-tabs> </a-tabs>
<FilterBlock <FilterBlock
@ -54,6 +54,7 @@
</template> </template>
<script setup> <script setup>
import { Button } from 'ant-design-vue';
import FilterBlock from './components/filter-block'; import FilterBlock from './components/filter-block';
import BoardTable from './components/board-table'; import BoardTable from './components/board-table';
import PlanTable from './components/plan-table'; import PlanTable from './components/plan-table';

View File

@ -15,16 +15,15 @@
<span>确认删除 {{ accountName }} 这个账户吗</span> <span>确认删除 {{ accountName }} 这个账户吗</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button size="large" @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px danger-btn" status="danger" size="large" @click="onDelete" <Button type="primary" class="ml-16px" danger size="large" @click="onDelete">确认删除</Button>
>确认删除</a-button
>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue';
import { deletePlacementAccount, batchDeletePlacementAccounts } from '@/api/all/propertyMarketing'; import { deletePlacementAccount, batchDeletePlacementAccounts } 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

@ -75,22 +75,23 @@
</div> </div>
<div class="operate-row"> <div class="operate-row">
<img :src="icon1" width="16" height="16" class="mr-8px cursor-pointer" @click="openDelete(item)" /> <img :src="icon1" width="16" height="16" class="mr-8px cursor-pointer" @click="openDelete(item)" />
<a-button <Button
v-if="showPauseButton(item.status)" v-if="showPauseButton(item.status)"
type="outline" type="primary"
ghost
class="mr-8px" class="mr-8px"
size="mini" size="small"
@click="handlePause(item)" @click="handlePause(item)"
> >
<template #default>暂停同步</template> <template #default>暂停同步</template>
</a-button> </Button>
<a-button type="outline" class="mr-8px" size="mini" @click="handleReauthorize(item)"> <Button type="primary" ghost class="mr-8px" size="small" @click="handleReauthorize(item)">
<template #default>获取凭证</template> <template #default>获取凭证</template>
</a-button> </Button>
<a-button type="outline" size="mini" @click="openEdit(item)"> <Button type="primary" ghost size="small" @click="openEdit(item)">
<template #default>编辑</template> <template #default>编辑</template>
</a-button> </Button>
</div> </div>
</div> </div>
</div> </div>
@ -100,7 +101,7 @@
</template> </template>
<script setup> <script setup>
import { Checkbox } from 'ant-design-vue'; import { Checkbox, Button } from 'ant-design-vue';
import { defineProps, ref, computed } from 'vue'; import { defineProps, ref, computed } from 'vue';
import { PLATFORM_LIST } from '@/utils/platform'; import { PLATFORM_LIST } from '@/utils/platform';
import { EnumPutAccountStatus } from '@/views/property-marketing/put-account/components/status-select/constants'; import { EnumPutAccountStatus } from '@/views/property-marketing/put-account/components/status-select/constants';

View File

@ -9,14 +9,15 @@
<span>确认暂停同步 {{ accountName }} 这个账号的数据吗</span> <span>确认暂停同步 {{ accountName }} 这个账号的数据吗</span>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button size="large" @click="onClose">取消</Button>
<a-button type="primary" class="ml-16px !bg-#f64b31" size="large" @click="onConfirm">确定</a-button> <Button type="primary" class="ml-16px !bg-#f64b31" size="large" @click="onConfirm">确定</Button>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { ref } from 'vue'; import { ref } from 'vue';
import { Button } from 'ant-design-vue';
import { pausePatchPlacementAccount } from '@/api/all/propertyMarketing'; import { pausePatchPlacementAccount } 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

@ -134,10 +134,10 @@
</template> </template>
</a-form> </a-form>
<template #footer> <template #footer>
<a-button size="large" @click="onClose">取消</a-button> <Button size="large" @click="onClose">取消</Button>
<a-button type="primary" size="large" @click="onSubmit" :loading="importLoading"> <Button type="primary" size="large" @click="onSubmit" :loading="importLoading">
{{ confirmBtnText }} {{ confirmBtnText }}
</a-button> </Button>
</template> </template>
<AuthorizedAccountModal ref="authorizedAccountModalRef" /> <AuthorizedAccountModal ref="authorizedAccountModalRef" />
@ -147,6 +147,7 @@
<script setup> <script setup>
import { ref, defineEmits } from 'vue'; import { ref, defineEmits } from 'vue';
import { Button } from 'ant-design-vue';
import AuthorizedAccountModal from '../authorized-account-modal'; import AuthorizedAccountModal from '../authorized-account-modal';
// import ImportPromptModal from '../import-prompt-modal'; // import ImportPromptModal from '../import-prompt-modal';

View File

@ -55,8 +55,8 @@
</template> </template>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="close">取消</a-button> <Button size="large" @click="close">取消</Button>
<a-button type="primary" size="large" @click="handleOk">{{ confirmBtnText }} </a-button> <Button type="primary" size="large" @click="handleOk">{{ confirmBtnText }} </Button>
</template> </template>
</a-modal> </a-modal>
@ -65,6 +65,7 @@
<script setup> <script setup>
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { Button } from 'ant-design-vue';
import { defineExpose, ref, computed, defineEmits } from 'vue'; import { defineExpose, ref, computed, defineEmits } from 'vue';
import { exactFormatTime } from '@/utils/tools'; import { exactFormatTime } from '@/utils/tools';
import { import {

View File

@ -57,18 +57,18 @@
<CommonSelect class="!w-200px" v-model="query.project_ids" :options="projects" @change="handleSearch" /> <CommonSelect class="!w-200px" v-model="query.project_ids" :options="projects" @change="handleSearch" />
</div> </div>
<div class="filter-row-item"> <div class="filter-row-item">
<a-button type="outline" class="mr-12px" size="medium" @click="handleSearch"> <Button type="primary" ghost class="mr-12px" size="medium" @click="handleSearch">
<template #icon> <template #icon>
<icon-search /> <icon-search class="mr-8px" />
</template> </template>
<template #default>搜索</template> <template #default>搜索</template>
</a-button> </Button>
<a-button size="medium" @click="handleReset"> <Button size="medium" @click="handleReset">
<template #icon> <template #icon>
<icon-refresh /> <icon-refresh class="mr-8px" />
</template> </template>
<template #default>重置</template> <template #default>重置</template>
</a-button> </Button>
</div> </div>
</div> </div>
</div> </div>
@ -76,6 +76,7 @@
<script setup> <script setup>
import { defineEmits, defineProps } from 'vue'; import { defineEmits, defineProps } from 'vue';
import { Button } from 'ant-design-vue';
import { getPlacementAccountOperators, getProjectList } from '@/api/all/propertyMarketing'; import { getPlacementAccountOperators, getProjectList } from '@/api/all/propertyMarketing';
import { PLATFORM_LIST } from '@/utils/platform'; import { PLATFORM_LIST } from '@/utils/platform';
import StatusSelect from '@/views/property-marketing/put-account/components/status-select'; import StatusSelect from '@/views/property-marketing/put-account/components/status-select';

View File

@ -18,14 +18,15 @@
</div> </div>
</div> </div>
<template #footer> <template #footer>
<a-button size="large" @click="close">取消</a-button> <Button size="large" @click="close">取消</Button>
<a-button type="primary" size="large" @click="handleOk"> 去授权 </a-button> <Button type="primary" size="large" @click="handleOk"> 去授权 </Button>
</template> </template>
</a-modal> </a-modal>
</template> </template>
<script setup> <script setup>
import { defineExpose } from 'vue'; import { defineExpose } from 'vue';
import { Button } 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';

Some files were not shown because too many files have changed in this diff Show More