|
@@ -10,7 +10,7 @@
|
|
|
v-model="monthValue"
|
|
|
value-format="yyyy-MM"
|
|
|
:disabled="!varietyValue"
|
|
|
- @change="changeMound"/>
|
|
|
+ @change="changeMonth"/>
|
|
|
</div>
|
|
|
<div class="center-title"> <!-- 当前日期 -->
|
|
|
{{ $t('ToolBox.ForexCalendar.header_title',{
|
|
@@ -19,7 +19,12 @@
|
|
|
year:currentYear||'2024'})
|
|
|
}}</div>
|
|
|
<div class="right-select">
|
|
|
- <el-select placeholder="请选择品种" v-model="varietyValue"></el-select>
|
|
|
+ <el-select placeholder="请选择品种" v-model="varietyValue" @change="renderCalendar">
|
|
|
+ <el-option v-for="item in permissonList" :key="item.ChartPermissionId"
|
|
|
+ :label="item.ChartPermissionName"
|
|
|
+ :value="item.ChartPermissionId"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</div>
|
|
|
</div>
|
|
|
<BaseCalendar
|
|
@@ -37,6 +42,7 @@
|
|
|
<AddEventDialog
|
|
|
:isEventDialogShow="isEventDialogShow"
|
|
|
:choosedDay="choosedDay"
|
|
|
+ :choosedPermission="varietyValue"
|
|
|
:dayEvents="dayEvents"
|
|
|
@save="addEvents"
|
|
|
@close="isEventDialogShow=false"
|
|
@@ -48,11 +54,13 @@
|
|
|
import BaseCalendar from './components/BaseCalendar.vue';
|
|
|
import AddEventDialog from './components/AddEventDialog.vue';
|
|
|
import calendarTrans from '@/lang/modules/ToolBox/calendar/commonLang';
|
|
|
+import {ForexCalendarInterface} from '@/api/modules/toolBoxApi';
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
monthValue:'',
|
|
|
varietyValue:'',
|
|
|
+ permissonList:[],
|
|
|
calendarApi:null,
|
|
|
calendarTrans:calendarTrans,
|
|
|
isEventDialogShow:false,
|
|
@@ -72,29 +80,49 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
- changeMound(month){
|
|
|
+ getPermissonList(){
|
|
|
+ ForexCalendarInterface.getPermissionList().then(res=>{
|
|
|
+ if(res.Ret!==200) return
|
|
|
+ this.permissonList = res.Data||[]
|
|
|
+ })
|
|
|
+ },
|
|
|
+ changeMonth(month){
|
|
|
const Month = month||new Date()
|
|
|
this.calendarApi.gotoDate(Month)
|
|
|
this.renderCalendar()
|
|
|
},
|
|
|
- renderCalendar(){
|
|
|
- //请求当月的日历表
|
|
|
- //将日历表每天的事件作为一个eventSource
|
|
|
- /** an eventSource
|
|
|
- * {
|
|
|
- * id:'2024-03-27',//id为日期
|
|
|
- * events:[],//当天的事件
|
|
|
- * }
|
|
|
- */
|
|
|
- //this.calendarApi.addEventSource({events:[...],id:'2024-03-27'}) ←通过api添加
|
|
|
-
|
|
|
- //const allEventSource = this.calendarApi.getEventSources()||[]
|
|
|
- //console.log('??',allEventSource)
|
|
|
+ async renderCalendar(){
|
|
|
+ //获取当前日历的起始日期+终止日期,可能会跨月
|
|
|
+ const {activeStart,activeEnd} = this.calendarApi.view
|
|
|
+ const res = await ForexCalendarInterface.getCalendarEventList({
|
|
|
+ ChartPermissionId:Number(this.varietyValue),
|
|
|
+ StartDate:this.$moment(activeStart).format('YYYY-MM-DD'),
|
|
|
+ EndDate:this.$moment(activeEnd).format('YYYY-MM-DD')
|
|
|
+ })
|
|
|
+ if(res.Ret!==200) return
|
|
|
+ const allEventSource = this.calendarApi.getEventSources()||[]
|
|
|
//先清空所有eventSource,再添加
|
|
|
- //allEventSource.forEach(es=>es.remove())
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ allEventSource.forEach(es=>es.remove())
|
|
|
+ //将日历表每天的事件作为一个eventSource
|
|
|
+ const eventList = (res.Data?res.Data:[]).map(dailyEvents=>{
|
|
|
+ const eventSource = { id:dailyEvents.Date,events:[]}
|
|
|
+ eventSource.events = dailyEvents.Matters.map(e=>{
|
|
|
+ return {
|
|
|
+ ...e,
|
|
|
+ start:e.MatterDate,
|
|
|
+ title:e.Title,
|
|
|
+ textColor:e.FontColor||'#000',
|
|
|
+ backgroundColor:e.FillingColor||'#fff',
|
|
|
+ borderColor:e.FillingColor||'#fff',
|
|
|
+ }
|
|
|
+ })
|
|
|
+ return eventSource
|
|
|
+ })
|
|
|
+ eventList.forEach(es=>{
|
|
|
+ this.calendarApi.addEventSource(es)
|
|
|
+ })
|
|
|
+
|
|
|
+ console.log(this.calendarApi.getEventSources())
|
|
|
},
|
|
|
//点击单元格(非事项部分)
|
|
|
dateClick(info){
|
|
@@ -115,24 +143,30 @@ export default {
|
|
|
this.isEventDialogShow = true
|
|
|
},
|
|
|
//添加事项(批量)
|
|
|
- addEvents({events,eventDay}){
|
|
|
+ async addEvents({events,eventDay}){
|
|
|
//需要添加的事项
|
|
|
- const eventSource = events.map(e=>{
|
|
|
+ const eventSource = events.map((e,index)=>{
|
|
|
return {
|
|
|
- ...e,
|
|
|
- start:eventDay,
|
|
|
- borderColor:e.backgroundColor
|
|
|
+ FeCalendarMatterId:e.FeCalendarMatterId||0,
|
|
|
+ Title:e.title,
|
|
|
+ MatterType:Number(e.MatterType),
|
|
|
+ EdbInfoId:Number(e.EdbInfoId||''),
|
|
|
+ EdbUniqueCode:e.EdbUniqueCode||'',
|
|
|
+ EdbCode:e.EdbCode||'',
|
|
|
+ FontBold:e.FontBold,
|
|
|
+ FontColor:e.textColor,
|
|
|
+ FillingColor:e.backgroundColor,
|
|
|
+ Sort:index+1
|
|
|
}
|
|
|
})
|
|
|
- //----mock
|
|
|
- //将日历表eventDay的事项全部删除
|
|
|
- const currentDayEvents = this.calendarApi.getEventSourceById(eventDay)
|
|
|
- currentDayEvents&¤tDayEvents.remove()
|
|
|
- //将新的事件添加进去
|
|
|
- this.calendarApi.addEventSource({events:eventSource,id:eventDay})
|
|
|
- //------
|
|
|
|
|
|
//通过接口,添加该日的事件
|
|
|
+ const res = await ForexCalendarInterface.saveDailyEvents({
|
|
|
+ ChartPermissionId:Number(this.varietyValue),
|
|
|
+ MatterDate:eventDay,
|
|
|
+ Matters:eventSource
|
|
|
+ })
|
|
|
+ if(res.Ret!==200) return
|
|
|
|
|
|
//重新加载日历
|
|
|
if(this.$moment(eventDay).format('MM')===this.currentMonth){
|
|
@@ -149,6 +183,7 @@ export default {
|
|
|
mounted(){
|
|
|
this.monthValue = this.$moment(new Date()).format('YYYY-MM')
|
|
|
this.calendarApi = this.$refs.baseCalendar.$refs.fullCalendar.getApi()
|
|
|
+ this.getPermissonList()
|
|
|
}
|
|
|
};
|
|
|
</script>
|