feat: button组件替换
This commit is contained in:
@ -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>
|
||||||
|
|||||||
@ -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>
|
||||||
|
</Modal>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts"></script>
|
<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>
|
||||||
|
|||||||
@ -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 {
|
||||||
|
|||||||
@ -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}
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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 {
|
||||||
|
|||||||
@ -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: {
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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([]);
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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,19 +23,20 @@
|
|||||||
</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" >
|
||||||
<div v-if="canAddAccount" class="add-account-container">
|
<div v-if="canAddAccount" class="add-account-container">
|
||||||
<h2 class="add-account-title">生成企业专属链接,成员通过访问即可注册并加入企业账号。</h2>
|
<h2 class="add-account-title">生成企业专属链接,成员通过访问即可注册并加入企业账号。</h2>
|
||||||
<p class="add-account-subtitle">子账号可独立登录,权限继承主账号配置。</p>
|
<p class="add-account-subtitle">子账号可独立登录,权限继承主账号配置。</p>
|
||||||
@ -53,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;
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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>
|
|
||||||
@ -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>
|
|
||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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']);
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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()}
|
||||||
|
|||||||
@ -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: () => '上传内容稿件',
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
@ -148,7 +155,7 @@ import icon2 from '@/assets/img/creative-generation-workshop/icon-photo.png';
|
|||||||
import icon3 from '@/assets/img/creative-generation-workshop/icon-video.png';
|
import icon3 from '@/assets/img/creative-generation-workshop/icon-video.png';
|
||||||
import icon4 from '@/assets/img/error-img.png';
|
import icon4 from '@/assets/img/error-img.png';
|
||||||
|
|
||||||
const emits = defineEmits([ 'sorterChange', 'delete', 'select', 'selectAll']);
|
const emits = defineEmits(['sorterChange', 'delete', 'select', 'selectAll']);
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|||||||
@ -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) => {
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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>
|
||||||
|
|
||||||
|
|||||||
@ -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',
|
||||||
|
|||||||
@ -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>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -67,7 +67,7 @@ export const TABLE_COLUMNS = [
|
|||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
dataIndex: 'operation',
|
dataIndex: 'operation',
|
||||||
width: 180,
|
width: 200,
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|||||||
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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}
|
||||||
@ -311,7 +313,7 @@ export default {
|
|||||||
>
|
>
|
||||||
{renderFooterRow()}
|
{renderFooterRow()}
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<CancelUploadModal ref={cancelUploadModal} />
|
<CancelUploadModal ref={cancelUploadModal} />
|
||||||
<UploadSuccessModal ref={uploadSuccessModal} />
|
<UploadSuccessModal ref={uploadSuccessModal} />
|
||||||
</>
|
</>
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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: {
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
@ -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({
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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']);
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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']);
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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>
|
||||||
@ -120,7 +120,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref, provide } from 'vue';
|
import { ref, provide } from 'vue';
|
||||||
import { Notification } from '@arco-design/web-vue';
|
import { Notification } from '@arco-design/web-vue';
|
||||||
import {Checkbox, Button} from 'ant-design-vue';
|
import { Checkbox, Button } from 'ant-design-vue';
|
||||||
|
|
||||||
import FilterBlock from './components/filter-block';
|
import FilterBlock from './components/filter-block';
|
||||||
import AccountTable from './components/account-table';
|
import AccountTable from './components/account-table';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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: {
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="account-dashboard-wrap">
|
<div class="account-dashboard-wrap">
|
||||||
<div class="filter-wrap bg-#fff rounded-8px pb-24px mb-16px">
|
<div class="filter-wrap bg-#fff rounded-8px pb-24px mb-16px">
|
||||||
<a-tabs v-model:activeKey="accountType" @tab-click="handleTabClick">
|
<a-tabs v-model:activeKey="accountType" @tab-click="handleTabClick">
|
||||||
<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>
|
||||||
@ -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,
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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']);
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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';
|
||||||
|
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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 {
|
||||||
|
|||||||
@ -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';
|
||||||
|
|||||||
@ -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
Reference in New Issue
Block a user