⬆️ Upgrade: upgrade deps

This commit is contained in:
萌萌哒赫萝
2023-08-27 07:48:08 -07:00
parent e15aa846e5
commit bfbfef17b2
10 changed files with 2531 additions and 486 deletions

View File

@@ -20,7 +20,9 @@ import type { IConfig } from 'piclist'
// 其他工具
import bus from './utils/bus'
import { FORCE_UPDATE } from '~/universal/events/constants'
import { useATagClick } from './hooks/useATagClick'
useATagClick()
const store = useStore()
onBeforeMount(async () => {
const config = await getConfig<IConfig>()

View File

@@ -25,10 +25,31 @@
<el-form-item
v-for="(item, index) in configList"
:key="item.name + index"
:label="item.alias || item.name"
:required="item.required"
:prop="item.name"
>
<template #label>
<el-row align="middle">
{{ item.alias || item.name }}
<template v-if="item.tips">
<el-tooltip
class="item"
effect="dark"
placement="right"
>
<template #content>
<span
class="config-form-common-tips"
v-html="transformMarkdownToHTML(item.tips)"
/>
</template>
<el-icon class="ml-[4px] cursor-pointer hover:text-blue">
<QuestionFilled />
</el-icon>
</el-tooltip>
</template>
</el-row>
</template>
<el-input
v-if="item.type === 'input' || item.type === 'password'"
v-model="ruleForm[item.name]"
@@ -64,8 +85,8 @@
<el-switch
v-else-if="item.type === 'confirm'"
v-model="ruleForm[item.name]"
active-text="yes"
inactive-text="no"
:active-text="item.confirmText || 'yes'"
:inactive-text="item.cancelText || 'no'"
/>
</el-form-item>
<slot />
@@ -79,6 +100,8 @@ import { getConfig } from '@/utils/dataSender'
import { useRoute } from 'vue-router'
import type { FormInstance } from 'element-plus'
import { T as $T } from '@/i18n'
import { QuestionFilled } from '@element-plus/icons-vue'
import { marked } from 'marked'
interface IProps {
config: any[]
@@ -118,6 +141,14 @@ async function validate (): Promise<IStringKeyMap | false> {
})
}
function transformMarkdownToHTML (markdown: string) {
try {
return marked.parse(markdown)
} catch (e) {
return markdown
}
}
function getConfigType () {
switch (props.type) {
case 'plugin': {
@@ -182,6 +213,10 @@ defineExpose({
})
</script>
<style lang='stylus'>
.config-form-common-tips
a
color #409EFF
text-decoration none
#config-form
.el-form
label

View File

@@ -0,0 +1,19 @@
import { openURL } from '@/utils/common'
import { onMounted, onUnmounted } from 'vue'
export function useATagClick () {
const handleATagClick = (e: MouseEvent) => {
if (e.target instanceof HTMLAnchorElement) {
if (e.target.href) {
e.preventDefault()
openURL(e.target.href)
}
}
}
onMounted(() => {
document.addEventListener('click', handleATagClick)
})
onUnmounted(() => {
document.removeEventListener('click', handleATagClick)
})
}

View File

@@ -1971,7 +1971,7 @@ async function handleClickFile (item: any) {
const fileUrl = item.url
const res = await axios.get(fileUrl, options)
const content = res.data
markDownContent.value = marked(content)
markDownContent.value = marked.parse(content)
isShowMarkDownDialog.value = true
} catch (error) {
ElMessage.error($T('MANAGE_BUCKET_END_LOADING_MESSAGE_FAIL'))

View File

@@ -1,4 +1,6 @@
import { isReactive, isRef, toRaw, unref } from 'vue'
import { sendToMain } from './dataSender'
import { OPEN_URL } from '~/universal/events/constants'
/**
* get raw data from reactive or ref
@@ -16,3 +18,7 @@ export const getRawData = (args: any): any => {
}
return args
}
export const openURL = (url: string) => {
sendToMain(OPEN_URL, url)
}

View File

@@ -15,7 +15,7 @@ declare module 'vue/types/vue' {
}
}
declare module '@vue/runtime-core' {
declare module 'vue' {
interface ComponentCustomProperties {
$http: typeof axios
$builtInPicBed: string[]

View File

@@ -164,6 +164,8 @@ interface IPicGoPluginConfig {
name?: string
value?: any
}[]
/** support markdown */
tips?: string
[propName: string]: any
}