From 716b89768ab6b8a9146bfe2a27d35ca8522ba7b6 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期三, 17 四月 2024 15:04:14 +0800
Subject: [PATCH] 完成检验审核功能优化

---
 src/components/do/b1-ins-order/add.vue               |  115 ++++++++++---
 package-lock.json                                    |   24 +-
 src/components/view/b4-daily-business-statistics.vue |   11 +
 src/App.vue                                          |    8 +
 src/assets/api/controller.js                         |    5 
 src/components/view/index-index.vue                  |  287 +++++++++++++++++++++++++++++++++++
 6 files changed, 403 insertions(+), 47 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 58877b5..03199f3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -473,7 +473,7 @@
     },
     "@xmldom/xmldom": {
       "version": "0.8.10",
-      "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+      "resolved": "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
       "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw=="
     },
     "JSV": {
@@ -3583,7 +3583,7 @@
     },
     "dingbat-to-unicode": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz",
+      "resolved": "https://registry.npmmirror.com/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz",
       "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w=="
     },
     "dir-glob": {
@@ -3697,7 +3697,7 @@
     },
     "duck": {
       "version": "0.1.12",
-      "resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz",
+      "resolved": "https://registry.npmmirror.com/duck/-/duck-0.1.12.tgz",
       "integrity": "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==",
       "requires": {
         "underscore": "^1.13.1"
@@ -3705,7 +3705,7 @@
       "dependencies": {
         "underscore": {
           "version": "1.13.6",
-          "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
+          "resolved": "https://registry.npmmirror.com/underscore/-/underscore-1.13.6.tgz",
           "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A=="
         }
       }
@@ -6292,7 +6292,7 @@
     },
     "lop": {
       "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/lop/-/lop-0.4.1.tgz",
+      "resolved": "https://registry.npmmirror.com/lop/-/lop-0.4.1.tgz",
       "integrity": "sha512-9xyho9why2A2tzm5aIcMWKvzqKsnxrf9B5I+8O30olh6lQU8PH978LqZoI4++37RBgS1Em5i54v1TFs/3wnmXQ==",
       "requires": {
         "duck": "^0.1.12",
@@ -6302,7 +6302,7 @@
       "dependencies": {
         "underscore": {
           "version": "1.13.6",
-          "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
+          "resolved": "https://registry.npmmirror.com/underscore/-/underscore-1.13.6.tgz",
           "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A=="
         }
       }
@@ -6385,7 +6385,7 @@
     },
     "mammoth": {
       "version": "1.7.1",
-      "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.7.1.tgz",
+      "resolved": "https://registry.npmmirror.com/mammoth/-/mammoth-1.7.1.tgz",
       "integrity": "sha512-ckxfvNH5sUaJh+SbYbxpvB7urZTGS02jA91rFCNiL928CgE9FXXMyXxcJBY0n+CpmKE/eWh7qaV0+v+Dbwun3Q==",
       "requires": {
         "@xmldom/xmldom": "^0.8.6",
@@ -6402,12 +6402,12 @@
       "dependencies": {
         "bluebird": {
           "version": "3.4.7",
-          "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
+          "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz",
           "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA=="
         },
         "jszip": {
           "version": "3.10.1",
-          "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
+          "resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz",
           "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
           "requires": {
             "lie": "~3.3.0",
@@ -6418,7 +6418,7 @@
         },
         "underscore": {
           "version": "1.13.6",
-          "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
+          "resolved": "https://registry.npmmirror.com/underscore/-/underscore-1.13.6.tgz",
           "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A=="
         }
       }
@@ -7894,7 +7894,7 @@
     },
     "option": {
       "version": "0.2.4",
-      "resolved": "https://registry.npmjs.org/option/-/option-0.2.4.tgz",
+      "resolved": "https://registry.npmmirror.com/option/-/option-0.2.4.tgz",
       "integrity": "sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A=="
     },
     "ora": {
@@ -13829,7 +13829,7 @@
     },
     "xmlbuilder": {
       "version": "10.1.1",
-      "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz",
+      "resolved": "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-10.1.1.tgz",
       "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg=="
     },
     "xmlchars": {
diff --git a/src/App.vue b/src/App.vue
index 6c5cb58..3a329af 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -292,4 +292,12 @@
 
 	/* 鍏ㄥ眬杈撳叆妗嗘牱寮� */
 	/* 鍏ㄥ眬鎸夐挳鏍峰紡 */
+  /* 鍏ㄥ眬鎹㈣婧㈠嚭鏍峰紡 */
+  .ellipsis-multiline {
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2; /* 瀹氫箟鏂囨湰鐨勮鏁� */
+    overflow: hidden;
+    text-overflow: ellipsis;
+  }
 </style>
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index e3f02b6..299a7d9 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -18,6 +18,7 @@
     insReport,
     warehouse,
     department,
+    report,
 	}
 }
 
@@ -214,3 +215,7 @@
   delDepartment: "/department/delDepartment", //鍒犻櫎閮ㄩ棬
   showUserById: "/department/showUserById", //鏍规嵁閫夋嫨鐨勬爲灞曠ず鐩稿叧鐨勪汉鍛�
 }
+
+const report = {
+  businessStatisticsByDay: "/report/businessStatisticsByDay", //姣忔棩涓氬姟缁熻
+}
diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue
index 3b58669..1cf0c10 100644
--- a/src/components/do/b1-ins-order/add.vue
+++ b/src/components/do/b1-ins-order/add.vue
@@ -442,7 +442,7 @@
 						</div>
 					</el-col>
 					<el-col class="search_thing" :span="22">
-						<div class="search_label"><span class="required-span">* </span>鎸囨淳浜哄憳锛�</div>
+						<div class="search_label"><span class="required-span" v-if="addObj.type == 2">* </span>鎸囨淳浜哄憳锛�</div>
 						<div class="search_input">
 							<el-select v-model="distributeData.userId" placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
 								<el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
@@ -459,7 +459,24 @@
 				</el-row>
 			</span>
 		</el-dialog>
-
+    <el-dialog title="涓嶉�氳繃鍘熷洜" :visible.sync="noDialogVisible" width="400px">
+			<div class="body" style="max-height: 60vh;">
+				<el-row>
+					<el-col class="search_thing" :span="22">
+						<div class="search_label"><span class="required-span">* </span>涓嶉�氳繃鍘熷洜锛�</div>
+						<div class="search_input">
+							<el-input v-model="tell" size="small" placeholder="璇疯緭鍏ヤ笉閫氳繃鍘熷洜"></el-input>
+						</div>
+					</el-col>
+				</el-row>
+			</div>
+			<span slot="footer" class="dialog-footer">
+				<el-row>
+					<el-button @click="noDialogVisible=false,tell=''">鍙� 娑�</el-button>
+					<el-button type="primary" @click="submitTell" :loading="noLoading">纭� 瀹�</el-button>
+				</el-row>
+			</span>
+		</el-dialog>
 	</div>
 </template>
 
@@ -569,7 +586,10 @@
 				units: [],
 				models: [],
 				methods: [],
-				methodLoad: false
+				methodLoad: false,
+        noDialogVisible:false,
+        tell:'',
+        noLoading:false
 			}
 		},
 		watch: {
@@ -674,31 +694,43 @@
 				}
 			},
 			upInsOrderOfState(state) {
-				this.saveLoad = true
-				this.$axios.post(this.$api.insOrder.upInsOrderOfState, {
-					state,
-					id: this.currentId
-				}, {
-					headers: {
-						'Content-Type': 'application/json'
-					}
-				}).then(res => {
-					this.saveLoad = false
-					if (res.code == 201) return
-					this.$message.success('鎻愪氦鎴愬姛')
-					// 濡傛灉绱ф�ョ▼搴︿负绱ф�ワ紝闇�瑕佺洿鎺ヤ笅鍙戜汉鍛�
-					if (this.addObj.type == 2) {
-						this.issuedDialogVisible = true;
-						this.$axios.post(this.$api.insOrder.selectOrderManDay, {
-							id: this.currentId
-						}).then(ress => {
-							this.distributeData.orderId = this.currentId
-							this.distributeData.appointed = ress.data
-						})
-					} else {
-						this.$parent.playOrder(0)
-					}
-				})
+        if(state == 1){
+          this.saveLoad = true
+          this.$axios.post(this.$api.insOrder.upInsOrderOfState, {
+            state,
+            id: this.currentId
+          }, {
+            headers: {
+              'Content-Type': 'application/json'
+            }
+          }).then(res => {
+            this.saveLoad = false
+            if (res.code == 201) return
+            this.$message.success('鎻愪氦鎴愬姛')
+            // 濡傛灉绱ф�ョ▼搴︿负绱ф�ワ紝闇�瑕佺洿鎺ヤ笅鍙戜汉鍛�
+            // if (this.addObj.type == 2) {
+            // 	this.issuedDialogVisible = true;
+            // 	this.$axios.post(this.$api.insOrder.selectOrderManDay, {
+            // 		id: this.currentId
+            // 	}).then(ress => {
+            // 		this.distributeData.orderId = this.currentId
+            // 		this.distributeData.appointed = ress.data
+            // 	})
+            // } else {
+            // 	this.$parent.playOrder(0)
+            // }
+            this.issuedDialogVisible = true;
+            this.$axios.post(this.$api.insOrder.selectOrderManDay, {
+              id: this.currentId
+            }).then(ress => {
+              this.distributeData.orderId = this.currentId
+              this.distributeData.appointed = ress.data
+            })
+          })
+        }else{
+          // 涓嶉�氳繃
+          this.noDialogVisible = true
+        }
 			},
 			// 涓嬪彂
 			submitForm2() {
@@ -706,7 +738,7 @@
 					this.$message.error('绾﹀畾鏃堕棿鏈~鍐�')
 					return
 				}
