修改法规清单

This commit is contained in:
范强强
2023-03-20 18:04:36 +08:00
parent 98017d6bfe
commit 6b8cadab4e
6 changed files with 469 additions and 128 deletions
@@ -138,13 +138,13 @@
.box-text { .box-text {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
height: 80px; height: 40px;
line-height: 80px; line-height: 24px;
.header-text { .header-text {
font-size: 18px; font-size: 16px;
font-weight: 400; font-weight: bold;
color: #000F16; color: #000;
} }
} }
@@ -45,7 +45,7 @@
@showSizeChange="SizeChange" @showSizeChange="SizeChange"
/> />
</div> </div>
<designCompliance ref="designComplianceRef"/> <designCompliance ref="designComplianceRef" @designComplianceList="designComplianceList"/>
</div> </div>
</template> </template>
@@ -96,14 +96,14 @@
{ {
title: this.$t('Tasknode'), title: this.$t('Tasknode'),
align: 'left', align: 'left',
dataIndex: '', dataIndex: 'taskDefinitionKeyName',
ellipsis: true, ellipsis: true,
width: 170 width: 170
}, },
{ {
title: this.$t('typeOfDeliverables'), title: this.$t('typeOfDeliverables'),
align: 'left', align: 'left',
dataIndex: '', dataIndex: 'deliverableTypeName',
ellipsis: true, ellipsis: true,
width: 170 width: 170
}, },
@@ -198,6 +198,9 @@
this.selectedRowKeys = value this.selectedRowKeys = value
console.log(this.selectedRowKeys) console.log(this.selectedRowKeys)
}, },
designComplianceList(){
this.getList()
},
RelatedItemsClick(item) { RelatedItemsClick(item) {
let newUrl = this.$router.resolve({ let newUrl = this.$router.resolve({
path: '/ProjectDetails', path: '/ProjectDetails',
@@ -3,12 +3,13 @@
<a-drawer <a-drawer
:title="title" :title="title"
:maskClosable="false" :maskClosable="false"
:width="1200" :width="1000"
placement="right" placement="right"
:closable="true" :closable="true"
@close="handleCancel" @close="handleCancel"
:visible="visible" :visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;"> style="height: 100%;overflow: auto;margin-bottom: 436px;">
<JLoading :loading="loading">{{textLoading}}</JLoading> <JLoading :loading="loading">{{textLoading}}</JLoading>
<projectInformation <projectInformation
v-if="isDisplay" v-if="isDisplay"
@@ -25,25 +26,27 @@
:url="url" :url="url"
:standardContentQuery="queryProject" :standardContentQuery="queryProject"
/> />
<reviewedByThePersonInCharge <div style="margin-bottom: 436px">
v-if="isDisplay" <circulationHistory
ref="reviewedByThePersonInChargeRef" :title="$t('Processhistory')"
:query="queryData" />
:queryBy="queryBy" </div>
:queryPersonInCharge="queryPersonInCharge"/>
<div class="drawer-review">
<reviewedByThePersonInCharge
v-if="isDisplay"
ref="reviewedByThePersonInChargeRef"
:query="queryData"
:queryBy="queryBy"
:queryPersonInCharge="queryPersonInCharge"/>
</div>
<circulationHistory
:title="$t('Processhistory')"
/>
<div class="drawer-bootom-button"> <div class="drawer-bootom-button">
<footerProcess <footerProcess
v-if="isDisplay" v-if="isDisplay"
:is-adopt="isAdopt"
:isSendBack="isSendBack"
:is-cancel="isCancel" :is-cancel="isCancel"
:is-confirm="isConfirm" :is-confirm="isConfirm"
@adopt="adopt"
@sendBack="sendBack"
@cancel="handleCancel" @cancel="handleCancel"
@confirm="confirm" @confirm="confirm"
/> />
@@ -54,8 +57,8 @@
</template> </template>
<script> <script>
import projectInformation from '../../../processCenter/components/projectInformation' import projectInformation from './projectInformation'
import standardContent from '../../../processCenter/components/standardContent' import standardContent from './standardContent'
import footerProcess from '../../../processCenter/components/footerProcess' import footerProcess from '../../../processCenter/components/footerProcess'
import reviewedByThePersonInCharge from './reviewedByThePersonInCharge' import reviewedByThePersonInCharge from './reviewedByThePersonInCharge'
import circulationHistory from './circulationHistory' import circulationHistory from './circulationHistory'
@@ -122,31 +125,11 @@
} }
}, },
computed: { computed: {
isSendBack() {
if (this.queryData.TaskKey == 'zrrtjjfw' || this.queryData.TaskKey == 'fggcssh' || this.queryData.TaskKey == 'dezrrtjjfw') {
return true
}
return false
},
isAdopt() {
if (this.queryData.TaskKey == 'fggcssh') {
return true
}
return false
},
isCancel() { isCancel() {
if (this.queryData.TaskKey == 'zrrqr' || this.queryData.TaskKey == 'dezrrqr' || return true
this.queryData.TaskKey == 'zrrtjjfw' || this.queryData.TaskKey == 'dezrrtjjfw') {
return true
}
return false
}, },
isConfirm() { isConfirm() {
if (this.queryData.TaskKey == 'zrrqr' || this.queryData.TaskKey == 'dezrrqr' || return true
this.queryData.TaskKey == 'zrrtjjfw' || this.queryData.TaskKey == 'dezrrtjjfw') {
return true
}
return false
} }
}, },
mounted() { mounted() {
@@ -156,28 +139,6 @@
handleCancel() { handleCancel() {
this.visible = false this.visible = false
}, },
adopt(operatorTime) {
this.$refs.reviewedByThePersonInChargeRef.submitNoRule((res) => {
this.textLoading = this.$t('Submitting')
this.loading = true
res.operatorTime = operatorTime
res.disposeResult = 'Accepted'
this.completeTask(res)
})
},
sendBack(operatorTime) {
this.textLoading = this.$t('Returning')
this.loading = true
this.$refs.reviewedByThePersonInChargeRef.submitNoRule((res) => {
if (this.queryData.TaskKey == 'fggcssh"') {
res.disposeResult = 'Rejected'
} else {
res.disposeResult = 'Returned'
}
res.secondChargePersonUserId = ''
this.completeTask({ operatorTime: operatorTime, ...res })
})
},
confirm(operatorTime) { confirm(operatorTime) {
this.$refs.reviewedByThePersonInChargeRef.submit((res) => { this.$refs.reviewedByThePersonInChargeRef.submit((res) => {
this.completeTask({ operatorTime: operatorTime, ...res }) this.completeTask({ operatorTime: operatorTime, ...res })
@@ -200,7 +161,8 @@
postAction('/workFlow/completeTask', query).then((res) => { postAction('/workFlow/completeTask', query).then((res) => {
if (res.success) { if (res.success) {
this.$message.success(this.$t('OperationSuccessful')) this.$message.success(this.$t('OperationSuccessful'))
this.edit() this.visible = false
this.$emit('designComplianceList')
} else { } else {
this.loading = false this.loading = false
this.$message.warning(res.message) this.$message.warning(res.message)
@@ -314,4 +276,17 @@
background: #fff; background: #fff;
border-radius: 0 0 2px 2px; border-radius: 0 0 2px 2px;
} }
.drawer-review {
position: absolute;
bottom: 40px;
z-index: 100;
height: 384px;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style> </style>
@@ -0,0 +1,159 @@
<template>
<div class="box">
<div class="box-text">
<div class="header-text">
{{title}}
</div>
</div>
<div class="content-text">
<div class="text-field" v-for="(item,index) in projectInformationList" :key="index">
<span class="text-field-left" :title="item.title">{{item.title}}</span>
<span class="text-field-right text-field-right-url"
:title="queryForm[item.value]"
@click="urlClick(queryForm[item.value])"
v-if="item.type == 1"
>{{queryForm[item.value]}}</span>
<span class="text-field-right text-field-right-url"
@click="standardClick(queryForm)"
v-else-if="item.type == '4'" :title="queryForm[item.value]"
>{{queryForm[item.value]}}</span>
<span class="text-field-right" v-else :title="queryForm[item.value]"
>{{queryForm[item.value]}}</span>
</div>
</div>
</div>
</template>
<!--
type:
1打开新页面
2显示文件
3点击事件处理\需要传点击事件
4标注号的跳转
-->
<script>
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
export default {
name: 'projectInformation',
props: {
// {title:'',value:'v-model的绑定值'}
projectInformationList: {
type: Array,
default: []
},
// 需要参数urlFrom,获取数据去显示内容
url: {
type: Object,
default: {}
},
projectInformationId: {
type: String,
default: ''
},
queryProject: {
type: Object,
default: {}
},
title: {
type: String,
default: ''
}
},
data() {
return {
queryForm: {}
}
},
mounted() {
this.getQueryForm()
},
methods: {
getQueryForm() {
getAction(this.url.urlFrom, { id: this.projectInformationId }).then((res) => {
if (res.success) {
this.queryForm = res.result[0] || {}
if (this.queryProject) {
this.queryForm = { ...this.queryForm, ...this.queryProject }
}
} else {
this.queryForm = {}
}
})
},
urlClick(val) {
if (val) {
window.open(val)
}
},
standardClick(row) {
let newUrl = this.$router.resolve({
path: '/docManage/library/detail',
query: {
id: row.standId
}
})
window.open(newUrl.href, '_blank')
}
}
}
</script>
<style scoped lang="less">
.box {
padding: 0 24px 24px 24px;
box-sizing: border-box;
}
.box-text {
display: flex;
justify-content: space-between;
height: 40px;
line-height: 24px;
.header-text {
font-size: 16px;
font-weight: bold;
color: #000;
}
}
.content-text {
width: 100%;
display: flex;
flex-wrap: wrap;
.text-field {
width: 50%;
margin-bottom: 8px;
.text-field-left {
width: 114px;
display: inline-block;
font-size: 14px;
font-weight: 400;
color: #6F7385;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
margin-right: 4px;
}
.text-field-right {
width: calc(100% - 118px);
display: inline-block;
font-size: 14px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
word-break: break-word;
color: #040B29;
font-weight: 500;
}
.text-field-right-url {
color: #00B3BE !important;
cursor: pointer;
}
}
}
</style>
@@ -9,45 +9,48 @@
</div> </div>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm"> <a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :span="24" v-if="query.TaskKey != 'fggcssh'"> <a-col :span="24">
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="Required">*</span> <span class="Required">*</span>
<span class="title-text-text" :title="$t('resultofhandling')">{{$t('resultofhandling')}}</span> <span class="title-text-text" :title="$t('resultofhandling')">{{$t('resultofhandling')}}</span>
</div> </div>
<a-form-model-item class="itemModel" :prop="query.isDisplay?'':'disposeResult'">
<a-radio-group style="margin-top: 2px"
:disabled="!query.isDisplay?true:false"
@change="reviewResultChange"
class="box-input"
v-model="formInline.disposeResult">
<a-radio value="Accepted" v-if="query.TaskKey == 'zrrqr' || query.TaskKey == 'dezrrqr'">
{{$t('accept')}}
</a-radio>
<a-radio value="Rejected" v-if="query.TaskKey == 'zrrqr'">
{{$t('refuse')}}
</a-radio>
<a-radio value="Returned" v-if="query.TaskKey == 'dezrrqr'">
{{$t('sendBack')}}
</a-radio>
<a-radio value="Compliance" v-if="query.TaskKey == 'dezrrtjjfw' || query.TaskKey == 'zrrtjjfw'">
{{$t('accord')}}
</a-radio>
<a-radio value="Non-Compliance" v-if="query.TaskKey == 'dezrrtjjfw' || query.TaskKey == 'zrrtjjfw'">
{{$t('nonConformity')}}
</a-radio>
<a-radio value="To be tracked" v-if="query.TaskKey == 'zrrtjjfw' || query.TaskKey == 'dezrrtjjfw'">
{{$t('Tracked')}}
</a-radio>
<a-radio value="NA" v-if="query.TaskKey == 'zrrtjjfw' || query.TaskKey == 'dezrrtjjfw'">
{{$t('notInvolved')}}
</a-radio>
<a-radio value="Transfer" v-if="query.TaskKey == 'zrrtjjfw' || query.TaskKey == 'zrrqr'">
{{$t('turnToDo')}}
</a-radio>
</a-radio-group>
</a-form-model-item>
</div> </div>
<a-form-model-item class="itemModel" :prop="'disposeResult'">
<a-radio-group :disabled="!query.isDisplay?true:false"
@change="reviewResultChange"
class="box-input"
v-model="formInline.disposeResult">
<a-radio value="Accepted" v-if="query.TaskKey == 'zrrqr' || query.TaskKey == 'dezrrqr'">
{{$t('accept')}}
</a-radio>
<a-radio value="Rejected" v-if="query.TaskKey == 'zrrqr'">
{{$t('refuse')}}
</a-radio>
<a-radio value="adopt" v-if="query.TaskKey == 'fggcssh'">
{{$t('adopt')}}
</a-radio>
<a-radio value="Returned" v-if="query.TaskKey == 'dezrrqr' || query.TaskKey == 'dezrrtjjfw' ||
query.TaskKey == 'zrrtjjfw' || query.TaskKey == 'fggcssh'">
{{$t('sendBack')}}
</a-radio>
<a-radio value="Compliance" v-if="query.TaskKey == 'dezrrtjjfw' || query.TaskKey == 'zrrtjjfw'">
{{$t('accord')}}
</a-radio>
<a-radio value="Non-Compliance" v-if="query.TaskKey == 'dezrrtjjfw' || query.TaskKey == 'zrrtjjfw'">
{{$t('nonConformity')}}
</a-radio>
<a-radio value="To be tracked" v-if="query.TaskKey == 'zrrtjjfw' || query.TaskKey == 'dezrrtjjfw'">
{{$t('Tracked')}}
</a-radio>
<a-radio value="NA" v-if="query.TaskKey == 'zrrtjjfw' || query.TaskKey == 'dezrrtjjfw'">
{{$t('notInvolved')}}
</a-radio>
<a-radio value="Transfer" v-if="query.TaskKey == 'zrrtjjfw' || query.TaskKey == 'zrrqr'">
{{$t('turnToDo')}}
</a-radio>
</a-radio-group>
</a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24"> <a-row :gutter="24">
@@ -57,29 +60,29 @@
<span class="Required">*</span> <span class="Required">*</span>
<span class="title-text-text" :title="$t('feedbackMessage')">{{$t('feedbackMessage')}}</span> <span class="title-text-text" :title="$t('feedbackMessage')">{{$t('feedbackMessage')}}</span>
</div> </div>
<a-form-model-item class="itemModel" prop="approvalOpinion">
<a-textarea :placeholder="$t('pleaseEnter')+$t('feedbackMessage')"
v-model="formInline.approvalOpinion"
:rows="4"/>
</a-form-model-item>
</div> </div>
<a-form-model-item class="itemModel" prop="approvalOpinion">
<a-textarea :placeholder="$t('pleaseEnter')+$t('feedbackMessage')"
v-model="formInline.approvalOpinion"
:rows="4"/>
</a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="24" v-if="this.query.TaskKey == 'zrrtjjfw' || this.query.TaskKey == 'dezrrtjjfw'"> <a-row :gutter="24" v-if="query.TaskKey == 'dezrrtjjfw' || query.TaskKey == 'zrrtjjfw'">
<a-col :span="24"> <a-col :span="24">
<div class="box-title-text"> <div class="box-title-text">
<div class="title-text"> <div class="title-text">
<span class="title-text-text" :title="$t('enclosure')">{{$t('enclosure')}}</span> <span class="title-text-text" :title="$t('enclosure')">{{$t('enclosure')}}</span>
</div> </div>
<a-form-model-item class="itemModel">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('approvalFile')">
{{ (formInline.approvalFile === 'null' || formInline.approvalFile === '' ||
formInline.approvalFile == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</div> </div>
<a-form-model-item class="itemModel">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('approvalFile')">
{{ (formInline.approvalFile === 'null' || formInline.approvalFile === '' ||
formInline.approvalFile == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
</a-form-model> </a-form-model>
@@ -242,32 +245,32 @@
<style scoped lang="less"> <style scoped lang="less">
.box { .box {
padding: 0 24px 0 24px; padding: 0 24px 24px 24px;
box-sizing: border-box; box-sizing: border-box;
} }
.box-text { .box-text {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
height: 60px; height: 40px;
line-height: 40px; line-height: 24px;
.header-text { .header-text {
font-size: 18px; font-size: 16px;
font-weight: 400; font-weight: bold;
color: #000F16; color: #000;
} }
} }
.box-title-text { .box-title-text {
line-height: 1.4; /*line-height: 1.4;*/
display: flex; display: flex;
/*align-items: center;*/ /*align-items: center;*/
} }
.title-text { .title-text {
width: 88px; width: 88px;
text-align: right; text-align: left;
display: inline-block; display: inline-block;
font-weight: 500; font-weight: 500;
font-size: 14px; font-size: 14px;
@@ -275,8 +278,8 @@
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
height: 42px; height: 32px;
line-height: 48px; line-height: 36px;
color: #000F16; color: #000F16;
} }
@@ -305,7 +308,7 @@
width: 100%; width: 100%;
display: inline-block; display: inline-block;
margin-top: 2px; margin-top: 2px;
margin-bottom: 12px; margin-bottom: 0px;
} }
.Required { .Required {
@@ -0,0 +1,201 @@
<template>
<div class="box">
<div class="box-text">
<div class="header-text">
{{title}}
</div>
<div v-if="isConfirmationDeadline" class="header-text" style="margin-right: 20px">
{{this.$t('ConfirmationDeadline')}} : {{this.queryForm.taskAffirmDueDate}}
</div>
</div>
<div class="content-text">
<div class="text-field" :class="{'text-content-button-one':item.type == 4 ? true :false}"
v-for="(item,index) in standardContentList" :key="index">
<span class="text-field-left" :title="item.title">{{item.title}}</span>
<span class="text-field-right text-field-right-url"
:title="queryForm[item.value]"
@click="urlClick(queryForm[item.value])"
v-if="item.type == 1"
>{{queryForm[item.value]}}</span>
<span class="text-field-right text-field-right-url"
@click="standardClick(queryForm)"
v-else-if="item.type == '5'" :title="queryForm[item.value]"
>{{queryForm[item.value]}}</span>
<span class="text-field-right text-field-right-url"
@click="clickButtonToUpload(queryForm[item.value])"
v-else-if="item.type == 2 && queryForm[item.value]"
>{{ $t('viewFile') }}</span>
<span class="text-field-right"
:title="queryForm[item.value]" v-else
>{{queryForm[item.value]}}</span>
</div>
</div>
<viewFileModel ref="viewFileModelRef"/>
</div>
</template>
<!--
type:
1打开新页面
2显示文件
3点击事件处理\需要传点击事件
-->
<script>
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
import { Base64 } from 'js-base64'
import viewFileModel from '@/components/viewFileModel/index'
export default {
name: 'standardContent',
props: {
// {title:'',value:'v-model的绑定值'}
standardContentList: {
type: Array,
default: []
},
// 需要参数urlFrom,获取数据去显示内容
url: {
type: Object,
default: {}
},
standardContentQuery: {
type: Object,
default: {}
},
title: {
type: String,
default: ''
},
isConfirmationDeadline: {
type: Boolean,
default: false
}
},
components: {
viewFileModel
},
data() {
return {
queryForm: {}
}
},
mounted() {
this.queryForm = this.standardContentQuery
console.log(this.queryForm)
},
methods: {
urlClick(val) {
if (val) {
window.open(val)
}
},
standardClick(row) {
let newUrl = this.$router.resolve({
path: '/docManage/library/detail',
query: {
id: row.standId
}
})
window.open(newUrl.href, '_blank')
},
clickButtonToUpload(item) {
this.$refs.viewFileModelRef.clickButtonToUpload(item)
}
}
}
</script>
<style scoped lang="less">
.box {
padding: 0 24px 24px 24px;
box-sizing: border-box;
}
.box-text {
display: flex;
justify-content: space-between;
height: 40px;
line-height: 24px;
.header-text {
font-size: 16px;
font-weight: bold;
color: #000000;
}
}
.content-text {
width: 100%;
display: flex;
flex-wrap: wrap;
.text-field {
width: 50%;
margin-bottom: 8px;
.text-field-left {
width: 114px;
display: inline-block;
font-size: 14px;
font-weight: 400;
color: #6F7385;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
margin-right: 4px;
}
.text-field-right {
width: calc(100% - 118px);
display: inline-block;
font-size: 14px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
word-break: break-word;
color: #040B29;
font-weight: 400;
}
.text-field-right-url {
color: #00B3BE !important;
cursor: pointer;
}
}
.text-content-button-one {
width: 100%;
.text-field-left {
width: 124px;
display: inline-block;
font-size: 14px;
font-weight: 400;
color: #6F7385;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
margin-right: 24px;
float: left;
margin-top: 3px;
}
.text-field-right {
width: calc(100% - 200px);
display: inline-block;
font-size: 16px;
text-overflow: ellipsis;
white-space: pre-wrap;
overflow: visible;
word-break: break-word;
float: left;
color: #040B29;
font-weight: 400;
}
.text-field-right-url {
color: #00B3BE !important;
cursor: pointer;
}
}
}
</style>