forked from github/dataease
Merge branch 'dev' of github.com:dataease/dataease into dev
This commit is contained in:
commit
29dd75617e
@ -98,9 +98,6 @@
|
|||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test='record.modelType != null and record.modelType == "dataset"'>
|
|
||||||
or (v_auth_model.`model_inner_type` = 'group' and v_auth_model.model_type = 'dataset')
|
|
||||||
</if>
|
|
||||||
ORDER BY v_auth_model.node_type desc, CONVERT(v_auth_model.label using gbk) asc
|
ORDER BY v_auth_model.node_type desc, CONVERT(v_auth_model.label using gbk) asc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
@ -456,12 +456,12 @@ public class DataSetTableService {
|
|||||||
RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class);
|
RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class);
|
||||||
CurrentUserDto user = AuthUtils.getUser();
|
CurrentUserDto user = AuthUtils.getUser();
|
||||||
userId = user != null ? user.getUserId() : userId;
|
userId = user != null ? user.getUserId() : userId;
|
||||||
List<Long> roleIds ;
|
List<Long> roleIds;
|
||||||
Long deptId ;
|
Long deptId;
|
||||||
if(user != null){
|
if (user != null) {
|
||||||
deptId = user.getDeptId();
|
deptId = user.getDeptId();
|
||||||
roleIds = user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList());
|
roleIds = user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList());
|
||||||
}else {
|
} else {
|
||||||
deptId = authUserService.getUserById(userId).getDeptId();
|
deptId = authUserService.getUserById(userId).getDeptId();
|
||||||
roleIds = authUserService.roles(userId).stream().map(r -> Long.valueOf(r)).collect(Collectors.toList());
|
roleIds = authUserService.roles(userId).stream().map(r -> Long.valueOf(r)).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
@ -491,20 +491,24 @@ public class DataSetTableService {
|
|||||||
|
|
||||||
public List<ChartFieldCustomFilterDTO> getCustomFilters(List<DatasetTableField> fields, DatasetTable datasetTable, Long user) {
|
public List<ChartFieldCustomFilterDTO> getCustomFilters(List<DatasetTableField> fields, DatasetTable datasetTable, Long user) {
|
||||||
List<ChartFieldCustomFilterDTO> customFilter = new ArrayList<>();
|
List<ChartFieldCustomFilterDTO> customFilter = new ArrayList<>();
|
||||||
for (DatasetRowPermissions datasetRowPermissions : rowPermissions(datasetTable.getId(), user)){
|
for (DatasetRowPermissions datasetRowPermissions : rowPermissions(datasetTable.getId(), user)) {
|
||||||
ChartFieldCustomFilterDTO dto = new ChartFieldCustomFilterDTO();
|
ChartFieldCustomFilterDTO dto = new ChartFieldCustomFilterDTO();
|
||||||
DatasetTableField field = getFieldById(fields, datasetRowPermissions.getDatasetFieldId());
|
DatasetTableField field = getFieldById(fields, datasetRowPermissions.getDatasetFieldId());
|
||||||
if(field == null){continue;}
|
if (field == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
dto.setField(field);
|
dto.setField(field);
|
||||||
dto.setId(field.getId());
|
dto.setId(field.getId());
|
||||||
dto.setFilterType(datasetRowPermissions.getFilterType());
|
dto.setFilterType(datasetRowPermissions.getFilterType());
|
||||||
if(datasetRowPermissions.getFilterType().equalsIgnoreCase("logic")){
|
if (datasetRowPermissions.getFilterType().equalsIgnoreCase("logic")) {
|
||||||
List<ChartCustomFilterItemDTO> lists = JSONObject.parseArray(datasetRowPermissions.getFilter(), ChartCustomFilterItemDTO.class);
|
List<ChartCustomFilterItemDTO> lists = JSONObject.parseArray(datasetRowPermissions.getFilter(), ChartCustomFilterItemDTO.class);
|
||||||
lists.forEach(chartCustomFilterDTO -> { chartCustomFilterDTO.setFieldId(field.getId()); });
|
lists.forEach(chartCustomFilterDTO -> {
|
||||||
|
chartCustomFilterDTO.setFieldId(field.getId());
|
||||||
|
});
|
||||||
dto.setFilter(lists);
|
dto.setFilter(lists);
|
||||||
dto.setLogic(datasetRowPermissions.getLogic());
|
dto.setLogic(datasetRowPermissions.getLogic());
|
||||||
customFilter.add(dto);
|
customFilter.add(dto);
|
||||||
}else {
|
} else {
|
||||||
dto.setEnumCheckField(Arrays.asList(datasetRowPermissions.getEnumCheckField().split(",").clone()));
|
dto.setEnumCheckField(Arrays.asList(datasetRowPermissions.getEnumCheckField().split(",").clone()));
|
||||||
customFilter.add(dto);
|
customFilter.add(dto);
|
||||||
}
|
}
|
||||||
@ -1308,9 +1312,9 @@ public class DataSetTableService {
|
|||||||
DatasetTableField parentField = dataSetTableFieldsService.get(unionItemDTO.getParentField().getId());
|
DatasetTableField parentField = dataSetTableFieldsService.get(unionItemDTO.getParentField().getId());
|
||||||
DatasetTableField currentField = dataSetTableFieldsService.get(unionItemDTO.getCurrentField().getId());
|
DatasetTableField currentField = dataSetTableFieldsService.get(unionItemDTO.getCurrentField().getId());
|
||||||
|
|
||||||
join.append(String.format(keyword, parentTableName)).append(".").append(parentField.getOriginName())
|
join.append(String.format(keyword, parentTableName)).append(".").append(String.format(keyword, parentField.getOriginName()))
|
||||||
.append(" = ")
|
.append(" = ")
|
||||||
.append(String.format(keyword, currentTableName)).append(".").append(currentField.getOriginName());
|
.append(String.format(keyword, currentTableName)).append(".").append(String.format(keyword, currentField.getOriginName()));
|
||||||
if (i < unionParamDTO.getUnionFields().size() - 1) {
|
if (i < unionParamDTO.getUnionFields().size() - 1) {
|
||||||
join.append(" AND ");
|
join.append(" AND ");
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
:out-style="config.style"
|
:out-style="config.style"
|
||||||
:element="config"
|
:element="config"
|
||||||
:in-screen="inScreen"
|
:in-screen="inScreen"
|
||||||
|
:edit-mode="'preview'"
|
||||||
:h="config.style.height"
|
:h="config.style.height"
|
||||||
/>
|
/>
|
||||||
<component
|
<component
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
import { BASE_MOBILE_STYLE, HYPERLINKS } from '@/components/canvas/custom-component/component-list'
|
import {
|
||||||
|
BASE_MOBILE_STYLE,
|
||||||
|
HYPERLINKS
|
||||||
|
} from '@/components/canvas/custom-component/component-list'
|
||||||
|
|
||||||
export function deepCopy(target) {
|
export function deepCopy(target) {
|
||||||
if (typeof target === 'object') {
|
if (typeof target === 'object') {
|
||||||
@ -61,7 +64,7 @@ export function mobile2MainCanvas(mainSource, mobileSource) {
|
|||||||
export function panelInit(componentDatas) {
|
export function panelInit(componentDatas) {
|
||||||
componentDatas.forEach(item => {
|
componentDatas.forEach(item => {
|
||||||
if (item.component && item.component === 'de-date') {
|
if (item.component && item.component === 'de-date') {
|
||||||
if (item.options.attrs && !item.options.attrs.default) {
|
if (item.serviceName === 'timeDateWidget' && item.options.attrs && !item.options.attrs.default) {
|
||||||
item.options.attrs.default = {
|
item.options.attrs.default = {
|
||||||
isDynamic: false,
|
isDynamic: false,
|
||||||
dkey: 0,
|
dkey: 0,
|
||||||
@ -70,6 +73,18 @@ export function panelInit(componentDatas) {
|
|||||||
dynamicSuffix: 'before'
|
dynamicSuffix: 'before'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (item.serviceName === 'timeDateRangeWidget' && item.options.attrs && !item.options.attrs.default) {
|
||||||
|
item.options.attrs.default = {
|
||||||
|
isDynamic: false,
|
||||||
|
dkey: 0,
|
||||||
|
sDynamicPrefix: 1,
|
||||||
|
sDynamicInfill: 'day',
|
||||||
|
sDynamicSuffix: 'before',
|
||||||
|
eDynamicPrefix: 1,
|
||||||
|
eDynamicInfill: 'day',
|
||||||
|
eDynamicSuffix: 'after'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (item.filters && item.filters.length > 0) {
|
if (item.filters && item.filters.length > 0) {
|
||||||
item.filters = []
|
item.filters = []
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import elementResizeDetectorMaker from 'element-resize-detector'
|
import elementResizeDetectorMaker from 'element-resize-detector'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
export default {
|
export default {
|
||||||
name: 'DeOutWidget',
|
name: 'DeOutWidget',
|
||||||
props: {
|
props: {
|
||||||
@ -63,6 +64,11 @@ export default {
|
|||||||
h: {
|
h: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 50
|
default: 50
|
||||||
|
},
|
||||||
|
editMode: {
|
||||||
|
type: String,
|
||||||
|
require: false,
|
||||||
|
default: 'edit'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@ -70,26 +76,30 @@ export default {
|
|||||||
inputMaxSize: 46,
|
inputMaxSize: 46,
|
||||||
inputLargeSize: 42,
|
inputLargeSize: 42,
|
||||||
inputSmallSize: 38,
|
inputSmallSize: 38,
|
||||||
inputMiniSize: 34,
|
inputMiniSize: 32,
|
||||||
options: null,
|
options: null,
|
||||||
showNumber: false,
|
showNumber: false,
|
||||||
mainClass: ''
|
mainClass: '',
|
||||||
|
mainHeight: 75,
|
||||||
|
duHeight: 46
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
sizeInfo() {
|
sizeInfo() {
|
||||||
let size
|
let size
|
||||||
if (this.h > this.inputMaxSize) {
|
if (this.duHeight > this.inputMaxSize) {
|
||||||
return size
|
} else if (this.duHeight > this.inputLargeSize) {
|
||||||
} else if (this.h > this.inputLargeSize) {
|
|
||||||
size = 'medium'
|
size = 'medium'
|
||||||
} else if (this.h > this.inputSmallSize) {
|
} else if (this.duHeight > this.inputSmallSize) {
|
||||||
size = 'small'
|
size = 'small'
|
||||||
} else {
|
} else {
|
||||||
size = 'mini'
|
size = 'mini'
|
||||||
}
|
}
|
||||||
return size
|
return size
|
||||||
}
|
},
|
||||||
|
...mapState([
|
||||||
|
'curCanvasScale'
|
||||||
|
])
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.watchSize()
|
this.watchSize()
|
||||||
@ -102,12 +112,16 @@ export default {
|
|||||||
watchSize() {
|
watchSize() {
|
||||||
const erd = elementResizeDetectorMaker()
|
const erd = elementResizeDetectorMaker()
|
||||||
erd.listenTo(this.$refs.myContainer, ele => {
|
erd.listenTo(this.$refs.myContainer, ele => {
|
||||||
|
const deContentContainer = this.$refs.deContentContainer
|
||||||
|
const height = ele.offsetHeight
|
||||||
|
this.mainHeight = height
|
||||||
if (!this.element.options.attrs.title) {
|
if (!this.element.options.attrs.title) {
|
||||||
|
this.duHeight = this.mainHeight
|
||||||
|
deContentContainer.style.marginLeft = '0px'
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const height = ele.offsetHeight
|
|
||||||
const titleWidth = this.$refs.deTitle.offsetWidth
|
const titleWidth = this.$refs.deTitle.offsetWidth
|
||||||
const deContentContainer = this.$refs.deContentContainer
|
this.duHeight = height - titleWidth
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
let min = this.element.style.fontSize * 2 + 50
|
let min = this.element.style.fontSize * 2 + 50
|
||||||
if (this.element.component === 'de-number-range') {
|
if (this.element.component === 'de-number-range') {
|
||||||
|
@ -72,7 +72,8 @@ export default {
|
|||||||
this.setCondition()
|
this.setCondition()
|
||||||
},
|
},
|
||||||
'defaultValueStr': function(value, old) {
|
'defaultValueStr': function(value, old) {
|
||||||
if (this.element.serviceName === 'timeDateWidget' && this.element.options.attrs.default.isDynamic) {
|
if ((this.element.serviceName === 'timeDateWidget' || this.element.serviceName === 'timeDateRangeWidget') &&
|
||||||
|
this.element.options.attrs.default.isDynamic) {
|
||||||
// 如果设置了动态时间 不做任何操作
|
// 如果设置了动态时间 不做任何操作
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -82,7 +83,7 @@ export default {
|
|||||||
},
|
},
|
||||||
'defaultoptions': function(val, old) {
|
'defaultoptions': function(val, old) {
|
||||||
// console.log('default chaneg')
|
// console.log('default chaneg')
|
||||||
if (this.element.serviceName !== 'timeDateWidget') {
|
if (this.element.serviceName !== 'timeDateWidget' || this.element.serviceName === 'timeDateRangeWidget') {
|
||||||
if (!this.element.options.attrs.default.isDynamic) {
|
if (!this.element.options.attrs.default.isDynamic) {
|
||||||
this.values = this.fillValueDerfault()
|
this.values = this.fillValueDerfault()
|
||||||
this.dateChange(this.values)
|
this.dateChange(this.values)
|
||||||
@ -96,7 +97,8 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
if (this.element.serviceName === 'timeDateWidget' && this.element.options.attrs.default && this.element.options
|
if ((this.element.serviceName === 'timeDateWidget' || this.element.serviceName === 'timeDateRangeWidget') && this
|
||||||
|
.element.options.attrs.default && this.element.options
|
||||||
.attrs.default.isDynamic) {
|
.attrs.default.isDynamic) {
|
||||||
if (this.element.options.attrs.default) {
|
if (this.element.options.attrs.default) {
|
||||||
const widget = ApplicationContext.getService(this.element.serviceName)
|
const widget = ApplicationContext.getService(this.element.serviceName)
|
||||||
@ -177,10 +179,16 @@ export default {
|
|||||||
fillValueDerfault() {
|
fillValueDerfault() {
|
||||||
const defaultV = this.element.options.value === null ? '' : this.element.options.value.toString()
|
const defaultV = this.element.options.value === null ? '' : this.element.options.value.toString()
|
||||||
if (this.element.options.attrs.type === 'daterange') {
|
if (this.element.options.attrs.type === 'daterange') {
|
||||||
if (defaultV === null || typeof defaultV === 'undefined' || defaultV === '' || defaultV === '[object Object]') { return [] }
|
if (defaultV === null || typeof defaultV === 'undefined' || defaultV === '' || defaultV ===
|
||||||
|
'[object Object]') {
|
||||||
|
return []
|
||||||
|
}
|
||||||
return defaultV.split(',').map(item => parseFloat(item))
|
return defaultV.split(',').map(item => parseFloat(item))
|
||||||
} else {
|
} else {
|
||||||
if (defaultV === null || typeof defaultV === 'undefined' || defaultV === '' || defaultV === '[object Object]') { return null }
|
if (defaultV === null || typeof defaultV === 'undefined' || defaultV === '' || defaultV ===
|
||||||
|
'[object Object]') {
|
||||||
|
return null
|
||||||
|
}
|
||||||
return parseFloat(defaultV.split(',')[0])
|
return parseFloat(defaultV.split(',')[0])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
import { WidgetService } from '../service/WidgetService'
|
import {
|
||||||
|
WidgetService
|
||||||
|
} from '../service/WidgetService'
|
||||||
|
|
||||||
const leftPanel = {
|
const leftPanel = {
|
||||||
icon: 'iconfont icon-riqi',
|
icon: 'iconfont icon-riqi',
|
||||||
@ -15,7 +17,17 @@ const dialogPanel = {
|
|||||||
endPlaceholder: 'dedaterange.to_placeholder',
|
endPlaceholder: 'dedaterange.to_placeholder',
|
||||||
viewIds: [],
|
viewIds: [],
|
||||||
fieldId: '',
|
fieldId: '',
|
||||||
dragItems: []
|
dragItems: [],
|
||||||
|
default: {
|
||||||
|
isDynamic: false,
|
||||||
|
dkey: 0,
|
||||||
|
sDynamicPrefix: 1,
|
||||||
|
sDynamicInfill: 'day',
|
||||||
|
sDynamicSuffix: 'before',
|
||||||
|
eDynamicPrefix: 1,
|
||||||
|
eDynamicInfill: 'day',
|
||||||
|
eDynamicSuffix: 'after'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
value: ''
|
value: ''
|
||||||
},
|
},
|
||||||
@ -40,7 +52,9 @@ const drawPanel = {
|
|||||||
|
|
||||||
class TimeDateRangeServiceImpl extends WidgetService {
|
class TimeDateRangeServiceImpl extends WidgetService {
|
||||||
constructor(options = {}) {
|
constructor(options = {}) {
|
||||||
Object.assign(options, { name: 'timeDateRangeWidget' })
|
Object.assign(options, {
|
||||||
|
name: 'timeDateRangeWidget'
|
||||||
|
})
|
||||||
super(options)
|
super(options)
|
||||||
this.filterDialog = true
|
this.filterDialog = true
|
||||||
this.showSwitch = false
|
this.showSwitch = false
|
||||||
@ -66,6 +80,150 @@ class TimeDateRangeServiceImpl extends WidgetService {
|
|||||||
return field['deType'] === 1
|
return field['deType'] === 1
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
getStartDayOfWeek() {
|
||||||
|
var now = new Date() // 当前日期
|
||||||
|
var nowDayOfWeek = now.getDay()
|
||||||
|
var nowDay = now.getDate() // 当前日
|
||||||
|
var nowMonth = now.getMonth() // 当前月
|
||||||
|
var day = nowDayOfWeek || 7
|
||||||
|
return new Date(now.getFullYear(), nowMonth, nowDay + 1 - day)
|
||||||
|
}
|
||||||
|
getEndDayOfWeek() {
|
||||||
|
var now = new Date() // 当前日期
|
||||||
|
var nowDayOfWeek = now.getDay()
|
||||||
|
var nowDay = now.getDate() // 当前日
|
||||||
|
var nowMonth = now.getMonth() // 当前月
|
||||||
|
var day = nowDayOfWeek || 7
|
||||||
|
return new Date(now.getFullYear(), nowMonth, nowDay + 7 - day)
|
||||||
|
}
|
||||||
|
getStartDayOfMonth() {
|
||||||
|
var now = new Date()
|
||||||
|
var nowMonth = now.getMonth() // 当前月
|
||||||
|
var monthStartDate = new Date(now.getFullYear(), nowMonth, 1)
|
||||||
|
return monthStartDate
|
||||||
|
}
|
||||||
|
getEndDayOfMonth() {
|
||||||
|
var now = new Date()
|
||||||
|
var nowMonth = now.getMonth() // 当前月
|
||||||
|
var monthEndDate = new Date(now.getFullYear(), nowMonth, this.getMonthDays())
|
||||||
|
return monthEndDate
|
||||||
|
}
|
||||||
|
getStartQuarter() {
|
||||||
|
var now = new Date()
|
||||||
|
var nowMonth = now.getMonth()
|
||||||
|
const startMonth = Math.floor((nowMonth / 3)) * 3
|
||||||
|
return new Date(now.getFullYear(), startMonth, 1)
|
||||||
|
}
|
||||||
|
getEndQuarter() {
|
||||||
|
var now = new Date()
|
||||||
|
var nowMonth = now.getMonth()
|
||||||
|
const endMonth = Math.floor((nowMonth / 3)) * 3 + (nowMonth % 3)
|
||||||
|
const days = (endMonth === 5 || endMonth === 8) ? 30 : 31
|
||||||
|
return new Date(now.getFullYear(), endMonth, days)
|
||||||
|
}
|
||||||
|
getStartYear() {
|
||||||
|
var now = new Date()
|
||||||
|
return new Date(now.getFullYear(), 0, 1)
|
||||||
|
}
|
||||||
|
getEndYear() {
|
||||||
|
var now = new Date()
|
||||||
|
return new Date(now.getFullYear(), 11, 31)
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 获得本月天数
|
||||||
|
*
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
getMonthDays() {
|
||||||
|
var now = new Date()
|
||||||
|
var nowMonth = now.getMonth() // 当前月
|
||||||
|
var monthStartDate = new Date(now.getFullYear(), nowMonth, 1)
|
||||||
|
var monthEndDate = new Date(now.getFullYear(), nowMonth + 1, 1)
|
||||||
|
var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24)
|
||||||
|
return days
|
||||||
|
}
|
||||||
|
customTime(dynamicPrefix, dynamicInfill, dynamicSuffix) {
|
||||||
|
if (dynamicInfill === 'day') {
|
||||||
|
const oneday = 24 * 3600 * 1000
|
||||||
|
const step = oneday * dynamicPrefix
|
||||||
|
return dynamicSuffix === 'before' ? (Date.now() - step) : (Date.now() + step)
|
||||||
|
}
|
||||||
|
if (dynamicInfill === 'week') {
|
||||||
|
const oneday = 24 * 3600 * 1000
|
||||||
|
const step = oneday * dynamicPrefix * 7
|
||||||
|
return dynamicSuffix === 'before' ? (Date.now() - step) : (Date.now() + step)
|
||||||
|
}
|
||||||
|
if (dynamicInfill === 'month') {
|
||||||
|
const now = new Date()
|
||||||
|
const nowMonth = now.getMonth()
|
||||||
|
const nowYear = now.getFullYear()
|
||||||
|
const nowDate = now.getDate()
|
||||||
|
|
||||||
|
const tarYear = nowYear
|
||||||
|
if (dynamicSuffix === 'before') {
|
||||||
|
const deffMonth = nowMonth - dynamicPrefix
|
||||||
|
let diffYear = deffMonth / 12
|
||||||
|
if (deffMonth < 0) {
|
||||||
|
diffYear -= 1
|
||||||
|
}
|
||||||
|
return new Date(tarYear + diffYear, nowMonth - dynamicPrefix % 12, nowDate).getTime()
|
||||||
|
} else {
|
||||||
|
const deffMonth = nowMonth + dynamicPrefix
|
||||||
|
const diffYear = deffMonth / 12
|
||||||
|
return new Date(tarYear + diffYear, deffMonth % 12, nowDate).getTime()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (dynamicInfill === 'year') {
|
||||||
|
const now = new Date()
|
||||||
|
const nowMonth = now.getMonth()
|
||||||
|
const nowYear = now.getFullYear()
|
||||||
|
const nowDate = now.getDate()
|
||||||
|
|
||||||
|
return new Date(dynamicSuffix === 'before' ? (nowYear - dynamicPrefix) : (nowYear + dynamicPrefix), nowMonth, nowDate).getTime()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dynamicDateFormNow(element) {
|
||||||
|
if (element.options.attrs.default === null || typeof element.options.attrs.default === 'undefined' || !element.options.attrs.default.isDynamic) return null
|
||||||
|
|
||||||
|
if (element.options.attrs.default.dkey === 0) {
|
||||||
|
// 本周
|
||||||
|
return [this.getStartDayOfWeek().getTime(), this.getEndDayOfWeek().getTime()]
|
||||||
|
}
|
||||||
|
|
||||||
|
if (element.options.attrs.default.dkey === 1) {
|
||||||
|
return [this.getStartDayOfMonth().getTime(), this.getEndDayOfMonth().getTime()]
|
||||||
|
}
|
||||||
|
|
||||||
|
if (element.options.attrs.default.dkey === 2) {
|
||||||
|
return [this.getStartQuarter().getTime(), this.getEndQuarter().getTime()]
|
||||||
|
}
|
||||||
|
if (element.options.attrs.default.dkey === 3) {
|
||||||
|
return [this.getStartYear().getTime(), this.getEndYear().getTime()]
|
||||||
|
}
|
||||||
|
|
||||||
|
if (element.options.attrs.default.dkey === 4) {
|
||||||
|
const sDynamicPrefix = parseInt(element.options.attrs.default.sDynamicPrefix)
|
||||||
|
const sDynamicInfill = element.options.attrs.default.sDynamicInfill
|
||||||
|
const sDynamicSuffix = element.options.attrs.default.sDynamicSuffix
|
||||||
|
|
||||||
|
const eDynamicPrefix = parseInt(element.options.attrs.default.eDynamicPrefix)
|
||||||
|
const eDynamicInfill = element.options.attrs.default.eDynamicInfill
|
||||||
|
const eDynamicSuffix = element.options.attrs.default.eDynamicSuffix
|
||||||
|
const startTime = this.customTime(sDynamicPrefix, sDynamicInfill, sDynamicSuffix)
|
||||||
|
const endTime = this.customTime(eDynamicPrefix, eDynamicInfill, eDynamicSuffix)
|
||||||
|
return [startTime, endTime]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
validDynamicValue(element) {
|
||||||
|
if (!element.options.attrs.default.isDynamic) return true
|
||||||
|
if (element.options.attrs.default.dkey !== 4) return true
|
||||||
|
try {
|
||||||
|
const arr = this.dynamicDateFormNow(element)
|
||||||
|
return arr[0] < arr[1]
|
||||||
|
} catch (error) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const timeDateRangeServiceImpl = new TimeDateRangeServiceImpl()
|
const timeDateRangeServiceImpl = new TimeDateRangeServiceImpl()
|
||||||
export default timeDateRangeServiceImpl
|
export default timeDateRangeServiceImpl
|
||||||
|
@ -1729,5 +1729,28 @@ export default {
|
|||||||
complex_repeat: 'Complex repeat',
|
complex_repeat: 'Complex repeat',
|
||||||
pixel_tip: 'Please code custom pixel(such as 2560 * 1600) or select'
|
pixel_tip: 'Please code custom pixel(such as 2560 * 1600) or select'
|
||||||
|
|
||||||
|
},
|
||||||
|
dynamic_time: {
|
||||||
|
set_default: 'Set Default',
|
||||||
|
fix: 'Fixed Time',
|
||||||
|
dynamic: 'Dynamic Time',
|
||||||
|
relative: 'Relative Current',
|
||||||
|
today: 'Today',
|
||||||
|
yesterday: 'Yesterday',
|
||||||
|
firstOfMonth: 'Month Beginning',
|
||||||
|
custom: 'Custom',
|
||||||
|
date: 'date',
|
||||||
|
week: 'week',
|
||||||
|
month: 'Month',
|
||||||
|
year: 'Year',
|
||||||
|
before: 'Before',
|
||||||
|
after: 'After',
|
||||||
|
preview: 'Preview',
|
||||||
|
set: 'Set',
|
||||||
|
|
||||||
|
cweek: 'This Week',
|
||||||
|
cmonth: 'This Month',
|
||||||
|
cquarter: 'This Quarter',
|
||||||
|
cyear: 'This Year'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1741,5 +1741,28 @@ export default {
|
|||||||
complex_repeat: '複雜重複',
|
complex_repeat: '複雜重複',
|
||||||
pixel_tip: '可直接輸入分辨率(例如:2560 * 1600)或者選擇'
|
pixel_tip: '可直接輸入分辨率(例如:2560 * 1600)或者選擇'
|
||||||
|
|
||||||
|
},
|
||||||
|
dynamic_time: {
|
||||||
|
set_default: '設置默認值',
|
||||||
|
fix: '固定時間',
|
||||||
|
dynamic: '動態時間',
|
||||||
|
relative: '相對當前',
|
||||||
|
today: '今天',
|
||||||
|
yesterday: '昨天',
|
||||||
|
firstOfMonth: '月初',
|
||||||
|
custom: '自定義',
|
||||||
|
date: '日',
|
||||||
|
week: '周',
|
||||||
|
month: '月',
|
||||||
|
year: '年',
|
||||||
|
before: '前',
|
||||||
|
after: '後',
|
||||||
|
preview: '預覽',
|
||||||
|
set: '設置',
|
||||||
|
|
||||||
|
cweek: '本周',
|
||||||
|
cmonth: '本月',
|
||||||
|
cquarter: '本季',
|
||||||
|
cyear: '本年'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1751,5 +1751,28 @@ export default {
|
|||||||
complex_repeat: '复杂重复',
|
complex_repeat: '复杂重复',
|
||||||
pixel_tip: '可直接输入自定义分辨率(例如:2560 * 1600)或选择'
|
pixel_tip: '可直接输入自定义分辨率(例如:2560 * 1600)或选择'
|
||||||
|
|
||||||
|
},
|
||||||
|
dynamic_time: {
|
||||||
|
set_default: '设置默认值',
|
||||||
|
fix: '固定时间',
|
||||||
|
dynamic: '动态时间',
|
||||||
|
relative: '相对当前',
|
||||||
|
today: '今天',
|
||||||
|
yesterday: '昨天',
|
||||||
|
firstOfMonth: '月初',
|
||||||
|
custom: '自定义',
|
||||||
|
date: '日',
|
||||||
|
week: '周',
|
||||||
|
month: '月',
|
||||||
|
year: '年',
|
||||||
|
before: '前',
|
||||||
|
after: '后',
|
||||||
|
preview: '预览',
|
||||||
|
set: '设置',
|
||||||
|
|
||||||
|
cweek: '本周',
|
||||||
|
cmonth: '本月',
|
||||||
|
cquarter: '本季',
|
||||||
|
cyear: '本年'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ div:focus {
|
|||||||
|
|
||||||
.de-filter-dialog {
|
.de-filter-dialog {
|
||||||
min-width: 500px !important;
|
min-width: 500px !important;
|
||||||
width: 50% !important;
|
width: 55% !important;
|
||||||
|
|
||||||
.el-dialog__header {
|
.el-dialog__header {
|
||||||
// background-color: #f4f4f5;
|
// background-color: #f4f4f5;
|
||||||
|
@ -2,20 +2,20 @@
|
|||||||
<div v-if="element">
|
<div v-if="element">
|
||||||
<el-form ref="form" :model="element.options.attrs.default" label-width="100px">
|
<el-form ref="form" :model="element.options.attrs.default" label-width="100px">
|
||||||
|
|
||||||
<el-form-item label="设定默认值">
|
<el-form-item :label="$t('dynamic_time.set_default')">
|
||||||
<el-radio-group v-model="element.options.attrs.default.isDynamic" @change="dynamicChange">
|
<el-radio-group v-model="element.options.attrs.default.isDynamic" @change="dynamicChange">
|
||||||
<el-radio :label="false">固定时间</el-radio>
|
<el-radio :label="false">{{ $t('dynamic_time.fix') }}</el-radio>
|
||||||
<el-radio :label="true">动态时间</el-radio>
|
<el-radio :label="true">{{ $t('dynamic_time.dynamic') }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item v-if="element.options.attrs.default.isDynamic" label="相对当前时间">
|
<el-form-item v-if="element.options.attrs.default.isDynamic" :label="$t('dynamic_time.relative')">
|
||||||
|
|
||||||
<el-select v-model="element.options.attrs.default.dkey" placeholder="" class="relative-time" @change="dkeyChange">
|
<el-select v-model="element.options.attrs.default.dkey" placeholder="" class="relative-time" @change="dkeyChange">
|
||||||
<el-option label="今天" :value="0" />
|
<el-option :label="$t('dynamic_time.today')" :value="0" />
|
||||||
<el-option label="昨天" :value="1" />
|
<el-option :label="$t('dynamic_time.yesterday')" :value="1" />
|
||||||
<el-option label="本月首日" :value="2" />
|
<el-option :label="$t('dynamic_time.firstOfMonth')" :value="2" />
|
||||||
<el-option label="自定义" :value="3" />
|
<el-option :label="$t('dynamic_time.custom')" :value="3" />
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -28,24 +28,24 @@
|
|||||||
|
|
||||||
<el-form-item v-if="element.options.attrs.default.isDynamic && element.options.attrs.default.dkey === 3" label="" class="no-label-item">
|
<el-form-item v-if="element.options.attrs.default.isDynamic && element.options.attrs.default.dkey === 3" label="" class="no-label-item">
|
||||||
<el-select v-model="element.options.attrs.default.dynamicInfill" size="mini" placeholder="" @change="dynamicInfillChange">
|
<el-select v-model="element.options.attrs.default.dynamicInfill" size="mini" placeholder="" @change="dynamicInfillChange">
|
||||||
<el-option label="天" value="day" />
|
<el-option :label="$t('dynamic_time.date')" value="day" />
|
||||||
<el-option label="周" value="week" />
|
<el-option :label="$t('dynamic_time.week')" value="week" />
|
||||||
<el-option label="月" value="month" />
|
<el-option :label="$t('dynamic_time.month')" value="month" />
|
||||||
<el-option label="年" value="year" />
|
<el-option :label="$t('dynamic_time.year')" value="year" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item v-if="element.options.attrs.default.isDynamic && element.options.attrs.default.dkey === 3" label="" class="no-label-item">
|
<el-form-item v-if="element.options.attrs.default.isDynamic && element.options.attrs.default.dkey === 3" label="" class="no-label-item">
|
||||||
|
|
||||||
<el-select v-model="element.options.attrs.default.dynamicSuffix" size="mini" placeholder="" @change="dynamicSuffixChange">
|
<el-select v-model="element.options.attrs.default.dynamicSuffix" size="mini" placeholder="" @change="dynamicSuffixChange">
|
||||||
<el-option label="前" value="before" />
|
<el-option :label="$t('dynamic_time.before')" value="before" />
|
||||||
<el-option label="后" value="after" />
|
<el-option :label="$t('dynamic_time.after')" value="after" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-form-item v-if="element.options.attrs.default.isDynamic" label="预览">
|
<el-form-item v-if="element.options.attrs.default.isDynamic" :label="$t('dynamic_time.preview')">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="dval"
|
v-model="dval"
|
||||||
type="date"
|
type="date"
|
||||||
@ -55,7 +55,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item v-else label="设置">
|
<el-form-item v-else :label="$t('dynamic_time.set')">
|
||||||
<component
|
<component
|
||||||
:is="element.component"
|
:is="element.component"
|
||||||
:id="'component' + element.id"
|
:id="'component' + element.id"
|
||||||
|
@ -0,0 +1,243 @@
|
|||||||
|
<template>
|
||||||
|
<div v-if="element">
|
||||||
|
<el-form ref="form" :model="element.options.attrs.default" label-width="100px">
|
||||||
|
|
||||||
|
<el-form-item :label="$t('dynamic_time.set_default')">
|
||||||
|
<el-radio-group v-model="element.options.attrs.default.isDynamic" @change="dynamicChange">
|
||||||
|
<el-radio :label="false">{{ $t('dynamic_time.fix') }}</el-radio>
|
||||||
|
<el-radio :label="true">{{ $t('dynamic_time.dynamic') }}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item v-if="element.options.attrs.default.isDynamic" :label="$t('dynamic_time.relative')">
|
||||||
|
|
||||||
|
<el-select
|
||||||
|
v-model="element.options.attrs.default.dkey"
|
||||||
|
placeholder=""
|
||||||
|
class="relative-time"
|
||||||
|
@change="dkeyChange"
|
||||||
|
>
|
||||||
|
<el-option :label="$t('dynamic_time.cweek')" :value="0" />
|
||||||
|
<el-option :label="$t('dynamic_time.cmonth')" :value="1" />
|
||||||
|
<el-option :label="$t('dynamic_time.cquarter')" :value="2" />
|
||||||
|
<el-option :label="$t('dynamic_time.cyear')" :value="3" />
|
||||||
|
|
||||||
|
<el-option :label="$t('dynamic_time.custom')" :value="4" />
|
||||||
|
</el-select>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<div class="inline-first">
|
||||||
|
|
||||||
|
<el-form-item
|
||||||
|
v-if="element.options.attrs.default.isDynamic && element.options.attrs.default.dkey === 4"
|
||||||
|
:label="$t('dataset.start_time')"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="element.options.attrs.default.sDynamicPrefix"
|
||||||
|
type="number"
|
||||||
|
size="mini"
|
||||||
|
:min="1"
|
||||||
|
:max="10"
|
||||||
|
@input="sDynamicPrefixChange"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item
|
||||||
|
v-if="element.options.attrs.default.isDynamic && element.options.attrs.default.dkey === 4"
|
||||||
|
label=""
|
||||||
|
class="no-label-item"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="element.options.attrs.default.sDynamicInfill"
|
||||||
|
size="mini"
|
||||||
|
placeholder=""
|
||||||
|
@change="dynamicInfillChange"
|
||||||
|
>
|
||||||
|
<el-option :label="$t('dynamic_time.date')" value="day" />
|
||||||
|
<el-option :label="$t('dynamic_time.week')" value="week" />
|
||||||
|
<el-option :label="$t('dynamic_time.month')" value="month" />
|
||||||
|
<el-option :label="$t('dynamic_time.year')" value="year" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item
|
||||||
|
v-if="element.options.attrs.default.isDynamic && element.options.attrs.default.dkey === 4"
|
||||||
|
label=""
|
||||||
|
class="no-label-item"
|
||||||
|
>
|
||||||
|
|
||||||
|
<el-select
|
||||||
|
v-model="element.options.attrs.default.sDynamicSuffix"
|
||||||
|
size="mini"
|
||||||
|
placeholder=""
|
||||||
|
@change="dynamicSuffixChange"
|
||||||
|
>
|
||||||
|
<el-option :label="$t('dynamic_time.before')" value="before" />
|
||||||
|
<el-option :label="$t('dynamic_time.after')" value="after" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="inline-first">
|
||||||
|
|
||||||
|
<el-form-item
|
||||||
|
v-if="element.options.attrs.default.isDynamic && element.options.attrs.default.dkey === 4"
|
||||||
|
:label="$t('dataset.end_time')"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="element.options.attrs.default.eDynamicPrefix"
|
||||||
|
type="number"
|
||||||
|
size="mini"
|
||||||
|
:min="1"
|
||||||
|
:max="10"
|
||||||
|
@input="eDynamicPrefixChange"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item
|
||||||
|
v-if="element.options.attrs.default.isDynamic && element.options.attrs.default.dkey === 4"
|
||||||
|
label=""
|
||||||
|
class="no-label-item"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="element.options.attrs.default.eDynamicInfill"
|
||||||
|
size="mini"
|
||||||
|
placeholder=""
|
||||||
|
@change="dynamicInfillChange"
|
||||||
|
>
|
||||||
|
<el-option :label="$t('dynamic_time.date')" value="day" />
|
||||||
|
<el-option :label="$t('dynamic_time.week')" value="week" />
|
||||||
|
<el-option :label="$t('dynamic_time.month')" value="month" />
|
||||||
|
<el-option :label="$t('dynamic_time.year')" value="year" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item
|
||||||
|
v-if="element.options.attrs.default.isDynamic && element.options.attrs.default.dkey === 4"
|
||||||
|
label=""
|
||||||
|
class="no-label-item"
|
||||||
|
>
|
||||||
|
|
||||||
|
<el-select
|
||||||
|
v-model="element.options.attrs.default.eDynamicSuffix"
|
||||||
|
size="mini"
|
||||||
|
placeholder=""
|
||||||
|
@change="dynamicSuffixChange"
|
||||||
|
>
|
||||||
|
<el-option :label="$t('dynamic_time.before')" value="before" />
|
||||||
|
<el-option :label="$t('dynamic_time.after')" value="after" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-form-item v-if="element.options.attrs.default.isDynamic" :label="$t('dynamic_time.preview')">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="dval"
|
||||||
|
:type="element.options.attrs.type"
|
||||||
|
disabled
|
||||||
|
class="relative-time"
|
||||||
|
placeholder=""
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item v-else :label="$t('dynamic_time.set')">
|
||||||
|
<component
|
||||||
|
:is="element.component"
|
||||||
|
:id="'component' + element.id"
|
||||||
|
:style="element.style"
|
||||||
|
:element="element"
|
||||||
|
class="relative-time"
|
||||||
|
:in-draw="false"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ApplicationContext
|
||||||
|
} from '@/utils/ApplicationContext'
|
||||||
|
import bus from '@/utils/bus'
|
||||||
|
export default {
|
||||||
|
name: 'DeDateRangeDefault',
|
||||||
|
props: {
|
||||||
|
|
||||||
|
element: {
|
||||||
|
type: Object,
|
||||||
|
default: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dval: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.setDval()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
dynamicChange(value) {
|
||||||
|
this.setDval()
|
||||||
|
},
|
||||||
|
dkeyChange(value) {
|
||||||
|
this.setDval()
|
||||||
|
},
|
||||||
|
|
||||||
|
sDynamicPrefixChange(value) {
|
||||||
|
if (value < 1) {
|
||||||
|
value = 1
|
||||||
|
this.element.options.attrs.default.sDynamicPrefix = 1
|
||||||
|
}
|
||||||
|
this.setDval()
|
||||||
|
},
|
||||||
|
eDynamicPrefixChange(value) {
|
||||||
|
if (value < 1) {
|
||||||
|
value = 1
|
||||||
|
this.element.options.attrs.default.eDynamicPrefix = 1
|
||||||
|
}
|
||||||
|
this.setDval()
|
||||||
|
},
|
||||||
|
dynamicInfillChange(value) {
|
||||||
|
this.setDval()
|
||||||
|
},
|
||||||
|
dynamicSuffixChange(value) {
|
||||||
|
this.setDval()
|
||||||
|
},
|
||||||
|
setDval() {
|
||||||
|
const widget = ApplicationContext.getService(this.element.serviceName)
|
||||||
|
const time = widget.dynamicDateFormNow(this.element)
|
||||||
|
this.dval = time
|
||||||
|
bus.$emit('valid-values-change', (!time || time.length === 0 || time[1] > time[0]))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.inline-first,
|
||||||
|
.inline {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
>>>.el-input--mini {
|
||||||
|
min-width: 70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.inline-first {
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 5px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.relative-time {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
@ -178,7 +178,7 @@ import draggable from 'vuedraggable'
|
|||||||
import FilterHead from './filterMain/FilterHead'
|
import FilterHead from './filterMain/FilterHead'
|
||||||
import FilterControl from './filterMain/FilterControl'
|
import FilterControl from './filterMain/FilterControl'
|
||||||
import FilterFoot from './filterMain/FilterFoot'
|
import FilterFoot from './filterMain/FilterFoot'
|
||||||
|
import bus from '@/utils/bus'
|
||||||
import {
|
import {
|
||||||
mapState
|
mapState
|
||||||
} from 'vuex'
|
} from 'vuex'
|
||||||
@ -319,6 +319,11 @@ export default {
|
|||||||
this.initWithField()
|
this.initWithField()
|
||||||
this.loadViews()
|
this.loadViews()
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
bus.$on('valid-values-change', valid => {
|
||||||
|
this.validateFilterValue(valid)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
initWithField() {
|
initWithField() {
|
||||||
@ -550,12 +555,23 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
enableSureButton() {
|
enableSureButton() {
|
||||||
const enable = this.currentElement.options.attrs.dragItems && this.currentElement.options.attrs.dragItems.length > 0
|
let valid = true
|
||||||
this.$emit('sure-button-status', enable)
|
const enable = this.currentElement.options.attrs.dragItems && this.currentElement.options.attrs.dragItems
|
||||||
|
.length > 0
|
||||||
|
if (this.widget.validDynamicValue) {
|
||||||
|
valid = this.widget.validDynamicValue(this.currentElement)
|
||||||
|
}
|
||||||
|
this.$emit('sure-button-status', enable && valid)
|
||||||
},
|
},
|
||||||
|
|
||||||
getElementInfo() {
|
getElementInfo() {
|
||||||
return this.currentElement
|
return this.currentElement
|
||||||
|
},
|
||||||
|
|
||||||
|
validateFilterValue(valid) {
|
||||||
|
const enable = this.currentElement.options.attrs.dragItems && this.currentElement.options.attrs.dragItems
|
||||||
|
.length > 0
|
||||||
|
this.$emit('sure-button-status', enable && valid)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -67,6 +67,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import {mapState} from "vuex";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'FilterControl',
|
name: 'FilterControl',
|
||||||
props: {
|
props: {
|
||||||
@ -116,7 +118,7 @@ export default {
|
|||||||
showTitleChange(value) {
|
showTitleChange(value) {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
this.attrs.title = ''
|
this.attrs.title = ''
|
||||||
// this.componentInfo.style.backgroundColor = ''
|
this.element.style.backgroundColor = ''
|
||||||
}
|
}
|
||||||
this.fillAttrs2Filter()
|
this.fillAttrs2Filter()
|
||||||
},
|
},
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<div class="filter-content">
|
<div class="filter-content">
|
||||||
<el-card v-if="element.serviceName && element.serviceName !== 'timeDateWidget'" class="box-card">
|
<el-card
|
||||||
|
v-if="element.serviceName && element.serviceName !== 'timeDateWidget' && element.serviceName !== 'timeDateRangeWidget'"
|
||||||
|
class="box-card"
|
||||||
|
>
|
||||||
<div style="margin-bottom: 10px;">
|
<div style="margin-bottom: 10px;">
|
||||||
<span>默认值设置</span>
|
<span>默认值设置</span>
|
||||||
</div>
|
</div>
|
||||||
@ -23,6 +26,13 @@
|
|||||||
<de-date-default v-if="element.serviceName && element.serviceName === 'timeDateWidget'" :element="element" />
|
<de-date-default v-if="element.serviceName && element.serviceName === 'timeDateWidget'" :element="element" />
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
|
<el-card v-if="element.serviceName && element.serviceName === 'timeDateRangeWidget'" class="box-card">
|
||||||
|
<de-date-range-default
|
||||||
|
v-if="element.serviceName && element.serviceName === 'timeDateRangeWidget'"
|
||||||
|
:element="element"
|
||||||
|
/>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -31,10 +41,12 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import DeDateDefault from '@/views/panel/filter/defaultValue/DeDateDefault'
|
import DeDateDefault from '@/views/panel/filter/defaultValue/DeDateDefault'
|
||||||
|
import DeDateRangeDefault from '@/views/panel/filter/defaultValue/DeDateRangeDefault'
|
||||||
export default {
|
export default {
|
||||||
name: 'FilterFoot',
|
name: 'FilterFoot',
|
||||||
components: {
|
components: {
|
||||||
DeDateDefault
|
DeDateDefault,
|
||||||
|
DeDateRangeDefault
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user