From 13906d0efa0d3411ee5cd4f01d086a56632ee74d Mon Sep 17 00:00:00 2001
From: guoshipeng <3194674006@qq.com>
Date: Mon, 07 Nov 2022 15:21:00 +0800
Subject: [PATCH] 郭世朋提交走航车监测日报页面

---
 src/views/dailyreport/index.vue | 1037 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 715 insertions(+), 322 deletions(-)

diff --git a/src/views/dailyreport/index.vue b/src/views/dailyreport/index.vue
index e67516a..a8d1a51 100644
--- a/src/views/dailyreport/index.vue
+++ b/src/views/dailyreport/index.vue
@@ -1,231 +1,355 @@
 <template>
-<div class="dailyreport">
-  <div class="dailyBox">
-    <div class="dailyTop">
-      <el-select v-model="cityChoose" placeholder="���������">
-        <el-option
-            v-for="item in cityOptions"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
-        </el-option>
-      </el-select>
-      <el-date-picker
-          v-model="value1"
-          type="daterange"
-          align="right"
-          unlink-panels
-          range-separator="���"
-          start-placeholder="������������"
-          end-placeholder="������������"
-          :picker-options="pickerOptions1">
-      </el-date-picker>
-      <el-input v-model="carInput" placeholder="������������������������" clearable style="width: 180px;display: inline-block"></el-input>
-      <el-button type="primary" @click="selectExport" style="margin-right: 10px;">������</el-button>
-      <el-button type="primary" @click="openBox=true" style="margin-left: 0">������</el-button>
-      <!--    <el-input v-model="carInput" placeholder="������������������������" clearable style="width: 180px;display: inline-block"></el-input>-->
-<!--          <el-button type="primary" @click="carExport">���������������������</el-button>-->
+  <div class="dailyreport">
+    <div class="dailyBox">
+      <div class="dailyTop">
+        <el-select v-model="cityChoose" placeholder="���������������">
+          <el-option
+              v-for="item in cityOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+          </el-option>
+        </el-select>
+        <el-select v-model="equipChoose1" placeholder="���������������">
+          <el-option
+              v-for="item in equipOptions1"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+          </el-option>
+        </el-select>
+        <el-date-picker
+            v-model="value1"
+            type="daterange"
+            align="right"
+            unlink-panels
+            range-separator="���"
+            start-placeholder="������������"
+            end-placeholder="������������"
+            :picker-options="pickerOptions1">
+        </el-date-picker>
+        <el-select v-model="carInput" clearable placeholder="������������������" style="width: 180px;display: inline-block">
+          <el-option
+              v-for="(item,index) in carMac"
+              :key="index"
+              :label="item.name"
+              :value="item.mac">
+          </el-option>
+        </el-select>
+        <el-button type="primary" @click="selectExport" style="margin-right: 10px;">������</el-button>
+        <el-button type="primary" @click="upImgBtn" style="margin-left: 0">������</el-button>
+      </div>
+      <div class="dailyDown" style="overflow-y: auto">
+        <el-card class="boxCard">
+          <el-table
+              :data="tableData"
+              style="width: 100%;overflow-y: auto; height: 82%;">
+            <el-table-column
+                prop="name"
+                label="������������"
+            >
+            </el-table-column>
+            <el-table-column
+                prop="time"
+                label="������������"
+            >
+            </el-table-column>
+            <el-table-column
+                prop="date"
+                label="������������"
+            >
+            </el-table-column>
+            <el-table-column label="������">
+              <template slot-scope="scope">
+                <el-button type="text" size="medium" @click="expReport(scope.row)">������</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-card>
+      </div>
     </div>
