刘翔宇-旅管家 4 years ago
parent d9ab440de5
commit f28ed5b632

@ -3,6 +3,6 @@ ENV = 'development'
# base api
VUE_APP_BASE_API = ''
VUE_APP_DOMAIN=http://patrol.115.langye.net/
#VUE_APP_DOMAIN=http://patrol.115.langye.net/
#VUE_APP_DOMAIN=http://192.168.60.100:9001/
VUE_APP_DOMAIN=http://192.168.60.100:9001/

@ -45,7 +45,6 @@ export default {
border-bottom: 2px solid #338de3;
> span {
position: relative;
top: 2px;
}
}
.content {

@ -78,8 +78,13 @@ export function generaMenu(routes, data) {
}]
})
} else {
var path = item.url;
if (item.path != "null" && item.path != null && item.path != "") {
path = item.path
}
const menu = {
path: item.url === '#' ? item.id + '_key' : item.url,
path: (path === '#' ? item.id + '_key' : path),
redirect: (item.children.length > 0 ? "noRedirect" : ""),
component: item.url === '#' ? Layout : loadView(item.url),
// hidden: true,
children: [],

@ -60,55 +60,7 @@
this.setOptions(this.chartData);
},
setOptions(chartdata) {
console.log(chartdata.xArr)
this.chart.setOption({
dataZoom: [
//x
// {
// startValue: 0,
// endValue: 6, //
// type: 'slider',
// show: true,
// xAxisIndex: [0],
// // handleSize: 0, // 2
// height: 8, //
// left: 50, //
// right: 40, //
// bottom: 26, //
// handleColor: '#EFEFEF', //h
// handleStyle: {
// borderColor: '#409EFF',
// borderWidth: '1',
// shadowBlur: 2,
// background: '#EFEFEF',
// shadowColor: '#EFEFEF'
// },
// fillerColor: new echarts.graphic.LinearGradient(1, 0, 0, 0, [{
// // 410
// //01
// offset: 0,
// color: '#409EFF'
// },
// {
// offset: 1,
// color: '#409EFF'
// }
// ]),
// backgroundColor: '#EFEFEF', //
// showDataShadow: false, // auto
// showDetail: false, // true
// handleIcon: 'M-292,322.2c-3.2,0-6.4-0.6-9.3-1.9c-2.9-1.2-5.4-2.9-7.6-5.1s-3.9-4.8-5.1-7.6c-1.3-3-1.9-6.1-1.9-9.3c0-3.2,0.6-6.4,1.9-9.3c1.2-2.9,2.9-5.4,5.1-7.6s4.8-3.9,7.6-5.1c3-1.3,6.1-1.9,9.3-1.9c3.2,0,6.4,0.6,9.3,1.9c2.9,1.2,5.4,2.9,7.6,5.1s3.9,4.8,5.1,7.6c1.3,3,1.9,6.1,1.9,9.3c0,3.2-0.6,6.4-1.9,9.3c-1.2,2.9-2.9,5.4-5.1,7.6s-4.8,3.9-7.6,5.1C-285.6,321.5-288.8,322.2-292,322.2z',
// filterMode: 'filter'
// }
//
// {
// type: 'inside',
// show: true,
// xAxisIndex: [0],
// start: 0, //1
// end: 50,
// },
],
legend: {
orient: 'horizontal',
bottom: '4%',
@ -116,34 +68,7 @@
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
grid: {
top: 0,
left: '2%',
right: '2%',
bottom: '3%',
containLabel: false
},
xAxis: [{
type: 'category',
data: chartdata.xArr,
axisLine: {
show: false //线
},
axisTick: {
show: false //
},
}],
yAxis: [{
type: 'value',
minInterval: 1,
axisLine: {
show: false //线
},
axisTick: {
show: false //
},
}],
},
radiusArr:[],
series: [{
name: '数据',

@ -1,104 +1,113 @@
<template>
<div>
<div class="mapwrap" :title="title" :is-show.sync="isShow" :width="width" @resetform="resetPointArr">
<div class="mapbtn">
<el-popover placement="right-start" width="500" trigger="click" v-model="showSearch">
<div>
<el-row>
<el-col :span="11">
<el-input class="vm10" style="width: 93%" v-model="searchFields.keyword" placeholder="关键字搜索" />
</el-col>
<el-col :span="11" :offset="2">
<el-select class="vm10" v-model="searchFields.road_id" filterable remote reserve-keyword clearable
@focus="remoteRoad" placeholder="请输入关键词查找道路" :remote-method="remoteMethod" :loading="roadloading">
<el-option v-for="item in roadsList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11">
<el-select class="vm10" filterable v-model="searchFields.area_id" placeholder="请选择所属片区">
<el-option v-for="item in selects.areasList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11" :offset="2">
<el-select class="vm10" filterable v-model="searchFields.maintain_id" placeholder="请选择所属养护单位">
<el-option v-for="item in selects.maintainList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11">
<el-select class="vm10" filterable v-model="searchFields.status" placeholder="请选择状态">
<el-option v-for="item in selects.statusList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11" :offset="2">
<el-select class="vm10" filterable v-model="searchFields.unusual_type_id" placeholder="请选择异常类型">
<el-option v-for="item in selects.sunusualList" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11">
<el-select class="vm10" filterable v-model="searchFields.type" placeholder="请选择类型">
<el-option v-for="item in selects.typeList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11" :offset="2">
<el-select class="vm10" filterable v-model="searchFields.end_type" placeholder="请选择结办类型">
<el-option v-for="item in selects.endTypeList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11">
<el-select class="vm10" filterable v-model="searchFields.ask_content_id" placeholder="请选择巡查内容">
<el-option v-for="item in selects.sequiementList" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="24">
<el-date-picker class="vm10" v-model="mapdatesearch" type="daterange" range-separator=""
start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd">
</el-date-picker>
</el-col>
<el-col :span="24">
<Button type="primary" @click="loadMap(false)" style="margin-left: 10px">查询</Button>
<Button type="primary" @click="resetSearch" style="margin-left: 10px">重置</Button>
</el-col>
</el-row>
</div>
<el-button type="primary" slot="reference">多项搜索</el-button>
</el-popover>
</div>
<div>
<div class="wrapper" v-if="showmap">
<div class="chooseMap">
<div>
<el-radio-group v-model="showMap" @change="changeMap">
<el-radio v-for="item in mapRadioList" :label="item.id">{{item.title}}</el-radio>
</el-radio-group>
</div>
<div>
<el-checkbox-group v-model="checkList" @change="changeCheck">
<el-checkbox v-for="item in mapCheckList" :label="item.id">{{item.title}}</el-checkbox>
</el-checkbox-group>
</div>
</div>
<!-- 地图 -->
<div class="map" id="olMap"></div>
<!-- 弹框 -->
<div ref="popup" class="popup" v-show="shopPopup">
<div class="info">
<div class="address">地址{{nowAddress}}</div>
<div class="showinfo" @click='showInfo(nowId,types)'>查看详情</div>
</div>
</div>
</div>
</div>
<div>
<div class="mapwrap" :title="title" :is-show.sync="isShow" :width="width" @resetform="resetPointArr">
<div class="mapbtn">
<el-card shadow="hover">
<div style="width: 500px;">
<el-row>
<el-col :span="11">
<el-input class="vm10" style="width: 93%" v-model="searchFields.keyword" placeholder="关键字搜索" />
</el-col>
<block v-if="moreSearch">
<el-col :span="11">
<el-select class="vm10" filterable v-model="searchFields.area_id" placeholder="请选择所属片区">
<el-option v-for="item in selects.areasList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11" >
<el-select class="vm10" filterable v-model="searchFields.maintain_id" placeholder="请选择所属养护单位">
<el-option v-for="item in selects.maintainList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11">
<el-select class="vm10" filterable v-model="searchFields.status" placeholder="请选择状态">
<el-option v-for="item in selects.statusList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11" >
<el-select class="vm10" filterable v-model="searchFields.unusual_type_id" placeholder="请选择异常类型">
<el-option v-for="item in selects.sunusualList" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11">
<el-select class="vm10" filterable v-model="searchFields.type" placeholder="请选择类型">
<el-option v-for="item in selects.typeList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11" >
<el-select class="vm10" filterable v-model="searchFields.end_type" placeholder="请选择结办类型">
<el-option v-for="item in selects.endTypeList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="11">
<el-select class="vm10" filterable v-model="searchFields.ask_content_id" placeholder="请选择巡查内容">
<el-option v-for="item in selects.sequiementList" :key="item.id" :label="item.value"
:value="item.id">
</el-option>
</el-select>
</el-col>
</block>
<el-col :span="11" >
<el-select class="vm10" v-model="searchFields.road_id" filterable remote reserve-keyword clearable
@focus="remoteRoad" placeholder="请输入关键词查找道路" :remote-method="remoteMethod" :loading="roadloading">
<el-option v-for="item in roadsList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-col>
<el-col :span="24">
<el-date-picker class="vm10" v-model="mapdatesearch" type="daterange" range-separator=""
start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd">
</el-date-picker>
<el-button type="text" style="margin-left: 10px;" @click="moreSearch=true" v-if="!moreSearch"></el-button>
<el-button type="text" style="margin-left: 10px;" @click="moreSearch=false" v-if="moreSearch"></el-button>
</el-col>
<el-col :span="24">
<Button type="primary" @click="loadMap(false)" style="margin-left: 10px">查询</Button>
<Button type="primary" @click="resetSearch" style="margin-left: 10px">重置</Button>
</el-col>
</el-row>
</div>
</el-card>
</div>
<div>
<div class="wrapper" v-if="showmap">
<div class="chooseMap">
<div>
<el-radio-group v-model="showMap" @change="changeMap">
<el-radio v-for="item in mapRadioList" :label="item.id">{{item.title}}</el-radio>
</el-radio-group>
</div>
<div>
<el-checkbox-group v-model="checkList" @change="changeCheck">
<el-checkbox v-for="item in mapCheckList" :label="item.id">{{item.title}}</el-checkbox>
</el-checkbox-group>
</div>
</div>
<!-- 地图 -->
<div class="map" id="olMap"></div>
<!-- 弹框 -->
<div ref="popup" class="popup" v-show="shopPopup">
<div class="info">
<div class="address">地址{{nowAddress}}</div>
<div class="showinfo" @click='showInfo(nowId,types)'>查看详情</div>
</div>
</div>
</div>
</div>
</div>
@ -173,7 +182,8 @@
},
data() {
return {
showSearch: false,
moreSearch: false,
showSearch: true,
title: "巡查点位",
showmap: false,
width: "100%",
@ -534,19 +544,22 @@
},
};
</script>
<style lang="scss" scoped>
.mapwrap{
position: relative;
.mapbtn{
position: absolute;
top: 10px;
left: 50px;
z-index: 999;
}
}
.vm10{
margin-bottom:10px
<style lang="scss" scoped>
.mapwrap {
position: relative;
.mapbtn {
position: absolute;
top: 10px;
left: 50px;
z-index: 999;
}
}
.vm10 {
margin-bottom: 10px
}
.chooseMap {
position: absolute;
margin: 15px 20px;

@ -1,242 +1,240 @@
<template>
<div>
<!-- 日常雨水设施查看 -->
<dialogShow :title="title" :is-show.sync="isShow" :width="width">
<template v-slot:content>
<el-form :model="formdetail" :rules="{}" ref="formdetail" label-position="right" :label-width="labelwidth">
<el-row>
<el-col :span="12">
<el-form-item label="所属道路" prop="road_id">
{{form.roadName}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="巡查内容" prop="ask_content_id">
{{form.ask_content_detail?form.ask_content_detail:""}}
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="所在位置" prop="address">
{{form.address}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="经度" prop="longitude">
{{form.longitude}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="纬度" prop="latitude">
{{form.latitude}}
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="现场照片" prop="files_list" class="files_check">
<el-upload multiple action="/api/admin/upload-file" list-type="picture-card" :file-list="filesList"
ref="pictureUploads">
<div slot="file" slot-scope="{file}">
<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file,filesList)">
<i class="el-icon-zoom-in"></i>
</span>
</span>
</div>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="是否异常" prop="is_unusual">
<el-tag v-if="form.is_unusual==0"></el-tag>
<el-tag type="warning" v-if="form.is_unusual==1"></el-tag>
</el-form-item>
</el-col>
<el-col :span="12" v-if="form.is_unusual==0">
<el-form-item label="巡查开始点位" prop="start_address">
{{form.start_address?form.start_address:""}}
</el-form-item>
</el-col>
<el-col :span="12" v-if="form.is_unusual==0">
<el-form-item label="巡查结束点位" prop="address">
{{form.end_address?form.end_address:""}}
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.is_unusual!=0">
<el-form-item label="异常类型" prop="unusual_type_detail">
{{form.unusual_type_detail?form.unusual_type_detail.value:""}}
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.is_unusual!=0">
<el-form-item label="异常处置建议" prop="tip">
{{form.tip}}
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="是否现场处理" prop="is_scene">
<el-tag v-if="form.is_scene==0"></el-tag>
<el-tag type="success" v-if="form.is_scene==1"></el-tag>
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.is_scene==1">
<el-form-item label="现场处理结果" prop="result">
{{form.result}}
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.is_scene==1">
<el-form-item label="处理后照片" prop="files_end_list" class="files_check">
<el-upload multiple action="/api/admin/upload-file" list-type="picture-card" :file-list="dealFilesList"
ref="pictureUploads">
<div slot="file" slot-scope="{file}">
<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file,dealFilesList)">
<i class="el-icon-zoom-in"></i>
</span>
</span>
</div>
</el-upload>
</el-form-item>
</el-col>
<!-- 查看 -->
<div v-if="formType=='showform'">
<el-col :span="24">
<el-form-item label="有无违法转办">
<el-tag v-if="form.end_type==0"></el-tag>
<el-tag type="warning" v-if="form.end_type==1"></el-tag>
<el-tag type="warning" v-if="form.end_type==2"></el-tag>
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.end_type==1">
<el-form-item label="养护转办类型" prop="type">
<div v-for="item in yhtypeList">
<div v-if="form.maintain_type==item.id">
{{item.name}}
</div>
</div>
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.end_type==1">
<el-form-item label="要求完成时间" prop="end_time">
{{form.end_time}}
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.end_type==1">
<el-form-item label="备注" prop="remark">
{{form.remark}}
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="处理日志" prop="">
</el-form-item>
<el-table :data="form.rainInspectionLogs" style="width: 90%;margin: 0 auto;">
<el-table-column prop="created_at" label="日期" width="180">
</el-table-column>
<el-table-column prop="content" label="内容">
</el-table-column>
<el-table-column prop="type_name" label="操作结果">
</el-table-column>
<el-table-column prop="adminName" label="操作人" width="180">
</el-table-column>
</el-table>
</el-col>
</div>
<!-- 审核 auditform 办结-->
<div v-if="formType!='showform'">
<el-col :span="24">
<el-form-item label="备注" prop="content">
<el-input type="textarea" v-model="formdetail.content" placeholder="请填写备注"></el-input>
</el-form-item>
</el-col>
</div>
<div v-if="formType=='endform'||formType=='clueform'">
<el-col :span="24">
<el-form-item label="有无违法转办" prop="end_type">
<el-radio-group v-model="formdetail.end_type">
<el-radio :label="0"></el-radio>
<el-radio :label="1">养护转办</el-radio>
<el-radio :label="2">违法转办</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24" v-if="formdetail.end_type==1">
<el-form-item label="养护转办类型" prop="type">
<el-select class="width100" v-model="formdetail.maintain_type" placeholder="请选择养护转办类型">
<el-option v-for="item in yhtypeList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24" v-if="formdetail.end_type==1">
<el-form-item label="要求完成时间" prop="end_time">
<el-date-picker style="width:100%" v-model="formdetail.end_time" type="datetime" placeholder="选择时间"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark" v-if="formdetail.end_type==1">
<el-input type="textarea" v-model="formdetail.remark" placeholder="请填写备注"></el-input>
</el-form-item>
</el-col>
</div>
</el-row>
</el-form>
</template>
<template v-slot:footerbtn>
<el-button v-if="formType=='auditform'" type="primary" v-preventReClick @click="auditForm('formdetail','1')"></el-button>
<div v-if="formType=='endform'" style="display: inline-block;margin-left:10px">
<el-button v-if="formdetail.end_type!=2" type="primary" v-preventReClick @click="auditForm('formdetail','2')">
</el-button>
<el-button v-if="formdetail.end_type==2" type="primary" v-preventReClick @click="auditForm('formdetail','1')">
</el-button>
<el-button v-if="formdetail.end_type!=2" type="danger" v-preventReClick @click="auditForm('formdetail','3')">退
</el-button>
</div>
<div v-if="formType=='clueform'" style="display: inline-block;margin-left:10px">
<el-button v-if="form.status==1" type="primary" v-preventReClick
@click="auditForm('formdetail','2')">办结
</el-button>
<el-button v-if="form.status==1" type="warning" v-preventReClick
@click="auditForm('formdetail','4')">缺陷办结
</el-button>
<el-button v-if="form.status==1" type="danger" v-preventReClick
@click="auditForm('formdetail','3')">退回</el-button>
</div>
</template>
</dialogShow>
<div>
<el-dialog class="common-dialog showbigimg" :visible.sync="dialogVisible">
<i v-if="noNext" class="el-icon-arrow-left" @click="showNextBigPic"></i>
<div v-for="(item,index) in filesImgList" :key="index">
<img width="100%" :src="item.url" v-if="dialogImageIndex==index">
</div>
<i v-if="noNext" class="el-icon-arrow-right" @click="showNextBigPic('next')"></i>
</el-dialog>
</div>
<template>
<div>
<!-- 日常雨水设施查看 -->
<dialogShow :title="title" :is-show.sync="isShow" :width="width" @resetform="resetinfo">
<template v-slot:content>
<el-form :model="formdetail" :rules="{}" ref="formdetail" label-position="right" :label-width="labelwidth">
<el-row>
<el-col :span="12">
<el-form-item label="所属道路" prop="road_id">
{{form.roadName}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="巡查内容" prop="ask_content_id">
{{form.ask_content_detail?form.ask_content_detail:""}}
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="所在位置" prop="address">
{{form.address}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上报时间" prop="created_at">
{{form.created_at}}
</el-form-item>
</el-col>
<el-col :span="12">
</el-col>
<el-col :span="24">
<el-form-item label="现场照片" prop="files_list" class="files_check">
<el-upload multiple action="/api/admin/upload-file" list-type="picture-card" :file-list="filesList"
ref="pictureUploads">
<div slot="file" slot-scope="{file}">
<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file,filesList)">
<i class="el-icon-zoom-in"></i>
</span>
</span>
</div>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="是否异常" prop="is_unusual">
<el-tag v-if="form.is_unusual==0"></el-tag>
<el-tag type="warning" v-if="form.is_unusual==1"></el-tag>
</el-form-item>
</el-col>
<el-col :span="12" v-if="form.is_unusual==0">
<el-form-item label="巡查开始点位" prop="start_address">
{{form.start_address?form.start_address:""}}
</el-form-item>
</el-col>
<el-col :span="12" v-if="form.is_unusual==0">
<el-form-item label="巡查结束点位" prop="address">
{{form.end_address?form.end_address:""}}
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.is_unusual!=0">
<el-form-item label="异常类型" prop="unusual_type_detail">
{{form.unusual_type_detail?form.unusual_type_detail.value:""}}
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.is_unusual!=0">
<el-form-item label="异常处置建议" prop="tip">
{{form.tip}}
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="是否现场处理" prop="is_scene">
<el-tag v-if="form.is_scene==0"></el-tag>
<el-tag type="success" v-if="form.is_scene==1"></el-tag>
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.is_scene==1">
<el-form-item label="现场处理结果" prop="result">
{{form.result}}
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.is_scene==1">
<el-form-item label="处理后照片" prop="files_end_list" class="files_check">
<el-upload multiple action="/api/admin/upload-file" list-type="picture-card" :file-list="dealFilesList"
ref="pictureUploads">
<div slot="file" slot-scope="{file}">
<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
<span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file,dealFilesList)">
<i class="el-icon-zoom-in"></i>
</span>
</span>
</div>
</el-upload>
</el-form-item>
</el-col>
<!-- 查看 -->
<div v-if="formType=='showform'">
<el-col :span="24">
<el-form-item label="有无违法转办">
<el-tag v-if="form.end_type==0"></el-tag>
<el-tag type="warning" v-if="form.end_type==1"></el-tag>
<el-tag type="warning" v-if="form.end_type==2"></el-tag>
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.end_type==1">
<el-form-item label="养护转办类型" prop="type">
<div v-for="item in yhtypeList">
<div v-if="form.maintain_type==item.id">
{{item.name}}
</div>
</div>
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.end_type==1">
<el-form-item label="要求完成时间" prop="end_time">
{{form.end_time}}
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.end_type==1">
<el-form-item label="备注" prop="remark">
{{form.remark}}
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="处理日志" prop="">
</el-form-item>
<el-table :data="form.rainInspectionLogs" style="width: 90%;margin: 0 auto;">
<el-table-column prop="created_at" label="日期" width="180">
</el-table-column>
<el-table-column prop="content" label="内容">
</el-table-column>
<el-table-column prop="type_name" label="操作结果">
</el-table-column>
<el-table-column prop="adminName" label="操作人" width="180">
</el-table-column>
</el-table>
</el-col>
</div>
<!-- 审核 auditform 办结-->
<div v-if="formType!='showform'">
<el-col :span="24">
<el-form-item label="备注" prop="content">
<el-input type="textarea" v-model="formdetail.content" placeholder="请填写备注"></el-input>
</el-form-item>
</el-col>
</div>
<div v-if="formType=='endform'||formType=='clueform'">
<el-col :span="24">
<el-form-item label="有无违法转办" prop="end_type">
<el-radio-group v-model="formdetail.end_type">
<el-radio :label="0"></el-radio>
<el-radio :label="1">养护转办</el-radio>
<el-radio :label="2">违法转办</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24" v-if="formdetail.end_type==1">
<el-form-item label="养护转办类型" prop="type">
<el-select class="width100" v-model="formdetail.maintain_type" placeholder="请选择养护转办类型">
<el-option v-for="item in yhtypeList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24" v-if="formdetail.end_type==1">
<el-form-item label="要求完成时间" prop="end_time">
<el-date-picker style="width:100%" v-model="formdetail.end_time" type="datetime" placeholder="选择时间"
value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark" v-if="formdetail.end_type==1">
<el-input type="textarea" v-model="formdetail.remark" placeholder="请填写备注"></el-input>
</el-form-item>
</el-col>
</div>
</el-row>
</el-form>
</template>
<template v-slot:footerbtn>
<el-button v-if="formType=='auditform'" type="primary" v-preventReClick @click="auditForm('formdetail','1')">
</el-button>
<div v-if="formType=='endform'" style="display: inline-block;margin-left:10px">
<el-button v-if="formdetail.end_type!=2" type="primary" v-preventReClick @click="auditForm('formdetail','2')">
办结
</el-button>
<el-button v-if="formdetail.end_type==2" type="primary" v-preventReClick @click="auditForm('formdetail','1')">
保存
</el-button>
<el-button v-if="formdetail.end_type!=2" type="danger" v-preventReClick @click="auditForm('formdetail','3')">
退回
</el-button>
</div>
<div v-if="formType=='clueform'" style="display: inline-block;margin-left:10px">
<el-button v-if="form.status==1" type="primary" v-preventReClick @click="auditForm('formdetail','2')">
</el-button>
<el-button v-if="form.status==1" type="warning" v-preventReClick @click="auditForm('formdetail','4')">
</el-button>
<el-button v-if="form.status==1" type="danger" v-preventReClick @click="auditForm('formdetail','3')">退
</el-button>
</div>
</template>
</dialogShow>
<div>
<el-dialog class="common-dialog showbigimg" :visible.sync="dialogVisible">
<i v-if="noNext" class="el-icon-arrow-left" @click="showNextBigPic"></i>
<div v-for="(item,index) in filesImgList" :key="index">
<img width="100%" :src="item.url" v-if="dialogImageIndex==index">
</div>
<i v-if="noNext" class="el-icon-arrow-right" @click="showNextBigPic('next')"></i>
</el-dialog>
</div>
</div>
</template>
<script>
import {
get,
get,
update
} from '../../../../api/rain/inspection.js'
import {
storeclue
} from '../../../../api/rain/inspection.js'
import {
storeclue
} from '../../../../api/assess/clue.js'
import dialogShow from '@/components/dialogShow'
export default {
@ -251,12 +249,12 @@
labelwidth: "120px",
isShow: false,
// diaShow:this.isShow,
infoId: "",
dialogImageUrl: "",
dialogVisible: false,
dialogImageIndex:0,
filesImgList:[],
noNext: false,
infoId: "",
dialogImageUrl: "",
dialogVisible: false,
dialogImageIndex: 0,
filesImgList: [],
noNext: false,
filesList: [],
dealFilesList: [],
@ -289,18 +287,18 @@
content: "",
end_type: 0,
end_time: "",
remark: "",
remark: "",
// maintain_type:""
},
formclue: {
type: 5,
rain_inspection_id: "",
date: "",
files_list: [],
area_id: "",
address: "",
longitude: "",
latitude: ""
},
formclue: {
type: 5,
rain_inspection_id: "",
date: "",
files_list: [],
area_id: "",
address: "",
longitude: "",
latitude: ""
},
rules: {}
@ -312,15 +310,18 @@
},
formType(val) {
this.formType = val
},
'formdetail.end_type':function(val){
if(val){
this.formdetail.remark = ""
this.formdetail.end_time = ""
}
},
'formdetail.end_type': function(val) {
if (val) {
this.formdetail.remark = ""
this.formdetail.end_time = ""
}
}
},
methods: {
resetinfo() {
this.filesList = [];
},
getEquipmentInfo(id) {
if (id) {
var that = this;
@ -337,10 +338,10 @@
that.form.roadName = result.rain_equipment_info.road ? result.rain_equipment_info.road.name : ""
that.form.end_time = result.end_time
that.form.remark = result.remark
that.form.end_type = result.end_type
that.form.status = result.status
that.formdetail.end_type = result.end_type
that.form.maintain_type = result.maintain_type
that.form.end_type = result.end_type
that.form.status = result.status
that.formdetail.end_type = result.end_type
that.form.maintain_type = result.maintain_type
let _files = [];
for (var mod of result.rain_equipment_info.rain_equipment_files) {
@ -360,16 +361,16 @@
m.photoType = "after";
_filesafter.push(m);
}
that.dealFilesList = _filesafter;
that.formclue.type = 5
that.formclue.rain_inspection_id = result.id
that.formclue.files_list = _files
that.formclue.date = result.created_at
that.formclue.content = that.form.content
that.formclue.address = that.form.address
that.formclue.latitude = that.form.latitude
that.formclue.longitude = that.form.longitude
that.dealFilesList = _filesafter;
that.formclue.type = 5
that.formclue.rain_inspection_id = result.id
that.formclue.files_list = _files
that.formclue.date = result.created_at
that.formclue.content = that.form.content
that.formclue.address = that.form.address
that.formclue.latitude = that.form.latitude
that.formclue.longitude = that.form.longitude
that.fromclue.area_id = result.area_id ? result.area_id : ""
console.log(that.form)
}).catch(error => {
@ -377,88 +378,92 @@
})
}
},
auditForm(formname,status) {
auditForm(formname, status) {
var that = this
this.formdetail.status = status
this.formdetail.id = this.infoId
if (that.formdetail.end_type == 1 && that.formdetail.status == 2) {
storeclue(that.formclue).then(response => {
this.$Message.success('新增线索处办成功');
}).catch(error => {
//reject(error)
})
this.formdetail.id = this.infoId
if (that.formdetail.end_type == 1 && that.formdetail.status == 2) {
storeclue(that.formclue).then(response => {
this.$Message.success('新增线索处办成功');
}).catch(error => {
//reject(error)
})
}
update(that.formdetail).then(response => {
this.$Message.success('操作成功');
this.$emit("auditSuccess")
that.isShow = false;
this.$emit("auditSuccess")
that.isShow = false;
this.$refs['formdetail'].resetFields()
}).catch(error => {
//reject(error)
})
},
handlePictureCardPreview(file,whichfilelist) {
this.filesImgList = whichfilelist
if(this.filesImgList.length>1){
this.noNext = true
}else{
this.noNext = false
}
for (var i = 0; i < this.filesImgList.length; i++) {
if (this.filesImgList[i].url == file.url) {
this.dialogImageIndex = i
}
}
this.dialogVisible = true;
},
showNextBigPic(next){
let imgLength = this.filesImgList.length
if(next=='next'){
this.dialogImageIndex++
if(this.dialogImageIndex>imgLength-1){
this.dialogImageIndex=0
}
}else{
this.dialogImageIndex--
if(this.dialogImageIndex<0){
this.dialogImageIndex=imgLength-1
}
}
},
handlePictureCardPreview(file, whichfilelist) {
this.filesImgList = whichfilelist
if (this.filesImgList.length > 1) {
this.noNext = true
} else {
this.noNext = false
}
for (var i = 0; i < this.filesImgList.length; i++) {
if (this.filesImgList[i].url == file.url) {
this.dialogImageIndex = i
}
}
this.dialogVisible = true;
},
showNextBigPic(next) {
let imgLength = this.filesImgList.length
if (next == 'next') {
this.dialogImageIndex++
if (this.dialogImageIndex > imgLength - 1) {
this.dialogImageIndex = 0
}
} else {
this.dialogImageIndex--
if (this.dialogImageIndex < 0) {
this.dialogImageIndex = imgLength - 1
}
}
}
}
}
</script>
<style>
.showbigimg{
cursor: pointer;
}
.showbigimg .el-dialog__body{
text-align: center;
}
.showbigimg .el-dialog__body div{
text-align: center;
width:90%;
display: inline-block;
}
.showbigimg .el-icon-arrow-left{
position: absolute;
top:50%;
left:1%;
transform: translate(0%,-50%);
font-size: 60px;
}
.showbigimg .el-icon-arrow-right{
position: absolute;
top:50%;
right:1%;
transform: translate(0%,-50%);
font-size: 60px;
}
.files_check .el-upload.el-upload--picture-card {
display: none;
}
<style>
.showbigimg {
cursor: pointer;
}
.showbigimg .el-dialog__body {
text-align: center;
}
.showbigimg .el-dialog__body div {
text-align: center;
width: 90%;
display: inline-block;
}
.showbigimg .el-icon-arrow-left {
position: absolute;
top: 50%;
left: 1%;
transform: translate(0%, -50%);
font-size: 60px;
}
.showbigimg .el-icon-arrow-right {
position: absolute;
top: 50%;
right: 1%;
transform: translate(0%, -50%);
font-size: 60px;
}
.files_check .el-upload.el-upload--picture-card {
display: none;
}
</style>

@ -47,8 +47,11 @@
start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd">
</el-date-picker>
<Button type="primary" @click="load(false)" style="margin-left: 10px">查询</Button>
<Button type="primary" @click="edit()" style="margin-left: 10px">新增</Button>
<Button type="primary" @click="review()" style="margin-left: 10px">批量复核</Button>
<!--查看页面没有操作权限-->
<block v-if="!isViewPage">
<Button type="primary" @click="edit()" style="margin-left: 10px">新增</Button>
<Button type="primary" @click="review()" style="margin-left: 10px">批量复核</Button>
</block>
<Button type="primary" @click="exportExcel()" style="margin-left: 10px">导出</Button>
<!-- <Button type="primary" @click="showMap()" style="margin-left: 10px">当月点位</Button> -->
</div>
@ -66,10 +69,8 @@
<div v-if="column.type=='opt'">
<Button ghost size="small" @click.native.stop="showInfo(scope.row,'showform')" type="primary"
style="margin-left: 10px;">查看</Button>
<el-popover placement="bottom-start" width="200" trigger="hover"
v-if="scope.row['status']!=2&&scope.row['status']!=3&&scope.row['end_type']!=2">
<Button v-if="scope.row['status']==0" ghost size="small" @click.native.stop="edit(scope.row)"
type="primary" style="margin-left: 10px;">编辑</Button>
<!--查看页面没有操作权限-->
<block v-if="!isViewPage">
<Button v-if="scope.row['status']==0" ghost size="small"
@click.native.stop="showInfo(scope.row,'auditform')" type="primary"
style="margin-left: 10px;">审核</Button>
@ -77,11 +78,16 @@
<Button v-if="scope.row['status']==1&&scope.row['end_type']!=2" ghost size="small"
@click.native.stop="showInfo(scope.row,'endform')" type="primary"
style="margin-left: 10px;">办结</Button>
<Button ghost size="small"
v-if="scope.row['status']==0||scope.row['status']==1&&scope.row['end_type']!=2"
@click.native.stop="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
<Button slot="reference" ghost size="small" type="primary" style="margin-left: 10px;">更多</Button>
</el-popover>
<el-popover placement="bottom-start" width="200" trigger="hover"
v-if="scope.row['status']!=2&&scope.row['status']!=3&&scope.row['end_type']!=2">
<Button v-if="scope.row['status']==0" ghost size="small" @click.native.stop="edit(scope.row)"
type="primary" style="margin-left: 10px;">编辑</Button>
<Button ghost size="small"
v-if="scope.row['status']==0||scope.row['status']==1&&scope.row['end_type']!=2"
@click.native.stop="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
<Button slot="reference" ghost size="small" type="primary" style="margin-left: 10px;">更多</Button>
</el-popover>
</block>
</div>
<div v-else-if="column.type=='type'">
<el-tag v-if="scope.row[column.field]==1"></el-tag>
@ -221,6 +227,7 @@
baseurl: "",
rainTypeVisible: false,
rainType: 1,
isViewPage: false,
mapArr: [],
tableData: [],
paginations: {
@ -316,76 +323,80 @@
title: "地址",
type: "string",
align: "left",
width: 360
width: 360,
fixed:"left"
},
{
field: "status",
title: "状态",
type: "status",
align: "center",
width: 100,
fixed:"left"
},
{
field: "audit_status",
title: "复核状态",
type: "audit_status",
align: "center",
width: 100,
fixed:"left"
},
{
field: "created_at",
title: "上报时间",
type: "string",
align: "center",
width: 180,
fixed:"left"
},
{
field: "area_info",
title: "所属片区",
title: "片区",
type: "format",
align: "center",
width: 180
width: 120
},
{
field: "maintain",
title: "所属养护单位",
title: "养护单位",
type: "maintain",
align: "center",
width: 180
width: 120
},
{
field: "askName",
title: "巡查内容",
type: "string",
align: "center",
width: 180
width: 160
},
{
field: "type",
title: "类型",
type: "type",
align: "center",
width: 180
width: 120
},
{
field: "end_type",
title: "是否有违法转办",
title: "违法转办",
type: "end_type",
align: "center",
width: 180
width: 120
},
{
field: "status",
title: "状态",
type: "status",
align: "center",
width: 180
},
{
field: "audit_status",
title: "复核状态",
type: "audit_status",
align: "center",
width: 180
},
{
field: "userName",
title: "提交人",
type: "admin",
align: "center",
width: 180
},
{
field: "created_at",
title: "提交日期",
type: "string",
align: "center",
width: 180
width: 100
},
{
field: "操作",
title: "操作",
width: 180,
width: 200,
type: "opt",
fixed: "right"
}
@ -393,6 +404,8 @@
}
},
created() {
this.isViewPage = parseInt(this.$route.path.split("_")[1]) == 1;
this.initLoad();
this.load();

File diff suppressed because it is too large Load Diff

@ -1,7 +1,7 @@
<template>
<div>
<!-- 疏通1 疏挖2 专项处理6 维修7 出水口5-->
<dialogShow :title="title" :is-show.sync="isShow" :width="width">
<dialogShow :title="title" :is-show.sync="isShow" :width="width" @resetform="resetinfo">
<template v-slot:content>
<el-form :model="formdetail" :rules="{}" ref="formdetail" label-position="right" :label-width="labelwidth">
<el-row>
@ -26,13 +26,8 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="经度" prop="longitude">
{{form.longitude}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="纬度" prop="latitude">
{{form.latitude}}
<el-form-item label="上报时间" prop="created_at">
{{form.created_at}}
</el-form-item>
</el-col>
<el-col :span="24">
@ -334,6 +329,10 @@
this.initload()
},
methods: {
resetinfo() {
this.filesList = [];
this.dealFilesList=[];
},
initload() {
},
@ -496,8 +495,9 @@
right: 1%;
transform: translate(0%, -50%);
font-size: 60px;
}
.files_check .el-upload.el-upload--picture-card {
display: none;
}
.files_check .el-upload.el-upload--picture-card {
display: none;
}
</style>

@ -61,18 +61,17 @@
<template slot-scope="scope">
<div v-if="column.type=='opt'">
<Button ghost size="small" @click.native.stop="showInfo(scope.row,'showform')" type="primary"
style="margin-left: 10px;">查看</Button>
<el-popover placement="bottom-start" width="200" trigger="hover"
v-if="scope.row['status']!=2&&scope.row['status']!=3&&scope.row['end_type']!=2"
>
style="margin-left: 10px;">查看</Button> <Button v-if="scope.row['status']==0" ghost size="small"
@click.native.stop="showInfo(scope.row,'auditform')" type="primary"
style="margin-left: 10px;">审核</Button>
<Button v-if="scope.row['status']==1&&scope.row['end_type']!=1" ghost size="small"
@click.native.stop="showInfo(scope.row,'endform')" type="primary"
style="margin-left: 10px;">办结</Button>
<el-popover placement="bottom-start" width="200" trigger="hover"
v-if="scope.row['status']!=2&&scope.row['status']!=3&&scope.row['end_type']!=2">
<Button v-if="scope.row['status']==0" ghost size="small" @click.native.stop="edit(scope.row)"
type="primary" style="margin-left: 10px;">编辑</Button>
<Button v-if="scope.row['status']==0" ghost size="small"
@click.native.stop="showInfo(scope.row,'auditform')" type="primary"
style="margin-left: 10px;">审核</Button>
<Button v-if="scope.row['status']==1&&scope.row['end_type']!=1" ghost size="small"
@click.native.stop="showInfo(scope.row,'endform')" type="primary"
style="margin-left: 10px;">办结</Button>
<Button ghost size="small"
v-if="scope.row['status']==0||scope.row['status']==1&&scope.row['end_type']!=1"
@click.native.stop="del(scope.row)" type="error" style="margin-left: 10px;">删除</Button>
@ -352,41 +351,23 @@
title: "地址/排放点",
type: "string",
align: "left",
width: 360
},
{
field: "area_info",
title: "所属片区",
type: "format",
align: "center",
width: 180
},
{
field: "maintain",
title: "所属养护单位",
type: "maintain",
align: "center",
width: 180
},
{
field: "old_type",
title: "类型",
type: "old_type",
align: "center",
width: 180
},
{
field: "end_type",
title: "有无违法转办",
type: "end_type",
align: "center",
width: 180
fixed: "left",
width: 300
},
{
field: "status",
title: "状态",
type: "status",
align: "center",
fixed: "left",
width: 100
},
{
field: "created_at",
title: "上报时间",
type: "string",
align: "center",
fixed: "left",
width: 180
},
{
@ -394,7 +375,8 @@
title: "复核状态",
type: "audit_status",
align: "center",
width: 180
fixed: "left",
width: 120
},
// {
// field: "end_type",
@ -405,22 +387,43 @@
// },
{
field: "userName",
title: "提交人",
title: "上报人",
type: "admin",
align: "center",
width: 180
width: 100
},
{
field: "created_at",
title: "提交日期",
type: "string",
field: "area_info",
title: "所属片区",
type: "format",
align: "center",
width: 180
width: 120
},
{
field: "maintain",
title: "所属养护单位",
type: "maintain",
align: "center",
width: 120
},
{
field: "old_type",
title: "类型",
type: "old_type",
align: "left",
width: 140
},
{
field: "end_type",
title: "违法转办",
type: "end_type",
align: "center",
width: 100
},
{
field: "操作",
title: "操作",
width: 180,
width: 200,
type: "opt",
fixed: "right"
}

@ -22,6 +22,8 @@
</el-table-column>
<el-table-column prop="url" label="菜单路径" sortable>
</el-table-column>
<el-table-column prop="path" label="视图" sortable>
</el-table-column>
<el-table-column prop="icon" label="图标" sortable>
</el-table-column>
<el-table-column prop="api_prefix" label="API前缀" sortable>
@ -51,6 +53,9 @@
<el-form-item label="菜单路径" prop="url">
<el-input v-model="form.url" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="视图" prop="path">
<el-input v-model="form.path" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="是否显示" prop="visible">
<el-select v-model="form.visible">
<el-option label="显示" value="1"></el-option>
@ -60,7 +65,7 @@
<el-form-item label="API前缀" prop="api_prefix">
<el-input v-model="form.api_prefix" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="图标" >
<el-form-item label="图标">
<el-input v-model="form.icon" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="排序">
@ -79,7 +84,7 @@
import LxHeader from "@/components/LxHeader/index.vue";
import {
save,
listmenu,
listmenu,
del
} from "../../api/system/menu.js";
export default {
@ -100,11 +105,12 @@
id: "",
pid: "0",
url: "",
path: "",
visible: "1",
sortnumber: 0,
icon: "",
pname: "根菜单",
api_prefix:""
pname: "根菜单",
api_prefix: ""
},
rules: {
name: [{

Loading…
Cancel
Save