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