Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz-Vue-R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
22
议题
22
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7前端标准模板
iBiz-Vue-R7
提交
2b31664f
提交
2b31664f
编写于
5月 29, 2020
作者:
WodahsOrez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lxm--日历图例
上级
0edc9fbf
变更
2
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
107 行增加
和
30 行删除
+107
-30
CONTROL-BASE.vue.ftl
@CONTROL/日历部件/CONTROL-BASE.vue.ftl
+78
-30
CONTROL.less.ftl
@CONTROL/日历部件/CONTROL.less.ftl
+29
-0
未找到文件。
@CONTROL/日历部件/CONTROL-BASE.vue.ftl
浏览文件 @
2b31664f
...
@@ -18,6 +18,16 @@
...
@@ -18,6 +18,16 @@
</el-timeline-item>
</el-timeline-item>
</el-timeline>
</el-timeline>
<#else>
<#else>
<div class="event-legends">
<#if ctrl.getPSSysCalendarItems()??>
<#list ctrl.getPSSysCalendarItems() as calendarItem>
<div :class="{'event-lengend':true, '${calendarItem.getItemType()}':true, 'event-disabled':!isShowlegend.${calendarItem.getItemType()}}" @click="legendTrigger('${calendarItem.getItemType()}')">
<div class="lengend-icon" style="background:${calendarItem.getBKColor()};"></div>
<span style="color:${calendarItem.getColor()};">${calendarItem.getName()}</span>
</div>
</#list>
</#if>
</div>
<FullCalendar
<FullCalendar
ref="calendar"
ref="calendar"
:locale="$i18n.locale"
:locale="$i18n.locale"
...
@@ -100,20 +110,6 @@ FullCalendar,
...
@@ -100,20 +110,6 @@ FullCalendar,
*/
*/
public selectedEventElement:any;
public selectedEventElement:any;
/**
* 引用插件集合
*
* @public
* @type {any[]}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public calendarPlugins: any[] = [
dayGridPlugin,
timeGridPlugin,
listPlugin,
interactionPlugin
];
/**
/**
* 设置头部显示
* 设置头部显示
*
*
...
@@ -261,6 +257,42 @@ FullCalendar,
...
@@ -261,6 +257,42 @@ FullCalendar,
*/
*/
public calendarType: string = "${ctrl.getCalendarStyle()}";
public calendarType: string = "${ctrl.getCalendarStyle()}";
/**
* 图例显示控制
*
* @public
* @type {any}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
public isShowlegend: any = {
<#if ctrl.getPSSysCalendarItems()??>
<#list ctrl.getPSSysCalendarItems() as calendarItem>
${calendarItem.getItemType()}:true,
</#list>
</#if>
};
/**
* 图例点击事件
*
* @public
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
legendTrigger(itemType:string){
this.isShowlegend[itemType] = !this.isShowlegend[itemType];
this.refresh();
}
/**
* 查询参数缓存
*
* @public
* @type {any}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
*/
public searchArgCache: any = {};
/**
/**
* 搜索获取日程事件
* 搜索获取日程事件
*
*
...
@@ -268,6 +300,7 @@ FullCalendar,
...
@@ -268,6 +300,7 @@ FullCalendar,
* @memberof ${srfclassname('${ctrl.codeName}')}
* @memberof ${srfclassname('${ctrl.codeName}')}
*/
*/
public searchEvents(fetchInfo?:any, successCallback?:any, failureCallback?:any ) {
public searchEvents(fetchInfo?:any, successCallback?:any, failureCallback?:any ) {
// 处理请求参数
let start = (fetchInfo && fetchInfo.start) ? this.$util.dateFormat(fetchInfo.start) : null;
let start = (fetchInfo && fetchInfo.start) ? this.$util.dateFormat(fetchInfo.start) : null;
let end = (fetchInfo && fetchInfo.end) ? this.$util.dateFormat(fetchInfo.end) : null;
let end = (fetchInfo && fetchInfo.end) ? this.$util.dateFormat(fetchInfo.end) : null;
let arg = { start: start, end: end };
let arg = { start: start, end: end };
...
@@ -275,6 +308,36 @@ FullCalendar,
...
@@ -275,6 +308,36 @@ FullCalendar,
Object.assign(arg,{query : fetchInfo.query});
Object.assign(arg,{query : fetchInfo.query});
}
}
Object.assign(arg,{viewparams:this.viewparams});
Object.assign(arg,{viewparams:this.viewparams});
// 处理events数据
let _this = this;
let handleEvents = ()=>{
if(_this.isSelectFirstDefault){
// 模拟$event数据
let tempEvent = JSON.parse(JSON.stringify(_this.events[0]));
_this.onEventClick(tempEvent,true);
_this.events[0].className = "select-first-event";
_this.calendarClass = "calendar select-first-calendar";
}
let filterEvents = this.events.filter((event:any)=>{
return _this.isShowlegend[event.itemType];
});
if(successCallback){
successCallback(filterEvents);
}
// 刷新日历的大小(仅fullcalendar组件使用)
if(!Object.is(_this.calendarType,"TIMELINE")){
let appCalendar: any = _this.$refs.calendar;
let api = appCalendar.getApi();
api.updateSize();
}
}
if(JSON.stringify(arg) === JSON.stringify(this.searchArgCache)){
handleEvents();
return;
}else{
this.searchArgCache = arg;
}
const post: Promise<any> = this.service.search(this.loadAction, JSON.parse(JSON.stringify(this.context)), arg, this.showBusyIndicator);
const post: Promise<any> = this.service.search(this.loadAction, JSON.parse(JSON.stringify(this.context)), arg, this.showBusyIndicator);
post.then((response: any) => {
post.then((response: any) => {
if (!response || response.status !== 200) {
if (!response || response.status !== 200) {
...
@@ -285,22 +348,7 @@ FullCalendar,
...
@@ -285,22 +348,7 @@ FullCalendar,
}
}
// 默认选中第一项
// 默认选中第一项
this.events = response.data;
this.events = response.data;
if(this.isSelectFirstDefault){
handleEvents();
// 模拟$event数据
let tempEvent = JSON.parse(JSON.stringify(this.events[0]));
this.onEventClick(tempEvent,true);
this.events[0].className = "select-first-event";
this.calendarClass = "calendar select-first-calendar";
}
if(successCallback){
successCallback(this.events);
}
// 刷新日历的大小(仅fullcalendar组件使用)
if(!Object.is(this.calendarType,"TIMELINE")){
let appCalendar: any = this.$refs.calendar;
let api = appCalendar.getApi();
api.updateSize();
}
}, (response: any) => {
}, (response: any) => {
if (response && response.status === 401) {
if (response && response.status === 401) {
return;
return;
...
...
@CONTROL/日历部件/CONTROL.less.ftl
浏览文件 @
2b31664f
...
@@ -11,6 +11,35 @@
...
@@ -11,6 +11,35 @@
.el-timeline{
.el-timeline{
padding-left: 2px;
padding-left: 2px;
}
}
.event-legends{
width: 100%;
text-align: center;
.event-lengend{
display: inline-block;
margin-left: 10px;
height: 20px;
.lengend-icon{
display: inline-block;
width: 30px;
height: 20px;
border-radius: 5px;
}
span{
display: inline-block;
margin-left: 5px;
line-height: 20px;
vertical-align: top;
}
}
.event-lengend.event-disabled{
.lengend-icon{
background:#cccccc !important;
}
span{
color:#cccccc !important;
}
}
}
}
}
// 选中样式
// 选中样式
.calendar .selected-event,
.calendar .selected-event,
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录