feat: 合并 dev 分支功能

This commit is contained in:
奔跑的面条 2023-01-08 20:01:49 +08:00
commit d652b06137
17 changed files with 141 additions and 107 deletions

View File

@ -33,13 +33,13 @@
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",
"keymaster": "^1.6.2", "keymaster": "^1.6.2",
"monaco-editor": "^0.33.0", "monaco-editor": "^0.33.0",
"naive-ui": "2.33.4", "naive-ui": "2.34.3",
"pinia": "^2.0.13", "pinia": "^2.0.13",
"screenfull": "^6.0.1", "screenfull": "^6.0.1",
"three": "^0.145.0", "three": "^0.145.0",
"vue": "^3.2.31", "vue": "^3.2.31",
"vue-demi": "^0.13.1", "vue-demi": "^0.13.1",
"vue-i18n": "9.1.10", "vue-i18n": "^9.2.2",
"vue-router": "4.0.12", "vue-router": "4.0.12",
"vue3-lazyload": "^0.2.5-beta", "vue3-lazyload": "^0.2.5-beta",
"vue3-sketch-ruler": "^1.3.3", "vue3-sketch-ruler": "^1.3.3",
@ -82,4 +82,4 @@
"vue-echarts": "^6.0.2", "vue-echarts": "^6.0.2",
"vue-tsc": "^0.28.10" "vue-tsc": "^0.28.10"
} }
} }

99
pnpm-lock.yaml generated
View File

