Browse Source

更新拼接姓名

epdc-admin-dangqun
fengyu 3 years ago
parent
commit
7f58387730
  1. 591
      src/views/modules/events/item-deal-detail-view.vue
  2. 9
      src/views/modules/events/item-reject-deal-detail-view.vue

591
src/views/modules/events/item-deal-detail-view.vue

@ -3,31 +3,44 @@
<div style="width: 100%; height: 100%;"> <div style="width: 100%; height: 100%;">
<div class="project-detail"> <div class="project-detail">
<div class="project-detail-tip">项目详情</div> <div class="project-detail-tip">项目详情</div>
<el-form label-position="right" class="projectDetail" label-width="140px"> <el-form label-position="right"
<el-form-item label="诉求内容:" prop="eventContent"> class="projectDetail"
label-width="140px">
<el-form-item label="诉求内容:"
prop="eventContent">
<div>{{dataForm.itemContent}}</div> <div>{{dataForm.itemContent}}</div>
<el-image v-for="url in dataForm.images" style="width: 100px; height: 100px; margin-right: 10px" :key="url" <el-image v-for="url in dataForm.images"
:src="url" :preview-src-list="previewImgList" @click="clickImg(url)"> style="width: 100px; height: 100px; margin-right: 10px"
:key="url"
:src="url"
:preview-src-list="previewImgList"
@click="clickImg(url)">
</el-image> </el-image>
<div v-if="dataForm.voice"> <div v-if="dataForm.voice">
<audio controls style="height: 30px;"> <audio controls style="height: 30px;">
<source :src="dataForm.voice"> <source :src="dataForm.voice" >
</audio> </audio>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item v-if="dataForm.groupName && dataForm.groupName.length > 0" label="项目来源:" prop="ownGrid"> <el-form-item v-if="dataForm.groupName && dataForm.groupName.length > 0"
label="项目来源:"
prop="ownGrid">
<div>{{dataForm.groupName}}</div> <div>{{dataForm.groupName}}</div>
</el-form-item> </el-form-item>
<el-form-item label="上报时间:" prop="distributeTime"> <el-form-item label="上报时间:"
prop="distributeTime">
<div>{{dataForm.distributeTime}}</div> <div>{{dataForm.distributeTime}}</div>
</el-form-item> </el-form-item>
<el-form-item label="联系人姓名:" prop="nickName"> <el-form-item label="联系人姓名:"
prop="nickName">
<div>{{dataForm.nickName}}</div> <div>{{dataForm.nickName}}</div>
</el-form-item> </el-form-item>
<el-form-item label="手机号:" prop="mobile"> <el-form-item label="手机号:"
prop="mobile">
<div>{{dataForm.mobile}}</div> <div>{{dataForm.mobile}}</div>
</el-form-item> </el-form-item>
<el-form-item label="事件位置:" prop="mobile"> <el-form-item label="事件位置:"
prop="mobile">
<div>{{dataForm.issueAddress}}</div> <div>{{dataForm.issueAddress}}</div>
</el-form-item> </el-form-item>
@ -55,17 +68,17 @@
<div class="project-progress-tip">处理进展</div> <div class="project-progress-tip">处理进展</div>
<!-- <div class="refresh"><el-button type="text" @click="refreshProgress"> <i class="el-icon-refresh"></i></el-button></div> --> <!-- <div class="refresh"><el-button type="text" @click="refreshProgress"> <i class="el-icon-refresh"></i></el-button></div> -->
<el-timeline v-loading="timeloading" style="padding-top: 12px;"> <el-timeline v-loading="timeloading" style="padding-top: 12px;">
<el-timeline-item v-for="(item, index) in timeLineList" :key="item.id" <el-timeline-item v-for="(item, index) in timeLineList"
:color="item.type === 'init' ? 'red' : item.type === 'project' ? '#009688' : '#ffa546'"> :key="item.id"
<div :id="`content${index}`" style="line-height:25px; "> :color="item.type === 'init' ? 'red' : item.type === 'project' ? '#009688' : '#ffa546'">
<div <div :id="`content${index}`"
: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'}" style="line-height:25px; ">
v-if="item.type !== 'init'"> <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' ? '议题' : ''}} {{item.type === 'project' ? '项目': item.type === 'issue' || item.type === 'issue-project' ? '议题' : ''}}
</div> </div>
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">[{{item | formatState}}]</span> <div><span style="font-weight: bold; color: rgb(96, 98, 102);">[{{item | formatState}}]</span> {{item.createdTime}}</div>
{{item.createdTime}}</div>
<div v-if="item.state === 3"> <div v-if="item.state === 3">
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">来源社群</span>{{item.groupName}}</div> <div><span style="font-weight: bold; color: rgb(96, 98, 102);">来源社群</span>{{item.groupName}}</div>
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">处理人</span>{{item.handlerDept}}</div> <div><span style="font-weight: bold; color: rgb(96, 98, 102);">处理人</span>{{item.handlerDept}}</div>
@ -74,10 +87,12 @@
<div v-if="item.state !== 3"> <div v-if="item.state !== 3">
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">处理部门</span>{{item.handlerDept}}</div> <div><span style="font-weight: bold; color: rgb(96, 98, 102);">处理部门</span>{{item.handlerDept}}</div>
</div> </div>
<div v-if="item.itemDeptDTOS && item.itemDeptDTOS.length > 0" style="width: 100%; display: flex;"> <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 style="font-weight: bold; color: rgb(96, 98, 102);">被吹哨部门</span> </div>
<div> <div>
<span v-for="(csDept, index1) in item.itemDeptDTOS" :key="index1"> <span v-for="(csDept, index1) in item.itemDeptDTOS"
:key="index1">
{{ csDept.deptName }}<br /> {{ csDept.deptName }}<br />
</span> </span>
</div> </div>
@ -85,8 +100,12 @@
<div><span style="font-weight: bold; color: rgb(96, 98, 102);">处理意见</span> {{item.advice}}</div> <div><span style="font-weight: bold; color: rgb(96, 98, 102);">处理意见</span> {{item.advice}}</div>
<div style="display: flex;"> <div style="display: flex;">
<el-image v-for="url in item.images" <el-image v-for="url in item.images"
style="width: 60px; height: 60px; object-fit: cover; margin-right: 8px; border-radius: 2px;" 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)"> :key="url"
:src="url"
:preview-src-list="previewImgList"
alt="处理图片"
@click="clickImg(url)">
</el-image> </el-image>
</div> </div>
</div> </div>
@ -96,77 +115,127 @@
</div> </div>
<div class="handle-operation"> <div class="handle-operation">
<div class="handle-operation-tip">处理操作</div> <div class="handle-operation-tip">处理操作</div>
<el-form ref="dataForm" class="operation" label-width="140px" label-position="right" style="width: 720px;" <el-form ref="dataForm"
:model="dataForm" :rules="dataRule"> class="operation"
label-width="140px"
label-position="right"
style="width: 720px;"
:model="dataForm"
:rules="dataRule">
<el-form-item label="处置部门" prop="handlerDeptIdRule"> <el-form-item label="处置部门" prop="handlerDeptIdRule">
<el-cascader ref="name" v-model="dataForm.handlerDeptIdRule" :options="options" <el-cascader
:props="{ multiple: false, checkStrictly: true }" @change="changeHandle"> ref="name"
v-model="dataForm.handlerDeptIdRule"
:options="options"
:props="{ multiple: false, checkStrictly: true }"
@change="changeHandle"
>
</el-cascader> </el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="办理意见:" prop="handleCategory"> <el-form-item label="办理意见:"
<el-select v-model="postDataForm.handleCategoryShow" placeholder="请选择" @visible-change="visibleChange">
<el-option v-for="handleResultDTO in dataForm.handleResultDTOS" :key="handleResultDTO.processResult" prop="handleCategory">
:label="handleResultDTO.processName" :value="handleResultDTO.processResult"> <el-select v-model="postDataForm.handleCategoryShow"
placeholder="请选择" @visible-change="visibleChange">
<el-option v-for="handleResultDTO in dataForm.handleResultDTOS"
:key="handleResultDTO.processResult"
:label="handleResultDTO.processName"
:value="handleResultDTO.processResult">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="吹哨部门:" prop="deptResultDTOS" v-if="deptResultDTOSVisible"> <el-form-item label="吹哨部门:"
<el-select v-model="deptResult" multiple placeholder="请选择"> prop="deptResultDTOS"
<el-option v-for="item in dataForm.deptResultDTOS" :key="item.deptId" :label="item.deptName" v-if="deptResultDTOSVisible">
:value="item.deptId"> <el-select v-model="deptResult"
multiple
placeholder="请选择">
<el-option v-for="item in dataForm.deptResultDTOS"
:key="item.deptId"
:label="item.deptName"
:value="item.deptId">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="所属类别:" prop="categoryIds" v-if="categoryVisible"> <el-form-item label="所属类别:" prop="categoryIds" v-if="categoryVisible">
<div class="block"> <div class="block">
<el-cascader :disabled="disabledCategory" v-model="categoryIds" placeholder="试试搜索:城市管理" <el-cascader :disabled="disabledCategory" v-model="categoryIds" placeholder="试试搜索:城市管理" :props="{ checkStrictly: true }" :options="categoryOptions" filterable></el-cascader>
:props="{ checkStrictly: true }" :options="categoryOptions" filterable></el-cascader>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item v-if="!hideResident" label="回复居民意见:" prop="outHandleAdvice"> <el-form-item v-if="!hideResident" label="回复居民意见:" prop="outHandleAdvice">
<el-input v-model="postDataForm.outHandleAdvice" type="textarea" maxlength="100" show-word-limit <el-input v-model="postDataForm.outHandleAdvice"
placeholder="请您选择居民诉求的处理情况及答复意见,向居民公开展示"></el-input> type="textarea"
maxlength="100"
show-word-limit
placeholder="请您选择居民诉求的处理情况及答复意见,向居民公开展示"></el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="!hideResident" label="居民意见图片:" v-loading="loading" prop="outHandleImagesPC"> <el-form-item v-if="!hideResident" label="居民意见图片:" v-loading="loading" prop="outHandleImagesPC">
<el-upload :action="uploadUrl" :disabled="isAble" :class="{hide:hideUploadOut}" list-type="picture-card" <el-upload
:file-list="postDataForm.outHandleImagesPC" :limit=3 :on-preview="handlePictureCardPreview" :action="uploadUrl"
:on-remove="handleRemove" :on-success="handleAvatarSuccess" :on-error="handelError" :disabled="isAble"
:before-upload="beforeAvatarUpload" style="width:480px"> :class="{hide:hideUploadOut}"
list-type="picture-card"
:file-list="postDataForm.outHandleImagesPC"
:limit=3
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:on-success="handleAvatarSuccess"
:on-error="handelError"
:before-upload="beforeAvatarUpload"
style="width:480px">
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</el-upload> </el-upload>
<el-dialog :visible.sync="dialogVisible"> <el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt=""> <img width="100%" :src="dialogImageUrl" alt="">
</el-dialog> </el-dialog>
<div> <div><font color="gray">1~3张图</font></div>
<font color="gray">1~3张图</font>
</div>
</el-form-item> </el-form-item>
<el-form-item label="当前办理情况:" prop="handleAdvice" v-if="showAdvice && typeKey == ''"> <el-form-item label="当前办理情况:"
<el-input v-model="postDataForm.handleAdvice" type="textarea" :rows="6" maxlength="300" show-word-limit prop="handleAdvice" v-if="showAdvice && typeKey == ''">
placeholder="填写提示 <el-input v-model="postDataForm.handleAdvice"
type="textarea"
:rows="6"
maxlength="300"
show-word-limit
placeholder="填写提示
请您填写项目的实际办理情况(自己处理吹哨报到内部协调)便于相关部门了解项目的实际情况"></el-input> 请您填写项目的实际办理情况(自己处理吹哨报到内部协调)便于相关部门了解项目的实际情况"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="当前办理情况:" prop="handleAdvice" v-if="showAdvice && typeKey == 'grid_party'"> <el-form-item label="当前办理情况:"
<el-input v-model="postDataForm.handleAdvice" type="textarea" maxlength="300" :rows="6" show-word-limit prop="handleAdvice" v-if="showAdvice && typeKey == 'grid_party'">
placeholder="填写提示 <el-input v-model="postDataForm.handleAdvice"
type="textarea"
maxlength="300"
:rows="6"
show-word-limit
placeholder="填写提示
网格层面无法办理写明当前办理情况及无法办理的原因点击吹哨报到 网格层面无法办理写明当前办理情况及无法办理的原因点击吹哨报到
网格层面已办理完成请上传照片写明答复依据办理结果等要素态度要真诚容易接受语言要朴实简练杜绝出现错字别字表述不清等现象此内容经区级平台核查后反馈给诉求人点击结案申请"></el-input> 网格层面已办理完成请上传照片写明答复依据办理结果等要素态度要真诚容易接受语言要朴实简练杜绝出现错字别字表述不清等现象此内容经区级平台核查后反馈给诉求人点击结案申请"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="当前办理情况:" prop="handleAdvice" v-if="showAdvice && typeKey == 'community_party'"> <el-form-item label="当前办理情况:"
<el-input v-model="postDataForm.handleAdvice" type="textarea" maxlength="300" :rows="6" show-word-limit prop="handleAdvice" v-if="showAdvice && typeKey == 'community_party'">
placeholder="填写提示 <el-input v-model="postDataForm.handleAdvice"
type="textarea"
maxlength="300"
:rows="6"
show-word-limit
placeholder="填写提示
社区层面无法办理写明当前办理情况及无法办理的原因点击吹哨报到 社区层面无法办理写明当前办理情况及无法办理的原因点击吹哨报到
社区层面已办理完成请上传照片写明答复依据办理结果等要素态度要真诚容易接受语言要朴实简练杜绝出现错字别字表述不清等现象此内容经区级平台核查后反馈给诉求人点击结案申请"></el-input> 社区层面已办理完成请上传照片写明答复依据办理结果等要素态度要真诚容易接受语言要朴实简练杜绝出现错字别字表述不清等现象此内容经区级平台核查后反馈给诉求人点击结案申请"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="当前办理情况:" prop="handleAdvice" v-if="showAdvice && isShowDeal"> <el-form-item label="当前办理情况:"
<el-input v-model="postDataForm.handleAdvice" type="textarea" :rows="6" maxlength="300" show-word-limit prop="handleAdvice" v-if="showAdvice && isShowDeal">
:placeholder="'填写提示:您反映的诉求属于 “ {{postDataForm.handleAdvice}} ” 情形,不属于平台受理范围,感谢您对“北尚诉办”台的持!'"></el-input> <el-input v-model="postDataForm.handleAdvice"
type="textarea"
:rows="6"
maxlength="300"
show-word-limit
:placeholder="'填写提示:您反映的诉求属于 “ {{postDataForm.handleAdvice}} ” 情形,不属于平台受理范围,感谢您对“北尚诉办”台的持!'"></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item label="" v-if="!isShowDeal && typeKey == 'grid_party'" > <!-- <el-form-item label="" v-if="!isShowDeal && typeKey == 'grid_party'" >
<span>网格层面无法办理请点击吹哨报到写明当前办理情况及无法办理的原因<br/> <span>网格层面无法办理请点击吹哨报到写明当前办理情况及无法办理的原因<br/>
@ -184,50 +253,59 @@
</span> </span>
</el-form-item> --> </el-form-item> -->
<el-form-item label="不予受理原因:" prop="handleAdvice" v-if="isShowDeal"> <el-form-item label="不予受理原因:" prop="handleAdvice" v-if="isShowDeal">
<el-radio-group v-model="postDataForm.handleAdviceRadios" class="handleAdvice" @change="changeAdvices"> <el-radio-group v-model="postDataForm.handleAdviceRadios" class="handleAdvice" @change="changeAdvices">
<el-radio label="历史遗留暂不具备解决条件的事项">1. 历史遗留暂不具备解决条件的事项</el-radio> <el-radio label="历史遗留暂不具备解决条件的事项">1. 历史遗留暂不具备解决条件的事项</el-radio>
<el-radio label="依法应当通过诉讼、仲裁、行政复议解决的事项">2. 依法应当通过诉讼仲裁行政复议解决的事项</el-radio> <el-radio label="依法应当通过诉讼、仲裁、行政复议解决的事项">2. 依法应当通过诉讼仲裁行政复议解决的事项</el-radio>
<el-radio label="已进入诉讼、仲裁、行政复议、信访、信息公开等法定程序或已通过上述法定程序处理的事项">3. 已进入诉讼仲裁行政复议信访信息公开等法定程序或已通过上述法定程序处理的事项 <el-radio label="已进入诉讼、仲裁、行政复议、信访、信息公开等法定程序或已通过上述法定程序处理的事项">3. 已进入诉讼仲裁行政复议信访信息公开等法定程序或已通过上述法定程序处理的事项</el-radio>
</el-radio>
<el-radio label="属于军队职责范围的事项">4. 属于军队职责范围的事项</el-radio>
<el-radio label="属于军队职责范围的事项">4. 属于军队职责范围的事项</el-radio> <el-radio label="涉及国家机密、商业秘密、个人隐私的事项">5. 涉及国家机密商业秘密个人隐私的事项</el-radio>
<el-radio label="涉及国家机密、商业秘密、个人隐私的事项">5. 涉及国家机密商业秘密个人隐私的事项</el-radio> <el-radio label="违反法律法规、社会公序良俗以及恶意攻击、骚扰或无实质诉求内容的事项">6. 违反法律法规社会公序良俗以及恶意攻击骚扰或无实质诉求内容的事项</el-radio>
<el-radio label="违反法律法规、社会公序良俗以及恶意攻击、骚扰或无实质诉求内容的事项">6. 违反法律法规社会公序良俗以及恶意攻击骚扰或无实质诉求内容的事项</el-radio>
<el-radio label="依法应当通过110、119、120等紧急服务专线处理的事项">7. 依法应当通过110119120等紧急服务专线处理的事项</el-radio>
<el-radio label="依法应当通过110、119、120等紧急服务专线处理的事项">7. 依法应当通过110119120等紧急服务专线处理的事项</el-radio> <el-radio label="涉及党组织、党员、监察对象的检举、控告和申诉,建议您到市北区纪委监委信访室(延吉路80号)反映问题,举报电话:12388">8. 涉及党组织党员监察对象的检举控告和申诉建议您到市北区纪委监委信访室延吉路80号反映问题举报电话12388</el-radio>
<el-radio label="涉及党组织、党员、监察对象的检举、控告和申诉,建议您到市北区纪委监委信访室(延吉路80号)反映问题,举报电话:12388">8. <el-radio label="不在市北区管辖范围的事项">9. 不在市北区管辖范围的事项</el-radio>
涉及党组织党员监察对象的检举控告和申诉建议您到市北区纪委监委信访室延吉路80号反映问题举报电话12388</el-radio> <el-radio label="其他不予受理的事项">10. 其他不予受理的事项</el-radio>
<el-radio label="不在市北区管辖范围的事项">9. 不在市北区管辖范围的事项</el-radio>
<el-radio label="其他不予受理的事项">10. 其他不予受理的事项</el-radio> </el-radio-group>
</el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="不予受理详细说明:" prop="handleAdviceRemark" v-if="isShowDeal"> <el-form-item label="不予受理详细说明:" prop="handleAdviceRemark" v-if="isShowDeal" >
<el-input type="textarea" :rows="6" maxlength="1000" v-model="postDataForm.handleAdviceRemark" <el-input v-model="postDataForm.handleAdviceRemark" placeholder="请输入不予受理详细说明"></el-input>
placeholder="请输入不予受理详细说明"></el-input> </el-form-item>
</el-form-item> <el-form-item label="办理人:" prop="handlePeopleName" >
<el-form-item label="办理人:" prop="handlePeopleName"> <el-input v-model="postDataForm.handlePeopleName"></el-input>
<el-input v-model="postDataForm.handlePeopleName"></el-input> </el-form-item>
</el-form-item>
<el-form-item label="办公电话:" prop="handlePeopleMobile" >
<el-form-item label="办公电话:" prop="handlePeopleMobile"> <el-input v-model="postDataForm.handlePeopleMobile"
<el-input v-model="postDataForm.handlePeopleMobile" placeholder="请输入手机号或固定电话(例如:0532-XXXXXXX )"></el-input> placeholder="请输入手机号或固定电话(例如:0532-XXXXXXX )"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="处置照片:" v-loading="loadingIn" prop="handleImagesPC"> <el-form-item label="处置照片:" v-loading="loadingIn" prop="handleImagesPC" >
<el-upload :action="uploadUrl" :disabled="isAble" :class="{hide:hideUploadIn}" list-type="picture-card" <el-upload
:file-list="postDataForm.handleImagesPC" :limit=3 :on-preview="handlePictureCardPreviewIn" :action="uploadUrl"
:on-remove="handleRemoveIn" :on-success="handleAvatarSuccessIn" :on-error="handelErrorIn" :disabled="isAble"
:before-upload="beforeAvatarUploadIn" style="width:480px"> :class="{hide:hideUploadIn}"
list-type="picture-card"
:file-list="postDataForm.handleImagesPC"
:limit=3
:on-preview="handlePictureCardPreviewIn"
:on-remove="handleRemoveIn"
:on-success="handleAvatarSuccessIn"
:on-error="handelErrorIn"
:before-upload="beforeAvatarUploadIn"
style="width:480px">
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</el-upload> </el-upload>
<div> <div><font color="gray">1~3张图</font></div>
<font color="gray">1~3张图</font>
</div>
</el-form-item> </el-form-item>
<el-form-item label="满意度评价:" prop="evaluateDeptDTOS" v-if="evaluateDeptDTOSVisible"> <el-form-item label="满意度评价:"
<div v-for="(evaluateDeptDTO, index) in dataForm.evaluateDeptDTOS" :key="index"> prop="evaluateDeptDTOS"
v-if="evaluateDeptDTOSVisible">
<div v-for="(evaluateDeptDTO, index) in dataForm.evaluateDeptDTOS"
:key="index">
<label>{{evaluateDeptDTO.deptName}}</label>&nbsp; <label>{{evaluateDeptDTO.deptName}}</label>&nbsp;
<el-radio-group v-model="evaluateDeptDTO.evaluationLevel"> <el-radio-group v-model="evaluateDeptDTO.evaluationLevel">
<el-radio :label="2">非常满意</el-radio> <el-radio :label="2">非常满意</el-radio>
@ -242,35 +320,73 @@
:disabled="isAble" :disabled="isAble"
style="width: 95px" style="width: 95px"
@click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> --> @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> -->
<el-button size="small" type="primary" :disabled="isAble" style="width: 95px" v-show="isWhistle" <el-button size="small"
@click="dataFormSubmitHandle(1)">吹哨</el-button> type="primary"
<el-button size="small" type="primary" :disabled="isAble" style="width: 95px" :disabled="isAble"
@click="dataFormSubmitHandle(11)">结案申请</el-button> style="width: 95px"
<el-button size="small" style="width: 95px" @click="backToItemDeal">返回</el-button> v-show="isWhistle"
@click="dataFormSubmitHandle(1)">吹哨</el-button>
<el-button size="small"
type="primary"
:disabled="isAble"
style="width: 95px"
@click="dataFormSubmitHandle(11)">结案申请</el-button>
<el-button size="small"
style="width: 95px"
@click="backToItemDeal">返回</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</div> </div>
<el-dialog width="90%" title="评论" :visible.sync="innerVisible" append-to-body> <el-dialog width="90%"
<el-table :data="commentsDTOs" border style="width: 100%;"> title="评论"
<el-table-column prop="user.userName" label="发言人" header-align="center" align="center"></el-table-column> :visible.sync="innerVisible"
<el-table-column prop="commentTime" label="发言时间" header-align="center" align="center"></el-table-column> append-to-body>
<el-table-column prop="content" label="发言内容" header-align="center" align="center"></el-table-column> <el-table :data="commentsDTOs"
<el-table-column prop="replyComment.userName" label="被回复人" header-align="center" align="center"> border
</el-table-column> style="width: 100%;">
<el-table-column prop="replyComment.content" label="被回复内容" header-align="center" align="center"> <el-table-column prop="user.userName"
</el-table-column> label="发言人"
<el-table-column :label="$t('handle')" header-align="center" align="center" width="150"> header-align="center"
align="center"></el-table-column>
<el-table-column prop="commentTime"
label="发言时间"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="content"
label="发言内容"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="replyComment.userName"
label="被回复人"
header-align="center"
align="center"></el-table-column>
<el-table-column prop="replyComment.content"
label="被回复内容"
header-align="center"
align="center"></el-table-column>
<el-table-column :label="$t('handle')"
header-align="center"
align="center"
width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.shieldFlag === '0'" type="button" size="small" <el-button v-if="scope.row.shieldFlag === '0'"
@click="deleteComment(scope.row.commentId)">屏蔽</el-button> type="button"
<el-button v-if="scope.row.shieldFlag === '1'" type="text" size="small">已屏蔽</el-button> size="small"
@click="deleteComment(scope.row.commentId)">屏蔽</el-button>
<el-button v-if="scope.row.shieldFlag === '1'"
type="text"
size="small">已屏蔽</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination :current-page="pageIndex" :page-sizes="[10, 20, 50, 100]" :page-size="limitVal" :total="total" <el-pagination :current-page="pageIndex"
layout="total, sizes, prev, pager, next, jumper" @size-change="pageSizeChangeHandleNew" :page-sizes="[10, 20, 50, 100]"
@current-change="pageCurrentChangeHandleNew"> :page-size="limitVal"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandleNew"
@current-change="pageCurrentChangeHandleNew">
</el-pagination> </el-pagination>
</el-dialog> </el-dialog>
</div> </div>
@ -319,7 +435,7 @@ export default {
issueLatitude: '', issueLatitude: '',
issueLongitude: '', issueLongitude: '',
handlerDeptIdRule: '', handlerDeptIdRule: '',
handleAdviceRemark: "", handleAdviceRemark:"",
voice: '' voice: ''
}, },
isAble: true, isAble: true,
@ -331,7 +447,7 @@ export default {
total: null, total: null,
postDataForm: { postDataForm: {
id: '', id: '',
handleAdviceRemark: "", handleAdviceRemark:"",
handlePeopleName: '', handlePeopleName: '',
handlePeopleMobile: '', handlePeopleMobile: '',
handleAdvice: '', handleAdvice: '',
@ -453,16 +569,16 @@ export default {
} }
return { return {
handleAdvice: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], handleAdvice: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }],
handleAdviceRadios: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], handleAdviceRadios: [ { required: true, message: this.$t('validate.required'), trigger: 'blur' } ],
outHandleAdvice: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], outHandleAdvice: [ { required: true, message: this.$t('validate.required'), trigger: 'blur' } ],
handleCategoryShow: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], handleCategoryShow: [ { required: true, message: this.$t('validate.required'), trigger: 'blur' } ],
deptResultDTOS: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], deptResultDTOS: [ { required: true, message: this.$t('validate.required'), trigger: 'blur' } ],
evaluateDeptDTOS: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], evaluateDeptDTOS: [ { required: true, message: this.$t('validate.required'), trigger: 'blur' } ],
handlerDeptIdRule: [{ required: true, message: this.$t('validate.required'), trigger: 'blur' }], handlerDeptIdRule: [ { required: true, message: this.$t('validate.required'), trigger: 'blur' } ],
handlePeopleName: [{ required: true, message: '请输入办理人姓名', trigger: 'blur' }], handlePeopleName: [ { required: true, message: '请输入办理人姓名', trigger: 'blur' } ],
handleAdviceRemark: [{ required: true, message: '请输入不予受理详细说明', trigger: 'blur' }], handleAdviceRemark: [ { required: true, message: '请输入不予受理详细说明', trigger: 'blur' } ],
handlePeopleMobile: [{ required: true, message: '请输入办公电话', trigger: 'blur' }, handlePeopleMobile: [ { required: true, message: '请输入办公电话', trigger: 'blur' },
{ validator: checkPhone, trigger: 'blur' } { validator: checkPhone, trigger: 'blur' }
], ],
categoryIds: [ categoryIds: [
{ {
@ -490,6 +606,9 @@ export default {
'postDataForm.handleAdvice': function (val) { 'postDataForm.handleAdvice': function (val) {
this.dataForm.handleAdvice = val this.dataForm.handleAdvice = val
}, },
'postDataForm.handleAdviceRemark': function (val) {
this.dataForm.handleAdviceRemark = val
},
'postDataForm.handleAdviceRadios': function (val) { 'postDataForm.handleAdviceRadios': function (val) {
if (val != '') { if (val != '') {
this.postDataForm.handleAdvice = '您反映的诉求属于不予受理情形中的“' + val + '”,不属于平台受理范围,感谢您对“北尚诉办”的支持!' this.postDataForm.handleAdvice = '您反映的诉求属于不予受理情形中的“' + val + '”,不属于平台受理范围,感谢您对“北尚诉办”的支持!'
@ -500,9 +619,6 @@ export default {
'postDataForm.outHandleAdvice': function (val) { 'postDataForm.outHandleAdvice': function (val) {
this.dataForm.outHandleAdvice = val this.dataForm.outHandleAdvice = val
}, },
'postDataForm.handleAdviceRemark': function (val) {
this.dataForm.handleAdviceRemark = val
},
'postDataForm.handlePeopleName': function (val) { 'postDataForm.handlePeopleName': function (val) {
this.dataForm.handlePeopleName = val this.dataForm.handlePeopleName = val
}, },
@ -583,12 +699,13 @@ export default {
} }
}, },
created: function () { created: function () {
this.uploadUrl = `${window.SITE_CONFIG['apiURL'] this.uploadUrl = `${
}/oss/file/uploadImg?token=${Cookies.get('token')}` window.SITE_CONFIG['apiURL']
}/oss/file/uploadImg?token=${Cookies.get('token')}`
}, },
methods: { methods: {
changeAdvices (d) { changeAdvices(d){
console.log(d) console.log(d)
}, },
refreshProgress () { refreshProgress () {
this.timeloading = true this.timeloading = true
@ -598,7 +715,7 @@ export default {
} }
this.getInfo() this.getInfo()
}) })
.catch(() => { }) .catch(() => {})
}, },
getCategoryList () { getCategoryList () {
this.disabledCategory = true this.disabledCategory = true
@ -608,16 +725,16 @@ export default {
infoCode: 'A' infoCode: 'A'
} }
}).then(({ data: res }) => { }).then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
var data = res.data var data = res.data
this.getSelectedNode(data, data) this.getSelectedNode(data, data)
this.categoryOptions = data this.categoryOptions = data
this.disabledCategory = false this.disabledCategory = false
}) })
.catch(() => { }) .catch(() => {})
}, },
getSelectedNode (nodeData, parent) { getSelectedNode (nodeData, parent) {
nodeData.forEach((item) => { nodeData.forEach((item) => {
@ -742,7 +859,7 @@ export default {
} }
this.options = res.data.options this.options = res.data.options
}) })
.catch(() => { }) .catch(() => {})
}, },
visibleChange (val) { visibleChange (val) {
if ( if (
@ -798,7 +915,7 @@ export default {
this.dataForm.deptResultDTOS = res.data.deptResultDTOS this.dataForm.deptResultDTOS = res.data.deptResultDTOS
this.dataForm.evaluateDeptDTOS = res.data.evaluateDeptDTOS this.dataForm.evaluateDeptDTOS = res.data.evaluateDeptDTOS
}) })
.catch(() => { }) .catch(() => {})
}, },
initBmap (latitude, longitude) { initBmap (latitude, longitude) {
this.map = new BMap.Map('map') this.map = new BMap.Map('map')
@ -884,7 +1001,7 @@ export default {
} }
} }
}) })
.catch(() => { }) .catch(() => {})
}, },
deleteComment (val) { deleteComment (val) {
this.$confirm('确定要屏蔽该评论吗?屏蔽后不可恢复。', '提示', { this.$confirm('确定要屏蔽该评论吗?屏蔽后不可恢复。', '提示', {
@ -909,9 +1026,9 @@ export default {
} }
}) })
}) })
.catch(() => { }) .catch(() => {})
}) })
.catch(() => { }) .catch(() => {})
}, },
pageSizeChangeHandleNew (val) { pageSizeChangeHandleNew (val) {
this.pageIndex = 1 this.pageIndex = 1
@ -942,7 +1059,7 @@ export default {
this.commentsDTOs = res.data.list this.commentsDTOs = res.data.list
this.total = res.data.total this.total = res.data.total
}) })
.catch(() => { }) .catch(() => {})
}, },
// //
@ -1062,7 +1179,10 @@ export default {
this.postDataForm.outHandleImagesPC = imagesAttr this.postDataForm.outHandleImagesPC = imagesAttr
this.postDataForm.outHandleImages = this.postDataForm.handleImages this.postDataForm.outHandleImages = this.postDataForm.handleImages
if(!this.isShowDeal){
this.postDataForm.handleAdvice += ` 办理人:${this.postDataForm.handlePeopleName} 办理电话: ${this.postDataForm.handlePeopleMobile}`
}
this.$confirm(messageTitle, '提示', { this.$confirm(messageTitle, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
@ -1085,7 +1205,7 @@ export default {
}) })
this.$parent.selectComponent = 'ItemDeal' this.$parent.selectComponent = 'ItemDeal'
}) })
.catch(() => { }) .catch(() => {})
}).catch(() => { this.isAble = false }) }).catch(() => { this.isAble = false })
}, },
1000, 1000,
@ -1099,122 +1219,110 @@ export default {
.hide .el-upload--picture-card { .hide .el-upload--picture-card {
display: none; display: none;
} }
</style> </style>
<style lang="scss"> <style lang="scss">
.projectDetail { .projectDetail{
.el-form-item { .el-form-item{
margin-bottom: 0px; margin-bottom: 0px;
}
.el-form-item:nth-child(1) {
.el-form-item__label {
width: 120px;
padding-left: 54px;
text-align: left !important;
} }
} .el-form-item:nth-child(1){
.el-form-item__label{
.el-form-item:nth-child(2) { width: 120px;
.el-form-item__label { padding-left: 54px;
width: 120px; text-align: left !important;
padding-left: 54px; }
text-align: left !important; }
}
}
.el-form-item:nth-child(4) { .el-form-item:nth-child(2){
.el-form-item__label { .el-form-item__label{
width: 120px; width: 120px;
padding-left: 54px; padding-left: 54px;
text-align: left !important; text-align: left !important;
} }
} }
.el-form-item:nth-child(5) { .el-form-item:nth-child(4){
.el-form-item__label { .el-form-item__label{
width: 120px; width: 120px;
padding-left: 54px; padding-left: 54px;
text-align: left !important; text-align: left !important;
} }
} }
} .el-form-item:nth-child(5){
.el-form-item__label{
width: 120px;
padding-left: 54px;
text-align: left !important;
}
}
.operation {
.el-form-item {
/*margin-bottom: 10px;*/
} }
} .operation{
.el-form-item{
/*margin-bottom: 10px;*/
}
}
.project-handle { .project-handle {
.el-timeline { .el-timeline {
padding-left: 9px; padding-left: 9px;
font-size: 13px; font-size: 13px;
} }
.el-textarea { .el-textarea {
width: 600px !important; width: 600px !important;
} }
.el-input { .el-input {
width: 600px !important; width: 600px !important;
} }
} }
.el-form-item__label { .el-form-item__label {
font-weight: bold; font-weight: bold;
} }
.userInfo { .userInfo{
display: flex; display: flex;
.el-input {
.el-input { width: 300px !important;
width: 300px !important; }
} .el-form-item:nth-child(1){
.el-form-item__label{
.el-form-item:nth-child(1) { text-align: left;
.el-form-item__label { width: 80px !important;
text-align: left; }
width: 80px !important; .el-form-item__content{
} width: 300px !important;
margin-left: 80px !important;
.el-form-item__content { }
width: 300px !important; }
margin-left: 80px !important;
}
}
.el-form-item:nth-child(2) { .el-form-item:nth-child(2){
.el-form-item__label { .el-form-item__label{
text-align: left; text-align: left;
width: 140px !important; width: 140px !important;
} }
.el-form-item__content{
width: 300px !important;
margin-left: 140px !important;
}
}
.el-form-item__content {
width: 300px !important;
margin-left: 140px !important;
}
} }
}
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
.other { .other{
// margin-left: 51px; // margin-left: 51px;
} }
.handleAdvice { .handleAdvice {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
.el-radio { .el-radio {
width: 100%; width: 100%;
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
} }
.el-radio:nth-child(1) { .el-radio:nth-child(1) {
width: 100%; width: 100%;
height: 40px; height: 40px;
@ -1222,14 +1330,12 @@ export default {
margin-left: 30px; margin-left: 30px;
} }
} }
.project-handle { .project-handle {
width: 100%; width: 100%;
height: calc(100vh - 120px); height: calc(100vh - 120px);
background: #ffffff; background: #ffffff;
box-sizing: border-box; box-sizing: border-box;
padding: 10px; padding: 10px;
.project-detail { .project-detail {
width: 79%; width: 79%;
height: 49%; height: 49%;
@ -1240,7 +1346,6 @@ export default {
float: left; float: left;
margin-bottom: 1%; margin-bottom: 1%;
position: relative; position: relative;
.project-detail-tip { .project-detail-tip {
position: absolute; position: absolute;
top: 0; top: 0;
@ -1252,46 +1357,38 @@ export default {
background: #4ac38b; background: #4ac38b;
text-align: center; text-align: center;
} }
.el-form { .el-form {
width: 58%; width: 58%;
height: 100%; height: 100%;
float: left; float: left;
overflow-y: auto; overflow-y: auto;
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 5px; width: 5px;
height: 1px; height: 1px;
} }
&::-webkit-scrollbar-thumb { &::-webkit-scrollbar-thumb {
border-radius: 5px; border-radius: 5px;
background: #aaa; background: #aaa;
} }
&::-webkit-scrollbar-track { &::-webkit-scrollbar-track {
border-radius: 10px; border-radius: 10px;
background: #fff; background: #fff;
} }
} }
.container { .container {
width: 40%; width: 40%;
height: 100%; height: 100%;
float: right; float: right;
.location { .location {
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
} }
#map { #map {
width: 100%; width: 100%;
height: calc(100% - 30px); height: calc(100% - 30px);
} }
} }
} }
.project-progress { .project-progress {
width: 20%; width: 20%;
height: 100%; height: 100%;
@ -1302,7 +1399,6 @@ export default {
padding-top: 40px; padding-top: 40px;
overflow-y: auto; overflow-y: auto;
position: relative; position: relative;
.project-progress-tip { .project-progress-tip {
position: absolute; position: absolute;
top: 0; top: 0;
@ -1314,17 +1410,14 @@ export default {
background: #0098ff; background: #0098ff;
text-align: center; text-align: center;
} }
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 5px; width: 5px;
height: 1px; height: 1px;
} }
&::-webkit-scrollbar-thumb { &::-webkit-scrollbar-thumb {
border-radius: 5px; border-radius: 5px;
background: #aaa; background: #aaa;
} }
&::-webkit-scrollbar-track { &::-webkit-scrollbar-track {
border-radius: 10px; border-radius: 10px;
background: #ccc; background: #ccc;
@ -1338,13 +1431,11 @@ export default {
height: 30px; height: 30px;
font-size: 23px; font-size: 23px;
line-height: 30px; line-height: 30px;
.el-icon-refresh { .el-icon-refresh {
font-size: 20px; font-size: 20px;
} }
} }
} }
.handle-operation { .handle-operation {
padding-top: 20px; padding-top: 20px;
box-sizing: border-box; box-sizing: border-box;
@ -1355,22 +1446,18 @@ export default {
float: left; float: left;
overflow-y: auto; overflow-y: auto;
position: relative; position: relative;
&::-webkit-scrollbar { &::-webkit-scrollbar {
width: 5px; width: 5px;
height: 1px; height: 1px;
} }
&::-webkit-scrollbar-thumb { &::-webkit-scrollbar-thumb {
border-radius: 5px; border-radius: 5px;
background: #aaa; background: #aaa;
} }
&::-webkit-scrollbar-track { &::-webkit-scrollbar-track {
border-radius: 10px; border-radius: 10px;
background: #ccc; background: #ccc;
} }
.handle-operation-tip { .handle-operation-tip {
position: absolute; position: absolute;
top: 0; top: 0;

9
src/views/modules/events/item-reject-deal-detail-view.vue

@ -320,7 +320,6 @@ export default {
issueLatitude: '', issueLatitude: '',
issueLongitude: '', issueLongitude: '',
handlerDeptIdRule: '', handlerDeptIdRule: '',
handleAdviceRemark: "",
voice: '' voice: ''
}, },
isAble: true, isAble: true,
@ -488,8 +487,8 @@ export default {
} }
}, },
'postDataForm.handleAdvice': function (val) { 'postDataForm.handleAdvice': function (val) {
this.dataForm.handleAdvice = val this.dataForm.handleAdvice = val+` 办理人:${this.postDataForm.handlePeopleName} 办理电话: ${this.postDataForm.handlePeopleMobile}`
}, },
'postDataForm.handleAdviceRadios': function (val) { 'postDataForm.handleAdviceRadios': function (val) {
if (val != '' && val != undefined) { if (val != '' && val != undefined) {
this.postDataForm.handleAdvice = '您反映的诉求属于不予受理情形中的“' + val + '”,不属于平台受理范围,感谢您对“北尚诉办”的支持!' this.postDataForm.handleAdvice = '您反映的诉求属于不予受理情形中的“' + val + '”,不属于平台受理范围,感谢您对“北尚诉办”的支持!'
@ -986,6 +985,7 @@ export default {
// //
dataFormSubmitHandle: debounce( dataFormSubmitHandle: debounce(
function (type = '') { function (type = '') {
this.postDataForm.categoryId = this.categoryIds[ this.postDataForm.categoryId = this.categoryIds[
this.categoryIds.length - 1 this.categoryIds.length - 1
] ]
@ -1101,6 +1101,9 @@ export default {
this.postDataForm.outHandleImages = this.postDataForm.handleImages this.postDataForm.outHandleImages = this.postDataForm.handleImages
if(!this.isShowDeal){
this.postDataForm.handleAdvice += ` 办理人:${this.postDataForm.handlePeopleName} 办理电话: ${this.postDataForm.handlePeopleMobile}`
}
this.$confirm(messageTitle, '提示', { this.$confirm(messageTitle, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',

Loading…
Cancel
Save