|
@@ -1,79 +1,143 @@
|
|
|
<!-- -->
|
|
|
<template>
|
|
|
- <div class="explorate" :class="{ downMode }" ref="layoutRef">
|
|
|
- <h2 class="title">道路交通事故现场勘查笔录</h2>
|
|
|
+ <MainPanel>
|
|
|
+ <template v-slot:header>
|
|
|
+ <Header title="道路交通事故现场勘查笔录" type="return">
|
|
|
+ <ui-button type="primary" width="96px"> 完成 </ui-button>
|
|
|
+ </Header>
|
|
|
+ </template>
|
|
|
|
|
|
- <div class="container">
|
|
|
- <div class="wrapper">
|
|
|
- <div class="header">
|
|
|
- <div>现场勘查</div>
|
|
|
- <div>补充勘查</div>
|
|
|
- </div>
|
|
|
- <div class="info">
|
|
|
- <div>勘查单位</div>
|
|
|
- <div></div>
|
|
|
- </div>
|
|
|
- <div class="info">
|
|
|
- <div>勘查时间</div>
|
|
|
- <div></div>
|
|
|
- </div>
|
|
|
- <div class="info">
|
|
|
- <div>事故时间</div>
|
|
|
- <div></div>
|
|
|
- </div>
|
|
|
- <div class="time">
|
|
|
- <div class="name">事故地点</div>
|
|
|
- <div class="time-one">
|
|
|
- <div class="road-type">
|
|
|
- <div>道路类型</div>
|
|
|
- <div class="type-box">
|
|
|
- <div class="type-item">
|
|
|
- <div class="type-item-name">公路</div>
|
|
|
- <div>
|
|
|
- <div class="item-info">
|
|
|
- <div>技术等级</div>
|
|
|
- <div></div>
|
|
|
+ <div class="explorate" :class="{ downMode }" ref="layoutRef">
|
|
|
+ <h2 class="title">道路交通事故现场勘查笔录</h2>
|
|
|
+
|
|
|
+ <div class="container">
|
|
|
+ <div class="wrapper">
|
|
|
+ <div class="header">
|
|
|
+ <div>现场勘查</div>
|
|
|
+ <div>补充勘查</div>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <div>勘查单位</div>
|
|
|
+ <div></div>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <div>勘查时间</div>
|
|
|
+ <div></div>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <div>事故时间</div>
|
|
|
+ <div></div>
|
|
|
+ </div>
|
|
|
+ <div class="time">
|
|
|
+ <div class="name">事故地点</div>
|
|
|
+ <div class="time-one">
|
|
|
+ <div class="road-type">
|
|
|
+ <div class="road-type-name">道路类型</div>
|
|
|
+ <div class="type-box">
|
|
|
+ <div class="type-item">
|
|
|
+ <div class="type-item-name">公路</div>
|
|
|
+ <div class="item-msg">
|
|
|
+ <div class="item-info">
|
|
|
+ <div class="item-info-name">技术等级</div>
|
|
|
+ <div class="item-info-box">12312</div>
|
|
|
+ </div>
|
|
|
+ <div class="item-info">
|
|
|
+ <div class="item-info-name">行政等级</div>
|
|
|
+ <div class="item-info-box">123123</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <div>行政等级</div>
|
|
|
- <div></div>
|
|
|
+ </div>
|
|
|
+ <div class="type-item city">
|
|
|
+ <div class="type-item-name">城市道路</div>
|
|
|
+ <div class="item-msg">
|
|
|
+ <div class="item-info">
|
|
|
+ <!-- <div class="item-info-box">技术等级</div> -->
|
|
|
+ <div class="item-info-box">12312</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <div>公路</div>
|
|
|
- <div></div>
|
|
|
+ </div>
|
|
|
+ <div class="road-type">
|
|
|
+ <div class="road-type-name">路口路段类型</div>
|
|
|
+ <div class="type-box">
|
|
|
+ <div class="type-item">
|
|
|
+ <div class="type-item-name">路口</div>
|
|
|
+ <div class="item-msg intersection" style="height: 48px">21312312</div>
|
|
|
+ </div>
|
|
|
+ <div class="type-item">
|
|
|
+ <div class="type-item-name">路段</div>
|
|
|
+ <div class="item-msg intersection" style="height: 60px">1221312</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="road-info">
|
|
|
+ <div class="road-name">路名</div>
|
|
|
+ <div class="road-msg">
|
|
|
+ <div class="road-name-text"></div>
|
|
|
+ <div class="road-num">路号(公路)</div>
|
|
|
+ <div class="road-num-text"></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="road-pos">
|
|
|
+ <div class="road-pos-name">位置</div>
|
|
|
+ <div class="pos-box">
|
|
|
+ <div class="pos-item">
|
|
|
+ <div class="pos-item-name" style="height: 30px">卫星定位</div>
|
|
|
+ <div class="pos-msg" style="height: 30px">
|
|
|
+ <div class="longitude">
|
|
|
+ <span>经度:</span>
|
|
|
+ <div></div>
|
|
|
+ </div>
|
|
|
+ <div class="latitude">
|
|
|
+ <span>纬度:</span>
|
|
|
+ <div></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="pos-item">
|
|
|
+ <div class="pos-item-name" style="height: 54px">地点描述</div>
|
|
|
+ <div class="pos-msg" style="height: 54px"></div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="">
|
|
|
- <div>道路类型</div>
|
|
|
- <div></div>
|
|
|
- </div>
|
|
|
- <div class="">
|
|
|
- <div>道路类型</div>
|
|
|
- <div></div>
|
|
|
- </div>
|
|
|
- <div class="">
|
|
|
- <div>道路类型</div>
|
|
|
- <div></div>
|
|
|
- </div>
|
|
|
|
|
|
- <!-- <div class="time-one-name">公路</div>
|
|
|
+ <!-- <div class="time-one-name">公路</div>
|
|
|
<div class="time-one-warp">
|
|
|
<div>技术等级</div>
|
|
|
<div>2</div>
|
|
|
<div>行政等级</div>
|
|
|
<div>4</div>
|
|
|
</div> -->
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ <div class="weather">
|
|
|
+ <div class="name">天气</div>
|
|
|
+ <div></div>
|
|
|
+ </div>
|
|
|
+ <div class="environment">
|
|
|
+ <div>
|
|
|
+ <p>一、事故现场道路环境</p>
|
|
|
+ <div class="em-info-box">
|
|
|
+ <div class="info-item" v-for="(i, index) in environments">
|
|
|
+ <span class="info-title">{{ i.title }}</span>
|
|
|
+ <div class="check-box">
|
|
|
+ <div class="check-item" v-for="(j, j_index) in i.options">
|
|
|
+ <!-- <ui-icon type="edit"></ui-icon> -->
|
|
|
+ <span>{{ j.name }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="input-box">
|
|
|
+ <input type="text" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>8</div>
|
|
|
+ <div>9</div>
|
|
|
</div>
|
|
|
- <div>6</div>
|
|
|
- <div>7</div>
|
|
|
- <div>8</div>
|
|
|
- <div>9</div>
|
|
|
- </div>
|
|
|
- <!-- <table>
|
|
|
+ <!-- <table>
|
|
|
<tr class="table-header">
|
|
|
<td colspan="7">
|
|
|
<div>
|
|
@@ -186,8 +250,8 @@
|
|
|
</tr>
|
|
|
</table> -->
|
|
|
|
|
|
- <!-- -->
|
|
|
- <!-- <div class="table-content">
|
|
|
+ <!-- -->
|
|
|
+ <!-- <div class="table-content">
|
|
|
<div class="table-header">
|
|
|
<div>现场勘查</div>
|
|
|
<div>补充勘查</div>
|
|
@@ -243,8 +307,9 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div> -->
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </MainPanel>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
@@ -252,6 +317,8 @@ import { reactive, ref, toRefs, onBeforeMount, onMounted, nextTick } from 'vue';
|
|
|
import html2canvas from 'html2canvas';
|
|
|
import { downloadImage, uploadImage } from '@/store/sync';
|
|
|
import Message from '@/components/base/components/message/message.vue';
|
|
|
+import Header from '@/components/photos/header.vue';
|
|
|
+import MainPanel from '@/components/main-panel/index.vue';
|
|
|
const layoutRef = ref<HTMLDivElement>();
|
|
|
const downMode = ref(false);
|
|
|
const getLayoutImage = async () => {
|
|
@@ -265,9 +332,124 @@ const getLayoutImage = async () => {
|
|
|
await downloadImage(blob, '12312.jpg');
|
|
|
// return await uploadImage(blob);
|
|
|
};
|
|
|
+const environments = ref([
|
|
|
+ {
|
|
|
+ id: 1,
|
|
|
+ title: '影响视线或行驶的障碍物:',
|
|
|
+ value: '',
|
|
|
+ check: '',
|
|
|
+ options: [
|
|
|
+ { id: 1, name: '无' },
|
|
|
+ { id: 2, name: '有:' },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 2,
|
|
|
+ title: '递路交通标志:',
|
|
|
+ value: '',
|
|
|
+ check: '',
|
|
|
+ options: [
|
|
|
+ { id: 1, name: '无' },
|
|
|
+ { id: 2, name: '有:' },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 3,
|
|
|
+ title: '道路交通标线:',
|
|
|
+ value: '',
|
|
|
+ check: '',
|
|
|
+ options: [
|
|
|
+ { id: 1, name: '无' },
|
|
|
+ { id: 2, name: '有:' },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 4,
|
|
|
+ title: '中央隔离设施:',
|
|
|
+ value: '',
|
|
|
+ check: '',
|
|
|
+ options: [
|
|
|
+ { id: 1, name: '无' },
|
|
|
+ { id: 2, name: '有:' },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 5,
|
|
|
+ title: '路侧防护设施:',
|
|
|
+ value: '',
|
|
|
+ check: '',
|
|
|
+ options: [
|
|
|
+ { id: 1, name: '无' },
|
|
|
+ { id: 2, name: '有:' },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 6,
|
|
|
+ title: '路面材料:',
|
|
|
+ value: '',
|
|
|
+ check: '',
|
|
|
+ options: [
|
|
|
+ { id: 1, name: '沥青' },
|
|
|
+ { id: 2, name: '水泥' },
|
|
|
+ { id: 3, name: '砂石' },
|
|
|
+ { id: 4, name: '土路' },
|
|
|
+ { id: 5, name: '其他' },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 7,
|
|
|
+ title: '路面状况:',
|
|
|
+ value: '',
|
|
|
+ check: '',
|
|
|
+ options: [
|
|
|
+ { id: 1, name: '路面完好' },
|
|
|
+ { id: 2, name: '施工' },
|
|
|
+ { id: 3, name: '凹凸' },
|
|
|
+ { id: 4, name: '塌陷' },
|
|
|
+ { id: 5, name: '路障' },
|
|
|
+ { id: 6, name: '其他' },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 8,
|
|
|
+ title: '路表状况:',
|
|
|
+ value: '',
|
|
|
+ check: '',
|
|
|
+ options: [
|
|
|
+ { id: 1, name: '干燥' },
|
|
|
+ { id: 2, name: '潮湿' },
|
|
|
+ { id: 3, name: '积水' },
|
|
|
+ { id: 4, name: '漫水' },
|
|
|
+ { id: 5, name: '冰雪' },
|
|
|
+ { id: 6, name: '泥泞' },
|
|
|
+ { id: 7, name: '其他' },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 9,
|
|
|
+ title: '照明情况:',
|
|
|
+ value: '',
|
|
|
+ check: '',
|
|
|
+ options: [
|
|
|
+ { id: 1, name: '白天 夜间路灯照明' },
|
|
|
+ { id: 2, name: '有' },
|
|
|
+ { id: 3, name: '无' },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 10,
|
|
|
+ title: '照明情况:',
|
|
|
+ value: '',
|
|
|
+ check: '',
|
|
|
+ options: [],
|
|
|
+ },
|
|
|
+]);
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
.explorate {
|
|
|
+ padding: 80px 0 0 0;
|
|
|
+}
|
|
|
+.explorate {
|
|
|
color: #000;
|
|
|
font-size: 20px;
|
|
|
// padding: 10px 30px;
|
|
@@ -477,6 +659,48 @@ const getLayoutImage = async () => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ .environment {
|
|
|
+ padding: 10px;
|
|
|
+ .em-info-box {
|
|
|
+ .info-item {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 18px;
|
|
|
+ .check-box {
|
|
|
+ display: inline-block;
|
|
|
+ .check-item {
|
|
|
+ display: inline-block;
|
|
|
+ margin-right: 10px;
|
|
|
+ &:last-of-type {
|
|
|
+ margin-right: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .input-box {
|
|
|
+ flex: 1;
|
|
|
+ display: inline-block;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ input {
|
|
|
+ width: 100%;
|
|
|
+ padding: 0 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .weather {
|
|
|
+ display: grid;
|
|
|
+ grid-template-columns: 14% 86%;
|
|
|
+ grid-template-rows: repeat(1, 100%);
|
|
|
+ height: 35px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ .name {
|
|
|
+ border-right: 1px solid #000;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
.time {
|
|
|
display: grid;
|
|
|
grid-template-columns: 14% 86%;
|
|
@@ -499,31 +723,194 @@ const getLayoutImage = async () => {
|
|
|
// grid-auto-flow: row;
|
|
|
// grid-template-columns: 66px;
|
|
|
// grid-template-rows: repeat(4, auto);
|
|
|
+ .road-info {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ .road-name {
|
|
|
+ width: 66px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ padding: 0 10px;
|
|
|
+ }
|
|
|
+ .road-msg {
|
|
|
+ flex: 1;
|
|
|
+ border-left: 1px solid #000;
|
|
|
+ > div {
|
|
|
+ min-height: 30px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ }
|
|
|
+ .road-name-text {
|
|
|
+ width: 55%;
|
|
|
+ flex: 1;
|
|
|
+ padding: 0 10px;
|
|
|
+ }
|
|
|
+ .road-num {
|
|
|
+ width: 23.8%;
|
|
|
+ padding: 0 10px;
|
|
|
+ border-left: 1px solid #000;
|
|
|
+ border-right: 1px solid #000;
|
|
|
+ }
|
|
|
+ .road-num-text {
|
|
|
+ width: 20%;
|
|
|
+ padding: 0 10px;
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ > div {
|
|
|
+ min-height: 30px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .road-pos {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ width: 100%;
|
|
|
+ .road-pos-name {
|
|
|
+ width: 66px;
|
|
|
+ padding: 0 10px;
|
|
|
+ }
|
|
|
+ .pos-box {
|
|
|
+ // width: 100%;
|
|
|
+ flex: 1;
|
|
|
+
|
|
|
+ .pos-item {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ flex: 1;
|
|
|
+ width: 100%;
|
|
|
+ border-left: 1px solid #000;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ &:last-of-type {
|
|
|
+ border-bottom: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ .pos-item-name {
|
|
|
+ width: 120px;
|
|
|
+ padding: 0 10px;
|
|
|
+ border-right: 1px solid #000;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ }
|
|
|
+ .pos-msg {
|
|
|
+ flex: 1;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ .longitude {
|
|
|
+ display: inline-block;
|
|
|
+ width: 50%;
|
|
|
+ border-right: 1px solid #000;
|
|
|
+ height: 100%;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ padding: 0 10px;
|
|
|
+ > div {
|
|
|
+ flex: 1;
|
|
|
+ height: 30px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .latitude {
|
|
|
+ display: inline-block;
|
|
|
+ width: 50%;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ padding: 0 10px;
|
|
|
+ > div {
|
|
|
+ flex: 1;
|
|
|
+ height: 30px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
.road-type {
|
|
|
border-bottom: 1px solid #000;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
width: 100%;
|
|
|
+ .road-type-name {
|
|
|
+ width: 66px;
|
|
|
+ padding: 0 10px;
|
|
|
+ }
|
|
|
.type-box {
|
|
|
- width: 100%;
|
|
|
+ // width: 100%;
|
|
|
+ flex: 1;
|
|
|
+
|
|
|
.type-item {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: flex-start;
|
|
|
flex: 1;
|
|
|
width: 100%;
|
|
|
+ border-left: 1px solid #000;
|
|
|
border-bottom: 1px solid #000;
|
|
|
+ &.city {
|
|
|
+ .type-item-name {
|
|
|
+ // border-right: 1px solid #000;
|
|
|
+ }
|
|
|
+ .item-info-box {
|
|
|
+ border-left: 1px solid #000;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ &:last-of-type {
|
|
|
+ border-bottom: none;
|
|
|
+ }
|
|
|
.type-item-name {
|
|
|
width: 66px;
|
|
|
+ padding: 0 10px;
|
|
|
+ }
|
|
|
+ .item-msg {
|
|
|
+ flex: 1;
|
|
|
+ &.intersection {
|
|
|
+ height: 48px;
|
|
|
+ border-left: 1px solid #000;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ }
|
|
|
}
|
|
|
> div {
|
|
|
- width: 100%;
|
|
|
- height: 56px;
|
|
|
+ // width: 100%;
|
|
|
+ // height: 56px;
|
|
|
.item-info {
|
|
|
width: 100%;
|
|
|
- height: 56px;
|
|
|
- line-height: 56px;
|
|
|
+
|
|
|
border-bottom: 1px solid #000;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ position: relative;
|
|
|
+ .item-info-name {
|
|
|
+ width: 66px;
|
|
|
+ height: 56px;
|
|
|
+ // line-height: 56px;
|
|
|
+ padding: 0 10px;
|
|
|
+ border-right: 1px solid #000;
|
|
|
+ border-left: 1px solid #000;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ }
|
|
|
+ .item-info-box {
|
|
|
+ flex: 1;
|
|
|
+ height: 56px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-start;
|
|
|
+ }
|
|
|
+ &:last-of-type {
|
|
|
+ border-bottom: none;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|