Merge branch 'bjxz-dev' of http://139.9.66.234:18023/dhp/zhgdyun into bjxz-dev

This commit is contained in:
Vce 2024-05-24 00:28:19 +08:00
commit cccd9e7155
14 changed files with 693 additions and 574 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -7,18 +7,19 @@ import {post, get, put} from '../http'
// 应急处置台账
export const getEmergencyRecordPageApi = data => get('xmgl/xzEmergencyRecord/page', data); //列表接口
export const getEmergencyRecordQueryByIdApi = data => get('xmgl/xzEmergencyRecord/queryById', data); //详情
export const getEmergencyRecordEditApi = data => post('xmgl/xzEmergencyRecord/edit', data); //详情
export const getEmergencyRecordEditApi = data => post('xmgl/xzEmergencyRecord/edit', data); //编辑
export const getEmergencyRecordDeleteApi = data => post('xmgl/xzEmergencyRecord/delete', data); //删除
export const getEmergencyRecordListApi = data => get('xmgl/xzEmergencyRecord/list', data); //类型列表
// 应急类型
export const getEmergencyTypeApi = data => get('xmgl/xzEmergencyType/page', data); //列表接口
export const getEmergencyTypeAddApi = data => post('xmgl/xzEmergencyType/add', data); //添加
export const getEmergencyTypeEditApi = data => post('xmgl/xzEmergencyType/edit', data); //编辑
export const getEmergencyTypeDeleteApi = data => post('xmgl/xzEmergencyType/delete', data); //删除
export const getEmergencyTypeListApi = data => get('xmgl/xzEmergencyType/list', data); //类型列表
// 应急推送
// /xmgl/xzEmergencyPush/save // 设置责任人
export const getEmergencyPushPageApi = data => get('xmgl/xzEmergencyPush/page', data); //列表接口
export const getEmergencyPushSaveApi = data => post('xmgl/xzEmergencyPush/save', data); //添加
export const getWorkerInfoApi = data => post('xmgl/systemUser/getProjectChilderSystemUserList', data); //添加
@ -26,9 +27,8 @@ export const getWorkerInfoApi = data => post('xmgl/systemUser/getProjectChilderS
// 救援物资 // EmergencyRelief
export const getEmergencyReliefPageApi = data => get('xmgl/xzEmergencyReliefGoods/page', data); //列表接口
export const getEmergencyReliefAddApi = data => post('xmgl/xzEmergencyReliefGoods/add', data); //添加
export const getEmergencyReliefEditApi = data => post('xmgl/xzEmergencyReliefGoods/edit', data); //编辑
export const getEmergencyReliefDeleteApi = data => post('xmgl/xzEmergencyReliefGoods/delete', data); //删除
export const getEmergencyReliefListApi = data => get('xmgl/xzEmergencyReliefGoods/list', data); //类型列表
// 救援隐患审批

View File

@ -84,8 +84,8 @@ if (process.env.NODE_ENV == 'development') {
// axios.defaults.baseURL ='http://101.43.164.214:45011/' //上海优益(上海建工)
// axios.defaults.baseURL = 'http://192.168.34.221:28888/' //郭圣雄本地
// axios.defaults.baseURL = 'http://192.168.34.221:28889/' //郭圣雄本地
// axios.defaults.baseURL ='http://192.168.34.221:9111/' //郭圣雄本地
axios.defaults.baseURL = 'http://192.168.34.155:19111/' //彭洁本地
axios.defaults.baseURL ='http://192.168.34.221:9111/' //郭圣雄本地
// axios.defaults.baseURL = 'http://192.168.34.155:19111/' //彭洁本地
// axios.defaults.baseURL = 'http://182.90.224.237:51234' //郭圣雄远程
// axios.defaults.baseURL = 'http://jxj.zhgdyun.com:61212/' //彭洁远程
// axios.defaults.baseURL ='http://101.43.164.214:45020/' //沈阳和盈

View File

@ -26,7 +26,7 @@
智慧工地云平台
</title>
<script
src="https://webapi.amap.com/maps?v=1.4.14&key=ad31e514e7e740179d6d8f182720bcf5&plugin=AMap.Autocomplete,AMap.PlaceSearch,AMap.MouseTool,AMap.Geocoder,AMap.Driving"
src="https://webapi.amap.com/maps?v=1.4.14&key=8d7b8cd643454bec7737b3423647be21&plugin=AMap.Autocomplete,AMap.PlaceSearch,AMap.MouseTool,AMap.Geocoder,AMap.Driving"
defer="defer"></script>
<!-- <script
src="https://webapi.amap.com/maps?v=1.4.14&key=8d7b8cd643454bec7737b3423647be21&plugin=AMap.Autocomplete,AMap.PlaceSearch,AMap.MouseTool,AMap.Geocoder,AMap.Driving"

View File

@ -43,16 +43,18 @@ export default new Vuex.Store({
},
}),
],
state: {
PAGESIZRS: [10, 20, 30, 50],
// UPLOADURL:' http://101.43.164.214:11111/upload/image/',// 百色
// FILEURL:' http://101.43.164.214:11111/image/',// 百色
// UPLOADURL:'http://182.90.224.237:51234/upload/image/',
// FILEURL:'http://182.90.224.237:51234/image/',
UPLOADURL:'http://192.168.34.221:9111/upload/image/',// 郭圣雄本地
FILEURL:'http://192.168.34.221:9111/image/',//郭圣雄本地
WORKFLOWURL: 'http://192.168.34.138:88/#/workspace/forms',//坤工作流地址(本地)
UPLOADURL: "http://http://192.168.34.155:19111/upload/image/", // 洁本地
FILEURL: "http://http://192.168.34.155:19111/image/", //洁本地
// UPLOADURL:'http://192.168.34.221:9111/upload/image/',// 郭圣雄本地
// FILEURL:'http://192.168.34.221:9111/image/',//郭圣雄本地
WORKFLOWURL: "http://192.168.34.138:88/#/workspace/forms", //坤工作流地址(本地)
// UPLOADURL:'http://182.90.224.237:51234/upload/image/',// 郭圣雄远程
// FILEURL:'http://182.90.224.237:51234/image/',//郭圣雄远程
// UPLOADURL:'http://jxj.zhgdyun.com:15551/upload/image',//测试
@ -74,18 +76,18 @@ export default new Vuex.Store({
//---------------------------------------------------------------------------------------------
// BASEURL: baseUrl
// ? baseUrl
// : window.location.protocol + "//" + window.location.host + "/api/", //金林湾部署地址
// : window.location.protocol + "//" + window.location.host + "/api/", //金林湾部署地址
// UPLOADURL:
// window.location.protocol +
// "//" +
// window.location.host +
// "/api/upload/image", //金林湾部署地址
// FILEURL: window.location.protocol + "//" + window.location.host + "/image/", //金林湾部署地址
// FILEURL: window.location.protocol + "//" + window.location.host + "/image/", //金林湾部署地址
// FILEURL: 'http://182.90.224.237:7000/image/', // UPLOADURL: 'http://182.90.224.237:7000/upload/image',
// tag: 本地测试接口 // BASEURL:'http://192.168.34.174:6023/',
/* 2022-05-16 */
// tag: 部署河南项目时,需要打开这两行代码
// UPLOADURL: 'http://139.9.66.234:6324/upload/image',
// FILEURL: 'http://139.9.66.234:6324/image/',
/* 2022-06-06 广西本地的*/ // FILEURL: 'http://182.90.224.237:7000/image/',
@ -111,7 +113,7 @@ export default new Vuex.Store({
// UPLOADURL: 'http://101.43.164.214:12345/upload/image',//内蒙古
// FILEURL: 'http://101.43.164.214:12345/image/',//内蒙古
// UPLOADURL: 'http://42.194.144.62:8088/upload/image',//中建四
// FILEURL: 'http://42.194.144.62:8088/image/',//中建四
// FILEURL: 'http://42.194.144.62:8088/image/',//中建四
// UPLOADURL: 'http://182.90.224.147:15551/upload/image',//四川成润(内部线上)
// FILEURL: 'http://182.90.224.147:15551/image/',//四川成润(内部线上)
// UPLOADURL: 'http://118.121.198.147:23232/upload/image',//四川成润(正式)
@ -318,8 +320,8 @@ export default new Vuex.Store({
state.fileList.operaColumnExpand !== null
? Number(state.fileList.operaColumnExpand)
: document.body.clientWidth > 1280
? 1
: 0, // 操作列是否展开0不展开1展开
? 1
: 0, // 操作列是否展开0不展开1展开
selectedColumnList: (state) =>
state.fileList.selectedColumnList === null
? ["extendName", "fileSize", "uploadTime", "deleteTime"]

View File

@ -3,18 +3,18 @@
<div>
<div class="search-box">
<el-form :inline="true" :model="formInline" class="demo-form-inline" size="small">
<!-- <el-form-item label="企业">
<el-form-item label="企业">
<el-select v-model="formInline.enterpriseId" placeholder="请选择企业">
<el-option :label="item.enterpriseName" :value="item.id"
v-for="(item, index) in responsibilityList" :key="index">
</el-option>
</el-select>
</el-form-item> -->
<el-form-item label="企业">
</el-form-item>
<!-- <el-form-item label="企业">
<el-input placeholder="请输入企业名称" v-model="formInline.enterpriseName" clearable
style="width: 200px">
</el-input>
</el-form-item>
</el-form-item> -->
<!-- <el-form-item label="报警时间">
<el-date-picker v-model="formInline.time" type="daterange" range-separator=""
start-placeholder="开始日期" end-placeholder="结束日期">
@ -23,7 +23,7 @@
<el-form-item>
<el-button type="primary" @click="onSubmit" plain>{{
$t('message.quality.inquire')
}}</el-button>
}}</el-button>
</el-form-item>
<el-form-item>
<el-button type="warning" @click="onRefresh" plain>刷新</el-button>
@ -45,7 +45,7 @@
{{ scope.row.enterpriseName }}
</template>
</el-table-column>
<el-table-column align="center" label="应急责人" prop="emergencyManagerName"
<el-table-column align="center" label="应急人" prop="emergencyManagerName"
show-overflow-tooltip></el-table-column>
<!-- 操作 -->
<el-table-column align="center" :label="$t('message.dangerousBigProject.operation')">
@ -227,7 +227,7 @@ export default {
// this.getCooperatorList()
// this.getType()
this.initData();
// this.getEnterpriseInfoList();
this.getEnterpriseInfoList();
},
mounted() {
@ -273,12 +273,10 @@ export default {
},
addEmergencyType(row) {
console.log(11111111111111, row)
this.emergencyTypeDetail.title = "设置责任人";
this.emergencyTypeDetail = {
...this.emergencyTypeDetail,
...row,
enterpriseIdList: row.emergencyManagerId ? row.emergencyManagerId.split(',') : [],
}
this.emergencyTypeDetail.enterpriseIdList = [];
getWorkerInfoApi({
projectSn: this.projectSn,
enterpriseId: row.enterpriseId,
@ -291,6 +289,12 @@ export default {
this.responsibilityList = res.result;
}
}).finally(() => {
this.emergencyTypeDetail = {
...this.emergencyTypeDetail,
...row,
enterpriseIdList: row.emergencyManagerId ? row.emergencyManagerId.split(',') : [],
}
this.$refs['ruleForm'] && this.$refs['ruleForm'].resetFields()
this.dialogVisible = true;
})
},
@ -301,7 +305,7 @@ export default {
onRefresh() {
this.formInline.enterpriseId = "";
this.formInline.firemanName = "";
this.formInline.enterpriseName = "";
this.formInline.enterpriseId = "";
this.pageNo = 1;
this.initData();
@ -319,7 +323,7 @@ export default {
initData() {
// this.tableData = [{}]
let data = {
enterpriseName: this.formInline.enterpriseName,
enterpriseId: this.formInline.enterpriseId,
pageNo: this.pageNo,
pageSize: this.pageSize,
projectSn: this.projectSn,
@ -334,7 +338,7 @@ export default {
}
});
},
handleSizeChange() {
handleSizeChange(e) {
this.pageSize = e;
this.initData()
},

View File

@ -23,7 +23,7 @@
<el-form-item>
<el-button type="primary" @click="onSubmit" plain>{{
$t('message.quality.inquire')
}}</el-button>
}}</el-button>
</el-form-item>
<el-form-item>
<el-button type="warning" @click="onRefresh" plain>刷新</el-button>
@ -47,16 +47,18 @@
</el-table-column>
<el-table-column align="center" label="处置资料" prop="disposalInformation"
show-overflow-tooltip><template slot-scope="scope">
<div style="color:#5181F6;cursor: pointer;" @click="downloadReport(scope.row.disposalInformation)">
<div style="color:#5181F6;cursor: pointer;"
@click="downloadReport(scope.row.disposalInformation)">
{{ scope.row.disposalInformation && JSON.parse(scope.row.disposalInformation).map(item => item.name).join("、") }}
</div>
</template>
</el-table-column>
<el-table-column align="center" label="指导文件" prop="guidanceDocument" show-overflow-tooltip>
<template slot-scope="scope">
<div style="color:#5181F6;cursor: pointer;" @click="downloadReport(scope.row.guidanceDocument)">
<div style="color:#5181F6;cursor: pointer;"
@click="downloadReport(scope.row.guidanceDocument)">
{{ scope.row.guidanceDocument && JSON.parse(scope.row.guidanceDocument).map(item =>
item.name).join("、") }}
item.name).join("、") }}
</div>
</template>
</el-table-column>
@ -65,15 +67,10 @@
<!-- 操作 -->
<el-table-column align="center" :label="$t('message.dangerousBigProject.operation')">
<template slot-scope="scope">
<!-- <el-button @click.native.prevent="viewData(scope.$index, tableData)" type="text"
size="small">
<i class="el-icon-s-order"></i>
查看详情
</el-button> -->
<!-- <el-button @click.native.prevent="addEmergencyType(2, scope)" type="text" size="small">
<el-button @click.native.prevent="addEmergencyType(2, scope.row)" type="text" size="small">
<i class="el-icon-edit"></i>
编辑
</el-button> -->
</el-button>
<!-- v-permission="{key: 'wdgc_delete', menuPath: '/project/dangerousBigProject/parameter'}" -->
<el-button @click.stop="deleteRow(scope.row)" type="text" size="small">
<i class="el-icon-delete"></i>
@ -115,7 +112,8 @@
<el-upload class="upload-demo" :limit="1" name="files" drag
:on-remove="(file, fileList) => handleRemove(file, fileList, 1)" :multiple="false"
:on-success="(res, file) => handleSuccess(res, file, 1)"
:file-list="emergencyTypeDetail.fileList1" :action="$store.state.UPLOADURL" accept=".doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf,.txt">
:file-list="emergencyTypeDetail.fileList1" :action="$store.state.UPLOADURL"
accept=".doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf,.txt">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
</el-upload>
@ -124,7 +122,8 @@
<el-upload class="upload-demo" name="files" :limit="1" drag
:on-remove="(file, fileList) => handleRemove(file, fileList, 2)" :multiple="false"
:on-success="(res, file) => handleSuccess(res, file, 2)"
:file-list="emergencyTypeDetail.fileList2" :action="$store.state.UPLOADURL" accept=".doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf,.txt">
:file-list="emergencyTypeDetail.fileList2" :action="$store.state.UPLOADURL"
accept=".doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf,.txt">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
</el-upload>
@ -155,7 +154,8 @@ import {
import {
getEmergencyTypeApi,
getEmergencyTypeAddApi,
getEmergencyTypeDeleteApi
getEmergencyTypeDeleteApi,
getEmergencyTypeEditApi
} from "@/assets/js/api/emergencyDisposal"
@ -312,21 +312,37 @@ export default {
// return
this.$refs[formName].validate((valid) => {
if (valid) {
getEmergencyTypeAddApi({
let obj = {
projectSn: this.projectSn,
emergencyType: this.emergencyTypeDetail.emergencyType,
disposalInformation: JSON.stringify(this.emergencyTypeDetail.fileList1),
guidanceDocument: JSON.stringify(this.emergencyTypeDetail.fileList2),
remark: this.emergencyTypeDetail.remark,
}).then((res) => {
if (res.code) {
console.log(res.result, 1)
this.$message.success(res.message)
this.initData()
this.dialogVisible = false;
// this.responsibilityList = res.result;
}
})
}
if (this.emergencyTypeDetail.title == "新增") {
getEmergencyTypeAddApi(obj).then((res) => {
if (res.code) {
console.log(res.result, 1)
this.$message.success(res.message)
this.initData()
this.dialogVisible = false;
// this.responsibilityList = res.result;
}
})
} else {
obj.id = this.emergencyTypeDetail.id;
getEmergencyTypeEditApi(obj).then((res) => {
if (res.code) {
console.log(res.result, 1)
this.$message.success(res.message)
this.initData()
this.dialogVisible = false;
// this.responsibilityList = res.result;
}
})
}
} else {
console.log('error submit!!');
return false;
@ -373,11 +389,22 @@ export default {
this.upload_btn1 = false;
this.fileList = fileList
},
addEmergencyType(type) {
addEmergencyType(type, row) {
if (type == 1) {
this.emergencyTypeDetail.title = "新增";
this.emergencyTypeDetail.emergencyType = "";
this.emergencyTypeDetail.remark = "";
this.emergencyTypeDetail.fileList1 = [];
this.emergencyTypeDetail.fileList2 = [];
} else {
this.emergencyTypeDetail.title = "编辑";
console.log(11111111, row);
this.emergencyTypeDetail.id = row.id;
this.emergencyTypeDetail.emergencyType = row.emergencyType;
this.emergencyTypeDetail.remark = row.remark;
this.emergencyTypeDetail.fileList1 = row.disposalInformation && JSON.parse(row.disposalInformation);
this.emergencyTypeDetail.fileList2 = row.guidanceDocument && JSON.parse(row.guidanceDocument);
}
this.dialogVisible = true;
@ -422,7 +449,7 @@ export default {
}
});
},
handleSizeChange() {
handleSizeChange(e) {
this.pageSize = e;
this.initData()
},

View File

@ -11,12 +11,12 @@
</el-select>
</el-form-item>
<el-form-item label="姓名">
<el-input placeholder="请输入报警姓名" v-model="formInline.workTicketCode" clearable
<el-input placeholder="请输入报警姓名" v-model="formInline.alarmPersonName" clearable
style="width: 200px">
</el-input>
</el-form-item>
<el-form-item label="报警时间">
<el-date-picker v-model="formInline.time" type="daterange" range-separator=""
<el-date-picker v-model="formInline.alarmTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator=""
start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
@ -42,20 +42,26 @@
{{ scope.row.enterpriseName }}
</template>
</el-table-column>
<el-table-column align="center" label="所属班组" prop="teamName"
show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="所属班组/部门" prop=""
show-overflow-tooltip>
<template slot-scope="scope">
{{scope.row.teamName ? scope.row.teamName : scope.row.departmentName}}
</template>
</el-table-column>
<el-table-column align="center" label="报警人员姓名" prop="alarmPersonName"></el-table-column>
<!-- <el-table-column align="center" label="证书编号" prop="certificateNo"></el-table-column> -->
<el-table-column align="center" label="应急类型" prop="emergencyTypeName"
show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="经纬度" prop="latitude">
<el-table-column align="center" label="详细地址" show-overflow-tooltip prop="latitude">
<template slot-scope="scope">
{{ scope.row.longitude }}<span v-if="scope.row.latitude && scope.row.longitude">,</span>{{ scope.row.latitude }}
<!-- {{ scope.row.longitude }}<span v-if="scope.row.latitude && scope.row.longitude">,</span>{{
scope.row.latitude }} -->
{{ scope.row.incidentSite }}
</template>
</el-table-column>
<el-table-column align="center" label="救援物资分布" prop="assignmentPersonInChargeName">
<template slot-scope="scope">
<i class="el-icon-map-location" @click="mapShow()"></i>
<i class="el-icon-map-location" @click="mapShow(scope.row)"></i>
</template>
</el-table-column>
<!-- 状态 -->
@ -64,7 +70,7 @@
<span v-if="scope.row.dispositionStatus === 1"
style="color:#f56c6c;font-weight:bold;">待救援</span>
<span v-if="scope.row.dispositionStatus === 2"
style="color:#008000;font-weight:bold;">救援中</span>
style="color:#5181f6;font-weight:bold;">救援中</span>
<span v-if="scope.row.dispositionStatus === 3"
style="color:#008000;font-weight:bold;">已救援</span>
</template>
@ -73,7 +79,7 @@
<!-- 操作 -->
<el-table-column align="center" width="270px" :label="$t('message.dangerousBigProject.operation')">
<template slot-scope="scope">
<el-button v-if="scope.row.disposalReport" @click.stop="downloadReport(scope.row)" type="text" size="small">
<el-button v-if="scope.row.dispositionStatus === 3" @click.stop="downloadReport(scope.row)" type="text" size="small">
<i class="el-icon-upload"></i>
下载处置报告
</el-button>
@ -137,7 +143,7 @@
<span v-if="firstAidCallDetail.dispositionStatus === 1"
style="color:#f56c6c;font-weight:bold;">待救援</span>
<span v-if="firstAidCallDetail.dispositionStatus === 2"
style="color:#008000;font-weight:bold;">救援中</span>
style="color:#5181f6;font-weight:bold;">救援中</span>
<span v-if="firstAidCallDetail.dispositionStatus === 3"
style="color:#008000;font-weight:bold;">已救援</span>
</div>
@ -150,15 +156,16 @@
</div>
</div>
<div>
<div class="emergency-detail"><span>应急详情</span><span>{{ firstAidCallDetail.emergencyDetail
}}</span> </div>
<div>详细地址<span>{{ firstAidCallDetail.incidentSite }}</span></div>
<div>报警时间{{ firstAidCallDetail.alarmTime }}</div>
</div>
<div>
<div class="emergency-detail"><span>应急详情</span><span>{{ firstAidCallDetail.emergencyDetail
}}</span> </div>
<div>现场图片
<div v-for="(item, index) in firstAidCallDetail.livePicture &&
JSON.parse(firstAidCallDetail.livePicture) instanceof Array && JSON.parse(firstAidCallDetail.livePicture)"
:key="index" style="">
:key="index" style="flex: 1;">
<!-- <img :preview="item ? $store.state.FILEURL + item.url : ''"
:src="item ? $store.state.FILEURL + item.url : ''" alt="" width="50px" height="50px" style="margin-right: 10px;"/> -->
<el-image style="width: 74px; height: 74px;margin-right: 10px;"
@ -173,7 +180,7 @@
</div>
</div>
</div>
<div v-if="firstAidCallDetail.emergencyTypeId != -1">
<div v-if="firstAidCallDetail.emergencyTypeId != -1">
<div class="emergency-title">救援资料</div>
<div class="emergency-info">
<div>
@ -195,13 +202,13 @@
</div>
</div>
</div>
<div>
<div class="case">
<div class="emergency-title">救援情况</div>
<!-- <div
style="display: flex;justify-content: flex-end;padding: 18px 0;border-bottom: 1px solid #c0ccda">
<el-button type="primary" @click="addFirstAidCall()">新增救援情况</el-button>
</div> -->
<div class="emergency-condition" v-for="(item, index) in firstAidCallList" :key="index">
<div class="emergency-condition condition2" v-for="(item, index) in firstAidCallList" :key="index">
<div>
<div>
<span>处置人</span>
@ -245,7 +252,7 @@
<el-button type="primary" @click="isEditDisabled = false">全部提交</el-button>
</div> -->
</div>
<div v-if="firstAidCallDetail.dispositionStatus == 3">
<div class="case" v-if="firstAidCallDetail.dispositionStatus == 3">
<div class="emergency-title">处置报告</div>
<div class="emergency-condition" style="border-bottom: none;padding-right: 0px;">
<div style="justify-content: center;">
@ -254,7 +261,7 @@
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
</el-upload></div> -->
<div style="color: #5181f6; cursor: pointer;" @click="downloadReport(firstAidCallDetail)">
<div style="color: #5181f6; cursor: pointer;justify-content: center;" @click="downloadReport(firstAidCallDetail)">
下载处置报告
</div>
</div>
@ -266,7 +273,7 @@
<el-button type="primary" @click="onSubmitAll()">关闭事故</el-button>
</span>
</el-dialog>
<el-dialog title="" :visible.sync="dialogVisible" width="70%">
<el-dialog title="查看物资分布" :visible.sync="dialogVisible" width="70%">
<div id="map"></div>
</el-dialog>
<!-- 视频播放 -->
@ -304,6 +311,7 @@ import {
getEmergencyRecordEditApi,
getEmergencyRecordDeleteApi,
getEmergencyTypeListApi,
getEmergencyReliefListApi,
} from "@/assets/js/api/emergencyDisposal"
import { getCooperatorListApi } from "@/assets/js/api/cooperationUnit";
@ -330,13 +338,19 @@ export default {
player: '',
videoName: '',
emergencyData: [],
emergencyInfo:{},
emergencyInfo: {},
mapDataList: [],
mapsDetail: {},
mapDataList2: [],
infoWindow: null, //
positionData: [],
formInline: {
firemanName: '',
enterpriseId: '',
workTicketCode: "",
time: "",
alarmPersonName: "",
alarmTime: "",
},
formLabelWidthDetail: "270px",
detailData: {},
@ -417,6 +431,7 @@ export default {
this.getEnterpriseInfoList();
this.getEmergencyTypeList();
this.getEmergencyReliefList();
},
mounted() {
@ -430,8 +445,12 @@ export default {
},
methods: {
downloadReport(row) {
const url = row.disposalReport && JSON.parse(row.disposalReport)[0].url;
const fileName = row.disposalReport && JSON.parse(row.disposalReport)[0].name;
const url = row.disposalReport && row.disposalReport != "null" && JSON.parse(row.disposalReport)[0].url;
const fileName = row.disposalReport && row.disposalReport != "null" &&JSON.parse(row.disposalReport)[0].name;
if(!url){
this.$message.warning('暂无下载文件');
return
}
fetch(url)
.then(response => response.blob())
@ -470,20 +489,88 @@ export default {
}
})
},
getEmergencyReliefList() {
getEmergencyReliefListApi({
projectSn: this.projectSn,
}).then((res) => {
if (res.code) {
console.log(res.result, 1)
this.mapDataList = res.result;
// this.responsibilityList = res.result;
}
})
},
initMap() {
console.log(this.mapsDetail)
//
this.mapObj = new AMap.Map("map", {
resizeEnable: true,
zoom: 17, //
center: [this.mapsDetail.longitude ? this.mapsDetail.longitude : 0, this.mapsDetail.latitude ? this.mapsDetail.latitude : 0], //
});
const marker = new AMap.Marker({
zoom: 11, //
// position: [114.06,22.54], //
});
const markerArr = this.mapDataList.filter(item => item.longitude || item.latitude).map((item, index) => {
const longitude = item.longitude ? item.longitude : 0;
const latitude = item.latitude ? item.latitude : 0;
const normalMarker = new AMap.Marker({
icon: "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png",
// content:content,
position: new AMap.LngLat(longitude, latitude), // [116.39, 39.9]
title: item.goodsName,
offset: new AMap.Pixel(-15, (-15* (index + 1))),
})
console.log(item);
normalMarker.setLabel({
// offset: new AMap.Pixel(20, -10), //
content: item.goodsName, //
direction: 'top' //
});
normalMarker.content =
'<p><b>物资名称:</b>' + item.goodsName + '</p>' +
'<p><b>详细地址:</b>' + (item.detailedAddress ? item.detailedAddress : '') + '</p>' +
'<p><b>备注:</b>' + item.remark + '</p>';
normalMarker.on('click', this.markerClick);
normalMarker.setExtData({}); //
marker.setMap(this.mapObj);
return normalMarker;
})
const markerArr2 = [this.mapsDetail].filter(item => item.longitude || item.latitude).map((item, index) => {
const longitude = item.longitude ? item.longitude : 0;
const latitude = item.latitude ? item.latitude : 0;
const normalMarker = new AMap.Marker({
icon: "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-red.png",
// content: '<p><b></b>' + '' + '</p>',
position: new AMap.LngLat(longitude, latitude), // [116.39, 39.9]
title: item.goodsName,
offset: new AMap.Pixel((-15 * (index + 1)), -30),
})
console.log(item);
normalMarker.content =
'<p><b>报警姓名:</b>' + item.alarmPersonName + '</p>' +
'<p><b>类型:</b>' + item.emergencyTypeName + '</p>' +
'<p><b>详细地址:</b>' + (item.incidentSite ? item.incidentSite : '') + '</p>';
normalMarker.on('click', this.markerClick);
normalMarker.setExtData({}); //
return normalMarker;
})
this.positionData = markerArr.concat(markerArr2);
this.infoWindow = new AMap.InfoWindow({
offset: new AMap.Pixel(16, -50)
});
this.mapObj.add(this.positionData);
this.mapObj.setFitView();
console.log('!!!!!!!!!!!!!!!!!!!', this.mapObj);
},
markerClick(e) {
//
// this.map.setZoomAndCenter(8,e.target.getPosition()); //-/8
this.infoWindow.setContent(e.target.content);
this.infoWindow.open(this.mapObj, e.target.getPosition());
},
handleAvatarSuccess(res, file) {
this.form.loginLogo = this.$store.state.FILEURL + res.data[0].imageUrl
this.fileList = [{ name: '', url: this.form.loginLogo }]
@ -511,7 +598,8 @@ export default {
deleteFirstAidCall(index) {
this.firstAidCallList.splice(index, 1);
},
mapShow() {
mapShow(row) {
this.mapsDetail = row;
setTimeout(() => {
this.initMap();
}, 10)
@ -562,8 +650,8 @@ export default {
},
onRefresh() {
this.formInline.enterpriseId = "";
this.formInline.firemanName = "";
this.formInline.workTicketCode = "";
this.formInline.alarmPersonName = "";
this.formInline.alarmTime = "";
this.pageNo = 1;
this.initData();
@ -581,13 +669,16 @@ export default {
initData() {
// this.tableData = [{}]
let data = {
jobApplicationUnit: this.formInline.enterpriseId,
firemanName: this.formInline.firemanName,
workTicketCode: this.formInline.workTicketCode,
enterpriseId: this.formInline.enterpriseId,
alarmPersonName: this.formInline.alarmPersonName,
// alarmTime: this.formInline.alarmTime,
alarmTime_begin:(this.formInline.alarmTime && this.formInline.alarmTime.length > 0) ? this.formInline.alarmTime[0] : '',
alarmTime_end:(this.formInline.alarmTime && this.formInline.alarmTime.length > 0) ? this.formInline.alarmTime[1] :'',
pageNo: this.pageNo,
pageSize: this.pageSize,
projectSn: this.projectSn,
assignmentPersonInCharge: this.$store.state.userInfo.accountType == 6 ? this.$store.state.userInfo.userId : '',
inDispositionStatus:"2,3",
// assignmentPersonInCharge: this.$store.state.userInfo.accountType == 6 ? this.$store.state.userInfo.userId : '',
}
getEmergencyRecordPageApi(data).then((res) => {
if (res.result) {
@ -613,7 +704,7 @@ export default {
})
this.deleteDialog = false
},
handleSizeChange() {
handleSizeChange(e) {
this.pageSize = e;
this.initData()
},
@ -679,6 +770,15 @@ export default {
</script>
<style lang="less" scoped>
/deep/ .amap-marker-label {
border:none;
}
/deep/ .amap-icon img {
width: 30px;
height: 40px;
}
/deep/.el-dialog__footer {
text-align: center;
}
@ -726,17 +826,20 @@ export default {
span:last-child {
margin-top: 12px;
margin-left: 17px;
// margin-left: 17px;
}
}
}
.emergency-condition {
// border-bottom: 1px solid #c0ccda;
padding: 13px 109px 13px 10px;
background: #F1F1F1;
border-radius: 10px;
margin-top: 15px;
// padding: 13px 109px 13px 10px;
// background: #F1F1F1;
// border-radius: 10px;
// margin-top: 15px;
border-bottom: 1px solid #c0ccda;
padding-right: 20px;
position: relative;
}
.emergency-condition>div {
@ -750,11 +853,21 @@ export default {
div {
display: flex;
align-items: center;
justify-content: center;
// justify-content: center;
width: inherit;
span {
// span {
// flex: 1;
// }
}
>div {
width: 380px;
justify-content: flex-start;
div:last-child {
flex: 1;
justify-content: flex-start;
}
}
@ -800,6 +913,23 @@ export default {
margin-bottom: 0
}
}
.condition2 {
border-bottom: none;
padding: 13px 109px 13px 10px;
background: #F1F1F1;
border-radius: 10px;
margin-top: 15px;
}
.condition2:last-child {
margin-bottom: 15px;
}
.condition2>div {
margin: 8px;
}
}
.el-icon-s-order,
@ -1065,6 +1195,11 @@ export default {
}
}
.case {
/deep/ .el-image__inner {
width: initial;
}
}
.el-pagination {
display: flex;
justify-content: center;

View File

@ -22,7 +22,7 @@
<el-form-item>
<el-button type="primary" @click="onSubmit" plain>{{
$t('message.quality.inquire')
}}</el-button>
}}</el-button>
</el-form-item>
<el-form-item>
<el-button type="warning" @click="onRefresh" plain>刷新</el-button>
@ -44,6 +44,11 @@
{{ scope.row.goodsName }}
</template>
</el-table-column>
<el-table-column align="center" label="详细地址" show-overflow-tooltip>
<template slot-scope="scope">
{{ scope.row.detailedAddress }}
</template>
</el-table-column>
<el-table-column align="center" label="经纬度" prop="longitude" show-overflow-tooltip>
<template slot-scope="scope">
{{ scope.row.longitude }}<span v-if="scope.row.latitude && scope.row.longitude">,</span>{{
@ -54,6 +59,9 @@
<!-- 操作 -->
<el-table-column align="center" :label="$t('message.dangerousBigProject.operation')">
<template slot-scope="scope">
<el-button @click.native.prevent="editData(scope.row)" type="text" size="small">
<i class="el-icon-edit"></i> 编辑
</el-button>
<el-button @click.stop="deleteRow(scope.row)" type="text" size="small">
<i class="el-icon-delete"></i>
删除
@ -91,8 +99,11 @@
<el-input v-model="emergencyTypeDetail.goodsName" placeholder="请输入物资名称"></el-input>
</el-form-item>
<el-form-item label="经纬度:" :label-width="formLabelWidth" class="coord" prop="longitlatitude">
<el-input v-model="emergencyTypeDetail.longitlatitude" placeholder="请输入经纬度"></el-input>
<span style="margin-left: 8px;color:#9FB8F7;" @click="getCurrentPosition()">拾取经纬度</span>
<el-input disabled v-model="emergencyTypeDetail.longitlatitude" placeholder="请输入经纬度"></el-input>
<span style="margin-left: 8px;color:#5181f6;cursor: pointer;" @click="getCurrentPosition()">拾取经纬度</span>
</el-form-item>
<el-form-item label="详细地址:" :label-width="formLabelWidth" prop="longitlatitude">
<el-input disabled v-model="emergencyTypeDetail.detailedAddress" placeholder="请输入详细地址"></el-input>
</el-form-item>
<el-form-item label="备注:" :label-width="formLabelWidth">
<el-input v-model="emergencyTypeDetail.remark" type="textarea" placeholder="请输入"></el-input>
@ -120,6 +131,7 @@ import {
import {
getEmergencyReliefPageApi,
getEmergencyReliefAddApi,
getEmergencyReliefEditApi,
getEmergencyReliefDeleteApi
} from "@/assets/js/api/emergencyDisposal"
@ -143,6 +155,7 @@ export default {
goodsName: "",
longitlatitude: "",
remark: "",
detailedAddress:"",
},
formLabelWidth: "110px",
dialogVisible: false,
@ -260,6 +273,15 @@ export default {
},
mounted() {
},
watch: {
"dialogVisible": {
handler(newVal) {
if (!newVal) {
this.$refs['ruleForm'] && this.$refs['ruleForm'].resetFields()
}
},
},
},
methods: {
//
@ -293,24 +315,37 @@ export default {
// return
this.$refs[formName].validate((valid) => {
if (valid) {
getEmergencyReliefAddApi({
let obj = {
projectSn: this.projectSn,
detailedAddress: this.emergencyTypeDetail.detailedAddress,
goodsName: this.emergencyTypeDetail.goodsName,
longitude: this.emergencyTypeDetail.longitlatitude.split(',')[0],
latitude: this.emergencyTypeDetail.longitlatitude.split(',')[1],
remark: this.emergencyTypeDetail.remark,
}).then((res) => {
if (res.code) {
console.log(res.result, 1)
this.$message.success(res.message)
this.initData()
this.emergencyTypeDetail.goodsName = "";
this.emergencyTypeDetail.longitlatitude = "";
this.emergencyTypeDetail.remark = "";
this.dialogVisible = false;
// this.responsibilityList = res.result;
}
})
}
if (this.emergencyTypeDetail.title == '新增') {
getEmergencyReliefAddApi(obj).then((res) => {
if (res.code) {
console.log(res.result, 1)
this.$message.success(res.message)
this.initData()
this.dialogVisible = false;
// this.responsibilityList = res.result;
}
})
} else {
obj.id = this.emergencyTypeDetail.id;
getEmergencyReliefEditApi(obj).then((res) => {
if (res.code) {
console.log(res.result, 1)
this.$message.success(res.message)
this.initData()
this.dialogVisible = false;
// this.responsibilityList = res.result;
}
})
}
} else {
return false;
}
@ -319,10 +354,33 @@ export default {
},
//
getCurrentPosition() {
if (this.emergencyTypeDetail.id) {
this.addProjectForm.latitude = this.emergencyTypeDetail.latitude;
this.addProjectForm.longitude = this.emergencyTypeDetail.longitude;
} else {
this.addProjectForm.latitude = '';
this.addProjectForm.longitude = '';
}
this.showMap = true;
},
getLngLat(v) {
this.showMap = false
const _this = this;
this.showMap = false;
console.log(1111111111, v);
let position = parseFloat(v.lng)+ ',' + parseFloat(v.lat) //
var geocoder = new AMap.Geocoder({});
geocoder.getAddress(position, function (status, result) {
console.log(status, result);
if (status === 'complete' && result.regeocode) {
// console.log(result);
_this.emergencyTypeDetail.detailedAddress = result.regeocode.formattedAddress;
} else {
console.log('根据经纬度查询地址失败')
}
});
this.emergencyTypeDetail.longitlatitude = v.lng + ',' + v.lat;
},
closeMap(val) {
@ -346,9 +404,30 @@ export default {
},
addEmergencyType(row) {
this.emergencyTypeDetail.title = "新增";
this.emergencyTypeDetail.goodsName = "";
this.emergencyTypeDetail.longitlatitude = "";
this.emergencyTypeDetail.remark = "";
this.emergencyTypeDetail.id = "";
this.emergencyTypeDetail.detailedAddress = "";
this.dialogVisible = true;
},
editData(row) {
this.emergencyTypeDetail.title = "编辑";
console.log(111111111, row);
this.emergencyTypeDetail.goodsName = row.goodsName;
this.emergencyTypeDetail.longitlatitude = row.longitude + ',' + row.latitude;
this.emergencyTypeDetail.remark = row.remark;
this.emergencyTypeDetail.latitude = row.latitude;
this.emergencyTypeDetail.longitude = row.longitude;
this.emergencyTypeDetail.detailedAddress = row.detailedAddress;
this.emergencyTypeDetail.id = row.id;
// this.$refs['ruleForm'] && this.$refs['ruleForm'].resetFields()
this.dialogVisible = true;
},
onSubmit() {
this.pageNo = 1;
this.initData();
@ -412,7 +491,7 @@ export default {
<style lang="less" scoped>
.coord /deep/ .el-form-item__content {
display: flex;
justify-content: space-between;
justify-content: flex-start;
.el-input {
width: 75%;
@ -556,6 +635,10 @@ export default {
}
}
.el-icon-edit {
color: #5181f6;
}
.el-icon-delete {
color: #f56c6c;
}

View File

@ -348,6 +348,8 @@
v-model="enterpriseForm.bankcardnumber"
:placeholder="$t('message.laborMange.placeholder2')"
type="number"
@wheel.native.prevent
oninput ="value=value.replace(/[^0-9.]/g,'')"
></el-input>
</el-form-item>
</el-col>

View File

@ -650,7 +650,7 @@ export default {
{
name: '重大风险',
type: 'line',
stack: 'Total',
// stack: 'Total',
data: this.riskList.map(item => item.greatFaultLevelNum),
itemStyle: { //
color: 'rgba(255,0,0,1)',
@ -661,7 +661,7 @@ export default {
{
name: '较大风险',
type: 'line',
stack: 'Total',
// stack: 'Total',
data: this.riskList.map(item => item.largerRiskNum),
itemStyle: { //
color: 'rgba(255,153,1,1)',
@ -672,7 +672,7 @@ export default {
{
name: '一般风险',
type: 'line',
stack: 'Total',
// stack: 'Total',
data: this.riskList.map(item => item.generalRiskNum),
itemStyle: { //
color: 'rgba(255,255,2,1)',
@ -683,7 +683,7 @@ export default {
{
name: '低风险',
type: 'line',
stack: 'Total',
// stack: 'Total',
data: this.riskList.map(item => item.lowRiskNum),
itemStyle: { //
color: 'rgba(0,0,255,1)',

View File

@ -578,7 +578,7 @@ export default {
// 线
lineCharts(el) {
let ageChart = echarts.init(el);
console.log(this.riskList)
let option = {
tooltip: {
trigger: 'axis'
@ -645,7 +645,7 @@ export default {
{
name: '重大风险',
type: 'line',
stack: 'Total',
// stack: 'Total',
data: this.riskList.map(item => item.greatFaultLevelNum),
itemStyle: { //
color: 'rgba(255,0,0,1)',
@ -656,7 +656,7 @@ export default {
{
name: '较大风险',
type: 'line',
stack: 'Total',
// stack: 'Total',
data: this.riskList.map(item => item.largerRiskNum),
itemStyle: { //
color: 'rgba(255,153,1,1)',
@ -667,7 +667,7 @@ export default {
{
name: '一般风险',
type: 'line',
stack: 'Total',
// stack: 'Total',
data: this.riskList.map(item => item.generalRiskNum),
itemStyle: { //
color: 'rgba(255,255,2,1)',
@ -678,7 +678,7 @@ export default {
{
name: '低风险',
type: 'line',
stack: 'Total',
// stack: 'Total',
data: this.riskList.map(item => item.lowRiskNum),
itemStyle: { //
color: 'rgba(0,0,255,1)',

View File

@ -117,15 +117,15 @@
<div class="box-between1">
<div>人员扣分记录</div>
</div>
<div class="dialog-box2" v-for="item in deductScoreInfo.deductScoreList" :key="item.id">
<div>
<div>{{ deductScoreInfo.workerName }}</div>
<div>扣分分数: {{ item.deductScore }}</div>
<div class="dialog-main">
<div class="dialog-box2" v-for="item in deductScoreInfo.deductScoreList" :key="item.id">
<div>
<div>{{ deductScoreInfo.workerName }}</div>
<div>扣分分数: {{ item.deductScore }}</div>
</div>
<div>扣分原因{{ item.deductReason }}</div>
</div>
<div>扣分原因{{ item.deductReason }}</div>
</div>
<div style="position: relative;height: 50%;">
<div v-if="deductScoreInfo.deductScoreList.length == 0">
<div style="position: relative;height: 100%;" v-if="deductScoreInfo.deductScoreList.length == 0">
<div class="placeholderBox">
<img src="@/assets/images/noData.png" alt="" />
<p>暂无数据</p>
@ -398,7 +398,7 @@ export default {
{
name: '低风险',
type: 'line',
stack: 'Total',
// stack: 'Total',
data: this.statsEnterpriseList.map(item => item.lowRiskNum),
itemStyle: { //
color: '#FFE500',
@ -407,7 +407,7 @@ export default {
{
name: '中风险',
type: 'line',
stack: 'Total',
// stack: 'Total',
data: this.statsEnterpriseList.map(item => item.mediumRiskNum),
itemStyle: { //
color: '#FF9901',
@ -416,7 +416,7 @@ export default {
{
name: '高风险',
type: 'line',
stack: 'Total',
// stack: 'Total',
data: this.statsEnterpriseList.map(item => item.highRiskNum),
itemStyle: { //
color: '#FF0000',
@ -633,17 +633,23 @@ export default {
/deep/ .el-dialog__body {
padding-top: 10px;
height: 480px;
overflow: hidden
}
.dialog-main {
overflow-y: scroll;
height: 65%;
padding-bottom: 20px;
}
//
/deep/ .el-dialog__body::-webkit-scrollbar,
.dialog-main::-webkit-scrollbar,
/deep/ .el-tabs__content::-webkit-scrollbar {
width: 6px;
height: 6px;
}
/deep/ .el-dialog__body::-webkit-scrollbar-track,
.dialog-main::-webkit-scrollbar-track,
/deep/ .el-tabs__content::-webkit-scrollbar-track {
width: 6px;
background: rgba(#101F1C, 0.1);
@ -652,7 +658,7 @@ export default {
border-radius: 2em;
}
/deep/ .el-dialog__body::-webkit-scrollbar-thumb,
.dialog-main::-webkit-scrollbar-thumb,
/deep/ .el-tabs__content::-webkit-scrollbar-thumb {
background-color: rgba(144, 147, 153, .5);
background-clip: padding-box;
@ -664,7 +670,7 @@ export default {
cursor: pointer;
}
/deep/ .el-dialog__body::-webkit-scrollbar-thumb:hover,
.dialog-main::-webkit-scrollbar-thumb:hover,
/deep/ .el-tabs__content::-webkit-scrollbar-thumb:hover {
background-color: rgba(144, 147, 153, .3);
}