feat: add feedback link
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -10,3 +10,5 @@ dist-ssr
|
|||||||
node_modules
|
node_modules
|
||||||
.idea/
|
.idea/
|
||||||
*.log
|
*.log
|
||||||
|
|
||||||
|
esbuild-kit
|
||||||
|
|||||||
54
package.json
54
package.json
@@ -18,54 +18,54 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@gtm-support/vue-gtm": "^1.6.0",
|
"@gtm-support/vue-gtm": "^1.6.0",
|
||||||
"@vueuse/core": "^9.7.0",
|
"@vueuse/core": "^9.13.0",
|
||||||
"@vueuse/head": "^1.0.22",
|
"@vueuse/head": "^1.0.26",
|
||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"pinia": "^2.0.28",
|
"pinia": "^2.0.30",
|
||||||
"prism-theme-vars": "^0.2.4",
|
"prism-theme-vars": "^0.2.4",
|
||||||
"vue": "^3.2.45",
|
"vue": "^3.2.47",
|
||||||
"vue-about-me": "^1.2.7",
|
"vue-about-me": "^1.2.7",
|
||||||
"vue-demi": "^0.13.11",
|
"vue-demi": "^0.13.11",
|
||||||
"vue-router": "^4.1.6"
|
"vue-router": "^4.1.6"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@antfu/eslint-config": "^0.34.0",
|
"@antfu/eslint-config": "^0.35.2",
|
||||||
"@iconify-json/fe": "^1.1.3",
|
"@iconify-json/fe": "^1.1.6",
|
||||||
"@iconify-json/gg": "^1.1.3",
|
"@iconify-json/gg": "^1.1.4",
|
||||||
"@iconify-json/ic": "^1.1.10",
|
"@iconify-json/ic": "^1.1.13",
|
||||||
"@iconify-json/mdi": "^1.1.38",
|
"@iconify-json/mdi": "^1.1.47",
|
||||||
"@iconify-json/ri": "^1.1.4",
|
"@iconify-json/ri": "^1.1.5",
|
||||||
"@pinia/testing": "^0.0.14",
|
"@pinia/testing": "^0.0.14",
|
||||||
"@types/markdown-it-link-attributes": "^3.0.1",
|
"@types/markdown-it-link-attributes": "^3.0.1",
|
||||||
"@types/nprogress": "^0.2.0",
|
"@types/nprogress": "^0.2.0",
|
||||||
"@vitejs/plugin-legacy": "^3.0.1",
|
"@vitejs/plugin-legacy": "^4.0.1",
|
||||||
"@vitejs/plugin-vue": "^4.0.0",
|
"@vitejs/plugin-vue": "^4.0.0",
|
||||||
"@vue/test-utils": "^2.2.6",
|
"@vue/test-utils": "^2.2.10",
|
||||||
"consola": "^2.15.3",
|
"consola": "^2.15.3",
|
||||||
"critters": "^0.0.16",
|
"critters": "^0.0.16",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"eslint": "^8.30.0",
|
"eslint": "^8.34.0",
|
||||||
"https-localhost": "^4.7.1",
|
"https-localhost": "^4.7.1",
|
||||||
"markdown-it-link-attributes": "^4.0.1",
|
"markdown-it-link-attributes": "^4.0.1",
|
||||||
"markdown-it-prism": "^2.3.0",
|
"markdown-it-prism": "^2.3.0",
|
||||||
"pnpm": "^7.18.2",
|
"pnpm": "^7.27.1",
|
||||||
"sass": "^1.57.0",
|
"sass": "^1.58.3",
|
||||||
"star-markdown-css": "^0.4.1",
|
"star-markdown-css": "^0.4.2",
|
||||||
"terser": "^5.16.1",
|
"terser": "^5.16.4",
|
||||||
"tsx": "^3.12.1",
|
"tsx": "^3.12.3",
|
||||||
"typescript": "^4.9.4",
|
"typescript": "^4.9.5",
|
||||||
"unocss": "^0.47.6",
|
"unocss": "^0.49.7",
|
||||||
"unplugin-auto-import": "^0.12.1",
|
"unplugin-auto-import": "^0.14.3",
|
||||||
"unplugin-vue-components": "^0.22.12",
|
"unplugin-vue-components": "^0.24.0",
|
||||||
"vite": "^4.0.2",
|
"vite": "^4.1.2",
|
||||||
"vite-plugin-inspect": "^0.7.10",
|
"vite-plugin-inspect": "^0.7.15",
|
||||||
"vite-plugin-pages": "^0.28.0",
|
"vite-plugin-pages": "^0.28.0",
|
||||||
"vite-plugin-vue-layouts": "^0.7.0",
|
"vite-plugin-vue-layouts": "^0.7.0",
|
||||||
"vite-plugin-vue-markdown": "^0.22.1",
|
"vite-plugin-vue-markdown": "^0.22.4",
|
||||||
"vite-ssg": "0.22.1",
|
"vite-ssg": "0.22.1",
|
||||||
"vite-ssg-sitemap": "^0.4.3",
|
"vite-ssg-sitemap": "^0.4.3",
|
||||||
"vitest": "^0.25.8",
|
"vitest": "^0.28.5",
|
||||||
"vue-toastification": "^2.0.0-rc.5",
|
"vue-toastification": "^2.0.0-rc.5",
|
||||||
"vue-tsc": "^1.0.14"
|
"vue-tsc": "^1.1.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
4001
pnpm-lock.yaml
generated
4001
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
20
src/auto-imports.d.ts
vendored
20
src/auto-imports.d.ts
vendored
@@ -1,4 +1,7 @@
|
|||||||
// Generated by 'unplugin-auto-import'
|
/* eslint-disable */
|
||||||
|
/* prettier-ignore */
|
||||||
|
// @ts-nocheck
|
||||||
|
// Generated by unplugin-auto-import
|
||||||
export {}
|
export {}
|
||||||
declare global {
|
declare global {
|
||||||
const $$: typeof import('vue/macros')['$$']
|
const $$: typeof import('vue/macros')['$$']
|
||||||
@@ -82,7 +85,6 @@ declare global {
|
|||||||
const refThrottled: typeof import('@vueuse/core')['refThrottled']
|
const refThrottled: typeof import('@vueuse/core')['refThrottled']
|
||||||
const refWithControl: typeof import('@vueuse/core')['refWithControl']
|
const refWithControl: typeof import('@vueuse/core')['refWithControl']
|
||||||
const resolveComponent: typeof import('vue')['resolveComponent']
|
const resolveComponent: typeof import('vue')['resolveComponent']
|
||||||
const resolveDirective: typeof import('vue')['resolveDirective']
|
|
||||||
const resolveRef: typeof import('@vueuse/core')['resolveRef']
|
const resolveRef: typeof import('@vueuse/core')['resolveRef']
|
||||||
const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
|
const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
|
||||||
const shallowReactive: typeof import('vue')['shallowReactive']
|
const shallowReactive: typeof import('vue')['shallowReactive']
|
||||||
@@ -113,10 +115,12 @@ declare global {
|
|||||||
const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter']
|
const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter']
|
||||||
const useArrayFind: typeof import('@vueuse/core')['useArrayFind']
|
const useArrayFind: typeof import('@vueuse/core')['useArrayFind']
|
||||||
const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex']
|
const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex']
|
||||||
|
const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast']
|
||||||
const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin']
|
const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin']
|
||||||
const useArrayMap: typeof import('@vueuse/core')['useArrayMap']
|
const useArrayMap: typeof import('@vueuse/core')['useArrayMap']
|
||||||
const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce']
|
const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce']
|
||||||
const useArraySome: typeof import('@vueuse/core')['useArraySome']
|
const useArraySome: typeof import('@vueuse/core')['useArraySome']
|
||||||
|
const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique']
|
||||||
const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue']
|
const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue']
|
||||||
const useAsyncState: typeof import('@vueuse/core')['useAsyncState']
|
const useAsyncState: typeof import('@vueuse/core')['useAsyncState']
|
||||||
const useAttrs: typeof import('vue')['useAttrs']
|
const useAttrs: typeof import('vue')['useAttrs']
|
||||||
@@ -203,12 +207,14 @@ declare global {
|
|||||||
const useParallax: typeof import('@vueuse/core')['useParallax']
|
const useParallax: typeof import('@vueuse/core')['useParallax']
|
||||||
const usePermission: typeof import('@vueuse/core')['usePermission']
|
const usePermission: typeof import('@vueuse/core')['usePermission']
|
||||||
const usePointer: typeof import('@vueuse/core')['usePointer']
|
const usePointer: typeof import('@vueuse/core')['usePointer']
|
||||||
|
const usePointerLock: typeof import('@vueuse/core')['usePointerLock']
|
||||||
const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe']
|
const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe']
|
||||||
const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme']
|
const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme']
|
||||||
const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast']
|
const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast']
|
||||||
const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark']
|
const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark']
|
||||||
const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages']
|
const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages']
|
||||||
const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion']
|
const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion']
|
||||||
|
const usePrevious: typeof import('@vueuse/core')['usePrevious']
|
||||||
const useRafFn: typeof import('@vueuse/core')['useRafFn']
|
const useRafFn: typeof import('@vueuse/core')['useRafFn']
|
||||||
const useRecipe: typeof import('./composables/recipe')['useRecipe']
|
const useRecipe: typeof import('./composables/recipe')['useRecipe']
|
||||||
const useRecipeStore: typeof import('./store/recipe')['useRecipeStore']
|
const useRecipeStore: typeof import('./store/recipe')['useRecipeStore']
|
||||||
@@ -280,6 +286,11 @@ declare global {
|
|||||||
const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter']
|
const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter']
|
||||||
const whenever: typeof import('@vueuse/core')['whenever']
|
const whenever: typeof import('@vueuse/core')['whenever']
|
||||||
}
|
}
|
||||||
|
// for type re-export
|
||||||
|
declare global {
|
||||||
|
// @ts-ignore
|
||||||
|
export type { Component,ComponentPublicInstance,ComputedRef,InjectionKey,PropType,Ref,VNode } from 'vue'
|
||||||
|
}
|
||||||
// for vue template auto import
|
// for vue template auto import
|
||||||
import { UnwrapRef } from 'vue'
|
import { UnwrapRef } from 'vue'
|
||||||
declare module 'vue' {
|
declare module 'vue' {
|
||||||
@@ -365,7 +376,6 @@ declare module 'vue' {
|
|||||||
readonly refThrottled: UnwrapRef<typeof import('@vueuse/core')['refThrottled']>
|
readonly refThrottled: UnwrapRef<typeof import('@vueuse/core')['refThrottled']>
|
||||||
readonly refWithControl: UnwrapRef<typeof import('@vueuse/core')['refWithControl']>
|
readonly refWithControl: UnwrapRef<typeof import('@vueuse/core')['refWithControl']>
|
||||||
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
|
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
|
||||||
readonly resolveDirective: UnwrapRef<typeof import('vue')['resolveDirective']>
|
|
||||||
readonly resolveRef: UnwrapRef<typeof import('@vueuse/core')['resolveRef']>
|
readonly resolveRef: UnwrapRef<typeof import('@vueuse/core')['resolveRef']>
|
||||||
readonly resolveUnref: UnwrapRef<typeof import('@vueuse/core')['resolveUnref']>
|
readonly resolveUnref: UnwrapRef<typeof import('@vueuse/core')['resolveUnref']>
|
||||||
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
|
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
|
||||||
@@ -396,10 +406,12 @@ declare module 'vue' {
|
|||||||
readonly useArrayFilter: UnwrapRef<typeof import('@vueuse/core')['useArrayFilter']>
|
readonly useArrayFilter: UnwrapRef<typeof import('@vueuse/core')['useArrayFilter']>
|
||||||
readonly useArrayFind: UnwrapRef<typeof import('@vueuse/core')['useArrayFind']>
|
readonly useArrayFind: UnwrapRef<typeof import('@vueuse/core')['useArrayFind']>
|
||||||
readonly useArrayFindIndex: UnwrapRef<typeof import('@vueuse/core')['useArrayFindIndex']>
|
readonly useArrayFindIndex: UnwrapRef<typeof import('@vueuse/core')['useArrayFindIndex']>
|
||||||
|
readonly useArrayFindLast: UnwrapRef<typeof import('@vueuse/core')['useArrayFindLast']>
|
||||||
readonly useArrayJoin: UnwrapRef<typeof import('@vueuse/core')['useArrayJoin']>
|
readonly useArrayJoin: UnwrapRef<typeof import('@vueuse/core')['useArrayJoin']>
|
||||||
readonly useArrayMap: UnwrapRef<typeof import('@vueuse/core')['useArrayMap']>
|
readonly useArrayMap: UnwrapRef<typeof import('@vueuse/core')['useArrayMap']>
|
||||||
readonly useArrayReduce: UnwrapRef<typeof import('@vueuse/core')['useArrayReduce']>
|
readonly useArrayReduce: UnwrapRef<typeof import('@vueuse/core')['useArrayReduce']>
|
||||||
readonly useArraySome: UnwrapRef<typeof import('@vueuse/core')['useArraySome']>
|
readonly useArraySome: UnwrapRef<typeof import('@vueuse/core')['useArraySome']>
|
||||||
|
readonly useArrayUnique: UnwrapRef<typeof import('@vueuse/core')['useArrayUnique']>
|
||||||
readonly useAsyncQueue: UnwrapRef<typeof import('@vueuse/core')['useAsyncQueue']>
|
readonly useAsyncQueue: UnwrapRef<typeof import('@vueuse/core')['useAsyncQueue']>
|
||||||
readonly useAsyncState: UnwrapRef<typeof import('@vueuse/core')['useAsyncState']>
|
readonly useAsyncState: UnwrapRef<typeof import('@vueuse/core')['useAsyncState']>
|
||||||
readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
|
readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
|
||||||
@@ -486,12 +498,14 @@ declare module 'vue' {
|
|||||||
readonly useParallax: UnwrapRef<typeof import('@vueuse/core')['useParallax']>
|
readonly useParallax: UnwrapRef<typeof import('@vueuse/core')['useParallax']>
|
||||||
readonly usePermission: UnwrapRef<typeof import('@vueuse/core')['usePermission']>
|
readonly usePermission: UnwrapRef<typeof import('@vueuse/core')['usePermission']>
|
||||||
readonly usePointer: UnwrapRef<typeof import('@vueuse/core')['usePointer']>
|
readonly usePointer: UnwrapRef<typeof import('@vueuse/core')['usePointer']>
|
||||||
|
readonly usePointerLock: UnwrapRef<typeof import('@vueuse/core')['usePointerLock']>
|
||||||
readonly usePointerSwipe: UnwrapRef<typeof import('@vueuse/core')['usePointerSwipe']>
|
readonly usePointerSwipe: UnwrapRef<typeof import('@vueuse/core')['usePointerSwipe']>
|
||||||
readonly usePreferredColorScheme: UnwrapRef<typeof import('@vueuse/core')['usePreferredColorScheme']>
|
readonly usePreferredColorScheme: UnwrapRef<typeof import('@vueuse/core')['usePreferredColorScheme']>
|
||||||
readonly usePreferredContrast: UnwrapRef<typeof import('@vueuse/core')['usePreferredContrast']>
|
readonly usePreferredContrast: UnwrapRef<typeof import('@vueuse/core')['usePreferredContrast']>
|
||||||
readonly usePreferredDark: UnwrapRef<typeof import('@vueuse/core')['usePreferredDark']>
|
readonly usePreferredDark: UnwrapRef<typeof import('@vueuse/core')['usePreferredDark']>
|
||||||
readonly usePreferredLanguages: UnwrapRef<typeof import('@vueuse/core')['usePreferredLanguages']>
|
readonly usePreferredLanguages: UnwrapRef<typeof import('@vueuse/core')['usePreferredLanguages']>
|
||||||
readonly usePreferredReducedMotion: UnwrapRef<typeof import('@vueuse/core')['usePreferredReducedMotion']>
|
readonly usePreferredReducedMotion: UnwrapRef<typeof import('@vueuse/core')['usePreferredReducedMotion']>
|
||||||
|
readonly usePrevious: UnwrapRef<typeof import('@vueuse/core')['usePrevious']>
|
||||||
readonly useRafFn: UnwrapRef<typeof import('@vueuse/core')['useRafFn']>
|
readonly useRafFn: UnwrapRef<typeof import('@vueuse/core')['useRafFn']>
|
||||||
readonly useRecipe: UnwrapRef<typeof import('./composables/recipe')['useRecipe']>
|
readonly useRecipe: UnwrapRef<typeof import('./composables/recipe')['useRecipe']>
|
||||||
readonly useRecipeStore: UnwrapRef<typeof import('./store/recipe')['useRecipeStore']>
|
readonly useRecipeStore: UnwrapRef<typeof import('./store/recipe')['useRecipeStore']>
|
||||||
|
|||||||
6
src/components.d.ts
vendored
6
src/components.d.ts
vendored
@@ -1,5 +1,7 @@
|
|||||||
// generated by unplugin-vue-components
|
/* eslint-disable */
|
||||||
// We suggest you to commit this file into source control
|
/* prettier-ignore */
|
||||||
|
// @ts-nocheck
|
||||||
|
// Generated by unplugin-vue-components
|
||||||
// Read more: https://github.com/vuejs/core/pull/3399
|
// Read more: https://github.com/vuejs/core/pull/3399
|
||||||
import '@vue/runtime-core'
|
import '@vue/runtime-core'
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { isClient } from '@vueuse/core'
|
import { isClient } from '@vueuse/core'
|
||||||
|
import { links } from '~/constants'
|
||||||
|
|
||||||
const displayICP = ref(true)
|
const displayICP = ref(true)
|
||||||
|
|
||||||
@@ -14,7 +15,28 @@ const buildDate = (new Date(parseInt(now) * 1000)).toLocaleDateString()
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div p="4" class="flex flex-col justify-center items-center" text="sm">
|
<div p="4 t-2" class="flex flex-col justify-center items-center" text="sm">
|
||||||
|
<div>
|
||||||
|
<a
|
||||||
|
m="2"
|
||||||
|
border="b-1 dashed"
|
||||||
|
class="inline-flex text-sm text-blue-600 dark:text-blue-400"
|
||||||
|
:href="links.contribute" target="_blank"
|
||||||
|
title="居家菜谱投稿"
|
||||||
|
>
|
||||||
|
立即投稿
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
m="2"
|
||||||
|
class="inline-flex text-sm text-blue-600 dark:text-blue-400"
|
||||||
|
:href="links.feedback" target="_blank"
|
||||||
|
alt="通过兔小巢反馈"
|
||||||
|
>
|
||||||
|
立即反馈
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div v-if="commitSha && buildDate" mb-2>
|
<div v-if="commitSha && buildDate" mb-2>
|
||||||
<span>
|
<span>
|
||||||
当前版本({{ buildDate }}):
|
当前版本({{ buildDate }}):
|
||||||
|
|||||||
@@ -3,4 +3,8 @@ export const links = {
|
|||||||
* 菜谱投稿链接
|
* 菜谱投稿链接
|
||||||
*/
|
*/
|
||||||
contribute: 'https://docs.qq.com/form/page/DWk9GWW9oTmlXZU9V',
|
contribute: 'https://docs.qq.com/form/page/DWk9GWW9oTmlXZU9V',
|
||||||
|
/**
|
||||||
|
* 兔小巢反馈
|
||||||
|
*/
|
||||||
|
feedback: 'https://support.qq.com/product/507827',
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { links } from '~/constants'
|
|
||||||
import { useRecipeStore } from '~/store/recipe'
|
import { useRecipeStore } from '~/store/recipe'
|
||||||
const rStore = useRecipeStore()
|
const rStore = useRecipeStore()
|
||||||
</script>
|
</script>
|
||||||
@@ -21,15 +20,6 @@ const rStore = useRecipeStore()
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<ChooseFood />
|
<ChooseFood />
|
||||||
<a
|
|
||||||
m="t-2"
|
|
||||||
border="b-1 dashed"
|
|
||||||
class="inline-flex text-sm text-blue-600 dark:text-blue-400"
|
|
||||||
:href="links.contribute" target="_blank"
|
|
||||||
title="居家菜谱投稿"
|
|
||||||
>
|
|
||||||
立即投稿
|
|
||||||
</a>
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
Reference in New Issue
Block a user