mirror of
				https://github.com/MHSanaei/3x-ui.git
				synced 2025-11-03 22:02:52 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			71 lines
		
	
	
		
			No EOL
		
	
	
		
			2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			No EOL
		
	
	
		
			2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
{{define "modals/promptModal"}}
 | 
						|
<a-modal id="prompt-modal" v-model="promptModal.visible" :title="promptModal.title"
 | 
						|
         :closable="true" @ok="promptModal.ok" :mask-closable="false"
 | 
						|
         :confirm-loading="promptModal.confirmLoading"
 | 
						|
         :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,
 | 
						|
        confirmLoading: 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.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;
 | 
						|
        },
 | 
						|
        loading(loading=true) {
 | 
						|
            this.confirmLoading = loading;
 | 
						|
        },
 | 
						|
    };
 | 
						|
 | 
						|
    const promptModalApp = new Vue({
 | 
						|
        el: '#prompt-modal',
 | 
						|
        data: {
 | 
						|
            promptModal: promptModal,
 | 
						|
        },
 | 
						|
    });
 | 
						|
 | 
						|
</script>
 | 
						|
{{end}} |