-				if (this.distributeData.userId == null || this.distributeData.userId == '') {
+				if (this.addObj.type == 2&&(this.distributeData.userId == null || this.distributeData.userId == '')) {
 					this.$message.error('鎸囨淳浜哄憳鏈~鍐�')
 					return
 				}
@@ -725,7 +757,7 @@
 					this.issuedDialogVisible = false
 					this.$parent.playOrder(0)
 				}).catch(e => {
-					this.$message.error('淇敼澶辫触')
+					this.$message.error('鎻愪氦澶辫触')
 					this.upLoad = false
 				})
 			},
@@ -1126,6 +1158,29 @@
           this.$refs.productTable.doLayout()
         })
       },
+      submitTell(){
+        if (!this.tell) {
+					this.$message.error('璇疯緭鍏ヤ笉閫氳繃鍘熷洜')
+          return
+				}
+        this.noLoading = true;
+        this.$axios.post(this.$api.insOrder.upInsOrderOfState, {
+            state:2,
+            id: this.currentId,
+            tell:this.tell
+          }, {
+            headers: {
+              'Content-Type': 'application/json'
+            }
+          }).then(res => {
+            this.noLoading = false;
+            this.tell = '';
+            if (res.code == 201) return
+            this.$message.success('鎻愪氦鎴愬姛')
+            this.issuedDialogVisible = false;
+            this.$parent.playOrder(0)
+          })
+      }
 		}
 	}
 </script>
