完成详情

main
limingtao 11 months ago
parent 3fe27bf382
commit 11468b052e
  1. 15
      pages.json
  2. 677
      pages/investigation/complete.vue

@ -69,7 +69,7 @@
}
},
{
"path": "pages/investigation/task",
"path": "pages/investigation/complete",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "排查",
@ -78,7 +78,18 @@
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
},
{
"path": "pages/investigation/task",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "排查",
//
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "pages/governance/index",
"style": {

@ -0,0 +1,677 @@
<template>
<view id="page">
<view class="Width100 Box BorderBox">
<view class="Content BorderBox Width100">
<top-title :is-show-left="true" :title="'排查'" :rightWidth='120' class="custom_bg">
</top-title>
</view>
<view class="query-form">
<view class="tab">
<view class="tab-item" :class="tab === 1 ? 'active' : ''" @click='handleTabClick(1)'>
<text>基本信息和隐患</text>
</view>
<!-- <view class="tab-item" :class="tab === 2 ? 'active' : ''" @click='handleTabClick(2)'>
<text>正在办理</text>
<text class="number">{{ totalData.InGovernance }}</text>
</view> -->
<view class="tab-item" :class="tab === 3 ? 'active' : ''" @click='handleTabClick(3)'>
<text>任务流转过程</text>
</view>
</view>
</view>
<view v-if="tab === 1">
<view class="formBox">
<uni-forms :modelValue="formData" border>
<view class="label-box">
<view class="border"></view> 基本信息
</view>
<uni-forms-item label="隐患名称" class="border-top">
<view class="Height100 Flex Flex_end Flex_C_S-Center" style="line-height: 37px; ">
<view class="Height100">{{ name }}</view>
<view class="Height100"></view>
</view>
</uni-forms-item>
<uni-forms-item label="所属辖区">
<view class="Height100 Flex Flex_end Flex_C_S-Center" style="line-height: 37px; ">
<view class="Height100">{{ formData.xqname }}</view>
<view class="Height100"></view>
</view>
</uni-forms-item>
<uni-forms-item label="所属街道" class="border-bottom">
<view class="Height100 Flex Flex_end Flex_C_S-Center" style="line-height: 37px; ">
<view class="Height100">{{ formData.jdname }}</view>
<view class="Height100"></view>
</view>
</uni-forms-item>
<view class="label-box">
{{sectionName}}
</view>
<uni-forms-item label="道路类型" label-width="80">
<view class="Height100 Flex Flex_end Flex_C_S-Center" style="line-height: 37px; ">
<view class="Height100">{{ formData.roadType }}</view>
<view class="Height100"></view>
</view>
</uni-forms-item>
<uni-forms-item label="道路宽度" label-width="80">
<view class="Height100 Flex Flex_end Flex_C_S-Center" style="line-height: 37px; ">
<view class="Height100">{{ formData.roadWidth }}</view>
<view class="Height100"></view>
</view>
</uni-forms-item>
<uni-forms-item label="车道数" label-width="80">
<view class="Height100 Flex Flex_end Flex_C_S-Center" style="line-height: 37px; ">
<view class="Height100">{{ formData.laneCount }}</view>
<view class="Height100"></view>
</view>
</uni-forms-item>
<uni-forms-item label="路面结构">
<view class="Height100 Flex Flex_end Flex_C_S-Center" style="line-height: 37px; ">
<view class="Height100">{{ formData.roadStructure }}</view>
<view class="Height100"></view>
</view>
</uni-forms-item>
<uni-forms-item label="路侧防护">
<view class="Height100 Flex Flex_end Flex_C_S-Center" style="line-height: 37px; ">
<view class="Height100">{{ formData.sideProtec }}</view>
<view class="Height100"></view>
</view>
</uni-forms-item>
<uni-forms-item label="中央隔离">
<view class="Height100 Flex Flex_end Flex_C_S-Center" style="line-height: 37px; ">
<view class="Height100">{{ formData.centerSeparate }}</view>
<view class="Height100"></view>
</view>
</uni-forms-item>
<uni-forms-item label="设计时速" label-width="80">
<view class="Height100 Flex Flex_end Flex_C_S-Center" style="line-height: 37px; ">
<view class="Height100">{{ formData.designSpeed }}</view>
<view class="Height100">Km/h</view>
</view>
</uni-forms-item>
<uni-forms-item label="限速" label-width="80">
<view class="Height100 Flex Flex_end Flex_C_S-Center" style="line-height: 37px; ">
<view class="Height100">{{ formData.limitSpeed }}</view>
<view class="Height100">Km/h</view>
</view>
</uni-forms-item>
</uni-forms>
</view>
<view class="formBox">
<uni-forms :modelValue="formData" border>
<view class="label-box">
<view class="border"></view> 隐患项
</view>
<view v-for="(itemData,indexData) in reversedTroubleshootingData" :key="indexData">
<view style="margin-bottom:20rpx;font-size:28rpx">{{ indexData + 1 }}.
{{ itemData.length > 0 ? itemData[0].nname : '' }}
</view>
<view v-for="(item,index) in itemData" :key="index" :label="item.itemname"
v-show="item.extraConfigs">
<view style="padding: 5px 0px;font-size:28rpx">隐患({{index+1}}){{item.itemname}}</view>
<view class="investigation-item" v-for="(it, idx) in item.extraConfigs" :key="idx"
style="width: 96%; padding: 0">
<view class="detail-item" v-if="it.type === 'number' || it.type === '1'">
<uni-forms-item :label="it.name" label-width="450rpx"
style="display: flex; align-items: center">
<u-input :disabled="true" placeholder="- -" border="none"
v-model="it.standar" inputAlign="right" type="number">
<u-text :text="it.unit" slot="suffix" margin="0 3px 0 0"
type="tips"></u-text>
</u-input>
</uni-forms-item>
</view>
<view class="detail-item" v-else-if="it.type === 'text' || it.type === '2'">
<uni-forms-item :label="it.name" label-width="450rpx"
style="display: flex; align-items: center">
<u-input :disabled="true" placeholder="- -" border="none"
v-model="it.standar" inputAlign="right" />
</uni-forms-item>
</view>
<view class="detail-item" v-else-if="it.type === 'check' || it.type === '3'">
<uni-forms-item :label="it.name" label-width="450rpx"
style="display: flex; align-items: center">
<u-checkbox :disabled="true" v-model="it.standar"
:customStyle="{ justifyContent: 'space-between' }" :name="'sdfs'" />
</uni-forms-item>
</view>
<view class="detail-item" v-else-if="it.type === 'upload' || it.type === '4'">
<uni-forms-item :label="it.name" label-width="450rpx"
style="display: flex; align-items: start;flex-direction:column;">
<u-upload :disabled="true" :fileList="it.standar"
name="1"
:maxCount="10"></u-upload></uni-forms-item>
</view>
</view>
<view v-if="item.checkedSelect" style="margin-bottom: 30rpx;">
<view class="investigation-item" style="width: 96%; padding: 0">
<view class="detail-item">
<uni-forms-item label="隐患描述" label-position="top" label-width="200px" />
<u-textarea placeholder="- -" :disabled="true" border="none"
v-model="item.checkedSelect.hdDesc" style="margin-top: -20rpx;" />
</view>
</view>
<view class="investigation-item" style="width: 96%; padding: 0">
<view class="detail-item">
<uni-forms-item label="隐患图片" label-position="top" label-width="200px" />
<u-upload :fileList="item.checkedSelect.hdPic" :disabled="true" style="margin-top: -20rpx;"
name="1"
:maxCount="10"></u-upload>
</view>
</view>
<view class="investigation-item" style="width: 96%; padding: 0">
<view class="detail-item">
<uni-forms-item label="补充信息" label-position="top" label-width="200px" />
<u-textarea :disabled="true" placeholder="- -" border="none"
v-model="item.checkedSelect.hdInfo" style="margin-top: -20rpx;" />
</view>
</view>
</view>
</view>
</view>
</uni-forms>
</view>
</view>
</view>
</view>
</template>
<script>
import Tabbar from "../../components/tabbar.vue";
import TopTitle from "../../components/top-title";
import $ from "../../common/globalJs/globalJs";
export default {
//
components: {
TopTitle,
},
data() {
return {
tab: 1,
businessId: "",
name: "",
sectionName: '',
$: this.$,
boxHeight: 773,
formData: {},
investigationSelectList: [],
troubleshootingData: [],
checked: [],
investigationSelectList: [],
investigationSelectList: [],
hiddenDangerList: []
}
},
//
onLoad(e) {
this.boxHeight = uni.getSystemInfoSync().windowHeight;
if (e.id) {
this.businessId = e.id;
this.name = e.taskName
this.sectionName = e.sectionName
this.type = e.type;
this.getBaseData(e.id);
// this.getStreetCommunity()
}
},
computed: {
reversedTroubleshootingData() {
const array = Array.from({
length: this.investigationSelectList.length
}, (_, i) => []);
let nidname = this.investigationSelectList.length > 0 ? this.investigationSelectList[0].name : ''
let nx = 0
this.troubleshootingData.map(r => {
this.investigationSelectList.map(m => {
if (r.nid == m.nid) {
r.nname = m.name
if (r.nname == nidname) {
array[nx].push(r)
} else {
nidname = r.nname
nx++
array[nx].push(r)
}
}
})
})
console.log(array)
return array
}
},
onShow() {
},
//
methods: {
handleTabClick(tab) {
this.tab = tab;
// this.getList()
},
initTroubleshootingData(id, index) {
this.troubleshootingData[index].extraConfigs = []
this.$request
.globalRequest(
"/hiddenDanger/highDanger/getImportDangerDisplayDetail", {
dangerId: id,
businessId: this.businessId,
},
"GET"
)
.then((res) => {
if (res.code == 200) {
// res.result=[{type:4,standar:'https://img-cdn-tx.dcloud.net.cn/stream/plugin_screens/map-plugin_0.jpg?&v=1630404859'}]
for(let item of res.result){
if(item.type==4){
let arr=item.standar.split(',')
let hdPic=[]
for(let it of arr){
if(it){
hdPic.push({url:it})
}
}
item.standar=hdPic
}
}
this.troubleshootingData[index].extraConfigs.push(...res.result)
console.log(this.troubleshootingData[index].extraConfigs,11111)
}
if (this.checked.length - 1 == index) {
// alert(1111)
this.initCheckedSelect(index)
}
});
// this.$request.globalRequest('/hiddenDanger/highDanger/getImportDangers', {}, 'GET').then(res => {
// if (res.code == 200) {
// this.investigationList = res.result
// }
// })
},
initCheckedSelect() {
this.$request
.globalRequest(
"/hiddenDanger/highDanger/getUserHiddenDangerList", {
nuserid: this.$.getData("token"),
pcType: 1,
businessId: this.businessId
},
"GET"
)
.then((res) => {
if (res.code === 200) {
this.hiddenDangerList.push(...res.result)
for (let i in this.troubleshootingData) {
for (let j in res.result) {
if (this.troubleshootingData[i].id == res.result[j].hdTerm) {
let arr=res.result[j].hdPic.split(',')
let hdPic=[]
for(let item of arr){
if(item){
hdPic.push({url:item})
}
}
this.$set(this.troubleshootingData[i], "checkedSelect", {
hdInfo: res.result[j].hdInfo,
hdPic: hdPic,
hdDesc: res.result[j].hdDesc,
hdTerm: res.result[j].hdTerm,
pcType: 1
})
}
}
}
}
});
},
getBaseData(businessId) {
this.$request
.globalRequest(
"/hiddenDanger/highDanger/getSectionInfo", {
nuserid: this.$.getData("token"),
businessId
},
"GET"
)
.then((res) => {
if (res.code === 200) {
for (let k in res.result) {
if (res.result[k] == 0) {
res.result[k] = ""
}
}
this.formData = {
...this.formData,
...res.result
};
}
});
// return false
this.$request
.globalRequest(
"/hiddenDanger/highDanger/getSectionTraffic", {
nuserid: this.$.getData("token"),
businessId
},
"GET"
)
.then((res) => {
if (res.code === 200) {
// todo
this.formData = {
...this.formData,
...res.result
};
}
});
this.$request
.globalRequest(
"/hiddenDanger/highDanger/getImportDangerDisplay", {
sid: "02",
businessId
},
"GET"
)
.then((res) => {
if (res.code === 200) {
// todo
for (let items of res.result) {
for (let item of items.dangerItems) {
item.nid = items.nid
}
}
// console.log(res.result,11111)
this.investigationSelectList = res.result;
this.investigationSelectList.map((r) => {
this.troubleshootingData = [...this.troubleshootingData, ...r.dangerItems]
});
// console.log(this.troubleshootingData, 11111)
this.checked = this.troubleshootingData.map(r => {
if (r.checked == 1) {
return r.id
}
})
this.checked = this.checked.filter(item => item !== undefined);
for (let i in this.troubleshootingData) {
if (this.troubleshootingData[i].checked == 1) {
// alert(111)
this.initTroubleshootingData(this.troubleshootingData[i].id, i)
}
}
// console.log(this.troubleshootingData)
// this.$request
// .globalRequest(
// "/hiddenDanger/highDanger/getImportDangerDisplayDetail", {
// nuserid: this.$.getData("token"),
// businessId,
// dangerId: '26'
// },
// "GET"
// )
// .then((res) => {
// if (res.code === 200) {
// this.investigationSelectList.map((r) => {
// r.extraConfigs = [];
// res.result.map((m) => {
// if (r.nid == m.scenesId) {
// r.extraConfigs.push(m);
// }
// });
// });
// }
// });
}
});
this.$request
.globalRequest(
"/hiddenDanger/highDanger/getImportDangers", {
nuserid: this.$.getData("token"),
businessId
},
"GET"
)
.then((res) => {
if (res.code === 200) {
this.investigationList = res.result;
}
});
this.$request
.globalRequest(
"/hiddenDanger/highDanger/getUserHiddenDangerList", {
// nuserid: this.$.getData("token"),
pcType: 2,
businessId
},
"GET"
)
.then((res) => {
if (res.code === 200) {
this.hiddenDangerList.push(...res.result)
}
});
this.$request
.globalRequest(
"/hiddenDanger/highDanger/getDangerItems", {
nuserid: this.$.getData("token"),
businessId
},
"GET"
)
.then((res) => {
if (res.code === 200) {
this.problemTreeSelectConfirmList = res.result;
}
});
},
},
onReady() {},
//
onUnload() {
},
}
</script>
<style>
</style>
<style lang="scss" scoped>
page {
background: #F6F8FA;
}
.query-form {
font-size: 16px;
height: 44px;
background: #ffffff;
box-shadow: 3px 0px 10px #ccc;
color: #666666;
position: sticky;
// top: var(--status-bar-height + 88rpx);
top: calc(var(--status-bar-height) + 88rpx);
z-index: 10;
.tab {
display: flex;
align-items: center;
justify-content: space-around;
.tab-item {
position: relative;
height: 41px;
line-height: 41px;
padding: 0 30rpx 0 30rpx;
border-bottom: 3px solid #fff;
display: flex;
align-items: center;
&.active {
color: rgb(60, 109, 195);
border-color: rgb(60, 109, 195);
}
.number {
font-weight: bold;
font-size: 18px;
margin-left: 10rpx;
}
}
}
.search-box {
padding: 10px 10px 3px;
}
}
.formBox {
margin: 30rpx 20rpx;
border: 1px solid #e6e6e6;
background: #ffffff;
padding: 0 20rpx 20rpx;
box-sizing: border-box;
/deep/ .uni-forms-item--border .uni-forms-item__content {
justify-content: flex-end;
text-align: right;
}
.photo {
width: 100%;
image {
width: 100%;
}
}
}
.Box {
padding-top: var(--status-bar-height);
.Content {
width: calc(100% - 48rpx);
padding-bottom: 88rpx;
}
.Unit {
padding: 12rpx;
display: flex;
justify-content: space-between;
align-items: center;
position: relative;
box-shadow: 1px 1px 3px #ccc;
.trapezoidal {
position: absolute;
top: -0px;
right: 0px;
color: #ffffff;
font-size: 22rpx;
font-weight: normal;
z-index: 1;
}
image {
width: 200rpx;
}
.right {
flex: 1;
padding-left: 30rpx;
.title {
font-size: 16px;
width: 380rpx;
min-height: 80rpx;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.type {
font-size: 14px;
color: #666;
font-weight: normal;
text {
margin-right: 20rpx;
}
}
}
}
}
.label-box {
display: flex;
align-items: center;
height: 110rpx;
font-size: 30rpx;
font-weight: 600;
.border {
background-color: #2663BF;
height: 35rpx;
width: 6rpx;
margin-right: 14rpx;
}
}
.label-box2 {
height: 100rpx;
}
.label-box-small {
font-size: 28rpx;
margin-top: -25rpx;
font-weight: 500;
}
.border-bottom {
border-bottom: 1px #eee solid;
}
.border-top {
border-top: 1px #eee solid;
}
/deep/ .uni-forms-item__label {
font-size: 28rpx;
height: auto;
margin-bottom: 20rpx;
}
/deep/ .u-input {
background-color: #ffffff !important;
}
</style>
Loading…
Cancel
Save