mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-07-12 16:01:35 +08:00
rename components
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import type { PropType, Ref } from 'vue'
|
import type { PropType, Ref } from 'vue'
|
||||||
import { useToast } from 'vue-toast-notification'
|
import { useToast } from 'vue-toast-notification'
|
||||||
import SubscribeEditForm from '../form/SubscribeEditForm.vue'
|
import SubscribeEditDialog from '../dialog/SubscribeEditDialog.vue'
|
||||||
import { formatSeason } from '@/@core/utils/formatters'
|
import { formatSeason } from '@/@core/utils/formatters'
|
||||||
import api from '@/api'
|
import api from '@/api'
|
||||||
import { doneNProgress, startNProgress } from '@/api/nprogress'
|
import { doneNProgress, startNProgress } from '@/api/nprogress'
|
||||||
@@ -592,7 +592,7 @@ function getYear(airDate: string) {
|
|||||||
</VCard>
|
</VCard>
|
||||||
</VBottomSheet>
|
</VBottomSheet>
|
||||||
<!-- 订阅编辑弹窗 -->
|
<!-- 订阅编辑弹窗 -->
|
||||||
<SubscribeEditForm
|
<SubscribeEditDialog
|
||||||
v-if="subscribeEditDialog"
|
v-if="subscribeEditDialog"
|
||||||
v-model="subscribeEditDialog"
|
v-model="subscribeEditDialog"
|
||||||
:subid="subscribeId"
|
:subid="subscribeId"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
import { useToast } from 'vue-toast-notification'
|
import { useToast } from 'vue-toast-notification'
|
||||||
import SiteAddEditForm from '../form/SiteAddEditForm.vue'
|
import SiteAddEditDialog from '../dialog/SiteAddEditDialog.vue'
|
||||||
import SiteTorrentTable from '../table/SiteTorrentTable.vue'
|
import SiteTorrentTable from '../table/SiteTorrentTable.vue'
|
||||||
import { requiredValidator } from '@/@validators'
|
import { requiredValidator } from '@/@validators'
|
||||||
import api from '@/api'
|
import api from '@/api'
|
||||||
@@ -360,7 +360,7 @@ onMounted(() => {
|
|||||||
</VCardActions>
|
</VCardActions>
|
||||||
</VCard>
|
</VCard>
|
||||||
</VDialog>
|
</VDialog>
|
||||||
<SiteAddEditForm
|
<SiteAddEditDialog
|
||||||
v-if="siteEditDialog"
|
v-if="siteEditDialog"
|
||||||
v-model="siteEditDialog"
|
v-model="siteEditDialog"
|
||||||
:siteid="cardProps.site?.id"
|
:siteid="cardProps.site?.id"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang='ts' setup>
|
<script lang='ts' setup>
|
||||||
import { useToast } from 'vue-toast-notification'
|
import { useToast } from 'vue-toast-notification'
|
||||||
import SubscribeEditForm from '../form/SubscribeEditForm.vue'
|
import SubscribeEditDialog from '../dialog/SubscribeEditDialog.vue'
|
||||||
import { calculateTimeDifference } from '@/@core/utils'
|
import { calculateTimeDifference } from '@/@core/utils'
|
||||||
import { formatSeason } from '@/@core/utils/formatters'
|
import { formatSeason } from '@/@core/utils/formatters'
|
||||||
import api from '@/api'
|
import api from '@/api'
|
||||||
@@ -284,7 +284,7 @@ const dropdownItems = ref([
|
|||||||
/>
|
/>
|
||||||
</VCard>
|
</VCard>
|
||||||
<!-- 订阅编辑弹窗 -->
|
<!-- 订阅编辑弹窗 -->
|
||||||
<SubscribeEditForm
|
<SubscribeEditDialog
|
||||||
v-if="subscribeEditDialog"
|
v-if="subscribeEditDialog"
|
||||||
v-model="subscribeEditDialog"
|
v-model="subscribeEditDialog"
|
||||||
:subid="props.media?.id"
|
:subid="props.media?.id"
|
||||||
|
|||||||
203
src/components/dialog/SubscribeHistoryDialog.vue
Normal file
203
src/components/dialog/SubscribeHistoryDialog.vue
Normal file
@@ -0,0 +1,203 @@
|
|||||||
|
<script lang="ts" setup>
|
||||||
|
import api from '@/api';
|
||||||
|
import { Subscribe } from '@/api/types';
|
||||||
|
import { formatDateDifference } from '@core/utils/formatters'
|
||||||
|
|
||||||
|
// 输入参数
|
||||||
|
const props = defineProps({
|
||||||
|
type: String,
|
||||||
|
})
|
||||||
|
|
||||||
|
// 定义触发的自定义事件
|
||||||
|
const emit = defineEmits(['close'])
|
||||||
|
|
||||||
|
// 订阅历史列表
|
||||||
|
const historyList = ref<Subscribe[]>([])
|
||||||
|
|
||||||
|
// 当前加载数据
|
||||||
|
const currData = ref<Subscribe[]>([])
|
||||||
|
|
||||||
|
// 当前页
|
||||||
|
const currentPage = ref(1)
|
||||||
|
|
||||||
|
// 每页数量
|
||||||
|
const pageSize = ref(30)
|
||||||
|
|
||||||
|
// 是否加载中
|
||||||
|
const loading = ref(false)
|
||||||
|
|
||||||
|
// 是否加载完成
|
||||||
|
const isRefreshed = ref(false)
|
||||||
|
|
||||||
|
// 调用API查询列表
|
||||||
|
async function loadHistory({ done }: { done: any }) {
|
||||||
|
// 如果正在加载中,直接返回
|
||||||
|
if (loading.value) {
|
||||||
|
done('ok')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置加载中
|
||||||
|
loading.value = true
|
||||||
|
|
||||||
|
// 调用API查询列表
|
||||||
|
try {
|
||||||
|
currData.value = await api.get(`subscribe/history/${props.type}`, {
|
||||||
|
params: {
|
||||||
|
page: currentPage.value,
|
||||||
|
count: pageSize.value,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
// 标计为已请求完成
|
||||||
|
isRefreshed.value = true
|
||||||
|
if (currData.value.length === 0) {
|
||||||
|
// 如果没有数据,跳出
|
||||||
|
done('ok')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 合并数据
|
||||||
|
historyList.value = [...historyList.value, ...currData.value]
|
||||||
|
// 页码+1
|
||||||
|
currentPage.value++
|
||||||
|
// 取消加载中
|
||||||
|
loading.value = false
|
||||||
|
// 返回加载成功
|
||||||
|
done('ok')
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e)
|
||||||
|
// 返回加载失败
|
||||||
|
done('error')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重新订阅
|
||||||
|
function reSubscribe(item: Subscribe) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除记录
|
||||||
|
function deleteHistory(item: Subscribe) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 弹出菜单
|
||||||
|
const dropdownItems = ref([
|
||||||
|
{
|
||||||
|
title: '重新订阅',
|
||||||
|
value: 1,
|
||||||
|
color: '',
|
||||||
|
props: {
|
||||||
|
prependIcon: 'mdi-redo',
|
||||||
|
click: reSubscribe,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '删除',
|
||||||
|
value: 2,
|
||||||
|
color: 'error',
|
||||||
|
props: {
|
||||||
|
prependIcon: 'mdi-delete',
|
||||||
|
click: deleteHistory,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<VDialog
|
||||||
|
scrollable
|
||||||
|
max-width="50rem"
|
||||||
|
>
|
||||||
|
<VCard
|
||||||
|
class="mx-auto"
|
||||||
|
width="100%"
|
||||||
|
:title = "props.type + '订阅历史'"
|
||||||
|
>
|
||||||
|
<DialogCloseBtn @click="() => { emit('close') }" />
|
||||||
|
<VList
|
||||||
|
lines="two"
|
||||||
|
>
|
||||||
|
<VInfiniteScroll
|
||||||
|
mode="intersect"
|
||||||
|
side="end"
|
||||||
|
:items="historyList"
|
||||||
|
class="overflow-hidden"
|
||||||
|
@load="loadHistory"
|
||||||
|
>
|
||||||
|
<template #loading>
|
||||||
|
<div
|
||||||
|
v-if="!isRefreshed"
|
||||||
|
class="w-full text-center text-gray-500 text-sm flex flex-col items-center"
|
||||||
|
>
|
||||||
|
<VProgressCircular
|
||||||
|
size="48"
|
||||||
|
indeterminate
|
||||||
|
color="primary"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-for="(item, i) in historyList" :key="i">
|
||||||
|
<VListItem>
|
||||||
|
<template #prepend>
|
||||||
|
<VImg
|
||||||
|
height="75"
|
||||||
|
width="50"
|
||||||
|
:src="item.poster"
|
||||||
|
aspect-ratio="2/3"
|
||||||
|
class="object-cover rounded shadow ring-gray-500 me-3"
|
||||||
|
cover
|
||||||
|
>
|
||||||
|
<template #placeholder>
|
||||||
|
<div class="w-full h-full">
|
||||||
|
<VSkeletonLoader class="object-cover aspect-w-2 aspect-h-3" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</VImg>
|
||||||
|
</template>
|
||||||
|
<VListItemTitle v-if="item.type == '电视剧'">
|
||||||
|
{{ item.name }} <span class="text-sm">第 {{ item.season }} 季</span>
|
||||||
|
</VListItemTitle>
|
||||||
|
<VListItemTitle v-else>
|
||||||
|
{{ item.name }}
|
||||||
|
</VListItemTitle>
|
||||||
|
<VListItemSubtitle class="mt-2">{{ formatDateDifference(item.date) }}</VListItemSubtitle>
|
||||||
|
<VListItemSubtitle class="mt-2">{{ item.description }}</VListItemSubtitle>
|
||||||
|
<template #append>
|
||||||
|
<div class="me-n3">
|
||||||
|
<IconBtn>
|
||||||
|
<VIcon
|
||||||
|
icon="mdi-dots-vertical"
|
||||||
|
/>
|
||||||
|
<VMenu
|
||||||
|
activator="parent"
|
||||||
|
close-on-content-click
|
||||||
|
>
|
||||||
|
<VList>
|
||||||
|
<VListItem
|
||||||
|
v-for="(item, i) in dropdownItems"
|
||||||
|
:key="i"
|
||||||
|
variant="plain"
|
||||||
|
:base-color="item.color"
|
||||||
|
@click="item.props.click"
|
||||||
|
>
|
||||||
|
<template #prepend>
|
||||||
|
<VIcon :icon="item.props.prependIcon" />
|
||||||
|
</template>
|
||||||
|
<VListItemTitle v-text="item.title" />
|
||||||
|
</VListItem>
|
||||||
|
</VList>
|
||||||
|
</VMenu>
|
||||||
|
</IconBtn>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</VListItem>
|
||||||
|
</template>
|
||||||
|
<VCardText v-if="historyList.length == 0 && isRefreshed" class="text-center">
|
||||||
|
没有数据
|
||||||
|
</VCardText>
|
||||||
|
</VInfiniteScroll>
|
||||||
|
</VList>
|
||||||
|
</VCard>
|
||||||
|
</VDialog>
|
||||||
|
</template>
|
||||||
@@ -4,7 +4,7 @@ import type { PropType } from 'vue'
|
|||||||
import { useConfirm } from 'vuetify-use-dialog'
|
import { useConfirm } from 'vuetify-use-dialog'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import { useToast } from 'vue-toast-notification'
|
import { useToast } from 'vue-toast-notification'
|
||||||
import ReorganizeForm from '../form/ReorganizeForm.vue'
|
import ReorganizeDialog from '../dialog/ReorganizeDialog.vue'
|
||||||
import { formatBytes } from '@core/utils/formatters'
|
import { formatBytes } from '@core/utils/formatters'
|
||||||
import type { Context, EndPoints, FileItem } from '@/api/types'
|
import type { Context, EndPoints, FileItem } from '@/api/types'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
@@ -535,7 +535,7 @@ onMounted(() => {
|
|||||||
</VCard>
|
</VCard>
|
||||||
</VDialog>
|
</VDialog>
|
||||||
<!-- 文件整理弹窗 -->
|
<!-- 文件整理弹窗 -->
|
||||||
<ReorganizeForm
|
<ReorganizeDialog
|
||||||
v-if="transferPopper"
|
v-if="transferPopper"
|
||||||
v-model="transferPopper"
|
v-model="transferPopper"
|
||||||
:path="currentItem?.path"
|
:path="currentItem?.path"
|
||||||
|
|||||||
@@ -1,203 +0,0 @@
|
|||||||
<script lang="ts" setup>
|
|
||||||
import api from '@/api';
|
|
||||||
import { Subscribe } from '@/api/types';
|
|
||||||
import { formatDateDifference } from '@core/utils/formatters'
|
|
||||||
|
|
||||||
// 输入参数
|
|
||||||
const props = defineProps({
|
|
||||||
type: String,
|
|
||||||
})
|
|
||||||
|
|
||||||
// 定义触发的自定义事件
|
|
||||||
const emit = defineEmits(['close'])
|
|
||||||
|
|
||||||
// 订阅历史列表
|
|
||||||
const historyList = ref<Subscribe[]>([])
|
|
||||||
|
|
||||||
// 当前加载数据
|
|
||||||
const currData = ref<Subscribe[]>([])
|
|
||||||
|
|
||||||
// 当前页
|
|
||||||
const currentPage = ref(1)
|
|
||||||
|
|
||||||
// 每页数量
|
|
||||||
const pageSize = ref(30)
|
|
||||||
|
|
||||||
// 是否加载中
|
|
||||||
const loading = ref(false)
|
|
||||||
|
|
||||||
// 是否加载完成
|
|
||||||
const isRefreshed = ref(false)
|
|
||||||
|
|
||||||
// 调用API查询列表
|
|
||||||
async function loadHistory({ done }: { done: any }) {
|
|
||||||
// 如果正在加载中,直接返回
|
|
||||||
if (loading.value) {
|
|
||||||
done('ok')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// 设置加载中
|
|
||||||
loading.value = true
|
|
||||||
|
|
||||||
// 调用API查询列表
|
|
||||||
try {
|
|
||||||
currData.value = await api.get(`subscribe/history/${props.type}`, {
|
|
||||||
params: {
|
|
||||||
page: currentPage.value,
|
|
||||||
count: pageSize.value,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
// 标计为已请求完成
|
|
||||||
isRefreshed.value = true
|
|
||||||
if (currData.value.length === 0) {
|
|
||||||
// 如果没有数据,跳出
|
|
||||||
done('ok')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
// 合并数据
|
|
||||||
historyList.value = [...historyList.value, ...currData.value]
|
|
||||||
// 页码+1
|
|
||||||
currentPage.value++
|
|
||||||
// 取消加载中
|
|
||||||
loading.value = false
|
|
||||||
// 返回加载成功
|
|
||||||
done('ok')
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e)
|
|
||||||
// 返回加载失败
|
|
||||||
done('error')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 重新订阅
|
|
||||||
function reSubscribe(item: Subscribe) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除记录
|
|
||||||
function deleteHistory(item: Subscribe) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// 弹出菜单
|
|
||||||
const dropdownItems = ref([
|
|
||||||
{
|
|
||||||
title: '重新订阅',
|
|
||||||
value: 1,
|
|
||||||
color: '',
|
|
||||||
props: {
|
|
||||||
prependIcon: 'mdi-redo',
|
|
||||||
click: reSubscribe,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '删除',
|
|
||||||
value: 2,
|
|
||||||
color: 'error',
|
|
||||||
props: {
|
|
||||||
prependIcon: 'mdi-delete',
|
|
||||||
click: deleteHistory,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
])
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<VDialog
|
|
||||||
scrollable
|
|
||||||
max-width="50rem"
|
|
||||||
>
|
|
||||||
<VCard
|
|
||||||
class="mx-auto"
|
|
||||||
width="100%"
|
|
||||||
:title = "props.type + '订阅历史'"
|
|
||||||
>
|
|
||||||
<DialogCloseBtn @click="() => { emit('close') }" />
|
|
||||||
<div
|
|
||||||
v-if="!isRefreshed"
|
|
||||||
class="mt-12 w-full text-center text-gray-500 text-sm flex flex-col items-center"
|
|
||||||
>
|
|
||||||
<VProgressCircular
|
|
||||||
size="48"
|
|
||||||
indeterminate
|
|
||||||
color="primary"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<VList
|
|
||||||
lines="two"
|
|
||||||
>
|
|
||||||
<VInfiniteScroll
|
|
||||||
v-if="historyList.length > 0"
|
|
||||||
mode="intersect"
|
|
||||||
side="end"
|
|
||||||
:items="historyList"
|
|
||||||
class="overflow-hidden"
|
|
||||||
@load="loadHistory"
|
|
||||||
>
|
|
||||||
<template #loading />
|
|
||||||
<template v-for="(item, i) in historyList" :key="i">
|
|
||||||
<VListItem>
|
|
||||||
<template #prepend>
|
|
||||||
<VImg
|
|
||||||
height="75"
|
|
||||||
width="50"
|
|
||||||
:src="item.poster"
|
|
||||||
aspect-ratio="2/3"
|
|
||||||
class="object-cover rounded shadow ring-gray-500 me-3"
|
|
||||||
cover
|
|
||||||
>
|
|
||||||
<template #placeholder>
|
|
||||||
<div class="w-full h-full">
|
|
||||||
<VSkeletonLoader class="object-cover aspect-w-2 aspect-h-3" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</VImg>
|
|
||||||
</template>
|
|
||||||
<VListItemTitle v-if="item.type == '电视剧'">
|
|
||||||
{{ item.name }} <span class="text-sm">第 {{ item.season }} 季</span>
|
|
||||||
</VListItemTitle>
|
|
||||||
<VListItemTitle v-else>
|
|
||||||
{{ item.name }}
|
|
||||||
</VListItemTitle>
|
|
||||||
<VListItemSubtitle class="mt-2">{{ formatDateDifference(item.date) }}</VListItemSubtitle>
|
|
||||||
<VListItemSubtitle class="mt-2">{{ item.description }}</VListItemSubtitle>
|
|
||||||
<template #append>
|
|
||||||
<div class="me-n3">
|
|
||||||
<IconBtn>
|
|
||||||
<VIcon
|
|
||||||
icon="mdi-dots-vertical"
|
|
||||||
/>
|
|
||||||
<VMenu
|
|
||||||
activator="parent"
|
|
||||||
close-on-content-click
|
|
||||||
>
|
|
||||||
<VList>
|
|
||||||
<VListItem
|
|
||||||
v-for="(item, i) in dropdownItems"
|
|
||||||
:key="i"
|
|
||||||
variant="plain"
|
|
||||||
:base-color="item.color"
|
|
||||||
@click="item.props.click"
|
|
||||||
>
|
|
||||||
<template #prepend>
|
|
||||||
<VIcon :icon="item.props.prependIcon" />
|
|
||||||
</template>
|
|
||||||
<VListItemTitle v-text="item.title" />
|
|
||||||
</VListItem>
|
|
||||||
</VList>
|
|
||||||
</VMenu>
|
|
||||||
</IconBtn>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</VListItem>
|
|
||||||
</template>
|
|
||||||
</VInfiniteScroll>
|
|
||||||
</VList>
|
|
||||||
<VCardText v-if="historyList.length == 0 && isRefreshed" class="text-center">
|
|
||||||
没有数据
|
|
||||||
</VCardText>
|
|
||||||
</VCard>
|
|
||||||
</VDialog>
|
|
||||||
</template>
|
|
||||||
@@ -8,7 +8,7 @@ import NoDataFound from '@/components/NoDataFound.vue'
|
|||||||
import { doneNProgress, startNProgress } from '@/api/nprogress'
|
import { doneNProgress, startNProgress } from '@/api/nprogress'
|
||||||
import { formatSeason } from '@/@core/utils/formatters'
|
import { formatSeason } from '@/@core/utils/formatters'
|
||||||
import router from '@/router'
|
import router from '@/router'
|
||||||
import SubscribeEditForm from '@/components/form/SubscribeEditForm.vue'
|
import SubscribeEditDialog from '@/components/dialog/SubscribeEditDialog.vue'
|
||||||
|
|
||||||
// 输入参数
|
// 输入参数
|
||||||
const mediaProps = defineProps({
|
const mediaProps = defineProps({
|
||||||
@@ -849,7 +849,7 @@ onBeforeMount(() => {
|
|||||||
error-description="未识别到媒体信息。"
|
error-description="未识别到媒体信息。"
|
||||||
/>
|
/>
|
||||||
<!-- 订阅编辑弹窗 -->
|
<!-- 订阅编辑弹窗 -->
|
||||||
<SubscribeEditForm
|
<SubscribeEditDialog
|
||||||
v-model="subscribeEditDialog"
|
v-model="subscribeEditDialog"
|
||||||
:subid="subscribeId"
|
:subid="subscribeId"
|
||||||
@close="subscribeEditDialog = false"
|
@close="subscribeEditDialog = false"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { ref, unref } from 'vue'
|
|||||||
import { useToast } from 'vue-toast-notification'
|
import { useToast } from 'vue-toast-notification'
|
||||||
import api from '@/api'
|
import api from '@/api'
|
||||||
import type { TransferHistory } from '@/api/types'
|
import type { TransferHistory } from '@/api/types'
|
||||||
import ReorganizeForm from '@/components/form/ReorganizeForm.vue'
|
import ReorganizeDialog from '@/components/dialog/ReorganizeDialog.vue'
|
||||||
|
|
||||||
// 提示框
|
// 提示框
|
||||||
const $toast = useToast()
|
const $toast = useToast()
|
||||||
@@ -482,7 +482,7 @@ onMounted(fetchData)
|
|||||||
</VCard>
|
</VCard>
|
||||||
</VBottomSheet>
|
</VBottomSheet>
|
||||||
<!-- 文件整理弹窗 -->
|
<!-- 文件整理弹窗 -->
|
||||||
<ReorganizeForm
|
<ReorganizeDialog
|
||||||
v-if="redoDialog"
|
v-if="redoDialog"
|
||||||
v-model="redoDialog"
|
v-model="redoDialog"
|
||||||
:logids="redoIds"
|
:logids="redoIds"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import api from '@/api'
|
|||||||
import FilterRuleCard from '@/components/cards/FilterRuleCard.vue'
|
import FilterRuleCard from '@/components/cards/FilterRuleCard.vue'
|
||||||
import type { Site } from '@/api/types'
|
import type { Site } from '@/api/types'
|
||||||
import { copyToClipboard } from '@/@core/utils/navigator'
|
import { copyToClipboard } from '@/@core/utils/navigator'
|
||||||
import ImportCodeForm from '@/components/form/ImportCodeForm.vue'
|
import ImportCodeDialog from '@/components/dialog/ImportCodeDialog.vue'
|
||||||
|
|
||||||
// 规则卡片类型
|
// 规则卡片类型
|
||||||
interface FilterCard {
|
interface FilterCard {
|
||||||
@@ -420,7 +420,7 @@ onMounted(() => {
|
|||||||
width="60rem"
|
width="60rem"
|
||||||
scrollable
|
scrollable
|
||||||
>
|
>
|
||||||
<ImportCodeForm
|
<ImportCodeDialog
|
||||||
v-model="importCodeString"
|
v-model="importCodeString"
|
||||||
title="导入优先级规则"
|
title="导入优先级规则"
|
||||||
@close="importCodeDialog = false"
|
@close="importCodeDialog = false"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import api from '@/api'
|
|||||||
import FilterRuleCard from '@/components/cards/FilterRuleCard.vue'
|
import FilterRuleCard from '@/components/cards/FilterRuleCard.vue'
|
||||||
import type { Site } from '@/api/types'
|
import type { Site } from '@/api/types'
|
||||||
import { copyToClipboard } from '@/@core/utils/navigator'
|
import { copyToClipboard } from '@/@core/utils/navigator'
|
||||||
import ImportCodeForm from '@/components/form/ImportCodeForm.vue'
|
import ImportCodeDialog from '@/components/dialog/ImportCodeDialog.vue'
|
||||||
|
|
||||||
// 规则卡片类型
|
// 规则卡片类型
|
||||||
interface FilterCard {
|
interface FilterCard {
|
||||||
@@ -648,7 +648,7 @@ onMounted(() => {
|
|||||||
width="60rem"
|
width="60rem"
|
||||||
scrollable
|
scrollable
|
||||||
>
|
>
|
||||||
<ImportCodeForm
|
<ImportCodeDialog
|
||||||
v-model="importCodeString"
|
v-model="importCodeString"
|
||||||
title="导入优先级规则"
|
title="导入优先级规则"
|
||||||
@close="importCodeDialog = false"
|
@close="importCodeDialog = false"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import api from '@/api'
|
|||||||
import type { Site } from '@/api/types'
|
import type { Site } from '@/api/types'
|
||||||
import SiteCard from '@/components/cards/SiteCard.vue'
|
import SiteCard from '@/components/cards/SiteCard.vue'
|
||||||
import NoDataFound from '@/components/NoDataFound.vue'
|
import NoDataFound from '@/components/NoDataFound.vue'
|
||||||
import SiteAddEditForm from '@/components/form/SiteAddEditForm.vue'
|
import SiteAddEditDialog from '@/components/dialog/SiteAddEditDialog.vue'
|
||||||
import { useDefer } from '@/@core/utils/dom'
|
import { useDefer } from '@/@core/utils/dom'
|
||||||
|
|
||||||
// 数据列表
|
// 数据列表
|
||||||
@@ -80,7 +80,7 @@ onBeforeMount(fetchData)
|
|||||||
@click="siteAddDialog = true"
|
@click="siteAddDialog = true"
|
||||||
/>
|
/>
|
||||||
<!-- 新增站点弹窗 -->
|
<!-- 新增站点弹窗 -->
|
||||||
<SiteAddEditForm
|
<SiteAddEditDialog
|
||||||
v-if="siteAddDialog"
|
v-if="siteAddDialog"
|
||||||
v-model="siteAddDialog"
|
v-model="siteAddDialog"
|
||||||
oper="add"
|
oper="add"
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import api from '@/api'
|
|||||||
import type { Subscribe } from '@/api/types'
|
import type { Subscribe } from '@/api/types'
|
||||||
import NoDataFound from '@/components/NoDataFound.vue'
|
import NoDataFound from '@/components/NoDataFound.vue'
|
||||||
import SubscribeCard from '@/components/cards/SubscribeCard.vue'
|
import SubscribeCard from '@/components/cards/SubscribeCard.vue'
|
||||||
import SubscribeEditForm from '@/components/form/SubscribeEditForm.vue'
|
import SubscribeEditDialog from '@/components/dialog/SubscribeEditDialog.vue'
|
||||||
import SubscribeHistory from '@/components/misc/SubscribeHistory.vue'
|
import SubscribeHistoryDialog from '@/components/dialog/SubscribeHistoryDialog.vue'
|
||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
|
|
||||||
// 输入参数
|
// 输入参数
|
||||||
@@ -118,7 +118,7 @@ const filteredDataList = computed(() => {
|
|||||||
@click="historyDialog = true"
|
@click="historyDialog = true"
|
||||||
/>
|
/>
|
||||||
<!-- 订阅编辑弹窗 -->
|
<!-- 订阅编辑弹窗 -->
|
||||||
<SubscribeEditForm
|
<SubscribeEditDialog
|
||||||
v-if="subscribeEditDialog"
|
v-if="subscribeEditDialog"
|
||||||
v-model="subscribeEditDialog"
|
v-model="subscribeEditDialog"
|
||||||
:default="true"
|
:default="true"
|
||||||
@@ -127,7 +127,7 @@ const filteredDataList = computed(() => {
|
|||||||
@close="subscribeEditDialog = false"
|
@close="subscribeEditDialog = false"
|
||||||
/>
|
/>
|
||||||
<!-- 历史记录弹窗 -->
|
<!-- 历史记录弹窗 -->
|
||||||
<SubscribeHistory
|
<SubscribeHistoryDialog
|
||||||
v-if="historyDialog"
|
v-if="historyDialog"
|
||||||
v-model="historyDialog"
|
v-model="historyDialog"
|
||||||
:type="props.type"
|
:type="props.type"
|
||||||
|
|||||||
Reference in New Issue
Block a user