-    <div class="dailyDown" style="overflow-y: auto">
-      <el-card class="boxCard">
-        <el-table
-            :data="tableData"
-            style="width: 100%;overflow-y: auto; height: 82%;">
-          <el-table-column
-              prop="name"
-              label="������������"
-          >
-          </el-table-column>
-          <el-table-column
-              prop="time"
-              label="������������"
-          >
-          </el-table-column>
-          <el-table-column
-              prop="date"
-              label="������������"
-          >
-          </el-table-column>
-          <el-table-column label="������">
-            <template slot-scope="scope">
-              <el-button type="text" size="medium" @click="expReport(scope.row)">������</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-      </el-card>
-    </div>
+    <el-dialog title="������������" :visible.sync="openBox">
+      <div class="openTop">
+        <el-select v-model="cityChoose2" placeholder="���������������">
+          <el-option
+              v-for="item in cityOptions2"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+          </el-option>
+        </el-select>
+        <el-select v-model="equipChoose2" placeholder="���������������">
+          <el-option
+              v-for="item in equipOptions2"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+          </el-option>
+        </el-select>
+        <el-select v-if="equipChoose2==='car'" v-model="carInput2" clearable placeholder="������������������" style="width: 180px;display: inline-block">
+          <el-option
+              v-for="(item, index) in carMac"
+              :key="index"
+              :label="item.name"
+              :value="item.mac">
+          </el-option>
+        </el-select>
+        <el-select v-else v-model="planSelect2" clearable placeholder="������������������" style="width: 180px;display: inline-block">
+          <el-option
+              v-for="(item, index) in planMac"
+              :key="index"
+              :label="item.name"
+              :value="item.mac">
+          </el-option>
+        </el-select>
+        <el-input v-if="equipChoose2==='car'" v-model="areaInput3" placeholder="���������������������" clearable style="width: 180px;display: inline-block"></el-input>
+        <el-input v-else v-model="planInput2" placeholder="���������������������" clearable style="width: 180px;display: inline-block"></el-input>
+        <el-button v-if="equipChoose2!=='car'" type="primary" @click="innerVisible = true">������������</el-button>
+        <div class="dateTimeBox">
+          <div>
+            <el-date-picker
+                v-model="value2"
+                type="datetimerange"
+                range-separator="���"
+                start-placeholder="������������"
+                end-placeholder="������������"
+                :picker-options="value2Pic"
+                @change="value2Change">
+            </el-date-picker>
+            <el-button style="padding: 6px 8px;" @click="addDate('add')" :disabled="isDidAdd">+</el-button>
+            <el-button style="padding: 6px 10px;" @click="addDate('minus')" :disabled="isDisMinus">-</el-button>
+          </div>
+          <div :style="{display:dateTime2}">
+            <el-date-picker
+                v-model="value3"
+                type="datetimerange"
+                range-separator="���"
+                start-placeholder="������������"
+                end-placeholder="������������"
+                :picker-options="value3Pic"
+                @change="value3Change">
+            </el-date-picker>
+          </div>
+          <div :style="{display:dateTime3}">
+            <el-date-picker
+                v-model="value4"
+                type="datetimerange"
+                range-separator="���"
+                start-placeholder="������������"
+                end-placeholder="������������"
+                :picker-options="value4Pic"
+                @change="value4Change">
+            </el-date-picker>
+          </div>
+        </div>
+      </div>
+      <div v-if="equipChoose2==='car'" class="uploadDiv" style="width:90%;overflow: auto;display: flex;flex-wrap: wrap;justify-content: space-between">
+        <el-upload
+            class="upload-demo"
+            action=""
+            ref="upload"
+            :on-change="handleChange1"
+            :on-remove="handleRemove1"
+            :file-list="fileList1"
+            :limit="1"
+            :on-exceed="handleExceed"
+            multiple
+            :auto-upload="false">
+          <el-button slot="trigger" type="primary" size="small">������������</el-button>
+          <div slot="tip" class="el-upload__tip">���������������������������������</div>
+        </el-upload>
+        <el-upload
+            class="upload-demo"
+            action=""
+            ref="upload"
+            :on-change="handleChange2"
+            :on-remove="handleRemove2"
+            :file-list="fileList2"
+            :limit="1"
+            :on-exceed="handleExceed"
+            multiple
+            :auto-upload="false">
+          <el-button slot="trigger" type="primary" size="small">������������</el-button>
+          <div slot="tip" class="el-upload__tip">���������PM2.5������������������</div>
+        </el-upload>
+        <el-upload
+            class="upload-demo"
+            action=""
+            ref="upload"
+            :on-change="handleChange3"
+            :on-remove="handleRemove3"
+            :file-list="fileList3"
+            :limit="1"
+            :on-exceed="handleExceed"
+            multiple
+            :auto-upload="false">
+          <el-button slot="trigger" type="primary" size="small">������������</el-button>
+          <div slot="tip" class="el-upload__tip">���������PM10������������������</div>
+        </el-upload>
+        <el-upload
+            class="upload-demo"
+            action=""
+            ref="upload"
+            :on-change="handleChange4"
+            :on-remove="handleRemove4"
+            :file-list="fileList4"
+            :limit="1"
+            :on-exceed="handleExceed"
+            multiple
+            :auto-upload="false">
+          <el-button slot="trigger" type="primary" size="small">������������</el-button>
+          <div slot="tip" class="el-upload__tip">���������NO2������������������</div>
+        </el-upload>
+        <el-upload
+            class="upload-demo"
+            action=""
+            ref="upload"
+            :on-change="handleChange5"
+            :on-remove="handleRemove5"
+            :file-list="fileList5"
+            :limit="1"
+            :on-exceed="handleExceed"
+            multiple
+            :auto-upload="false">
+          <el-button slot="trigger" type="primary" size="small">������������</el-button>
+          <div slot="tip" class="el-upload__tip">���������CO������������������</div>
+        </el-upload>
+        <el-upload
+            class="upload-demo"
+            action=""
+            ref="upload"
+            :on-change="handleChange6"
+            :on-remove="handleRemove6"
+            :file-list="fileList6"
+            :limit="1"
+            :on-exceed="handleExceed"
+            multiple
+            :auto-upload="false">
+          <el-button slot="trigger" type="primary" size="small">������������</el-button>
+          <div slot="tip" class="el-upload__tip">���������SO2������������������</div>
+        </el-upload>
+        <el-upload
+            class="upload-demo"
+            action=""
+            ref="upload"
+            :on-change="handleChange7"
+            :on-remove="handleRemove7"
+            :file-list="fileList7"
+            :limit="1"
+            :on-exceed="handleExceed"
+            multiple
+            :auto-upload="false">
+          <el-button slot="trigger" type="primary" size="small">������������</el-button>
+          <div slot="tip" class="el-upload__tip">���������O3������������������</div>
+        </el-upload>
+        <el-upload
+            class="upload-demo"
+            action=""
+            ref="upload"
+            :on-change="handleChange8"
+            :on-remove="handleRemove8"
+            :file-list="fileList8"
+            :limit="1"
+            :on-exceed="handleExceed"
+            multiple
+            :auto-upload="false">
+          <el-button slot="trigger" type="primary" size="small">������������</el-button>
+          <div slot="tip" class="el-upload__tip">���������VOCs������������������</div>
+        </el-upload>
+        <el-upload
+            class="upload-demo"
+            action=""
+            ref="upload"
+            :on-change="handleChange9"
+            :on-remove="handleRemove9"
+            :file-list="fileList9"
+            :limit="1"
+            :on-exceed="handleExceed"
+            multiple
+            :auto-upload="false">
+          <el-button slot="trigger" type="primary" size="small">������������</el-button>
+          <div slot="tip" class="el-upload__tip">���������������������</div>
+        </el-upload>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="openBox = false">��� ���</el-button>
+        <el-button type="primary" @click="submitImgs" :disabled ="isDisplay">��� ���</el-button>
+      </div>
+      <el-dialog
+          class="innerDialog"
+          width="60%"
+          title="������ Dialog"
+          :visible.sync="innerVisible"
+          append-to-body>
+        <Map></Map>
+      </el-dialog>
+    </el-dialog>
   </div>
