export default OakComponent({ entity: 'article', projection: { id: 1, name: 1, content: 1, articleMenu: { id: 1, }, }, isList: false, formData: function ({ data: article, features }) { return { id: article?.id, content: article?.content, name: article?.name, articleMenuId: article?.articleMenuId, }; }, data: { editor: null, html: '', origin1: 'qiniu', contentTip: false, }, properties: { articleMenuId: '', changeIsEdit: () => undefined, }, listeners: { 'editor,content'(prev, next) { if (next.editor && next.content) { next.editor.setHtml(next.content); } }, oakId(prev, next) { if (prev.oakId !== next.oakId) { const { editor } = this.state; if (editor == null) return; editor.destroy(); this.setEditor(null); } }, }, lifetimes: { async ready() { const { oakId, articleMenuId } = this.props; if (!oakId) { if (articleMenuId) { this.update({ articleMenuId, }); const { editor } = this.state; editor?.setHtml(''); this.update({ content: '', }); } } else { } }, detached() { const { editor } = this.state; if (editor == null) return; editor.destroy(); this.setEditor(null); }, }, methods: { // async addExtraFile( // extraFile: EntityDict['extraFile']['CreateSingle']['data'] // ) { // const result = await this.features.cache.operate('extraFile', { // action: 'create', // data: extraFile, // id: generateNewId(), // }); // return result; // }, async uploadFile(extraFile) { const result = await this.features.extraFile.createAndUpload(extraFile); return result; }, setEditor(editor) { this.setState({ editor, }); }, clearContentTip() { this.setState({ contentTip: false, }); }, async check() { if (this.state.name && this.state.name.length > 0 && this.state.content && this.state.content.length > 0 && this.state.html !== '