| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | {{define "promptModal"}}<a-modal id="prompt-modal" v-model="promptModal.visible" :title="promptModal.title"         :closable="true" @ok="promptModal.ok" :mask-closable="false"         :class="themeSwitcher.darkCardClass"         :ok-text="promptModal.okText" cancel-text='{{ i18n "cancel" }}' :class="themeSwitcher.currentTheme">    <a-input id="prompt-modal-input" :type="promptModal.type"             v-model="promptModal.value"             :autosize="{minRows: 10, maxRows: 20}"             @keydown.enter.native="promptModal.keyEnter"             @keydown.ctrl.83="promptModal.ctrlS"></a-input></a-modal><script>    const promptModal = {        title: '',        type: '',        value: '',        okText: '{{ i18n "sure"}}',        visible: false,        keyEnter(e) {            if (this.type !== 'textarea') {                e.preventDefault();                this.ok();            }        },        ctrlS(e) {            if (this.type === 'textarea') {                e.preventDefault();                promptModal.confirm(promptModal.value);            }        },        ok() {            promptModal.close();            promptModal.confirm(promptModal.value);        },        confirm() {},        open({            title = '',            type = 'text',            value = '',            okText = '{{ i18n "sure"}}',            confirm = () => {},        }) {            this.title = title;            this.type = type;            this.value = value;            this.okText = okText;            this.confirm = confirm;            this.visible = true;            promptModalApp.$nextTick(() => {                document.querySelector('#prompt-modal-input').focus();            });        },        close() {            this.visible = false;        }    };    const promptModalApp = new Vue({        el: '#prompt-modal',        data: {            promptModal: promptModal,        },    });</script>{{end}}
 |