-  <el-dialog title="������������" :visible.sync="openBox">
-    <div class="openTop">
-      <el-date-picker
-          v-model="value2"
-          align="right"
-          type="date"
-          placeholder="������������"
-          :picker-options="pickerOptions">
-      </el-date-picker>
-      <el-input v-model="carInput2" placeholder="������������������������" clearable style="width: 180px;display: inline-block"></el-input>
-    </div>
-    <div class="uploadDiv" style="width:90%;overflow: auto;display: flex;flex-wrap: wrap;justify-content: space-between">
-      <el-upload
-          class="upload-demo"
-          action=""
-          ref="upload"
-          :on-change="handleChange1"
-          :on-remove="handleRemove1"
-          :file-list="fileList1"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">���������������������������������</div>
-        <!--      <div slot="tip" class="el-upload__tip">������������jpg/png���������������������500kb</div>-->
-      </el-upload>
-      <el-upload
-          class="upload-demo"
-          action=""
-          ref="upload"
-          :on-change="handleChange2"
-          :on-remove="handleRemove2"
-          :file-list="fileList2"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">���������PM2.5������������������</div>
-      </el-upload>
-      <el-upload
-          class="upload-demo"
-          action=""
-          ref="upload"
-          :on-change="handleChange3"
-          :on-remove="handleRemove3"
-          :file-list="fileList3"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">���������PM10������������������</div>
-      </el-upload>
-      <el-upload
-          class="upload-demo"
-          action=""
-          ref="upload"
-          :on-change="handleChange4"
-          :on-remove="handleRemove4"
-          :file-list="fileList4"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">���������NO2������������������</div>
-      </el-upload>
-      <el-upload
-          class="upload-demo"
-          action=""
-          ref="upload"
-          :on-change="handleChange5"
-          :on-remove="handleRemove5"
-          :file-list="fileList5"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">���������CO������������������</div>
-      </el-upload>
-      <el-upload
-          class="upload-demo"
-          action=""
-          ref="upload"
-          :on-change="handleChange6"
-          :on-remove="handleRemove6"
-          :file-list="fileList6"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">���������SO2������������������</div>
-      </el-upload>
-      <el-upload
-          class="upload-demo"
-          action=""
-          ref="upload"
-          :on-change="handleChange7"
-          :on-remove="handleRemove7"
-          :file-list="fileList7"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">���������O3������������������</div>
-      </el-upload>
-      <el-upload
-          class="upload-demo"
-          action=""
-          ref="upload"
-          :on-change="handleChange8"
-          :on-remove="handleRemove8"
-          :file-list="fileList8"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">���������VOCs������������������</div>
-      </el-upload>
-      <el-upload
-          class="upload-demo"
-          action=""
-          ref="upload"
-          :on-change="handleChange9"
-          :on-remove="handleRemove9"
-          :file-list="fileList9"
-          multiple
-          :auto-upload="false">
-        <el-button slot="trigger" type="primary" size="small">������������</el-button>
-        <div slot="tip" class="el-upload__tip">���������������������</div>
-      </el-upload>
-    </div>
-    <div slot="footer" class="dialog-footer">
-      <el-button @click="openBox = false">��� ���</el-button>
-<!--      <el-button class="btnPosition" type="primary" plain @click="submitImgs">������</el-button>-->
-      <el-button type="primary" @click="submitImgs">��� ���</el-button>
-    </div>
-  </el-dialog>
-</div>
 </template>
 
 <script>
