| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <template>
- <el-input
- v-if="isBookSource"
- id="debug-key"
- v-model="searchKey"
- placeholder="搜索书名、作者"
- :prefix-icon="Search"
- style="padding-bottom: 4px"
- @keydown.enter="startDebug"
- />
- <el-input
- id="debug-text"
- v-model="printDebug"
- type="textarea"
- readonly
- :rows="29"
- placeholder="这里用于输出调试信息"
- />
- </template>
- <script setup lang="ts">
- import API from '@api'
- import { Search } from '@element-plus/icons-vue'
- const store = useSourceStore()
- const printDebug = ref('')
- const searchKey = ref('')
- watch(
- () => store.isDebuging,
- () => {
- if (store.isDebuging) startDebug()
- },
- )
- const appendDebugMsg = (msg: string) => {
- const debugDom = document.querySelector('#debug-text')
- debugDom!.scrollTop = debugDom!.scrollHeight
- printDebug.value += msg + '\n'
- }
- const startDebug = async () => {
- printDebug.value = ''
- try {
- await API.saveSource(store.currentSource)
- } catch (e) {
- store.debugFinish()
- throw e
- }
- API.debug(
- store.currentSourceUrl,
- searchKey.value || store.searchKey,
- appendDebugMsg,
- store.debugFinish,
- )
- }
- const isBookSource = computed(() => {
- return /bookSource/i.test(window.location.href)
- })
- </script>
- <style lang="scss" scoped>
- :deep(#debug-text) {
- height: calc(100vh - 45px - 36px - 5px);
- }
- </style>
|