add 法规合规评估流程页面
This commit is contained in:
@@ -390,6 +390,10 @@ module.exports = {
|
||||
responsibleUnitContactPerson: '责任单位联络人',
|
||||
pleaseSelectDeleteData: '请选择要删除的数据',
|
||||
moduleOwner: '模块责任人',
|
||||
projectAppraisal: '项目评估'
|
||||
projectAppraisal: '项目评估',
|
||||
stronglyRelatedVehicleType: '是否与车型强关联',
|
||||
doesNotFitModel: '不符合车型系列',
|
||||
projectApproval: '项目审批',
|
||||
projectFiling: '项目归档'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 () {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+109
@@ -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>
|
||||
+192
-1
@@ -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;
|
||||
|
||||
+110
@@ -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>
|
||||
+1
-1
@@ -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>
|
||||
+191
@@ -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>
|
||||
Reference in New Issue
Block a user