@ -43,7 +43,7 @@ specifiers:
lodash: ~4.17.21 lodash: ~4.17.21
mockjs: ^1.1.0 mockjs: ^1.1.0
monaco-editor: ^0.33.0 monaco-editor: ^0.33.0
naive-ui: 2.33.4 naive-ui: 2.34.3
pinia: ^2.0.13 pinia: ^2.0.13
plop: ^3.0.5 plop: ^3.0.5
prettier: ^2.6.2 prettier: ^2.6.2
@ -60,7 +60,7 @@ specifiers:
vue: ^3.2.31 vue: ^3.2.31
vue-demi: ^0.13.1 vue-demi: ^0.13.1
vue-echarts: ^6.0.2 vue-echarts: ^6.0.2
vue-i18n: 9.1.10 vue-i18n: ^9.2.2
vue-router: 4.0.12 vue-router: 4.0.12
vue-tsc: ^0.28.10 vue-tsc: ^0.28.10
vue3-lazyload: ^0.2.5-beta vue3-lazyload: ^0.2.5-beta
@ -87,13 +87,13 @@ dependencies:
html2canvas: 1.4.1 html2canvas: 1.4.1
keymaster: 1.6.2 keymaster: 1.6.2
monaco-editor: 0.33.0 monaco-editor: 0.33.0
naive-ui: 2.33.4_vue@3.2.37 naive-ui: 2.34.3_vue@3.2.37
pinia: 2.0.14_ub5l46u3nefphax5x2tezui4oq pinia: 2.0.14_ub5l46u3nefphax5x2tezui4oq
screenfull: 6.0.1 screenfull: 6.0.1
three: 0.145.0 three: 0.145.0
vue: 3.2.37 vue: 3.2.37
vue-demi: 0.13.1_vue@3.2.37 vue-demi: 0.13.1_vue@3.2.37
vue-i18n: 9.1.10_vue@3.2.37 vue-i18n: 9.2.2_vue@3.2.37
vue-router: 4.0.12_vue@3.2.37 vue-router: 4.0.12_vue@3.2.37
vue3-lazyload: 0.2.5-beta_2yymnzrok6eda47acnj2yjm3ae vue3-lazyload: 0.2.5-beta_2yymnzrok6eda47acnj2yjm3ae
vue3-sketch-ruler: 1.3.4_vue@3.2.37 vue3-sketch-ruler: 1.3.4_vue@3.2.37
@ -680,60 +680,42 @@ packages:
resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
dev: true dev: true
/@intlify/core-base/9.1.10: /@intlify/core-base/9.2.2:
resolution: {integrity: sha512-So9CNUavB/IsZ+zBmk2Cv6McQp6vc2wbGi1S0XQmJ8Vz+UFcNn9MFXAe9gY67PreIHrbLsLxDD0cwo1qsxM1Nw==} resolution: {integrity: sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==}
engines: {node: '>= 10'} engines: {node: '>= 14'}
dependencies: dependencies:
'@intlify/devtools-if': 9.1.10 '@intlify/devtools-if': 9.2.2
'@intlify/message-compiler': 9.1.10 '@intlify/message-compiler': 9.2.2
'@intlify/message-resolver': 9.1.10 '@intlify/shared': 9.2.2
'@intlify/runtime': 9.1.10 '@intlify/vue-devtools': 9.2.2
'@intlify/shared': 9.1.10
'@intlify/vue-devtools': 9.1.10
dev: false dev: false
/@intlify/devtools-if/9.1.10: /@intlify/devtools-if/9.2.2:
resolution: {integrity: sha512-SHaKoYu6sog3+Q8js1y3oXLywuogbH1sKuc7NSYkN3GElvXSBaMoCzW+we0ZSFqj/6c7vTNLg9nQ6rxhKqYwnQ==} resolution: {integrity: sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==}
engines: {node: '>= 10'} engines: {node: '>= 14'}
dependencies: dependencies:
'@intlify/shared': 9.1.10 '@intlify/shared': 9.2.2
dev: false dev: false
/@intlify/message-compiler/9.1.10: /@intlify/message-compiler/9.2.2:
resolution: {integrity: sha512-+JiJpXff/XTb0EadYwdxOyRTB0hXNd4n1HaJ/a4yuV960uRmPXaklJsedW0LNdcptd/hYUZtCkI7Lc9J5C1gxg==} resolution: {integrity: sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==}
engines: {node: '>= 10'} engines: {node: '>= 14'}
dependencies: dependencies:
'@intlify/message-resolver': 9.1.10 '@intlify/shared': 9.2.2
'@intlify/shared': 9.1.10
source-map: 0.6.1 source-map: 0.6.1
dev: false dev: false
/@intlify/message-resolver/9.1.10: /@intlify/shared/9.2.2:
resolution: {integrity: sha512-5YixMG/M05m0cn9+gOzd4EZQTFRUu8RGhzxJbR1DWN21x/Z3bJ8QpDYj6hC4FwBj5uKsRfKpJQ3Xqg98KWoA+w==} resolution: {integrity: sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==}
engines: {node: '>= 10'} engines: {node: '>= 14'}
dev: false dev: false
/@intlify/runtime/9.1.10: /@intlify/vue-devtools/9.2.2:
resolution: {integrity: sha512-7QsuByNzpe3Gfmhwq6hzgXcMPpxz8Zxb/XFI6s9lQdPLPe5Lgw4U1ovRPZTOs6Y2hwitR3j/HD8BJNGWpJnOFA==} resolution: {integrity: sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==}
engines: {node: '>= 10'} engines: {node: '>= 14'}
dependencies: dependencies:
'@intlify/message-compiler': 9.1.10 '@intlify/core-base': 9.2.2
'@intlify/message-resolver': 9.1.10 '@intlify/shared': 9.2.2
'@intlify/shared': 9.1.10
dev: false
/@intlify/shared/9.1.10:
resolution: {integrity: sha512-Om54xJeo1Vw+K1+wHYyXngE8cAbrxZHpWjYzMR9wCkqbhGtRV5VLhVc214Ze2YatPrWlS2WSMOWXR8JktX/IgA==}
engines: {node: '>= 10'}
dev: false
/@intlify/vue-devtools/9.1.10:
resolution: {integrity: sha512-5l3qYARVbkWAkagLu1XbDUWRJSL8br1Dj60wgMaKB0+HswVsrR6LloYZTg7ozyvM621V6+zsmwzbQxbVQyrytQ==}
engines: {node: '>= 10'}
dependencies:
'@intlify/message-resolver': 9.1.10
'@intlify/runtime': 9.1.10
'@intlify/shared': 9.1.10
dev: false dev: false
/@jridgewell/gen-mapping/0.1.1: /@jridgewell/gen-mapping/0.1.1:
@ -898,6 +880,10 @@ packages:
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
dev: true dev: true
/@types/katex/0.14.0:
resolution: {integrity: sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA==}
dev: false
/@types/keymaster/1.6.30: /@types/keymaster/1.6.30:
resolution: {integrity: sha512-mtL/NuDBX72zmyIa3cYHA1bQj1WAYlSC4eZcIQj+DHJkcRyTRF2XJXo7DBmkkY8TEq7XaAf7B8TGxs5PHhjRtw==} resolution: {integrity: sha512-mtL/NuDBX72zmyIa3cYHA1bQj1WAYlSC4eZcIQj+DHJkcRyTRF2XJXo7DBmkkY8TEq7XaAf7B8TGxs5PHhjRtw==}
dev: false dev: false
@ -1228,6 +1214,10 @@ packages:
resolution: {integrity: sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==} resolution: {integrity: sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==}
dev: false dev: false
/@vue/devtools-api/6.4.5:
resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==}
dev: false
/@vue/reactivity-transform/3.2.37: /@vue/reactivity-transform/3.2.37:
resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==}
dependencies: dependencies:
@ -3846,13 +3836,14 @@ packages:
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
dev: true dev: true
/naive-ui/2.33.4_vue@3.2.37: /naive-ui/2.34.3_vue@3.2.37:
resolution: {integrity: sha512-4tK2lWx3v8sbEeTLG/tL5Ur9VvZyUxSnC0VcTO6NO1rM/D15JXg8jVwQCRFYnEp7mp3gfD5B3i8kN4JisTeiFA==} resolution: {integrity: sha512-fUMr0dzb/iGsOTWgoblPVobY5X5dihQ1eam5dA+H74oyLYAvgX4pL96xQFPBLIYqvyRFBAsN85kHN5pLqdtpxA==}
peerDependencies: peerDependencies:
vue: ^3.0.0 vue: ^3.0.0
dependencies: dependencies:
'@css-render/plugin-bem': 0.15.10_css-render@0.15.10 '@css-render/plugin-bem': 0.15.10_css-render@0.15.10
'@css-render/vue3-ssr': 0.15.10_vue@3.2.37 '@css-render/vue3-ssr': 0.15.10_vue@3.2.37
'@types/katex': 0.14.0
'@types/lodash': 4.14.185 '@types/lodash': 4.14.185
'@types/lodash-es': 4.17.6 '@types/lodash-es': 4.17.6
async-validator: 4.1.1 async-validator: 4.1.1
@ -5405,16 +5396,16 @@ packages:
- supports-color - supports-color
dev: true dev: true
/vue-i18n/9.1.10_vue@3.2.37: /vue-i18n/9.2.2_vue@3.2.37:
resolution: {integrity: sha512-jpr7gV5KPk4n+sSPdpZT8Qx3XzTcNDWffRlHV/cT2NUyEf+sEgTTmLvnBAibjOFJ0zsUyZlVTAWH5DDnYep+1g==} resolution: {integrity: sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==}
engines: {node: '>= 10'} engines: {node: '>= 14'}
peerDependencies: peerDependencies:
vue: ^3.0.0 vue: ^3.0.0
dependencies: dependencies:
'@intlify/core-base': 9.1.10 '@intlify/core-base': 9.2.2
'@intlify/shared': 9.1.10 '@intlify/shared': 9.2.2
'@intlify/vue-devtools': 9.1.10 '@intlify/vue-devtools': 9.2.2
'@vue/devtools-api': 6.1.4 '@vue/devtools-api': 6.4.5
vue: 3.2.37 vue: 3.2.37
dev: false dev: false