diff --git a/src/components/view/b4-daily-business-statistics.vue b/src/components/view/b4-daily-business-statistics.vue
index ae4f72c..6155c2b 100644
--- a/src/components/view/b4-daily-business-statistics.vue
+++ b/src/components/view/b4-daily-business-statistics.vue
@@ -146,6 +146,17 @@
         ]
       }
     }
+  },
+  mounted(){
+    this.init()
+  },
+  methods:{
+    init(){
+      this.$axios.get(this.$api.report.businessStatisticsByDay).then(res => {
+        if (res.code == 201) return
+        console.log(res)
+      })
+    }
   }
 }
 </script>
diff --git a/src/components/view/index-index.vue b/src/components/view/index-index.vue
index bff6116..57b55ee 100644
--- a/src/components/view/index-index.vue
+++ b/src/components/view/index-index.vue
@@ -10,7 +10,8 @@
 		background-image: url("../../../static/img/棣栭〉鍥剧墖1.png");
 		background-size: 100% 100%;
 		height: 118px;
-		margin-bottom: 10px;
+		margin-bottom: 16px;
+    border-radius: 16px;
 	}
 
 	.left-1 .say {
@@ -55,6 +56,7 @@
     display: flex;
     align-items: center;
     justify-content: space-between;
+    margin-bottom: 16px;
   }
 
   .right-1-item{
@@ -69,6 +71,155 @@
     color: #0166E2;
   }
 
