合并分支 'dev_third_stage' 到 'master'

Dev third stage

查看合并请求 laws-nio/laws-weilai!83
This commit is contained in:
肖文钰
2022-07-14 15:38:23 +08:00
73 changed files with 3189 additions and 507 deletions
@@ -11,15 +11,19 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text" :title="$t('complianceResults')">{{$t('complianceResults')}}</span>
</div>
<a-form-model-item class="itemModel" prop="flag">
<a-radio-group style="margin-top: 2px" class="box-input" v-model="formInline.flag">
<a-radio value="0">
<div class="title-text-right" v-if="disabled">
{{formInline.complianceResult == 'Compliance'?$t('accord'):$t('nonConformity')}}
</div>
<a-form-model-item class="itemModel" v-if="!disabled" :prop="!disabled?'complianceResult':''">
<a-radio-group style="margin-top: 2px" class="box-input"
v-model="formInline.complianceResult">
<a-radio value="Compliance">
{{$t('accord')}}
</a-radio>
<a-radio value="1">
<a-radio value="Non-Compliance">
{{$t('nonConformity')}}
</a-radio>
</a-radio-group>
@@ -32,21 +36,24 @@
{{$t('feedbackPoint')+(index+1)}}
<a-icon class="icon-size"
@click="addData"
v-if="(formInline.dataList.length-1) == index"
v-if="(formInline.dataList.length-1) == index && !disabled"
type="plus-circle"/>
<a-icon class="icon-size"
@click="deleteData"
v-if="formInline.dataList.length > 1 && (formInline.dataList.length - 1) == index"
v-if="formInline.dataList.length > 1 && (formInline.dataList.length - 1) == index && !disabled"
type="minus-circle"/>
</div>
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text" :title="$t('relevantSections')">{{$t('relevantSections')}}</span>
</div>
<a-form-model-item class="itemModel"
<div class="title-text-right" :title="item.relatedSection" v-if="disabled">
{{item.relatedSection}}
</div>
<a-form-model-item class="itemModel" v-if="!disabled"
:prop="'dataList.'+index+'.relatedSection'"
:rules="[{ required: true, message: $t('relevantSections') + $t('cannotEmpty'), trigger: 'blur'},
{max: 300,message: $t('relevantSections') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'
@@ -61,11 +68,14 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="Required" v-if="!disabled">*</span>
<span class="title-text-text"
:title="$t('problemDescription')">{{$t('problemDescription')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'dataList.'+index+'.issueOrSuggest'"
<div class="title-text-right" :title="item.issueOrSuggest" v-if="disabled">
{{item.issueOrSuggest}}
</div>
<a-form-model-item class="itemModel" :prop="'dataList.'+index+'.issueOrSuggest'" v-if="!disabled"
:rules="[{ required: true, message: $t('problemDescription') + $t('cannotEmpty'), trigger: 'blur'},
{max: 300,message: $t('problemDescription') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'
}]">
@@ -83,7 +93,16 @@
<div class="title-text">
<span class="title-text-text" :title="$t('enclosure')">{{$t('enclosure')}}</span>
</div>
<a-form-model-item class="itemModel" prop="accessoryFile">
<div class="title-text-right" v-if="disabled">
<span style="color: #21c9cc;cursor: pointer"
v-if="item.accessoryFile" @click="viewUploadedFilesClick(item.accessoryFile)">
{{$t('viewFile')}}
</span>
<span v-else>
--
</span>
</div>
<a-form-model-item class="itemModel" prop="accessoryFile" v-if="!disabled">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('accessoryFile',index)">
{{ (item.accessoryFile === 'null' || item.accessoryFile === '' ||
@@ -95,20 +114,42 @@
</a-col>
</a-row>
</div>
<div class="box-text" style="margin-top: 10px" v-if="disabled">
<div class="header-text">
{{$t('sponsorReview')}}
</div>
</div>
<a-row :gutter="24" v-if="disabled">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('reviewComments')">{{$t('reviewComments')}}</span>
</div>
<a-form-model-item class="itemModel" prop="approvalOpinion">
<a-textarea :placeholder="$t('pleaseEnter')+$t('reviewComments')" v-model="formInline.approvalOpinion"
:rows="4"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</div>
<uploadFile ref="uploadFile" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile>
<viewFileModel ref="viewFileModelRef"/>
</div>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import uploadFile from '@/components/uploadFile/file'
import viewFileModel from '@/components/viewFileModel/index'
export default {
name: 'evaluatorFeedback',
components: {
uploadFile
uploadFile,
viewFileModel
},
props: {
title: {
@@ -120,19 +161,34 @@
default: (() => {
return []
})
},
complianceResult: {
type: Object,
default: {}
}
},
data() {
return {
formInline: {},
disabled: false,
rules: {
flag:[
complianceResult: [
{
required: true,
message: this.$t('complianceResults') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
approvalOpinion: [
{
required: true,
message: this.$t('reviewComments') + this.$t('cannotEmpty'),
trigger: 'blur'
},
{
max: 300,
message: this.$t('reviewComments') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
],
relatedSection: [
{
@@ -159,6 +215,7 @@
}
]
},
disabled: false,
uploadIndex: '',
dataList: []
}
@@ -177,8 +234,16 @@
}
]
}
if (this.complianceResult.complianceResult) {
this.formInline.complianceResult = this.complianceResult.complianceResult
}
this.formInline = { ...this.formInline }
})
if (this.$route.query.taskDefinitionKey == 'pgrqr') {
this.disabled = false
} else {
this.disabled = true
}
},
methods: {
clickButtonToUpload(item, index) {
@@ -204,7 +269,10 @@
}
/** 赋值给当前对应的表单文件 */
this.formInline.dataList[this.uploadIndex][this.uploadName] = attIdList.join(',')
this.formInline = [...this.formInline]
this.formInline = { ...this.formInline }
},
viewUploadedFilesClick(item) {
this.$refs.viewFileModelRef.clickButtonToUpload(item)
},
addData() {
this.formInline.dataList.push({
@@ -213,19 +281,22 @@
reason: '',
accessoryFile: ''
})
this.formInline = [...this.formInline]
this.formInline = { ...this.formInline }
},
deleteData() {
this.formInline.dataList.pop()
this.formInline = [...this.formInline]
this.formInline = { ...this.formInline }
},
submitData(callBack){
submitData(callBack) {
this.$refs.ruleForm.validate(valid => {
if (valid) {
callBack && callBack(this.formInline)
}
})
},
preservationData(callBack) {
callBack && callBack(this.formInline)
}
}
}
</script>
@@ -277,12 +348,23 @@
}
.itemModel {
width: calc(100% - 130px);
width: calc(100% - 110px);
display: inline-block;
margin-top: 2px;
margin-bottom: 12px;
}
.title-text-right {
display: inline-block;
width: calc(100% - 130px);
padding-top: 12px;
font-size: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: #000F16;
}
.Required {
color: red;
margin-right: 4px;
@@ -302,7 +384,7 @@
}
.feedbackPoint {
font-size: 14px;
font-size: 16px;
font-weight: 400;
color: #000F16;
margin-bottom: 10px;
@@ -14,100 +14,287 @@
:data-source="dataSource"
:columns="columns"
>
<div slot="clauseContent" slot-scope="text,result">
<a-tooltip placement="topLeft">
<template slot="title">
<span v-html="text"></span>
</template>
<div class="clauseContent-text" v-html="text"></div>
</a-tooltip>
</div>
<span slot="nameTechnicalDocument" slot-scope="text,result">
<a-input class="box-input"
:maxLength="100"
v-model="result.technicalFileName"
:placeholder="$t('PleaseEnter')+$t('nameTechnicalDocument')"/>
</span>
<span slot="chapter" slot-scope="text,result">
<a-textarea :placeholder="$t('pleaseEnter')+$t('chapter')"
v-model="result.section"
:maxLength="300"
:rows="2"/>
</span>
<span slot="opinion" slot-scope="text,result">
<a-textarea :placeholder="$t('pleaseEnter')+$t('opinion')"
v-model="result.opinion"
:maxLength="300"
:rows="2"/>
</span>
<span slot="enclosure" slot-scope="text,result,index">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('accessoryFile',index)">
{{ (result.accessoryFile === 'null' || result.accessoryFile === '' ||
result.accessoryFile == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</span>
<span slot="complianceResults" slot-scope="text,result">
<a-select :placeholder="$t('PleaseSelect')+$t('complianceResults')"
class="box-input"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
allowClear
v-model="result.complianceResult">
<a-select-option v-for="(item, key) in complianceResultsList"
:key="key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title="item.name ">
{{ item.name }}
</span>
</a-select-option>
</a-select>
</span>
<span slot="accessoryFile" slot-scope="text,result">
<a v-if="text" @click="accessoryFileClick(text)">
{{ $t('viewFile') }}
</a>
<span v-else>--</span>
</span>
<span slot="Results" slot-scope="text,result">
{{text == 'Compliance' ? $t('accord'):$t('nonConformity')}}
</span>
<span slot="sponsorFeedback" slot-scope="text,result">
<a-textarea :placeholder="$t('pleaseEnter')+$t('sponsorFeedback')"
v-model="result.sponsorFeedback"
:maxLength="300"
:rows="2"/>
</span>
</a-table>
</div>
<uploadFile ref="uploadFile" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile>
<viewFileModel ref="viewFileModelRef"/>
</div>
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import uploadFile from '@/components/uploadFile/file'
import viewFileModel from '@/components/viewFileModel/index'
export default {
name: 'evaluatorFeedback',
components: {
uploadFile
uploadFile,
viewFileModel
},
props: {
title: {
type: String,
default: ''
},
evaluatorFeedbackList: {
type: Array,
default: (() => {
return []
})
}
},
data() {
return {
disabled:false,
loading:false,
uploadIndex:'',
dataSource:[],
columns:[
disabled: false,
loading: false,
uploadIndex: '',
dataSource: [],
complianceResultsList: [
{
name: this.$t('accord'),
value: 'Compliance'
},
{
name: this.$t('nonConformity'),
value: 'Non-Compliance'
}
],
columnsTwo: [
{
title: this.$t('clauseNo'),
dataIndex: 'items_num',
dataIndex: 'itemNum',
align: 'center',
width: 180,
ellipsis: true
},
{
title: this.$t('clauseName'),
dataIndex: 'items_name',
dataIndex: 'itemName',
align: 'center',
width: 180,
ellipsis: true
},
{
title: this.$t('clauseContent'),
dataIndex: 'iterms_conditions',
dataIndex: 'itemContent',
align: 'center',
ellipsis: true
width: 280,
scopedSlots: { customRender: 'clauseContent' }
},
{
title: this.$t('evaluationMethod'),
dataIndex: 'evaluationMethod',
dataIndex: 'evaluationMethodsName',
align: 'center',
width: 180,
ellipsis: true
},
{
title: this.$t('nameTechnicalDocument'),
dataIndex: 'nameTechnicalDocument',
dataIndex: 'technicalFileName',
align: 'center',
width: 280,
scopedSlots: { customRender: 'nameTechnicalDocument' }
},
{
title: this.$t('chapter'),
dataIndex: 'section',
align: 'center',
width: 180,
scopedSlots: { customRender: 'chapter' }
},
{
title: this.$t('opinion'),
dataIndex: 'opinion',
align: 'center',
width: 180,
scopedSlots: { customRender: 'opinion' }
},
{
title: this.$t('enclosure'),
dataIndex: 'accessoryFile',
align: 'center',
width: 180,
scopedSlots: { customRender: 'enclosure' }
},
{
title: this.$t('complianceResults'),
dataIndex: 'complianceResult',
align: 'center',
width: 180,
scopedSlots: { customRender: 'complianceResults' }
}
],
columnsThree: [
{
title: this.$t('clauseNo'),
dataIndex: 'itemNum',
align: 'center',
width: 180,
ellipsis: true
},
{
title: this.$t('clauseName'),
dataIndex: 'itemName',
align: 'center',
width: 180,
ellipsis: true
},
{
title: this.$t('clauseContent'),
dataIndex: 'itemContent',
align: 'center',
width: 280,
scopedSlots: { customRender: 'clauseContent' }
},
{
title: this.$t('evaluationMethod'),
dataIndex: 'evaluationMethodsName',
align: 'center',
width: 180,
ellipsis: true
},
{
title: this.$t('nameTechnicalDocument'),
dataIndex: 'technicalFileName',
align: 'center',
width: 280,
ellipsis: true
},
{
title: this.$t('chapter'),
dataIndex: 'chapter',
dataIndex: 'section',
align: 'center',
width: 180,
ellipsis: true
},
{
title: this.$t('opinion'),
dataIndex: 'opinion',
align: 'center',
width: 180,
ellipsis: true
},
{
title: this.$t('enclosure'),
dataIndex: 'enclosure',
dataIndex: 'accessoryFile',
align: 'center',
ellipsis: true
width: 180,
ellipsis: true,
scopedSlots: { customRender: 'accessoryFile' }
},
{
title: this.$t('complianceResults'),
dataIndex: 'complianceResults',
dataIndex: 'complianceResult',
align: 'center',
ellipsis: true
width: 180,
ellipsis: true,
scopedSlots: { customRender: 'Results' }
},
],
{
title: this.$t('sponsorFeedback'),
dataIndex: 'sponsorFeedback',
align: 'center',
width: 180,
ellipsis: true,
scopedSlots: { customRender: 'sponsorFeedback' }
}
]
}
},
mounted() {
if (this.evaluatorFeedbackList && this.evaluatorFeedbackList.length > 0) {
this.dataSource = this.evaluatorFeedbackList
if (this.$route.query.taskDefinitionKey != 'pgrqr') {
this.dataSource.forEach(res => {
res.sponsorFeedback = ''
})
this.dataSource = [...this.dataSource]
}
}
},
computed: {
columns() {
if (this.$route.query.taskDefinitionKey == 'pgrqr') {
return this.columnsTwo
} else {
return this.columnsThree
}
}
},
methods: {
clickButtonToUpload(item,index) {
clickButtonToUpload(item, index) {
this.$refs.uploadFile.perentHandleFunc()
this.$refs.uploadFile.visible = true
this.uploadName = item
this.uploadIndex = index
getAction('sys/common/getFileInfos', { id: this.dataList[this.uploadIndex][this.uploadName] }).then((res) => {
getAction('sys/common/getFileInfos', { id: this.dataSource[this.uploadIndex][this.uploadName] }).then((res) => {
if (res.success) {
this.$refs.uploadFile.perentHandleFunc(res.result)
} else {
@@ -124,9 +311,24 @@
})
}
/** 赋值给当前对应的表单文件 */
this.dataList[this.uploadIndex][this.uploadName] = attIdList.join(',')
this.dataList = [...this.dataList]
this.dataSource[this.uploadIndex][this.uploadName] = attIdList.join(',')
this.dataSource = [...this.dataSource]
},
submitData(callBack) {
for (let i = 0; i < this.dataSource.length; i++) {
if (!this.dataSource[i].complianceResult) {
this.$message.warning(this.$t('PleaseCompleteList'))
return
}
}
callBack && callBack(this.dataSource)
},
preservationData(callBack) {
callBack && callBack(this.dataSource)
},
accessoryFileClick(item) {
this.$refs.viewFileModelRef.clickButtonToUpload(item)
}
}
}
</script>
@@ -195,7 +397,7 @@
.button-text {
height: 38px;
width: calc(100% - 100px);
width: calc(100%);
line-height: 38px;
background: #fff;
border: 1px #00B3BE solid;
@@ -214,4 +416,28 @@
margin-left: 8px;
cursor: pointer;
}
.clauseContent-text {
width: 100%;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all
}
</style>
<style>
.box-input .ant-select-selection--single {
height: 38px;
}
.box-input .ant-select-selection__rendered {
line-height: 38px;
height: 38px;
}
</style>
@@ -68,7 +68,7 @@
getList() {
let query = {
actiProcInstId: this.$route.query.prcId,
flowType: '5'
flowType: this.$route.query.prcType
}
getAction('/lawsOpinionGather/lawsProcessHistoryEO/list', query).then((res) => {
if (res.success) {
@@ -13,22 +13,26 @@
:standardContentQuery="queryProject"
/>
<evaluatorFeedback
v-if="isDisplay"
v-if="isDisplay && !isTrue"
ref="evaluatorFeedbackRef"
:complianceResult="complianceResult"
:feedbackDataList="feedbackDataList"
:title="$t('evaluatorFeedback')"
/>
<evaluatorFeedbackList
v-if="isDisplay"
v-if="isDisplay && isTrue"
:evaluatorFeedbackList="evaluatorFeedbackList"
ref="evaluatorFeedbackListRef"
:title="$t('evaluatorFeedback')"
/>
<footerProcess
v-if="isDisplay"
isPreservation
:isPreservation="isPreservation"
:isSubmit="true"
:isSendBack="isSendBack"
@preservation="preservation"
@submit="submit"
@sendBack="sendBack"
/>
<circulationHistory v-if="isDisplay"/>
</div>
@@ -47,6 +51,7 @@
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import moment from 'moment'
import { mapGetters } from 'vuex'
export default {
name: 'evaluationProcess',
components: {
@@ -62,16 +67,22 @@
title: this.$t('collectionOfRegulatoryOpinions'),
url: {
queryTaskDetailByTaskIds: '/task/queryTaskDetailByTaskIds',
list: '/lawsOpinionGather/lawsOpinionAssessmentResultEO/list'
list: '/lawsTechnologyEvaluation/lawsTechnologyEvaluationResultEO/queryEvaluationResultAndComplianceResult'
},
loading: false,
isDisplay: true,
feedbackDataList: [],
queryProject: {},
standardContentList: [
evaluatorFeedbackList: [],
complianceResult: {},
isPreservation: false,
isSendBack: false,
isTrue: false,
standardContentList: [],
standardContent: [
{
title: this.$t('standard'),
value: 'serial_number'
value: 'serialNumber'
},
{
title: this.$t('title'),
@@ -79,7 +90,7 @@
},
{
title: this.$t('regulatoryEngineer'),
value: 'currentUserName'
value: 'regulationOwnerName'
},
{
title: this.$t('closingDate'),
@@ -87,54 +98,106 @@
},
{
title: this.$t('evaluationMethod'),
value: 'evaluationMethod',
value: 'evaluationMethodsName'
},
{
title: this.$t('RelevantMaterials'),
value: 'RelevantMaterials',
value: 'relatedDataFileId',
type: 2
},
{
title: this.$t('processBackground'),
value: 'processBackground'
}
// {
// title: this.$t('remarks'),
// value: 'remark'
// }
],
evaluatorFeedback: [
{
title: this.$t('standard'),
value: 'serialNumber'
},
{
title: this.$t('title'),
value: 'title'
},
{
title: this.$t('regulatoryEngineer'),
value: 'regulationOwnerName'
},
{
title: this.$t('closingDate'),
value: 'endTime'
},
{
title: this.$t('RelevantMaterials'),
value: 'relatedDataFileId',
type: 2
},
{},
{
title: this.$t('processBackground'),
value: 'processBackground'
}
]
}
},
mounted() {
this.isDisplay = true
// this.queryTaskDetailByTask(() => {
// this.lawsOpinionAssessmentResult()
// })
this.isDisplay = false
if (this.$route.query.taskDefinitionKey == 'pgrqr') {
this.isPreservation = true
this.isSendBack = false
} else {
this.isPreservation = false
this.isSendBack = true
}
this.queryTaskDetailByTask()
},
methods: {
...mapGetters(['userInfo']),
queryTaskDetailByTask(callback) {
queryTaskDetailByTask() {
this.loading = true
getAction(this.url.queryTaskDetailByTaskIds, { taskIds: this.$route.query.taskIds }).then((res) => {
if (res instanceof String) {
this.queryProject = JSON.parse(res) || {}
callback && callback()
} else {
this.queryProject = res || {}
callback && callback()
}
this.isTrue = this.queryProject.evaluationType == 'Feedback evaluation' ? false : true
if (this.isTrue) {
this.standardContentList = this.evaluatorFeedback
this.lawsTechnologyEvaluationItem()
} else {
this.standardContentList = this.standardContent
this.lawsOpinionAssessmentResult()
}
})
},
lawsTechnologyEvaluationItem() {
getAction('/lawsTechnologyEvaluation/lawsTechnologyEvaluationItemResultEO/list', {
lawsTechnologyEvaluationId: this.queryProject.lawsTechnologyEvaluationId,
actiProcInstId: this.$route.query.prcId
}).then((res) => {
if (res.success) {
this.evaluatorFeedbackList = res.result || []
this.loading = false
} else {
this.evaluatorFeedbackList = []
this.loading = false
}
this.isDisplay = true
})
},
lawsOpinionAssessmentResult() {
getAction(this.url.list, {
lawsOpinionGatherId: this.queryProject.id,
lawsTechnologyEvaluationId: this.queryProject.lawsTechnologyEvaluationId,
actiProcInstId: this.$route.query.prcId
}).then((res) => {
if (res.success) {
this.feedbackDataList = res.result || []
this.complianceResult = res.result.complianceResult || {}
this.feedbackDataList = res.result.evaluationResultEOList || []
this.loading = false
} else {
this.feedbackDataList = []
this.complianceResult = {}
this.loading = false
}
this.isDisplay = true
@@ -142,21 +205,52 @@
},
preservation() {
this.loading = true
let dataList = this.$refs.feedbackInformationRef.dataList
this.insertBatch(dataList, 1)
if (this.isTrue) {
this.$refs.evaluatorFeedbackListRef.preservationData((res) => {
this.batchUpdate(res, 1)
})
} else {
this.$refs.evaluatorFeedbackRef.preservationData((res) => {
this.insertBatch(res, 1)
})
}
},
insertBatch(list, num) {
list.forEach(res => {
res.lawsOpinionGatherId = this.queryProject.id
res.actiProcInstId = this.$route.query.prcId
batchUpdate(val, num) {
let query = {
actiProcInstId: this.$route.query.prcId,
lawsTechnologyEvaluationId: this.queryProject.lawsTechnologyEvaluationId,
itemResultList: val
}
postAction('/lawsTechnologyEvaluation/lawsTechnologyEvaluationItemResultEO/batchUpdate', query).then((res) => {
if (res.success) {
if (num == 1) {
this.$message.success(this.$t('OperationSuccessful'))
this.loading = false
} else {
if (this.queryProject.msg) {
delete this.queryProject.msg
}
this.completeTask()
}
} else {
if (num == 1) {
this.loading = false
this.$message.warning(this.$t('operationFailed'))
}
}
})
postAction('/lawsOpinionGather/lawsOpinionAssessmentResultEO/insertBatch', { dataList:list }).then((res) => {
},
insertBatch(val, num) {
let query = {
actiProcInstId: this.$route.query.prcId,
lawsTechnologyEvaluationId: this.queryProject.lawsTechnologyEvaluationId,
complianceResult: val.complianceResult,
evaluationResultList: val.dataList
}
postAction('/lawsTechnologyEvaluation/lawsTechnologyEvaluationResultEO/evaluatorSaveResult', query).then((res) => {
if (res.success) {
if (num == 1) {
this.$message.success(this.$t('OperationSuccessful'))
this.$router.push({
path: '/collectionOfRegulatoryOpinions'
})
this.loading = false
} else {
this.completeTask()
@@ -169,26 +263,61 @@
}
})
},
sendBack() {
if (this.isTrue) {
this.$refs.evaluatorFeedbackListRef.preservationData((res) => {
this.loading = true
this.queryProject.flag = '2'
this.batchUpdate(res, 2)
})
} else {
this.$refs.evaluatorFeedbackRef.preservationData((res) => {
this.loading = true
this.queryProject.approvalOpinion = res.approvalOpinion
this.queryProject.flag = '2'
this.completeTask()
})
}
},
submit() {
this.$refs.evaluatorFeedbackRef.submitData()
// let dataList = this.$refs.feedbackInformationRef.dataList
// this.insertBatch(dataList, 2)
if (this.isTrue) {
this.$refs.evaluatorFeedbackListRef.submitData((res) => {
if (this.$route.query.taskDefinitionKey == 'pgrqr') {
this.loading = true
this.batchUpdate(res, 2)
} else {
this.loading = true
this.queryProject.flag = '1'
this.batchUpdate(res, 2)
}
})
} else {
this.$refs.evaluatorFeedbackRef.submitData((res) => {
if (this.$route.query.taskDefinitionKey == 'pgrqr') {
this.loading = true
this.insertBatch(res, 2)
} else {
this.loading = true
this.queryProject.approvalOpinion = res.approvalOpinion
this.queryProject.flag = '1'
this.completeTask()
}
})
}
},
completeTask() {
let query = {
userid: this.userInfo().id,
taskId: this.$route.query.taskIds,
flag: this.queryProject.flag,
json: JSON.stringify(this.queryProject).replace(/\"/g, '\'')
}
postAction('/workFlow/completeTask', query).then((res) => {
if (res.success) {
// setTimeout(() => {
// window.close()
// }, 1000)
this.$message.success(this.$t('OperationSuccessful'))
this.loading = false
this.$router.push({
path: '/collectionOfRegulatoryOpinions'
path: '/technologyAssessment'
})
} else {
this.loading = false
@@ -13,7 +13,7 @@
</div>
<div class="action-bar">
</div>
<regulatoryCirculationHistory v-if="$route.query.prcType == '5'"/>
<regulatoryCirculationHistory v-if="$route.query.prcType == '5' || $route.query.prcType == '6'"/>
<circulationHistory v-else/>
</div>
</template>
@@ -51,7 +51,8 @@
selectedRowKeys: [],
prcTypeName: {
1: this.$t('taskConfirmationProcess'),
5:this.$t('collectionOfRegulatoryOpinionsProcess')
5:this.$t('collectionOfRegulatoryOpinionsProcess'),
6:this.$t('regulatoryTechnologyAssessmentProcess')
},
columns: [
{
@@ -52,7 +52,8 @@
selectedRowKeys: [],
prcTypeName: {
1: this.$t('taskConfirmationProcess'),
5:this.$t('collectionOfRegulatoryOpinionsProcess')
5:this.$t('collectionOfRegulatoryOpinionsProcess'),
6:this.$t('regulatoryTechnologyAssessmentProcess')
},
columns: [
{
@@ -52,7 +52,8 @@
selectedRowKeys: [],
prcTypeName: {
1: this.$t('taskConfirmationProcess'),
5:this.$t('collectionOfRegulatoryOpinionsProcess')
5:this.$t('collectionOfRegulatoryOpinionsProcess'),
6:this.$t('regulatoryTechnologyAssessmentProcess')
},
columns: [
{
@@ -50,7 +50,8 @@
selectedRowKeys: [],
prcTypeName: {
1: this.$t('taskConfirmationProcess'),
5:this.$t('collectionOfRegulatoryOpinionsProcess')
5:this.$t('collectionOfRegulatoryOpinionsProcess'),
6:this.$t('regulatoryTechnologyAssessmentProcess')
},
columns: [
{
@@ -168,6 +169,12 @@
query: row
})
window.open(newUrl.href, '_blank')
} else if (row.prcType == '6') {
let newUrl = this.$router.resolve({
path: '/evaluationProcess',
query: row
})
window.open(newUrl.href, '_blank')
}
},
onChange(page, pageSize) {