-// import { exportDocx } from '@/utils/exportDocx'
 import { exportDocx } from '@/utils/exportImageFile'
 import requestObj from '@/utils/request'
+import Map from '@/components/PlanMap/Map'
 export default {
+  components: { Map },
   data() {
     return {
       cityChoose: 'gx', // ������������������������������
+      cityChoose2: 'gx', // ���������������������������
       cityOptions: [{
         value: 'gx',
         label: '���������'
       }],
-      carInput: '', // ������������������������������
+      cityOptions2: [{
+        value: 'gx',
+        label: '���������'
+      }],
+      equipChoose1: 'car',
+      equipChoose2: 'car',
+      equipOptions1: [{
+        value: 'car',
+        label: '���������'
+      }],
+      equipOptions2: [{
+        value: 'car',
+        label: '���������'
+      }, {
+        value: 'plan',
+        label: '���������'
+      }],
       carInput2: '', // ������������������������������
+      carMac: [], // ���������mac������
+      carInput: '', // ������������������������������
+      areaInput3: '', // ������������
       value1: [new Date(), new Date()], // ������������������
-      value2: new Date(), // ������������
+      value2: [new Date(), new Date()], // ������������1
+      value3: [], // ������������2
+      value4: [], // ������������3
       pickerOptions1: {
         shortcuts: [{
           text: '������������',
           onClick(picker) {
-            const end = new Date();
-            const start = new Date();
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
-            picker.$emit('pick', [start, end]);
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+            picker.$emit('pick', [start, end])
           }
         }, {
           text: '���������������',
           onClick(picker) {
-            const end = new Date();
-            const start = new Date();
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
-            picker.$emit('pick', [start, end]);
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+            picker.$emit('pick', [start, end])
           }
         }, {
           text: '���������������',
           onClick(picker) {
-            const end = new Date();
-            const start = new Date();
-            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
-            picker.$emit('pick', [start, end]);
+            const end = new Date()
+            const start = new Date()
+            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+            picker.$emit('pick', [start, end])
           }
         }]
       },
@@ -254,6 +378,73 @@
           }
         }]
       },
+      carMacArr: [{
+        value: 'p5dnd7a0243624',
+        label: '���������������'
+      }, {
+        value: 'p5dnd7a0243622',
+        label: '���������622'
+      }, {
+        value: 'p5dnd7a0243625',
+        label: '���������625'
+      }],
+      timeOne: '',
+      timeTwo: '',
+      timeThree: '',
+      value2Pic: {
+        onPick: ({ maxDate, minDate }) => {
+          // ������������ ������������
+          this.timeOne = minDate.getTime() // ��������������������� ������������������
+          // ������������������������������������������������������������
+          if (maxDate) this.timeOne = ''
+        },
+        disabledDate: time => {
+          if (this.timeOne) {
+            const WEEK = 3 * 24 * 3600 * 1000 - 1 // ������������3���������1��������� ������3���������
+            const minTime = this.timeOne// ������������
+            const maxTime = this.timeOne + WEEK // ������������
+            return time.getTime() < minTime || time.getTime() > maxTime || time.getTime() > new Date()
+          } else {
+            return time.getTime() > new Date()
+          }
+        }
+      },
+      value3Pic: {
+        onPick: ({ maxDate, minDate }) => {
+          // ������������ ������������
+          this.timeTwo = minDate.getTime() // ��������������������� ������������������
+          // ������������������������������������������������������������
+          if (maxDate) this.timeTwo = ''
+        },
+        disabledDate: time => {
+          if (this.timeTwo) {
+            const WEEK = 3 * 24 * 3600 * 1000 - 1 // ������������3���������1��������� ������3���������
+            const minTime = this.timeTwo// ������������
+            const maxTime = this.timeTwo + WEEK // ������������
+            return time.getTime() < minTime || time.getTime() > maxTime || time.getTime() > new Date()
+          } else {
+            return time.getTime() > new Date()
+          }
+        }
+      },
+      value4Pic: {
+        onPick: ({ maxDate, minDate }) => {
+          // ������������ ������������
+          this.timeThree = minDate.getTime() // ��������������������� ������������������
+          // ������������������������������������������������������������
+          if (maxDate) this.timeThree = ''
+        },
+        disabledDate: time => {
+          if (this.timeThree) {
+            const WEEK = 3 * 24 * 3600 * 1000 - 1 // ������������3���������1��������� ������3���������
+            const minTime = this.timeThree// ������������
+            const maxTime = this.timeThree + WEEK // ������������
+            return time.getTime() < minTime || time.getTime() > maxTime || time.getTime() > new Date()
+          } else {
+            return time.getTime() > new Date()
+          }
+        }
+      },
       selectTime: [],
       upTime: [],
       fileList1: [],
