[update] 联调企标计划立项、变更流程,画年度制修订计划-各部门主动上报流程页面
This commit is contained in:
@@ -13,13 +13,15 @@ const deleteFlowNode = (params) => postAction('/activitiModel/deleteTask', param
|
||||
// 转办
|
||||
const enterprisePlanApprovalTurnTo = (params) => postAction('/process/es/initChange/transfer', params)
|
||||
// 同意
|
||||
const enterprisePlanApprovalAgree = (params) => postAction('', params)
|
||||
const enterprisePlanApprovalAgree = (params) => postAction('/process/es/initChange/agree', params)
|
||||
// 驳回
|
||||
const enterprisePlanApprovalReject = (params) => postAction('', params)
|
||||
const enterprisePlanApprovalReject = (params) => postAction('/process/es/initChange/reject', params)
|
||||
// 确定
|
||||
const enterprisePlanApprovalDetermine = (params) => postAction('', params)
|
||||
// 节点一的提交————发起流程
|
||||
const enterprisePlanApproval = (params) => postAction('/process/es/initChange/start', params)
|
||||
// 其他节点的提交
|
||||
const enterprisePlanApprovalSubmit = (params) => postAction('', params)
|
||||
// 保存
|
||||
const enterprisePlanApprovalSave = (params) => postAction('/process/es/initChange/save', params)
|
||||
// 根据三个编号和年代号获取企标编号
|
||||
@@ -43,6 +45,7 @@ export {
|
||||
enterprisePlanApprovalReject,
|
||||
enterprisePlanApprovalDetermine,
|
||||
enterprisePlanApproval,
|
||||
enterprisePlanApprovalSubmit,
|
||||
enterprisePlanApprovalSave,
|
||||
getEnStandardNo,
|
||||
getProcessDataById,
|
||||
|
||||
@@ -157,6 +157,7 @@ module.exports = {
|
||||
addAtLeastOneRowOfData: 'Please Add At Least One Row Of Data',
|
||||
mergeStandardInformation: '合并标准信息',
|
||||
pleaseEnterPersonnelInfo: '请完整填写人员信息',
|
||||
pleaseEnterRemarks: '请填写备注',
|
||||
// 树右键
|
||||
treeRight: {
|
||||
addFolder: 'Create New Folder',
|
||||
|
||||
@@ -90,7 +90,8 @@ module.exports = {
|
||||
whetherToSendAContact: '是否下发联络人',
|
||||
workingGroupContactPerson: '工作组/所联络人',
|
||||
contactSupervisorSuperiorLeader: '联络人主管级上一级领导',
|
||||
affiliatedWorkingGroup: '隶属工作组'
|
||||
affiliatedWorkingGroup: '隶属工作组',
|
||||
contactsSupervisorLevelLeaders: '收集联络人主管级领导'
|
||||
},
|
||||
// 流程配置
|
||||
processConfig: {
|
||||
|
||||
@@ -90,7 +90,8 @@ module.exports = {
|
||||
whetherToSendAContact: '是否下发联络人',
|
||||
workingGroupContactPerson: '工作组/所联络人',
|
||||
contactSupervisorSuperiorLeader: '联络人主管级上一级领导',
|
||||
affiliatedWorkingGroup: '隶属工作组'
|
||||
affiliatedWorkingGroup: '隶属工作组',
|
||||
contactsSupervisorLevelLeaders: '收集联络人主管级领导'
|
||||
},
|
||||
// 流程配置
|
||||
processConfig: {
|
||||
|
||||
@@ -160,6 +160,7 @@ module.exports = {
|
||||
addAtLeastOneRowOfData: '请至少添加一行数据',
|
||||
mergeStandardInformation: '合并标准信息',
|
||||
pleaseEnterPersonnelInfo: '请完整填写人员信息',
|
||||
pleaseEnterRemarks: '请填写备注',
|
||||
// 树右键
|
||||
treeRight: {
|
||||
addFolder: '新增文件夹',
|
||||
@@ -419,7 +420,7 @@ module.exports = {
|
||||
changePermissions: '更改权限',
|
||||
pleaseSelectUser: '请选择一个用户',
|
||||
longTermEffectiveness: '是否长期有效',
|
||||
|
||||
|
||||
selectFileType: '请选择文件类型',
|
||||
onlyWord: '只能导入word文件',
|
||||
fileType: '文件类型',
|
||||
|
||||
+186
-23
@@ -3,16 +3,18 @@
|
||||
<!-- 标题右侧tab -->
|
||||
<template v-slot:titleRightCustom>
|
||||
<div class="table-operator-tab">
|
||||
<!-- 基础信息 -->
|
||||
<a class="switch-item" :class="switchValue === 'base' ? 'table-operator-tab-active' : ''"
|
||||
@click="switchChange('base')">基础信息
|
||||
@click="switchChange('base')">{{ $t('basicInformation') }}
|
||||
</a>
|
||||
<!-- 人员信息 -->
|
||||
<a class="switch-item" :class="switchValue === 'user' ? 'table-operator-tab-active' : ''"
|
||||
@click="switchChange('user')">人员信息
|
||||
@click="switchChange('user')">{{ $t('personalInformation') }}
|
||||
</a>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 基础信息 -->
|
||||
<div v-if="switchValue === 'base'" class="scroll-content">
|
||||
<div v-if="switchValue === 'base'" class="detail-page-scroll-content">
|
||||
<!-- 流程信息 -->
|
||||
<div class="process-part-title">{{ $t('processInformation') }}</div>
|
||||
<a-form :form="processInfoForm">
|
||||
@@ -47,6 +49,16 @@
|
||||
v-decorator="['processExplain']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="[2, 3, 4, 5].includes(currentNode)">
|
||||
<!-- 制修订计划说明 -->
|
||||
<a-form-item :labelCol="longLabelCol" :wrapperCol="longWrapperCol" :label="$t('workCenter.revisionPlanActivelyReport.revisionPlanDesc')">
|
||||
<a-textarea :placeholder="$t('pleaseEnter') + $t('workCenter.revisionPlanActivelyReport.revisionPlanDesc')"
|
||||
:maxLength="500"
|
||||
:rows="4"
|
||||
disabled
|
||||
v-decorator="['revisionPlanDesc']" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
|
||||
@@ -56,6 +68,12 @@
|
||||
<engineer-init-form v-if="currentNode === 1" ref="basicInfoFormRef"></engineer-init-form>
|
||||
<!-- 节点2、各部所联络人填写/下发任务 -->
|
||||
<contact-enter-send-task-form v-if="currentNode === 2" ref="basicInfoFormRef"></contact-enter-send-task-form>
|
||||
<!-- 节点3、工作组、所联络人填写企标-->
|
||||
<contact-enter-standard-form v-if="currentNode === 3" ref="basicInfoFormRef"></contact-enter-standard-form>
|
||||
<!-- 节点4、收集联络人主管级领导审批 只有表格,不能操作 -->
|
||||
<only-table-form v-if="[4, 6, 7].includes(currentNode)" disabled ref="basicInfoFormRef"></only-table-form>
|
||||
<!-- 节点5、各部所联络人汇总 只有表格,可操作 -->
|
||||
<only-table-form v-if="currentNode === 5" ref="basicInfoFormRef"></only-table-form>
|
||||
|
||||
<!-- 流程审批信息 -->
|
||||
<div class="process-part-title">{{ $t('processApprovalInformation') }}</div>
|
||||
@@ -75,11 +93,48 @@
|
||||
</div>
|
||||
|
||||
<!-- 人员信息 -->
|
||||
<div v-if="switchValue === 'user'" class="scroll-content">
|
||||
<div v-if="switchValue === 'user'" class="detail-page-scroll-content p-0">
|
||||
<process-detail-list :url="url">
|
||||
<personnel-info slot="personnelInfo" :data="personnelInfoData" :currentNode="currentNode"></personnel-info>
|
||||
</process-detail-list>
|
||||
</div>
|
||||
|
||||
<!-- 操作按钮 -->
|
||||
<div class="detail-page-bottom-operate-box" v-if="!onlyLook">
|
||||
<!-- 发起节点 -->
|
||||
<template v-if="currentNode === 1">
|
||||
<!-- 保存 -->
|
||||
<a-button type="primary" ghost :loading="loading" @click="handleSave"><i class="iconfont icon-save"></i> {{ $t('preservation') }}</a-button>
|
||||
<!-- 提交 -->
|
||||
<a-button type="primary" :loading="loading" @click="handleStart" icon="upload">{{ $t('submit') }}</a-button>
|
||||
</template>
|
||||
<!-- 各部所联络人填写/下发任务 -->
|
||||
<template v-else-if="[2, 3, 5].includes(currentNode)">
|
||||
<!-- 转办 -->
|
||||
<a-button type="primary" ghost :loading="loading" @click="handleTurnTo" icon="arrow-up">{{ $t('turnTo') }}</a-button>
|
||||
<!-- 保存 -->
|
||||
<a-button type="primary" ghost :loading="loading" @click="handleSave"><i class="iconfont icon-save"></i> {{ $t('preservation') }}</a-button>
|
||||
<!-- 提交 -->
|
||||
<a-button type="primary" :loading="loading" @click="handleSubmit" icon="upload">{{ $t('submit') }}</a-button>
|
||||
</template>
|
||||
<template v-else-if="currentNode === 7">
|
||||
<!-- 提交 -->
|
||||
<a-button type="primary" :loading="loading" @click="handleSubmit" icon="upload">{{ $t('submit') }}</a-button>
|
||||
</template>
|
||||
<template v-else>
|
||||
<!-- 转办 -->
|
||||
<a-button type="primary" ghost :loading="loading" @click="handleTurnTo" icon="arrow-up">{{ $t('turnTo') }}</a-button>
|
||||
<!-- 保存 -->
|
||||
<a-button type="primary" ghost :loading="loading" @click="handleSave"><i class="iconfont icon-save"></i> {{ $t('preservation') }}</a-button>
|
||||
<!-- 同意 -->
|
||||
<a-button type="primary" :loading="loading" @click="handleAgree" icon="check-circle">{{ $t('agree') }}</a-button>
|
||||
<!-- 驳回 -->
|
||||
<a-button type="primary" :loading="loading" @click="handleReject" icon="close-circle">{{ $t('reject') }}</a-button>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<!-- 选人弹框 -->
|
||||
<user-select-modal ref="userSelectModal" type="radio" @change="userSelectModalChange"></user-select-modal>
|
||||
</internal-detail-page>
|
||||
</template>
|
||||
|
||||
@@ -89,6 +144,9 @@ import InternalDetailPage from '@/components/InternalDetailPage'
|
||||
import PersonnelInfo from '@/components/PersonnelInfo'
|
||||
import ContactEnterSendTaskForm from './modules/ContactEnterSendTaskForm'
|
||||
import ProcessDetailList from '../../../components/ProcessDetailList'
|
||||
import ContactEnterStandardForm from './modules/ContactEnterStandardForm'
|
||||
import OnlyTableForm from './modules/OnlyTableForm'
|
||||
import UserSelectModal from '@/components/selection/UserSelectModal'
|
||||
|
||||
const personData = [
|
||||
{
|
||||
@@ -143,7 +201,16 @@ const personData = [
|
||||
|
||||
export default {
|
||||
name: 'RevisionPlanActivelyReportFlow',
|
||||
components: { ProcessDetailList, ContactEnterSendTaskForm, EngineerInitForm, InternalDetailPage, PersonnelInfo },
|
||||
components: {
|
||||
OnlyTableForm,
|
||||
ContactEnterStandardForm,
|
||||
ProcessDetailList,
|
||||
ContactEnterSendTaskForm,
|
||||
EngineerInitForm,
|
||||
InternalDetailPage,
|
||||
PersonnelInfo,
|
||||
UserSelectModal
|
||||
},
|
||||
computed: {
|
||||
pageTitle () {
|
||||
return this.$t('flowCenter') + this.$route.meta.title
|
||||
@@ -157,6 +224,11 @@ export default {
|
||||
return { ...item, canChoose: false }
|
||||
})
|
||||
}
|
||||
// 如果是查看进入的,不可编辑,不可操作
|
||||
if (this.$route.query.onlyLook) {
|
||||
this.onlyLook = this.$route.query.onlyLook
|
||||
this.disabled = this.$route.query.onlyLook
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
@@ -200,7 +272,7 @@ export default {
|
||||
validateTrigger: 'blur'
|
||||
}
|
||||
},
|
||||
currentNode: 2,
|
||||
currentNode: 1,
|
||||
approvalInfoForm: this.$form.createForm(this), // 审批信息表单
|
||||
personnelInfoData: [], // 人员信息数据
|
||||
url: {
|
||||
@@ -212,32 +284,123 @@ export default {
|
||||
methods: {
|
||||
switchChange (value) {
|
||||
this.switchValue = value
|
||||
},
|
||||
// 保存
|
||||
handleSave () {
|
||||
// 有任意一项填了即可
|
||||
// 流程信息表单
|
||||
const processInfoForm = this.processInfoForm.getFieldsValue()
|
||||
// 业务基本信息
|
||||
let ruleForm = {}
|
||||
if ([1, 2, 3].includes(this.currentNode)) {
|
||||
// 业务基本信息中有表单
|
||||
ruleForm = this.$refs.basicInfoFormRef.formInline
|
||||
}
|
||||
if ([2, 3, 5].includes(this.currentNode)) {
|
||||
// 业务基础信息中有可编辑表格 todo: 看后端要什么格式
|
||||
}
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelInfo = this.$refs.personnelInfo.stepsData
|
||||
const personnelObj = {}
|
||||
for (const item of personnelInfo) {
|
||||
if (item.fieldName) {
|
||||
personnelObj[item.fieldName] = item.user
|
||||
}
|
||||
}
|
||||
// 需要传给后端的
|
||||
// 业务基本信息
|
||||
if (this.$refs.basicInfoFormRef) {
|
||||
|
||||
} else {
|
||||
// 需要外层信息至少填了一项
|
||||
const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj }
|
||||
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||
if (!flag) {
|
||||
// 提示至少填写一项
|
||||
this.$message.warning(this.$t('pleaseFillInAtLeastOneItem'))
|
||||
return
|
||||
}
|
||||
}
|
||||
// 保存到草稿
|
||||
// enterprisePlanApprovalSave(arr).then(res => {
|
||||
// if (res.success) {
|
||||
// this.$message.success(res.message)
|
||||
// } else {
|
||||
// this.$message.warning(res.message)
|
||||
// }
|
||||
// })
|
||||
},
|
||||
// 节点一时候的提交,发起变更
|
||||
handleStart () {
|
||||
if (this.loading) return
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelInfo = this.$refs.personnelInfo.stepsData
|
||||
const personnelObj = {}
|
||||
for (const item of personnelInfo) {
|
||||
if (item.fieldName) {
|
||||
personnelObj[item.fieldName] = item.user
|
||||
}
|
||||
}
|
||||
// 校验是否填了所有能填的人员信息
|
||||
if (!Object.values(personnelObj).every(v => !!v)) {
|
||||
this.$message.warning(this.$t('pleaseEnterPersonnelInfo'))
|
||||
return
|
||||
}
|
||||
this.processInfoForm.validateFields((err, values) => {
|
||||
this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
|
||||
|
||||
})
|
||||
})
|
||||
},
|
||||
// 转办
|
||||
handleTurnTo () {
|
||||
if (this.loading) return
|
||||
// 点击显示选人组件
|
||||
this.$refs.userSelectModal.open()
|
||||
},
|
||||
// 转办选完人的回调
|
||||
userSelectModalChange (userIds) {
|
||||
this.approvalInfoForm.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
this.loading = true
|
||||
const param = Object.assign({}, values)
|
||||
param.userId = userIds
|
||||
param.taskId = this.$route.query.taskId
|
||||
// enterprisePlanApprovalTurnTo(param).then(res => {
|
||||
// if (res.success) {
|
||||
// this.$message.success(res.message)
|
||||
// } else {
|
||||
// this.$message.warning(res.message)
|
||||
// }
|
||||
// }).finally(() => {
|
||||
// this.loading = false
|
||||
// })
|
||||
}
|
||||
})
|
||||
},
|
||||
// 提交
|
||||
handleSubmit () {
|
||||
|
||||
},
|
||||
// 同意
|
||||
handleAgree () {
|
||||
|
||||
},
|
||||
// 驳回
|
||||
handleReject () {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
/deep/ .ant-form-item-children {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.bottom-operate-box {
|
||||
height: 52px;
|
||||
padding: 10px 32px;
|
||||
text-align: right;
|
||||
|
||||
.ant-btn {
|
||||
margin-left: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.scroll-content {
|
||||
height: calc(100% - 52px);
|
||||
box-sizing: border-box;
|
||||
overflow: auto;
|
||||
padding: 32px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
+40
-6
@@ -4,7 +4,7 @@
|
||||
<div class="collapsible-panel-form">
|
||||
<div class="form-flex-box collapsible-panel-form-content collapsible-content-no-head">
|
||||
<!-- 是否下发联络人 -->
|
||||
<div class="box-title-text form-flex-item-long">
|
||||
<div class="box-title-text form-flex-item flex-item-small">
|
||||
<div class="title-text">
|
||||
<span class="required">*</span>
|
||||
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.whetherToSendAContact')">
|
||||
@@ -25,8 +25,8 @@
|
||||
<!-- 是否下发联络人选了是,不显示表格,只显示完整表单 -->
|
||||
<template v-if="formInline.whetherToSendAContact === 1">
|
||||
<!-- 工作组/所联络人 -->
|
||||
<div class="box-title-text form-flex-item-long">
|
||||
<div class="title-text">
|
||||
<div class="box-title-text form-flex-item flex-item-long">
|
||||
<div class="title-text title-text-middle">
|
||||
<span class="required">*</span>
|
||||
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.workingGroupContactPerson')">
|
||||
{{ $t('workCenter.revisionPlanActivelyReport.workingGroupContactPerson') }}
|
||||
@@ -43,8 +43,8 @@
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
<!-- 联络人主管级上一级领导 -->
|
||||
<div class="box-title-text form-flex-item-long">
|
||||
<div class="title-text">
|
||||
<div class="box-title-text form-flex-item flex-item-long">
|
||||
<div class="title-text title-text-long">
|
||||
<span class="required">*</span>
|
||||
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.contactSupervisorSuperiorLeader')">
|
||||
{{ $t('workCenter.revisionPlanActivelyReport.contactSupervisorSuperiorLeader') }}
|
||||
@@ -188,6 +188,16 @@ export default {
|
||||
]
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('serialNumber'),
|
||||
dataIndex: '',
|
||||
key: 'rowIndex',
|
||||
align: 'center',
|
||||
width: 80,
|
||||
customRender: function (t, r, index) {
|
||||
return parseInt(index) + 1
|
||||
}
|
||||
},
|
||||
{ // 制修订类型
|
||||
title: this.$t('enterpriseStandardLibrary.plan.revisionType'),
|
||||
align: 'center',
|
||||
@@ -442,6 +452,30 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
.collapsible-content-no-head {
|
||||
border-top: 1px solid #E5E6EB;
|
||||
border-radius: 8px 8px 8px 8px;
|
||||
}
|
||||
|
||||
/deep/ .ant-form-item-children {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.title-text-middle {
|
||||
width: 130px !important;
|
||||
}
|
||||
.title-text-long {
|
||||
width: 220px !important;
|
||||
}
|
||||
|
||||
.flex-item-small {
|
||||
width: 300px !important;
|
||||
}
|
||||
|
||||
.flex-item-long {
|
||||
width: calc((100% - 300px) / 2) !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
+35
-5
@@ -143,6 +143,7 @@
|
||||
v-model="formInline.yearNumber"
|
||||
:default-value="yearNumberDefaultValue"
|
||||
date-format="YYYY"
|
||||
@change="decadeCodeChange"
|
||||
:placeholder="$t('pleaseSelect')+$t('workCenter.enterpriseInitChangePlan.yearNumber')" />
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -357,7 +358,7 @@
|
||||
<a-form-model-item class="item-model" prop="affiliatedWorkingGroup">
|
||||
<a-tree-select
|
||||
tree-node-filter-prop="title"
|
||||
v-model="formInline.workingGroupId"
|
||||
v-model="formInline.affiliatedWorkingGroup"
|
||||
:maxTagCount="1"
|
||||
:show-search="true"
|
||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||
@@ -482,7 +483,9 @@ import { StandardSource } from '@/enums/commonEnums'
|
||||
import { getWorkGroupTreeList, getFormDictTreeList } from '@/api/api'
|
||||
import UserSelection from '@/components/selection/UserSelection'
|
||||
import StandardSelection from '@/components/selection/StandardSelection'
|
||||
import { getTreeList } from '../../../../api/enterpriseStandardLibraryApi'
|
||||
import { getTreeList } from '@/api/enterpriseStandardLibraryApi'
|
||||
import Vue from 'vue'
|
||||
import { USER_INFO } from '@/store/mutation-types'
|
||||
|
||||
export default {
|
||||
name: 'ContactEnterSendTaskModal',
|
||||
@@ -515,7 +518,7 @@ export default {
|
||||
}
|
||||
],
|
||||
// 企标编号
|
||||
enterpriseStandardPlanId: [
|
||||
enterpriseStandardNum: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('workCenter.enterpriseInitChangePlan.enterpriseStandardNum') + this.$t('cannotEmpty'),
|
||||
@@ -618,6 +621,22 @@ export default {
|
||||
trigger: ['change', 'blur']
|
||||
}
|
||||
],
|
||||
// 隶属工作组
|
||||
affiliatedWorkingGroup: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('workCenter.revisionPlanActivelyReport.affiliatedWorkingGroup') + this.$t('cannotEmpty'),
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
// 零部件名称
|
||||
partName: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('workCenter.enterpriseInitChangePlan.partName') + this.$t('cannotEmpty'),
|
||||
trigger: 'change'
|
||||
}
|
||||
],
|
||||
// 授权部门
|
||||
authorizationDepart: [
|
||||
{
|
||||
@@ -673,7 +692,17 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
add () {
|
||||
this.edit({})
|
||||
const userInfo = Vue.ls.get(USER_INFO)
|
||||
const formInline = {}
|
||||
// 初始化主起草人信息
|
||||
formInline.mainDraftingUser = userInfo.id
|
||||
formInline.mainDraftingUser_dictText = userInfo.realname
|
||||
// 初始化主起草单位信息
|
||||
formInline.mainDraftingUnit = userInfo.departIds
|
||||
// 初始化起草单位负责人 todo: 看怎么获取当前登录人的上级
|
||||
// 初始化年代号
|
||||
formInline.decadeCode = new Date().getFullYear() + ''
|
||||
this.edit(formInline)
|
||||
},
|
||||
edit (record) {
|
||||
this.visible = true
|
||||
@@ -706,7 +735,7 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 处理左侧树数据结构
|
||||
// 处理内部工作组数据结构
|
||||
dealTreeData (treeData) {
|
||||
return treeData.map(item => {
|
||||
item.label = item.name
|
||||
@@ -727,6 +756,7 @@ export default {
|
||||
} else {
|
||||
this.rules.enterpriseStandardName[0].required = false
|
||||
}
|
||||
this.formInline.decadeCode = new Date().getFullYear() + ''
|
||||
},
|
||||
// 选择用户得到用户名
|
||||
userSelectNameChange (value, fieldName) {
|
||||
|
||||
+331
-10
@@ -5,19 +5,19 @@
|
||||
<div class="form-flex-box collapsible-panel-form-content collapsible-content-no-head">
|
||||
<!-- 收集联络人主管级领导 -->
|
||||
<div class="box-title-text form-flex-item-long">
|
||||
<div class="title-text">
|
||||
<div class="title-text title-text-middle">
|
||||
<span class="required">*</span>
|
||||
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.whetherToSendAContact')">
|
||||
{{ $t('workCenter.revisionPlanActivelyReport.whetherToSendAContact') }}
|
||||
<span class="title-text-text" :title="$t('workCenter.revisionPlanActivelyReport.contactsSupervisorLevelLeaders')">
|
||||
{{ $t('workCenter.revisionPlanActivelyReport.contactsSupervisorLevelLeaders') }}
|
||||
</span>
|
||||
</div>
|
||||
<a-form-model-item class="item-model" prop="whetherToSendAContact">
|
||||
<user-selection :placeholder="$t('pleaseSelect')+$t('workCenter.revisionPlanActivelyReport.workingGroupContactPerson')"
|
||||
v-model="formInline.revisionPlanActivelyReport"
|
||||
<a-form-model-item class="item-model" prop="contactsSupervisorLevelLeaders">
|
||||
<user-selection :placeholder="$t('pleaseSelect')+$t('workCenter.revisionPlanActivelyReport.contactsSupervisorLevelLeaders')"
|
||||
v-model="formInline.contactsSupervisorLevelLeaders"
|
||||
:disabled="disabled"
|
||||
filedName="revisionPlanActivelyReport"
|
||||
filedName="contactsSupervisorLevelLeaders"
|
||||
@nameChange="userSelectNameChange"
|
||||
:nameStr="formInline.revisionPlanActivelyReport_dictText"
|
||||
:nameStr="formInline.contactsSupervisorLevelLeaders_dictText"
|
||||
type="radio" />
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
@@ -71,15 +71,336 @@
|
||||
</j-table>
|
||||
</div>
|
||||
<!-- 表格新增、编辑弹框 -->
|
||||
<contact-enter-send-task-modal ref="contactEnterSendTaskModal" @ok="modelFormOk"></contact-enter-send-task-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Vue from 'vue'
|
||||
import { ACCESS_TOKEN, TENANT_ID } from '@/store/mutation-types'
|
||||
import store from '@/store'
|
||||
import UserSelection from '@/components/selection/UserSelection'
|
||||
import JTable from '@/components/jero/JTable'
|
||||
import ContactEnterSendTaskModal from './ContactEnterSendTaskModal'
|
||||
|
||||
// 导入的加载提示
|
||||
let importModalLoading
|
||||
|
||||
export default {
|
||||
name: 'ContactEnterStandardForm'
|
||||
name: 'ContactEnterStandardForm',
|
||||
components: { ContactEnterSendTaskModal, UserSelection, JTable },
|
||||
props: {
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
},
|
||||
currentNode: {
|
||||
type: Number,
|
||||
required: false,
|
||||
default: 1
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
tokenHeader () {
|
||||
const head = { 'X-Access-Token': Vue.ls.get(ACCESS_TOKEN) }
|
||||
const tenantid = Vue.ls.get(TENANT_ID)
|
||||
if (tenantid) {
|
||||
head['tenant-id'] = tenantid
|
||||
}
|
||||
return head
|
||||
},
|
||||
importExcelUrl: function () {
|
||||
return `${window._CONFIG.domianURL}/${this.url.importExcelUrl}`
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
loading: false,
|
||||
formInline: {},
|
||||
rules: {
|
||||
// 收集联络人主管级领导
|
||||
contactsSupervisorLevelLeaders: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('workCenter.enterpriseInitChangePlan.contactsSupervisorLevelLeaders') + this.$t('cannotEmpty'),
|
||||
trigger: 'change'
|
||||
}
|
||||
]
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('serialNumber'),
|
||||
dataIndex: '',
|
||||
key: 'rowIndex',
|
||||
align: 'center',
|
||||
width: 80,
|
||||
customRender: function (t, r, index) {
|
||||
return parseInt(index) + 1
|
||||
}
|
||||
},
|
||||
{ // 制修订类型
|
||||
title: this.$t('enterpriseStandardLibrary.plan.revisionType'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'applicationCategory_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 原企标编号
|
||||
title: this.$t('enterpriseStandardLibrary.plan.oldEnterpriseStandardNum'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'originEnStandardNo',
|
||||
scopedSlots: { customRender: 'toDetailOld' }
|
||||
},
|
||||
{ // 新企标编号
|
||||
title: this.$t('enterpriseStandardLibrary.plan.newEnterpriseStandardNum'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'newEnStandardNo',
|
||||
scopedSlots: { customRender: 'toDetailNew' }
|
||||
},
|
||||
{ // 原企标名称
|
||||
title: this.$t('enterpriseStandardLibrary.plan.oldEnterpriseStandardName'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'originEnStandardName',
|
||||
scopedSlots: { customRender: 'toDetailOld' }
|
||||
},
|
||||
{ // 新企标名称
|
||||
title: this.$t('enterpriseStandardLibrary.plan.newEnterpriseStandardName'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'newEnStandardName',
|
||||
scopedSlots: { customRender: 'toDetailNew' }
|
||||
},
|
||||
{ // 授权部门
|
||||
title: this.$t('enterpriseStandardLibrary.plan.authDepartment'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'authDeparts',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 企业标准代号
|
||||
title: this.$t('enterpriseStandardLibrary.plan.enterpriseStandardCode'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'enStandardCode',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 配合单位
|
||||
title: this.$t('enterpriseStandardLibrary.plan.suitUnit'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'cooperateDeparts',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 主起草人
|
||||
title: this.$t('enterpriseStandardLibrary.plan.principalDrafter'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'mainDraftingUser',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 主起草单位
|
||||
title: this.$t('enterpriseStandardLibrary.plan.mainDraftingUnit'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'mainDraftingUnit',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 主起草单位负责人
|
||||
title: this.$t('enterpriseStandardLibrary.plan.headOfMainDraftingUnit'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'mainDraftingUnitResponsiblePerson',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 隶属工作组
|
||||
title: this.$t('workCenter.revisionPlanActivelyReport.affiliatedWorkingGroup'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'affiliatedWorkingGroup',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 标准推进人
|
||||
title: this.$t('enterpriseStandardLibrary.plan.standardPusher'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'standardPromoter',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 草稿计划完成日期
|
||||
title: this.$t('enterpriseStandardLibrary.plan.draftPlanFinishDate'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'draftPlannedCompleteDate',
|
||||
scopedSlots: { customRender: 'specialDate' }
|
||||
},
|
||||
{ // 征求意见稿计划完成日期
|
||||
title: this.$t('enterpriseStandardLibrary.plan.exposureDraftPlanFinishDate'),
|
||||
align: 'center',
|
||||
width: 200,
|
||||
dataIndex: 'solicitationDraftPlanCompleteDate',
|
||||
scopedSlots: { customRender: 'specialDate' }
|
||||
},
|
||||
{ // 计划报批日期
|
||||
title: this.$t('enterpriseStandardLibrary.plan.planSubmissionDate'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'planApprovalDate',
|
||||
scopedSlots: { customRender: 'specialDate' }
|
||||
},
|
||||
{ // 变更状态
|
||||
title: this.$t('enterpriseStandardLibrary.plan.changeState'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'changeStatus_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
scopedSlots: { customRender: 'action' },
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 200
|
||||
}
|
||||
],
|
||||
dataSource: [],
|
||||
selectedRowKeys: [],
|
||||
selectionRows: [],
|
||||
url: {
|
||||
list: ''
|
||||
},
|
||||
modalType: '' // 是在新增还是在编辑,编辑的时候放正在编辑的下标
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 选择用户得到用户名
|
||||
userSelectNameChange (value, fieldName) {
|
||||
this.formInline[fieldName + '_dictText'] = value
|
||||
},
|
||||
// 企标编号,企标名称跳转详情
|
||||
handleGoDetail (record) {
|
||||
this.$openPageNewSheet({
|
||||
path: '/enterpriseStandardLibrary/enterpriseStandardDetail',
|
||||
query: {
|
||||
standardNumber: record.standardNo
|
||||
}
|
||||
})
|
||||
},
|
||||
// 表格选中
|
||||
onSelectChange (selectedRowKeys, selectionRows) {
|
||||
this.selectedRowKeys = selectedRowKeys
|
||||
this.selectionRows = selectionRows
|
||||
},
|
||||
// 新增或编辑完成
|
||||
modelFormOk (value) {
|
||||
console.log(value, this.modalType)
|
||||
if (this.modalType === 'add') {
|
||||
this.dataSource.push(value)
|
||||
} else if (this.modalType && this.modalType.split(',')[0] === 'edit') {
|
||||
this.dataSource.splice(Number(this.modalType.split(',')[1]), 1, value)
|
||||
}
|
||||
},
|
||||
// 新增
|
||||
handleAdd () {
|
||||
this.modalType = 'add'
|
||||
this.$refs.contactEnterSendTaskModal.add()
|
||||
},
|
||||
// 导入
|
||||
handleImportExcel (info) {
|
||||
// 加一个大的提示
|
||||
if (!this.loading) {
|
||||
importModalLoading = this.$info({
|
||||
title: '提示',
|
||||
content: <span>正在导入,请稍候 <a-spin size="small" /></span>,
|
||||
keyboard: false
|
||||
})
|
||||
}
|
||||
this.loading = true
|
||||
// 把知道了这个按钮去掉
|
||||
this.$nextTick(() => {
|
||||
document.getElementsByClassName('ant-modal-confirm-btns')[0].style = 'display:none'
|
||||
})
|
||||
if (info.file.status !== 'uploading') {
|
||||
console.log(info.file, info.fileList)
|
||||
}
|
||||
if (info.file.status === 'done') {
|
||||
// 销毁这个提示
|
||||
importModalLoading && importModalLoading.destroy()
|
||||
this.loading = false
|
||||
if (info.file.response.success) {
|
||||
// this.$message.success(`${info.file.name} 文件上传成功`);
|
||||
if (info.file.response.code === 201) {
|
||||
const { message, result: { msg, fileUrl, fileName } } = info.file.response
|
||||
const href = window._CONFIG.domianURL + fileUrl
|
||||
this.$warning({
|
||||
title: message,
|
||||
content: (<div>
|
||||
<span>{msg}</span><br />
|
||||
<span>具体详情请 <a href={href} target="_blank" download={fileName}>点击下载</a> </span>
|
||||
</div>
|
||||
)
|
||||
})
|
||||
} else {
|
||||
this.$message.success(info.file.response.message || `${info.file.name} 文件上传成功`)
|
||||
}
|
||||
this.loadData()
|
||||
} else {
|
||||
this.$message.error(`${info.file.name} ${info.file.response.message}.`)
|
||||
}
|
||||
} else if (info.file.status === 'error') {
|
||||
// 销毁这个提示
|
||||
importModalLoading && importModalLoading.destroy()
|
||||
this.loading = false
|
||||
if (info.file.response.status === 500) {
|
||||
const data = info.file.response
|
||||
const token = Vue.ls.get(ACCESS_TOKEN)
|
||||
if (token && data.message.includes('Token失效')) {
|
||||
this.error({
|
||||
title: '登录已过期',
|
||||
content: '很抱歉,登录已过期,请重新登录',
|
||||
okText: '重新登录',
|
||||
mask: false,
|
||||
onOk: () => {
|
||||
store.dispatch('Logout').then(() => {
|
||||
Vue.ls.remove(ACCESS_TOKEN)
|
||||
window.location.reload()
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
} else {
|
||||
this.$message.error(`文件上传失败: ${info.file.msg} `)
|
||||
}
|
||||
}
|
||||
},
|
||||
// 编辑
|
||||
handleEdit (record, index) {
|
||||
this.modalType = 'edit' + index
|
||||
this.$refs.contactEnterSendTaskModal.edit(record)
|
||||
},
|
||||
// 删除
|
||||
handleDelete (id, index) {
|
||||
this.dataSource.splice(index, 1)
|
||||
},
|
||||
// 批量删除
|
||||
batchDel () {
|
||||
this.dataSource = this.dataSource.filter(item => !this.selectedRowKeys.includes(item.enterpriseStandardPlanId))
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
.collapsible-content-no-head {
|
||||
border-top: 1px solid #E5E6EB;
|
||||
border-radius: 8px 8px 8px 8px;
|
||||
}
|
||||
|
||||
.title-text-middle {
|
||||
width: 130px !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -0,0 +1,358 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- 操作区域 -->
|
||||
<div v-if="!disabled" class="table-operator">
|
||||
<!-- 新增 -->
|
||||
<a-button icon="plus" type="primary" @click="handleAdd" :disabled="disabled">
|
||||
{{ $t('newlyAdded') }}
|
||||
</a-button>
|
||||
<!-- 导入 -->
|
||||
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
|
||||
<a-button icon="upload" type="primary" ghost>{{ $t('import') }}</a-button>
|
||||
</a-upload>
|
||||
<!-- 批量删除 -->
|
||||
<a-button icon="delete" type="primary" ghost @click="batchDel" :disabled="disabled">
|
||||
{{ $t('batchDelete') }}
|
||||
</a-button>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<j-table
|
||||
:can-drag="true"
|
||||
:scroll="{x: '100%'}"
|
||||
ref="table"
|
||||
rowKey="enterpriseStandardPlanId"
|
||||
:columns="columns"
|
||||
:dataSource="dataSource"
|
||||
:pagination="false"
|
||||
:loading="loading"
|
||||
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}">
|
||||
|
||||
<!-- 企标编号/企标名称 -->
|
||||
<template v-slot:toDetail="{text, record}">
|
||||
<a-tooltip overlay-class-name="tooltip-style">
|
||||
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
||||
<a v-if="text" class="link-a" @click="handleGoDetail(record)">{{ text }}</a>
|
||||
<div v-else class="table-text">{{ global.emptyLine }}</div>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
|
||||
<!-- 操作栏 -->
|
||||
<div slot="action" slot-scope="{record, index}" class="action-span-cell">
|
||||
<a @click="handleEdit(record, index)" class="table-ope-btn" :disabled="disabled">{{ $t('edit') }}</a>
|
||||
<a-divider type="vertical" />
|
||||
<a @click="handleDelete(record.id, index)" class="table-ope-btn" :disabled="disabled">{{ $t('delete') }}</a>
|
||||
</div>
|
||||
|
||||
</j-table>
|
||||
</div>
|
||||
<!-- 表格新增、编辑弹框 -->
|
||||
<contact-enter-send-task-modal ref="contactEnterSendTaskModal" @ok="modelFormOk"></contact-enter-send-task-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Vue from 'vue'
|
||||
import { ACCESS_TOKEN, TENANT_ID } from '@/store/mutation-types'
|
||||
import store from '@/store'
|
||||
import JTable from '@/components/jero/JTable'
|
||||
import ContactEnterSendTaskModal from './ContactEnterSendTaskModal'
|
||||
|
||||
// 导入的加载提示
|
||||
let importModalLoading
|
||||
|
||||
export default {
|
||||
name: 'OnlyTableForm',
|
||||
components: { ContactEnterSendTaskModal, JTable },
|
||||
props: {
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
tokenHeader () {
|
||||
const head = { 'X-Access-Token': Vue.ls.get(ACCESS_TOKEN) }
|
||||
const tenantid = Vue.ls.get(TENANT_ID)
|
||||
if (tenantid) {
|
||||
head['tenant-id'] = tenantid
|
||||
}
|
||||
return head
|
||||
},
|
||||
importExcelUrl: function () {
|
||||
return `${window._CONFIG.domianURL}/${this.url.importExcelUrl}`
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
if (this.disabled) {
|
||||
this.columns.pop()
|
||||
}
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
loading: false,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('serialNumber'),
|
||||
dataIndex: '',
|
||||
key: 'rowIndex',
|
||||
align: 'center',
|
||||
width: 80,
|
||||
customRender: function (t, r, index) {
|
||||
return parseInt(index) + 1
|
||||
}
|
||||
},
|
||||
{ // 制修订类型
|
||||
title: this.$t('enterpriseStandardLibrary.plan.revisionType'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'applicationCategory_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 原企标编号
|
||||
title: this.$t('enterpriseStandardLibrary.plan.oldEnterpriseStandardNum'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'originEnStandardNo',
|
||||
scopedSlots: { customRender: 'toDetailOld' }
|
||||
},
|
||||
{ // 新企标编号
|
||||
title: this.$t('enterpriseStandardLibrary.plan.newEnterpriseStandardNum'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'newEnStandardNo',
|
||||
scopedSlots: { customRender: 'toDetailNew' }
|
||||
},
|
||||
{ // 原企标名称
|
||||
title: this.$t('enterpriseStandardLibrary.plan.oldEnterpriseStandardName'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'originEnStandardName',
|
||||
scopedSlots: { customRender: 'toDetailOld' }
|
||||
},
|
||||
{ // 新企标名称
|
||||
title: this.$t('enterpriseStandardLibrary.plan.newEnterpriseStandardName'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'newEnStandardName',
|
||||
scopedSlots: { customRender: 'toDetailNew' }
|
||||
},
|
||||
{ // 授权部门
|
||||
title: this.$t('enterpriseStandardLibrary.plan.authDepartment'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'authDeparts',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 企业标准代号
|
||||
title: this.$t('enterpriseStandardLibrary.plan.enterpriseStandardCode'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'enStandardCode',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 配合单位
|
||||
title: this.$t('enterpriseStandardLibrary.plan.suitUnit'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'cooperateDeparts',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 主起草人
|
||||
title: this.$t('enterpriseStandardLibrary.plan.principalDrafter'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'mainDraftingUser',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 主起草单位
|
||||
title: this.$t('enterpriseStandardLibrary.plan.mainDraftingUnit'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'mainDraftingUnit',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 主起草单位负责人
|
||||
title: this.$t('enterpriseStandardLibrary.plan.headOfMainDraftingUnit'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'mainDraftingUnitResponsiblePerson',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 隶属工作组
|
||||
title: this.$t('workCenter.revisionPlanActivelyReport.affiliatedWorkingGroup'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'affiliatedWorkingGroup',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 标准推进人
|
||||
title: this.$t('enterpriseStandardLibrary.plan.standardPusher'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'standardPromoter',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{ // 草稿计划完成日期
|
||||
title: this.$t('enterpriseStandardLibrary.plan.draftPlanFinishDate'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'draftPlannedCompleteDate',
|
||||
scopedSlots: { customRender: 'specialDate' }
|
||||
},
|
||||
{ // 征求意见稿计划完成日期
|
||||
title: this.$t('enterpriseStandardLibrary.plan.exposureDraftPlanFinishDate'),
|
||||
align: 'center',
|
||||
width: 200,
|
||||
dataIndex: 'solicitationDraftPlanCompleteDate',
|
||||
scopedSlots: { customRender: 'specialDate' }
|
||||
},
|
||||
{ // 计划报批日期
|
||||
title: this.$t('enterpriseStandardLibrary.plan.planSubmissionDate'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'planApprovalDate',
|
||||
scopedSlots: { customRender: 'specialDate' }
|
||||
},
|
||||
{ // 变更状态
|
||||
title: this.$t('enterpriseStandardLibrary.plan.changeState'),
|
||||
align: 'center',
|
||||
width: 180,
|
||||
dataIndex: 'changeStatus_dictText',
|
||||
scopedSlots: { customRender: 'text' }
|
||||
},
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
scopedSlots: { customRender: 'action' },
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 200
|
||||
}
|
||||
],
|
||||
dataSource: [],
|
||||
selectedRowKeys: [],
|
||||
selectionRows: [],
|
||||
url: {
|
||||
list: ''
|
||||
},
|
||||
modalType: '' // 是在新增还是在编辑,编辑的时候放正在编辑的下标
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 企标编号,企标名称跳转详情
|
||||
handleGoDetail (record) {
|
||||
this.$openPageNewSheet({
|
||||
path: '/enterpriseStandardLibrary/enterpriseStandardDetail',
|
||||
query: {
|
||||
standardNumber: record.standardNo
|
||||
}
|
||||
})
|
||||
},
|
||||
// 表格选中
|
||||
onSelectChange (selectedRowKeys, selectionRows) {
|
||||
this.selectedRowKeys = selectedRowKeys
|
||||
this.selectionRows = selectionRows
|
||||
},
|
||||
// 新增或编辑完成
|
||||
modelFormOk (value) {
|
||||
console.log(value, this.modalType)
|
||||
if (this.modalType === 'add') {
|
||||
this.dataSource.push(value)
|
||||
} else if (this.modalType && this.modalType.split(',')[0] === 'edit') {
|
||||
this.dataSource.splice(Number(this.modalType.split(',')[1]), 1, value)
|
||||
}
|
||||
},
|
||||
// 新增
|
||||
handleAdd () {
|
||||
this.modalType = 'add'
|
||||
this.$refs.contactEnterSendTaskModal.add()
|
||||
},
|
||||
// 导入
|
||||
handleImportExcel (info) {
|
||||
// 加一个大的提示
|
||||
if (!this.loading) {
|
||||
importModalLoading = this.$info({
|
||||
title: '提示',
|
||||
content: <span>正在导入,请稍候 <a-spin size="small" /></span>,
|
||||
keyboard: false
|
||||
})
|
||||
}
|
||||
this.loading = true
|
||||
// 把知道了这个按钮去掉
|
||||
this.$nextTick(() => {
|
||||
document.getElementsByClassName('ant-modal-confirm-btns')[0].style = 'display:none'
|
||||
})
|
||||
if (info.file.status !== 'uploading') {
|
||||
console.log(info.file, info.fileList)
|
||||
}
|
||||
if (info.file.status === 'done') {
|
||||
// 销毁这个提示
|
||||
importModalLoading && importModalLoading.destroy()
|
||||
this.loading = false
|
||||
if (info.file.response.success) {
|
||||
// this.$message.success(`${info.file.name} 文件上传成功`);
|
||||
if (info.file.response.code === 201) {
|
||||
const { message, result: { msg, fileUrl, fileName } } = info.file.response
|
||||
const href = window._CONFIG.domianURL + fileUrl
|
||||
this.$warning({
|
||||
title: message,
|
||||
content: (<div>
|
||||
<span>{msg}</span><br />
|
||||
<span>具体详情请 <a href={href} target="_blank" download={fileName}>点击下载</a> </span>
|
||||
</div>
|
||||
)
|
||||
})
|
||||
} else {
|
||||
this.$message.success(info.file.response.message || `${info.file.name} 文件上传成功`)
|
||||
}
|
||||
this.loadData()
|
||||
} else {
|
||||
this.$message.error(`${info.file.name} ${info.file.response.message}.`)
|
||||
}
|
||||
} else if (info.file.status === 'error') {
|
||||
// 销毁这个提示
|
||||
importModalLoading && importModalLoading.destroy()
|
||||
this.loading = false
|
||||
if (info.file.response.status === 500) {
|
||||
const data = info.file.response
|
||||
const token = Vue.ls.get(ACCESS_TOKEN)
|
||||
if (token && data.message.includes('Token失效')) {
|
||||
this.error({
|
||||
title: '登录已过期',
|
||||
content: '很抱歉,登录已过期,请重新登录',
|
||||
okText: '重新登录',
|
||||
mask: false,
|
||||
onOk: () => {
|
||||
store.dispatch('Logout').then(() => {
|
||||
Vue.ls.remove(ACCESS_TOKEN)
|
||||
window.location.reload()
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
} else {
|
||||
this.$message.error(`文件上传失败: ${info.file.msg} `)
|
||||
}
|
||||
}
|
||||
},
|
||||
// 编辑
|
||||
handleEdit (record, index) {
|
||||
this.modalType = 'edit' + index
|
||||
this.$refs.contactEnterSendTaskModal.edit(record)
|
||||
},
|
||||
// 删除
|
||||
handleDelete (id, index) {
|
||||
this.dataSource.splice(index, 1)
|
||||
},
|
||||
// 批量删除
|
||||
batchDel () {
|
||||
this.dataSource = this.dataSource.filter(item => !this.selectedRowKeys.includes(item.enterpriseStandardPlanId))
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -12,7 +12,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<!-- 基础信息 -->
|
||||
<div v-show="switchValue === 'base'" class="scroll-content">
|
||||
<div v-show="switchValue === 'base'" class="detail-page-scroll-content">
|
||||
<!-- 流程信息 -->
|
||||
<div class="process-part-title">{{ $t('processInformation') }}</div>
|
||||
<a-form :form="processInfoForm">
|
||||
@@ -201,13 +201,13 @@
|
||||
</a-form>
|
||||
</div>
|
||||
<!-- 人员信息 -->
|
||||
<div v-show="switchValue === 'user'" class="scroll-content">
|
||||
<div v-show="switchValue === 'user'" class="detail-page-scroll-content p-0">
|
||||
<process-detail-list :url="url">
|
||||
<personnel-info slot="personnelInfo" ref="personnelInfo" :data="personnelInfoData" :currentNode="currentNode + ''"></personnel-info>
|
||||
</process-detail-list>
|
||||
</div>
|
||||
<!-- 操作按钮 -->
|
||||
<div class="bottom-operate-box" v-if="!onlyLook">
|
||||
<div class="detail-page-bottom-operate-box" v-if="!onlyLook">
|
||||
<!-- 发起节点 -->
|
||||
<template v-if="currentNode === 1">
|
||||
<!-- 保存 -->
|
||||
@@ -257,7 +257,8 @@ import {
|
||||
enterprisePlanApprovalDetermine,
|
||||
enterprisePlanApprovalSave,
|
||||
enterprisePlanApproval,
|
||||
getProcessDataById
|
||||
getProcessDataById,
|
||||
enterprisePlanApprovalSubmit
|
||||
} from '@/api/workCenter'
|
||||
import ApprovalBaseInfo from './modules/ApprovalBaseInfo'
|
||||
import FinishTimeChangeBaseInfo from './modules/FinishTimeChangeBaseInfo'
|
||||
@@ -285,7 +286,6 @@ const approvalPersonalInfo = [ // 人员信息的数据
|
||||
nodeRoleName: '部所联络人',
|
||||
canChoose: true,
|
||||
chooseType: 'radio',
|
||||
// todo: 还没有联络人管理模块,暂时用选用户
|
||||
chooseSource: 'contactManage',
|
||||
fieldName: 'contactUser'
|
||||
},
|
||||
@@ -337,7 +337,6 @@ const changePersonalInfo = [
|
||||
nodeRoleName: '部所联络人',
|
||||
canChoose: true,
|
||||
chooseType: 'radio',
|
||||
// todo: 还没有联络人管理模块,暂时用选用户
|
||||
chooseSource: 'contactManage',
|
||||
fieldName: 'contactUser'
|
||||
},
|
||||
@@ -478,6 +477,9 @@ export default {
|
||||
}
|
||||
if (this.currentNode === 1) {
|
||||
this.personnelInfoData = approvalPersonalInfo
|
||||
this.disabled = false
|
||||
} else {
|
||||
this.disabled = true
|
||||
}
|
||||
// 如果是查看进入的,不可编辑,不可操作
|
||||
if (this.$route.query.onlyLook) {
|
||||
@@ -577,8 +579,8 @@ export default {
|
||||
this.$nextTick(() => {
|
||||
// 初始化流程信息
|
||||
this.processInfoForm.setFieldsValue(pick(this.model[0], 'processName', 'deadlineDate', 'processDescription'))
|
||||
// 初始化流程审批信息
|
||||
this.approvalInfoForm.setFieldsValue(pick(this.model[0], 'remarks', 'attachment'))
|
||||
// 初始化流程审批信息,todo:需要判断是不是草稿进来的,草稿进来的才回显审批信息
|
||||
// this.approvalInfoForm.setFieldsValue(pick(this.model[0], 'remarks', 'attachment'))
|
||||
})
|
||||
// 初始化业务基本信息的申请类型和项目类别
|
||||
this.formInline.applicationCategory = this.model[0].applicationCategory
|
||||
@@ -656,6 +658,8 @@ export default {
|
||||
const ruleForm = this.formInline
|
||||
// 流程审批信息
|
||||
const approvalInfoForm = this.approvalInfoForm.getFieldsValue()
|
||||
// 部分节点的选人表单
|
||||
const userInfoForm = this.userForm.getFieldsValue()
|
||||
// 人员信息的数据, 处理成对象
|
||||
const personnelInfo = this.$refs.personnelInfo.stepsData
|
||||
const personnelObj = {}
|
||||
@@ -674,7 +678,7 @@ export default {
|
||||
if (approvalBaseInfo.enStandardSystem && approvalBaseInfo.enStandardSystem.length > 0) {
|
||||
approvalBaseInfo.enStandardSystem = approvalBaseInfo.enStandardSystem.map(item => item.value).join(',')
|
||||
}
|
||||
const param = { ...processInfoForm, ...ruleForm, ...approvalBaseInfo, ...approvalInfoForm, ...personnelObj }
|
||||
const param = { ...processInfoForm, ...ruleForm, ...approvalBaseInfo, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
|
||||
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||
if (!flag) {
|
||||
// 提示至少填写一项
|
||||
@@ -684,7 +688,7 @@ export default {
|
||||
arr.push(param)
|
||||
} else if (this.formInline.projectType === ProjectType.COMPLETE_TIME_CHANGE.value) {
|
||||
// 业务基本信息-变更-完成时间变更
|
||||
const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj }
|
||||
const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
|
||||
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||
if (!flag && this.$refs.changeBaseInfo.dataSource.length <= 0) {
|
||||
// 提示至少填写一项
|
||||
@@ -694,7 +698,7 @@ export default {
|
||||
arr = this.$refs.changeBaseInfo.dataSource.map(item => { return { ...item, ...param } })
|
||||
} else if (this.formInline.projectType === ProjectType.WORK_TERMINATE.value) {
|
||||
// 业务基本信息-变更-工作终止
|
||||
const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj }
|
||||
const param = { ...processInfoForm, ...ruleForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
|
||||
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||
if (!flag && this.$refs.changeBaseInfo.dataSource.length <= 0) {
|
||||
// 提示至少填写一项
|
||||
@@ -708,7 +712,7 @@ export default {
|
||||
if (this.$refs.changeBaseInfo) {
|
||||
dutyDepartChangeForm = this.$refs.changeBaseInfo.formInline
|
||||
}
|
||||
const param = { ...processInfoForm, ...ruleForm, ...dutyDepartChangeForm, ...approvalInfoForm, ...personnelObj }
|
||||
const param = { ...processInfoForm, ...ruleForm, ...dutyDepartChangeForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
|
||||
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||
if (!flag) {
|
||||
// 提示至少填写一项
|
||||
@@ -722,7 +726,7 @@ export default {
|
||||
if (this.$refs.changeBaseInfo) {
|
||||
mergeForm = this.$refs.changeBaseInfo.formInline
|
||||
}
|
||||
const param = { ...processInfoForm, ...ruleForm, ...mergeForm, ...approvalInfoForm, ...personnelObj }
|
||||
const param = { ...processInfoForm, ...ruleForm, ...mergeForm, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
|
||||
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||
if (!flag) {
|
||||
// 提示至少填写一项
|
||||
@@ -732,7 +736,7 @@ export default {
|
||||
arr.push(param)
|
||||
} else {
|
||||
// 还没有选择申请类型和项目类别,需要外层信息至少填了一项
|
||||
const param = { ...processInfoForm, ...ruleForm, ...approvalBaseInfo, ...approvalInfoForm, ...personnelObj }
|
||||
const param = { ...processInfoForm, ...ruleForm, ...approvalBaseInfo, ...approvalInfoForm, ...personnelObj, ...userInfoForm }
|
||||
const flag = Object.values(param).some(v => !!v || v === 0)
|
||||
if (!flag) {
|
||||
// 提示至少填写一项
|
||||
@@ -761,10 +765,10 @@ export default {
|
||||
}
|
||||
}
|
||||
// 校验是否填了所有能填的人员信息
|
||||
// if (!Object.values(personnelObj).every(v => !!v)) {
|
||||
// this.$message.warning(this.$t('pleaseEnterPersonnelInfo'))
|
||||
// return
|
||||
// }
|
||||
if (!Object.values(personnelObj).every(v => !!v)) {
|
||||
this.$message.warning(this.$t('pleaseEnterPersonnelInfo'))
|
||||
return
|
||||
}
|
||||
this.processInfoForm.validateFields((err, values) => {
|
||||
this.$refs.ruleForm.validate(valid => {
|
||||
this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
|
||||
@@ -857,33 +861,45 @@ export default {
|
||||
})
|
||||
})
|
||||
},
|
||||
// 提交
|
||||
// 其他节点的提交,校验部分节点需要选人的表单和审批信息即可
|
||||
handleSubmit () {
|
||||
if (this.loading) return
|
||||
this.processInfoForm.validateFields((err, values) => {
|
||||
this.$refs.ruleForm.validate(valid => {
|
||||
this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
|
||||
// 立项和变更的数据不一样,分开判断
|
||||
if (this.formInline.applicationCategory === ApplicationCategory.INITIATION.value) {
|
||||
// 是立项
|
||||
this.$refs.approvalBaseInfo.$refs.ruleForm.validate(approvalBaseValid => {
|
||||
if (valid && approvalBaseValid && !err && !approvalErr) {
|
||||
this.loading = true
|
||||
const param = Object.assign({}, this.$refs.approvalBaseInfo.formInline)
|
||||
console.log(param)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// 是变更
|
||||
this.userForm.validateFields((userErr, userValues) => {
|
||||
if (valid && !err && !approvalErr && !userErr) {
|
||||
this.loading = true
|
||||
const param = this.$refs.changeBaseInfo.dataSource
|
||||
console.log(param)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
this.userForm.validateFields((err, values) => {
|
||||
this.approvalInfoForm.validateFields((approvalErr, approvalValues) => {
|
||||
if (!err && !approvalErr) {
|
||||
this.loading = true
|
||||
const param = Object.assign({}, values, approvalValues)
|
||||
param.taskId = this.$route.query.taskId
|
||||
enterprisePlanApprovalSubmit(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
}
|
||||
// // 立项和变更的数据不一样,分开判断
|
||||
// if (this.formInline.applicationCategory === ApplicationCategory.INITIATION.value) {
|
||||
// // 是立项
|
||||
// this.$refs.approvalBaseInfo.$refs.ruleForm.validate(approvalBaseValid => {
|
||||
// if (valid && approvalBaseValid && !err && !approvalErr) {
|
||||
// this.loading = true
|
||||
// const param = Object.assign({}, this.$refs.approvalBaseInfo.formInline)
|
||||
// console.log(param)
|
||||
// }
|
||||
// })
|
||||
// } else {
|
||||
// // 是变更
|
||||
// this.userForm.validateFields((userErr, userValues) => {
|
||||
// if (valid && !err && !approvalErr && !userErr) {
|
||||
// this.loading = true
|
||||
// const param = this.$refs.changeBaseInfo.dataSource
|
||||
// console.log(param)
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
})
|
||||
})
|
||||
},
|
||||
@@ -898,8 +914,7 @@ export default {
|
||||
this.approvalInfoForm.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
this.loading = true
|
||||
let param = {}
|
||||
param = Object.assign({}, values)
|
||||
const param = Object.assign({}, values)
|
||||
param.userId = userIds
|
||||
// param.taskId = this.model[0].id
|
||||
param.taskId = this.$route.query.taskId
|
||||
@@ -921,9 +936,8 @@ export default {
|
||||
this.approvalInfoForm.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
this.loading = true
|
||||
let param = {}
|
||||
param = Object.assign({}, values)
|
||||
param.processId = this.model.id
|
||||
const param = Object.assign({}, values)
|
||||
param.taskId = this.$route.query.taskId
|
||||
enterprisePlanApprovalAgree(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
@@ -940,23 +954,27 @@ export default {
|
||||
handleReject () {
|
||||
if (this.loading) return
|
||||
this.validatorRules.remarks.rules[0].required = true
|
||||
this.approvalInfoForm.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
this.loading = true
|
||||
let param = {}
|
||||
param = Object.assign({}, values)
|
||||
param.processId = this.model.id
|
||||
enterprisePlanApprovalReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
this.validatorRules.remarks.rules[0].required = false
|
||||
})
|
||||
}
|
||||
if (!this.approvalInfoForm.getFieldValue('remarks')) {
|
||||
this.$message.warning(this.$t('pleaseEnterRemarks'))
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.approvalInfoForm.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
this.loading = true
|
||||
const param = Object.assign({}, values)
|
||||
param.taskId = this.$route.query.id
|
||||
enterprisePlanApprovalReject(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
this.validatorRules.remarks.rules[0].required = false
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
// 确定
|
||||
@@ -965,9 +983,8 @@ export default {
|
||||
this.approvalInfoForm.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
this.loading = true
|
||||
let param = {}
|
||||
param = Object.assign({}, values)
|
||||
param.processId = this.model.id
|
||||
const param = Object.assign({}, values)
|
||||
param.taskId = this.$route.query.taskId
|
||||
enterprisePlanApprovalDetermine(param).then(res => {
|
||||
if (res.success) {
|
||||
this.$message.success(res.message)
|
||||
@@ -976,7 +993,6 @@ export default {
|
||||
}
|
||||
}).finally(() => {
|
||||
this.loading = false
|
||||
this.validatorRules.remarks.rules[0].required = false
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -986,64 +1002,12 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
/deep/ .ant-form-item-children {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.form-flex-box {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.form-flex-item-line {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.collapsible-panel-form {
|
||||
margin-top: 20px;
|
||||
|
||||
&-header {
|
||||
height: 56px;
|
||||
line-height: 56px;
|
||||
background: rgba(245, 245, 245, 0.6);
|
||||
border-radius: 8px 8px 0 0;
|
||||
border: 1px solid #E5E6EB;
|
||||
padding: 0 20px;
|
||||
font-size: 16px;
|
||||
font-family: PingFang SC-Medium, PingFang SC, sans-serif;
|
||||
font-weight: 600;
|
||||
color: #1D2129;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.retractable-btn {
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
|
||||
color: @primary-color;
|
||||
}
|
||||
|
||||
.anticon {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.pack-up-btn {
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
|
||||
.unfold-btn {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
|
||||
&-content {
|
||||
border: 1px solid #E5E6EB;
|
||||
border-top: none;
|
||||
border-radius: 0 0 8px 8px;
|
||||
padding: 20px;
|
||||
}
|
||||
}
|
||||
.collapsible-content-no-head {
|
||||
border-top: 1px solid #E5E6EB;
|
||||
border-radius: 8px 8px 8px 8px;
|
||||
@@ -1063,13 +1027,6 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.scroll-content {
|
||||
height: calc(100% - 52px);
|
||||
box-sizing: border-box;
|
||||
overflow: auto;
|
||||
padding: 32px;
|
||||
}
|
||||
|
||||
.user-form {
|
||||
margin-top: 24px;
|
||||
/deep/ .ant-form-item {
|
||||
|
||||
@@ -213,6 +213,7 @@
|
||||
v-model="formInline.enStandardSystem"
|
||||
:getPopupContainer="triggerNode=> triggerNode.parentNode"
|
||||
style="width: 100%"
|
||||
:disabled="disabled"
|
||||
:tree-data="standardSystemOptions"
|
||||
tree-checkable
|
||||
treeCheckStrictly
|
||||
|
||||
+1
-49
@@ -235,60 +235,12 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
/deep/ .ant-form-item-children {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.form-flex-box {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.collapsible-panel-form {
|
||||
margin-top: 20px;
|
||||
|
||||
&-header {
|
||||
height: 56px;
|
||||
line-height: 56px;
|
||||
background: rgba(245, 245, 245, 0.6);
|
||||
border-radius: 8px 8px 0 0;
|
||||
border: 1px solid #E5E6EB;
|
||||
padding: 0 20px;
|
||||
font-size: 16px;
|
||||
font-family: PingFang SC-Medium, PingFang SC, sans-serif;
|
||||
font-weight: 600;
|
||||
color: #1D2129;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.retractable-btn {
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
|
||||
color: @primary-color;
|
||||
}
|
||||
|
||||
.anticon {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.pack-up-btn {
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
|
||||
.unfold-btn {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
|
||||
&-content {
|
||||
border: 1px solid #E5E6EB;
|
||||
border-top: none;
|
||||
border-radius: 0 0 8px 8px;
|
||||
padding: 20px;
|
||||
}
|
||||
}
|
||||
.collapsible-content-no-head {
|
||||
border-top: 1px solid #E5E6EB;
|
||||
border-radius: 8px 8px 8px 8px;
|
||||
|
||||
+28
-13
@@ -232,6 +232,7 @@ export default {
|
||||
required: true,
|
||||
message: this.$t('workCenter.enterpriseInitChangePlan.draftPlanFinishDate') + this.$t('cannotEmpty'),
|
||||
trigger: ['change', 'blur']
|
||||
// trigger: 'change'
|
||||
}
|
||||
],
|
||||
// 征求意见稿计划完成日期
|
||||
@@ -240,6 +241,7 @@ export default {
|
||||
required: true,
|
||||
message: this.$t('workCenter.enterpriseInitChangePlan.exposureDraftPlanFinishDate') + this.$t('cannotEmpty'),
|
||||
trigger: ['change', 'blur']
|
||||
// trigger: 'change'
|
||||
}
|
||||
],
|
||||
// 计划报批日期
|
||||
@@ -248,6 +250,7 @@ export default {
|
||||
required: true,
|
||||
message: this.$t('workCenter.enterpriseInitChangePlan.planSubmissionDate') + this.$t('cannotEmpty'),
|
||||
trigger: ['change', 'blur']
|
||||
// trigger: 'change'
|
||||
}
|
||||
],
|
||||
// 变更原因
|
||||
@@ -279,19 +282,31 @@ export default {
|
||||
// todo: 三个有校验的日期验证不会消失
|
||||
console.log(value)
|
||||
if (value && value.length > 0) {
|
||||
this.$refs.ruleForm.clearValidate()
|
||||
this.formInline.originEnStandardName = value[0].originEnStandardName
|
||||
this.formInline.mainDraftingUser = value[0].mainDraftingUser
|
||||
this.formInline.mainDraftingUser_dictText = value[0].mainDraftingUser_dictText
|
||||
this.formInline.mainDraftingUnit = value[0].mainDraftingUnit
|
||||
this.formInline.mainDraftingUnit_dictText = value[0].mainDraftingUnit_dictText
|
||||
this.formInline.originDraftPlannedCompleteDate = value[0].draftPlannedCompleteDate
|
||||
this.formInline.originSolicitationDraftPlanCompleteDate = value[0].solicitationDraftPlanCompleteDate
|
||||
this.formInline.originPlanApprovalDate = value[0].planApprovalDate
|
||||
this.formInline.draftPlannedCompleteDate = value[0].draftPlannedCompleteDate
|
||||
this.formInline.solicitationDraftPlanCompleteDate = value[0].solicitationDraftPlanCompleteDate
|
||||
this.formInline.planApprovalDate = value[0].planApprovalDate
|
||||
this.$refs.ruleForm.validate()
|
||||
// this.$refs.ruleForm.clearValidate()
|
||||
const formInline = {}
|
||||
// 企标名称
|
||||
formInline.originEnStandardName = value[0].originEnStandardName
|
||||
// 主起草人
|
||||
formInline.mainDraftingUser = value[0].mainDraftingUser
|
||||
formInline.mainDraftingUser_dictText = value[0].mainDraftingUser_dictText
|
||||
// 主起草单位
|
||||
formInline.mainDraftingUnit = value[0].mainDraftingUnit
|
||||
formInline.mainDraftingUnit_dictText = value[0].mainDraftingUnit_dictText
|
||||
// 原草稿计划完成日期
|
||||
formInline.originDraftPlannedCompleteDate = value[0].draftPlannedCompleteDate
|
||||
// 原征求意见稿计划完成日期
|
||||
formInline.originSolicitationDraftPlanCompleteDate = value[0].solicitationDraftPlanCompleteDate
|
||||
// 原计划报批日期
|
||||
formInline.originPlanApprovalDate = value[0].planApprovalDate
|
||||
// 草稿计划完成日期
|
||||
formInline.draftPlannedCompleteDate = value[0].draftPlannedCompleteDate
|
||||
// 征求意见稿计划完成日期
|
||||
formInline.solicitationDraftPlanCompleteDate = value[0].solicitationDraftPlanCompleteDate
|
||||
// 计划报批日期
|
||||
formInline.planApprovalDate = value[0].planApprovalDate
|
||||
this.formInline = Object.assign({}, this.formInline, formInline)
|
||||
this.$forceUpdate()
|
||||
// this.$refs.ruleForm.validate()
|
||||
}
|
||||
},
|
||||
// 选择用户得到用户名
|
||||
|
||||
Reference in New Issue
Block a user