ソースを参照

应急可视化 应急云图

彭宇 2 年 前
コミット
a6682f982b
7 ファイル変更663 行追加45 行削除
  1. 2 2
      src/api/event.js
  2. 27 27
      src/api/forest.js
  3. 1 1
      src/api/leader.js
  4. 4 4
      src/api/monitor.js
  5. 1 1
      src/api/vBottomMenu.js
  6. 0 10
      src/api/village.js
  7. 628 0
      src/views/dateForestDanger.vue

+ 2 - 2
src/api/event.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 //获取附近事件
 export function getNearEvent(longitude,latitude,day,loading) {
   return request({
-    url: '/center-emergency/VisuForestEventCenterController/getNearEvent?longitude='+longitude+"&latitude="+latitude+"&day="+day,
+    url: '/center-emergency/VisuEmergencyEventCenterController/getNearEvent?longitude='+longitude+"&latitude="+latitude+"&day="+day,
     method: 'get',
     headers: {
       loading: loading
@@ -13,7 +13,7 @@ export function getNearEvent(longitude,latitude,day,loading) {
 //获取附近摄像头
 export function getNearCamera(longitude,latitude) {
   return request({
-    url: '/center-emergency/VisuForestEventCenterController/getNearCamera?longitude='+longitude+"&latitude="+latitude+"&type=1",
+    url: '/center-emergency/VisuEmergencyEventCenterController/getNearCamera?longitude='+longitude+"&latitude="+latitude+"&type=1",
     method: 'get',
   })
 }

+ 27 - 27
src/api/forest.js

@@ -3,14 +3,14 @@ import request from '@/utils/request'
 // 左侧获取部门信息
 export function getBaseInfo() {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/getBaseInfo',
+    url: '/center-emergency/VisuEmergencyCloudMapController/getBaseInfo',
     method: 'post',
   })
 }
 // 左侧获取事件信息统计
 export function getTodayEvents(param,loading) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/getTodayEvents',
+    url: '/center-emergency/VisuEmergencyCloudMapController/getTodayEvents',
     method: 'post',
     data: param,
     headers: {
@@ -21,7 +21,7 @@ export function getTodayEvents(param,loading) {
 // 左侧获取事件部门数量
 export function getDeptEventCount(param,loading) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/getDeptEventCount',
+    url: '/center-emergency/VisuEmergencyCloudMapController/getDeptEventCount',
     method: 'post',
     data: param,
     headers: {
@@ -32,7 +32,7 @@ export function getDeptEventCount(param,loading) {
 // 右侧获取天气
 export function getWeather(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/getWeather',
+    url: '/center-emergency/VisuEmergencyCloudMapController/getWeather',
     method: 'post',
     data: param
   })
@@ -41,7 +41,7 @@ export function getWeather(param) {
 // 右侧获取事件列表
 export function getEventList(param,loading) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/getEventList',
+    url: '/center-emergency/VisuEmergencyCloudMapController/getEventList',
     method: 'post',
     data: param,
     headers: {
@@ -52,7 +52,7 @@ export function getEventList(param,loading) {
 // 右侧获取曝光台列表
 export function getExposureStage(param,loading) {
   return request({
-    url: 'center-emergency/VisuForestCloudMapController/getExposureStage',
+    url: 'center-emergency/VisuEmergencyCloudMapController/getExposureStage',
     method: 'post',
     data: param,
     headers: {
@@ -64,7 +64,7 @@ export function getExposureStage(param,loading) {
 // 获取事件详情
 export function getEventDetail(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/getEventDetail',
+    url: '/center-emergency/VisuEmergencyCloudMapController/getEventDetail',
     method: 'post',
     data: param
   })
@@ -72,7 +72,7 @@ export function getEventDetail(param) {
 // 获取日历颜色状态
 export function getEventByCalendar(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/getEventByCalendar',
+    url: '/center-emergency/VisuEmergencyCloudMapController/getEventByCalendar',
     method: 'post',
     data: param
   })
@@ -80,7 +80,7 @@ export function getEventByCalendar(param) {
 // 获取事件分类
 export function getEventByEventType(param,loading) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/getEventByEventType',
+    url: '/center-emergency/VisuEmergencyCloudMapController/getEventByEventType',
     method: 'post',
     data: param,
     headers: {
@@ -91,7 +91,7 @@ export function getEventByEventType(param,loading) {
 // 获取上报排名
 export function getEventByReportorOrder(param,loading) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/getEventByReportorOrder',
+    url: '/center-emergency/VisuEmergencyCloudMapController/getEventByReportorOrder',
     method: 'post',
     data: param,
     headers: {
@@ -118,7 +118,7 @@ export function sendEventLog(param) {
 // 事件处理流程
 export function updateCentereventTEventcatalogueStatus(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/updateCentereventTEventcatalogueStatus',
+    url: '/center-emergency/VisuEmergencyCloudMapController/updateCentereventTEventcatalogueStatus',
     method: 'post',
     data: param
   })
@@ -126,7 +126,7 @@ export function updateCentereventTEventcatalogueStatus(param) {
 // 事件处理流程-事件类型
 export function listSJfl(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/listSJfl',
+    url: '/center-emergency/VisuEmergencyCloudMapController/listSJfl',
     method: 'post',
     data: param
   })
@@ -134,21 +134,21 @@ export function listSJfl(param) {
 // 事件处理流程-关联预案
 export function listYuAn() {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/listYuAn',
+    url: '/center-emergency/VisuEmergencyCloudMapController/listYuAn',
     method: 'post'
   })
 }
 // 事件处理流程-签收部门
 export function selectByeventCode(eventCode) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/selectByeventCode/'+eventCode,
+    url: '/center-emergency/VisuEmergencyCloudMapController/selectByeventCode/'+eventCode,
     method: 'post'
   })
 }
 // 事件处理流程-联动
 export function sendTask(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/sendTask',
+    url: '/center-emergency/VisuEmergencyCloudMapController/sendTask',
     method: 'post',
     data:param
   })
@@ -156,14 +156,14 @@ export function sendTask(param) {
 // 任务接口
 export function selectTaskBO() {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/selectTaskBO',
+    url: '/center-emergency/VisuEmergencyCloudMapController/selectTaskBO',
     method: 'post',
   })
 }
 // 搜索物资
 export function listResourceByWz(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/listResourceByWz',
+    url: '/center-emergency/VisuEmergencyCloudMapController/listResourceByWz',
     method: 'post',
     data:param
   })
@@ -171,7 +171,7 @@ export function listResourceByWz(param) {
 // 任务领取部门列表
 export function selectTaskDtpts(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/selectTaskDtpts',
+    url: '/center-emergency/VisuEmergencyCloudMapController/selectTaskDtpts',
     method: 'post',
     data:param
   })
@@ -179,7 +179,7 @@ export function selectTaskDtpts(param) {
 // 任务领取
 export function receiveTask(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/receiveTask',
+    url: '/center-emergency/VisuEmergencyCloudMapController/receiveTask',
     method: 'post',
     data:param
   })
@@ -187,7 +187,7 @@ export function receiveTask(param) {
 // 任务拒绝
 export function refusedTask(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/refusedTask',
+    url: '/center-emergency/VisuEmergencyCloudMapController/refusedTask',
     method: 'post',
     data:param
   })
@@ -195,7 +195,7 @@ export function refusedTask(param) {
 // 事件调整关联预案
 export function updateYjYuAn(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/updateYjYuAn',
+    url: '/center-emergency/VisuEmergencyCloudMapController/updateYjYuAn',
     method: 'post',
     data:param
   })
@@ -203,7 +203,7 @@ export function updateYjYuAn(param) {
 // 事件详情截图直接上传日志
 export function uploadBase64(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/uploadBase64',
+    url: '/center-emergency/VisuEmergencyCloudMapController/uploadBase64',
     method: 'post',
     data:param
   })
@@ -212,7 +212,7 @@ export function uploadBase64(param) {
 // 通过事件code查询事件责任部门
 export function centereventtdepteventList(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/centereventtdepteventList',
+    url: '/center-emergency/VisuEmergencyCloudMapController/centereventtdepteventList',
     method: 'post',
     data:param
   })
@@ -220,7 +220,7 @@ export function centereventtdepteventList(param) {
 // 通过责任部门查询责任人
 export function dutysystemList(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/dutysystemList',
+    url: '/center-emergency/VisuEmergencyCloudMapController/dutysystemList',
     method: 'post',
     data:param
   })
@@ -229,7 +229,7 @@ export function dutysystemList(param) {
 // 事件责任制添加联系人
 export function dutysystemAdd(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/dutysystemAdd',
+    url: '/center-emergency/VisuEmergencyCloudMapController/dutysystemAdd',
     method: 'post',
     data:param
   })
@@ -237,7 +237,7 @@ export function dutysystemAdd(param) {
 // 事件责任制删除联系人
 export function dutysystemRemove(param) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/dutysystemRemove',
+    url: '/center-emergency/VisuEmergencyCloudMapController/dutysystemRemove',
     method: 'get',
     params:param
   })
@@ -278,7 +278,7 @@ export function selectMessageById(messageId) {
 // 右侧获取事件列表
 export function getAllDanger(param,loading) {
   return request({
-    url: '/center-emergency/VisuForestCloudMapController/getAllDanger',
+    url: '/center-emergency/VisuEmergencyCloudMapController/getAllDanger',
     method: 'post',
     data: param,
     headers: {

+ 1 - 1
src/api/leader.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 获取左侧
 export function getRy() {
   return request({
-    url: '/center-fire/VisuForestCloudMapController/getRy',
+    url: '/center-emergency/VisuEmergencyCloudMapController/getRy',
     method: 'post',
   })
 }

+ 4 - 4
src/api/monitor.js

@@ -3,14 +3,14 @@ import request from '@/utils/request'
 // 获取左侧动态感知设备
 export function selectDeviceType() {
   return request({
-    url: '/center-fire/VisuForestMonitorCenterController/selectDeviceType',
+    url: '/center-emergency/VisuEmergencyMonitorCenterController/selectDeviceType',
     method: 'post',
   })
 }
 // 根据设备类型查看列表
 export function selectCameraByDeptId(deptId) {
   return request({
-    url: '/center-fire/VisuForestMonitorCenterController/selectCameraByDeptId',
+    url: '/center-emergency/VisuEmergencyMonitorCenterController/selectCameraByDeptId',
     method: 'post',
     data:{"deptId":deptId}
   })
@@ -18,14 +18,14 @@ export function selectCameraByDeptId(deptId) {
 // 获取重点区域列表
 export function selectKeyAreaList() {
   return request({
-    url: '/center-fire/VisuForestCloudMapController/importarealistFegin',
+    url: '/center-emergency/VisuEmergencyCloudMapController/importarealistFegin',
     method: 'get',
   })
 }
 // 获取重点区域
 export function getRegionalFlag(id) {
   return request({
-    url: '/center-fire/VisuForestCloudMapController/getRegionalFlag/'+id,
+    url: '/center-emergency/VisuEmergencyCloudMapController/getRegionalFlag/'+id,
     method: 'get',
   })
 }

+ 1 - 1
src/api/vBottomMenu.js

@@ -4,7 +4,7 @@ import request from '@/utils/request'
 // 获取林场列表
 export function selectFarmByDeptId(param) {
   return request({
-    url: '/center-fire/VisuForestCloudMapController/selectFarmByDeptId',
+    url: '/center-emergency/VisuEmergencyCloudMapController/selectFarmByDeptId',
     method: 'post',
     data: param
   })

+ 0 - 10
src/api/village.js

@@ -1,10 +0,0 @@
-import request from '@/utils/request'
-
-// 获取左侧列表
-export function getEventByEventType(param) {
-  return request({
-    url: '/center-emergency/VisuForestCloudMapController/getEventByEventType',
-    method: 'post',
-    data:param
-  })
-}

+ 628 - 0
src/views/dateForestDanger.vue

@@ -0,0 +1,628 @@
+<template>
+	<div class="calendar-wrapper">
+		<!-- 月份变换区 -->
+		<div class="header rowJcAc" v-if="headerBar">
+			<!-- <div class="pre " @click="changeMonth('pre')">上个月</div> -->
+			<div class="yearMonth">
+				<div class="arrowIcon rowJcAc" @click="changeMonth('pre')" v-if="monthOpen">
+					<i class="el-icon-arrow-left"></i>
+				</div>
+				{{y+'-'+formatNum(m)}}
+				<div class="arrowIcon rowJcAc" @click="changeMonth('next')" v-if="monthOpen">
+					<i class="el-icon-arrow-right"></i>
+				</div>
+			</div>
+
+			<!-- <div class="next" @click="changeMonth('next')">下个月</div> -->
+		</div>
+
+		<!-- 星期区 -->
+		<div class="week">
+			<div class="week-day" v-for="(item,index) in weekDay" :key="index">{{item}}</div>
+		</div>
+
+		<!-- 日历显示区 -->
+		<div :class="{hide : !monthOpen}" class="content">
+			<div :style="{top:positionTop + 'px'}" class="days">
+				<div class="item rowJcAc" v-for="(item,index) in dates" :key="index">
+					<div class="day" @click="selectOne(item,$event)" :class="{
+              choose:choose==`${item.year}-${item.month}-${item.date}`,
+              todayChoose: isTodayChoose(item.year,item.month,item.date) ,
+              nolm:!item.isCurM,
+              today:isToday(item.year,item.month,item.date),
+			  notallowed:isFutureDay(item.year,item.month,item.date)
+
+
+          }">
+						<div class="markDay" v-if="isMarkDay(item.year,item.month,item.date)"
+							:class="[choose==`${item.year}-${item.month}-${item.date}` ? 'markDayChoose':'markDayNoChoose']">
+						</div>
+
+						<p>{{Number(item.date)}}
+						<div :class="calendarDaycount(item.year,item.month,item.date)"></div>
+						</p>
+					</div>
+
+				</div>
+			</div>
+		</div>
+		<!-- 伸缩按钮:待定 -->
+		<!--<div class="bottomLine rowJcAc" v-if="collapsible" @click="toggle">-->
+		<!--<div></div>-->
+		<!--</div>-->
+		<!-- 伸缩按钮:待定 -->
+		<!-- <img
+      src="https://i.loli.net/2020/07/16/2MmZsucVTlRjSwK.png"
+      mode="scaleToFill"
+      v-if="collapsible"
+      @click="toggle"
+      class="weektoggle"
+      :class="{ down: monthOpen }"
+    /> -->
+	    <div class="date-what">
+			<div class="d-w-info">
+				<div class="d-w-i-color d-state-zc"></div>
+				正常
+			</div>
+			<div class="d-w-info">
+				<div class="d-w-i-color d-state-t10"></div>
+				≤10
+			</div>
+			<div class="d-w-info">
+				<div class="d-w-i-color d-state-b10"></div>
+				>10
+			</div>
+		</div>
+	</div>
+</template>
+
+<script>
+import {
+  getEventByCalendar
+} from '@/api/forest'
+	export default {
+		name: "ren-calendar",
+		props: {
+			// 星期几为第一天(0为星期日)
+			weekstart: {
+				type: Number,
+				default: 0,
+			},
+			// 标记的日期
+			markDays: {
+				type: Array,
+				default: () => {
+					return [];
+				},
+			},
+			//是否展示月份切换按钮
+			headerBar: {
+				type: Boolean,
+				default: true,
+			},
+			// 是否展开
+			open: {
+				type: Boolean,
+				default: true,
+			},
+			//是否可收缩
+			collapsible: {
+				type: Boolean,
+				default: true,
+			},
+			//未来日期是否不可点击
+			disabledAfter: {
+				type: Boolean,
+				default: true,
+			},
+			// 默认选中日期
+			selectDate: {
+				type: String,
+				default: null
+			}
+		},
+		data() {
+			return {
+				weektext: ["日", "一", "二", "三", "四", "五", "六"],
+				y: new Date().getFullYear(), // 年
+				m: new Date().getMonth() + 1, // 月
+				dates: [], // 当前月的日期数据
+				positionTop: 0,
+				monthOpen: false,
+				choose: "",
+				isCurM: true,
+        eventByCalendarList:[]
+			};
+		},
+		created() {
+      this.monthDay(this.y, this.m);
+			// !this.open && this.toggle();
+		},
+		watch: {
+			// 点击返回今天
+			selectDate() {
+				if (this.selectDate) {
+					this.choose = this.selectDate
+					this.y = Number(this.selectDate.split('-')[0])
+					this.m = Number(this.selectDate.split('-')[1])
+					this.monthDay(this.y, this.m);
+					if (!this.monthOpen) {
+						let index = -1;
+						this.dates.forEach((i, x) => {
+							this.isChoose(i.year, i.month, i.date) && (index = x);
+						});
+						this.positionTop = -((Math.ceil((index + 1) / 7) || 1) - 1) * 42;
+					}
+				}
+
+
+			},
+			m() {
+				this.$emit('changeMonth', {
+					year: this.y,
+					month: this.m
+				})
+			},
+			dates() {
+				this.$emit('changeDates', {
+					dates: this.dates
+				})
+			}
+		},
+		mounted() {
+			if (this.selectDate) {
+				this.choose = this.selectDate
+				this.y = this.selectDate.split('-')[0]
+				this.m = this.selectDate.split('-')[1]
+			} else {
+				this.choose = this.getToday().date;
+			}
+			this.toggle()
+
+		},
+		computed: {
+			// 顶部星期栏
+			weekDay() {
+				return this.weektext
+					.slice(this.weekstart)
+					.concat(this.weektext.slice(0, this.weekstart));
+			},
+		},
+		methods: {
+      // 标记日期状态颜色
+      calendarDaycount(y, m, d) {
+        let day=y + "-" + this.formatNum(m) + "-" + this.formatNum(d)
+        if(new Date(day)<new Date()){
+          if(this.eventByCalendarList!=null&&this.eventByCalendarList.length>0){
+            for (let i = 0; i < this.eventByCalendarList.length; i++) {
+              if(this.eventByCalendarList[i].day==day){
+                if(this.eventByCalendarList[i].daycount>0&&this.eventByCalendarList[i].daycount<=10){
+                  return "date-state-pointer d-state-t10"
+                }else if(this.eventByCalendarList[i].daycount>10){
+                  return "date-state-pointer d-state-b10"
+                }else{
+                  return "date-state-pointer d-state-zc"
+                }
+              }
+            }
+          }
+        }else{
+          return "date-state-pointer";
+        }
+      },
+			formatNum(num) {
+				let res = Number(num);
+				return res < 10 ? "0" + res : res;
+			},
+			getToday() {
+				let date = new Date();
+				let y = date.getFullYear();
+				let m = date.getMonth();
+				let d = date.getDate();
+				let week = new Date().getDay();
+				let weekText = ["日", "一", "二", "三", "四", "五", "六"];
+				let formatWeek = "星期" + weekText[week];
+				let today = {
+					date: y + "-" + this.formatNum(m + 1) + "-" + this.formatNum(d),
+					week: formatWeek,
+				};
+				return today;
+			},
+			// 获取当前月份数据
+      async monthDay(y, month) {
+        let param={ day: y+"-"+this.formatNum(Number(month)) }
+        // await getEventByCalendar(param).then(res => {
+        //   //获取日历颜色状态
+        //   this.eventByCalendarList=res.data;
+        // })
+        this.dates = [];
+        let m = Number(month);
+        let firstDayOfMonth = new Date(y, m - 1, 1).getDay(); // 当月第一天星期几
+				let lastDateOfMonth = new Date(y, m, 0).getDate(); // 当月最后一天
+				let lastDayOfLastMonth = new Date(y, m - 1, 0).getDate(); // 上一月的最后一天
+				let weekstart = this.weekstart == 7 ? 0 : this.weekstart;
+				let startDay = (() => {
+					// 周初有几天是上个月的
+					if (firstDayOfMonth == weekstart) {
+						return 0;
+					} else if (firstDayOfMonth > weekstart) {
+						return firstDayOfMonth - weekstart;
+					} else {
+						return 7 - weekstart + firstDayOfMonth;
+					}
+				})();
+				let endDay = 7 - ((startDay + lastDateOfMonth) % 7); // 结束还有几天是下个月的
+				for (let i = 1; i <= startDay; i++) {
+          this.dates.push({
+						date: this.formatNum(lastDayOfLastMonth - startDay + i),
+						day: weekstart + i - 1 || 7,
+						month: m - 1 >= 1 ? this.formatNum(m - 1) : 12,
+						year: m - 1 >= 1 ? y : y - 1,
+						isCurM: false
+					});
+				}
+				for (let j = 1; j <= lastDateOfMonth; j++) {
+          this.dates.push({
+						date: this.formatNum(j),
+						day: (j % 7) + firstDayOfMonth - 1 || 7,
+						month: this.formatNum(m),
+						year: y,
+						isCurM: true, //是否当前月份
+					});
+				}
+				for (let k = 1; k <= endDay; k++) {
+          this.dates.push({
+						date: this.formatNum(k),
+						day: (lastDateOfMonth + startDay + weekstart + k - 1) % 7 || 7,
+						month: m + 1 <= 12 ? this.formatNum(m + 1) : 1,
+						year: m + 1 <= 12 ? y : y + 1,
+						isCurM: false
+					});
+				}
+			},
+			isFutureDay(y, m, d) {
+				//是否未来日期
+				let ymd = `${y}/${m}/${d}`;
+				let formatDY = new Date(ymd.replace(/-/g, "/"));
+				let showTime = formatDY.getTime();
+				let curTime = new Date().getTime();
+				if (showTime > curTime) {
+					return true;
+				} else {
+					return false;
+				}
+			},
+			// 标记日期
+			isMarkDay(y, m, d) {
+				let flag = false;
+				for (let i = 0; i < this.markDays.length; i++) {
+					let dy = `${y}-${m}-${d}`;
+					if (this.markDays[i] == dy) {
+						flag = true;
+						break;
+					}
+				}
+				return flag;
+			},
+			isToday(y, m, d) {
+				let checkD = y + "-" + m + "-" + d;
+				let today = this.getToday().date;
+				if (checkD == today) {
+          return true;
+				} else {
+					return false;
+				}
+			},
+			isTodayChoose(year, month, day) {
+				let checkD = year + "-" + month + "-" + day;
+				let today = this.getToday().date;
+				return this.choose == `${year}-${month}-${day}` && checkD == today
+			},
+			isChoose(y, m, d) {
+				let checkD = y + "-" + m + "-" + d;
+				return this.choose == checkD
+			},
+			// 展开收起
+			toggle() {
+				this.monthOpen = !this.monthOpen;
+				if (this.monthOpen) {
+					this.positionTop = 0;
+				} else {
+					let index = -1;
+					this.dates.forEach((i, x) => {
+						this.isChoose(i.year, i.month, i.date) && (index = x);
+					});
+					this.positionTop = -((Math.ceil((index + 1) / 7) || 1) - 1) * 42;
+				}
+			},
+			// 点击回调
+			selectOne(i) {
+				let markDay = this.isMarkDay(i.year, i.month, i.date);
+				let date = `${i.year}-${i.month}-${i.date}`;
+				let selectD = new Date(date).getTime();
+				let curTime = new Date().getTime();
+				let week = new Date(date).getDay();
+				let weekText = ["日", "一", "二", "三", "四", "五", "六"];
+				let formatWeek = "星期" + weekText[week];
+				let response = {
+					date: date,
+					week: formatWeek,
+				};
+				// if (!i.isCurM) {
+				//   // console.log('不在当前月范围内');
+				//   return false;
+				// }
+				if (selectD > curTime) {
+					if (this.disabledAfter) {
+						console.log("未来日期不可选");
+						return false;
+					} else {
+						this.choose = date;
+						if (markDay && i.isCurM) {
+							this.$emit("onDayClick", response);
+						}
+					}
+				} else {
+					this.choose = date;
+					if (i.isCurM) {
+						this.$emit("onDayClick", response);
+					} else {
+						this.y = i.year
+						this.m = i.month
+            this.monthDay(this.y, this.m);
+						this.$emit("onDayClick", response);
+					}
+				}
+				this.$emit("setDate", response);
+				//   console.log(response);
+        this.$emit("selectDay", date);
+			},
+			//改变年月
+			changYearMonth(y, m) {
+        this.monthDay(y, m);
+				this.y = y;
+				this.m = m;
+			},
+			changeMonth(type) {
+				this.y = parseInt(this.y)
+				this.m = parseInt(this.m)
+				if (type == "pre") {
+
+					if (this.m + 1 == 2) {
+						this.m = 12;
+						this.y = parseInt(this.y) - 1;
+					} else {
+						this.m = this.m - 1;
+					}
+				} else {
+					if (this.m + 1 == 13) {
+						this.m = 1;
+						this.y = this.y + 1;
+					} else {
+						this.m = this.m + 1;
+					}
+				}
+        this.monthDay(this.y, this.m);
+				// this.$emit("changeMonth");
+			},
+		},
+	};
+</script>
+
+<style lang="scss" scoped>
+	.notallowed{
+		cursor: not-allowed !important
+	}
+	@import '@/assets/styles/base.scss';
+	//状态
+	.d-state-zc {
+		background-color: $date-state1;
+	}
+
+	.d-state-t10 {
+		background-color: $date-state2;
+	}
+
+	.d-state-b10 {
+		background-color: $date-state3;
+	}
+
+	.bottomLine {
+		padding-top: 12px;
+		padding-bottom: 12px;
+
+		>div {
+			width: 32px;
+			height: 3px;
+			background: none;
+			border-radius: 2px;
+		}
+	}
+
+	.nolm {
+		color: #2b4376 !important;
+	}
+
+	.calendar-wrapper {
+		text-align: center;
+
+		.header {
+			.yearMonth {
+				font-size: 16px;
+				line-height: 23px;
+				color: $inBlue;
+				margin: 0 32px;
+				display: flex;
+				justify-content: center;
+			}
+
+
+		}
+
+		.week {
+			display: flex;
+			justify-content: space-around;
+			width: 100%;
+			align-items: center;
+			height: 19px;
+			line-height: 19px;
+			font-size: 13px;
+			font-weight: 600;
+			margin-top: 5px;
+			color: $inBlue;
+		}
+
+		.content {
+			position: relative;
+			transition: height 0.4s ease;
+
+			.days {
+				transition: top 0, 3s;
+				display: flex;
+				align-items: center;
+				flex-wrap: wrap;
+				position: relative;
+				font-size: 14px;
+				line-height: 19px;
+
+				.item {
+					position: relative;
+					display: block;
+					height: 33px;
+					line-height: 33px;
+					width: calc(100% / 7);
+
+					.day {
+						font-style: normal;
+						display: inline-block;
+						position: relative;
+						vertical-align: middle;
+						width: 30px;
+						font-weight: 500;
+						height: 30px;
+						line-height: 30px;
+						overflow: hidden;
+						border-radius: 50%;
+						cursor: pointer;
+						color: #3d8bbc;
+						font-size: 11px;
+
+						.date-state-pointer {
+							position: absolute;
+							bottom: 1px;
+							left: 50%;
+							transform: translateX(-50%);
+							width: 4px;
+							height: 4px;
+							border-radius: 5px;
+						}
+
+
+
+
+						&.choose {
+							background-color: #3a4350;
+							color: #fff !important;
+						}
+
+						&.todayChoose {
+							background-color: #1A7AF8 !important;
+							color: #fff;
+						}
+
+					}
+
+
+					.notSigned {
+						font-style: normal;
+						width: 8rpx;
+						height: 8rpx;
+						background: #fa7268;
+						border-radius: 10rpx;
+						position: absolute;
+						left: 50%;
+						bottom: 0;
+						pointer-events: none;
+					}
+
+					.today {
+						color: #ffffff;
+						background-color: #3c56b5;
+					}
+
+					.markDayNoChoose {
+						background: #1A7AF8;
+					}
+
+					.markDayChoose {
+						background: #fff;
+					}
+
+					.markDay {
+						width: 4px;
+						height: 4px;
+						border-radius: 50%;
+						position: absolute;
+						left: 16px;
+						bottom: 4px;
+						pointer-events: none;
+					}
+				}
+			}
+		}
+
+		.hide {
+			height: 42px !important;
+		}
+
+		.arrowIcon {
+			width: 40px;
+			height: 23px;
+			cursor: pointer;
+			margin: 0 5px;
+
+		}
+
+		.arrowIcon:hover {
+			background-color: #202e62;
+
+			i {
+				color: #fff;
+			}
+
+		}
+
+		// .weektoggle {
+		//   width: 85px;
+		//   height: 32px;
+		//   position: relative;
+		//   left: 50%;
+		//   margin-left: -42px;
+		//   bottom: -42px;
+		//   &.down {
+		//     transform: rotate(180deg);
+		//     bottom: 0;
+		//   }
+		// }
+		.date-what{
+			width: 100%;
+			color: $inBlue;
+			display: flex;
+			align-items: center;
+			padding:.4rem 1rem ;
+			position: absolute;
+			bottom: 0;
+			justify-content: space-between;
+			.d-w-info{
+				display: flex;
+				align-items: center;
+				.d-w-i-color{
+					width: 1rem;
+					height: 1rem;
+					margin-right: .5rem;
+					border-radius: .2rem;
+				}
+			}
+		}
+	}
+</style>