|
|
@ -1,7 +1,6 @@ |
|
|
|
<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 style="overflow: auto"> |
|
|
|
<h3>项目详情</h3> |
|
|
@ -24,50 +23,58 @@ |
|
|
|
<span>{{ projectInfo.internalRemark || "--" }}</span> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="info-prop" |
|
|
|
v-if="projectInfo.departmentNameList.length > 0"> |
|
|
|
<div |
|
|
|
class="info-prop" |
|
|
|
v-if="projectInfo.departmentNameList.length > 0" |
|
|
|
> |
|
|
|
<span class="info-title-2">当前处理部门:</span> |
|
|
|
<span>{{ projectInfo.departmentNameList.join("、") }}</span> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="info-prop" |
|
|
|
<div |
|
|
|
class="info-prop" |
|
|
|
v-if=" |
|
|
|
projectInfo.origin == 'issue' || |
|
|
|
projectInfo.origin == 'resi_event' |
|
|
|
"> |
|
|
|
" |
|
|
|
> |
|
|
|
<span class="info-title-2">项目来源:</span> |
|
|
|
<a style="cursor: pointer" |
|
|
|
@click="handleWatchOrigin">查看项目来源</a> |
|
|
|
<a style="cursor: pointer" @click="handleWatchOrigin" |
|
|
|
>查看项目来源</a |
|
|
|
> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="info-prop"> |
|
|
|
<span class="info-title-2">项目评价:</span> |
|
|
|
<a style="cursor: pointer" |
|
|
|
@click="showedEvaluation = true">查看项目评价</a> |
|
|
|
<a style="cursor: pointer" @click="showedEvaluation = true" |
|
|
|
>查看项目评价</a |
|
|
|
> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="info-prop"> |
|
|
|
<span class="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, |
|
|
@ -75,244 +82,313 @@ |
|
|
|
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 size="small" |
|
|
|
type="">更改</el-button> |
|
|
|
<el-button size="small" type="">更改</el-button> |
|
|
|
</div> |
|
|
|
</el-popover> |
|
|
|
</div> |
|
|
|
<div class="info-prop"> |
|
|
|
<span class="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="400" |
|
|
|
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"> |
|
|
|
@change="handleTagChange" |
|
|
|
> |
|
|
|
<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 size="small" |
|
|
|
type="">更改</el-button> |
|
|
|
<el-button size="small" type="">更改</el-button> |
|
|
|
</div> |
|
|
|
</el-popover> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="m-btns" |
|
|
|
v-if="!projectInfo.processable || projectInfo.projectStatus != 'pending'"> |
|
|
|
<el-button size="" |
|
|
|
@click="handleClose">关闭</el-button> |
|
|
|
<div |
|
|
|
class="m-btns" |
|
|
|
v-if=" |
|
|
|
!projectInfo.processable || projectInfo.projectStatus != 'pending' |
|
|
|
" |
|
|
|
> |
|
|
|
<el-button size="" @click="handleClose">关闭</el-button> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
<el-card style="overflow: auto" |
|
|
|
v-if="projectInfo.processable && projectInfo.projectStatus == 'pending'"> |
|
|
|
<el-card |
|
|
|
style="overflow: auto" |
|
|
|
v-if=" |
|
|
|
projectInfo.processable && projectInfo.projectStatus == 'pending' |
|
|
|
" |
|
|
|
> |
|
|
|
<h3>处理</h3> |
|
|
|
<div class="m-fm"> |
|
|
|
<el-form ref="fm" |
|
|
|
<el-form |
|
|
|
ref="fm" |
|
|
|
:inline="false" |
|
|
|
:model="fmData" |
|
|
|
:rules="dataRule" |
|
|
|
label-position="left" |
|
|
|
label-width="100px"> |
|
|
|
<el-form-item label="处理方式:" |
|
|
|
prop="operateType"> |
|
|
|
label-width="100px" |
|
|
|
> |
|
|
|
<el-form-item label="处理方式:" 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="您的身份:" |
|
|
|
prop="projectStaffId"> |
|
|
|
<el-select v-model.trim="fmData.projectStaffId" |
|
|
|
<el-form-item label="您的身份:" prop="projectStaffId"> |
|
|
|
<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="处理部门:" |
|
|
|
prop="publicReply"> |
|
|
|
<el-popover placement="bottom" |
|
|
|
prop="publicReply" |
|
|
|
> |
|
|
|
<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> |
|
|
|
|
|
|
|
<el-form-item v-if="fmData.operateType != 'back'" |
|
|
|
<el-form-item |
|
|
|
v-if="fmData.operateType != 'back'" |
|
|
|
label="协办单位:" |
|
|
|
prop="assistanceUnitIndex"> |
|
|
|
<el-select v-model.trim="fmData.assistanceUnitIndex" |
|
|
|
prop="assistanceUnitIndex" |
|
|
|
> |
|
|
|
<el-select |
|
|
|
v-model.trim="fmData.assistanceUnitIndex" |
|
|
|
placeholder="请选择" |
|
|
|
class="resi-cell-select"> |
|
|
|
<el-option v-for="(item, index) in assistanceUnitList" |
|
|
|
class="resi-cell-select" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="(item, index) in assistanceUnitList" |
|
|
|
:key="item.assistanceUnitId" |
|
|
|
:label="item.assistanceUnitName" |
|
|
|
:value="index"> |
|
|
|
:value="index" |
|
|
|
> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item v-if="fmData.operateType == 'back'" |
|
|
|
<el-form-item |
|
|
|
v-if="fmData.operateType == 'back'" |
|
|
|
label="退回到:" |
|
|
|
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="结案状态:" |
|
|
|
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="结案说明:" |
|
|
|
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="内部备注:" |
|
|
|
prop="internalRemark"> |
|
|
|
<el-input type="textarea" |
|
|
|
<el-form-item label="内部备注:" 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 v-if="fmData.operateType != 'close'" |
|
|
|
<el-form-item |
|
|
|
v-if="fmData.operateType != 'close'" |
|
|
|
label="图片/附件:" |
|
|
|
prop="internalFile"> |
|
|
|
<el-upload class="avatar-uploader" |
|
|
|
prop="internalFile" |
|
|
|
> |
|
|
|
<el-upload |
|
|
|
class="avatar-uploader" |
|
|
|
:action="uploadUlr" |
|
|
|
: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 != 'close'" |
|
|
|
<el-form-item |
|
|
|
v-if="fmData.operateType != 'close'" |
|
|
|
label="公开回复:" |
|
|
|
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> |
|
|
|
</div> |
|
|
|
<div class="m-btns"> |
|
|
|
<el-button size="" |
|
|
|
style="margin-right: 50px" |
|
|
|
@click="handleClose">关闭</el-button> |
|
|
|
<el-button size="" |
|
|
|
type="danger" |
|
|
|
@click="handleSubmit">确定</el-button> |
|
|
|
<el-button size="" style="margin-right: 50px" @click="handleClose" |
|
|
|
>关闭</el-button |
|
|
|
> |
|
|
|
<el-button size="" type="danger" @click="handleSubmit" |
|
|
|
>确定</el-button |
|
|
|
> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
</div> |
|
|
|
<div class="g-right"> |
|
|
|
<el-card class="m-card" |
|
|
|
<el-card |
|
|
|
class="m-card" |
|
|
|
:style="styleFullHeight" |
|
|
|
style="overflow: auto" |
|
|
|
v-if="projectProcess.length > 0"> |
|
|
|
v-if="projectProcess.length > 0" |
|
|
|
> |
|
|
|
<h3>处理进展</h3> |
|
|
|
<div class="m-process"> |
|
|
|
<div class="list"> |
|
|
|
<div class="item" |
|
|
|
<div |
|
|
|
class="item" |
|
|
|
:class="index === 0 ? 'z-on' : ''" |
|
|
|
: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"> |
|
|
@ -325,22 +401,25 @@ |
|
|
|
<div class="detail-value">{{ item.departmentName }}</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="detail" |
|
|
|
v-if="item.assistanceUnitName"> |
|
|
|
<div class="detail" v-if="item.assistanceUnitName"> |
|
|
|
<div class="detail-field">协办单位:</div> |
|
|
|
<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> |
|
|
@ -348,10 +427,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> |
|
|
@ -365,16 +446,21 @@ |
|
|
|
</div> |
|
|
|
|
|
|
|
<div v-if="pageType == 'origin-info'"> |
|
|
|
<issue-info v-if="projectInfo.origin == 'issue'" |
|
|
|
<issue-info |
|
|
|
v-if="projectInfo.origin == 'issue'" |
|
|
|
@close="handleBackInfo" |
|
|
|
:issue-id="projectInfo.originId" /> |
|
|
|
<event-info v-if="projectInfo.origin == 'resi_event'" |
|
|
|
:issue-id="projectInfo.originId" |
|
|
|
/> |
|
|
|
<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" |
|
|
@ -382,7 +468,8 @@ |
|
|
|
width="850px" |
|
|
|
top="5vh" |
|
|
|
class="dialog-h" |
|
|
|
@closed="showedEvaluation = false"> |
|
|
|
@closed="showedEvaluation = false" |
|
|
|
> |
|
|
|
<project-evaluation :projectId="projectIdCopy"></project-evaluation> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
@ -667,30 +754,50 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
mounted() { |
|
|
|
|
|
|
|
console.log(this.projectIdCopy); |
|
|
|
this.getApiData(); |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
beforeImgUpload(file) { |
|
|
|
console.log(file); |
|
|
|
const isLt1M = file.size / 1024 / 1024 < 10; |
|
|
|
const srcType = file.type; |
|
|
|
const format = file.name.split(".").pop(); |
|
|
|
|
|
|
|
if (!isLt1M) { |
|
|
|
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) { |
|
|
|
console.log("res.data.url", file); |
|
|
|
console.log("handleImgSuccess", file); |
|
|
|
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({ |
|
|
|
format: file.name.split(".").pop(), |
|
|
|
format, |
|
|
|
name: file.name, |
|
|
|
size: file.size, |
|
|
|
type: file.raw.type, |
|
|
|
type, |
|
|
|
url: res.data.url, |
|
|
|
}); |
|
|
|
console.log(this.fmData.internalFile); |
|
|
@ -700,11 +807,13 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
handleImgRemove(file) { |
|
|
|
console.log("handleImgRemove", file); |
|
|
|
if (file.response) { |
|
|
|
let index = this.fmData.internalFile.findIndex( |
|
|
|
(item) => item.url == file.response.data.url |
|
|
|
); |
|
|
|
this.fmData.internalFile.splice(index, 1); |
|
|
|
console.log(this.fmData.internalFile); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
watchImg(src) { |
|
|
|