握手流程布局

虚拟清单细节处理
This commit is contained in:
qq787203167
2022-04-22 11:56:27 +08:00
parent ed9ec17a36
commit 2401015313
5 changed files with 422 additions and 31 deletions
@@ -74,12 +74,15 @@
:title="$t('scopeOfApplication')">{{$t('scopeOfApplication')}}</span>
</div>
<a-form-model-item class="itemModel">
<j-dict-select-tag class="box-input" v-model="formInline.shi4Yong4Fan4Wei2"
:disabled="true"
@input="handleInput('shi4Yong4Fan4Wei2')"
:placeholder="$t('PleaseSelect')+$t('scopeOfApplication')"
:type="'select'"
:triggerChange="false" :dictCode="'apply_scope'"/>
<a-input class="box-input"
:disabled="true"
v-model="formInline.shi4Yong4Fan4Wei2_dictText"/>
<!-- <j-multi-select-tag class="box-input" v-model="formInline.shi4Yong4Fan4Wei2"-->
<!-- :disabled="true"-->
<!-- @input="handleInput('shi4Yong4Fan4Wei2')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('scopeOfApplication')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'apply_scope'"/>-->
</a-form-model-item>
</div>
</a-col>
@@ -245,11 +248,14 @@
:title="$t('zoneOfApplication')">{{$t('zoneOfApplication')}}</span>
</div>
<a-form-model-item class="itemModel" prop="region">
<j-dict-select-tag class="box-input" v-model="formInline.region"
:disabled="true"
:placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"
:type="'select'"
:triggerChange="false" :dictCode="'region'"/>
<a-input class="box-input"
:disabled="true"
v-model="formInline.region_dictText"/>
<!-- <j-multi-select-tag class="box-input" v-model="formInline.region"-->
<!-- :disabled="true"-->
<!-- :placeholder="$t('PleaseSelect')+$t('zoneOfApplication')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'region'"/>-->
</a-form-model-item>
</div>
</a-col>
@@ -541,6 +547,7 @@
this.$nextTick(() => {
this.formInline = item || {}
this.formInline.technologyTerritory = this.formInline.technologyTerritory ? this.formInline.technologyTerritory.split(',') : []
console.log(this.formInline.technologyTerritory)
})
},
clickButtonToUpload(item) {
@@ -7,13 +7,15 @@
</div>
<div class="process-header-btn">
<!-- 终止流程-->
<a-button class="header-btn termin" @click="terminationProcessClick" type="danger" ghost>{{$t('terminationProcess')}}</a-button>
<a-button class="header-btn termin" v-if="isTerminationProcess" @click="terminationProcess" type="danger" ghost>
{{$t('terminationProcess')}}
</a-button>
<!-- 保存-->
<a-button class="header-btn prese">{{$t('preservation')}}</a-button>
<a-button class="header-btn prese" v-if="isPreservation" @click="preservation">{{$t('preservation')}}</a-button>
<!-- 下发-->
<a-button class="header-btn issue" type="primary" ghost>{{$t('issue')}}</a-button>
<a-button class="header-btn issue" v-if="isIssue" @click="issue" type="primary" ghost>{{$t('issue')}}</a-button>
<!-- 提交-->
<a-button class="header-btn submit" type="primary" @click="submit">{{$t('submit')}}</a-button>
<a-button class="header-btn submit" v-if="isSubmit" @click="submit" type="primary">{{$t('submit')}}</a-button>
</div>
</div>
</div>
@@ -22,12 +24,46 @@
<script>
export default {
name: 'headerProcess',
props:['title'],
methods:{
terminationProcessClick(){
props: {
title: {
type: String,
default: ''
},
//是否显示终止流程按钮
isTerminationProcess: {
type: Boolean,
default: false
},
//是否显示下发按钮
isIssue: {
type: Boolean,
default: false
},
//是否显示提交按钮
isSubmit: {
type: Boolean,
default: false
},
//是否显示保存按钮
isPreservation: {
type: Boolean,
default: false
}
},
methods: {
terminationProcess() {
this.$emit('terminationProcess')
},
preservation() {
this.$emit('preservation')
},
issue() {
this.$emit('issue')
},
submit() {
this.$emit('submit')
}
}
}
</script>
@@ -81,15 +117,14 @@
justify-content: space-between;
height: 68px;
line-height: 68px;
border-top: 1px solid #efefef;
border-bottom: 1px solid #efefef;
border-bottom: 2px solid #efefef;
background: #FFFFFF;
.process-title {
padding-left: 32px;
font-size: 16px;
font-size: 20px;
font-width: 600;
color: #040B29;
.back-to {
margin-right: 10px;
}
@@ -0,0 +1,113 @@
<template>
<div class="box">
<div class="box-text">
<div class="header-text">
{{$t('essentialInformation')}}
</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"
>{{queryForm[item.value]}}</span>
</div>
</div>
</div>
</template>
<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: ''
}
},
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] || {}
} else {
this.queryForm = {}
}
})
}
}
}
</script>
<style scoped lang="less">
.box {
padding: 0 24px 24px 24px;
box-sizing: border-box;
}
.box-text {
display: flex;
justify-content: space-between;
height: 80px;
line-height: 80px;
.header-text {
font-size: 16px;
font-weight: 400;
color: #000F16;
}
}
.content-text {
width: 100%;
display: flex;
flex-wrap: wrap;
.text-field {
width: 33%;
margin-bottom: 8px;
.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;
}
.text-field-right {
width: calc(100% - 200px);
display: inline-block;
font-size: 16px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
color: #040B29;
font-weight: 400;
}
}
}
</style>
@@ -0,0 +1,113 @@
<template>
<div class="box">
<div class="box-text">
<div class="header-text">
{{$t('standardContent')}}
</div>
</div>
<div class="content-text">
<div class="text-field" v-for="(item,index) in standardContentList" :key="index">
<span class="text-field-left" :title="item.title">{{item.title}}</span>
<span class="text-field-right"
>{{queryForm[item.value]}}</span>
</div>
</div>
</div>
</template>
<script>
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
export default {
name: 'standardContent',
props: {
// {title:'',value:'v-model的绑定值'}
standardContentList: {
type: Array,
default: []
},
// 需要参数urlFrom,获取数据去显示内容
url: {
type: Object,
default: {}
},
standardContentId: {
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] || {}
} else {
this.queryForm = {}
}
})
}
}
}
</script>
<style scoped lang="less">
.box {
padding: 0 24px 24px 24px;
box-sizing: border-box;
}
.box-text {
display: flex;
justify-content: space-between;
height: 60px;
line-height: 40px;
.header-text {
font-size: 16px;
font-weight: 400;
color: #000F16;
}
}
.content-text {
width: 100%;
display: flex;
flex-wrap: wrap;
.text-field {
width: 33%;
margin-bottom: 8px;
.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;
}
.text-field-right {
width: calc(100% - 200px);
display: inline-block;
font-size: 16px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
color: #040B29;
font-weight: 400;
}
}
}
</style>
@@ -1,21 +1,144 @@
<template>
<div>
<headerProcess
:title="'工程接口人确认符合性要求'"
/>
</div>
<div>
<headerProcess
:title="'工程接口人确认符合性要求'"
is-termination-process
is-submit
@terminationProcess="terminationProcess"
@submit="submit"
/>
<div class="content">
<projectInformation
:projectInformationList="projectInformationList"
:url="url"
:projectInformationId="'1517332232949133313'"
/>
<standardContent
:standardContentList="standardContentList"
:url="url"
/>
</div>
</div>
</template>
<script>
import headerProcess from '../../components/headerProcess'
import projectInformation from '../../components/projectInformation'
import standardContent from '../../components/standardContent'
export default {
name: 'handshakeProcess',
components:{
headerProcess
components: {
headerProcess,
projectInformation,
standardContent
},
data() {
return {
projectInformationList: [
{
title: this.$t('entryName'),
value: 'projectName'
},
{
title: this.$t('targetMarket'),
value: 'targetMarket_dictText'
},
{
title: this.$t('projectStatus'),
value: 'projectStatus_dictText'
},
{
title: this.$t('StudioEngineer'),
value: 'studioEngineerName'
},
{
title: this.$t('certifiedEngineer'),
value: 'certificationEngineerName'
},
{},
{
title: this.$t('DigitalPlatform'),
value: 'digitalPlatform_dictText'
},
{
title: this.$t('ModelPlatform'),
value: 'vehiclePlatform_dictText'
},
{},
{
title: this.$t('IPDInformation'),
value: 'ipdInfo'
},
{
title: this.$t('certificationProgram'),
value: 'attestationPlan'
},
{
title: this.$t('dehicleDevelopmentPlan'),
value: 'vehicleDevelopmentPlan'
}
],
standardContentList: [
{
title: this.$t('standard'),
value: 'serialNumber'
},
{
title: this.$t('title'),
value: 'title'
},
{
title: this.$t('subtitle'),
value: 'subtitle'
},
{
title: this.$t('areaOfResponsibility'),
value: 'dutyTerritory_dictText'
},
{
title: this.$t('implementationCategory'),
value: 'implementType_dictText'
},
{
title: this.$t('correspondingStandard'),
value: 'correspondingStandard'
},
{
title: this.$t('engineeringInterfacePerson'),
value: 'engineeringInterfacePersonName'
},
{
title: this.$t('regulatoryEngineer'),
value: 'regulationOwnerName'
},
{
title: this.$t('certifiedEngineer'),
value: 'homologationEngineerName'
},
{
title: this.$t('remarks'),
value: 'remark'
}
],
url: {
urlFrom: 'project/projectLibraryBase/queryById'
}
}
},
methods: {
terminationProcess() {
},
submit() {
}
}
}
</script>
<style scoped>
.content {
padding-top: 60px;
}
</style>