+  .right-2{
+    padding: 13px 20px;
+    margin-bottom: 16px;
+  }
+
+  .right-2-title{
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+  }
+
+  .right-2-body{
+    width: 100%;
+    margin-top: 20px;
+    display: flex;
+    align-items: start;
+    justify-content: space-between;
+  }
+  >>>.el-calendar__header {
+    display: none;
+  }
+  >>>.el-calendar__body{
+    padding: 0;
+  }
+  >>>.el-calendar-table:not(.is-range) td.next {
+    /*闅愯棌涓嬩釜鏈堢殑鏃ユ湡*/
+    display: none;
+  }
+  >>>.el-calendar-day{
+    height: 40px;
+  }
+  >>>.el-calendar-table td{
+    border: 0;
+    font-size: 14px;
+  }
+  >>>.el-calendar-table tr td:first-child{
+    border-left: 0;
+  }
+  .control{
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    box-sizing: border-box;
+    padding: 0px 0 10px;
+  }
+  .control .el-button{
+    width: 32px;
+    height: 32px;
+    border-radius: 8px;
+    border: 1px solid #E8E8E8;
+    background: #fff;
+    padding: 0;
+    color: #0166E2;
+    font-size: 20px;
+  }
+  .list2-item{
+    line-height: 22px;
+    display: flex;
+    margin-bottom: 13px;
+    font-size: 14px;
+  }
+  .right-3{
+  }
+  .right-3-tab{
+    display: flex;
+    align-items: center;
+    margin-bottom: 16px;
+  }
+  .tab-item{
+    width: 50%;
+    box-sizing: border-box;
+    text-align: center;
+    padding: 16px 0;
+    font-size: 20px;
+    background: #F5F7FB;
+    color: #333333;
+  }
+  .tab-item.active{
+    background: #fff;
+    color: #FF3838;
+  }
+  .right-3-list{
+    padding: 0 12px 16px;
+  }
+  .list3-item{
+    padding: 6px 4px;
+    margin: 8px 0;
+  }
+  .list3-item:hover{
+    background: rgba(58, 123, 250,0.05);
+  }
+  .list3-item-title{
+    display: flex;
+    align-items: start;
+    margin-bottom: 10px;
+  }
+  .list3-item-info{
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    color: #666666;
+    font-size: 14px;
+  }
+  .left-2{
+    display: flex;
+    align-items: flex-start;
+    margin-bottom: 16px;
+  }
+  .left-2-item{
+    width: 14.1%;
+    border-right: 1px solid #F1F1F1;
+  }
+  .left-2-item:nth-last-child(1){
+    border-right: 0;
+  }
+  .left-2-item:hover{
+    background: rgba(58,123,250,0.05);
+  }
+  .left-2-item:hover .left-item-title span{
+    color: #3A7BFA !important;
+  }
+  .left-item-title{
+    border-bottom: 1px solid #F1F1F1;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    padding: 20px 0;
+  }
+  .left-item-body{
+    box-sizing: border-box;
+    padding: 5px;
+    max-height: 711px;
+    overflow-y: auto;
+  }
+  .body-item{
+    background: #70A090;
+    border-radius: 16px;
+    overflow: hidden;
+    margin-bottom: 8px;
+  }
+  .body-item>div{
+    height: calc(100% - 16px);
+    margin-top: 16px;
+    background: rgba(255, 255, 255,0.9);
+    padding: 8px 8px 16px;
+    display: flex;
+    flex-direction: column;
+  }
 </style>
 
 <template>
