add 法规合规评估流程页面

This commit is contained in:
赵霄
2023-11-29 19:43:06 +08:00
parent beb777a66d
commit a5045d9302
11 changed files with 973 additions and 13 deletions
+5 -1
View File
@@ -390,6 +390,10 @@ module.exports = {
responsibleUnitContactPerson: '责任单位联络人',
pleaseSelectDeleteData: '请选择要删除的数据',
moduleOwner: '模块责任人',
projectAppraisal: '项目评估'
projectAppraisal: '项目评估',
stronglyRelatedVehicleType: '是否与车型强关联',
doesNotFitModel: '不符合车型系列',
projectApproval: '项目审批',
projectFiling: '项目归档'
}
}
+3 -3
View File
@@ -400,7 +400,7 @@ export const StandardComplianceNodes = new EsEnums({
moduleOwnerIssue: { text: '模块责任人分发', value: '3', btn: ['return', 'save', 'submit'] },
designEngineerAssess: { text: '设计工程师评估', value: '4', btn: ['return', 'save', 'submit'] },
moduleOwnerReview: { text: '模块责任人审批', value: '5', btn: ['return', 'save', 'agree', 'reject'] },
departLeaderApprove: { text: '部所主管级领导审批', value: '6', btn: [] },
regulatoryEngineerApprove: { text: '法规工程师审批', value: '7', btn: [] },
designEngineerWriteProject: { text: '设计工程师补充立项项目号', value: '8', btn: [] }
departLeaderApprove: { text: '部所主管级领导审批', value: '6', btn: ['return', 'save', 'agree', 'reject'] },
regulatoryEngineerApprove: { text: '法规工程师审批', value: '7', btn: ['return', 'save', 'agree', 'reject'] },
designEngineerWriteProject: { text: '设计工程师补充立项项目号', value: '8', btn: ['submit'] }
})
@@ -80,6 +80,18 @@
<!--设计工程师评估-->
<design-engineer-assess v-if="isDesignEngineerAssess" />
<!--模块负责人评审-->
<module-owner-approve-table v-if="isModuleOwnerApprove" />
<!--部所主管级领导审批-->
<depart-leader-approve-table v-if="isDepartLeaderApprove" />
<!--法规工程师审批-->
<regulatory-engineer-approval v-if="isRegulatoryEngineerApproval" />
<!--设计工程师补充立项项目号-->
<design-engineer-write-project v-if="isDesignEngineerWriteProject" />
<!--流程审批信息-->
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
<a-form :form="approvalInfoForm">
@@ -144,6 +156,10 @@ import InitialAssignTable from './components/InitialAssignTable'
import DepartLeaderIssueTable from './components/DepartLeaderIssueTable'
import ModuleOwnerIssueTable from './components/ModuleOwnerIssueTable'
import DesignEngineerAssess from './components/DesignEngineerAssess'
import ModuleOwnerApproveTable from './components/ModuleOwnerApproveTable'
import DepartLeaderApproveTable from './components/DepartLeaderApproveTable'
import RegulatoryEngineerApproval from './components/RegulatoryEngineerApproval'
import DesignEngineerWriteProject from './components/DesignEngineerWriteProject'
export default {
name: 'StandardComplianceProcess',
@@ -155,7 +171,11 @@ export default {
InitialAssignTable,
DepartLeaderIssueTable,
ModuleOwnerIssueTable,
DesignEngineerAssess
DesignEngineerAssess,
ModuleOwnerApproveTable,
DepartLeaderApproveTable,
RegulatoryEngineerApproval,
DesignEngineerWriteProject
},
mixins: [WorkCenterMixin],
data () {
@@ -169,7 +189,7 @@ export default {
// 审批信息的表单
approvalInfoForm: this.$form.createForm(this),
approvalInfo: {},
currentNode: '4',
currentNode: null,
labelCol: {
xs: { span: 24 },
sm: { span: 4 }
@@ -216,14 +236,30 @@ export default {
// 是否设计工程师评估节点
isDesignEngineerAssess () {
return this.currentNode === StandardComplianceNodes.designEngineerAssess.value
},
// 是否模块责任人评审节点
isModuleOwnerApprove () {
return this.currentNode === StandardComplianceNodes.moduleOwnerReview.value
},
// 是否部所主管级领导审批
isDepartLeaderApprove () {
return this.currentNode === StandardComplianceNodes.departLeaderApprove.value
},
// 是否法规工程师审批
isRegulatoryEngineerApproval () {
return this.currentNode === StandardComplianceNodes.regulatoryEngineerApprove.value
},
// 是否设计工程师补充立项项目号
isDesignEngineerWriteProject () {
return this.currentNode === StandardComplianceNodes.designEngineerWriteProject.value
}
},
created () {
// if (this.$route.query.processInstanceId || this.$route.query.draftId) {
// this.currentNode = this.$route.query.nodeId
// } else {
// this.currentNode = StandardComplianceNodes.initial.value
// }
if (this.$route.query.processInstanceId || this.$route.query.draftId) {
this.currentNode = this.$route.query.nodeId
} else {
this.currentNode = StandardComplianceNodes.initial.value
}
this.btnList = StandardComplianceNodes.propertyOfValue('btn', this.currentNode)
this.getPersonInfoStructure(ProcessKey.NO_MATCH_TRACKING.value, () => {
this.initPersonInfoData()
@@ -243,6 +279,21 @@ export default {
*/
handleStandardChange (standard) {
this.selectedStandard = Object.assign({}, standard)
},
handleTurnTo () {
},
handleSave () {
},
handleSubmit () {
},
handleAgree () {
},
handleReject () {
}
}
}
@@ -0,0 +1,109 @@
<!--部所主管级领导审批-->
<template>
<div>
<!--项目审批-->
<div class="process-part-title">{{ $t('workCenter.standardCompliance.projectApproval') }}</div>
<j-table :columns="columns" :data-source="dataSource" :pagination="false" :scroll="{x: '100%'}">
<!--是否立项-->
<template v-slot:isProject="{text,record,index}">
<j-dict-select-tag v-model="record.isProject" dict-code="yn" style="width: 100%" />
</template>
<template v-slot:action="{text, record, index}">
<a @click="handleView(record)">{{ $t('view') }}</a>
</template>
</j-table>
<depart-leader-detail-modal ref="detailModal" />
</div>
</template>
<script>
import JTable from '../../../../components/jero/JTable'
import DepartLeaderDetailModal from '../modules/DepartLeaderDetailModal'
export default {
name: 'DepartLeaderApproveTable',
components: { JTable, DepartLeaderDetailModal },
data () {
return {
columns: [
// 序号
{
title: this.$t('serialNumber'),
key: 'rowIndex',
width: 60,
customRender: function (t, r, index) {
return parseInt(index) + 1
}
},
// 标准编号/条款号
{
dataIndex: 'workNumber',
title: this.$t('projectLibrary.vehicleItemLibrary.standardNumberClauseNumber'),
width: 150
},
// 标准名称/条款名称
{
dataIndex: 'projectName',
title: this.$t('workCenter.projectComplianceEvaluationProcess.standardNameClauseName'),
width: 160
},
// 标准状态
{
title: this.$t('standardSelect.textState'),
dataIndex: 'standardState_dictText',
width: 150
},
// 实施日期
{
title: this.$t('dashboard.advancedSearch.materialDate'),
width: 180,
dataIndex: 'implementation_date'
},
// 模块负责人
{
title: this.$t('workCenter.standardConsultationProcess.moduleOwner'),
dataIndex: 'contact',
width: 150
},
// 评估结果
{
dataIndex: 'evaluationResults_dictText',
title: this.$t('projectLibrary.vehicleItemLibrary.evaluationResult'),
width: 120
},
// 是否立项
{
dataIndex: 'isProject',
title: this.$t('projectLibrary.specialProjectLibrary.whetherToApproveAProjectOrNot'),
width: 120,
scopedSlots: { customRender: 'isProject' }
},
// 操作
{
title: this.$t('operation'),
fixed: 'right',
width: 100,
scopedSlots: { customRender: 'action' }
}
],
dataSource: [{ id: 2 }]
}
},
methods: {
handleView (record) {
this.$refs.detailModal.open(record)
}
}
}
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
.process-part-title:first-child {
margin-top: 32px;
}
</style>
@@ -10,12 +10,201 @@
</div>
</div>
<div>
<a-table
:bordered="true"
:scroll="{x: '100%'}"
:columns="columns"
:data-source="dataSource">
<template slot="text" slot-scope="text">
<a-tooltip overlay-class-name="tooltip-style">
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
<div class="table-text">{{ text || text === 0 ? text : global.emptyLine }}</div>
</a-tooltip>
</template>
<!--评估结果-->
<template v-slot:evaluationResult="text,record,index">
<j-dict-select-tag dict-code="assess_results"
style="width: 100%"
:value="record.evaluationResult"
@change="value => handleEvaluationResultChange(value, record, index)" />
</template>
<!--展开的部分-->
<template v-slot:expandedRowRender="record,index">
<a-form-model :model="record" :rules="record.evaluationResult === inconformity ? rules : null" :ref="`ruleForm${index}`">
<!--不符合-->
<template v-if="record.evaluationResult === inconformity">
<!--是否与车型强关联-->
<a-form-model-item :label="$t('workCenter.standardCompliance.stronglyRelatedVehicleType')"
:labelCol="{span: 4}"
:wrapperCol="{span: 18}"
prop="stronglyRelatedVehicleType">
<j-dict-select-tag v-model="record.stronglyRelatedVehicleType"
dict-code="yn"
type="radio" />
</a-form-model-item>
<!--不符合车型系列-->
<a-form-model-item :label="$t('workCenter.standardCompliance.doesNotFitModel')"
:labelCol="{span: 4}"
:wrapperCol="{span: 18}"
prop="doesNotFitModel"
v-if="record.stronglyRelatedVehicleType === yesValue">
<a-select :placeholder="$t('pleaseSelect') + $t('project')"
v-model="record.doesNotFitModel"
mode="multiple"
show-search
:filter-option="filterOption">
<a-select-option v-for="item in carTypeList" :key="item.id">{{ item.projectName }}</a-select-option>
</a-select>
</a-form-model-item>
</template>
<template v-if="record.evaluationResult === inconformity || record.evaluationResult === accordWith">
<!--依据描述-->
<a-form-model-item :label="$t('projectLibrary.specialProjectLibrary.basisDescription')"
:labelCol="{span: 4}"
:wrapperCol="{span: 18}"
prop="basisDescription">
<a-input type="textarea" :maxLength="500" v-model="record.basisDescription" />
</a-form-model-item>
<!--佐证材料-->
<a-form-model-item :label="$t('projectLibrary.specialProjectLibrary.supportingMaterial')"
:labelCol="{span: 4}"
:wrapperCol="{span: 18}"
prop="supportingMaterial">
<j-upload return-id
v-model="record.supportingMaterial"
file-type="pdf,doc,docx,pptx,ppt,jpg,jpeg,png,xls,xlsx,bmp" />
</a-form-model-item>
</template>
</a-form-model>
</template>
</a-table>
</div>
<a-button @click="handleCheck">校验</a-button>
</div>
</template>
<script>
import { EvaluationResultType, YesOrNoEnum } from '../../../../enums/commonEnums'
import { getCarTypeProjectList } from '../../../../api/projectLibraryApi'
export default {
name: 'DesignEngineerAssess'
name: 'DesignEngineerAssess',
data () {
return {
columns: [
// 标准编号/条款号
{
dataIndex: 'workNumber',
title: this.$t('projectLibrary.vehicleItemLibrary.standardNumberClauseNumber'),
width: 150,
align: 'center',
scopedSlots: { customRender: 'text' }
},
// 标准名称/条款名称
{
dataIndex: 'projectName',
title: this.$t('workCenter.projectComplianceEvaluationProcess.standardNameClauseName'),
width: 160,
align: 'center',
scopedSlots: { customRender: 'text' }
},
// 标准状态
{
title: this.$t('standardSelect.textState'),
dataIndex: 'standardState_dictText',
width: 150,
align: 'center',
scopedSlots: { customRender: 'text' }
},
// 实施日期
{
title: this.$t('dashboard.advancedSearch.materialDate'),
align: 'center',
width: 180,
dataIndex: 'implementation_date',
scopedSlots: { customRender: 'text' }
},
// 评估结果
{
dataIndex: 'evaluationResults_dictText',
title: this.$t('projectLibrary.vehicleItemLibrary.evaluationResult'),
width: 120,
align: 'center',
scopedSlots: { customRender: 'evaluationResult' }
}
],
dataSource: [{ id: '1' }],
form: {},
rules: {
// 依据描述
basisDescription: {
required: true,
message: this.$t('pleaseEnter') + this.$t('projectLibrary.specialProjectLibrary.basisDescription'),
trigger: 'blur'
},
// 是否与车型强关联
stronglyRelatedVehicleType: {
required: true,
message: this.$t('pleaseSelect') + this.$t('workCenter.standardCompliance.stronglyRelatedVehicleType'),
trigger: 'change'
},
// 不符合车型系列
doesNotFitModel: {
required: true,
message: this.$t('pleaseSelect') + this.$t('workCenter.standardCompliance.doesNotFitModel'),
trigger: 'change'
}
},
carTypeList: [] // 车型下拉数据
}
},
computed: {
accordWith () {
return EvaluationResultType.accordWith.value
},
inconformity () {
return EvaluationResultType.inconformity.value
},
yesValue () {
return YesOrNoEnum.YES.value
}
},
created () {
this.getCarTypeList()
},
methods: {
/**
* 获取车型下拉数据
*/
getCarTypeList () {
getCarTypeProjectList().then(res => {
if (res.success) {
this.carTypeList = res.result || []
}
})
},
handleEvaluationResultChange (value, record, index) {
const data = JSON.parse(JSON.stringify(this.dataSource))
data[index].evaluationResult = value
this.dataSource.splice(0, this.dataSource.length, ...data)
},
handleCheck () {
this.$refs[`ruleForm0`].validate(valid => {
console.log(valid)
})
},
filterOption (input, option) {
const text = option.componentOptions.children[0].text || option.componentOptions.children[0].data.attrs.title
return text.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
}
}
</script>
@@ -25,8 +214,10 @@ export default {
.process-part-title:first-child {
margin-top: 32px;
}
.info-form-item {
display: flex;
margin-bottom: 20px;
&-text {
flex: 1;
@@ -0,0 +1,110 @@
<template>
<div>
<!--项目归档-->
<div class="process-part-title">{{ $t('workCenter.standardCompliance.projectFiling') }}</div>
<div>
<j-table :columns="columns" :data-source="dataSource" :pagination="false" :scroll="{x: '100%'}">
<template v-slot:action="{text, record, index}">
<a @click="handleEdit(record)">{{ $t('edit') }}</a>
</template>
</j-table>
</div>
<edit-project-modal ref="modalForm" />
</div>
</template>
<script>
import JTable from '../../../../components/jero/JTable'
import EditProjectModal from '../modules/EditProjectModal'
export default {
name: 'DesignEngineerWriteProject',
components: { EditProjectModal, JTable },
data () {
return {
columns: [
// 序号
{
title: this.$t('serialNumber'),
key: 'rowIndex',
width: 60,
customRender: function (t, r, index) {
return parseInt(index) + 1
}
},
// 标准编号/条款号
{
dataIndex: 'workNumber',
title: this.$t('projectLibrary.vehicleItemLibrary.standardNumberClauseNumber'),
width: 150
},
// 标准名称/条款名称
{
dataIndex: 'projectName',
title: this.$t('workCenter.projectComplianceEvaluationProcess.standardNameClauseName'),
width: 160
},
// 标准状态
{
title: this.$t('standardSelect.textState'),
dataIndex: 'standardState_dictText',
width: 150
},
// 实施日期
{
title: this.$t('dashboard.advancedSearch.materialDate'),
width: 180,
dataIndex: 'implementation_date'
},
// 评估结果
{
dataIndex: 'evaluationResults_dictText',
title: this.$t('projectLibrary.vehicleItemLibrary.evaluationResult'),
width: 120
},
// 是否立项
{
dataIndex: 'isProject',
title: this.$t('projectLibrary.specialProjectLibrary.whetherToApproveAProjectOrNot'),
width: 150,
scopedSlots: { customRender: 'isProject' }
},
// 工作令编号
{
dataIndex: 'projectId_dictText',
title: this.$t('projectLibrary.workOrderNumber'),
width: 150
},
// 项目名称
{
dataIndex: 'projectName1',
title: this.$t('projectLibrary.projectName'),
width: 150
},
// 操作
{
title: this.$t('operation'),
fixed: 'right',
width: 100,
scopedSlots: { customRender: 'action' }
}
],
dataSource: []
}
},
methods: {
handleEdit (record) {
this.$refs.modalForm.open(record)
}
}
}
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
.process-part-title:first-child {
margin-top: 32px;
}
</style>
@@ -13,7 +13,7 @@
</a-button>
</div>
<div>
<j-table :columns="columns" :data-source="dataSource" :pagination="false">
<j-table :columns="columns" :data-source="dataSource" :pagination="false" :scroll="{x: '100%'}">
<template v-slot:salvageListSource="{text, record, index}">
<j-dict-select-tag style="width: 100%"
:value="record.salvageSource"
@@ -0,0 +1,96 @@
<!--模块负责人评审-->
<template>
<div>
<!--项目审批-->
<div class="process-part-title">{{ $t('workCenter.standardCompliance.projectApproval') }}</div>
<j-table :columns="columns" :data-source="dataSource" :pagination="false" :scroll="{x: '100%'}">
</j-table>
</div>
</template>
<script>
import JTable from '../../../../components/jero/JTable'
export default {
name: 'ModuleOwnerApproveTable',
components: { JTable },
data () {
return {
columns: [
// 序号
{
title: this.$t('serialNumber'),
key: 'rowIndex',
width: 60,
customRender: function (t, r, index) {
return parseInt(index) + 1
}
},
// 标准编号/条款号
{
dataIndex: 'workNumber',
title: this.$t('projectLibrary.vehicleItemLibrary.standardNumberClauseNumber'),
width: 150
},
// 标准名称/条款名称
{
dataIndex: 'projectName',
title: this.$t('workCenter.projectComplianceEvaluationProcess.standardNameClauseName'),
width: 160
},
// 标准状态
{
title: this.$t('standardSelect.textState'),
dataIndex: 'standardState_dictText',
width: 150
},
// 实施日期
{
title: this.$t('dashboard.advancedSearch.materialDate'),
width: 180,
dataIndex: 'implementation_date'
},
// 设计工程师
{
title: this.$t('workCenter.standardConsultationProcess.designEngineer'),
dataIndex: 'contact',
width: 150
},
// 评估结果
{
dataIndex: 'evaluationResults_dictText',
title: this.$t('projectLibrary.vehicleItemLibrary.evaluationResult'),
width: 120
},
// 车型
{
dataIndex: '4',
title: this.$t('projectLibrary.specialProjectLibrary.vehicleModel'),
width: 100
},
// 依据描述
{
dataIndex: 'nameWorkNo',
title: this.$t('projectLibrary.specialProjectLibrary.basisDescription'),
width: 250
},
// 佐证材料
{
dataIndex: '5',
title: this.$t('projectLibrary.specialProjectLibrary.supportingMaterial'),
width: 120
}
],
dataSource: []
}
}
}
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
.process-part-title:first-child {
margin-top: 32px;
}
</style>
@@ -0,0 +1,191 @@
<template>
<div>
<!--项目归档-->
<div class="process-part-title">{{ $t('workCenter.standardCompliance.projectFiling') }}</div>
<div>
<j-table :columns="columns" :data-source="dataSource" :pagination="false" :scroll="{x: '100%'}">
<!--是否立项-->
<template v-slot:isProject="{text,record,index}">
<j-dict-select-tag v-model="record.isProject" dict-code="yn" style="width: 100%" />
</template>
<!--设计工程师-->
<template v-slot:designEngineer="{text, record, index}">
<user-selection :name-str="record.designEngineer_dictText"
:show-btn="false"
v-model="record.designEngineer"
:placeholder="$t('pleaseSelect') + $t('workCenter.standardConsultationProcess.designEngineer')"
style="width: 100%"
type="radio" />
<!--<div>{{ global.emptyLine }}</div>-->
</template>
<!--抄送人员-->
<template v-slot:ccPerson="{text, record, index}">
<user-selection :name-str="record.ccPerson_dictText"
:show-btn="false"
v-model="record.ccPerson"
:placeholder="$t('pleaseSelect') + $t('workCenter.projectComplianceEvaluationProcess.ccPerson')"
style="width: 100%"
type="checkbox" />
<!--<div>{{ global.emptyLine }}</div>-->
</template>
</j-table>
</div>
<div class="detail-page-part-form">
<!--标准编号/条款号-->
<div class="detail-page-part-form-item">
<label>{{ $t('projectLibrary.vehicleItemLibrary.standardNumberClauseNumber') }}</label>
<span></span>
</div>
<!--标准名称/条款名称-->
<div class="detail-page-part-form-item">
<label>{{ $t('workCenter.projectComplianceEvaluationProcess.standardNameClauseName') }}</label>
<span></span>
</div>
</div>
<div>
<j-table :columns="subColumns" :data-source="subDataSource" :pagination="false" :scroll="{x: '100%'}">
</j-table>
</div>
</div>
</template>
<script>
import JTable from '../../../../components/jero/JTable'
import UserSelection from '../../../../components/selection/UserSelection'
export default {
name: 'RegulatoryEngineerApproval',
components: { UserSelection, JTable },
data () {
return {
columns: [
// 序号
{
title: this.$t('serialNumber'),
key: 'rowIndex',
width: 60,
customRender: function (t, r, index) {
return parseInt(index) + 1
}
},
// 标准编号/条款号
{
dataIndex: 'workNumber',
title: this.$t('projectLibrary.vehicleItemLibrary.standardNumberClauseNumber'),
width: 150
},
// 标准名称/条款名称
{
dataIndex: 'projectName',
title: this.$t('workCenter.projectComplianceEvaluationProcess.standardNameClauseName'),
width: 160
},
// 标准状态
{
title: this.$t('standardSelect.textState'),
dataIndex: 'standardState_dictText',
width: 150
},
// 实施日期
{
title: this.$t('dashboard.advancedSearch.materialDate'),
width: 180,
dataIndex: 'implementation_date'
},
// 责任单位联络人
{
title: this.$t('workCenter.standardCompliance.responsibleUnitContactPerson'),
dataIndex: 'contact',
width: 150
},
// 评估结果
{
dataIndex: 'evaluationResults_dictText',
title: this.$t('projectLibrary.vehicleItemLibrary.evaluationResult'),
width: 120
},
// 是否立项
{
dataIndex: 'isProject',
title: this.$t('projectLibrary.specialProjectLibrary.whetherToApproveAProjectOrNot'),
width: 150,
scopedSlots: { customRender: 'isProject' }
},
// 设计工程师
{
title: this.$t('workCenter.standardConsultationProcess.designEngineer'),
dataIndex: 'designEngineer',
width: 150,
scopedSlots: { customRender: 'designEngineer' }
},
// 抄送人员
{
title: this.$t('workCenter.projectComplianceEvaluationProcess.ccPerson'),
dataIndex: 'ccPerson',
width: 150,
scopedSlots: { customRender: 'ccPerson' }
}
],
dataSource: [],
subColumns: [
// 序号
{
title: this.$t('serialNumber'),
key: 'rowIndex',
width: 60,
customRender: function (t, r, index) {
return parseInt(index) + 1
}
},
// 责任单位联络人
{
title: this.$t('workCenter.standardCompliance.responsibleUnitContactPerson'),
dataIndex: 'contact',
width: 150
},
// 评估结果
{
dataIndex: 'evaluationResults_dictText',
title: this.$t('projectLibrary.vehicleItemLibrary.evaluationResult'),
width: 120
},
// 是否立项
{
dataIndex: 'isProject',
title: this.$t('projectLibrary.specialProjectLibrary.whetherToApproveAProjectOrNot'),
width: 150,
scopedSlots: { customRender: 'isProject' }
}
],
subDataSource: []
}
}
}
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
.process-part-title:first-child {
margin-top: 32px;
}
/deep/ .user-input {
width: 100% !important;
}
.detail-page-part-form-item {
width: calc((100% - 16px) / 2) !important;
label {
width: 9rem !important;
}
}
.detail-page-part-form-item:nth-child(2n) {
margin-right: 0 !important;
}
</style>
@@ -0,0 +1,137 @@
<template>
<j-modal
:title="$t('view')"
:maskClosable="false"
:width="1000"
:closable="true"
@ok="handleOk"
@cancel="handleCancel"
switchFullscreen
:visible="visible">
<div class="detail-page-part-form">
<!--标准编号/条款号-->
<div class="detail-page-part-form-item">
<label>{{ $t('projectLibrary.vehicleItemLibrary.standardNumberClauseNumber') }}</label>
<span></span>
</div>
<!--标准名称/条款名称-->
<div class="detail-page-part-form-item">
<label>{{ $t('workCenter.projectComplianceEvaluationProcess.standardNameClauseName') }}</label>
<span></span>
</div>
</div>
<div>
<j-table :columns="columns" :data-source="dataSource" :pagination="ipagination" :scroll="{x: '100%'}">
</j-table>
</div>
</j-modal>
</template>
<script>
import JTable from '../../../../components/jero/JTable'
export default {
name: 'DepartLeaderDetailModal',
components: { JTable },
data () {
return {
visible: false,
model: {},
/* 分页参数 */
ipagination: {
current: 1,
pageSize: 10,
pageSizeOptions: ['10', '20', '30'],
showTotal: (total, range) => {
return range[0] + '-' + range[1] + ' ' + this.$t('total') + total + this.$t('strip')
},
showQuickJumper: true,
showSizeChanger: true,
total: 0
},
columns: [
// 序号
{
title: this.$t('serialNumber'),
key: 'rowIndex',
width: 60,
customRender: function (t, r, index) {
return parseInt(index) + 1
}
},
// 模块负责人
{
title: this.$t('workCenter.standardConsultationProcess.moduleOwner'),
dataIndex: 'moduleOwner',
width: 150
},
// 设计工程师
{
title: this.$t('workCenter.standardConsultationProcess.designEngineer'),
dataIndex: 'contact',
width: 150
},
// 评估结果
{
dataIndex: 'evaluationResults_dictText',
title: this.$t('projectLibrary.vehicleItemLibrary.evaluationResult'),
width: 120
},
// 车型
{
dataIndex: '4',
title: this.$t('projectLibrary.specialProjectLibrary.vehicleModel'),
width: 100
},
// 依据描述
{
dataIndex: 'nameWorkNo',
title: this.$t('projectLibrary.specialProjectLibrary.basisDescription'),
width: 250
},
// 佐证材料
{
dataIndex: '5',
title: this.$t('projectLibrary.specialProjectLibrary.supportingMaterial'),
width: 120
}
],
dataSource: []
}
},
methods: {
open (record) {
this.visible = true
this.model = Object.assign({}, record)
},
handleOk () {
this.close()
},
handleCancel () {
this.close()
},
close () {
this.visible = false
this.model = {}
}
}
}
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
.detail-page-part-form-item {
width: calc((100% - 16px) / 2) !important;
label {
width: 9rem !important;
}
}
.detail-page-part-form-item:nth-child(2n) {
margin-right: 0 !important;
}
</style>
@@ -0,0 +1,71 @@
<template>
<j-modal
:title="$t('edit')"
:maskClosable="false"
:width="600"
:closable="true"
@ok="handleOk"
@cancel="handleCancel"
switchFullscreen
:visible="visible">
<a-form :form="form">
<!--工作令编号-->
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('projectLibrary.workOrderNumber')">
<a-input :placeholder="$t('pleaseEnter') + $t('projectLibrary.workOrderNumber')"
@change="event => event.target.value = event.target.value.trim()"
:maxLength="50"
v-decorator="['listName']" />
</a-form-item>
<!--项目名称-->
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('projectLibrary.projectName')">
<a-input :placeholder="$t('pleaseEnter') + $t('projectLibrary.projectName')"
@change="event => event.target.value = event.target.value.trim()"
:maxLength="50"
v-decorator="['listName']" />
</a-form-item>
</a-form>
</j-modal>
</template>
<script>
export default {
name: 'EditProjectModal',
data () {
return {
visible: false,
model: {},
form: this.$form.createForm(this),
labelCol: {
xs: { span: 24 },
sm: { span: 6 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
}
}
},
methods: {
open (record) {
this.visible = true
this.model = Object.assign({}, record)
this.$nextTick(() => {
this.form.setFieldsValue(this.model)
})
},
handleOk () {
},
handleCancel () {
},
close () {
this.visible = false
}
}
}
</script>
<style scoped lang="less">
</style>