uniapp或vue3项目适用的HTML在线编辑器AsaiEditor.vue

AsaiEditor.vue在线html编辑器

<script setup>
import {
    reactive, computed } from 'vue';

name: 'AsaiEditor';

const props = defineProps({
   
	modelValue: [String, Number],
	edittype: String,
	placeholder: String,
	id: {
    type: String, default: 'edit' },
	readOnly: {
   
		type: Boolean,
		default: false
	}
});

const emits = defineEmits(['update:modelValue']);

const asaiData = reactive({
   
	formats: {
   },
	readOnly: props.readOnly,
	editorHtml: null
});

function textToHtml(value) {
   
	if (asaiData.editorHtml) {
   
		asaiData.editorHtml.setContents({
   
			html: value,
			success(res) {
   }
		});
	}
}
function emitValue(value) {
   
	emits('update:modelValue', value);
}
function onFocus(e) {
   
	console.log(666.10011, e);
	emitValue(e.detail.html);
}
function onInput(e) {
   
	console.log(666.10012, e);
	emitValue(e.detail.html);
}
function onBlur(e) {
   
	console.log(666.10013, e);
	emitValue(e.detail.html);
}
function onReady() {
   
	uni.createSelectorQuery()
		.select('#' + props.id)
		.context(res => {
   
			asaiData.editorHtml = res.context;
			textToHtml(props.modelValue);
		})
		.exec();
}
function readOnlyChange() {
   
	asaiData.readOnly = !asaiData.readOnly;
}
function undo() {
   
	asaiData.editorHtml.undo();
}
function redo() {
   
	asaiData.editorHtml.redo();
}
function format(e) {
   
	console.log(666.20021, e);
	let {
    name, value } = e.target.dataset;
	if (!name) {
   
		return;
	}
	asaiData.editorHtml.format(name, value);
}
function onStatusChange(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿赛工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值