|
@@ -36,7 +36,10 @@
|
|
|
</div>
|
|
|
<div class="hum-page-title" style="margin-top: 30px">
|
|
|
<span>时间点</span>
|
|
|
- <el-button type="primary" @click="addTime">新增</el-button>
|
|
|
+ <span>
|
|
|
+ <el-button type="primary" @click="addTime">添加时间点</el-button>
|
|
|
+ <el-button type="primary" @click="showQuickSetTime">一键配置</el-button>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
<div class="hum-page-section">
|
|
|
<el-table v-loading="loading" :data="times" border>
|
|
@@ -62,6 +65,36 @@
|
|
|
<el-button @click="$router.back()">取消</el-button>
|
|
|
<el-button type="primary" @click="submitForm" :loading="loading">保存</el-button>
|
|
|
</div>
|
|
|
+
|
|
|
+ <el-dialog title="一键配置" width="390px" :visible.sync="isShowQuickSetDialog">
|
|
|
+ <el-form :model="quick" label-position="top">
|
|
|
+ <el-form-item label="时间范围" label-width="100px">
|
|
|
+ <el-time-picker
|
|
|
+ is-range
|
|
|
+ arrow-control
|
|
|
+ :clearable="false"
|
|
|
+ :picker-options="{ format: 'HH:mm' }"
|
|
|
+ v-model="quick.range"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始时间"
|
|
|
+ end-placeholder="结束时间"
|
|
|
+ placeholder="选择时间范围">
|
|
|
+ </el-time-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="时间间隔" label-width="100px">
|
|
|
+ <el-select v-model="quick.step" placeholder="请选择时间间隔">
|
|
|
+ <el-option label="半小时" :value="0.5"/>
|
|
|
+ <el-option label="一小时" :value="1"/>
|
|
|
+ <el-option label="两小时" :value="2"/>
|
|
|
+ <el-option label="三小时" :value="3"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="isShowQuickSetDialog = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="quickSet">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -69,6 +102,21 @@
|
|
|
import { getSite, getConfig } from '@/api/site/site'
|
|
|
import { savePlainTime, getSiteSection, getPlainTime, listPlainPoint } from '@/api/site/berthing'
|
|
|
import SectionChart from './chart';
|
|
|
+import {parseTime} from "@/utils/ruoyi";
|
|
|
+
|
|
|
+function getInitialTimeRange() {
|
|
|
+ const start = new Date();
|
|
|
+ start.setHours(8);
|
|
|
+ start.setMinutes(0);
|
|
|
+ start.setSeconds(0);
|
|
|
+
|
|
|
+ const end = new Date();
|
|
|
+ end.setHours(19);
|
|
|
+ end.setMinutes(0);
|
|
|
+ end.setSeconds(0);
|
|
|
+
|
|
|
+ return [start, end];
|
|
|
+}
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
@@ -88,6 +136,11 @@ export default {
|
|
|
wlevelmin: '',
|
|
|
wlevel: '',
|
|
|
},
|
|
|
+ isShowQuickSetDialog: false,
|
|
|
+ quick: {
|
|
|
+ range: getInitialTimeRange(),
|
|
|
+ step: 1,
|
|
|
+ },
|
|
|
form: {
|
|
|
timeId: '',
|
|
|
id: '',
|
|
@@ -161,6 +214,21 @@ export default {
|
|
|
addTime() {
|
|
|
this.times = [...this.times, { time: '' }];
|
|
|
},
|
|
|
+ showQuickSetTime() {
|
|
|
+ this.isShowQuickSetDialog = true;
|
|
|
+ },
|
|
|
+ quickSet() {
|
|
|
+ const { range, step } = this.quick;
|
|
|
+ const [start, end] = range;
|
|
|
+ const stepTime = step * 60 * 60 * 1000;
|
|
|
+ const times = []
|
|
|
+ for (let i = start.getTime(); i < end.getTime(); i+=stepTime) {
|
|
|
+ times.push({ time: this.parseTime(new Date(i), '{h}:{i}') });
|
|
|
+ }
|
|
|
+ times.push({ time: this.parseTime(end, '{h}:{i}') });
|
|
|
+ this.times = times;
|
|
|
+ this.isShowQuickSetDialog = false;
|
|
|
+ },
|
|
|
deleteTime(index) {
|
|
|
this.times.splice(index, 1);
|
|
|
},
|