自定义源新增更新弹窗方法
This commit is contained in:
@@ -41,6 +41,7 @@ export default {
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
emits: ['update:modelValue', 'change'],
|
||||
data() {
|
||||
return {
|
||||
bool: false,
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
import { onBeforeUnmount } from '@renderer/utils/vueTools'
|
||||
import { onUserApiStatus, setUserApi, getUserApiList, userApiRequest, userApiRequestCancel } from '@renderer/utils/tools'
|
||||
import { onBeforeUnmount, useI18n } from '@renderer/utils/vueTools'
|
||||
import { onUserApiStatus, setUserApi, getUserApiList, userApiRequest, userApiRequestCancel, onShowUserApiUpdateAlert } from '@renderer/utils/tools'
|
||||
import apiSourceInfo from '@renderer/utils/music/api-source-info'
|
||||
import music from '@renderer/utils/music'
|
||||
import { apiSource, qualityList, userApi } from '@renderer/core/share'
|
||||
import { dialog } from '@renderer/plugins/Dialog'
|
||||
|
||||
|
||||
export default ({ setting }) => {
|
||||
const { t } = useI18n()
|
||||
|
||||
if (/^user_api/.test(setting.value.apiSource)) {
|
||||
setUserApi(setting.value.apiSource)
|
||||
} else {
|
||||
qualityList.value = music.supportQuality[setting.value.apiSource]
|
||||
}
|
||||
|
||||
const rUserApiStatus = onUserApiStatus(({ status, message, apiInfo }) => {
|
||||
const rUserApiStatus = onUserApiStatus((event, { status, message, apiInfo }) => {
|
||||
userApi.status = status
|
||||
userApi.message = message
|
||||
|
||||
@@ -66,8 +69,16 @@ export default ({ setting }) => {
|
||||
}
|
||||
})
|
||||
|
||||
const rUserApiShowUpdateAlert = onShowUserApiUpdateAlert((event, { name, message }) => {
|
||||
dialog({
|
||||
message: `${t('user_api__update_alert', { name })}\n${message}`,
|
||||
confirmButtonText: t('ok'),
|
||||
})
|
||||
})
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
rUserApiStatus()
|
||||
rUserApiShowUpdateAlert()
|
||||
})
|
||||
|
||||
return () => {
|
||||
|
||||
@@ -13,6 +13,17 @@ export const setUserApi = source => {
|
||||
})
|
||||
}
|
||||
|
||||
export const onShowUserApiUpdateAlert = callback => {
|
||||
rendererOn(NAMES.mainWindow.user_api_show_update_alert, callback)
|
||||
return () => {
|
||||
rendererOff(callback)
|
||||
}
|
||||
}
|
||||
|
||||
export const setAllowShowUserApiUpdateAlert = (id, enable) => {
|
||||
return rendererInvoke(NAMES.mainWindow.user_api_set_allow_update_alert, { id, enable })
|
||||
}
|
||||
|
||||
export const saveMyList = data => {
|
||||
rendererSend(NAMES.mainWindow.save_playlist, {
|
||||
type: 'myList',
|
||||
@@ -105,7 +116,7 @@ export const getSearchHistoryList = () => {
|
||||
}
|
||||
|
||||
export const onUserApiStatus = callback => {
|
||||
rendererOn(NAMES.mainWindow.user_api_status, (event, { status, message, apiInfo }) => callback({ status, message, apiInfo }))
|
||||
rendererOn(NAMES.mainWindow.user_api_status, callback)
|
||||
return () => {
|
||||
rendererOff(callback)
|
||||
}
|
||||
@@ -133,7 +144,7 @@ export const setDesktopLyricInfo = (type, data, info) => {
|
||||
})
|
||||
}
|
||||
export const onGetDesktopLyricInfo = callback => {
|
||||
rendererOn(NAMES.mainWindow.get_lyric_info, (event, info) => callback(event, info))
|
||||
rendererOn(NAMES.mainWindow.get_lyric_info, callback)
|
||||
return () => {
|
||||
rendererOff(callback)
|
||||
}
|
||||
|
||||
@@ -7,6 +7,8 @@ material-modal(:show="modelValue" bg-close @close="handleClose" teleport="#view"
|
||||
div(:class="$style.listLeft")
|
||||
h3 {{api.name}}
|
||||
p {{api.description}}
|
||||
div
|
||||
base-checkbox(:class="$style.checkbox" :id="`user_api_${api.id}`" v-model="api.allowShowUpdateAlert" @change="handleChangeAllowUpdateAlert(api, $event)" :label="$t('user_api__allow_show_update_alert')")
|
||||
base-btn(:class="$style.listBtn" outline :tips="$t('user_api__btn_remove')" @click.stop="handleRemove(index)")
|
||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' viewBox='0 0 212.982 212.982' space='preserve' v-once)
|
||||
use(xlink:href='#icon-delete')
|
||||
@@ -29,6 +31,7 @@ import { promises as fsPromises } from 'fs'
|
||||
import { selectDir, openUrl } from '@renderer/utils'
|
||||
import apiSourceInfo from '@renderer/utils/music/api-source-info'
|
||||
import { userApi, apiSource } from '@renderer/core/share'
|
||||
import { setAllowShowUserApiUpdateAlert } from '@renderer/utils/tools'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
@@ -84,6 +87,9 @@ export default {
|
||||
handleOpenUrl(url) {
|
||||
openUrl(url)
|
||||
},
|
||||
handleChangeAllowUpdateAlert(api, enable) {
|
||||
setAllowShowUserApiUpdateAlert(api.id, enable)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@@ -114,6 +120,12 @@ export default {
|
||||
color: @color-theme;
|
||||
}
|
||||
|
||||
.checkbox {
|
||||
margin-top: 3px;
|
||||
font-size: 14px;
|
||||
opacity: .86;
|
||||
}
|
||||
|
||||
.content {
|
||||
flex: auto;
|
||||
min-height: 100px;
|
||||
|
||||
Reference in New Issue
Block a user