Merge pull request #92 from thsrite/main

This commit is contained in:
jxxghp
2024-04-01 19:10:57 +08:00
committed by GitHub
2 changed files with 73 additions and 3 deletions

View File

@@ -7,6 +7,8 @@ import type { Site, Subscribe } from '@/api/types'
// 输入参数
const props = defineProps({
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() {
try {
@@ -213,6 +260,9 @@ watchEffect(() => {
getSiteList()
getSubscribeInfo()
}
if (props.default_config) {
queryDefaultSubscribeConfig()
}
})
</script>
@@ -222,7 +272,7 @@ watchEffect(() => {
max-width="60rem"
>
<VCard
:title="`编辑订阅 - ${subscribeForm.name} ${subscribeForm.season ? `第 ${subscribeForm.season} 季` : ''}`"
:title="`${props.default_config ? `设置${props.type}默认订阅规则` : `编辑订阅 - ${subscribeForm.name} ${subscribeForm.season ? `第 ${subscribeForm.season} 季` : ''}`}`"
class="rounded-t"
>
<VCardText class="pt-2">
@@ -234,6 +284,7 @@ watchEffect(() => {
md="8"
>
<VTextField
v-if="!props.default_config"
v-model="subscribeForm.keyword"
label="搜索关键词"
hint="设定搜索关键词后将使用此关键词搜索站点资源否则自动使用themoviedb中的名称搜索"
@@ -368,13 +419,13 @@ watchEffect(() => {
</VCardText>
<VCardActions>
<VBtn color="error" @click="removeSubscribe">
<VBtn v-if="!props.default_config" color="error" @click="removeSubscribe">
取消订阅
</VBtn>
<VSpacer />
<VBtn
variant="tonal"
@click="updateSubscribeInfo"
@click="`${props.default_config ? saveDefaultSubscribeConfig() : updateSubscribeInfo()}`"
>
保存
</VBtn>

View File

@@ -4,6 +4,7 @@ import api from '@/api'
import type { Subscribe } from '@/api/types'
import NoDataFound from '@/components/NoDataFound.vue'
import SubscribeCard from '@/components/cards/SubscribeCard.vue'
import SubscribeEditForm from '@/components/form/SubscribeEditForm.vue'
import store from '@/store'
// 输入参数
@@ -17,6 +18,12 @@ const isRefreshed = ref(false)
// 数据列表
const dataList = ref<Subscribe[]>([])
// 定义触发的自定义事件
const emit = defineEmits(['default_config'])
// 弹窗
const subscribeEditDialog = ref(false)
// 获取订阅列表数据
async function fetchData() {
try {
@@ -88,6 +95,18 @@ const filteredDataList = computed(() => {
error-description="请通过搜索添加电影电视剧订阅"
/>
</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>
<style lang="scss">