Merge branch 'dev' into v1.18
This commit is contained in:
commit
94bdaa8506
@ -808,7 +808,8 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
}
|
}
|
||||||
return stringBuilder.toString();
|
return stringBuilder.toString();
|
||||||
}).toArray(String[]::new);
|
}).toArray(String[]::new);
|
||||||
return MessageFormat.format("SELECT {0} FROM {1} LIMIT DE_OFFSET, DE_PAGE_SIZE ", StringUtils.join(array, ","), String.format(MySQLConstants.KEYWORD_TABLE, table));
|
table = table.trim().startsWith("(") ? table : String.format(MySQLConstants.KEYWORD_TABLE, table);
|
||||||
|
return MessageFormat.format("SELECT {0} FROM {1} LIMIT DE_OFFSET, DE_PAGE_SIZE ", StringUtils.join(array, ","), table);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTotalCount(boolean isTable, String sql, Datasource ds) {
|
public String getTotalCount(boolean isTable, String sql, Datasource ds) {
|
||||||
@ -821,7 +822,7 @@ public class MysqlQueryProvider extends QueryProvider {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String createRawQuerySQLAsTmp(String sql, List<DatasetTableField> fields) {
|
public String createRawQuerySQLAsTmp(String sql, List<DatasetTableField> fields) {
|
||||||
return createRawQuerySQL(" (" + sqlFix(sql) + ") AS DE_TEMP", fields, null);
|
return createRawQuerySQL("(" + sqlFix(sql) + ") AS DE_TEMP", fields, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String transTreeItem(SQLObj tableObj, DatasetRowPermissionsTreeItem item) {
|
public String transTreeItem(SQLObj tableObj, DatasetRowPermissionsTreeItem item) {
|
||||||
|
|||||||
@ -37,7 +37,6 @@ import 'tinymce/plugins/nonbreaking'
|
|||||||
import 'tinymce/plugins/pagebreak'
|
import 'tinymce/plugins/pagebreak'
|
||||||
import { mapState } from 'vuex'
|
import { mapState } from 'vuex'
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import xssCheck from 'xss'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DeRichText',
|
name: 'DeRichText',
|
||||||
@ -78,7 +77,7 @@ export default {
|
|||||||
canEdit: false,
|
canEdit: false,
|
||||||
// 初始化配置
|
// 初始化配置
|
||||||
tinymceId: 'tinymce-' + this.element.id,
|
tinymceId: 'tinymce-' + this.element.id,
|
||||||
myValue: xssCheck(this.propValue),
|
myValue: this.propValue,
|
||||||
init: {
|
init: {
|
||||||
selector: '#tinymce-' + this.element.id,
|
selector: '#tinymce-' + this.element.id,
|
||||||
toolbar_items_size: 'small',
|
toolbar_items_size: 'small',
|
||||||
|
|||||||
@ -38,7 +38,6 @@ import 'tinymce/plugins/pagebreak'
|
|||||||
import { mapState } from 'vuex'
|
import { mapState } from 'vuex'
|
||||||
import bus from '@/utils/bus'
|
import bus from '@/utils/bus'
|
||||||
import { uuid } from 'vue-uuid'
|
import { uuid } from 'vue-uuid'
|
||||||
import xssCheck from 'xss'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'DeRichTextView',
|
name: 'DeRichTextView',
|
||||||
@ -140,6 +139,10 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
myValue(newValue) {
|
myValue(newValue) {
|
||||||
|
if (this.canEdit) {
|
||||||
|
const ed = tinymce.editors[this.tinymceId]
|
||||||
|
this.element.propValue.textValue = ed.getContent()
|
||||||
|
}
|
||||||
this.initReady && this.$store.commit('canvasChange')
|
this.initReady && this.$store.commit('canvasChange')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -153,7 +156,7 @@ export default {
|
|||||||
viewInit() {
|
viewInit() {
|
||||||
bus.$on('fieldSelect-' + this.element.propValue.viewId, this.fieldSelect)
|
bus.$on('fieldSelect-' + this.element.propValue.viewId, this.fieldSelect)
|
||||||
tinymce.init({})
|
tinymce.init({})
|
||||||
this.myValue = xssCheck(this.assignment(this.element.propValue.textValue))
|
this.myValue = this.assignment(this.element.propValue.textValue)
|
||||||
bus.$on('initCurFields-' + this.element.id, this.initCurFieldsChange)
|
bus.$on('initCurFields-' + this.element.id, this.initCurFieldsChange)
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.initReady = true
|
this.initReady = true
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import { uuid } from 'vue-uuid'
|
|||||||
import store from '@/store'
|
import store from '@/store'
|
||||||
import { AIDED_DESIGN, MOBILE_SETTING, PAGE_LINE_DESIGN, PANEL_CHART_INFO, TAB_COMMON_STYLE } from '@/views/panel/panel'
|
import { AIDED_DESIGN, MOBILE_SETTING, PAGE_LINE_DESIGN, PANEL_CHART_INFO, TAB_COMMON_STYLE } from '@/views/panel/panel'
|
||||||
import html2canvas from 'html2canvasde'
|
import html2canvas from 'html2canvasde'
|
||||||
|
import xssCheck from 'xss'
|
||||||
|
|
||||||
export function deepCopy(target) {
|
export function deepCopy(target) {
|
||||||
if (typeof target === 'object' && target !== null) {
|
if (typeof target === 'object' && target !== null) {
|
||||||
@ -101,6 +102,9 @@ export function panelDataPrepare(componentData, componentStyle, callback) {
|
|||||||
componentStyle.chartCommonStyle = deepCopy(COMMON_BACKGROUND)
|
componentStyle.chartCommonStyle = deepCopy(COMMON_BACKGROUND)
|
||||||
}
|
}
|
||||||
componentData.forEach((item, index) => {
|
componentData.forEach((item, index) => {
|
||||||
|
if (item.component && item.component === 'v-text') {
|
||||||
|
item.propValue = xssCheck(item.propValue)
|
||||||
|
}
|
||||||
if (item.component && item.component === 'de-date') {
|
if (item.component && item.component === 'de-date') {
|
||||||
const widget = ApplicationContext.getService(item.serviceName)
|
const widget = ApplicationContext.getService(item.serviceName)
|
||||||
if (item.options.attrs &&
|
if (item.options.attrs &&
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user