flx:优化
This commit is contained in:
parent
8b421215f0
commit
a0e0c495c6
@ -0,0 +1,343 @@
|
|||||||
|
<template>
|
||||||
|
<div class="calendar">
|
||||||
|
<!-- <div class="calendar-header">
|
||||||
|
<button @click="prevMonth"><</button>
|
||||||
|
<h2>{{ currentYear }} 年 {{ currentMonth + 1 }} 月</h2>
|
||||||
|
<button @click="nextMonth">></button>
|
||||||
|
</div> -->
|
||||||
|
<div class="calendar-weekdays">
|
||||||
|
<span v-for="day in weekdays" :key="day">周{{ day }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="calendar-days">
|
||||||
|
<div
|
||||||
|
v-for="day in daysInMonth"
|
||||||
|
:key="day.date"
|
||||||
|
class="calendar-day"
|
||||||
|
@click="selectDate(day.date)"
|
||||||
|
:class="day.duration ? 'calendar-day2' : 'calendar-day1'"
|
||||||
|
>
|
||||||
|
<div class="calendar-day_header">
|
||||||
|
<div
|
||||||
|
class="calendar-text"
|
||||||
|
:class="{
|
||||||
|
'other-month': day.isOtherMonth,
|
||||||
|
'current-day': day.isCurrentDay,
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<!-- || day.duration -->
|
||||||
|
{{ day.day }}
|
||||||
|
</div>
|
||||||
|
<!-- v-if="day.isBeforeDay || day.isCurrentDay" -->
|
||||||
|
<div
|
||||||
|
class="calendar-box1"
|
||||||
|
:class="day.duration ? 'bg-color88' : 'bg-colord0'"
|
||||||
|
>
|
||||||
|
{{ day.duration ? "" : "无记录" }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="calendar-day_box1"
|
||||||
|
v-if="defaultType == 2 && dateTimeUp(day.date)"
|
||||||
|
@click="addView(day)"
|
||||||
|
>
|
||||||
|
<i class="el-icon-edit"></i>
|
||||||
|
去填写
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="calendar-day_box2"
|
||||||
|
:class="{ 'box2-center': day.duration }"
|
||||||
|
>
|
||||||
|
{{ durationHour(day.duration) }}h
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "CalendarView",
|
||||||
|
props: {
|
||||||
|
defaultMonth: {
|
||||||
|
type: String,
|
||||||
|
default: () => dayjs().format("YYYY-MM"),
|
||||||
|
},
|
||||||
|
ocrBuildLogAllList: { type: Array, default: () => [] },
|
||||||
|
type: { type: Number, default: () => 1 },
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
currentDate: this.defaultMonth,
|
||||||
|
weekdays: ["日", "一", "二", "三", "四", "五", "六"],
|
||||||
|
dataList: [],
|
||||||
|
defaultType: 1,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
dateTimeUp() {
|
||||||
|
return (dateTime) => {
|
||||||
|
return dayjs(dateTime).isBefore(dayjs());
|
||||||
|
};
|
||||||
|
},
|
||||||
|
durationHour() {
|
||||||
|
return (seconds) => {
|
||||||
|
if (!seconds) return 0;
|
||||||
|
return (seconds / 60 / 60).toFixed(2);
|
||||||
|
};
|
||||||
|
},
|
||||||
|
currentYear() {
|
||||||
|
return dayjs(this.currentDate).year();
|
||||||
|
},
|
||||||
|
currentMonth() {
|
||||||
|
return dayjs(this.currentDate).month();
|
||||||
|
},
|
||||||
|
daysInMonth() {
|
||||||
|
console.log(22222222222, this.currentDate);
|
||||||
|
const currentDayjs = dayjs(this.currentDate);
|
||||||
|
const startOfMonth = currentDayjs.startOf("month");
|
||||||
|
const endOfMonth = currentDayjs.endOf("month");
|
||||||
|
const startDay = startOfMonth.day();
|
||||||
|
const endDay = endOfMonth.day();
|
||||||
|
|
||||||
|
// 计算上个月需要显示的天数
|
||||||
|
const prevMonthDays = [];
|
||||||
|
for (let i = startDay - 1; i >= 0; i--) {
|
||||||
|
const date = startOfMonth.subtract(startDay - i, "day");
|
||||||
|
// console.log(date.date(),date.format('YYYY-MM-DD'));
|
||||||
|
prevMonthDays.unshift({
|
||||||
|
day: date.date(),
|
||||||
|
date: date.format("YYYY-MM-DD"),
|
||||||
|
isOtherMonth: true,
|
||||||
|
isCurrentDay: false,
|
||||||
|
isBeforeDay: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算当前月的天数
|
||||||
|
const currentMonthDays = [];
|
||||||
|
for (let i = 0; i < endOfMonth.date(); i++) {
|
||||||
|
const date = startOfMonth.add(i, "day");
|
||||||
|
currentMonthDays.push({
|
||||||
|
day: date.date(),
|
||||||
|
date: date.format("YYYY-MM-DD"),
|
||||||
|
isOtherMonth: false,
|
||||||
|
isCurrentDay: date.isSame(dayjs(), "day"),
|
||||||
|
isBeforeDay: date.isBefore(dayjs(), "day"),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算下个月需要显示的天数
|
||||||
|
const nextMonthDays = [];
|
||||||
|
for (let i = 1; i <= 6 - endDay; i++) {
|
||||||
|
const date = endOfMonth.add(i, "day");
|
||||||
|
nextMonthDays.push({
|
||||||
|
day: date.date(),
|
||||||
|
date: date.format("YYYY-MM-DD"),
|
||||||
|
isOtherMonth: true,
|
||||||
|
isCurrentDay: false,
|
||||||
|
isBeforeDay: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const resultList = [
|
||||||
|
...prevMonthDays,
|
||||||
|
...currentMonthDays,
|
||||||
|
...nextMonthDays,
|
||||||
|
];
|
||||||
|
return resultList.map((item) => {
|
||||||
|
const find = this.dataList.find(
|
||||||
|
(ele) => dayjs(ele.date).format("YYYY-MM-DD") == item.date
|
||||||
|
);
|
||||||
|
if (find) {
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
...find,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
prevMonth() {
|
||||||
|
this.currentDate = this.currentDate.subtract(1, "month");
|
||||||
|
},
|
||||||
|
nextMonth() {
|
||||||
|
this.currentDate = this.currentDate.add(1, "month");
|
||||||
|
},
|
||||||
|
currentDay() {
|
||||||
|
this.currentDate = dayjs(this.defaultMonth).format("YYYY-MM");
|
||||||
|
},
|
||||||
|
selectDate(date) {
|
||||||
|
this.$emit("date-selected", date);
|
||||||
|
},
|
||||||
|
addView(row) {
|
||||||
|
this.$emit("addView", row);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
defaultMonth: {
|
||||||
|
// immediate: true,
|
||||||
|
handler(newVal) {
|
||||||
|
console.log(1111111, newVal);
|
||||||
|
this.currentDay();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
type: {
|
||||||
|
handler(newVal) {
|
||||||
|
this.defaultType = newVal;
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
ocrBuildLogAllList: {
|
||||||
|
handler(newVal) {
|
||||||
|
this.dataList = newVal;
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.calendar {
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid #ebebeb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-weekdays {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
// margin-bottom: 10px;
|
||||||
|
background: #fafafa;
|
||||||
|
> span {
|
||||||
|
flex: 1;
|
||||||
|
height: 55px;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #4d4d4d;
|
||||||
|
border: 1px solid #ebebeb;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-days {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(7, 1fr);
|
||||||
|
gap: 0px;
|
||||||
|
height: 570px;
|
||||||
|
grid-auto-rows: auto;
|
||||||
|
}
|
||||||
|
.calendar-day1:hover .calendar-day_box1 {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.calendar-day:hover {
|
||||||
|
background-color: #f2f8ff;
|
||||||
|
}
|
||||||
|
.calendar-day {
|
||||||
|
cursor: pointer;
|
||||||
|
// height: 122px;
|
||||||
|
border: 1px solid #ebebeb;
|
||||||
|
position: relative;
|
||||||
|
.calendar-day_box2 {
|
||||||
|
width: calc(100% - 40px);
|
||||||
|
height: 50%;
|
||||||
|
font-size: 14px;
|
||||||
|
// background-color: #e6f1fe;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
color: #4181fe;
|
||||||
|
// display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 20px;
|
||||||
|
display: none;
|
||||||
|
.view-box1 {
|
||||||
|
color: #1a1a1a;
|
||||||
|
}
|
||||||
|
.view-box {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
color: #4181fe;
|
||||||
|
i {
|
||||||
|
margin-right: 5px;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.box2-center {
|
||||||
|
justify-content: center;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.calendar-day_box1 {
|
||||||
|
width: calc(84px - 20px);
|
||||||
|
padding: 8px 10px;
|
||||||
|
background: #4181fe;
|
||||||
|
border-radius: 3px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #ffffff;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
display: none;
|
||||||
|
i {
|
||||||
|
margin-right: 5px;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.calendar-day_header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 5px 10px 5px 5px;
|
||||||
|
.calendar-box1 {
|
||||||
|
padding: 2px 6px;
|
||||||
|
border-radius: 132px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
.bg-color88 {
|
||||||
|
background-color: #88cf65;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.bg-colord0 {
|
||||||
|
background-color: #d00000;
|
||||||
|
}
|
||||||
|
.calendar-text {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #4d4d4d;
|
||||||
|
width: 36px;
|
||||||
|
padding: 10px 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.other-month {
|
||||||
|
color: #b3b3b3;
|
||||||
|
}
|
||||||
|
.current-day {
|
||||||
|
background-color: #4181fe;
|
||||||
|
color: white;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -88,21 +88,62 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="rightPanel whiteBlock">
|
<div class="rightPanel whiteBlock">
|
||||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
<el-menu
|
||||||
<el-tab-pane label="设备监测" name="first"></el-tab-pane>
|
:default-active="activeName"
|
||||||
<el-tab-pane label="录像中心" name="second"></el-tab-pane>
|
@select="handleClick"
|
||||||
<el-tab-pane label="图片中心" name="third"></el-tab-pane>
|
class="business-menu-demo"
|
||||||
<el-tab-pane label="音频中心" name="fourth"></el-tab-pane>
|
mode="horizontal"
|
||||||
</el-tabs>
|
text-color="#262D47"
|
||||||
|
active-text-color="#5181F6"
|
||||||
|
>
|
||||||
|
<el-menu-item
|
||||||
|
v-permission="{
|
||||||
|
key: 'equipmentMonitor',
|
||||||
|
menuPath: '/project/bodyWornCamera/equipmentMonitor',
|
||||||
|
}"
|
||||||
|
index="first"
|
||||||
|
>设备监测</el-menu-item
|
||||||
|
>
|
||||||
|
<el-menu-item
|
||||||
|
v-permission="{
|
||||||
|
key: 'videoCenter',
|
||||||
|
menuPath: '/project/bodyWornCamera/equipmentMonitor',
|
||||||
|
}"
|
||||||
|
index="second"
|
||||||
|
>录像中心</el-menu-item
|
||||||
|
>
|
||||||
|
<el-menu-item
|
||||||
|
v-permission="{
|
||||||
|
key: 'imageCenter',
|
||||||
|
menuPath: '/project/bodyWornCamera/equipmentMonitor',
|
||||||
|
}"
|
||||||
|
index="third"
|
||||||
|
>图片中心</el-menu-item
|
||||||
|
>
|
||||||
|
<el-menu-item
|
||||||
|
v-permission="{
|
||||||
|
key: 'audioCenter',
|
||||||
|
menuPath: '/project/bodyWornCamera/equipmentMonitor',
|
||||||
|
}"
|
||||||
|
index="fourth"
|
||||||
|
>音频中心</el-menu-item
|
||||||
|
>
|
||||||
|
<el-menu-item
|
||||||
|
v-permission="{
|
||||||
|
key: 'workingHour',
|
||||||
|
menuPath: '/project/bodyWornCamera/equipmentMonitor',
|
||||||
|
}"
|
||||||
|
index="fifth"
|
||||||
|
>工作时长统计</el-menu-item
|
||||||
|
>
|
||||||
|
</el-menu>
|
||||||
<div class="equipment_detail" v-if="activeName == 'first'">
|
<div class="equipment_detail" v-if="activeName == 'first'">
|
||||||
<div>
|
<div>
|
||||||
<div class="equipment_box">
|
<div class="equipment_box">
|
||||||
<div>
|
<div>
|
||||||
<span>设备名称</span>
|
<span>设备名称</span>
|
||||||
<span>{{
|
<span>{{
|
||||||
policeCameraItemDetail.devName
|
policeCameraItemDetail.devName ? policeCameraItemDetail.devName : "--"
|
||||||
? policeCameraItemDetail.devName
|
|
||||||
: "--"
|
|
||||||
}}</span>
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@ -120,13 +161,11 @@
|
|||||||
:class="{
|
:class="{
|
||||||
'state-box_offline': policeCameraItemDetail.deviceState != 1,
|
'state-box_offline': policeCameraItemDetail.deviceState != 1,
|
||||||
}"
|
}"
|
||||||
>{{
|
>{{ policeCameraItemDetail.deviceState == 1 ? "在线" : "离线" }}</span
|
||||||
policeCameraItemDetail.deviceState == 1 ? "在线" : "离线"
|
|
||||||
}}</span
|
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>已用容量</span>
|
<span>已用容量 </span>
|
||||||
<span>{{
|
<span>{{
|
||||||
policeCameraItemDetail.usedCapacity
|
policeCameraItemDetail.usedCapacity
|
||||||
? policeCameraItemDetail.usedCapacity
|
? policeCameraItemDetail.usedCapacity
|
||||||
@ -171,17 +210,13 @@
|
|||||||
<div>
|
<div>
|
||||||
<span>设备编号</span>
|
<span>设备编号</span>
|
||||||
<span>{{
|
<span>{{
|
||||||
policeCameraItemDetail.devSn
|
policeCameraItemDetail.devSn ? policeCameraItemDetail.devSn : "--"
|
||||||
? policeCameraItemDetail.devSn
|
|
||||||
: "--"
|
|
||||||
}}</span>
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<span>使用人</span>
|
<span>使用人</span>
|
||||||
<span>{{
|
<span>{{
|
||||||
policeCameraItemDetail.userNames
|
policeCameraItemDetail.userNames ? policeCameraItemDetail.userNames : "--"
|
||||||
? policeCameraItemDetail.userNames
|
|
||||||
: "--"
|
|
||||||
}}</span>
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@ -221,11 +256,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button @click="onHTMLToImageDownload" type="primary" size="medium" plain
|
||||||
@click="onHTMLToImageDownload"
|
|
||||||
type="primary"
|
|
||||||
size="medium"
|
|
||||||
plain
|
|
||||||
>下载</el-button
|
>下载</el-button
|
||||||
>
|
>
|
||||||
<div class="image-box" @click="dialogVisible = true">
|
<div class="image-box" @click="dialogVisible = true">
|
||||||
@ -250,10 +281,7 @@
|
|||||||
<div>设备编号</div>
|
<div>设备编号</div>
|
||||||
<div>{{ policeCameraItemDetail.devSn }}</div>
|
<div>{{ policeCameraItemDetail.devSn }}</div>
|
||||||
</div>
|
</div>
|
||||||
<img
|
<img :src="$store.state.FILEURL + policeCameraItemDetail.qrCode" alt="" />
|
||||||
:src="$store.state.FILEURL + policeCameraItemDetail.qrCode"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
@ -274,19 +302,12 @@
|
|||||||
<div>设备编号</div>
|
<div>设备编号</div>
|
||||||
<div>{{ policeCameraItemDetail.devSn }}</div>
|
<div>{{ policeCameraItemDetail.devSn }}</div>
|
||||||
</div>
|
</div>
|
||||||
<img
|
<img :src="$store.state.FILEURL + policeCameraItemDetail.qrCode" alt="" />
|
||||||
:src="$store.state.FILEURL + policeCameraItemDetail.qrCode"
|
|
||||||
alt=""
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<template
|
<template
|
||||||
v-if="
|
v-if="activeName == 'second' || activeName == 'third' || activeName == 'fourth'"
|
||||||
activeName == 'second' ||
|
|
||||||
activeName == 'third' ||
|
|
||||||
activeName == 'fourth'
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<el-form size="medium" :model="pageInfo" ref="queryForm" :inline="true">
|
<el-form size="medium" :model="pageInfo" ref="queryForm" :inline="true">
|
||||||
<el-form-item label="录像时间">
|
<el-form-item label="录像时间">
|
||||||
@ -301,7 +322,7 @@
|
|||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工单号">
|
<el-form-item label="工单号">
|
||||||
<el-input v-model="pageInfo.id" placeholder="请输入"></el-input>
|
<el-input v-model="pageInfo.workTicketNumber" placeholder="请输入"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button @click="onQuery" type="primary" plain>查询</el-button>
|
<el-button @click="onQuery" type="primary" plain>查询</el-button>
|
||||||
@ -323,10 +344,7 @@
|
|||||||
>
|
>
|
||||||
<el-button @click="toggleSelection(true)" type="text">全选</el-button>
|
<el-button @click="toggleSelection(true)" type="text">全选</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="card-main" v-if="activeName == 'second' || activeName == 'third'">
|
||||||
class="card-main"
|
|
||||||
v-if="activeName == 'second' || activeName == 'third'"
|
|
||||||
>
|
|
||||||
<div
|
<div
|
||||||
:class="{ 'card-box_active': selectionUp(item) }"
|
:class="{ 'card-box_active': selectionUp(item) }"
|
||||||
class="card-box"
|
class="card-box"
|
||||||
@ -336,14 +354,8 @@
|
|||||||
>
|
>
|
||||||
<div class="card-img">
|
<div class="card-img">
|
||||||
<video controls v-if="item.fileType == 3">
|
<video controls v-if="item.fileType == 3">
|
||||||
<source
|
<source :src="$store.state.FILEURL + item.fileUrl" type="video/mp4" />
|
||||||
:src="$store.state.FILEURL + item.fileUrl"
|
<source :src="$store.state.FILEURL + item.fileUrl" type="video/webm" />
|
||||||
type="video/mp4"
|
|
||||||
/>
|
|
||||||
<source
|
|
||||||
:src="$store.state.FILEURL + item.fileUrl"
|
|
||||||
type="video/webm"
|
|
||||||
/>
|
|
||||||
您的浏览器不支持 HTML5 video 标签。
|
您的浏览器不支持 HTML5 video 标签。
|
||||||
</video>
|
</video>
|
||||||
<img
|
<img
|
||||||
@ -361,7 +373,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<template v-if="activeName == 'second'">
|
<template v-if="activeName == 'second'">
|
||||||
<div class="card-flex">
|
<div class="card-flex">
|
||||||
<div class="card-num webkit-clamp_1">{{ item.fileName }}</div>
|
<div class="card-num webkit-clamp_1">
|
||||||
|
{{ item.workTicketNumber }}
|
||||||
|
</div>
|
||||||
<div class="card-num">
|
<div class="card-num">
|
||||||
{{ (item.fileLen / (1024 * 1024)).toFixed(2) }}MB
|
{{ (item.fileLen / (1024 * 1024)).toFixed(2) }}MB
|
||||||
</div>
|
</div>
|
||||||
@ -436,6 +450,51 @@
|
|||||||
background
|
background
|
||||||
></el-pagination>
|
></el-pagination>
|
||||||
</template>
|
</template>
|
||||||
|
<div class="diary-content" v-if="activeName == 'fifth'">
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
size="medium"
|
||||||
|
:model="formInline"
|
||||||
|
class="demo-form-inline"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<el-form-item>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="formInline.month"
|
||||||
|
type="month"
|
||||||
|
placeholder="选择月"
|
||||||
|
format="yyyy年MM月"
|
||||||
|
value-format="yyyy-MM"
|
||||||
|
:clearable="false"
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-radio-group @change="onMonthSwitch" v-model="formInline.monthSwitch">
|
||||||
|
<el-radio-button @click.native.prevent="clickRadio(1)" :label="1"
|
||||||
|
>上月</el-radio-button
|
||||||
|
>
|
||||||
|
<el-radio-button :label="2">本月</el-radio-button>
|
||||||
|
<el-radio-button @click.native.prevent="clickRadio(3)" :label="3"
|
||||||
|
>下月</el-radio-button
|
||||||
|
>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button @click="exportBtnTemplate" type="primary" size="mini" plain
|
||||||
|
>导出</el-button
|
||||||
|
>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
<CalendarView
|
||||||
|
ref="calendarViewRef"
|
||||||
|
:ocrBuildLogAllList="ocrBuildLogCountOcrBuildLogForMonth"
|
||||||
|
:defaultMonth="formInline.month"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 批量导入 -->
|
<!-- 批量导入 -->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
@ -460,9 +519,7 @@
|
|||||||
accept=".xlsx"
|
accept=".xlsx"
|
||||||
>
|
>
|
||||||
<i class="el-icon-upload"></i>
|
<i class="el-icon-upload"></i>
|
||||||
<div class="el-upload__text">
|
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||||
将文件拖到此处,或<em>点击上传</em>
|
|
||||||
</div>
|
|
||||||
<!-- <div class="el-upload__tip" slot="tip">
|
<!-- <div class="el-upload__tip" slot="tip">
|
||||||
支持导入200MB以内的ZIP文件:
|
支持导入200MB以内的ZIP文件:
|
||||||
①驾驶证行驶证复印件;
|
①驾驶证行驶证复印件;
|
||||||
@ -492,18 +549,21 @@ import {
|
|||||||
getPoliceCameraItemQueryByIdApi,
|
getPoliceCameraItemQueryByIdApi,
|
||||||
getPoliceCameraItemFilePageApi,
|
getPoliceCameraItemFilePageApi,
|
||||||
deleteBatchPoliceCameraItemFileApi,
|
deleteBatchPoliceCameraItemFileApi,
|
||||||
|
getPoliceCameraItemCountWorkingHoursApi,
|
||||||
} from "@/assets/js/api/bodyWornCamera";
|
} from "@/assets/js/api/bodyWornCamera";
|
||||||
|
import CalendarView from "./components/calendarView.vue";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import html2canvas from "html2canvas";
|
import html2canvas from "html2canvas";
|
||||||
import { isJSON } from "@/util/nowDate/index";
|
import { isJSON } from "@/util/nowDate/index";
|
||||||
export default {
|
export default {
|
||||||
|
components: { CalendarView },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pageInfo: {
|
pageInfo: {
|
||||||
pageNo: 1, //页数
|
pageNo: 1, //页数
|
||||||
pageSize: 12, //条数
|
pageSize: 12, //条数
|
||||||
total: 0, //总条数
|
total: 0, //总条数
|
||||||
id: "",
|
workTicketNumber: "",
|
||||||
startTime: [],
|
startTime: [],
|
||||||
},
|
},
|
||||||
defaultProps: {
|
defaultProps: {
|
||||||
@ -530,14 +590,77 @@ export default {
|
|||||||
policeCameraItemDetail: {},
|
policeCameraItemDetail: {},
|
||||||
multipleSelection: [],
|
multipleSelection: [],
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
|
|
||||||
|
formInline: {
|
||||||
|
month: "",
|
||||||
|
monthSwitch: 2, //1 上月 2本月 3下月
|
||||||
|
date: [],
|
||||||
|
user: "",
|
||||||
|
region: "",
|
||||||
|
},
|
||||||
|
ocrBuildLogCountOcrBuildLogForMonth: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
const find = this.$store.state.menuList.find(
|
||||||
|
(item) => item.path == "/project/bodyWornCamera/equipmentMonitor"
|
||||||
|
);
|
||||||
|
if (find) {
|
||||||
|
const findAction = [
|
||||||
|
"equipmentMonitor",
|
||||||
|
"videoCenter",
|
||||||
|
"imageCenter",
|
||||||
|
"audioCenter",
|
||||||
|
"workingHour",
|
||||||
|
];
|
||||||
|
const findIndex = findAction.findIndex(
|
||||||
|
(item) => find.actionList && find.actionList.some((i) => i.actionCode == item)
|
||||||
|
);
|
||||||
|
const findName = ["first", "second", "third", "fourth", "fifth"];
|
||||||
|
const activeName = `${findName[findIndex]}`;
|
||||||
|
console.log(447788, find.actionList, findIndex, activeName);
|
||||||
|
if (activeName) {
|
||||||
|
this.handleClick(activeName);
|
||||||
|
}
|
||||||
|
}
|
||||||
this.projectSn = this.$route.query.projectSn;
|
this.projectSn = this.$route.query.projectSn;
|
||||||
this.getRiskListLibraryList();
|
this.getRiskListLibraryList();
|
||||||
},
|
},
|
||||||
mounted() {},
|
mounted() {},
|
||||||
methods: {
|
methods: {
|
||||||
|
onMonthSwitch() {
|
||||||
|
console.log(this.formInline.monthSwitch, this.formInline.month);
|
||||||
|
if (this.formInline.monthSwitch == 1) {
|
||||||
|
this.formInline.month = dayjs(this.formInline.month)
|
||||||
|
.subtract(1, "month")
|
||||||
|
.format("YYYY-MM-DD");
|
||||||
|
} else if (this.formInline.monthSwitch == 2) {
|
||||||
|
this.formInline.month = dayjs().format("YYYY-MM-DD");
|
||||||
|
} else if (this.formInline.monthSwitch == 3) {
|
||||||
|
this.formInline.month = dayjs(this.formInline.month)
|
||||||
|
.add(1, "month")
|
||||||
|
.format("YYYY-MM-DD");
|
||||||
|
}
|
||||||
|
this.getPoliceCameraItemCountWorkingHours();
|
||||||
|
},
|
||||||
|
clickRadio(e) {
|
||||||
|
this.formInline.monthSwitch = e;
|
||||||
|
if (this.formInline.monthSwitch == 1 || this.formInline.monthSwitch == 3) {
|
||||||
|
this.onMonthSwitch();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getPoliceCameraItemCountWorkingHours() {
|
||||||
|
getPoliceCameraItemCountWorkingHoursApi({
|
||||||
|
projectSn: this.projectSn,
|
||||||
|
startDate: dayjs(this.formInline.month).startOf("month").format("YYYY-MM-DD"),
|
||||||
|
endDate: dayjs(this.formInline.month).endOf("month").format("YYYY-MM-DD"),
|
||||||
|
itemId: this.riskListDetailInfo.id,
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
this.ocrBuildLogCountOcrBuildLogForMonth = res.result;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
onHTMLToImageDownload() {
|
onHTMLToImageDownload() {
|
||||||
html2canvas(this.$refs.downloadContent, {
|
html2canvas(this.$refs.downloadContent, {
|
||||||
useCORS: true,
|
useCORS: true,
|
||||||
@ -549,9 +672,13 @@ export default {
|
|||||||
},
|
},
|
||||||
handleClick(tab, event) {
|
handleClick(tab, event) {
|
||||||
console.log(tab, event);
|
console.log(tab, event);
|
||||||
|
this.activeName = tab;
|
||||||
this.pageInfo.pageNo = 1;
|
this.pageInfo.pageNo = 1;
|
||||||
if (this.activeName == "fourth") {
|
if (this.activeName == "fourth") {
|
||||||
this.pageInfo.pageSize = 28;
|
this.pageInfo.pageSize = 28;
|
||||||
|
} else if (this.activeName == "fifth") {
|
||||||
|
this.onMonthSwitch();
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
this.pageInfo.pageSize = 12;
|
this.pageInfo.pageSize = 12;
|
||||||
}
|
}
|
||||||
@ -690,17 +817,12 @@ export default {
|
|||||||
},
|
},
|
||||||
sureImport() {
|
sureImport() {
|
||||||
console.log("确定导入车辆信息", this.fileList);
|
console.log("确定导入车辆信息", this.fileList);
|
||||||
if (this.fileList.length == 0)
|
if (this.fileList.length == 0) this.$message.warning("请上传需要导入的文件!");
|
||||||
this.$message.warning("请上传需要导入的文件!");
|
|
||||||
// uploadZipCarCarInfoApi()
|
// uploadZipCarCarInfoApi()
|
||||||
const fileInfo = this.fileList[0].response.data[0].fileInfo;
|
const fileInfo = this.fileList[0].response.data[0].fileInfo;
|
||||||
var param = new FormData();
|
var param = new FormData();
|
||||||
param.append("sn", this.$store.state.userInfo.sn);
|
param.append("sn", this.$store.state.userInfo.sn);
|
||||||
param.append(
|
param.append("excelFile", this.fileList[0].raw, fileInfo.originalFilename);
|
||||||
"excelFile",
|
|
||||||
this.fileList[0].raw,
|
|
||||||
fileInfo.originalFilename
|
|
||||||
);
|
|
||||||
if (this.sureImportTitle == "导入清单") {
|
if (this.sureImportTitle == "导入清单") {
|
||||||
param.append("projectType", "");
|
param.append("projectType", "");
|
||||||
this.$http
|
this.$http
|
||||||
@ -787,9 +909,7 @@ export default {
|
|||||||
this.getRiskListDetailPage();
|
this.getRiskListDetailPage();
|
||||||
},
|
},
|
||||||
onSelectionClick(item) {
|
onSelectionClick(item) {
|
||||||
const findIndex = this.multipleSelection.findIndex(
|
const findIndex = this.multipleSelection.findIndex((id) => id === item.id);
|
||||||
(id) => id === item.id
|
|
||||||
);
|
|
||||||
if (findIndex > -1) return this.multipleSelection.splice(findIndex, 1);
|
if (findIndex > -1) return this.multipleSelection.splice(findIndex, 1);
|
||||||
this.multipleSelection.push(item.id);
|
this.multipleSelection.push(item.id);
|
||||||
},
|
},
|
||||||
@ -856,7 +976,7 @@ export default {
|
|||||||
this.getRiskListDetailPage();
|
this.getRiskListDetailPage();
|
||||||
},
|
},
|
||||||
onRefresh() {
|
onRefresh() {
|
||||||
this.pageInfo.id = "";
|
this.pageInfo.workTicketNumber = "";
|
||||||
this.pageInfo.startTime = [];
|
this.pageInfo.startTime = [];
|
||||||
this.onQuery();
|
this.onQuery();
|
||||||
},
|
},
|
||||||
@ -881,45 +1001,34 @@ export default {
|
|||||||
pageSize: this.pageInfo.pageSize,
|
pageSize: this.pageInfo.pageSize,
|
||||||
projectSn: this.$store.state.projectSn,
|
projectSn: this.$store.state.projectSn,
|
||||||
itemId: this.riskListDetailInfo.id,
|
itemId: this.riskListDetailInfo.id,
|
||||||
id: this.pageInfo.id,
|
workTicketNumber: this.pageInfo.workTicketNumber,
|
||||||
fileType:
|
fileType: this.activeName == "second" ? 3 : this.activeName == "third" ? 1 : 2,
|
||||||
this.activeName == "second"
|
|
||||||
? 3
|
|
||||||
: this.activeName == "third"
|
|
||||||
? 1
|
|
||||||
: 2,
|
|
||||||
};
|
};
|
||||||
if (this.activeName == "second") {
|
if (this.activeName == "second") {
|
||||||
params.startTime_begin =
|
params.startTime_begin =
|
||||||
this.pageInfo.startTime instanceof Array &&
|
this.pageInfo.startTime instanceof Array && this.pageInfo.startTime.length > 0
|
||||||
this.pageInfo.startTime.length > 0
|
|
||||||
? dayjs(this.pageInfo.startTime[0]).format("YYYY-MM-DD 00:00:00")
|
? dayjs(this.pageInfo.startTime[0]).format("YYYY-MM-DD 00:00:00")
|
||||||
: "";
|
: "";
|
||||||
params.endTime_end =
|
params.endTime_end =
|
||||||
this.pageInfo.startTime instanceof Array &&
|
this.pageInfo.startTime instanceof Array && this.pageInfo.startTime.length > 0
|
||||||
this.pageInfo.startTime.length > 0
|
|
||||||
? dayjs(this.pageInfo.startTime[1]).format("YYYY-MM-DD 23:59:59")
|
? dayjs(this.pageInfo.startTime[1]).format("YYYY-MM-DD 23:59:59")
|
||||||
: "";
|
: "";
|
||||||
} else if (this.activeName == "third") {
|
} else if (this.activeName == "third") {
|
||||||
params.uploadTime_begin =
|
params.uploadTime_begin =
|
||||||
this.pageInfo.startTime instanceof Array &&
|
this.pageInfo.startTime instanceof Array && this.pageInfo.startTime.length > 0
|
||||||
this.pageInfo.startTime.length > 0
|
|
||||||
? dayjs(this.pageInfo.startTime[0]).format("YYYY-MM-DD 00:00:00")
|
? dayjs(this.pageInfo.startTime[0]).format("YYYY-MM-DD 00:00:00")
|
||||||
: "";
|
: "";
|
||||||
params.uploadTime_end =
|
params.uploadTime_end =
|
||||||
this.pageInfo.startTime instanceof Array &&
|
this.pageInfo.startTime instanceof Array && this.pageInfo.startTime.length > 0
|
||||||
this.pageInfo.startTime.length > 0
|
|
||||||
? dayjs(this.pageInfo.startTime[1]).format("YYYY-MM-DD 23:59:59")
|
? dayjs(this.pageInfo.startTime[1]).format("YYYY-MM-DD 23:59:59")
|
||||||
: "";
|
: "";
|
||||||
} else if (this.activeName == "fourth") {
|
} else if (this.activeName == "fourth") {
|
||||||
params.fileTime_begin =
|
params.fileTime_begin =
|
||||||
this.pageInfo.startTime instanceof Array &&
|
this.pageInfo.startTime instanceof Array && this.pageInfo.startTime.length > 0
|
||||||
this.pageInfo.startTime.length > 0
|
|
||||||
? dayjs(this.pageInfo.startTime[0]).format("YYYY-MM-DD 00:00:00")
|
? dayjs(this.pageInfo.startTime[0]).format("YYYY-MM-DD 00:00:00")
|
||||||
: "";
|
: "";
|
||||||
params.fileTime_end =
|
params.fileTime_end =
|
||||||
this.pageInfo.startTime instanceof Array &&
|
this.pageInfo.startTime instanceof Array && this.pageInfo.startTime.length > 0
|
||||||
this.pageInfo.startTime.length > 0
|
|
||||||
? dayjs(this.pageInfo.startTime[1]).format("YYYY-MM-DD 23:59:59")
|
? dayjs(this.pageInfo.startTime[1]).format("YYYY-MM-DD 23:59:59")
|
||||||
: "";
|
: "";
|
||||||
}
|
}
|
||||||
@ -963,8 +1072,7 @@ export default {
|
|||||||
setCheckedKeys() {
|
setCheckedKeys() {
|
||||||
this.defaultExpandAll = false;
|
this.defaultExpandAll = false;
|
||||||
for (var i = 0; i < this.$refs.tree.store._getAllNodes().length; i++) {
|
for (var i = 0; i < this.$refs.tree.store._getAllNodes().length; i++) {
|
||||||
this.$refs.tree.store._getAllNodes()[i].expanded =
|
this.$refs.tree.store._getAllNodes()[i].expanded = this.defaultExpandAll;
|
||||||
this.defaultExpandAll;
|
|
||||||
const { data } = this.$refs.tree.store._getAllNodes()[i];
|
const { data } = this.$refs.tree.store._getAllNodes()[i];
|
||||||
this.handleNodeCollapse(data);
|
this.handleNodeCollapse(data);
|
||||||
}
|
}
|
||||||
@ -1023,9 +1131,7 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
selectionUp() {
|
selectionUp() {
|
||||||
return (row) => {
|
return (row) => {
|
||||||
const findIndex = this.multipleSelection.findIndex(
|
const findIndex = this.multipleSelection.findIndex((id) => id === row.id);
|
||||||
(id) => id === row.id
|
|
||||||
);
|
|
||||||
return findIndex > -1 ? true : false;
|
return findIndex > -1 ? true : false;
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -1038,6 +1144,38 @@ export default {
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
.diary-content {
|
||||||
|
// padding: 15px 20px;
|
||||||
|
// height: calc(100% - 30px);
|
||||||
|
background-color: #fff;
|
||||||
|
.demo-form-inline {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
.el-select,
|
||||||
|
.el-cascader {
|
||||||
|
width: 192px;
|
||||||
|
}
|
||||||
|
/deep/ .el-date-editor--daterange {
|
||||||
|
width: 247px;
|
||||||
|
}
|
||||||
|
/deep/ .el-date-editor--month {
|
||||||
|
width: 90px;
|
||||||
|
.el-input__inner {
|
||||||
|
width: 90px;
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #272d45;
|
||||||
|
}
|
||||||
|
.el-input__prefix {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
/deep/ .download-dialog {
|
/deep/ .download-dialog {
|
||||||
.el-dialog {
|
.el-dialog {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
@ -1763,6 +1901,13 @@ export default {
|
|||||||
padding: 10px 15px 20px;
|
padding: 10px 15px 20px;
|
||||||
height: calc(100% - 30px);
|
height: calc(100% - 30px);
|
||||||
position: relative;
|
position: relative;
|
||||||
|
/deep/ .el-menu {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
.el-menu-item {
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
.rightPanel_title {
|
.rightPanel_title {
|
||||||
height: calc(38px + 36px + 22px);
|
height: calc(38px + 36px + 22px);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -107,7 +107,6 @@
|
|||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div class="">
|
<div class="">
|
||||||
<el-button
|
<el-button
|
||||||
|
|
||||||
style="border: 0 !important; margin-left: 10px"
|
style="border: 0 !important; margin-left: 10px"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
@ -115,7 +114,6 @@
|
|||||||
>编辑</el-button
|
>编辑</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
|
|
||||||
style="border: 0 !important; color: #f56c6c; margin-left: 10px"
|
style="border: 0 !important; color: #f56c6c; margin-left: 10px"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
@ -301,12 +299,36 @@ export default {
|
|||||||
dealType: 1,
|
dealType: 1,
|
||||||
dealTitle: "",
|
dealTitle: "",
|
||||||
dealFormRules: {
|
dealFormRules: {
|
||||||
devSn: [{ required: true, message: "请选择抓拍设备", trigger: "change" }],
|
devSn: [
|
||||||
carNumber: [{ required: true, message: "请输入车牌号", trigger: "blur" }],
|
{
|
||||||
isExceed: [{ required: true, message: "请选择是否超出阈值", trigger: "change" }],
|
required: true,
|
||||||
|
message: "请选择抓拍设备",
|
||||||
|
trigger: "change",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
carNumber: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "请输入车牌号",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
isExceed: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "请选择是否超出阈值",
|
||||||
|
trigger: "change",
|
||||||
|
},
|
||||||
|
],
|
||||||
currentSpeed: [{ required: true, message: "请输入时速", trigger: "blur" }],
|
currentSpeed: [{ required: true, message: "请输入时速", trigger: "blur" }],
|
||||||
// fileList: [{ type: Array, required: true, message: "请上传抓拍图片", trigger: "change" }],
|
// fileList: [{ type: Array, required: true, message: "请上传抓拍图片", trigger: "change" }],
|
||||||
uploadTime: [{ required: true, message: "请选择上传时间", trigger: "change" }],
|
uploadTime: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "请选择上传时间",
|
||||||
|
trigger: "change",
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
carWashDevList: [],
|
carWashDevList: [],
|
||||||
carInfoList: [],
|
carInfoList: [],
|
||||||
@ -351,7 +373,14 @@ export default {
|
|||||||
} else if (type == 2) {
|
} else if (type == 2) {
|
||||||
this.dealForm = {
|
this.dealForm = {
|
||||||
...row,
|
...row,
|
||||||
fileList: row.snapshotImage ? [{ name: row.snapshotImage, url: this.$store.state.FILEURL + row.snapshotImage }] : []
|
fileList: row.snapshotImage
|
||||||
|
? [
|
||||||
|
{
|
||||||
|
name: row.snapshotImage,
|
||||||
|
url: this.$store.state.FILEURL + row.snapshotImage,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
: [],
|
||||||
};
|
};
|
||||||
this.dealTitle = "编辑";
|
this.dealTitle = "编辑";
|
||||||
}
|
}
|
||||||
@ -415,13 +444,13 @@ export default {
|
|||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
},
|
},
|
||||||
carMeasureSpeedDevList() {
|
carMeasureSpeedDevList() {
|
||||||
carMeasureSpeedDevListApi({ projectSn: this.$store.state.projectSn }).then(
|
carMeasureSpeedDevListApi({
|
||||||
(result) => {
|
projectSn: this.$store.state.projectSn,
|
||||||
|
}).then((result) => {
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
this.carWashDevList = result.result;
|
this.carWashDevList = result.result;
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
);
|
|
||||||
},
|
},
|
||||||
// 搜索
|
// 搜索
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
|
|||||||
@ -8,17 +8,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="rightPanel whiteBlock">
|
<div class="rightPanel whiteBlock">
|
||||||
<div class="form-flex">
|
<div class="form-flex">
|
||||||
<el-form
|
<el-form size="medium" :model="queryParams" ref="queryForm" :inline="true">
|
||||||
size="medium"
|
|
||||||
:model="queryParams"
|
|
||||||
ref="queryForm"
|
|
||||||
:inline="true"
|
|
||||||
>
|
|
||||||
<el-form-item label="人员姓名" prop="workerName">
|
<el-form-item label="人员姓名" prop="workerName">
|
||||||
<el-input
|
<el-input v-model="queryParams.workerName" placeholder="请输入"></el-input>
|
||||||
v-model="queryParams.workerName"
|
|
||||||
placeholder="请输入"
|
|
||||||
></el-input>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="日期范围" prop="constructionTime">
|
<el-form-item label="日期范围" prop="constructionTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
@ -33,12 +25,8 @@
|
|||||||
></el-date-picker>
|
></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" plain @click="handleQuery"
|
<el-button type="primary" plain @click="handleQuery">查询</el-button>
|
||||||
>查询</el-button
|
<el-button type="warning" plain @click="handleRefresh">刷新</el-button>
|
||||||
>
|
|
||||||
<el-button type="warning" plain @click="handleRefresh"
|
|
||||||
>刷新</el-button
|
|
||||||
>
|
|
||||||
<!-- <el-button
|
<!-- <el-button
|
||||||
:disabled="
|
:disabled="
|
||||||
$refs.multipleTable && $refs.multipleTable.selection.length == 0
|
$refs.multipleTable && $refs.multipleTable.selection.length == 0
|
||||||
@ -74,9 +62,7 @@
|
|||||||
<div :class="{ unfold: !unfoldShow }" @click="onUnfoldChange"></div>
|
<div :class="{ unfold: !unfoldShow }" @click="onUnfoldChange"></div>
|
||||||
<div class="table-header_left">
|
<div class="table-header_left">
|
||||||
统计列表
|
统计列表
|
||||||
<span
|
<span>(当天工时/工日无法计算出最终值, 由第二天00:00后计算显示)</span>
|
||||||
>(当天工时/工日无法计算出最终值, 由第二天00:00后计算显示)</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="table-header_right">
|
<div class="table-header_right">
|
||||||
@ -124,11 +110,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button type="primary" size="medium" plain @click="handleExportSetting"
|
||||||
type="primary"
|
|
||||||
size="medium"
|
|
||||||
plain
|
|
||||||
@click="handleExportSetting"
|
|
||||||
>导出</el-button
|
>导出</el-button
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
@ -140,9 +122,7 @@
|
|||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
class="tables"
|
class="tables"
|
||||||
:height="`calc(100% - 64px - ${
|
:height="`calc(100% - 64px - ${unfoldShow ? '274px' : '0px'} - 58px - 20px)`"
|
||||||
unfoldShow ? '274px' : '0px'
|
|
||||||
} - 58px - 20px)`"
|
|
||||||
:key="itemKey"
|
:key="itemKey"
|
||||||
>
|
>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
@ -288,8 +268,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="
|
v-if="
|
||||||
exportSettingInfo.groupByType == 1 ||
|
exportSettingInfo.groupByType == 1 || exportSettingInfo.groupByType == 3
|
||||||
exportSettingInfo.groupByType == 3
|
|
||||||
"
|
"
|
||||||
label="展示类型"
|
label="展示类型"
|
||||||
prop="downloadType"
|
prop="downloadType"
|
||||||
@ -334,9 +313,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" style="text-align: center">
|
<div slot="footer" style="text-align: center">
|
||||||
<el-button
|
<el-button icon="el-icon-circle-close" @click="exportSettingDialog = false"
|
||||||
icon="el-icon-circle-close"
|
|
||||||
@click="exportSettingDialog = false"
|
|
||||||
>取消</el-button
|
>取消</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
@ -679,9 +656,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data: result.map(
|
data: result.map(
|
||||||
(item) =>
|
(item) =>
|
||||||
(this.queryParams.isType == 1
|
(this.queryParams.isType == 1 ? item.hourValTotal : item.dayValTotal) || 0
|
||||||
? item.hourValTotal
|
|
||||||
: item.dayValTotal) || 0
|
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -879,9 +854,7 @@ export default {
|
|||||||
}
|
}
|
||||||
if (res.result.records instanceof Array) {
|
if (res.result.records instanceof Array) {
|
||||||
const dateTime =
|
const dateTime =
|
||||||
res.result.records.length > 0
|
res.result.records.length > 0 ? res.result.records[0].dailyHourMap : {};
|
||||||
? res.result.records[0].dailyHourMap
|
|
||||||
: {};
|
|
||||||
let dataList = [];
|
let dataList = [];
|
||||||
for (const key in dateTime) {
|
for (const key in dateTime) {
|
||||||
dataList.push({
|
dataList.push({
|
||||||
@ -905,9 +878,7 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
srcListUp() {
|
srcListUp() {
|
||||||
return (dataList) => {
|
return (dataList) => {
|
||||||
const resultList = dataList.map(
|
const resultList = dataList.map((item) => this.$store.state.FILEURL + item.url);
|
||||||
(item) => this.$store.state.FILEURL + item.url
|
|
||||||
);
|
|
||||||
console.log(resultList);
|
console.log(resultList);
|
||||||
return resultList;
|
return resultList;
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user