mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-05 23:56:42 +08:00
Merge pull request #92 from thsrite/main
This commit is contained in:
@@ -7,6 +7,8 @@ import type { Site, Subscribe } from '@/api/types'
|
|||||||
// 输入参数
|
// 输入参数
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
subid: Number,
|
subid: Number,
|
||||||
|
default_config: Boolean,
|
||||||
|
type: String,
|
||||||
})
|
})
|
||||||
|
|
||||||
// 定义触发的自定义事件
|
// 定义触发的自定义事件
|
||||||
@@ -63,6 +65,51 @@ async function updateSubscribeInfo() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 设置用户设置的默认订阅规则
|
||||||
|
async function saveDefaultSubscribeConfig() {
|
||||||
|
try {
|
||||||
|
let subscribe_config_url = ""
|
||||||
|
if (props.type == "电影") {
|
||||||
|
subscribe_config_url = 'system/setting/DefaultMovieSubscribeConfig'
|
||||||
|
} else {
|
||||||
|
subscribe_config_url = 'system/setting/DefaultTvSubscribeConfig'
|
||||||
|
}
|
||||||
|
const result: { [key: string]: any } = await api.post(
|
||||||
|
subscribe_config_url,
|
||||||
|
subscribeForm.value)
|
||||||
|
if (result.success) {
|
||||||
|
$toast.success(props.type + '订阅默认规则保存成功')
|
||||||
|
} else {
|
||||||
|
$toast.error(props.type + '订阅默认规则保存失败!')
|
||||||
|
}
|
||||||
|
// 通知父组件刷新
|
||||||
|
emit('default_config')
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询用户设置的默认订阅规则
|
||||||
|
async function queryDefaultSubscribeConfig() {
|
||||||
|
try {
|
||||||
|
let subscribe_config_url = ""
|
||||||
|
if (props.type == "电影") {
|
||||||
|
subscribe_config_url = 'system/setting/DefaultMovieSubscribeConfig'
|
||||||
|
} else {
|
||||||
|
subscribe_config_url = 'system/setting/DefaultTvSubscribeConfig'
|
||||||
|
}
|
||||||
|
const result: { [key: string]: any } = await api.get(subscribe_config_url)
|
||||||
|
|
||||||
|
if (result.data.value) {
|
||||||
|
subscribeForm.value = result.data?.value ?? ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
console.log(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 获取站点列表数据
|
// 获取站点列表数据
|
||||||
async function loadSites() {
|
async function loadSites() {
|
||||||
try {
|
try {
|
||||||
@@ -213,6 +260,9 @@ watchEffect(() => {
|
|||||||
getSiteList()
|
getSiteList()
|
||||||
getSubscribeInfo()
|
getSubscribeInfo()
|
||||||
}
|
}
|
||||||
|
if (props.default_config) {
|
||||||
|
queryDefaultSubscribeConfig()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -222,7 +272,7 @@ watchEffect(() => {
|
|||||||
max-width="60rem"
|
max-width="60rem"
|
||||||
>
|
>
|
||||||
<VCard
|
<VCard
|
||||||
:title="`编辑订阅 - ${subscribeForm.name} ${subscribeForm.season ? `第 ${subscribeForm.season} 季` : ''}`"
|
:title="`${props.default_config ? `设置${props.type}默认订阅规则` : `编辑订阅 - ${subscribeForm.name} ${subscribeForm.season ? `第 ${subscribeForm.season} 季` : ''}`}`"
|
||||||
class="rounded-t"
|
class="rounded-t"
|
||||||
>
|
>
|
||||||
<VCardText class="pt-2">
|
<VCardText class="pt-2">
|
||||||
@@ -234,6 +284,7 @@ watchEffect(() => {
|
|||||||
md="8"
|
md="8"
|
||||||
>
|
>
|
||||||
<VTextField
|
<VTextField
|
||||||
|
v-if="!props.default_config"
|
||||||
v-model="subscribeForm.keyword"
|
v-model="subscribeForm.keyword"
|
||||||
label="搜索关键词"
|
label="搜索关键词"
|
||||||
hint="设定搜索关键词后,将使用此关键词搜索站点资源,否则自动使用themoviedb中的名称搜索"
|
hint="设定搜索关键词后,将使用此关键词搜索站点资源,否则自动使用themoviedb中的名称搜索"
|
||||||
@@ -368,13 +419,13 @@ watchEffect(() => {
|
|||||||
</VCardText>
|
</VCardText>
|
||||||
|
|
||||||
<VCardActions>
|
<VCardActions>
|
||||||
<VBtn color="error" @click="removeSubscribe">
|
<VBtn v-if="!props.default_config" color="error" @click="removeSubscribe">
|
||||||
取消订阅
|
取消订阅
|
||||||
</VBtn>
|
</VBtn>
|
||||||
<VSpacer />
|
<VSpacer />
|
||||||
<VBtn
|
<VBtn
|
||||||
variant="tonal"
|
variant="tonal"
|
||||||
@click="updateSubscribeInfo"
|
@click="`${props.default_config ? saveDefaultSubscribeConfig() : updateSubscribeInfo()}`"
|
||||||
>
|
>
|
||||||
保存
|
保存
|
||||||
</VBtn>
|
</VBtn>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ 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 store from '@/store'
|
import store from '@/store'
|
||||||
|
|
||||||
// 输入参数
|
// 输入参数
|
||||||
@@ -17,6 +18,12 @@ const isRefreshed = ref(false)
|
|||||||
// 数据列表
|
// 数据列表
|
||||||
const dataList = ref<Subscribe[]>([])
|
const dataList = ref<Subscribe[]>([])
|
||||||
|
|
||||||
|
// 定义触发的自定义事件
|
||||||
|
const emit = defineEmits(['default_config'])
|
||||||
|
|
||||||
|
// 弹窗
|
||||||
|
const subscribeEditDialog = ref(false)
|
||||||
|
|
||||||
// 获取订阅列表数据
|
// 获取订阅列表数据
|
||||||
async function fetchData() {
|
async function fetchData() {
|
||||||
try {
|
try {
|
||||||
@@ -88,6 +95,18 @@ const filteredDataList = computed(() => {
|
|||||||
error-description="请通过搜索添加电影、电视剧订阅。"
|
error-description="请通过搜索添加电影、电视剧订阅。"
|
||||||
/>
|
/>
|
||||||
</PullRefresh>
|
</PullRefresh>
|
||||||
|
<!-- 底部操作按钮 -->
|
||||||
|
<span class="fixed right-5 bottom-5">
|
||||||
|
<VBtn icon="mdi-view-dashboard-edit" class="me-2" color="primary" size="x-large" @click="subscribeEditDialog = true" />
|
||||||
|
</span>
|
||||||
|
<!-- 订阅编辑弹窗 -->
|
||||||
|
<SubscribeEditForm
|
||||||
|
v-model="subscribeEditDialog"
|
||||||
|
:default_config=true
|
||||||
|
:type=props.type
|
||||||
|
@default_config="() => { emit('default_config');subscribeEditDialog = false; }"
|
||||||
|
@close="subscribeEditDialog = false"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|||||||
Reference in New Issue
Block a user