@@ -83,7 +234,26 @@
 						</div>
 					</div>
 				</div>
-        <div class="left-2 card"></div>
+        <div class="left-2 card">
+          <div class="left-2-item" v-for="(item,index) in 7" :key="index">
+            <div class="left-item-title">
+              <span style="font-size: 18px;">25</span>
+              <span style="font-size: 14px;color: #999999;">鏄熸湡鍥�</span>
+            </div>
+            <div class="left-item-body">
+              <div class="body-item" v-for="(m,i) in 8" :key="i">
+                <div>
+                  <span style="font-size: 12px;margin-bottom: 17px;">濮旀墭璁㈠崟WT20230101 -001妫�娴�</span>
+                  <el-image style="height: 24px;width: 24px;border-radius: 50%;">
+                    <div slot="error" class="image-slot">
+                      <i class="el-icon-picture-outline"></i>
+                    </div>
+                  </el-image>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
       </el-col>
       <el-col :xs="24" :sm="24" :md="10" :lg="10" :xl="10">
         <div class="right-1 card">
@@ -125,8 +295,57 @@
           </div>
         </div>
         <div class="right-2 card">
+          <div class="right-2-title">
+            <span style="color: #333333;font-size: 16px;">鎴戠殑鏃ョ▼</span>
+            <span style="cursor: pointer;font-size: 12px;
+color: #3A7BFA;">娣诲姞鎴戠殑鏃ョ▼</span>
+          </div>
+          <div class="right-2-body">
+            <div class="calendar" style="width: 49%;">
+              <div class="control">
+                <el-button class="prevm" @click="prevMonth(calendarValue)" icon="el-icon-arrow-left"></el-button>
+                <span>{{ calendarValue.getFullYear()+'骞�'+(calendarValue.getMonth() + 1)+'鏈�' }}</span>
+                <el-button class="nextm" @click="nextMonth(calendarValue)" icon="el-icon-arrow-right"></el-button>
+              </div>
+              <el-calendar v-model="calendarValue">
+                <template
+                    slot="dateCell"
+                    slot-scope="{date, data}">
+                        <span>
+                            {{ data.day.split('-').slice(2)+'' }}
+                        </span>
+                    <el-badge v-if="data.isSelected" is-dot class="item">
+                    </el-badge>
+                </template>
+              </el-calendar>
+            </div>
+            <div class="right-2-list" style="width: 49%;">
+              <div class="list2-item" v-for="(m,i) in 5" :key="i">
+                <span>14:00</span>
+                <el-tooltip style="margin-left: 10px;" effect="dark" content="鍙傚姞LIMS绯荤粺鍩硅浼氳锛屽苟绛句笂绾夸笂绾夸笂绾夸笂绾夸笂绾夸笂绾�" placement="top">
+                  <p class="ellipsis-multiline" >鍙傚姞LIMS绯荤粺鍩硅浼氳锛屽苟绛句笂绾夸笂绾夸笂绾夸笂绾夸笂绾夸笂绾�</p>
+                </el-tooltip>
+              </div>
+            </div>
+          </div>
         </div>
-        <div class="right-3 card">
+        <div class="right-3 card" style="overflow: hidden;">
+          <div class="right-3-tab">
+            <div class="tab-item" style="cursor: pointer;" :class="{active:currentIndex==0}" @click="currentIndex=0">棰勮鎻愰啋 10</div>
+            <div class="tab-item" style="cursor: pointer;" :class="{active:currentIndex==1}" @click="currentIndex=1">閫氱煡閫氬憡 12</div>
+          </div>
+          <div class="right-3-list">
+            <div class="list3-item" v-for="(m,i) in 5" :key="i">
+              <div class="list3-item-title">
+                <img src="../../../static/img/index-tip.svg" alt="">
+                <p>璁惧鍒版湡鎻愰啋</p>
+              </div>
+              <div class="list3-item-info">
+                <p>缂栧彿<span style="color:#3A7BFA;"> SB20240101-001 </span>鐨勮澶囧皢浜�2023-09-09 11:11:11杩囨湡</p>
+                <p>2023-09-09 09:09:09</p>
+              </div>
+            </div>
+          </div>
         </div>
       </el-col>
     </el-row>
