Browse Source

事件管理-项目详情中添加项目来源弹框

feature
mk 3 years ago
parent
commit
2bbb53ce1a
  1. 4
      src/views/modules/shequzhili/event/cpts/event-detail.vue
  2. 1
      src/views/modules/shequzhili/event/cpts/event-info.vue
  3. 126
      src/views/modules/shequzhili/issue/cptsAudit/eventDetail.vue
  4. 572
      src/views/modules/shequzhili/xiangmu/cpts/project-info.vue

4
src/views/modules/shequzhili/event/cpts/event-detail.vue

@ -140,7 +140,7 @@
]"
>
<span class="u-info-title-2">已立项</span>
<div class="line" @click="handleToProject">查看项目</div>
<div class="line" @click="handleToProject"><i class="el-icon-view"></i> 查看项目</div>
</div>
<div
v-if="info.operationType === '2'"
@ -150,7 +150,7 @@
]"
>
<span class="u-info-title-2">已转需求</span>
<div class="line" @click="handleToDemand">查看需求</div>
<div class="line" @click="handleToDemand"><i class="el-icon-view"></i>查看需求</div>
</div>
<div
v-if="info.operationType === '3'"

1
src/views/modules/shequzhili/event/cpts/event-info.vue

@ -265,6 +265,7 @@
:source="source"
:sourceType="sourceType"
:type="projectPageType"
:eventId="eventId"
:projectId="eventDetailCopy.operationId"
@close="handleCloseProject"
@afterEdit="handleCloseProject"

126
src/views/modules/shequzhili/issue/cptsAudit/eventDetail.vue

