刘光辉
12 小时以前 0dfe84494048ce27ba8449831782128412d3eb13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script setup lang="ts">
import type { OnlyOfficeBridge } from './onlyoffice/bridge';
import { computed, inject, onBeforeUnmount } from 'vue';
import FieldDraftList from './components/FieldDraftList.vue';
import { useTemplateFiller } from './composables/useTemplateFiller';
const bridge = inject<OnlyOfficeBridge | null>('onlyOfficeBridge', null);
const filler = bridge ? useTemplateFiller(bridge) : null;
const store = filler?.store;
const disabled = computed(() => !filler || store?.status !== 'ready' || !filler.canFill());
onBeforeUnmount(() => filler?.dispose());
</script>
<template>
  <main class="plugin-shell">
    <header><a-tag color="success">{{ store?.message || 'SDK 不可用' }}</a-tag><span>v0.1.0</span></header>
    <a-alert v-if="store?.status === 'error'" type="error" :message="store.message" show-icon />
    <FieldDraftList v-if="store" :disabled="disabled" :errors="store.fieldErrors" :fields="store.fields" @update="store.setDraft" />
    <footer><a-button type="primary" block :disabled="disabled" :loading="store?.status === 'working'" @click="filler?.apply()">应用到文档</a-button></footer>
  </main>
</template>