@@ -139,12 +358,14 @@
 			return {
 				user: {},
 				now: null,
+        calendarValue: new Date(),
+        currentIndex:0,
 			}
 		},
 		mounted() {
 			this.user = JSON.parse(localStorage.getItem('user'))
 			this.nowTime()
-			this.getDataList()
+			// this.getDataList()
 			setInterval(() => {
 				this.nowTime()
 			}, 1000)
@@ -180,7 +401,63 @@
 				this.$axios.get(this.$api.dataReporting.getDataList).then(res => {
 					this.data = res.data
 				})
-			}
+			},
+      nextMonth(value) {
+        let year = this.calendarValue.getFullYear();// 褰撳墠骞翠唤
+        let month = this.calendarValue.getMonth() + 1;// 褰撳墠鏈堜唤
+        let day = this.calendarValue.getDate();// 褰撳墠澶╂暟
+        let nextyear = year;
+        let nextmonth = parseInt(month) + 1;
+        // 鍒ゆ柇涓嬩竴鏈堟槸鍚︿細杩涘叆涓嬩竴骞�
+        if (nextmonth === 13) {
+          nextyear = parseInt(year) + 1;
+          nextmonth = 1;
+        }
+        // 璁$畻涓嬩竴骞翠笅涓�涓湀鏈夊灏戝ぉ
+        let nextday = new Date(nextyear, nextmonth, 0);
+        let nextdays = nextday.getDate();
+        if (day > nextdays) {
+          day = nextdays;
+          if (day < 10) {
+            day = '0' + day;
+          }
+        }
+        if (nextmonth < 10) {
+          nextmonth = '0' + nextmonth;
+        }
+        let nexttime = nextyear + '-' + nextmonth + '-' + day;
+
+        // 灏嗗緱鍒扮殑骞存湀鏃ユ牸寮忚浆鎹负鏍囧噯鏃堕棿锛屼笌楗夸簡涔堟椂闂存牸寮忕浉鍚屾墠鑳借仈鍔�
+        this.calendarValue = new Date(nexttime);
+      },
+      prevMonth(time) {
+        let year = this.calendarValue.getFullYear();// 褰撳墠骞翠唤
+        let month = this.calendarValue.getMonth() + 1;// 褰撳墠鏈堜唤
+        let day = this.calendarValue.getDate();// 褰撳墠澶╂暟
+        let prevyear = year;
+        let prevmonth = parseInt(month) - 1;
+        // 鍒ゆ柇涓婁竴鏈堟槸鍚︿細杩涘叆涓婁竴骞�
+        if (prevmonth === 0) {
+          prevyear = parseInt(year) - 1;
+          prevmonth = 12;
+        }
+        // 璁$畻涓婁竴骞翠笂涓�涓湀鏈夊灏戝ぉ
+        let prevday = new Date(prevyear, prevmonth, 0);
+        let prevdays = prevday.getDate();
+        if (day > prevdays) {
+          day = prevdays;
+          if (day < 10) {
+            day = '0' + day;
+          }
+        }
+        if (prevmonth < 10) {
+          prevmonth = '0' + prevmonth;
+        }
+        let prevtime = prevyear + '-' + prevmonth + '-' + day;
+
+        // 灏嗗緱鍒扮殑骞存湀鏃ユ牸寮忚浆鎹负鏍囧噯鏃堕棿锛屼笌楗夸簡涔堟椂闂存牸寮忕浉鍚屾墠鑳借仈鍔�
+        this.calendarValue = new Date(prevtime);
+      },
 		}
 	}
 </script>

--
Gitblit v1.9.3