@@ -268,120 +459,170 @@
       fileLists: [[], [], [], [], [], [], [], [], []],
       sailingReport: {
         fileLists: [
-          // fileList1: [],
-          // fileList2: [],
-          // fileList3: [],
-          // fileList4: [],
-          // fileList5: [],
-          // fileList6: [],
-          // fileList7: [],
-          // fileList8: [],
-          // fileList9: []
           [], [], [], [], [], [], [], [], []
         ],
-        index: 5,
+        index: 0,
         fileList: []
       },
       openBox: false, // ������������������
       // tableData: []
-      tableData: [{
-        date: '2016-05-02',
-        name: '���������',
-        time: '������������������������������ 1518 ���'
-      }, {
-        date: '2016-05-04',
-        name: '���������',
-        time: '������������������������������ 1517 ���'
-      }, {
-        date: '2016-05-01',
-        name: '���������',
-        time: '������������������������������ 1519 ���'
-      }, {
-        date: '2016-05-03',
-        name: '���������',
-        time: '������������������������������ 1516 ���'
-      }],
+      tableData: [],
       urlList: [],
-      numList: [0, 0, 0, 0, 0, 0, 0, 0, 0]
+      numList: [0, 0, 0, 0, 0, 0, 0, 0, 0],
+      isDisplay: false,
+      dateTime2: 'none',
+      dateTime3: 'none',
+      isDidAdd: false, // ���������������
+      isDisMinus: true, // ���������������
+      planSelect: '', // ������������������������
+      planSelect2: '', // ������������������������
+      planMac: [], // ���������������
+      planInput: '', // ���������������������������
+      planInput2: '', // ���������������������������
+      innerVisible: false, // ������������������������
+      radioSeven: 'PM2.5'
     }
