接入avue
This commit is contained in:
@@ -3,15 +3,23 @@
|
||||
<config-item label="数据类型">
|
||||
<ai-select v-model="source.dataType" placeholder="请选择数据类型" :select-list="dataTypes"/>
|
||||
</config-item>
|
||||
<config-item label="静态数据" v-if="source.dataType === 'staticData'">
|
||||
</config-item>
|
||||
<div class="codeEditor" v-if="['htmlData','staticData'].includes(source.dataType)">
|
||||
<div class="codeEditor" v-if="['htmlData'].includes(source.dataType)">
|
||||
<ai-dialog-btn :modal="false" dialog-title="编辑器" :customFooter="false"
|
||||
@confirm="changeData(JSON.parse(content))" @open="content=contentstr">
|
||||
<code-editor slot="btn" readonly :value="contentstr" :lang="dataLang" theme="github" width="100%" height="250"/>
|
||||
<code-editor v-model="content" :lang="dataLang" theme="github" width="100%" height="440" wrap/>
|
||||
</ai-dialog-btn>
|
||||
</div>
|
||||
<template v-else-if="source.dataType === 'staticData'">
|
||||
<config-item label="设置列" class="tableStyle">
|
||||
<div class="fill">
|
||||
<table-editor v-model="colConfigs" :configs="[{field:'field',headerName:'属性',width:100},{field:'headerName',headerName:'名称',width:100}]"/>
|
||||
</div>
|
||||
</config-item>
|
||||
<config-item label="设置数据" class="tableStyle" v-if="colConfigs.length>0">
|
||||
<table-editor v-model="content" :configs="colConfigs"/>
|
||||
</config-item>
|
||||
</template>
|
||||
<config-item v-else-if="source.dataType === 'dynamicData'" label="数据源">
|
||||
<ai-select v-model="source.sourceDataId" placeholder="请选择数据源" :instance="instance"
|
||||
:prop="{label:'description'}" @change="changeData"
|
||||
@@ -31,10 +39,11 @@ import 'brace/mode/json'
|
||||
import 'brace/snippets/json';
|
||||
import 'brace/theme/github';
|
||||
import 'brace/theme/monokai';
|
||||
import TableEditor from "./tableEditor.vue";
|
||||
|
||||
export default {
|
||||
name: "datasourcePicker",
|
||||
components: {ConfigItem, AiDialogBtn, CodeEditor},
|
||||
components: {TableEditor, ConfigItem, AiDialogBtn, CodeEditor},
|
||||
model: {
|
||||
event: "input",
|
||||
prop: "options"
|
||||
@@ -47,7 +56,8 @@ export default {
|
||||
return {
|
||||
dataTypes: Object.entries(DvCompData.types).map(e => ({id: e[0], label: e[1]})),
|
||||
content: "",
|
||||
loading: false
|
||||
loading: false,
|
||||
colConfigs: []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -78,5 +88,9 @@ export default {
|
||||
position: relative;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.tableStyle {
|
||||
align-items: normal;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,23 +1,42 @@
|
||||
<script>
|
||||
import {AgGridVue} from "ag-grid-vue";
|
||||
import "ag-grid-community/styles/ag-grid.min.css"
|
||||
import "ag-grid-community/styles/ag-theme-balham.min.css"
|
||||
import Vue from 'vue'
|
||||
|
||||
console.log(window.AVUE)
|
||||
export default {
|
||||
name: "tableEditor",
|
||||
model: {
|
||||
event: "input",
|
||||
prop: "tableData"
|
||||
},
|
||||
props: {
|
||||
tableData: {default: () => []},
|
||||
configs: {default: () => []}
|
||||
},
|
||||
components: {AgGridVue},
|
||||
computed: {
|
||||
columns: v => v.configs
|
||||
},
|
||||
created() {
|
||||
Vue.use(window.AVUE, {
|
||||
size: 'small',
|
||||
tableSize: 'small',
|
||||
calcHeight: 48,
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<section class="tableEditor">
|
||||
<ag-grid-vue class="ag-theme-balham" :columnDefs="columns" :rowData="tableData"/>
|
||||
<avue-crud/>
|
||||
</section>
|
||||
</template>
|
||||
<style scoped lang="scss">
|
||||
.tableEditor {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
|
||||
.ag-theme-balham {
|
||||
height: 300px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user