View File

@ -26,12 +26,8 @@ export default {
msg: '请求成功', msg: '请求成功',
data: { data: {
dimensions: ['name', 'value'], dimensions: ['name', 'value'],
source: [ "source|2-5": [
{ name: '厦门', 'value|0-40': 20 }, { 'name|+1': ["厦门","福州","北京","上海","新疆","郑州","湖南","内蒙古"], 'value|0-40': 20 },
{ name: '南阳', 'value|20-60': 40 },
{ name: '北京', 'value|40-80': 60 },
{ name: '上海', 'value|60-100': 80 },
{ name: '新疆', value: 100 }
] ]
} }
}, },

View File

@ -14,16 +14,19 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { useI18n } from "vue-i18n";
import { useLangStore } from '@/store/modules/langStore/langStore' import { useLangStore } from '@/store/modules/langStore/langStore'
import { langList } from '@/i18n/index' import { langList } from '@/i18n/index'
import { LangEnum } from '@/enums/styleEnum' import { LangEnum } from '@/enums/styleEnum'
import { icon } from '@/plugins' import { icon } from '@/plugins'
const { LanguageIcon } = icon.ionicons5 const { LanguageIcon } = icon.ionicons5
const { locale } = useI18n();
const langStore = useLangStore() const langStore = useLangStore()
const options = langList const options = langList
const handleSelect = (key: LangEnum) => { const handleSelect = (key: LangEnum) => {
locale.value = key;
langStore.changeLang(key) langStore.changeLang(key)
} }
</script> </script>

