60 lines
2.4 KiB
Vue
60 lines
2.4 KiB
Vue
|
||
<template>
|
||
<Source src="/code/DataTable.vue"></Source>
|
||
<el-row>
|
||
<el-col :span="2" style="vertical-align: center;">服务器地址:</el-col>
|
||
<el-col :span="8"><el-input v-model="dataUrl" ></el-input></el-col>
|
||
<el-col :span="1"></el-col>
|
||
<el-col :span="1"><el-button plain type="primary" @click="bindDataForTable">填充数据</el-button></el-col>
|
||
<el-col :span="1"></el-col>
|
||
<el-col :span="1"><el-button plain type="primary" @click="clearDataTable">清除数据</el-button></el-col>
|
||
<el-col :span="1"></el-col>
|
||
<el-col :span="1"><el-button plain type="primary" @click="execCommand('preview')">打印预览</el-button></el-col>
|
||
<el-col :span="1"></el-col>
|
||
<el-col :span="1"><el-button plain type="primary" @click="execCommand('print')">打印</el-button></el-col>
|
||
</el-row>
|
||
<Editor @load="onLoad" doc="/mock/data_table.html" mode="design" style="margin: 10px 0;"></Editor>
|
||
|
||
|
||
</template>
|
||
|
||
<script>
|
||
|
||
import axios from 'axios'
|
||
|
||
export default{
|
||
data(){
|
||
return{
|
||
editor:null,
|
||
//服务端地址
|
||
dataUrl:'https://www.x-emr.cn/doc/list.json'
|
||
}
|
||
},
|
||
methods:{
|
||
|
||
//加载编辑器
|
||
onLoad: function(e) {
|
||
this.editor = e.target.contentWindow.editor
|
||
},
|
||
|
||
//获取数据到表格
|
||
bindDataForTable: function() {
|
||
axios.get(this.dataUrl).then(res=>{
|
||
this.editor.bindDataList('list', res.data)
|
||
|
||
let html = `<field tabindex="0" id="" type="DropdownList" contenteditable="false" class="blank input" title="请选择" data-list="[{"value":"0","text":"选项1"},{"value":"1","text":"选项2"}]" name="" data-code="" data-expression="" event="undefined" multi="false" validate="false" data-show-vaule="" data-show-id="">请选择</field>`
|
||
this.editor.$('#list tr:not(:first) td:nth-child(3)').html(html)
|
||
|
||
})
|
||
},
|
||
//清除数据表格
|
||
clearDataTable: function() {
|
||
this.editor.bindDataList('list', [])
|
||
},
|
||
execCommand : function(cmd){
|
||
this.editor.execCommand(cmd)
|
||
}
|
||
}
|
||
|
||
}
|
||
</script> |