+  },
+  watch: {
+    value1(n, o) {
+      if (n === null) {
+        this.value1 = []
+      }
+    },
+    value2(n, o) {
+      if (n === null) {
+        this.value2 = []
+      }
+    },
+    value3(n, o) {
+      if (n === null) {
+        this.value3 = []
+      }
+    },
+    value4(n, o) {
+      if (n === null) {
+        this.value4 = []
+      }
+    }
+  },
+  created() {
+    this.$request({
+      url: 'cruiser/selectCruisers',
+      method: 'get'
+    }).then(res => {
+      this.carMac = res.data
+    }).catch(err => {
+      console.log(err)
+    })
   },
   methods: {
     // ���������������������
     selectExport() {
-      this.upTime = this.newTime(this.value1)
-      this.$request({
-        url: '',
-        method: 'get',
-        params: {
-          startTime: this.upTime[0],
-          endTime: this.upTime[1],
-          mac: this.carInput
-        }
-      }).then(res => {
-        console.log(res)
-        var info = res.data
-        info.map(v => {
-          var time = v.time.split('-').json('')
-          v.name = `���������������������${time}`
+      this.selectTime = this.newTime(this.value1)
+      if (this.cityChoose && this.equipChoose1 && this.selectTime[1]) {
+        this.$request({
+          url: '/cruiser/selectDaily',
+          method: 'get',
+          params: {
+            code: this.cityChoose,
+            type: this.equipChoose1,
+            startTime: this.selectTime[0],
+            endTime: this.selectTime[1],
+            mac: this.carInput
+          }
+        }).then(res => {
+          this.carInput2 = this.carInput
+          var info = res.data
+          if (info.length === 0) {
+            this.$message('������������')
+            this.tableData = info
+            return
+          }
+          info.map(v => {
+            var time = v.time.split('-').join('')
+            v.name = `���������������������������${time}`
+          })
+          info.sort((a, b) => { return b.time.split('-').join('') - a.time.split('-').join('') })
+          this.tableData = info
+        }).catch(err => {
+          console.log(err)
         })
-      }).catch(err => {
-        console.log(err)
-      })
-    },
-    // ���������������������
-    carExport() {
-      const url1 = `http://47.99.64.149:8081//static/img/7f633687-8321-4f89-bffc-9a52f94cfb77.jpg`
-      const url2 = `http://47.99.64.149:8081//static/img/178d92d1-4729-4019-9b60-776a8c8653ac.jpg`
-      // console.log(url, 'url')
-      this.sailingReport.fileLists[0].push({ url: url1 })
-      this.sailingReport.fileLists[0].push({ url: url1 })
-      this.sailingReport.fileLists[1].push({ url: url2 })
-      this.sailingReport.fileLists[1].push({ url: url2 })
-      this.sailingReport.fileLists[2].push({ url: url2 })
-      this.sailingReport.city = '���������'
-      // console.log(this.sailingReport.fileLists, 'this.sailingReport.fileLists')
-      this.sailingReport.fileList.push({ url: url1 })
-      this.sailingReport.fileList.push({ url: url2 })
-      exportDocx('/sailingReport.docx', this.sailingReport, `���������������.docx`)
+      } else {
+        this.$message('���������������')
+      }
     },
     // ������������
     submitImgs() {
-      // ������������
-      this.openBox = false
-      this.numList = [this.fileLists[0].length, this.fileLists[1].length, this.fileLists[2].length, this.fileLists[3].length, this.fileLists[4].length, this.fileLists[5].length, this.fileLists[6].length, this.fileLists[7].length, this.fileLists[8].length]
-      console.log(this.numList, 'this.numList')
-      this.upTime = this.newTime(this.value2, 'submit')
-      const formData = new FormData()
-      formData.append(`code`, this.cityOptions)
-      formData.append(`time`, this.upTime)
-      formData.append(`mac`, this.carInput2)
-      this.fileLists.map(v => {
-        v.map(item => {
-          formData.append(`files`, item.raw)
+      if(this.equipChoose2 === 'car') {
+        this.tableData = []
+        this.isDisplay = true
+        this.numList = [this.fileLists[0].length, this.fileLists[1].length, this.fileLists[2].length, this.fileLists[3].length, this.fileLists[4].length, this.fileLists[5].length, this.fileLists[6].length, this.fileLists[7].length, this.fileLists[8].length]
+        var num = 0
+        this.numList.map(v => {
+          if (v > 0) {
+            num++
+          }
         })
-      })
-      // this.MultipartFile(formData).then(res => {
-      //   console.log(res)
-      //   if (res.code === 0) {
-      //     this.$message({
-      //       message: '���������������',
-      //       type: 'success'
-      //     })
-      //     var reportInfo = res.data
-      //     this.value1 = [this.value2, this.value2]
-      //     reportInfo.name = '���������������������������' + reportInfo.time.split('-').join('')
-      //     this.tableData = [reportInfo]
-      //   } else {
-      //     this.$message.error('���������������')
-      //   }
-      // }).catch(err => {
-      //   console.log(err)
-      // })
+        if (this.cityOptions2 && this.value2.length === 2 && this.equipChoose2 && this.carInput2 && this.areaInput3 && this.isDisplay && (num === 0 || num === this.fileLists.length)) {
+          this.upTime = this.newTime(this.value2, 'submit')
+          const formData = new FormData()
+          formData.append(`code`, this.cityChoose2)
+          formData.append(`type`, this.equipChoose2)
+          formData.append(`mac`, this.carInput2)
+          formData.append(`area`, this.areaInput3)
+          formData.append(`time1`, this.upTime[0])
+          formData.append(`time2`, this.upTime[1])
+          var upTime2 = []
+          var upTime3 = []
+          if (this.dateTime2 === 'block' && this.value3.length) { // ���������������������������
+            upTime2 = this.newTime(this.value3, 'submit')
+            formData.append(`time3`, upTime2[0])
+            formData.append(`time4`, upTime2[1])
+          }
+          if (this.dateTime3 === 'block' && this.value4.length) { // ���������������������������
+            upTime3 = this.newTime(this.value4, 'submit')
+            formData.append(`time5`, upTime3[0])
+            formData.append(`time6`, upTime3[1])
+          }
+          this.fileLists.map(v => {
+            v.map(item => {
+              formData.append(`files`, item.raw)
+            })
+          })
+          // ������������
+          this.openBox = false
+          this.MultipartFile(formData).then(res => {
+            this.isDisplay = false
+            if (res.code === 0) {
+              this.$message({
+                message: '���������������',
+                type: 'success'
+              })
+              var s = new Date(res.data.time) // ���������������������������������
+              this.value1 = [s, s]
+              this.carInput = this.carInput2
+              var reportInfo = res.data
+              reportInfo.name = '���������������������������' + reportInfo.time.split('-').join('')
+              this.tableData = [reportInfo]
+            } else if (res.code === -47) {
+              this.$message(res.message)
+            } else {
+              this.$message.error('���������������')
+            }
+          }).catch(err => {
+            console.log(err)
+            this.isDisplay = false
+          })
+        } else {
+          this.isDisplay = false
+          this.$message('���������������')
+        }
+      }
     },
     // ������������������������
     MultipartFile(data) {
       return this.$request({
-        url: '',
+        url: '/cruiser/getDaily',
         method: 'post',
         headers: { 'Content-Type': 'multipart/form-data' }, // ���������������������������������
         data
@@ -390,30 +631,158 @@
     // ������������
     expReport(obj) {
       this.$request({
-        url: '',
+        url: '/cruiser/loadDaily',
         method: 'get',
         params: {
           id: obj.id
         }
       }).then(res => {
-        console.log(res)
+        const baseUrl = `${requestObj.baseUrl}/static/img/`
+        var imagesObj = res.data.images
+        this.sailingReport = { ...this.sailingReport, ...res.data.code }
+        // const url1 = `http://47.99.64.149:8081//static/img/7f633687-8321-4f89-bffc-9a52f94cfb77.jpg`
+        if (imagesObj) {
+          for (let i = 0; i < imagesObj.length; i++) {
+            this.sailingReport.fileLists[i] = [{ url: baseUrl + imagesObj[i] }]
+          }
+        }
+        this.sailingReport.index = imagesObj.length
+        var data2 = obj.date.split('-')
+        this.sailingReport.date2 = data2[0] + '���' + data2[1] + '���' + data2[2] + '���'
+        var time = []
+        for (let i = 0; i < res.data.code.time.length; i++) {
+          time.push(res.data.code.time[i])
+        }
+        this.sailingReport.time0 = time[0]
+        if (time.length === 2) {
+          this.sailingReport.time1 = time[1]
+        }
+        if (time.length === 3) {
+          this.sailingReport.time1 = time[1]
+          this.sailingReport.time2 = time[2]
+        }
+        exportDocx('/sailingReport.docx', this.sailingReport, `${obj.name}.docx`)
       }).catch(err => {
         console.log(err)
       })
-      exportDocx('/sailingReport.docx', this.sailingReport, `���������������������������.docx`)
+    },
+    // ������������
+    upImgBtn() {
+      this.openBox = true
+      this.isDisplay = false
+    },
+    // ���������������������������������
+    addDate(name) {
+      if (name === 'add') { // ���
+        if (this.dateTime2 === 'none') { // ������dateTime2
+          this.dateTime2 = 'block'
+          this.value3 = [new Date(), new Date()]
+          this.isDisMinus = false
+        } else if (this.dateTime2 === 'block' && this.dateTime3 === 'none') { // ������dateTime3
+          this.dateTime3 = 'block'
+          this.value4 = [new Date(), new Date()]
+          this.isDidAdd = true
+        } else { // dateTime2���dateTime3������������
+          this.isDidAdd = true
+        }
+      } else { // ���
+        if (this.dateTime3 === 'block') {
+          this.dateTime3 = 'none'
+          this.isDidAdd = false
+          this.value4 = []
+        } else if (this.dateTime3 === 'none' && this.dateTime2 === 'block') {
+          this.value3 = []
+          this.dateTime2 = 'none'
+          this.isDisMinus = true
+        } else { // dateTime2���dateTime3���������������
+          this.isDisMinus = true
+          this.isDidAdd = false
+        }
+      }
+    },
+    // value2���������������������value3���value4
+    value2Change(e) {
+      var time2 = []
+      var time3 = []
+      var time4 = []
+      if (this.value2 !== null) {
+        if (this.value3.length && this.value4.length) { // value3���value4���������
+          for (let i = 0; i < 2; i++) {
+            time2.push(e[i].getTime())
+            time3.push(this.value3[i].getTime())
+            time4.push(this.value4[i].getTime())
+          }
+          if (!(time2[0] > time4[1] || time2[1] < time4[0]) || !(time2[0] > time3[1] || time2[1] < time3[0])) { // ���������
+            this.value2 = []
+            this.$message('���������������������������������')
+          }
+        } else if (this.value3.length) { // ������value3������
+          for (let i = 0; i < 2; i++) {
+            time3.push(this.value3[i].getTime())
+            time2.push(e[i].getTime())
+          }
+          if (!(time2[0] > time3[1] || time2[1] < time3[0])) { // ���������
+            this.value2 = []
+            this.$message('���������������������������������')
+          }
+        } else if (this.value4.length) { // ������value3������
+          for (let i = 0; i < 2; i++) {
+            time4.push(this.value4[i].getTime())
+            time2.push(e[i].getTime())
+          }
+          if (!(time2[0] > time4[1] || time2[1] < time4[0])) { // ���������
+            this.value2 = []
+            this.$message('���������������������������������')
+          }
+        }
+      }
+    },
+    // value3������������������������value2���������,���������value2������
+    value3Change(e) {
+      if (this.value3 !== null) {
+        if (this.value2.length) {
+          var time2 = []
+          var time3 = []
+          for (let i = 0; i < 2; i++) {
+            time3.push(e[i].getTime())
+            time2.push(this.value2[i].getTime())
+          }
+          if (!(time3[0] > time2[1] || time3[1] < time2[0])) { // ���������
+            this.value3 = []
+            this.$message('���������������������������������')
+          }
+        } else {
+          this.value3 = []
+          this.$message('���������������������������')
+        }
+      }
+    },
+    // value4������������������������value2���value3���������
+    value4Change(e) {
+      if (this.value4 !== null) {
+        if (this.value2.length && this.value3.length) {
+          var time2 = []
+          var time3 = []
+          var time4 = []
+          for (let i = 0; i < 2; i++) {
+            time2.push(this.value2[i].getTime())
+            time3.push(this.value3[i].getTime())
+            time4.push(this.value4[i].getTime())
+          }
+          if (!(time4[0] > time2[1] || time4[1] < time2[0]) || !(time4[0] > time3[1] || time4[1] < time3[0])) { // ���������
+            this.value4 = []
+            this.$message('���������������������������������')
+          }
+        } else {
+          this.value4 = []
+          this.$message('���������������������������������')
+        }
+      }
     },
     // ������������������������������0���
     newTime(timeArr, name) {
+      var arr = []
       if (name === 'submit') {
-        var date = new Date(timeArr)
-        var y = date.getFullYear()
-        var m = date.getMonth() + 1
-        m = m < 10 ? '0' + m : m
-        var d = date.getDate()
-        d = d < 10 ? '0' + d : d
-        return y + '-' + m + '-' + d
-      } else {
-        var arr = []
         timeArr.map(v => {
           var date = new Date(v)
           var y = date.getFullYear()
@@ -428,99 +797,116 @@
           var s = date.getSeconds()
           s = s < 10 ? '0' + s : s
           arr.push(y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + s)
-          // arr.push(y + '-' + m + '-' + d)
+        })
+        return arr
+      } else {
+        timeArr.map(v => {
+          var date = new Date(v)
+          var y = date.getFullYear()
+          var m = date.getMonth() + 1
+          m = m < 10 ? '0' + m : m
+          var d = date.getDate()
+          d = d < 10 ? '0' + d : d
+          arr.push(y + '-' + m + '-' + d)
         })
         return arr
       }
     },
+    // ���������base64������
+    getBase64(file) {
+      return new Promise(function(resolve, reject) {
+        var reader = new FileReader()
+        let imgResult = ''
+        reader.readAsDataURL(file)
+        reader.onload = function() {
+          imgResult = reader.result
+        }
+        reader.onerror = function(error) {
+          reject(error)
+        }
+        reader.onloadend = function() {
+          resolve(imgResult)
+        }
+      })
+    },
+    // ������������
+    handleExceed(files, fileList) {
+      this.$message.warning(`������������������ 1 ��������������������������� ${files.length} ������������������������ ${files.length + fileList.length} ���������`)
+    },
     // ���������������upload
     handleChange1(file, fileList) {
-      console.log(file, fileList)
+      // console.log(file, fileList)
       this.fileList1 = fileList
       this.fileLists[0] = fileList
+      // this.getBase64(file.raw).then(res => {
+      //   console.log(res)
+      // })
     },
     handleRemove1(file, fileList) {
-      console.log(file, fileList)
       this.fileList1 = fileList
       this.fileLists[0] = fileList
     },
     handleChange2(file, fileList) {
-      console.log(file, fileList)
       this.fileList2 = fileList
       this.fileLists[1] = fileList
     },
     handleRemove2(file, fileList) {
-      console.log(file, fileList)
       this.fileList2 = fileList
       this.fileLists[1] = fileList
     },
     handleChange3(file, fileList) {
-      console.log(file, fileList)
       this.fileList3 = fileList
       this.fileLists[2] = fileList
     },
     handleRemove3(file, fileList) {
-      console.log(file, fileList)
       this.fileList3 = fileList
       this.fileLists[2] = fileList
     },
     handleChange4(file, fileList) {
-      console.log(file, fileList)
       this.fileList4 = fileList
       this.fileLists[3] = fileList
     },
     handleRemove4(file, fileList) {
-      console.log(file, fileList)
       this.fileList4 = fileList
       this.fileLists[3] = fileList
     },
     handleChange5(file, fileList) {
-      console.log(file, fileList)
       this.fileList5 = fileList
       this.fileLists[4] = fileList
     },
     handleRemove5(file, fileList) {
-      console.log(file, fileList)
       this.fileList5 = fileList
       this.fileLists[4] = fileList
     },
     handleChange6(file, fileList) {
-      console.log(file, fileList)
       this.fileList6 = fileList
       this.fileLists[5] = fileList
     },
     handleRemove6(file, fileList) {
-      console.log(file, fileList)
       this.fileList6 = fileList
       this.fileLists[5] = fileList
     },
     handleChange7(file, fileList) {
-      console.log(file, fileList)
       this.fileList7 = fileList
       this.fileLists[6] = fileList
     },
     handleRemove7(file, fileList) {
-      console.log(file, fileList)
       this.fileList7 = fileList
       this.fileLists[6] = fileList
     },
     handleChange8(file, fileList) {
-      console.log(file, fileList)
       this.fileList8 = fileList
       this.fileLists[7] = fileList
     },
     handleRemove8(file, fileList) {
-      console.log(file, fileList)
       this.fileList8 = fileList
       this.fileLists[7] = fileList
     },
     handleChange9(file, fileList) {
-      console.log(file, fileList)
       this.fileList9 = fileList
       this.fileLists[8] = fileList
     },
     handleRemove9(file, fileList) {
-      console.log(file, fileList)
       this.fileList9 = fileList
       this.fileLists[8] = fileList
     }
@@ -637,5 +1023,12 @@
 }
 .openTop>div{
   margin-right: 15px;
+  margin-bottom: 15px;
+}
+.dateTimeBox>div{
+  margin-bottom: 10px;
+}
+.innerDialog /deep/ .el-dialog__body{
+  height: 90%;
 }
 </style>

--
Gitblit v1.8.0