@ -1,140 +1,137 @@
<template>
<div class="epidemic-form">
<div class="dialog-h-content scroll-h">
<div v-if="initLoading"
class="m-detail-main">
<div v-if="initLoading" class="m-detail-main">
<div class="m-info">
<div class="m-info-prop">
<span class="u-info-title-2">所属网格</span>
<span>{{ eventDetailData.gridName||'--' }}</span>
<span>{{ eventDetailData.gridName || "--" }}</span>
</div>
<div class="m-info-prop">
<span class="u-info-title-2">发生时间</span>
<span>{{ eventDetailData.happenTime||'--' }}</span>
<span>{{ eventDetailData.happenTime || "--" }}</span>
</div>
<div class="m-info-prop">
<span class="u-info-title-2">事件内容</span>
<span>{{ eventDetailData.eventContent||'--' }}</span>
<span>{{ eventDetailData.eventContent || "--" }}</span>
</div>
<div class="m-info-prop"
v-if="eventDetailData.imageList&&eventDetailData.imageList.length>0">
<div
class="m-info-prop"
v-if="
eventDetailData.imageList && eventDetailData.imageList.length > 0
"
>
<span class="u-info-title-2">图片</span>
<div class="m-info-pics">
<img v-for="(item,index) in eventDetailData.imageList"
<img
v-for="(item, index) in eventDetailData.imageList"
style="width: 80px; height: 80px"
:key="index"
:src="item"
@click="watchImg(item)">
@click="watchImg(item)"
/>
</div>
</div>
<div class="m-info-prop"
v-if="eventDetailData.voiceList&&eventDetailData.voiceList.length>0">
<div
class="m-info-prop"
v-if="
eventDetailData.voiceList && eventDetailData.voiceList.length > 0
"
>
<span class="u-info-title-2">音频</span>
<audio controls>
<source :src="item.url"
<source
:src="item.url"
type=""
:key="item.url"
v-for="item in eventDetailData.voiceList" />
v-for="item in eventDetailData.voiceList"
/>
</audio>
</div>
<div class="m-info-prop">
<span class="u-info-title-2">反映渠道</span>
<span>{{ eventDetailData.sourceTypeName||'--' }}</span>
<span>{{ eventDetailData.sourceTypeName || "--" }}</span>
</div>
<div class="m-info-prop">
<span class="u-info-title-2">地址</span>
<span>{{ eventDetailData.address||'--' }}</span>
<span>{{ eventDetailData.address || "--" }}</span>
</div>
<div class="m-info-prop">
<span class="u-info-title-2">报事人</span>
<span>{{ eventDetailData.name||'--' }}</span>
<span>{{ eventDetailData.name || "--" }}</span>
</div>
<div class="m-info-prop">
<span class="u-info-title-2">联系电话</span>
<span>{{ eventDetailData.mobile||'--' }}</span>
<span>{{ eventDetailData.mobile || "--" }}</span>
</div>
<div class="m-info-prop">
<span class="u-info-title-2">证件号</span>
<span>{{ eventDetailData.idCard||'--' }}</span>
<span>{{ eventDetailData.idCard || "--" }}</span>
</div>
<div class="m-info-prop">
<span class="u-info-title-2">痛点难点</span>
<span>{{ eventDetailData.difficultPointName||'--' }}</span>
<span>{{ eventDetailData.difficultPointName || "--" }}</span>
</div>
<div v-if="eventDetailData.satisfactionName"
class="m-info-prop">
<div v-if="eventDetailData.satisfactionName" class="m-info-prop">
<span class="u-info-title-2">满意度</span>
<span>{{ eventDetailData.satisfactionName||'--' }}</span>
<span>{{ eventDetailData.satisfactionName || "--" }}</span>
</div>
</div>
</div>
</div>
<div class="div-btn">
<el-button size="small"
@click="handleCancle"> </el-button>
<!-- <el-button v-if="formType != 'detail'"
size="small"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button> -->
</div>
<el-row type="flex">
<el-col :span="24" align="right">
<el-button size="small" @click="handleCancle" style="margin-right: 16px"> </el-button></el-col
>
</el-row>
</div>
</template>
<script>
import { Loading } from 'element-ui' // Loading
import { requestPost } from '@/js/dai/request'
import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request";
import dateFormat from "dai-js/tools/dateFormat";
let loading //
let loading; //
export default {
data() {
return {
initLoading: false,
eventId: '',
eventId: "",
eventDetailData: {},
voiceList: [],
}
};
},
components: {},
async mounted() {
const { user } = this.$store.state
this.agencyId = user.agencyId
const { user } = this.$store.state;
this.agencyId = user.agencyId;
},
methods: {
async initForm(eventId) {
this.startLoading()
this.eventId = eventId
await this.loadForm()
this.initLoading = true
this.endLoading()
this.startLoading();
this.eventId = eventId;
await this.loadForm();
this.initLoading = true;
this.endLoading();
},
async loadForm() {
const url = "/governance/icEvent/detail";
const { data, code, msg } = await requestPost(url, {
@ -142,9 +139,7 @@ export default {
});
if (code === 0) {
this.eventDetailData = { ...data };
} else {
this.$message.error(msg);
}
@ -152,8 +147,7 @@ export default {
handleCancle() {
// this.resetData()
this.$emit('diaDetailClose')
this.$emit("diaDetailClose");
},
watchImg(src) {
@ -161,36 +155,32 @@ export default {
},
resetData() {
this.eventDetailData = {}
this.eventDetailData = {};
},
//
startLoading() {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
text: "正在加载……", //
background: "rgba(0,0,0,.7)", //
});
},
//
endLoading() {
// clearTimeout(timer);
if (loading) {
loading.close()
}
loading.close();
}
},
computed: {
},
computed: {},
props: {
// serviceList: {
// type: Array,
// default: []
// },
}
}
},
};
</script>

572
src/views/modules/shequzhili/xiangmu/cpts/project-info.vue

