<style> @import "../../assets/css/comSummary.css"; .CityNameList { width: 80px; overflow: hidden; display: inline-block; text-overflow: ellipsis; white-space: nowrap; } .UseType { text-align: center !important; } .busHotelName { width: 100px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } .popClass[x-placement^="bottom"] .popper__arrow::after { border-bottom-color: #444444 !important; } .popClass[x-placement^="bottom"] .popper__arrow { border-bottom-color: #444444 !important; } .popClass { background-color: #444444 !important; color: #fff !important; font-size: 12px !important; } .noneCir { cursor: Default !important; } .isbusList { width: 100%; border-bottom: 1px solid #666666; height: 30px; line-height: 30px; } .OpStrBtn { float: right; width: 50px; height: 20px; margin-top: 5px; } .mainSummary .listName, .busCodeList { cursor: pointer; } .busCodeList:hover { color: #e95252; } .dayListTable td { vertical-align: top !important; } </style> <template> <div class="flexOne comSummary busSummary"> <div class="mainSummary"> <table class="summaryTable" cellspacing="0"> <thead> <th> <div class="leftDay"> <div class="leftDayTop"> <span class="yearCircle"></span>{{nowYear}}<span class="yearCircle"></span> <div class="rili LI1"></div> <div class="rili LI2"></div> </div> <span class="monthNum">{{nowMonth}}</span> <span class="monthLis">{{$t('pub.month')}}</span> </div> </th> <th> <div class="Arrow" @click="leftClick()"> <i class="iconfont icon-previewleft"></i> </div> </th> <th v-for="(k,index) in Calendar" :key="k.subCode" :class="{'redType':k.Week=='日'||k.Week=='六','ckedTd':index==columnLine&&dataList!=''}" @click="getDayInfo(k.CurrentYear,k.CurrentMonth,k.CurrentDay)" @mouseover="columnsMouseOver(index)"> <el-popover placement="bottom" width="500" trigger="click"> <div class="_topInfo"><span class="_leftTy"></span>{{k.CurrentYear+"-"+k.CurrentMonth+"-"+k.CurrentDay}}<span class="TJtitle">{{$t('commonPickUp.Pick_Data')}}</span></div> <div class="comdayListDiv"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="dayListTable"> <tr> <th width="100">{{$t('system.table_city')}}</th> <th>团队</th> <th>酒店</th> <th width="50">用车</th> <th>车配号</th> </tr> <tr v-for="dList in dayList" :key="dList.subCode"> <td> <el-tooltip class="item" effect="dark" :content="dList.CityName" placement="top-start" popper-class="max-w250"> <div> <span class="CityNameList"><i class="iconfont icon-img_dizhi_small"></i>{{dList.CityName}}</span> </div> </el-tooltip> </td> <td> <div v-for="dl in dList.SubList" class="htName" :key="dl.subCode"> {{dl.TCNUM}} </div> </td> <td> <div v-for="dl in dList.SubList" :key="dl.subCode"> <el-tooltip class="item" effect="dark" :content="dl.HotelName" placement="top-start" popper-class="max-w250"> <div class="busHotelName"> <i class="iconfont icon-jiudian"></i>{{dl.HotelName}} </div> </el-tooltip> </div> </td> <td> <div v-for="dl in dList.SubList" :key="dl.subCode"> {{dl.UseTypeStr}} </div> </td> <td> <div v-for="(dl,index) in dList.SubList" :key="index"> <el-popover placement="bottom" width="250" popper-class='popClass' trigger="click"> <div v-if="infoList.length==0">无数据</div> <div v-else v-for="info in infoList" :key="info.subCode"> <div class="isbusList"> <span>{{info.BusCode}}</span> <button class="normalBtn OpStrBtn" @click="setCarInfo(info.Id,dl.OrderID)">{{info.OpStr}}</button> </div> </div> <span slot="reference" class="busCodeList" @click.stop="getCurrentUserBus(k.CurrentDate,dList.CityId,dl.BusId,dl.TCID,dl.PeopleNum)">{{dl.BusCode}}</span> </el-popover> </div> </td> </tr> </table> </div> <div slot="reference"> <div class="_week">{{k.Week}}</div> <div class="_monthDay" v-if="k.CurrentDay==1"> <span>{{k.CurrentMonthCn}}<br />{{$t('pub.month')}}</span> </div> <div class="_day" v-else>{{k.CurrentDay}}</div> <div class="_longli">{{k.LunarDayCn}}</div> </div> </el-popover> </th> <th> <div class="Arrow" @click="rightClick()"> <i class="iconfont icon-arrow-right"></i> </div> </th> </thead> <tbody> <tr v-for="st in dataList" :key="st.subCode"> <td colspan="2"> <div> <span class="tType">{{$t('commonPickUp.Pick_Team')}}</span> <span class="TeamNum">{{st.TCNUM}}</span> </div> <div class="teamChild"> <i class="iconfont icon-img-ren"></i><span>{{st.FinishedNumber}}<span v-if="st.LeaderNumber>0">+{{st.LeaderNumber}}</span></span> </div> </td> <td v-for="(k,index) in Calendar" :key="k.subCode" height="80px;" @mouseover="columnsMouseOver(index)"> <div v-for="(ss,index) in st.SubList" :key="ss.subCode"> <div v-if="ss.DayStr==k.CurrentDay"> <div class="cir noneCir" slot="reference" :class="{'stateOne':ss.OrderState==0,'stateTwo':ss.OrderState==1,'stateThree':ss.OrderState==-1,'stateFour':ss.OrderState==2,'disNoneCir':ss.OrderState==-100}"></div> <div class="circleDiv" v-if="ss.OrderState==-100"> <div class="lineLeftList"></div> <div class="lineRightList"></div> </div> <div class="circleDiv" v-else> <div class="lineleft" :class="{'disNone':index==0}"></div> <div class="lineright" :class="{'disNone':index==st.SubList.length-1}"></div> </div> <el-tooltip class="item" effect="dark" :content="ss.CityName" placement="top-start" popper-class="max-w250"> <div class="AddressIn">{{ss.CityName}}</div> </el-tooltip> <el-popover placement="bottom" width="250" popper-class='popClass' v-model="ss.visible" trigger="click"> <div v-if="infoList.length==0">无数据</div> <div v-else v-for="info in infoList" :key="info.subCode"> <div class="isbusList"> <span>{{info.BusCode}}</span> <button class="normalBtn OpStrBtn" @click="setCarInfo(info.Id,ss.OrderID)">{{info.OpStr}}</button> </div> </div> <div class="listName busCodeList" @click="getCurrentUserBus(ss.JourneyDateStr,ss.CityId,ss.BusId,ss.TCID,ss.PeopleNum)" slot="reference">{{ss.BusCode}}</div> </el-popover> </div> <div v-else> </div> </div> <div class="leftLine" v-if="index==columnLine"></div> <div class="rightLine" v-if="index==columnLine"></div> </td> <td></td> </tr> </tbody> </table> </div> </div> </template> <script> export default { data() { return { msg: { StartDate: new Date().Format("yyyy-MM-dd"), EndDate: "" }, loading: true, dataList: "", tempDataList: [], Calendar: "", //绑定数据的日历 CalendarDataArray: [], //存放数据的日历 infoList: "", dayList: "", nowYear: "", nowMonth: "", QStartDate: "", QEndDate: "", dayNum: 25, //默认加载天数 columnLine: -1 }; }, methods: { //初始化日历数据 initData() { let startYear = this.msg.StartDate.split("-")[0]; let startMonth = this.msg.StartDate.split("-")[1]; var data = this.$lunarCalendar.initLunar( startYear, startMonth, this.dayNum ); this.CalendarDataArray = data; this.QStartDate = data[0].CurrentDate; this.QEndDate = data[data.length - 1].CurrentDate; this.Calendar = this.CalendarDataArray; }, getList() { this.apipost( "bus_order_get_GetBusSummary", this.msg, res => { if (res.data.resultCode == 1) { this.dataList = res.data.data; this.tempDataList = res.data.data; } }, null ); }, //左侧点击 leftClick() { var tempStartDate = this.$lunarCalendar.changeLunar(this.QStartDate, -1); this.CalendarDataArray.unshift(tempStartDate); this.nowYear = tempStartDate.CurrentYear; this.nowMonth = tempStartDate.CurrentMonth; this.CalendarDataArray.pop(); //删除最后一个元素 this.Calendar = this.CalendarDataArray; this.QStartDate = tempStartDate.CurrentDate; this.QEndDate = this.CalendarDataArray[ this.CalendarDataArray.length - 1 ].CurrentDate; this.msg.StartDate = tempStartDate.CurrentDate; this.msg.EndDate = this.CalendarDataArray[ this.CalendarDataArray.length - 1 ].CurrentDate; this.getList(); }, //右侧点击事件 rightClick() { var tempEndDate = this.$lunarCalendar.changeLunar(this.QEndDate, 1); this.CalendarDataArray.push(tempEndDate); this.nowYear = tempEndDate.CurrentYear; this.nowMonth = tempEndDate.CurrentMonth; this.CalendarDataArray.shift(); //删除第一个元素 this.Calendar = this.CalendarDataArray; this.QStartDate = this.CalendarDataArray[0].CurrentDate; this.QEndDate = tempEndDate.CurrentDate; this.msg.StartDate = this.CalendarDataArray[0].CurrentDate; this.msg.EndDate = tempEndDate.CurrentDate; this.getList(); }, getCurrentUserBus(PlanDate, CityId, BusId, TCID, UseNum) { let msg = { PlanDate: PlanDate, CityId: CityId, BusId: BusId, UseNum: UseNum, TCID: TCID }; this.apipost( "bus_order_get_GetCurrentDayCanUseList", msg, res => { if (res.data.resultCode == 1) { this.infoList = res.data.data; } }, null ); }, columnsMouseOver(obj) { this.columnLine = obj; }, getEndDay() { var date1 = this.msg.StartDate; var date2 = new Date(date1); var c = date2.getDate(); var d = new Date(date2.setDate(c + 24)); this.msg.EndDate = d.Format("yyyy-MM-dd"); }, //点击获取每日详情 getDayInfo(Y, M, D) { let StartDate = Y + "-" + M + "-" + D; let msg = { StartDate: StartDate }; this.apipost( "bus_order_get_GetBusSummaryDay", msg, res => { if (res.data.resultCode == 1) { this.dayList = res.data.data; } }, null ); }, setCarInfo(BusId, ID) { let msg = { BusId: BusId, ID: ID }; this.apipost( "bus_order_get_ModifyBusTravelConfig", msg, res => { if (res.data.resultCode == 1) { this.Success("设置成功!"); this.getList(); } else { this.Error(res.data.message); } }, null ); } }, mounted() { this.initData(); this.getEndDay(); this.getList(); let nowDate = new Date().Format("yyyy-MM-dd"); this.nowYear = nowDate.split("-")[0]; this.nowMonth = parseInt(nowDate.split("-")[1]); } }; </script>