Browse Source

fix: 修复bug

sy-water-data-board-ui
panyuyi 10 months ago
parent
commit
5a927effd4
  1. 4
      src/assets/styles/space.scss
  2. 133
      src/views/components/SyMixMap.vue
  3. 7
      src/views/dike/runManage/enginerring/inspectionPlan/components/PlanDetail.vue
  4. 15
      src/views/dike/runManage/enginerring/inspectionPlan/index.vue
  5. 11
      src/views/dike/runManage/enginerring/inspectionRecords/components/NewRecord.vue
  6. 15
      src/views/dike/runManage/enginerring/inspectionRecords/components/RecordDetails.vue
  7. 36
      src/views/dike/runManage/enginerring/inspectionRecords/index.vue
  8. 10
      src/views/dike/runManage/enginerring/inspectionRouteManage/components/RouteDetail.vue

4
src/assets/styles/space.scss

@ -131,3 +131,7 @@
.w-360{
width: 360px !important;
}
.h-124{
height: 124px !important;
}

133
src/views/components/SyMixMap.vue

@ -67,8 +67,8 @@ export default {
},
canEdit: Boolean,
entries: {
type: Array,
default: () => [],
type: Object,
default: () => {},
},
},
data() {
@ -89,8 +89,8 @@ export default {
},
entries: {
handler(val) {
console.log('entries >>>>> ', val)
if (val && Array.isArray(val)) {
console.log('地图entries >>>>> ', val)
if (val) {
setTimeout(() => {
this.initEntries(val);
}, 100);
@ -175,59 +175,73 @@ export default {
},
// entries线
initEntries(entries){
console.log('initEntries >>>>> ', entries)
layer?.clear()
if(!layer){
layer = new sycim.EntityLayer('layer').addTo(viewer)
}
entries.forEach(item=>{
let graphicItem
if(item.type === 'billboard'){
graphicItem = new sycim.Billboard(item.position, `/icons/${item.icon}`);
graphicItem.setStyle({
canEdit: this.canEdit,
horizontalOrigin: sycim.HorizontalOrigin.CENTER,
verticalOrigin: sycim.VerticalOrigin.BOTTOM,
})
}else if(item.type === 'polyline'){
graphicItem = new sycim.Polyline(item.positions);
graphicItem.setStyle({
canEdit: this.canEdit,
width: 16,
clampToGround: true,
lineType: '1',
speed_s: 2,
horizontalOrigin: sycim.HorizontalOrigin.CENTER,
verticalOrigin: sycim.VerticalOrigin.BOTTOM,
//
if(Array.isArray(entries)) return
if(entries.viewpoint){
viewer.scene.camera.flyTo({
destination: entries.viewpoint.position,
orientation: {
heading: entries.viewpoint.heading,
pitch: entries.viewpoint.pitch,
roll: entries.viewpoint.roll,
},
duration: 2,
});
}
if(entries.graphicsList){
entries.graphicsList.forEach(item=>{
let graphicItem
if(item.type === 'billboard'){
graphicItem = new sycim.Billboard(item.position, `/icons/${item.icon}`);
graphicItem.setStyle({
canEdit: this.canEdit,
horizontalOrigin: sycim.HorizontalOrigin.CENTER,
verticalOrigin: sycim.VerticalOrigin.BOTTOM,
})
}else if(item.type === 'polyline'){
graphicItem = new sycim.Polyline(item.positions);
graphicItem.setStyle({
canEdit: this.canEdit,
width: 16,
clampToGround: true,
lineType: '1',
speed_s: 2,
horizontalOrigin: sycim.HorizontalOrigin.CENTER,
verticalOrigin: sycim.VerticalOrigin.BOTTOM,
material: new sycim.PolylineImageTrailMaterialProperty({
speed: 2,
image: `/icons/${item.icon}`,
repeat: {
x: 50,
y: 1
}
material: new sycim.PolylineImageTrailMaterialProperty({
speed: 2,
image: `/icons/${item.icon}`,
repeat: {
x: 50,
y: 1
}
})
})
})
}
if(graphicItem){
layer.addGraphic(graphicItem);
graphicsList.push({
id: graphicItem.id,
graphicId: graphicItem.graphicId,
type: item.type,
position: graphicItem.position,
positions: graphicItem.positions,
icon: item.icon,
});
viewerRemoveEventListener();
viewerAddEventListener();
// plot.edit(graphicItem, () => {
// graphicItem.setStyle({ noPushMid: true });
// });
}
}
if(graphicItem){
layer.addGraphic(graphicItem);
graphicsList.push({
id: graphicItem.id,
graphicId: graphicItem.graphicId,
type: item.type,
position: graphicItem.position,
positions: graphicItem.positions,
icon: item.icon,
});
viewerRemoveEventListener();
viewerAddEventListener();
// plot.edit(graphicItem, () => {
// graphicItem.setStyle({ noPushMid: true });
// });
}
})
})
}
},
// 线
@ -265,7 +279,6 @@ export default {
speed_s: 2,
horizontalOrigin: sycim.HorizontalOrigin.CENTER,
verticalOrigin: sycim.VerticalOrigin.BOTTOM,
material: new sycim.PolylineImageTrailMaterialProperty({
speed: 2,
image: `/icons/${iconName}`,
@ -277,7 +290,6 @@ export default {
})
}
if(graphicItem){
console.log('最终的graphicItem >>>>> ', graphicItem)
layer.addGraphic(graphicItem);
graphicsList.push({
graphicId: graphicItem.id,
@ -286,7 +298,6 @@ export default {
positions: graphicItem.positions,
icon: iconName,
});
console.log('graphicsList >>>>> ', graphicsList)
plot.edit(graphicItem, () => {
graphicItem.setStyle({ noPushMid: true });
viewerRemoveEventListener();
@ -301,8 +312,22 @@ export default {
// 线
submit(){
console.log('map -submit >>>>> ', graphicsList)
const position = viewer.camera.positionWC.clone() //
const heading = viewer.camera.heading //
const pitch = viewer.camera.pitch //
const roll = viewer.camera.roll //
plot?.stop()
return graphicsList || []
let data = {
//
viewpoint: {
position: position,
heading: heading,
pitch: pitch,
roll: roll,
},
graphicsList: graphicsList,
}
return data
},
reset(){
plot?.stop()

7
src/views/dike/runManage/enginerring/inspectionPlan/components/PlanDetail.vue

@ -170,7 +170,6 @@
:before-upload="beforeUpload"
:before-remove="beforeRemove"
accept=".docx,.doc,.pdf"
:limit="5"
:file-list="filesList"
>
<el-button size="small" type="primary">点击上传</el-button>
@ -438,7 +437,11 @@ export default {
//
beforeUpload(e) {
if (this.formData.files?.length >= 5) {
this.$message.warning("最多上传5份");
// this.$message.warning("5");
this.$message({
message: "最多上传5份",
type: "warning",
});
return false;
}
return true;

15
src/views/dike/runManage/enginerring/inspectionPlan/index.vue

@ -275,6 +275,15 @@ export default {
this.pageData.pageNum = 1;
this.getTableData();
},
getDikeTypeName(type) {
let name = "";
this.embankmentTypeOptions.forEach((element) => {
if (element.dictValue === type) {
name = element.dictLabel;
}
});
return name;
},
},
created() {
this.getDicts("embankment_type").then((response) => {
@ -405,7 +414,11 @@ export default {
</template>
</el-table-column>
<el-table-column prop="dikeName" align="center" label="堤防名称" />
<el-table-column prop="dikeType" align="center" label="堤防类型" />
<el-table-column prop="dikeType" align="center" label="堤防类型">
<template slot-scope="scope">
<span>{{ getDikeTypeName(scope.row.dikeType) }}</span>
</template>
</el-table-column>
<el-table-column prop="name" align="center" label="巡查计划名称" />
<el-table-column align="center" label="巡查计划类型">
<template slot-scope="scope">

11
src/views/dike/runManage/enginerring/inspectionRecords/components/NewRecord.vue

@ -184,7 +184,6 @@
:http-request="handleProblemImgUpload"
:before-upload="beforeProblemImgUpload"
accept=".png,.jpg,.jpeg,.gif"
:limit="3"
:file-list="filesList"
>
<el-button size="small" type="primary">上传照片</el-button>
@ -264,7 +263,7 @@ export default {
planId: [{ required: true, message: "请选择计划", trigger: "change" }],
},
filesList: [], //
entries: [],
entries: {},
filterText: "",
dutyHolderTypeOptions: [],
xcProjectList: [],
@ -357,7 +356,7 @@ export default {
this.formData.dutyHolderType = "";
this.formData.scope = "";
this.items = [];
this.entries = [];
this.entries = {};
this.checkTreeData = [];
this.currentItem = {};
@ -391,6 +390,7 @@ export default {
},
//
beforeProblemImgUpload(e) {
console.log("e >>>>> ", e);
if (this.currentItem.problemImages?.length >= 3) {
this.$message.warning("最多上传3张");
return false;
@ -430,7 +430,7 @@ export default {
this.formData.lineName = data.name;
this.formData.dutyHolderType = data.dutyHolderType;
this.dealXcProject(data.checkingDetail, items);
this.entries = data.entries ? JSON.parse(data.entries) : [];
this.entries = data.entries ? JSON.parse(data.entries) : {};
}
});
},
@ -701,7 +701,6 @@ export default {
this.$refs.syMapRef.reset();
this.subPlanDateArr = [];
this.xcDateArr = "";
this.entries = [];
this.checkTreeData = [];
this.currentItem = {};
@ -719,7 +718,7 @@ export default {
this.formData.dutyHolderType = "";
this.formData.scope = "";
this.items = [];
this.entries = [];
this.entries = {};
this.checkTreeData = [];
this.currentItem = {};
},

15
src/views/dike/runManage/enginerring/inspectionRecords/components/RecordDetails.vue

@ -105,11 +105,11 @@
<div class="mt-8">
<div class="">巡检图片</div>
<el-image
style="width: 152px; height: 92px"
v-for="url in item.problemImages"
:key="url"
:src="url"
class="mr-16 mb-16"
:preview-src-list="[url]"
class="mr-16 mb-16 w-240 h-124"
></el-image>
</div>
<div class="mt-8">
@ -140,7 +140,6 @@
:http-request="(e) => handleProblemImgUpload(e, item)"
:before-upload="(e) => beforeProblemImgUpload(e, item)"
accept=".png,.jpg,.jpeg,.gif"
:limit="3"
:file-list="filesList"
>
<el-button size="small">上传照片</el-button>
@ -153,7 +152,8 @@
v-for="url in item.handleImages"
:src="url"
:key="url"
class="mr-10 mb-10"
:preview-src-list="[url]"
class="mr-10 mb-10 w-240 h-124"
></el-image>
</div>
<div class="mt-10">
@ -172,7 +172,8 @@
v-for="url in item.handleImages"
:key="url"
:src="url"
class="mr-10 mb-10"
:preview-src-list="[url]"
class="mr-10 mb-10 w-240 h-124"
></el-image>
</div>
<div class="mt-8">
@ -222,7 +223,7 @@ export default {
labelMapData: {},
detailData: {},
treeData: [],
entries: [],
entries: {},
};
},
watch: {
@ -246,7 +247,7 @@ export default {
this.detailData.items.forEach((item) => {
item.partsName = this.labelMapData[item.parts.join(":")];
});
this.entries = res.data.entries ? JSON.parse(res.data.entries) : [];
this.entries = res.data.entries ? JSON.parse(res.data.entries) : {};
});
},
//

36
src/views/dike/runManage/enginerring/inspectionRecords/index.vue

@ -34,6 +34,7 @@ export default {
searchInput: "",
areasOptions: [],
projectTypeOptions: [],
xcTypeOptions: [],
dutyHolderTypeOptions: [],
paramsData: {
adcd: "",
@ -211,6 +212,7 @@ export default {
.then(() => {
let formData = this.$refs.recordRef.submit();
console.log("formData >>>>> ", formData);
// formData.status = "1";
updateRecordData(formData).then((res) => {
if (res) {
this.$message.success("处理成功");
@ -250,11 +252,21 @@ export default {
handleDownPDF() {
this.pdfDialogVisible = true;
},
getDictLabelName(type, dictListName) {
if (!this[dictListName]) return "";
return (
this[dictListName].find((item) => item.dictValue === type)?.dictLabel ||
""
);
},
},
created() {
this.getDicts("person_type").then((response) => {
this.dutyHolderTypeOptions = response.data;
});
this.getDicts("xs_classfy").then((response) => {
this.xcTypeOptions = response.data;
});
getDictMapData("df_xs_c_classfy").then((res) => {
this.mapLabelData = res?.data || {};
this.getTableData();
@ -376,8 +388,8 @@ export default {
placeholder="请选择"
>
<el-option label="全部" value=""> </el-option>
<el-option label="已处" value="1"> </el-option>
<el-option label="未处" value="0"> </el-option>
<el-option label="已处" value="1"> </el-option>
<el-option label="未处" value="0"> </el-option>
</el-select>
</div>
<div class="flex-1 flex justify-end search-item">
@ -428,16 +440,28 @@ export default {
</template>
</el-table-column>
<el-table-column prop="dikeName" align="center" label="堤防名称" />
<el-table-column prop="dikeType" align="center" label="堤防类型" />
<el-table-column prop="dikeType" align="center" label="堤防类型">
<template slot-scope="scope">
<span>{{
getDictLabelName(scope.row.dikeType, "projectTypeOptions")
}}</span>
</template>
</el-table-column>
<el-table-column prop="planName" align="center" label="巡查计划名称" />
<el-table-column prop="" align="center" label="巡查类型" />
<el-table-column prop="lineType" align="center" label="巡查类型">
<template slot-scope="scope">
<span>{{
getDictLabelName(scope.row.lineType, "xcTypeOptions")
}}</span>
</template>
</el-table-column>
<el-table-column
prop="subPlanName"
align="center"
label="巡查子项名称"
/>
<el-table-column prop="operatorName" align="center" label="巡查人" />
<el-table-column prop="createName" align="center" label="巡查人" />
<el-table-column
prop="startDate"
align="center"
@ -538,7 +562,7 @@ export default {
<el-button size="mini" @click="dialogVisible = false">取消</el-button>
<div style="float: right" v-if="currentRow.status === '0'">
<el-button size="mini" @click="handleStopXc" type="danger"
>结束巡查</el-button
>完成巡查</el-button
>
</div>
</div>

10
src/views/dike/runManage/enginerring/inspectionRouteManage/components/RouteDetail.vue

@ -18,7 +18,7 @@
filterable
reserve-keyword
:remote-method="handleGetRemoteDikeMethod"
@focus="handleGetRemoteDikeMethod"
@focus="handleGetRemoteDikeMethod('')"
@change="handleChangeDike"
v-model="formData.dikeName"
placeholder="请选择堤防"
@ -217,7 +217,7 @@ export default {
{ required: true, message: "请选择巡查项目", trigger: "change" },
],
},
entries: [],
entries: {},
filterText: "",
xcProjectList: [],
projectTypeOptions: [],
@ -276,10 +276,8 @@ export default {
getRunProjectList({
pageSize: 10,
pageNum: 1,
cv: {
name: "dikeName",
type: "like",
value: query,
data: {
dikeName: query,
},
}).then((res) => {
if (res) {

Loading…
Cancel
Save