|
@ -22,6 +22,7 @@ |
|
|
<span>内部备注:</span> |
|
|
<span>内部备注:</span> |
|
|
<span>{{ projectInfo.internalRemark || "--" }}</span> |
|
|
<span>{{ projectInfo.internalRemark || "--" }}</span> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div |
|
|
<div |
|
|
class="info-prop" |
|
|
class="info-prop" |
|
|
v-if="projectInfo.departmentNameList.length > 0" |
|
|
v-if="projectInfo.departmentNameList.length > 0" |
|
@ -29,18 +30,27 @@ |
|
|
<span>当前处理部门:</span> |
|
|
<span>当前处理部门:</span> |
|
|
<span>{{ projectInfo.departmentNameList.join("、") }}</span> |
|
|
<span>{{ projectInfo.departmentNameList.join("、") }}</span> |
|
|
</div> |
|
|
</div> |
|
|
<div class="info-prop"> |
|
|
|
|
|
|
|
|
<div |
|
|
|
|
|
class="info-prop" |
|
|
|
|
|
v-if=" |
|
|
|
|
|
projectInfo.origin == 'issue' || |
|
|
|
|
|
projectInfo.origin == 'resi_event' |
|
|
|
|
|
" |
|
|
|
|
|
> |
|
|
<span>项目来源:</span> |
|
|
<span>项目来源:</span> |
|
|
<a style="cursor: pointer" @click="handleWatchOrigin" |
|
|
<a style="cursor: pointer" @click="handleWatchOrigin" |
|
|
>查看项目来源</a |
|
|
>查看项目来源</a |
|
|
> |
|
|
> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="info-prop"> |
|
|
<div class="info-prop"> |
|
|
<span>项目评价:</span> |
|
|
<span>项目评价:</span> |
|
|
<a style="cursor: pointer" @click="showedEvaluation=true" |
|
|
<a style="cursor: pointer" @click="showedEvaluation = true" |
|
|
>查看项目评价</a |
|
|
>查看项目评价</a |
|
|
> |
|
|
> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="info-prop" v-if="projectCate.length > 0"> |
|
|
<div class="info-prop" v-if="projectCate.length > 0"> |
|
|
<span>分类:</span> |
|
|
<span>分类:</span> |
|
|
<fold-text style="width: 300px" :row="3"> |
|
|
<fold-text style="width: 300px" :row="3"> |
|
@ -59,28 +69,168 @@ |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="m-btns" v-if="type == 'info'"> |
|
|
<div |
|
|
|
|
|
class="m-btns" |
|
|
|
|
|
v-if="type == 'info' || projectInfo.projectStatus != 'pending'" |
|
|
|
|
|
> |
|
|
<el-button size="" @click="handleClose">关闭</el-button> |
|
|
<el-button size="" @click="handleClose">关闭</el-button> |
|
|
</div> |
|
|
</div> |
|
|
</el-card> |
|
|
</el-card> |
|
|
<el-card v-if="type == 'edit'"> |
|
|
<el-card |
|
|
|
|
|
v-if="type == 'edit' && projectInfo.projectStatus == 'pending'" |
|
|
|
|
|
> |
|
|
<h3>处理</h3> |
|
|
<h3>处理</h3> |
|
|
<div class="m-fm"> |
|
|
<div class="m-fm"> |
|
|
<el-form |
|
|
<el-form |
|
|
:inline="true" |
|
|
ref="fm" |
|
|
|
|
|
:inline="false" |
|
|
:model="fmData" |
|
|
:model="fmData" |
|
|
:rules="dataRule" |
|
|
:rules="dataRule" |
|
|
label-position="left" |
|
|
label-position="left" |
|
|
label-width="100px" |
|
|
label-width="100px" |
|
|
> |
|
|
> |
|
|
<el-form-item label="处理:" 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="3">处理/响应</el-radio> |
|
|
<el-radio label="dispose">处理/响应</el-radio> |
|
|
<el-radio :label="6">结案</el-radio> |
|
|
<el-radio label="close">结案</el-radio> |
|
|
<el-radio :label="9">转其他机关/科室</el-radio> |
|
|
<el-radio label="turn">转其他机关/科室</el-radio> |
|
|
<el-radio :label="10">退回</el-radio> |
|
|
<el-radio label="back" v-if="projectInfo.returnable" |
|
|
|
|
|
>退回</el-radio |
|
|
|
|
|
> |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<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" |
|
|
|
|
|
:key="item.projectStaffId" |
|
|
|
|
|
:label="item.departmentName" |
|
|
|
|
|
:value="item.projectStaffId" |
|
|
|
|
|
> |
|
|
|
|
|
</el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item |
|
|
|
|
|
v-if="fmData.operateType != 'back'" |
|
|
|
|
|
label="协办单位:" |
|
|
|
|
|
prop="assistanceUnitIndex" |
|
|
|
|
|
> |
|
|
|
|
|
<el-select |
|
|
|
|
|
v-model.trim="fmData.assistanceUnitIndex" |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
class="resi-cell-select" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="(item, index) in assistanceUnitList" |
|
|
|
|
|
:key="item.assistanceUnitId" |
|
|
|
|
|
:label="item.assistanceUnitName" |
|
|
|
|
|
:value="index" |
|
|
|
|
|
> |
|
|
|
|
|
</el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item |
|
|
|
|
|
v-if="fmData.operateType == 'back'" |
|
|
|
|
|
label="退回到:" |
|
|
|
|
|
prop="projectProcessId" |
|
|
|
|
|
> |
|
|
|
|
|
<el-select |
|
|
|
|
|
v-model.trim="fmData.projectProcessId" |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
class="resi-cell-select" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in returnableList" |
|
|
|
|
|
:key="item.projectProcessId" |
|
|
|
|
|
:label="item.processor" |
|
|
|
|
|
:value="item.projectProcessId" |
|
|
|
|
|
> |
|
|
|
|
|
</el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item |
|
|
|
|
|
v-if="fmData.operateType == 'close'" |
|
|
|
|
|
label="结案状态:" |
|
|
|
|
|
prop="closedStatus" |
|
|
|
|
|
> |
|
|
|
|
|
<el-select |
|
|
|
|
|
v-model.trim="fmData.closedStatus" |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
class="resi-cell-select" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in resolveTypeList" |
|
|
|
|
|
:key="item.closedStatus" |
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
> |
|
|
|
|
|
</el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item |
|
|
|
|
|
v-if="fmData.operateType == 'close'" |
|
|
|
|
|
label="结案说明:" |
|
|
|
|
|
prop="publicReply" |
|
|
|
|
|
> |
|
|
|
|
|
<el-input |
|
|
|
|
|
type="textarea" |
|
|
|
|
|
:rows="2" |
|
|
|
|
|
placeholder="您输入的结案说明会向居民公开展示" |
|
|
|
|
|
v-model="fmData.publicReply" |
|
|
|
|
|
> |
|
|
|
|
|
</el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="内部备注:" prop="internalRemark"> |
|
|
|
|
|
<el-input |
|
|
|
|
|
type="textarea" |
|
|
|
|
|
:rows="2" |
|
|
|
|
|
placeholder="请输入内容" |
|
|
|
|
|
v-model="fmData.internalRemark" |
|
|
|
|
|
> |
|
|
|
|
|
</el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item |
|
|
|
|
|
v-if="fmData.operateType != 'close'" |
|
|
|
|
|
label="图片/附件:" |
|
|
|
|
|
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" |
|
|
|
|
|
> |
|
|
|
|
|
<i class="el-icon-plus avatar-uploader-icon"></i> |
|
|
|
|
|
</el-upload> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item |
|
|
|
|
|
v-if="fmData.operateType != 'close'" |
|
|
|
|
|
label="公开回复:" |
|
|
|
|
|
prop="publicReply" |
|
|
|
|
|
> |
|
|
|
|
|
<el-input |
|
|
|
|
|
type="textarea" |
|
|
|
|
|
:rows="2" |
|
|
|
|
|
placeholder="请输入内容" |
|
|
|
|
|
v-model="fmData.publicReply" |
|
|
|
|
|
> |
|
|
|
|
|
</el-input> |
|
|
|
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
</div> |
|
|
</div> |
|
|
<div class="m-btns"> |
|
|
<div class="m-btns"> |
|
@ -196,15 +346,46 @@ 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", |
|
|
|
|
|
|
|
|
showedEvaluation: false, |
|
|
showedEvaluation: false, |
|
|
|
|
|
|
|
|
projectIdCopy: this.projectId, |
|
|
projectIdCopy: this.projectId, |
|
|
|
|
|
|
|
|
|
|
|
customerId: localStorage.getItem("customerId"), |
|
|
|
|
|
|
|
|
fmData: { |
|
|
fmData: { |
|
|
operateType: "", |
|
|
operateType: "", |
|
|
|
|
|
|
|
|
|
|
|
assistanceUnitIndex: "", |
|
|
|
|
|
assistanceUnitId: "", |
|
|
|
|
|
assistanceUnitType: "", |
|
|
|
|
|
|
|
|
|
|
|
internalRemark: "", |
|
|
|
|
|
publicReply: "", |
|
|
|
|
|
internalFile: [], |
|
|
|
|
|
departmentName: "", |
|
|
|
|
|
projectStaffId: "", |
|
|
|
|
|
|
|
|
|
|
|
projectProcessId: "", |
|
|
|
|
|
|
|
|
|
|
|
closedStatus: "", |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
myDepartmentList: [], |
|
|
|
|
|
assistanceUnitList: [], |
|
|
|
|
|
returnableList: [], |
|
|
|
|
|
resolveTypeList: [ |
|
|
|
|
|
{ |
|
|
|
|
|
name: "已解决", |
|
|
|
|
|
value: "resolved", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
name: "无需解决", |
|
|
|
|
|
value: "unresolved", |
|
|
|
|
|
}, |
|
|
|
|
|
], |
|
|
|
|
|
|
|
|
projectProcess: [], |
|
|
projectProcess: [], |
|
|
|
|
|
|
|
|
projectInfo: { |
|
|
projectInfo: { |
|
@ -223,7 +404,7 @@ function iniData() { |
|
|
platformIds: [], |
|
|
platformIds: [], |
|
|
processable: false, |
|
|
processable: false, |
|
|
projectId: "", |
|
|
projectId: "", |
|
|
projectStatus: "pending", |
|
|
projectStatus: "", |
|
|
projectTitle: "", |
|
|
projectTitle: "", |
|
|
publicReply: "", |
|
|
publicReply: "", |
|
|
returnable: false, |
|
|
returnable: false, |
|
@ -276,7 +457,7 @@ export default { |
|
|
props: { |
|
|
props: { |
|
|
projectId: { |
|
|
projectId: { |
|
|
type: String, |
|
|
type: String, |
|
|
default: "64502a8f1048a7240295527a9b32e513", |
|
|
default: "", |
|
|
}, |
|
|
}, |
|
|
type: { |
|
|
type: { |
|
|
type: String, |
|
|
type: String, |
|
@ -295,11 +476,42 @@ export default { |
|
|
|
|
|
|
|
|
computed: { |
|
|
computed: { |
|
|
dataRule() { |
|
|
dataRule() { |
|
|
return { |
|
|
const { |
|
|
operateType: [ |
|
|
fmData: { operateType }, |
|
|
{ required: true, message: "处理方式不能为空", trigger: "blur" }, |
|
|
} = this; |
|
|
], |
|
|
let obj = (() => { |
|
|
}; |
|
|
return { |
|
|
|
|
|
operateType: [ |
|
|
|
|
|
{ required: true, message: "处理方式不能为空", trigger: "blur" }, |
|
|
|
|
|
], |
|
|
|
|
|
projectStaffId: [ |
|
|
|
|
|
{ required: true, message: "请选择处理部门", trigger: "blur" }, |
|
|
|
|
|
], |
|
|
|
|
|
}; |
|
|
|
|
|
})(); |
|
|
|
|
|
if (operateType != "") { |
|
|
|
|
|
if (operateType == "close") { |
|
|
|
|
|
obj.publicReply = [ |
|
|
|
|
|
{ required: true, message: "请填写结案说明", trigger: "blur" }, |
|
|
|
|
|
]; |
|
|
|
|
|
obj.closedStatus = [ |
|
|
|
|
|
{ required: true, message: "请选择结案状态", trigger: "blur" }, |
|
|
|
|
|
]; |
|
|
|
|
|
} else { |
|
|
|
|
|
obj.internalRemark = [ |
|
|
|
|
|
{ required: true, message: "请填写内部备注", trigger: "blur" }, |
|
|
|
|
|
]; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
console.log(obj); |
|
|
|
|
|
if (this.$refs && this.$refs.fm) { |
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
|
this.$refs["fm"].clearValidate(); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return obj; |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
@ -311,9 +523,26 @@ export default { |
|
|
}); |
|
|
}); |
|
|
this.getApiData(); |
|
|
this.getApiData(); |
|
|
}, |
|
|
}, |
|
|
// projectIdCopy () { |
|
|
"fmData.assistanceUnitIndex": function (val) { |
|
|
|
|
|
if (val === "") { |
|
|
// }, |
|
|
this.fmData.assistanceUnitId = ""; |
|
|
|
|
|
this.fmData.assistanceUnitType = ""; |
|
|
|
|
|
} else { |
|
|
|
|
|
this.fmData.assistanceUnitId = |
|
|
|
|
|
this.assistanceUnitList[val].assistanceUnitId; |
|
|
|
|
|
this.fmData.assistanceUnitType = |
|
|
|
|
|
this.assistanceUnitList[val].assistanceUnitType; |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
"fmData.projectStaffId": function (val) { |
|
|
|
|
|
if (val === "") { |
|
|
|
|
|
this.fmData.departmentName = ""; |
|
|
|
|
|
} else { |
|
|
|
|
|
this.fmData.departmentName = this.myDepartmentList.find( |
|
|
|
|
|
(item) => item.projectStaffId == val |
|
|
|
|
|
)["departmentName"]; |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
mounted() { |
|
|
mounted() { |
|
@ -322,6 +551,40 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
beforeImgUpload(file) { |
|
|
|
|
|
const isLt1M = file.size / 1024 / 1024 < 10; |
|
|
|
|
|
|
|
|
|
|
|
if (!isLt1M) { |
|
|
|
|
|
this.$message.error("上传文件大小不能超过 10MB!"); |
|
|
|
|
|
} |
|
|
|
|
|
return isLt1M; |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
handleImgSuccess(res, file, fileList) { |
|
|
|
|
|
console.log("res.data.url", file); |
|
|
|
|
|
if (res.code === 0 && res.msg === "success") { |
|
|
|
|
|
console.log("res.data.url", res.data.url); |
|
|
|
|
|
this.fmData.internalFile.push({ |
|
|
|
|
|
format: file.name.split(".").pop(), |
|
|
|
|
|
name: file.name, |
|
|
|
|
|
size: file.size, |
|
|
|
|
|
type: file.raw.type, |
|
|
|
|
|
url: res.data.url, |
|
|
|
|
|
}); |
|
|
|
|
|
console.log(this.fmData.internalFile); |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error(res.msg); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
handleImgRemove(file) { |
|
|
|
|
|
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) { |
|
|
watchImg(src) { |
|
|
window.open(src); |
|
|
window.open(src); |
|
|
}, |
|
|
}, |
|
@ -331,7 +594,29 @@ export default { |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleSubmit() { |
|
|
handleSubmit() { |
|
|
this.$emit("afterEdit"); |
|
|
this.$refs["fm"].validate((valid, messageObj) => { |
|
|
|
|
|
if (valid) { |
|
|
|
|
|
this.beforeSubmit(); |
|
|
|
|
|
} else { |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
beforeSubmit() { |
|
|
|
|
|
const { |
|
|
|
|
|
fmData: { operateType }, |
|
|
|
|
|
} = this; |
|
|
|
|
|
if (operateType == "dispose") { |
|
|
|
|
|
this.submitDispose(); |
|
|
|
|
|
} else if (operateType == "close") { |
|
|
|
|
|
this.submitClose(); |
|
|
|
|
|
} else if (operateType == "trun") { |
|
|
|
|
|
this.submitTurn(); |
|
|
|
|
|
} else if (operateType == "back") { |
|
|
|
|
|
this.submitBack(); |
|
|
|
|
|
} else { |
|
|
|
|
|
return this.$message.error("请先选择处理方式"); |
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleWatchOrigin() { |
|
|
handleWatchOrigin() { |
|
@ -341,6 +626,131 @@ export default { |
|
|
this.pageType = "info"; |
|
|
this.pageType = "info"; |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
|
|
|
async submitBack() { |
|
|
|
|
|
const url = "/gov/project/trace/return-v2"; |
|
|
|
|
|
const { fmData } = this; |
|
|
|
|
|
|
|
|
|
|
|
const loading = this.$loading({ |
|
|
|
|
|
lock: true, |
|
|
|
|
|
text: "Loading", |
|
|
|
|
|
spinner: "el-icon-loading", |
|
|
|
|
|
background: "rgba(0, 0, 0, 0.5)", |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
|
|
|
projectId: this.projectIdCopy, |
|
|
|
|
|
projectProcessId: fmData.projectProcessId, |
|
|
|
|
|
departmentName: fmData.departmentName, |
|
|
|
|
|
internalRemark: fmData.internalRemark, |
|
|
|
|
|
projectStaffId: fmData.projectStaffId, |
|
|
|
|
|
publicReply: fmData.publicReply, |
|
|
|
|
|
internalFile: fmData.internalFile, |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
loading.close(); |
|
|
|
|
|
|
|
|
|
|
|
if (code === 0) { |
|
|
|
|
|
this.$emit("afterEdit"); |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error(msg); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
|
|
|
async submitClose() { |
|
|
|
|
|
const url = "/gov/project/trace/closeproject-v2"; |
|
|
|
|
|
const { fmData } = this; |
|
|
|
|
|
|
|
|
|
|
|
const loading = this.$loading({ |
|
|
|
|
|
lock: true, |
|
|
|
|
|
text: "Loading", |
|
|
|
|
|
spinner: "el-icon-loading", |
|
|
|
|
|
background: "rgba(0, 0, 0, 0.5)", |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
|
|
|
projectId: this.projectIdCopy, |
|
|
|
|
|
closedStatus: fmData.closedStatus, |
|
|
|
|
|
departmentName: fmData.departmentName, |
|
|
|
|
|
internalRemark: fmData.internalRemark, |
|
|
|
|
|
projectStaffId: fmData.projectStaffId, |
|
|
|
|
|
publicReply: fmData.publicReply, |
|
|
|
|
|
internalFile: fmData.internalFile, |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
loading.close(); |
|
|
|
|
|
|
|
|
|
|
|
if (code === 0) { |
|
|
|
|
|
this.$emit("afterEdit"); |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error(msg); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
|
|
|
async submitTurn() { |
|
|
|
|
|
const url = "/gov/project/trace/return-v2"; |
|
|
|
|
|
const { fmData } = this; |
|
|
|
|
|
|
|
|
|
|
|
const loading = this.$loading({ |
|
|
|
|
|
lock: true, |
|
|
|
|
|
text: "Loading", |
|
|
|
|
|
spinner: "el-icon-loading", |
|
|
|
|
|
background: "rgba(0, 0, 0, 0.5)", |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
|
|
|
projectId: this.projectIdCopy, |
|
|
|
|
|
projectProcessId: fmData.projectProcessId, |
|
|
|
|
|
departmentName: fmData.departmentName, |
|
|
|
|
|
internalRemark: fmData.internalRemark, |
|
|
|
|
|
projectStaffId: fmData.projectStaffId, |
|
|
|
|
|
publicReply: fmData.publicReply, |
|
|
|
|
|
internalFile: fmData.internalFile, |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
loading.close(); |
|
|
|
|
|
|
|
|
|
|
|
if (code === 0) { |
|
|
|
|
|
this.$emit("afterEdit"); |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error(msg); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
|
|
|
async submitDispose() { |
|
|
|
|
|
const url = "/gov/project/trace/response-v2"; |
|
|
|
|
|
const { fmData } = this; |
|
|
|
|
|
|
|
|
|
|
|
const loading = this.$loading({ |
|
|
|
|
|
lock: true, |
|
|
|
|
|
text: "Loading", |
|
|
|
|
|
spinner: "el-icon-loading", |
|
|
|
|
|
background: "rgba(0, 0, 0, 0.5)", |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
|
|
|
projectId: this.projectIdCopy, |
|
|
|
|
|
departmentName: fmData.departmentName, |
|
|
|
|
|
internalRemark: fmData.internalRemark, |
|
|
|
|
|
projectStaffId: fmData.projectStaffId, |
|
|
|
|
|
publicReply: fmData.publicReply, |
|
|
|
|
|
internalFile: fmData.internalFile, |
|
|
|
|
|
assistanceUnitId: fmData.assistanceUnitId, |
|
|
|
|
|
assistanceUnitType: fmData.assistanceUnitType, |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
loading.close(); |
|
|
|
|
|
|
|
|
|
|
|
if (code === 0) { |
|
|
|
|
|
this.$emit("afterEdit"); |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error(msg); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
async getApiData() { |
|
|
async getApiData() { |
|
|
await this.getProjectInfo(); |
|
|
await this.getProjectInfo(); |
|
|
this.getProjectCate(); |
|
|
this.getProjectCate(); |
|
@ -357,6 +767,58 @@ export default { |
|
|
|
|
|
|
|
|
if (code === 0) { |
|
|
if (code === 0) { |
|
|
this.projectInfo = data; |
|
|
this.projectInfo = data; |
|
|
|
|
|
if (data.projectStatus == "pending") { |
|
|
|
|
|
this.getMyDepartmentList(); |
|
|
|
|
|
this.getAssistanceUnitList(); |
|
|
|
|
|
if (data.returnable) { |
|
|
|
|
|
this.getReturnableList(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error(msg); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
|
|
|
async getReturnableList() { |
|
|
|
|
|
const url = "/gov/project/trace/returnablelist"; |
|
|
|
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
|
|
|
projectId: this.projectIdCopy, |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
if (code === 0) { |
|
|
|
|
|
this.returnableList = data; |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error(msg); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
|
|
|
async getMyDepartmentList() { |
|
|
|
|
|
const url = "/gov/project/trace/mydepartmentlist"; |
|
|
|
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
|
|
|
projectId: this.projectIdCopy, |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
if (code === 0) { |
|
|
|
|
|
this.myDepartmentList = data; |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error(msg); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
//加载组织数据 |
|
|
|
|
|
async getAssistanceUnitList() { |
|
|
|
|
|
const url = "/heart/icpartyunit/assistanceUnitList"; |
|
|
|
|
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
|
|
|
// projectId: this.projectIdCopy, |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
if (code === 0) { |
|
|
|
|
|
this.assistanceUnitList = data; |
|
|
} else { |
|
|
} else { |
|
|
this.$message.error(msg); |
|
|
this.$message.error(msg); |
|
|
} |
|
|
} |
|
|