|
@ -1,7 +1,6 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class=""> |
|
|
<div class=""> |
|
|
<div class="g-page" |
|
|
<div class="g-page" v-show="pageType == 'info'"> |
|
|
v-show="pageType == 'info'"> |
|
|
|
|
|
<div class="g-left"> |
|
|
<div class="g-left"> |
|
|
<el-card style="overflow: auto"> |
|
|
<el-card style="overflow: auto"> |
|
|
<h3>项目详情</h3> |
|
|
<h3>项目详情</h3> |
|
@ -24,295 +23,372 @@ |
|
|
<span>{{ projectInfo.internalRemark || "--" }}</span> |
|
|
<span>{{ projectInfo.internalRemark || "--" }}</span> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="info-prop" |
|
|
<div |
|
|
v-if="projectInfo.departmentNameList.length > 0"> |
|
|
class="info-prop" |
|
|
|
|
|
v-if="projectInfo.departmentNameList.length > 0" |
|
|
|
|
|
> |
|
|
<span class="info-title-2">当前处理部门:</span> |
|
|
<span class="info-title-2">当前处理部门:</span> |
|
|
<span>{{ projectInfo.departmentNameList.join("、") }}</span> |
|
|
<span>{{ projectInfo.departmentNameList.join("、") }}</span> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="info-prop" |
|
|
<div |
|
|
v-if=" |
|
|
class="info-prop" |
|
|
|
|
|
v-if=" |
|
|
projectInfo.origin == 'issue' || |
|
|
projectInfo.origin == 'issue' || |
|
|
projectInfo.origin == 'resi_event' |
|
|
projectInfo.origin == 'resi_event' |
|
|
"> |
|
|
" |
|
|
|
|
|
> |
|
|
<span class="info-title-2">项目来源:</span> |
|
|
<span class="info-title-2">项目来源:</span> |
|
|
<a style="cursor: pointer" |
|
|
<a style="cursor: pointer" @click="handleWatchOrigin" |
|
|
@click="handleWatchOrigin">查看项目来源</a> |
|
|
>查看项目来源</a |
|
|
|
|
|
> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="info-prop"> |
|
|
<div class="info-prop"> |
|
|
<span class="info-title-2">项目评价:</span> |
|
|
<span class="info-title-2">项目评价:</span> |
|
|
<a style="cursor: pointer" |
|
|
<a style="cursor: pointer" @click="showedEvaluation = true" |
|
|
@click="showedEvaluation = true">查看项目评价</a> |
|
|
>查看项目评价</a |
|
|
|
|
|
> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="info-prop"> |
|
|
<div class="info-prop"> |
|
|
<span class="info-title-2">分类:</span> |
|
|
<span class="info-title-2">分类:</span> |
|
|
<fold-text v-if="projectCate.length > 0" |
|
|
<fold-text |
|
|
style="width: 250px" |
|
|
v-if="projectCate.length > 0" |
|
|
:row="3"> |
|
|
style="width: 250px" |
|
|
<div :key="item.name" |
|
|
:row="3" |
|
|
v-for="item in projectCate"> |
|
|
> |
|
|
|
|
|
<div :key="item.name" v-for="item in projectCate"> |
|
|
{{ item.name }} |
|
|
{{ item.name }} |
|
|
</div> |
|
|
</div> |
|
|
</fold-text> |
|
|
</fold-text> |
|
|
<span style="width: 250px" |
|
|
<span style="width: 250px" v-else>--</span> |
|
|
v-else>--</span> |
|
|
|
|
|
|
|
|
<el-popover |
|
|
<el-popover v-if="projectInfo.projectStatus == 'pending'" |
|
|
v-if="projectInfo.projectStatus == 'pending'" |
|
|
placement="bottom" |
|
|
placement="bottom" |
|
|
width="400" |
|
|
width="400" |
|
|
height="400" |
|
|
height="400" |
|
|
v-model="visibleCatePanel"> |
|
|
v-model="visibleCatePanel" |
|
|
<div class="f" |
|
|
> |
|
|
style="min-height: 120px"> |
|
|
<div class="f" style="min-height: 120px"> |
|
|
<h2>更改分类</h2> |
|
|
<h2>更改分类</h2> |
|
|
<el-cascader v-model="selectedCateData" |
|
|
<el-cascader |
|
|
:options="cateOptions" |
|
|
v-model="selectedCateData" |
|
|
:props="{ |
|
|
:options="cateOptions" |
|
|
|
|
|
:props="{ |
|
|
multiple: true, |
|
|
multiple: true, |
|
|
label: 'name', |
|
|
label: 'name', |
|
|
value: 'id', |
|
|
value: 'id', |
|
|
children: 'subCategory', |
|
|
children: 'subCategory', |
|
|
}" |
|
|
}" |
|
|
clearable></el-cascader> |
|
|
clearable |
|
|
<el-button style="margin-left: 10px" |
|
|
></el-cascader> |
|
|
size="small" |
|
|
<el-button |
|
|
type="danger" |
|
|
style="margin-left: 10px" |
|
|
@click="updateProjectCate">确定</el-button> |
|
|
size="small" |
|
|
|
|
|
type="danger" |
|
|
|
|
|
@click="updateProjectCate" |
|
|
|
|
|
>确定</el-button |
|
|
|
|
|
> |
|
|
</div> |
|
|
</div> |
|
|
<div slot="reference"> |
|
|
<div slot="reference"> |
|
|
<el-button size="small" |
|
|
<el-button size="small" type="">更改</el-button> |
|
|
type="">更改</el-button> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</el-popover> |
|
|
</el-popover> |
|
|
</div> |
|
|
</div> |
|
|
<div class="info-prop"> |
|
|
<div class="info-prop"> |
|
|
<span class="info-title-2">标签:</span> |
|
|
<span class="info-title-2">标签:</span> |
|
|
<fold-text v-if="projectTag.length > 0" |
|
|
<fold-text |
|
|
style="width: 250px" |
|
|
v-if="projectTag.length > 0" |
|
|
:row="3"> |
|
|
style="width: 250px" |
|
|
<div :key="item.name" |
|
|
:row="3" |
|
|
v-for="item in projectTag"> |
|
|
> |
|
|
|
|
|
<div :key="item.name" v-for="item in projectTag"> |
|
|
{{ item.name }} |
|
|
{{ item.name }} |
|
|
</div> |
|
|
</div> |
|
|
</fold-text> |
|
|
</fold-text> |
|
|
<span style="width: 250px" |
|
|
<span style="width: 250px" v-else>--</span> |
|
|
v-else>--</span> |
|
|
|
|
|
|
|
|
<el-popover |
|
|
<el-popover v-if="projectInfo.projectStatus == 'pending'" |
|
|
v-if="projectInfo.projectStatus == 'pending'" |
|
|
placement="bottom" |
|
|
placement="bottom" |
|
|
width="400" |
|
|
width="400" |
|
|
height="400" |
|
|
height="400" |
|
|
v-model="visibleTagPanel"> |
|
|
v-model="visibleTagPanel" |
|
|
<div class="f" |
|
|
> |
|
|
style="min-height: 120px"> |
|
|
<div class="f" style="min-height: 120px"> |
|
|
<h2>更改标签</h2> |
|
|
<h2>更改标签</h2> |
|
|
<el-select v-model="selectedTagData" |
|
|
<el-select |
|
|
multiple |
|
|
v-model="selectedTagData" |
|
|
allow-create |
|
|
multiple |
|
|
filterable |
|
|
allow-create |
|
|
placeholder="请选择" |
|
|
filterable |
|
|
@change="handleTagChange"> |
|
|
placeholder="请选择" |
|
|
|
|
|
@change="handleTagChange" |
|
|
|
|
|
> |
|
|
<el-option-group label="自定义标签"> |
|
|
<el-option-group label="自定义标签"> |
|
|
<el-option v-for="item in tagOptions.customized" |
|
|
<el-option |
|
|
:key="item.id" |
|
|
v-for="item in tagOptions.customized" |
|
|
:label="item.name" |
|
|
:key="item.id" |
|
|
:value="item.id"> |
|
|
:label="item.name" |
|
|
|
|
|
:value="item.id" |
|
|
|
|
|
> |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-option-group> |
|
|
</el-option-group> |
|
|
|
|
|
|
|
|
<el-option-group label="常用标签"> |
|
|
<el-option-group label="常用标签"> |
|
|
<el-option v-for="item in tagOptions.defaulted" |
|
|
<el-option |
|
|
:key="item.id" |
|
|
v-for="item in tagOptions.defaulted" |
|
|
:label="item.name" |
|
|
:key="item.id" |
|
|
:value="item.id"> |
|
|
:label="item.name" |
|
|
|
|
|
:value="item.id" |
|
|
|
|
|
> |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-option-group> |
|
|
</el-option-group> |
|
|
</el-select> |
|
|
</el-select> |
|
|
|
|
|
|
|
|
<el-button style="margin-left: 10px" |
|
|
<el-button |
|
|
size="small" |
|
|
style="margin-left: 10px" |
|
|
type="danger" |
|
|
size="small" |
|
|
@click="updateProjectTag">确定</el-button> |
|
|
type="danger" |
|
|
|
|
|
@click="updateProjectTag" |
|
|
|
|
|
>确定</el-button |
|
|
|
|
|
> |
|
|
</div> |
|
|
</div> |
|
|
<div slot="reference"> |
|
|
<div slot="reference"> |
|
|
<el-button size="small" |
|
|
<el-button size="small" type="">更改</el-button> |
|
|
type="">更改</el-button> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</el-popover> |
|
|
</el-popover> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="m-btns" |
|
|
<div |
|
|
v-if="!projectInfo.processable || projectInfo.projectStatus != 'pending'"> |
|
|
class="m-btns" |
|
|
<el-button size="" |
|
|
v-if=" |
|
|
@click="handleClose">关闭</el-button> |
|
|
!projectInfo.processable || projectInfo.projectStatus != 'pending' |
|
|
|
|
|
" |
|
|
|
|
|
> |
|
|
|
|
|
<el-button size="" @click="handleClose">关闭</el-button> |
|
|
</div> |
|
|
</div> |
|
|
</el-card> |
|
|
</el-card> |
|
|
<el-card style="overflow: auto" |
|
|
<el-card |
|
|
v-if="projectInfo.processable && projectInfo.projectStatus == 'pending'"> |
|
|
style="overflow: auto" |
|
|
|
|
|
v-if=" |
|
|
|
|
|
projectInfo.processable && projectInfo.projectStatus == 'pending' |
|
|
|
|
|
" |
|
|
|
|
|
> |
|
|
<h3>处理</h3> |
|
|
<h3>处理</h3> |
|
|
<div class="m-fm"> |
|
|
<div class="m-fm"> |
|
|
<el-form ref="fm" |
|
|
<el-form |
|
|
:inline="false" |
|
|
ref="fm" |
|
|
:model="fmData" |
|
|
:inline="false" |
|
|
:rules="dataRule" |
|
|
:model="fmData" |
|
|
label-position="left" |
|
|
:rules="dataRule" |
|
|
label-width="100px"> |
|
|
label-position="left" |
|
|
<el-form-item label="处理方式:" |
|
|
label-width="100px" |
|
|
prop="operateType"> |
|
|
> |
|
|
|
|
|
<el-form-item label="处理方式:" prop="operateType"> |
|
|
<el-radio-group v-model="fmData.operateType"> |
|
|
<el-radio-group v-model="fmData.operateType"> |
|
|
<el-radio label="dispose">处理/响应</el-radio> |
|
|
<el-radio label="dispose">处理/响应</el-radio> |
|
|
<el-radio label="close">结案</el-radio> |
|
|
<el-radio label="close">结案</el-radio> |
|
|
<el-radio label="turn">转其他机关/科室</el-radio> |
|
|
<el-radio label="turn">转其他机关/科室</el-radio> |
|
|
<el-radio label="back" |
|
|
<el-radio label="back" v-if="projectInfo.returnable" |
|
|
v-if="projectInfo.returnable">退回</el-radio> |
|
|
>退回</el-radio |
|
|
|
|
|
> |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item label="您的身份:" |
|
|
<el-form-item label="您的身份:" prop="projectStaffId"> |
|
|
prop="projectStaffId"> |
|
|
<el-select |
|
|
<el-select v-model.trim="fmData.projectStaffId" |
|
|
v-model.trim="fmData.projectStaffId" |
|
|
placeholder="请选择" |
|
|
placeholder="请选择" |
|
|
class="resi-cell-select"> |
|
|
class="resi-cell-select" |
|
|
<el-option v-for="item in myDepartmentList" |
|
|
> |
|
|
:key="item.projectStaffId" |
|
|
<el-option |
|
|
:label="item.departmentName" |
|
|
v-for="item in myDepartmentList" |
|
|
:value="item.projectStaffId"> |
|
|
:key="item.projectStaffId" |
|
|
|
|
|
:label="item.departmentName" |
|
|
|
|
|
:value="item.projectStaffId" |
|
|
|
|
|
> |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item v-if="fmData.operateType == 'turn'" |
|
|
<el-form-item |
|
|
label="处理部门:" |
|
|
v-if="fmData.operateType == 'turn'" |
|
|
prop="publicReply"> |
|
|
label="处理部门:" |
|
|
<el-popover placement="bottom" |
|
|
prop="publicReply" |
|
|
width="400" |
|
|
> |
|
|
height="400" |
|
|
<el-popover |
|
|
v-model="visibleStaffPanel"> |
|
|
placement="bottom" |
|
|
|
|
|
width="400" |
|
|
|
|
|
height="400" |
|
|
|
|
|
v-model="visibleStaffPanel" |
|
|
|
|
|
> |
|
|
<div class="f"> |
|
|
<div class="f"> |
|
|
<select-staff @confirm="(ret) => (fmData.staffList = ret)" |
|
|
<select-staff |
|
|
@close="visibleStaffPanel = false" /> |
|
|
@confirm="(ret) => (fmData.staffList = ret)" |
|
|
|
|
|
@close="visibleStaffPanel = false" |
|
|
|
|
|
/> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div slot="reference"> |
|
|
<div slot="reference"> |
|
|
<a v-if="fmData.staffList.length == 0" |
|
|
<a |
|
|
style="cursor: pointer">点击选择</a> |
|
|
v-if="fmData.staffList.length == 0" |
|
|
<a v-else |
|
|
style="cursor: pointer" |
|
|
style="cursor: pointer">已选 {{ fmData.staffList.length }} 人</a> |
|
|
>点击选择</a |
|
|
|
|
|
> |
|
|
|
|
|
<a v-else style="cursor: pointer" |
|
|
|
|
|
>已选 {{ fmData.staffList.length }} 人</a |
|
|
|
|
|
> |
|
|
</div> |
|
|
</div> |
|
|
</el-popover> |
|
|
</el-popover> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item v-if="fmData.operateType != 'back'" |
|
|
<el-form-item |
|
|
label="协办单位:" |
|
|
v-if="fmData.operateType != 'back'" |
|
|
prop="assistanceUnitIndex"> |
|
|
label="协办单位:" |
|
|
<el-select v-model.trim="fmData.assistanceUnitIndex" |
|
|
prop="assistanceUnitIndex" |
|
|
placeholder="请选择" |
|
|
> |
|
|
class="resi-cell-select"> |
|
|
<el-select |
|
|
<el-option v-for="(item, index) in assistanceUnitList" |
|
|
v-model.trim="fmData.assistanceUnitIndex" |
|
|
:key="item.assistanceUnitId" |
|
|
placeholder="请选择" |
|
|
:label="item.assistanceUnitName" |
|
|
class="resi-cell-select" |
|
|
:value="index"> |
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="(item, index) in assistanceUnitList" |
|
|
|
|
|
:key="item.assistanceUnitId" |
|
|
|
|
|
:label="item.assistanceUnitName" |
|
|
|
|
|
:value="index" |
|
|
|
|
|
> |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item v-if="fmData.operateType == 'back'" |
|
|
<el-form-item |
|
|
label="退回到:" |
|
|
v-if="fmData.operateType == 'back'" |
|
|
prop="projectProcessId"> |
|
|
label="退回到:" |
|
|
<el-select v-model.trim="fmData.projectProcessId" |
|
|
prop="projectProcessId" |
|
|
placeholder="请选择" |
|
|
> |
|
|
class="resi-cell-select"> |
|
|
<el-select |
|
|
<el-option v-for="item in returnableList" |
|
|
v-model.trim="fmData.projectProcessId" |
|
|
:key="item.projectProcessId" |
|
|
placeholder="请选择" |
|
|
:label="item.processor" |
|
|
class="resi-cell-select" |
|
|
:value="item.projectProcessId"> |
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in returnableList" |
|
|
|
|
|
:key="item.projectProcessId" |
|
|
|
|
|
:label="item.processor" |
|
|
|
|
|
:value="item.projectProcessId" |
|
|
|
|
|
> |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item v-if="fmData.operateType == 'close'" |
|
|
<el-form-item |
|
|
label="结案状态:" |
|
|
v-if="fmData.operateType == 'close'" |
|
|
prop="closedStatus"> |
|
|
label="结案状态:" |
|
|
<el-select v-model.trim="fmData.closedStatus" |
|
|
prop="closedStatus" |
|
|
placeholder="请选择" |
|
|
> |
|
|
class="resi-cell-select"> |
|
|
<el-select |
|
|
<el-option v-for="item in resolveTypeList" |
|
|
v-model.trim="fmData.closedStatus" |
|
|
:key="item.closedStatus" |
|
|
placeholder="请选择" |
|
|
:label="item.name" |
|
|
class="resi-cell-select" |
|
|
:value="item.value"> |
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in resolveTypeList" |
|
|
|
|
|
:key="item.closedStatus" |
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
> |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item v-if="fmData.operateType == 'close'" |
|
|
<el-form-item |
|
|
label="结案说明:" |
|
|
v-if="fmData.operateType == 'close'" |
|
|
prop="publicReply"> |
|
|
label="结案说明:" |
|
|
<el-input type="textarea" |
|
|
prop="publicReply" |
|
|
:rows="2" |
|
|
> |
|
|
placeholder="您输入的结案说明会向居民公开展示" |
|
|
<el-input |
|
|
v-model="fmData.publicReply"> |
|
|
type="textarea" |
|
|
|
|
|
:rows="2" |
|
|
|
|
|
placeholder="您输入的结案说明会向居民公开展示" |
|
|
|
|
|
v-model="fmData.publicReply" |
|
|
|
|
|
> |
|
|
</el-input> |
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item label="内部备注:" |
|
|
<el-form-item label="内部备注:" prop="internalRemark"> |
|
|
prop="internalRemark"> |
|
|
<el-input |
|
|
<el-input type="textarea" |
|
|
type="textarea" |
|
|
:rows="2" |
|
|
:rows="2" |
|
|
placeholder="请输入内容" |
|
|
placeholder="请输入内容" |
|
|
v-model="fmData.internalRemark"> |
|
|
v-model="fmData.internalRemark" |
|
|
|
|
|
> |
|
|
</el-input> |
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item v-if="fmData.operateType != 'close'" |
|
|
<el-form-item |
|
|
label="图片/附件:" |
|
|
v-if="fmData.operateType != 'close'" |
|
|
prop="internalFile"> |
|
|
label="图片/附件:" |
|
|
<el-upload class="avatar-uploader" |
|
|
prop="internalFile" |
|
|
:action="uploadUlr" |
|
|
> |
|
|
:data="{ customerId: customerId }" |
|
|
<el-upload |
|
|
:show-file-list="true" |
|
|
class="avatar-uploader" |
|
|
:on-success="handleImgSuccess" |
|
|
:action="uploadUlr" |
|
|
:on-remove="handleImgRemove" |
|
|
:data="{ customerId: customerId }" |
|
|
:before-upload="beforeImgUpload"> |
|
|
:show-file-list="true" |
|
|
|
|
|
:on-success="handleImgSuccess" |
|
|
|
|
|
:on-remove="handleImgRemove" |
|
|
|
|
|
:before-upload="beforeImgUpload" |
|
|
|
|
|
> |
|
|
<i class="el-icon-plus avatar-uploader-icon"></i> |
|
|
<i class="el-icon-plus avatar-uploader-icon"></i> |
|
|
</el-upload> |
|
|
</el-upload> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item v-if="fmData.operateType != 'close'" |
|
|
<el-form-item |
|
|
label="公开回复:" |
|
|
v-if="fmData.operateType != 'close'" |
|
|
prop="publicReply"> |
|
|
label="公开回复:" |
|
|
<el-input type="textarea" |
|
|
prop="publicReply" |
|
|
:rows="2" |
|
|
> |
|
|
placeholder="请输入内容" |
|
|
<el-input |
|
|
v-model="fmData.publicReply"> |
|
|
type="textarea" |
|
|
|
|
|
:rows="2" |
|
|
|
|
|
placeholder="请输入内容" |
|
|
|
|
|
v-model="fmData.publicReply" |
|
|
|
|
|
> |
|
|
</el-input> |
|
|
</el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
</div> |
|
|
</div> |
|
|
<div class="m-btns"> |
|
|
<div class="m-btns"> |
|
|
<el-button size="" |
|
|
<el-button size="" style="margin-right: 50px" @click="handleClose" |
|
|
style="margin-right: 50px" |
|
|
>关闭</el-button |
|
|
@click="handleClose">关闭</el-button> |
|
|
> |
|
|
<el-button size="" |
|
|
<el-button size="" type="danger" @click="handleSubmit" |
|
|
type="danger" |
|
|
>确定</el-button |
|
|
@click="handleSubmit">确定</el-button> |
|
|
> |
|
|
</div> |
|
|
</div> |
|
|
</el-card> |
|
|
</el-card> |
|
|
</div> |
|
|
</div> |
|
|
<div class="g-right"> |
|
|
<div class="g-right"> |
|
|
<el-card class="m-card" |
|
|
<el-card |
|
|
:style="styleFullHeight" |
|
|
class="m-card" |
|
|
style="overflow: auto" |
|
|
:style="styleFullHeight" |
|
|
v-if="projectProcess.length > 0"> |
|
|
style="overflow: auto" |
|
|
|
|
|
v-if="projectProcess.length > 0" |
|
|
|
|
|
> |
|
|
<h3>处理进展</h3> |
|
|
<h3>处理进展</h3> |
|
|
<div class="m-process"> |
|
|
<div class="m-process"> |
|
|
<div class="list"> |
|
|
<div class="list"> |
|
|
<div class="item" |
|
|
<div |
|
|
:class="index === 0 ? 'z-on' : ''" |
|
|
class="item" |
|
|
:key="item.processId" |
|
|
:class="index === 0 ? 'z-on' : ''" |
|
|
v-for="(item, index) in projectProcess"> |
|
|
:key="item.processId" |
|
|
|
|
|
v-for="(item, index) in projectProcess" |
|
|
|
|
|
> |
|
|
<div class="item-row"> |
|
|
<div class="item-row"> |
|
|
<div class="name">{{ item.processName }}</div> |
|
|
<div class="name">{{ item.processName }}</div> |
|
|
<div class="date"> |
|
|
<div class="date"> |
|
@ -325,22 +401,25 @@ |
|
|
<div class="detail-value">{{ item.departmentName }}</div> |
|
|
<div class="detail-value">{{ item.departmentName }}</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="detail" |
|
|
<div class="detail" v-if="item.assistanceUnitName"> |
|
|
v-if="item.assistanceUnitName"> |
|
|
|
|
|
<div class="detail-field">协办单位:</div> |
|
|
<div class="detail-field">协办单位:</div> |
|
|
<div class="detail-value">{{ item.assistanceUnitName }}</div> |
|
|
<div class="detail-value">{{ item.assistanceUnitName }}</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="detail" |
|
|
<div |
|
|
v-if="item.processName != '转项目' && item.publicReply"> |
|
|
class="detail" |
|
|
|
|
|
v-if="item.processName != '转项目' && item.publicReply" |
|
|
|
|
|
> |
|
|
<div class="detail-field">说 明:</div> |
|
|
<div class="detail-field">说 明:</div> |
|
|
<div class="detail-value"> |
|
|
<div class="detail-value"> |
|
|
<fold-text :row="3">{{ item.publicReply }}</fold-text> |
|
|
<fold-text :row="3">{{ item.publicReply }}</fold-text> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="detail" |
|
|
<div |
|
|
v-if="item.processName != '转项目' && item.internalRemark"> |
|
|
class="detail" |
|
|
|
|
|
v-if="item.processName != '转项目' && item.internalRemark" |
|
|
|
|
|
> |
|
|
<div class="detail-field">内部备注:</div> |
|
|
<div class="detail-field">内部备注:</div> |
|
|
<div class="detail-value"> |
|
|
<div class="detail-value"> |
|
|
<fold-text :row="3">{{ item.internalRemark }}</fold-text> |
|
|
<fold-text :row="3">{{ item.internalRemark }}</fold-text> |
|
@ -348,10 +427,12 @@ |
|
|
</div> |
|
|
</div> |
|
|
<div class="detail"> |
|
|
<div class="detail"> |
|
|
<div class="attachement-list"> |
|
|
<div class="attachement-list"> |
|
|
<a :href="att.url" |
|
|
<a |
|
|
target="_blank" |
|
|
:href="att.url" |
|
|
:key="att.url" |
|
|
target="_blank" |
|
|
v-for="att in item.internalFile"> |
|
|
:key="att.url" |
|
|
|
|
|
v-for="att in item.internalFile" |
|
|
|
|
|
> |
|
|
<i class="el-icon-folder-opened"></i> |
|
|
<i class="el-icon-folder-opened"></i> |
|
|
{{ att.name }} |
|
|
{{ att.name }} |
|
|
</a> |
|
|
</a> |
|
@ -365,24 +446,30 @@ |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div v-if="pageType == 'origin-info'"> |
|
|
<div v-if="pageType == 'origin-info'"> |
|
|
<issue-info v-if="projectInfo.origin == 'issue'" |
|
|
<issue-info |
|
|
@close="handleBackInfo" |
|
|
v-if="projectInfo.origin == 'issue'" |
|
|
:issue-id="projectInfo.originId" /> |
|
|
@close="handleBackInfo" |
|
|
<event-info v-if="projectInfo.origin == 'resi_event'" |
|
|
:issue-id="projectInfo.originId" |
|
|
@close="handleBackInfo" |
|
|
/> |
|
|
:event-id="projectInfo.originId" /> |
|
|
<event-info |
|
|
|
|
|
v-if="projectInfo.origin == 'resi_event'" |
|
|
|
|
|
@close="handleBackInfo" |
|
|
|
|
|
:event-id="projectInfo.originId" |
|
|
|
|
|
/> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<!-- 修改弹出框 --> |
|
|
<!-- 修改弹出框 --> |
|
|
<el-dialog v-if="showedEvaluation" |
|
|
<el-dialog |
|
|
:visible.sync="showedEvaluation" |
|
|
v-if="showedEvaluation" |
|
|
:close-on-click-modal="false" |
|
|
:visible.sync="showedEvaluation" |
|
|
:close-on-press-escape="false" |
|
|
:close-on-click-modal="false" |
|
|
:title="formTitle" |
|
|
:close-on-press-escape="false" |
|
|
width="850px" |
|
|
:title="formTitle" |
|
|
top="5vh" |
|
|
width="850px" |
|
|
class="dialog-h" |
|
|
top="5vh" |
|
|
@closed="showedEvaluation = false"> |
|
|
class="dialog-h" |
|
|
|
|
|
@closed="showedEvaluation = false" |
|
|
|
|
|
> |
|
|
<project-evaluation :projectId="projectIdCopy"></project-evaluation> |
|
|
<project-evaluation :projectId="projectIdCopy"></project-evaluation> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
</div> |
|
|
</div> |
|
@ -397,7 +484,7 @@ import eventInfo from "./event-info"; |
|
|
import projectEvaluation from "./project-evaluation"; |
|
|
import projectEvaluation from "./project-evaluation"; |
|
|
import dateFormat from "dai-js/tools/dateFormat"; |
|
|
import dateFormat from "dai-js/tools/dateFormat"; |
|
|
|
|
|
|
|
|
function iniData () { |
|
|
function iniData() { |
|
|
return { |
|
|
return { |
|
|
pageType: "info", |
|
|
pageType: "info", |
|
|
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2", |
|
|
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2", |
|
@ -540,7 +627,7 @@ export default { |
|
|
data: iniData, |
|
|
data: iniData, |
|
|
|
|
|
|
|
|
computed: { |
|
|
computed: { |
|
|
dataRule () { |
|
|
dataRule() { |
|
|
const { |
|
|
const { |
|
|
fmData: { operateType }, |
|
|
fmData: { operateType }, |
|
|
} = this; |
|
|
} = this; |
|
@ -583,13 +670,13 @@ export default { |
|
|
return obj; |
|
|
return obj; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
styleFullHeight () { |
|
|
styleFullHeight() { |
|
|
return { |
|
|
return { |
|
|
maxHeight: "calc(100vh - 120px)", |
|
|
maxHeight: "calc(100vh - 120px)", |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
styleHalfHeight () { |
|
|
styleHalfHeight() { |
|
|
return { |
|
|
return { |
|
|
maxHeight: "calc((100vh - 140px) / 2)", |
|
|
maxHeight: "calc((100vh - 140px) / 2)", |
|
|
}; |
|
|
}; |
|
@ -597,7 +684,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
watch: { |
|
|
watch: { |
|
|
projectId () { |
|
|
projectId() { |
|
|
let data = iniData(); |
|
|
let data = iniData(); |
|
|
Object.keys(data).forEach((k) => { |
|
|
Object.keys(data).forEach((k) => { |
|
|
this[k] = data[k]; |
|
|
this[k] = data[k]; |
|
@ -624,7 +711,7 @@ export default { |
|
|
)["departmentName"]; |
|
|
)["departmentName"]; |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
selectedCateData (val) { |
|
|
selectedCateData(val) { |
|
|
const { cateOptions } = this; |
|
|
const { cateOptions } = this; |
|
|
this.projectCate = val |
|
|
this.projectCate = val |
|
|
.filter((arr) => arr.length > 0) |
|
|
.filter((arr) => arr.length > 0) |
|
@ -637,7 +724,7 @@ export default { |
|
|
}; |
|
|
}; |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
async selectedTagData (val) { |
|
|
async selectedTagData(val) { |
|
|
const { tagOptions } = this; |
|
|
const { tagOptions } = this; |
|
|
this.projectTag = await Promise.all( |
|
|
this.projectTag = await Promise.all( |
|
|
val.map(async (id) => { |
|
|
val.map(async (id) => { |
|
@ -666,31 +753,51 @@ export default { |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
mounted () { |
|
|
mounted() { |
|
|
|
|
|
|
|
|
console.log(this.projectIdCopy); |
|
|
console.log(this.projectIdCopy); |
|
|
this.getApiData(); |
|
|
this.getApiData(); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
methods: { |
|
|
methods: { |
|
|
beforeImgUpload (file) { |
|
|
beforeImgUpload(file) { |
|
|
|
|
|
console.log(file); |
|
|
const isLt1M = file.size / 1024 / 1024 < 10; |
|
|
const isLt1M = file.size / 1024 / 1024 < 10; |
|
|
|
|
|
const srcType = file.type; |
|
|
|
|
|
const format = file.name.split(".").pop(); |
|
|
|
|
|
|
|
|
if (!isLt1M) { |
|
|
if (!isLt1M) { |
|
|
this.$message.error("上传文件大小不能超过 10MB!"); |
|
|
this.$message.error("上传文件大小不能超过 10MB!"); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
if ( |
|
|
|
|
|
srcType.indexOf("image") == -1 && |
|
|
|
|
|
srcType.indexOf("video") == -1 && |
|
|
|
|
|
["doc", "docx", "xls", "xlsx", "ppt", "pptx", "pdf"].indexOf(format) == |
|
|
|
|
|
-1 |
|
|
|
|
|
) { |
|
|
|
|
|
this.$message.error("文档仅限pdf和office文件!"); |
|
|
|
|
|
return false; |
|
|
} |
|
|
} |
|
|
return isLt1M; |
|
|
return true; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleImgSuccess (res, file, fileList) { |
|
|
handleImgSuccess(res, file, fileList) { |
|
|
console.log("res.data.url", file); |
|
|
console.log("handleImgSuccess", file); |
|
|
if (res.code === 0 && res.msg === "success") { |
|
|
if (res.code === 0 && res.msg === "success") { |
|
|
console.log("res.data.url", res.data.url); |
|
|
let format = file.name.split(".").pop(); |
|
|
|
|
|
let srcType = file.raw.type; |
|
|
|
|
|
let type = "file"; |
|
|
|
|
|
console.log("==============================srcType: ", srcType); |
|
|
|
|
|
if (srcType.indexOf("image") != -1) { |
|
|
|
|
|
type = "image"; |
|
|
|
|
|
} else if (srcType.indexOf("video") != -1) { |
|
|
|
|
|
type = "video"; |
|
|
|
|
|
} |
|
|
this.fmData.internalFile.push({ |
|
|
this.fmData.internalFile.push({ |
|
|
format: file.name.split(".").pop(), |
|
|
format, |
|
|
name: file.name, |
|
|
name: file.name, |
|
|
size: file.size, |
|
|
size: file.size, |
|
|
type: file.raw.type, |
|
|
type, |
|
|
url: res.data.url, |
|
|
url: res.data.url, |
|
|
}); |
|
|
}); |
|
|
console.log(this.fmData.internalFile); |
|
|
console.log(this.fmData.internalFile); |
|
@ -699,23 +806,25 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleImgRemove (file) { |
|
|
handleImgRemove(file) { |
|
|
let index = this.fmData.internalFile.findIndex( |
|
|
console.log("handleImgRemove", file); |
|
|
(item) => item.url == file.response.data.url |
|
|
if (file.response) { |
|
|
); |
|
|
let index = this.fmData.internalFile.findIndex( |
|
|
this.fmData.internalFile.splice(index, 1); |
|
|
(item) => item.url == file.response.data.url |
|
|
console.log(this.fmData.internalFile); |
|
|
); |
|
|
|
|
|
this.fmData.internalFile.splice(index, 1); |
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
watchImg (src) { |
|
|
watchImg(src) { |
|
|
window.open(src); |
|
|
window.open(src); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleClose () { |
|
|
handleClose() { |
|
|
this.$emit("close"); |
|
|
this.$emit("close"); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleSubmit () { |
|
|
handleSubmit() { |
|
|
this.$refs["fm"].validate((valid, messageObj) => { |
|
|
this.$refs["fm"].validate((valid, messageObj) => { |
|
|
if (valid) { |
|
|
if (valid) { |
|
|
this.beforeSubmit(); |
|
|
this.beforeSubmit(); |
|
@ -724,7 +833,7 @@ export default { |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
beforeSubmit () { |
|
|
beforeSubmit() { |
|
|
const { |
|
|
const { |
|
|
fmData: { operateType }, |
|
|
fmData: { operateType }, |
|
|
} = this; |
|
|
} = this; |
|
@ -741,15 +850,15 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleWatchOrigin () { |
|
|
handleWatchOrigin() { |
|
|
this.pageType = "origin-info"; |
|
|
this.pageType = "origin-info"; |
|
|
}, |
|
|
}, |
|
|
handleBackInfo () { |
|
|
handleBackInfo() { |
|
|
this.pageType = "info"; |
|
|
this.pageType = "info"; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
//加载组织数据 |
|
|
async submitBack () { |
|
|
async submitBack() { |
|
|
const url = "/gov/project/trace/return-v2"; |
|
|
const url = "/gov/project/trace/return-v2"; |
|
|
const { fmData } = this; |
|
|
const { fmData } = this; |
|
|
|
|
|
|
|
@ -780,7 +889,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
//加载组织数据 |
|
|
async submitClose () { |
|
|
async submitClose() { |
|
|
const url = "/gov/project/trace/closeproject-v2"; |
|
|
const url = "/gov/project/trace/closeproject-v2"; |
|
|
const { fmData } = this; |
|
|
const { fmData } = this; |
|
|
|
|
|
|
|
@ -811,7 +920,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
//加载组织数据 |
|
|
async submitTurn () { |
|
|
async submitTurn() { |
|
|
const url = "/gov/project/trace/transfer-v2"; |
|
|
const url = "/gov/project/trace/transfer-v2"; |
|
|
const { fmData } = this; |
|
|
const { fmData } = this; |
|
|
|
|
|
|
|
@ -843,7 +952,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
//加载组织数据 |
|
|
async submitDispose () { |
|
|
async submitDispose() { |
|
|
const url = "/gov/project/trace/response-v2"; |
|
|
const url = "/gov/project/trace/response-v2"; |
|
|
const { fmData } = this; |
|
|
const { fmData } = this; |
|
|
|
|
|
|
|
@ -874,14 +983,14 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
async getApiData () { |
|
|
async getApiData() { |
|
|
await this.getProjectInfo(); |
|
|
await this.getProjectInfo(); |
|
|
this.getProjectCate(); |
|
|
this.getProjectCate(); |
|
|
this.getProjectProcess(); |
|
|
this.getProjectProcess(); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
//加载组织数据 |
|
|
async getProjectInfo () { |
|
|
async getProjectInfo() { |
|
|
const url = "/gov/project/trace/projectdetail"; |
|
|
const url = "/gov/project/trace/projectdetail"; |
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
const { data, code, msg } = await requestPost(url, { |
|
@ -903,7 +1012,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
//加载组织数据 |
|
|
async getReturnableList () { |
|
|
async getReturnableList() { |
|
|
const url = "/gov/project/trace/returnablelist"; |
|
|
const url = "/gov/project/trace/returnablelist"; |
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
const { data, code, msg } = await requestPost(url, { |
|
@ -918,7 +1027,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
//加载组织数据 |
|
|
async getMyDepartmentList () { |
|
|
async getMyDepartmentList() { |
|
|
const url = "/gov/project/trace/mydepartmentlist"; |
|
|
const url = "/gov/project/trace/mydepartmentlist"; |
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
const { data, code, msg } = await requestPost(url, { |
|
@ -933,7 +1042,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
//加载组织数据 |
|
|
async getAssistanceUnitList () { |
|
|
async getAssistanceUnitList() { |
|
|
const url = "/heart/icpartyunit/assistanceUnitList"; |
|
|
const url = "/heart/icpartyunit/assistanceUnitList"; |
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
const { data, code, msg } = await requestPost(url, { |
|
@ -948,7 +1057,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
//加载组织数据 |
|
|
async getIssueInfo () { |
|
|
async getIssueInfo() { |
|
|
const url = "/resi/hall/issue/detail"; |
|
|
const url = "/resi/hall/issue/detail"; |
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
const { data, code, msg } = await requestPost(url, { |
|
@ -963,7 +1072,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
//加载组织数据 |
|
|
async getIssueTrend () { |
|
|
async getIssueTrend() { |
|
|
const url = "/resi/hall/issue/votingtrend"; |
|
|
const url = "/resi/hall/issue/votingtrend"; |
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
const { data, code, msg } = await requestPost(url, { |
|
@ -996,7 +1105,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
//加载组织数据 |
|
|
async getEventInfo () { |
|
|
async getEventInfo() { |
|
|
const url = "/gov/project/resievent/eventdetail-icdata"; |
|
|
const url = "/gov/project/resievent/eventdetail-icdata"; |
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
const { data, code, msg } = await requestPost(url, { |
|
@ -1017,7 +1126,7 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
//加载组织数据 |
|
|
async getProjectProcess () { |
|
|
async getProjectProcess() { |
|
|
const url = "/gov/project/trace/processlist-v2"; |
|
|
const url = "/gov/project/trace/processlist-v2"; |
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
const { data, code, msg } = await requestPost(url, { |
|
@ -1037,7 +1146,7 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
async getProjectCate () { |
|
|
async getProjectCate() { |
|
|
const url = "/gov/project/projectcategory/categorytaglist"; |
|
|
const url = "/gov/project/projectcategory/categorytaglist"; |
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
const { data, code, msg } = await requestPost(url, { |
|
@ -1056,7 +1165,7 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
async getCateOptions () { |
|
|
async getCateOptions() { |
|
|
const url = "/gov/issue/issueprojectcategorydict/list"; |
|
|
const url = "/gov/issue/issueprojectcategorydict/list"; |
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, {}); |
|
|
const { data, code, msg } = await requestPost(url, {}); |
|
@ -1073,7 +1182,7 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
async updateProjectCate () { |
|
|
async updateProjectCate() { |
|
|
const url = "/gov/project/projectcategory/save"; |
|
|
const url = "/gov/project/projectcategory/save"; |
|
|
const { projectCate } = this; |
|
|
const { projectCate } = this; |
|
|
if (projectCate.length == 0) { |
|
|
if (projectCate.length == 0) { |
|
@ -1094,11 +1203,11 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleTagChange (val) { |
|
|
handleTagChange(val) { |
|
|
console.log(val); |
|
|
console.log(val); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
async createTag (tagName) { |
|
|
async createTag(tagName) { |
|
|
const url = "/gov/issue/issuetags/add"; |
|
|
const url = "/gov/issue/issuetags/add"; |
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
const { data, code, msg } = await requestPost(url, { |
|
@ -1115,7 +1224,7 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
async getTagOptions () { |
|
|
async getTagOptions() { |
|
|
const url = "/gov/issue/issueprojecttagdict/list"; |
|
|
const url = "/gov/issue/issueprojecttagdict/list"; |
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
const { data, code, msg } = await requestPost(url, { |
|
@ -1133,7 +1242,7 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
async updateProjectTag () { |
|
|
async updateProjectTag() { |
|
|
const url = "/gov/project/projecttags/save"; |
|
|
const url = "/gov/project/projecttags/save"; |
|
|
const { projectTag } = this; |
|
|
const { projectTag } = this; |
|
|
|
|
|
|
|
@ -1150,13 +1259,13 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
toUserInfo (item) { |
|
|
toUserInfo(item) { |
|
|
this.$router.push({ |
|
|
this.$router.push({ |
|
|
path: `/main-shuju/visual-basicinfo-people/${item.icResiUserId}`, |
|
|
path: `/main-shuju/visual-basicinfo-people/${item.icResiUserId}`, |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
toProjectInfo (item) { |
|
|
toProjectInfo(item) { |
|
|
console.log(item); |
|
|
console.log(item); |
|
|
this.projectIdCopy = item.projectId; |
|
|
this.projectIdCopy = item.projectId; |
|
|
// let data = iniData(); |
|
|
// let data = iniData(); |
|
|