feat(All):Initial

This commit is contained in:
2025-10-04 23:36:07 +08:00
commit 2b4e5d2668
1321 changed files with 415958 additions and 0 deletions
@@ -0,0 +1,57 @@
<template>
<n-modal :show="show" @update:show="(s) => emits('update:show',s)" class="!w-80vw" preset="dialog"
:title="title" :showIcon="false">
<CodeEditor ref="htmlPanelCodeRef" v-model:source="source" :mode="mode" class="!h-80vh" />
<n-alert title="Error" type="error" v-if="errors.length" closable @close="errors = []" class="absolute bottom-0 w-full z-9999">
<n-text depth="1" v-for="(error,index) in errors" :keys="index" class="block">{{error}}</n-text>
</n-alert>
<div class="float-right mt-10px">
<n-button size="small" @click="emits('update:show',false)">{{t('other.Cancel')}}</n-button>
<n-button class="ml-5px" type="primary" size="small" @click="submitCallback">{{t('other.Ok')}}</n-button>
</div>
</n-modal>
</template>
<script setup lang="ts">
import {ref, watch} from "vue";
import {t} from "@/language";
import CodeEditor from "@/components/code/CodeEditor.vue";
const props = withDefaults(defineProps<{
show: boolean,
value: string,
title: string,
mode: string,
}>(), {
show: false,
value: "{}",
title: "",
mode: 'html'
})
const emits = defineEmits(["update:show", "update:value"]);
const htmlPanelCodeRef = ref();
const source = ref<string>(props.value);
const errors = ref([]);
watch(() => props.show,(nv) => {
if(nv){
source.value = props.value;
}
})
function submitCallback(e: Event) {
e.stopPropagation();
errors.value = htmlPanelCodeRef.value.getErrors();
if(errors.value.length > 0) return;
emits("update:value", source.value);
emits("update:show", false);
source.value = "";
}
</script>
<style scoped lang="less">
</style>