|
|
@ -45,27 +45,38 @@ |
|
|
|
<div class="project-progress-tip">处理进展</div> |
|
|
|
<el-timeline> |
|
|
|
<el-timeline-item |
|
|
|
v-for="(activity, index) in dataForm.handleProgressResultDTOS" |
|
|
|
:key="index" |
|
|
|
:icon="activity.icon" |
|
|
|
:type="activity.type" |
|
|
|
:color="index === 0 ? 'green' : activity.itemDeptDTOS.length > 0 ? 'red' : '#ccc'" |
|
|
|
:size="activity.size"> |
|
|
|
<div style="line-height: 25px;"> |
|
|
|
<div v-if="activity.itemDeptDTOS.length > 0">{{activity.createdTime}} <span style="font-weight: bold;color: #606266">{{ '【吹哨】' }}</span></div> |
|
|
|
<div v-else-if="activity.itemDeptDTOS.length <= 0 && activity.progressName !== '【审核通过】'">{{activity.createdTime}} <span style="font-weight: bold;color: #606266">{{ '【回应】' }}</span></div> |
|
|
|
<div v-else>{{activity.createdTime}} <span style="font-weight: bold;color: #606266">{{activity.progressName}}</span></div> |
|
|
|
<div>处理部门: {{activity.handlerDept}}</div> |
|
|
|
<div v-if="activity.itemDeptDTOS.length > 0" style="width: 100%; display: flex;"> |
|
|
|
<div>吹哨部门:</div> |
|
|
|
v-for="(item, index) in timeLineList" |
|
|
|
:key="item.id" |
|
|
|
:color="item.type === 'init' ? 'red' : item.type === 'project' ? '#009688' : '#ffa546'"> |
|
|
|
<div :id="`content${index}`" style="line-height:25px; "> |
|
|
|
<div |
|
|
|
:style="{ marginBottom: '10px', width: '35px', height: '20px', fontSize: '12px', borderRadius: '4px', background: item.type === 'project' ? '#009688': item.type === 'issue' || item.type === 'issue-project' ? '#ffa546' : '', color: '#fff', textAlign: 'center', lineHeight: '20px'}" |
|
|
|
v-if="item.type !== 'init'"> |
|
|
|
{{item.type === 'project' ? '项目': item.type === 'issue' || item.type === 'issue-project' ? '议题' : ''}} |
|
|
|
</div> |
|
|
|
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">[{{item | formatState}}]</span> {{item.createdTime}}</div> |
|
|
|
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">处理部门:</span>{{item.handlerDept}}</div> |
|
|
|
<div v-if="item.itemDeptDTOS && item.itemDeptDTOS.length > 0" style="width: 100%; display: flex;"> |
|
|
|
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">吹哨部门:</span> </div> |
|
|
|
<div> |
|
|
|
<span v-for="(csDept, index1) in activity.itemDeptDTOS" :key="index1" :size="csDept.size"> |
|
|
|
<span v-for="(csDept, index1) in item.itemDeptDTOS" :key="index1"> |
|
|
|
{{ csDept.deptName }}<br/> |
|
|
|
</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div>处理意见: {{activity.advice}}</div> |
|
|
|
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">处理意见:</span> {{item.advice}}</div> |
|
|
|
<div style="display: flex;"> |
|
|
|
<el-image v-for="url in item.images" |
|
|
|
style="width: 60px; height: 60px; object-fit: cover; margin-right: 8px; border-radius: 2px;" |
|
|
|
:key="url" |
|
|
|
:src="url" |
|
|
|
:preview-src-list="previewImgList" |
|
|
|
alt="处理图片" |
|
|
|
@click="clickImg(url)"> |
|
|
|
</el-image> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
</el-timeline-item> |
|
|
|
</el-timeline> |
|
|
|
</div> |
|
|
@ -163,6 +174,7 @@ export default { |
|
|
|
images: [], |
|
|
|
issueAddress: '', |
|
|
|
handleProgressResultDTOS: [], |
|
|
|
issueProgressResultDTOS: [], |
|
|
|
handleResultDTOS: [], |
|
|
|
deptResultDTOS: [], |
|
|
|
evaluateDeptDTOS: [], |
|
|
@ -174,6 +186,10 @@ export default { |
|
|
|
}, |
|
|
|
previewImgList: [], |
|
|
|
deptResult: [], |
|
|
|
commentsDTOs: [], |
|
|
|
pageIndex: 0, |
|
|
|
limitVal: 10, |
|
|
|
total: null, |
|
|
|
postDataForm: { |
|
|
|
id: '', |
|
|
|
handleAdvice: '', |
|
|
@ -183,13 +199,39 @@ export default { |
|
|
|
evaluateDeptDTOS: [] |
|
|
|
}, |
|
|
|
deptResultDTOSVisible: false, |
|
|
|
evaluateDeptDTOSVisible: false |
|
|
|
evaluateDeptDTOSVisible: false, |
|
|
|
timeLineList: [] |
|
|
|
} |
|
|
|
}, |
|
|
|
mounted () { |
|
|
|
this.dataForm.id = this.$route.query.id |
|
|
|
this.init() |
|
|
|
}, |
|
|
|
filters: { |
|
|
|
formatState (item) { |
|
|
|
if (item.type === 'project') { |
|
|
|
if (item.state === 0 && item.itemDeptDTOS.length > 0) { |
|
|
|
return '吹哨' |
|
|
|
} else if (item.state === 0 && item.itemDeptDTOS.length === 0) { |
|
|
|
return '回应' |
|
|
|
} else if (item.state === 5) { |
|
|
|
return '关闭' |
|
|
|
} else if (item.state === 10) { |
|
|
|
return '结案' |
|
|
|
} |
|
|
|
} else if (item.type === 'issue' || item.type === 'init') { |
|
|
|
if (item.state === 0) { |
|
|
|
return '审核通过' |
|
|
|
} else if (item.state === 1) { |
|
|
|
return '回应' |
|
|
|
} else if (item.state === 2) { |
|
|
|
return '关闭' |
|
|
|
} |
|
|
|
} else if (item.type === 'issue-project') { |
|
|
|
return '转项目' |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
dataRule () { |
|
|
|
return { |
|
|
@ -278,6 +320,33 @@ export default { |
|
|
|
...this.dataForm, |
|
|
|
...res.data |
|
|
|
} |
|
|
|
this.dataForm.handleProgressResultDTOS.forEach((item, index, arr) => { |
|
|
|
if (index === arr.length - 1) { |
|
|
|
item.type = 'issue-project' |
|
|
|
} else { |
|
|
|
item.type = 'project' |
|
|
|
} |
|
|
|
}) |
|
|
|
this.dataForm.issueProgressResultDTOS.forEach((item, index, arr) => { |
|
|
|
if (index === arr.length - 1) { |
|
|
|
item.type = 'init' |
|
|
|
} else { |
|
|
|
item.type = 'issue' |
|
|
|
} |
|
|
|
}) |
|
|
|
this.timeLineList = [...this.dataForm.handleProgressResultDTOS, ...this.dataForm.issueProgressResultDTOS] |
|
|
|
this.$nextTick(() => { |
|
|
|
this.timeLineList.forEach((item, index) => { |
|
|
|
const oDiv = document.getElementById(`content${index}`) |
|
|
|
const oBorder = oDiv.parentNode.parentNode.parentNode.firstChild |
|
|
|
console.log(111) |
|
|
|
if (item.type === 'issue' || item.type === 'issue-project') { |
|
|
|
oBorder.style.borderLeft = '1px solid #ffa546' |
|
|
|
} else if (item.type === 'project') { |
|
|
|
oBorder.style.borderLeft = '1px solid #009688' |
|
|
|
} |
|
|
|
}) |
|
|
|
}) |
|
|
|
this.initBmap(this.dataForm.issueLatitude, this.dataForm.issueLongitude) |
|
|
|
for (let index = 0; index < res.data.handleResultDTOS.length; index++) { |
|
|
|
const handleResultDTO = res.data.handleResultDTOS[index] |
|
|
|