@ -1,85 +1,136 @@
<template>
<div class="">
<div class="g-page"
v-show="pageType == 'info'">
<div class="g-page" v-show="pageType == 'info'">
<div class="g-left">
<el-card :class="{'box-card':source==='visiual'}"
style="overflow: auto">
<el-card
:class="{ 'box-card': source === 'visiual' }"
style="overflow: auto"
>
<h3 v-if="source === 'manage'">项目详情</h3>
<div class="m-info">
<div :class="['m-info-prop',{'m-info-prop-vis':source==='visiual'}]">
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">项目标题</span>
<span>{{ projectInfo.projectTitle }}</span>
</div>
<div :class="['m-info-prop',{'m-info-prop-vis':source==='visiual'}]">
<span class="u-info-title-2">项目背景</span>
<span>{{ projectInfo.backGround || "--" }}</span>
<a style="cursor: pointer"
@click="handleWatchOrigin">查看项目来源</a>
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">项目来源</span>
<!-- <span>{{ projectInfo.backGround || "--" }}</span> -->
<el-button type="text" @click="handleWatchOrigin"
><i class="el-icon-view"></i> 项目来源</el-button
>
</div>
<div :class="['m-info-prop',{'m-info-prop-vis':source==='visiual'}]">
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">项目方案</span>
<span>{{ projectInfo.publicReply }}</span>
</div>
<div :class="['m-info-prop',{'m-info-prop-vis':source==='visiual'}]">
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">内部备注</span>
<span>{{ projectInfo.internalRemark || "--" }}</span>
</div>
<div :class="['m-info-prop',{'m-info-prop-vis':source==='visiual'}]"
v-if="projectInfo.departmentList.length > 0">
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
v-if="projectInfo.departmentList.length > 0"
>
<span class="u-info-title-2">当前处理部门</span>
<div class="div_depart">
<div v-for="(item,index) in projectInfo.departmentList"
<div
v-for="(item, index) in projectInfo.departmentList"
:key="index"
class="div_depart">
<span>{{item.departmentName+'('+ item.staffList.join("、")+')' }}</span>
class="div_depart"
>
<span>{{
item.departmentName +
"(" +
item.staffList.join("、") +
")"
}}</span>
</div>
</div>
</div>
<div :class="['m-info-prop',{'m-info-prop-vis':source==='visiual'}]"
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
v-if="
projectInfo.origin == 'issue' ||
projectInfo.origin == 'resi_event'
">
"
>
<span class="u-info-title-2">项目来源</span>
<a style="cursor: pointer"
@click="handleWatchOrigin">查看项目来源</a>
<el-button type="text" @click="handleWatchOrigin"
> <i class="el-icon-view"></i> 查看项目来源</el-button
>
</div>
<div :class="['m-info-prop',{'m-info-prop-vis':source==='visiual'}]"
v-if="projectInfo.projectStatus == 'closed'">
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
v-if="projectInfo.projectStatus == 'closed'"
>
<span class="u-info-title-2">项目评价</span>
<a style="cursor: pointer"
@click="showedEvaluation = true">查看项目评价</a>
<el-button type="text" @click="showedEvaluation = true"
><i class="el-icon-view"></i> 查看项目评价</el-button
>
</div>
<div :class="['m-info-prop',{'m-info-prop-vis':source==='visiual'}]">
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">分类</span>
<fold-text v-if="projectCate.length > 0"
<fold-text
v-if="projectCate.length > 0"
style="width: 250px"
:row="3">
<div :key="item.name"
v-for="item in projectCate">
:row="3"
>
<div :key="item.name" v-for="item in projectCate">
{{ item.name }}
</div>
</fold-text>
<span style="width: 250px"
v-else>--</span>
<span style="width: 250px" v-else>--</span>
<el-popover v-if="projectInfo.projectStatus == 'pending'"
<el-popover
v-if="projectInfo.projectStatus == 'pending'"
placement="bottom"
width="400"
height="400"
v-model="visibleCatePanel">
<div class="f"
style="min-height: 120px">
v-model="visibleCatePanel"
>
<div class="f" style="min-height: 120px">
<h2>更改分类</h2>
<el-cascader v-model="selectedCateData"
<el-cascader
v-model="selectedCateData"
:options="cateOptions"
:props="{
multiple: true,
@ -87,159 +138,204 @@
value: 'id',
children: 'subCategory',
}"
clearable></el-cascader>
<el-button style="margin-left: 10px"
clearable
></el-cascader>
<el-button
style="margin-left: 10px"
size="small"
type="danger"
@click="updateProjectCate">确定</el-button>
@click="updateProjectCate"
>确定</el-button
>
</div>
<div slot="reference">
<el-button v-if="source==='manage'"
size="small"
type="">更改</el-button>
<el-button v-if="source === 'manage'" size="small" type=""
>更改</el-button
>
<div v-else
class="one-btn">更改</div>
<div v-else class="one-btn">更改</div>
</div>
</el-popover>
</div>
<div :class="['m-info-prop',{'m-info-prop-vis':source==='visiual'}]">
<div
:class="[
'm-info-prop',
{ 'm-info-prop-vis': source === 'visiual' },
]"
>
<span class="u-info-title-2">标签</span>
<fold-text v-if="projectTag.length > 0"
<fold-text
v-if="projectTag.length > 0"
style="width: 250px"
:row="3">
<div :key="item.name"
v-for="item in projectTag">
:row="3"
>
<div :key="item.name" v-for="item in projectTag">
{{ item.name }}
</div>
</fold-text>
<span style="width: 250px"
v-else>--</span>
<span style="width: 250px" v-else>--</span>
<el-popover v-if="projectInfo.projectStatus == 'pending'"
<el-popover
v-if="projectInfo.projectStatus == 'pending'"
placement="bottom"
width="450"
height="400"
v-model="visibleTagPanel">
<div class="f"
style="min-height: 120px">
v-model="visibleTagPanel"
>
<div class="f" style="min-height: 120px">
<h2>更改标签</h2>
<el-select v-model="selectedTagData"
<el-select
v-model="selectedTagData"
multiple
allow-create
filterable
placeholder="请选择"
@change="handleTagChange"
size="medium"
style="width: 350px">
style="width: 350px"
>
<el-option-group label="自定义标签">
<el-option v-for="item in tagOptions.customized"
<el-option
v-for="item in tagOptions.customized"
:key="item.id"
:label="item.name"
:value="item.id">
:value="item.id"
>
</el-option>
</el-option-group>
<el-option-group label="常用标签">
<el-option v-for="item in tagOptions.defaulted"
<el-option
v-for="item in tagOptions.defaulted"
:key="item.id"
:label="item.name"
:value="item.id">
:value="item.id"
>
</el-option>
</el-option-group>
</el-select>
<el-button style="margin-left: 10px"
<el-button
style="margin-left: 10px"
size="small"
type="danger"
@click="updateProjectTag">确定</el-button>
@click="updateProjectTag"
>确定</el-button
>
</div>
<div slot="reference">
<el-button v-if="source==='manage'"
size="small"
type="">更改</el-button>
<el-button v-if="source === 'manage'" size="small" type=""
>更改</el-button
>
<div v-else
class="one-btn">更改</div>
<div v-else class="one-btn">更改</div>
</div>
</el-popover>
</div>
</div>
<div v-if="!projectInfo.processable || projectInfo.projectStatus != 'pending' ">
<div v-if="source==='manage'"
class="m-btns ">
<el-button size="small"
@click="handleClose">关闭</el-button>
<div
v-if="
!projectInfo.processable || projectInfo.projectStatus != 'pending'
"
>
<div v-if="source === 'manage'" class="m-btns">
<el-button size="small" @click="handleClose">关闭</el-button>
</div>
<div v-else
class="m-btns">
<div class="item_btn"
@click="handleClose">关闭</div>
<div v-else class="m-btns">
<div class="item_btn" @click="handleClose">关闭</div>
</div>
</div>
</el-card>
<div class="process-form">
<el-card :class="{'box-card':source==='visiual'}"
v-if="projectInfo.processable && projectInfo.projectStatus == 'pending'">
<div :class="['process-title',{'process-title-vis':source==='visiual'}]">处理</div>
<el-card
:class="{ 'box-card': source === 'visiual' }"
v-if="
projectInfo.processable && projectInfo.projectStatus == 'pending'
"
>
<div
:class="[
'process-title',
{ 'process-title-vis': source === 'visiual' },
]"
>
处理
</div>
<div class="m-fm">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-form ref="fm"
<el-form
ref="fm"
:inline="false"
:model="fmData"
:rules="dataRule"
label-position="left"
label-width="100px">
<el-form-item label="处理方式:"
label-width="100px"
>
<el-form-item
label="处理方式:"
:class="{ 'form-item': source === 'visiual' }"
prop="operateType">
prop="operateType"
>
<el-radio-group v-model="fmData.operateType">
<el-radio label="dispose">处理/响应</el-radio>
<el-radio label="close">结案</el-radio>
<el-radio label="turn">转其他机关/科室</el-radio>
<el-radio label="back"
v-if="projectInfo.returnable">退回</el-radio>
<el-radio label="back" v-if="projectInfo.returnable"
>退回</el-radio
>
</el-radio-group>
</el-form-item>
<el-form-item label="您的身份:"
<el-form-item
label="您的身份:"
:class="{ 'form-item': source === 'visiual' }"
prop="projectStaffId"
v-if="myDepartmentList.length > 1">
<el-select v-model.trim="fmData.projectStaffId"
v-if="myDepartmentList.length > 1"
>
<el-select
v-model.trim="fmData.projectStaffId"
placeholder="请选择"
class="resi-cell-select">
<el-option v-for="item in myDepartmentList"
class="resi-cell-select"
>
<el-option
v-for="item in myDepartmentList"
:key="item.projectStaffId"
:label="item.departmentName"
:value="item.projectStaffId">
:value="item.projectStaffId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item v-if="fmData.operateType == 'turn'"
<el-form-item
v-if="fmData.operateType == 'turn'"
label="处理部门:"
:class="{ 'form-item': source === 'visiual' }"
prop="staffList">
<el-popover placement="bottom"
prop="staffList"
>
<el-popover
placement="bottom"
width="400"
height="400"
v-model="visibleStaffPanel">
v-model="visibleStaffPanel"
>
<div class="f">
<select-staff @confirm="(ret) => (fmData.staffList = ret)"
@close="visibleStaffPanel = false" />
<select-staff
@confirm="(ret) => (fmData.staffList = ret)"
@close="visibleStaffPanel = false"
/>
</div>
<div slot="reference">
<a v-if="fmData.staffList.length == 0"
style="cursor: pointer">点击选择</a>
<a v-else
style="cursor: pointer">已选 {{ fmData.staffList.length }} </a>
<a
v-if="fmData.staffList.length == 0"
style="cursor: pointer"
>点击选择</a
>
<a v-else style="cursor: pointer"
>已选 {{ fmData.staffList.length }} </a
>
</div>
</el-popover>
</el-form-item>
@ -259,90 +355,125 @@
</el-select>
</el-form-item> -->
<el-form-item v-if="fmData.operateType == 'back'"
<el-form-item
v-if="fmData.operateType == 'back'"
label="退回到:"
:class="{ 'form-item': source === 'visiual' }"
prop="projectProcessId">
<el-select v-model.trim="fmData.projectProcessId"
prop="projectProcessId"
>
<el-select
v-model.trim="fmData.projectProcessId"
placeholder="请选择"
class="resi-cell-select">
<el-option v-for="item in returnableList"
class="resi-cell-select"
>
<el-option
v-for="item in returnableList"
:key="item.projectProcessId"
:label="item.processor"
:value="item.projectProcessId">
:value="item.projectProcessId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item v-if="fmData.operateType == 'close'"
<el-form-item
v-if="fmData.operateType == 'close'"
label="结案状态:"
:class="{ 'form-item': source === 'visiual' }"
prop="closedStatus">
<el-select v-model.trim="fmData.closedStatus"
prop="closedStatus"
>
<el-select
v-model.trim="fmData.closedStatus"
placeholder="请选择"
class="resi-cell-select">
<el-option v-for="item in resolveTypeList"
class="resi-cell-select"
>
<el-option
v-for="item in resolveTypeList"
:key="item.closedStatus"
:label="item.name"
:value="item.value">
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item v-if="fmData.operateType == 'close'"
<el-form-item
v-if="fmData.operateType == 'close'"
label="结案说明:"
:class="{ 'form-item': source === 'visiual' }"
prop="publicReply">
<el-input type="textarea"
prop="publicReply"
>
<el-input
type="textarea"
:rows="2"
placeholder="您输入的结案说明会向居民公开展示"
v-model="fmData.publicReply">
v-model="fmData.publicReply"
>
</el-input>
</el-form-item>
<el-form-item label="内部备注:"
<el-form-item
label="内部备注:"
:class="{ 'form-item': source === 'visiual' }"
prop="internalRemark">
<el-input type="textarea"
prop="internalRemark"
>
<el-input
type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="fmData.internalRemark">
v-model="fmData.internalRemark"
>
</el-input>
</el-form-item>
<el-form-item label="图片/附件:"
<el-form-item
label="图片/附件:"
:class="{ 'form-item': source === 'visiual' }"
prop="internalFile">
<el-upload :headers="$getElUploadHeaders()"
prop="internalFile"
>
<el-upload
:headers="$getElUploadHeaders()"
class="avatar-uploader"
:action="uploadUrl"
:data="{ customerId: customerId }"
:show-file-list="true"
:on-success="handleImgSuccess"
:on-remove="handleImgRemove"
:before-upload="beforeImgUpload">
:before-upload="beforeImgUpload"
>
<i class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
<el-form-item v-if="fmData.operateType == 'dispose'"
<el-form-item
v-if="fmData.operateType == 'dispose'"
label="公开回复:"
:class="{ 'form-item': source === 'visiual' }"
prop="publicReply">
<el-input type="textarea"
prop="publicReply"
>
<el-input
type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="fmData.publicReply">
v-model="fmData.publicReply"
>
</el-input>
</el-form-item>
<el-form-item v-if="fmData.operateType != 'close' && fmData.operateType != 'dispose'"
<el-form-item
v-if="
fmData.operateType != 'close' &&
fmData.operateType != 'dispose'
"
label="公开回复:"
:class="{ 'form-item': source === 'visiual' }"
prop="publicReply">
<el-input type="textarea"
prop="publicReply"
>
<el-input
type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="fmData.publicReply">
v-model="fmData.publicReply"
>
</el-input>
</el-form-item>
</el-form>
@ -356,39 +487,47 @@
@click="handleSubmit">确定</el-button>
</div> -->
<div v-if="source==='manage'"
class="m-btns ">
<el-button size="small"
@click="handleClose">关闭</el-button>
<el-button size=""
type="danger"
@click="handleSubmit">确定</el-button>
<div v-if="source === 'manage'" class="m-btns">
<el-button size="small" @click="handleClose">关闭</el-button>
<el-button size="" type="danger" @click="handleSubmit"
>确定</el-button
>
</div>
<div v-else
class="m-btns">
<div class="item_btn"
@click="handleClose">关闭</div>
<div class="item_btn mgl"
@click="handleSubmit">确定</div>
<div v-else class="m-btns">
<div class="item_btn" @click="handleClose">关闭</div>
<div class="item_btn mgl" @click="handleSubmit">确定</div>
</div>
</div>
</el-card>
</div>
</div>
<div class="g-right">
<el-card class="m-card"
<el-card
class="m-card"
:class="{ 'box-card': source === 'visiual' }"
:style="styleFullHeight"
v-if="projectProcess.length > 0">
v-if="projectProcess.length > 0"
>
<div class="m-process">
<div :class="['process-title',{'process-title-vis':source==='visiual'}]">处理进展</div>
<div
:class="[
'process-title',
{ 'process-title-vis': source === 'visiual' },
]"
>
处理进展
</div>
<div class="list">
<div class="item"
:class="[index === 0 ? 'z-on' : '',{'item-vis':source==='visiual'}]"
<div
class="item"
:class="[
index === 0 ? 'z-on' : '',
{ 'item-vis': source === 'visiual' },
]"
:key="item.processId"
v-for="(item, index) in projectProcess">
v-for="(item, index) in projectProcess"
>
<div class="item-row">
<div class="name">{{ item.processName }}</div>
<div class="date">
@ -407,16 +546,20 @@
<div class="detail-value">{{ item.assistanceUnitName }}</div>
</div> -->
<div class="detail"
v-if="item.processName != '转项目' && item.publicReply">
<div
class="detail"
v-if="item.processName != '转项目' && item.publicReply"
>
<div class="detail-field"> </div>
<div class="detail-value">
<fold-text :row="3">{{ item.publicReply }}</fold-text>
</div>
</div>
<div class="detail"
v-if="item.processName != '转项目' && item.internalRemark">
<div
class="detail"
v-if="item.processName != '转项目' && item.internalRemark"
>
<div class="detail-field">内部备注</div>
<div class="detail-value">
<fold-text :row="3">{{ item.internalRemark }}</fold-text>
@ -424,10 +567,12 @@
</div>
<div class="detail">
<div class="attachement-list">
<a :href="att.url"
<a
:href="att.url"
target="_blank"
:key="att.url"
v-for="att in item.internalFile">
v-for="att in item.internalFile"
>
<i class="el-icon-folder-opened"></i>
{{ att.name }}
</a>
@ -441,24 +586,29 @@
</div>
<div v-if="pageType == 'origin-info'">
<issue-info-origin v-if="projectInfo.origin == 'issue'"
<issue-info-origin
v-if="projectInfo.origin == 'issue'"
ref="eleEditForm"
:pageType="issuePageType"
:issueId="projectInfo.originId"
:issueDetailData="issueDetailData"
@handleClose="handleBackInfo"
@handleOk="handleBackInfo"
@dialogOk="handleBackInfo" />
@dialogOk="handleBackInfo"
/>
<!-- <issue-info v-if="projectInfo.origin == 'issue'"
@close="handleBackInfo"
:issue-id="projectInfo.originId" /> -->
<event-info v-if="projectInfo.origin == 'resi_event'"
<event-info
v-if="projectInfo.origin == 'resi_event'"
@close="handleBackInfo"
:event-id="projectInfo.originId" />
:event-id="projectInfo.originId"
/>
</div>
<!-- 修改弹出框 -->
<el-dialog v-if="showedEvaluation"
<el-dialog
v-if="showedEvaluation"
:visible.sync="showedEvaluation"
:close-on-click-modal="false"
:close-on-press-escape="false"
@ -466,9 +616,25 @@
width="850px"
top="5vh"
class="dialog-h"
@closed="showedEvaluation = false">
@closed="showedEvaluation = false"
>
<project-evaluation :project-id="projectIdCopy"></project-evaluation>
</el-dialog>
<el-dialog
:visible.sync="topicShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="'项目来源'"
width="950px"
top="5vh"
class="dialog-h"
@closed="diaDetailClose"
>
<event-detail
ref="ref_detail_topic"
@diaDetailClose="diaDetailClose"
></event-detail>
</el-dialog>
</div>
</template>
@ -481,6 +647,7 @@ import eventInfo from "./event-info";
import projectEvaluation from "./project-evaluation";
import dateFormat from "dai-js/tools/dateFormat";
import issueInfoOrigin from "../../issue/cpts/issue-info";
import eventDetail from "../../issue/cptsAudit/eventDetail";
function iniData() {
return {
@ -490,7 +657,7 @@ function iniData () {
showedEvaluation: false,
projectIdCopy: this.projectId,
topicShow: false,
customerId: localStorage.getItem("customerId"),
fmData: {
@ -599,7 +766,7 @@ function iniData () {
visibleTagPanel: false,
selectedTagData: [],
issuePageType: '',
issuePageType: "",
issueDetailData: {},
};
}
@ -611,14 +778,19 @@ export default {
type: String,
default: "",
},
eventId: {
type: String,
default: "",
},
type: {
type: String,
default: "info",
},
source: {//manage visiual
source: {
//manage visiual
type: String,
default: 'manage'
}
default: "manage",
},
},
components: {
@ -627,7 +799,8 @@ export default {
eventInfo,
projectEvaluation,
selectStaff,
issueInfoOrigin
issueInfoOrigin,
eventDetail,
},
data: iniData,
@ -665,7 +838,7 @@ export default {
} else if (operateType == "dispose") {
obj.publicReply = [
{ required: true, message: "请填写公开回复", trigger: "blur" },
]
];
} else {
obj.internalRemark = [
{ required: true, message: "请填写内部备注", trigger: "blur" },
@ -765,11 +938,7 @@ export default {
this.projectTag = this.projectTag.filter((item) => item.id);
},
},
created () {
},
created() {},
mounted() {
console.log(this.projectIdCopy);
@ -869,29 +1038,13 @@ export default {
},
async handleWatchOrigin() {
const url = "/governance/manage/votingissuedetail";
const { data, code, msg } = await requestPost(url, {
issueId: this.projectInfo.originId,
this.topicShow = true;
this.$nextTick(() => {
this.$refs.ref_detail_topic.initForm(this.eventId);
});
if (code === 0) {
this.issueDetailData = { ...data };
} else {
this.$message.error(msg);
}
this.pageType = "origin-info";
if (this.issueDetailData.issueStatus === 'voting') {
this.issuePageType = 'dispose'
} else {
this.issuePageType = 'info'
}
this.pageTypeCopy = 'issue'
},
diaDetailClose() {
this.topicShow = false;
},
handleBackInfo() {
this.pageType = "info";
@ -1049,7 +1202,6 @@ export default {
// }
// ]
if (data.projectStatus == "pending") {
this.getMyDepartmentList();
// this.getAssistanceUnitList();
@ -1332,9 +1484,9 @@ export default {
};
</script>
<style lang='scss' scoped>
<!-- <style lang='scss' scoped>
@import "@/assets/scss/modules/visual/a_customize.scss";
</style>
</style> -->
<style
lang="scss"

Loading…
Cancel
Save