View File

@ -1,5 +1,5 @@
<template> <template>
<n-modal v-model:show="modelShow" @afterLeave="closeHandle"> <n-modal v-model:show="modelShowRef" @afterLeave="closeHandle">
<n-list bordered class="go-system-info"> <n-list bordered class="go-system-info">
<template #header> <template #header>
<n-space justify="space-between"> <n-space justify="space-between">
@ -51,10 +51,10 @@ const props = defineProps({
const emit = defineEmits(['update:modelShow']) const emit = defineEmits(['update:modelShow'])
const { HelpOutlineIcon, CloseIcon } = icon.ionicons5 const { HelpOutlineIcon, CloseIcon } = icon.ionicons5
const modelShow = ref(false) const modelShowRef = ref(false)
watch(() => props.modelShow, (newValue) => { watch(() => props.modelShow, (newValue) => {
modelShow.value = newValue modelShowRef.value = newValue
}) })
const closeHandle = () => { const closeHandle = () => {

View File

@ -1,5 +1,5 @@
<template> <template>
<n-modal v-model:show="modelShow" @afterLeave="closeHandle"> <n-modal v-model:show="modelShowRef" @afterLeave="closeHandle">
<n-list bordered class="go-system-setting"> <n-list bordered class="go-system-setting">
<template #header> <template #header>
<n-space justify="space-between"> <n-space justify="space-between">
@ -82,7 +82,7 @@ const props = defineProps({
const emit = defineEmits(['update:modelShow']) const emit = defineEmits(['update:modelShow'])
const { HelpOutlineIcon, CloseIcon } = icon.ionicons5 const { HelpOutlineIcon, CloseIcon } = icon.ionicons5
const settingStore = useSettingStore() const settingStore = useSettingStore()
const modelShow = ref(false) const modelShowRef = ref(false)
const list = reactive<ListType[]>([ const list = reactive<ListType[]>([
{ {
@ -168,7 +168,7 @@ const list = reactive<ListType[]>([
]) ])
watch(() => props.modelShow, (newValue) => { watch(() => props.modelShow, (newValue) => {
modelShow.value = newValue modelShowRef.value = newValue
}) })
const closeHandle = () => { const closeHandle = () => {

View File

@ -23,6 +23,8 @@ export const langList = [
] ]
const i18n = createI18n({ const i18n = createI18n({
legacy: false,
globalInjection:true,
locale: langStorage?.lang || lang, locale: langStorage?.lang || lang,
fallbackLocale: langStorage?.lang || lang, fallbackLocale: langStorage?.lang || lang,
messages: { messages: {

View File

@ -112,16 +112,12 @@ watch(
) )
const calcData = (data: any, type?: string) => { const calcData = (data: any, type?: string) => {
mergeConfig(props.chartConfig.option) let cloneConfig = cloneDeep(props.chartConfig.option || {})
state.mergedConfig = cloneConfig
if (type == 'preview') { if (type == 'preview') {
calcCapsuleLengthAndLabelData(data) cloneConfig.dataset = data
} else {
calcCapsuleLengthAndLabelData(state.mergedConfig.dataset)
} }
} calcCapsuleLengthAndLabelData(state.mergedConfig.dataset)
const mergeConfig = (data: any) => {
state.mergedConfig = cloneDeep(data || {})
} }
// //

View File

@ -2,7 +2,6 @@ import { defineStore } from 'pinia'
import { lang } from '@/settings/designSetting' import { lang } from '@/settings/designSetting'
import { LangStateType } from './langStore.d' import { LangStateType } from './langStore.d'
import { LangEnum } from '@/enums/styleEnum' import { LangEnum } from '@/enums/styleEnum'
import i18n from '@/i18n/index'
import { setLocalStorage, getLocalStorage, reloadRoutePage } from '@/utils' import { setLocalStorage, getLocalStorage, reloadRoutePage } from '@/utils'
import { StorageEnum } from '@/enums/storageEnum' import { StorageEnum } from '@/enums/storageEnum'
import { useSettingStore } from '@/store/modules/settingStore/settingStore' import { useSettingStore } from '@/store/modules/settingStore/settingStore'
@ -25,10 +24,8 @@ export const useLangStore = defineStore({
actions: { actions: {
changeLang(lang: LangEnum): void { changeLang(lang: LangEnum): void {
const settingStore = useSettingStore() const settingStore = useSettingStore()
if (this.lang === lang) return if (this.lang === lang) return
this.lang = lang this.lang = lang
i18n.global.locale = lang
setLocalStorage(GO_LANG_STORE, this.$state) setLocalStorage(GO_LANG_STORE, this.$state)
if (settingStore.getChangeLangReload) { if (settingStore.getChangeLangReload) {

View File

@ -1,5 +1,5 @@
<template> <template>
<n-modal class="go-chart-data-pond-control" v-model:show="modelShow" :mask-closable="false"> <n-modal class="go-chart-data-pond-control" v-model:show="modelShowRef" :mask-closable="false">
<n-card :bordered="false" role="dialog" size="small" aria-modal="true" style="width: 900px; height: 650px"> <n-card :bordered="false" role="dialog" size="small" aria-modal="true" style="width: 900px; height: 650px">
<template #header></template> <template #header></template>
<template #header-extra> </template> <template #header-extra> </template>
@ -37,7 +37,6 @@
<!-- 请求配置model --> <!-- 请求配置model -->
<pond-data-request <pond-data-request
v-if="requestShow"
v-model:modelShow="requestShow" v-model:modelShow="requestShow"
:targetDataRequest="editData" :targetDataRequest="editData"
:isEdit="isEdit" :isEdit="isEdit"
@ -59,7 +58,7 @@ import { icon } from '@/plugins'
import { getUUID, goDialog } from '@/utils' import { getUUID, goDialog } from '@/utils'
import { cloneDeep } from 'lodash' import { cloneDeep } from 'lodash'
defineProps({ const props = defineProps({
modelShow: Boolean modelShow: Boolean
}) })
@ -68,6 +67,7 @@ const { PencilIcon } = icon.ionicons5
const { chartEditStore, targetData } = useTargetData() const { chartEditStore, targetData } = useTargetData()
const { requestDataPond } = toRefs(chartEditStore.getRequestGlobalConfig) const { requestDataPond } = toRefs(chartEditStore.getRequestGlobalConfig)
const requestShow = ref(false) const requestShow = ref(false)
const modelShowRef = ref(false)
const loading = ref(false) const loading = ref(false)
const isEdit = ref(false) const isEdit = ref(false)
const editData = ref<RequestDataPondItemType>() const editData = ref<RequestDataPondItemType>()
@ -82,6 +82,10 @@ const pondData = computed(() => {
return data[0] return data[0]
}) })
watch(() => props.modelShow, (newValue) => {
modelShowRef.value = newValue
})
watch( watch(
() => pondData.value, () => pondData.value,
newValue => { newValue => {

View File

@ -1,5 +1,5 @@
<template> <template>
<n-modal class="go-chart-data-request" v-model:show="modelShow" :mask-closable="false" :closeOnEsc="false"> <n-modal class="go-chart-data-request" v-model:show="modelShowRef" :mask-closable="false" :closeOnEsc="false">
<n-card :bordered="false" role="dialog" size="small" aria-modal="true" style="width: 1000px; height: 800px"> <n-card :bordered="false" role="dialog" size="small" aria-modal="true" style="width: 1000px; height: 800px">
<template #header></template> <template #header></template>
<template #header-extra> </template> <template #header-extra> </template>
@ -29,7 +29,7 @@
</template> </template>
<script script lang="ts" setup> <script script lang="ts" setup>
import { toRefs, PropType } from 'vue' import { ref, toRefs, PropType, watch } from 'vue'
import { RequestContentTypeEnum } from '@/enums/httpEnum' import { RequestContentTypeEnum } from '@/enums/httpEnum'
import { useTargetData } from '../../../hooks/useTargetData.hook' import { useTargetData } from '../../../hooks/useTargetData.hook'
import { RequestGlobalConfig } from './components/RequestGlobalConfig' import { RequestGlobalConfig } from './components/RequestGlobalConfig'
@ -50,11 +50,22 @@ const { dataSyncUpdate } = useSync()
// //
const { chartConfig } = toRefs(props.targetData as CreateComponentType) const { chartConfig } = toRefs(props.targetData as CreateComponentType)
const { requestContentType } = toRefs((props.targetData as CreateComponentType).request) const { requestContentType } = toRefs((props.targetData as CreateComponentType).request)
const modelShowRef = ref(false)
const requestContentTypeObj = { const requestContentTypeObj = {
[RequestContentTypeEnum.DEFAULT]: '普通请求', [RequestContentTypeEnum.DEFAULT]: '普通请求',
[RequestContentTypeEnum.SQL]: 'SQL 请求' [RequestContentTypeEnum.SQL]: 'SQL 请求'
} }
watch(
() => props.modelShow,
newValue => {
modelShowRef.value = newValue
},
{
immediate: true
}
)
const closeHandle = () => { const closeHandle = () => {
emit('update:modelShow', false) emit('update:modelShow', false)
} }

View File

@ -1,5 +1,5 @@
<template> <template>
<n-modal class="go-chart-data-request" v-model:show="modelShow" :mask-closable="false" :closeOnEsc="false"> <n-modal class="go-chart-data-request" v-model:show="modelShowRef" :mask-closable="false" :closeOnEsc="false">
<n-card :bordered="false" role="dialog" size="small" aria-modal="true" style="width: 1000px; height: 800px"> <n-card :bordered="false" role="dialog" size="small" aria-modal="true" style="width: 1000px; height: 800px">
<template #header></template> <template #header></template>
<template #header-extra> </template> <template #header-extra> </template>
@ -42,7 +42,7 @@
</template> </template>
<script script lang="ts" setup> <script script lang="ts" setup>
import { PropType, ref, watchEffect } from 'vue' import { PropType, ref, watch } from 'vue'
import { RequestContentTypeEnum } from '@/enums/httpEnum' import { RequestContentTypeEnum } from '@/enums/httpEnum'
import { useTargetData } from '../../../hooks/useTargetData.hook' import { useTargetData } from '../../../hooks/useTargetData.hook'
import { RequestGlobalConfig } from './components/RequestGlobalConfig' import { RequestGlobalConfig } from './components/RequestGlobalConfig'
@ -60,6 +60,12 @@ const emit = defineEmits(['update:modelShow', 'editSaveHandle'])
const { dataSyncUpdate } = useSync() const { dataSyncUpdate } = useSync()
const pondName = ref() const pondName = ref()
const inputInstRef = ref() const inputInstRef = ref()
const modelShowRef = ref(false)
watch(() => props.modelShow, (newValue) => {
modelShowRef.value = newValue
})
const closeHandle = () => { const closeHandle = () => {
emit('update:modelShow', false) emit('update:modelShow', false)

View File

@ -1,5 +1,5 @@
<template> <template>
<n-modal v-model:show="modelShow" :mask-closable="true" @afterLeave="closeHandle"> <n-modal v-model:show="modelShowRef" :mask-closable="true" @afterLeave="closeHandle">
<n-table class="model-content" :bordered="false" :single-line="false"> <n-table class="model-content" :bordered="false" :single-line="false">
<thead> <thead>
<tr> <tr>
@ -31,17 +31,24 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { watch, ref } from 'vue'
import { icon } from '@/plugins' import { icon } from '@/plugins'
import { WinKeyboard, MacKeyboard } from '@/enums/editPageEnum' import { WinKeyboard, MacKeyboard } from '@/enums/editPageEnum'
const { CloseIcon } = icon.ionicons5 const { CloseIcon } = icon.ionicons5
const modelShowRef = ref(false)
const emit = defineEmits(['update:modelShow']) const emit = defineEmits(['update:modelShow'])
defineProps({ const props = defineProps({
modelShow: Boolean modelShow: Boolean
}) })
watch(() => props.modelShow, (newValue) => {
modelShowRef.value = newValue
})
// //
const shortcutKeyOptions = [ const shortcutKeyOptions = [
{ {
@ -126,6 +133,7 @@ const shortcutKeyOptions = [
mac: `${MacKeyboard.CTRL.toUpperCase()} + ${WinKeyboard.SHIFT.toUpperCase()} + G ` mac: `${MacKeyboard.CTRL.toUpperCase()} + ${WinKeyboard.SHIFT.toUpperCase()} + G `
} }
] ]
const closeHandle = () => { const closeHandle = () => {
emit('update:modelShow', false) emit('update:modelShow', false)
} }

View File

@ -87,6 +87,7 @@ import { renderIcon, renderLang, requireErrorImg } from '@/utils'
import { icon } from '@/plugins' import { icon } from '@/plugins'
import { MacOsControlBtn } from '@/components/Tips/MacOsControlBtn' import { MacOsControlBtn } from '@/components/Tips/MacOsControlBtn'
import { Chartype } from '../../index.d' import { Chartype } from '../../index.d'
import { log } from 'console'
const { const {
EllipsisHorizontalCircleSharpIcon, EllipsisHorizontalCircleSharpIcon,
CopyIcon, CopyIcon,

View File

@ -37,7 +37,7 @@
<!-- model --> <!-- model -->
<project-items-modal-card <project-items-modal-card
v-if="modalData" v-if="modalData"
v-model:modalShow="modalShow" :modalShow="modalShow"
:cardData="modalData" :cardData="modalData"
@close="closeModal" @close="closeModal"
@edit="editHandle" @edit="editHandle"

View File

@ -2,7 +2,7 @@
<!-- mask-closable 暂时是失效的不知道为啥 --> <!-- mask-closable 暂时是失效的不知道为啥 -->
<n-modal <n-modal
class="go-modal-box" class="go-modal-box"
v-model:show="modalShow" v-model:show="showRef"
@afterLeave="closeHandle" @afterLeave="closeHandle"
> >
<n-card hoverable size="small"> <n-card hoverable size="small">
@ -73,21 +73,42 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { reactive, PropType } from 'vue' import { ref, reactive, PropType, watch } from 'vue'
import { renderIcon, renderLang } from '@/utils' import { renderIcon, renderLang } from '@/utils'
import { icon } from '@/plugins' import { icon } from '@/plugins'
import { MacOsControlBtn } from '@/components/Tips/MacOsControlBtn' import { MacOsControlBtn } from '@/components/Tips/MacOsControlBtn'
import { Chartype } from '../../index.d' import { Chartype } from '../../index.d'
const { HammerIcon } = icon.ionicons5 const { HammerIcon } = icon.ionicons5
const showRef = ref(false)
const emit = defineEmits(['close', 'edit']) const emit = defineEmits(['close', 'edit'])
const props = defineProps({ const props = defineProps({
modalShow: Boolean, modalShow: {
cardData: Object as PropType<Chartype> required: true,
type: Boolean
},
cardData: {
required: true,
type: Object
}
}) })
watch(
() => props.modalShow,
newValue => {
showRef.value = newValue
},
{
immediate: true
}
)
// url
const requireUrl = (name: string) => {
return new URL(`../../../../../assets/images/${name}`, import.meta.url).href
}
const fnBtnList = reactive([ const fnBtnList = reactive([
{ {
label: renderLang('global.r_edit'), label: renderLang('global.r_edit'),

View File

@ -1,5 +1,5 @@
<template> <template>
<n-modal v-model:show="show" class="go-create-modal"> <n-modal v-model:show="showRef" class="go-create-modal" @afterLeave="closeHandle">
<n-space size="large"> <n-space size="large">
<n-card class="card-box" hoverable> <n-card class="card-box" hoverable>
<template #header> <template #header>
@ -35,7 +35,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { watch } from 'vue' import { ref, watch, shallowRef } from 'vue'
import { icon } from '@/plugins' import { icon } from '@/plugins'
import { PageEnum, ChartEnum } from '@/enums/pageEnum' import { PageEnum, ChartEnum } from '@/enums/pageEnum'
import { ResultEnum } from '@/enums/httpEnum' import { ResultEnum } from '@/enums/httpEnum'
@ -44,13 +44,14 @@ import { createProjectApi } from '@/api/path'
const { FishIcon, CloseIcon } = icon.ionicons5 const { FishIcon, CloseIcon } = icon.ionicons5
const { StoreIcon, ObjectStorageIcon } = icon.carbon const { StoreIcon, ObjectStorageIcon } = icon.carbon
const $t = window['$t'] const showRef = ref(false)
const emit = defineEmits(['close']) const emit = defineEmits(['close'])
const props = defineProps({ const props = defineProps({
show: Boolean show: Boolean
}) })
const typeList = [ const typeList = shallowRef([
{ {
title: renderLang('project.new_project'), title: renderLang('project.new_project'),
key: ChartEnum.CHART_HOME_NAME, key: ChartEnum.CHART_HOME_NAME,
@ -69,13 +70,10 @@ const typeList = [
icon: StoreIcon, icon: StoreIcon,
disabled: true disabled: true
} }
] ])
// @on-after-leave watch(() => props.show, newValue => {
watch(props, newValue => { showRef.value = newValue
if (!newValue.show) {
closeHandle()
}
}) })
// //
@ -115,7 +113,7 @@ const btnHandle = async (key: string) => {
<style lang="scss" scoped> <style lang="scss" scoped>
$cardWidth: 570px; $cardWidth: 570px;
@include go("create-modal") { @include go('create-modal') {
position: fixed; position: fixed;
top: 200px; top: 200px;
left: 50%; left: 50%;
@ -126,7 +124,7 @@ $cardWidth: 570px;
border: 1px solid rgba(0, 0, 0, 0); border: 1px solid rgba(0, 0, 0, 0);
@extend .go-transition; @extend .go-transition;
&:hover { &:hover {
@include hover-border-color("hover-border-color"); @include hover-border-color('hover-border-color');
} }
&-tite { &-tite {
font-size: 14px; font-size: 14px;