一,在textarea中加入id
<el-form-item :label="$t('message_template_content')" prop="content">
<el-input
type="textarea"
id="textarea"
:autosize="{ minRows: 5, maxRows: 10}"
:placeholder="$t('common_input')"
v-model="messageTemplate.content"
/>
</el-form-item>
二、在methods中写入方法
async insertVariable(value) {
const myField = document.querySelector('#textarea');
// const myField = this.$refs.singleText;
console.log('myField--',myField);
if(myField.selectionStart || myField.selectionStart === 0) {
let startPos = myField.selectionStart;
let endPos = myField.selectionEnd;
this.messageTemplate.content = myField.value.substring(0, startPos) + value
+ myField.value.substring(endPos, myField.value.length);
await this.$nextTick() // 这句是重点, 圈起来
myField.focus();
myField.setSelectionRange(endPos + value.length, endPos + value.length);
} else {
this.messageTemplate.content = value;
}
},