修改法规清单

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 {
display: flex;
justify-content: space-between;
height: 80px;
line-height: 80px;
height: 40px;
line-height: 24px;
.header-text {
font-size: 18px;
font-weight: 400;
color: #000F16;
font-size: 16px;
font-weight: bold;
color: #000;
}
}
@@ -45,7 +45,7 @@
@showSizeChange="SizeChange"
/>
</div>
<designCompliance ref="designComplianceRef"/>
<designCompliance ref="designComplianceRef" @designComplianceList="designComplianceList"/>
</div>
</template>
@@ -96,14 +96,14 @@
{
title: this.$t('Tasknode'),
align: 'left',
dataIndex: '',
dataIndex: 'taskDefinitionKeyName',
ellipsis: true,
width: 170
},
{
title: this.$t('typeOfDeliverables'),
align: 'left',
dataIndex: '',
dataIndex: 'deliverableTypeName',
ellipsis: true,
width: 170
},
@@ -198,6 +198,9 @@
this.selectedRowKeys = value
console.log(this.selectedRowKeys)
},
designComplianceList(){
this.getList()
},
RelatedItemsClick(item) {
let newUrl = this.$router.resolve({
path: '/ProjectDetails',
@@ -3,12 +3,13 @@
<a-drawer
:title="title"
:maskClosable="false"
:width="1200"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
style="height: 100%;overflow: auto;margin-bottom: 436px;">
<JLoading :loading="loading">{{textLoading}}</JLoading>
<projectInformation
v-if="isDisplay"
@@ -25,25 +26,27 @@
:url="url"
:standardContentQuery="queryProject"
/>
<reviewedByThePersonInCharge
v-if="isDisplay"
ref="reviewedByThePersonInChargeRef"
:query="queryData"
:queryBy="queryBy"
:queryPersonInCharge="queryPersonInCharge"/>
<div style="margin-bottom: 436px">
<circulationHistory
:title="$t('Processhistory')"
/>
</div>
<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">
<footerProcess
v-if="isDisplay"
:is-adopt="isAdopt"
:isSendBack="isSendBack"
:is-cancel="isCancel"
:is-confirm="isConfirm"
@adopt="adopt"
@sendBack="sendBack"
@cancel="handleCancel"
@confirm="confirm"
/>
@@ -54,8 +57,8 @@
</template>
<script>
import projectInformation from '../../../processCenter/components/projectInformation'
import standardContent from '../../../processCenter/components/standardContent'
import projectInformation from './projectInformation'
import standardContent from './standardContent'
import footerProcess from '../../../processCenter/components/footerProcess'
import reviewedByThePersonInCharge from './reviewedByThePersonInCharge'
import circulationHistory from './circulationHistory'
@@ -122,31 +125,11 @@
}
},
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() {
if (this.queryData.TaskKey == 'zrrqr' || this.queryData.TaskKey == 'dezrrqr' ||
this.queryData.TaskKey == 'zrrtjjfw' || this.queryData.TaskKey == 'dezrrtjjfw') {
return true
}
return false
return true
},
isConfirm() {
if (this.queryData.TaskKey == 'zrrqr' || this.queryData.TaskKey == 'dezrrqr' ||
this.queryData.TaskKey == 'zrrtjjfw' || this.queryData.TaskKey == 'dezrrtjjfw') {
return true
}
return false
return true
}
},
mounted() {
@@ -156,28 +139,6 @@
handleCancel() {
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) {
this.$refs.reviewedByThePersonInChargeRef.submit((res) => {
this.completeTask({ operatorTime: operatorTime, ...res })
@@ -200,7 +161,8 @@
postAction('/workFlow/completeTask', query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.edit()
this.visible = false
this.$emit('designComplianceList')
} else {
this.loading = false
this.$message.warning(res.message)
@@ -314,4 +276,17 @@
background: #fff;
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>
@@ -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>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24" v-if="query.TaskKey != 'fggcssh'">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('resultofhandling')">{{$t('resultofhandling')}}</span>
</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>
<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-row>
<a-row :gutter="24">
@@ -57,29 +60,29 @@
<span class="Required">*</span>
<span class="title-text-text" :title="$t('feedbackMessage')">{{$t('feedbackMessage')}}</span>
</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>
<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-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">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('enclosure')">{{$t('enclosure')}}</span>
</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>
<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-row>
</a-form-model>
@@ -242,32 +245,32 @@
<style scoped lang="less">
.box {
padding: 0 24px 0 24px;
padding: 0 24px 24px 24px;
box-sizing: border-box;
}
.box-text {
display: flex;
justify-content: space-between;
height: 60px;
line-height: 40px;
height: 40px;
line-height: 24px;
.header-text {
font-size: 18px;
font-weight: 400;
color: #000F16;
font-size: 16px;
font-weight: bold;
color: #000;
}
}
.box-title-text {
line-height: 1.4;
/*line-height: 1.4;*/
display: flex;
/*align-items: center;*/
}
.title-text {
width: 88px;
text-align: right;
text-align: left;
display: inline-block;
font-weight: 500;
font-size: 14px;
@@ -275,8 +278,8 @@
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 48px;
height: 32px;
line-height: 36px;
color: #000F16;
}
@@ -305,7 +308,7 @@
width: 100%;
display: inline-block;
margin-top: 2px;
margin-bottom: 12px;
margin-bottom: 0px;
}
.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>