45 lines
941 B
Vue
45 lines
941 B
Vue
<template>
|
|
<el-input
|
|
id="source-json"
|
|
v-model="sourceString"
|
|
type="textarea"
|
|
placeholder="这里输出序列化的JSON数据,可直接导入'阅读'APP"
|
|
:rows="30"
|
|
@change="update"
|
|
style="margin-bottom: 4px"
|
|
></el-input>
|
|
</template>
|
|
<script setup lang="ts">
|
|
import { useSourceStore } from '@/store'
|
|
|
|
const store = useSourceStore()
|
|
const sourceString = ref('')
|
|
const update = async (string: string) => {
|
|
try {
|
|
store.changeEditTabSource(JSON.parse(string))
|
|
} catch {
|
|
ElMessage({
|
|
message: '粘贴的源格式错误',
|
|
type: 'error',
|
|
})
|
|
}
|
|
}
|
|
|
|
watchEffect(async () => {
|
|
const source = store.editTabSource
|
|
if (Object.keys(source).length > 0) {
|
|
sourceString.value = JSON.stringify(source, null, 4)
|
|
} else {
|
|
sourceString.value = ''
|
|
}
|
|
})
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
:deep(.el-input) {
|
|
width: 100%;
|
|
}
|
|
:deep(#source-json) {
|
|
height: calc(100vh - 50px);
|
|
}
|
|
</style>
|